diff --git a/cmd/apps/skychat/commands/auth.go b/cmd/apps/skychat/commands/auth.go new file mode 100644 index 0000000000..fc15037b11 --- /dev/null +++ b/cmd/apps/skychat/commands/auth.go @@ -0,0 +1,138 @@ +// Package commands cmd/apps/skychat/commands/auth.go +// +// HTTP basic-auth gate for skychat. Off by default; on when a +// password file is configured and non-empty. +// +// File format mirrors the hypervisor's user-store hashing scheme +// (salt + SHA256, see pkg/visor/usermanager/user.go) so the same +// password-set flow works the same way for both surfaces. The +// file holds a single line of ":". The +// password-file path is managed via the hypervisor UI; the visor +// writes / removes it on SetSkychatPassword / ClearSkychatPassword. +// +// The hypervisor reverse-proxy at /api/visors//skychat/* runs +// in-process on the visor and bypasses this gate via a startup- +// random "internal token" in the X-Skychat-Internal-Token header, +// so authenticated hvui sessions don't have to re-authenticate to +// skychat. The standalone :8001 surface stays password-gated. +package commands + +import ( + "encoding/hex" + "net/http" + "os" + "strings" + "sync" + + "github.com/skycoin/skywire/pkg/cipher" +) + +var ( + authMu sync.RWMutex + authPasswordSalt []byte + authPasswordHash cipher.SHA256 + authPasswordSet bool + authInternalToken string +) + +// loadSkychatPassword reads ":" from path. +// Empty file or missing path → no auth. Errors other than ENOENT +// are surfaced; the caller should log and continue with auth +// disabled rather than blocking startup on a transient FS hiccup. +func loadSkychatPassword(path string) error { + authMu.Lock() + defer authMu.Unlock() + authPasswordSet = false + if path == "" { + return nil + } + data, err := os.ReadFile(path) //nolint:gosec + if err != nil { + if os.IsNotExist(err) { + return nil + } + return err + } + line := strings.TrimSpace(string(data)) + if line == "" { + return nil + } + parts := strings.SplitN(line, ":", 2) + if len(parts) != 2 { + return nil // malformed — treat as no auth, log-handled by caller + } + salt, err := hex.DecodeString(parts[0]) + if err != nil { + return err + } + hashBytes, err := hex.DecodeString(parts[1]) + if err != nil { + return err + } + if len(hashBytes) != len(authPasswordHash) { + return nil + } + copy(authPasswordHash[:], hashBytes) + authPasswordSalt = salt + authPasswordSet = true + return nil +} + +// setSkychatInternalToken records the per-startup token the +// hypervisor proxy uses to bypass the password gate. Empty disables +// the bypass. +func setSkychatInternalToken(t string) { + authMu.Lock() + defer authMu.Unlock() + authInternalToken = strings.TrimSpace(t) +} + +// requireAuth wraps a handler with HTTP basic auth gating. If no +// password is configured, the wrapped handler runs unchanged. If a +// password is configured, the request must either present basic +// auth that bcrypt-verifies against the stored hash, or carry a +// matching X-Skychat-Internal-Token header (from the visor's +// in-process proxy). +func requireAuth(next http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + authMu.RLock() + set := authPasswordSet + salt := authPasswordSalt + hash := authPasswordHash + token := authInternalToken + authMu.RUnlock() + + if !set { + next.ServeHTTP(w, r) + return + } + + if token != "" && r.Header.Get("X-Skychat-Internal-Token") == token { + next.ServeHTTP(w, r) + return + } + + _, password, ok := r.BasicAuth() + if !ok { + w.Header().Set("WWW-Authenticate", `Basic realm="skychat"`) + http.Error(w, "skychat: authentication required", http.StatusUnauthorized) + return + } + got := cipher.SumSHA256(append([]byte(password), salt...)) + if got != hash { + w.Header().Set("WWW-Authenticate", `Basic realm="skychat"`) + http.Error(w, "skychat: invalid credentials", http.StatusUnauthorized) + return + } + next.ServeHTTP(w, r) + }) +} + +// requireAuthFunc is the http.HandlerFunc-shaped equivalent for +// HandleFunc-style registrations. +func requireAuthFunc(h http.HandlerFunc) http.HandlerFunc { + wrapped := requireAuth(h) + return func(w http.ResponseWriter, r *http.Request) { + wrapped.ServeHTTP(w, r) + } +} diff --git a/cmd/apps/skychat/commands/pairing.go b/cmd/apps/skychat/commands/pairing.go index 97858c3d3e..93dadbb2df 100644 --- a/cmd/apps/skychat/commands/pairing.go +++ b/cmd/apps/skychat/commands/pairing.go @@ -231,10 +231,10 @@ func registerPairHTTPHandlers(ctx context.Context) { if !pairEnable { return } - http.HandleFunc("/pair", pairRootHandler(ctx)) - http.HandleFunc("/pair/invites", pairInvitesListHandler()) - http.HandleFunc("/pair/invites/", pairInvitesItemHandler(ctx)) - http.HandleFunc("/pair/", pairItemHandler(ctx)) + http.HandleFunc("/pair", requireAuthFunc(pairRootHandler(ctx))) + http.HandleFunc("/pair/invites", requireAuthFunc(pairInvitesListHandler())) + http.HandleFunc("/pair/invites/", requireAuthFunc(pairInvitesItemHandler(ctx))) + http.HandleFunc("/pair/", requireAuthFunc(pairItemHandler(ctx))) } // pairInvitesListHandler serves GET /pair/invites — current pending diff --git a/cmd/apps/skychat/commands/skychat.go b/cmd/apps/skychat/commands/skychat.go index 37514af774..6b59c1fb61 100644 --- a/cmd/apps/skychat/commands/skychat.go +++ b/cmd/apps/skychat/commands/skychat.go @@ -49,6 +49,14 @@ var ( useSkynet bool useDmsg bool + // Optional HTTP password gate. When --password-file points at a + // file containing a bcrypt hash, every HTTP endpoint requires + // matching basic auth (or the hypervisor's internal-proxy + // bypass token, see auth.go). Empty file or missing flag → + // no auth, current behavior. + passwordFile string + internalToken string + // Persistence (Phase 1) — all off by default. persistEnabled bool persistDBPath string @@ -125,10 +133,12 @@ func (h *sseHub) broadcast(msg string) { func init() { launcher.RegisterApp("skychat", RunSkychat) - RootCmd.Flags().StringVar(&addr, "addr", ":8001", "address to bind, put an * before the port if you want to be able to access outside localhost") + RootCmd.Flags().StringVar(&addr, "addr", ":8001", "address to bind (default: localhost-only); use \"*:PORT\" to bind on all interfaces") RootCmd.Flags().Uint16Var(&appPort, "port", 0, "routing port for communication between app and visor") RootCmd.Flags().BoolVar(&useSkynet, "skynet", true, "listen on skynet network") RootCmd.Flags().BoolVar(&useDmsg, "dmsg", true, "listen on dmsg network") + RootCmd.Flags().StringVar(&passwordFile, "password-file", "", "path to a file containing a bcrypt hash; when set, gates HTTP endpoints with basic auth") + RootCmd.Flags().StringVar(&internalToken, "internal-token", "", "shared secret used by the hypervisor's reverse proxy to bypass the password gate; managed automatically by the visor") // Persistence flags (Phase 1). All default off; when --persist is set, // the others fall back to conservative defaults. @@ -188,6 +198,8 @@ func RunSkychat(ctx context.Context, args []string) error { fs.Uint16Var(&appPort, "port", 0, "routing port") fs.BoolVar(&useSkynet, "skynet", true, "listen on skynet") fs.BoolVar(&useDmsg, "dmsg", true, "listen on dmsg") + fs.StringVar(&passwordFile, "password-file", "", "path to bcrypt hash for HTTP basic auth") + fs.StringVar(&internalToken, "internal-token", "", "hypervisor proxy bypass token") fs.BoolVar(&persistEnabled, "persist", false, "persist chat history to BoltDB") fs.StringVar(&persistDBPath, "persist-db", "", "path to BoltDB file") fs.IntVar(&persistMaxMsgSize, "persist-max-size", 4096, "max message size bytes") @@ -268,11 +280,18 @@ func RunSkychat(ctx context.Context, args []string) error { startPairPoller(ctx) defer stopPairPoller() - http.Handle("/", http.FileServer(getFileSystem())) - http.HandleFunc("/message", messageHandler(ctx)) - http.HandleFunc("/sse", sseHandler) - http.HandleFunc("/history", historyHandler) - http.HandleFunc("/history/peers", historyPeersHandler) + // Wire optional password protection. If passwordFile is empty or + // the file is missing, requireAuth* are no-ops. + if err := loadSkychatPassword(passwordFile); err != nil { + appLog("password file load: %v — continuing without auth", err) + } + setSkychatInternalToken(internalToken) + + http.Handle("/", requireAuth(http.FileServer(getFileSystem()))) + http.HandleFunc("/message", requireAuthFunc(messageHandler(ctx))) + http.HandleFunc("/sse", requireAuthFunc(sseHandler)) + http.HandleFunc("/history", requireAuthFunc(historyHandler)) + http.HandleFunc("/history/peers", requireAuthFunc(historyPeersHandler)) registerPairHTTPHandlers(ctx) url := "" diff --git a/cmd/svc/transport-discovery/commands/root.go b/cmd/svc/transport-discovery/commands/root.go index 1a9e294a23..6d1336e222 100644 --- a/cmd/svc/transport-discovery/commands/root.go +++ b/cmd/svc/transport-discovery/commands/root.go @@ -359,8 +359,19 @@ Example: defer agg.Close() //nolint:errcheck logger.WithField("feed_pk", agg.FeedPK()).Info("CXO aggregator running: accepting inbound visor stats feeds") } + + // CXO metrics publisher: outbound feed mirroring the + // /metrics aggregate. Visors subscribe to TPD's PK on + // skyenv.DmsgTPDMetricsCXOPort and read the JSON-encoded + // []TransportMetric from "metrics/days/" instead of + // HTTP-polling the same query. + if pub, perr := api.StartMetricsCXOPublisher(ctx, tpdAPI, h.DmsgClient, sk, logger); perr != nil { + logger.WithError(perr).Error("Failed to start CXO metrics publisher, continuing without it") + } else { + defer pub.Close() //nolint:errcheck + } } else if enableCXO { - logger.Warn("CXO requested but dmsg is not enabled (--mode=http); aggregator disabled") + logger.Warn("CXO requested but dmsg is not enabled (--mode=http); aggregator/publisher disabled") } // Wire DHT entry mirroring: every transport registration is diff --git a/pkg/skyenv/skyenv.go b/pkg/skyenv/skyenv.go index c8b462c480..87d49dd397 100644 --- a/pkg/skyenv/skyenv.go +++ b/pkg/skyenv/skyenv.go @@ -45,6 +45,14 @@ const ( // collide with DmsgHypervisorPort. DmsgCXOPort uint16 = 50 + // DmsgTPDMetricsCXOPort is the DMSG port the TPD's CXO metrics- + // aggregate publisher listens on (and visors dial when they want + // to subscribe to the network-wide transport metrics feed). + // Distinct from DmsgCXOPort because TPD already runs its + // CXO aggregator there for inbound visor stats publishers; the + // metrics publisher is a separate feed in the opposite direction. + DmsgTPDMetricsCXOPort uint16 = 51 + // DmsgDHTPort Listening port for the Kademlia DHT protocol. DmsgDHTPort uint16 = 100 @@ -84,8 +92,13 @@ const ( // SkychatPort is the dmsg port used by skychat SkychatPort uint16 = 1 - // SkychatAddr is the non-dmsg port used to access the skychat app on localhost - SkychatAddr = ":8001" + // SkychatAddr is the non-dmsg address skychat binds for its HTTP + // UI. Localhost-only by default since skychat is unauthenticated + // out of the box; the operator can opt into wider exposure with + // "*:8001" (the docker integration configs do this for inter- + // container reachability), and optional password protection is + // available via the hypervisor's Skychat password setting. + SkychatAddr = "127.0.0.1:8001" // SkysocksName is the name of the skysocks app SkysocksName = "skysocks" diff --git a/pkg/transport-discovery/api/cxo_metrics_publisher.go b/pkg/transport-discovery/api/cxo_metrics_publisher.go new file mode 100644 index 0000000000..2a5057d965 --- /dev/null +++ b/pkg/transport-discovery/api/cxo_metrics_publisher.go @@ -0,0 +1,187 @@ +// Package api pkg/transport-discovery/api/cxo_metrics_publisher.go +// +// CXO publisher for the network-wide transport-metrics aggregate. +// On a fixed cadence (default 60s) the publisher recomputes the +// metrics for a small set of day windows (1, 7, 30) and writes the +// JSON-encoded []store.TransportMetric to a TreeStore path +// +// metrics/days/ +// +// Subscribers (the hvui's Transports tab via the visor's CXO +// subscriber) watch the feed instead of HTTP-polling /metrics. CXO's +// content-addressing means the publisher only re-encodes subtrees +// that actually changed, so unchanged transport rows produce a +// stable Root and the wire footprint is the delta, not the full +// dataset. +package api + +import ( + "context" + "encoding/json" + "fmt" + "sync" + "time" + + "github.com/sirupsen/logrus" + + "github.com/skycoin/skywire/pkg/cipher" + "github.com/skycoin/skywire/pkg/cxo/treestore" + "github.com/skycoin/skywire/pkg/dmsg/dmsg" + "github.com/skycoin/skywire/pkg/logging" + "github.com/skycoin/skywire/pkg/skyenv" + "github.com/skycoin/skywire/pkg/transport-discovery/store" +) + +// metricsPublishDays is the set of day windows the publisher refreshes +// on every tick. The hvui currently picks one of these via the day +// selector; everything else falls through to the HTTP path. +var metricsPublishDays = []int{1, 7, 30} + +// metricsPublishInterval is the recompute cadence. 60s is short +// enough that a typical hvui open will catch a fresh sample within +// one cycle, long enough that the redis read cost stays bounded. +const metricsPublishInterval = 60 * time.Second + +// MetricsCXOPublisher periodically computes the /metrics aggregate +// for a fixed set of day windows and publishes each result as a +// JSON leaf at "metrics/days/". The struct is owned by the API; +// Close shuts the publisher and stops the ticker. +type MetricsCXOPublisher struct { + api *API + pub *treestore.Publisher + log *logging.Logger + + cancel context.CancelFunc + done chan struct{} + + mu sync.Mutex + lastError error +} + +// StartMetricsCXOPublisher constructs a publisher backed by the +// given DMSG client and TPD secret key, then kicks off the recompute +// ticker. The publisher's allowlist is left open (any subscriber may +// read) — the metrics endpoint is already a public read on the HTTP +// side, so the CXO mirror inherits that access policy. +// +// Returns nil + error when the publisher can't be created (no DMSG +// client, listener bind failure, etc.); the caller should log and +// continue without it. Treat the publisher as best-effort: the +// existing HTTP /metrics route stays the source of truth. +func StartMetricsCXOPublisher(ctx context.Context, api *API, dmsgC *dmsg.Client, sk cipher.SecKey, logger logrus.FieldLogger) (*MetricsCXOPublisher, error) { + log := logging.MustGetLogger("tpd-cxo-metrics-pub") + + pub, err := treestore.NewWithDMSG(dmsgC, sk, treestore.PubConfig{ + Logger: log, + InMemoryDB: true, // metrics are always recomputed from redis on the next tick + DmsgPort: skyenv.DmsgTPDMetricsCXOPort, + }) + if err != nil { + return nil, err + } + // nil allowlist = open feed (any subscriber accepted). + pub.SetAllowlist(nil) + + pubCtx, cancel := context.WithCancel(ctx) + mp := &MetricsCXOPublisher{ + api: api, + pub: pub, + log: log, + cancel: cancel, + done: make(chan struct{}), + } + if logger != nil { + logger.WithField("feed_pk", pub.Feed()).WithField("dmsg_port", skyenv.DmsgTPDMetricsCXOPort). + Info("CXO metrics publisher running") + } + go mp.loop(pubCtx) + return mp, nil +} + +// FeedPK returns the publisher's feed PK — i.e. TPD's own PK, since +// the publisher was built with TPD's secret key. Subscribers connect +// to this PK at port skyenv.DmsgTPDMetricsCXOPort. +func (m *MetricsCXOPublisher) FeedPK() cipher.PubKey { return m.pub.Feed() } + +// Close stops the ticker and tears down the publisher. +func (m *MetricsCXOPublisher) Close() error { + if m.cancel != nil { + m.cancel() + } + <-m.done + return m.pub.Close() +} + +func (m *MetricsCXOPublisher) loop(ctx context.Context) { + defer close(m.done) + + // Publish once immediately so a subscriber that connects shortly + // after TPD starts gets a snapshot without waiting a full tick. + m.publishOnce(ctx) + + t := time.NewTicker(metricsPublishInterval) + defer t.Stop() + + for { + select { + case <-ctx.Done(): + return + case <-t.C: + m.publishOnce(ctx) + } + } +} + +func (m *MetricsCXOPublisher) publishOnce(ctx context.Context) { + for _, days := range metricsPublishDays { + query := store.MetricsQuery{ + Days: days, + Live: "all", + Edges: true, + Bandwidth: true, + Latency: true, + } + metrics, err := m.api.store.GetAllTransportMetrics(ctx, query) + if err != nil { + m.log.WithError(err).WithField("days", days).Debug("metrics fetch failed; will retry next tick") + m.recordError(err) + continue + } + body, err := json.Marshal(metrics) + if err != nil { + m.log.WithError(err).WithField("days", days).Warn("metrics marshal failed") + m.recordError(err) + continue + } + path := metricsPath(days) + if err := m.pub.Put(path, body); err != nil { + m.log.WithError(err).WithField("path", path).Warn("publisher Put failed") + m.recordError(err) + continue + } + } +} + +func (m *MetricsCXOPublisher) recordError(err error) { + m.mu.Lock() + defer m.mu.Unlock() + m.lastError = err +} + +// LastError returns the most recent error encountered by the publish +// loop, or nil if the last tick succeeded for every window. Exposed +// for /health-style introspection if a future caller wants it. +func (m *MetricsCXOPublisher) LastError() error { + m.mu.Lock() + defer m.mu.Unlock() + return m.lastError +} + +// MetricsPath returns the TreeStore path the publisher writes to for +// a given day window. Exported so visor-side subscribers don't have +// to duplicate the format string. +func MetricsPath(days int) string { return metricsPath(days) } + +func metricsPath(days int) string { + return fmt.Sprintf("metrics/days/%d", days) +} diff --git a/pkg/visor/api.go b/pkg/visor/api.go index 4e39f6c275..7475ea4764 100644 --- a/pkg/visor/api.go +++ b/pkg/visor/api.go @@ -43,6 +43,13 @@ type API interface { Reload() error Shutdown() error RuntimeLogs() (string, error) + RuntimeLogsSince(since int64) (RuntimeLogsDelta, error) + HostStats() (*HostStatsInfo, error) + NetworkView() (*NetworkViewResponse, error) + SkychatPasswordIsSet() (bool, error) + SetSkychatPassword(oldPassword, newPassword string) error + ClearSkychatPassword(oldPassword string) error + SkychatLocalAddr() (string, error) RemoteVisors() ([]string, error) GetLogRotationInterval() (visorconfig.Duration, error) SetLogRotationInterval(visorconfig.Duration) error @@ -277,6 +284,7 @@ type API interface { HVReload(pk cipher.PubKey) error HVShutdown(pk cipher.PubKey) error HVServiceHealth(pk cipher.PubKey) ([]ServiceHealthEntry, error) + HVDmsgSessions(pk cipher.PubKey) (*DmsgClientSessions, error) HVDmsgConnectAll(pk cipher.PubKey) (*DmsgConnectAllResult, error) HVSetDmsgSessionsCount(pk cipher.PubKey, count int) (*DmsgConnectAllResult, error) HVLogsSince(pk cipher.PubKey, since time.Time, appName string) ([]string, error) diff --git a/pkg/visor/api_host_stats.go b/pkg/visor/api_host_stats.go new file mode 100644 index 0000000000..66070af15d --- /dev/null +++ b/pkg/visor/api_host_stats.go @@ -0,0 +1,208 @@ +// Package visor pkg/visor/api_host_stats.go +// +// HostStats — psutil-style resource snapshot of the host the visor +// is running on. Backs the hypervisor UI's "Resource Monitor" +// panel; the data shape is meant to be polled at ~1s and graphed. +// +// Counter-style fields (network bytes, GC count, …) are cumulative +// since boot or process start; the client diffs across polls to +// derive a rate. Gauge-style fields (CPU%, mem%, RSS) are absolute. +// +// The first call to cpu.Percent(0, …) returns 0 because there's no +// previous sample to compare against; that's fine — the second +// call returns a real value, and 1s polling means the "0 on first +// reading" only shows up briefly during initial paint. +package visor + +import ( + "fmt" + "os" + "runtime" + "time" + + "github.com/shirou/gopsutil/v3/cpu" + "github.com/shirou/gopsutil/v3/disk" + "github.com/shirou/gopsutil/v3/host" + "github.com/shirou/gopsutil/v3/mem" + gnet "github.com/shirou/gopsutil/v3/net" + "github.com/shirou/gopsutil/v3/process" +) + +// HostStatsInfo carries a snapshot of host system + visor process +// resource utilization. Returned by Visor.HostStats and surfaced +// to the hypervisor UI via /visors//host-stats. +// +// All byte counts are bytes (not KB/MB); the UI is responsible for +// scaling for display. +type HostStatsInfo struct { + // Host identity (mostly static; useful as a header above the + // graphs so the user knows which box they're looking at). + Hostname string `json:"hostname,omitempty"` + OS string `json:"os,omitempty"` + Platform string `json:"platform,omitempty"` + Arch string `json:"arch,omitempty"` + UptimeSeconds uint64 `json:"uptime_seconds,omitempty"` + + // CPU + CPUPercent float64 `json:"cpu_percent"` + CPUCount int `json:"cpu_count"` + CPULogicalCount int `json:"cpu_logical_count"` + + // Memory (bytes) + MemTotal uint64 `json:"mem_total"` + MemUsed uint64 `json:"mem_used"` + MemAvailable uint64 `json:"mem_available"` + MemPercent float64 `json:"mem_percent"` + SwapTotal uint64 `json:"swap_total,omitempty"` + SwapUsed uint64 `json:"swap_used,omitempty"` + SwapPercent float64 `json:"swap_percent,omitempty"` + + // Disk — root filesystem only. Per-mount breakdown can be a + // follow-up; "/" is the signal users care about for "is the + // visor about to run out of room for its log buffer / cxo + // tree-store?" + DiskTotal uint64 `json:"disk_total,omitempty"` + DiskUsed uint64 `json:"disk_used,omitempty"` + DiskFree uint64 `json:"disk_free,omitempty"` + DiskPercent float64 `json:"disk_percent,omitempty"` + + // Network — cumulative across all interfaces since boot. Client + // diffs to derive Bps. Per-interface breakdown is omitted to + // keep the payload small; can be added later as a `Per []…` + // field if a user wants it. + NetBytesSent uint64 `json:"net_bytes_sent"` + NetBytesRecv uint64 `json:"net_bytes_recv"` + NetPacketsSent uint64 `json:"net_packets_sent,omitempty"` + NetPacketsRecv uint64 `json:"net_packets_recv,omitempty"` + + // Visor process specifics. Process is nil when we can't read + // our own /proc entry (rare; surface as null in JSON). + Process *ProcessStatsInfo `json:"process,omitempty"` +} + +// ProcessStatsInfo is the visor process's slice of HostStats — +// what process.NewProcess(os.Getpid()) returns from gopsutil. +type ProcessStatsInfo struct { + PID int32 `json:"pid"` + CPUPercent float64 `json:"cpu_percent"` + MemRSS uint64 `json:"mem_rss"` + MemVMS uint64 `json:"mem_vms,omitempty"` + NumThreads int32 `json:"num_threads,omitempty"` + NumFDs int32 `json:"num_fds,omitempty"` + StartTimeMS int64 `json:"start_time_ms,omitempty"` + OpenConns int `json:"open_conns,omitempty"` +} + +// HostStats implements API. Best-effort: a probe failure on one +// subsystem (e.g., disk usage on an unusual mount layout) doesn't +// take down the whole call — that field is left at its zero value. +func (v *Visor) HostStats() (*HostStatsInfo, error) { + out := &HostStatsInfo{} + + // Host identity + if h, err := host.Info(); err == nil && h != nil { + out.Hostname = h.Hostname + out.OS = h.OS + out.Platform = h.Platform + out.Arch = runtime.GOARCH + out.UptimeSeconds = h.Uptime + } else { + out.Arch = runtime.GOARCH + } + + // CPU — first call returns 0 (no baseline); subsequent calls + // return % since previous call. UI's first sample will read + // zero, real value lands on the second poll. + if pcts, err := cpu.Percent(0, false); err == nil && len(pcts) > 0 { + out.CPUPercent = pcts[0] + } + if n, err := cpu.Counts(false); err == nil { + out.CPUCount = n + } + if n, err := cpu.Counts(true); err == nil { + out.CPULogicalCount = n + } + + // Memory + if vm, err := mem.VirtualMemory(); err == nil && vm != nil { + out.MemTotal = vm.Total + out.MemUsed = vm.Used + out.MemAvailable = vm.Available + out.MemPercent = vm.UsedPercent + } + if sm, err := mem.SwapMemory(); err == nil && sm != nil { + out.SwapTotal = sm.Total + out.SwapUsed = sm.Used + out.SwapPercent = sm.UsedPercent + } + + // Disk (root) + if du, err := disk.Usage("/"); err == nil && du != nil { + out.DiskTotal = du.Total + out.DiskUsed = du.Used + out.DiskFree = du.Free + out.DiskPercent = du.UsedPercent + } + + // Network — sum across interfaces. pernic=false yields one row + // of cumulative totals. + if ns, err := gnet.IOCounters(false); err == nil && len(ns) > 0 { + out.NetBytesSent = ns[0].BytesSent + out.NetBytesRecv = ns[0].BytesRecv + out.NetPacketsSent = ns[0].PacketsSent + out.NetPacketsRecv = ns[0].PacketsRecv + } + + // Visor process + if p, err := process.NewProcess(int32(os.Getpid())); err == nil && p != nil { //nolint:gosec // pid fits + ps := &ProcessStatsInfo{PID: p.Pid} + if cp, err := p.CPUPercent(); err == nil { + ps.CPUPercent = cp + } + if mi, err := p.MemoryInfo(); err == nil && mi != nil { + ps.MemRSS = mi.RSS + ps.MemVMS = mi.VMS + } + if nt, err := p.NumThreads(); err == nil { + ps.NumThreads = nt + } + if nfd, err := p.NumFDs(); err == nil { + ps.NumFDs = nfd + } + if ct, err := p.CreateTime(); err == nil { + ps.StartTimeMS = ct + } + if conns, err := p.Connections(); err == nil { + ps.OpenConns = len(conns) + } + out.Process = ps + } + + return out, nil +} + +// formatHostStatsErrors keeps a placeholder for future error +// aggregation. Currently we swallow per-subsystem errors silently +// because partial data is more useful than a total failure on a +// quirky system; if something is consistently zero in the UI, that's +// a flag for the user to investigate the host. +// +//nolint:unused +func formatHostStatsErrors(errs []error) error { + if len(errs) == 0 { + return nil + } + return fmt.Errorf("host stats: %d subsystem errors (first: %w)", len(errs), errs[0]) +} + +// secondsAgo helps the UI render uptime cleanly when StartTimeMS is +// available; kept as a small helper rather than embedded so the +// formatting choice stays on the client. +// +//nolint:unused +func secondsAgo(unixMS int64) int64 { + if unixMS <= 0 { + return 0 + } + return time.Now().UnixMilli()/1 - unixMS/1 +} diff --git a/pkg/visor/api_network_view.go b/pkg/visor/api_network_view.go new file mode 100644 index 0000000000..429828e656 --- /dev/null +++ b/pkg/visor/api_network_view.go @@ -0,0 +1,291 @@ +// Package visor pkg/visor/api_network_view.go +// +// NetworkView — server-side combination of service-discovery, +// transport-discovery, and uptime-tracker data into a per-PK +// summary, mirroring the table that `skywire cli sd` prints. +// +// Lives at the hypervisor scope (no per-visor binding) because the +// data is network-wide. Cached for shortLivedCacheTTL on the visor +// side to absorb the 30s+ poll the UI does, plus any concurrent +// CLI hits. +package visor + +import ( + "encoding/json" + "fmt" + "strings" + "sync" + "time" + + "github.com/skycoin/skywire/pkg/servicedisc" +) + +// NetworkViewEntry is one row of the combined network table. +// Field names match the JSON tags `cli sd --json` emits so callers +// (UI, scripts) can consume both interchangeably. +type NetworkViewEntry struct { + PK string `json:"pk"` + Country string `json:"country,omitempty"` + Version string `json:"version,omitempty"` + Services string `json:"services,omitempty"` + STCPR int `json:"stcpr"` + SUDPH int `json:"sudph"` + DMSG int `json:"dmsg"` + STCP int `json:"stcp"` + Total int `json:"total"` + UTStatus string `json:"ut_status,omitempty"` // "online" | "offline" | "" (not in UT) +} + +// NetworkViewResponse is what /api/network-view returns. The +// FetchedAt timestamp lets the UI render "x seconds ago" without +// having to track the request time client-side. +type NetworkViewResponse struct { + Entries []NetworkViewEntry `json:"entries"` + FetchedAt time.Time `json:"fetched_at"` +} + +// networkViewCacheTTL is the freshness window for the combined +// fetch. SD/TPD/UT update at the 30s+ scale; 5 minutes is plenty +// for "is the network healthy" browsing. The UI surfaces a manual +// refresh button (forwarded to NetworkViewRefresh below) for +// callers who need a current sample on demand. +const networkViewCacheTTL = 5 * time.Minute + +type networkViewCache struct { + mu sync.Mutex + cachedAt time.Time + response *NetworkViewResponse +} + +var networkViewCacheInstance = &networkViewCache{} + +// NetworkView returns the combined SD/TPD/UT view, served from a +// short-lived cache. Cache is invalidated on miss/expiry; concurrent +// callers during a refetch share the new result. The error return +// is reserved for future use (e.g., reporting that *all* upstream +// services were unreachable); today the underlying compute never +// returns an error — partial fetches yield partial tables. +func (v *Visor) NetworkView() (*NetworkViewResponse, error) { + return v.networkView(false) +} + +// NetworkViewRefresh forces re-aggregation regardless of cache age. +// Used by the UI's manual-refresh button. +func (v *Visor) NetworkViewRefresh() (*NetworkViewResponse, error) { + return v.networkView(true) +} + +func (v *Visor) networkView(forceRefresh bool) (*NetworkViewResponse, error) { + networkViewCacheInstance.mu.Lock() + defer networkViewCacheInstance.mu.Unlock() + + if !forceRefresh && networkViewCacheInstance.response != nil && + time.Since(networkViewCacheInstance.cachedAt) < networkViewCacheTTL { + return networkViewCacheInstance.response, nil + } + + resp := v.computeNetworkView() + networkViewCacheInstance.response = resp + networkViewCacheInstance.cachedAt = time.Now() + return resp, nil +} + +// computeNetworkView does the actual aggregation. Mirrors the +// structure of `cli sd`: fetch SD (3 service types) + TPD all- +// transports + UT, build a PK-keyed map, count transports by type. +// +// SD is queried via the visor's existing FetchServiceData plumbing +// (the visor knows its configured discovery URLs); a partial +// failure on one of the three SD types or on UT/TPD doesn't fail +// the whole call — the missing slice is treated as empty so the +// table still renders with what we got. +func (v *Visor) computeNetworkView() *NetworkViewResponse { + type sdEntry struct { + Address string `json:"address"` + Geo struct { + Country string `json:"country"` + } `json:"geo"` + Version string `json:"version"` + } + + fetchSD := func(serviceType string) []sdEntry { + body, err := v.FetchServiceData("sd", "/api/services?type="+serviceType) + if err != nil { + return nil + } + var es []sdEntry + if err := json.Unmarshal(body, &es); err != nil { + return nil + } + return es + } + + proxyEntries := fetchSD(servicedisc.ServiceTypeProxy) + vpnEntries := fetchSD(servicedisc.ServiceTypeVPN) + visorEntries := fetchSD(servicedisc.ServiceTypeVisor) + + // Service map by PK + type serviceInfo struct { + PK string + DisplayPK string + Country string + Version string + Services []string + } + serviceMap := make(map[string]*serviceInfo) + mergeIn := func(entries []sdEntry, kind string, withDisplayPK bool) { + for _, e := range entries { + pk := strings.Split(e.Address, ":")[0] + s := serviceMap[pk] + if s == nil { + s = &serviceInfo{PK: pk, Country: e.Geo.Country, Version: e.Version} + if withDisplayPK { + s.DisplayPK = e.Address + } + serviceMap[pk] = s + } else { + if s.Country == "" { + s.Country = e.Geo.Country + } + if s.Version == "" { + s.Version = e.Version + } + if withDisplayPK && s.DisplayPK == "" { + s.DisplayPK = e.Address + } + } + s.Services = append(s.Services, kind) + } + } + mergeIn(proxyEntries, "proxy", false) + mergeIn(vpnEntries, "vpn", false) + mergeIn(visorEntries, "visor", true) + + // UT — uptimes?v=v2 returns [{pk, on}, ...] + type utEntry struct { + PK string `json:"pk"` + On bool `json:"on"` + } + utStatus := make(map[string]string) + if body, err := v.FetchServiceData("ut", "/uptimes?v=v2"); err == nil { + var es []utEntry + if err := json.Unmarshal(body, &es); err == nil { + for _, ut := range es { + if ut.On { + utStatus[ut.PK] = "online" + } else { + utStatus[ut.PK] = "offline" + } + } + } + } + + // TPD — all-transports + type tpEntry struct { + Edges []string `json:"edges"` + Type string `json:"type"` + } + type tpCount struct { + STCPR, SUDPH, DMSG, STCP, Total int + } + tpMap := make(map[string]*tpCount) + if body, err := v.FetchServiceData("tpd", "/all-transports"); err == nil { + var tps []tpEntry + if err := json.Unmarshal(body, &tps); err == nil { + for _, tp := range tps { + for _, edge := range tp.Edges { + if tpMap[edge] == nil { + tpMap[edge] = &tpCount{} + } + switch tp.Type { + case "stcpr": + tpMap[edge].STCPR++ + case "sudph": + tpMap[edge].SUDPH++ + case "dmsg": + tpMap[edge].DMSG++ + case "stcp": + tpMap[edge].STCP++ + } + tpMap[edge].Total++ + } + } + } + } + + // Combine + out := make([]NetworkViewEntry, 0, len(serviceMap)+16) + for pk, info := range serviceMap { + c := tpMap[pk] + if c == nil { + c = &tpCount{} + } + display := pk + if info.DisplayPK != "" { + display = info.DisplayPK + } + out = append(out, NetworkViewEntry{ + PK: display, + Country: info.Country, + Version: info.Version, + Services: strings.Join(info.Services, ","), + STCPR: c.STCPR, + SUDPH: c.SUDPH, + DMSG: c.DMSG, + STCP: c.STCP, + Total: c.Total, + UTStatus: utStatus[pk], + }) + } + // PKs that have transports but aren't in SD (uncommon — visors + // without SD registration but with active TPD entries). + for pk, c := range tpMap { + if serviceMap[pk] != nil { + continue + } + out = append(out, NetworkViewEntry{ + PK: pk, + STCPR: c.STCPR, + SUDPH: c.SUDPH, + DMSG: c.DMSG, + STCP: c.STCP, + Total: c.Total, + UTStatus: utStatus[pk], + }) + } + + // Sort: highest total transports first; tiebreak alphabetical + // to keep a stable order across cached refetches. + sortNetworkEntries(out) + + return &NetworkViewResponse{ + Entries: out, + FetchedAt: time.Now(), + } +} + +func sortNetworkEntries(entries []NetworkViewEntry) { + // Tiny inlined sort — O(n²) is fine for hundreds of network + // entries and avoids pulling in a comparator type. + for i := 1; i < len(entries); i++ { + for j := i; j > 0 && less(entries[j], entries[j-1]); j-- { + entries[j], entries[j-1] = entries[j-1], entries[j] + } + } +} + +func less(a, b NetworkViewEntry) bool { + if a.Total != b.Total { + return a.Total > b.Total + } + return a.PK < b.PK +} + +// formatNetworkViewError is a placeholder for richer error +// reporting if multiple subsystems fail. Unused for now — callers +// just see "service unreachable" via FetchServiceData. +// +//nolint:unused +func formatNetworkViewError(err error) error { + return fmt.Errorf("network view aggregation failed: %w", err) +} diff --git a/pkg/visor/api_skychat.go b/pkg/visor/api_skychat.go new file mode 100644 index 0000000000..ed83685c82 --- /dev/null +++ b/pkg/visor/api_skychat.go @@ -0,0 +1,318 @@ +// Package visor pkg/visor/api_skychat.go +// +// Skychat support — password management + reverse proxy. +// +// The hypervisor UI surfaces skychat as a first-class tab. The +// browser doesn't talk to skychat directly; it goes through the +// hypervisor at /api/visors//skychat/* which forwards to the +// skychat app's local HTTP listener. The proxy attaches a +// per-startup random "internal token" so authenticated hvui +// sessions bypass any password the user set on the standalone +// :8001 surface. +package visor + +import ( + "crypto/rand" + "encoding/hex" + "errors" + "fmt" + "io" + "net/http" + "os" + "path/filepath" + "strings" + "sync" + "time" + + "github.com/skycoin/skywire/pkg/cipher" + "github.com/skycoin/skywire/pkg/skyenv" +) + +const ( + skychatPasswordFile = "skychat-password" + skychatPasswordArg = "--password-file" + skychatTokenArg = "--internal-token" + skychatAddrArg = "--addr" + + // passwordSaltLen mirrors the hypervisor user-store value so the + // hashing scheme is identical for both surfaces (see + // pkg/visor/usermanager/user.go). + skychatPasswordSaltLen = 16 + skychatMinPasswordLen = 6 + skychatMaxPasswordLen = 64 +) + +var ( + // skychatTokenOnce holds the per-process internal token used for + // hvui→skychat proxy auth bypass. Generated lazily on first + // access and re-used for the visor's lifetime so we don't need + // to coordinate token rotation with skychat restart sequencing. + skychatTokenOnce sync.Once + skychatToken string +) + +// SkychatPasswordIsSet reports whether a non-empty password file +// exists for the skychat app on this visor. +func (v *Visor) SkychatPasswordIsSet() (bool, error) { + path := v.skychatPasswordPath() + st, err := os.Stat(path) + if err != nil { + if os.IsNotExist(err) { + return false, nil + } + return false, err + } + return st.Size() > 0, nil +} + +// SetSkychatPassword writes a salted SHA256 hash of newPassword to +// the visor's skychat-password file and ensures the skychat app +// is launched with --password-file pointing at it. If a password +// is currently set, oldPassword must verify against it. Mirrors +// the hypervisor's ChangePassword shape. +func (v *Visor) SetSkychatPassword(oldPassword, newPassword string) error { + if v.appL == nil { + return ErrAppLauncherNotAvailable + } + if err := checkSkychatPassword(newPassword); err != nil { + return err + } + + path := v.skychatPasswordPath() + if hadPrev, err := readSkychatPassword(path); err != nil { + return err + } else if hadPrev != nil { + // A password is already set — require the old one. + if !verifySkychatPassword(hadPrev, oldPassword) { + return errors.New("incorrect current skychat password") + } + } + + salt := cipher.RandByte(skychatPasswordSaltLen) + hash := cipher.SumSHA256(append([]byte(newPassword), salt...)) + line := hex.EncodeToString(salt) + ":" + hex.EncodeToString(hash[:]) + if err := os.MkdirAll(filepath.Dir(path), 0o700); err != nil { //nolint:gosec + return err + } + if err := os.WriteFile(path, []byte(line), 0o600); err != nil { //nolint:gosec + return err + } + + return v.applySkychatLaunchArgs(path) +} + +// ClearSkychatPassword removes the password file and re-launches +// skychat without --password-file so the gate goes back to off. +func (v *Visor) ClearSkychatPassword(oldPassword string) error { + if v.appL == nil { + return ErrAppLauncherNotAvailable + } + path := v.skychatPasswordPath() + if cur, err := readSkychatPassword(path); err != nil { + return err + } else if cur != nil { + if !verifySkychatPassword(cur, oldPassword) { + return errors.New("incorrect current skychat password") + } + } + // path is filepath.Join(v.conf.LocalPath, "skychat-password") — + // visor-controlled, not user input. The G703 path-traversal flag + // is a false positive in this context. + if err := os.Remove(path); err != nil && !os.IsNotExist(err) { //nolint:gosec + return err + } + // Re-launch skychat with --password-file = "" so it knows the + // password is gone (UpdateAppArg with empty value clears the arg + // and restarts the app via launcher). + return v.conf.UpdateAppArg(v.appL, skyenv.SkychatName, skychatPasswordArg, "") +} + +// SkychatProxy proxies a request to the local skychat HTTP server. +// Returns the response status, headers and body. Used by the +// hypervisor's /api/visors//skychat/* mount. +// +// path must be the suffix after "/skychat/" (e.g. "sse", +// "history/peers"). The proxy attaches the internal token so the +// password gate is bypassed for in-process hvui calls. +func (v *Visor) SkychatProxy(method, path string, query string, headers http.Header, body io.Reader) (int, http.Header, []byte, error) { + addr := skychatLocalAddr(v) + if addr == "" { + return 0, nil, nil, errors.New("skychat addr not configured") + } + url := "http://" + addr + "/" + strings.TrimPrefix(path, "/") + if query != "" { + url += "?" + query + } + // SSRF check is suppressed: addr is the visor's own configured + // skychat bind address from the launcher config — not user + // input — and only flows to localhost in the default config. + req, err := http.NewRequest(method, url, body) //nolint:gosec // visor-controlled URL + if err != nil { + return 0, nil, nil, err + } + for k, vv := range headers { + // Skip Host / Connection — net/http will manage them. + if strings.EqualFold(k, "Host") || strings.EqualFold(k, "Connection") { + continue + } + for _, h := range vv { + req.Header.Add(k, h) + } + } + req.Header.Set("X-Skychat-Internal-Token", v.skychatInternalToken()) + + client := &http.Client{Timeout: 30 * time.Second} + resp, err := client.Do(req) //nolint:gosec // visor-controlled URL + if err != nil { + return 0, nil, nil, err + } + defer resp.Body.Close() //nolint:errcheck,gosec + respBody, err := io.ReadAll(resp.Body) + if err != nil { + return resp.StatusCode, resp.Header, nil, err + } + return resp.StatusCode, resp.Header, respBody, nil +} + +// SkychatLocalAddr returns the host:port the visor's skychat is +// configured to bind. Used by the UI to show / link the standalone +// surface. Empty when skychat isn't configured on this visor. +func (v *Visor) SkychatLocalAddr() (string, error) { + addr := skychatLocalAddr(v) + if addr == "" { + return "", errors.New("skychat not configured") + } + return addr, nil +} + +// applySkychatLaunchArgs ensures skychat will start with the +// password-file + internal-token args set. UpdateAppArg writes the +// arg to the running config and restarts the app — so the user's +// next page-load picks up the new gating without any manual step. +func (v *Visor) applySkychatLaunchArgs(passwordFile string) error { + if err := v.conf.UpdateAppArg(v.appL, skyenv.SkychatName, skychatTokenArg, v.skychatInternalToken()); err != nil { + return err + } + if err := v.conf.UpdateAppArg(v.appL, skyenv.SkychatName, skychatPasswordArg, passwordFile); err != nil { + return err + } + return nil +} + +func (v *Visor) skychatPasswordPath() string { + root := v.conf.LocalPath + if root == "" { + root = "." + } + return filepath.Join(root, skychatPasswordFile) +} + +func (v *Visor) skychatInternalToken() string { + skychatTokenOnce.Do(func() { + var b [24]byte + if _, err := rand.Read(b[:]); err != nil { + // Fall back to a time-derived value — still unguessable + // for the lifetime of the process, just less ideal. + skychatToken = fmt.Sprintf("t-%d", time.Now().UnixNano()) + return + } + skychatToken = hex.EncodeToString(b[:]) + }) + return skychatToken +} + +// skychatLocalAddr returns the host:port skychat will bind by +// reading its --addr arg out of the visor's launcher config. Falls +// back to the env-configured default. The "*:PORT" form (used by +// the docker integration configs) is rewritten to "0.0.0.0:PORT" +// so a Go HTTP client can reach it from the visor process. +func skychatLocalAddr(v *Visor) string { + addr := readAppArg(v, skyenv.SkychatName, skychatAddrArg) + if addr == "" { + addr = skyenv.SkychatAddr + } + switch { + case strings.HasPrefix(addr, "*:"): + return "127.0.0.1:" + strings.TrimPrefix(addr, "*:") + case strings.HasPrefix(addr, ":"): + return "127.0.0.1" + addr + default: + return addr + } +} + +// readAppArg fetches the value of a "--name VALUE" / "-name VALUE" +// flag from an app's launcher config. Returns "" when the app or +// flag isn't present. +func readAppArg(v *Visor, appName, flag string) string { + if v.conf == nil || v.conf.Launcher == nil { + return "" + } + for _, app := range v.conf.Launcher.Apps { + if app.Name != appName { + continue + } + args := app.Args + for i := 0; i < len(args)-1; i++ { + a := args[i] + if a == flag || a == "-"+strings.TrimPrefix(flag, "--") { + return args[i+1] + } + } + } + return "" +} + +// readSkychatPassword reads the on-disk password record. Returns +// nil with no error when the file is absent or empty. +type skychatPasswordRecord struct { + salt []byte + hash cipher.SHA256 +} + +func readSkychatPassword(path string) (*skychatPasswordRecord, error) { + data, err := os.ReadFile(path) //nolint:gosec + if err != nil { + if os.IsNotExist(err) { + return nil, nil + } + return nil, err + } + line := strings.TrimSpace(string(data)) + if line == "" { + return nil, nil + } + parts := strings.SplitN(line, ":", 2) + if len(parts) != 2 { + return nil, errors.New("malformed skychat password file") + } + salt, err := hex.DecodeString(parts[0]) + if err != nil { + return nil, err + } + hashBytes, err := hex.DecodeString(parts[1]) + if err != nil { + return nil, err + } + rec := &skychatPasswordRecord{salt: salt} + if len(hashBytes) != len(rec.hash) { + return nil, errors.New("malformed skychat password hash") + } + copy(rec.hash[:], hashBytes) + return rec, nil +} + +func verifySkychatPassword(rec *skychatPasswordRecord, password string) bool { + if rec == nil { + return password == "" + } + got := cipher.SumSHA256(append([]byte(password), rec.salt...)) + return got == rec.hash +} + +func checkSkychatPassword(p string) error { + if len(p) < skychatMinPasswordLen || len(p) > skychatMaxPasswordLen { + return fmt.Errorf("skychat password length must be %d-%d chars", skychatMinPasswordLen, skychatMaxPasswordLen) + } + return nil +} diff --git a/pkg/visor/api_tpd_metrics_subscriber.go b/pkg/visor/api_tpd_metrics_subscriber.go new file mode 100644 index 0000000000..012d06c27e --- /dev/null +++ b/pkg/visor/api_tpd_metrics_subscriber.go @@ -0,0 +1,135 @@ +// Package visor pkg/visor/api_tpd_metrics_subscriber.go +// +// Visor-side CXO subscriber for TPD's network-wide transport metrics +// feed (the publisher lives in pkg/transport-discovery/api/cxo_metrics_publisher.go). +// +// The subscriber is lazily-created the first time the hvui asks for +// network/transports stats. Once running it stays connected and +// receives Root updates from TPD on the publisher's recompute +// cadence (~60s). The hvui handler reads the cached value via +// FetchTransportMetricsCXO; on a hit the response is served +// instantly with no DMSG round-trip, so a Transports tab open is +// effectively a redis-paid read on the publisher's tick rather than +// a per-tab full-payload HTTP fetch. +// +// When the publisher hasn't pushed anything yet (e.g. deployment +// hasn't been updated, or the subscriber just connected and the +// first OnUpdate callback hasn't fired) the cache lookup returns +// (nil, time.Time{}, ErrTPDMetricsNotReady) and the hvui handler +// falls through to the existing HTTP path. +package visor + +import ( + "errors" + "fmt" + "time" + + "github.com/skycoin/skywire/pkg/cxo/treestore" + "github.com/skycoin/skywire/pkg/skyenv" +) + +// ErrTPDMetricsNotReady is returned by FetchTransportMetricsCXO when +// the local subscriber hasn't received a payload for the requested +// day window yet (subscriber not yet running, hasn't received any +// Root, or TPD hasn't published this window). Callers should fall +// back to the HTTP path on this error. +var ErrTPDMetricsNotReady = errors.New("tpd metrics: cxo cache miss") + +// tpdMetricsSubscriber is the long-lived state for the TPD-metrics +// subscriber. Created lazily on the first FetchTransportMetricsCXO +// call (via initTPDMetricsSubscriber) and kept alive for the +// visor's lifetime. +type tpdMetricsSubscriber struct { + sub *treestore.Subscriber + lastRootAt time.Time +} + +// FetchTransportMetricsCXO returns the cached metrics blob for the +// given day window from the TPD CXO subscriber. (bytes, lastRootAt, +// nil) on a hit; (nil, zero, ErrTPDMetricsNotReady) when the cache +// has nothing for that path yet. +// +// `days` should be one of the values the TPD publisher writes +// (currently 1, 7, 30); other values always miss because the +// publisher doesn't write them. +func (v *Visor) FetchTransportMetricsCXO(days int) ([]byte, time.Time, error) { + state, err := v.ensureTPDMetricsSubscriber() + if err != nil { + return nil, time.Time{}, err + } + if state == nil || state.sub == nil { + return nil, time.Time{}, ErrTPDMetricsNotReady + } + path := fmt.Sprintf("metrics/days/%d", days) + body, ok := state.sub.Get(path) + if !ok || len(body) == 0 { + return nil, time.Time{}, ErrTPDMetricsNotReady + } + v.tpdMetricsSubMu.RLock() + ts := state.lastRootAt + v.tpdMetricsSubMu.RUnlock() + return body, ts, nil +} + +// ensureTPDMetricsSubscriber lazily constructs the subscriber on +// first use. Returns nil + nil when the visor has no DMSG client or +// no parseable TPD CXO peer (the caller treats both as a cache miss +// and falls through to HTTP). +func (v *Visor) ensureTPDMetricsSubscriber() (*tpdMetricsSubscriber, error) { + v.tpdMetricsSubMu.RLock() + state := v.tpdMetricsSub + v.tpdMetricsSubMu.RUnlock() + if state != nil { + return state, nil + } + + v.tpdMetricsSubMu.Lock() + defer v.tpdMetricsSubMu.Unlock() + // Double-check under the write lock. + if v.tpdMetricsSub != nil { + return v.tpdMetricsSub, nil + } + if v.dmsgC == nil { + return nil, nil //nolint:nilnil // intentional: caller treats nil state as "no subscriber" + } + tpdPK, ok := tpdCXOPeer(v) + if !ok { + return nil, nil //nolint:nilnil + } + + sub, err := treestore.NewSubscriber(v.dmsgC, tpdPK, treestore.SubConfig{ + InMemoryDB: true, + DmsgPort: skyenv.DmsgTPDMetricsCXOPort, + }) + if err != nil { + return nil, fmt.Errorf("create tpd metrics subscriber: %w", err) + } + + state = &tpdMetricsSubscriber{sub: sub} + sub.SetPrefixes([]string{"metrics/days/"}) + sub.OnUpdate(func(_ []treestore.UpdateEvent) { + v.tpdMetricsSubMu.Lock() + if v.tpdMetricsSub != nil { + v.tpdMetricsSub.lastRootAt = time.Now() + } + v.tpdMetricsSubMu.Unlock() + }) + if err := sub.Connect(tpdPK); err != nil { + _ = sub.Close() //nolint:errcheck + return nil, fmt.Errorf("dial tpd metrics publisher: %w", err) + } + v.tpdMetricsSub = state + return state, nil +} + +// closeTPDMetricsSubscriber tears down the subscriber on visor close. +// Safe to call multiple times. +func (v *Visor) closeTPDMetricsSubscriber() { + v.tpdMetricsSubMu.Lock() + state := v.tpdMetricsSub + v.tpdMetricsSub = nil + v.tpdMetricsSubMu.Unlock() + if state != nil && state.sub != nil { + _ = state.sub.Close() //nolint:errcheck + } +} diff --git a/pkg/visor/api_visor.go b/pkg/visor/api_visor.go index 0c19666ccf..af8bd06df8 100644 --- a/pkg/visor/api_visor.go +++ b/pkg/visor/api_visor.go @@ -384,3 +384,33 @@ func (v *Visor) RuntimeLogs() (string, error) { builder.WriteString("]") return builder.String(), nil } + +// RuntimeLogsDelta is the diff-streaming response shape: only the +// entries newer than the caller's cursor, plus the new cursor and +// a count of entries the caller missed because they aged out of +// the ring buffer between calls (0 when keeping up). +type RuntimeLogsDelta struct { + // Entries is the JSON-encoded log lines (each is one full JSON + // object, same shape returned by RuntimeLogs's array elements). + Entries []string `json:"entries"` + // Latest is the highest log_line currently buffered. Pass it as + // `since` on the next call to receive only newly-arrived entries. + Latest int64 `json:"latest"` + // Dropped tells the caller how many entries they missed since + // their last cursor (because the buffer wrapped past them). + // Zero when the caller is keeping up with the poll cadence. + Dropped int64 `json:"dropped"` +} + +// RuntimeLogsSince returns only entries whose log_line is strictly +// greater than since. Used for diff-based live tailing of the +// runtime-logs buffer; pass the previous response's Latest as +// `since` to fetch only the new entries since the last poll. +func (v *Visor) RuntimeLogsSince(since int64) (RuntimeLogsDelta, error) { + logs, dropped, latest := v.logstore.GetLogsSince(since) + return RuntimeLogsDelta{ + Entries: logs, + Latest: latest, + Dropped: dropped, + }, nil +} diff --git a/pkg/visor/hypervisor.go b/pkg/visor/hypervisor.go index 57fea14deb..5b62482f74 100644 --- a/pkg/visor/hypervisor.go +++ b/pkg/visor/hypervisor.go @@ -406,6 +406,8 @@ func (hv *Hypervisor) makeMux() chi.Router { r.Get("/about", hv.getAbout()) r.Get("/dmsg", hv.getDmsg()) r.Get("/service-health", hv.getServiceHealth()) + r.Get("/route-setup-nodes/stats", hv.getRSNRemoteStats()) + r.Get("/network/transports", hv.getNetworkTransports()) r.Get("/dmsg/sessions", hv.getDmsgSessions()) r.Post("/dmsg/connect-all", hv.postDmsgConnectAll()) r.Put("/dmsg/sessions-count", hv.putDmsgSessionsCount()) @@ -413,6 +415,8 @@ func (hv *Hypervisor) makeMux() chi.Router { r.Get("/lan-dmsg-server", hv.getLANDmsgServer()) r.Get("/visors", hv.getVisors()) r.Get("/visors-summary", hv.getAllVisorsSummary()) + r.Get("/network-view", hv.getNetworkView()) + r.Get("/reward-rules", hv.getRewardRules()) r.Get("/visors/{pk}", hv.getVisor()) r.Get("/visors/{pk}/summary", hv.getVisorSummary()) r.Get("/visors/{pk}/health", hv.getHealth()) @@ -439,6 +443,8 @@ func (hv *Hypervisor) makeMux() chi.Router { r.Get("/visors/{pk}/routegroups", hv.getRouteGroups()) r.Post("/visors/{pk}/shutdown", hv.shutdown()) r.Get("/visors/{pk}/runtime-logs", hv.getRuntimeLogs()) + r.Get("/visors/{pk}/runtime-stats", hv.getRuntimeStats()) + r.Get("/visors/{pk}/host-stats", hv.getHostStats()) r.Post("/visors/{pk}/min-hops", hv.postMinHops()) r.Get("/visors/{pk}/persistent-transports", hv.getPersistentTransports()) r.Put("/visors/{pk}/persistent-transports", hv.putPersistentTransports()) @@ -471,6 +477,21 @@ func (hv *Hypervisor) makeMux() chi.Router { r.Get("/visors/{pk}/skynet-forwards", hv.getSkynetForwards()) r.Post("/visors/{pk}/skynet-forwards/connect", hv.postSkynetConnect()) r.Post("/visors/{pk}/skynet-forwards/disconnect", hv.postSkynetDisconnect()) + + // Per-visor DMSG settings (used by the per-visor DMSG + // tab in the hvui — supersedes the home-level + // /api/dmsg/* endpoints which were local-visor-only). + r.Get("/visors/{pk}/dmsg/sessions", hv.getVisorDmsgSessions()) + r.Post("/visors/{pk}/dmsg/connect-all", hv.postVisorDmsgConnectAll()) + r.Put("/visors/{pk}/dmsg/sessions-count", hv.putVisorDmsgSessionsCount()) + + // Skychat password management. + r.Get("/visors/{pk}/skychat/password", hv.getSkychatPassword()) + r.Put("/visors/{pk}/skychat/password", hv.putSkychatPassword()) + r.Delete("/visors/{pk}/skychat/password", hv.deleteSkychatPassword()) + // Skychat reverse-proxy: forward all calls under + // /skychat/proxy/* to the local skychat HTTP server. + r.HandleFunc("/visors/{pk}/skychat/proxy/*", hv.skychatProxyHandler()) }) }) diff --git a/pkg/visor/hypervisor_handlers_admin.go b/pkg/visor/hypervisor_handlers_admin.go index 0b0532c9fe..b091742907 100644 --- a/pkg/visor/hypervisor_handlers_admin.go +++ b/pkg/visor/hypervisor_handlers_admin.go @@ -5,6 +5,7 @@ import ( "fmt" "io" "net/http" + "strconv" "time" "github.com/go-chi/chi/v5" @@ -28,6 +29,27 @@ func (hv *Hypervisor) shutdown() http.HandlerFunc { func (hv *Hypervisor) getRuntimeLogs() http.HandlerFunc { return hv.withCtx(hv.visorCtx, func(w http.ResponseWriter, r *http.Request, ctx *httpCtx) { + // Diff-streaming mode: caller passes ?since=N to receive + // only entries with log_line > N. Returns the + // RuntimeLogsDelta JSON shape ({entries, latest, dropped}). + // When ?since is absent, the legacy full-buffer array shape + // is returned for back-compat with existing callers (curl, + // CLI clients without the cursor wired). + if sinceStr := r.URL.Query().Get("since"); sinceStr != "" { + since, parseErr := strconv.ParseInt(sinceStr, 10, 64) + if parseErr != nil { + httputil.WriteJSON(w, r, http.StatusBadRequest, fmt.Errorf("invalid since: %w", parseErr)) + return + } + delta, err := ctx.API.RuntimeLogsSince(since) + if err != nil { + httputil.WriteJSON(w, r, http.StatusInternalServerError, err) + return + } + httputil.WriteJSON(w, r, http.StatusOK, delta) + return + } + logs, err := ctx.API.RuntimeLogs() if err != nil { httputil.WriteJSON(w, r, http.StatusInternalServerError, err) @@ -218,6 +240,32 @@ func (hv *Hypervisor) getIsPublic() http.HandlerFunc { }) } +// getRuntimeStats — Go-runtime metrics for the visor process. +// Polled by the hypervisor UI's Resource Monitor "Process" tab. +func (hv *Hypervisor) getRuntimeStats() http.HandlerFunc { + return hv.withCtx(hv.visorCtx, func(w http.ResponseWriter, r *http.Request, ctx *httpCtx) { + stats, err := ctx.API.RuntimeStats() + if err != nil { + httputil.WriteJSON(w, r, http.StatusInternalServerError, err) + return + } + httputil.WriteJSON(w, r, http.StatusOK, stats) + }) +} + +// getHostStats — psutil-style host metrics (CPU%, mem, disk, net, +// visor process). Polled by the Resource Monitor "Host" tab. +func (hv *Hypervisor) getHostStats() http.HandlerFunc { + return hv.withCtx(hv.visorCtx, func(w http.ResponseWriter, r *http.Request, ctx *httpCtx) { + stats, err := ctx.API.HostStats() + if err != nil { + httputil.WriteJSON(w, r, http.StatusInternalServerError, err) + return + } + httputil.WriteJSON(w, r, http.StatusOK, stats) + }) +} + func (hv *Hypervisor) getRuntimeConfig() http.HandlerFunc { return hv.withCtx(hv.visorCtx, func(w http.ResponseWriter, r *http.Request, ctx *httpCtx) { configJSON, err := ctx.API.GetRuntimeConfig() diff --git a/pkg/visor/hypervisor_handlers_dmsg.go b/pkg/visor/hypervisor_handlers_dmsg.go index 21e071e933..392b6beaa5 100644 --- a/pkg/visor/hypervisor_handlers_dmsg.go +++ b/pkg/visor/hypervisor_handlers_dmsg.go @@ -99,6 +99,59 @@ func (hv *Hypervisor) putDmsgSessionsCount() http.HandlerFunc { } } +// --- Per-visor variants used by the hvui's per-visor DMSG tab. --- +// withCtx + visorCtx hands us an API value that is either the local +// visor (directly) or an rpcClient to a remote visor — either way, +// calling DmsgSessions / DmsgConnectAll / SetDmsgSessionsCount on it +// reaches the right backend. (The HVDmsg* dispatchers exist for the +// nested-hypervisor case which doesn't apply to the hvui.) + +func (hv *Hypervisor) getVisorDmsgSessions() http.HandlerFunc { + return hv.withCtx(hv.visorCtx, func(w http.ResponseWriter, r *http.Request, ctx *httpCtx) { + sessions, err := ctx.API.DmsgSessions() + if err != nil { + httputil.WriteJSON(w, r, http.StatusInternalServerError, map[string]string{"error": err.Error()}) + return + } + if sessions == nil { + httputil.WriteJSON(w, r, http.StatusOK, &DmsgClientSessions{}) + return + } + httputil.WriteJSON(w, r, http.StatusOK, sessions) + }) +} + +func (hv *Hypervisor) postVisorDmsgConnectAll() http.HandlerFunc { + return hv.withCtx(hv.visorCtx, func(w http.ResponseWriter, r *http.Request, ctx *httpCtx) { + result, err := ctx.API.DmsgConnectAll() + if err != nil { + httputil.WriteJSON(w, r, http.StatusInternalServerError, map[string]string{"error": err.Error()}) + return + } + httputil.WriteJSON(w, r, http.StatusOK, result) + }) +} + +func (hv *Hypervisor) putVisorDmsgSessionsCount() http.HandlerFunc { + return hv.withCtx(hv.visorCtx, func(w http.ResponseWriter, r *http.Request, ctx *httpCtx) { + var req dmsgSessionsCountRequest + if err := httputil.ReadJSON(r, &req); err != nil { + httputil.WriteJSON(w, r, http.StatusBadRequest, map[string]string{"error": err.Error()}) + return + } + if req.Count < 0 { + httputil.WriteJSON(w, r, http.StatusBadRequest, map[string]string{"error": "count must be >= 0"}) + return + } + result, err := ctx.API.SetDmsgSessionsCount(req.Count) + if err != nil { + httputil.WriteJSON(w, r, http.StatusInternalServerError, map[string]string{"error": err.Error()}) + return + } + httputil.WriteJSON(w, r, http.StatusOK, result) + }) +} + func (hv *Hypervisor) getDmsgSummary() []dmsgtracker.DmsgClientSummary { hv.mu.RLock() pks := make([]cipher.PubKey, 0, len(hv.remoteVisors)+1) diff --git a/pkg/visor/hypervisor_handlers_rsn.go b/pkg/visor/hypervisor_handlers_rsn.go new file mode 100644 index 0000000000..ef724a91cc --- /dev/null +++ b/pkg/visor/hypervisor_handlers_rsn.go @@ -0,0 +1,96 @@ +// Package visor pkg/visor/hypervisor_handlers_rsn.go +// +// Per-RSN remote stats fetch for the hvui's Services Health page. +// Mirrors `skywire-cli route rsn-remote-stats` — for every RSN PK +// in EffectiveRouteSetupNodes the local visor's DmsgHTTP RPC is +// used to GET dmsg://:80/stats, the response is parsed back +// into a StatsSnapshot and the array is returned to the UI. +package visor + +import ( + "encoding/json" + "fmt" + "net/http" + "sync" + "time" + + "github.com/skycoin/skywire/pkg/cipher" + "github.com/skycoin/skywire/pkg/httputil" + "github.com/skycoin/skywire/pkg/router/setupmetrics" +) + +// RSNRemoteStat is the per-RSN entry returned by /api/route-setup-nodes/stats. +// Either Snapshot or Error is set; both being absent means the RSN +// returned a non-2xx status with no body. +type RSNRemoteStat struct { + PK cipher.PubKey `json:"pk"` + Snapshot *setupmetrics.StatsSnapshot `json:"snapshot,omitempty"` + Error string `json:"error,omitempty"` + // Status from the RSN's HTTP response (only set when Snapshot is + // nil and Error is empty — i.e. unexpected 2xx body that didn't + // parse, or non-2xx with no error message). + Status int `json:"status,omitempty"` +} + +// rsnRemoteStatsTimeout is the per-RSN deadline for the dmsg-http +// fetch. The fan-out is parallel, so the total wall-clock is +// max(per-rsn) rather than sum. +const rsnRemoteStatsTimeout = 8 * time.Second + +func (hv *Hypervisor) getRSNRemoteStats() http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if hv.visor == nil { + httputil.WriteJSON(w, r, http.StatusServiceUnavailable, []RSNRemoteStat{}) + return + } + pks := hv.visor.conf.EffectiveRouteSetupNodes() + out := make([]RSNRemoteStat, len(pks)) + + var wg sync.WaitGroup + for i, pk := range pks { + wg.Add(1) + go func(i int, pk cipher.PubKey) { + defer wg.Done() + out[i] = hv.fetchOneRSNStat(pk) + }(i, pk) + } + + // Bound the parallel fan-out by the per-RSN timeout — the + // goroutines don't share a context so the wait is just an + // upper bound on the slowest fetch. + done := make(chan struct{}) + go func() { wg.Wait(); close(done) }() + select { + case <-done: + case <-time.After(rsnRemoteStatsTimeout + 2*time.Second): + } + + httputil.WriteJSON(w, r, http.StatusOK, out) + } +} + +func (hv *Hypervisor) fetchOneRSNStat(pk cipher.PubKey) RSNRemoteStat { + entry := RSNRemoteStat{PK: pk} + url := fmt.Sprintf("dmsg://%s:80/stats", pk.Hex()) + resp, err := hv.visor.DmsgHTTP(DmsgHTTPRequest{ + URL: url, + Method: "GET", + }) + if err != nil { + entry.Error = err.Error() + return entry + } + if resp.StatusCode < 200 || resp.StatusCode >= 300 { + entry.Status = resp.StatusCode + entry.Error = fmt.Sprintf("HTTP %d", resp.StatusCode) + return entry + } + var snap setupmetrics.StatsSnapshot + if err := json.Unmarshal(resp.Body, &snap); err != nil { + entry.Status = resp.StatusCode + entry.Error = "unparseable response: " + err.Error() + return entry + } + entry.Snapshot = &snap + return entry +} diff --git a/pkg/visor/hypervisor_handlers_skychat.go b/pkg/visor/hypervisor_handlers_skychat.go new file mode 100644 index 0000000000..0cd0d2ddfe --- /dev/null +++ b/pkg/visor/hypervisor_handlers_skychat.go @@ -0,0 +1,116 @@ +// Package visor pkg/visor/hypervisor_handlers_skychat.go +// +// Hypervisor HTTP routes for skychat: password get/set/clear and a +// reverse proxy to the local skychat HTTP server. The proxy is +// what backs the hvui's "Chat" tab — the browser talks to the +// hypervisor (already authenticated), the hypervisor adds the +// internal-token header and forwards to localhost:. +package visor + +import ( + "io" + "net/http" + "strings" + + "github.com/skycoin/skywire/pkg/httputil" + "github.com/skycoin/skywire/pkg/visor/usermanager" +) + +func (hv *Hypervisor) getSkychatPassword() http.HandlerFunc { + return hv.withCtx(hv.visorCtx, func(w http.ResponseWriter, r *http.Request, ctx *httpCtx) { + set, err := ctx.API.SkychatPasswordIsSet() + if err != nil { + httputil.WriteJSON(w, r, http.StatusInternalServerError, err) + return + } + addr, _ := ctx.API.SkychatLocalAddr() //nolint:errcheck // best effort + httputil.WriteJSON(w, r, http.StatusOK, struct { + Set bool `json:"set"` + LocalAddr string `json:"local_addr,omitempty"` + }{Set: set, LocalAddr: addr}) + }) +} + +func (hv *Hypervisor) putSkychatPassword() http.HandlerFunc { + return hv.withCtx(hv.visorCtx, func(w http.ResponseWriter, r *http.Request, ctx *httpCtx) { + var rb struct { + OldPassword string `json:"old_password"` + NewPassword string `json:"new_password"` + } + if err := httputil.ReadJSON(r, &rb); err != nil { + if err != io.EOF { + hv.log(r).Warnf("putSkychatPassword: %v", err) + } + httputil.WriteJSON(w, r, http.StatusBadRequest, usermanager.ErrMalformedRequest) + return + } + if err := ctx.API.SetSkychatPassword(rb.OldPassword, rb.NewPassword); err != nil { + httputil.WriteJSON(w, r, http.StatusBadRequest, err) + return + } + httputil.WriteJSON(w, r, http.StatusOK, true) + }) +} + +func (hv *Hypervisor) deleteSkychatPassword() http.HandlerFunc { + return hv.withCtx(hv.visorCtx, func(w http.ResponseWriter, r *http.Request, ctx *httpCtx) { + // Accept the old password from either a JSON body or a + // query string — Angular's HttpClient DELETE doesn't + // naturally carry a body, so the hvui sends ?old_password=. + var rb struct { + OldPassword string `json:"old_password"` + } + _ = httputil.ReadJSON(r, &rb) //nolint:errcheck + if rb.OldPassword == "" { + rb.OldPassword = r.URL.Query().Get("old_password") + } + if err := ctx.API.ClearSkychatPassword(rb.OldPassword); err != nil { + httputil.WriteJSON(w, r, http.StatusBadRequest, err) + return + } + httputil.WriteJSON(w, r, http.StatusOK, true) + }) +} + +// skychatProxyHandler forwards every request under +// /api/visors//skychat/proxy/* to the local skychat HTTP server +// at the visor's configured skychat addr. The hypervisor is already +// authenticated; the proxy adds the internal-token header so any +// password gate skychat has set on the standalone :8001 surface is +// bypassed for in-process hvui calls. +// +// For now this only supports the local visor — proxying skychat +// for remote visors would need streaming RPC which net/rpc doesn't +// naturally do. Callers targeting a remote visor get 501. +func (hv *Hypervisor) skychatProxyHandler() http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if hv.visor == nil { + http.Error(w, "skychat proxy: no local visor", http.StatusNotImplemented) + return + } + path := r.URL.Path + idx := strings.Index(path, "/skychat/proxy/") + if idx < 0 { + http.Error(w, "bad skychat proxy URL", http.StatusBadRequest) + return + } + skychatPath := strings.TrimPrefix(path[idx+len("/skychat/proxy"):], "/") + + status, hdr, body, err := hv.visor.SkychatProxy(r.Method, skychatPath, r.URL.RawQuery, r.Header, r.Body) + if err != nil { + httputil.WriteJSON(w, r, http.StatusBadGateway, err) + return + } + for k, vv := range hdr { + lk := strings.ToLower(k) + if lk == "content-length" || lk == "connection" || lk == "transfer-encoding" { + continue + } + for _, h := range vv { + w.Header().Add(k, h) + } + } + w.WriteHeader(status) + _, _ = w.Write(body) //nolint:errcheck,gosec + } +} diff --git a/pkg/visor/hypervisor_handlers_tpd.go b/pkg/visor/hypervisor_handlers_tpd.go new file mode 100644 index 0000000000..47354df357 --- /dev/null +++ b/pkg/visor/hypervisor_handlers_tpd.go @@ -0,0 +1,120 @@ +// Package visor pkg/visor/hypervisor_handlers_tpd.go +// +// Network-wide transport metrics proxy for the hvui's Transports +// home tab. Three fetch strategies are tried in order: +// +// 1. CXO subscriber (instant when fresh) — the visor maintains a +// long-lived TreeStore subscriber to TPD's metrics-aggregate +// publisher (see api_tpd_metrics_subscriber.go). When the +// publisher has pushed a Root for the requested day window the +// subscriber's local cache returns it immediately, no DMSG +// round-trip per hvui open. +// 2. DMSG-HTTP — bypass the CXO path and ask TPD for /metrics over +// dmsghttp through the visor's existing DmsgHTTP RPC. +// 3. Plain HTTP fallback — last resort when DMSG isn't ready / +// TPD doesn't publish a DMSG address. +// +// The first strategy that returns 2xx wins; later strategies aren't +// tried unless the earlier one explicitly missed. +package visor + +import ( + "fmt" + "io" + "net/http" + "strconv" + "strings" + "time" + + "github.com/skycoin/skywire/deployment" + "github.com/skycoin/skywire/pkg/httputil" +) + +func (hv *Hypervisor) getNetworkTransports() http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if hv.visor == nil { + httputil.WriteJSON(w, r, http.StatusServiceUnavailable, + map[string]string{"error": "no local visor"}) + return + } + + // Bound days to the TPD's documented range. + days := 1 + if d := r.URL.Query().Get("days"); d != "" { + if n, err := strconv.Atoi(d); err == nil && n >= 0 && n <= 35 { + days = n + } + } + path := fmt.Sprintf("/metrics?days=%d&bandwidth=true&latency=true&edges=true", days) + + log := hv.visor.MasterLogger().PackageLogger("tpd_proxy") + + // Step 1: CXO subscriber cache. Hits when TPD has pushed a + // Root for this day window since visor startup. The header + // X-Skywire-Metrics-Source = cxo lets the UI surface the + // path used (handy for diagnosing slow loads). + if body, ts, err := hv.visor.FetchTransportMetricsCXO(days); err == nil && len(body) > 0 { + w.Header().Set("Content-Type", "application/json") + w.Header().Set("X-Skywire-Metrics-Source", "cxo") + if !ts.IsZero() { + w.Header().Set("X-Skywire-Metrics-Updated", ts.UTC().Format(time.RFC3339)) + } + _, _ = w.Write(body) //nolint:errcheck,gosec + return + } + + tpdHTTP := strings.TrimSuffix(hv.visor.conf.Transport.Discovery, "/") + tpdDmsg := strings.TrimSuffix(hv.visor.conf.Transport.DiscoveryDmsg, "/") + if tpdHTTP == "" { + tpdHTTP = strings.TrimSuffix(deployment.Prod.TransportDiscovery, "/") + } + if tpdDmsg == "" { + tpdDmsg = strings.TrimSuffix(deployment.Prod.TransportDiscoveryDmsg, "/") + } + + // Step 2: DMSG-HTTP via the visor's DmsgHTTP RPC. + if tpdDmsg != "" { + dmsgURL := tpdDmsg + path + log.Debugf("fetching TPD metrics via DMSG: %s", dmsgURL) + resp, err := hv.visor.DmsgHTTP(DmsgHTTPRequest{ + URL: dmsgURL, + Method: "GET", + }) + if err == nil && resp.StatusCode >= 200 && resp.StatusCode < 300 { + w.Header().Set("Content-Type", "application/json") + w.Header().Set("X-Skywire-Metrics-Source", "dmsg-http") + w.WriteHeader(resp.StatusCode) + _, _ = w.Write(resp.Body) //nolint:errcheck,gosec + return + } + if err != nil { + log.WithError(err).Warn("DMSG fetch failed, falling back to HTTP") + } else { + log.Warnf("DMSG fetch returned %d, falling back to HTTP", resp.StatusCode) + } + } + + // Step 3: plain HTTP. Same chain the CLI's FetchServiceURL uses. + if tpdHTTP != "" { + httpURL := tpdHTTP + path + log.Debugf("fetching TPD metrics via HTTP: %s", httpURL) + client := &http.Client{Timeout: 15 * time.Second} + resp, err := client.Get(httpURL) //nolint:gosec // operator-controlled URL from visor config + if err != nil { + httputil.WriteJSON(w, r, http.StatusBadGateway, + map[string]string{"error": "tpd unreachable: " + err.Error()}) + return + } + defer resp.Body.Close() //nolint:errcheck + body, _ := io.ReadAll(resp.Body) //nolint:errcheck + w.Header().Set("Content-Type", resp.Header.Get("Content-Type")) + w.Header().Set("X-Skywire-Metrics-Source", "http") + w.WriteHeader(resp.StatusCode) + _, _ = w.Write(body) //nolint:errcheck,gosec + return + } + + httputil.WriteJSON(w, r, http.StatusServiceUnavailable, + map[string]string{"error": "no TPD URL configured"}) + } +} diff --git a/pkg/visor/hypervisor_handlers_visors.go b/pkg/visor/hypervisor_handlers_visors.go index f2b7b560dc..c9d699eb8f 100644 --- a/pkg/visor/hypervisor_handlers_visors.go +++ b/pkg/visor/hypervisor_handlers_visors.go @@ -9,6 +9,7 @@ import ( "github.com/skycoin/skywire/pkg/cipher" "github.com/skycoin/skywire/pkg/httputil" "github.com/skycoin/skywire/pkg/visor/dmsgtracker" + "github.com/skycoin/skywire/rewards" ) // provides overview of all visors. @@ -114,6 +115,41 @@ func (hv *Hypervisor) getVisorSummary() http.HandlerFunc { }) } +// getNetworkView surfaces the SD/TPD/UT-aggregated network table +// the `cli sd` command prints. Hypervisor-scope (network-wide +// view, not per-visor); cached on the visor side for 5 minutes. +// Pass ?refresh=true to force the visor to re-aggregate before +// responding (used by the UI's manual-refresh button). +func (hv *Hypervisor) getNetworkView() http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + var ( + resp *NetworkViewResponse + err error + ) + if r.URL.Query().Get("refresh") == "true" { + resp, err = hv.visor.NetworkViewRefresh() + } else { + resp, err = hv.visor.NetworkView() + } + if err != nil { + httputil.WriteJSON(w, r, http.StatusInternalServerError, err) + return + } + httputil.WriteJSON(w, r, http.StatusOK, resp) + } +} + +// getRewardRules serves the embedded mainnet_rules.md text. Used +// by the hypervisor UI's reward-address area to surface the binary's +// own copy of the rules instead of an external link. +func (hv *Hypervisor) getRewardRules() http.HandlerFunc { + return func(w http.ResponseWriter, _ *http.Request) { + w.Header().Set("Content-Type", "text/plain; charset=utf-8") + w.WriteHeader(http.StatusOK) + _, _ = w.Write([]byte(rewards.MainnetRules)) //nolint:errcheck + } +} + func (hv *Hypervisor) getAllVisorsSummary() http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { // Get DMSG stats first (uses its own lock internally) diff --git a/pkg/visor/logstore/logstore.go b/pkg/visor/logstore/logstore.go index 2b3e408aa6..19a9f6415b 100644 --- a/pkg/visor/logstore/logstore.go +++ b/pkg/visor/logstore/logstore.go @@ -18,6 +18,17 @@ type Store interface { // returned number n means that n log entries have been dropped and the oldest // log entry is (n+1)th GetLogs() ([]string, int64) + // GetLogsSince returns stored entries whose log_line is strictly + // greater than since. The returned `dropped` is the number of + // entries the caller missed because they aged out of the ring + // buffer between calls (0 when the caller is keeping up). The + // returned `latest` is the highest log_line currently in the + // store — callers should pass it as `since` on the next call to + // receive only newly-arrived entries (diff streaming). + // + // since == 0 returns the entire buffer (equivalent to GetLogs). + // since >= latest returns an empty entry slice. + GetLogsSince(since int64) (entries []string, dropped int64, latest int64) } // MakeStore returns a new store that will hold up to max entries, @@ -62,6 +73,44 @@ func (s *store) GetLogs() ([]string, int64) { return logs, s.entryNum - s.cap } +// GetLogsSince returns entries whose log_line > since. See the +// Store interface comment for `dropped`/`latest` semantics. +// +// log_line is 1-indexed; line N is stored at index (N-1) % cap. +// The oldest still-buffered line when the buffer has wrapped is +// entryNum - cap + 1; older requests yield a non-zero `dropped` +// and start from the oldest available line. +func (s *store) GetLogsSince(since int64) ([]string, int64, int64) { + s.mu.RLock() + defer s.mu.RUnlock() + + if since < 0 { + since = 0 + } + if since >= s.entryNum { + return nil, 0, s.entryNum + } + + var oldestAvailable int64 = 1 + if s.entryNum > s.cap { + oldestAvailable = s.entryNum - s.cap + 1 + } + + startLine := since + 1 + var dropped int64 + if startLine < oldestAvailable { + dropped = oldestAvailable - startLine + startLine = oldestAvailable + } + + logs := make([]string, 0, s.entryNum-startLine+1) + for line := startLine; line <= s.entryNum; line++ { + idx := (line - 1) % s.cap + logs = append(logs, s.entries[idx]) + } + return logs, dropped, s.entryNum +} + // Levels implements logrus.Hook interface. It denotes log levels // that we are interested in func (s *store) Levels() []logrus.Level { diff --git a/pkg/visor/rpc.go b/pkg/visor/rpc.go index 590df8c26a..ed499059ce 100644 --- a/pkg/visor/rpc.go +++ b/pkg/visor/rpc.go @@ -232,6 +232,15 @@ type DeregisterServiceIn struct { PKs []cipher.PubKey ServiceType string } + +// SkychatPasswordChangeIn carries the old + new password for the +// hypervisor's "Skychat password" set/change flow. Mirrors the +// shape of usermanager.ChangePassword. +type SkychatPasswordChangeIn struct { + OldPassword string + NewPassword string +} + type ConnectIn struct { // Network selects the underlying transport for the reverse proxy. // "skynet" (default; empty string treated as skynet) or "dmsg". diff --git a/pkg/visor/rpc_client.go b/pkg/visor/rpc_client.go index f68928766a..d17f47a88e 100644 --- a/pkg/visor/rpc_client.go +++ b/pkg/visor/rpc_client.go @@ -666,6 +666,64 @@ func (rc *rpcClient) RuntimeLogs() (string, error) { return logs, err } +// RuntimeLogsSince calls RuntimeLogsSince. Pass the previous +// response's Latest as `since` to receive only newly-arrived +// entries; pass 0 to fetch the full buffer. +func (rc *rpcClient) RuntimeLogsSince(since int64) (RuntimeLogsDelta, error) { + var delta RuntimeLogsDelta + err := rc.Call("RuntimeLogsSince", &since, &delta) + return delta, err +} + +// HostStats calls HostStats. +func (rc *rpcClient) HostStats() (*HostStatsInfo, error) { + var stats HostStatsInfo + if err := rc.Call("HostStats", &struct{}{}, &stats); err != nil { + return nil, err + } + return &stats, nil +} + +// NetworkView calls NetworkView. +func (rc *rpcClient) NetworkView() (*NetworkViewResponse, error) { + var resp NetworkViewResponse + if err := rc.Call("NetworkView", &struct{}{}, &resp); err != nil { + return nil, err + } + return &resp, nil +} + +// SkychatPasswordIsSet calls SkychatPasswordIsSet. +func (rc *rpcClient) SkychatPasswordIsSet() (bool, error) { + var out bool + if err := rc.Call("SkychatPasswordIsSet", &struct{}{}, &out); err != nil { + return false, err + } + return out, nil +} + +// SetSkychatPassword calls SetSkychatPassword. +func (rc *rpcClient) SetSkychatPassword(oldPassword, newPassword string) error { + return rc.Call("SetSkychatPassword", &SkychatPasswordChangeIn{ + OldPassword: oldPassword, + NewPassword: newPassword, + }, &struct{}{}) +} + +// ClearSkychatPassword calls ClearSkychatPassword. +func (rc *rpcClient) ClearSkychatPassword(oldPassword string) error { + return rc.Call("ClearSkychatPassword", &oldPassword, &struct{}{}) +} + +// SkychatLocalAddr calls SkychatLocalAddr. +func (rc *rpcClient) SkychatLocalAddr() (string, error) { + var addr string + if err := rc.Call("SkychatLocalAddr", &struct{}{}, &addr); err != nil { + return "", err + } + return addr, nil +} + // RuntimeStats calls RuntimeStats. func (rc *rpcClient) RuntimeStats() (*RuntimeStatsInfo, error) { var stats RuntimeStatsInfo @@ -1460,6 +1518,15 @@ func (rc *rpcClient) HVServiceHealth(pk cipher.PubKey) ([]ServiceHealthEntry, er return out, nil } +// HVDmsgSessions reads the per-client dmsg sessions snapshot from a remote visor. +func (rc *rpcClient) HVDmsgSessions(pk cipher.PubKey) (*DmsgClientSessions, error) { + var out DmsgClientSessions + if err := rc.Call("HVDmsgSessions", &pk, &out); err != nil { + return nil, err + } + return &out, nil +} + // HVDmsgConnectAll triggers connect-all on a remote visor. func (rc *rpcClient) HVDmsgConnectAll(pk cipher.PubKey) (*DmsgConnectAllResult, error) { var out DmsgConnectAllResult diff --git a/pkg/visor/rpc_client_mock.go b/pkg/visor/rpc_client_mock.go index ca56730dfd..d5eb92f86e 100644 --- a/pkg/visor/rpc_client_mock.go +++ b/pkg/visor/rpc_client_mock.go @@ -787,6 +787,33 @@ func (mc *mockRPCClient) Exec(string) ([]byte, error) { return []byte("mock"), nil } +// RuntimeLogsSince implements API. +func (mc *mockRPCClient) RuntimeLogsSince(int64) (RuntimeLogsDelta, error) { + return RuntimeLogsDelta{}, nil +} + +// HostStats implements API. +func (mc *mockRPCClient) HostStats() (*HostStatsInfo, error) { + return &HostStatsInfo{}, nil +} + +// NetworkView implements API. +func (mc *mockRPCClient) NetworkView() (*NetworkViewResponse, error) { + return &NetworkViewResponse{}, nil +} + +// SkychatPasswordIsSet implements API. +func (mc *mockRPCClient) SkychatPasswordIsSet() (bool, error) { return false, nil } + +// SetSkychatPassword implements API. +func (mc *mockRPCClient) SetSkychatPassword(string, string) error { return nil } + +// ClearSkychatPassword implements API. +func (mc *mockRPCClient) ClearSkychatPassword(string) error { return nil } + +// SkychatLocalAddr implements API. +func (mc *mockRPCClient) SkychatLocalAddr() (string, error) { return "127.0.0.1:8001", nil } + // RuntimeLogs implements API. func (mc *mockRPCClient) RuntimeLogs() (string, error) { return "", nil @@ -1295,6 +1322,11 @@ func (mc *mockRPCClient) HVServiceHealth(_ cipher.PubKey) ([]ServiceHealthEntry, return nil, fmt.Errorf("not supported in mock") } +// HVDmsgSessions implements API. +func (mc *mockRPCClient) HVDmsgSessions(_ cipher.PubKey) (*DmsgClientSessions, error) { + return nil, fmt.Errorf("not supported in mock") +} + // HVDmsgConnectAll implements API. func (mc *mockRPCClient) HVDmsgConnectAll(_ cipher.PubKey) (*DmsgConnectAllResult, error) { return nil, fmt.Errorf("not supported in mock") diff --git a/pkg/visor/rpc_hypervisor_proxy.go b/pkg/visor/rpc_hypervisor_proxy.go index 8fbe0ca0c4..f47d8ad063 100644 --- a/pkg/visor/rpc_hypervisor_proxy.go +++ b/pkg/visor/rpc_hypervisor_proxy.go @@ -404,6 +404,20 @@ func (v *Visor) HVServiceHealth(pk cipher.PubKey) ([]ServiceHealthEntry, error) return sub.HVServiceHealth(pk) } +// HVDmsgSessions returns the per-client dmsg sessions snapshot for +// the visor identified by pk. Locally — short-circuits to the +// in-process visor; remotely — forwards over the hypervisor proxy. +func (v *Visor) HVDmsgSessions(pk cipher.PubKey) (*DmsgClientSessions, error) { + direct, sub, err := v.hvDispatch(pk) + if err != nil { + return nil, err + } + if direct != nil { + return direct.DmsgSessions() + } + return sub.HVDmsgSessions(pk) +} + // HVDmsgConnectAll triggers a one-shot connect-all on the visor identified by pk. func (v *Visor) HVDmsgConnectAll(pk cipher.PubKey) (*DmsgConnectAllResult, error) { direct, sub, err := v.hvDispatch(pk) diff --git a/pkg/visor/rpc_hypervisors.go b/pkg/visor/rpc_hypervisors.go index 9eb4b479e5..00d28debf5 100644 --- a/pkg/visor/rpc_hypervisors.go +++ b/pkg/visor/rpc_hypervisors.go @@ -183,6 +183,21 @@ func (r *RPC) HVServiceHealth(pk *cipher.PubKey, out *[]ServiceHealthEntry) (err return nil } +// HVDmsgSessions returns the per-client dmsg sessions snapshot of a remote visor. +func (r *RPC) HVDmsgSessions(pk *cipher.PubKey, out *DmsgClientSessions) (err error) { + defer rpcutil.LogCall(r.log, "HVDmsgSessions", pk)(out, &err) + v, ok := r.visor.(*Visor) + if !ok { + return fmt.Errorf("not a visor instance") + } + res, dErr := v.HVDmsgSessions(*pk) + if dErr != nil { + return dErr + } + *out = *res + return nil +} + // HVDmsgConnectAll triggers connect-all on a remote visor. func (r *RPC) HVDmsgConnectAll(pk *cipher.PubKey, out *DmsgConnectAllResult) (err error) { defer rpcutil.LogCall(r.log, "HVDmsgConnectAll", pk)(out, &err) diff --git a/pkg/visor/rpc_visor.go b/pkg/visor/rpc_visor.go index e7bfd45e15..98418329be 100644 --- a/pkg/visor/rpc_visor.go +++ b/pkg/visor/rpc_visor.go @@ -161,6 +161,67 @@ func (r *RPC) RuntimeLogs(_ *struct{}, out *string) (err error) { return err } +// RuntimeLogsSince returns only entries whose log_line is strictly +// greater than since. Used by the hypervisor UI for diff-based live +// tailing. Caller passes the previous response's Latest as `since`. +func (r *RPC) RuntimeLogsSince(since *int64, out *RuntimeLogsDelta) (err error) { + defer rpcutil.LogCall(r.log, "RuntimeLogsSince", since)(out, &err) + d, err := r.visor.RuntimeLogsSince(*since) + *out = d + return err +} + +// HostStats returns a host-level resource snapshot (CPU%, memory, +// disk, network, plus the visor process slice). Backs the +// hypervisor UI's Resource Monitor panel. +func (r *RPC) HostStats(_ *struct{}, out *HostStatsInfo) (err error) { + defer rpcutil.LogCall(r.log, "HostStats", nil)(out, &err) + stats, err := r.visor.HostStats() + if stats != nil { + *out = *stats + } + return err +} + +// NetworkView returns the SD/TPD/UT-aggregated network table that +// `cli sd` prints. Backs the hypervisor UI's Network tab. +func (r *RPC) NetworkView(_ *struct{}, out *NetworkViewResponse) (err error) { + defer rpcutil.LogCall(r.log, "NetworkView", nil)(out, &err) + resp, err := r.visor.NetworkView() + if resp != nil { + *out = *resp + } + return err +} + +// SkychatPasswordIsSet reports whether a password is currently set. +func (r *RPC) SkychatPasswordIsSet(_ *struct{}, out *bool) (err error) { + defer rpcutil.LogCall(r.log, "SkychatPasswordIsSet", nil)(out, &err) + v, err := r.visor.SkychatPasswordIsSet() + *out = v + return err +} + +// SetSkychatPassword sets / changes the skychat password. +func (r *RPC) SetSkychatPassword(in *SkychatPasswordChangeIn, _ *struct{}) (err error) { + defer rpcutil.LogCall(r.log, "SetSkychatPassword", nil)(nil, &err) + return r.visor.SetSkychatPassword(in.OldPassword, in.NewPassword) +} + +// ClearSkychatPassword removes the skychat password (gate goes off). +func (r *RPC) ClearSkychatPassword(oldPassword *string, _ *struct{}) (err error) { + defer rpcutil.LogCall(r.log, "ClearSkychatPassword", nil)(nil, &err) + return r.visor.ClearSkychatPassword(*oldPassword) +} + +// SkychatLocalAddr returns the host:port skychat is bound to. +func (r *RPC) SkychatLocalAddr(_ *struct{}, out *string) (err error) { + defer rpcutil.LogCall(r.log, "SkychatLocalAddr", nil)(out, &err) + addr, err := r.visor.SkychatLocalAddr() + *out = addr + return err +} + // GetConfigPath returns the filesystem path the visor loaded its config from. func (r *RPC) GetConfigPath(_ *struct{}, out *string) (err error) { defer rpcutil.LogCall(r.log, "GetConfigPath", nil)(out, &err) diff --git a/pkg/visor/static/473.112ef2b987479257.js b/pkg/visor/static/473.112ef2b987479257.js new file mode 100644 index 0000000000..df45a8caa2 --- /dev/null +++ b/pkg/visor/static/473.112ef2b987479257.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkskywire_manager=self.webpackChunkskywire_manager||[]).push([[473],{473(e){e.exports=JSON.parse('{"common":{"save":"Save","cancel":"Cancel","loading":"Loading\u2026","downloaded":"Downloaded","uploaded":"Uploaded","loading-error":"There was an error getting the data. Retrying...","operation-error":"There was an error trying to complete the operation.","no-connection-error":"There is no internet connection or connection to the Hypervisor.","error":"Error:","refreshed":"Data refreshed.","options":"Options","logout":"Logout","logout-error":"Error logging out.","logout-confirmation":"Are you sure you want to log out?","time-in-ms":"{{ time }}ms.","time-in-segs":"{{ time }}s.","ok":"Ok","yes":"Yes","no":"No","unknown":"Unknown","close":"Close","window-size-error":"The window is too narrow for the content.","data-update-problems":"Problem updating the data."},"labeled-element":{"edit-label":"Edit label","remove-label":"Remove label","go-to-settings":"Go to settings","view-all-labels":"View all labels","copy":"Copy","remove-label-confirmation":"Do you really want to remove the label?","unnamed-element":"Unnamed","unnamed-local-visor":"Local visor","local-element":"Local","tooltip":"Click to copy the entry or change the label","tooltip-with-text":"{{ text }} (Click to copy the entry or change the label)"},"labels":{"title":"Labels","info":"Labels you have entered to easily identify visors, transports and other elements, instead of having to read machine generated identifiers.","list-title":"Label list","label":"Label","id":"Element ID","type":"Type","delete-confirmation":"Are you sure you want to delete the label?","delete-selected-confirmation":"Are you sure you want to delete the selected labels?","delete":"Delete label","deleted":"Delete operation completed.","empty":"There aren\'t any saved labels.","empty-with-filter":"No label matches the selected filtering criteria.","filter-dialog":{"label":"The label must contain","id":"The id must contain","type":"The type must be","type-options":{"any":"Any","visor":"Visor","dmsg-server":"DMSG server","transport":"Transport"}}},"filters":{"filter-action":"Filter","filter-info":"Filter list.","press-to-remove":"(Press to remove the filters)","remove-confirmation":"Are you sure you want to remove the filters?"},"tables":{"title":"Order by","sorting-title":"Ordered by:","sort-by-value":"Value","sort-by-label":"Label","label":"(label)","inverted-order":"(inverted)"},"start":{"title":"Start","loading-error":"An error occurred while getting the initial data. Retrying..."},"node":{"title":"Visor details","not-found":"Visor not found.","resource-monitor":{"title":"Resource monitor","tab-host":"Host","tab-process":"Process","cpu":"CPU","memory":"Memory","disk":"Disk","net-rx":"Net rx","net-tx":"Net tx","threads":"Threads","heap":"Heap","goroutines":"Goroutines","gc":"GC rate"},"logs":{"title":"Runtime Logs","no-logs":"No runtime logs were found for this visor.","no-logs-for-filter":"No runtime logs matches the selected filter.","view-all":"View all logs in raw format >","view-rest":"View all {{ number }} elements in raw format >","selected-filter":"Showing:","filter-ignored":"The filter excluded {{ number }} entries","filter-title":"Filter","filter-all":"All logs","filter-debug":"Debug or more important","filter-info":"Info or more important","filter-warning":"Warning or more important","filter-error":"Error or more important","filter-faltal":"Faltal or more important","filter-panic":"Panic","live-on":"Live (pause)","live-off":"Paused (live)","dropped":"Skipped {{ count }} older entries that aged out of the visor\'s runtime buffer."},"statuses":{"online":"Online","online-tooltip":"The visor is online.","connecting":"Connecting","connecting-tooltip":"The visor is online, but still connecting to the uptime tracker.","unknown":"Unknown","unknown-tooltip":"The visor is online, but it has not been possible to determine if it is connected to the uptime tracker.","partially-online":"Online with problems","partially-online-tooltip":"The visor is online, but disconnected from the uptime tracker.","offline":"Offline","offline-tooltip":"The visor is offline."},"details":{"node-info":{"title":"Visor","title-local":"Local Visor","label":"Label:","public-key":"Public key:","symmetic-nat":"Symmetic NAT:","public-ip":"Public IP:","ip":"IP:","dmsg-servers":"DMSG servers:","connected":"connected","no-dmsg-server":"Not connected","ping":"Ping:","node-version":"Visor version:","config-version":"Config version:","os":"OS:","arch":"Architecture:","skybian-version":"Skybian version:","time":{"title":"Time online:","seconds":"a few seconds","minute":"1 minute","minutes":"{{ time }} minutes","hour":"1 hour","hours":"{{ time }} hours","day":"1 day","days":"{{ time }} days","week":"1 week","weeks":"{{ time }} weeks"}},"rewards-info":{"title":"Rewards","rewards-address":"Reward address:","not-registered":"Not registered","not-registered-info":"You have not specified a Skycoin address for receiving rewards for this visor. If you want to register the visor for receiving rewards, press the \\"Set address\\" button and set a Skycoin address.","open-in-explorer":"Open in blockchain explorer","set-address-button":"Set address","change-address-button":"Change address","show-rules":"Reward rules (embedded mainnet_rules.md)"},"transports-info":{"title":"Transport","total":"Total:","autoconnect":"Autoconnect:","autoconnect-info":"When enabled, the visor will automatically create the transports needed when a connection to a public visor is requested. If disabled, the transports will have to be created before being able to make the connection.","enabled":"Enabled","disabled":"Disabled","enable-button":"Enable","disable-button":"Disable","enable-confirmation":"Are you sure you want to enable the autoconnect feature?","disable-confirmation":"Are you sure you want to disable the autoconnect feature?","enable-done":"The autoconnect feature has been enabled.","disable-done":"The autoconnect feature has been disabled.","is-public":"Public Visor:","is-public-info":"When enabled, this visor registers as a public relay for other visors","public-enabled":"Enabled","public-disabled":"Disabled","public-enable-button":"Enable","public-disable-button":"Disable","public-enable-confirmation":"Are you sure you want to make this visor public?","public-disable-confirmation":"Are you sure you want to make this visor private?","public-enable-done":"This visor is now public.","public-disable-done":"This visor is now private."},"router-info":{"title":"Router","min-hops":"Min hops:","max-hops":"Max hops:","change-config-button":"Change configuration"},"node-health":{"title":"Health","services":"Services:","uptime-tracker":"Uptime tracker:","autoconnect":"Autoconnect:","transportability":"Transportability:","connected":"Connected","disconnected":"Disconnected"},"ports":{"title":"Ports"},"config":{"view-button":"View Config","title":"Runtime Configuration"},"tpviz":{"title":"Network Visualizer","open":"Open Transport Visualizer"},"node-traffic-data":"Traffic data"},"tabs":{"info":"Info","apps":"Apps","routing":"Routing","transports":"Transports","rewards":"Rewards","skynet":"Skynet","resources":"Resources","chat":"Skychat","dmsg":"DMSG"},"error-load":"An error occurred while refreshing the data. Retrying..."},"rewards-address-config":{"title":"Reward Address Configuration","info":"Here you can set to which Skycoin address you want the rewards to be sent. If you leave the address empty, the registration will be deleted and the visor will not receive rewards.","more-info-link":"(More info about the reward system)","address":"Address","address-error":"Please enter a valid Skycoin address.","save-config-button":"Save configuration","done":"Changes saved.","empty-warning":"The address in empty, so the registration will be deleted and no rewards will be received. Do you really want to continue?"},"router-config":{"title":"Router Configuration","info":"Here you can configure how many hops the connections must pass through other Skywire visors before reaching the final destination. NOTE: the changes will not affect the existing routes.","min-hops":"Min hops","min-hops-error":"Please enter a valid number.","save-config-button":"Save configuration","done":"Changes saved."},"nodes":{"title":"Visor list","dmsg-title":"DMSG","rewards-title":"Rewards","services-health-title":"Deployment","network-title":"Network","resources-title":"Resources","transports-title":"Transports","dmsg-settings-title":"DMSG settings","reward-address":"Reward Address","reward-total":"Week Total","reward-distributed":"Distributed","reward-pending":"Pending","rewards-loading":"Loading rewards...","modify-rewards-all":"Change rewards address","update-all":"Update all online visors","hypervisor":"Hypervisor","state":"State","state-tooltip":"Current state","label":"Label","key":"Key","ip":"IP","lan-ip":"LAN IP","public-ip":"Public IP","location":"Location","dmsg-server":"DMSG server","ping":"Ping","version":"Version","config-version":"Config","hypervisor-info":"This visor is the current Hypervisor.","copy-key":"Copy key","copy-dmsg":"Copy DMSG server key","copy-data":"Copy data","view-node":"View visor","delete-node":"Remove visor","delete-all-offline":"Remove all offline visors","error-load":"An error occurred while refreshing the list. Retrying...","empty":"There aren\'t any visors connected to this hypervisor.","empty-with-filter":"No visor matches the selected filtering criteria.","delete-node-confirmation":"Are you sure you want to remove the visor from the list?","delete-all-offline-confirmation":"Are you sure you want to remove all offline visors from the list?","delete-all-filtered-offline-confirmation":"All offline visors satisfying the current filtering criteria will be removed from the list. Are you sure you want to continue?","deleted":"Visor removed.","deleted-singular":"1 offline visor removed.","deleted-plural":"{{ number }} offline visors removed.","no-visors-to-update":"There are no visors to update.","no-visors-to-modify":"There are no visors to modify.","transports":"Transports","services":"Services","reward":"Reward","reward-set":"Reward address set","reward-not-set":"No reward address","ip-location":"IP / Location","visor-version":"Visor","config-label":"Config","filter-dialog":{"online":"The visor must be","label":"The label must contain","key":"The public key must contain","dmsg":"The DMSG server key must contain","online-options":{"any":"Online or offline","online":"Online","offline":"Offline"}}},"network-transports":{"loading":"Fetching transport metrics from TPD\u2026","summary":"{{transports}} transports \xb7 {{bandwidth}} network bandwidth ({{days}} days)","last-updated":"last fetched","days":"Window","view":"View","view-compact":"Compact","view-tree":"Tree","refresh":"Refresh","tp-id":"Transport ID","type":"Type","edge-a":"Edge A","edge-b":"Edge B","sent":"Sent","recv":"Recv","total":"Total","latency":"Latency"},"multi-resources":{"loading":"Polling visor host stats\u2026","summary":"{{count}} visors","last-updated":"last sample","visor":"Visor","cpu":"CPU","mem":"Memory","disk":"Disk","tx":"TX","rx":"RX","proc-rss":"Process RSS"},"services-health":{"loading":"Checking deployment services\u2026","all-ok":"All deployment services operational","degraded":"One or more deployment services are degraded","last-updated":"last checked","service":"Service","status":"Status","latency":"Latency","version":"Version","endpoint":"Endpoint","rsn-section":"Route Setup Nodes","rsn-empty":"No route setup nodes configured.","rsn-pk":"Public Key","rsn-success":"Successful","rsn-failed":"Failed","rsn-rate":"Success rate","rsn-latency-p50":"p50","rsn-latency-p95":"p95","rsn-latency-p99":"p99","rsn-active":"In flight","rsn-last-success":"Last success","rsn-last-failure":"Last failure","rsn-uptime":"Uptime","rsn-failure-reasons":"Top failure reasons","rsn-error":"Unreachable"},"skychat":{"title":"Skychat","connected":"Connected","disconnected":"Disconnected","no-history":"history is disabled (--persist not set)","empty":"No messages yet \u2014 incoming chats from connected peers will appear here.","peers":"Peers","peers-empty":"No peers yet. Send a message or wait for an incoming chat.","to":"Recipient PK","network":"Network","message":"Message","placeholder":"Type a message; Ctrl+Enter to send","send":"Send","password":{"set":"Set password","change":"Change password","clear":"Remove","hide":"Hide","saved":"Skychat password updated","cleared":"Skychat password removed","old":"Current password","new":"New password","confirm":"Repeat new password","help-unset":"Skychat is currently unprotected. Set a password to require basic auth on the standalone :8001 surface; this hypervisor session always bypasses it.","help-set":"A password is set on skychat\'s standalone :8001 surface. Change or remove it here.","errors":{"length":"Skychat password must be 6-64 characters","mismatch":"Passwords do not match","old-required":"Current password is required to remove the gate"}}},"network-view":{"loading":"Aggregating service-discovery, transport-discovery and uptime-tracker\u2026","last-updated":"last fetched","empty":"No visors match the current filters.","search":"Search","country":"Country","version":"Version","min-transports":"Min tps","online-only":"Online only","refresh":"Refresh now","col":{"pk":"PK","country":"Country","version":"Version","services":"Services","total":"Total","status":"UT"},"legend":{"offline":"offline (UT)","not-in-ut":"not in UT","low-transports":"online but <2 stcpr/sudph"}},"dmsg-settings":{"loading":"Loading DMSG session state\u2026","summary":"DMSG client sessions","last-updated":"last updated","connect-all":"Connect to all servers","sessions-count-label":"sessions_count","apply-count":"Apply","sessions":"sessions","no-sessions":"No connected sessions.","no-clients":"No DMSG clients running on this visor.","result-total":"total:","result-already":"already connected:","result-new":"newly connected:","result-failed":"failed"},"bulk-rewards":{"title":"Change reward address","info":"Enter the Skycoin address where you want to receive the rewards. The address will be set on all the selected visors. If you leave the address empty, the registration will be deleted and the visors will not receive rewards. You can also set the reward address of each node individually using the option on the visor details page.","more-info-link":"(More info about the reward system)","address":"New address","select-visors":"Visors to alter:","current-address":"Current address:","not-registered":"None (not registered on the reward program).","checking":"Checking...","error-checking":"Error checking:","processing":"Processing...","error-processing":"Error making the change:","done":"Change done.","perform-changes":"Perform changes","empty-warning":"The address in empty, so the registrations will be deleted and no rewards will be received. Do you really want to continue?"},"edit-label":{"label":"Label","done":"Label saved.","label-removed-warning":"The label was removed."},"settings":{"title":"Settings","checking-auth":"Checking authentication settings.","password":{"initial-config-help":"Use this option for setting the initial password. After a password has been set, it is not possible to use this option to modify it.","help":"Options for changing your password.","old-password":"Old password","new-password":"New password","repeat-password":"Repeat password","password-changed":"Password changed.","error-changing":"Error changing password.","initial-config":{"title":"Set initial password","password":"Password","repeat-password":"Repeat password","set-password":"Set password","done":"Password set. Please use it to access the system.","error":"Error. Please make sure you have not already set the password."},"errors":{"bad-old-password":"The provided old password is not correct.","old-password-required":"Old password is required.","new-password-error":"Password must be 6-64 characters long.","passwords-not-match":"Passwords do not match.","default-password":"Don\'t use the default password (1234)."}},"updater-config":{"open-link":"Show updater settings","open-confirmation":"The updater settings are for experienced users only. Are you sure you want to continue?","help":"Use this form for overriding the settings that will be used by the updater. All empty fields will be ignored. The settings will be used for all updating operations, no mater which element is being updated, so please be careful.","channel":"Channel","version":"Version","archive-url":"Archive URL","checksum-url":"Checksum URL","not-saved":"The changes have not been saved yet.","save":"Save changes","remove-settings":"Remove the settings","saved":"The custom settings have been saved.","removed":"The custom settings have been removed.","save-confirmation":"Are you sure you want to apply the custom settings?","remove-confirmation":"Are you sure you want to remove the custom settings?"},"change-password":"Change password","refresh-rate":"Refresh rate","refresh-rate-help":"Time the system waits to update the data automatically.","refresh-rate-confirmation":"Refresh rate changed.","seconds":"seconds"},"login":{"password":"Password","incorrect-password":"Incorrect password.","initial-config":"Configure initial launch"},"actions":{"menu":{"terminal":"Terminal","config":"Configuration","update":"Update","proxy":"Resolving Proxy","turn-off":"Turn off","logs":"View logs"},"update":{"confirmation":"A terminal will be opened in a new tab and the update procedure will be started automatically. Do you want to continue?"},"turn-off":{"confirmation":"Are you sure you want to turn off the visor?","done":"The visor is shutting down."},"terminal-options":{"full":"Full terminal","simple":"Simple terminal"},"terminal":{"title":"Terminal","input-start":"Skywire terminal for {{address}}","error":"Unexpected error while trying to execute the command."}},"update":{"title":"Update","error-title":"Error","processing":"Looking for updates...","no-update":"There is no update for the visor. The currently installed version is:","no-updates":"No new updates were found.","already-updating":"Some visors are already being updated:","with-error":"It was not possible to check the following visors:","update-available":"The following updates were found:","update-available-singular":"The following updates for 1 visor were found:","update-available-plural":"The following updates for {{ number }} visors were found:","update-available-additional-singular":"The following additional updates for 1 visor were found:","update-available-additional-plural":"The following additional updates for {{ number }} visors were found:","update-instructions":"Click the \'Install updates\' button to continue.","updating":"The update operation has been started, you can open this window again for checking the progress:","version-change":"From {{ currentVersion }} to {{ newVersion }}","selected-channel":"Selected channel:","downloaded-file-name-prefix":"Downloading: ","speed-prefix":"Speed: ","time-downloading-prefix":"Time downloading: ","time-left-prefix":"Aprox. time left: ","starting":"Preparing to update","finished":"Status connection finished","install":"Install updates"},"update-all":{"title":"Update","updatable-list-text":"Please press the buttons of the visors you want to update. A terminal will be opened in a new tab for each visor and the update procedure will be started automatically.","non-updatable-list-text":"The following visors can not be updated via the terminal:","update-button":"Update"},"apps":{"log":{"title":"Log","empty":"There are no log messages for the selected time range.","filter-button":"Only showing logs generated since:","view-all":"View all {{ totalLogs }} entries","filter":{"title":"Filter","filter":"Only show logs generated since","7-days":"The last 7 days","1-month":"The last 30 days","3-months":"The last 3 months","6-months":"The last 6 months","1-year":"The last year","all":"Show all"}},"apps-list":{"title":"Applications","title-official":"Official Applications","title-user":"User Applications","list-title":"Application list","app-name":"Name","port":"Port","state":"State","state-tooltip":"Current state","auto-start":"Auto start","empty-official":"This visor doesn\'t have any official applications.","empty-user":"This visor doesn\'t have any user applications.","empty-with-filter":"No app matches the selected filtering criteria.","disable-autostart":"Disable autostart","enable-autostart":"Enable autostart","autostart-disabled":"Autostart disabled","autostart-enabled":"Autostart enabled","unavailable-logs-error":"Unable to show the logs while the app is not running.","filter-dialog":{"state":"The state must be","name":"The name must contain","port":"The port must contain","autostart":"The autostart must be","state-options":{"any":"Running or stopped","running":"Running","stopped":"Stopped"},"autostart-options":{"any":"Enabled or disabled","enabled":"Enabled","disabled":"Disabled"}}},"user-app-settings":{"title":"{{ name }} (Settings)","info":"Here you can edit the app settings as name-value pairs. Please check the application docs to see which settings and values are supported by this app.","name":"Name {{ number }}","value":"Value {{ number }}","remove":"Remove","add":"Add setting","save":"Save","invalid-confirmation":"One or more settings do not have a name and will be ignored. Do you want to continue?","empty-confirmation":"The settings list is empty. Do you really want to continue?","changes-made":"The changes have been made."},"skychat-settings":{"title":"Skychat Settings","localhost-only":"Allow access from the local machine only","port":"Port","save":"Save","changes-made":"The changes have been made.","port-error":"Must be a valid number between 1025 and 65536.","non-localhost-confirmation":"This will allow to use the app from anywhere on the internet. Are you sure you vant to continue?"},"vpn-socks-server-settings":{"socks-title":"Skysocks Settings","vpn-title":"VPN-Server Settings","whitelist":"Allowed peers (public keys)","whitelist-help":"Comma- or whitespace-separated public keys. Empty = open to all authenticated peers.","whitelist-invalid-pk":"One or more entries is not a valid 66-character hex public key.","netifc":"Default network interface (optional)","secure-mode-check":"Use secure mode","secure-mode-info":"When active, the server doesn\'t allow client/server SSH and doesn\'t allow any traffic from VPN clients to the server local network.","save":"Save","set-whitelist-confirmation":"Apply this whitelist to the server? Only the listed peers will be able to connect.","clear-whitelist-confirmation":"The whitelist is empty. The server will accept connections from any authenticated peer. Continue?","changes-made":"The changes have been made."},"vpn-socks-client-settings":{"socks-title":"Skysocks-Client Settings","vpn-title":"VPN-Client Settings","discovery-tab":"Search","remote-visor-tab":"Enter manually","history-tab":"History","settings-tab":"Settings","use":"Use this data","change-note":"Change note","remove-entry":"Remove entry","note":"Note:","note-entered-manually":"Entered manually","note-obtained":"Obtained from the discovery service","key":"Key:","port":"Port:","location":"Location:","state-available":"Available","state-offline":"Offline","public-key":"Remote visor public key","password":"Password","password-history-warning":"Note: the password will not be saved in the history.","copy-pk-info":"Copy public key.","copied-pk-info":"The public key has been copied.","copy-pk-error":"There was a problem copying the public key.","no-elements":"Currently there are no elements to show. Please try again later.","no-elements-for-filters":"There are no elements that meet the filter criteria.","no-filter":"No filter has been selected","click-to-change":"Click to change","remote-key-length-error":"The public key must be 66 characters long.","remote-key-chars-error":"The public key must only contain hexadecimal characters.","save":"Save","remove-from-history-confirmation":"Are you sure you want to remove the entry from the history?","change-key-confirmation":"Are you sure you want to change the remote visor public key?","changes-made":"The changes have been made.","no-history":"This tab will show the last {{ number }} public keys used.","default-note-warning":"The default note has been used.","pagination-info":"{{ currentElementsRange }} of {{ totalElements }}","dns":"Custom DNS server IP address","dns-error":"Invalid value.","killswitch-check":"Activate killswitch","killswitch-info":"When active, all network connections will be disabled if the app is running but the VPN protection is interrupted (for temporary errors or any other problem). This avoids data leaks.","settings-changed-alert":" The changes have not been saved yet.","save-settings":"Save settings","change-note-dialog":{"title":"Change Note","note":"Note"},"password-dialog":{"title":"Enter Password","password":"Password","info":"You are being asked for a password because a password was set when the selected entry was created, but the it was not saved for security reasons. You can leave the password empty if needed.","continue-button":"Continue"},"filter-dialog":{"title":"Filters","country":"The country must be","any-country":"Any","location":"The location must contain","pub-key":"The public key must contain","apply":"Apply"}},"stop-app":"Stop","start-app":"Start","view-logs":"View logs","settings":"Settings","open":"Open","error":"An error has occured and it was not possible to perform the operation.","stop-confirmation":"Are you sure you want to stop the app?","stop-selected-confirmation":"Are you sure you want to stop the selected apps?","disable-autostart-confirmation":"Are you sure you want to disable autostart for the app?","enable-autostart-confirmation":"Are you sure you want to enable autostart for the app?","disable-autostart-selected-confirmation":"Are you sure you want to disable autostart for the selected apps?","enable-autostart-selected-confirmation":"Are you sure you want to enable autostart for the selected apps?","operation-completed":"Operation completed.","operation-unnecessary":"The selection already has the requested setting.","status-running":"Running","status-connecting":"Connecting","status-stopped":"Stopped","status-failed":"Ended with the following error: {{ error }}","status-running-tooltip":"App is currently running","status-connecting-tooltip":"App is currently connecting","status-stopped-tooltip":"App is currently stopped","status-failed-tooltip":"The app finished with the following error: {{ error }}"},"transports":{"title":"Transports","info":"Connections you have with remote Skywire visors, to allow local Skywire apps to communicate with apps running on those remote visors.","list-title":"Transport list","offline":"Offline","persistent":"Persistent","persistent-tooltip":"Persistent transports, which are created automatically when the visor is turned on and are automatically recreated in case of disconnection.","persistent-transport-tooltip":"This transport is persistent, so it is created automatically when the visor is turned on and automatically recreated in case of disconnection.","persistent-transport-button-tooltip":"This transport is persistent, so it is created automatically when the visor is turned on and automatically recreated in case of disconnection. Press to make non-persistent.","non-persistent-transport-button-tooltip":"Press to make this transport persistent. Persistent transports are created automatically when the visor is turned on and automatically recreated in case of disconnection.","make-persistent":"Make persistent","make-non-persistent":"Make non-persistent","make-selected-persistent":"Make all selected persistent","make-selected-non-persistent":"Make all selected non-persistent","changes-made":"Changes made.","no-changes-needed":"No changes were needed.","id":"ID","remote-node":"Remote","type":"Type","latency":"Latency","create":"Create transport","make-persistent-confirmation":"Are you sure you want to make the transport persistent?","make-non-persistent-confirmation":"Are you sure you want to make the transport non-persistent?","make-selected-persistent-confirmation":"Are you sure you want to make the selected transports persistent?","make-selected-non-persistent-confirmation":"Are you sure you want to make the selected transports non-persistent?","make-offline-non-persistent-confirmation":"Are you sure you want to make the transport non-persistent? It will not be shown in the list while offline anymore.","delete-confirmation":"Are you sure you want to delete the transport?","delete-persistent-confirmation":"This transport is persistent, so it may be recreated shortly after deletion. Are you sure you want to delete it?","delete-selected-confirmation":"Are you sure you want to delete the selected transports?","delete":"Delete transport","deleted":"Delete operation completed.","empty":"Visor doesn\'t have any transports.","empty-with-filter":"No transport matches the selected filtering criteria.","details":{"title":"Details","basic":{"title":"Basic info","persistent":"Persistent:","id":"ID:","local-pk":"Local public key:","remote-pk":"Remote public key:","type":"Type:"},"data":{"title":"Data transmission","uploaded":"Uploaded data:","downloaded":"Downloaded data:"}},"dialog":{"remote-key":"Remote public key","label":"Identification name (optional)","transport-type":"Transport type","make-persistent":"Make persistent","persistent-tooltip":"Persistent transports are created automatically when the visor is turned on and automatically recreated in case of disconnection.","only-persistent-created":"The persistent transport was created, but it may have not been activated.","success":"Transport created.","success-without-label":"The transport was created, but it was not possible to save the label.","errors":{"remote-key-length-error":"The remote public key must be 66 characters long.","remote-key-chars-error":"The remote public key must only contain hexadecimal characters.","transport-type-error":"The transport type is required."}},"filter-dialog":{"persistent":"The transport must be","id":"The id must contain","remote-node":"The remote key must contain","persistent-options":{"any":"Any","persistent":"Persistent","non-persistent":"Non-persistent"}}},"routes":{"title":"Routes","info":"Paths used to reach the remote visors to which transports have been established. Routes are automatically generated as needed.","list-title":"Route list","key":"Key","type":"Type","source":"Source","destination":"Destination","local-port":"Local port","remote-port":"Remote port","remote-pk":"Remote","next-rid":"Next RID","next-tp":"Next TP","keep-alive":"Keep-alive","delete-confirmation":"Are you sure you want to delete the route?","delete-selected-confirmation":"Are you sure you want to delete the selected routes?","delete":"Delete route","deleted":"Delete operation completed.","empty":"Visor doesn\'t have any routes.","empty-with-filter":"No route matches the selected filtering criteria.","details":{"title":"Details","basic":{"title":"Basic info","key":"Key:","rule":"Rule:"},"summary":{"title":"Rule summary","keep-alive":"Keep alive:","type":"Rule type:","key-route-id":"Key route ID:"},"specific-fields-titles":{"app":"App fields","forward":"Forward fields","intermediary-forward":"Intermediary forward fields"},"specific-fields":{"route-id":"Next route ID:","transport-id":"Next transport ID:","destination-pk":"Destination public key:","source-pk":"Source public key:","destination-port":"Destination port:","source-port":"Source port:"}},"filter-dialog":{"key":"The key must contain","type":"The type must be","source":"The source must contain","destination":"The destination must contain","any-type-option":"Any"}},"copy":{"tooltip":"Click to copy","tooltip-with-text":"{{ text }} (Click to copy)","copied":"Copied!"},"selection":{"select-all":"Select all","unselect-all":"Unselect all","delete-all":"Delete all selected elements","start-all":"Start all selected apps","stop-all":"Stop all selected apps","enable-autostart-all":"Enable autostart for all selected apps","disable-autostart-all":"Disable autostart for all selected apps"},"refresh-button":{"seconds":"Updated a few seconds ago","minute":"Updated 1 minute ago","minutes":"Updated {{ time }} minutes ago","hour":"Updated 1 hour ago","hours":"Updated {{ time }} hours ago","day":"Updated 1 day ago","days":"Updated {{ time }} days ago","week":"Updated 1 week ago","weeks":"Updated {{ time }} weeks ago","error-tooltip":"There was an error updating the data. Retrying automatically every {{ time }} seconds..."},"view-all-link":{"label":"View all {{ number }} elements"},"paginator":{"first":"First","last":"Last","total":"Total: {{ number }} pages","select-page-title":"Select page"},"confirmation":{"header-text":"Confirmation","confirm-button":"Yes","cancel-button":"No","close":"Close","error-header-text":"Error","done-header-text":"Done"},"language":{"title":"Select language"},"tabs-window":{"title":"Change tab"},"vpn":{"title":"VPN Control Panel","start":"Start","servers":"Servers","settings":"Settings","unnamed":"Unnamed","starting-blocked-server-error":"Unable to connect to the selected server because it has been added to the blocked servers list.","unexpedted-error":"An unexpected error occurred and the operation could not be completed.","remote-access-title":"It appears that you are accessing the system remotely","remote-access-text":"This application only allows you to manage the VPN protection of the device on which it was installed. Changes made with it will not affect remote devices like the one you seem to be using. Also, the displayed IP data may be incorrect.","server-change":{"busy-error":"The system is busy. Please wait.","backend-error":"It was not possible to change the server. Please make sure the public key is correct and the VPN app is running.","already-selected-warning":"The selected server is already being used.","change-server-while-connected-confirmation":"The VPN protection will be interrupted while changing the server and some data may be transmitted unprotected during the process. Do you want to continue?","start-same-server-confirmation":"You had already selected that server. Do you want to connect to it?"},"error-page":{"text":"The VPN client app is not available.","more-info":"It was not possible to connect to the VPN client app. This may be due to a configuration error, an unexpected problem with the visor or because you used an invalid public key in the URL.","text-pk":"Invalid configuration.","more-info-pk":"The application cannot be started because you have not specified the visor public key.","text-storage":"Error saving data.","more-info-storage":"There has been a conflict when trying to save the data and the application has been closed to prevent errors. This could happen if you open the application in more than one tab or window.","text-pk-change":"Invalid operation.","more-info-pk-change":"Please use this application to manage only one VPN client."},"connection-info":{"state-title":"Your connection is currently:","state-connecting":"Connecting","state-connecting-info":"The VPN protection is being activated.","state-connected":"Connected","state-connected-info":"The VPN protection is on.","state-disconnecting":"Disconnecting","state-disconnecting-info":"The VPN protection is being deactivated.","state-reconnecting":"Reconnecting","state-reconnecting-info":"The VPN protection is being restored.","state-disconnected":"Disconnected","state-disconnected-info":"The VPN protection is off.","state-info":"Current connection status.","latency-info":"Current latency.","upload-info":"Upload speed.","download-info":"Download speed."},"connection-error":{"text":"Connection error","info":"Problem connecting with the vpn app. Some data being displayed could be outdated."},"status-page":{"start-title":"Start VPN","no-server":"No server selected!","disconnect":"Disconnect","last-error":"Last error:","unknown-error":"Unknown error.","disconnect-confirmation":"Are you sure you want to stop the VPN protection?","upload-info":"Uploaded data stats.","download-info":"Downloaded data stats.","latency-info":"Latency stats.","total-data-label":"total","problem-connecting-error":"It was not possible to connect to the server. The server may be invalid or temporarily down.","problem-starting-error":"It was not possible to start the VPN. Please make sure the base VPN client app is running.","problem-stopping-error":"It was not possible to stop the VPN. Please make sure the base VPN client app is running.","generic-problem-error":"It was not possible to perform the operation. Please make sure the base VPN client app is running.","select-server-warning":"Please select a server first.","data":{"ip":"IP address:","ip-problem-info":"There was a problem trying to get the IP. Please verify it using an external service.","ip-country-problem-info":"There was a problem trying to get the country. Please verify it using an external service.","ip-refresh-info":"Refresh","ip-refresh-time-warning":"Please wait {{ seconds }} second(s) before refreshing the data.","ip-refresh-loading-warning":"Please wait for the previous operation to finish.","country":"Country:","server":"Server:","server-note":"Server note:","original-server-note":"Original server note:","local-pk":"Local visor public key:","remote-pk":"Remote visor public key:","unavailable":"Unavailable"}},"server-options":{"tooltip":"Options","connect-without-password":"Connect without password","connect-without-password-confirmation":"The connection will be made without the password. Are you sure you want to continue?","connect-using-password":"Connect using a password","connect-using-another-password":"Connect using another password","edit-name":"Custom name","edit-label":"Custom note","make-favorite":"Make favorite","make-favorite-confirmation":"Are you sure you want to mark this server as favorite? It will be removed from the blocked list.","make-favorite-done":"Added to the favorites list.","remove-from-favorites":"Remove from favorites","remove-from-favorites-done":"Removed from the favorites list.","block":"Block server","block-done":"Added to the blocked list.","block-confirmation":"Are you sure you want to block this server? It will be removed from the favorites list.","block-selected-confirmation":"Are you sure you want to block the currently selected server? All connections will be closed.","block-selected-favorite-confirmation":"Are you sure you want to block the currently selected server? All connections will be closed and it will be removed from the favorites list.","unblock":"Unblock server","unblock-done":"Removed from the blocked list.","remove-from-history":"Remove from history","remove-from-history-confirmation":"Are you sure you want to remove this server from the history?","remove-from-history-done":"Removed from history.","edit-value":{"name-title":"Custom Name","note-title":"Custom Note","name-label":"Custom name","note-label":"Custom note","apply-button":"Apply","changes-made-confirmation":"The change has been made."}},"server-conditions":{"selected-info":"This is the currently selected server.","blocked-info":"This server is in the blocked list.","favorite-info":"This server is in the favorites list.","history-info":"This server is in the server history.","has-password-info":"A password was set for connecting with this server."},"server-list":{"date-small-table-label":"Date","date-info":"Last time you used this server.","country-small-table-label":"Country","country-info":"Country where the server is located.","name-small-table-label":"Name","location-small-table-label":"Location","public-key-small-table-label":"Pk","public-key-info":"Server public key.","congestion-rating-small-table-label":"Congestion rating","congestion-rating-info":"Rating of the server related to how congested it tends to be.","congestion-small-table-label":"Congestion","congestion-info":"Current server congestion.","latency-rating-small-table-label":"Latency rating","latency-rating-info":"Rating of the server related to how much latency it tends to have.","latency-small-table-label":"Latency","latency-info":"Current server latency.","hops-small-table-label":"Hops","hops-info":"How many hops are needed for connecting with the server.","note-small-table-label":"Note","note-info":"Note about the server.","gold-rating-info":"Gold","silver-rating-info":"Silver","bronze-rating-info":"Bronze","notes-info":"Custom note: {{ custom }} - Original note: {{ original }}","empty-discovery":"Currently there are no VPN servers to show. Please try again later.","empty-history":"There is no history to show.","empty-favorites":"There are no favorite servers to show.","empty-blocked":"There are no blocked servers to show.","empty-with-filter":"No VPN server matches the selected filtering criteria.","add-manually-info":"Add server manually.","current-filters":"Current filters (press to remove)","none":"None","unknown":"Unknown","tabs":{"public":"Public","history":"History","favorites":"Favorites","blocked":"Blocked"},"add-server-dialog":{"title":"Enter manually","pk-label":"Server public key","password-label":"Server password (if any)","name-label":"Server name (optional)","note-label":"Personal note (optional)","pk-length-error":"The public key must be 66 characters long.","pk-chars-error":"The public key must only contain hexadecimal characters.","use-server-button":"Use server"},"password-dialog":{"title":"Enter Password","password-if-any-label":"Server password (if any)","password-label":"Server password","continue-button":"Continue"},"filter-dialog":{"country":"The country must be","name":"The name must contain","location":"The location must contain","public-key":"The public key must contain","congestion-rating":"The congestion rating must be","latency-rating":"The latency rating must be","rating-options":{"any":"Any","gold":"Gold","silver":"Silver","bronze":"Bronze"},"country-options":{"any":"Any"}}},"settings-page":{"setting-small-table-label":"Setting","value-small-table-label":"Value","killswitch":"Killswitch","killswitch-info":"When active, all network connections will be disabled if the app is running but the VPN protection is interrupted (for temporary errors or any other problem). This avoids data leaks.","get-ip":"Get IP info","get-ip-info":"When active, the application will use external services to obtain information about the current IP.","data-units":"Data units","data-units-info":"Allows to select the units that will be used to display the data transmission statistics.","minimum-hops":"Minimum hops","minimum-hops-info":"Allows to set the minimum number of hops the connections must pass through other Skywire visors before reaching the final destination.","dns":"Custom DNS server","dns-info":"Allows to use a custom DNS server, which could improve privacy and prevent sites from being blocked by the default DNS server of your ISP.","setting-none":"None","setting-on":"On","setting-off":"Off","working-warning":"The system is busy. Please wait for the previous operation to finish.","change-while-connected-confirmation":"The VPN protection will be interrupted while changing the setting. Do you want to continue?","data-units-modal":{"title":"Data Units","only-bits":"Bits for all stats","only-bytes":"Bytes for all stats","bits-speed-and-bytes-volume":"Bits for speed and bytes for volume (default)"}},"dns-config":{"title":"Custom DNS server","ip":"Custom DNS server IP address","save-config-button":"Save configuration","done":"Changes saved."}}}')}}]); \ No newline at end of file diff --git a/pkg/visor/static/473.9dde3f487a9cd6dc.js b/pkg/visor/static/473.9dde3f487a9cd6dc.js deleted file mode 100644 index 9dbba97c39..0000000000 --- a/pkg/visor/static/473.9dde3f487a9cd6dc.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkskywire_manager=self.webpackChunkskywire_manager||[]).push([[473],{473(e){e.exports=JSON.parse('{"common":{"save":"Save","cancel":"Cancel","downloaded":"Downloaded","uploaded":"Uploaded","loading-error":"There was an error getting the data. Retrying...","operation-error":"There was an error trying to complete the operation.","no-connection-error":"There is no internet connection or connection to the Hypervisor.","error":"Error:","refreshed":"Data refreshed.","options":"Options","logout":"Logout","logout-error":"Error logging out.","logout-confirmation":"Are you sure you want to log out?","time-in-ms":"{{ time }}ms.","time-in-segs":"{{ time }}s.","ok":"Ok","yes":"Yes","no":"No","unknown":"Unknown","close":"Close","window-size-error":"The window is too narrow for the content.","data-update-problems":"Problem updating the data."},"labeled-element":{"edit-label":"Edit label","remove-label":"Remove label","go-to-settings":"Go to settings","view-all-labels":"View all labels","copy":"Copy","remove-label-confirmation":"Do you really want to remove the label?","unnamed-element":"Unnamed","unnamed-local-visor":"Local visor","local-element":"Local","tooltip":"Click to copy the entry or change the label","tooltip-with-text":"{{ text }} (Click to copy the entry or change the label)"},"labels":{"title":"Labels","info":"Labels you have entered to easily identify visors, transports and other elements, instead of having to read machine generated identifiers.","list-title":"Label list","label":"Label","id":"Element ID","type":"Type","delete-confirmation":"Are you sure you want to delete the label?","delete-selected-confirmation":"Are you sure you want to delete the selected labels?","delete":"Delete label","deleted":"Delete operation completed.","empty":"There aren\'t any saved labels.","empty-with-filter":"No label matches the selected filtering criteria.","filter-dialog":{"label":"The label must contain","id":"The id must contain","type":"The type must be","type-options":{"any":"Any","visor":"Visor","dmsg-server":"DMSG server","transport":"Transport"}}},"filters":{"filter-action":"Filter","filter-info":"Filter list.","press-to-remove":"(Press to remove the filters)","remove-confirmation":"Are you sure you want to remove the filters?"},"tables":{"title":"Order by","sorting-title":"Ordered by:","sort-by-value":"Value","sort-by-label":"Label","label":"(label)","inverted-order":"(inverted)"},"start":{"title":"Start","loading-error":"An error occurred while getting the initial data. Retrying..."},"node":{"title":"Visor details","not-found":"Visor not found.","logs":{"title":"Runtime Logs","no-logs":"No runtime logs were found for this visor.","no-logs-for-filter":"No runtime logs matches the selected filter.","view-all":"View all logs in raw format >","view-rest":"View all {{ number }} elements in raw format >","selected-filter":"Showing:","filter-ignored":"The filter excluded {{ number }} entries","filter-title":"Filter","filter-all":"All logs","filter-debug":"Debug or more important","filter-info":"Info or more important","filter-warning":"Warning or more important","filter-error":"Error or more important","filter-faltal":"Faltal or more important","filter-panic":"Panic"},"statuses":{"online":"Online","online-tooltip":"The visor is online.","connecting":"Connecting","connecting-tooltip":"The visor is online, but still connecting to the uptime tracker.","unknown":"Unknown","unknown-tooltip":"The visor is online, but it has not been possible to determine if it is connected to the uptime tracker.","partially-online":"Online with problems","partially-online-tooltip":"The visor is online, but disconnected from the uptime tracker.","offline":"Offline","offline-tooltip":"The visor is offline."},"details":{"node-info":{"title":"Visor","title-local":"Local Visor","label":"Label:","public-key":"Public key:","symmetic-nat":"Symmetic NAT:","public-ip":"Public IP:","ip":"IP:","dmsg-servers":"DMSG servers:","connected":"connected","no-dmsg-server":"Not connected","ping":"Ping:","node-version":"Visor version:","config-version":"Config version:","os":"OS:","arch":"Architecture:","skybian-version":"Skybian version:","time":{"title":"Time online:","seconds":"a few seconds","minute":"1 minute","minutes":"{{ time }} minutes","hour":"1 hour","hours":"{{ time }} hours","day":"1 day","days":"{{ time }} days","week":"1 week","weeks":"{{ time }} weeks"}},"rewards-info":{"title":"Rewards","rewards-address":"Reward address:","not-registered":"Not registered","not-registered-info":"You have not specified a Skycoin address for receiving rewards for this visor. If you want to register the visor for receiving rewards, press the \\"Set address\\" button and set a Skycoin address.","open-in-explorer":"Open in blockchain explorer","set-address-button":"Set address","change-address-button":"Change address"},"transports-info":{"title":"Transport","total":"Total:","autoconnect":"Autoconnect:","autoconnect-info":"When enabled, the visor will automatically create the transports needed when a connection to a public visor is requested. If disabled, the transports will have to be created before being able to make the connection.","enabled":"Enabled","disabled":"Disabled","enable-button":"Enable","disable-button":"Disable","enable-confirmation":"Are you sure you want to enable the autoconnect feature?","disable-confirmation":"Are you sure you want to disable the autoconnect feature?","enable-done":"The autoconnect feature has been enabled.","disable-done":"The autoconnect feature has been disabled.","is-public":"Public Visor:","is-public-info":"When enabled, this visor registers as a public relay for other visors","public-enabled":"Enabled","public-disabled":"Disabled","public-enable-button":"Enable","public-disable-button":"Disable","public-enable-confirmation":"Are you sure you want to make this visor public?","public-disable-confirmation":"Are you sure you want to make this visor private?","public-enable-done":"This visor is now public.","public-disable-done":"This visor is now private."},"router-info":{"title":"Router","min-hops":"Min hops:","max-hops":"Max hops:","change-config-button":"Change configuration"},"node-health":{"title":"Health","services":"Services:","uptime-tracker":"Uptime tracker:","autoconnect":"Autoconnect:","transportability":"Transportability:","connected":"Connected","disconnected":"Disconnected"},"ports":{"title":"Ports"},"config":{"view-button":"View Config","title":"Runtime Configuration"},"tpviz":{"title":"Network Visualizer","open":"Open Transport Visualizer"},"node-traffic-data":"Traffic data"},"tabs":{"info":"Info","apps":"Apps","routing":"Routing","rewards":"Rewards","skynet":"Skynet"},"error-load":"An error occurred while refreshing the data. Retrying..."},"rewards-address-config":{"title":"Reward Address Configuration","info":"Here you can set to which Skycoin address you want the rewards to be sent. If you leave the address empty, the registration will be deleted and the visor will not receive rewards.","more-info-link":"(More info about the reward system)","address":"Address","address-error":"Please enter a valid Skycoin address.","save-config-button":"Save configuration","done":"Changes saved.","empty-warning":"The address in empty, so the registration will be deleted and no rewards will be received. Do you really want to continue?"},"router-config":{"title":"Router Configuration","info":"Here you can configure how many hops the connections must pass through other Skywire visors before reaching the final destination. NOTE: the changes will not affect the existing routes.","min-hops":"Min hops","min-hops-error":"Please enter a valid number.","save-config-button":"Save configuration","done":"Changes saved."},"nodes":{"title":"Visor list","dmsg-title":"DMSG","rewards-title":"Rewards","services-health-title":"Services health","dmsg-settings-title":"DMSG settings","reward-address":"Reward Address","reward-total":"Week Total","reward-distributed":"Distributed","reward-pending":"Pending","rewards-loading":"Loading rewards...","modify-rewards-all":"Change rewards address","update-all":"Update all online visors","hypervisor":"Hypervisor","state":"State","state-tooltip":"Current state","label":"Label","key":"Key","ip":"IP","lan-ip":"LAN IP","public-ip":"Public IP","location":"Location","dmsg-server":"DMSG server","ping":"Ping","version":"Version","config-version":"Config","hypervisor-info":"This visor is the current Hypervisor.","copy-key":"Copy key","copy-dmsg":"Copy DMSG server key","copy-data":"Copy data","view-node":"View visor","delete-node":"Remove visor","delete-all-offline":"Remove all offline visors","error-load":"An error occurred while refreshing the list. Retrying...","empty":"There aren\'t any visors connected to this hypervisor.","empty-with-filter":"No visor matches the selected filtering criteria.","delete-node-confirmation":"Are you sure you want to remove the visor from the list?","delete-all-offline-confirmation":"Are you sure you want to remove all offline visors from the list?","delete-all-filtered-offline-confirmation":"All offline visors satisfying the current filtering criteria will be removed from the list. Are you sure you want to continue?","deleted":"Visor removed.","deleted-singular":"1 offline visor removed.","deleted-plural":"{{ number }} offline visors removed.","no-visors-to-update":"There are no visors to update.","no-visors-to-modify":"There are no visors to modify.","transports":"Transports","services":"Services","reward":"Reward","reward-set":"Reward address set","reward-not-set":"No reward address","ip-location":"IP / Location","visor-version":"Visor","config-label":"Config","filter-dialog":{"online":"The visor must be","label":"The label must contain","key":"The public key must contain","dmsg":"The DMSG server key must contain","online-options":{"any":"Online or offline","online":"Online","offline":"Offline"}}},"services-health":{"loading":"Checking services\u2026","all-ok":"All services operational","degraded":"One or more services are degraded","last-updated":"last checked","service":"Service","status":"Status","latency":"Latency","version":"Version","endpoint":"Endpoint"},"dmsg-settings":{"loading":"Loading DMSG session state\u2026","summary":"DMSG client sessions","last-updated":"last updated","connect-all":"Connect to all servers","sessions-count-label":"sessions_count","apply-count":"Apply","sessions":"sessions","no-sessions":"No connected sessions.","no-clients":"No DMSG clients running on this visor.","result-total":"total:","result-already":"already connected:","result-new":"newly connected:","result-failed":"failed"},"bulk-rewards":{"title":"Change reward address","info":"Enter the Skycoin address where you want to receive the rewards. The address will be set on all the selected visors. If you leave the address empty, the registration will be deleted and the visors will not receive rewards. You can also set the reward address of each node individually using the option on the visor details page.","more-info-link":"(More info about the reward system)","address":"New address","select-visors":"Visors to alter:","current-address":"Current address:","not-registered":"None (not registered on the reward program).","checking":"Checking...","error-checking":"Error checking:","processing":"Processing...","error-processing":"Error making the change:","done":"Change done.","perform-changes":"Perform changes","empty-warning":"The address in empty, so the registrations will be deleted and no rewards will be received. Do you really want to continue?"},"edit-label":{"label":"Label","done":"Label saved.","label-removed-warning":"The label was removed."},"settings":{"title":"Settings","checking-auth":"Checking authentication settings.","password":{"initial-config-help":"Use this option for setting the initial password. After a password has been set, it is not possible to use this option to modify it.","help":"Options for changing your password.","old-password":"Old password","new-password":"New password","repeat-password":"Repeat password","password-changed":"Password changed.","error-changing":"Error changing password.","initial-config":{"title":"Set initial password","password":"Password","repeat-password":"Repeat password","set-password":"Set password","done":"Password set. Please use it to access the system.","error":"Error. Please make sure you have not already set the password."},"errors":{"bad-old-password":"The provided old password is not correct.","old-password-required":"Old password is required.","new-password-error":"Password must be 6-64 characters long.","passwords-not-match":"Passwords do not match.","default-password":"Don\'t use the default password (1234)."}},"updater-config":{"open-link":"Show updater settings","open-confirmation":"The updater settings are for experienced users only. Are you sure you want to continue?","help":"Use this form for overriding the settings that will be used by the updater. All empty fields will be ignored. The settings will be used for all updating operations, no mater which element is being updated, so please be careful.","channel":"Channel","version":"Version","archive-url":"Archive URL","checksum-url":"Checksum URL","not-saved":"The changes have not been saved yet.","save":"Save changes","remove-settings":"Remove the settings","saved":"The custom settings have been saved.","removed":"The custom settings have been removed.","save-confirmation":"Are you sure you want to apply the custom settings?","remove-confirmation":"Are you sure you want to remove the custom settings?"},"change-password":"Change password","refresh-rate":"Refresh rate","refresh-rate-help":"Time the system waits to update the data automatically.","refresh-rate-confirmation":"Refresh rate changed.","seconds":"seconds"},"login":{"password":"Password","incorrect-password":"Incorrect password.","initial-config":"Configure initial launch"},"actions":{"menu":{"terminal":"Terminal","config":"Configuration","update":"Update","proxy":"Resolving Proxy","turn-off":"Turn off","logs":"View logs"},"update":{"confirmation":"A terminal will be opened in a new tab and the update procedure will be started automatically. Do you want to continue?"},"turn-off":{"confirmation":"Are you sure you want to turn off the visor?","done":"The visor is shutting down."},"terminal-options":{"full":"Full terminal","simple":"Simple terminal"},"terminal":{"title":"Terminal","input-start":"Skywire terminal for {{address}}","error":"Unexpected error while trying to execute the command."}},"update":{"title":"Update","error-title":"Error","processing":"Looking for updates...","no-update":"There is no update for the visor. The currently installed version is:","no-updates":"No new updates were found.","already-updating":"Some visors are already being updated:","with-error":"It was not possible to check the following visors:","update-available":"The following updates were found:","update-available-singular":"The following updates for 1 visor were found:","update-available-plural":"The following updates for {{ number }} visors were found:","update-available-additional-singular":"The following additional updates for 1 visor were found:","update-available-additional-plural":"The following additional updates for {{ number }} visors were found:","update-instructions":"Click the \'Install updates\' button to continue.","updating":"The update operation has been started, you can open this window again for checking the progress:","version-change":"From {{ currentVersion }} to {{ newVersion }}","selected-channel":"Selected channel:","downloaded-file-name-prefix":"Downloading: ","speed-prefix":"Speed: ","time-downloading-prefix":"Time downloading: ","time-left-prefix":"Aprox. time left: ","starting":"Preparing to update","finished":"Status connection finished","install":"Install updates"},"update-all":{"title":"Update","updatable-list-text":"Please press the buttons of the visors you want to update. A terminal will be opened in a new tab for each visor and the update procedure will be started automatically.","non-updatable-list-text":"The following visors can not be updated via the terminal:","update-button":"Update"},"apps":{"log":{"title":"Log","empty":"There are no log messages for the selected time range.","filter-button":"Only showing logs generated since:","view-all":"View all {{ totalLogs }} entries","filter":{"title":"Filter","filter":"Only show logs generated since","7-days":"The last 7 days","1-month":"The last 30 days","3-months":"The last 3 months","6-months":"The last 6 months","1-year":"The last year","all":"Show all"}},"apps-list":{"title":"Applications","title-official":"Official Applications","title-user":"User Applications","list-title":"Application list","app-name":"Name","port":"Port","state":"State","state-tooltip":"Current state","auto-start":"Auto start","empty-official":"This visor doesn\'t have any official applications.","empty-user":"This visor doesn\'t have any user applications.","empty-with-filter":"No app matches the selected filtering criteria.","disable-autostart":"Disable autostart","enable-autostart":"Enable autostart","autostart-disabled":"Autostart disabled","autostart-enabled":"Autostart enabled","unavailable-logs-error":"Unable to show the logs while the app is not running.","filter-dialog":{"state":"The state must be","name":"The name must contain","port":"The port must contain","autostart":"The autostart must be","state-options":{"any":"Running or stopped","running":"Running","stopped":"Stopped"},"autostart-options":{"any":"Enabled or disabled","enabled":"Enabled","disabled":"Disabled"}}},"user-app-settings":{"title":"{{ name }} (Settings)","info":"Here you can edit the app settings as name-value pairs. Please check the application docs to see which settings and values are supported by this app.","name":"Name {{ number }}","value":"Value {{ number }}","remove":"Remove","add":"Add setting","save":"Save","invalid-confirmation":"One or more settings do not have a name and will be ignored. Do you want to continue?","empty-confirmation":"The settings list is empty. Do you really want to continue?","changes-made":"The changes have been made."},"skychat-settings":{"title":"Skychat Settings","localhost-only":"Allow access from the local machine only","port":"Port","save":"Save","changes-made":"The changes have been made.","port-error":"Must be a valid number between 1025 and 65536.","non-localhost-confirmation":"This will allow to use the app from anywhere on the internet. Are you sure you vant to continue?"},"vpn-socks-server-settings":{"socks-title":"Skysocks Settings","vpn-title":"VPN-Server Settings","whitelist":"Allowed peers (public keys)","whitelist-help":"Comma- or whitespace-separated public keys. Empty = open to all authenticated peers.","whitelist-invalid-pk":"One or more entries is not a valid 66-character hex public key.","netifc":"Default network interface (optional)","secure-mode-check":"Use secure mode","secure-mode-info":"When active, the server doesn\'t allow client/server SSH and doesn\'t allow any traffic from VPN clients to the server local network.","save":"Save","set-whitelist-confirmation":"Apply this whitelist to the server? Only the listed peers will be able to connect.","clear-whitelist-confirmation":"The whitelist is empty. The server will accept connections from any authenticated peer. Continue?","changes-made":"The changes have been made."},"vpn-socks-client-settings":{"socks-title":"Skysocks-Client Settings","vpn-title":"VPN-Client Settings","discovery-tab":"Search","remote-visor-tab":"Enter manually","history-tab":"History","settings-tab":"Settings","use":"Use this data","change-note":"Change note","remove-entry":"Remove entry","note":"Note:","note-entered-manually":"Entered manually","note-obtained":"Obtained from the discovery service","key":"Key:","port":"Port:","location":"Location:","state-available":"Available","state-offline":"Offline","public-key":"Remote visor public key","password":"Password","password-history-warning":"Note: the password will not be saved in the history.","copy-pk-info":"Copy public key.","copied-pk-info":"The public key has been copied.","copy-pk-error":"There was a problem copying the public key.","no-elements":"Currently there are no elements to show. Please try again later.","no-elements-for-filters":"There are no elements that meet the filter criteria.","no-filter":"No filter has been selected","click-to-change":"Click to change","remote-key-length-error":"The public key must be 66 characters long.","remote-key-chars-error":"The public key must only contain hexadecimal characters.","save":"Save","remove-from-history-confirmation":"Are you sure you want to remove the entry from the history?","change-key-confirmation":"Are you sure you want to change the remote visor public key?","changes-made":"The changes have been made.","no-history":"This tab will show the last {{ number }} public keys used.","default-note-warning":"The default note has been used.","pagination-info":"{{ currentElementsRange }} of {{ totalElements }}","dns":"Custom DNS server IP address","dns-error":"Invalid value.","killswitch-check":"Activate killswitch","killswitch-info":"When active, all network connections will be disabled if the app is running but the VPN protection is interrupted (for temporary errors or any other problem). This avoids data leaks.","settings-changed-alert":" The changes have not been saved yet.","save-settings":"Save settings","change-note-dialog":{"title":"Change Note","note":"Note"},"password-dialog":{"title":"Enter Password","password":"Password","info":"You are being asked for a password because a password was set when the selected entry was created, but the it was not saved for security reasons. You can leave the password empty if needed.","continue-button":"Continue"},"filter-dialog":{"title":"Filters","country":"The country must be","any-country":"Any","location":"The location must contain","pub-key":"The public key must contain","apply":"Apply"}},"stop-app":"Stop","start-app":"Start","view-logs":"View logs","settings":"Settings","open":"Open","error":"An error has occured and it was not possible to perform the operation.","stop-confirmation":"Are you sure you want to stop the app?","stop-selected-confirmation":"Are you sure you want to stop the selected apps?","disable-autostart-confirmation":"Are you sure you want to disable autostart for the app?","enable-autostart-confirmation":"Are you sure you want to enable autostart for the app?","disable-autostart-selected-confirmation":"Are you sure you want to disable autostart for the selected apps?","enable-autostart-selected-confirmation":"Are you sure you want to enable autostart for the selected apps?","operation-completed":"Operation completed.","operation-unnecessary":"The selection already has the requested setting.","status-running":"Running","status-connecting":"Connecting","status-stopped":"Stopped","status-failed":"Ended with the following error: {{ error }}","status-running-tooltip":"App is currently running","status-connecting-tooltip":"App is currently connecting","status-stopped-tooltip":"App is currently stopped","status-failed-tooltip":"The app finished with the following error: {{ error }}"},"transports":{"title":"Transports","info":"Connections you have with remote Skywire visors, to allow local Skywire apps to communicate with apps running on those remote visors.","list-title":"Transport list","offline":"Offline","persistent":"Persistent","persistent-tooltip":"Persistent transports, which are created automatically when the visor is turned on and are automatically recreated in case of disconnection.","persistent-transport-tooltip":"This transport is persistent, so it is created automatically when the visor is turned on and automatically recreated in case of disconnection.","persistent-transport-button-tooltip":"This transport is persistent, so it is created automatically when the visor is turned on and automatically recreated in case of disconnection. Press to make non-persistent.","non-persistent-transport-button-tooltip":"Press to make this transport persistent. Persistent transports are created automatically when the visor is turned on and automatically recreated in case of disconnection.","make-persistent":"Make persistent","make-non-persistent":"Make non-persistent","make-selected-persistent":"Make all selected persistent","make-selected-non-persistent":"Make all selected non-persistent","changes-made":"Changes made.","no-changes-needed":"No changes were needed.","id":"ID","remote-node":"Remote","type":"Type","create":"Create transport","make-persistent-confirmation":"Are you sure you want to make the transport persistent?","make-non-persistent-confirmation":"Are you sure you want to make the transport non-persistent?","make-selected-persistent-confirmation":"Are you sure you want to make the selected transports persistent?","make-selected-non-persistent-confirmation":"Are you sure you want to make the selected transports non-persistent?","make-offline-non-persistent-confirmation":"Are you sure you want to make the transport non-persistent? It will not be shown in the list while offline anymore.","delete-confirmation":"Are you sure you want to delete the transport?","delete-persistent-confirmation":"This transport is persistent, so it may be recreated shortly after deletion. Are you sure you want to delete it?","delete-selected-confirmation":"Are you sure you want to delete the selected transports?","delete":"Delete transport","deleted":"Delete operation completed.","empty":"Visor doesn\'t have any transports.","empty-with-filter":"No transport matches the selected filtering criteria.","details":{"title":"Details","basic":{"title":"Basic info","persistent":"Persistent:","id":"ID:","local-pk":"Local public key:","remote-pk":"Remote public key:","type":"Type:"},"data":{"title":"Data transmission","uploaded":"Uploaded data:","downloaded":"Downloaded data:"}},"dialog":{"remote-key":"Remote public key","label":"Identification name (optional)","transport-type":"Transport type","make-persistent":"Make persistent","persistent-tooltip":"Persistent transports are created automatically when the visor is turned on and automatically recreated in case of disconnection.","only-persistent-created":"The persistent transport was created, but it may have not been activated.","success":"Transport created.","success-without-label":"The transport was created, but it was not possible to save the label.","errors":{"remote-key-length-error":"The remote public key must be 66 characters long.","remote-key-chars-error":"The remote public key must only contain hexadecimal characters.","transport-type-error":"The transport type is required."}},"filter-dialog":{"persistent":"The transport must be","id":"The id must contain","remote-node":"The remote key must contain","persistent-options":{"any":"Any","persistent":"Persistent","non-persistent":"Non-persistent"}}},"routes":{"title":"Routes","info":"Paths used to reach the remote visors to which transports have been established. Routes are automatically generated as needed.","list-title":"Route list","key":"Key","type":"Type","source":"Source","destination":"Destination","delete-confirmation":"Are you sure you want to delete the route?","delete-selected-confirmation":"Are you sure you want to delete the selected routes?","delete":"Delete route","deleted":"Delete operation completed.","empty":"Visor doesn\'t have any routes.","empty-with-filter":"No route matches the selected filtering criteria.","details":{"title":"Details","basic":{"title":"Basic info","key":"Key:","rule":"Rule:"},"summary":{"title":"Rule summary","keep-alive":"Keep alive:","type":"Rule type:","key-route-id":"Key route ID:"},"specific-fields-titles":{"app":"App fields","forward":"Forward fields","intermediary-forward":"Intermediary forward fields"},"specific-fields":{"route-id":"Next route ID:","transport-id":"Next transport ID:","destination-pk":"Destination public key:","source-pk":"Source public key:","destination-port":"Destination port:","source-port":"Source port:"}},"filter-dialog":{"key":"The key must contain","type":"The type must be","source":"The source must contain","destination":"The destination must contain","any-type-option":"Any"}},"copy":{"tooltip":"Click to copy","tooltip-with-text":"{{ text }} (Click to copy)","copied":"Copied!"},"selection":{"select-all":"Select all","unselect-all":"Unselect all","delete-all":"Delete all selected elements","start-all":"Start all selected apps","stop-all":"Stop all selected apps","enable-autostart-all":"Enable autostart for all selected apps","disable-autostart-all":"Disable autostart for all selected apps"},"refresh-button":{"seconds":"Updated a few seconds ago","minute":"Updated 1 minute ago","minutes":"Updated {{ time }} minutes ago","hour":"Updated 1 hour ago","hours":"Updated {{ time }} hours ago","day":"Updated 1 day ago","days":"Updated {{ time }} days ago","week":"Updated 1 week ago","weeks":"Updated {{ time }} weeks ago","error-tooltip":"There was an error updating the data. Retrying automatically every {{ time }} seconds..."},"view-all-link":{"label":"View all {{ number }} elements"},"paginator":{"first":"First","last":"Last","total":"Total: {{ number }} pages","select-page-title":"Select page"},"confirmation":{"header-text":"Confirmation","confirm-button":"Yes","cancel-button":"No","close":"Close","error-header-text":"Error","done-header-text":"Done"},"language":{"title":"Select language"},"tabs-window":{"title":"Change tab"},"vpn":{"title":"VPN Control Panel","start":"Start","servers":"Servers","settings":"Settings","unnamed":"Unnamed","starting-blocked-server-error":"Unable to connect to the selected server because it has been added to the blocked servers list.","unexpedted-error":"An unexpected error occurred and the operation could not be completed.","remote-access-title":"It appears that you are accessing the system remotely","remote-access-text":"This application only allows you to manage the VPN protection of the device on which it was installed. Changes made with it will not affect remote devices like the one you seem to be using. Also, the displayed IP data may be incorrect.","server-change":{"busy-error":"The system is busy. Please wait.","backend-error":"It was not possible to change the server. Please make sure the public key is correct and the VPN app is running.","already-selected-warning":"The selected server is already being used.","change-server-while-connected-confirmation":"The VPN protection will be interrupted while changing the server and some data may be transmitted unprotected during the process. Do you want to continue?","start-same-server-confirmation":"You had already selected that server. Do you want to connect to it?"},"error-page":{"text":"The VPN client app is not available.","more-info":"It was not possible to connect to the VPN client app. This may be due to a configuration error, an unexpected problem with the visor or because you used an invalid public key in the URL.","text-pk":"Invalid configuration.","more-info-pk":"The application cannot be started because you have not specified the visor public key.","text-storage":"Error saving data.","more-info-storage":"There has been a conflict when trying to save the data and the application has been closed to prevent errors. This could happen if you open the application in more than one tab or window.","text-pk-change":"Invalid operation.","more-info-pk-change":"Please use this application to manage only one VPN client."},"connection-info":{"state-title":"Your connection is currently:","state-connecting":"Connecting","state-connecting-info":"The VPN protection is being activated.","state-connected":"Connected","state-connected-info":"The VPN protection is on.","state-disconnecting":"Disconnecting","state-disconnecting-info":"The VPN protection is being deactivated.","state-reconnecting":"Reconnecting","state-reconnecting-info":"The VPN protection is being restored.","state-disconnected":"Disconnected","state-disconnected-info":"The VPN protection is off.","state-info":"Current connection status.","latency-info":"Current latency.","upload-info":"Upload speed.","download-info":"Download speed."},"connection-error":{"text":"Connection error","info":"Problem connecting with the vpn app. Some data being displayed could be outdated."},"status-page":{"start-title":"Start VPN","no-server":"No server selected!","disconnect":"Disconnect","last-error":"Last error:","unknown-error":"Unknown error.","disconnect-confirmation":"Are you sure you want to stop the VPN protection?","upload-info":"Uploaded data stats.","download-info":"Downloaded data stats.","latency-info":"Latency stats.","total-data-label":"total","problem-connecting-error":"It was not possible to connect to the server. The server may be invalid or temporarily down.","problem-starting-error":"It was not possible to start the VPN. Please make sure the base VPN client app is running.","problem-stopping-error":"It was not possible to stop the VPN. Please make sure the base VPN client app is running.","generic-problem-error":"It was not possible to perform the operation. Please make sure the base VPN client app is running.","select-server-warning":"Please select a server first.","data":{"ip":"IP address:","ip-problem-info":"There was a problem trying to get the IP. Please verify it using an external service.","ip-country-problem-info":"There was a problem trying to get the country. Please verify it using an external service.","ip-refresh-info":"Refresh","ip-refresh-time-warning":"Please wait {{ seconds }} second(s) before refreshing the data.","ip-refresh-loading-warning":"Please wait for the previous operation to finish.","country":"Country:","server":"Server:","server-note":"Server note:","original-server-note":"Original server note:","local-pk":"Local visor public key:","remote-pk":"Remote visor public key:","unavailable":"Unavailable"}},"server-options":{"tooltip":"Options","connect-without-password":"Connect without password","connect-without-password-confirmation":"The connection will be made without the password. Are you sure you want to continue?","connect-using-password":"Connect using a password","connect-using-another-password":"Connect using another password","edit-name":"Custom name","edit-label":"Custom note","make-favorite":"Make favorite","make-favorite-confirmation":"Are you sure you want to mark this server as favorite? It will be removed from the blocked list.","make-favorite-done":"Added to the favorites list.","remove-from-favorites":"Remove from favorites","remove-from-favorites-done":"Removed from the favorites list.","block":"Block server","block-done":"Added to the blocked list.","block-confirmation":"Are you sure you want to block this server? It will be removed from the favorites list.","block-selected-confirmation":"Are you sure you want to block the currently selected server? All connections will be closed.","block-selected-favorite-confirmation":"Are you sure you want to block the currently selected server? All connections will be closed and it will be removed from the favorites list.","unblock":"Unblock server","unblock-done":"Removed from the blocked list.","remove-from-history":"Remove from history","remove-from-history-confirmation":"Are you sure you want to remove this server from the history?","remove-from-history-done":"Removed from history.","edit-value":{"name-title":"Custom Name","note-title":"Custom Note","name-label":"Custom name","note-label":"Custom note","apply-button":"Apply","changes-made-confirmation":"The change has been made."}},"server-conditions":{"selected-info":"This is the currently selected server.","blocked-info":"This server is in the blocked list.","favorite-info":"This server is in the favorites list.","history-info":"This server is in the server history.","has-password-info":"A password was set for connecting with this server."},"server-list":{"date-small-table-label":"Date","date-info":"Last time you used this server.","country-small-table-label":"Country","country-info":"Country where the server is located.","name-small-table-label":"Name","location-small-table-label":"Location","public-key-small-table-label":"Pk","public-key-info":"Server public key.","congestion-rating-small-table-label":"Congestion rating","congestion-rating-info":"Rating of the server related to how congested it tends to be.","congestion-small-table-label":"Congestion","congestion-info":"Current server congestion.","latency-rating-small-table-label":"Latency rating","latency-rating-info":"Rating of the server related to how much latency it tends to have.","latency-small-table-label":"Latency","latency-info":"Current server latency.","hops-small-table-label":"Hops","hops-info":"How many hops are needed for connecting with the server.","note-small-table-label":"Note","note-info":"Note about the server.","gold-rating-info":"Gold","silver-rating-info":"Silver","bronze-rating-info":"Bronze","notes-info":"Custom note: {{ custom }} - Original note: {{ original }}","empty-discovery":"Currently there are no VPN servers to show. Please try again later.","empty-history":"There is no history to show.","empty-favorites":"There are no favorite servers to show.","empty-blocked":"There are no blocked servers to show.","empty-with-filter":"No VPN server matches the selected filtering criteria.","add-manually-info":"Add server manually.","current-filters":"Current filters (press to remove)","none":"None","unknown":"Unknown","tabs":{"public":"Public","history":"History","favorites":"Favorites","blocked":"Blocked"},"add-server-dialog":{"title":"Enter manually","pk-label":"Server public key","password-label":"Server password (if any)","name-label":"Server name (optional)","note-label":"Personal note (optional)","pk-length-error":"The public key must be 66 characters long.","pk-chars-error":"The public key must only contain hexadecimal characters.","use-server-button":"Use server"},"password-dialog":{"title":"Enter Password","password-if-any-label":"Server password (if any)","password-label":"Server password","continue-button":"Continue"},"filter-dialog":{"country":"The country must be","name":"The name must contain","location":"The location must contain","public-key":"The public key must contain","congestion-rating":"The congestion rating must be","latency-rating":"The latency rating must be","rating-options":{"any":"Any","gold":"Gold","silver":"Silver","bronze":"Bronze"},"country-options":{"any":"Any"}}},"settings-page":{"setting-small-table-label":"Setting","value-small-table-label":"Value","killswitch":"Killswitch","killswitch-info":"When active, all network connections will be disabled if the app is running but the VPN protection is interrupted (for temporary errors or any other problem). This avoids data leaks.","get-ip":"Get IP info","get-ip-info":"When active, the application will use external services to obtain information about the current IP.","data-units":"Data units","data-units-info":"Allows to select the units that will be used to display the data transmission statistics.","minimum-hops":"Minimum hops","minimum-hops-info":"Allows to set the minimum number of hops the connections must pass through other Skywire visors before reaching the final destination.","dns":"Custom DNS server","dns-info":"Allows to use a custom DNS server, which could improve privacy and prevent sites from being blocked by the default DNS server of your ISP.","setting-none":"None","setting-on":"On","setting-off":"Off","working-warning":"The system is busy. Please wait for the previous operation to finish.","change-while-connected-confirmation":"The VPN protection will be interrupted while changing the setting. Do you want to continue?","data-units-modal":{"title":"Data Units","only-bits":"Bits for all stats","only-bytes":"Bytes for all stats","bits-speed-and-bytes-volume":"Bits for speed and bytes for volume (default)"}},"dns-config":{"title":"Custom DNS server","ip":"Custom DNS server IP address","save-config-button":"Save configuration","done":"Changes saved."}}}')}}]); \ No newline at end of file diff --git a/pkg/visor/static/assets/i18n/en.json b/pkg/visor/static/assets/i18n/en.json index d643ddff7a..ea49412e4f 100644 --- a/pkg/visor/static/assets/i18n/en.json +++ b/pkg/visor/static/assets/i18n/en.json @@ -2,6 +2,7 @@ "common": { "save": "Save", "cancel": "Cancel", + "loading": "Loading…", "downloaded": "Downloaded", "uploaded": "Uploaded", "loading-error": "There was an error getting the data. Retrying...", @@ -89,6 +90,20 @@ "node": { "title": "Visor details", "not-found": "Visor not found.", + "resource-monitor": { + "title": "Resource monitor", + "tab-host": "Host", + "tab-process": "Process", + "cpu": "CPU", + "memory": "Memory", + "disk": "Disk", + "net-rx": "Net rx", + "net-tx": "Net tx", + "threads": "Threads", + "heap": "Heap", + "goroutines": "Goroutines", + "gc": "GC rate" + }, "logs" : { "title": "Runtime Logs", "no-logs": "No runtime logs were found for this visor.", @@ -104,7 +119,10 @@ "filter-warning": "Warning or more important", "filter-error": "Error or more important", "filter-faltal": "Faltal or more important", - "filter-panic": "Panic" + "filter-panic": "Panic", + "live-on": "Live (pause)", + "live-off": "Paused (live)", + "dropped": "Skipped {{ count }} older entries that aged out of the visor's runtime buffer." }, "statuses": { "online": "Online", @@ -156,7 +174,8 @@ "not-registered-info": "You have not specified a Skycoin address for receiving rewards for this visor. If you want to register the visor for receiving rewards, press the \"Set address\" button and set a Skycoin address.", "open-in-explorer": "Open in blockchain explorer", "set-address-button": "Set address", - "change-address-button": "Change address" + "change-address-button": "Change address", + "show-rules": "Reward rules (embedded mainnet_rules.md)" }, "transports-info": { "title": "Transport", @@ -214,8 +233,12 @@ "info": "Info", "apps": "Apps", "routing": "Routing", + "transports": "Transports", "rewards": "Rewards", - "skynet": "Skynet" + "skynet": "Skynet", + "resources": "Resources", + "chat": "Skychat", + "dmsg": "DMSG" }, "error-load": "An error occurred while refreshing the data. Retrying..." }, @@ -244,7 +267,10 @@ "title": "Visor list", "dmsg-title": "DMSG", "rewards-title": "Rewards", - "services-health-title": "Services health", + "services-health-title": "Deployment", + "network-title": "Network", + "resources-title": "Resources", + "transports-title": "Transports", "dmsg-settings-title": "DMSG settings", "reward-address": "Reward Address", "reward-total": "Week Total", @@ -306,16 +332,121 @@ } }, + "network-transports": { + "loading": "Fetching transport metrics from TPD…", + "summary": "{{transports}} transports · {{bandwidth}} network bandwidth ({{days}} days)", + "last-updated": "last fetched", + "days": "Window", + "view": "View", + "view-compact": "Compact", + "view-tree": "Tree", + "refresh": "Refresh", + "tp-id": "Transport ID", + "type": "Type", + "edge-a": "Edge A", + "edge-b": "Edge B", + "sent": "Sent", + "recv": "Recv", + "total": "Total", + "latency": "Latency" + }, + + "multi-resources": { + "loading": "Polling visor host stats…", + "summary": "{{count}} visors", + "last-updated": "last sample", + "visor": "Visor", + "cpu": "CPU", + "mem": "Memory", + "disk": "Disk", + "tx": "TX", + "rx": "RX", + "proc-rss": "Process RSS" + }, + "services-health": { - "loading": "Checking services…", - "all-ok": "All services operational", - "degraded": "One or more services are degraded", + "loading": "Checking deployment services…", + "all-ok": "All deployment services operational", + "degraded": "One or more deployment services are degraded", "last-updated": "last checked", "service": "Service", "status": "Status", "latency": "Latency", "version": "Version", - "endpoint": "Endpoint" + "endpoint": "Endpoint", + "rsn-section": "Route Setup Nodes", + "rsn-empty": "No route setup nodes configured.", + "rsn-pk": "Public Key", + "rsn-success": "Successful", + "rsn-failed": "Failed", + "rsn-rate": "Success rate", + "rsn-latency-p50": "p50", + "rsn-latency-p95": "p95", + "rsn-latency-p99": "p99", + "rsn-active": "In flight", + "rsn-last-success": "Last success", + "rsn-last-failure": "Last failure", + "rsn-uptime": "Uptime", + "rsn-failure-reasons": "Top failure reasons", + "rsn-error": "Unreachable" + }, + + "skychat": { + "title": "Skychat", + "connected": "Connected", + "disconnected": "Disconnected", + "no-history": "history is disabled (--persist not set)", + "empty": "No messages yet — incoming chats from connected peers will appear here.", + "peers": "Peers", + "peers-empty": "No peers yet. Send a message or wait for an incoming chat.", + "to": "Recipient PK", + "network": "Network", + "message": "Message", + "placeholder": "Type a message; Ctrl+Enter to send", + "send": "Send", + "password": { + "set": "Set password", + "change": "Change password", + "clear": "Remove", + "hide": "Hide", + "saved": "Skychat password updated", + "cleared": "Skychat password removed", + "old": "Current password", + "new": "New password", + "confirm": "Repeat new password", + "help-unset": "Skychat is currently unprotected. Set a password to require basic auth on the standalone :8001 surface; this hypervisor session always bypasses it.", + "help-set": "A password is set on skychat's standalone :8001 surface. Change or remove it here.", + "errors": { + "length": "Skychat password must be 6-64 characters", + "mismatch": "Passwords do not match", + "old-required": "Current password is required to remove the gate" + } + } + }, + + "network-view": { + "loading": "Aggregating service-discovery, transport-discovery and uptime-tracker…", + "last-updated": "last fetched", + "empty": "No visors match the current filters.", + "search": "Search", + "country": "Country", + "version": "Version", + "min-transports": "Min tps", + "online-only": "Online only", + "refresh": "Refresh now", + "col": { + "pk": "PK", + "country": "Country", + "version": "Version", + "services": "Services", + "total": "Total", + "status": "UT" + }, + "legend": { + "offline": "offline (UT)", + "not-in-ut": "not in UT", + "low-transports": "online but <2 stcpr/sudph" + } }, "dmsg-settings": { @@ -671,6 +802,7 @@ "id": "ID", "remote-node": "Remote", "type": "Type", + "latency": "Latency", "create": "Create transport", "make-persistent-confirmation": "Are you sure you want to make the transport persistent?", "make-non-persistent-confirmation": "Are you sure you want to make the transport non-persistent?", @@ -736,6 +868,12 @@ "type": "Type", "source": "Source", "destination": "Destination", + "local-port": "Local port", + "remote-port": "Remote port", + "remote-pk": "Remote", + "next-rid": "Next RID", + "next-tp": "Next TP", + "keep-alive": "Keep-alive", "delete-confirmation": "Are you sure you want to delete the route?", "delete-selected-confirmation": "Are you sure you want to delete the selected routes?", "delete": "Delete route", diff --git a/pkg/visor/static/index.html b/pkg/visor/static/index.html index e31420b47b..0f7e3924ac 100644 --- a/pkg/visor/static/index.html +++ b/pkg/visor/static/index.html @@ -7,9 +7,9 @@ - +
- + diff --git a/pkg/visor/static/main.24a0e2795721511f.js b/pkg/visor/static/main.24a0e2795721511f.js deleted file mode 100644 index 063c92d7c2..0000000000 --- a/pkg/visor/static/main.24a0e2795721511f.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkskywire_manager=self.webpackChunkskywire_manager||[]).push([[792],{256(vu,Uv,wc){"use strict";let Sn=null,ts=!1,Ba=1;const kn=Symbol("SIGNAL");function De(t){const n=Sn;return Sn=t,n}const Sc={version:0,lastCleanEpoch:0,dirty:!1,producers:void 0,producersTail:void 0,consumers:void 0,consumersTail:void 0,recomputing:!1,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,kind:"unknown",producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function yu(t){if(ts)throw new Error("");if(null===Sn)return;Sn.consumerOnSignalRead(t);const n=Sn.producersTail;if(void 0!==n&&n.producer===t)return;let e;const i=Sn.recomputing;if(i&&(e=void 0!==n?n.nextProducer:Sn.producers,void 0!==e&&e.producer===t))return Sn.producersTail=e,void(e.lastReadVersion=t.version);const o=t.consumersTail;if(void 0!==o&&o.consumer===Sn&&(!i||function Sj(t,n){const e=n.producersTail;if(void 0!==e){let i=n.producers;do{if(i===t)return!0;if(i===e)break;i=i.nextProducer}while(void 0!==i)}return!1}(o,Sn)))return;const r=Dc(Sn),s={producer:t,consumer:Sn,nextProducer:e,prevConsumer:o,lastReadVersion:t.version,nextConsumer:void 0};Sn.producersTail=s,void 0!==n?n.nextProducer=s:Sn.producers=s,r&&ED(t,s)}function Cu(t){if((!Dc(t)||t.dirty)&&(t.dirty||t.lastCleanEpoch!==Ba)){if(!t.producerMustRecompute(t)&&!yp(t))return void vp(t);t.producerRecomputeValue(t),vp(t)}}function TD(t){if(void 0===t.consumers)return;const n=ts;ts=!0;try{for(let e=t.consumers;void 0!==e;e=e.nextConsumer){const i=e.consumer;i.dirty||Cj(i)}}finally{ts=n}}function MD(){return!1!==Sn?.consumerAllowSignalWrites}function Cj(t){t.dirty=!0,TD(t),t.consumerMarkedDirty?.(t)}function vp(t){t.dirty=!1,t.lastCleanEpoch=Ba}function kc(t){return t&&function wj(t){t.producersTail=void 0,t.recomputing=!0}(t),De(t)}function wu(t,n){De(n),t&&function xj(t){t.recomputing=!1;const n=t.producersTail;let e=void 0!==n?n.nextProducer:t.producers;if(void 0!==e){if(Dc(t))do{e=$v(e)}while(void 0!==e);void 0!==n?n.nextProducer=void 0:t.producers=void 0}}(t)}function yp(t){for(let n=t.producers;void 0!==n;n=n.nextProducer){const e=n.producer,i=n.lastReadVersion;if(i!==e.version||(Cu(e),i!==e.version))return!0}return!1}function xu(t){if(Dc(t)){let n=t.producers;for(;void 0!==n;)n=$v(n)}t.producers=void 0,t.producersTail=void 0,t.consumers=void 0,t.consumersTail=void 0}function ED(t,n){const e=t.consumersTail,i=Dc(t);if(void 0!==e?(n.nextConsumer=e.nextConsumer,e.nextConsumer=n):(n.nextConsumer=void 0,t.consumers=n),n.prevConsumer=e,t.consumersTail=n,!i)for(let o=t.producers;void 0!==o;o=o.nextProducer)ED(o.producer,o)}function $v(t){const n=t.producer,e=t.nextProducer,i=t.nextConsumer,o=t.prevConsumer;if(t.nextConsumer=void 0,t.prevConsumer=void 0,void 0!==i?i.prevConsumer=o:n.consumersTail=o,void 0!==o)o.nextConsumer=i;else if(n.consumers=i,!Dc(n)){let r=n.producers;for(;void 0!==r;)r=$v(r)}return e}function Dc(t){return t.consumerIsAlwaysLive||void 0!==t.consumers}function Gv(t,n){return Object.is(t,n)}function ID(t,n){const e=Object.create(kj);e.computation=t,void 0!==n&&(e.equal=n);const i=()=>{if(Cu(e),yu(e),e.value===ns)throw e.error;return e.value};return i[kn]=e,i}const Va=Symbol("UNSET"),Tc=Symbol("COMPUTING"),ns=Symbol("ERRORED"),kj={...Sc,value:Va,dirty:!0,error:null,equal:Gv,kind:"computed",producerMustRecompute:t=>t.value===Va||t.value===Tc,producerRecomputeValue(t){if(t.value===Tc)throw new Error("");const n=t.value;t.value=Tc;const e=kc(t);let i,o=!1;try{i=t.computation(),De(null),o=n!==Va&&n!==ns&&i!==ns&&t.equal(n,i)}catch(r){i=ns,t.error=r}finally{wu(t,e)}o?t.value=n:(t.value=i,t.version++)}};let PD=function Dj(){throw new Error};function OD(t){PD(t)}function wp(t,n){MD()||OD(t),t.equal(t.value,n)||(t.value=n,function Ij(t){t.version++,function yj(){Ba++}(),TD(t)}(t))}function AD(t,n){MD()||OD(t),wp(t,n(t.value))}const qv={...Sc,equal:Gv,value:void 0,kind:"signal"},Pj={...Sc,consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!0,dirty:!0,kind:"effect"};function Jt(t){return"function"==typeof t}function Kv(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 Yv=Kv(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 xp(t,n){if(t){const e=t.indexOf(n);0<=e&&t.splice(e,1)}}class mt{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(Jt(i))try{i()}catch(r){n=r instanceof Yv?r.errors:[r]}const{_finalizers:o}=this;if(o){this._finalizers=null;for(const r of o)try{FD(r)}catch(s){n=n??[],s instanceof Yv?n=[...n,...s.errors]:n.push(s)}}if(n)throw new Yv(n)}}add(n){var e;if(n&&n!==this)if(this.closed)FD(n);else{if(n instanceof mt){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)&&xp(e,n)}remove(n){const{_finalizers:e}=this;e&&xp(e,n),n instanceof mt&&n._removeParent(this)}}mt.EMPTY=(()=>{const t=new mt;return t.closed=!0,t})();const RD=mt.EMPTY;function ND(t){return t instanceof mt||t&&"closed"in t&&Jt(t.remove)&&Jt(t.add)&&Jt(t.unsubscribe)}function FD(t){Jt(t)?t():t.unsubscribe()}const Ha={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},Sp={setTimeout(t,n,...e){const{delegate:i}=Sp;return i?.setTimeout?i.setTimeout(t,n,...e):setTimeout(t,n,...e)},clearTimeout(t){const{delegate:n}=Sp;return(n?.clearTimeout||clearTimeout)(t)},delegate:void 0};function LD(t){Sp.setTimeout(()=>{const{onUnhandledError:n}=Ha;if(!n)throw t;n(t)})}function kp(){}const Aj=Xv("C",void 0,void 0);function Xv(t,n,e){return{kind:t,value:n,error:e}}let ja=null;function Dp(t){if(Ha.useDeprecatedSynchronousErrorHandling){const n=!ja;if(n&&(ja={errorThrown:!1,error:null}),t(),n){const{errorThrown:e,error:i}=ja;if(ja=null,e)throw i}}else t()}class Tp extends mt{constructor(n){super(),this.isStopped=!1,n?(this.destination=n,ND(n)&&n.add(this)):this.destination=Hj}static create(n,e,i){return new Su(n,e,i)}next(n){this.isStopped?Qv(function Nj(t){return Xv("N",t,void 0)}(n),this):this._next(n)}error(n){this.isStopped?Qv(function Rj(t){return Xv("E",void 0,t)}(n),this):(this.isStopped=!0,this._error(n))}complete(){this.isStopped?Qv(Aj,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 Lj=Function.prototype.bind;function Zv(t,n){return Lj.call(t,n)}class Bj{constructor(n){this.partialObserver=n}next(n){const{partialObserver:e}=this;if(e.next)try{e.next(n)}catch(i){Mp(i)}}error(n){const{partialObserver:e}=this;if(e.error)try{e.error(n)}catch(i){Mp(i)}else Mp(n)}complete(){const{partialObserver:n}=this;if(n.complete)try{n.complete()}catch(e){Mp(e)}}}class Su extends Tp{constructor(n,e,i){let o;if(super(),Jt(n)||!n)o={next:n??void 0,error:e??void 0,complete:i??void 0};else{let r;this&&Ha.useDeprecatedNextContext?(r=Object.create(n),r.unsubscribe=()=>this.unsubscribe(),o={next:n.next&&Zv(n.next,r),error:n.error&&Zv(n.error,r),complete:n.complete&&Zv(n.complete,r)}):o=n}this.destination=new Bj(o)}}function Mp(t){Ha.useDeprecatedSynchronousErrorHandling?function Fj(t){Ha.useDeprecatedSynchronousErrorHandling&&ja&&(ja.errorThrown=!0,ja.error=t)}(t):LD(t)}function Qv(t,n){const{onStoppedNotification:e}=Ha;e&&Sp.setTimeout(()=>e(t,n))}const Hj={closed:!0,next:kp,error:function Vj(t){throw t},complete:kp},Jv="function"==typeof Symbol&&Symbol.observable||"@@observable";function Ua(t){return t}function BD(t){return 0===t.length?Ua:1===t.length?t[0]:function(e){return t.reduce((i,o)=>o(i),e)}}let Rt=(()=>{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 zj(t){return t&&t instanceof Tp||function Uj(t){return t&&Jt(t.next)&&Jt(t.error)&&Jt(t.complete)}(t)&&ND(t)}(e)?e:new Su(e,i,o);return Dp(()=>{const{operator:s,source:a}=this;r.add(s?s.call(r,a):a?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=VD(i))((o,r)=>{const s=new Su({next:a=>{try{e(a)}catch(l){r(l),s.unsubscribe()}},error:r,complete:o});this.subscribe(s)})}_subscribe(e){var i;return null===(i=this.source)||void 0===i?void 0:i.subscribe(e)}[Jv](){return this}pipe(...e){return BD(e)(this)}toPromise(e){return new(e=VD(e))((i,o)=>{let r;this.subscribe(s=>r=s,s=>o(s),()=>i(r))})}}return t.create=n=>new t(n),t})();function VD(t){var n;return null!==(n=t??Ha.Promise)&&void 0!==n?n:Promise}const $j=Kv(t=>function(){t(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let ty,pe=(()=>{class t extends Rt{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(e){const i=new ey(this,this);return i.operator=e,i}_throwIfClosed(){if(this.closed)throw new $j}next(e){Dp(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const i of this.currentObservers)i.next(e)}})}error(e){Dp(()=>{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(){Dp(()=>{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?RD:(this.currentObservers=null,r.push(e),new mt(()=>{this.currentObservers=null,xp(r,e)}))}_checkFinalizedStatuses(e){const{hasError:i,thrownError:o,isStopped:r}=this;i?e.error(o):r&&e.complete()}asObservable(){const e=new Rt;return e.source=this,e}}return t.create=(n,e)=>new ey(n,e),t})();class ey extends pe{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:RD}}class _i extends pe{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 ny(){return ty}function zs(t){const n=ty;return ty=t,n}const Wj=Symbol("NotFound");function iy(t){return t===Wj||"\u0275NotFound"===t?.name}Error;const UD="https://angular.dev/best-practices/security#preventing-cross-site-scripting-xss";class X extends Error{code;constructor(n,e){super(so(n,e)),this.code=n}}function so(t,n){return`${function qj(t){return`NG0${Math.abs(t)}`}(t)}${n?": "+n:""}`}const Dn=globalThis;function Tt(t){for(let n in t)if(t[n]===Tt)return n;throw Error("")}function Kj(t,n){for(const e in n)n.hasOwnProperty(e)&&!t.hasOwnProperty(e)&&(t[e]=n[e])}function $s(t){if("string"==typeof t)return t;if(Array.isArray(t))return`[${t.map($s).join(", ")}]`;if(null==t)return""+t;const n=t.overriddenName||t.name;if(n)return`${n}`;const e=t.toString();if(null==e)return""+e;const i=e.indexOf("\n");return i>=0?e.slice(0,i):e}function oy(t,n){return t?n?`${t} ${n}`:t:n||""}const Yj=Tt({__forward_ref__:Tt});function Vt(t){return t.__forward_ref__=Vt,t}function We(t){return Ip(t)?t():t}function Ip(t){return"function"==typeof t&&t.hasOwnProperty(Yj)&&t.__forward_ref__===Vt}function te(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function et(t){return{providers:t.providers||[],imports:t.imports||[]}}function Pp(t){return function nU(t,n){return t.hasOwnProperty(n)&&t[n]||null}(t,Ap)}function Op(t){return t&&t.hasOwnProperty(ry)?t[ry]:null}const Ap=Tt({\u0275prov:Tt}),ry=Tt({\u0275inj:Tt});class Z{_desc;ngMetadataName="InjectionToken";\u0275prov;constructor(n,e){this._desc=n,this.\u0275prov=void 0,"number"==typeof e?this.__NG_ELEMENT_ID__=e:void 0!==e&&(this.\u0275prov=te({token:this,providedIn:e.providedIn||"root",factory:e.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}function ay(t){return t&&!!t.\u0275providers}const zD=Tt({\u0275cmp:Tt}),lU=Tt({\u0275dir:Tt}),cU=Tt({\u0275pipe:Tt}),$D=Tt({\u0275mod:Tt}),Wa=Tt({\u0275fac:Tt}),ku=Tt({__NG_ELEMENT_ID__:Tt}),WD=Tt({__NG_ENV_ID__:Tt});function Mr(t){return Np(t),t[$D]||null}function wt(t){return Np(t),t[zD]||null}function Ki(t){return Np(t),t[lU]||null}function Zo(t){return Np(t),t[cU]||null}function Np(t,n){if(null==t)throw new X(-919,!1)}function He(t){return"string"==typeof t?t:null==t?"":String(t)}const cy=Tt({ngErrorCode:Tt}),GD=Tt({ngErrorMessage:Tt}),Du=Tt({ngTokenPath:Tt});function dy(t,n){return qD("",-200,n)}function uy(t,n){throw new X(-201,!1)}function qD(t,n,e){const i=new X(n,t);return i[cy]=n,i[GD]=t,e&&(i[Du]=e),i}let hy;function KD(){return hy}function ao(t){const n=hy;return hy=t,n}function YD(t,n,e){const i=Pp(t);return i&&"root"==i.providedIn?void 0===i.value?i.value=i.factory():i.value:8&e?null:void 0!==n?n:void uy()}const Ga={};class mU{injector;constructor(n){this.injector=n}retrieve(n,e){const i=Tu(e)||0;try{return this.injector.get(n,8&i?null:Ga,i)}catch(o){if(iy(o))return o;throw o}}}function gU(t,n=0){const e=ny();if(void 0===e)throw new X(-203,!1);if(null===e)return YD(t,void 0,n);{const i=function _U(t){return{optional:!!(8&t),host:!!(1&t),self:!!(2&t),skipSelf:!!(4&t)}}(n),o=e.retrieve(t,i);if(iy(o)){if(i.optional)return null;throw o}return o}}function le(t,n=0){return(KD()||gU)(We(t),n)}function D(t,n){return le(t,Tu(n))}function Tu(t){return typeof t>"u"||"number"==typeof t?t:0|(t.optional&&8)|(t.host&&1)|(t.self&&2)|(t.skipSelf&&4)}function py(t){const n=[];for(let e=0;eArray.isArray(e)?Pc(e,n):n(e))}function ZD(t,n,e){n>=t.length?t.push(e):t.splice(n,0,e)}function Fp(t,n){return n>=t.length-1?t.pop():t.splice(n,1)[0]}function Bp(t,n,e){let i=Eu(t,n);return i>=0?t[1|i]=e:(i=~i,function JD(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 my(t,n){const e=Eu(t,n);if(e>=0)return t[1|e]}function Eu(t,n){return function yU(t,n,e){let i=0,o=t.length>>e;for(;o!==i;){const r=i+(o-i>>1),s=t[r<n?o=r:i=r+1}return~(o<{e.push(s)};return Pc(n,s=>{const a=s;Hp(a,r,[],i)&&(o||=[],o.push(a))}),void 0!==o&&tT(o,r),e}function tT(t,n){for(let e=0;e{n(r,i)})}}function Hp(t,n,e,i){if(!(t=We(t)))return!1;let o=null,r=Op(t);const s=!r&&wt(t);if(r||s){if(s&&!s.standalone)return!1;o=t}else{const l=t.ngModule;if(r=Op(l),!r)return!1;o=l}const a=i.has(o);if(s){if(a)return!1;if(i.add(o),s.dependencies){const l="function"==typeof s.dependencies?s.dependencies():s.dependencies;for(const c of l)Hp(c,n,e,i)}}else{if(!r)return!1;{if(null!=r.imports&&!a){let c;i.add(o),Pc(r.imports,u=>{Hp(u,n,e,i)&&(c||=[],c.push(u))}),void 0!==c&&tT(c,n)}if(!a){const c=qa(o)||(()=>new o);n({provide:o,useFactory:c,deps:zt},o),n({provide:gy,useValue:o,multi:!0},o),n({provide:is,useValue:()=>le(o),multi:!0},o)}const l=r.providers;if(null!=l&&!a){const c=t;by(l,u=>{n(u,c)})}}}return o!==t&&void 0!==t.providers}function by(t,n){for(let e of t)ay(e)&&(e=e.\u0275providers),Array.isArray(e)?by(e,n):n(e)}const xU=Tt({provide:String,useValue:Tt});function vy(t){return null!==t&&"object"==typeof t&&xU in t}function os(t){return"function"==typeof t}const yy=new Z(""),jp={},rT={};let Cy;function Up(){return void 0===Cy&&(Cy=new Vp),Cy}class Nn{}class Ka extends Nn{parent;source;scopes;records=new Map;_ngOnDestroyHooks=new Set;_onDestroyHooks=[];get destroyed(){return this._destroyed}_destroyed=!1;injectorDefTypes;constructor(n,e,i,o){super(),this.parent=e,this.source=i,this.scopes=o,xy(n,s=>this.processProvider(s)),this.records.set(eT,Oc(void 0,this)),o.has("environment")&&this.records.set(Nn,Oc(void 0,this));const r=this.records.get(yy);null!=r&&"string"==typeof r.value&&this.scopes.add(r.value),this.injectorDefTypes=new Set(this.get(gy,zt,{self:!0}))}retrieve(n,e){const i=Tu(e)||0;try{return this.get(n,Ga,i)}catch(o){if(iy(o))return o;throw o}}destroy(){Pu(this),this._destroyed=!0;const n=De(null);try{for(const i of this._ngOnDestroyHooks)i.ngOnDestroy();const e=this._onDestroyHooks;this._onDestroyHooks=[];for(const i of e)i()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),De(n)}}onDestroy(n){return Pu(this),this._onDestroyHooks.push(n),()=>this.removeOnDestroy(n)}runInContext(n){Pu(this);const e=zs(this),i=ao(void 0);try{return n()}finally{zs(e),ao(i)}}get(n,e=Ga,i){if(Pu(this),n.hasOwnProperty(WD))return n[WD](this);const o=Tu(i),s=zs(this),a=ao(void 0);try{if(!(4&o)){let c=this.records.get(n);if(void 0===c){const u=function MU(t){return"function"==typeof t||"object"==typeof t&&"InjectionToken"===t.ngMetadataName}(n)&&Pp(n);c=u&&this.injectableDefInScope(u)?Oc(wy(n),jp):null,this.records.set(n,c)}if(null!=c)return this.hydrate(n,c,o)}return(2&o?Up():this.parent).get(n,e=8&o&&e===Ga?null:e)}catch(l){const c=function fU(t){return t[cy]}(l);throw-200===c||-201===c?new X(c,null):l}finally{ao(a),zs(s)}}resolveInjectorInitializers(){const n=De(null),e=zs(this),i=ao(void 0);try{const r=this.get(is,zt,{self:!0});for(const s of r)s()}finally{zs(e),ao(i),De(n)}}toString(){return"R3Injector[...]"}processProvider(n){let e=os(n=We(n))?n:We(n&&n.provide);const i=function kU(t){return vy(t)?Oc(void 0,t.useValue):Oc(sT(t),jp)}(n);if(!os(n)&&!0===n.multi){let o=this.records.get(e);o||(o=Oc(void 0,jp,!0),o.factory=()=>py(o.multi),this.records.set(e,o)),e=n,o.multi.push(n)}this.records.set(e,i)}hydrate(n,e,i){const o=De(null);try{if(e.value===rT)throw dy();return e.value===jp&&(e.value=rT,e.value=e.factory(void 0,i)),"object"==typeof e.value&&e.value&&function TU(t){return null!==t&&"object"==typeof t&&"function"==typeof t.ngOnDestroy}(e.value)&&this._ngOnDestroyHooks.add(e.value),e.value}finally{De(o)}}injectableDefInScope(n){if(!n.providedIn)return!1;const e=We(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 wy(t){const n=Pp(t),e=null!==n?n.factory:qa(t);if(null!==e)return e;if(t instanceof Z)throw new X(-204,!1);if(t instanceof Function)return function SU(t){if(t.length>0)throw new X(-204,!1);const e=function iU(t){return(t?.[Ap]??null)||null}(t);return null!==e?()=>e.factory(t):()=>new t}(t);throw new X(-204,!1)}function sT(t,n,e){let i;if(os(t)){const o=We(t);return qa(o)||wy(o)}if(vy(t))i=()=>We(t.useValue);else if(function iT(t){return!(!t||!t.useFactory)}(t))i=()=>t.useFactory(...py(t.deps||[]));else if(function nT(t){return!(!t||!t.useExisting)}(t))i=(o,r)=>le(We(t.useExisting),void 0!==r&&8&r?8:void 0);else{const o=We(t&&(t.useClass||t.provide));if(!function DU(t){return!!t.deps}(t))return qa(o)||wy(o);i=()=>new o(...py(t.deps))}return i}function Pu(t){if(t.destroyed)throw new X(-205,!1)}function Oc(t,n,e=!1){return{factory:t,value:n,multi:e?[]:void 0}}function xy(t,n){for(const e of t)Array.isArray(e)?xy(e,n):e&&ay(e)?xy(e.\u0275providers,n):n(e)}function Yi(t,n){let e;t instanceof Ka?(Pu(t),e=t):e=new mU(t);const o=zs(e),r=ao(void 0);try{return n()}finally{zs(o),ao(r)}}function Sy(){return void 0!==KD()||null!=ny()}function _n(t){return Array.isArray(t)&&"object"==typeof t[1]}function Xi(t){return Array.isArray(t)&&!0===t[1]}function lT(t){return!!(4&t.flags)}function Ir(t){return t.componentOffset>-1}function Lc(t){return!(1&~t.flags)}function Jo(t){return!!t.template}function qs(t){return!!(512&t[2])}function ls(t){return!(256&~t[2])}function di(t){for(;Array.isArray(t);)t=t[0];return t}function Bc(t,n){return di(n[t])}function qn(t,n){return di(n[t.index])}function Vc(t,n){return t.data[n]}function Ja(t,n){return t[n]}function Zi(t,n){const e=n[t];return _n(e)?e:e[0]}function My(t){return!(128&~t[2])}function Ri(t,n){return null==n?null:t[n]}function pT(t){t[17]=0}function mT(t){1024&t[2]||(t[2]|=1024,My(t)&&Hc(t))}function Gp(t){return!!(9216&t[2]||t[24]?.dirty)}function Ey(t){t[10].changeDetectionScheduler?.notify(8),64&t[2]&&(t[2]|=1024),Gp(t)&&Hc(t)}function Hc(t){t[10].changeDetectionScheduler?.notify(0);let n=cs(t);for(;null!==n&&!(8192&n[2])&&(n[2]|=8192,My(n));)n=cs(n)}function qp(t,n){if(ls(t))throw new X(911,!1);null===t[21]&&(t[21]=[]),t[21].push(n)}function cs(t){const n=t[3];return Xi(n)?n[3]:n}function _T(t){return t[7]??=[]}function bT(t){return t.cleanup??=[]}const Fe={lFrame:AT(null),bindingsEnabled:!0,skipHydrationRootTNode:null};let Oy=!1;function vT(){Fe.lFrame.elementDepthCount--}function Ay(){return Fe.bindingsEnabled}function yT(){return null!==Fe.skipHydrationRootTNode}function CT(t){return Fe.skipHydrationRootTNode===t}function wT(){Fe.skipHydrationRootTNode=null}function ne(){return Fe.lFrame.lView}function Ue(){return Fe.lFrame.tView}function z(t){return Fe.lFrame.contextLView=t,t[8]}function $(t){return Fe.lFrame.contextLView=null,t}function Le(){let t=xT();for(;null!==t&&64===t.type;)t=t.parent;return t}function xT(){return Fe.lFrame.currentTNode}function ds(t,n){const e=Fe.lFrame;e.currentTNode=t,e.isParent=n}function ST(){return Fe.lFrame.isParent}function kT(){Fe.lFrame.isParent=!1}function MT(){return Oy}function Kp(t){const n=Oy;return Oy=t,n}function Ni(){const t=Fe.lFrame;let n=t.bindingRootIndex;return-1===n&&(n=t.bindingRootIndex=t.tView.bindingStartIndex),n}function us(){return Fe.lFrame.bindingIndex}function lo(){return Fe.lFrame.bindingIndex++}function hs(t){const n=Fe.lFrame,e=n.bindingIndex;return n.bindingIndex=n.bindingIndex+t,e}function jU(t,n){const e=Fe.lFrame;e.bindingIndex=e.bindingRootIndex=t,Ry(n)}function Ry(t){Fe.lFrame.currentDirectiveIndex=t}function Fy(){return Fe.lFrame.currentQueryIndex}function Yp(t){Fe.lFrame.currentQueryIndex=t}function zU(t){const n=t[1];return 2===n.type?n.declTNode:1===n.type?t[5]:null}function PT(t,n,e){if(4&e){let o=n,r=t;for(;!(o=o.parent,null!==o||1&e||(o=zU(r),null===o||(r=r[14],10&o.type))););if(null===o)return!1;n=o,t=r}const i=Fe.lFrame=OT();return i.currentTNode=n,i.lView=t,!0}function Ly(t){const n=OT(),e=t[1];Fe.lFrame=n,n.currentTNode=e.firstChild,n.lView=t,n.tView=e,n.contextLView=t,n.bindingIndex=e.bindingStartIndex,n.inI18n=!1}function OT(){const t=Fe.lFrame,n=null===t?null:t.child;return null===n?AT(t):n}function AT(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 RT(){const t=Fe.lFrame;return Fe.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}const NT=RT;function By(){const t=RT();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 bi(){return Fe.lFrame.selectedIndex}function el(t){Fe.lFrame.selectedIndex=t}function er(){const t=Fe.lFrame;return Vc(t.tView,t.selectedIndex)}function Uc(){Fe.lFrame.currentNamespace="svg"}function Vy(){!function GU(){Fe.lFrame.currentNamespace=null}()}let FT=!0;function Xp(){return FT}function Ru(t){FT=t}function LT(t,n=null,e=null,i){const o=BT(t,n,e);return o.resolveInjectorInitializers(),o}function BT(t,n=null,e=null,i,o=new Set){const r=[e||zt,wU(t)];return new Ka(r,n||Up(),null,o)}class Be{static THROW_IF_NOT_FOUND=Ga;static NULL=new Vp;static create(n,e){if(Array.isArray(n))return LT({name:""},e,n);{const i=n.name??"";return LT({name:i},n.parent,n.providers)}}static \u0275prov=te({token:Be,providedIn:"any",factory:()=>le(eT)});static __NG_ELEMENT_ID__=-1}const Qe=new Z("");let tr=(()=>class t{static __NG_ELEMENT_ID__=KU;static __NG_ENV_ID__=e=>e})();class VT extends tr{_lView;constructor(n){super(),this._lView=n}get destroyed(){return ls(this._lView)}onDestroy(n){const e=this._lView;return qp(e,n),()=>function Iy(t,n){if(null===t[21])return;const e=t[21].indexOf(n);-1!==e&&t[21].splice(e,1)}(e,n)}}function KU(){return new VT(ne())}const HT=!1,YU=new Z("");let Ks=(()=>{class t{taskId=0;pendingTasks=new Set;destroyed=!1;pendingTask=new _i(!1);debugTaskTracker=D(YU,{optional:!0});get hasPendingTasks(){return!this.destroyed&&this.pendingTask.value}get hasPendingTasksObservable(){return this.destroyed?new Rt(e=>{e.next(!1),e.complete()}):this.pendingTask}add(){!this.hasPendingTasks&&!this.destroyed&&this.pendingTask.next(!0);const e=this.taskId++;return this.pendingTasks.add(e),this.debugTaskTracker?.add(e),e}has(e){return this.pendingTasks.has(e)}remove(e){this.pendingTasks.delete(e),this.debugTaskTracker?.remove(e),0===this.pendingTasks.size&&this.hasPendingTasks&&this.pendingTask.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this.hasPendingTasks&&this.pendingTask.next(!1),this.destroyed=!0,this.pendingTask.unsubscribe()}static \u0275prov=te({token:t,providedIn:"root",factory:()=>new t})}return t})();const ve=class XU extends pe{__isAsync;destroyRef=void 0;pendingTasks=void 0;constructor(n=!1){super(),this.__isAsync=n,Sy()&&(this.destroyRef=D(tr,{optional:!0})??void 0,this.pendingTasks=D(Ks,{optional:!0})??void 0)}emit(n){const e=De(null);try{super.next(n)}finally{De(e)}}subscribe(n,e,i){let o=n,r=e||(()=>null),s=i;if(n&&"object"==typeof n){const l=n;o=l.next?.bind(l),r=l.error?.bind(l),s=l.complete?.bind(l)}this.__isAsync&&(r=this.wrapInTimeout(r),o&&(o=this.wrapInTimeout(o)),s&&(s=this.wrapInTimeout(s)));const a=super.subscribe({next:o,error:r,complete:s});return n instanceof mt&&n.add(a),a}wrapInTimeout(n){return e=>{const i=this.pendingTasks?.add();setTimeout(()=>{try{n(e)}finally{void 0!==i&&this.pendingTasks?.remove(i)}})}}};function Zp(...t){}function jT(t){let n,e;function i(){t=Zp;try{void 0!==e&&"function"==typeof cancelAnimationFrame&&cancelAnimationFrame(e),void 0!==n&&clearTimeout(n)}catch{}}return n=setTimeout(()=>{t(),i()}),"function"==typeof requestAnimationFrame&&(e=requestAnimationFrame(()=>{t(),i()})),()=>i()}function ZU(t){return queueMicrotask(()=>t()),()=>{t=Zp}}const Hy="isAngularZone",Qp=Hy+"_ID";let QU=0;class ge{hasPendingMacrotasks=!1;hasPendingMicrotasks=!1;isStable=!0;onUnstable=new ve(!1);onMicrotaskEmpty=new ve(!1);onStable=new ve(!1);onError=new ve(!1);constructor(n){const{enableLongStackTrace:e=!1,shouldCoalesceEventChangeDetection:i=!1,shouldCoalesceRunChangeDetection:o=!1,scheduleInRootZone:r=HT}=n;if(typeof Zone>"u")throw new X(908,!1);Zone.assertZonePatched();const s=this;s._nesting=0,s._outer=s._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(s._inner=s._inner.fork(new Zone.TaskTrackingZoneSpec)),e&&Zone.longStackTraceZoneSpec&&(s._inner=s._inner.fork(Zone.longStackTraceZoneSpec)),s.shouldCoalesceEventChangeDetection=!o&&i,s.shouldCoalesceRunChangeDetection=o,s.callbackScheduled=!1,s.scheduleInRootZone=r,function tz(t){const n=()=>{!function ez(t){function n(){jT(()=>{t.callbackScheduled=!1,Uy(t),t.isCheckStableRunning=!0,jy(t),t.isCheckStableRunning=!1})}t.isCheckStableRunning||t.callbackScheduled||(t.callbackScheduled=!0,t.scheduleInRootZone?Zone.root.run(()=>{n()}):t._outer.run(()=>{n()}),Uy(t))}(t)},e=QU++;t._inner=t._inner.fork({name:"angular",properties:{[Hy]:!0,[Qp]:e,[Qp+e]:!0},onInvokeTask:(i,o,r,s,a,l)=>{if(function iz(t){return $T(t,"__ignore_ng_zone__")}(l))return i.invokeTask(r,s,a,l);try{return UT(t),i.invokeTask(r,s,a,l)}finally{(t.shouldCoalesceEventChangeDetection&&"eventTask"===s.type||t.shouldCoalesceRunChangeDetection)&&n(),zT(t)}},onInvoke:(i,o,r,s,a,l,c)=>{try{return UT(t),i.invoke(r,s,a,l,c)}finally{t.shouldCoalesceRunChangeDetection&&!t.callbackScheduled&&!function oz(t){return $T(t,"__scheduler_tick__")}(l)&&n(),zT(t)}},onHasTask:(i,o,r,s)=>{i.hasTask(r,s),o===r&&("microTask"==s.change?(t._hasPendingMicrotasks=s.microTask,Uy(t),jy(t)):"macroTask"==s.change&&(t.hasPendingMacrotasks=s.macroTask))},onHandleError:(i,o,r,s)=>(i.handleError(r,s),t.runOutsideAngular(()=>t.onError.emit(s)),!1)})}(s)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get(Hy)}static assertInAngularZone(){if(!ge.isInAngularZone())throw new X(909,!1)}static assertNotInAngularZone(){if(ge.isInAngularZone())throw new X(909,!1)}run(n,e,i){return this._inner.run(n,e,i)}runTask(n,e,i,o){const r=this._inner,s=r.scheduleEventTask("NgZoneEvent: "+o,n,JU,Zp,Zp);try{return r.runTask(s,e,i)}finally{r.cancelTask(s)}}runGuarded(n,e,i){return this._inner.runGuarded(n,e,i)}runOutsideAngular(n){return this._outer.run(n)}}const JU={};function jy(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 Uy(t){t.hasPendingMicrotasks=!!(t._hasPendingMicrotasks||(t.shouldCoalesceEventChangeDetection||t.shouldCoalesceRunChangeDetection)&&!0===t.callbackScheduled)}function UT(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function zT(t){t._nesting--,jy(t)}class nz{hasPendingMicrotasks=!1;hasPendingMacrotasks=!1;isStable=!0;onUnstable=new ve;onMicrotaskEmpty=new ve;onStable=new ve;onError=new ve;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)}}function $T(t,n){return!(!Array.isArray(t)||1!==t.length)&&!0===t[0]?.data?.[n]}class tl{_console=console;handleError(n){this._console.error("ERROR",n)}}const Pr=new Z("",{factory:()=>{const t=D(ge),n=D(Nn);let e;return i=>{t.runOutsideAngular(()=>{n.destroyed&&!e?setTimeout(()=>{throw i}):(e??=n.get(tl),e.handleError(i))})}}}),rz={provide:is,useValue:()=>{D(tl,{optional:!0})},multi:!0};function yt(t,n){const[e,i,o]=function Mj(t,n){const e=Object.create(qv);e.value=t,void 0!==n&&(e.equal=n);const i=()=>function Ej(t){return yu(t),t.value}(e);return i[kn]=e,[i,s=>wp(e,s),s=>AD(e,s)]}(t,n?.equal),r=e;return r.set=i,r.update=o,r.asReadonly=zy.bind(r),r}function zy(){const t=this[kn];if(void 0===t.readonlyFn){const n=()=>this();n[kn]=t,t.readonlyFn=n}return t.readonlyFn}let Jp=(()=>class t{view;node;constructor(e,i){this.view=e,this.node=i}static __NG_ELEMENT_ID__=az})();function az(){return new Jp(ne(),Le())}class nl{}const em=new Z("",{factory:()=>!0}),WT=new Z("");let tm=(()=>{class t{internalPendingTasks=D(Ks);scheduler=D(nl);errorHandler=D(Pr);add(){const e=this.internalPendingTasks.add();return()=>{this.internalPendingTasks.has(e)&&(this.scheduler.notify(11),this.internalPendingTasks.remove(e))}}run(e){const i=this.add();e().catch(this.errorHandler).finally(i)}static \u0275prov=te({token:t,providedIn:"root",factory:()=>new t})}return t})(),GT=(()=>{class t{static \u0275prov=te({token:t,providedIn:"root",factory:()=>new lz})}return t})();class lz{dirtyEffectCount=0;queues=new Map;add(n){this.enqueue(n),this.schedule(n)}schedule(n){n.dirty&&this.dirtyEffectCount++}remove(n){const i=this.queues.get(n.zone);i.has(n)&&(i.delete(n),n.dirty&&this.dirtyEffectCount--)}enqueue(n){const e=n.zone;this.queues.has(e)||this.queues.set(e,new Set);const i=this.queues.get(e);i.has(n)||i.add(n)}flush(){for(;this.dirtyEffectCount>0;){let n=!1;for(const[e,i]of this.queues)n||=null===e?this.flushQueue(i):e.run(()=>this.flushQueue(i));n||(this.dirtyEffectCount=0)}}flushQueue(n){let e=!1;for(const i of n)i.dirty&&(this.dirtyEffectCount--,e=!0,i.run());return e}}class $y{[kn];constructor(n){this[kn]=n}destroy(){this[kn].destroy()}}function nm(t,n){const e=n?.injector??D(Be);let o,i=!0!==n?.manualCleanup?e.get(tr):null;const r=e.get(Jp,null,{optional:!0}),s=e.get(nl);return null!==r?(o=function uz(t,n,e){const i=Object.create(dz);return i.view=t,i.zone=typeof Zone<"u"?Zone.current:null,i.notifier=n,i.fn=KT(i,e),t[23]??=new Set,t[23].add(i),i.consumerMarkedDirty(i),i}(r.view,s,t),i instanceof VT&&i._lView===r.view&&(i=null)):o=function hz(t,n,e){const i=Object.create(cz);return i.fn=KT(i,t),i.scheduler=n,i.notifier=e,i.zone=typeof Zone<"u"?Zone.current:null,i.scheduler.add(i),i.notifier.notify(12),i}(t,e.get(GT),s),o.injector=e,null!==i&&(o.onDestroyFns=[i.onDestroy(()=>o.destroy())]),new $y(o)}const qT={...Pj,cleanupFns:void 0,zone:null,onDestroyFns:null,run(){const t=Kp(!1);try{!function Oj(t){if(t.dirty=!1,t.version>0&&!yp(t))return;t.version++;const n=kc(t);try{t.cleanup(),t.fn()}finally{wu(t,n)}}(this)}finally{Kp(t)}},cleanup(){if(!this.cleanupFns?.length)return;const t=De(null);try{for(;this.cleanupFns.length;)this.cleanupFns.pop()()}finally{this.cleanupFns=[],De(t)}}},cz={...qT,consumerMarkedDirty(){this.scheduler.schedule(this),this.notifier.notify(12)},destroy(){if(xu(this),null!==this.onDestroyFns)for(const t of this.onDestroyFns)t();this.cleanup(),this.scheduler.remove(this)}},dz={...qT,consumerMarkedDirty(){this.view[2]|=8192,Hc(this.view),this.notifier.notify(13)},destroy(){if(xu(this),null!==this.onDestroyFns)for(const t of this.onDestroyFns)t();this.cleanup(),this.view[23]?.delete(this)}};function KT(t,n){return()=>{n(e=>(t.cleanupFns??=[]).push(e))}}let YT=null;function Ys(){return YT}class pz{}let im=(()=>{class t{historyGo(e){throw new Error("")}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:()=>D(gz),providedIn:"platform"})}return t})();const mz=new Z("");let gz=(()=>{class t extends im{_location;_history;_doc=D(Qe);constructor(){super(),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return Ys().getBaseHref(this._doc)}onPopState(e){const i=Ys().getGlobalEventTarget(this._doc,"window");return i.addEventListener("popstate",e,!1),()=>i.removeEventListener("popstate",e)}onHashChange(e){const i=Ys().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 \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:()=>new t,providedIn:"platform"})}return t})();function XT(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}class ZT{}const QT="browser";let JT=(()=>{class t{static \u0275prov=te({token:t,providedIn:"root",factory:()=>new Sz(D(Qe),window)})}return t})();class Sz{document;window;offset=()=>[0,0];constructor(n,e){this.document=n,this.window=e}setOffset(n){this.offset=Array.isArray(n)?()=>n:n}getScrollPosition(){return[this.window.scrollX,this.window.scrollY]}scrollToPosition(n,e){this.window.scrollTo({...e,left:n[0],top:n[1]})}scrollToAnchor(n,e){const i=function kz(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 s=r.getElementById(n)||r.querySelector(`[name="${n}"]`);if(s)return s}o=i.nextNode()}}return null}(this.document,n);i&&(this.scrollToElement(i,e),i.focus())}setHistoryScrollRestoration(n){try{this.window.history.scrollRestoration=n}catch{console.warn(so(2400,!1))}}scrollToElement(n,e){const i=n.getBoundingClientRect(),o=i.left+this.window.pageXOffset,r=i.top+this.window.pageYOffset,s=this.offset();this.window.scrollTo({...e,left:o-s[0],top:r-s[1]})}}function dM(t,n,e,i,o,r,s){try{var a=t[r](s),l=a.value}catch(c){return void e(c)}a.done?n(l):Promise.resolve(l).then(i,o)}function Nt(t){return function(){var n=this,e=arguments;return new Promise(function(i,o){var r=t.apply(n,e);function s(l){dM(r,i,o,s,a,"next",l)}function a(l){dM(r,i,o,s,a,"throw",l)}s(void 0)})}}function bn(t){return n=>{if(function Jz(t){return Jt(t?.lift)}(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 en(t,n,e,i,o){return new e6(t,n,e,i,o)}class e6 extends Tp{constructor(n,e,i,o,r,s){super(n),this.onFinalize=r,this.shouldUnsubscribe=s,this._next=e?function(a){try{e(a)}catch(l){n.error(l)}}:super._next,this._error=o?function(a){try{o(a)}catch(l){n.error(l)}finally{this.unsubscribe()}}:super._error,this._complete=i?function(){try{i()}catch(a){n.error(a)}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 ye(t,n){return bn((e,i)=>{let o=0;e.subscribe(en(i,r=>{i.next(t.call(n,r,o++))}))})}function fs(t){return{toString:t}.toString()}function xM(t,n,e,i){null!==n?n.applyValueToInputSignal(n,i):t[e]=i}class O6{previousValue;currentValue;firstChange;constructor(n,e,i){this.previousValue=n,this.currentValue=e,this.firstChange=i}isFirstChange(){return this.firstChange}}const yi=(()=>{const t=()=>SM;return t.ngInherit=!0,t})();function SM(t){return t.type.prototype.ngOnChanges&&(t.setInput=R6),A6}function A6(){const t=DM(this),n=t?.current;if(n){const e=t.previous;if(e===Er)t.previous=n;else for(let i in n)e[i]=n[i];t.current=null,this.ngOnChanges(n)}}function R6(t,n,e,i,o){const r=this.declaredInputs[i],s=DM(t)||function N6(t,n){return t[kM]=n}(t,{previous:Er,current:null}),a=s.current||(s.current={}),l=s.previous,c=l[r];a[r]=new O6(c&&c.currentValue,e,l===Er),xM(t,n,o,e)}const kM="__ngSimpleChanges__";function DM(t){return t[kM]||null}const rl=[],Ft=function(t,n=null,e){for(let i=0;i=i)break}else n[l]<0&&(t[17]+=65536),(a>14>16&&(3&t[2])===n&&(t[2]+=16384,EM(a,r)):EM(a,r)}class Uu{factory;name;injectImpl;resolving=!1;canSeeViewProviders;multi;componentProviders;index;providerFactory;constructor(n,e,i,o){this.factory=n,this.name=o,this.canSeeViewProviders=e,this.injectImpl=i}}function PM(t){return 3===t||4===t||6===t}function OM(t){return 64===t.charCodeAt(0)}function Yc(t,n){if(null!==n&&0!==n.length)if(null===t||0===t.length)t=n.slice();else{let e=-1;for(let i=0;in){s=r-1;break}}}for(;r>16}(t),i=n;for(;e>0;)i=i[14],e--;return i}let oC=!0;function mm(t){const n=oC;return oC=t,n}let W6=0;const Ar={};function gm(t,n){const e=FM(t,n);if(-1!==e)return e;const i=n[1];i.firstCreatePass&&(t.injectorIndex=n.length,rC(i.data,t),rC(n,null),rC(i.blueprint,null));const o=_m(t,n),r=t.injectorIndex;if(iC(o)){const s=zu(o),a=$u(o,n),l=a[1].data;for(let c=0;c<8;c++)n[r+c]=a[s+c]|l[s+c]}return n[r+8]=o,r}function rC(t,n){t.push(0,0,0,0,0,0,0,0,n)}function FM(t,n){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null===n[t.injectorIndex+8]?-1:t.injectorIndex}function _m(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=zM(o),null===i)return-1;if(e++,o=o[14],-1!==i.injectorIndex)return i.injectorIndex|e<<16}return-1}function sC(t,n,e){!function G6(t,n,e){let i;"string"==typeof e?i=e.charCodeAt(0)||0:e.hasOwnProperty(ku)&&(i=e[ku]),null==i&&(i=e[ku]=W6++);const o=255&i;n.data[t+(o>>5)]|=1<=0?255&n:X6:n}(e);if("function"==typeof r){if(!PT(n,t,i))return 1&i?LM(o,0,i):BM(n,e,i,o);try{let s;if(s=r(i),null!=s||8&i)return s;uy()}finally{NT()}}else if("number"==typeof r){let s=null,a=FM(t,n),l=-1,c=1&i?n[15][5]:null;for((-1===a||4&i)&&(l=-1===a?_m(t,n):n[a+8],-1!==l&&UM(i,!1)?(s=n[1],a=zu(l),n=$u(l,n)):a=-1);-1!==a;){const u=n[1];if(jM(r,a,u.data)){const p=K6(a,n,e,s,i,c);if(p!==Ar)return p}l=n[a+8],-1!==l&&UM(i,n[1].data[a+8]===c)&&jM(r,a,n)?(s=u,a=zu(l),n=$u(l,n)):a=-1}}return o}function K6(t,n,e,i,o,r){const s=n[1],a=s.data[t+8],u=bm(a,s,e,null==i?Ir(a)&&oC:i!=s&&!!(3&a.type),1&o&&r===a);return null!==u?Wu(n,s,u,a,o):Ar}function bm(t,n,e,i,o){const r=t.providerIndexes,s=n.data,a=1048575&r,l=t.directiveStart,u=r>>20,g=o?a+u:t.directiveEnd;for(let _=i?a:a+u;_=l&&w.type===e)return _}if(o){const _=s[l];if(_&&Jo(_)&&_.type===e)return l}return null}function Wu(t,n,e,i,o){let r=t[e];const s=n.data;if(r instanceof Uu){const a=r;if(a.resolving)throw dy();const l=mm(a.canSeeViewProviders);a.resolving=!0;const p=a.injectImpl?ao(a.injectImpl):null;PT(t,i,0);try{r=t[e]=a.factory(void 0,o,s,t,i),n.firstCreatePass&&e>=i.directiveStart&&function V6(t,n,e){const{ngOnChanges:i,ngOnInit:o,ngDoCheck:r}=n.type.prototype;if(i){const s=SM(n);(e.preOrderHooks??=[]).push(t,s),(e.preOrderCheckHooks??=[]).push(t,s)}o&&(e.preOrderHooks??=[]).push(0-t,o),r&&((e.preOrderHooks??=[]).push(t,r),(e.preOrderCheckHooks??=[]).push(t,r))}(e,s[e],n)}finally{null!==p&&ao(p),mm(l),a.resolving=!1,NT()}}return r}function jM(t,n,e){return!!(e[n+(t>>5)]&1<{const n=t.prototype.constructor,e=n[Wa]||aC(n),i=Object.prototype;let o=Object.getPrototypeOf(t.prototype).constructor;for(;o&&o!==i;){const r=o[Wa]||aC(o);if(r&&r!==e)return r;o=Object.getPrototypeOf(o)}return r=>new r})}function aC(t){return Ip(t)?()=>{const n=aC(We(t));return n&&n()}:qa(t)}function zM(t){const n=t[1],e=n.type;return 2===e?n.declTNode:1===e?t[5]:null}function Gu(t){return function q6(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(;oclass t{nativeElement;constructor(e){this.nativeElement=e}static __NG_ELEMENT_ID__=r7})();function KM(t){return t instanceof Ae?t.nativeElement:t}function s7(){return this._results[Symbol.iterator]()}class Zc{_emitDistinctChangesOnly;dirty=!0;_onDirty=void 0;_results=[];_changesDetected=!1;_changes=void 0;length=0;first=void 0;last=void 0;get changes(){return this._changes??=new pe}constructor(n=!1){this._emitDistinctChangesOnly=n}get(n){return this._results[n]}map(n){return this._results.map(n)}filter(n){return this._results.filter(n)}find(n){return this._results.find(n)}reduce(n,e){return this._results.reduce(n,e)}forEach(n){this._results.forEach(n)}some(n){return this._results.some(n)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(n,e){this.dirty=!1;const i=function Po(t){return t.flat(Number.POSITIVE_INFINITY)}(n);(this._changesDetected=!function vU(t,n,e){if(t.length!==n.length)return!1;for(let i=0;iO7}),O7="ng",fE=new Z(""),mC=new Z("",{providedIn:"platform",factory:()=>"unknown"}),xm=new Z(""),gC=new Z("",{factory:()=>D(Qe).body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null}),V7=new Z("",{factory:()=>!1}),z7=new Z("");function Mm(t){return!(32&~t.flags)}function jE(t,n){const e=t.contentQueries;if(null!==e){const i=De(null);try{for(let o=0;ot,createScript:t=>t,createScriptURL:t=>t})}catch{}return Nm}()?.createHTML(t)||t}function KE(t){return function NC(){if(void 0===Fm&&(Fm=null,Dn.trustedTypes))try{Fm=Dn.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return Fm}()?.createScriptURL(t)||t}class al{changingThisBreaksApplicationSecurity;constructor(n){this.changingThisBreaksApplicationSecurity=n}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${UD})`}}class v$ extends al{getTypeName(){return"HTML"}}class y$ extends al{getTypeName(){return"Style"}}class C$ extends al{getTypeName(){return"Script"}}class w$ extends al{getTypeName(){return"URL"}}class x$ extends al{getTypeName(){return"ResourceURL"}}function ko(t){return t instanceof al?t.changingThisBreaksApplicationSecurity:t}function Rr(t,n){const e=function S$(t){return t instanceof al&&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 ${UD})`)}return e===n}class I${inertDocumentHelper;constructor(n){this.inertDocumentHelper=n}getInertBodyElement(n){n=""+n;try{const e=(new window.DOMParser).parseFromString(Jc(n),"text/html").body;return null===e?this.inertDocumentHelper.getInertBodyElement(n):(e.firstChild?.remove(),e)}catch{return null}}}class P${defaultDoc;inertDocument;constructor(n){this.defaultDoc=n,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(n){const e=this.inertDocument.createElement("template");return e.innerHTML=Jc(n),e}}const A$=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function Ju(t){return(t=String(t)).match(A$)?t:"unsafe:"+t}function Nr(t){const n={};for(const e of t.split(","))n[e]=!0;return n}function ed(...t){const n={};for(const e of t)for(const i in e)e.hasOwnProperty(i)&&(n[i]=!0);return n}const XE=Nr("area,br,col,hr,img,wbr"),ZE=Nr("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),QE=Nr("rp,rt"),FC=ed(XE,ed(ZE,Nr("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")),ed(QE,Nr("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")),ed(QE,ZE)),LC=Nr("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),BC=ed(LC,Nr("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"),Nr("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")),R$=Nr("script,style,template");class N${sanitizedSomething=!1;buf=[];sanitizeChildren(n){let e=n.firstChild,i=!0,o=[];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)o.push(e),e=B$(e);else for(;e;){e.nodeType===Node.ELEMENT_NODE&&this.endElement(e);let r=L$(e);if(r){e=r;break}e=o.pop()}return this.buf.join("")}startElement(n){const e=JE(n).toLowerCase();if(!FC.hasOwnProperty(e))return this.sanitizedSomething=!0,!R$.hasOwnProperty(e);this.buf.push("<"),this.buf.push(e);const i=n.attributes;for(let o=0;o"),!0}endElement(n){const e=JE(n).toLowerCase();FC.hasOwnProperty(e)&&!XE.hasOwnProperty(e)&&(this.buf.push(""))}chars(n){this.buf.push(t2(n))}}function L$(t){const n=t.nextSibling;if(n&&t!==n.previousSibling)throw e2(n);return n}function B$(t){const n=t.firstChild;if(n&&function F$(t,n){return(t.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_CONTAINED_BY)!==Node.DOCUMENT_POSITION_CONTAINED_BY}(t,n))throw e2(n);return n}function JE(t){const n=t.nodeName;return"string"==typeof n?n:"FORM"}function e2(t){return new Error(`Failed to sanitize html because the element is clobbered: ${t.outerHTML}`)}const V$=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,H$=/([^\#-~ |!])/g;function t2(t){return t.replace(/&/g,"&").replace(V$,function(n){return"&#"+(1024*(n.charCodeAt(0)-55296)+(n.charCodeAt(1)-56320)+65536)+";"}).replace(H$,function(n){return"&#"+n.charCodeAt(0)+";"}).replace(//g,">")}let Lm;function n2(t,n){let e=null;try{Lm=Lm||function YE(t){const n=new P$(t);return function O$(){try{return!!(new window.DOMParser).parseFromString(Jc(""),"text/html")}catch{return!1}}()?new I$(n):n}(t);let i=n?String(n):"";e=Lm.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=Lm.getInertBodyElement(i)}while(i!==r);return Jc((new N$).sanitizeChildren(HC(e)||e))}finally{if(e){const i=HC(e)||e;for(;i.firstChild;)i.firstChild.remove()}}}function HC(t){return"content"in t&&function j$(t){return t.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===t.nodeName}(t)?t.content:null}const U$=/^>|^->||--!>|)/g;function UC(t,n){return t.createComment(function i2(t){return t.replace(U$,n=>n.replace(z$,"\u200b$1\u200b"))}(n))}function Bm(t,n,e){return t.createElement(n,e)}function ll(t,n,e,i,o){t.insertBefore(n,e,i,o)}function r2(t,n,e){t.appendChild(n,e)}function s2(t,n,e,i,o){null!==i?ll(t,n,e,i,o):r2(t,n,e)}function eh(t,n,e,i){t.removeChild(null,n,e,i)}function l2(t,n,e){const{mergedAttrs:i,classes:o,styles:r}=e;null!==i&&function z6(t,n,e){let i=0;for(;i-1){let r;for(;++or?"":o[u+1].toLowerCase(),2&i&&c!==p){if(nr(i))return!1;s=!0}}}}else{if(!s&&!nr(i)&&!nr(l))return!1;if(s&&nr(l))continue;s=!1,i=l|1&i}}return nr(i)||s}function nr(t){return!(1&t)}function m9(t,n,e,i){if(null===n)return-1;let o=0;if(i||!e){let r=!1;for(;o-1)for(e++;e0?'="'+a+'"':"")+"]"}else 8&i?o+="."+s:4&i&&(o+=" "+s);else""!==o&&!nr(s)&&(n+=_2(r,o),o=""),i=s,r=r||!nr(i);e++}return""!==o&&(n+=_2(r,o)),n}const Ot={};function WC(t,n,e,i,o,r,s,a,l,c,u){const p=27+i,g=p+o,_=function x9(t,n){const e=[];for(let i=0;i{class t{impl=null;execute(){this.impl?.execute()}static \u0275prov=te({token:t,providedIn:"root",factory:()=>new t})}return t})();const k2=[0,1,2,3];let D2=(()=>{class t{ngZone=D(ge);scheduler=D(nl);errorHandler=D(tl,{optional:!0});sequences=new Set;deferredRegistrations=new Set;executing=!1;constructor(){D(ia,{optional:!0})}execute(){const e=this.sequences.size>0;e&&Ft(me.AfterRenderHooksStart),this.executing=!0;for(const i of k2)for(const o of this.sequences)if(!o.erroredOrDestroyed&&o.hooks[i])try{o.pipelinedValue=this.ngZone.runOutsideAngular(()=>this.maybeTrace(()=>(0,o.hooks[i])(o.pipelinedValue),o.snapshot))}catch(r){o.erroredOrDestroyed=!0,this.errorHandler?.handleError(r)}this.executing=!1;for(const i of this.sequences)i.afterRun(),i.once&&(this.sequences.delete(i),i.destroy());for(const i of this.deferredRegistrations)this.sequences.add(i);this.deferredRegistrations.size>0&&this.scheduler.notify(7),this.deferredRegistrations.clear(),e&&Ft(me.AfterRenderHooksEnd)}register(e){const{view:i}=e;void 0!==i?((i[25]??=[]).push(e),Hc(i),i[2]|=8192):this.executing?this.deferredRegistrations.add(e):this.addSequence(e)}addSequence(e){this.sequences.add(e),this.scheduler.notify(7)}unregister(e){this.executing&&this.sequences.has(e)?(e.erroredOrDestroyed=!0,e.pipelinedValue=void 0,e.once=!0):(this.sequences.delete(e),this.deferredRegistrations.delete(e))}maybeTrace(e,i){return i?i.run(i1.AFTER_NEXT_RENDER,e):e()}static \u0275prov=te({token:t,providedIn:"root",factory:()=>new t})}return t})();class T2{impl;hooks;view;once;snapshot;erroredOrDestroyed=!1;pipelinedValue=void 0;unregisterOnDestroy;constructor(n,e,i,o,r,s=null){this.impl=n,this.hooks=e,this.view=i,this.once=o,this.snapshot=s,this.unregisterOnDestroy=r?.onDestroy(()=>this.destroy())}afterRun(){this.erroredOrDestroyed=!1,this.pipelinedValue=void 0,this.snapshot?.dispose(),this.snapshot=null}destroy(){this.impl.unregister(this),this.unregisterOnDestroy?.();const n=this.view?.[25];n&&(this.view[25]=n.filter(e=>e!==this))}}function Fi(t,n){const e=n?.injector??D(Be);return hi("NgAfterNextRender"),function M2(t,n,e,i){const o=n.get(o1);o.impl??=n.get(D2);const r=n.get(ia,null,{optional:!0}),s=!0!==e?.manualCleanup?n.get(tr):null,a=n.get(Jp,null,{optional:!0}),l=new T2(o.impl,function H9(t){return t instanceof Function?[void 0,void 0,t,void 0]:[t.earlyRead,t.write,t.mixedReadWrite,t.read]}(t),a?.view,i,s,r?.snapshot(null));return o.impl.register(l),l}(t,e,n,!0)}const qm=new Z("",{factory:()=>({queue:new Set,isScheduled:!1,scheduler:null,injector:D(Nn)})});function E2(t,n,e){const i=t.get(qm);if(Array.isArray(n))for(const o of n)i.queue.add(o),e?.detachedLeaveAnimationFns?.push(o);else i.queue.add(n),e?.detachedLeaveAnimationFns?.push(n);i.scheduler&&i.scheduler(t)}function I2(t,n,e,i){const o=t?.[26]?.enter;null!==n&&o&&o.has(e.index)&&function r1(t,n){for(const[e,i]of n)E2(t,i.animateFns)}(i,o)}function id(t,n,e,i,o,r,s,a){if(null!=o){let l,c=!1;Xi(o)?l=o:_n(o)&&(c=!0,o=o[0]);const u=di(o);0===t&&null!==i?(I2(a,i,r,e),null==s?r2(n,i,u):ll(n,i,u,s||null,!0)):1===t&&null!==i?(I2(a,i,r,e),ll(n,i,u,s||null,!0),function O9(t,n){const e=ih.get(t);if(!e||0===e.length)return;const i=n.parentNode,o=n.previousSibling;for(let r=e.length-1;r>=0;r--){const s=e[r],a=s.parentNode;s===n?(e.splice(r,1),ZC.add(s),s.dispatchEvent(new CustomEvent("animationend",{detail:{cancel:!0}}))):(o&&s===o||a&&i&&a!==i)&&(e.splice(r,1),s.dispatchEvent(new CustomEvent("animationend",{detail:{cancel:!0}})),s.parentNode?.removeChild(s))}}(r,u)):2===t?(a?.[26]?.leave?.has(r.index)&&function JC(t,n){const e=ih.get(t);e?e.includes(n)||e.push(n):ih.set(t,[n])}(r,u),A2(a,r,e,p=>{ZC.has(u)?ZC.delete(u):eh(n,u,c,p)})):3===t&&A2(a,r,e,()=>{n.destroyNode(u)}),null!=l&&function Y9(t,n,e,i,o,r,s){const a=i[7];a!==di(i)&&id(n,t,e,r,a,o,s);for(let c=10;c=0?i[a]():i[-a].unsubscribe(),s+=2}else e[s].call(i[e[s+1]]);null!==i&&(n[7]=null);const o=n[21];if(null!==o){n[21]=null;for(let s=0;s{if(o.leave&&o.leave.has(n.index)){const s=o.leave.get(n.index),a=[];if(s){for(let l=0;l{t[26].running=void 0,fl.delete(t[19]),n(!0)}):n(!1)}(t,i)}else t&&fl.delete(t[19]),i(!1)},o)}function l1(t,n,e){return function R2(t,n,e){let i=n;for(;null!==i&&168&i.type;)i=(n=i).parent;if(null===i)return e[0];if(Ir(i)){const{encapsulation:o}=t.data[i.directiveStart+i.componentOffset];if(o===Ro.None||o===Ro.Emulated)return null}return qn(i,e)}(t,n.parent,e)}function N2(t,n,e){return L2(t,n,e)}let L2=function F2(t,n,e){return 40&t.type?qn(t,e):null};function d1(t,n,e,i){const o=l1(t,i,n),r=n[11],a=N2(i.parent||n[5],i,n);if(null!=o)if(Array.isArray(e))for(let l=0;l27&&v2(t,n,27,!1),Ft(s?me.TemplateUpdateStart:me.TemplateCreateStart,o,e),e(i,o)}finally{el(r),Ft(s?me.TemplateUpdateEnd:me.TemplateCreateEnd,o,e)}}function Xm(t,n,e){(function tW(t,n,e){const i=e.directiveStart,o=e.directiveEnd;Ir(e)&&function S9(t,n,e){const i=qn(n,t),o=function b2(t){const n=t.tView;return null===n||n.incompleteFirstPass?t.tView=WC(1,null,t.template,t.decls,t.vars,t.directiveDefs,t.pipeDefs,t.viewQuery,t.schemas,t.consts,t.id):n}(e),r=t[10].rendererFactory,s=qC(t,Hm(t,o,null,GC(e),i,n,null,r.createRenderer(i,e),null,null,null));t[n.index]=s}(n,e,t.data[i+e.componentOffset]),t.firstCreatePass||gm(e,n);const r=e.initialInputs;for(let s=i;snull;function f1(t,n,e,i,o,r){eg(t,n[1],n,e,i)?Ir(t)&&z2(n,t.index):(3&t.type&&(e=function eW(t){return"class"===t?"className":"for"===t?"htmlFor":"formaction"===t?"formAction":"innerHtml"===t?"innerHTML":"readonly"===t?"readOnly":"tabindex"===t?"tabIndex":t}(e)),p1(t,n,e,i,o,r))}function p1(t,n,e,i,o,r){if(3&t.type){const s=qn(t,n);i=null!=r?r(i,t.value||"",e):i,o.setProperty(s,e,i)}}function z2(t,n){const e=Zi(n,t);16&e[2]||(e[2]|=64)}function iW(t,n){null!==t.hostBindings&&t.hostBindings(1,n)}function m1(t,n){const e=t.directiveRegistry;let i=null;if(e)for(let o=0;o{Hc(t.lView)},consumerOnSignalRead(){this.lView[24]=this}},gW={...Sc,consumerIsAlwaysLive:!0,kind:"template",consumerMarkedDirty:t=>{let n=cs(t.lView);for(;n&&!K2(n[1]);)n=cs(n);n&&mT(n)},consumerOnSignalRead(){this.lView[24]=this}};function K2(t){return 2!==t.type}function Y2(t){if(null===t[23])return;let n=!0;for(;n;){let e=!1;for(const i of t[23])i.dirty&&(e=!0,null===i.zone||Zone.current===i.zone?i.run():i.zone.run(()=>i.run()));n=e&&!!(8192&t[2])}}function ng(t,n=0){const i=t[10].rendererFactory;i.begin?.();try{!function bW(t,n){const e=MT();try{Kp(!0),_1(t,n);let i=0;for(;Gp(t);){if(100===i)throw new X(103,!1);i++,_1(t,1)}}finally{Kp(e)}}(t,n)}finally{i.end?.()}}function X2(t,n,e,i){if(ls(n))return;const o=n[2];Ly(n);let a=!0,l=null,c=null;K2(t)?(c=function uW(t){return t[24]??function hW(t){const n=q2.pop()??Object.create(pW);return n.lView=t,n}(t)}(n),l=kc(c)):null===function zv(){return Sn}()?(a=!1,c=function mW(t){const n=t[24]??Object.create(gW);return n.lView=t,n}(n),l=kc(c)):n[24]&&(xu(n[24]),n[24]=null);try{pT(n),function ET(t){return Fe.lFrame.bindingIndex=t}(t.bindingStartIndex),null!==e&&j2(t,n,e,2,i);const u=!(3&~o);if(u){const _=t.preOrderCheckHooks;null!==_&&fm(n,_,null)}else{const _=t.preOrderHooks;null!==_&&pm(n,_,0,null),tC(n,0)}if(function vW(t){for(let n=oE(t);null!==n;n=rE(n)){if(!(2&n[2]))continue;const e=n[9];for(let i=0;i0&&(e[o-1][4]=n),i0&&(t[e-1][4]=i[4]);const r=Fp(t,10+n);!function P2(t,n){O2(t,n),n[0]=null,n[5]=null}(i[1],i);const s=r[18];null!==s&&s.detachView(r[1]),i[3]=null,i[4]=null,i[2]&=-129}return i}function nI(t,n){const e=t[9],i=n[3];(_n(i)||n[15]!==i[3][15])&&(t[2]|=2),null===e?t[9]=[n]:e.push(n)}class lh{_lView;_cdRefInjectingView;_appRef=null;_attachedToViewContainer=!1;exhaustive;get rootNodes(){const n=this._lView,e=n[1];return sh(e,n,e.firstChild,[])}constructor(n,e){this._lView=n,this._cdRefInjectingView=e}get context(){return this._lView[8]}set context(n){this._lView[8]=n}get destroyed(){return ls(this._lView)}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._attachedToViewContainer){const n=this._lView[3];if(Xi(n)){const e=n[8],i=e?e.indexOf(this):-1;i>-1&&(ah(n,i),Fp(e,i))}this._attachedToViewContainer=!1}rh(this._lView[1],this._lView)}onDestroy(n){qp(this._lView,n)}markForCheck(){sd(this._cdRefInjectingView||this._lView,4)}detach(){this._lView[2]&=-129}reattach(){Ey(this._lView),this._lView[2]|=128}detectChanges(){this._lView[2]|=1024,ng(this._lView)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new X(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null;const n=qs(this._lView),e=this._lView[16];null!==e&&!n&&s1(e,this._lView),O2(this._lView[1],this._lView)}attachToAppRef(n){if(this._attachedToViewContainer)throw new X(902,!1);this._appRef=n;const e=qs(this._lView),i=this._lView[16];null!==i&&!e&&nI(i,this._lView),Ey(this._lView)}}let Ci=(()=>class t{_declarationLView;_declarationTContainer;elementRef;static __NG_ELEMENT_ID__=xW;constructor(e,i,o){this._declarationLView=e,this._declarationTContainer=i,this.elementRef=o}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(e,i){return this.createEmbeddedViewImpl(e,i)}createEmbeddedViewImpl(e,i,o){const r=rd(this._declarationLView,this._declarationTContainer,e,{embeddedViewInjector:i,dehydratedView:o});return new lh(r)}})();function xW(){return ig(Le(),ne())}function ig(t,n){return 4&t.type?new Ci(n,t,Xc(t,n)):null}function gl(t,n,e,i,o){let r=t.data[n];if(null===r)r=function w1(t,n,e,i,o){const r=xT(),s=ST(),l=t.data[n]=function OW(t,n,e,i,o,r){let s=n?n.injectorIndex:-1,a=0;return yT()&&(a|=128),{type:e,index:i,insertBeforeIndex:null,injectorIndex:s,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,componentOffset:-1,controlDirectiveIndex:-1,customControlIndex:-1,propertyBindings:null,flags:a,providerIndexes:0,value:o,attrs:r,mergedAttrs:null,localNames:null,initialInputs:null,inputs:null,hostDirectiveInputs:null,outputs:null,hostDirectiveOutputs:null,directiveToIndex:null,tView:null,next:null,prev:null,projectionNext:null,child:null,parent:n,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}(0,s?r:r&&r.parent,e,n,i,o);return function PW(t,n,e,i){null===t.firstChild&&(t.firstChild=n),null!==e&&(i?null==e.child&&null!==n.parent&&(e.child=n):null===e.next&&(e.next=n,n.prev=e))}(t,l,r,s),l}(t,n,e,i,o),function HU(){return Fe.lFrame.inI18n}()&&(r.flags|=32);else if(64&r.type){r.type=e,r.value=i,r.attrs=o;const s=function Au(){const t=Fe.lFrame,n=t.currentTNode;return t.isParent?n:n.parent}();r.injectorIndex=null===s?-1:s.injectorIndex}return ds(r,!0),r}function CI(t,n){let e=0,i=t.firstChild;if(i){const o=t.data.r;for(;eclass t{destroyNode=null;static __NG_ELEMENT_ID__=()=>function gG(){const t=ne(),e=Zi(Le().index,t);return(_n(e)?e:t)[11]}()})(),_G=(()=>{class t{static \u0275prov=te({token:t,providedIn:"root",factory:()=>null})}return t})();const I1={};class cd{injector;parentInjector;constructor(n,e){this.injector=n,this.parentInjector=e}get(n,e,i){const o=this.injector.get(n,I1,i);return o!==I1||e===I1?o:this.parentInjector.get(n,e,i)}}function fg(t,n,e){let i=e?t.styles:null,o=e?t.classes:null,r=0;if(null!==n)for(let s=0;s0&&(e.directiveToIndex=new Map);for(let g=0;g0;){const e=t[--n];if("number"==typeof e&&e<0)return e}return 0})(s)!=a&&s.push(a),s.push(e,i,r)}}(t,n,i,nh(t,e,o.hostVars,Ot),o)}function MG(t,n,e){if(e){if(n.exportAs)for(let i=0;il?a[l]:null}"string"==typeof s&&(r+=2)}return null}(n,e,r,t.index)),null!==u)(u.__ngLastListenerFn__||u).__ngNextListenerFn__=s,u.__ngLastListenerFn__=s,c=!0;else{const p=qn(t,e),g=i?i(p):p,_=o.listen(g,r,a);(function AG(t){return t.startsWith("animation")||t.startsWith("transition")})(r)||FI(i?x=>i(di(x[t.index])):t.index,n,e,r,a,_,!1)}return c}function FI(t,n,e,i,o,r,s){const a=n.firstCreatePass?bT(n):null,l=_T(e),c=l.length;l.push(o,r),a&&a.push(i,t,c,(c+1)*(s?-1:1))}function ud(t,n,e,i,o,r){const a=n[1],p=n[e][a.data[e].outputs[i]].subscribe(r);FI(t.index,a,n,o,r,p,!0)}const ps=Symbol("BINDING");function F1(t){return t.debugInfo?.className||t.type.name||null}class $I extends ug{ngModule;constructor(n){super(),this.ngModule=n}resolveComponentFactory(n){const e=wt(n);return new bh(e,this.ngModule)}}class bh extends TI{componentDef;ngModule;selector;componentType;ngContentSelectors;isBoundToModule;cachedInputs=null;cachedOutputs=null;get inputs(){return this.cachedInputs??=function WG(t){return Object.keys(t).map(n=>{const[e,i,o]=t[n],r={propName:e,templateName:n,isSignal:0!==(i&jm.SignalBased)};return o&&(r.transform=o),r})}(this.componentDef.inputs),this.cachedInputs}get outputs(){return this.cachedOutputs??=function GG(t){return Object.keys(t).map(n=>({propName:t[n],templateName:n}))}(this.componentDef.outputs),this.cachedOutputs}constructor(n,e){super(),this.componentDef=n,this.ngModule=e,this.componentType=n.type,this.selector=function C9(t){return t.map(y9).join(",")}(n.selectors),this.ngContentSelectors=n.ngContentSelectors??[],this.isBoundToModule=!!e}create(n,e,i,o,r,s){Ft(me.DynamicComponentStart);const a=De(null);try{const l=this.componentDef,c=function qG(t,n,e){let i=n instanceof Nn?n:n?.injector;return i&&null!==t.getStandaloneInjector&&(i=t.getStandaloneInjector(i)||i),i?new cd(e,i):e}(l,o||this.ngModule,n),u=function KG(t){const n=t.get(No,null);if(null===n)throw new X(407,!1);return{rendererFactory:n,sanitizer:t.get(_G,null),changeDetectionScheduler:t.get(nl,null),ngReflect:!1,tracingService:t.get(ia,null,{optional:!0})}}(c),p=u.tracingService;return p&&p.componentCreate?p.componentCreate(F1(l),()=>this.createComponentRef(u,c,e,i,r,s)):this.createComponentRef(u,c,e,i,r,s)}finally{De(a)}}createComponentRef(n,e,i,o,r,s){const a=this.componentDef,l=function ZG(t,n,e,i){const o=t?["ng-version","21.2.4"]:function w9(t){const n=[],e=[];let i=1,o=2;for(;i{if(1&e&&t)for(const i of t)i.create();if(2&e&&n)for(const i of n)i.update()}:null}(r,s),1,a,l,null,null,null,[o],null)}(o,a,s,r),c=n.rendererFactory.createRenderer(null,a),u=o?function Z9(t,n,e,i){const r=i.get(V7,!1)||e===Ro.ShadowDom||e===Ro.ExperimentalIsolatedShadowDom,s=t.selectRootElement(n,r);return function Q9(t){U2(t)}(s),s}(c,o,a.encapsulation,e):function YG(t,n){const e=function XG(t){return(t.selectors[0][0]||"div").toLowerCase()}(t);return Bm(n,e,"svg"===e?"svg":"math"===e?"math":null)}(a,c),p=s?.some(WI)||r?.some(w=>"function"!=typeof w&&w.bindings.some(WI)),g=Hm(null,l,null,512|GC(a),null,null,n,c,e,null,null);g[27]=u,Ly(g);let _=null;try{const w=O1(27,g,2,"#host",()=>l.directiveRegistry,!0,0);l2(c,u,w),uo(u,g),Xm(l,g,w),OC(l,w,g),A1(l,w),void 0!==i&&function eq(t,n,e){const i=t.projection=[];for(let o=0;oclass t{static __NG_ELEMENT_ID__=tq})();function tq(){return qI(Le(),ne())}class L1 extends wi{_lContainer;_hostTNode;_hostLView;constructor(n,e,i){super(),this._lContainer=n,this._hostTNode=e,this._hostLView=i}get element(){return Xc(this._hostTNode,this._hostLView)}get injector(){return new En(this._hostTNode,this._hostLView)}get parentInjector(){const n=_m(this._hostTNode,this._hostLView);if(iC(n)){const e=$u(n,this._hostLView),i=zu(n);return new En(e[1].data[i+8],e)}return new En(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(n){const e=GI(this._lContainer);return null!==e&&e[n]||null}get length(){return this._lContainer.length-10}createEmbeddedView(n,e,i){let o,r;"number"==typeof i?o=i:null!=i&&(o=i.index,r=i.injector);const a=n.createEmbeddedViewImpl(e||{},r,null);return this.insertImpl(a,o,ml(this._hostTNode,null)),a}createComponent(n,e,i,o,r,s,a){const l=n&&!function ju(t){return"function"==typeof t}(n);let c;if(l)c=e;else{const T=e||{};c=T.index,i=T.injector,o=T.projectableNodes,r=T.environmentInjector||T.ngModuleRef,s=T.directives,a=T.bindings}const u=l?n:new bh(wt(n)),p=i||this.parentInjector;if(!r&&null==u.ngModule){const E=(l?p:this.parentInjector).get(Nn,null);E&&(r=E)}wt(u.componentType??{});const x=u.create(p,o,null,r,s,a);return this.insertImpl(x.hostView,c,ml(this._hostTNode,null)),x}insert(n,e){return this.insertImpl(n,e,!0)}insertImpl(n,e,i){const o=n._lView;if(function RU(t){return Xi(t[3])}(o)){const a=this.indexOf(n);if(-1!==a)this.detach(a);else{const l=o[3],c=new L1(l,l[5],l[3]);c.detach(c.indexOf(n))}}const r=this._adjustIndex(e),s=this._lContainer;return ad(s,o,r,i),n.attachToViewContainerRef(),ZD(B1(s),r,n),n}move(n,e){return this.insert(n,e)}indexOf(n){const e=GI(this._lContainer);return null!==e?e.indexOf(n):-1}remove(n){const e=this._adjustIndex(n,-1),i=ah(this._lContainer,e);i&&(Fp(B1(this._lContainer),e),rh(i[1],i))}detach(n){const e=this._adjustIndex(n,-1),i=ah(this._lContainer,e);return i&&null!=Fp(B1(this._lContainer),e)?new lh(i):null}_adjustIndex(n,e=0){return n??this.length+e}}function GI(t){return t[8]}function B1(t){return t[8]||(t[8]=[])}function qI(t,n){let e;const i=n[t.index];return Xi(i)?e=i:(e=eI(i,n,null,t),n[t.index]=e,qC(n,e)),KI(e,n,t,i),new L1(e,t,n)}let KI=function XI(t,n,e,i){if(t[7])return;let o;o=8&e.type?di(i):function nq(t,n){const e=t[11],i=e.createComment(""),o=qn(n,t),r=e.parentNode(o);return ll(e,r,i,e.nextSibling(o),!1),i}(n,e),t[7]=o};class H1{queryList;matches=null;constructor(n){this.queryList=n}clone(){return new H1(this.queryList)}setDirty(){this.queryList.setDirty()}}class j1{queries;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 U1{queries;constructor(n=[]){this.queries=n}elementStart(n,e){for(let i=0;i0)i.push(s[a/2]);else{const c=r[a+1],u=n[-l];for(let p=10;p{i._dirtyCounter();const r=function hq(t,n){const e=t._lView,i=t._queryIndex;if(void 0===e||void 0===i||4&e[2])return n?void 0:zt;const o=W1(e,i),r=iP(e,i);return o.reset(r,KM),n?o.first:o._changesDetected||void 0===t._flatValue?t._flatValue=o.toArray():t._flatValue}(i,t);if(n&&void 0===r)throw new X(-951,!1);return r});return i=o[kn],i._dirtyCounter=yt(0),i._flatValue=void 0,o}function oP(t){return q1(!0,!1)}function rP(t){return q1(!0,!0)}function sP(t,n){const e=t[kn];e._lView=ne(),e._queryIndex=n,e._queryList=W1(e._lView,n),e._queryList.onDirty(()=>e._dirtyCounter.update(i=>i+1))}let ms=class{},dP=class{};class Z1 extends ms{ngModuleType;_parent;_bootstrapComponents=[];_r3Injector;instance;destroyCbs=[];componentFactoryResolver=new $I(this);constructor(n,e,i,o=!0){super(),this.ngModuleType=n,this._parent=e;const r=Mr(n);this._bootstrapComponents=Fr(r.bootstrap),this._r3Injector=BT(n,e,[{provide:ms,useValue:this},{provide:ug,useValue:this.componentFactoryResolver},...i],$s(n),new Set(["environment"])),o&&this.resolveInjectorInitializers()}resolveInjectorInitializers(){this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(this.ngModuleType)}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 uP extends dP{moduleType;constructor(n){super(),this.moduleType=n}create(n){return new Z1(this.moduleType,n,[])}}class yq extends ms{injector;componentFactoryResolver=new $I(this);instance=null;constructor(n){super();const e=new Ka([...n.providers,{provide:ms,useValue:this},{provide:ug,useValue:this.componentFactoryResolver}],n.parent||Up(),n.debugName,new Set(["environment"]));this.injector=e,n.runEnvironmentInitializers&&e.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(n){this.injector.onDestroy(n)}}function gg(t,n,e=null){return new yq({providers:t,parent:n,debugName:e,runEnvironmentInitializers:!0}).injector}let Cq=(()=>{class t{_injector;cachedInjectors=new Map;constructor(e){this._injector=e}getOrCreateStandaloneInjector(e){if(!e.standalone)return null;if(!this.cachedInjectors.has(e)){const i=_y(0,e.type),o=i.length>0?gg([i],this._injector,""):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 \u0275prov=te({token:t,providedIn:"environment",factory:()=>new t(le(Nn))})}return t})();function se(t){return fs(()=>{const n=fP(t),e={...n,decls:t.decls,vars:t.vars,template:t.template,consts:t.consts||null,ngContentSelectors:t.ngContentSelectors,onPush:t.changeDetection===ym.OnPush,directiveDefs:null,pipeDefs:null,dependencies:n.standalone&&t.dependencies||null,getStandaloneInjector:n.standalone?o=>o.get(Cq).getOrCreateStandaloneInjector(e):null,getExternalStyles:null,signals:t.signals??!1,data:t.data||{},encapsulation:t.encapsulation||Ro.Emulated,styles:t.styles||zt,_:null,schemas:t.schemas||null,tView:null,id:""};n.standalone&&hi("NgStandalone"),pP(e);const i=t.dependencies;return e.directiveDefs=_g(i,hP),e.pipeDefs=_g(i,Zo),e.id=function kq(t){let n=0;const i=[t.selectors,t.ngContentSelectors,t.hostVars,t.hostAttrs,"function"==typeof t.consts?"":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];for(const r of i.join("|"))n=Math.imul(31,n)+r.charCodeAt(0)|0;return n+=2147483648,"c"+n}(e),e})}function hP(t){return wt(t)||Ki(t)}function ot(t){return fs(()=>({type:t.type,bootstrap:t.bootstrap||zt,declarations:t.declarations||zt,imports:t.imports||zt,exports:t.exports||zt,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null}))}function wq(t,n){if(null==t)return Er;const e={};for(const i in t)if(t.hasOwnProperty(i)){const o=t[i];let r,s,a,l;Array.isArray(o)?(a=o[0],r=o[1],s=o[2]??r,l=o[3]||null):(r=o,s=o,a=jm.None,l=null),e[r]=[i,a,l],n[r]=s}return e}function xq(t){if(null==t)return Er;const n={};for(const e in t)t.hasOwnProperty(e)&&(n[t[e]]=e);return n}function de(t){return fs(()=>{const n=fP(t);return pP(n),n})}function Li(t){return{type:t.type,name:t.name,factory:null,pure:!1!==t.pure,standalone:t.standalone??!0,onDestroy:t.type.prototype.ngOnDestroy||null}}function fP(t){const n={};return{type:t.type,providersResolver:null,viewProvidersResolver:null,factory:null,hostBindings:t.hostBindings||null,hostVars:t.hostVars||0,hostAttrs:t.hostAttrs||null,contentQueries:t.contentQueries||null,declaredInputs:n,inputConfig:t.inputs||Er,exportAs:t.exportAs||null,standalone:t.standalone??!0,signals:!0===t.signals,selectors:t.selectors||zt,viewQuery:t.viewQuery||null,features:t.features||null,setInput:null,resolveHostDirectives:null,hostDirectives:null,controlDef:null,inputs:wq(t.inputs,n),outputs:xq(t.outputs),debugInfo:null}}function pP(t){t.features?.forEach(n=>n(t))}function _g(t,n){return t?()=>{const e="function"==typeof t?t():t,i=[];for(const o of e){const r=n(o);null!==r&&i.push(r)}return i}:null}function mP(t){const n=e=>{const i=Array.isArray(t);null===e.hostDirectives?(e.resolveHostDirectives=Tq,e.hostDirectives=i?t.map(Q1):[t]):i?e.hostDirectives.unshift(...t.map(Q1)):e.hostDirectives.unshift(t)};return n.ngInherit=!0,n}function Tq(t){const n=[];let e=!1,i=null,o=null;for(let r=0;r=0;i--){const o=t[i];o.hostVars=n+=o.hostVars,o.hostAttrs=Yc(o.hostAttrs,e=Yc(e,o.hostAttrs))}}(i)}function Iq(t,n){for(const e in n.inputs){if(!n.inputs.hasOwnProperty(e)||t.inputs.hasOwnProperty(e))continue;const i=n.inputs[e];void 0!==i&&(t.inputs[e]=i,t.declaredInputs[e]=n.declaredInputs[e])}}function J1(t){return t===Er?{}:t===zt?[]:t}function Oq(t,n){const e=t.viewQuery;t.viewQuery=e?(i,o)=>{n(i,o),e(i,o)}:n}function Aq(t,n){const e=t.contentQueries;t.contentQueries=e?(i,o,r)=>{n(i,o,r),e(i,o,r)}:n}function Rq(t,n){const e=t.hostBindings;t.hostBindings=e?(i,o)=>{n(i,o),e(i,o)}:n}function yP(t,n,e,i,o,r,s,a){if(e.firstCreatePass){t.mergedAttrs=Yc(t.mergedAttrs,t.attrs);const u=t.tView=WC(2,t,o,r,s,e.directiveRegistry,e.pipeRegistry,null,e.schemas,e.consts,null);null!==e.queries&&(e.queries.template(e,t),u.queries=e.queries.embeddedTView(t))}a&&(t.flags|=a),ds(t,!1);const l=CP(e,n,t,i);Xp()&&d1(e,n,l,t),uo(l,n);const c=eI(l,n,l,t);n[i+27]=c,qC(n,c)}function Cl(t,n,e,i,o,r,s,a,l,c,u){const p=e+27;let g;if(n.firstCreatePass){if(g=gl(n,p,4,s||null,a||null),null!=c){const _=Ri(n.consts,c);g.localNames=[];for(let w=0;w<_.length;w+=2)g.localNames.push(_[w],-1)}}else g=n.data[p];return yP(g,t,n,e,i,o,r,l),null!=c&&od(t,g,u),g}function tt(t,n,e,i,o,r,s,a){const l=ne(),c=Ue();return function Nq(t,n,e,i,o,r,s,a,l,c,u){const p=e+27;let g;n.firstCreatePass?(g=gl(n,p,4,s||null,a||null),Ay()&&EI(n,t,g,Ri(n.consts,c),m1),TM(n,g)):g=n.data[p],yP(g,t,n,e,i,o,r,l),Lc(g)&&Xm(n,t,g),null!=c&&od(t,g,u)}(l,c,t,n,e,i,o,Ri(c.consts,r),void 0,s,a),tt}function bg(t,n,e,i,o,r,s,a){const l=ne(),c=Ue();return Cl(l,c,t,n,e,i,o,Ri(c.consts,r),void 0,s,a),bg}let CP=function wP(t,n,e,i){return Ru(!0),n[11].createComment("")};let NP=(()=>{class t{log(e){console.log(e)}warn(e){console.warn(e)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();function Sl(t){return"function"==typeof t&&void 0!==t[kn]}function LP(t){return Sl(t)&&"function"==typeof t.set}const QP=new Z(""),JP=new Z("");let a0,s0=(()=>{class t{_ngZone;registry;_isZoneStable=!0;_callbacks=[];_taskTrackingZone=null;_destroyRef;constructor(e,i,o){this._ngZone=e,this.registry=i,Sy()&&(this._destroyRef=D(tr,{optional:!0})??void 0),a0||(function zK(t){a0=t}(o),o.addToWindow(i)),this._watchAngularEvents(),e.run(()=>{this._taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){const e=this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),i=this._ngZone.runOutsideAngular(()=>this._ngZone.onStable.subscribe({next:()=>{ge.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}}));this._destroyRef?.onDestroy(()=>{e.unsubscribe(),i.unsubscribe()})}isStable(){return this._isZoneStable&&!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(s=>s.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()}registerApplication(e){this.registry.registerApplication(e,this)}unregisterApplication(e){this.registry.unregisterApplication(e)}findProviders(e,i,o){return[]}static \u0275fac=function(i){return new(i||t)(le(ge),le(UK),le(JP))};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})(),UK=(()=>{class t{_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 a0?.findTestabilityInTree(this,e,i)??null}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();function Sh(t){return!!t&&"function"==typeof t.then}function eO(t){return!!t&&"function"==typeof t.subscribe}const tO=new Z("");function nO(t){return Iu([{provide:tO,multi:!0,useValue:t}])}let iO=(()=>{class t{resolve;reject;initialized=!1;done=!1;donePromise=new Promise((e,i)=>{this.resolve=e,this.reject=i});appInits=D(tO,{optional:!0})??[];injector=D(Be);constructor(){}runInitializers(){if(this.initialized)return;const e=[];for(const o of this.appInits){const r=Yi(this.injector,o);if(Sh(r))e.push(r);else if(eO(r)){const s=new Promise((a,l)=>{r.subscribe({complete:a,error:l})});e.push(s)}}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 \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const oO=new Z("");function rO(t,n){return Array.isArray(n)?n.reduce(rO,t):{...t,...n}}let or=(()=>{class t{_runningTick=!1;_destroyed=!1;_destroyListeners=[];_views=[];internalErrorHandler=D(Pr);afterRenderManager=D(o1);zonelessEnabled=D(em);rootEffectScheduler=D(GT);dirtyFlags=0;tracingSnapshot=null;allTestViews=new Set;autoDetectTestViews=new Set;includeAllTestViews=!1;afterTick=new pe;get allViews(){return[...(this.includeAllTestViews?this.allTestViews:this.autoDetectTestViews).keys(),...this._views]}get destroyed(){return this._destroyed}componentTypes=[];components=[];internalPendingTask=D(Ks);get isStable(){return this.internalPendingTask.hasPendingTasksObservable.pipe(ye(e=>!e))}constructor(){D(ia,{optional:!0})}whenStable(){let e;return new Promise(i=>{e=this.isStable.subscribe({next:o=>{o&&i()}})}).finally(()=>{e.unsubscribe()})}_injector=D(Nn);_rendererFactory=null;get injector(){return this._injector}bootstrap(e,i){return this.bootstrapImpl(e,i)}bootstrapImpl(e,i,o=Be.NULL){return this._injector.get(ge).run(()=>{Ft(me.BootstrapComponentStart);const s=e instanceof TI;if(!this._injector.get(iO).done)throw new X(405,"");let l;l=s?e:this._injector.get(ug).resolveComponentFactory(e),this.componentTypes.push(l.componentType);const c=function WK(t){return t.isBoundToModule}(l)?void 0:this._injector.get(ms),p=l.create(o,[],i||l.selector,c),g=p.location.nativeElement,_=p.injector.get(QP,null);return _?.registerApplication(g),p.onDestroy(()=>{this.detachView(p.hostView),Dg(this.components,p),_?.unregisterApplication(g)}),this._loadComponent(p),Ft(me.BootstrapComponentEnd,p),p})}tick(){this.zonelessEnabled||(this.dirtyFlags|=1),this._tick()}_tick(){Ft(me.ChangeDetectionStart),null!==this.tracingSnapshot?this.tracingSnapshot.run(i1.CHANGE_DETECTION,this.tickImpl):this.tickImpl()}tickImpl=()=>{if(this._runningTick)throw Ft(me.ChangeDetectionEnd),new X(101,!1);const e=De(null);try{this._runningTick=!0,this.synchronize()}finally{this._runningTick=!1,this.tracingSnapshot?.dispose(),this.tracingSnapshot=null,De(e),this.afterTick.next(),Ft(me.ChangeDetectionEnd)}};synchronize(){null===this._rendererFactory&&!this._injector.destroyed&&(this._rendererFactory=this._injector.get(No,null,{optional:!0}));let e=0;for(;0!==this.dirtyFlags&&e++<10;){Ft(me.ChangeDetectionSyncStart);try{this.synchronizeOnce()}finally{Ft(me.ChangeDetectionSyncEnd)}}}synchronizeOnce(){16&this.dirtyFlags&&(this.dirtyFlags&=-17,this.rootEffectScheduler.flush());let e=!1;if(7&this.dirtyFlags){const i=!!(1&this.dirtyFlags);this.dirtyFlags&=-8,this.dirtyFlags|=8;for(let{_lView:o}of this.allViews)(i||Gp(o))&&(ng(o,i&&!this.zonelessEnabled?0:1),e=!0);if(this.dirtyFlags&=-5,this.syncDirtyFlagsWithViews(),23&this.dirtyFlags)return}e||(this._rendererFactory?.begin?.(),this._rendererFactory?.end?.()),8&this.dirtyFlags&&(this.dirtyFlags&=-9,this.afterRenderManager.execute()),this.syncDirtyFlagsWithViews()}syncDirtyFlagsWithViews(){this.allViews.some(({_lView:e})=>Gp(e))?this.dirtyFlags|=2:this.dirtyFlags&=-8}attachView(e){const i=e;this._views.push(i),i.attachToAppRef(this)}detachView(e){const i=e;Dg(this._views,i),i.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView);try{this.tick()}catch(o){this.internalErrorHandler(o)}this.components.push(e),this._injector.get(oO,[]).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._destroyListeners=[]}}onDestroy(e){return this._destroyListeners.push(e),()=>Dg(this._destroyListeners,e)}destroy(){if(this._destroyed)throw new X(406,!1);const e=this._injector;e.destroy&&!e.destroyed&&e.destroy()}get viewCount(){return this._views.length}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Dg(t,n){const e=t.indexOf(n);e>-1&&t.splice(e,1)}function f0(t,n){const e=ne();if(tn(e,lo(),n)){const o=Ue(),r=er();if(eg(r,o,e,t,n))Ir(r)&&z2(e,r.index);else{const a=qn(r,e);Zm(e[11],a,null,r.value,t,n,null)}}return f0}function Ze(t,n,e,i){const o=ne();return tn(o,lo(),n)&&(Ue(),function oW(t,n,e,i,o,r){const s=qn(t,n);Zm(n[11],s,r,t.value,e,i,o)}(er(),o,t,n,e,i)),Ze}function Dh(){return ne()[15][8]}class AY{destroy(n){}updateValue(n,e){}swap(n,e){const i=Math.min(n,e),o=Math.max(n,e),r=this.detach(o);if(o-i>1){const s=this.detach(i);this.attach(i,r),this.attach(o,s)}else this.attach(i,r)}move(n,e){this.attach(e,this.detach(n))}}function m0(t,n,e,i,o){return t===e&&Object.is(n,i)?1:Object.is(o(t,n),o(e,i))?-1:0}function g0(t,n,e,i){return!(void 0===n||!n.has(i)||(t.attach(e,n.get(i)),n.delete(i),0))}function pO(t,n,e,i,o){if(g0(t,n,i,e(i,o)))t.updateValue(i,o);else{const r=t.create(i,o);t.attach(i,r)}}function mO(t,n,e,i){const o=new Set;for(let r=n;r<=e;r++)o.add(i(r,t.at(r)));return o}class gO{kvMap=new Map;_vMap=void 0;has(n){return this.kvMap.has(n)}delete(n){if(!this.has(n))return!1;const e=this.kvMap.get(n);return void 0!==this._vMap&&this._vMap.has(e)?(this.kvMap.set(n,this._vMap.get(e)),this._vMap.delete(e)):this.kvMap.delete(n),!0}get(n){return this.kvMap.get(n)}set(n,e){if(this.kvMap.has(n)){let i=this.kvMap.get(n);void 0===this._vMap&&(this._vMap=new Map);const o=this._vMap;for(;o.has(i);)i=o.get(i);o.set(i,e)}else this.kvMap.set(n,e)}forEach(n){for(let[e,i]of this.kvMap)if(n(i,e),void 0!==this._vMap){const o=this._vMap;for(;o.has(i);)i=o.get(i),n(i,e)}}}function S(t,n,e,i,o,r,s,a){hi("NgControlFlow");const l=ne(),c=Ue();return Cl(l,c,t,n,e,i,o,Ri(c.consts,r),256,s,a),_0}function _0(t,n,e,i,o,r,s,a){hi("NgControlFlow");const l=ne(),c=Ue();return Cl(l,c,t,n,e,i,o,Ri(c.consts,r),512,s,a),_0}function k(t,n){hi("NgControlFlow");const e=ne(),i=lo(),o=e[i]!==Ot?e[i]:-1,r=-1!==o?Ig(e,27+o):void 0;if(tn(e,i,t)){const a=De(null);try{if(void 0!==r&&b1(r,0),-1!==t){const l=27+t,c=Ig(e,l),u=b0(e[1],l),p=null;ad(c,rd(e,u,n,{dehydratedView:p}),0,ml(u,p))}}finally{De(a)}}else if(void 0!==r){const a=tI(r,0);void 0!==a&&(a[8]=n)}}class NY{lContainer;$implicit;$index;constructor(n,e,i){this.lContainer=n,this.$implicit=e,this.$index=i}get $count(){return this.lContainer.length-10}}function Re(t,n){return n}class LY{hasEmptyBlock;trackByFn;liveCollection;constructor(n,e,i){this.hasEmptyBlock=n,this.trackByFn=e,this.liveCollection=i}}function we(t,n,e,i,o,r,s,a,l,c,u,p,g){hi("NgControlFlow");const _=ne(),w=Ue(),x=void 0!==l,T=ne(),E=a?s.bind(T[15][8]):s,R=new LY(x,E);T[27+t]=R,Cl(_,w,t+1,n,e,i,o,Ri(w.consts,r),256),x&&Cl(_,w,t+2,l,c,u,p,Ri(w.consts,g),512)}class BY extends AY{lContainer;hostLView;templateTNode;operationsCounter=void 0;needsIndexUpdate=!1;constructor(n,e,i){super(),this.lContainer=n,this.hostLView=e,this.templateTNode=i}get length(){return this.lContainer.length-10}at(n){return this.getLView(n)[8].$implicit}attach(n,e){const i=e[6];this.needsIndexUpdate||=n!==this.length,ad(this.lContainer,e,n,ml(this.templateTNode,i)),function VY(t,n){if(t.length<=10)return;const i=t[10+n],o=i?i[26]:void 0;i&&o&&o.detachedLeaveAnimationFns&&o.detachedLeaveAnimationFns.length>0&&(function j9(t,n){const e=t.get(qm);if(n.detachedLeaveAnimationFns){for(const i of n.detachedLeaveAnimationFns)e.queue.delete(i);n.detachedLeaveAnimationFns=void 0}}(i[9],o),fl.delete(i[19]),o.detachedLeaveAnimationFns=void 0)}(this.lContainer,n)}detach(n){return this.needsIndexUpdate||=n!==this.length-1,function HY(t,n){if(t.length<=10)return;const i=t[10+n],o=i?i[26]:void 0;o&&o.leave&&o.leave.size>0&&(o.detachedLeaveAnimationFns=[])}(this.lContainer,n),function jY(t,n){return ah(t,n)}(this.lContainer,n)}create(n,e){return rd(this.hostLView,this.templateTNode,new NY(this.lContainer,e,n),{dehydratedView:null})}destroy(n){rh(n[1],n)}updateValue(n,e){this.getLView(n)[8].$implicit=e}reset(){this.needsIndexUpdate=!1}updateIndexes(){if(this.needsIndexUpdate)for(let n=0;n{t.destroy(c)})}(l,t,r.trackByFn,n),l.updateIndexes(),r.hasEmptyBlock){const c=lo(),u=0===l.length;if(tn(i,c,u)){const p=e+2,g=Ig(i,p);if(u){const _=b0(o,p),w=null;ad(g,rd(i,_,void 0,{dehydratedView:w}),0,ml(_,w))}else o.firstUpdatePass&&function lg(t){const n=t[6]??[],i=t[3][11],o=[];for(const r of n)void 0!==r.data.di?o.push(r):CI(r,i);t[6]=o}(g),b1(g,0)}}}finally{De(n)}}function Ig(t,n){return t[n]}function b0(t,n){return Vc(t,n)}function v(t,n,e){const i=ne();return tn(i,lo(),n)&&(Ue(),f1(er(),i,t,n,i[11],e)),v}function v0(t,n,e,i,o){eg(n,t,e,o?"class":"style",i)}function f(t,n,e,i){const o=ne(),r=o[1],s=t+27,a=r.firstCreatePass?O1(s,o,2,n,m1,Ay(),e,i):r.data[s];if(Ir(a)){const l=o[10].tracingService;if(l&&l.componentCreate)return l.componentCreate(F1(r.data[a.directiveStart+a.componentOffset]),()=>(_O(t,n,o,a,i),f))}return _O(t,n,o,a,i),f}function _O(t,n,e,i,o){if(Qm(i,e,t,n,y0),Lc(i)){const r=e[1];Xm(r,e,i),OC(r,i,e)}null!=o&&od(e,i)}function h(){const t=Ue(),e=Jm(Le());return t.firstCreatePass&&A1(t,e),CT(e)&&wT(),vT(),null!=e.classesWithoutHost&&function j6(t){return!!(8&t.flags)}(e)&&v0(t,e,ne(),e.classesWithoutHost,!0),null!=e.stylesWithoutHost&&function U6(t){return!!(16&t.flags)}(e)&&v0(t,e,ne(),e.stylesWithoutHost,!1),h}function B(t,n,e,i){return f(t,n,e,i),h(),B}function gs(t,n,e,i){const o=ne(),r=o[1],s=t+27,a=r.firstCreatePass?function RI(t,n,e,i,o,r){const s=n.consts,l=gl(n,t,e,i,Ri(s,o));if(l.mergedAttrs=Yc(l.mergedAttrs,l.attrs),null!=r){const c=Ri(s,r);l.localNames=[];for(let u=0;u(Ru(!0),Bm(n[11],i,function qU(){return Fe.lFrame.currentNamespace}()));function rr(t,n,e){const i=ne(),o=i[1],r=t+27,s=o.firstCreatePass?O1(r,i,8,"ng-container",m1,Ay(),n,e):o.data[r];if(Qm(s,i,t,"ng-container",w0),Lc(s)){const a=i[1];Xm(a,i,s),OC(a,s,i)}return null!=e&&od(i,s),rr}function Lo(){const t=Ue(),e=Jm(Le());return t.firstCreatePass&&A1(t,e),Lo}function sr(t,n,e){return rr(t,n,e),Lo(),sr}let w0=(t,n,e,i,o)=>(Ru(!0),UC(n[11],""));function ce(){return ne()}function Lr(t,n,e){const i=ne();return tn(i,lo(),n)&&(Ue(),p1(er(),i,t,n,i[11],e)),Lr}const Th=void 0;var GY=["en",[["a","p"],["AM","PM"]],[["AM","PM"]],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],Th,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],Th,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm\u202fa","h:mm:ss\u202fa","h:mm:ss\u202fa z","h:mm:ss\u202fa zzzz"],["{1}, {0}",Th,Th,Th],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function WY(t){const n=Math.floor(Math.abs(t)),e=t.toString().replace(/^[^.]*\.?/,"").length;return 1===n&&0===e?1:5}];let bd={};function Qi(t){const n=function qY(t){return t.toLowerCase().replace(/_/g,"-")}(t);let e=wO(n);if(e)return e;const i=n.split("-")[0];if(e=wO(i),e)return e;if("en"===i)return GY;throw new X(701,!1)}function wO(t){return t in bd||(bd[t]=Dn.ng&&Dn.ng.common&&Dn.ng.common.locales&&Dn.ng.common.locales[t]),bd[t]}var nn=function(t){return t[t.LocaleId=0]="LocaleId",t[t.DayPeriodsFormat=1]="DayPeriodsFormat",t[t.DayPeriodsStandalone=2]="DayPeriodsStandalone",t[t.DaysFormat=3]="DaysFormat",t[t.DaysStandalone=4]="DaysStandalone",t[t.MonthsFormat=5]="MonthsFormat",t[t.MonthsStandalone=6]="MonthsStandalone",t[t.Eras=7]="Eras",t[t.FirstDayOfWeek=8]="FirstDayOfWeek",t[t.WeekendRange=9]="WeekendRange",t[t.DateFormat=10]="DateFormat",t[t.TimeFormat=11]="TimeFormat",t[t.DateTimeFormat=12]="DateTimeFormat",t[t.NumberSymbols=13]="NumberSymbols",t[t.NumberFormats=14]="NumberFormats",t[t.CurrencyCode=15]="CurrencyCode",t[t.CurrencySymbol=16]="CurrencySymbol",t[t.CurrencyName=17]="CurrencyName",t[t.Currencies=18]="Currencies",t[t.Directionality=19]="Directionality",t[t.PluralCase=20]="PluralCase",t[t.ExtraData=21]="ExtraData",t}(nn||{});const Pg="en-US";let xO=Pg;function L(t,n,e){const i=ne(),o=Ue(),r=Le();return k0(o,i,i[11],r,t,n,e),L}function Fg(t,n,e){const i=ne(),o=Ue(),r=Le();return(3&r.type||e)&&N1(r,o,i,e,i[11],t,n,ra(r,i,n)),Fg}function k0(t,n,e,i,o,r,s){let a=!0,l=null;if((3&i.type||s)&&(l??=ra(i,n,r),N1(i,t,n,s,e,o,r,l)&&(a=!1)),a){const c=i.outputs?.[o],u=i.hostDirectiveOutputs?.[o];if(u&&u.length)for(let p=0;p0;)n=n[14],t--;return n}(t,Fe.lFrame.contextLView))[8]}(t)}function AX(t,n){let e=null;const i=function g9(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>17&32767}function E0(t){return 2|t}function vd(t){return(131068&t)>>2}function I0(t,n){return-131069&t|n<<2}function P0(t){return 1|t}function zO(t,n,e,i){const o=t[e+1],r=null===n;let s=i?Ml(o):vd(o),a=!1;for(;0!==s&&(!1===a||r);){const c=t[s+1];HX(t[s],n)&&(a=!0,t[s+1]=i?P0(c):E0(c)),s=i?Ml(c):vd(c)}a&&(t[e+1]=i?E0(o):P0(o))}function HX(t,n){return null===t||null==n||(Array.isArray(t)?t[1]:t)===n||!(!Array.isArray(t)||"string"!=typeof n)&&Eu(t,n)>=0}const ti={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function $O(t){return t.substring(ti.key,ti.keyEnd)}function jX(t){return t.substring(ti.value,ti.valueEnd)}function WO(t,n){const e=ti.textEnd;return e===n?-1:(n=ti.keyEnd=function $X(t,n,e){for(;n32;)n++;return n}(t,ti.key=n,e),yd(t,n,e))}function GO(t,n){const e=ti.textEnd;let i=ti.key=yd(t,n,e);return e===i?-1:(i=ti.keyEnd=function WX(t,n,e){let i;for(;n=65&&(-33&i)<=90||i>=48&&i<=57);)n++;return n}(t,i,e),i=KO(t,i,e),i=ti.value=yd(t,i,e),i=ti.valueEnd=function GX(t,n,e){let i=-1,o=-1,r=-1,s=n,a=s;for(;s32&&(a=s),r=o,o=i,i=-33&l}return a}(t,i,e),KO(t,i,e))}function qO(t){ti.key=0,ti.keyEnd=0,ti.value=0,ti.valueEnd=0,ti.textEnd=t.length}function yd(t,n,e){for(;n=0;e=GO(n,e))eA(t,$O(n),jX(n))}function at(t){ZO(eZ,KX,t,!0)}function KX(t,n){for(let e=function UX(t){return qO(t),WO(t,yd(t,0,ti.textEnd))}(n);e>=0;e=WO(n,e))Bp(t,$O(n),!0)}function XO(t,n,e,i){const o=ne(),r=Ue(),s=hs(2);r.firstUpdatePass&&JO(r,t,s,i),n!==Ot&&tn(o,s,n)&&tA(r,r.data[bi()],o,o[11],t,o[s+1]=function nZ(t,n){return null==t||""===t||("string"==typeof n?t+=n:"object"==typeof t&&(t=$s(ko(t)))),t}(n,e),i,s)}function ZO(t,n,e,i){const o=Ue(),r=hs(2);o.firstUpdatePass&&JO(o,null,r,i);const s=ne();if(e!==Ot&&tn(s,r,e)){const a=o.data[bi()];if(iA(a,i)&&!QO(o,r)){let l=i?a.classesWithoutHost:a.stylesWithoutHost;null!==l&&(e=oy(l,e||"")),v0(o,a,s,e,i)}else!function tZ(t,n,e,i,o,r,s,a){o===Ot&&(o=zt);let l=0,c=0,u=0=t.expandoStartIndex}function JO(t,n,e,i){const o=t.data;if(null===o[e+1]){const r=o[bi()],s=QO(t,e);iA(r,i)&&null===n&&!s&&(n=!1),n=function YX(t,n,e,i){const o=function Ny(t){const n=Fe.lFrame.currentDirectiveIndex;return-1===n?null:t[n]}(t);let r=i?n.residualClasses:n.residualStyles;if(null===o)0===(i?n.classBindings:n.styleBindings)&&(e=Oh(e=O0(null,t,n,e,i),n.attrs,i),r=null);else{const s=n.directiveStylingLast;if(-1===s||t[s]!==o)if(e=O0(o,t,n,e,i),null===r){let l=function XX(t,n,e){const i=e?n.classBindings:n.styleBindings;if(0!==vd(i))return t[Ml(i)]}(t,n,i);void 0!==l&&Array.isArray(l)&&(l=O0(null,t,n,l[1],i),l=Oh(l,n.attrs,i),function ZX(t,n,e,i){t[Ml(e?n.classBindings:n.styleBindings)]=i}(t,n,i,l))}else r=function QX(t,n,e){let i;const o=n.directiveEnd;for(let r=1+n.directiveStylingLast;r0)&&(c=!0)):u=e,o)if(0!==l){const g=Ml(t[a+1]);t[i+1]=Lg(g,a),0!==g&&(t[g+1]=I0(t[g+1],i)),t[a+1]=function FX(t,n){return 131071&t|n<<17}(t[a+1],i)}else t[i+1]=Lg(a,0),0!==a&&(t[a+1]=I0(t[a+1],i)),a=i;else t[i+1]=Lg(l,0),0===a?a=i:t[l+1]=I0(t[l+1],i),l=i;c&&(t[i+1]=E0(t[i+1])),zO(t,u,i,!0),zO(t,u,i,!1),function VX(t,n,e,i,o){const r=o?t.residualClasses:t.residualStyles;null!=r&&"string"==typeof n&&Eu(r,n)>=0&&(e[i+1]=P0(e[i+1]))}(n,u,t,i,r),s=Lg(a,l),r?n.classBindings=s:n.styleBindings=s}(o,r,n,e,s,i)}}function O0(t,n,e,i,o){let r=null;const s=e.directiveEnd;let a=e.directiveStylingLast;for(-1===a?a=e.directiveStart:a++;a0;){const l=t[o],c=Array.isArray(l),u=c?l[1]:l,p=null===u;let g=e[o+1];g===Ot&&(g=p?zt:void 0);let _=p?my(g,i):u===i?g:void 0;if(c&&!Bg(_)&&(_=my(l,i)),Bg(_)&&(a=_,s))return a;const w=t[o+1];o=s?Ml(w):vd(w)}if(null!==n){let l=r?n.residualClasses:n.residualStyles;null!=l&&(a=my(l,i))}return a}function Bg(t){return void 0!==t}function iA(t,n){return!!(t.flags&(n?8:16))}function m(t,n=""){const e=ne(),i=Ue(),o=t+27,r=i.firstCreatePass?gl(i,o,1,n,null):i.data[o],s=oA(i,e,r,n);e[o]=s,Xp()&&d1(i,e,s,r),ds(r,!1)}let oA=(t,n,e,i)=>(Ru(!0),function jC(t,n){return t.createText(n)}(n[11],i));function lA(t,n,e,i,o,r,s,a=""){const c=function mg(t,n,e,i,o){const r=vl(t,n,e,i);return tn(t,n+2,o)||r}(t,us(),e,o,s);return hs(3),c?n+He(e)+i+He(o)+r+He(s)+a:Ot}function uA(t,n,e,i,o,r,s,a,l,c,u,p,g,_=""){const w=us();let x=function Fo(t,n,e,i,o,r){const s=vl(t,n,e,i);return vl(t,n+2,o,r)||s}(t,w,e,o,s,l);return x=vl(t,w+4,u,g)||x,hs(6),x?n+He(e)+i+He(o)+r+He(s)+a+He(l)+c+He(u)+p+He(g)+_:Ot}function O(t){return I("",t),O}function I(t,n,e){const i=ne(),o=function sA(t,n,e,i=""){return tn(t,lo(),e)?n+He(e)+i:Ot}(i,t,n,e);return o!==Ot&&bs(i,bi(),o),I}function Hn(t,n,e,i,o){const r=ne(),s=function aA(t,n,e,i,o,r=""){const a=vl(t,us(),e,o);return hs(2),a?n+He(e)+i+He(o)+r:Ot}(r,t,n,e,i,o);return s!==Ot&&bs(r,bi(),s),Hn}function A0(t,n,e,i,o,r,s){const a=ne(),l=lA(a,t,n,e,i,o,r,s);return l!==Ot&&bs(a,bi(),l),A0}function R0(t,n,e,i,o,r,s,a,l,c,u,p,g){const _=ne(),w=uA(_,t,n,e,i,o,r,s,a,l,c,u,p,g);return w!==Ot&&bs(_,bi(),w),R0}function bs(t,n,e){const i=Bc(n,t);!function o2(t,n,e){t.setValue(n,e)}(t[11],i,e)}function ki(t,n,e){LP(n)&&(n=n());const i=ne();return tn(i,lo(),n)&&(Ue(),f1(er(),i,t,n,i[11],e)),ki}function Bi(t,n){const e=LP(t);return e&&t.set(n),e}function Di(t,n){const e=ne(),i=Ue(),o=Le();return k0(i,e,e[11],o,t,n),Di}function Wt(t){return tn(ne(),lo(),t)?He(t):Ot}function CA(t,n,e){const i=Ue();i.firstCreatePass&&wA(n,i.data,i.blueprint,Jo(t),e)}function wA(t,n,e,i,o){if(t=We(t),Array.isArray(t))for(let r=0;r>20;if(os(t)||!t.multi){const _=new Uu(c,o,P,null),w=F0(l,n,o?u:u+g,p);-1===w?(sC(gm(a,s),r,l),N0(r,t,n.length),n.push(l),a.directiveStart++,a.directiveEnd++,o&&(a.providerIndexes+=1048576),e.push(_),s.push(_)):(e[w]=_,s[w]=_)}else{const _=F0(l,n,u+g,p),w=F0(l,n,u,u+g),T=w>=0&&e[w];if(o&&!T||!o&&!(_>=0&&e[_])){sC(gm(a,s),r,l);const E=function vZ(t,n,e,i,o){const s=new Uu(t,e,P,null);return s.multi=[],s.index=n,s.componentProviders=0,xA(s,o,i&&!e),s}(o?bZ:_Z,e.length,o,i,c);!o&&T&&(e[w].providerFactory=E),N0(r,t,n.length,0),n.push(l),a.directiveStart++,a.directiveEnd++,o&&(a.providerIndexes+=1048576),e.push(E),s.push(E)}else N0(r,t,_>-1?_:w,xA(e[o?w:_],c,!o&&i));!o&&i&&T&&e[w].componentProviders++}}}function N0(t,n,e,i){const o=os(n),r=function oT(t){return!!t.useClass}(n);if(o||r){const l=(r?We(n.useClass):n).prototype.ngOnDestroy;if(l){const c=t.destroyHooks||(t.destroyHooks=[]);if(!o&&n.multi){const u=c.indexOf(e);-1===u?c.push(e,[i,l]):c[u+1].push(i,l)}else c.push(e,l)}}}function xA(t,n,e){return e&&t.componentProviders++,t.multi.push(n)-1}function F0(t,n,e,i){for(let o=e;o{e.providersResolver=(i,o)=>CA(i,o?o(t):t,!1),n&&(e.viewProvidersResolver=(i,o)=>CA(i,o?o(n):n,!0))}}function B0(t,n,e){const i=t.\u0275cmp;i.directiveDefs=_g(n,hP),i.pipeDefs=_g(e,Zo)}function Mt(t,n){const e=Ni()+t,i=ne();return i[e]===Ot?ir(i,e,n()):function dd(t,n){return t[n]}(i,e)}function oe(t,n,e){return kA(ne(),Ni(),t,n,e)}function ft(t,n,e,i){return DA(ne(),Ni(),t,n,e,i)}function Ah(t,n){const e=t[n];return e===Ot?void 0:e}function kA(t,n,e,i,o,r){const s=n+e;return tn(t,s,o)?ir(t,s+1,r?i.call(r,o):i(o)):Ah(t,s+1)}function DA(t,n,e,i,o,r,s){const a=n+e;return vl(t,a,o,r)?ir(t,a+2,s?i.call(s,o,r):i(o,r)):Ah(t,a+2)}function b(t,n){const e=Ue();let i;const o=t+27;e.firstCreatePass?(i=function EZ(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=qa(i.type)),a=ao(P);try{const l=mm(!1),c=r();return mm(l),function Ty(t,n,e,i){e>=t.data.length&&(t.data[e]=null,t.blueprint[e]=null),n[e]=i}(e,ne(),o,c),c}finally{ao(a)}}function y(t,n,e){const i=t+27,o=ne(),r=Ja(o,i);return Rh(o,i)?kA(o,Ni(),n,r.transform,e,r):r.transform(e)}function Ee(t,n,e,i){const o=t+27,r=ne(),s=Ja(r,o);return Rh(r,o)?DA(r,Ni(),n,s.transform,e,i,s):s.transform(e,i)}function Rh(t,n){return t[1].data[n].pure}function El(t,n){return ig(t,n)}class sQ{ngModuleFactory;componentFactories;constructor(n,e){this.ngModuleFactory=n,this.componentFactories=e}}let aQ=(()=>{class t{compileModuleSync(e){return new uP(e)}compileModuleAsync(e){return Promise.resolve(this.compileModuleSync(e))}compileModuleAndAllComponentsSync(e){const i=this.compileModuleSync(e),r=Fr(Mr(e).declarations).reduce((s,a)=>{const l=wt(a);return l&&s.push(new bh(l)),s},[]);return new sQ(i,r)}compileModuleAndAllComponentsAsync(e){return Promise.resolve(this.compileModuleAndAllComponentsSync(e))}clearCache(){}clearCacheFor(e){}getModuleId(e){}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),cQ=(()=>{class t{applicationErrorHandler=D(Pr);appRef=D(or);taskService=D(Ks);ngZone=D(ge);zonelessEnabled=D(em);tracing=D(ia,{optional:!0});zoneIsDefined=typeof Zone<"u"&&!!Zone.root.run;schedulerTickApplyArgs=[{data:{__scheduler_tick__:!0}}];subscriptions=new mt;angularZoneId=this.zoneIsDefined?this.ngZone._inner?.get(Qp):null;scheduleInRootZone=!this.zonelessEnabled&&this.zoneIsDefined&&(D(WT,{optional:!0})??!1);cancelScheduledCallback=null;useMicrotaskScheduler=!1;runningTick=!1;pendingRenderTaskId=null;constructor(){this.subscriptions.add(this.appRef.afterTick.subscribe(()=>{const e=this.taskService.add();this.runningTick||(this.cleanup(),this.zonelessEnabled&&!this.appRef.includeAllTestViews)?(this.switchToMicrotaskScheduler(),this.taskService.remove(e)):this.taskService.remove(e)})),this.subscriptions.add(this.ngZone.onUnstable.subscribe(()=>{this.runningTick||this.cleanup()}))}switchToMicrotaskScheduler(){this.ngZone.runOutsideAngular(()=>{const e=this.taskService.add();this.useMicrotaskScheduler=!0,queueMicrotask(()=>{this.useMicrotaskScheduler=!1,this.taskService.remove(e)})})}notify(e){if(!this.zonelessEnabled&&5===e)return;switch(e){case 0:case 6:case 13:this.appRef.dirtyFlags|=2;break;case 3:case 2:case 4:case 5:case 1:this.appRef.dirtyFlags|=4;break;case 12:this.appRef.dirtyFlags|=16;break;case 11:break;default:this.appRef.dirtyFlags|=8}if(this.appRef.tracingSnapshot=this.tracing?.snapshot(this.appRef.tracingSnapshot)??null,!this.shouldScheduleTick())return;const i=this.useMicrotaskScheduler?ZU:jT;this.pendingRenderTaskId=this.taskService.add(),this.cancelScheduledCallback=this.scheduleInRootZone?Zone.root.run(()=>i(()=>this.tick())):this.ngZone.runOutsideAngular(()=>i(()=>this.tick()))}shouldScheduleTick(){return!(this.appRef.destroyed||null!==this.pendingRenderTaskId||this.runningTick||this.appRef._runningTick||!this.zonelessEnabled&&this.zoneIsDefined&&Zone.current.get(Qp+this.angularZoneId))}tick(){if(this.runningTick||this.appRef.destroyed)return;if(0===this.appRef.dirtyFlags)return void this.cleanup();!this.zonelessEnabled&&7&this.appRef.dirtyFlags&&(this.appRef.dirtyFlags|=1);const e=this.taskService.add();try{this.ngZone.run(()=>{this.runningTick=!0,this.appRef._tick()},void 0,this.schedulerTickApplyArgs)}catch(i){this.applicationErrorHandler(i)}finally{this.taskService.remove(e),this.cleanup()}}ngOnDestroy(){this.subscriptions.unsubscribe(),this.cleanup()}cleanup(){if(this.runningTick=!1,this.cancelScheduledCallback?.(),this.cancelScheduledCallback=null,null!==this.pendingRenderTaskId){const e=this.pendingRenderTaskId;this.pendingRenderTaskId=null,this.taskService.remove(e)}}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const da=new Z("",{factory:()=>D(da,{optional:!0,skipSelf:!0})||function dQ(){return typeof $localize<"u"&&$localize.locale||Pg}()}),Yg=Symbol("InputSignalNode#UNSET"),PR={...qv,transformFn:void 0,applyValueToInputSignal(t,n){wp(t,n)}};function OR(t,n){const e=Object.create(PR);function i(){if(yu(e),e.value===Yg)throw new X(-950,null);return e.value}return e.value=t,e.transformFn=n?.transform,i[kn]=e,i}class Xg{attributeName;constructor(n){this.attributeName=n}__NG_ELEMENT_ID__=()=>Gu(this.attributeName);toString(){return`HostAttributeToken ${this.attributeName}`}}function AR(t,n){return OR(t,n)}const ree=(AR.required=function oee(t){return OR(Yg,t)},AR);function RR(t,n){return oP()}const Zg=(RR.required=function see(t,n){return rP()},RR);function NR(t,n){return oP()}const lee=(NR.required=function aee(t,n){return rP()},NR);let dee=(()=>{class t{zone=D(ge);changeDetectionScheduler=D(nl);applicationRef=D(or);applicationErrorHandler=D(Pr);_onMicrotaskEmptySubscription;initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.changeDetectionScheduler.runningTick||this.zone.run(()=>{try{this.applicationRef.dirtyFlags|=1,this.applicationRef._tick()}catch(e){this.applicationErrorHandler(e)}})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const uee=new Z("",{factory:()=>!1});function VR(t){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:t?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:t?.runCoalescing??!1}}let pee=(()=>{class t{subscription=new mt;initialized=!1;zone=D(ge);pendingTasks=D(Ks);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(()=>{ge.assertNotInAngularZone(),queueMicrotask(()=>{null!==e&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(e),e=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{ge.assertInAngularZone(),e??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Qg=new Z(""),bee=new Z("");function Vh(t){return!t.moduleRef}let UR;function zR(){UR=vee}function vee(t,n){const e=t.injector.get(or);if(t._bootstrapComponents.length>0)t._bootstrapComponents.forEach(i=>e.bootstrap(i));else{if(!t.instance.ngDoBootstrap)throw new X(-403,!1);t.instance.ngDoBootstrap(e)}n.push(t)}let $R=(()=>{class t{_injector;_modules=[];_destroyListeners=[];_destroyed=!1;constructor(e){this._injector=e}bootstrapModuleFactory(e,i){const o=[[{provide:nl,useExisting:cQ},{provide:ge,useClass:nz},{provide:em,useValue:!0}],...i?.applicationProviders??[],rz],r=function vq(t,n,e){return new Z1(t,n,e,!1)}(e.moduleType,this.injector,o);return zR(),function jR(t){const n=Vh(t)?t.r3Injector:t.moduleRef.injector,e=n.get(ge);return e.run(()=>{Vh(t)?t.r3Injector.resolveInjectorInitializers():t.moduleRef.resolveInjectorInitializers();const i=n.get(Pr);let o;if(e.runOutsideAngular(()=>{o=e.onError.subscribe({next:i})}),Vh(t)){const r=()=>n.destroy(),s=t.platformInjector.get(Qg);s.add(r),n.onDestroy(()=>{o.unsubscribe(),s.delete(r)})}else{const r=()=>t.moduleRef.destroy(),s=t.platformInjector.get(Qg);s.add(r),t.moduleRef.onDestroy(()=>{Dg(t.allPlatformModules,t.moduleRef),o.unsubscribe(),s.delete(r)})}return function yee(t,n,e){try{const i=e();return Sh(i)?i.catch(o=>{throw n.runOutsideAngular(()=>t(o)),o}):i}catch(i){throw n.runOutsideAngular(()=>t(i)),i}}(i,e,()=>{const r=n.get(Ks),s=r.add(),a=n.get(iO);return a.runInitializers(),a.donePromise.then(()=>{if(function ZY(t){"string"==typeof t&&(xO=t.toLowerCase().replace(/_/g,"-"))}(n.get(da,Pg)||Pg),!n.get(bee,!0))return Vh(t)?n.get(or):(t.allPlatformModules.push(t.moduleRef),t.moduleRef);if(Vh(t)){const u=n.get(or);return void 0!==t.rootComponent&&u.bootstrap(t.rootComponent),u}return UR?.(t.moduleRef,t.allPlatformModules),t.moduleRef}).finally(()=>{r.remove(s)})})})}({moduleRef:r,allPlatformModules:this._modules,platformInjector:this.injector})}bootstrapModule(e,i=[]){const o=rO({},i);return zR(),function cee(t,n,e){const i=new uP(e);return Promise.resolve(i)}(0,0,e).then(r=>this.bootstrapModuleFactory(r,o))}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new X(404,!1);this._modules.slice().forEach(i=>i.destroy()),this._destroyListeners.forEach(i=>i());const e=this._injector.get(Qg,null);e&&(e.forEach(i=>i()),e.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}static \u0275fac=function(i){return new(i||t)(le(Be))};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})(),Md=null;function WR(t,n,e=[]){const i=`Platform: ${n}`,o=new Z(i);return(r=[])=>{let s=Jg();if(!s){const a=[...e,...r,{provide:o,useValue:!0}];s=t?.(a)??function Cee(t){if(Jg())throw new X(400,!1);(function $K(){!function Tj(t){PD=t}(()=>{throw new X(600,"")})})(),Md=t;const n=t.get($R);return function qR(t){const n=t.get(fE,null);Yi(t,()=>{n?.forEach(e=>e())})}(t),n}(function GR(t=[],n){return Be.create({name:n,providers:[{provide:yy,useValue:"platform"},{provide:Qg,useValue:new Set([()=>Md=null])},...t]})}(a,i))}return function wee(){const n=Jg();if(!n)throw new X(-401,!1);return n}()}}function Jg(){return Md?.get($R)??null}let Pn=(()=>class t{static __NG_ELEMENT_ID__=Lee})();function Lee(t){return function Bee(t,n,e){if(Ir(t)&&!e){const i=Zi(t.index,n);return new lh(i,i)}return 175&t.type?new lh(n[15],n):null}(Le(),ne(),!(16&~t))}class tN{supports(n){return pg(n)}create(n){return new Hee(n)}}const Vee=(t,n)=>n;class Hee{length=0;collection;_linkedRecords=null;_unlinkedRecords=null;_previousItHead=null;_itHead=null;_itTail=null;_additionsHead=null;_additionsTail=null;_movesHead=null;_movesTail=null;_removalsHead=null;_removalsTail=null;_identityChangesHead=null;_identityChangesTail=null;_trackByFn;constructor(n){this._trackByFn=n||Vee}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 s=!i||e&&e.currentIndex{s=this._trackByFn(o,a),null!==e&&Object.is(e.trackById,s)?(i&&(e=this._verifyReinsertion(e,a,s,o)),Object.is(e.item,a)||this._addIdentityChange(e,a)):(e=this._mismatch(e,a,s,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 jee(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 nN),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 nN),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 jee{item;trackById;currentIndex=null;previousIndex=null;_nextPrevious=null;_prev=null;_next=null;_prevDup=null;_nextDup=null;_prevRemoved=null;_nextRemoved=null;_nextAdded=null;_nextMoved=null;_nextIdentityChange=null;constructor(n,e){this.item=n,this.trackById=e}}class Uee{_head=null;_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 nN{map=new Map;put(n){const e=n.trackById;let i=this.map.get(e);i||(i=new Uee,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 iN(t,n,e){const i=t.previousIndex;if(null===i)return i;let o=0;return e&&i{class t{factories;static \u0275prov=te({token:t,providedIn:"root",factory:rN});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:()=>{const i=D(t,{optional:!0,skipSelf:!0});return t.create(e,i||rN())}}}find(e){const i=this.factories.find(o=>o.supports(e));if(null!=i)return i;throw new X(901,!1)}}return t})();const qee=WR(null,"core",[]);let Kee=(()=>{class t{constructor(e){}static \u0275fac=function(i){return new(i||t)(le(or))};static \u0275mod=ot({type:t});static \u0275inj=et({})}return t})();function Ie(t){return"boolean"==typeof t?t:null!=t&&"false"!==t}function Br(t,n=NaN){return isNaN(parseFloat(t))||isNaN(Number(t))?n:Number(t)}const tw=Symbol("NOT_SET"),mN=new Set,ate={...qv,kind:"afterRenderEffectPhase",consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!0,value:tw,cleanup:null,consumerMarkedDirty(){if(this.sequence.impl.executing){if(null===this.sequence.lastPhase||this.sequence.lastPhase(yu(c),c.value),c.signal[kn]=c,c.registerCleanupFn=u=>(c.cleanup??=new Set).add(u),this.nodes[a]=c,this.hooks[a]=u=>c.phaseFn(u)}}afterRun(){super.afterRun(),this.lastPhase=null}destroy(){if(null!==this.onDestroyFns)for(const n of this.onDestroyFns)n();super.destroy();for(const n of this.nodes)if(n)try{for(const e of n.cleanup??mN)e()}finally{xu(n)}}}function gN(t,n){const e=wt(t),i=n.elementInjector||Up();return new bh(e).create(i,n.projectableNodes,n.hostElement,n.environmentInjector,n.directives,n.bindings)}function _N(t,n,e){const i=Object.create(mte);i.source=t,i.computation=n,null!=e&&(i.equal=e);const r=()=>{if(Cu(i),yu(i),i.value===ns)throw i.error;return i.value};return r[kn]=i,r}const mte={...Sc,value:Va,dirty:!0,error:null,equal:Gv,kind:"linkedSignal",producerMustRecompute:t=>t.value===Va||t.value===Tc,producerRecomputeValue(t){if(t.value===Tc)throw new Error("");const n=t.value;t.value=Tc;const e=kc(t);let i;try{const o=t.source();i=t.computation(o,n===Va||n===ns?void 0:{source:t.sourceValue,value:n}),t.sourceValue=o}catch(o){i=ns,t.error=o}finally{wu(t,e)}n!==Va&&i!==ns&&t.equal(n,i)?t.value=n:(t.value=i,t.version++)}};function nt(t){return function gte(t){const n=De(null);try{return t()}finally{De(n)}}(t)}function Ti(t,n){return ID(t,n?.equal)}const xte=t=>t;function yN(t,n){const e=t[kn],i=t;return i.set=o=>function fte(t,n){Cu(t),wp(t,n),vp(t)}(e,o),i.update=o=>function pte(t,n){if(Cu(t),t.value===ns)throw t.error;AD(t,n),vp(t)}(e,o),i.asReadonly=zy.bind(t),i}function rw(t,n){return t?n?t.endsWith("/")?n.startsWith("/")?t+n.slice(1):t+n:n.startsWith("/")?t+n:`${t}/${n}`:t:n}function xN(t){const n=t.search(/#|\?|$/);return"/"===t[n-1]?t.slice(0,n-1)+t.slice(n):t}function vs(t){return t&&"?"!==t[0]?`?${t}`:t}Error,Error;let Al=(()=>{class t{historyGo(e){throw new Error("")}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:()=>D(kN),providedIn:"root"})}return t})();const SN=new Z("");let kN=(()=>{class t extends Al{_platformLocation;_baseHref;_removeListenerFns=[];constructor(e,i){super(),this._platformLocation=e,this._baseHref=i??this._platformLocation.getBaseHrefFromDOM()??D(Qe).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 rw(this._baseHref,e)}path(e=!1){const i=this._platformLocation.pathname+vs(this._platformLocation.search),o=this._platformLocation.hash;return o&&e?`${i}${o}`:i}pushState(e,i,o,r){const s=this.prepareExternalUrl(o+vs(r));this._platformLocation.pushState(e,i,s)}replaceState(e,i,o,r){const s=this.prepareExternalUrl(o+vs(r));this._platformLocation.replaceState(e,i,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(e=0){this._platformLocation.historyGo?.(e)}static \u0275fac=function(i){return new(i||t)(le(im),le(SN,8))};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Ed=(()=>{class t{_subject=new pe;_basePath;_locationStrategy;_urlChangeListeners=[];_urlChangeSubscription=null;constructor(e){this._locationStrategy=e;const i=this._locationStrategy.getBaseHref();this._basePath=function Rte(t){if(new RegExp("^(https?:)?//").test(t)){const[,e]=t.split(/\/\/[^\/]+/);return e}return t}(xN(DN(i))),this._locationStrategy.onPopState(o=>{this._subject.next({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+vs(i))}normalize(e){return t.stripTrailingSlash(function Ate(t,n){if(!t||!n.startsWith(t))return n;const e=n.substring(t.length);return""===e||["/",";","?","#"].includes(e[0])?e:n}(this._basePath,DN(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+vs(i)),o)}replaceState(e,i="",o=null){this._locationStrategy.replaceState(o,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+vs(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??void 0,complete:o??void 0})}static normalizeQueryParams=vs;static joinWithSlash=rw;static stripTrailingSlash=xN;static \u0275fac=function(i){return new(i||t)(le(Al))};static \u0275prov=te({token:t,factory:()=>function Ote(){return new Ed(le(Al))}(),providedIn:"root"})}return t})();function DN(t){return t.replace(/\/index.html$/,"")}let Fte=(()=>{class t extends Al{_platformLocation;_baseHref="";_removeListenerFns=[];constructor(e,i){super(),this._platformLocation=e,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=rw(this._baseHref,e);return i.length>0?"#"+i:i}pushState(e,i,o,r){const s=this.prepareExternalUrl(o+vs(r))||this._platformLocation.pathname;this._platformLocation.pushState(e,i,s)}replaceState(e,i,o,r){const s=this.prepareExternalUrl(o+vs(r))||this._platformLocation.pathname;this._platformLocation.replaceState(e,i,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(e=0){this._platformLocation.historyGo?.(e)}static \u0275fac=function(i){return new(i||t)(le(im),le(SN,8))};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();var eo=function(t){return t[t.Format=0]="Format",t[t.Standalone=1]="Standalone",t}(eo||{}),Gt=function(t){return t[t.Narrow=0]="Narrow",t[t.Abbreviated=1]="Abbreviated",t[t.Wide=2]="Wide",t[t.Short=3]="Short",t}(Gt||{}),Do=function(t){return t[t.Short=0]="Short",t[t.Medium=1]="Medium",t[t.Long=2]="Long",t[t.Full=3]="Full",t}(Do||{});function s_(t,n){return Vo(Qi(t)[nn.DateFormat],n)}function a_(t,n){return Vo(Qi(t)[nn.TimeFormat],n)}function l_(t,n){return Vo(Qi(t)[nn.DateTimeFormat],n)}function Bo(t,n){const e=Qi(t),i=e[nn.NumberSymbols][n];if(typeof i>"u"){if(12===n)return e[nn.NumberSymbols][0];if(13===n)return e[nn.NumberSymbols][1]}return i}function MN(t){if(!t[nn.ExtraData])throw new X(2303,!1)}function Vo(t,n){for(let e=n;e>-1;e--)if(typeof t[e]<"u")return t[e];throw new X(2304,!1)}function aw(t){const[n,e]=t.split(":");return{hours:+n,minutes:+e}}const Xte=/^(\d{4,})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,c_={},Zte=/((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/;function EN(t,n,e,i){let o=function sne(t){if(ON(t))return t;if("number"==typeof t&&!isNaN(t))return new Date(t);if("string"==typeof t){if(t=t.trim(),/^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(t)){const[o,r=1,s=1]=t.split("-").map(a=>+a);return d_(o,r-1,s)}const e=parseFloat(t);if(!isNaN(t-e))return new Date(e);let i;if(i=t.match(Xte))return function ane(t){const n=new Date(0);let e=0,i=0;const o=t[8]?n.setUTCFullYear:n.setFullYear,r=t[8]?n.setUTCHours:n.setHours;t[9]&&(e=Number(t[9]+t[10]),i=Number(t[9]+t[11])),o.call(n,Number(t[1]),Number(t[2])-1,Number(t[3]));const s=Number(t[4]||0)-e,a=Number(t[5]||0)-i,l=Number(t[6]||0),c=Math.floor(1e3*parseFloat("0."+(t[7]||0)));return r.call(n,s,a,l,c),n}(i)}const n=new Date(t);if(!ON(n))throw new X(2311,!1);return n}(t);n=ys(e,n)||n;let a,s=[];for(;n;){if(a=Zte.exec(n),!a){s.push(n);break}{s=s.concat(a.slice(1));const u=s.pop();if(!u)break;n=u}}let l=o.getTimezoneOffset();i&&(l=PN(i,l),o=function rne(t,n){const o=t.getTimezoneOffset();return function one(t,n){return(t=new Date(t.getTime())).setMinutes(t.getMinutes()+n),t}(t,-1*(PN(n,o)-o))}(o,i));let c="";return s.forEach(u=>{const p=function ine(t){if(cw[t])return cw[t];let n;switch(t){case"G":case"GG":case"GGG":n=Yt(3,Gt.Abbreviated);break;case"GGGG":n=Yt(3,Gt.Wide);break;case"GGGGG":n=Yt(3,Gt.Narrow);break;case"y":n=Xn(0,1,0,!1,!0);break;case"yy":n=Xn(0,2,0,!0,!0);break;case"yyy":n=Xn(0,3,0,!1,!0);break;case"yyyy":n=Xn(0,4,0,!1,!0);break;case"Y":n=p_(1);break;case"YY":n=p_(2,!0);break;case"YYY":n=p_(3);break;case"YYYY":n=p_(4);break;case"M":case"L":n=Xn(1,1,1);break;case"MM":case"LL":n=Xn(1,2,1);break;case"MMM":n=Yt(2,Gt.Abbreviated);break;case"MMMM":n=Yt(2,Gt.Wide);break;case"MMMMM":n=Yt(2,Gt.Narrow);break;case"LLL":n=Yt(2,Gt.Abbreviated,eo.Standalone);break;case"LLLL":n=Yt(2,Gt.Wide,eo.Standalone);break;case"LLLLL":n=Yt(2,Gt.Narrow,eo.Standalone);break;case"w":n=lw(1);break;case"ww":n=lw(2);break;case"W":n=lw(1,!0);break;case"d":n=Xn(2,1);break;case"dd":n=Xn(2,2);break;case"c":case"cc":n=Xn(7,1);break;case"ccc":n=Yt(1,Gt.Abbreviated,eo.Standalone);break;case"cccc":n=Yt(1,Gt.Wide,eo.Standalone);break;case"ccccc":n=Yt(1,Gt.Narrow,eo.Standalone);break;case"cccccc":n=Yt(1,Gt.Short,eo.Standalone);break;case"E":case"EE":case"EEE":n=Yt(1,Gt.Abbreviated);break;case"EEEE":n=Yt(1,Gt.Wide);break;case"EEEEE":n=Yt(1,Gt.Narrow);break;case"EEEEEE":n=Yt(1,Gt.Short);break;case"a":case"aa":case"aaa":n=Yt(0,Gt.Abbreviated);break;case"aaaa":n=Yt(0,Gt.Wide);break;case"aaaaa":n=Yt(0,Gt.Narrow);break;case"b":case"bb":case"bbb":n=Yt(0,Gt.Abbreviated,eo.Standalone,!0);break;case"bbbb":n=Yt(0,Gt.Wide,eo.Standalone,!0);break;case"bbbbb":n=Yt(0,Gt.Narrow,eo.Standalone,!0);break;case"B":case"BB":case"BBB":n=Yt(0,Gt.Abbreviated,eo.Format,!0);break;case"BBBB":n=Yt(0,Gt.Wide,eo.Format,!0);break;case"BBBBB":n=Yt(0,Gt.Narrow,eo.Format,!0);break;case"h":n=Xn(3,1,-12);break;case"hh":n=Xn(3,2,-12);break;case"H":n=Xn(3,1);break;case"HH":n=Xn(3,2);break;case"m":n=Xn(4,1);break;case"mm":n=Xn(4,2);break;case"s":n=Xn(5,1);break;case"ss":n=Xn(5,2);break;case"S":n=Xn(6,1);break;case"SS":n=Xn(6,2);break;case"SSS":n=Xn(6,3);break;case"Z":case"ZZ":case"ZZZ":n=h_(0);break;case"ZZZZZ":n=h_(3);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":n=h_(1);break;case"OOOO":case"ZZZZ":case"zzzz":n=h_(2);break;default:return null}return cw[t]=n,n}(u);c+=p?p(o,e,l):"''"===u?"'":u.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),c}function d_(t,n,e){const i=new Date(0);return i.setFullYear(t,n,e),i.setHours(0,0,0),i}function ys(t,n){const e=function Bte(t){return Qi(t)[nn.LocaleId]}(t);if(c_[e]??={},c_[e][n])return c_[e][n];let i="";switch(n){case"shortDate":i=s_(t,Do.Short);break;case"mediumDate":i=s_(t,Do.Medium);break;case"longDate":i=s_(t,Do.Long);break;case"fullDate":i=s_(t,Do.Full);break;case"shortTime":i=a_(t,Do.Short);break;case"mediumTime":i=a_(t,Do.Medium);break;case"longTime":i=a_(t,Do.Long);break;case"fullTime":i=a_(t,Do.Full);break;case"short":const o=ys(t,"shortTime"),r=ys(t,"shortDate");i=u_(l_(t,Do.Short),[o,r]);break;case"medium":const s=ys(t,"mediumTime"),a=ys(t,"mediumDate");i=u_(l_(t,Do.Medium),[s,a]);break;case"long":const l=ys(t,"longTime"),c=ys(t,"longDate");i=u_(l_(t,Do.Long),[l,c]);break;case"full":const u=ys(t,"fullTime"),p=ys(t,"fullDate");i=u_(l_(t,Do.Full),[u,p])}return i&&(c_[e][n]=i),i}function u_(t,n){return n&&(t=t.replace(/\{([^}]+)}/g,function(e,i){return null!=n&&i in n?n[i]:e})),t}function ar(t,n,e="-",i,o){let r="";(t<0||o&&t<=0)&&(o?t=1-t:(t=-t,r=e));let s=String(t);for(;s.length0||a>-e)&&(a+=e),3===t)0===a&&-12===e&&(a=12);else if(6===t)return function Qte(t,n){return ar(t,3).substring(0,n)}(a,n);const l=Bo(s,5);return ar(a,n,l,i,o)}}function Yt(t,n,e=eo.Format,i=!1){return function(o,r){return function ene(t,n,e,i,o,r){switch(e){case 2:return function jte(t,n,e){const i=Qi(t),r=Vo([i[nn.MonthsFormat],i[nn.MonthsStandalone]],n);return Vo(r,e)}(n,o,i)[t.getMonth()];case 1:return function Hte(t,n,e){const i=Qi(t),r=Vo([i[nn.DaysFormat],i[nn.DaysStandalone]],n);return Vo(r,e)}(n,o,i)[t.getDay()];case 0:const s=t.getHours(),a=t.getMinutes();if(r){const c=function Wte(t){const n=Qi(t);return MN(n),(n[nn.ExtraData][2]||[]).map(i=>"string"==typeof i?aw(i):[aw(i[0]),aw(i[1])])}(n),u=function Gte(t,n,e){const i=Qi(t);MN(i);const r=Vo([i[nn.ExtraData][0],i[nn.ExtraData][1]],n)||[];return Vo(r,e)||[]}(n,o,i),p=c.findIndex(g=>{if(Array.isArray(g)){const[_,w]=g,x=s>=_.hours&&a>=_.minutes,T=s0?Math.floor(o/60):Math.ceil(o/60);switch(t){case 0:return(o>=0?"+":"")+ar(s,2,r)+ar(Math.abs(o%60),2,r);case 1:return"GMT"+(o>=0?"+":"")+ar(s,1,r);case 2:return"GMT"+(o>=0?"+":"")+ar(s,2,r)+":"+ar(Math.abs(o%60),2,r);case 3:return 0===i?"Z":(o>=0?"+":"")+ar(s,2,r)+":"+ar(Math.abs(o%60),2,r);default:throw new X(2310,!1)}}}function IN(t){const n=t.getDay(),e=0===n?-3:4-n;return d_(t.getFullYear(),t.getMonth(),t.getDate()+e)}function lw(t,n=!1){return function(e,i){let o;if(n){const r=new Date(e.getFullYear(),e.getMonth(),1).getDay()-1,s=e.getDate();o=1+Math.floor((s+r)/7)}else{const r=IN(e),s=function nne(t){const n=d_(t,0,1).getDay();return d_(t,0,1+(n<=4?4:11)-n)}(r.getFullYear()),a=r.getTime()-s.getTime();o=1+Math.round(a/6048e5)}return ar(o,t,Bo(i,5))}}function p_(t,n=!1){return function(e,i){return ar(IN(e).getFullYear(),t,Bo(i,5),n)}}const cw={};function PN(t,n){t=t.replace(/:/g,"");const e=Date.parse("Jan 01, 1970 00:00:00 "+t)/6e4;return isNaN(e)?n:e}function ON(t){return t instanceof Date&&!isNaN(t.valueOf())}const mw=/\s+/,FN=[];let qt=(()=>{class t{_ngEl;_renderer;initialClasses=FN;rawClass;stateMap=new Map;constructor(e,i){this._ngEl=e,this._renderer=i}set klass(e){this.initialClasses=null!=e?e.trim().split(mw):FN}set ngClass(e){this.rawClass="string"==typeof e?e.trim().split(mw):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(mw).forEach(o=>{i?this._renderer.addClass(this._ngEl.nativeElement,o):this._renderer.removeClass(this._ngEl.nativeElement,o)})}static \u0275fac=function(i){return new(i||t)(P(Ae),P(Kn))};static \u0275dir=de({type:t,selectors:[["","ngClass",""]],inputs:{klass:[0,"class","klass"],ngClass:"ngClass"}})}return t})();class Cne{$implicit;ngForOf;index;count;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 LN=(()=>{class t{_viewContainer;_template;_differs;set ngForOf(e){this._ngForOf=e,this._ngForOfDirty=!0}set ngForTrackBy(e){this._trackByFn=e}get ngForTrackBy(){return this._trackByFn}_ngForOf=null;_ngForOfDirty=!0;_differ=null;_trackByFn;constructor(e,i,o){this._viewContainer=e,this._template=i,this._differs=o}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,s)=>{if(null==o.previousIndex)i.createEmbeddedView(this._template,new Cne(o.item,this._ngForOf,-1,-1),null===s?void 0:s);else if(null==s)i.remove(null===r?void 0:r);else if(null!==r){const a=i.get(r);i.move(a,s),BN(a,o)}});for(let o=0,r=i.length;o{BN(i.get(o.currentIndex),o)})}static ngTemplateContextGuard(e,i){return!0}static \u0275fac=function(i){return new(i||t)(P(wi),P(Ci),P(t_))};static \u0275dir=de({type:t,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"}})}return t})();function BN(t,n){t.context.$implicit=n.item}let $h=(()=>{class t{_viewContainer;_context=new wne;_thenTemplateRef=null;_elseTemplateRef=null;_thenViewRef=null;_elseViewRef=null;constructor(e,i){this._viewContainer=e,this._thenTemplateRef=i}set ngIf(e){this._context.$implicit=this._context.ngIf=e,this._updateView()}set ngIfThen(e){VN(e),this._thenTemplateRef=e,this._thenViewRef=null,this._updateView()}set ngIfElse(e){VN(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 ngIfUseIfTypeGuard;static ngTemplateGuard_ngIf;static ngTemplateContextGuard(e,i){return!0}static \u0275fac=function(i){return new(i||t)(P(wi),P(Ci))};static \u0275dir=de({type:t,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"}})}return t})();class wne{$implicit=null;ngIf=null}function VN(t,n){if(t&&!t.createEmbeddedView)throw new X(2020,!1)}let Pd=(()=>{class t{_viewContainerRef;_viewRef=null;ngTemplateOutletContext=null;ngTemplateOutlet=null;ngTemplateOutletInjector=null;injector=D(Be);constructor(e){this._viewContainerRef=e}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._getInjector()})}}_getInjector(){return"outlet"===this.ngTemplateOutletInjector?this.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 \u0275fac=function(i){return new(i||t)(P(wi))};static \u0275dir=de({type:t,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},features:[yi]})}return t})();const Lne=new Z(""),Bne=new Z("");let g_=(()=>{class t{locale;defaultTimezone;defaultOptions;constructor(e,i,o){this.locale=e,this.defaultTimezone=i,this.defaultOptions=o}transform(e,i,o,r){if(null==e||""===e||e!=e)return null;try{return EN(e,i??this.defaultOptions?.dateFormat??"mediumDate",r||this.locale,o??this.defaultOptions?.timezone??this.defaultTimezone??void 0)}catch(s){throw function Cs(t,n){return new X(2100,!1)}()}}static \u0275fac=function(i){return new(i||t)(P(da,16),P(Lne,24),P(Bne,24))};static \u0275pipe=Li({name:"date",type:t,pure:!0})}return t})(),Kne=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({})}return t})();class UN{_doc;constructor(n){this._doc=n}manager}let Cw=(()=>{class t extends UN{constructor(e){super(e)}supports(e){return!0}addEventListener(e,i,o,r){return e.addEventListener(i,o,r),()=>this.removeEventListener(e,i,o,r)}removeEventListener(e,i,o,r){return e.removeEventListener(i,o,r)}static \u0275fac=function(i){return new(i||t)(le(Qe))};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();const ww=new Z("");let zN=(()=>{class t{_zone;_plugins;_eventNameToPlugin=new Map;constructor(e,i){this._zone=i,e.forEach(s=>{s.manager=this});const o=e.filter(s=>!(s instanceof Cw));this._plugins=o.slice().reverse();const r=e.find(s=>s instanceof Cw);r&&this._plugins.push(r)}addEventListener(e,i,o,r){return this._findPluginFor(i).addEventListener(e,i,o,r)}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 X(5101,!1);return this._eventNameToPlugin.set(e,i),i}static \u0275fac=function(i){return new(i||t)(le(ww),le(ge))};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();const xw="ng-app-id";function $N(t){for(const n of t)n.remove()}function WN(t,n){const e=n.createElement("style");return e.textContent=t,e}function Sw(t,n){const e=n.createElement("link");return e.setAttribute("rel","stylesheet"),e.setAttribute("href",t),e}let GN=(()=>{class t{doc;appId;nonce;inline=new Map;external=new Map;hosts=new Set;constructor(e,i,o,r={}){this.doc=e,this.appId=i,this.nonce=o,function Yne(t,n,e,i){const o=t.head?.querySelectorAll(`style[${xw}="${n}"],link[${xw}="${n}"]`);if(o)for(const r of o)r.removeAttribute(xw),r instanceof HTMLLinkElement?i.set(r.href.slice(r.href.lastIndexOf("/")+1),{usage:0,elements:[r]}):r.textContent&&e.set(r.textContent,{usage:0,elements:[r]})}(e,i,this.inline,this.external),this.hosts.add(e.head)}addStyles(e,i){for(const o of e)this.addUsage(o,this.inline,WN);i?.forEach(o=>this.addUsage(o,this.external,Sw))}removeStyles(e,i){for(const o of e)this.removeUsage(o,this.inline);i?.forEach(o=>this.removeUsage(o,this.external))}addUsage(e,i,o){const r=i.get(e);r?r.usage++:i.set(e,{usage:1,elements:[...this.hosts].map(s=>this.addElement(s,o(e,this.doc)))})}removeUsage(e,i){const o=i.get(e);o&&(o.usage--,o.usage<=0&&($N(o.elements),i.delete(e)))}ngOnDestroy(){for(const[,{elements:e}]of[...this.inline,...this.external])$N(e);this.hosts.clear()}addHost(e){this.hosts.add(e);for(const[i,{elements:o}]of this.inline)o.push(this.addElement(e,WN(i,this.doc)));for(const[i,{elements:o}]of this.external)o.push(this.addElement(e,Sw(i,this.doc)))}removeHost(e){this.hosts.delete(e)}addElement(e,i){return this.nonce&&i.setAttribute("nonce",this.nonce),e.appendChild(i)}static \u0275fac=function(i){return new(i||t)(le(Qe),le(Qs),le(gC,8),le(mC))};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();const kw={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/Math/MathML"},Dw=/%COMP%/g,tie=new Z("",{factory:()=>!0});function KN(t,n){return n.map(e=>e.replace(Dw,t))}let Tw=(()=>{class t{eventManager;sharedStylesHost;appId;removeStylesOnCompDestroy;doc;ngZone;nonce;tracingService;rendererByCompId=new Map;defaultRenderer;constructor(e,i,o,r,s,a,l=null,c=null){this.eventManager=e,this.sharedStylesHost=i,this.appId=o,this.removeStylesOnCompDestroy=r,this.doc=s,this.ngZone=a,this.nonce=l,this.tracingService=c,this.defaultRenderer=new Mw(e,s,a,this.tracingService)}createRenderer(e,i){if(!e||!i)return this.defaultRenderer;const o=this.getOrCreateRenderer(e,i);return o instanceof ZN?o.applyToHost(e):o instanceof Ew&&o.applyStyles(),o}getOrCreateRenderer(e,i){const o=this.rendererByCompId;let r=o.get(i.id);if(!r){const s=this.doc,a=this.ngZone,l=this.eventManager,c=this.sharedStylesHost,u=this.removeStylesOnCompDestroy,p=this.tracingService;switch(i.encapsulation){case Ro.Emulated:r=new ZN(l,c,i,this.appId,u,s,a,p);break;case Ro.ShadowDom:return new XN(l,e,i,s,a,this.nonce,p,c);case Ro.ExperimentalIsolatedShadowDom:return new XN(l,e,i,s,a,this.nonce,p);default:r=new Ew(l,c,i,u,s,a,p)}o.set(i.id,r)}return r}ngOnDestroy(){this.rendererByCompId.clear()}componentReplaced(e){this.rendererByCompId.delete(e)}static \u0275fac=function(i){return new(i||t)(le(zN),le(GN),le(Qs),le(tie),le(Qe),le(ge),le(gC),le(ia,8))};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();class Mw{eventManager;doc;ngZone;tracingService;data=Object.create(null);throwOnSyntheticProps=!0;constructor(n,e,i,o){this.eventManager=n,this.doc=e,this.ngZone=i,this.tracingService=o}destroy(){}destroyNode=null;createElement(n,e){return e?this.doc.createElementNS(kw[e]||e,n):this.doc.createElement(n)}createComment(n){return this.doc.createComment(n)}createText(n){return this.doc.createTextNode(n)}appendChild(n,e){(YN(n)?n.content:n).appendChild(e)}insertBefore(n,e,i){n&&(YN(n)?n.content:n).insertBefore(e,i)}removeChild(n,e){e.remove()}selectRootElement(n,e){let i="string"==typeof n?this.doc.querySelector(n):n;if(!i)throw new X(-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=kw[o];r?n.setAttributeNS(r,e,i):n.setAttribute(e,i)}else n.setAttribute(e,i)}removeAttribute(n,e,i){if(i){const o=kw[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&(na.DashCase|na.Important)?n.style.setProperty(e,i,o&na.Important?"important":""):n.style[e]=i}removeStyle(n,e,i){i&na.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,o){if("string"==typeof n&&!(n=Ys().getGlobalEventTarget(this.doc,n)))throw new X(5102,!1);let r=this.decoratePreventDefault(i);return this.tracingService?.wrapEventListener&&(r=this.tracingService.wrapEventListener(n,e,r)),this.eventManager.addEventListener(n,e,r,o)}decoratePreventDefault(n){return e=>{if("__ngUnwrap__"===e)return n;!1===n(e)&&e.preventDefault()}}}function YN(t){return"TEMPLATE"===t.tagName&&void 0!==t.content}class XN extends Mw{hostEl;sharedStylesHost;shadowRoot;constructor(n,e,i,o,r,s,a,l){super(n,o,r,a),this.hostEl=e,this.sharedStylesHost=l,this.shadowRoot=e.attachShadow({mode:"open"}),this.sharedStylesHost&&this.sharedStylesHost.addHost(this.shadowRoot);let c=i.styles;c=KN(i.id,c);for(const p of c){const g=document.createElement("style");s&&g.setAttribute("nonce",s),g.textContent=p,this.shadowRoot.appendChild(g)}const u=i.getExternalStyles?.();if(u)for(const p of u){const g=Sw(p,o);s&&g.setAttribute("nonce",s),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(null,e)}parentNode(n){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(n)))}destroy(){this.sharedStylesHost&&this.sharedStylesHost.removeHost(this.shadowRoot)}}class Ew extends Mw{sharedStylesHost;removeStylesOnCompDestroy;styles;styleUrls;constructor(n,e,i,o,r,s,a,l){super(n,r,s,a),this.sharedStylesHost=e,this.removeStylesOnCompDestroy=o;let c=i.styles;this.styles=l?KN(l,c):c,this.styleUrls=i.getExternalStyles?.(l)}applyStyles(){this.sharedStylesHost.addStyles(this.styles,this.styleUrls)}destroy(){this.removeStylesOnCompDestroy&&0===fl.size&&this.sharedStylesHost.removeStyles(this.styles,this.styleUrls)}}class ZN extends Ew{contentAttr;hostAttr;constructor(n,e,i,o,r,s,a,l){const c=o+"-"+i.id;super(n,e,i,r,s,a,l,c),this.contentAttr=function nie(t){return"_ngcontent-%COMP%".replace(Dw,t)}(c),this.hostAttr=function iie(t){return"_nghost-%COMP%".replace(Dw,t)}(c)}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}}class Pw extends pz{supportsDOMEvents=!0;static makeCurrent(){!function fz(t){YT??=t}(new Pw)}onAndCancel(n,e,i,o){return n.addEventListener(e,i,o),()=>{n.removeEventListener(e,i,o)}}dispatchEvent(n,e){n.dispatchEvent(e)}remove(n){n.remove()}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 sie(){return Wh=Wh||document.head.querySelector("base"),Wh?Wh.getAttribute("href"):null}();return null==e?null:function aie(t){return new URL(t,document.baseURI).pathname}(e)}resetBaseElement(){Wh=null}getUserAgent(){return window.navigator.userAgent}getCookie(n){return XT(document.cookie,n)}}let Wh=null,cie=(()=>{class t{build(){return new XMLHttpRequest}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();const JN=["alt","control","meta","shift"],die={"\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"},uie={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey};let hie=(()=>{class t extends UN{constructor(e){super(e)}supports(e){return null!=t.parseEventName(e)}addEventListener(e,i,o,r){const s=t.parseEventName(i),a=t.eventCallback(s.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Ys().onAndCancel(e,s.domEventName,a,r))}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 s="",a=i.indexOf("code");if(a>-1&&(i.splice(a,1),s="code."),JN.forEach(c=>{const u=i.indexOf(c);u>-1&&(i.splice(u,1),s+=c+".")}),s+=r,0!=i.length||0===r.length)return null;const l={};return l.domEventName=o,l.fullKey=s,l}static matchEventFullKeyCode(e,i){let o=die[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"),JN.forEach(s=>{s!==o&&(0,uie[s])(e)&&(r+=s+".")}),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 \u0275fac=function(i){return new(i||t)(le(Qe))};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();const gie=WR(qee,"browser",[{provide:mC,useValue:QT},{provide:fE,useValue:function fie(){Pw.makeCurrent()},multi:!0},{provide:Qe,useFactory:function mie(){return function P7(t){pC=t}(document),document}}]),nF=[{provide:JP,useClass:class lie{addToWindow(n){Dn.getAngularTestability=(i,o=!0)=>{const r=n.findTestabilityInTree(i,o);if(null==r)throw new X(5103,!1);return r},Dn.getAllAngularTestabilities=()=>n.getAllTestabilities(),Dn.getAllAngularRootElements=()=>n.getAllRootElements(),Dn.frameworkStabilizers||(Dn.frameworkStabilizers=[]),Dn.frameworkStabilizers.push(i=>{const o=Dn.getAllAngularTestabilities();let r=o.length;const s=function(){r--,0==r&&i()};o.forEach(a=>{a.whenStable(s)})})}findTestabilityInTree(n,e,i){return null==e?null:n.getTestability(e)??(i?Ys().isShadowRoot(e)?this.findTestabilityInTree(n,e.host,!0):this.findTestabilityInTree(n,e.parentElement,!0):null)}}},{provide:QP,useClass:s0},{provide:s0,useClass:s0}],iF=[{provide:yy,useValue:"root"},{provide:tl,useFactory:function pie(){return new tl}},{provide:ww,useClass:Cw,multi:!0},{provide:ww,useClass:hie,multi:!0},Tw,GN,zN,{provide:No,useExisting:Tw},{provide:ZT,useClass:cie},[]];let oF=(()=>{class t{constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({providers:[...iF,...nF],imports:[Kne,Kee]})}return t})();var Ne=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}(Ne||{});const ws="*";function rF(t){return{type:Ne.Style,styles:t,offset:null}}class Gh{_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_originalOnDoneFns=[];_originalOnStartFns=[];_started=!1;_destroyed=!1;_finished=!1;_position=0;parentPlayer=null;totalTime;constructor(n=0,e=0){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 sF{_onDoneFns=[];_onStartFns=[];_finished=!1;_started=!1;_destroyed=!1;_onDestroyFns=[];parentPlayer=null;totalTime=0;players;constructor(n){this.players=n;let e=0,i=0,o=0;const r=this.players.length;0==r?queueMicrotask(()=>this._onFinish()):this.players.forEach(s=>{s.onDone(()=>{++e==r&&this._onFinish()}),s.onDestroy(()=>{++i==r&&this._onDestroy()}),s.onStart(()=>{++o==r&&this._onStart()})}),this.totalTime=this.players.reduce((s,a)=>Math.max(s,a.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 lF(t){return new X(3e3,!1)}function Tie(t){return new X(3002,!1)}function ha(t){switch(t.length){case 0:return new Gh;case 1:return t[0];default:return new sF(t)}}function cF(t,n,e=new Map,i=new Map){const o=[],r=[];let s=-1,a=null;if(n.forEach(l=>{const c=l.get("offset"),u=c==s,p=u&&a||new Map;l.forEach((g,_)=>{let w=_,x=g;if("offset"!==_)switch(w=t.normalizePropertyName(w,o),x){case"!":x=e.get(_);break;case ws:x=i.get(_);break;default:x=t.normalizeStyleValue(_,w,x,o)}p.set(w,x)}),u||r.push(p),a=p,s=c}),o.length)throw function Bie(){return new X(3502,!1)}();return r}function Fw(t,n,e,i){switch(n){case"start":t.onStart(()=>i(e&&Lw(e,"start",t)));break;case"done":t.onDone(()=>i(e&&Lw(e,"done",t)));break;case"destroy":t.onDestroy(()=>i(e&&Lw(e,"destroy",t)))}}function Lw(t,n,e){const r=Bw(t.element,t.triggerName,t.fromState,t.toState,n||t.phaseName,e.totalTime??t.totalTime,!!e.disabled),s=t._data;return null!=s&&(r._data=s),r}function Bw(t,n,e,i,o="",r=0,s){return{element:t,triggerName:n,fromState:e,toState:i,phaseName:o,totalTime:r,disabled:!!s}}function To(t,n,e){let i=t.get(n);return i||t.set(n,i=e),i}function dF(t){const n=t.indexOf(":");return[t.substring(1,n),t.slice(n+1)]}const Xie=typeof document>"u"?null:document.documentElement;function Vw(t){const n=t.parentNode||t.host||null;return n===Xie?null:n}let Rl=null,uF=!1;function hF(t,n){for(;n;){if(n===t)return!0;n=Vw(n)}return!1}function fF(t,n,e){if(e)return Array.from(t.querySelectorAll(n));const i=t.querySelector(n);return i?[i]:[]}const mF="ng-enter",Hw="ng-leave",__="ng-trigger",b_=".ng-trigger",gF="ng-animating",jw=".ng-animating";function xs(t){if("number"==typeof t)return t;const n=t.match(/^(-?[\.\d]+)(m?s)/);return!n||n.length<2?0:Uw(parseFloat(n[1]),n[2])}function Uw(t,n){return"s"===n?1e3*t:t}function v_(t,n,e){return t.hasOwnProperty("duration")?t:function ioe(t,n,e){let i,o=0,r="";if("string"==typeof t){const s=t.match(noe);if(null===s)return n.push(lF()),{duration:0,delay:0,easing:""};i=Uw(parseFloat(s[1]),s[2]);const a=s[3];null!=a&&(o=Uw(parseFloat(a),s[4]));const l=s[5];l&&(r=l)}else i=t;if(!e){let s=!1,a=n.length;i<0&&(n.push(function bie(){return new X(3100,!1)}()),s=!0),o<0&&(n.push(function vie(){return new X(3101,!1)}()),s=!0),s&&n.splice(a,0,lF())}return{duration:i,delay:o,easing:r}}(t,n,e)}const noe=/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i;function Vr(t,n,e){n.forEach((i,o)=>{const r=$w(o);e&&!e.has(o)&&e.set(o,t.style[r]),t.style[r]=i})}function Nl(t,n){n.forEach((e,i)=>{const o=$w(i);t.style[o]=""})}function qh(t){return Array.isArray(t)?1==t.length?t[0]:function _ie(t,n=null){return{type:Ne.Sequence,steps:t,options:n}}(t):t}const zw=new RegExp("{{\\s*(.+?)\\s*}}","g");function _F(t){let n=[];if("string"==typeof t){let e;for(;e=zw.exec(t);)n.push(e[1]);zw.lastIndex=0}return n}function Kh(t,n,e){const i=`${t}`,o=i.replace(zw,(r,s)=>{let a=n[s];return null==a&&(e.push(function Cie(){return new X(3003,!1)}()),a=""),a.toString()});return o==i?t:o}const soe=/-+([a-z0-9])/g;function $w(t){return t.replace(soe,(...n)=>n[1].toUpperCase())}function Mo(t,n,e){switch(n.type){case Ne.Trigger:return t.visitTrigger(n,e);case Ne.State:return t.visitState(n,e);case Ne.Transition:return t.visitTransition(n,e);case Ne.Sequence:return t.visitSequence(n,e);case Ne.Group:return t.visitGroup(n,e);case Ne.Animate:return t.visitAnimate(n,e);case Ne.Keyframes:return t.visitKeyframes(n,e);case Ne.Style:return t.visitStyle(n,e);case Ne.Reference:return t.visitReference(n,e);case Ne.AnimateChild:return t.visitAnimateChild(n,e);case Ne.AnimateRef:return t.visitAnimateRef(n,e);case Ne.Query:return t.visitQuery(n,e);case Ne.Stagger:return t.visitStagger(n,e);default:throw function wie(){return new X(3004,!1)}()}}function Ww(t,n){return window.getComputedStyle(t)[n]}let Gw=(()=>{class t{validateStyleProperty(e){return function Qie(t){Rl||(Rl=function Jie(){return typeof document<"u"?document.body:null}()||{},uF=!!Rl.style&&"WebkitAppearance"in Rl.style);let n=!0;return Rl.style&&!function Zie(t){return"ebkit"==t.substring(1,6)}(t)&&(n=t in Rl.style,!n&&uF&&(n="Webkit"+t.charAt(0).toUpperCase()+t.slice(1)in Rl.style)),n}(e)}containsElement(e,i){return hF(e,i)}getParentElement(e){return Vw(e)}query(e,i,o){return fF(e,i,o)}computeStyle(e,i,o){return o||""}animate(e,i,o,r,s,a=[],l){return new Gh(o,r)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();class qw{static NOOP=new Gw}class Kw{}const poe=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 vF extends Kw{normalizePropertyName(n,e){return $w(n)}normalizeStyleValue(n,e,i,o){let r="";const s=i.toString().trim();if(poe.has(e)&&0!==i&&"0"!==i)if("number"==typeof i)r="px";else{const a=i.match(/^[+-]?[\d\.]+([a-z]*)$/);a&&0==a[1].length&&o.push(function xie(){return new X(3005,!1)}())}return s+r}}const C_=new Set(["true","1"]),w_=new Set(["false","0"]);function yF(t,n){const e=C_.has(t)||w_.has(t),i=C_.has(n)||w_.has(n);return(o,r)=>{let s="*"==t||t==o,a="*"==n||n==r;return!s&&e&&"boolean"==typeof o&&(s=o?C_.has(t):w_.has(t)),!a&&i&&"boolean"==typeof r&&(a=r?C_.has(n):w_.has(n)),s&&a}}const boe=new RegExp("s*:selfs*,?","g");function Xw(t,n,e,i){return new voe(t).build(n,e,i)}class voe{_driver;constructor(n){this._driver=n}build(n,e,i){const o=new woe(e);return this._resetContextStyleTimingState(o),Mo(this,qh(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=[],s=[];return"@"==n.name.charAt(0)&&e.errors.push(function Sie(){return new X(3006,!1)}()),n.definitions.forEach(a=>{if(this._resetContextStyleTimingState(e),a.type==Ne.State){const l=a,c=l.name;c.toString().split(/\s*,\s*/).forEach(u=>{l.name=u,r.push(this.visitState(l,e))}),l.name=c}else if(a.type==Ne.Transition){const l=this.visitTransition(a,e);i+=l.queryCount,o+=l.depCount,s.push(l)}else e.errors.push(function kie(){return new X(3007,!1)}())}),{type:Ne.Trigger,name:n.name,states:r,transitions:s,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,s=o||{};i.styles.forEach(a=>{a instanceof Map&&a.forEach(l=>{_F(l).forEach(c=>{s.hasOwnProperty(c)||r.add(c)})})}),r.size&&e.errors.push(function Die(){return new X(3008,!1)}(0,r.values()))}return{type:Ne.State,name:n.name,style:i,options:o?{params:o}:null}}visitTransition(n,e){e.queryCount=0,e.depCount=0;const i=Mo(this,qh(n.animation),e),o=function moe(t,n){const e=[];return"string"==typeof t?t.split(/\s*,\s*/).forEach(i=>function goe(t,n,e){if(":"==t[0]){const l=function _oe(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 l)return void n.push(l);t=l}const i=t.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==i||i.length<4)return e.push(function Nie(){return new X(3015,!1)}()),n;const o=i[1],r=i[2],s=i[3];n.push(yF(o,s)),"<"==r[0]&&("*"!=o||"*"!=s)&&n.push(yF(s,o))}(i,e,n)):e.push(t),e}(n.expr,e.errors);return{type:Ne.Transition,matchers:o,animation:i,queryCount:e.queryCount,depCount:e.depCount,options:Fl(n.options)}}visitSequence(n,e){return{type:Ne.Sequence,steps:n.steps.map(i=>Mo(this,i,e)),options:Fl(n.options)}}visitGroup(n,e){const i=e.currentTime;let o=0;const r=n.steps.map(s=>{e.currentTime=i;const a=Mo(this,s,e);return o=Math.max(o,e.currentTime),a});return e.currentTime=o,{type:Ne.Group,steps:r,options:Fl(n.options)}}visitAnimate(n,e){const i=function Soe(t,n){if(t.hasOwnProperty("duration"))return t;if("number"==typeof t)return Zw(v_(t,n).duration,0,"");const e=t;if(e.split(/\s+/).some(r=>"{"==r.charAt(0)&&"{"==r.charAt(1))){const r=Zw(0,0,"");return r.dynamic=!0,r.strValue=e,r}const o=v_(e,n);return Zw(o.duration,o.delay,o.easing)}(n.timings,e.errors);e.currentAnimateTimings=i;let o,r=n.styles?n.styles:rF({});if(r.type==Ne.Keyframes)o=this.visitKeyframes(r,e);else{let s=n.styles,a=!1;if(!s){a=!0;const c={};i.easing&&(c.easing=i.easing),s=rF(c)}e.currentTime+=i.duration+i.delay;const l=this.visitStyle(s,e);l.isEmptyStep=a,o=l}return e.currentAnimateTimings=null,{type:Ne.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 a of o)"string"==typeof a?a===ws?i.push(a):e.errors.push(Tie()):i.push(new Map(Object.entries(a)));let r=!1,s=null;return i.forEach(a=>{if(a instanceof Map&&(a.has("easing")&&(s=a.get("easing"),a.delete("easing")),!r))for(let l of a.values())if(l.toString().indexOf("{{")>=0){r=!0;break}}),{type:Ne.Style,styles:i,easing:s,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(s=>{"string"!=typeof s&&s.forEach((a,l)=>{const c=e.collectedStyles.get(e.currentQuerySelector),u=c.get(l);let p=!0;u&&(r!=o&&r>=u.startTime&&o<=u.endTime&&(e.errors.push(function Mie(){return new X(3010,!1)}()),p=!1),r=u.startTime),p&&c.set(l,{startTime:r,endTime:o}),e.options&&function roe(t,n,e){const i=n.params||{},o=_F(t);o.length&&o.forEach(r=>{i.hasOwnProperty(r)||e.push(function yie(){return new X(3001,!1)}())})}(a,e.options,e.errors)})})}visitKeyframes(n,e){const i={type:Ne.Keyframes,styles:[],options:null};if(!e.currentAnimateTimings)return e.errors.push(function Eie(){return new X(3011,!1)}()),i;let r=0;const s=[];let a=!1,l=!1,c=0;const u=n.steps.map(E=>{const R=this._makeStyleAst(E,e);let W=null!=R.offset?R.offset:function xoe(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}(R.styles),Y=0;return null!=W&&(r++,Y=R.offset=W),l=l||Y<0||Y>1,a=a||Y0&&r{const W=g>0?R==_?1:g*R:s[R],Y=W*T;e.currentTime=w+x.delay+Y,x.duration=Y,this._validateStyleAst(E,e),E.offset=W,i.styles.push(E)}),i}visitReference(n,e){return{type:Ne.Reference,animation:Mo(this,qh(n.animation),e),options:Fl(n.options)}}visitAnimateChild(n,e){return e.depCount++,{type:Ne.AnimateChild,options:Fl(n.options)}}visitAnimateRef(n,e){return{type:Ne.AnimateRef,animation:this.visitReference(n.animation,e),options:Fl(n.options)}}visitQuery(n,e){const i=e.currentQuerySelector,o=n.options||{};e.queryCount++,e.currentQuery=n;const[r,s]=function yoe(t){const n=!!t.split(/\s*,\s*/).find(e=>":self"==e);return n&&(t=t.replace(boe,"")),t=t.replace(/@\*/g,b_).replace(/@\w+/g,e=>b_+"-"+e.slice(1)).replace(/:animating/g,jw),[t,n]}(n.selector);e.currentQuerySelector=i.length?i+" "+r:r,To(e.collectedStyles,e.currentQuerySelector,new Map);const a=Mo(this,qh(n.animation),e);return e.currentQuery=null,e.currentQuerySelector=i,{type:Ne.Query,selector:r,limit:o.limit||0,optional:!!o.optional,includeSelf:s,animation:a,originalSelector:n.selector,options:Fl(n.options)}}visitStagger(n,e){e.currentQuery||e.errors.push(function Aie(){return new X(3013,!1)}());const i="full"===n.timings?{duration:0,delay:0,easing:"full"}:v_(n.timings,e.errors,!0);return{type:Ne.Stagger,animation:Mo(this,qh(n.animation),e),timings:i,options:null}}}class woe{errors;queryCount=0;depCount=0;currentTransition=null;currentQuery=null;currentQuerySelector=null;currentAnimateTimings=null;currentTime=0;collectedStyles=new Map;options=null;unsupportedCSSPropertiesFound=new Set;constructor(n){this.errors=n}}function Fl(t){return t?(t={...t}).params&&(t.params=function Coe(t){return t?{...t}:null}(t.params)):t={},t}function Zw(t,n,e){return{duration:t,delay:n,easing:e}}function Qw(t,n,e,i,o,r,s=null,a=!1){return{type:1,element:t,keyframes:n,preStyleProps:e,postStyleProps:i,duration:o,delay:r,totalTime:o+r,easing:s,subTimeline:a}}class x_{_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 Toe=new RegExp(":enter","g"),Eoe=new RegExp(":leave","g");function Jw(t,n,e,i,o,r=new Map,s=new Map,a,l,c=[]){return(new Ioe).buildKeyframes(t,n,e,i,o,r,s,a,l,c)}class Ioe{buildKeyframes(n,e,i,o,r,s,a,l,c,u=[]){c=c||new x_;const p=new ex(n,e,c,o,r,u,[]);p.options=l;const g=l.delay?xs(l.delay):0;p.currentTimeline.delayNextStep(g),p.currentTimeline.setStyles([s],null,p.errors,l),Mo(this,i,p);const _=p.timelines.filter(w=>w.containsAnimation());if(_.length&&a.size){let w;for(let x=_.length-1;x>=0;x--){const T=_[x];if(T.element===e){w=T;break}}w&&!w.allowOnlyTimelineStyles()&&w.setStyles([a],null,p.errors,l)}return _.length?_.map(w=>w.buildKeyframes()):[Qw(e,[],[],[],0,g,"",!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,s=this._visitSubInstructions(i,o,o.options);r!=s&&e.transformIntoNewTimeline(s)}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 s="number"==typeof r?r:xs(Kh(r,o?.params??{},e.errors));i.delayNextStep(s)}}}_visitSubInstructions(n,e,i){let r=e.currentTimeline.currentTime;const s=null!=i.duration?xs(i.duration):null,a=null!=i.delay?xs(i.delay):null;return 0!==s&&n.forEach(l=>{const c=e.appendInstructionToTimeline(l,s,a);r=Math.max(r,c.duration+c.delay)}),r}visitReference(n,e){e.updateOptions(n.options,!0),Mo(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==Ne.Style&&(o.currentTimeline.snapshotCurrentStyles(),o.previousNode=S_);const s=xs(r.delay);o.delayNextStep(s)}n.steps.length&&(n.steps.forEach(s=>Mo(this,s,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?xs(n.options.delay):0;n.steps.forEach(s=>{const a=e.createSubContext(n.options);r&&a.delayNextStep(r),Mo(this,s,a),o=Math.max(o,a.currentTimeline.currentTime),i.push(a.currentTimeline)}),i.forEach(s=>e.currentTimeline.mergeTimelineCollectedStyles(s)),e.transformIntoNewTimeline(o),e.previousNode=n}_visitTiming(n,e){if(n.dynamic){const i=n.strValue;return v_(e.params?Kh(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==Ne.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,a=e.createSubContext().currentTimeline;a.easing=i.easing,n.styles.forEach(l=>{a.forwardTime((l.offset||0)*r),a.setStyles(l.styles,l.easing,e.errors,e.options),a.applyStylesToKeyframe()}),e.currentTimeline.mergeTimelineCollectedStyles(a),e.transformIntoNewTimeline(o+r),e.previousNode=n}visitQuery(n,e){const i=e.currentTimeline.currentTime,o=n.options||{},r=o.delay?xs(o.delay):0;r&&(e.previousNode.type===Ne.Style||0==i&&e.currentTimeline.hasCurrentStyleProperties())&&(e.currentTimeline.snapshotCurrentStyles(),e.previousNode=S_);let s=i;const a=e.invokeQuery(n.selector,n.originalSelector,n.limit,n.includeSelf,!!o.optional,e.errors);e.currentQueryTotal=a.length;let l=null;a.forEach((c,u)=>{e.currentQueryIndex=u;const p=e.createSubContext(n.options,c);r&&p.delayNextStep(r),c===e.element&&(l=p.currentTimeline),Mo(this,n.animation,p),p.currentTimeline.applyStylesToKeyframe(),s=Math.max(s,p.currentTimeline.currentTime)}),e.currentQueryIndex=0,e.currentQueryTotal=0,e.transformIntoNewTimeline(s),l&&(e.currentTimeline.mergeTimelineCollectedStyles(l),e.currentTimeline.snapshotCurrentStyles()),e.previousNode=n}visitStagger(n,e){const i=e.parentContext,o=e.currentTimeline,r=n.timings,s=Math.abs(r.duration),a=s*(e.currentQueryTotal-1);let l=s*e.currentQueryIndex;switch(r.duration<0?"reverse":r.easing){case"reverse":l=a-l;break;case"full":l=i.currentStaggerTime}const u=e.currentTimeline;l&&u.delayNextStep(l);const p=u.currentTime;Mo(this,n.animation,e),e.previousNode=n,i.currentStaggerTime=o.currentTime-p+(o.startTime-i.currentTimeline.startTime)}}const S_={};class ex{_driver;element;subInstructions;_enterClassName;_leaveClassName;errors;timelines;parentContext=null;currentTimeline;currentAnimateTimings=null;previousNode=S_;subContextCount=0;options={};currentQueryIndex=0;currentQueryTotal=0;currentStaggerTime=0;constructor(n,e,i,o,r,s,a,l){this._driver=n,this.element=e,this.subInstructions=i,this._enterClassName=o,this._leaveClassName=r,this.errors=s,this.timelines=a,this.currentTimeline=l||new k_(this._driver,e,0),a.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=xs(i.duration)),null!=i.delay&&(o.delay=xs(i.delay));const r=i.params;if(r){let s=o.params;s||(s=this.options.params={}),Object.keys(r).forEach(a=>{(!e||!s.hasOwnProperty(a))&&(s[a]=Kh(r[a],s,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 ex(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=S_,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 Poe(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,s){let a=[];if(o&&a.push(this.element),n.length>0){n=(n=n.replace(Toe,"."+this._enterClassName)).replace(Eoe,"."+this._leaveClassName);let c=this._driver.query(this.element,n,1!=i);0!==i&&(c=i<0?c.slice(c.length+i,c.length):c.slice(0,i)),a.push(...c)}return!r&&0==a.length&&s.push(function Rie(){return new X(3014,!1)}()),a}}class k_{_driver;element;startTime;_elementTimelineStylesLookup;duration=0;easing=null;_previousKeyframe=new Map;_currentKeyframe=new Map;_keyframes=new Map;_styleSummary=new Map;_localTimelineStyles=new Map;_globalTimelineStyles;_pendingStyles=new Map;_backFill=new Map;_currentEmptyStepKeyframe=null;constructor(n,e,i,o){this._driver=n,this.element=e,this.startTime=i,this._elementTimelineStylesLookup=o,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 k_(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||ws),this._currentKeyframe.set(e,ws);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(n,e,i,o){e&&this._previousKeyframe.set("easing",e);const r=o&&o.params||{},s=function Ooe(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,ws)}else for(let[r,s]of o)e.set(r,s)}),e}(n,this._globalTimelineStyles);for(let[a,l]of s){const c=Kh(l,r,i);this._pendingStyles.set(a,c),this._localTimelineStyles.has(a)||this._backFill.set(a,this._globalTimelineStyles.get(a)??ws),this._updateStyle(a,c)}}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((a,l)=>{const c=new Map([...this._backFill,...a]);c.forEach((u,p)=>{"!"===u?n.add(p):u===ws&&e.add(p)}),i||c.set("offset",l/this.duration),o.push(c)});const r=[...n.values()],s=[...e.values()];if(i){const a=o[0],l=new Map(a);a.set("offset",0),l.set("offset",1),o=[a,l]}return Qw(this.element,o,r,s,this.duration,this.startTime,this.easing,!1)}}class Poe extends k_{keyframes;preStyleProps;postStyleProps;_stretchStartingKeyframe;timings;constructor(n,e,i,o,r,s,a=!1){super(n,e,s.delay),this.keyframes=i,this.preStyleProps=o,this.postStyleProps=r,this._stretchStartingKeyframe=a,this.timings={duration:s.duration,delay:s.delay,easing:s.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=[],s=i+e,a=e/s,l=new Map(n[0]);l.set("offset",0),r.push(l);const c=new Map(n[0]);c.set("offset",xF(a)),r.push(c);const u=n.length-1;for(let p=1;p<=u;p++){let g=new Map(n[p]);const _=g.get("offset");g.set("offset",xF((e+_*i)/s)),r.push(g)}i=s,e=0,o="",n=r}return Qw(this.element,n,this.preStyleProps,this.postStyleProps,i,e,o,!0)}}function xF(t,n=3){const e=Math.pow(10,n-1);return Math.round(t*e)/e}function SF(t,n,e,i,o,r,s,a,l,c,u,p,g){return{type:0,element:t,triggerName:n,isRemovalTransition:o,fromState:e,fromStyles:r,toState:i,toStyles:s,timelines:a,queriedElements:l,preStyleProps:c,postStyleProps:u,totalTime:p,errors:g}}const tx={};class kF{_triggerName;ast;_stateStyles;constructor(n,e,i){this._triggerName=n,this.ast=e,this._stateStyles=i}match(n,e,i,o){return function Aoe(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,s,a,l,c,u){const p=[],g=this.ast.options&&this.ast.options.params||tx,w=this.buildStyles(i,a&&a.params||tx,p),x=l&&l.params||tx,T=this.buildStyles(o,x,p),E=new Set,R=new Map,W=new Map,Y="void"===o,K={params:DF(x,g),delay:this.ast.options?.delay},ee=u?[]:Jw(n,e,this.ast.animation,r,s,w,T,K,c,p);let ie=0;return ee.forEach(M=>{ie=Math.max(M.duration+M.delay,ie)}),p.length?SF(e,this._triggerName,i,o,Y,w,T,[],[],R,W,ie,p):(ee.forEach(M=>{const A=M.element,F=To(R,A,new Set);M.preStyleProps.forEach(H=>F.add(H));const U=To(W,A,new Set);M.postStyleProps.forEach(H=>U.add(H)),A!==e&&E.add(A)}),SF(e,this._triggerName,i,o,Y,w,T,ee,[...E.values()],R,W,ie))}}function DF(t,n){const e={...n};return Object.entries(t).forEach(([i,o])=>{null!=o&&(e[i]=o)}),e}class Roe{styles;defaultParams;normalizer;constructor(n,e,i){this.styles=n,this.defaultParams=e,this.normalizer=i}buildStyles(n,e){const i=new Map,o=DF(n,this.defaultParams);return this.styles.styles.forEach(r=>{"string"!=typeof r&&r.forEach((s,a)=>{s&&(s=Kh(s,o,e));const l=this.normalizer.normalizePropertyName(a,e);s=this.normalizer.normalizeStyleValue(a,l,s,e),i.set(a,s)})}),i}}class Foe{name;ast;_normalizer;transitionFactories=[];fallbackTransition;states=new Map;constructor(n,e,i){this.name=n,this.ast=e,this._normalizer=i,e.states.forEach(o=>{this.states.set(o.name,new Roe(o.style,o.options&&o.options.params||{},i))}),TF(this.states,"true","1"),TF(this.states,"false","0"),e.transitions.forEach(o=>{this.transitionFactories.push(new kF(n,o,this.states))}),this.fallbackTransition=function Loe(t,n){return new kF(t,{type:Ne.Transition,animation:{type:Ne.Sequence,steps:[],options:null},matchers:[(s,a)=>!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(s=>s.match(n,e,i,o))||null}matchStyles(n,e,i){return this.fallbackTransition.buildStyles(n,e,i)}}function TF(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 Boe=new x_;class Voe{bodyNode;_driver;_normalizer;_animations=new Map;_playersById=new Map;players=[];constructor(n,e,i){this.bodyNode=n,this._driver=e,this._normalizer=i}register(n,e){const i=[],r=Xw(this._driver,e,i,[]);if(i.length)throw function Vie(){return new X(3503,!1)}();this._animations.set(n,r)}_buildPlayer(n,e,i){const o=n.element,r=cF(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 s;const a=new Map;if(r?(s=Jw(this._driver,e,r,mF,Hw,new Map,new Map,i,Boe,o),s.forEach(u=>{const p=To(a,u.element,new Map);u.postStyleProps.forEach(g=>p.set(g,null))})):(o.push(function Hie(){return new X(3300,!1)}()),s=[]),o.length)throw function jie(){return new X(3504,!1)}();a.forEach((u,p)=>{u.forEach((g,_)=>{u.set(_,this._driver.computeStyle(p,_,ws))})});const c=ha(s.map(u=>{const p=a.get(u.element);return this._buildPlayer(u,new Map,p)}));return this._playersById.set(n,c),c.onDestroy(()=>this.destroy(n)),this.players.push(c),c}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 Uie(){return new X(3301,!1)}();return e}listen(n,e,i,o){const r=Bw(e,"","","");return Fw(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 MF="ng-animate-queued",nx="ng-animate-disabled",$oe=[],EF={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},Woe={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},lr="__ng_removed";class ix{namespaceId;value;options;get params(){return this.options.params}constructor(n,e=""){this.namespaceId=e;const i=n&&n.hasOwnProperty("value");if(this.value=function Yoe(t){return t??null}(i?n.value:n),i){const{value:r,...s}=n;this.options=s}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 Yh="void",ox=new ix(Yh);class Goe{id;hostElement;_engine;players=[];_triggers=new Map;_queue=[];_elementListeners=new Map;_hostClassName;constructor(n,e,i){this.id=n,this.hostElement=e,this._engine=i,this._hostClassName="ng-tns-"+n,Ho(e,this._hostClassName)}listen(n,e,i,o){if(!this._triggers.has(e))throw function zie(){return new X(3302,!1)}();if(null==i||0==i.length)throw function $ie(){return new X(3303,!1)}();if(!function Xoe(t){return"start"==t||"done"==t}(i))throw function Wie(){return new X(3400,!1)}();const r=To(this._elementListeners,n,[]),s={name:e,phase:i,callback:o};r.push(s);const a=To(this._engine.statesByElement,n,new Map);return a.has(e)||(Ho(n,__),Ho(n,__+"-"+e),a.set(e,ox)),()=>{this._engine.afterFlush(()=>{const l=r.indexOf(s);l>=0&&r.splice(l,1),this._triggers.has(e)||a.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 Gie(){return new X(3401,!1)}();return e}trigger(n,e,i,o=!0){const r=this._getTrigger(e),s=new rx(this.id,e,n);let a=this._engine.statesByElement.get(n);a||(Ho(n,__),Ho(n,__+"-"+e),this._engine.statesByElement.set(n,a=new Map));let l=a.get(e);const c=new ix(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&l&&c.absorbOptions(l.options),a.set(e,c),l||(l=ox),c.value!==Yh&&l.value===c.value){if(!function Joe(t,n){const e=Object.keys(t),i=Object.keys(n);if(e.length!=i.length)return!1;for(let o=0;o{Nl(n,T),Vr(n,E)})}return}const g=To(this._engine.playersByElement,n,[]);g.forEach(x=>{x.namespaceId==this.id&&x.triggerName==e&&x.queued&&x.destroy()});let _=r.matchTransition(l.value,c.value,n,c.params),w=!1;if(!_){if(!o)return;_=r.fallbackTransition,w=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:n,triggerName:e,transition:_,fromState:l,toState:c,player:s,isFallbackTransition:w}),w||(Ho(n,MF),s.onStart(()=>{Od(n,MF)})),s.onDone(()=>{let x=this.players.indexOf(s);x>=0&&this.players.splice(x,1);const T=this._engine.playersByElement.get(n);if(T){let E=T.indexOf(s);E>=0&&T.splice(E,1)}}),this.players.push(s),g.push(s),s}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,b_,!0);i.forEach(o=>{if(o[lr])return;const r=this._engine.fetchNamespacesByElement(o);r.size?r.forEach(s=>s.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),s=new Map;if(r){const a=[];if(r.forEach((l,c)=>{if(s.set(c,l.value),this._triggers.has(c)){const u=this.trigger(n,c,Yh,o);u&&a.push(u)}}),a.length)return this._engine.markElementAsRemoved(this.id,n,!0,e,s),i&&ha(a).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 s=r.name;if(o.has(s))return;o.add(s);const l=this._triggers.get(s).fallbackTransition,c=i.get(s)||ox,u=new ix(Yh),p=new rx(this.id,s,n);this._engine.totalQueuedPlayers++,this._queue.push({element:n,triggerName:s,transition:l,fromState:c,toState:u,player:p,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 s=n;for(;s=s.parentNode;)if(i.statesByElement.get(s)){o=!0;break}}}if(this.prepareLeaveAnimationListeners(n),o)i.markElementAsRemoved(this.id,n,!1,e);else{const r=n[lr];(!r||r===EF)&&(i.afterFlush(()=>this.clearElementCache(n)),i.destroyInnerAnimations(n),i._onRemovalComplete(n,e))}}insertNode(n,e){Ho(n,this._hostClassName)}drainQueuedTransitions(n){const e=[];return this._queue.forEach(i=>{const o=i.player;if(o.destroyed)return;const r=i.element,s=this._elementListeners.get(r);s&&s.forEach(a=>{if(a.name==i.triggerName){const l=Bw(r,i.triggerName,i.fromState.value,i.toState.value);l._data=n,Fw(i.player,a.phase,l,a.callback)}}),o.markedForDestroy?this._engine.afterFlush(()=>{o.destroy()}):e.push(i)}),this._queue=[],e.sort((i,o)=>{const r=i.transition.ast.depCount,s=o.transition.ast.depCount;return 0==r||0==s?r-s:this._engine.driver.containsElement(i.element,o.element)?1:-1})}destroy(n){this.players.forEach(e=>e.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,n)}}class qoe{bodyNode;driver;_normalizer;players=[];newHostElements=new Map;playersByElement=new Map;playersByQueriedElement=new Map;statesByElement=new Map;disabledNodes=new Set;totalAnimations=0;totalQueuedPlayers=0;_namespaceLookup={};_namespaceList=[];_flushFns=[];_whenQuietFns=[];namespacesByHostElement=new Map;collectedEnterElements=[];collectedLeaveElements=[];onRemovalComplete=(n,e)=>{};_onRemovalComplete(n,e){this.onRemovalComplete(n,e)}constructor(n,e,i){this.bodyNode=n,this.driver=e,this._normalizer=i}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 Goe(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 s=!1,a=this.driver.getParentElement(e);for(;a;){const l=o.get(a);if(l){const c=i.indexOf(l);i.splice(c+1,0,n),s=!0;break}a=this.driver.getParentElement(a)}s||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(D_(e)){const r=this._fetchNamespace(n);if(r)return r.trigger(e,i,o),!0}return!1}insertNode(n,e,i,o){if(!D_(e))return;const r=e[lr];if(r&&r.setForRemoval){r.setForRemoval=!1,r.setForMove=!0;const s=this.collectedLeaveElements.indexOf(e);s>=0&&this.collectedLeaveElements.splice(s,1)}if(n){const s=this._fetchNamespace(n);s&&s.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),Ho(n,nx)):this.disabledNodes.has(n)&&(this.disabledNodes.delete(n),Od(n,nx))}removeNode(n,e,i){if(D_(e)){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[lr]={namespaceId:n,setForRemoval:o,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:r}}listen(n,e,i,o,r){return D_(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,b_,!0);e.forEach(i=>this.destroyActiveAnimationsForElement(i)),0!=this.playersByQueriedElement.size&&(e=this.driver.query(n,jw,!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 ha(this.players).onDone(()=>n());n()})}processLeaveNode(n){const e=n[lr];if(e&&e.setForRemoval){if(n[lr]=EF,e.namespaceId){this.destroyInnerAnimations(n);const i=this._fetchNamespace(e.namespaceId);i&&i.clearElementCache(n)}this._onRemovalComplete(n,e.setForRemoval)}n.classList?.contains(nx)&&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?ha(e).onDone(()=>{i.forEach(o=>o())}):i.forEach(o=>o())}}reportError(n){throw function qie(){return new X(3402,!1)}()}_flushAnimations(n,e){const i=new x_,o=[],r=new Map,s=[],a=new Map,l=new Map,c=new Map,u=new Set;this.disabledNodes.forEach(N=>{u.add(N);const q=this.driver.query(N,".ng-animate-queued",!0);for(let j=0;j{const j=mF+x++;w.set(q,j),N.forEach(Q=>Ho(Q,j))});const T=[],E=new Set,R=new Set;for(let N=0;NE.add(Q)):R.add(q))}const W=new Map,Y=OF(g,Array.from(E));Y.forEach((N,q)=>{const j=Hw+x++;W.set(q,j),N.forEach(Q=>Ho(Q,j))}),n.push(()=>{_.forEach((N,q)=>{const j=w.get(q);N.forEach(Q=>Od(Q,j))}),Y.forEach((N,q)=>{const j=W.get(q);N.forEach(Q=>Od(Q,j))}),T.forEach(N=>{this.processLeaveNode(N)})});const K=[],ee=[];for(let N=this._namespaceList.length-1;N>=0;N--)this._namespaceList[N].drainQueuedTransitions(e).forEach(j=>{const Q=j.player,fe=j.element;if(K.push(Q),this.collectedEnterElements.length){const Ct=fe[lr];if(Ct&&Ct.setForMove){if(Ct.previousTriggersValues&&Ct.previousTriggersValues.has(j.triggerName)){const Yo=Ct.previousTriggersValues.get(j.triggerName),qi=this.statesByElement.get(j.element);if(qi&&qi.has(j.triggerName)){const La=qi.get(j.triggerName);La.value=Yo,qi.set(j.triggerName,La)}}return void Q.destroy()}}const _e=!p||!this.driver.containsElement(p,fe),Te=W.get(fe),ut=w.get(fe),Pe=this._buildInstruction(j,i,ut,Te,_e);if(Pe.errors&&Pe.errors.length)return void ee.push(Pe);if(_e)return Q.onStart(()=>Nl(fe,Pe.fromStyles)),Q.onDestroy(()=>Vr(fe,Pe.toStyles)),void o.push(Q);if(j.isFallbackTransition)return Q.onStart(()=>Nl(fe,Pe.fromStyles)),Q.onDestroy(()=>Vr(fe,Pe.toStyles)),void o.push(Q);const Xe=[];Pe.timelines.forEach(Ct=>{Ct.stretchStartingKeyframe=!0,this.disabledNodes.has(Ct.element)||Xe.push(Ct)}),Pe.timelines=Xe,i.append(fe,Pe.timelines),s.push({instruction:Pe,player:Q,element:fe}),Pe.queriedElements.forEach(Ct=>To(a,Ct,[]).push(Q)),Pe.preStyleProps.forEach((Ct,Yo)=>{if(Ct.size){let qi=l.get(Yo);qi||l.set(Yo,qi=new Set),Ct.forEach((La,Co)=>qi.add(Co))}}),Pe.postStyleProps.forEach((Ct,Yo)=>{let qi=c.get(Yo);qi||c.set(Yo,qi=new Set),Ct.forEach((La,Co)=>qi.add(Co))})});if(ee.length){const N=[];ee.forEach(q=>{N.push(function Kie(){return new X(3505,!1)}())}),K.forEach(q=>q.destroy()),this.reportError(N)}const ie=new Map,M=new Map;s.forEach(N=>{const q=N.element;i.has(q)&&(M.set(q,q),this._beforeAnimationBuild(N.player.namespaceId,N.instruction,ie))}),o.forEach(N=>{const q=N.element;this._getPreviousPlayers(q,!1,N.namespaceId,N.triggerName,null).forEach(Q=>{To(ie,q,[]).push(Q),Q.destroy()})});const A=T.filter(N=>RF(N,l,c)),F=new Map;PF(F,this.driver,R,c,ws).forEach(N=>{RF(N,l,c)&&A.push(N)});const H=new Map;_.forEach((N,q)=>{PF(H,this.driver,new Set(N),l,"!")}),A.forEach(N=>{const q=F.get(N),j=H.get(N);F.set(N,new Map([...q?.entries()??[],...j?.entries()??[]]))});const G=[],J=[],V={};s.forEach(N=>{const{element:q,player:j,instruction:Q}=N;if(i.has(q)){if(u.has(q))return j.onDestroy(()=>Vr(q,Q.toStyles)),j.disabled=!0,j.overrideTotalTime(Q.totalTime),void o.push(j);let fe=V;if(M.size>1){let Te=q;const ut=[];for(;Te=Te.parentNode;){const Pe=M.get(Te);if(Pe){fe=Pe;break}ut.push(Te)}ut.forEach(Pe=>M.set(Pe,fe))}const _e=this._buildAnimation(j.namespaceId,Q,ie,r,H,F);if(j.setRealPlayer(_e),fe===V)G.push(j);else{const Te=this.playersByElement.get(fe);Te&&Te.length&&(j.parentPlayer=ha(Te)),o.push(j)}}else Nl(q,Q.fromStyles),j.onDestroy(()=>Vr(q,Q.toStyles)),J.push(j),u.has(q)&&o.push(j)}),J.forEach(N=>{const q=r.get(N.element);if(q&&q.length){const j=ha(q);N.setRealPlayer(j)}}),o.forEach(N=>{N.parentPlayer?N.syncPlayerEvents(N.parentPlayer):N.destroy()});for(let N=0;N!_e.destroyed);fe.length?Zoe(this,q,fe):this.processLeaveNode(q)}return T.length=0,G.forEach(N=>{this.players.push(N),N.onDone(()=>{N.destroy();const q=this.players.indexOf(N);this.players.splice(q,1)}),N.play()}),G}afterFlush(n){this._flushFns.push(n)}afterFlushAnimationsDone(n){this._whenQuietFns.push(n)}_getPreviousPlayers(n,e,i,o,r){let s=[];if(e){const a=this.playersByQueriedElement.get(n);a&&(s=a)}else{const a=this.playersByElement.get(n);if(a){const l=!r||r==Yh;a.forEach(c=>{c.queued||!l&&c.triggerName!=o||s.push(c)})}}return(i||o)&&(s=s.filter(a=>!(i&&i!=a.namespaceId||o&&o!=a.triggerName))),s}_beforeAnimationBuild(n,e,i){const r=e.element,s=e.isRemovalTransition?void 0:n,a=e.isRemovalTransition?void 0:e.triggerName;for(const l of e.timelines){const c=l.element,u=c!==r,p=To(i,c,[]);this._getPreviousPlayers(c,u,s,a,e.toState).forEach(_=>{const w=_.getRealPlayer();w.beforeDestroy&&w.beforeDestroy(),_.destroy(),p.push(_)})}Nl(r,e.fromStyles)}_buildAnimation(n,e,i,o,r,s){const a=e.triggerName,l=e.element,c=[],u=new Set,p=new Set,g=e.timelines.map(w=>{const x=w.element;u.add(x);const T=x[lr];if(T&&T.removedBeforeQueried)return new Gh(w.duration,w.delay);const E=x!==l,R=function Qoe(t){const n=[];return AF(t,n),n}((i.get(x)||$oe).map(ie=>ie.getRealPlayer())).filter(ie=>!!ie.element&&ie.element===x),W=r.get(x),Y=s.get(x),K=cF(this._normalizer,w.keyframes,W,Y),ee=this._buildPlayer(w,K,R);if(w.subTimeline&&o&&p.add(x),E){const ie=new rx(n,a,x);ie.setRealPlayer(ee),c.push(ie)}return ee});c.forEach(w=>{To(this.playersByQueriedElement,w.element,[]).push(w),w.onDone(()=>function Koe(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,w.element,w))}),u.forEach(w=>Ho(w,gF));const _=ha(g);return _.onDestroy(()=>{u.forEach(w=>Od(w,gF)),Vr(l,e.toStyles)}),p.forEach(w=>{To(o,w,[]).push(_)}),_}_buildPlayer(n,e,i){return e.length>0?this.driver.animate(n.element,e,n.duration,n.delay,n.easing,i):new Gh(n.duration,n.delay)}}class rx{namespaceId;triggerName;element;_player=new Gh;_containsRealPlayer=!1;_queuedCallbacks=new Map;destroyed=!1;parentPlayer=null;markedForDestroy=!1;disabled=!1;queued=!0;totalTime=0;constructor(n,e,i){this.namespaceId=n,this.triggerName=e,this.element=i}setRealPlayer(n){this._containsRealPlayer||(this._player=n,this._queuedCallbacks.forEach((e,i)=>{e.forEach(o=>Fw(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){To(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 D_(t){return t&&1===t.nodeType}function IF(t,n){const e=t.style.display;return t.style.display=n??"none",e}function PF(t,n,e,i,o){const r=[];e.forEach(l=>r.push(IF(l)));const s=[];i.forEach((l,c)=>{const u=new Map;l.forEach(p=>{const g=n.computeStyle(c,p,o);u.set(p,g),(!g||0==g.length)&&(c[lr]=Woe,s.push(c))}),t.set(c,u)});let a=0;return e.forEach(l=>IF(l,r[a++])),s}function OF(t,n){const e=new Map;if(t.forEach(a=>e.set(a,[])),0==n.length)return e;const o=new Set(n),r=new Map;function s(a){if(!a)return 1;let l=r.get(a);if(l)return l;const c=a.parentNode;return l=e.has(c)?c:o.has(c)?1:s(c),r.set(a,l),l}return n.forEach(a=>{const l=s(a);1!==l&&e.get(l).push(a)}),e}function Ho(t,n){t.classList?.add(n)}function Od(t,n){t.classList?.remove(n)}function Zoe(t,n,e){ha(e).onDone(()=>t.processLeaveNode(n))}function AF(t,n){for(let e=0;eo.add(r)):n.set(t,i),e.delete(t),!0}class Xh{_driver;_normalizer;_transitionEngine;_timelineEngine;_triggerCache={};onRemovalComplete=(n,e)=>{};constructor(n,e,i){this._driver=e,this._normalizer=i,this._transitionEngine=new qoe(n.body,e,i),this._timelineEngine=new Voe(n.body,e,i),this._transitionEngine.onRemovalComplete=(o,r)=>this.onRemovalComplete(o,r)}registerTrigger(n,e,i,o,r){const s=n+"-"+o;let a=this._triggerCache[s];if(!a){const l=[],u=Xw(this._driver,r,l,[]);if(l.length)throw function Lie(){return new X(3404,!1)}();a=function Noe(t,n,e){return new Foe(t,n,e)}(o,u,this._normalizer),this._triggerCache[s]=a}this._transitionEngine.registerTrigger(e,o,a)}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,s]=dF(i);this._timelineEngine.command(r,e,s,o)}else this._transitionEngine.trigger(n,e,i,o)}listen(n,e,i,o,r){if("@"==i.charAt(0)){const[s,a]=dF(i);return this._timelineEngine.listen(s,e,a,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)}}let tre=(()=>{class t{_element;_startStyles;_endStyles;static initialStylesByElement=new WeakMap;_state=0;_initialStyles;constructor(e,i,o){this._element=e,this._startStyles=i,this._endStyles=o;let r=t.initialStylesByElement.get(e);r||t.initialStylesByElement.set(e,r=new Map),this._initialStyles=r}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&&(t.initialStylesByElement.delete(this._element),this._startStyles&&(Nl(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(Nl(this._element,this._endStyles),this._endStyles=null),Vr(this._element,this._initialStyles),this._state=3)}}return t})();function sx(t){let n=null;return t.forEach((e,i)=>{(function nre(t){return"display"===t||"position"===t})(i)&&(n=n||new Map,n.set(i,e))}),n}class NF{element;keyframes;options;_specialStyles;_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_duration;_delay;_initialized=!1;_finished=!1;_started=!1;_destroyed=!1;_finalKeyframe;_originalOnDoneFns=[];_originalOnStartFns=[];domPlayer=null;time=0;parentPlayer=null;currentSnapshot=new Map;constructor(n,e,i,o){this.element=n,this.keyframes=e,this.options=i,this._specialStyles=o,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.domPlayer;this._initialized=!0;const n=this.keyframes,e=this._triggerWebAnimation(this.element,n,this.options);if(!e)return this._onFinish(),null;this.domPlayer=e,this._finalKeyframe=n.length?n[n.length-1]:new Map;const i=()=>this._onFinish();return e.addEventListener("finish",i),this.onDestroy(()=>{e.removeEventListener("finish",i)}),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){const o=this._convertKeyframesToObject(e);try{return n.animate(o,i)}catch{return null}}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(){const n=this._buildPlayer();n&&(this.hasStarted()||(this._onStartFns.forEach(e=>e()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),n.play())}pause(){this.init(),this.domPlayer?.pause()}finish(){this.init(),this.domPlayer&&(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?.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){this.domPlayer||this.init(),this.domPlayer&&(this.domPlayer.currentTime=n*this.time)}getPosition(){return this.domPlayer?+(this.domPlayer.currentTime??0)/this.time:this._initialized?1:0}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:Ww(this.element,o))}),this.currentSnapshot=n}triggerCallback(n){const e="start"===n?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}class FF{validateStyleProperty(n){return!0}validateAnimatableStyleProperty(n){return!0}containsElement(n,e){return hF(n,e)}getParentElement(n){return Vw(n)}query(n,e,i){return fF(n,e,i)}computeStyle(n,e,i){return Ww(n,e)}animate(n,e,i,o,r,s=[]){const l={duration:i,delay:o,fill:0==o?"both":"forwards"};r&&(l.easing=r);const c=new Map,u=s.filter(_=>_ instanceof NF);(function aoe(t,n){return 0===t||0===n})(i,o)&&u.forEach(_=>{_.currentSnapshot.forEach((w,x)=>c.set(x,w))});let p=function ooe(t){return t.length?t[0]instanceof Map?t:t.map(n=>new Map(Object.entries(n))):[]}(e).map(_=>new Map(_));p=function loe(t,n,e){if(e.size&&n.length){let i=n[0],o=[];if(e.forEach((r,s)=>{i.has(s)||o.push(s),i.set(s,r)}),o.length)for(let r=1;rs.set(a,Ww(t,a)))}}return n}(n,p,c);const g=function ere(t,n){let e=null,i=null;return Array.isArray(n)&&n.length?(e=sx(n[0]),n.length>1&&(i=sx(n[n.length-1]))):n instanceof Map&&(e=sx(n)),e||i?new tre(t,e,i):null}(n,p);return new NF(n,p,l,g)}}const LF="@.disabled";class BF{namespaceId;delegate;engine;_onDestroy;\u0275type=0;constructor(n,e,i,o){this.namespaceId=n,this.delegate=e,this.engine=i,this._onDestroy=o}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,o){o?this.delegate.removeChild(n,e,i,o):this.parentNode(e)&&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==LF?this.disableAnimations(n,!!i):this.delegate.setProperty(n,e,i)}setValue(n,e){this.delegate.setValue(n,e)}listen(n,e,i,o){return this.delegate.listen(n,e,i,o)}disableAnimations(n,e){this.engine.disableAnimations(n,e)}}class ire extends BF{factory;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==LF?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,o){if("@"==e.charAt(0)){const r=function ore(t){switch(t){case"body":return document.body;case"document":return document;case"window":return window;default:return t}}(n);let s=e.slice(1),a="";return"@"!=s.charAt(0)&&([s,a]=function rre(t){const n=t.indexOf(".");return[t.substring(0,n),t.slice(n+1)]}(s)),this.engine.listen(this.namespaceId,r,s,a,l=>{this.factory.scheduleListenerCallback(l._data||-1,i,l)})}return this.delegate.listen(n,e,i,o)}}class sre{delegate;engine;_zone;_currentId=0;_microtaskId=1;_animationCallbacksBuffer=[];_rendererCache=new Map;_cdRecurDepth=0;constructor(n,e,i){this.delegate=n,this.engine=e,this._zone=i,e.onRemovalComplete=(o,r)=>{r?.removeChild(null,o)}}createRenderer(n,e){const o=this.delegate.createRenderer(n,e);if(!n||!e?.data?.animation){const c=this._rendererCache;let u=c.get(o);return u||(u=new BF("",o,this.engine,()=>c.delete(o)),c.set(o,u)),u}const r=e.id,s=e.id+"-"+this._currentId;this._currentId++,this.engine.register(s,n);const a=c=>{Array.isArray(c)?c.forEach(a):this.engine.registerTrigger(r,s,n,c.name,c)};return e.data.animation.forEach(a),new ire(this,s,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[s,a]=r;s(a)}),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()}componentReplaced(n){this.engine.flush(),this.delegate.componentReplaced?.(n)}}const VF=[{provide:Kw,useFactory:function cre(){return new vF}},{provide:Xh,useClass:(()=>{class t extends Xh{constructor(e,i,o){super(e,i,o)}ngOnDestroy(){this.flush()}static \u0275fac=function(i){return new(i||t)(le(Qe),le(qw),le(Kw))};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})()},{provide:No,useFactory:function dre(){return new sre(D(Tw),D(Xh),D(ge))}}],HF=[{provide:qw,useClass:Gw},{provide:xm,useValue:"NoopAnimations"},...VF],ax=[{provide:qw,useFactory:()=>new FF},{provide:xm,useFactory:()=>"BrowserAnimations"},...VF];let ure=(()=>{class t{static withConfig(e){return{ngModule:t,providers:e.disableAnimations?HF:ax}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({providers:ax,imports:[oF]})}return t})();function fa(t){return this instanceof fa?(this.v=t,this):new fa(t)}function $F(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 ux(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(s){return new Promise(function(a,l){!function o(r,s,a,l){Promise.resolve(l).then(function(c){r({value:c,done:a})},s)}(a,l,(s=t[r](s)).done,s.value)})}}}"function"==typeof SuppressedError&&SuppressedError;const WF=t=>t&&"number"==typeof t.length&&"function"!=typeof t;function GF(t){return Jt(t?.then)}function qF(t){return Jt(t[Jv])}function KF(t){return Symbol.asyncIterator&&Jt(t?.[Symbol.asyncIterator])}function YF(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 XF=function Bre(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function ZF(t){return Jt(t?.[XF])}function QF(t){return function zF(t,n,e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o,i=e.apply(t,n||[]),r=[];return o=Object.create(("function"==typeof AsyncIterator?AsyncIterator:Object).prototype),a("next"),a("throw"),a("return",function s(_){return function(w){return Promise.resolve(w).then(_,p)}}),o[Symbol.asyncIterator]=function(){return this},o;function a(_,w){i[_]&&(o[_]=function(x){return new Promise(function(T,E){r.push([_,x,T,E])>1||l(_,x)})},w&&(o[_]=w(o[_])))}function l(_,w){try{!function c(_){_.value instanceof fa?Promise.resolve(_.value.v).then(u,p):g(r[0][2],_)}(i[_](w))}catch(x){g(r[0][3],x)}}function u(_){l("next",_)}function p(_){l("throw",_)}function g(_,w){_(w),r.shift(),r.length&&l(r[0][0],r[0][1])}}(this,arguments,function*(){const e=t.getReader();try{for(;;){const{value:i,done:o}=yield fa(e.read());if(o)return yield fa(void 0);yield yield fa(i)}}finally{e.releaseLock()}})}function JF(t){return Jt(t?.getReader)}function Vi(t){if(t instanceof Rt)return t;if(null!=t){if(qF(t))return function Vre(t){return new Rt(n=>{const e=t[Jv]();if(Jt(e.subscribe))return e.subscribe(n);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(t);if(WF(t))return function Hre(t){return new Rt(n=>{for(let e=0;e{t.then(e=>{n.closed||(n.next(e),n.complete())},e=>n.error(e)).then(null,LD)})}(t);if(KF(t))return eL(t);if(ZF(t))return function Ure(t){return new Rt(n=>{for(const e of t)if(n.next(e),n.closed)return;n.complete()})}(t);if(JF(t))return function zre(t){return eL(QF(t))}(t)}throw YF(t)}function eL(t){return new Rt(n=>{(function $re(t,n){var e,i,o,r;return function jF(t,n,e,i){return new(e||(e=Promise))(function(r,s){function a(u){try{c(i.next(u))}catch(p){s(p)}}function l(u){try{c(i.throw(u))}catch(p){s(p)}}function c(u){u.done?r(u.value):function o(r){return r instanceof e?r:new e(function(s){s(r)})}(u.value).then(a,l)}c((i=i.apply(t,n||[])).next())})}(this,void 0,void 0,function*(){try{for(e=$F(t);!(i=yield e.next()).done;)if(n.next(i.value),n.closed)return}catch(s){o={error:s}}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 Zn(t,n){return bn((e,i)=>{let o=null,r=0,s=!1;const a=()=>s&&!o&&i.complete();e.subscribe(en(i,l=>{o?.unsubscribe();let c=0;const u=r++;Vi(t(l,u)).subscribe(o=en(i,p=>i.next(n?n(l,p,u,c++):p),()=>{o=null,a()}))},()=>{s=!0,a()}))})}function M_(t){return bn((n,e)=>{try{n.subscribe(e)}finally{e.add(t)}})}function Ss(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 Et(t,n,e=1/0){return Jt(n)?Et((i,o)=>ye((r,s)=>n(i,r,o,s))(Vi(t(i,o))),e):("number"==typeof n&&(e=n),bn((i,o)=>function Wre(t,n,e,i,o,r,s,a){const l=[];let c=0,u=0,p=!1;const g=()=>{p&&!l.length&&!c&&n.complete()},_=x=>c{r&&n.next(x),c++;let T=!1;Vi(e(x,u++)).subscribe(en(n,E=>{o?.(E),r?_(E):n.next(E)},()=>{T=!0},void 0,()=>{if(T)try{for(c--;l.length&&cw(E)):w(E)}g()}catch(E){n.error(E)}}))};return t.subscribe(en(n,_,()=>{p=!0,g()})),()=>{a?.()}}(i,o,t,e)))}function Zh(t,n){return Jt(n)?Et(t,n,1):Et(t,1)}function vn(t,n){return bn((e,i)=>{let o=0;e.subscribe(en(i,r=>t.call(n,r,o++)&&i.next(r)))})}function tL(t,n=0){return bn((e,i)=>{e.subscribe(en(i,o=>Ss(i,t,()=>i.next(o),n),()=>Ss(i,t,()=>i.complete(),n),o=>Ss(i,t,()=>i.error(o),n)))})}function nL(t,n=0){return bn((e,i)=>{i.add(t.schedule(()=>e.subscribe(i),n))})}function iL(t,n){if(!t)throw new Error("Iterable cannot be null");return new Rt(e=>{Ss(e,n,()=>{const i=t[Symbol.asyncIterator]();Ss(e,n,()=>{i.next().then(o=>{o.done?e.complete():e.next(o.value)})},0,!0)})})}function Un(t,n){return n?function Zre(t,n){if(null!=t){if(qF(t))return function Gre(t,n){return Vi(t).pipe(nL(n),tL(n))}(t,n);if(WF(t))return function Kre(t,n){return new Rt(e=>{let i=0;return n.schedule(function(){i===t.length?e.complete():(e.next(t[i++]),e.closed||this.schedule())})})}(t,n);if(GF(t))return function qre(t,n){return Vi(t).pipe(nL(n),tL(n))}(t,n);if(KF(t))return iL(t,n);if(ZF(t))return function Yre(t,n){return new Rt(e=>{let i;return Ss(e,n,()=>{i=t[XF](),Ss(e,n,()=>{let o,r;try{({value:o,done:r}=i.next())}catch(s){return void e.error(s)}r?e.complete():e.next(o)},0,!0)}),()=>Jt(i?.return)&&i.return()})}(t,n);if(JF(t))return function Xre(t,n){return iL(QF(t),n)}(t,n)}throw YF(t)}(t,n):Vi(t)}function oL(t){return t&&Jt(t.schedule)}function fx(t){return t[t.length-1]}function rL(t){return Jt(fx(t))?t.pop():void 0}function Qh(t){return oL(fx(t))?t.pop():void 0}function ae(...t){return Un(t,Qh(t))}class jo{headers;normalizedNames=new Map;lazyInit;lazyUpdate=null;constructor(n){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=e.slice(i+1).trim();this.addHeaderEntry(o,r)}})}:typeof Headers<"u"&&n instanceof Headers?(this.headers=new Map,n.forEach((e,i)=>{this.addHeaderEntry(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 s=this.headers.get(e);if(!s)return;s=s.filter(a=>-1===r.indexOf(a)),0===s.length?(this.headers.delete(e),this.normalizedNames.delete(e)):this.headers.set(e,s)}else this.headers.delete(e),this.normalizedNames.delete(e)}}addHeaderEntry(n,e){const i=n.toLowerCase();this.maybeSetNormalizedName(n,i),this.headers.has(i)?this.headers.get(i).push(e):this.headers.set(i,[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 Jre{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()}}class ese{encodeKey(n){return aL(n)}encodeValue(n){return aL(n)}decodeKey(n){return decodeURIComponent(n)}decodeValue(n){return decodeURIComponent(n)}}const nse=/%(\d[a-f0-9])/gi,ise={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function aL(t){return encodeURIComponent(t).replace(nse,(n,e)=>ise[e]??n)}function E_(t){return`${t}`}class pa{map;encoder;updates=null;cloneFrom=null;constructor(n={}){if(this.encoder=n.encoder||new ese,n.fromString){if(n.fromObject)throw new X(2805,!1);this.map=function tse(t,n){const e=new Map;return t.length>0&&t.replace(/^\?/,"").split("&").forEach(o=>{const r=o.indexOf("="),[s,a]=-1==r?[n.decodeKey(o),""]:[n.decodeKey(o.slice(0,r)),n.decodeValue(o.slice(r+1))],l=e.get(s)||[];l.push(a),e.set(s,l)}),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(E_):[E_(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 pa({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(E_(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(E_(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)}}function lL(t){return typeof ArrayBuffer<"u"&&t instanceof ArrayBuffer}function cL(t){return typeof Blob<"u"&&t instanceof Blob}function dL(t){return typeof FormData<"u"&&t instanceof FormData}const Jh="Content-Type",uL="text/plain",hL="application/json",fL=`${hL}, ${uL}, */*`;class ef{url;body=null;headers;context;reportProgress=!1;withCredentials=!1;credentials;keepalive=!1;cache;priority;mode;redirect;referrer;integrity;referrerPolicy;responseType="json";method;params;urlWithParams;transferCache;timeout;constructor(n,e,i,o){let r;if(this.url=e,this.method=n.toUpperCase(),function ose(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){if(this.reportProgress=!!r.reportProgress,this.withCredentials=!!r.withCredentials,this.keepalive=!!r.keepalive,r.responseType&&(this.responseType=r.responseType),r.headers&&(this.headers=r.headers),r.context&&(this.context=r.context),r.params&&(this.params=r.params),r.priority&&(this.priority=r.priority),r.cache&&(this.cache=r.cache),r.credentials&&(this.credentials=r.credentials),"number"==typeof r.timeout){if(r.timeout<1||!Number.isInteger(r.timeout))throw new X(2822,"");this.timeout=r.timeout}r.mode&&(this.mode=r.mode),r.redirect&&(this.redirect=r.redirect),r.integrity&&(this.integrity=r.integrity),r.referrer&&(this.referrer=r.referrer),r.referrerPolicy&&(this.referrerPolicy=r.referrerPolicy),this.transferCache=r.transferCache}if(this.headers??=new jo,this.context??=new Jre,this.params){const s=this.params.toString();if(0===s.length)this.urlWithParams=e;else{const a=e.indexOf("?");this.urlWithParams=e+(-1===a?"?":aee.set(ie,n.setHeaders[ie]),W)),n.setParams&&(Y=Object.keys(n.setParams).reduce((ee,ie)=>ee.set(ie,n.setParams[ie]),Y)),new ef(e,i,T,{params:Y,headers:W,context:K,reportProgress:R,responseType:o,withCredentials:E,transferCache:w,keepalive:r,cache:a,priority:s,timeout:x,mode:l,redirect:c,credentials:u,referrer:p,integrity:g,referrerPolicy:_})}}var ma=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}(ma||{});class px{headers;status;statusText;url;ok;type;redirected;responseType;constructor(n,e=200,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.redirected=n.redirected,this.responseType=n.responseType,this.ok=this.status>=200&&this.status<300}}class P_ extends px{constructor(n={}){super(n)}type=ma.ResponseHeader;clone(n={}){return new P_({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 tf extends px{body;constructor(n={}){super(n),this.body=void 0!==n.body?n.body:null}type=ma.Response;clone(n={}){return new tf({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,redirected:n.redirected??this.redirected,responseType:n.responseType??this.responseType})}}class Ll extends px{name="HttpErrorResponse";message;error;ok=!1;constructor(n){super(n,0,"Unknown Error"),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}}const mL=new Z(""),use=/^\)\]\}',?\n/;let gL=(()=>{class t{xhrFactory;tracingService=D(ia,{optional:!0});constructor(e){this.xhrFactory=e}maybePropagateTrace(e){return this.tracingService?.propagate?this.tracingService.propagate(e):e}handle(e){if("JSONP"===e.method)throw new X(-2800,!1);const i=this.xhrFactory;return ae(null).pipe(Zn(()=>new Rt(r=>{const s=i.build();if(s.open(e.method,e.urlWithParams),e.withCredentials&&(s.withCredentials=!0),e.headers.forEach((T,E)=>s.setRequestHeader(T,E.join(","))),e.headers.has("Accept")||s.setRequestHeader("Accept",fL),!e.headers.has(Jh)){const T=e.detectContentTypeHeader();null!==T&&s.setRequestHeader(Jh,T)}if(e.timeout&&(s.timeout=e.timeout),e.responseType){const T=e.responseType.toLowerCase();s.responseType="json"!==T?T:"text"}const a=e.serializeBody();let l=null;const c=()=>{if(null!==l)return l;const T=s.statusText||"OK",E=new jo(s.getAllResponseHeaders());return l=new P_({headers:E,status:s.status,statusText:T,url:s.responseURL||e.url}),l},u=this.maybePropagateTrace(()=>{let{headers:T,status:E,statusText:R,url:W}=c(),Y=null;204!==E&&(Y=typeof s.response>"u"?s.responseText:s.response),0===E&&(E=Y?200:0);let K=E>=200&&E<300;if("json"===e.responseType&&"string"==typeof Y){const ee=Y;Y=Y.replace(use,"");try{Y=""!==Y?JSON.parse(Y):null}catch(ie){Y=ee,K&&(K=!1,Y={error:ie,text:Y})}}K?(r.next(new tf({body:Y,headers:T,status:E,statusText:R,url:W||void 0})),r.complete()):r.error(new Ll({error:Y,headers:T,status:E,statusText:R,url:W||void 0}))}),p=this.maybePropagateTrace(T=>{const{url:E}=c(),R=new Ll({error:T,status:s.status||0,statusText:s.statusText||"Unknown Error",url:E||void 0});r.error(R)});let g=p;e.timeout&&(g=this.maybePropagateTrace(T=>{const{url:E}=c(),R=new Ll({error:new DOMException("Request timed out","TimeoutError"),status:s.status||0,statusText:s.statusText||"Request timeout",url:E||void 0});r.error(R)}));let _=!1;const w=this.maybePropagateTrace(T=>{_||(r.next(c()),_=!0);let E={type:ma.DownloadProgress,loaded:T.loaded};T.lengthComputable&&(E.total=T.total),"text"===e.responseType&&s.responseText&&(E.partialText=s.responseText),r.next(E)}),x=this.maybePropagateTrace(T=>{let E={type:ma.UploadProgress,loaded:T.loaded};T.lengthComputable&&(E.total=T.total),r.next(E)});return s.addEventListener("load",u),s.addEventListener("error",p),s.addEventListener("timeout",g),s.addEventListener("abort",p),e.reportProgress&&(s.addEventListener("progress",w),null!==a&&s.upload&&s.upload.addEventListener("progress",x)),s.send(a),r.next({type:ma.Sent}),()=>{s.removeEventListener("error",p),s.removeEventListener("abort",p),s.removeEventListener("load",u),s.removeEventListener("timeout",g),e.reportProgress&&(s.removeEventListener("progress",w),null!==a&&s.upload&&s.upload.removeEventListener("progress",x)),s.readyState!==s.DONE&&s.abort()}})))}static \u0275fac=function(i){return new(i||t)(le(ZT))};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function _L(t,n){return n(t)}function hse(t,n){return(e,i)=>n.intercept(e,{handle:o=>t(o,i)})}const pse=new Z(""),nf=new Z("",{factory:()=>[]}),mse=new Z(""),bL=new Z("",{factory:()=>!0});function gse(){let t=null;return(n,e)=>{null===t&&(t=(D(pse,{optional:!0})??[]).reduceRight(hse,_L));const i=D(tm);if(D(bL)){const r=i.add();return t(n,e).pipe(M_(r))}return t(n,e)}}let O_=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:function(i){let o=null;return o=i?new(i||t):le(gL),o},providedIn:"root"})}return t})(),_x=(()=>{class t{backend;injector;chain=null;pendingTasks=D(tm);contributeToStability=D(bL);constructor(e,i){this.backend=e,this.injector=i}handle(e){if(null===this.chain){const i=Array.from(new Set([...this.injector.get(nf),...this.injector.get(mse,[])]));this.chain=i.reduceRight((o,r)=>function fse(t,n,e){return(i,o)=>Yi(e,()=>n(i,r=>t(r,o)))}(o,r,this.injector),_L)}if(this.contributeToStability){const i=this.pendingTasks.add();return this.chain(e,o=>this.backend.handle(o)).pipe(M_(i))}return this.chain(e,i=>this.backend.handle(i))}static \u0275fac=function(i){return new(i||t)(le(O_),le(Nn))};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),bx=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:function(i){let o=null;return o=i?new(i||t):le(_x),o},providedIn:"root"})}return t})();function vx(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,credentials:t.credentials,transferCache:t.transferCache,timeout:t.timeout,keepalive:t.keepalive,priority:t.priority,cache:t.cache,mode:t.mode,redirect:t.redirect,integrity:t.integrity,referrer:t.referrer,referrerPolicy:t.referrerPolicy}}let ga=(()=>{class t{handler;constructor(e){this.handler=e}request(e,i,o={}){let r;if(e instanceof ef)r=e;else{let l,c;l=o.headers instanceof jo?o.headers:new jo(o.headers),o.params&&(c=o.params instanceof pa?o.params:new pa({fromObject:o.params})),r=new ef(e,i,void 0!==o.body?o.body:null,{headers:l,context:o.context,params:c,reportProgress:o.reportProgress,responseType:o.responseType||"json",withCredentials:o.withCredentials,transferCache:o.transferCache,keepalive:o.keepalive,priority:o.priority,cache:o.cache,mode:o.mode,redirect:o.redirect,credentials:o.credentials,referrer:o.referrer,referrerPolicy:o.referrerPolicy,integrity:o.integrity,timeout:o.timeout})}const s=ae(r).pipe(Zh(l=>this.handler.handle(l)));if(e instanceof ef||"events"===o.observe)return s;const a=s.pipe(vn(l=>l instanceof tf));switch(o.observe||"body"){case"body":switch(r.responseType){case"arraybuffer":return a.pipe(ye(l=>{if(null!==l.body&&!(l.body instanceof ArrayBuffer))throw new X(2806,!1);return l.body}));case"blob":return a.pipe(ye(l=>{if(null!==l.body&&!(l.body instanceof Blob))throw new X(2807,!1);return l.body}));case"text":return a.pipe(ye(l=>{if(null!==l.body&&"string"!=typeof l.body)throw new X(2808,!1);return l.body}));default:return a.pipe(ye(l=>l.body))}case"response":return a;default:throw new X(2809,!1)}}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 pa).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,vx(o,i))}post(e,i,o={}){return this.request("POST",e,vx(o,i))}put(e,i,o={}){return this.request("PUT",e,vx(o,i))}static \u0275fac=function(i){return new(i||t)(le(bx))};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const yL=new Z("",{factory:()=>!0}),CL=new Z("",{factory:()=>"XSRF-TOKEN"}),wL=new Z("",{factory:()=>"X-XSRF-TOKEN"});let wse=(()=>{class t{cookieName=D(CL);doc=D(Qe);lastCookieString="";lastToken=null;parseCount=0;getToken(){const e=this.doc.cookie||"";return e!==this.lastCookieString&&(this.parseCount++,this.lastToken=XT(e,this.cookieName),this.lastCookieString=e),this.lastToken}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),xse=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:function(i){let o=null;return o=i?new(i||t):le(wse),o},providedIn:"root"})}return t})();function Sse(t,n){if(!D(yL)||"GET"===t.method||"HEAD"===t.method)return n(t);try{const o=D(im).href,{origin:r}=new URL(o),{origin:s}=new URL(t.url,r);if(r!==s)return n(t)}catch{return n(t)}const e=D(xse).getToken(),i=D(wL);return null!=e&&!t.headers.has(i)&&(t=t.clone({headers:t.headers.set(i,e)})),n(t)}var _a=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}(_a||{});function Bl(t,n){return{\u0275kind:t,\u0275providers:n}}function kse(...t){const n=[ga,_x,{provide:bx,useExisting:_x},{provide:O_,useFactory:()=>D(mL,{optional:!0})??D(gL)},{provide:nf,useValue:Sse,multi:!0}];for(const e of t)n.push(...e.\u0275providers);return Iu(n)}const xL=new Z("");function Hr(t){return!!t&&(t instanceof Rt||Jt(t.lift)&&Jt(t.subscribe))}const{isArray:Tse}=Array,{getPrototypeOf:Mse,prototype:Ese,keys:Ise}=Object;function SL(t){if(1===t.length){const n=t[0];if(Tse(n))return{args:n,keys:null};if(function Pse(t){return t&&"object"==typeof t&&Mse(t)===Ese}(n)){const e=Ise(n);return{args:e.map(i=>n[i]),keys:e}}}return{args:t,keys:null}}const{isArray:Ose}=Array;function kL(t){return ye(n=>function Ase(t,n){return Ose(n)?t(...n):t(n)}(t,n))}function DL(t,n){return t.reduce((e,i,o)=>(e[i]=n[o],e),{})}function yx(...t){const n=Qh(t),e=rL(t),{args:i,keys:o}=SL(t);if(0===i.length)return Un([],n);const r=new Rt(function Rse(t,n,e=Ua){return i=>{TL(n,()=>{const{length:o}=t,r=new Array(o);let s=o,a=o;for(let l=0;l{const c=Un(t[l],n);let u=!1;c.subscribe(en(i,p=>{r[l]=p,u||(u=!0,a--),a||i.next(e(r.slice()))},()=>{--s||i.complete()}))},i)},i)}}(i,n,o?s=>DL(o,s):Ua));return e?r.pipe(kL(e)):r}function TL(t,n,e){t?Ss(e,t,n):n()}const Cx=Kv(t=>function(){t(this),this.name="EmptyError",this.message="no elements in sequence"});function Ad(t=1/0){return Et(Ua,t)}function ks(...t){return function Nse(){return Ad(1)}()(Un(t,Qh(t)))}function ba(t){return new Rt(n=>{Vi(t()).subscribe(n)})}const Mi=new Rt(t=>t.complete());function cr(t,n){const e=Jt(t)?t:()=>t,i=o=>o.error(e());return new Rt(n?o=>n.schedule(i,0,o):i)}function un(t){return t<=0?()=>Mi:bn((n,e)=>{let i=0;n.subscribe(en(e,o=>{++i<=t&&(e.next(o),t<=i&&e.complete())}))})}function Vse(t=Hse){return bn((n,e)=>{let i=!1;n.subscribe(en(e,o=>{i=!0,e.next(o)},()=>i?e.complete():e.error(t())))})}function Hse(){return new Cx}function jr(t,n){const e=arguments.length>=2;return i=>i.pipe(t?vn((o,r)=>t(o,r,i)):Ua,un(1),e?function Bse(t){return bn((n,e)=>{let i=!1;n.subscribe(en(e,o=>{i=!0,e.next(o)},()=>{i||e.next(t),e.complete()}))})}(n):Vse(()=>new Cx))}function to(...t){const n=Qh(t);return bn((e,i)=>{(n?ks(t,e,n):ks(t,e)).subscribe(i)})}function on(t){return bn((n,e)=>{Vi(t).subscribe(en(e,()=>e.complete(),kp)),!e.closed&&n.subscribe(e)})}function ni(t,n,e){const i=Jt(t)||n||e?{next:t,error:n,complete:e}:t;return i?bn((o,r)=>{var s;null===(s=i.subscribe)||void 0===s||s.call(i);let a=!0;o.subscribe(en(r,l=>{var c;null===(c=i.next)||void 0===c||c.call(i,l),r.next(l)},()=>{var l;a=!1,null===(l=i.complete)||void 0===l||l.call(i),r.complete()},l=>{var c;a=!1,null===(c=i.error)||void 0===c||c.call(i,l),r.error(l)},()=>{var l,c;a&&(null===(l=i.unsubscribe)||void 0===l||l.call(i)),null===(c=i.finalize)||void 0===c||c.call(i)}))}):Ua}function ML(t){return t<=0?()=>Mi:bn((n,e)=>{let i=[];n.subscribe(en(e,o=>{i.push(o),t{for(const o of i)e.next(o);e.complete()},void 0,()=>{i=null}))})}function go(t){return bn((n,e)=>{let r,i=null,o=!1;i=n.subscribe(en(e,void 0,void 0,s=>{r=Vi(t(s,go(t)(n))),i?(i.unsubscribe(),i=null,r.subscribe(e)):o=!0})),o&&(i.unsubscribe(),i=null,r.subscribe(e))})}let Qse=(()=>{class t{_doc;constructor(e){this._doc=e}getTitle(){return this._doc.title}setTitle(e){this._doc.title=e||""}static \u0275fac=function(i){return new(i||t)(le(Qe))};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),wx=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:function(i){let o=null;return o=i?new(i||t):le(nae),o},providedIn:"root"})}return t})(),nae=(()=>{class t extends wx{_doc;constructor(e){super(),this._doc=e}sanitize(e,i){if(null==i)return null;switch(e){case ui.NONE:return i;case ui.HTML:return Rr(i,"HTML")?ko(i):n2(this._doc,String(i)).toString();case ui.STYLE:return Rr(i,"Style")?ko(i):i;case ui.SCRIPT:if(Rr(i,"Script"))return ko(i);throw new X(5200,!1);case ui.URL:return Rr(i,"URL")?ko(i):Ju(String(i));case ui.RESOURCE_URL:if(Rr(i,"ResourceURL"))return ko(i);throw new X(5201,!1);default:throw new X(5202,!1)}}bypassSecurityTrustHtml(e){return function k$(t){return new v$(t)}(e)}bypassSecurityTrustStyle(e){return function D$(t){return new y$(t)}(e)}bypassSecurityTrustScript(e){return function T$(t){return new C$(t)}(e)}bypassSecurityTrustUrl(e){return function M$(t){return new w$(t)}(e)}bypassSecurityTrustResourceUrl(e){return function E$(t){return new x$(t)}(e)}static \u0275fac=function(i){return new(i||t)(le(Qe))};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Ge="primary",rf=Symbol("RouteTitle");class iae{params;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 Rd(t){return new iae(t)}function xx(t,n,e){for(let i=0;it.length||"full"===e.pathMatch&&(n.hasChildren()||i.lengtht.length||"full"===e.pathMatch&&n.hasChildren()&&"**"!==e.path)return null;const a={};return xx(r,t.slice(0,r.length),a)&&xx(s,t.slice(t.length-s.length),a)?{consumed:t,posParams:a}:null}function A_(t){return new Promise((n,e)=>{t.pipe(jr()).subscribe({next:i=>n(i),error:i=>e(i)})})}function Ur(t,n){const e=t?Sx(t):void 0,i=n?Sx(n):void 0;if(!e||!i||e.length!=i.length)return!1;let o;for(let r=0;ri[r]===o)}return t===n}function Vl(t){return Hr(t)?t:Sh(t)?Un(Promise.resolve(t)):ae(t)}function NL(t){return Hr(t)?A_(t):Promise.resolve(t)}const aae={exact:function BL(t,n,e){if(!Hl(t.segments,n.segments)||!N_(t.segments,n.segments,e)||t.numberOfChildren!==n.numberOfChildren)return!1;for(const i in n.children)if(!t.children[i]||!BL(t.children[i],n.children[i],e))return!1;return!0},subset:VL},FL={exact:function cae(t,n){return Ur(t,n)},subset:function dae(t,n){return Object.keys(n).length<=Object.keys(t).length&&Object.keys(n).every(e=>RL(t[e],n[e]))},ignored:()=>!0},LL={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},R_={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};function kx(t,n,e){return aae[e.paths](t.root,n.root,e.matrixParams)&&FL[e.queryParams](t.queryParams,n.queryParams)&&!("exact"===e.fragment&&t.fragment!==n.fragment)}function VL(t,n,e){return HL(t,n,n.segments,e)}function HL(t,n,e,i){if(t.segments.length>e.length){const o=t.segments.slice(0,e.length);return!(!Hl(o,e)||n.hasChildren()||!N_(o,e,i))}if(t.segments.length===e.length){if(!Hl(t.segments,e)||!N_(t.segments,e,i))return!1;for(const o in n.children)if(!t.children[o]||!VL(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!!(Hl(t.segments,o)&&N_(t.segments,o,i)&&t.children[Ge])&&HL(t.children[Ge],n,r,i)}}function N_(t,n,e){return n.every((i,o)=>FL[e](t[o].parameters,i.parameters))}class dr{root;queryParams;fragment;_queryParamMap;constructor(n=new Ut([],{}),e={},i=null){this.root=n,this.queryParams=e,this.fragment=i}get queryParamMap(){return this._queryParamMap??=Rd(this.queryParams),this._queryParamMap}toString(){return fae.serialize(this)}}class Ut{segments;children;parent=null;constructor(n,e){this.segments=n,this.children=e,Object.values(e).forEach(i=>i.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return F_(this)}}class sf{path;parameters;_parameterMap;constructor(n,e){this.path=n,this.parameters=e}get parameterMap(){return this._parameterMap??=Rd(this.parameters),this._parameterMap}toString(){return zL(this)}}function Hl(t,n){return t.length===n.length&&t.every((e,i)=>e.path===n[i].path)}let Nd=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:()=>new af,providedIn:"root"})}return t})();class af{parse(n){const e=new Sae(n);return new dr(e.parseRootSegment(),e.parseQueryParams(),e.parseFragment())}serialize(n){const e=`/${lf(n.root,!0)}`,i=function gae(t){const n=Object.entries(t).map(([e,i])=>Array.isArray(i)?i.map(o=>`${L_(e)}=${L_(o)}`).join("&"):`${L_(e)}=${L_(i)}`).filter(e=>e);return n.length?`?${n.join("&")}`:""}(n.queryParams);return`${e}${i}${"string"==typeof n.fragment?`#${function pae(t){return encodeURI(t)}(n.fragment)}`:""}`}}const fae=new af;function F_(t){return t.segments.map(n=>zL(n)).join("/")}function lf(t,n){if(!t.hasChildren())return F_(t);if(n){const e=t.children[Ge]?lf(t.children[Ge],!1):"",i=[];return Object.entries(t.children).forEach(([o,r])=>{o!==Ge&&i.push(`${o}:${lf(r,!1)}`)}),i.length>0?`${e}(${i.join("//")})`:e}{const e=function hae(t,n){let e=[];return Object.entries(t.children).forEach(([i,o])=>{i===Ge&&(e=e.concat(n(o,i)))}),Object.entries(t.children).forEach(([i,o])=>{i!==Ge&&(e=e.concat(n(o,i)))}),e}(t,(i,o)=>o===Ge?[lf(t.children[Ge],!1)]:[`${o}:${lf(i,!1)}`]);return 1===Object.keys(t.children).length&&null!=t.children[Ge]?`${F_(t)}/${e[0]}`:`${F_(t)}/(${e.join("//")})`}}function jL(t){return encodeURIComponent(t).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function L_(t){return jL(t).replace(/%3B/gi,";")}function Dx(t){return jL(t).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function B_(t){return decodeURIComponent(t)}function UL(t){return B_(t.replace(/\+/g,"%20"))}function zL(t){return`${Dx(t.path)}${function mae(t){return Object.entries(t).map(([n,e])=>`;${Dx(n)}=${Dx(e)}`).join("")}(t.parameters)}`}const _ae=/^[^\/()?;#]+/;function Tx(t){const n=t.match(_ae);return n?n[0]:""}const bae=/^[^\/()?;=#]+/,yae=/^[^=?&#]+/,wae=/^[^&#]+/;class Sae{url;remaining;constructor(n){this.url=n,this.remaining=n}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new Ut([],{}):new Ut([],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(n=0){if(n>50)throw new X(4010,!1);if(""===this.remaining)return{};this.consumeOptional("/");const e=[];for(this.peekStartsWith("(")||e.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),e.push(this.parseSegment());let i={};this.peekStartsWith("/(")&&(this.capture("/"),i=this.parseParens(!0,n));let o={};return this.peekStartsWith("(")&&(o=this.parseParens(!1,n)),(e.length>0||Object.keys(i).length>0)&&(o[Ge]=new Ut(e,i)),o}parseSegment(){const n=Tx(this.remaining);if(""===n&&this.peekStartsWith(";"))throw new X(4009,!1);return this.capture(n),new sf(B_(n),this.parseMatrixParams())}parseMatrixParams(){const n={};for(;this.consumeOptional(";");)this.parseParam(n);return n}parseParam(n){const e=function vae(t){const n=t.match(bae);return n?n[0]:""}(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){const o=Tx(this.remaining);o&&(i=o,this.capture(i))}n[B_(e)]=B_(i)}parseQueryParam(n){const e=function Cae(t){const n=t.match(yae);return n?n[0]:""}(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){const s=function xae(t){const n=t.match(wae);return n?n[0]:""}(this.remaining);s&&(i=s,this.capture(i))}const o=UL(e),r=UL(i);if(n.hasOwnProperty(o)){let s=n[o];Array.isArray(s)||(s=[s],n[o]=s),s.push(r)}else n[o]=r}parseParens(n,e){const i={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const o=Tx(this.remaining),r=this.remaining[o.length];if("/"!==r&&")"!==r&&";"!==r)throw new X(4010,!1);let s;o.indexOf(":")>-1?(s=o.slice(0,o.indexOf(":")),this.capture(s),this.capture(":")):n&&(s=Ge);const a=this.parseChildren(e+1);i[s??Ge]=1===Object.keys(a).length&&a[Ge]?a[Ge]:new Ut([],a),this.consumeOptional("//")}return i}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 X(4011,!1)}}function $L(t){return t.segments.length>0?new Ut([],{[Ge]:t}):t}function WL(t){const n={};for(const[i,o]of Object.entries(t.children)){const r=WL(o);if(i===Ge&&0===r.segments.length&&r.hasChildren())for(const[s,a]of Object.entries(r.children))n[s]=a;else(r.segments.length>0||r.hasChildren())&&(n[i]=r)}return function kae(t){if(1===t.numberOfChildren&&t.children[Ge]){const n=t.children[Ge];return new Ut(t.segments.concat(n.segments),n.children)}return t}(new Ut(t.segments,n))}function jl(t){return t instanceof dr}function GL(t){let n;const o=$L(function e(r){const s={};for(const l of r.children){const c=e(l);s[l.outlet]=c}const a=new Ut(r.url,s);return r===t&&(n=a),a}(t.root));return n??o}function qL(t,n,e,i,o){let r=t;for(;r.parent;)r=r.parent;if(0===n.length)return Mx(r,r,r,e,i,o);const s=function Tae(t){if("string"==typeof t[0]&&1===t.length&&"/"===t[0])return new XL(!0,0,t);let n=0,e=!1;const i=t.reduce((o,r,s)=>{if("object"==typeof r&&null!=r){if(r.outlets){const a={};return Object.entries(r.outlets).forEach(([l,c])=>{a[l]="string"==typeof c?c.split("/"):c}),[...o,{outlets:a}]}if(r.segmentPath)return[...o,r.segmentPath]}return"string"!=typeof r?[...o,r]:0===s?(r.split("/").forEach((a,l)=>{0==l&&"."===a||(0==l&&""===a?e=!0:".."===a?n++:""!=a&&o.push(a))}),o):[...o,r]},[]);return new XL(e,n,i)}(n);if(s.toRoot())return Mx(r,r,new Ut([],{}),e,i,o);const a=function Mae(t,n,e){if(t.isAbsolute)return new H_(n,!0,0);if(!e)return new H_(n,!1,NaN);if(null===e.parent)return new H_(e,!0,0);const i=V_(t.commands[0])?0:1;return function Eae(t,n,e){let i=t,o=n,r=e;for(;r>o;){if(r-=o,i=i.parent,!i)throw new X(4005,!1);o=i.segments.length}return new H_(i,!1,o-r)}(e,e.segments.length-1+i,t.numberOfDoubleDots)}(s,r,t),l=a.processChildren?df(a.segmentGroup,a.index,s.commands):ZL(a.segmentGroup,a.index,s.commands);return Mx(r,a.segmentGroup,l,e,i,o)}function V_(t){return"object"==typeof t&&null!=t&&!t.outlets&&!t.segmentPath}function cf(t){return"object"==typeof t&&null!=t&&t.outlets}function KL(t,n,e){t||="\u0275";const i=new dr;return i.queryParams={[t]:n},e.parse(e.serialize(i)).queryParams[t]}function Mx(t,n,e,i,o,r){const s={};for(const[c,u]of Object.entries(i??{}))s[c]=Array.isArray(u)?u.map(p=>KL(c,p,r)):KL(c,u,r);let a;a=t===n?e:YL(t,n,e);const l=$L(WL(a));return new dr(l,s,o)}function YL(t,n,e){const i={};return Object.entries(t.children).forEach(([o,r])=>{i[o]=r===n?e:YL(r,n,e)}),new Ut(t.segments,i)}class XL{isAbsolute;numberOfDoubleDots;commands;constructor(n,e,i){if(this.isAbsolute=n,this.numberOfDoubleDots=e,this.commands=i,n&&i.length>0&&V_(i[0]))throw new X(4003,!1);const o=i.find(cf);if(o&&o!==function sae(t){return t.length>0?t[t.length-1]:null}(i))throw new X(4004,!1)}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class H_{segmentGroup;processChildren;index;constructor(n,e,i){this.segmentGroup=n,this.processChildren=e,this.index=i}}function ZL(t,n,e){if(t??=new Ut([],{}),0===t.segments.length&&t.hasChildren())return df(t,n,e);const i=function Pae(t,n,e){let i=0,o=n;const r={match:!1,pathIndex:0,commandIndex:0};for(;o=e.length)return r;const s=t.segments[o],a=e[i];if(cf(a))break;const l=`${a}`,c=i0&&void 0===l)break;if(l&&c&&"object"==typeof c&&void 0===c.outlets){if(!JL(l,c,s))return r;i+=2}else{if(!JL(l,{},s))return r;i++}o++}return{match:!0,pathIndex:o,commandIndex:i}}(t,n,e),o=e.slice(i.commandIndex);if(i.match&&i.pathIndexr!==Ge)&&t.children[Ge]&&1===t.numberOfChildren&&0===t.children[Ge].segments.length){const r=df(t.children[Ge],n,e);return new Ut(t.segments,r.children)}return Object.entries(i).forEach(([r,s])=>{"string"==typeof s&&(s=[s]),null!==s&&(o[r]=ZL(t.children[r],n,s))}),Object.entries(t.children).forEach(([r,s])=>{void 0===i[r]&&(o[r]=s)}),new Ut(t.segments,o)}}function Ex(t,n,e){const i=t.segments.slice(0,n);let o=0;for(;o{"string"==typeof i&&(i=[i]),null!==i&&(n[e]=Ex(new Ut([],{}),0,i))}),n}function QL(t){const n={};return Object.entries(t).forEach(([e,i])=>n[e]=`${i}`),n}function JL(t,n,e){return t==e.path&&Ur(n,e.parameters)}const uf="imperative";var _t=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}(_t||{});class zr{id;url;constructor(n,e){this.id=n,this.url=e}}class j_ extends zr{type=_t.NavigationStart;navigationTrigger;restoredState;constructor(n,e,i="imperative",o=null){super(n,e),this.navigationTrigger=i,this.restoredState=o}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class $r extends zr{urlAfterRedirects;type=_t.NavigationEnd;constructor(n,e,i){super(n,e),this.urlAfterRedirects=i}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}var _o=function(t){return t[t.Redirect=0]="Redirect",t[t.SupersededByNewNavigation=1]="SupersededByNewNavigation",t[t.NoDataFromResolver=2]="NoDataFromResolver",t[t.GuardRejected=3]="GuardRejected",t[t.Aborted=4]="Aborted",t}(_o||{}),U_=function(t){return t[t.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",t[t.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",t}(U_||{});class ya extends zr{reason;code;type=_t.NavigationCancel;constructor(n,e,i,o){super(n,e),this.reason=i,this.code=o}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class Fd extends zr{reason;code;type=_t.NavigationSkipped;constructor(n,e,i,o){super(n,e),this.reason=i,this.code=o}}class Ix extends zr{error;target;type=_t.NavigationError;constructor(n,e,i,o){super(n,e),this.error=i,this.target=o}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class e3 extends zr{urlAfterRedirects;state;type=_t.RoutesRecognized;constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Rae extends zr{urlAfterRedirects;state;type=_t.GuardsCheckStart;constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Nae extends zr{urlAfterRedirects;state;shouldActivate;type=_t.GuardsCheckEnd;constructor(n,e,i,o,r){super(n,e),this.urlAfterRedirects=i,this.state=o,this.shouldActivate=r}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class Fae extends zr{urlAfterRedirects;state;type=_t.ResolveStart;constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Lae extends zr{urlAfterRedirects;state;type=_t.ResolveEnd;constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Bae{route;type=_t.RouteConfigLoadStart;constructor(n){this.route=n}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class Vae{route;type=_t.RouteConfigLoadEnd;constructor(n){this.route=n}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class Hae{snapshot;type=_t.ChildActivationStart;constructor(n){this.snapshot=n}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class jae{snapshot;type=_t.ChildActivationEnd;constructor(n){this.snapshot=n}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Uae{snapshot;type=_t.ActivationStart;constructor(n){this.snapshot=n}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class zae{snapshot;type=_t.ActivationEnd;constructor(n){this.snapshot=n}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class t3{routerEvent;position;anchor;scrollBehavior;type=_t.Scroll;constructor(n,e,i,o){this.routerEvent=n,this.position=e,this.anchor=i,this.scrollBehavior=o}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}class Px{}class n3{}class z_{url;navigationBehaviorOptions;constructor(n,e){this.url=n,this.navigationBehaviorOptions=e}}class Wae{rootInjector;outlet=null;route=null;children;attachRef=null;get injector(){return this.route?.snapshot._environmentInjector??this.rootInjector}constructor(n){this.rootInjector=n,this.children=new hf(this.rootInjector)}}let hf=(()=>{class t{rootInjector;contexts=new Map;constructor(e){this.rootInjector=e}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 Wae(this.rootInjector),this.contexts.set(e,i)),i}getContext(e){return this.contexts.get(e)||null}static \u0275fac=function(i){return new(i||t)(le(Nn))};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();class i3{_root;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=Ox(n,this._root);return e?e.children.map(i=>i.value):[]}firstChild(n){const e=Ox(n,this._root);return e&&e.children.length>0?e.children[0].value:null}siblings(n){const e=Ax(n,this._root);return e.length<2?[]:e[e.length-2].children.map(o=>o.value).filter(o=>o!==n)}pathFromRoot(n){return Ax(n,this._root).map(e=>e.value)}}function Ox(t,n){if(t===n.value)return n;for(const e of n.children){const i=Ox(t,e);if(i)return i}return null}function Ax(t,n){if(t===n.value)return[n];for(const e of n.children){const i=Ax(t,e);if(i.length)return i.unshift(n),i}return[]}class ur{value;children;constructor(n,e){this.value=n,this.children=e}toString(){return`TreeNode(${this.value})`}}function Ld(t){const n={};return t&&t.children.forEach(e=>n[e.value.outlet]=e),n}class o3 extends i3{snapshot;constructor(n,e){super(n),this.snapshot=e,Fx(this,n)}toString(){return this.snapshot.toString()}}function r3(t,n){const e=function Gae(t,n){const s=new Nx([],{},{},"",{},Ge,t,null,{},n);return new s3("",new ur(s,[]))}(t,n),i=new _i([new sf("",{})]),o=new _i({}),r=new _i({}),s=new _i({}),a=new _i(""),l=new Ei(i,o,s,a,r,Ge,t,e.root);return l.snapshot=e.root,new o3(new ur(l,[]),e)}class Ei{urlSubject;paramsSubject;queryParamsSubject;fragmentSubject;dataSubject;outlet;component;snapshot;_futureSnapshot;_routerState;_paramMap;_queryParamMap;title;url;params;queryParams;fragment;data;constructor(n,e,i,o,r,s,a,l){this.urlSubject=n,this.paramsSubject=e,this.queryParamsSubject=i,this.fragmentSubject=o,this.dataSubject=r,this.outlet=s,this.component=a,this._futureSnapshot=l,this.title=this.dataSubject?.pipe(ye(c=>c[rf]))??ae(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(ye(n=>Rd(n))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe(ye(n=>Rd(n))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function Rx(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&&l3(o)&&(i.resolve[rf]=o.title),i}class Nx{url;params;queryParams;fragment;data;outlet;component;routeConfig;_resolve;_resolvedData;_routerState;_paramMap;_queryParamMap;_environmentInjector;get title(){return this.data?.[rf]}constructor(n,e,i,o,r,s,a,l,c,u){this.url=n,this.params=e,this.queryParams=i,this.fragment=o,this.data=r,this.outlet=s,this.component=a,this.routeConfig=l,this._resolve=c,this._environmentInjector=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??=Rd(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=Rd(this.queryParams),this._queryParamMap}toString(){return`Route(url:'${this.url.map(i=>i.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class s3 extends i3{url;constructor(n,e){super(e),this.url=n,Fx(this,e)}toString(){return a3(this._root)}}function Fx(t,n){n.value._routerState=t,n.children.forEach(e=>Fx(t,e))}function a3(t){const n=t.children.length>0?` { ${t.children.map(a3).join(", ")} } `:"";return`${t.value}${n}`}function Lx(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 rae(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||Bx(t.parent,n.parent))}function l3(t){return"string"==typeof t.title||null===t.title}const qae=new Z("");let $_=(()=>{class t{activated=null;get activatedComponentRef(){return this.activated}_activatedRoute=null;name=Ge;activateEvents=new ve;deactivateEvents=new ve;attachEvents=new ve;detachEvents=new ve;routerOutletData=ree();parentContexts=D(hf);location=D(wi);changeDetector=D(Pn);inputBinder=D(W_,{optional:!0});supportsBindingToComponentInputs=!0;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 X(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new X(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new X(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 X(4013,!1);this._activatedRoute=e;const o=this.location,s=e.snapshot.component,a=this.parentContexts.getOrCreateContext(this.name).children,l=new Kae(e,a,o.injector,this.routerOutletData);this.activated=o.createComponent(s,{index:o.length,injector:l,environmentInjector:i}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["router-outlet"]],inputs:{name:"name",routerOutletData:[1,"routerOutletData"]},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],features:[yi]})}return t})();class Kae{route;childContexts;parent;outletData;constructor(n,e,i,o){this.route=n,this.childContexts=e,this.parent=i,this.outletData=o}get(n,e){return n===Ei?this.route:n===hf?this.childContexts:n===qae?this.outletData:this.parent.get(n,e)}}const W_=new Z("");let c3=(()=>{class t{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=yx([i.queryParams,i.params,i.data]).pipe(Zn(([r,s,a],l)=>(a={...r,...s,...a},0===l?ae(a):Promise.resolve(a)))).subscribe(r=>{if(!e.isActivated||!e.activatedComponentRef||e.activatedRoute!==i||null===i.component)return void this.unsubscribeFromRouteData(e);const s=function hte(t){const n=wt(t);if(!n)return null;const e=new bh(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(s)for(const{templateName:a}of s.inputs)e.activatedComponentRef.setInput(a,r[a]);else this.unsubscribeFromRouteData(e)});this.outletDataSubscriptions.set(e,o)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})(),d3=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["ng-component"]],exportAs:["emptyRouterOutlet"],decls:1,vars:0,template:function(i,o){1&i&&B(0,"router-outlet")},dependencies:[$_],encapsulation:2})}return t})();function Vx(t){const n=t.children&&t.children.map(Vx),e=n?{...t,children:n}:{...t};return!e.component&&!e.loadComponent&&(n||e.loadChildren)&&e.outlet&&e.outlet!==Ge&&(e.component=d3),e}function ff(t,n,e){if(e&&t.shouldReuseRoute(n.value,e.value.snapshot)){const i=e.value;i._futureSnapshot=n.value;const o=function Xae(t,n,e){return n.children.map(i=>{for(const o of e.children)if(t.shouldReuseRoute(i.value,o.value.snapshot))return ff(t,i,o);return ff(t,i)})}(t,n,e);return new ur(i,o)}{if(t.shouldAttach(n.value)){const r=t.retrieve(n.value);if(null!==r){const s=r.route;return s.value._futureSnapshot=n.value,s.children=n.children.map(a=>ff(t,a)),s}}const i=function Zae(t){return new Ei(new _i(t.url),new _i(t.params),new _i(t.queryParams),new _i(t.fragment),new _i(t.data),t.outlet,t.component,t)}(n.value),o=n.children.map(r=>ff(t,r));return new ur(i,o)}}class Hx{redirectTo;navigationBehaviorOptions;constructor(n,e){this.redirectTo=n,this.navigationBehaviorOptions=e}}const u3="ngNavigationCancelingError";function G_(t,n){const{redirectTo:e,navigationBehaviorOptions:i}=jl(n)?{redirectTo:n,navigationBehaviorOptions:void 0}:n,o=h3(!1,_o.Redirect);return o.url=e,o.navigationBehaviorOptions=i,o}function h3(t,n){const e=new Error(`NavigationCancelingError: ${t||""}`);return e[u3]=!0,e.cancellationCode=n,e}function f3(t){return!!t&&t[u3]}class Jae{routeReuseStrategy;futureState;currState;forwardEvent;inputBindingEnabled;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),Lx(this.futureState.root),this.activateChildRoutes(e,i,n)}deactivateChildRoutes(n,e,i){const o=Ld(e);n.children.forEach(r=>{const s=r.value.outlet;this.deactivateRoutes(r,o[s],i),delete o[s]}),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 s=i.getContext(o.outlet);s&&this.deactivateChildRoutes(n,e,s.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=Ld(n);for(const s of Object.values(r))this.deactivateRouteAndItsChildren(s,o);if(i&&i.outlet){const s=i.outlet.detach(),a=i.children.onOutletDeactivated();this.routeReuseStrategy.store(n.value.snapshot,{componentRef:s,route:n,contexts:a})}}deactivateRouteAndOutlet(n,e){const i=e.getContext(n.value.outlet),o=i&&n.value.component?i.children:e,r=Ld(n);for(const s of Object.values(r))this.deactivateRouteAndItsChildren(s,o);i&&(i.outlet&&(i.outlet.deactivate(),i.children.onOutletDeactivated()),i.attachRef=null,i.route=null)}activateChildRoutes(n,e,i){const o=Ld(e);n.children.forEach(r=>{this.activateRoutes(r,o[r.value.outlet],i),this.forwardEvent(new zae(r.value.snapshot))}),n.children.length&&this.forwardEvent(new jae(n.value.snapshot))}activateRoutes(n,e,i){const o=n.value,r=e?e.value:null;if(Lx(o),o===r)if(o.component){const s=i.getOrCreateContext(o.outlet);this.activateChildRoutes(n,e,s.children)}else this.activateChildRoutes(n,e,i);else if(o.component){const s=i.getOrCreateContext(o.outlet);if(this.routeReuseStrategy.shouldAttach(o.snapshot)){const a=this.routeReuseStrategy.retrieve(o.snapshot);this.routeReuseStrategy.store(o.snapshot,null),s.children.onOutletReAttached(a.contexts),s.attachRef=a.componentRef,s.route=a.route.value,s.outlet&&s.outlet.attach(a.componentRef,a.route.value),Lx(a.route.value),this.activateChildRoutes(n,null,s.children)}else s.attachRef=null,s.route=o,s.outlet&&s.outlet.activateWith(o,s.injector),this.activateChildRoutes(n,null,s.children)}else this.activateChildRoutes(n,null,i)}}class p3{path;route;constructor(n){this.path=n,this.route=this.path[this.path.length-1]}}class q_{component;route;constructor(n,e){this.component=n,this.route=e}}function ele(t,n,e){const i=t._root;return pf(i,n?n._root:null,e,[i.value])}function Bd(t,n){const e=Symbol(),i=n.get(t,e);return i===e?"function"!=typeof t||function tU(t){return null!==Pp(t)}(t)?n.get(t):t:i}function pf(t,n,e,i,o={canDeactivateChecks:[],canActivateChecks:[]}){const r=Ld(n);return t.children.forEach(s=>{(function nle(t,n,e,i,o={canDeactivateChecks:[],canActivateChecks:[]}){const r=t.value,s=n?n.value:null,a=e?e.getContext(t.value.outlet):null;if(s&&r.routeConfig===s.routeConfig){const l=function ile(t,n,e){if("function"==typeof e)return Yi(n._environmentInjector,()=>e(t,n));switch(e){case"pathParamsChange":return!Hl(t.url,n.url);case"pathParamsOrQueryParamsChange":return!Hl(t.url,n.url)||!Ur(t.queryParams,n.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!Bx(t,n)||!Ur(t.queryParams,n.queryParams);default:return!Bx(t,n)}}(s,r,r.routeConfig.runGuardsAndResolvers);l?o.canActivateChecks.push(new p3(i)):(r.data=s.data,r._resolvedData=s._resolvedData),pf(t,n,r.component?a?a.children:null:e,i,o),l&&a&&a.outlet&&a.outlet.isActivated&&o.canDeactivateChecks.push(new q_(a.outlet.component,s))}else s&&mf(n,a,o),o.canActivateChecks.push(new p3(i)),pf(t,null,r.component?a?a.children:null:e,i,o)})(s,r[s.value.outlet],e,i.concat([s.value]),o),delete r[s.value.outlet]}),Object.entries(r).forEach(([s,a])=>mf(a,e.getContext(s),o)),o}function mf(t,n,e){const i=Ld(t),o=t.value;Object.entries(i).forEach(([r,s])=>{mf(s,o.component?n?n.children.getContext(r):null:n,e)}),e.canDeactivateChecks.push(new q_(o.component&&n&&n.outlet&&n.outlet.isActivated?n.outlet.component:null,o))}function gf(t){return"function"==typeof t}function m3(t){return t instanceof Cx||"EmptyError"===t?.name}const K_=Symbol("INITIAL_VALUE");function Vd(){return Zn(t=>yx(t.map(n=>n.pipe(un(1),to(K_)))).pipe(ye(n=>{for(const e of n)if(!0!==e){if(e===K_)return K_;if(!1===e||dle(e))return e}return!0}),vn(n=>n!==K_),un(1)))}function dle(t){return jl(t)||t instanceof Hx}function g3(t){return t.aborted?ae(void 0).pipe(un(1)):new Rt(n=>{const e=()=>{n.next(),n.complete()};return t.addEventListener("abort",e),()=>t.removeEventListener("abort",e)})}function _3(t){return on(g3(t))}function b3(t){return function jj(...t){return BD(t)}(ni(n=>{if("boolean"!=typeof n)throw G_(0,n)}),ye(n=>!0===n))}class Ds extends Error{segmentGroup;constructor(n){super(),this.segmentGroup=n||null,Object.setPrototypeOf(this,Ds.prototype)}}class _f extends Error{urlTree;constructor(n){super(),this.urlTree=n,Object.setPrototypeOf(this,_f.prototype)}}function Cle(t){throw new X(4e3,!1)}class xle{urlSerializer;urlTree;constructor(n,e){this.urlSerializer=n,this.urlTree=e}lineralizeSegments(n,e){return Nt(function*(){let i=[],o=e.root;for(;;){if(i=i.concat(o.segments),0===o.numberOfChildren)return i;if(o.numberOfChildren>1||!o.children[Ge])throw Cle();o=o.children[Ge]}})()}applyRedirectCommands(n,e,i,o,r){var s=this;return Nt(function*(){const a=yield function Sle(t,n,e){if("string"==typeof t)return Promise.resolve(t);const i=t;return A_(Vl(Yi(e,()=>i(n))))}(e,o,r);if(a instanceof dr)throw new _f(a);const l=s.applyRedirectCreateUrlTree(a,s.urlSerializer.parse(a),n,i);if("/"===a[0])throw new _f(l);return l})()}applyRedirectCreateUrlTree(n,e,i,o){const r=this.createSegmentGroup(n,e.root,i,o);return new dr(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[0]){const a=r.substring(1);i[o]=e[a]}else i[o]=r}),i}createSegmentGroup(n,e,i,o){const r=this.createSegments(n,e.segments,i,o);let s={};return Object.entries(e.children).forEach(([a,l])=>{s[a]=this.createSegmentGroup(n,l,i,o)}),new Ut(r,s)}createSegments(n,e,i,o){return e.map(r=>":"===r.path[0]?this.findPosParam(n,r,o):this.findOrReturn(r,i))}findPosParam(n,e,i){const o=i[e.path.substring(1)];if(!o)throw new X(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}}function Wr(t){return t.outlet||Ge}function Ele(t,n){const e=t.filter(i=>Wr(i)===n);return e.push(...t.filter(i=>Wr(i)!==n)),e}const jx={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function v3(t){return{routeConfig:t.routeConfig,url:t.url,params:t.params,queryParams:t.queryParams,fragment:t.fragment,data:t.data,outlet:t.outlet,title:t.title,paramMap:t.paramMap,queryParamMap:t.queryParamMap}}function Ile(t,n,e,i,o,r,s){const a=y3(t,n,e);if(!a.matched)return ae(a);const l=v3(r(a));return i=function kle(t,n){return t.providers&&!t._injector&&(t._injector=gg(t.providers,n,`Route: ${t.path}`)),t._injector??n}(n,i),function yle(t,n,e,i,o,r){const s=n.canMatch;return s&&0!==s.length?ae(s.map(l=>{const c=Bd(l,t);return Vl(function cle(t){return t&&gf(t.canMatch)}(c)?c.canMatch(n,e,o):Yi(t,()=>c(n,e,o))).pipe(_3(r))})).pipe(Vd(),b3()):ae(!0)}(i,n,e,0,l,s).pipe(ye(c=>!0===c?a:{...jx}))}function y3(t,n,e){if(""===n.path)return"full"===n.pathMatch&&(t.hasChildren()||e.length>0)?{...jx}:{matched:!0,consumedSegments:[],remainingSegments:e,parameters:{},positionalParamSegments:{}};const o=(n.matcher||oae)(e,t,n);if(!o)return{...jx};const r={};Object.entries(o.posParams??{}).forEach(([a,l])=>{r[a]=l.path});const s=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:s,positionalParamSegments:o.posParams??{}}}function C3(t,n,e,i){return e.length>0&&function Ale(t,n,e){return e.some(i=>Y_(t,n,i)&&Wr(i)!==Ge)}(t,e,i)?{segmentGroup:new Ut(n,Ole(i,new Ut(e,t.children))),slicedSegments:[]}:0===e.length&&function Rle(t,n,e){return e.some(i=>Y_(t,n,i))}(t,e,i)?{segmentGroup:new Ut(t.segments,Ple(t,e,i,t.children)),slicedSegments:e}:{segmentGroup:new Ut(t.segments,t.children),slicedSegments:e}}function Ple(t,n,e,i){const o={};for(const r of e)if(Y_(t,n,r)&&!i[Wr(r)]){const s=new Ut([],{});o[Wr(r)]=s}return{...i,...o}}function Ole(t,n){const e={};e[Ge]=n;for(const i of t)if(""===i.path&&Wr(i)!==Ge){const o=new Ut([],{});e[Wr(i)]=o}return e}function Y_(t,n,e){return(!(t.hasChildren()||n.length>0)||"full"!==e.pathMatch)&&""===e.path}class Fle{}function Ux(){return(Ux=Nt(function*(t,n,e,i,o,r,s="emptyOnly",a){return new Vle(t,n,e,i,o,s,r,a).recognize()})).apply(this,arguments)}class Vle{injector;configLoader;rootComponentType;config;urlTree;paramsInheritanceStrategy;urlSerializer;abortSignal;applyRedirects;absoluteRedirectCount=0;allowRedirects=!0;constructor(n,e,i,o,r,s,a,l){this.injector=n,this.configLoader=e,this.rootComponentType=i,this.config=o,this.urlTree=r,this.paramsInheritanceStrategy=s,this.urlSerializer=a,this.abortSignal=l,this.applyRedirects=new xle(this.urlSerializer,this.urlTree)}noMatchError(n){return new X(4002,`'${n.segmentGroup}'`)}recognize(){var n=this;return Nt(function*(){const e=C3(n.urlTree.root,[],[],n.config).segmentGroup,{children:i,rootSnapshot:o}=yield n.match(e),r=new ur(o,i),s=new s3("",r),a=function Dae(t,n,e=null,i=null,o=new af){return qL(GL(t),n,e,i,o)}(o,[],n.urlTree.queryParams,n.urlTree.fragment);return a.queryParams=n.urlTree.queryParams,s.url=n.urlSerializer.serialize(a),{state:s,tree:a}})()}match(n){var e=this;return Nt(function*(){const i=new Nx([],Object.freeze({}),Object.freeze({...e.urlTree.queryParams}),e.urlTree.fragment,Object.freeze({}),Ge,e.rootComponentType,null,{},e.injector);try{return{children:yield e.processSegmentGroup(e.injector,e.config,n,Ge,i),rootSnapshot:i}}catch(o){if(o instanceof _f)return e.urlTree=o.urlTree,e.match(o.urlTree.root);throw o instanceof Ds?e.noMatchError(o):o}})()}processSegmentGroup(n,e,i,o,r){var s=this;return Nt(function*(){if(0===i.segments.length&&i.hasChildren())return s.processChildren(n,e,i,r);const a=yield s.processSegment(n,e,i,i.segments,o,!0,r);return a instanceof ur?[a]:[]})()}processChildren(n,e,i,o){var r=this;return Nt(function*(){const s=[];for(const c of Object.keys(i.children))"primary"===c?s.unshift(c):s.push(c);let a=[];for(const c of s){const u=i.children[c],p=Ele(e,c),g=yield r.processSegmentGroup(n,p,u,c,o);a.push(...g)}const l=w3(a);return function Hle(t){t.sort((n,e)=>n.value.outlet===Ge?-1:e.value.outlet===Ge?1:n.value.outlet.localeCompare(e.value.outlet))}(l),l})()}processSegment(n,e,i,o,r,s,a){var l=this;return Nt(function*(){for(const c of e)try{return yield l.processSegmentAgainstRoute(c._injector??n,e,c,i,o,r,s,a)}catch(u){if(u instanceof Ds||m3(u))continue;throw u}if(function Nle(t,n,e){return 0===n.length&&!t.children[e]}(i,o,r))return new Fle;throw new Ds(i)})()}processSegmentAgainstRoute(n,e,i,o,r,s,a,l){var c=this;return Nt(function*(){if(Wr(i)!==s&&(s===Ge||!Y_(o,r,i)))throw new Ds(o);if(void 0===i.redirectTo)return c.matchSegmentAgainstRoute(n,o,i,r,s,l);if(c.allowRedirects&&a)return c.expandSegmentAgainstRouteUsingRedirect(n,o,e,i,r,s,l);throw new Ds(o)})()}expandSegmentAgainstRouteUsingRedirect(n,e,i,o,r,s,a){var l=this;return Nt(function*(){const{matched:c,parameters:u,consumedSegments:p,positionalParamSegments:g,remainingSegments:_}=y3(e,o,r);if(!c)throw new Ds(e);"string"==typeof o.redirectTo&&"/"===o.redirectTo[0]&&(l.absoluteRedirectCount++,l.absoluteRedirectCount>31&&(l.allowRedirects=!1));const w=l.createSnapshot(n,o,r,u,a);if(l.abortSignal.aborted)throw new Error(l.abortSignal.reason);const x=yield l.applyRedirects.applyRedirectCommands(p,o.redirectTo,g,v3(w),n),T=yield l.applyRedirects.lineralizeSegments(o,x);return l.processSegment(n,i,e,T.concat(_),s,!1,a)})()}createSnapshot(n,e,i,o,r){const s=new Nx(i,o,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,function Ule(t){return t.data||{}}(e),Wr(e),e.component??e._loadedComponent??null,e,function zle(t){return t.resolve||{}}(e),n),a=Rx(s,r,this.paramsInheritanceStrategy);return s.params=Object.freeze(a.params),s.data=Object.freeze(a.data),s}matchSegmentAgainstRoute(n,e,i,o,r,s){var a=this;return Nt(function*(){if(a.abortSignal.aborted)throw new Error(a.abortSignal.reason);const c=yield A_(Ile(e,i,o,n,0,Y=>a.createSnapshot(n,i,Y.consumedSegments,Y.parameters,s),a.abortSignal));if("**"===i.path&&(e.children={}),!c?.matched)throw new Ds(e);n=i._injector??n;const{routes:u}=yield a.getChildConfig(n,i,o),p=i._loadedInjector??n,{parameters:g,consumedSegments:_,remainingSegments:w}=c,x=a.createSnapshot(n,i,_,g,s),{segmentGroup:T,slicedSegments:E}=C3(e,_,w,u);if(0===E.length&&T.hasChildren()){const Y=yield a.processChildren(p,u,T,x);return new ur(x,Y)}if(0===u.length&&0===E.length)return new ur(x,[]);const R=Wr(i)===r,W=yield a.processSegment(p,u,T,E,R?Ge:r,!0,x);return new ur(x,W instanceof ur?[W]:[])})()}getChildConfig(n,e,i){var o=this;return Nt(function*(){if(e.children)return{routes:e.children,injector:n};if(e.loadChildren){if(void 0!==e._loadedRoutes){const s=e._loadedNgModuleFactory;return s&&!e._loadedInjector&&(e._loadedInjector=s.create(n).injector),{routes:e._loadedRoutes,injector:e._loadedInjector}}if(o.abortSignal.aborted)throw new Error(o.abortSignal.reason);if(yield A_(function vle(t,n,e,i,o){const r=n.canLoad;return void 0===r||0===r.length?ae(!0):ae(r.map(a=>{const l=Bd(a,t),u=Vl(function rle(t){return t&&gf(t.canLoad)}(l)?l.canLoad(n,e):Yi(t,()=>l(n,e)));return o?u.pipe(_3(o)):u})).pipe(Vd(),b3())}(n,e,i,0,o.abortSignal))){const s=yield o.configLoader.loadChildren(n,e);return e._loadedRoutes=s.routes,e._loadedInjector=s.injector,e._loadedNgModuleFactory=s.factory,s}throw function wle(){throw h3(!1,_o.GuardRejected)}()}return{routes:[],injector:n}})()}}function jle(t){const n=t.value.routeConfig;return n&&""===n.path}function w3(t){const n=[],e=new Set;for(const i of t){if(!jle(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=w3(i.children);n.push(new ur(i.value,o))}return n.filter(i=>!e.has(i))}function x3(t){const n=t.children.map(e=>x3(e)).flat();return[t,...n]}function S3(t){return Zn(n=>{const e=t(n);return e?Un(e).pipe(ye(()=>n)):ae(n)})}let k3=(()=>{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===Ge);return i}getResolvedTitleForRoute(e){return e.data[rf]}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:()=>D(Yle),providedIn:"root"})}return t})(),Yle=(()=>{class t extends k3{title;constructor(e){super(),this.title=e}updateTitle(e){const i=this.buildTitle(e);void 0!==i&&this.title.setTitle(i)}static \u0275fac=function(i){return new(i||t)(le(Qse))};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Hd=new Z("",{factory:()=>({})}),X_=new Z("");let zx=(()=>{class t{componentLoaders=new WeakMap;childrenLoaders=new WeakMap;onLoadStartListener;onLoadEndListener;compiler=D(aQ);loadComponent(e,i){var o=this;return Nt(function*(){if(o.componentLoaders.get(i))return o.componentLoaders.get(i);if(i._loadedComponent)return Promise.resolve(i._loadedComponent);o.onLoadStartListener&&o.onLoadStartListener(i);const r=Nt(function*(){try{const s=yield NL(Yi(e,()=>i.loadComponent())),a=yield T3(D3(s));return o.onLoadEndListener&&o.onLoadEndListener(i),i._loadedComponent=a,a}finally{o.componentLoaders.delete(i)}})();return o.componentLoaders.set(i,r),r})()}loadChildren(e,i){var o=this;if(this.childrenLoaders.get(i))return this.childrenLoaders.get(i);if(i._loadedRoutes)return Promise.resolve({routes:i._loadedRoutes,injector:i._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(i);const r=Nt(function*(){try{const s=yield function Xle(t,n,e,i){return $x.apply(this,arguments)}(i,o.compiler,e,o.onLoadEndListener);return i._loadedRoutes=s.routes,i._loadedInjector=s.injector,i._loadedNgModuleFactory=s.factory,s}finally{o.childrenLoaders.delete(i)}})();return this.childrenLoaders.set(i,r),r}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function $x(){return($x=Nt(function*(t,n,e,i){const o=yield NL(Yi(e,()=>t.loadChildren())),r=yield T3(D3(o));let s;s=r instanceof dP||Array.isArray(r)?r:yield n.compileModuleAsync(r),i&&i(t);let a,l,u;return Array.isArray(s)?l=s:(a=s.create(e).injector,u=s,l=a.get(X_,[],{optional:!0,self:!0}).flat()),{routes:l.map(Vx),injector:a,factory:u}})).apply(this,arguments)}function D3(t){return function Zle(t){return t&&"object"==typeof t&&"default"in t}(t)?t.default:t}function T3(t){return Wx.apply(this,arguments)}function Wx(){return(Wx=Nt(function*(t){return t})).apply(this,arguments)}let Gx=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:()=>D(Qle),providedIn:"root"})}return t})(),Qle=(()=>{class t{shouldProcessUrl(e){return!0}extract(e){return e}merge(e,i){return e}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const M3=new Z(""),E3=new Z("");function Jle(t,n,e){const i=t.get(E3),o=t.get(Qe);if(!o.startViewTransition||i.skipNextTransition)return i.skipNextTransition=!1,new Promise(c=>setTimeout(c));let r;const s=new Promise(c=>{r=c}),a=o.startViewTransition(()=>(r(),function ece(t){return new Promise(n=>{Fi({read:()=>setTimeout(n)},{injector:t})})}(t)));a.updateCallbackDone.catch(c=>{}),a.ready.catch(c=>{}),a.finished.catch(c=>{});const{onViewTransitionCreated:l}=i;return l&&Yi(t,()=>l({transition:a,from:n,to:e})),s}const tce=()=>{},I3=new Z("");let qx=(()=>{class t{currentNavigation=yt(null,{equal:()=>!1});currentTransition=null;lastSuccessfulNavigation=yt(null);events=new pe;transitionAbortWithErrorSubject=new pe;configLoader=D(zx);environmentInjector=D(Nn);destroyRef=D(tr);urlSerializer=D(Nd);rootContexts=D(hf);location=D(Ed);inputBindingEnabled=null!==D(W_,{optional:!0});titleStrategy=D(k3);options=D(Hd,{optional:!0})||{};paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly";urlHandlingStrategy=D(Gx);createViewTransition=D(M3,{optional:!0});navigationErrorHandler=D(I3,{optional:!0});navigationId=0;get hasRequestedNavigation(){return 0!==this.navigationId}transitions;afterPreactivation=()=>ae(void 0);rootComponentType=null;destroyed=!1;constructor(){this.configLoader.onLoadEndListener=o=>this.events.next(new Vae(o)),this.configLoader.onLoadStartListener=o=>this.events.next(new Bae(o)),this.destroyRef.onDestroy(()=>{this.destroyed=!0})}complete(){this.transitions?.complete()}handleNavigationRequest(e){const i=++this.navigationId;nt(()=>{this.transitions?.next({...e,extractedUrl:this.urlHandlingStrategy.extract(e.rawUrl),targetSnapshot:null,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null,id:i,routesRecognizeHandler:{},beforeActivateHandler:{}})})}setupNavigations(e){return this.transitions=new _i(null),this.transitions.pipe(vn(i=>null!==i),Zn(i=>{let o=!1;const r=new AbortController,s=()=>!o&&this.currentTransition?.id===i.id;return ae(i).pipe(Zn(a=>{if(this.navigationId>i.id)return this.cancelNavigationTransition(i,"",_o.SupersededByNewNavigation),Mi;this.currentTransition=i;const l=this.lastSuccessfulNavigation();this.currentNavigation.set({id:a.id,initialUrl:a.rawUrl,extractedUrl:a.extractedUrl,targetBrowserUrl:"string"==typeof a.extras.browserUrl?this.urlSerializer.parse(a.extras.browserUrl):a.extras.browserUrl,trigger:a.source,extras:a.extras,previousNavigation:l?{...l,previousNavigation:null}:null,abort:()=>r.abort(),routesRecognizeHandler:a.routesRecognizeHandler,beforeActivateHandler:a.beforeActivateHandler});const c=!e.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl();if(!c&&"reload"!==(a.extras.onSameUrlNavigation??e.onSameUrlNavigation))return this.events.next(new Fd(a.id,this.urlSerializer.serialize(a.rawUrl),"",U_.IgnoredSameUrlNavigation)),a.resolve(!1),Mi;if(this.urlHandlingStrategy.shouldProcessUrl(a.rawUrl))return ae(a).pipe(Zn(p=>(this.events.next(new j_(p.id,this.urlSerializer.serialize(p.extractedUrl),p.source,p.restoredState)),p.id!==this.navigationId?Mi:Promise.resolve(p))),function $le(t,n,e,i,o,r,s){return Et(function(){var a=Nt(function*(l){const{state:c,tree:u}=yield function Lle(t,n,e,i,o,r){return Ux.apply(this,arguments)}(t,n,e,i,l.extractedUrl,o,r,s);return{...l,targetSnapshot:c,urlAfterRedirects:u}});return function(l){return a.apply(this,arguments)}}())}(this.environmentInjector,this.configLoader,this.rootComponentType,e.config,this.urlSerializer,this.paramsInheritanceStrategy,r.signal),ni(p=>{i.targetSnapshot=p.targetSnapshot,i.urlAfterRedirects=p.urlAfterRedirects,this.currentNavigation.update(g=>(g.finalUrl=p.urlAfterRedirects,g)),this.events.next(new n3)}),Zn(p=>Un(i.routesRecognizeHandler.deferredHandle??ae(void 0)).pipe(ye(()=>p))),ni(()=>{const p=new e3(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects),a.targetSnapshot);this.events.next(p)}));if(c&&this.urlHandlingStrategy.shouldProcessUrl(a.currentRawUrl)){const{id:p,extractedUrl:g,source:_,restoredState:w,extras:x}=a,T=new j_(p,this.urlSerializer.serialize(g),_,w);this.events.next(T);const E=r3(this.rootComponentType,this.environmentInjector).snapshot;return this.currentTransition=i={...a,targetSnapshot:E,urlAfterRedirects:g,extras:{...x,skipLocationChange:!1,replaceUrl:!1}},this.currentNavigation.update(R=>(R.finalUrl=g,R)),ae(i)}return this.events.next(new Fd(a.id,this.urlSerializer.serialize(a.extractedUrl),"",U_.IgnoredByUrlHandlingStrategy)),a.resolve(!1),Mi}),ye(a=>{const l=new Rae(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects),a.targetSnapshot);return this.events.next(l),this.currentTransition=i={...a,guards:ele(a.targetSnapshot,a.currentSnapshot,this.rootContexts)},i}),function ule(t){return Et(n=>{const{targetSnapshot:e,currentSnapshot:i,guards:{canActivateChecks:o,canDeactivateChecks:r}}=n;return 0===r.length&&0===o.length?ae({...n,guardsResult:!0}):function hle(t,n,e){return Un(t).pipe(Et(i=>function ble(t,n,e,i){const o=n&&n.routeConfig?n.routeConfig.canDeactivate:null;return o&&0!==o.length?ae(o.map(s=>{const a=n._environmentInjector,l=Bd(s,a);return Vl(function lle(t){return t&&gf(t.canDeactivate)}(l)?l.canDeactivate(t,n,e,i):Yi(a,()=>l(t,n,e,i))).pipe(jr())})).pipe(Vd()):ae(!0)}(i.component,i.route,e,n)),jr(i=>!0!==i,!0))}(r,e,i).pipe(Et(s=>s&&function ole(t){return"boolean"==typeof t}(s)?function fle(t,n,e){return Un(n).pipe(Zh(i=>ks(function mle(t,n){return null!==t&&n&&n(new Hae(t)),ae(!0)}(i.route.parent,e),function ple(t,n){return null!==t&&n&&n(new Uae(t)),ae(!0)}(i.route,e),function _le(t,n){const e=n[n.length-1],o=n.slice(0,n.length-1).reverse().map(r=>function tle(t){const n=t.routeConfig?t.routeConfig.canActivateChild:null;return n&&0!==n.length?{node:t,guards:n}:null}(r)).filter(r=>null!==r).map(r=>ba(()=>ae(r.guards.map(a=>{const l=r.node._environmentInjector,c=Bd(a,l);return Vl(function ale(t){return t&&gf(t.canActivateChild)}(c)?c.canActivateChild(e,t):Yi(l,()=>c(e,t))).pipe(jr())})).pipe(Vd())));return ae(o).pipe(Vd())}(t,i.path),function gle(t,n){const e=n.routeConfig?n.routeConfig.canActivate:null;if(!e||0===e.length)return ae(!0);const i=e.map(o=>ba(()=>{const r=n._environmentInjector,s=Bd(o,r);return Vl(function sle(t){return t&&gf(t.canActivate)}(s)?s.canActivate(n,t):Yi(r,()=>s(n,t))).pipe(jr())}));return ae(i).pipe(Vd())}(t,i.route))),jr(i=>!0!==i,!0))}(e,o,t):ae(s)),ye(s=>({...n,guardsResult:s})))})}(a=>this.events.next(a)),Zn(a=>{if(i.guardsResult=a.guardsResult,a.guardsResult&&"boolean"!=typeof a.guardsResult)throw G_(0,a.guardsResult);const l=new Nae(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects),a.targetSnapshot,!!a.guardsResult);if(this.events.next(l),!s())return Mi;if(!a.guardsResult)return this.cancelNavigationTransition(a,"",_o.GuardRejected),Mi;if(0===a.guards.canActivateChecks.length)return ae(a);const c=new Fae(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects),a.targetSnapshot);if(this.events.next(c),!s())return Mi;let u=!1;return ae(a).pipe(function Wle(t){return Et(n=>{const{targetSnapshot:e,guards:{canActivateChecks:i}}=n;if(!i.length)return ae(n);const o=new Set(i.map(a=>a.route)),r=new Set;for(const a of o)if(!r.has(a))for(const l of x3(a))r.add(l);let s=0;return Un(r).pipe(Zh(a=>o.has(a)?function Gle(t,n,e){const i=t.routeConfig,o=t._resolve;return void 0!==i?.title&&!l3(i)&&(o[rf]=i.title),ba(()=>(t.data=Rx(t,t.parent,e).resolve,function qle(t,n,e){const i=Sx(t);if(0===i.length)return ae({});const o={};return Un(i).pipe(Et(r=>function Kle(t,n,e){const i=n._environmentInjector,o=Bd(t,i);return Vl(o.resolve?o.resolve(n,e):Yi(i,()=>o(n,e)))}(t[r],n,e).pipe(jr(),ni(s=>{if(s instanceof Hx)throw G_(new af,s);o[r]=s}))),ML(1),ye(()=>o),go(r=>m3(r)?Mi:cr(r)))}(o,t,n).pipe(ye(r=>(t._resolvedData=r,t.data={...t.data,...r},null)))))}(a,e,t):(a.data=Rx(a,a.parent,t).resolve,ae(void 0))),ni(()=>s++),ML(1),Et(a=>s===r.size?ae(n):Mi))})}(this.paramsInheritanceStrategy),ni({next:()=>{u=!0;const p=new Lae(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects),a.targetSnapshot);this.events.next(p)},complete:()=>{u||this.cancelNavigationTransition(a,"",_o.NoDataFromResolver)}}))}),S3(a=>{const l=u=>{const p=[];u.routeConfig?._loadedComponent?u.component=u.routeConfig?._loadedComponent:u.routeConfig?.loadComponent&&p.push(this.configLoader.loadComponent(u._environmentInjector,u.routeConfig).then(_=>{u.component=_}));for(const g of u.children)p.push(...l(g));return p},c=l(a.targetSnapshot.root);return 0===c.length?ae(a):Un(Promise.all(c).then(()=>a))}),S3(()=>this.afterPreactivation()),Zn(()=>{const{currentSnapshot:a,targetSnapshot:l}=i,c=this.createViewTransition?.(this.environmentInjector,a.root,l.root);return c?Un(c).pipe(ye(()=>i)):ae(i)}),un(1),Zn(a=>{const l=function Yae(t,n,e){const i=ff(t,n._root,e?e._root:void 0);return new o3(i,n)}(e.routeReuseStrategy,a.targetSnapshot,a.currentRouterState);this.currentTransition=i=a={...a,targetRouterState:l},this.currentNavigation.update(u=>(u.targetRouterState=l,u)),this.events.next(new Px);const c=i.beforeActivateHandler.deferredHandle;return c?Un(c.then(()=>a)):ae(a)}),ni(a=>{new Jae(e.routeReuseStrategy,i.targetRouterState,i.currentRouterState,l=>this.events.next(l),this.inputBindingEnabled).activate(this.rootContexts),s()&&(o=!0,this.currentNavigation.update(l=>(l.abort=tce,l)),this.lastSuccessfulNavigation.set(nt(this.currentNavigation)),this.events.next(new $r(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects))),this.titleStrategy?.updateTitle(a.targetRouterState.snapshot),a.resolve(!0))}),on(g3(r.signal).pipe(vn(()=>!o&&!i.targetRouterState),ni(()=>{this.cancelNavigationTransition(i,r.signal.reason+"",_o.Aborted)}))),ni({complete:()=>{o=!0}}),on(this.transitionAbortWithErrorSubject.pipe(ni(a=>{throw a}))),M_(()=>{r.abort(),o||this.cancelNavigationTransition(i,"",_o.SupersededByNewNavigation),this.currentTransition?.id===i.id&&(this.currentNavigation.set(null),this.currentTransition=null)}),go(a=>{if(o=!0,this.destroyed)return i.resolve(!1),Mi;if(f3(a))this.events.next(new ya(i.id,this.urlSerializer.serialize(i.extractedUrl),a.message,a.cancellationCode)),function Qae(t){return f3(t)&&jl(t.url)}(a)?this.events.next(new z_(a.url,a.navigationBehaviorOptions)):i.resolve(!1);else{const l=new Ix(i.id,this.urlSerializer.serialize(i.extractedUrl),a,i.targetSnapshot??void 0);try{const c=Yi(this.environmentInjector,()=>this.navigationErrorHandler?.(l));if(!(c instanceof Hx))throw this.events.next(l),a;{const{message:u,cancellationCode:p}=G_(0,c);this.events.next(new ya(i.id,this.urlSerializer.serialize(i.extractedUrl),u,p)),this.events.next(new z_(c.redirectTo,c.navigationBehaviorOptions))}}catch(c){this.options.resolveNavigationPromiseOnError?i.resolve(!1):i.reject(c)}}return Mi}))}))}cancelNavigationTransition(e,i,o){const r=new ya(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(){const e=this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))),i=nt(this.currentNavigation),o=i?.targetBrowserUrl??i?.extractedUrl;return e.toString()!==o?.toString()&&!i?.extras.skipLocationChange}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function nce(t){return t!==uf}const ice=new Z("");let O3=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:()=>D(rce),providedIn:"root"})}return t})();class oce{shouldDetach(n){return!1}store(n,e){}shouldAttach(n){return!1}retrieve(n){return null}shouldReuseRoute(n,e){return n.routeConfig===e.routeConfig}shouldDestroyInjector(n){return!0}}let rce=(()=>{class t extends oce{static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Yx=(()=>{class t{urlSerializer=D(Nd);options=D(Hd,{optional:!0})||{};canceledNavigationResolution=this.options.canceledNavigationResolution||"replace";location=D(Ed);urlHandlingStrategy=D(Gx);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";currentUrlTree=new dr;getCurrentUrlTree(){return this.currentUrlTree}rawUrlTree=this.currentUrlTree;getRawUrlTree(){return this.rawUrlTree}createBrowserPath({finalUrl:e,initialUrl:i,targetBrowserUrl:o}){const r=void 0!==e?this.urlHandlingStrategy.merge(e,i):i,s=o??r;return s instanceof dr?this.urlSerializer.serialize(s):s}commitTransition({targetRouterState:e,finalUrl:i,initialUrl:o}){i&&e?(this.currentUrlTree=i,this.rawUrlTree=this.urlHandlingStrategy.merge(i,o),this.routerState=e):this.rawUrlTree=o}routerState=r3(null,D(Nn));getRouterState(){return this.routerState}_stateMemento=this.createStateMemento();get stateMemento(){return this._stateMemento}updateStateMemento(){this._stateMemento=this.createStateMemento()}createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}restoredState(){return this.location.getState()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:()=>D(sce),providedIn:"root"})}return t})(),sce=(()=>{class t extends Yx{currentPageId=0;lastSuccessfulId=-1;get browserPageId(){return"computed"!==this.canceledNavigationResolution?this.currentPageId:this.restoredState()?.\u0275routerPageId??this.currentPageId}registerNonRouterCurrentEntryChangeListener(e){return this.location.subscribe(i=>{"popstate"===i.type&&setTimeout(()=>{e(i.url,i.state,"popstate",{replaceUrl:!0})})})}handleRouterEvent(e,i){e instanceof j_?this.updateStateMemento():e instanceof Fd?this.commitTransition(i):e instanceof e3?"eager"===this.urlUpdateStrategy&&(i.extras.skipLocationChange||this.setBrowserUrl(this.createBrowserPath(i),i)):e instanceof Px?(this.commitTransition(i),"deferred"===this.urlUpdateStrategy&&!i.extras.skipLocationChange&&this.setBrowserUrl(this.createBrowserPath(i),i)):e instanceof ya&&!function Aae(t){return t instanceof ya&&(t.code===_o.Redirect||t.code===_o.SupersededByNewNavigation)}(e)?this.restoreHistory(i):e instanceof Ix?this.restoreHistory(i,!0):e instanceof $r&&(this.lastSuccessfulId=e.id,this.currentPageId=this.browserPageId)}setBrowserUrl(e,{extras:i,id:o}){const{replaceUrl:r,state:s}=i;if(this.location.isCurrentPathEqualTo(e)||r){const a=this.browserPageId,l={...s,...this.generateNgRouterState(o,a)};this.location.replaceState(e,"",l)}else{const a={...s,...this.generateNgRouterState(o,this.browserPageId+1)};this.location.go(e,"",a)}}restoreHistory(e,i=!1){if("computed"===this.canceledNavigationResolution){const r=this.currentPageId-this.browserPageId;0!==r?this.location.historyGo(r):this.getCurrentUrlTree()===e.finalUrl&&0===r&&(this.resetInternalState(e),this.resetUrlToCurrentUrlTree())}else"replace"===this.canceledNavigationResolution&&(i&&this.resetInternalState(e),this.resetUrlToCurrentUrlTree())}resetInternalState({finalUrl:e}){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,e??this.rawUrlTree)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.getRawUrlTree()),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(e,i){return"computed"===this.canceledNavigationResolution?{navigationId:e,\u0275routerPageId:i}:{navigationId:e}}static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function A3(t,n){t.events.pipe(vn(e=>e instanceof $r||e instanceof ya||e instanceof Ix||e instanceof Fd),ye(e=>e instanceof $r||e instanceof Fd?0:e instanceof ya&&(e.code===_o.Redirect||e.code===_o.SupersededByNewNavigation)?2:1),vn(e=>2!==e),un(1)).subscribe(()=>{n()})}let vt=(()=>{class t{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}disposed=!1;nonRouterCurrentEntryChangeSubscription;console=D(NP);stateManager=D(Yx);options=D(Hd,{optional:!0})||{};pendingTasks=D(Ks);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";navigationTransitions=D(qx);urlSerializer=D(Nd);location=D(Ed);urlHandlingStrategy=D(Gx);injector=D(Nn);_events=new pe;get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}navigated=!1;routeReuseStrategy=D(O3);injectorCleanup=D(ice,{optional:!0});onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore";config=D(X_,{optional:!0})?.flat()??[];componentInputBindingEnabled=!!D(W_,{optional:!0});currentNavigation=this.navigationTransitions.currentNavigation.asReadonly();constructor(){this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this).subscribe({error:e=>{}}),this.subscribeToNavigationEvents()}eventsSubscription=new mt;subscribeToNavigationEvents(){const e=this.navigationTransitions.events.subscribe(i=>{try{const o=this.navigationTransitions.currentTransition,r=nt(this.navigationTransitions.currentNavigation);if(null!==o&&null!==r)if(this.stateManager.handleRouterEvent(i,r),i instanceof ya&&i.code!==_o.Redirect&&i.code!==_o.SupersededByNewNavigation)this.navigated=!0;else if(i instanceof $r)this.navigated=!0,this.injectorCleanup?.(this.routeReuseStrategy,this.routerState,this.config);else if(i instanceof z_){const s=i.navigationBehaviorOptions,a=this.urlHandlingStrategy.merge(i.url,o.currentRawUrl),l={scroll:o.extras.scroll,browserUrl:o.extras.browserUrl,info:o.extras.info,skipLocationChange:o.extras.skipLocationChange,replaceUrl:o.extras.replaceUrl||"eager"===this.urlUpdateStrategy||nce(o.source),...s};this.scheduleNavigation(a,uf,null,l,{resolve:o.resolve,reject:o.reject,promise:o.promise})}(function $ae(t){return!(t instanceof Px||t instanceof z_||t instanceof n3)})(i)&&this._events.next(i)}catch(o){this.navigationTransitions.transitionAbortWithErrorSubject.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),uf,this.stateManager.restoredState(),{replaceUrl:!0})}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((e,i,o,r)=>{this.navigateToSyncWithBrowser(e,o,i,r)})}navigateToSyncWithBrowser(e,i,o,r){const s=o?.navigationId?o:null;if(o){const l={...o};delete l.navigationId,delete l.\u0275routerPageId,0!==Object.keys(l).length&&(r.state=l)}const a=this.parseUrl(e);this.scheduleNavigation(a,i,s,r).catch(l=>{this.disposed||this.injector.get(Pr)(l)})}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return nt(this.navigationTransitions.currentNavigation)}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(e){this.config=e.map(Vx),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this._events.unsubscribe(),this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription?.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0,this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(e,i={}){const{relativeTo:o,queryParams:r,fragment:s,queryParamsHandling:a,preserveFragment:l}=i,c=l?this.currentUrlTree.fragment:s;let p,u=null;switch(a??this.options.defaultQueryParamsHandling){case"merge":u={...this.currentUrlTree.queryParams,...r};break;case"preserve":u=this.currentUrlTree.queryParams;break;default:u=r||null}null!==u&&(u=this.removeEmptyProps(u));try{p=GL(o?o.snapshot:this.routerState.snapshot.root)}catch{("string"!=typeof e[0]||"/"!==e[0][0])&&(e=[]),p=this.currentUrlTree.root}return qL(p,e,u,c??null,this.urlSerializer)}navigateByUrl(e,i={skipLocationChange:!1}){const o=jl(e)?e:this.parseUrl(e),r=this.urlHandlingStrategy.merge(o,this.rawUrlTree);return this.scheduleNavigation(r,uf,null,i)}navigate(e,i={skipLocationChange:!1}){return function ace(t){for(let n=0;n(null!=r&&(i[o]=r),i),{})}scheduleNavigation(e,i,o,r,s){if(this.disposed)return Promise.resolve(!1);let a,l,c;s?(a=s.resolve,l=s.reject,c=s.promise):c=new Promise((p,g)=>{a=p,l=g});const u=this.pendingTasks.add();return A3(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(u))}),this.navigationTransitions.handleNavigationRequest({source:i,restoredState:o,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:e,extras:r,resolve:a,reject:l,promise:c,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),c.catch(Promise.reject.bind(Promise))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();class lce extends mt{constructor(n,e){super()}schedule(n,e=0){return this}}const Z_={setInterval(t,n,...e){const{delegate:i}=Z_;return i?.setInterval?i.setInterval(t,n,...e):setInterval(t,n,...e)},clearInterval(t){const{delegate:n}=Z_;return(n?.clearInterval||clearInterval)(t)},delegate:void 0};class Xx extends lce{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 Z_.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&&Z_.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,xp(i,this),null!=n&&(this.id=this.recycleAsyncId(e,n,null)),this.delay=null,super.unsubscribe()}}}const Zx={now:()=>(Zx.delegate||Date).now(),delegate:void 0};class bf{constructor(n,e=bf.now){this.schedulerActionCtor=n,this.now=e}schedule(n,e=0,i){return new this.schedulerActionCtor(this,n).schedule(i,e)}}bf.now=Zx.now;class Qx extends bf{constructor(n,e=bf.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 vf=new Qx(Xx),cce=vf;function R3(t,n){return n?e=>ks(n.pipe(un(1),function dce(){return bn((t,n)=>{t.subscribe(en(n,kp))})}()),e.pipe(R3(t))):Et((e,i)=>Vi(t(e,i)).pipe(un(1),function uce(t){return ye(()=>t)}(e)))}function Ul(t=0,n,e=cce){let i=-1;return null!=n&&(oL(n)?e=n:i=n),new Rt(o=>{let r=function hce(t){return t instanceof Date&&!isNaN(t)}(t)?+t-e.now():t;r<0&&(r=0);let s=0;return e.schedule(function(){o.closed||(o.next(s++),0<=i?this.schedule(void 0,i):o.complete())},r)})}function ii(t,n=vf){const e=Ul(t,n);return R3(()=>e)}var Q_=function(t){return t.NoConnection="NoConnection",t.Unknown="Unknown",t}(Q_||{});class fce{}const N3="common.operation-error";function Je(t){if(t&&t.type&&!t.srcElement)return t;const n=new fce;if(n.originalError=t,!t||"string"==typeof t)return n.originalServerErrorMsg=t||"",n.translatableErrorMsg=t||N3,n.type=Q_.Unknown,n;n.originalServerErrorMsg=function mce(t){if(t){if("string"==typeof t._body)return t._body;if(t.originalServerErrorMsg&&"string"==typeof t.originalServerErrorMsg)return t.originalServerErrorMsg;if(t.error&&"string"==typeof t.error)return t.error;if(t.error&&t.error.error&&t.error.error.message)return t.error.error.message;if(t.error&&t.error.error&&"string"==typeof t.error.error)return t.error.error;if(t.message)return t.message;if(t._body&&t._body.error)return t._body.error;try{return JSON.parse(t._body).error}catch{}}return null}(t);return null!=t.status&&(0===t.status||504===t.status)&&(n.type=Q_.NoConnection,n.translatableErrorMsg="common.no-connection-error"),n.type||(n.type=Q_.Unknown,n.translatableErrorMsg=n.originalServerErrorMsg?function pce(t){if(!t||0===t.length)return t;if(-1!==t.indexOf('"error":'))try{t=JSON.parse(t).error}catch{}if(t.startsWith("400")||t.startsWith("403")){const e=t.split(" - ",2);t=2===e.length?e[1]:t}const n=(t=t.trim()).substr(0,1);return n.toUpperCase()!==n&&(t=n.toUpperCase()+t.substr(1,t.length-1)),!t.endsWith(".")&&!t.endsWith(",")&&!t.endsWith(":")&&!t.endsWith(";")&&!t.endsWith("?")&&!t.endsWith("!")&&(t+="."),t}(n.originalServerErrorMsg):N3),n}class no extends pe{constructor(n=1/0,e=1/0,i=Zx){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:s}=this;e||(i.push(n),!o&&i.push(r.now()+s)),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 s=0;s{class t{constructor(){this.currentRefreshTimeSubject=new no(1),this.savedLocalNodes=new Map,this.savedLabels=new Map,this.savedVisibleLocalNodes=new Set}initialize(e){this.storage=localStorage,this.hypervisorPk=e,this.migrateDataToHvStorage(),this.currentRefreshTime=parseInt(this.getDataForHv(J_),10)||10,this.currentRefreshTimeSubject.next(this.currentRefreshTime),this.getSavedLocalNodes().forEach(r=>{this.savedLocalNodes.set(r.publicKey,r),r.hidden||this.savedVisibleLocalNodes.add(r.publicKey)}),this.getSavedLabels().forEach(r=>this.savedLabels.set(r.id,r)),this.loadLegacyNodeData();const i=[];this.savedLocalNodes.forEach(r=>i.push(r));const o=[];this.savedLabels.forEach(r=>o.push(r)),this.saveLocalNodes(i),this.saveLabels(o)}getDataForHv(e){return this.storage.getItem(this.hypervisorPk+e)}setDataForHv(e,i){return this.storage.setItem(this.hypervisorPk+e,i)}migrateDataToHvStorage(){const e=this.storage.getItem(J_);if(e){const r=parseInt(e,10)||10;this.setRefreshTime(r),this.storage.removeItem(J_)}const i=this.storage.getItem(tb);if(i){const r=JSON.parse(i)||[];this.saveLocalNodes(r),this.storage.removeItem(tb)}const o=this.storage.getItem(eb);if(o){const r=JSON.parse(o)||[];this.saveLabels(r),this.storage.removeItem(eb)}}loadLegacyNodeData(){const e=JSON.parse(this.storage.getItem(F3))||[];if(e.length>0){const i=this.getSavedLocalNodes(),o=this.getSavedLabels();e.forEach(r=>{i.push({publicKey:r.publicKey,hidden:r.deleted,ip:null}),this.savedLocalNodes.set(r.publicKey,i[i.length-1]),r.deleted||this.savedVisibleLocalNodes.add(r.publicKey),o.push({id:r.publicKey,identifiedElementType:io.Node,label:r.label}),this.savedLabels.set(r.publicKey,o[o.length-1])}),this.saveLocalNodes(i),this.saveLabels(o),this.storage.removeItem(F3)}}setRefreshTime(e){this.setDataForHv(J_,e.toString()),this.currentRefreshTime=e,this.currentRefreshTimeSubject.next(this.currentRefreshTime)}getRefreshTimeObservable(){return this.currentRefreshTimeSubject.asObservable()}getRefreshTime(){return this.currentRefreshTime}includeVisibleLocalNodes(e,i){this.changeLocalNodesHiddenProperty(e,i,!1)}setLocalNodesAsHidden(e,i){this.changeLocalNodesHiddenProperty(e,i,!0)}changeLocalNodesHiddenProperty(e,i,o){if(e.length!==i.length)throw new Error("Invalid params");const r=new Map,s=new Map;e.forEach((c,u)=>{r.set(c,i[u]),s.set(c,i[u])});let a=!1;const l=this.getSavedLocalNodes();l.forEach(c=>{r.has(c.publicKey)&&(s.has(c.publicKey)&&s.delete(c.publicKey),c.ip!==r.get(c.publicKey)&&(c.ip=r.get(c.publicKey),a=!0,this.savedLocalNodes.set(c.publicKey,c)),c.hidden!==o&&(c.hidden=o,a=!0,this.savedLocalNodes.set(c.publicKey,c),o?this.savedVisibleLocalNodes.delete(c.publicKey):this.savedVisibleLocalNodes.add(c.publicKey)))}),s.forEach((c,u)=>{a=!0;const p={publicKey:u,hidden:o,ip:c};l.push(p),this.savedLocalNodes.set(u,p),o?this.savedVisibleLocalNodes.delete(u):this.savedVisibleLocalNodes.add(u)}),a&&this.saveLocalNodes(l)}getSavedLocalNodes(){return JSON.parse(this.getDataForHv(tb))||[]}getSavedVisibleLocalNodes(){return this.savedVisibleLocalNodes}saveLocalNodes(e){this.setDataForHv(tb,JSON.stringify(e))}getSavedLabels(){return JSON.parse(this.getDataForHv(eb))||[]}saveLabels(e){this.setDataForHv(eb,JSON.stringify(e))}saveLabel(e,i,o){if(i){let r=!1;const s=this.getSavedLabels().map(a=>(a.id===e&&a.identifiedElementType===o&&(r=!0,a.label=i,this.savedLabels.set(a.id,{label:a.label,id:a.id,identifiedElementType:a.identifiedElementType})),a));if(r)this.saveLabels(s);else{const a={label:i,id:e,identifiedElementType:o};s.push(a),this.savedLabels.set(e,a),this.saveLabels(s)}}else{this.savedLabels.has(e)&&this.savedLabels.delete(e);let r=!1;const s=this.getSavedLabels().filter(a=>a.id!==e||(r=!0,!1));r&&this.saveLabels(s)}}getDefaultLabel(e){return e?e.ip?e.ip:e.localPk.substr(0,8):""}getLabelInfo(e){return this.savedLabels.has(e)?this.savedLabels.get(e):null}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const Jx={};class oi{_appId=D(Qs);static _infix=`a${Math.floor(1e5*Math.random()).toString()}`;getId(n,e=!1){return"ng"!==this._appId&&(n+=this._appId),Jx.hasOwnProperty(n)||(Jx[n]=0),`${n}${e?oi._infix+"-":""}${Jx[n]++}`}static \u0275fac=function(e){return new(e||oi)};static \u0275prov=te({token:oi,factory:oi.\u0275fac,providedIn:"root"})}const yf={schedule(t){let n=requestAnimationFrame,e=cancelAnimationFrame;const{delegate:i}=yf;i&&(n=i.requestAnimationFrame,e=i.cancelAnimationFrame);const o=n(r=>{e=void 0,t(r)});return new mt(()=>e?.(o))},requestAnimationFrame(...t){const{delegate:n}=yf;return(n?.requestAnimationFrame||requestAnimationFrame)(...t)},cancelAnimationFrame(...t){const{delegate:n}=yf;return(n?.cancelAnimationFrame||cancelAnimationFrame)(...t)},delegate:void 0};new class _ce extends Qx{flush(n){let e;this._active=!0,n?e=n.id:(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 gce extends Xx{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=yf.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&&e===n._scheduled&&(null===(o=r[r.length-1])||void 0===o?void 0:o.id)!==e&&(yf.cancelAnimationFrame(e),n._scheduled=void 0)}});let eS,vce=1;const nb={};function L3(t){return t in nb&&(delete nb[t],!0)}const yce={setImmediate(t){const n=vce++;return nb[n]=!0,eS||(eS=Promise.resolve()),eS.then(()=>L3(n)&&t()),n},clearImmediate(t){L3(t)}},{setImmediate:Cce,clearImmediate:wce}=yce,ib={setImmediate(...t){const{delegate:n}=ib;return(n?.setImmediate||Cce)(...t)},clearImmediate(t){const{delegate:n}=ib;return(n?.clearImmediate||wce)(t)},delegate:void 0};new class Sce extends Qx{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 xce extends Xx{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=ib.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&&(ib.clearImmediate(e),n._scheduled===e&&(n._scheduled=void 0))}});function B3(t,n=vf){return function Dce(t){return bn((n,e)=>{let i=!1,o=null,r=null,s=!1;const a=()=>{if(r?.unsubscribe(),r=null,i){i=!1;const c=o;o=null,e.next(c)}s&&e.complete()},l=()=>{r=null,s&&e.complete()};n.subscribe(en(e,c=>{i=!0,o=c,r||Vi(t(c)).subscribe(r=en(e,a,l))},()=>{s=!0,(!i||!r||r.closed)&&e.complete()}))})}(()=>Ul(t,n))}function Cf(t,n=0){return function Tce(t){return!isNaN(parseFloat(t))&&!isNaN(Number(t))}(t)?Number(t):2===arguments.length?n:0}function Ts(t){return t instanceof Ae?t.nativeElement:t}let tS;try{tS=typeof Intl<"u"&&Intl.v8BreakIterator}catch{tS=!1}let $n=(()=>{class t{_platformId=D(mC);isBrowser=this._platformId?function xz(t){return t===QT}(this._platformId):"object"==typeof document&&!!document;EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent);TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent);BLINK=this.isBrowser&&!(!window.chrome&&!tS)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT;WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT;IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window);FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent);ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT;SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT;constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Mce=new Z("cdk-dir-doc",{providedIn:"root",factory:()=>D(Qe)}),Ece=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;let hr=(()=>{class t{get value(){return this.valueSignal()}valueSignal=yt("ltr");change=new ve;constructor(){const e=D(Mce,{optional:!0});e&&this.valueSignal.set(function Ice(t){const n=t?.toLowerCase()||"";return"auto"===n&&typeof navigator<"u"&&navigator?.language?Ece.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 \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var Gr=function(t){return t[t.NORMAL=0]="NORMAL",t[t.NEGATED=1]="NEGATED",t[t.INVERTED=2]="INVERTED",t}(Gr||{});let ob,zl;function V3(){if(null==zl){if("object"!=typeof document||!document||"function"!=typeof Element||!Element)return zl=!1,zl;if(document.documentElement?.style&&"scrollBehavior"in document.documentElement.style)zl=!0;else{const t=Element.prototype.scrollTo;zl=!!t&&!/\{\s*\[native code\]\s*\}/.test(t.toString())}}return zl}function wf(){if("object"!=typeof document||!document)return Gr.NORMAL;if(null==ob){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),ob=Gr.NORMAL,0===t.scrollLeft&&(t.scrollLeft=1,ob=0===t.scrollLeft?Gr.NEGATED:Gr.INVERTED),t.remove()}return ob}let nS,ri=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({})}return t})(),rb=(()=>{class t{_ngZone=D(ge);_platform=D($n);_renderer=D(No).createRenderer(null,null);_cleanupGlobalListener;constructor(){}_scrolled=new pe;_scrolledCount=0;scrollContainers=new Map;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 Rt(i=>{this._cleanupGlobalListener||(this._cleanupGlobalListener=this._ngZone.runOutsideAngular(()=>this._renderer.listen("document","scroll",()=>this._scrolled.next())));const o=e>0?this._scrolled.pipe(B3(e)).subscribe(i):this._scrolled.subscribe(i);return this._scrolledCount++,()=>{o.unsubscribe(),this._scrolledCount--,this._scrolledCount||(this._cleanupGlobalListener?.(),this._cleanupGlobalListener=void 0)}}):ae()}ngOnDestroy(){this._cleanupGlobalListener?.(),this._cleanupGlobalListener=void 0,this.scrollContainers.forEach((e,i)=>this.deregister(i)),this._scrolled.complete()}ancestorScrolled(e,i){const o=this.getAncestorScrollContainers(e);return this.scrolled(i).pipe(vn(r=>!r||o.indexOf(r)>-1))}getAncestorScrollContainers(e){const i=[];return this.scrollContainers.forEach((o,r)=>{this._scrollableContainsElement(r,e)&&i.push(r)}),i}_scrollableContainsElement(e,i){let o=Ts(i),r=e.getElementRef().nativeElement;do{if(o==r)return!0}while(o=o.parentElement);return!1}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),H3=(()=>{class t{elementRef=D(Ae);scrollDispatcher=D(rb);ngZone=D(ge);dir=D(hr,{optional:!0});_scrollElement=this.elementRef.nativeElement;_destroyed=new pe;_renderer=D(Kn);_cleanupScroll;_elementScrolled=new pe;constructor(){}ngOnInit(){this._cleanupScroll=this.ngZone.runOutsideAngular(()=>this._renderer.listen(this._scrollElement,"scroll",e=>this._elementScrolled.next(e))),this.scrollDispatcher.register(this)}ngOnDestroy(){this._cleanupScroll?.(),this._elementScrolled.complete(),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&&wf()!=Gr.NORMAL?(null!=e.left&&(e.right=i.scrollWidth-i.clientWidth-e.left),wf()==Gr.INVERTED?e.left=e.right:wf()==Gr.NEGATED&&(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;V3()?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 s=this.dir&&"rtl"==this.dir.value;return"start"==e?e=s?o:i:"end"==e&&(e=s?i:o),s&&wf()==Gr.INVERTED?e==i?r.scrollWidth-r.clientWidth-r.scrollLeft:r.scrollLeft:s&&wf()==Gr.NEGATED?e==i?r.scrollLeft+r.scrollWidth-r.clientWidth:-r.scrollLeft:e==i?r.scrollLeft:r.scrollWidth-r.clientWidth-r.scrollLeft}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","cdk-scrollable",""],["","cdkScrollable",""]]})}return t})(),jd=(()=>{class t{_platform=D($n);_listeners;_viewportSize=null;_change=new pe;_document=D(Qe);constructor(){const e=D(ge),i=D(No).createRenderer(null,null);e.runOutsideAngular(()=>{if(this._platform.isBrowser){const o=r=>this._change.next(r);this._listeners=[i.listen("window","resize",o),i.listen("window","orientationchange",o)]}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){this._listeners?.forEach(e=>e()),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(B3(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 \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),xf=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({})}return t})(),j3=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({imports:[ri,xf,ri,xf]})}return t})();function iS(){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 fr(t){return t.composedPath?t.composedPath()[0]:t.target}function U3(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}const sb=new WeakMap;let pr=(()=>{class t{_appRef;_injector=D(Be);_environmentInjector=D(Nn);load(e){const i=this._appRef=this._appRef||this._injector.get(or);let o=sb.get(i);o||(o={loaders:new Set,refs:[]},sb.set(i,o),i.onDestroy(()=>{sb.get(i)?.refs.forEach(r=>r.destroy()),sb.delete(i)})),o.loaders.has(e)||(o.loaders.add(e),o.refs.push(gN(e,{environmentInjector:this._environmentInjector})))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Qn(t){return null==t?"":"string"==typeof t?t:`${t}px`}function ab(t){return Array.isArray(t)?t:[t]}class oS{_attachedHost=null;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 Ud extends oS{component;viewContainerRef;injector;projectableNodes;bindings;constructor(n,e,i,o,r){super(),this.component=n,this.viewContainerRef=e,this.injector=i,this.projectableNodes=o,this.bindings=r||null}}class $l extends oS{templateRef;viewContainerRef;context;injector;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 Lce extends oS{element;constructor(n){super(),this.element=n instanceof Ae?n.nativeElement:n}}class lb{_attachedPortal=null;_disposeFn=null;_isDisposed=!1;hasAttached(){return!!this._attachedPortal}attach(n){return n instanceof Ud?(this._attachedPortal=n,this.attachComponentPortal(n)):n instanceof $l?(this._attachedPortal=n,this.attachTemplatePortal(n)):this.attachDomPortal&&n instanceof Lce?(this._attachedPortal=n,this.attachDomPortal(n)):void 0}attachDomPortal=null;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 Bce extends lb{outletElement;_appRef;_defaultInjector;constructor(n,e,i){super(),this.outletElement=n,this._appRef=e,this._defaultInjector=i}attachComponentPortal(n){let e;if(n.viewContainerRef){const i=n.injector||n.viewContainerRef.injector,o=i.get(ms,null,{optional:!0})||void 0;e=n.viewContainerRef.createComponent(n.component,{index:n.viewContainerRef.length,injector:i,ngModuleRef:o,projectableNodes:n.projectableNodes||void 0,bindings:n.bindings||void 0}),this.setDisposeFn(()=>e.destroy())}else{const i=this._appRef,o=n.injector||this._defaultInjector||Be.NULL,r=o.get(Nn,i.injector);e=gN(n.component,{elementInjector:o,environmentInjector:r,projectableNodes:n.projectableNodes||void 0,bindings:n.bindings||void 0}),i.attachView(e.hostView),this.setDisposeFn(()=>{i.viewCount>0&&i.detachView(e.hostView),e.destroy()})}return this.outletElement.appendChild(this._getComponentRootNode(e)),this._attachedPortal=n,e}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}attachDomPortal=n=>{const e=n.element,i=this.outletElement.ownerDocument.createComment("dom-portal");e.parentNode.insertBefore(i,e),this.outletElement.appendChild(e),this._attachedPortal=n,super.setDisposeFn(()=>{i.parentNode&&i.parentNode.replaceChild(e,i)})};dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(n){return n.hostView.rootNodes[0]}}let Vce=(()=>{class t extends $l{constructor(){super(D(Ci),D(wi))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","cdkPortal",""]],exportAs:["cdkPortal"],features:[be]})}return t})(),Wl=(()=>{class t extends lb{_moduleRef=D(ms,{optional:!0});_document=D(Qe);_viewContainerRef=D(wi);_isInitialized=!1;_attachedRef=null;constructor(){super()}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)}attached=new ve;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,o=i.createComponent(e.component,{index:i.length,injector:e.injector||i.injector,projectableNodes:e.projectableNodes||void 0,ngModuleRef:this._moduleRef||void 0,bindings:e.bindings||void 0});return i!==this._viewContainerRef&&this._getRootNode().appendChild(o.hostView.rootNodes[0]),super.setDisposeFn(()=>o.destroy()),this._attachedPortal=e,this._attachedRef=o,this.attached.emit(o),o}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}attachDomPortal=e=>{const i=e.element,o=this._document.createComment("dom-portal");e.setAttachedHost(this),i.parentNode.insertBefore(o,i),this._getRootNode().appendChild(i),this._attachedPortal=e,super.setDisposeFn(()=>{o.parentNode&&o.parentNode.replaceChild(i,o)})};_getRootNode(){const e=this._viewContainerRef.element.nativeElement;return e.nodeType===e.ELEMENT_NODE?e:e.parentNode}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:[0,"cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],features:[be]})}return t})(),Sf=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({})}return t})();function mr(t,...n){return n.length?n.some(e=>t[e]):t.altKey||t.shiftKey||t.ctrlKey||t.metaKey}const $3=V3();function rS(t){return new ede(t.get(jd),t.get(Qe))}class ede{_viewportRuler;_previousHTMLStyles={top:"",left:""};_previousScrollPosition;_isEnabled=!1;_document;constructor(n,e){this._viewportRuler=n,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=Qn(-this._previousScrollPosition.left),n.style.top=Qn(-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||"",s=o.scrollBehavior||"";this._isEnabled=!1,i.left=this._previousHTMLStyles.left,i.top=this._previousHTMLStyles.top,n.classList.remove("cdk-global-scrollblock"),$3&&(i.scrollBehavior=o.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),$3&&(i.scrollBehavior=r,o.scrollBehavior=s)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;const e=this._document.documentElement,i=this._viewportRuler.getViewportSize();return e.scrollHeight>i.height||e.scrollWidth>i.width}}class nde{_scrollDispatcher;_ngZone;_viewportRuler;_config;_scrollSubscription=null;_overlayRef;_initialScrollPosition;constructor(n,e,i,o){this._scrollDispatcher=n,this._ngZone=e,this._viewportRuler=i,this._config=o}attach(n){this._overlayRef=n}enable(){if(this._scrollSubscription)return;const n=this._scrollDispatcher.scrolled(0).pipe(vn(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}_detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}}class sS{enable(){}disable(){}attach(){}}function aS(t,n){return n.some(e=>t.bottome.bottom||t.righte.right)}function W3(t,n){return n.some(e=>t.tope.bottom||t.lefte.right)}function Tf(t,n){return new ide(t.get(rb),t.get(jd),t.get(ge),n)}class ide{_scrollDispatcher;_viewportRuler;_ngZone;_config;_scrollSubscription=null;_overlayRef;constructor(n,e,i,o){this._scrollDispatcher=n,this._viewportRuler=e,this._ngZone=i,this._config=o}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();aS(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 ode=(()=>{class t{_injector=D(Be);constructor(){}noop=()=>new sS;close=e=>function tde(t,n){return new nde(t.get(rb),t.get(ge),t.get(jd),n)}(this._injector,e);block=()=>rS(this._injector);reposition=e=>Tf(this._injector,e);static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();class Mf{positionStrategy;scrollStrategy=new sS;panelClass="";hasBackdrop=!1;backdropClass="cdk-overlay-dark-backdrop";disableAnimations;width;height;minWidth;minHeight;maxWidth;maxHeight;direction;disposeOnNavigation=!1;usePopover;eventPredicate;constructor(n){if(n){const e=Object.keys(n);for(const i of e)void 0!==n[i]&&(this[i]=n[i])}}}class rde{connectionPair;scrollableViewProperties;constructor(n,e){this.connectionPair=n,this.scrollableViewProperties=e}}let G3=(()=>{class t{_attachedOverlays=[];_document=D(Qe);_isAttached=!1;constructor(){}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()}canReceiveEvent(e,i,o){return!(o.observers.length<1)&&(!e.eventPredicate||e.eventPredicate(i))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),sde=(()=>{class t extends G3{_ngZone=D(ge);_renderer=D(No).createRenderer(null,null);_cleanupKeydown;add(e){super.add(e),this._isAttached||(this._ngZone.runOutsideAngular(()=>{this._cleanupKeydown=this._renderer.listen("body","keydown",this._keydownListener)}),this._isAttached=!0)}detach(){this._isAttached&&(this._cleanupKeydown?.(),this._isAttached=!1)}_keydownListener=e=>{const i=this._attachedOverlays;for(let o=i.length-1;o>-1;o--){const r=i[o];if(this.canReceiveEvent(r,e,r._keydownEvents)){this._ngZone.run(()=>r._keydownEvents.next(e));break}}};static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),ade=(()=>{class t extends G3{_platform=D($n);_ngZone=D(ge);_renderer=D(No).createRenderer(null,null);_cursorOriginalValue;_cursorStyleIsSet=!1;_pointerDownEventTarget=null;_cleanups;add(e){if(super.add(e),!this._isAttached){const i=this._document.body,o={capture:!0},r=this._renderer;this._cleanups=this._ngZone.runOutsideAngular(()=>[r.listen(i,"pointerdown",this._pointerDownListener,o),r.listen(i,"click",this._clickListener,o),r.listen(i,"auxclick",this._clickListener,o),r.listen(i,"contextmenu",this._clickListener,o)]),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=i.style.cursor,i.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){this._isAttached&&(this._cleanups?.forEach(e=>e()),this._cleanups=void 0,this._platform.IOS&&this._cursorStyleIsSet&&(this._document.body.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1)}_pointerDownListener=e=>{this._pointerDownEventTarget=fr(e)};_clickListener=e=>{const i=fr(e),o="click"===e.type&&this._pointerDownEventTarget?this._pointerDownEventTarget:i;this._pointerDownEventTarget=null;const r=this._attachedOverlays.slice();for(let s=r.length-1;s>-1;s--){const a=r[s],l=a._outsidePointerEvents;if(a.hasAttached()&&this.canReceiveEvent(a,e,l)){if(q3(a.overlayElement,i)||q3(a.overlayElement,o))break;this._ngZone?this._ngZone.run(()=>l.next(e)):l.next(e)}}};static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function q3(t,n){const e=typeof ShadowRoot<"u"&&ShadowRoot;let i=n;for(;i;){if(i===t)return!0;i=e&&i instanceof ShadowRoot?i.host:i.parentNode}return!1}let K3=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["ng-component"]],hostAttrs:["cdk-overlay-style-loader",""],decls:0,vars:0,template:function(i,o){},styles:[".cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed}@layer cdk-overlay{.cdk-overlay-container{z-index:1000}}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute}@layer cdk-overlay{.cdk-global-overlay-wrapper{z-index:1000}}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;display:flex;max-width:100%;max-height:100%}@layer cdk-overlay{.cdk-overlay-pane{z-index:1000}}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);opacity:0;touch-action:manipulation}@layer cdk-overlay{.cdk-overlay-backdrop{z-index:1000;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}}@media(prefers-reduced-motion){.cdk-overlay-backdrop{transition-duration:1ms}}.cdk-overlay-backdrop-showing{opacity:1}@media(forced-colors: active){.cdk-overlay-backdrop-showing{opacity:.6}}@layer cdk-overlay{.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing,.cdk-high-contrast-active .cdk-overlay-transparent-backdrop{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;display:flex;flex-direction:column;min-width:1px;min-height:1px}@layer cdk-overlay{.cdk-overlay-connected-position-bounding-box{z-index:1000}}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.cdk-overlay-popover{background:none;border:none;padding:0;outline:0;overflow:visible;position:fixed;pointer-events:none;white-space:normal;color:inherit;text-decoration:none;width:100%;height:100%;inset:auto;top:0;left:0}.cdk-overlay-popover::backdrop{display:none}.cdk-overlay-popover .cdk-overlay-backdrop{position:fixed;z-index:auto}\n"],encapsulation:2,changeDetection:0})}return t})(),lS=(()=>{class t{_platform=D($n);_containerElement;_document=D(Qe);_styleLoader=D(pr);constructor(){}ngOnDestroy(){this._containerElement?.remove()}getContainerElement(){return this._loadStyles(),this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const e="cdk-overlay-container";if(this._platform.isBrowser||U3()){const o=this._document.querySelectorAll(`.${e}[platform="server"], .${e}[platform="test"]`);for(let r=0;r{const n=this.element;clearTimeout(this._fallbackTimeout),this._cleanupTransitionEnd?.(),this._cleanupTransitionEnd=this._renderer.listen(n,"transitionend",this.dispose),this._fallbackTimeout=setTimeout(this.dispose,500),n.style.pointerEvents="none",n.classList.remove("cdk-overlay-backdrop-showing")})}dispose=()=>{clearTimeout(this._fallbackTimeout),this._cleanupClick?.(),this._cleanupTransitionEnd?.(),this._cleanupClick=this._cleanupTransitionEnd=this._fallbackTimeout=void 0,this.element.remove()}}function cS(t){return t&&1===t.nodeType}class Y3{_portalOutlet;_host;_pane;_config;_ngZone;_keyboardDispatcher;_document;_location;_outsideClickDispatcher;_animationsDisabled;_injector;_renderer;_backdropClick=new pe;_attachments=new pe;_detachments=new pe;_positionStrategy;_scrollStrategy;_locationChanges=mt.EMPTY;_backdropRef=null;_detachContentMutationObserver;_detachContentAfterRenderRef;_disposed=!1;_previousHostParent;_keydownEvents=new pe;_outsidePointerEvents=new pe;_afterNextRenderRef;constructor(n,e,i,o,r,s,a,l,c,u=!1,p,g){this._portalOutlet=n,this._host=e,this._pane=i,this._config=o,this._ngZone=r,this._keyboardDispatcher=s,this._document=a,this._location=l,this._outsideClickDispatcher=c,this._animationsDisabled=u,this._injector=p,this._renderer=g,o.scrollStrategy&&(this._scrollStrategy=o.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=o.positionStrategy}get overlayElement(){return this._pane}get backdropElement(){return this._backdropRef?.element||null}get hostElement(){return this._host}get eventPredicate(){return this._config?.eventPredicate||null}attach(n){if(this._disposed)return null;this._attachHost();const e=this._portalOutlet.attach(n);return this._positionStrategy?.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._afterNextRenderRef?.destroy(),this._afterNextRenderRef=Fi(()=>{this.hasAttached()&&this.updatePosition()},{injector:this._injector}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._completeDetachContent(),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._completeDetachContent(),this._keyboardDispatcher.remove(this),this._detachContentWhenEmpty(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),n}dispose(){if(this._disposed)return;const n=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._backdropRef?.dispose(),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._afterNextRenderRef?.destroy(),this._previousHostParent=this._pane=this._host=this._backdropRef=null,n&&this._detachments.next(),this._detachments.complete(),this._completeDetachContent(),this._disposed=!0}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=Qn(this._config.width),n.height=Qn(this._config.height),n.minWidth=Qn(this._config.minWidth),n.minHeight=Qn(this._config.minHeight),n.maxWidth=Qn(this._config.maxWidth),n.maxHeight=Qn(this._config.maxHeight)}_togglePointerEvents(n){this._pane.style.pointerEvents=n?"":"none"}_attachHost(){if(!this._host.parentElement){const n=this._config.usePopover?this._positionStrategy?.getPopoverInsertionPoint?.():null;cS(n)?n.after(this._host):"parent"===n?.type?n.element.appendChild(this._host):this._previousHostParent?.appendChild(this._host)}if(this._config.usePopover)try{this._host.showPopover()}catch{}}_attachBackdrop(){const n="cdk-overlay-backdrop-showing";this._backdropRef?.dispose(),this._backdropRef=new lde(this._document,this._renderer,this._ngZone,e=>{this._backdropClick.next(e)}),this._animationsDisabled&&this._backdropRef.element.classList.add("cdk-overlay-backdrop-noop-animation"),this._config.backdropClass&&this._toggleClasses(this._backdropRef.element,this._config.backdropClass,!0),this._config.usePopover?this._host.prepend(this._backdropRef.element):this._host.parentElement.insertBefore(this._backdropRef.element,this._host),!this._animationsDisabled&&typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>this._backdropRef?.element.classList.add(n))}):this._backdropRef.element.classList.add(n)}_updateStackingOrder(){!this._config.usePopover&&this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){this._animationsDisabled?(this._backdropRef?.dispose(),this._backdropRef=null):this._backdropRef?.detach()}_toggleClasses(n,e,i){const o=ab(e||[]).filter(r=>!!r);o.length&&(i?n.classList.add(...o):n.classList.remove(...o))}_detachContentWhenEmpty(){let n=!1;try{this._detachContentAfterRenderRef=Fi(()=>{n=!0,this._detachContent()},{injector:this._injector})}catch(e){if(n)throw e;this._detachContent()}globalThis.MutationObserver&&this._pane&&(this._detachContentMutationObserver||=new globalThis.MutationObserver(()=>{this._detachContent()}),this._detachContentMutationObserver.observe(this._pane,{childList:!0}))}_detachContent(){(!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()),this._completeDetachContent())}_completeDetachContent(){this._detachContentAfterRenderRef?.destroy(),this._detachContentAfterRenderRef=void 0,this._detachContentMutationObserver?.disconnect()}_disposeScrollStrategy(){const n=this._scrollStrategy;n?.disable(),n?.detach?.()}}const X3="cdk-overlay-connected-position-bounding-box",cde=/([A-Za-z%]+)$/;function fb(t,n){return new dde(n,t.get(jd),t.get(Qe),t.get($n),t.get(lS))}class dde{_viewportRuler;_document;_platform;_overlayContainer;_overlayRef;_isInitialRender=!1;_lastBoundingBoxSize={width:0,height:0};_isPushed=!1;_canPush=!0;_growAfterOpen=!1;_hasFlexibleDimensions=!0;_positionLocked=!1;_originRect;_overlayRect;_viewportRect;_containerRect;_viewportMargin=0;_scrollables=[];_preferredPositions=[];_origin;_pane;_isDisposed=!1;_boundingBox=null;_lastPosition=null;_lastScrollVisibility=null;_positionChanges=new pe;_resizeSubscription=mt.EMPTY;_offsetX=0;_offsetY=0;_transformOriginSelector;_appliedPanelClasses=[];_previousPushAmount=null;_popoverLocation="global";positionChanges=this._positionChanges;get positions(){return this._preferredPositions}constructor(n,e,i,o,r){this._viewportRuler=e,this._document=i,this._platform=o,this._overlayContainer=r,this.setOrigin(n)}attach(n){this._validatePositions(),n.hostElement.classList.add(X3),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._getContainerRect();const n=this._originRect,e=this._overlayRect,i=this._viewportRect,o=this._containerRect,r=[];let s;for(let a of this._preferredPositions){let l=this._getOriginPoint(n,o,a),c=this._getOverlayPoint(l,e,a),u=this._getOverlayFit(c,e,i,a);if(u.isCompletelyWithinViewport)return this._isPushed=!1,void this._applyPosition(a,l);this._canFitWithFlexibleDimensions(u,c,i)?r.push({position:a,origin:l,overlayRect:e,boundingBoxRect:this._calculateBoundingBoxRect(l,a)}):(!s||s.overlayFit.visibleAreal&&(l=u,a=c)}return this._isPushed=!1,void this._applyPosition(a.position,a.origin)}if(this._canPush)return this._isPushed=!0,void this._applyPosition(s.position,s.originPoint);this._applyPosition(s.position,s.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&Gl(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(X3),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;n?(this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._getContainerRect(),this._applyPosition(n,this._getOriginPoint(this._originRect,this._containerRect,n))):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}withPopoverLocation(n){return this._popoverLocation=n,this}getPopoverInsertionPoint(){return"global"===this._popoverLocation?null:"inline"!==this._popoverLocation?this._popoverLocation:this._origin instanceof Ae?this._origin.nativeElement:cS(this._origin)?this._origin:null}_getOriginPoint(n,e,i){let o,r;if("center"==i.originX)o=n.left+n.width/2;else{const s=this._isRtl()?n.right:n.left,a=this._isRtl()?n.left:n.right;o="start"==i.originX?s:a}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=Q3(e);let{x:s,y:a}=n,l=this._getOffset(o,"x"),c=this._getOffset(o,"y");l&&(s+=l),c&&(a+=c);let g=0-a,_=a+r.height-i.height,w=this._subtractOverflows(r.width,0-s,s+r.width-i.width),x=this._subtractOverflows(r.height,g,_),T=w*x;return{visibleArea:T,isCompletelyWithinViewport:r.width*r.height===T,fitsInViewportVertically:x===r.height,fitsInViewportHorizontally:w==r.width}}_canFitWithFlexibleDimensions(n,e,i){if(this._hasFlexibleDimensions){const o=i.bottom-e.y,r=i.right-e.x,s=Z3(this._overlayRef.getConfig().minHeight),a=Z3(this._overlayRef.getConfig().minWidth);return(n.fitsInViewportVertically||null!=s&&s<=o)&&(n.fitsInViewportHorizontally||null!=a&&a<=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=Q3(e),r=this._viewportRect,s=Math.max(n.x+o.width-r.width,0),a=Math.max(n.y+o.height-r.height,0),l=Math.max(r.top-i.top-n.y,0),c=Math.max(r.left-i.left-n.x,0);let u=0,p=0;return u=o.width<=r.width?c||-s:n.xw&&!this._isInitialRender&&!this._growAfterOpen&&(s=n.y-w/2)}const l="start"===e.overlayX&&!o||"end"===e.overlayX&&o;let u,p,g;if("end"===e.overlayX&&!o||"start"===e.overlayX&&o)g=i.width-n.x+this._getViewportMarginStart()+this._getViewportMarginEnd(),u=n.x-this._getViewportMarginStart();else if(l)p=n.x,u=i.right-n.x-this._getViewportMarginEnd();else{const _=Math.min(i.right-n.x+i.left,n.x),w=this._lastBoundingBoxSize.width;u=2*_,p=n.x-_,u>w&&!this._isInitialRender&&!this._growAfterOpen&&(p=n.x-w/2)}return{top:s,left:p,bottom:a,right:g,width:u,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="auto",o.maxHeight=o.maxWidth="",o.width=o.height="100%";else{const r=this._overlayRef.getConfig().maxHeight,s=this._overlayRef.getConfig().maxWidth;o.width=Qn(i.width),o.height=Qn(i.height),o.top=Qn(i.top)||"auto",o.bottom=Qn(i.bottom)||"auto",o.left=Qn(i.left)||"auto",o.right=Qn(i.right)||"auto",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=Qn(r)),s&&(o.maxWidth=Qn(s))}this._lastBoundingBoxSize=i,Gl(this._boundingBox.style,o)}_resetBoundingBoxStyles(){Gl(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){Gl(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(n,e){const i={},o=this._hasExactPosition(),r=this._hasFlexibleDimensions,s=this._overlayRef.getConfig();if(o){const u=this._viewportRuler.getViewportScrollPosition();Gl(i,this._getExactOverlayY(e,n,u)),Gl(i,this._getExactOverlayX(e,n,u))}else i.position="static";let a="",l=this._getOffset(e,"x"),c=this._getOffset(e,"y");l&&(a+=`translateX(${l}px) `),c&&(a+=`translateY(${c}px)`),i.transform=a.trim(),s.maxHeight&&(o?i.maxHeight=Qn(s.maxHeight):r&&(i.maxHeight="")),s.maxWidth&&(o?i.maxWidth=Qn(s.maxWidth):r&&(i.maxWidth="")),Gl(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=Qn(r.y),o}_getExactOverlayX(n,e,i){let s,o={left:"",right:""},r=this._getOverlayPoint(e,this._overlayRect,n);return this._isPushed&&(r=this._pushOverlayOnScreen(r,this._overlayRect,i)),s=this._isRtl()?"end"===n.overlayX?"left":"right":"end"===n.overlayX?"right":"left","right"===s?o.right=this._document.documentElement.clientWidth-(r.x+this._overlayRect.width)+"px":o.left=Qn(r.x),o}_getScrollVisibility(){const n=this._getOriginRect(),e=this._pane.getBoundingClientRect(),i=this._scrollables.map(o=>o.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:W3(n,i),isOriginOutsideView:aS(n,i),isOverlayClipped:W3(e,i),isOverlayOutsideView:aS(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._getViewportMarginTop(),left:i.left+this._getViewportMarginStart(),right:i.left+n-this._getViewportMarginEnd(),bottom:i.top+e-this._getViewportMarginBottom(),width:n-this._getViewportMarginStart()-this._getViewportMarginEnd(),height:e-this._getViewportMarginTop()-this._getViewportMarginBottom()}}_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&&ab(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=[])}_getViewportMarginStart(){return"number"==typeof this._viewportMargin?this._viewportMargin:this._viewportMargin?.start??0}_getViewportMarginEnd(){return"number"==typeof this._viewportMargin?this._viewportMargin:this._viewportMargin?.end??0}_getViewportMarginTop(){return"number"==typeof this._viewportMargin?this._viewportMargin:this._viewportMargin?.top??0}_getViewportMarginBottom(){return"number"==typeof this._viewportMargin?this._viewportMargin:this._viewportMargin?.bottom??0}_getOriginRect(){const n=this._origin;if(n instanceof Ae)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}}_getContainerRect(){const n=this._overlayRef.getConfig().usePopover&&"global"!==this._popoverLocation,e=this._overlayContainer.getContainerElement();n&&(e.style.display="block");const i=e.getBoundingClientRect();return n&&(e.style.display=""),i}}function Gl(t,n){for(let e in n)n.hasOwnProperty(e)&&(t[e]=n[e]);return t}function Z3(t){if("number"!=typeof t&&null!=t){const[n,e]=t.split(cde);return e&&"px"!==e?null:parseFloat(n)}return t||null}function Q3(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 J3="cdk-global-overlay-wrapper";function pb(t){return new hde}class hde{_overlayRef;_cssPosition="static";_topOffset="";_bottomOffset="";_alignItems="";_xPosition="";_xOffset="";_width="";_height="";_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(J3),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:s,maxHeight:a}=i,l=!("100%"!==o&&"100vw"!==o||s&&"100%"!==s&&"100vw"!==s),c=!("100%"!==r&&"100vh"!==r||a&&"100%"!==a&&"100vh"!==a),u=this._xPosition,p=this._xOffset,g="rtl"===this._overlayRef.getConfig().direction;let _="",w="",x="";l?x="flex-start":"center"===u?(x="center",g?w=p:_=p):g?"left"===u||"end"===u?(x="flex-end",_=p):("right"===u||"start"===u)&&(x="flex-start",w=p):"left"===u||"start"===u?(x="flex-start",_=p):("right"===u||"end"===u)&&(x="flex-end",w=p),n.position=this._cssPosition,n.marginLeft=l?"0":_,n.marginTop=c?"0":this._topOffset,n.marginBottom=this._bottomOffset,n.marginRight=l?"0":w,e.justifyContent=x,e.alignItems=c?"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(J3),i.justifyContent=i.alignItems=n.marginTop=n.marginBottom=n.marginLeft=n.marginRight=n.position="",this._overlayRef=null,this._isDisposed=!0}}let fde=(()=>{class t{_injector=D(Be);constructor(){}global(){return pb()}flexibleConnectedTo(e){return fb(this._injector,e)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const dS=new Z("OVERLAY_DEFAULT_CONFIG");function $d(t,n){t.get(pr).load(K3);const e=t.get(lS),i=t.get(Qe),o=t.get(oi),r=t.get(or),s=t.get(hr),a=t.get(Kn,null,{optional:!0})||t.get(No).createRenderer(null,null),l=new Mf(n),c=t.get(dS,null,{optional:!0})?.usePopover??!0;l.direction=l.direction||s.value,l.usePopover="showPopover"in i.body&&(n?.usePopover??c);const u=i.createElement("div"),p=i.createElement("div");u.id=o.getId("cdk-overlay-"),u.classList.add("cdk-overlay-pane"),p.appendChild(u),l.usePopover&&(p.setAttribute("popover","manual"),p.classList.add("cdk-overlay-popover"));const g=l.usePopover?l.positionStrategy?.getPopoverInsertionPoint?.():null;return cS(g)?g.after(p):"parent"===g?.type?g.element.appendChild(p):e.getContainerElement().appendChild(p),new Y3(new Bce(u,r,t),p,u,l,t.get(ge),t.get(sde),i,t.get(Ed),t.get(ade),n?.disableAnimations??"NoopAnimations"===t.get(xm,null,{optional:!0}),t.get(Nn),a)}let pde=(()=>{class t{scrollStrategies=D(ode);_positionBuilder=D(fde);_injector=D(Be);constructor(){}create(e){return $d(this._injector,e)}position(){return this._positionBuilder}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const mde=[{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"}],gde=new Z("cdk-connected-overlay-scroll-strategy",{providedIn:"root",factory:()=>{const t=D(Be);return()=>Tf(t)}});let mb=(()=>{class t{elementRef=D(Ae);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"]})}return t})();const _de=new Z("cdk-connected-overlay-default-config");let gb,eB=(()=>{class t{_dir=D(hr,{optional:!0});_injector=D(Be);_overlayRef;_templatePortal;_backdropSubscription=mt.EMPTY;_attachSubscription=mt.EMPTY;_detachSubscription=mt.EMPTY;_positionSubscription=mt.EMPTY;_offsetX;_offsetY;_position;_scrollStrategyFactory=D(gde);_ngZone=D(ge);origin;positions;positionStrategy;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)}width;height;minWidth;minHeight;backdropClass;panelClass;viewportMargin=0;scrollStrategy;open=!1;disableClose=!1;transformOriginSelector;hasBackdrop=!1;lockPosition=!1;flexibleDimensions=!1;growAfterOpen=!1;push=!1;disposeOnNavigation=!1;usePopover;matchWidth=!1;set _config(e){"string"!=typeof e&&this._assignConfig(e)}backdropClick=new ve;positionChange=new ve;attach=new ve;detach=new ve;overlayKeydown=new ve;overlayOutsideClick=new ve;constructor(){const e=D(Ci),i=D(wi),o=D(_de,{optional:!0}),r=D(dS,{optional:!0});this.usePopover=!1===r?.usePopover?null:"global",this._templatePortal=new $l(e,i),this.scrollStrategy=this._scrollStrategyFactory(),o&&this._assignConfig(o)}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?.dispose()}ngOnChanges(e){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef?.updateSize({width:this._getWidth(),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=mde);const e=this._overlayRef=$d(this._injector,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&&!mr(i)&&(i.preventDefault(),this.detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(i=>{const o=this._getOriginElement(),r=fr(i);(!o||o!==r&&!o.contains(r))&&this.overlayOutsideClick.next(i)})}_buildConfig(){const e=this._position=this.positionStrategy||this._createPositionStrategy(),i=new Mf({direction:this._dir||"ltr",positionStrategy:e,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop,disposeOnNavigation:this.disposeOnNavigation,usePopover:!!this.usePopover});return(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._getOrigin()).withPositions(i).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector).withPopoverLocation(null===this.usePopover?"global":this.usePopover)}_createPositionStrategy(){const e=fb(this._injector,this._getOrigin());return this._updatePositionStrategy(e),e}_getOrigin(){return this.origin instanceof mb?this.origin.elementRef:this.origin}_getOriginElement(){return this.origin instanceof mb?this.origin.elementRef.nativeElement:this.origin instanceof Ae?this.origin.nativeElement:typeof Element<"u"&&this.origin instanceof Element?this.origin:null}_getWidth(){return this.width?this.width:this.matchWidth?this._getOriginElement()?.getBoundingClientRect?.().width:void 0}attachOverlay(){this._overlayRef||this._createOverlay();const e=this._overlayRef;e.getConfig().hasBackdrop=this.hasBackdrop,e.updateSize({width:this._getWidth()}),e.hasAttached()||e.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=e.backdropClick().subscribe(i=>this.backdropClick.emit(i)):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe(function Hce(t,n=!1){return bn((e,i)=>{let o=0;e.subscribe(en(i,r=>{const s=t(r,o++);(s||n)&&i.next(r),!s&&i.complete()}))})}(()=>this.positionChange.observers.length>0)).subscribe(i=>{this._ngZone.run(()=>this.positionChange.emit(i)),0===this.positionChange.observers.length&&this._positionSubscription.unsubscribe()})),this.open=!0}detachOverlay(){this._overlayRef?.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.open=!1}_assignConfig(e){this.origin=e.origin??this.origin,this.positions=e.positions??this.positions,this.positionStrategy=e.positionStrategy??this.positionStrategy,this.offsetX=e.offsetX??this.offsetX,this.offsetY=e.offsetY??this.offsetY,this.width=e.width??this.width,this.height=e.height??this.height,this.minWidth=e.minWidth??this.minWidth,this.minHeight=e.minHeight??this.minHeight,this.backdropClass=e.backdropClass??this.backdropClass,this.panelClass=e.panelClass??this.panelClass,this.viewportMargin=e.viewportMargin??this.viewportMargin,this.scrollStrategy=e.scrollStrategy??this.scrollStrategy,this.disableClose=e.disableClose??this.disableClose,this.transformOriginSelector=e.transformOriginSelector??this.transformOriginSelector,this.hasBackdrop=e.hasBackdrop??this.hasBackdrop,this.lockPosition=e.lockPosition??this.lockPosition,this.flexibleDimensions=e.flexibleDimensions??this.flexibleDimensions,this.growAfterOpen=e.growAfterOpen??this.growAfterOpen,this.push=e.push??this.push,this.disposeOnNavigation=e.disposeOnNavigation??this.disposeOnNavigation,this.usePopover=e.usePopover??this.usePopover,this.matchWidth=e.matchWidth??this.matchWidth}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{origin:[0,"cdkConnectedOverlayOrigin","origin"],positions:[0,"cdkConnectedOverlayPositions","positions"],positionStrategy:[0,"cdkConnectedOverlayPositionStrategy","positionStrategy"],offsetX:[0,"cdkConnectedOverlayOffsetX","offsetX"],offsetY:[0,"cdkConnectedOverlayOffsetY","offsetY"],width:[0,"cdkConnectedOverlayWidth","width"],height:[0,"cdkConnectedOverlayHeight","height"],minWidth:[0,"cdkConnectedOverlayMinWidth","minWidth"],minHeight:[0,"cdkConnectedOverlayMinHeight","minHeight"],backdropClass:[0,"cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:[0,"cdkConnectedOverlayPanelClass","panelClass"],viewportMargin:[0,"cdkConnectedOverlayViewportMargin","viewportMargin"],scrollStrategy:[0,"cdkConnectedOverlayScrollStrategy","scrollStrategy"],open:[0,"cdkConnectedOverlayOpen","open"],disableClose:[0,"cdkConnectedOverlayDisableClose","disableClose"],transformOriginSelector:[0,"cdkConnectedOverlayTransformOriginOn","transformOriginSelector"],hasBackdrop:[2,"cdkConnectedOverlayHasBackdrop","hasBackdrop",Ie],lockPosition:[2,"cdkConnectedOverlayLockPosition","lockPosition",Ie],flexibleDimensions:[2,"cdkConnectedOverlayFlexibleDimensions","flexibleDimensions",Ie],growAfterOpen:[2,"cdkConnectedOverlayGrowAfterOpen","growAfterOpen",Ie],push:[2,"cdkConnectedOverlayPush","push",Ie],disposeOnNavigation:[2,"cdkConnectedOverlayDisposeOnNavigation","disposeOnNavigation",Ie],usePopover:[0,"cdkConnectedOverlayUsePopover","usePopover"],matchWidth:[2,"cdkConnectedOverlayMatchWidth","matchWidth",Ie],_config:[0,"cdkConnectedOverlay","_config"]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],features:[yi]})}return t})(),Wd=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({providers:[pde],imports:[ri,Sf,j3,j3]})}return t})(),uS=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["ng-component"]],exportAs:["cdkVisuallyHidden"],decls:0,vars:0,template:function(i,o){},styles:[".cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}\n"],encapsulation:2,changeDetection:0})}return t})();function Gd(t){return function bde(){if(void 0===gb&&(gb=null,typeof window<"u")){const t=window;void 0!==t.trustedTypes&&(gb=t.trustedTypes.createPolicy("angular#components",{createHTML:n=>n}))}return gb}()?.createHTML(t)||t}function hS(t){return vn((n,e)=>t<=e)}function _b(t,n=vf){return bn((e,i)=>{let o=null,r=null,s=null;const a=()=>{if(o){o.unsubscribe(),o=null;const c=r;r=null,i.next(c)}};function l(){const c=s+t,u=n.now();if(u{r=c,s=n.now(),o||(o=n.schedule(l,t),i.add(o))},()=>{a(),i.complete()},void 0,()=>{r=o=null}))})}const tB=new Set;let ql,fS=(()=>{class t{_platform=D($n);_nonce=D(gC,{optional:!0});_matchMedia;constructor(){this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):Cde}matchMedia(e){return(this._platform.WEBKIT||this._platform.BLINK)&&function yde(t,n){if(!tB.has(t))try{ql||(ql=document.createElement("style"),n&&ql.setAttribute("nonce",n),ql.setAttribute("type","text/css"),document.head.appendChild(ql)),ql.sheet&&(ql.sheet.insertRule(`@media ${t} {body{ }}`,0),tB.add(t))}catch(e){console.error(e)}}(e,this._nonce),this._matchMedia(e)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Cde(t){return{matches:"all"===t||""===t,media:t,addListener:()=>{},removeListener:()=>{}}}let nB=(()=>{class t{_mediaMatcher=D(fS);_zone=D(ge);_queries=new Map;_destroySubject=new pe;constructor(){}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(e){return iB(ab(e)).some(o=>this._registerQuery(o).mql.matches)}observe(e){let r=yx(iB(ab(e)).map(s=>this._registerQuery(s).observable));return r=ks(r.pipe(un(1)),r.pipe(hS(1),_b(0))),r.pipe(ye(s=>{const a={matches:!1,breakpoints:{}};return s.forEach(({matches:l,query:c})=>{a.matches=a.matches||l,a.breakpoints[c]=l}),a}))}_registerQuery(e){if(this._queries.has(e))return this._queries.get(e);const i=this._mediaMatcher.matchMedia(e),r={observable:new Rt(s=>{const a=l=>this._zone.run(()=>s.next(l));return i.addListener(a),()=>{i.removeListener(a)}}).pipe(to(i),ye(({matches:s})=>({query:e,matches:s})),on(this._destroySubject)),mql:i};return this._queries.set(e,r),r}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function iB(t){return t.map(n=>n.split(",")).reduce((n,e)=>n.concat(e)).map(n=>n.trim())}let oB=(()=>{class t{create(e){return typeof MutationObserver>"u"?null:new MutationObserver(e)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),xde=(()=>{class t{_mutationObserverFactory=D(oB);_observedElements=new Map;_ngZone=D(ge);constructor(){}ngOnDestroy(){this._observedElements.forEach((e,i)=>this._cleanupObserver(i))}observe(e){const i=Ts(e);return new Rt(o=>{const s=this._observeElement(i).pipe(ye(a=>a.filter(l=>!function wde(t){if("characterData"===t.type&&t.target instanceof Comment)return!0;if("childList"===t.type){for(let n=0;n!!a.length)).subscribe(a=>{this._ngZone.run(()=>{o.next(a)})});return()=>{s.unsubscribe(),this._unobserveElement(i)}})}_observeElement(e){return this._ngZone.runOutsideAngular(()=>{if(this._observedElements.has(e))this._observedElements.get(e).count++;else{const i=new pe,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 \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Sde=(()=>{class t{_contentObserver=D(xde);_elementRef=D(Ae);event=new ve;get disabled(){return this._disabled}set disabled(e){this._disabled=e,this._disabled?this._unsubscribe():this._subscribe()}_disabled=!1;get debounce(){return this._debounce}set debounce(e){this._debounce=Cf(e),this._subscribe()}_debounce;_currentSubscription=null;constructor(){}ngAfterContentInit(){!this._currentSubscription&&!this.disabled&&this._subscribe()}ngOnDestroy(){this._unsubscribe()}_subscribe(){this._unsubscribe();const e=this._contentObserver.observe(this._elementRef);this._currentSubscription=(this.debounce?e.pipe(_b(this.debounce)):e).subscribe(this.event)}_unsubscribe(){this._currentSubscription?.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","cdkObserveContent",""]],inputs:{disabled:[2,"cdkObserveContentDisabled","disabled",Ie],debounce:"debounce"},outputs:{event:"cdkObserveContent"},exportAs:["cdkObserveContent"]})}return t})(),rB=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({providers:[oB]})}return t})(),sB=(()=>{class t{_platform=D($n);constructor(){}isDisabled(e){return e.hasAttribute("disabled")}isVisible(e){return function Dde(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 kde(t){try{return t.frameElement}catch{return null}}(function Rde(t){return t.ownerDocument&&t.ownerDocument.defaultView||window}(e));if(i&&(-1===lB(i)||!this.isVisible(i)))return!1;let o=e.nodeName.toLowerCase(),r=lB(e);return e.hasAttribute("contenteditable")?-1!==r:!("iframe"===o||"object"===o||this._platform.WEBKIT&&this._platform.IOS&&!function Ode(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 Ade(t){return!function Mde(t){return function Ide(t){return"input"==t.nodeName.toLowerCase()}(t)&&"hidden"==t.type}(t)&&(function Tde(t){let n=t.nodeName.toLowerCase();return"input"===n||"select"===n||"button"===n||"textarea"===n}(t)||function Ede(t){return function Pde(t){return"a"==t.nodeName.toLowerCase()}(t)&&t.hasAttribute("href")}(t)||t.hasAttribute("contenteditable")||aB(t))}(e)&&!this.isDisabled(e)&&(i?.ignoreVisibility||this.isVisible(e))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function aB(t){if(!t.hasAttribute("tabindex")||void 0===t.tabIndex)return!1;let n=t.getAttribute("tabindex");return!(!n||isNaN(parseInt(n,10)))}function lB(t){if(!aB(t))return null;const n=parseInt(t.getAttribute("tabindex")||"",10);return isNaN(n)?-1:n}class cB{_element;_checker;_ngZone;_document;_injector;_startAnchor=null;_endAnchor=null;_hasAttached=!1;startAnchorListener=()=>this.focusLastTabbableElement();endAnchorListener=()=>this.focusFirstTabbableElement();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))}_enabled=!0;constructor(n,e,i,o,r=!1,s){this._element=n,this._checker=e,this._ngZone=i,this._document=o,this._injector=s,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._injector?Fi(n,{injector:this._injector}):setTimeout(n)}}let Nde=(()=>{class t{_checker=D(sB);_ngZone=D(ge);_document=D(Qe);_injector=D(Be);constructor(){D(pr).load(uS)}create(e,i=!1){return new cB(e,this._checker,this._ngZone,this._document,i,this._injector)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Fde=new Z("liveAnnouncerElement",{providedIn:"root",factory:()=>null}),Lde=new Z("LIVE_ANNOUNCER_DEFAULT_OPTIONS");let Bde=0,dB=(()=>{class t{_ngZone=D(ge);_defaultOptions=D(Lde,{optional:!0});_liveElement;_document=D(Qe);_sanitizer=D(wx);_previousTimeout;_currentPromise;_currentResolve;constructor(){const e=D(Fde,{optional:!0});this._liveElement=e||this._createLiveElement()}announce(e,...i){const o=this._defaultOptions;let r,s;return 1===i.length&&"number"==typeof i[0]?s=i[0]:[r,s]=i,this.clear(),clearTimeout(this._previousTimeout),r||(r=o&&o.politeness?o.politeness:"polite"),null==s&&o&&(s=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(a=>this._currentResolve=a)),clearTimeout(this._previousTimeout),this._previousTimeout=setTimeout(()=>{e&&"string"!=typeof e?function vde(t,n,e){const i=e.sanitize(ui.HTML,n);t.innerHTML=Gd(i||"")}(this._liveElement,e,this._sanitizer):this._liveElement.textContent=e,"number"==typeof s&&(this._previousTimeout=setTimeout(()=>this.clear(),s)),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{_platform=D($n);_hasCheckedHighContrastMode=!1;_document=D(Qe);_breakpointSubscription;constructor(){this._breakpointSubscription=D(nB).observe("(forced-colors: active)").subscribe(()=>{this._hasCheckedHighContrastMode&&(this._hasCheckedHighContrastMode=!1,this._applyBodyHighContrastModeCssClasses())})}getHighContrastMode(){if(!this._platform.isBrowser)return Kl.NONE;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 Kl.WHITE_ON_BLACK;case"rgb(255,255,255)":case"rgb(255,250,239)":return Kl.BLACK_ON_WHITE}return Kl.NONE}ngOnDestroy(){this._breakpointSubscription.unsubscribe()}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){const e=this._document.body.classList;e.remove(pS,uB,hB),this._hasCheckedHighContrastMode=!0;const i=this.getHighContrastMode();i===Kl.BLACK_ON_WHITE?e.add(pS,uB):i===Kl.WHITE_ON_BLACK&&e.add(pS,hB)}}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),fB=(()=>{class t{constructor(){D(Vde)._applyBodyHighContrastModeCssClasses()}static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({imports:[rB]})}return t})();function jde(t,n){return t===n}function mS(t){return 0===t.buttons||0===t.detail}function gS(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)}function _S(t){return function Ude(){if(null==Ef&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>Ef=!0}))}finally{Ef=Ef||!1}return Ef}()?t:!!t.capture}const zde=new Z("cdk-input-modality-detector-options"),$de={ignoreKeys:[18,17,224,91,16]},bS={passive:!0,capture:!0};let Wde=(()=>{class t{_platform=D($n);_listenerCleanups;modalityDetected;modalityChanged;get mostRecentModality(){return this._modality.value}_mostRecentTarget=null;_modality=new _i(null);_options;_lastTouchMs=0;_onKeydown=e=>{this._options?.ignoreKeys?.some(i=>i===e.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=fr(e))};_onMousedown=e=>{Date.now()-this._lastTouchMs<650||(this._modality.next(mS(e)?"keyboard":"mouse"),this._mostRecentTarget=fr(e))};_onTouchstart=e=>{gS(e)?this._modality.next("keyboard"):(this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=fr(e))};constructor(){const e=D(ge),i=D(Qe),o=D(zde,{optional:!0});if(this._options={...$de,...o},this.modalityDetected=this._modality.pipe(hS(1)),this.modalityChanged=this.modalityDetected.pipe(function Hde(t,n=Ua){return t=t??jde,bn((e,i)=>{let o,r=!0;e.subscribe(en(i,s=>{const a=n(s);(r||!t(o,a))&&(r=!1,o=a,i.next(s))}))})}()),this._platform.isBrowser){const r=D(No).createRenderer(null,null);this._listenerCleanups=e.runOutsideAngular(()=>[r.listen(i,"keydown",this._onKeydown,bS),r.listen(i,"mousedown",this._onMousedown,bS),r.listen(i,"touchstart",this._onTouchstart,bS)])}}ngOnDestroy(){this._modality.complete(),this._listenerCleanups?.forEach(e=>e())}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var bb=function(t){return t[t.IMMEDIATE=0]="IMMEDIATE",t[t.EVENTUAL=1]="EVENTUAL",t}(bb||{});const Gde=new Z("cdk-focus-monitor-default-options"),vb=_S({passive:!0,capture:!0});let qd=(()=>{class t{_ngZone=D(ge);_platform=D($n);_inputModalityDetector=D(Wde);_origin=null;_lastFocusOrigin=null;_windowFocused=!1;_windowFocusTimeoutId;_originTimeoutId;_originFromTouchInteraction=!1;_elementInfo=new Map;_monitoredElementCount=0;_rootNodeFocusListenerCount=new Map;_detectionMode;_windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=setTimeout(()=>this._windowFocused=!1)};_document=D(Qe);_stopInputModalityDetector=new pe;constructor(){const e=D(Gde,{optional:!0});this._detectionMode=e?.detectionMode||bb.IMMEDIATE}_rootNodeFocusAndBlurListener=e=>{for(let o=fr(e);o;o=o.parentElement)"focus"===e.type?this._onFocus(e,o):this._onBlur(e,o)};monitor(e,i=!1){const o=Ts(e);if(!this._platform.isBrowser||1!==o.nodeType)return ae();const r=function Fce(t){if(function Nce(){if(null==nS){const t=typeof document<"u"?document.head:null;nS=!(!t||!t.createShadowRoot&&!t.attachShadow)}return nS}()){const n=t.getRootNode?t.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&n instanceof ShadowRoot)return n}return null}(o)||this._document,s=this._elementInfo.get(o);if(s)return i&&(s.checkChildren=!0),s.subject;const a={checkChildren:i,subject:new pe,rootNode:r};return this._elementInfo.set(o,a),this._registerGlobalListeners(a),a.subject}stopMonitoring(e){const i=Ts(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=Ts(e);r===this._document.activeElement?this._getClosestElementsInfo(r).forEach(([a,l])=>this._originChanged(a,i,l)):(this._setOrigin(i),"function"==typeof r.focus&&r.focus(o))}ngOnDestroy(){this._elementInfo.forEach((e,i)=>this.stopMonitoring(i))}_getWindow(){return this._document.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 this._detectionMode===bb.EVENTUAL||!!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,this._detectionMode===bb.IMMEDIATE&&(clearTimeout(this._originTimeoutId),this._originTimeoutId=setTimeout(()=>this._origin=null,this._originFromTouchInteraction?650:1))})}_onFocus(e,i){const o=this._elementInfo.get(i),r=fr(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,vb),i.addEventListener("blur",this._rootNodeFocusAndBlurListener,vb)}),this._rootNodeFocusListenerCount.set(i,o+1),1===++this._monitoredElementCount&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(on(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,vb),i.removeEventListener("blur",this._rootNodeFocusAndBlurListener,vb),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 s=0;s{class t{_elementRef=D(Ae);_focusMonitor=D(qd);_monitorSubscription;_focusOrigin=null;cdkFocusChange=new ve;constructor(){}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?.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","cdkMonitorElementFocus",""],["","cdkMonitorSubtreeFocus",""]],outputs:{cdkFocusChange:"cdkFocusChange"},exportAs:["cdkMonitorFocus"]})}return t})();function Kde(t,n){}class If{viewContainerRef;injector;id;role="dialog";panelClass="";hasBackdrop=!0;backdropClass="";disableClose=!1;closePredicate;width="";height="";minWidth;minHeight;maxWidth;maxHeight;positionStrategy;data=null;direction;ariaDescribedBy=null;ariaLabelledBy=null;ariaLabel=null;ariaModal=!1;autoFocus="first-tabbable";restoreFocus=!0;scrollStrategy;closeOnNavigation=!0;closeOnDestroy=!0;closeOnOverlayDetachments=!0;disableAnimations=!1;providers;container;templateContext}let mB=(()=>{class t extends lb{_elementRef=D(Ae);_focusTrapFactory=D(Nde);_config;_interactivityChecker=D(sB);_ngZone=D(ge);_focusMonitor=D(qd);_renderer=D(Kn);_changeDetectorRef=D(Pn);_injector=D(Be);_platform=D($n);_document=D(Qe);_portalOutlet;_focusTrapped=new pe;_focusTrap=null;_elementFocusedBeforeDialogWasOpened=null;_closeInteractionType=null;_ariaLabelledByQueue=[];_isDestroyed=!1;constructor(){super(),this._config=D(If,{optional:!0})||new If,this._config.ariaLabelledBy&&this._ariaLabelledByQueue.push(this._config.ariaLabelledBy)}_addAriaLabelledBy(e){this._ariaLabelledByQueue.push(e),this._changeDetectorRef.markForCheck()}_removeAriaLabelledBy(e){const i=this._ariaLabelledByQueue.indexOf(e);i>-1&&(this._ariaLabelledByQueue.splice(i,1),this._changeDetectorRef.markForCheck())}_contentAttached(){this._initializeFocusTrap(),this._captureInitialFocus()}_captureInitialFocus(){this._trapFocus()}ngOnDestroy(){this._focusTrapped.complete(),this._isDestroyed=!0,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}attachDomPortal=e=>{this._portalOutlet.hasAttached();const i=this._portalOutlet.attachDomPortal(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=()=>{r(),s(),e.removeAttribute("tabindex")},r=this._renderer.listen(e,"blur",o),s=this._renderer.listen(e,"mousedown",o)})),e.focus(i)}_focusByCssSelector(e,i){let o=this._elementRef.nativeElement.querySelector(e);o&&this._forceFocus(o,i)}_trapFocus(e){this._isDestroyed||Fi(()=>{const i=this._elementRef.nativeElement;switch(this._config.autoFocus){case!1:case"dialog":this._containsFocus()||i.focus(e);break;case!0:case"first-tabbable":this._focusTrap?.focusInitialElement(e)||this._focusDialogContainer(e);break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]',e);break;default:this._focusByCssSelector(this._config.autoFocus,e)}this._focusTrapped.next()},{injector:this._injector})}_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=iS(),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(e){this._elementRef.nativeElement.focus?.(e)}_containsFocus(){const e=this._elementRef.nativeElement,i=iS();return e===i||e.contains(i)}_initializeFocusTrap(){this._platform.isBrowser&&(this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._document&&(this._elementFocusedBeforeDialogWasOpened=iS()))}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["cdk-dialog-container"]],viewQuery:function(i,o){if(1&i&&rt(Wl,7),2&i){let r;ue(r=he())&&(o._portalOutlet=r.first)}},hostAttrs:["tabindex","-1",1,"cdk-dialog-container"],hostVars:6,hostBindings:function(i,o){2&i&&Ze("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:[be],decls:1,vars:0,consts:[["cdkPortalOutlet",""]],template:function(i,o){1&i&&tt(0,Kde,0,0,"ng-template",0)},dependencies:[Wl],styles:[".cdk-dialog-container{display:block;width:100%;height:100%;min-height:inherit;max-height:inherit}\n"],encapsulation:2})}return t})();class vS{overlayRef;config;componentInstance=null;componentRef=null;containerInstance;disableClose;closed=new pe;backdropClick;keydownEvents;outsidePointerEvents;id;_detachSubscription;constructor(n,e){this.overlayRef=n,this.config=e,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&&!mr(i)&&(i.preventDefault(),this.close(void 0,{focusOrigin:"keyboard"}))}),this.backdropClick.subscribe(()=>{!this.disableClose&&this._canClose()?this.close(void 0,{focusOrigin:"mouse"}):this.containerInstance._recaptureFocus?.()}),this._detachSubscription=n.detachments().subscribe(()=>{!1!==e.closeOnOverlayDetachments&&this.close()})}close(n,e){if(this._canClose(n)){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}_canClose(n){const e=this.config;return!!this.containerInstance&&(!e.closePredicate||e.closePredicate(n,e,this.componentInstance))}}const Yde=new Z("DialogScrollStrategy",{providedIn:"root",factory:()=>{const t=D(Be);return()=>rS(t)}}),Xde=new Z("DialogData"),Zde=new Z("DefaultDialogConfig");function Qde(t){const n=yt(t),e=new ve;return{valueSignal:n,get value(){return n()},change:e,ngOnDestroy(){e.complete()}}}let gB=(()=>{class t{_injector=D(Be);_defaultOptions=D(Zde,{optional:!0});_parentDialog=D(t,{optional:!0,skipSelf:!0});_overlayContainer=D(lS);_idGenerator=D(oi);_openDialogsAtThisLevel=[];_afterAllClosedAtThisLevel=new pe;_afterOpenedAtThisLevel=new pe;_ariaHiddenElements=new Map;_scrollStrategy=D(Yde);get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}afterAllClosed=ba(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(to(void 0)));constructor(){}open(e,i){(i={...this._defaultOptions||new If,...i}).id=i.id||this._idGenerator.getId("cdk-dialog-"),i.id&&this.getDialogById(i.id);const r=this._getOverlayConfig(i),s=$d(this._injector,r),a=new vS(s,i),l=this._attachContainer(s,a,i);if(a.containerInstance=l,!this.openDialogs.length){const c=this._overlayContainer.getContainerElement();l._focusTrapped?l._focusTrapped.pipe(un(1)).subscribe(()=>{this._hideNonDialogContentFromAssistiveTechnology(c)}):this._hideNonDialogContentFromAssistiveTechnology(c)}return this._attachDialogContent(e,a,l,i),this.openDialogs.push(a),a.closed.subscribe(()=>this._removeOpenDialog(a,!0)),this.afterOpened.next(a),a}closeAll(){yS(this.openDialogs,e=>e.close())}getDialogById(e){return this.openDialogs.find(i=>i.id===e)}ngOnDestroy(){yS(this._openDialogsAtThisLevel,e=>{!1===e.config.closeOnDestroy&&this._removeOpenDialog(e,!1)}),yS(this._openDialogsAtThisLevel,e=>e.close()),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete(),this._openDialogsAtThisLevel=[]}_getOverlayConfig(e){const i=new Mf({positionStrategy:e.positionStrategy||pb().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,disableAnimations:e.disableAnimations});return e.backdropClass&&(i.backdropClass=e.backdropClass),i}_attachContainer(e,i,o){const r=o.injector||o.viewContainerRef?.injector,s=[{provide:If,useValue:o},{provide:vS,useValue:i},{provide:Y3,useValue:e}];let a;o.container?"function"==typeof o.container?a=o.container:(a=o.container.type,s.push(...o.container.providers(o))):a=mB;const l=new Ud(a,o.viewContainerRef,Be.create({parent:r||this._injector,providers:s}));return e.attach(l).instance}_attachDialogContent(e,i,o,r){if(e instanceof Ci){const s=this._createInjector(r,i,o,void 0);let a={$implicit:r.data,dialogRef:i};r.templateContext&&(a={...a,..."function"==typeof r.templateContext?r.templateContext():r.templateContext}),o.attachTemplatePortal(new $l(e,null,a,s))}else{const s=this._createInjector(r,i,o,this._injector),a=o.attachComponentPortal(new Ud(e,r.viewContainerRef,s));i.componentRef=a,i.componentInstance=a.instance}}_createInjector(e,i,o,r){const s=e.injector||e.viewContainerRef?.injector,a=[{provide:Xde,useValue:e.data},{provide:vS,useValue:i}];return e.providers&&("function"==typeof e.providers?a.push(...e.providers(i,e,o)):a.push(...e.providers)),e.direction&&(!s||!s.get(hr,null,{optional:!0}))&&a.push({provide:hr,useValue:Qde(e.direction)}),Be.create({parent:s||r,providers:a})}_removeOpenDialog(e,i){const o=this.openDialogs.indexOf(e);o>-1&&(this.openDialogs.splice(o,1),this.openDialogs.length||(this._ariaHiddenElements.forEach((r,s)=>{r?s.setAttribute("aria-hidden",r):s.removeAttribute("aria-hidden")}),this._ariaHiddenElements.clear(),i&&this._getAfterAllClosed().next()))}_hideNonDialogContentFromAssistiveTechnology(e){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")&&!r.hasAttribute("popover")&&(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 \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function yS(t,n){let e=t.length;for(;e--;)n(t[e])}let Jde=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({providers:[gB],imports:[Wd,Sf,fB,Sf]})}return t})();const eue=new Z("MATERIAL_ANIMATIONS");let _B=null;function bB(){return D(eue,{optional:!0})?.animationsDisabled||"NoopAnimations"===D(xm,{optional:!0})?"di-disabled":(_B??=D(fS).matchMedia("(prefers-reduced-motion)").matches,_B?"reduced-motion":"enabled")}function fi(){return"enabled"!==bB()}function gr(...t){const n=Qh(t),e=function Qre(t,n){return"number"==typeof fx(t)?t.pop():n}(t,1/0),i=t;return i.length?1===i.length?Vi(i[0]):Ad(e)(Un(i,n)):Mi}function tue(t,n){}class Lt{viewContainerRef;injector;id;role="dialog";panelClass="";hasBackdrop=!0;backdropClass="";disableClose=!1;closePredicate;width="";height="";minWidth;minHeight;maxWidth;maxHeight;position;data=null;direction;ariaDescribedBy=null;ariaLabelledBy=null;ariaLabel=null;ariaModal=!1;autoFocus="first-tabbable";restoreFocus=!0;delayFocusTrap=!0;scrollStrategy;closeOnNavigation=!0;enterAnimationDuration;exitAnimationDuration}const CS="mdc-dialog--open",vB="mdc-dialog--opening",yB="mdc-dialog--closing";let CB=(()=>{class t extends mB{_animationStateChanged=new ve;_animationsEnabled=!fi();_actionSectionCount=0;_hostElement=this._elementRef.nativeElement;_enterAnimationDuration=this._animationsEnabled?xB(this._config.enterAnimationDuration)??150:0;_exitAnimationDuration=this._animationsEnabled?xB(this._config.exitAnimationDuration)??75:0;_animationTimer=null;_contentAttached(){super._contentAttached(),this._startOpenAnimation()}_startOpenAnimation(){this._animationStateChanged.emit({state:"opening",totalTime:this._enterAnimationDuration}),this._animationsEnabled?(this._hostElement.style.setProperty(wB,`${this._enterAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(vB,CS)),this._waitForAnimationToComplete(this._enterAnimationDuration,this._finishDialogOpen)):(this._hostElement.classList.add(CS),Promise.resolve().then(()=>this._finishDialogOpen()))}_startExitAnimation(){this._animationStateChanged.emit({state:"closing",totalTime:this._exitAnimationDuration}),this._hostElement.classList.remove(CS),this._animationsEnabled?(this._hostElement.style.setProperty(wB,`${this._exitAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(yB)),this._waitForAnimationToComplete(this._exitAnimationDuration,this._finishDialogClose)):Promise.resolve().then(()=>this._finishDialogClose())}_updateActionSectionCount(e){this._actionSectionCount+=e,this._changeDetectorRef.markForCheck()}_finishDialogOpen=()=>{this._clearAnimationClasses(),this._openAnimationDone(this._enterAnimationDuration)};_finishDialogClose=()=>{this._clearAnimationClasses(),this._animationStateChanged.emit({state:"closed",totalTime:this._exitAnimationDuration})};_clearAnimationClasses(){this._hostElement.classList.remove(vB,yB)}_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()})}_captureInitialFocus(){this._config.delayFocusTrap||this._trapFocus()}_openAnimationDone(e){this._config.delayFocusTrap&&this._trapFocus(),this._animationStateChanged.next({state:"opened",totalTime:e})}ngOnDestroy(){super.ngOnDestroy(),null!==this._animationTimer&&clearTimeout(this._animationTimer)}attachComponentPortal(e){const i=super.attachComponentPortal(e);return i.location.nativeElement.classList.add("mat-mdc-dialog-component-host"),i}static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275cmp=se({type:t,selectors:[["mat-dialog-container"]],hostAttrs:["tabindex","-1",1,"mat-mdc-dialog-container","mdc-dialog"],hostVars:10,hostBindings:function(i,o){2&i&&(Lr("id",o._config.id),Ze("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),Ke("_mat-animation-noopable",!o._animationsEnabled)("mat-mdc-dialog-container-with-actions",o._actionSectionCount>0))},features:[be],decls:3,vars:0,consts:[[1,"mat-mdc-dialog-inner-container","mdc-dialog__container"],[1,"mat-mdc-dialog-surface","mdc-dialog__surface"],["cdkPortalOutlet",""]],template:function(i,o){1&i&&(f(0,"div",0)(1,"div",1),tt(2,tue,0,0,"ng-template",2),h()())},dependencies:[Wl],styles:['.mat-mdc-dialog-container{width:100%;height:100%;display:block;box-sizing:border-box;max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit;outline:0}.cdk-overlay-pane.mat-mdc-dialog-panel{max-width:var(--mat-dialog-container-max-width, 560px);min-width:var(--mat-dialog-container-min-width, 280px)}@media(max-width: 599px){.cdk-overlay-pane.mat-mdc-dialog-panel{max-width:var(--mat-dialog-container-small-max-width, calc(100vw - 32px))}}.mat-mdc-dialog-inner-container{display:flex;flex-direction:row;align-items:center;justify-content:space-around;box-sizing:border-box;height:100%;opacity:0;transition:opacity linear var(--mat-dialog-transition-duration, 0ms);max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit}.mdc-dialog--closing .mat-mdc-dialog-inner-container{transition:opacity 75ms linear;transform:none}.mdc-dialog--open .mat-mdc-dialog-inner-container{opacity:1}._mat-animation-noopable .mat-mdc-dialog-inner-container{transition:none}.mat-mdc-dialog-surface{display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;box-sizing:border-box;width:100%;height:100%;position:relative;overflow-y:auto;outline:0;transform:scale(0.8);transition:transform var(--mat-dialog-transition-duration, 0ms) cubic-bezier(0, 0, 0.2, 1);max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit;box-shadow:var(--mat-dialog-container-elevation-shadow, none);border-radius:var(--mat-dialog-container-shape, var(--mat-sys-corner-extra-large, 4px));background-color:var(--mat-dialog-container-color, var(--mat-sys-surface, white))}[dir=rtl] .mat-mdc-dialog-surface{text-align:right}.mdc-dialog--open .mat-mdc-dialog-surface,.mdc-dialog--closing .mat-mdc-dialog-surface{transform:none}._mat-animation-noopable .mat-mdc-dialog-surface{transition:none}.mat-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}.mat-mdc-dialog-title{display:block;position:relative;flex-shrink:0;box-sizing:border-box;margin:0 0 1px;padding:var(--mat-dialog-headline-padding, 6px 24px 13px)}.mat-mdc-dialog-title::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}[dir=rtl] .mat-mdc-dialog-title{text-align:right}.mat-mdc-dialog-container .mat-mdc-dialog-title{color:var(--mat-dialog-subhead-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mat-dialog-subhead-font, var(--mat-sys-headline-small-font, inherit));line-height:var(--mat-dialog-subhead-line-height, var(--mat-sys-headline-small-line-height, 1.5rem));font-size:var(--mat-dialog-subhead-size, var(--mat-sys-headline-small-size, 1rem));font-weight:var(--mat-dialog-subhead-weight, var(--mat-sys-headline-small-weight, 400));letter-spacing:var(--mat-dialog-subhead-tracking, var(--mat-sys-headline-small-tracking, 0.03125em))}.mat-mdc-dialog-content{display:block;flex-grow:1;box-sizing:border-box;margin:0;overflow:auto;max-height:65vh}.mat-mdc-dialog-content>:first-child{margin-top:0}.mat-mdc-dialog-content>:last-child{margin-bottom:0}.mat-mdc-dialog-container .mat-mdc-dialog-content{color:var(--mat-dialog-supporting-text-color, var(--mat-sys-on-surface-variant, rgba(0, 0, 0, 0.6)));font-family:var(--mat-dialog-supporting-text-font, var(--mat-sys-body-medium-font, inherit));line-height:var(--mat-dialog-supporting-text-line-height, var(--mat-sys-body-medium-line-height, 1.5rem));font-size:var(--mat-dialog-supporting-text-size, var(--mat-sys-body-medium-size, 1rem));font-weight:var(--mat-dialog-supporting-text-weight, var(--mat-sys-body-medium-weight, 400));letter-spacing:var(--mat-dialog-supporting-text-tracking, var(--mat-sys-body-medium-tracking, 0.03125em))}.mat-mdc-dialog-container .mat-mdc-dialog-content{padding:var(--mat-dialog-content-padding, 20px 24px)}.mat-mdc-dialog-container-with-actions .mat-mdc-dialog-content{padding:var(--mat-dialog-with-actions-content-padding, 20px 24px 0)}.mat-mdc-dialog-container .mat-mdc-dialog-title+.mat-mdc-dialog-content{padding-top:0}.mat-mdc-dialog-actions{display:flex;position:relative;flex-shrink:0;flex-wrap:wrap;align-items:center;box-sizing:border-box;min-height:52px;margin:0;border-top:1px solid rgba(0,0,0,0);padding:var(--mat-dialog-actions-padding, 16px 24px);justify-content:var(--mat-dialog-actions-alignment, flex-end)}@media(forced-colors: active){.mat-mdc-dialog-actions{border-top-color:CanvasText}}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-start,.mat-mdc-dialog-actions[align=start]{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}.mat-mdc-dialog-component-host{display:contents}\n'],encapsulation:2})}return t})();const wB="--mat-dialog-transition-duration";function xB(t){return null==t?null:"number"==typeof t?t:t.endsWith("ms")?Cf(t.substring(0,t.length-2)):t.endsWith("s")?1e3*Cf(t.substring(0,t.length-1)):"0"===t?0:null}var yb=function(t){return t[t.OPEN=0]="OPEN",t[t.CLOSING=1]="CLOSING",t[t.CLOSED=2]="CLOSED",t}(yb||{});class It{_ref;_config;_containerInstance;componentInstance;componentRef=null;disableClose;id;_afterOpened=new no(1);_beforeClosed=new no(1);_result;_closeFallbackTimeout;_state=yb.OPEN;_closeInteractionType;constructor(n,e,i){this._ref=n,this._config=e,this._containerInstance=i,this.disableClose=e.disableClose,this.id=n.id,n.addPanelClass("mat-mdc-dialog-panel"),i._animationStateChanged.pipe(vn(o=>"opened"===o.state),un(1)).subscribe(()=>{this._afterOpened.next(),this._afterOpened.complete()}),i._animationStateChanged.pipe(vn(o=>"closed"===o.state),un(1)).subscribe(()=>{clearTimeout(this._closeFallbackTimeout),this._finishDialogClose()}),n.overlayRef.detachments().subscribe(()=>{this._beforeClosed.next(this._result),this._beforeClosed.complete(),this._finishDialogClose()}),gr(this.backdropClick(),this.keydownEvents().pipe(vn(o=>27===o.keyCode&&!this.disableClose&&!mr(o)))).subscribe(o=>{this.disableClose||(o.preventDefault(),SB(this,"keydown"===o.type?"keyboard":"mouse"))})}close(n){const e=this._config.closePredicate;e&&!e(n,this._config,this.componentInstance)||(this._result=n,this._containerInstance._animationStateChanged.pipe(vn(i=>"closing"===i.state),un(1)).subscribe(i=>{this._beforeClosed.next(n),this._beforeClosed.complete(),this._ref.overlayRef.detachBackdrop(),this._closeFallbackTimeout=setTimeout(()=>this._finishDialogClose(),i.totalTime+100)}),this._state=yb.CLOSING,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=yb.CLOSED,this._ref.close(this._result,{focusOrigin:this._closeInteractionType}),this.componentInstance=null}}function SB(t,n,e){return t._closeInteractionType=n,t.close(e)}const hn=new Z("MatMdcDialogData"),kB=new Z("mat-mdc-dialog-default-options"),oue=new Z("mat-mdc-dialog-scroll-strategy",{providedIn:"root",factory:()=>{const t=D(Be);return()=>rS(t)}});let kt=(()=>{class t{_defaultOptions=D(kB,{optional:!0});_scrollStrategy=D(oue);_parentDialog=D(t,{optional:!0,skipSelf:!0});_idGenerator=D(oi);_injector=D(Be);_dialog=D(gB);_animationsDisabled=fi();_openDialogsAtThisLevel=[];_afterAllClosedAtThisLevel=new pe;_afterOpenedAtThisLevel=new pe;dialogConfigClass=Lt;_dialogRefConstructor;_dialogContainerType;_dialogDataToken;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}afterAllClosed=ba(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(to(void 0)));constructor(){this._dialogRefConstructor=It,this._dialogContainerType=CB,this._dialogDataToken=hn}open(e,i){let o;(i={...this._defaultOptions||new Lt,...i}).id=i.id||this._idGenerator.getId("mat-mdc-dialog-"),i.scrollStrategy=i.scrollStrategy||this._scrollStrategy();const r=this._dialog.open(e,{...i,positionStrategy:pb().centerHorizontally().centerVertically(),disableClose:!0,closePredicate:void 0,closeOnDestroy:!1,closeOnOverlayDetachments:!1,disableAnimations:this._animationsDisabled||"0"===i.enterAnimationDuration?.toLocaleString()||"0"===i.exitAnimationDuration?.toString(),container:{type:this._dialogContainerType,providers:()=>[{provide:this.dialogConfigClass,useValue:i},{provide:If,useValue:i}]},templateContext:()=>({dialogRef:o}),providers:(s,a,l)=>(o=new this._dialogRefConstructor(s,i,l),o.updatePosition(i?.position),[{provide:this._dialogContainerType,useValue:l},{provide:this._dialogDataToken,useValue:a.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 s=this.openDialogs.indexOf(o);s>-1&&(this.openDialogs.splice(s,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 \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),DB=(()=>{class t{dialogRef=D(It,{optional:!0});_elementRef=D(Ae);_dialog=D(kt);ariaLabel;type="button";dialogResult;_matDialogClose;constructor(){}ngOnInit(){this.dialogRef||(this.dialogRef=EB(this._elementRef,this._dialog.openDialogs))}ngOnChanges(e){const i=e._matDialogClose||e._matDialogCloseResult;i&&(this.dialogResult=i.currentValue)}_onButtonClick(e){SB(this.dialogRef,0===e.screenX&&0===e.screenY?"keyboard":"mouse",this.dialogResult)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","mat-dialog-close",""],["","matDialogClose",""]],hostVars:2,hostBindings:function(i,o){1&i&&L("click",function(s){return o._onButtonClick(s)}),2&i&&Ze("aria-label",o.ariaLabel||null)("type",o.type)},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],type:"type",dialogResult:[0,"mat-dialog-close","dialogResult"],_matDialogClose:[0,"matDialogClose","_matDialogClose"]},exportAs:["matDialogClose"],features:[yi]})}return t})(),TB=(()=>{class t{_dialogRef=D(It,{optional:!0});_elementRef=D(Ae);_dialog=D(kt);constructor(){}ngOnInit(){this._dialogRef||(this._dialogRef=EB(this._elementRef,this._dialog.openDialogs)),this._dialogRef&&Promise.resolve().then(()=>{this._onAdd()})}ngOnDestroy(){this._dialogRef?._containerInstance&&Promise.resolve().then(()=>{this._onRemove()})}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t})}return t})(),wS=(()=>{class t extends TB{id=D(oi).getId("mat-mdc-dialog-title-");_onAdd(){this._dialogRef._containerInstance?._addAriaLabelledBy?.(this.id)}_onRemove(){this._dialogRef?._containerInstance?._removeAriaLabelledBy?.(this.id)}static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275dir=de({type:t,selectors:[["","mat-dialog-title",""],["","matDialogTitle",""]],hostAttrs:[1,"mat-mdc-dialog-title","mdc-dialog__title"],hostVars:1,hostBindings:function(i,o){2&i&&Lr("id",o.id)},inputs:{id:"id"},exportAs:["matDialogTitle"],features:[be]})}return t})(),Kd=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","mat-dialog-content",""],["mat-dialog-content"],["","matDialogContent",""]],hostAttrs:[1,"mat-mdc-dialog-content","mdc-dialog__content"],features:[mP([H3])]})}return t})(),MB=(()=>{class t extends TB{align;_onAdd(){this._dialogRef._containerInstance?._updateActionSectionCount?.(1)}_onRemove(){this._dialogRef._containerInstance?._updateActionSectionCount?.(-1)}static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275dir=de({type:t,selectors:[["","mat-dialog-actions",""],["mat-dialog-actions"],["","matDialogActions",""]],hostAttrs:[1,"mat-mdc-dialog-actions","mdc-dialog__actions"],hostVars:6,hostBindings:function(i,o){2&i&&Ke("mat-mdc-dialog-actions-align-start","start"===o.align)("mat-mdc-dialog-actions-align-center","center"===o.align)("mat-mdc-dialog-actions-align-end","end"===o.align)},inputs:{align:"align"},features:[be]})}return t})();function EB(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 rue=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({providers:[kt],imports:[Jde,Wd,Sf,ri]})}return t})();var Uo=function(t){return t[t.FADING_IN=0]="FADING_IN",t[t.VISIBLE=1]="VISIBLE",t[t.FADING_OUT=2]="FADING_OUT",t[t.HIDDEN=3]="HIDDEN",t}(Uo||{});class sue{_renderer;element;config;_animationForciblyDisabledThroughCss;state=Uo.HIDDEN;constructor(n,e,i,o=!1){this._renderer=n,this.element=e,this.config=i,this._animationForciblyDisabledThroughCss=o}fadeOut(){this._renderer.fadeOutRipple(this)}}const IB=_S({passive:!0,capture:!0});class aue{_events=new Map;addHandler(n,e,i,o){const r=this._events.get(e);if(r){const s=r.get(i);s?s.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,IB)})}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,IB)))}_delegateEventHandler=n=>{const e=fr(n);e&&this._events.get(n.type)?.forEach((i,o)=>{(o===e||o.contains(e))&&i.forEach(r=>r.handleEvent(n))})}}const Cb={enterDuration:225,exitDuration:150},PB=_S({passive:!0,capture:!0}),OB=["mousedown","touchstart"],AB=["mouseup","mouseleave","touchend","touchcancel"];let cue=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["ng-component"]],hostAttrs:["mat-ripple-style-loader",""],decls:0,vars:0,template:function(i,o){},styles:[".mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale3d(0, 0, 0);background-color:var(--mat-ripple-color, color-mix(in srgb, var(--mat-sys-on-surface) 10%, transparent))}@media(forced-colors: active){.mat-ripple-element{display:none}}.cdk-drag-preview .mat-ripple-element,.cdk-drag-placeholder .mat-ripple-element{display:none}\n"],encapsulation:2,changeDetection:0})}return t})();class Pf{_target;_ngZone;_platform;_containerElement;_triggerElement=null;_isPointerDown=!1;_activeRipples=new Map;_mostRecentTransientRipple=null;_lastTouchStartEvent;_pointerUpEventsRegistered=!1;_containerRect=null;static _eventManager=new aue;constructor(n,e,i,o,r){this._target=n,this._ngZone=e,this._platform=o,o.isBrowser&&(this._containerElement=Ts(i)),r&&r.get(pr).load(cue)}fadeInRipple(n,e,i={}){const o=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),r={...Cb,...i.animation};i.centered&&(n=o.left+o.width/2,e=o.top+o.height/2);const s=i.radius||function due(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),a=n-o.left,l=e-o.top,c=r.enterDuration,u=document.createElement("div");u.classList.add("mat-ripple-element"),u.style.left=a-s+"px",u.style.top=l-s+"px",u.style.height=2*s+"px",u.style.width=2*s+"px",null!=i.color&&(u.style.backgroundColor=i.color),u.style.transitionDuration=`${c}ms`,this._containerElement.appendChild(u);const p=window.getComputedStyle(u),_=p.transitionDuration,w="none"===p.transitionProperty||"0s"===_||"0s, 0s"===_||0===o.width&&0===o.height,x=new sue(this,u,i,w);u.style.transform="scale3d(1, 1, 1)",x.state=Uo.FADING_IN,i.persistent||(this._mostRecentTransientRipple=x);let T=null;return!w&&(c||r.exitDuration)&&this._ngZone.runOutsideAngular(()=>{const E=()=>{T&&(T.fallbackTimer=null),clearTimeout(W),this._finishRippleTransition(x)},R=()=>this._destroyRipple(x),W=setTimeout(R,c+100);u.addEventListener("transitionend",E),u.addEventListener("transitioncancel",R),T={onTransitionEnd:E,onTransitionCancel:R,fallbackTimer:W}}),this._activeRipples.set(x,T),(w||!c)&&this._finishRippleTransition(x),x}fadeOutRipple(n){if(n.state===Uo.FADING_OUT||n.state===Uo.HIDDEN)return;const e=n.element,i={...Cb,...n.config.animation};e.style.transitionDuration=`${i.exitDuration}ms`,e.style.opacity="0",n.state=Uo.FADING_OUT,(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=Ts(n);!this._platform.isBrowser||!e||e===this._triggerElement||(this._removeTriggerEvents(),this._triggerElement=e,OB.forEach(i=>{Pf._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(()=>{AB.forEach(e=>{this._triggerElement.addEventListener(e,this,PB)})}),this._pointerUpEventsRegistered=!0)}_finishRippleTransition(n){n.state===Uo.FADING_IN?this._startFadeOutTransition(n):n.state===Uo.FADING_OUT&&this._destroyRipple(n)}_startFadeOutTransition(n){const e=n===this._mostRecentTransientRipple,{persistent:i}=n.config;n.state=Uo.VISIBLE,!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=Uo.HIDDEN,null!==e&&(n.element.removeEventListener("transitionend",e.onTransitionEnd),n.element.removeEventListener("transitioncancel",e.onTransitionCancel),null!==e.fallbackTimer&&clearTimeout(e.fallbackTimer)),n.element.remove()}_onMousedown(n){const e=mS(n),i=this._lastTouchStartEvent&&Date.now(){!n.config.persistent&&(n.state===Uo.VISIBLE||n.config.terminateOnPointerUp&&n.state===Uo.FADING_IN)&&n.fadeOut()}))}_getActiveRipples(){return Array.from(this._activeRipples.keys())}_removeTriggerEvents(){const n=this._triggerElement;n&&(OB.forEach(e=>Pf._eventManager.removeHandler(e,n,this)),this._pointerUpEventsRegistered&&(AB.forEach(e=>n.removeEventListener(e,this,PB)),this._pointerUpEventsRegistered=!1))}}const xS=new Z("mat-ripple-global-options");let Of=(()=>{class t{_elementRef=D(Ae);_animationsDisabled=fi();color;unbounded=!1;centered=!1;radius=0;animation;get disabled(){return this._disabled}set disabled(e){e&&this.fadeOutAllNonPersistent(),this._disabled=e,this._setupTriggerEventsIfEnabled()}_disabled=!1;get trigger(){return this._trigger||this._elementRef.nativeElement}set trigger(e){this._trigger=e,this._setupTriggerEventsIfEnabled()}_trigger;_rippleRenderer;_globalOptions;_isInitialized=!1;constructor(){const e=D(ge),i=D($n),o=D(xS,{optional:!0}),r=D(Be);this._globalOptions=o||{},this._rippleRenderer=new Pf(this,e,this._elementRef,i,r)}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,...this._animationsDisabled?{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 \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(i,o){2&i&&Ke("mat-ripple-unbounded",o.unbounded)},inputs:{color:[0,"matRippleColor","color"],unbounded:[0,"matRippleUnbounded","unbounded"],centered:[0,"matRippleCentered","centered"],radius:[0,"matRippleRadius","radius"],animation:[0,"matRippleAnimation","animation"],disabled:[0,"matRippleDisabled","disabled"],trigger:[0,"matRippleTrigger","trigger"]},exportAs:["matRipple"]})}return t})();const uue={capture:!0},hue=["focus","mousedown","mouseenter","touchstart"],SS="mat-ripple-loader-uninitialized",kS="mat-ripple-loader-class-name",RB="mat-ripple-loader-centered",wb="mat-ripple-loader-disabled";let fue=(()=>{class t{_document=D(Qe);_animationsDisabled=fi();_globalRippleOptions=D(xS,{optional:!0});_platform=D($n);_ngZone=D(ge);_injector=D(Be);_eventCleanups;_hosts=new Map;constructor(){const e=D(No).createRenderer(null,null);this._eventCleanups=this._ngZone.runOutsideAngular(()=>hue.map(i=>e.listen(this._document,i,this._onInteraction,uue)))}ngOnDestroy(){const e=this._hosts.keys();for(const i of e)this.destroyRipple(i);this._eventCleanups.forEach(i=>i())}configureRipple(e,i){e.setAttribute(SS,this._globalRippleOptions?.namespace??""),(i.className||!e.hasAttribute(kS))&&e.setAttribute(kS,i.className||""),i.centered&&e.setAttribute(RB,""),i.disabled&&e.setAttribute(wb,"")}setDisabled(e,i){const o=this._hosts.get(e);o?(o.target.rippleDisabled=i,!i&&!o.hasSetUpEvents&&(o.hasSetUpEvents=!0,o.renderer.setupTriggerEvents(e))):i?e.setAttribute(wb,""):e.removeAttribute(wb)}_onInteraction=e=>{const i=fr(e);if(i instanceof HTMLElement){const o=i.closest(`[${SS}="${this._globalRippleOptions?.namespace??""}"]`);o&&this._createRipple(o)}};_createRipple(e){if(!this._document||this._hosts.has(e))return;e.querySelector(".mat-ripple")?.remove();const i=this._document.createElement("span");i.classList.add("mat-ripple",e.getAttribute(kS)),e.append(i);const o=this._globalRippleOptions,r=this._animationsDisabled?0:o?.animation?.enterDuration??Cb.enterDuration,s=this._animationsDisabled?0:o?.animation?.exitDuration??Cb.exitDuration,a={rippleDisabled:this._animationsDisabled||o?.disabled||e.hasAttribute(wb),rippleConfig:{centered:e.hasAttribute(RB),terminateOnPointerUp:o?.terminateOnPointerUp,animation:{enterDuration:r,exitDuration:s}}},l=new Pf(a,this._ngZone,i,this._platform,this._injector),c=!a.rippleDisabled;c&&l.setupTriggerEvents(e),this._hosts.set(e,{target:a,renderer:l,hasSetUpEvents:c}),e.removeAttribute(SS)}destroyRipple(e){const i=this._hosts.get(e);i&&(i.renderer._removeTriggerEvents(),this._hosts.delete(e))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Af=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["structural-styles"]],decls:0,vars:0,template:function(i,o){},styles:['.mat-focus-indicator{position:relative}.mat-focus-indicator::before{top:0;left:0;right:0;bottom:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border-width:var(--mat-focus-indicator-border-width, 3px);border-style:var(--mat-focus-indicator-border-style, solid);border-color:var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus-visible::before{content:""}@media(forced-colors: active){html{--mat-focus-indicator-display: block}}\n'],encapsulation:2,changeDetection:0})}return t})();const pue=["mat-icon-button",""],mue=["*"],gue=new Z("MAT_BUTTON_CONFIG");function NB(t){return null==t?void 0:Br(t)}let FB=(()=>{class t{_elementRef=D(Ae);_ngZone=D(ge);_animationsDisabled=fi();_config=D(gue,{optional:!0});_focusMonitor=D(qd);_cleanupClick;_renderer=D(Kn);_rippleLoader=D(fue);_isAnchor;_isFab=!1;color;get disableRipple(){return this._disableRipple}set disableRipple(e){this._disableRipple=e,this._updateRippleDisabled()}_disableRipple=!1;get disabled(){return this._disabled}set disabled(e){this._disabled=e,this._updateRippleDisabled()}_disabled=!1;ariaDisabled;disabledInteractive;tabIndex;set _tabindex(e){this.tabIndex=e}constructor(){D(pr).load(Af);const e=this._elementRef.nativeElement;this._isAnchor="A"===e.tagName,this.disabledInteractive=this._config?.disabledInteractive??!1,this.color=this._config?.color??null,this._rippleLoader?.configureRipple(e,{className:"mat-mdc-button-ripple"})}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0),this._isAnchor&&this._setupAsAnchor()}ngOnDestroy(){this._cleanupClick?.(),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)}_getAriaDisabled(){return null!=this.ariaDisabled?this.ariaDisabled:this._isAnchor?this.disabled||null:!(!this.disabled||!this.disabledInteractive)||null}_getDisabledAttribute(){return!(this.disabledInteractive||!this.disabled)||null}_updateRippleDisabled(){this._rippleLoader?.setDisabled(this._elementRef.nativeElement,this.disableRipple||this.disabled)}_getTabIndex(){return this._isAnchor&&this.disabled&&!this.disabledInteractive?-1:this.tabIndex}_setupAsAnchor(){this._cleanupClick=this._ngZone.runOutsideAngular(()=>this._renderer.listen(this._elementRef.nativeElement,"click",e=>{this.disabled&&(e.preventDefault(),e.stopImmediatePropagation())}))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,hostAttrs:[1,"mat-mdc-button-base"],hostVars:13,hostBindings:function(i,o){2&i&&(Ze("disabled",o._getDisabledAttribute())("aria-disabled",o._getAriaDisabled())("tabindex",o._getTabIndex()),at(o.color?"mat-"+o.color:""),Ke("mat-mdc-button-disabled",o.disabled)("mat-mdc-button-disabled-interactive",o.disabledInteractive)("mat-unthemed",!o.color)("_mat-animation-noopable",o._animationsDisabled))},inputs:{color:"color",disableRipple:[2,"disableRipple","disableRipple",Ie],disabled:[2,"disabled","disabled",Ie],ariaDisabled:[2,"aria-disabled","ariaDisabled",Ie],disabledInteractive:[2,"disabledInteractive","disabledInteractive",Ie],tabIndex:[2,"tabIndex","tabIndex",NB],_tabindex:[2,"tabindex","_tabindex",NB]}})}return t})(),Ms=(()=>{class t extends FB{constructor(){super(),this._rippleLoader.configureRipple(this._elementRef.nativeElement,{centered:!0})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["button","mat-icon-button",""],["a","mat-icon-button",""],["button","matIconButton",""],["a","matIconButton",""]],hostAttrs:[1,"mdc-icon-button","mat-mdc-icon-button"],exportAs:["matButton","matAnchor"],features:[be],attrs:pue,ngContentSelectors:mue,decls:4,vars:0,consts:[[1,"mat-mdc-button-persistent-ripple","mdc-icon-button__ripple"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,o){1&i&&(Si(),la(0,"span",0),At(1),la(2,"span",1)(3,"span",2))},styles:['.mat-mdc-icon-button{-webkit-user-select:none;user-select:none;display:inline-block;position:relative;box-sizing:border-box;border:none;outline:none;background-color:rgba(0,0,0,0);fill:currentColor;text-decoration:none;cursor:pointer;z-index:0;overflow:visible;border-radius:var(--mat-icon-button-container-shape, var(--mat-sys-corner-full, 50%));flex-shrink:0;text-align:center;width:var(--mat-icon-button-state-layer-size, 40px);height:var(--mat-icon-button-state-layer-size, 40px);padding:calc(calc(var(--mat-icon-button-state-layer-size, 40px) - var(--mat-icon-button-icon-size, 24px)) / 2);font-size:var(--mat-icon-button-icon-size, 24px);color:var(--mat-icon-button-icon-color, var(--mat-sys-on-surface-variant));-webkit-tap-highlight-color:rgba(0,0,0,0)}.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}.mat-mdc-icon-button .mdc-button__label,.mat-mdc-icon-button .mat-icon{z-index:1;position:relative}.mat-mdc-icon-button .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit}.mat-mdc-icon-button:focus-visible>.mat-focus-indicator::before{content:"";border-radius:inherit}.mat-mdc-icon-button .mat-ripple-element{background-color:var(--mat-icon-button-ripple-color, color-mix(in srgb, var(--mat-sys-on-surface-variant) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-icon-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-icon-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-icon-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:var(--mat-icon-button-touch-target-size, 48px);display:var(--mat-icon-button-touch-target-display, block);left:50%;width:var(--mat-icon-button-touch-target-size, 48px);transform:translate(-50%, -50%)}.mat-mdc-icon-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-icon-button[disabled],.mat-mdc-icon-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-icon-button-disabled-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-icon-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-icon-button img,.mat-mdc-icon-button svg{width:var(--mat-icon-button-icon-size, 24px);height:var(--mat-icon-button-icon-size, 24px);vertical-align:baseline}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple{border-radius:var(--mat-icon-button-container-shape, var(--mat-sys-corner-full, 50%))}.mat-mdc-icon-button[hidden]{display:none}.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}\n',"@media(forced-colors: active){.mat-mdc-button:not(.mdc-button--outlined),.mat-mdc-unelevated-button:not(.mdc-button--outlined),.mat-mdc-raised-button:not(.mdc-button--outlined),.mat-mdc-outlined-button:not(.mdc-button--outlined),.mat-mdc-button-base.mat-tonal-button,.mat-mdc-icon-button.mat-mdc-icon-button,.mat-mdc-outlined-button .mdc-button__ripple{outline:solid 1px}}\n"],encapsulation:2,changeDetection:0})}return t})(),DS=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({imports:[ri]})}return t})();const _ue=["matButton",""],bue=[[["",8,"material-icons",3,"iconPositionEnd",""],["mat-icon",3,"iconPositionEnd",""],["","matButtonIcon","",3,"iconPositionEnd",""]],"*",[["","iconPositionEnd","",8,"material-icons"],["mat-icon","iconPositionEnd",""],["","matButtonIcon","","iconPositionEnd",""]]],vue=[".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])","*",".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"],LB=new Map([["text",["mat-mdc-button"]],["filled",["mdc-button--unelevated","mat-mdc-unelevated-button"]],["elevated",["mdc-button--raised","mat-mdc-raised-button"]],["outlined",["mdc-button--outlined","mat-mdc-outlined-button"]],["tonal",["mat-tonal-button"]]]);let Jn=(()=>{class t extends FB{get appearance(){return this._appearance}set appearance(e){this.setAppearance(e||this._config?.defaultAppearance||"text")}_appearance=null;constructor(){super();const e=function yue(t){return t.hasAttribute("mat-raised-button")?"elevated":t.hasAttribute("mat-stroked-button")?"outlined":t.hasAttribute("mat-flat-button")?"filled":t.hasAttribute("mat-button")?"text":null}(this._elementRef.nativeElement);e&&this.setAppearance(e)}setAppearance(e){if(e===this._appearance)return;const i=this._elementRef.nativeElement.classList,o=this._appearance?LB.get(this._appearance):null,r=LB.get(e);o&&i.remove(...o),i.add(...r),this._appearance=e}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["button","matButton",""],["a","matButton",""],["button","mat-button",""],["button","mat-raised-button",""],["button","mat-flat-button",""],["button","mat-stroked-button",""],["a","mat-button",""],["a","mat-raised-button",""],["a","mat-flat-button",""],["a","mat-stroked-button",""]],hostAttrs:[1,"mdc-button"],inputs:{appearance:[0,"matButton","appearance"]},exportAs:["matButton","matAnchor"],features:[be],attrs:_ue,ngContentSelectors:vue,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,o){1&i&&(Si(bue),la(0,"span",0),At(1),gs(2,"span",1),At(3,1),Tl(),At(4,2),la(5,"span",2)(6,"span",3)),2&i&&Ke("mdc-button__ripple",!o._isFab)("mdc-fab__ripple",o._isFab)},styles:['.mat-mdc-button-base{text-decoration:none}.mat-mdc-button-base .mat-icon{min-height:fit-content;flex-shrink:0}@media(hover: none){.mat-mdc-button-base:hover>span.mat-mdc-button-persistent-ripple::before{opacity:0}}.mdc-button{-webkit-user-select:none;user-select:none;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;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0);padding:0 8px}.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__label{position:relative}.mat-mdc-button{padding:0 var(--mat-button-text-horizontal-padding, 12px);height:var(--mat-button-text-container-height, 40px);font-family:var(--mat-button-text-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mat-button-text-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mat-button-text-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mat-button-text-label-text-transform);font-weight:var(--mat-button-text-label-text-weight, var(--mat-sys-label-large-weight))}.mat-mdc-button,.mat-mdc-button .mdc-button__ripple{border-radius:var(--mat-button-text-container-shape, var(--mat-sys-corner-full))}.mat-mdc-button:not(:disabled){color:var(--mat-button-text-label-text-color, var(--mat-sys-primary))}.mat-mdc-button[disabled],.mat-mdc-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-button-text-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-button:has(.material-icons,mat-icon,[matButtonIcon]){padding:0 var(--mat-button-text-with-icon-horizontal-padding, 16px)}.mat-mdc-button>.mat-icon{margin-right:var(--mat-button-text-icon-spacing, 8px);margin-left:var(--mat-button-text-icon-offset, -4px)}[dir=rtl] .mat-mdc-button>.mat-icon{margin-right:var(--mat-button-text-icon-offset, -4px);margin-left:var(--mat-button-text-icon-spacing, 8px)}.mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-text-icon-offset, -4px);margin-left:var(--mat-button-text-icon-spacing, 8px)}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-text-icon-spacing, 8px);margin-left:var(--mat-button-text-icon-offset, -4px)}.mat-mdc-button .mat-ripple-element{background-color:var(--mat-button-text-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-text-state-layer-color, var(--mat-sys-primary))}.mat-mdc-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-text-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-text-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-text-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-text-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:var(--mat-button-text-touch-target-size, 48px);display:var(--mat-button-text-touch-target-display, block);left:0;right:0;transform:translateY(-50%)}.mat-mdc-unelevated-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mat-button-filled-container-height, 40px);font-family:var(--mat-button-filled-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mat-button-filled-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mat-button-filled-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mat-button-filled-label-text-transform);font-weight:var(--mat-button-filled-label-text-weight, var(--mat-sys-label-large-weight));padding:0 var(--mat-button-filled-horizontal-padding, 24px)}.mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-button-filled-icon-spacing, 8px);margin-left:var(--mat-button-filled-icon-offset, -8px)}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-button-filled-icon-offset, -8px);margin-left:var(--mat-button-filled-icon-spacing, 8px)}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-filled-icon-offset, -8px);margin-left:var(--mat-button-filled-icon-spacing, 8px)}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-filled-icon-spacing, 8px);margin-left:var(--mat-button-filled-icon-offset, -8px)}.mat-mdc-unelevated-button .mat-ripple-element{background-color:var(--mat-button-filled-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-filled-state-layer-color, var(--mat-sys-on-primary))}.mat-mdc-unelevated-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-filled-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-unelevated-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-filled-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-unelevated-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-filled-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-unelevated-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-filled-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-unelevated-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:var(--mat-button-filled-touch-target-size, 48px);display:var(--mat-button-filled-touch-target-display, block);left:0;right:0;transform:translateY(-50%)}.mat-mdc-unelevated-button:not(:disabled){color:var(--mat-button-filled-label-text-color, var(--mat-sys-on-primary));background-color:var(--mat-button-filled-container-color, var(--mat-sys-primary))}.mat-mdc-unelevated-button,.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mat-button-filled-container-shape, var(--mat-sys-corner-full))}.mat-mdc-unelevated-button[disabled],.mat-mdc-unelevated-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-button-filled-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-button-filled-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-raised-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);box-shadow:var(--mat-button-protected-container-elevation-shadow, var(--mat-sys-level1));height:var(--mat-button-protected-container-height, 40px);font-family:var(--mat-button-protected-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mat-button-protected-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mat-button-protected-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mat-button-protected-label-text-transform);font-weight:var(--mat-button-protected-label-text-weight, var(--mat-sys-label-large-weight));padding:0 var(--mat-button-protected-horizontal-padding, 24px)}.mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-button-protected-icon-spacing, 8px);margin-left:var(--mat-button-protected-icon-offset, -8px)}[dir=rtl] .mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-button-protected-icon-offset, -8px);margin-left:var(--mat-button-protected-icon-spacing, 8px)}.mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-protected-icon-offset, -8px);margin-left:var(--mat-button-protected-icon-spacing, 8px)}[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-protected-icon-spacing, 8px);margin-left:var(--mat-button-protected-icon-offset, -8px)}.mat-mdc-raised-button .mat-ripple-element{background-color:var(--mat-button-protected-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-protected-state-layer-color, var(--mat-sys-primary))}.mat-mdc-raised-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-protected-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-raised-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-protected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-raised-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-protected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-raised-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-protected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-raised-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:var(--mat-button-protected-touch-target-size, 48px);display:var(--mat-button-protected-touch-target-display, block);left:0;right:0;transform:translateY(-50%)}.mat-mdc-raised-button:not(:disabled){color:var(--mat-button-protected-label-text-color, var(--mat-sys-primary));background-color:var(--mat-button-protected-container-color, var(--mat-sys-surface))}.mat-mdc-raised-button,.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mat-button-protected-container-shape, var(--mat-sys-corner-full))}@media(hover: hover){.mat-mdc-raised-button:hover{box-shadow:var(--mat-button-protected-hover-container-elevation-shadow, var(--mat-sys-level2))}}.mat-mdc-raised-button:focus{box-shadow:var(--mat-button-protected-focus-container-elevation-shadow, var(--mat-sys-level1))}.mat-mdc-raised-button:active,.mat-mdc-raised-button:focus:active{box-shadow:var(--mat-button-protected-pressed-container-elevation-shadow, var(--mat-sys-level1))}.mat-mdc-raised-button[disabled],.mat-mdc-raised-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-button-protected-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-button-protected-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-raised-button[disabled].mat-mdc-button-disabled,.mat-mdc-raised-button.mat-mdc-button-disabled.mat-mdc-button-disabled{box-shadow:var(--mat-button-protected-disabled-container-elevation-shadow, var(--mat-sys-level0))}.mat-mdc-raised-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mat-button-outlined-container-height, 40px);font-family:var(--mat-button-outlined-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mat-button-outlined-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mat-button-outlined-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mat-button-outlined-label-text-transform);font-weight:var(--mat-button-outlined-label-text-weight, var(--mat-sys-label-large-weight));border-radius:var(--mat-button-outlined-container-shape, var(--mat-sys-corner-full));border-width:var(--mat-button-outlined-outline-width, 1px);padding:0 var(--mat-button-outlined-horizontal-padding, 24px)}.mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-button-outlined-icon-spacing, 8px);margin-left:var(--mat-button-outlined-icon-offset, -8px)}[dir=rtl] .mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-button-outlined-icon-offset, -8px);margin-left:var(--mat-button-outlined-icon-spacing, 8px)}.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-outlined-icon-offset, -8px);margin-left:var(--mat-button-outlined-icon-spacing, 8px)}[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-outlined-icon-spacing, 8px);margin-left:var(--mat-button-outlined-icon-offset, -8px)}.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-button-outlined-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-outlined-state-layer-color, var(--mat-sys-primary))}.mat-mdc-outlined-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-outlined-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-outlined-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-outlined-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-outlined-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-outlined-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-outlined-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-outlined-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:var(--mat-button-outlined-touch-target-size, 48px);display:var(--mat-button-outlined-touch-target-display, block);left:0;right:0;transform:translateY(-50%)}.mat-mdc-outlined-button:not(:disabled){color:var(--mat-button-outlined-label-text-color, var(--mat-sys-primary));border-color:var(--mat-button-outlined-outline-color, var(--mat-sys-outline))}.mat-mdc-outlined-button[disabled],.mat-mdc-outlined-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-button-outlined-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:var(--mat-button-outlined-disabled-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-tonal-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mat-button-tonal-container-height, 40px);font-family:var(--mat-button-tonal-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mat-button-tonal-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mat-button-tonal-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mat-button-tonal-label-text-transform);font-weight:var(--mat-button-tonal-label-text-weight, var(--mat-sys-label-large-weight));padding:0 var(--mat-button-tonal-horizontal-padding, 24px)}.mat-tonal-button:not(:disabled){color:var(--mat-button-tonal-label-text-color, var(--mat-sys-on-secondary-container));background-color:var(--mat-button-tonal-container-color, var(--mat-sys-secondary-container))}.mat-tonal-button,.mat-tonal-button .mdc-button__ripple{border-radius:var(--mat-button-tonal-container-shape, var(--mat-sys-corner-full))}.mat-tonal-button[disabled],.mat-tonal-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-button-tonal-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-button-tonal-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-tonal-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-tonal-button>.mat-icon{margin-right:var(--mat-button-tonal-icon-spacing, 8px);margin-left:var(--mat-button-tonal-icon-offset, -8px)}[dir=rtl] .mat-tonal-button>.mat-icon{margin-right:var(--mat-button-tonal-icon-offset, -8px);margin-left:var(--mat-button-tonal-icon-spacing, 8px)}.mat-tonal-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-tonal-icon-offset, -8px);margin-left:var(--mat-button-tonal-icon-spacing, 8px)}[dir=rtl] .mat-tonal-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-tonal-icon-spacing, 8px);margin-left:var(--mat-button-tonal-icon-offset, -8px)}.mat-tonal-button .mat-ripple-element{background-color:var(--mat-button-tonal-ripple-color, color-mix(in srgb, var(--mat-sys-on-secondary-container) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-tonal-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-tonal-state-layer-color, var(--mat-sys-on-secondary-container))}.mat-tonal-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-tonal-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-tonal-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-tonal-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-tonal-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-tonal-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-tonal-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-tonal-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-tonal-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-tonal-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-tonal-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:var(--mat-button-tonal-touch-target-size, 48px);display:var(--mat-button-tonal-touch-target-display, block);left:0;right:0;transform:translateY(-50%)}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button,.mat-tonal-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,.mat-tonal-button .mat-mdc-button-ripple,.mat-tonal-button .mat-mdc-button-persistent-ripple,.mat-tonal-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,.mat-tonal-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,.mat-tonal-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-button .mdc-button__label,.mat-mdc-button .mat-icon,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-unelevated-button .mat-icon,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-raised-button .mat-icon,.mat-mdc-outlined-button .mdc-button__label,.mat-mdc-outlined-button .mat-icon,.mat-tonal-button .mdc-button__label,.mat-tonal-button .mat-icon{z-index:1;position:relative}.mat-mdc-button .mat-focus-indicator,.mat-mdc-unelevated-button .mat-focus-indicator,.mat-mdc-raised-button .mat-focus-indicator,.mat-mdc-outlined-button .mat-focus-indicator,.mat-tonal-button .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit}.mat-mdc-button:focus-visible>.mat-focus-indicator::before,.mat-mdc-unelevated-button:focus-visible>.mat-focus-indicator::before,.mat-mdc-raised-button:focus-visible>.mat-focus-indicator::before,.mat-mdc-outlined-button:focus-visible>.mat-focus-indicator::before,.mat-tonal-button:focus-visible>.mat-focus-indicator::before{content:"";border-radius:inherit}.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,.mat-tonal-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon,.mat-tonal-button>.mat-icon{display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px}.mat-mdc-unelevated-button .mat-focus-indicator::before,.mat-tonal-button .mat-focus-indicator::before,.mat-mdc-raised-button .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-outlined-button .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 3px)*-1)}\n',"@media(forced-colors: active){.mat-mdc-button:not(.mdc-button--outlined),.mat-mdc-unelevated-button:not(.mdc-button--outlined),.mat-mdc-raised-button:not(.mdc-button--outlined),.mat-mdc-outlined-button:not(.mdc-button--outlined),.mat-mdc-button-base.mat-tonal-button,.mat-mdc-icon-button.mat-mdc-icon-button,.mat-mdc-outlined-button .mdc-button__ripple{outline:solid 1px}}\n"],encapsulation:2,changeDetection:0})}return t})(),BB=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({imports:[DS,ri]})}return t})();function xue(t,n){if(1&t){const e=ce();f(0,"div",1)(1,"button",2),L("click",function(){return z(e),$(C().action())}),m(2),h()()}if(2&t){const e=C();d(2),I(" ",e.data.action," ")}}const Sue=["label"];function kue(t,n){}const Due=Math.pow(2,31)-1;class xb{_overlayRef;instance;containerInstance;_afterDismissed=new pe;_afterOpened=new pe;_onAction=new pe;_durationTimeoutId;_dismissedByAction=!1;constructor(n,e){this._overlayRef=e,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,Due))}_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 TS=new Z("MatSnackBarData");class Sb{politeness="polite";announcementMessage="";viewContainerRef;duration=0;panelClass;direction;data=null;horizontalPosition="center";verticalPosition="bottom"}let VB=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","matSnackBarLabel",""]],hostAttrs:[1,"mat-mdc-snack-bar-label","mdc-snackbar__label"]})}return t})(),HB=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","matSnackBarActions",""]],hostAttrs:[1,"mat-mdc-snack-bar-actions","mdc-snackbar__actions"]})}return t})(),jB=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","matSnackBarAction",""]],hostAttrs:[1,"mat-mdc-snack-bar-action","mdc-snackbar__action"]})}return t})(),UB=(()=>{class t{snackBarRef=D(xb);data=D(TS);constructor(){}action(){this.snackBarRef.dismissWithAction()}get hasAction(){return!!this.data.action}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["simple-snack-bar"]],hostAttrs:[1,"mat-mdc-simple-snack-bar"],exportAs:["matSnackBar"],decls:3,vars:2,consts:[["matSnackBarLabel",""],["matSnackBarActions",""],["matButton","","matSnackBarAction","",3,"click"]],template:function(i,o){1&i&&(f(0,"div",0),m(1),h(),S(2,xue,3,1,"div",1)),2&i&&(d(),I(" ",o.data.message,"\n"),d(),k(o.hasAction?2:-1))},dependencies:[Jn,VB,HB,jB],styles:[".mat-mdc-simple-snack-bar{display:flex}.mat-mdc-simple-snack-bar .mat-mdc-snack-bar-label{max-height:50vh;overflow:auto}\n"],encapsulation:2,changeDetection:0})}return t})();const MS="_mat-snack-bar-enter",ES="_mat-snack-bar-exit";let zB=(()=>{class t extends lb{_ngZone=D(ge);_elementRef=D(Ae);_changeDetectorRef=D(Pn);_platform=D($n);_animationsDisabled=fi();snackBarConfig=D(Sb);_document=D(Qe);_trackedModals=new Set;_enterFallback;_exitFallback;_injector=D(Be);_announceDelay=150;_announceTimeoutId;_destroyed=!1;_portalOutlet;_onAnnounce=new pe;_onExit=new pe;_onEnter=new pe;_animationState="void";_live;_label;_role;_liveElementId=D(oi).getId("mat-snack-bar-container-live-");constructor(){super();const e=this.snackBarConfig;this._live="assertive"!==e.politeness||e.announcementMessage?"off"===e.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}attachDomPortal=e=>{this._assertNotAttached();const i=this._portalOutlet.attachDomPortal(e);return this._afterPortalAttached(),i};onAnimationEnd(e){e===ES?this._completeExit():e===MS&&(clearTimeout(this._enterFallback),this._ngZone.run(()=>{this._onEnter.next(),this._onEnter.complete()}))}enter(){this._destroyed||(this._animationState="visible",this._changeDetectorRef.markForCheck(),this._changeDetectorRef.detectChanges(),this._screenReaderAnnounce(),this._animationsDisabled?Fi(()=>{this._ngZone.run(()=>queueMicrotask(()=>this.onAnimationEnd(MS)))},{injector:this._injector}):(clearTimeout(this._enterFallback),this._enterFallback=setTimeout(()=>{this._elementRef.nativeElement.classList.add("mat-snack-bar-fallback-visible"),this.onAnimationEnd(MS)},200)))}exit(){return this._destroyed?ae(void 0):(this._ngZone.run(()=>{this._animationState="hidden",this._changeDetectorRef.markForCheck(),this._elementRef.nativeElement.setAttribute("mat-exit",""),clearTimeout(this._announceTimeoutId),this._animationsDisabled?Fi(()=>{this._ngZone.run(()=>queueMicrotask(()=>this.onAnimationEnd(ES)))},{injector:this._injector}):(clearTimeout(this._exitFallback),this._exitFallback=setTimeout(()=>this.onAnimationEnd(ES),200))}),this._onExit)}ngOnDestroy(){this._destroyed=!0,this._clearFromModals(),this._completeExit()}_completeExit(){clearTimeout(this._exitFallback),queueMicrotask(()=>{this._onExit.next(),this._onExit.complete()})}_afterPortalAttached(){const e=this._elementRef.nativeElement,i=this.snackBarConfig.panelClass;i&&(Array.isArray(i)?i.forEach(s=>e.classList.add(s)):e.classList.add(i)),this._exposeToModals();const o=this._label.nativeElement,r="mdc-snackbar__label";o.classList.toggle(r,!o.querySelector(`.${r}`))}_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(()=>{if(this._destroyed)return;const e=this._elementRef.nativeElement,i=e.querySelector("[aria-hidden]"),o=e.querySelector("[aria-live]");if(i&&o){let r=null;this._platform.isBrowser&&document.activeElement instanceof HTMLElement&&i.contains(document.activeElement)&&(r=document.activeElement),i.removeAttribute("aria-hidden"),o.appendChild(i),r?.focus(),this._onAnnounce.next(),this._onAnnounce.complete()}},this._announceDelay)})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["mat-snack-bar-container"]],viewQuery:function(i,o){if(1&i&&rt(Wl,7)(Sue,7),2&i){let r;ue(r=he())&&(o._portalOutlet=r.first),ue(r=he())&&(o._label=r.first)}},hostAttrs:[1,"mdc-snackbar","mat-mdc-snack-bar-container"],hostVars:6,hostBindings:function(i,o){1&i&&L("animationend",function(s){return o.onAnimationEnd(s.animationName)})("animationcancel",function(s){return o.onAnimationEnd(s.animationName)}),2&i&&Ke("mat-snack-bar-container-enter","visible"===o._animationState)("mat-snack-bar-container-exit","hidden"===o._animationState)("mat-snack-bar-container-animations-enabled",!o._animationsDisabled)},features:[be],decls:6,vars:3,consts:[["label",""],[1,"mdc-snackbar__surface","mat-mdc-snackbar-surface"],[1,"mat-mdc-snack-bar-label"],["aria-hidden","true"],["cdkPortalOutlet",""]],template:function(i,o){1&i&&(f(0,"div",1)(1,"div",2,0)(3,"div",3),tt(4,kue,0,0,"ng-template",4),h(),B(5,"div"),h()()),2&i&&(d(5),Ze("aria-live",o._live)("role",o._role)("id",o._liveElementId))},dependencies:[Wl],styles:["@keyframes _mat-snack-bar-enter{from{transform:scale(0.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes _mat-snack-bar-exit{from{opacity:1}to{opacity:0}}.mat-mdc-snack-bar-container{display:flex;align-items:center;justify-content:center;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0);margin:8px}.mat-mdc-snack-bar-handset .mat-mdc-snack-bar-container{width:100vw}.mat-snack-bar-container-animations-enabled{opacity:0}.mat-snack-bar-container-animations-enabled.mat-snack-bar-fallback-visible{opacity:1}.mat-snack-bar-container-animations-enabled.mat-snack-bar-container-enter{animation:_mat-snack-bar-enter 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-snack-bar-container-animations-enabled.mat-snack-bar-container-exit{animation:_mat-snack-bar-exit 75ms cubic-bezier(0.4, 0, 1, 1) forwards}.mat-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);display:flex;align-items:center;justify-content:flex-start;box-sizing:border-box;padding-left:0;padding-right:8px}[dir=rtl] .mat-mdc-snackbar-surface{padding-right:0;padding-left:8px}.mat-mdc-snack-bar-container .mat-mdc-snackbar-surface{min-width:344px;max-width:672px}.mat-mdc-snack-bar-handset .mat-mdc-snackbar-surface{width:100%;min-width:0}@media(forced-colors: active){.mat-mdc-snackbar-surface{outline:solid 1px}}.mat-mdc-snack-bar-container .mat-mdc-snackbar-surface{color:var(--mat-snack-bar-supporting-text-color, var(--mat-sys-inverse-on-surface));border-radius:var(--mat-snack-bar-container-shape, var(--mat-sys-corner-extra-small));background-color:var(--mat-snack-bar-container-color, var(--mat-sys-inverse-surface))}.mdc-snackbar__label{width:100%;flex-grow:1;box-sizing:border-box;margin:0;padding:14px 8px 14px 16px}[dir=rtl] .mdc-snackbar__label{padding-left:8px;padding-right:16px}.mat-mdc-snack-bar-container .mdc-snackbar__label{font-family:var(--mat-snack-bar-supporting-text-font, var(--mat-sys-body-medium-font));font-size:var(--mat-snack-bar-supporting-text-size, var(--mat-sys-body-medium-size));font-weight:var(--mat-snack-bar-supporting-text-weight, var(--mat-sys-body-medium-weight));line-height:var(--mat-snack-bar-supporting-text-line-height, var(--mat-sys-body-medium-line-height))}.mat-mdc-snack-bar-actions{display:flex;flex-shrink:0;align-items:center;box-sizing:border-box}.mat-mdc-snack-bar-handset,.mat-mdc-snack-bar-container,.mat-mdc-snack-bar-label{flex:1 1 auto}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled).mat-unthemed{color:var(--mat-snack-bar-button-color, var(--mat-sys-inverse-primary))}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled){--mat-button-text-state-layer-color: currentColor;--mat-button-text-ripple-color: currentColor}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled) .mat-ripple-element{opacity:.1}\n"],encapsulation:2})}return t})();const $B=new Z("mat-snack-bar-default-options",{providedIn:"root",factory:()=>new Sb});let WB=(()=>{class t{_live=D(dB);_injector=D(Be);_breakpointObserver=D(nB);_parentSnackBar=D(t,{optional:!0,skipSelf:!0});_defaultConfig=D($B);_animationsDisabled=fi();_snackBarRefAtThisLevel=null;simpleSnackBarComponent=UB;snackBarContainerComponent=zB;handsetCssClass="mat-mdc-snack-bar-handset";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(){}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=Be.create({parent:i&&i.viewContainerRef&&i.viewContainerRef.injector||this._injector,providers:[{provide:Sb,useValue:i}]}),s=new Ud(this.snackBarContainerComponent,i.viewContainerRef,r),a=e.attach(s);return a.instance.snackBarConfig=i,a.instance}_attach(e,i){const o={...new Sb,...this._defaultConfig,...i},r=this._createOverlay(o),s=this._attachSnackBarContainer(r,o),a=new xb(s,r);if(e instanceof Ci){const l=new $l(e,null,{$implicit:o.data,snackBarRef:a});a.instance=s.attachTemplatePortal(l)}else{const l=this._createInjector(o,a),c=new Ud(e,void 0,l),u=s.attachComponentPortal(c);a.instance=u.instance}return this._breakpointObserver.observe("(max-width: 599.98px) and (orientation: portrait)").pipe(on(r.detachments())).subscribe(l=>{r.overlayElement.classList.toggle(this.handsetCssClass,l.matches)}),o.announcementMessage&&s._onAnnounce.subscribe(()=>{this._live.announce(o.announcementMessage,o.politeness)}),this._animateSnackBar(a,o),this._openedSnackBarRef=a,this._openedSnackBarRef}_animateSnackBar(e,i){e.afterDismissed().subscribe(()=>{this._openedSnackBarRef==e&&(this._openedSnackBarRef=null),i.announcementMessage&&this._live.clear()}),i.duration&&i.duration>0&&e.afterOpened().subscribe(()=>e._dismissAfter(i.duration)),this._openedSnackBarRef?(this._openedSnackBarRef.afterDismissed().subscribe(()=>{e.containerInstance.enter()}),this._openedSnackBarRef.dismiss()):e.containerInstance.enter()}_createOverlay(e){const i=new Mf;i.direction=e.direction;const o=pb(),r="rtl"===e.direction,s="left"===e.horizontalPosition||"start"===e.horizontalPosition&&!r||"end"===e.horizontalPosition&&r,a=!s&&"center"!==e.horizontalPosition;return s?o.left("0"):a?o.right("0"):o.centerHorizontally(),"top"===e.verticalPosition?o.top("0"):o.bottom("0"),i.positionStrategy=o,i.disableAnimations=this._animationsDisabled,$d(this._injector,i)}_createInjector(e,i){return Be.create({parent:e&&e.viewContainerRef&&e.viewContainerRef.injector||this._injector,providers:[{provide:xb,useValue:i},{provide:TS,useValue:e.data}]})}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Tue=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({providers:[WB],imports:[Wd,Sf,BB,UB,ri]})}return t})();function kb(...t){const n=rL(t),{args:e,keys:i}=SL(t),o=new Rt(r=>{const{length:s}=e;if(!s)return void r.complete();const a=new Array(s);let l=s,c=s;for(let u=0;u{p||(p=!0,c--),a[u]=g},()=>l--,void 0,()=>{(!l||!p)&&(c||r.next(i?DL(i,a):a),r.complete())}))}});return n?o.pipe(kL(n)):o}function GB(t={}){const{connector:n=()=>new pe,resetOnError:e=!0,resetOnComplete:i=!0,resetOnRefCountZero:o=!0}=t;return r=>{let s,a,l,c=0,u=!1,p=!1;const g=()=>{a?.unsubscribe(),a=void 0},_=()=>{g(),s=l=void 0,u=p=!1},w=()=>{const x=s;_(),x?.unsubscribe()};return bn((x,T)=>{c++,!p&&!u&&g();const E=l=l??n();T.add(()=>{c--,0===c&&!p&&!u&&(a=IS(w,o))}),E.subscribe(T),!s&&c>0&&(s=new Su({next:R=>E.next(R),error:R=>{p=!0,g(),a=IS(_,e,R),E.error(R)},complete:()=>{u=!0,g(),a=IS(_,i),E.complete()}}),Vi(x).subscribe(s))})(r)}}function IS(t,n,...e){if(!0===n)return void t();if(!1===n)return;const i=new Su({next:()=>{i.unsubscribe(),t()}});return Vi(n(...e)).subscribe(i)}function qB(t){return Error(`Unable to find icon with the name "${t}"`)}function KB(t){return Error(`The URL provided to MatIconRegistry was not trusted as a resource URL via Angular's DomSanitizer. Attempted URL was "${t}".`)}function YB(t){return Error(`The literal provided to MatIconRegistry was not trusted as safe HTML by Angular's DomSanitizer. Attempted literal was "${t}".`)}class Yl{url;svgText;options;svgElement=null;constructor(n,e,i){this.url=n,this.svgText=e,this.options=i}}let Eue=(()=>{class t{_httpClient;_sanitizer;_errorHandler;_document;_svgIconConfigs=new Map;_iconSetConfigs=new Map;_cachedIconsByUrl=new Map;_inProgressUrlFetches=new Map;_fontCssClassesByAlias=new Map;_resolvers=[];_defaultFontSetClass=["material-icons","mat-ligature-font"];constructor(e,i,o,r){this._httpClient=e,this._sanitizer=i,this._errorHandler=r,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 Yl(o,null,r))}addSvgIconResolver(e){return this._resolvers.push(e),this}addSvgIconLiteralInNamespace(e,i,o,r){const s=this._sanitizer.sanitize(ui.HTML,o);if(!s)throw YB(o);const a=Gd(s);return this._addSvgIconConfig(e,i,new Yl("",a,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 Yl(i,null,o))}addSvgIconSetLiteralInNamespace(e,i,o){const r=this._sanitizer.sanitize(ui.HTML,i);if(!r)throw YB(i);const s=Gd(r);return this._addSvgIconSetConfig(e,new Yl("",s,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(ui.RESOURCE_URL,e);if(!i)throw KB(e);const o=this._cachedIconsByUrl.get(i);return o?ae(Db(o)):this._loadSvgIconFromConfig(new Yl(e,null)).pipe(ni(r=>this._cachedIconsByUrl.set(i,r)),ye(r=>Db(r)))}getNamedSvgIcon(e,i=""){const o=XB(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 s=this._iconSetConfigs.get(i);return s?this._getSvgFromIconSetConfigs(e,s):cr(qB(o))}ngOnDestroy(){this._resolvers=[],this._svgIconConfigs.clear(),this._iconSetConfigs.clear(),this._cachedIconsByUrl.clear()}_getSvgFromConfig(e){return e.svgText?ae(Db(this._svgElementFromConfig(e))):this._loadSvgIconFromConfig(e).pipe(ye(i=>Db(i)))}_getSvgFromIconSetConfigs(e,i){const o=this._extractIconWithNameFromAnySet(e,i);return o?ae(o):kb(i.filter(s=>!s.svgText).map(s=>this._loadSvgIconSetFromConfig(s).pipe(go(a=>{const c=`Loading icon set URL: ${this._sanitizer.sanitize(ui.RESOURCE_URL,s.url)} failed: ${a.message}`;return this._errorHandler.handleError(new Error(c)),ae(null)})))).pipe(ye(()=>{const s=this._extractIconWithNameFromAnySet(e,i);if(!s)throw qB(e);return s}))}_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 s=this._svgElementFromConfig(r),a=this._extractSvgIconFromSet(s,e,r.options);if(a)return a}}return null}_loadSvgIconFromConfig(e){return this._fetchIcon(e).pipe(ni(i=>e.svgText=i),ye(()=>this._svgElementFromConfig(e)))}_loadSvgIconSetFromConfig(e){return e.svgText?ae(null):this._fetchIcon(e).pipe(ni(i=>e.svgText=i))}_extractSvgIconFromSet(e,i,o){const r=e.querySelector(`[id="${i}"]`);if(!r)return null;const s=r.cloneNode(!0);if(s.removeAttribute("id"),"svg"===s.nodeName.toLowerCase())return this._setSvgAttributes(s,o);if("symbol"===s.nodeName.toLowerCase())return this._setSvgAttributes(this._toSvgElement(s),o);const a=this._svgElementFromString(Gd(""));return a.appendChild(s),this._setSvgAttributes(a,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(Gd("")),o=e.attributes;for(let r=0;rGd(c)),M_(()=>this._inProgressUrlFetches.delete(s)),GB());return this._inProgressUrlFetches.set(s,l),l}_addSvgIconConfig(e,i,o){return this._svgIconConfigs.set(XB(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;o{const t=D(Qe),n=t?t.location:null;return{getPathname:()=>n?n.pathname+n.search:""}}}),ZB=["clip-path","color-profile","src","cursor","fill","filter","marker","marker-start","marker-mid","marker-end","mask","stroke"],Rue=ZB.map(t=>`[${t}]`).join(", "),Nue=/^url\(['"]?#(.*?)['"]?\)$/;let lt=(()=>{class t{_elementRef=D(Ae);_iconRegistry=D(Eue);_location=D(Aue);_errorHandler=D(tl);_defaultColor;get color(){return this._color||this._defaultColor}set color(e){this._color=e}_color;inline=!1;get svgIcon(){return this._svgIcon}set svgIcon(e){e!==this._svgIcon&&(e?this._updateSvgIcon(e):this._svgIcon&&this._clearSvgElement(),this._svgIcon=e)}_svgIcon;get fontSet(){return this._fontSet}set fontSet(e){const i=this._cleanupFontValue(e);i!==this._fontSet&&(this._fontSet=i,this._updateFontIconClasses())}_fontSet;get fontIcon(){return this._fontIcon}set fontIcon(e){const i=this._cleanupFontValue(e);i!==this._fontIcon&&(this._fontIcon=i,this._updateFontIconClasses())}_fontIcon;_previousFontSetClass=[];_previousFontIconClass;_svgName=null;_svgNamespace=null;_previousPath;_elementsWithExternalReferences;_currentIconFetch=mt.EMPTY;constructor(){const e=D(new Xg("aria-hidden"),{optional:!0}),i=D(Oue,{optional:!0});i&&(i.color&&(this.color=this._defaultColor=i.color),i.fontSet&&(this.fontSet=i.fontSet)),e||this._elementRef.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(s=>{r.setAttribute(s.name,`url('${e}#${s.value}')`)})})}_cacheChildrenWithExternalReferences(e){const i=e.querySelectorAll(Rue),o=this._elementsWithExternalReferences=this._elementsWithExternalReferences||new Map;for(let r=0;r{const a=i[r],l=a.getAttribute(s),c=l?l.match(Nue):null;if(c){let u=o.get(a);u||(u=[],o.set(a,u)),u.push({name:s,value:c[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(un(1)).subscribe(r=>this._setSvgElement(r),r=>{this._errorHandler.handleError(new Error(`Error retrieving icon ${i}:${o}! ${r.message}`))})}}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["mat-icon"]],hostAttrs:["role","img",1,"mat-icon","notranslate"],hostVars:10,hostBindings:function(i,o){2&i&&(Ze("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),at(o.color?"mat-"+o.color:""),Ke("mat-icon-inline",o.inline)("mat-icon-no-color","primary"!==o.color&&"accent"!==o.color&&"warn"!==o.color))},inputs:{color:"color",inline:[2,"inline","inline",Ie],svgIcon:"svgIcon",fontSet:"fontSet",fontIcon:"fontIcon"},exportAs:["matIcon"],ngContentSelectors:Pue,decls:1,vars:0,template:function(i,o){1&i&&(Si(),At(0))},styles:["mat-icon,mat-icon.mat-primary,mat-icon.mat-accent,mat-icon.mat-warn{color:var(--mat-icon-color, inherit)}.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}\n"],encapsulation:2,changeDetection:0})}return t})(),Fue=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({imports:[ri]})}return t})();function PS(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,GB({connector:()=>new no(i,n,e),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:o})}class OS{}let QB=(()=>{class t{handle(e){return e.key}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();class Tb{}let JB=(()=>{class t extends Tb{compile(e,i){return e}compileTranslations(e,i){return e}static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();class Rf{}let e4=(()=>{class t extends Rf{getTranslation(e){return ae({})}static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();function Mb(t,n){if(t===n)return!0;if(null===t||null===n)return!1;if(t!=t&&n!=n)return!0;const e=typeof t;let o;if(e==typeof n&&"object"==e)if(Array.isArray(t)){if(!Array.isArray(n))return!1;if((o=t.length)==n.length){for(let r=0;rIb(n));if(qr(t)){const n={};return Object.keys(t).forEach(e=>{n[e]=Ib(t[e])}),n}return t}function AS(t,n){if(!Nf(t))return Ib(n);const e=Ib(t);return Nf(e)&&Nf(n)&&Object.keys(n).forEach(i=>{qr(n[i])?i in t?e[i]=AS(t[i],n[i]):Object.assign(e,{[i]:n[i]}):Object.assign(e,{[i]:n[i]})}),e}function n4(t,n){const e=n.split(".");n="";do{n+=e.shift();const i=!e.length;if(Ca(t)){if(qr(t)&&t4(t[n])&&(qr(t[n])||Xl(t[n])||i)){t=t[n],n="";continue}if(Xl(t)){const o=parseInt(n,10);if(t4(t[o])&&(qr(t[o])||Xl(t[o])||i)){t=t[o],n="";continue}}}i?t=void 0:n+="."}while(e.length);return t}class Pb{}let i4=(()=>{class t extends Pb{templateMatcher=/{{\s?([^{}\s]*)\s?}}/g;interpolate(e,i){return Eb(e)?this.interpolateString(e,i):function Lue(t){return"function"==typeof t}(e)?this.interpolateFunction(e,i):void 0}interpolateFunction(e,i){return e(i)}interpolateString(e,i){return i?e.replace(this.templateMatcher,(o,r)=>{const s=this.getInterpolationReplacement(i,r);return void 0!==s?s:o}):e}getInterpolationReplacement(e,i){return this.formatValue(n4(e,i))}formatValue(e){return Eb(e)?e:"number"==typeof e||"boolean"==typeof e?e.toString():null===e?"null":Xl(e)?e.join(", "):Nf(e)?"function"==typeof e.toString&&e.toString!==Object.prototype.toString?e.toString():JSON.stringify(e):void 0}static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})(),RS=(()=>{class t{_onTranslationChange=new pe;_onLangChange=new pe;_onFallbackLangChange=new pe;fallbackLang=null;currentLang;translations={};languages=[];getTranslations(e){return this.translations[e]}setTranslations(e,i,o){this.translations[e]=o&&this.hasTranslationFor(e)?AS(this.translations[e],i):i,this.addLanguages([e]),this._onTranslationChange.next({lang:e,translations:this.getTranslations(e)})}getLanguages(){return this.languages}getCurrentLang(){return this.currentLang}getFallbackLang(){return this.fallbackLang}setFallbackLang(e,i=!0){this.fallbackLang=e,i&&this._onFallbackLangChange.next({lang:e,translations:this.translations[e]})}setCurrentLang(e,i=!0){this.currentLang=e,i&&this._onLangChange.next({lang:e,translations:this.translations[e]})}get onTranslationChange(){return this._onTranslationChange.asObservable()}get onLangChange(){return this._onLangChange.asObservable()}get onFallbackLangChange(){return this._onFallbackLangChange.asObservable()}addLanguages(e){this.languages=Array.from(new Set([...this.languages,...e]))}hasTranslationFor(e){return typeof this.translations[e]<"u"}deleteTranslations(e){delete this.translations[e]}getTranslation(e){let i=this.getValue(this.currentLang,e);return void 0===i&&null!=this.fallbackLang&&this.fallbackLang!==this.currentLang&&(i=this.getValue(this.fallbackLang,e)),i}getValue(e,i){return n4(this.getTranslations(e),i)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();const NS=new Z("TRANSLATE_CONFIG"),Ff=t=>Hr(t)?t:ae(t);let zo=(()=>{class t{loadingTranslations;pending=!1;_translationRequests={};lastUseLanguage=null;currentLoader=D(Rf);compiler=D(Tb);parser=D(Pb);missingTranslationHandler=D(OS);store=D(RS);extend=!1;get onTranslationChange(){return this.store.onTranslationChange}get onLangChange(){return this.store.onLangChange}get onFallbackLangChange(){return this.store.onFallbackLangChange}get onDefaultLangChange(){return this.store.onFallbackLangChange}constructor(){const e={extend:!1,fallbackLang:null,...D(NS,{optional:!0})};e.lang&&this.use(e.lang),e.fallbackLang&&this.setFallbackLang(e.fallbackLang),e.extend&&(this.extend=!0)}setFallbackLang(e){this.getFallbackLang()||this.store.setFallbackLang(e,!1);const i=this.loadOrExtendLanguage(e);return Hr(i)?(i.pipe(un(1)).subscribe({next:()=>{this.store.setFallbackLang(e)},error:()=>{}}),i):(this.store.setFallbackLang(e),ae(this.store.getTranslations(e)))}use(e){this.lastUseLanguage=e,this.getCurrentLang()||this.store.setCurrentLang(e,!1);const i=this.loadOrExtendLanguage(e);return Hr(i)?(i.pipe(un(1)).subscribe({next:()=>{this.changeLang(e)},error:()=>{}}),i):(this.changeLang(e),ae(this.store.getTranslations(e)))}loadOrExtendLanguage(e){if(!this.store.hasTranslationFor(e)||this.extend)return this._translationRequests[e]=this._translationRequests[e]||this.loadAndCompileTranslations(e),this._translationRequests[e]}changeLang(e){e===this.lastUseLanguage&&this.store.setCurrentLang(e)}getCurrentLang(){return this.store.getCurrentLang()}loadAndCompileTranslations(e){this.pending=!0;const i=this.currentLoader.getTranslation(e).pipe(PS(1),un(1));return this.loadingTranslations=i.pipe(ye(o=>this.compiler.compileTranslations(o,e)),PS(1),un(1)),this.loadingTranslations.subscribe({next:o=>{this.store.setTranslations(e,o,this.extend),this.pending=!1},error:o=>{this.pending=!1}}),i}setTranslation(e,i,o=!1){const r=this.compiler.compileTranslations(i,e);this.store.setTranslations(e,r,o||this.extend)}getLangs(){return this.store.getLanguages()}addLangs(e){this.store.addLanguages(e)}getParsedResultForKey(e,i){const o=this.getTextToInterpolate(e);if(Ca(o))return this.runInterpolation(o,i);const r=this.missingTranslationHandler.handle({key:e,translateService:this,...void 0!==i&&{interpolateParams:i}});return void 0!==r?r:e}getFallbackLang(){return this.store.getFallbackLang()}getTextToInterpolate(e){return this.store.getTranslation(e)}runInterpolation(e,i){if(Ca(e))return Xl(e)?this.runInterpolationOnArray(e,i):qr(e)?this.runInterpolationOnDict(e,i):this.parser.interpolate(e,i)}runInterpolationOnArray(e,i){return e.map(o=>this.runInterpolation(o,i))}runInterpolationOnDict(e,i){const o={};for(const r in e){const s=this.runInterpolation(e[r],i);void 0!==s&&(o[r]=s)}return o}getParsedResult(e,i){return e instanceof Array?this.getParsedResultForArray(e,i):this.getParsedResultForKey(e,i)}getParsedResultForArray(e,i){const o={};let r=!1;for(const a of e)o[a]=this.getParsedResultForKey(a,i),r=r||Hr(o[a]);return r?kb(e.map(a=>Ff(o[a]))).pipe(ye(a=>{const l={};return a.forEach((c,u)=>{l[e[u]]=c}),l})):o}get(e,i){if(!Ca(e)||!e.length)throw new Error('Parameter "key" is required and cannot be empty');return this.pending?this.loadingTranslations.pipe(Zh(()=>Ff(this.getParsedResult(e,i)))):Ff(this.getParsedResult(e,i))}getStreamOnTranslationChange(e,i){if(!Ca(e)||!e.length)throw new Error('Parameter "key" is required and cannot be empty');return ks(ba(()=>this.get(e,i)),this.onTranslationChange.pipe(Zn(()=>{const o=this.getParsedResult(e,i);return Ff(o)})))}stream(e,i){if(!Ca(e)||!e.length)throw new Error('Parameter "key" required');return ks(ba(()=>this.get(e,i)),this.onLangChange.pipe(Zn(()=>{const o=this.getParsedResult(e,i);return Ff(o)})))}instant(e,i){if(!Ca(e)||0===e.length)throw new Error('Parameter "key" is required and cannot be empty');const o=this.getParsedResult(e,i);return Hr(o)?Array.isArray(e)?e.reduce((r,s)=>(r[s]=s,r),{}):e:o}set(e,i,o=this.getCurrentLang()){this.store.setTranslations(o,function Bue(t,n,e){return AS(t,function Vue(t,n){return t.split(".").reduceRight((e,i)=>({[i]:e}),n)}(n,e))}(this.store.getTranslations(o),e,Eb(i)?this.compiler.compile(i,o):this.compiler.compileTranslations(i,o)),!1)}reloadLang(e){return this.resetLang(e),this.loadAndCompileTranslations(e)}resetLang(e){delete this._translationRequests[e],this.store.deleteTranslations(e)}static getBrowserLang(){if(typeof window>"u"||!window.navigator)return;const e=this.getBrowserCultureLang();return e?e.split(/[-_]/)[0]:void 0}static getBrowserCultureLang(){if(!(typeof window>"u"||typeof window.navigator>"u"))return window.navigator.languages?window.navigator.languages[0]:window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage}getBrowserLang(){return t.getBrowserLang()}getBrowserCultureLang(){return t.getBrowserCultureLang()}get defaultLang(){return this.getFallbackLang()}get currentLang(){return this.store.getCurrentLang()}get langs(){return this.store.getLanguages()}setDefaultLang(e){return this.setFallbackLang(e)}getDefaultLang(){return this.getFallbackLang()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})(),Se=(()=>{class t{translate=D(zo);_ref=D(Pn);value="";lastKey=null;lastParams=[];onTranslationChange;onLangChange;onFallbackLangChange;updateValue(e,i,o){const r=s=>{this.value=void 0!==s?s:e,this.lastKey=e,this._ref.markForCheck()};if(o){const s=this.translate.getParsedResult(e,i);Hr(s)?s.subscribe(r):r(s)}this.translate.get(e,i).subscribe(r)}transform(e,...i){if(!e||!e.length)return e;if(Mb(e,this.lastKey)&&Mb(i,this.lastParams))return this.value;let o;if(Ca(i[0])&&i.length)if(Eb(i[0])&&i[0].length){const r=i[0].replace(/(')?([a-zA-Z0-9_]+)(')?(\s)?:/g,'"$2":').replace(/:(\s)?(')(.*?)(')/g,':"$3"');try{o=JSON.parse(r)}catch(s){throw new SyntaxError(`Wrong parameter in TranslatePipe. Expected a valid Object, received: ${i[0]}`)}}else qr(i[0])&&(o=i[0]);return this.lastKey=e,this.lastParams=i,this.updateValue(e,o),this._dispose(),this.onTranslationChange||(this.onTranslationChange=this.translate.onTranslationChange.subscribe(r=>{(this.lastKey&&r.lang===this.translate.getCurrentLang()||r.lang===this.translate.getFallbackLang())&&(this.lastKey=null,this.updateValue(e,o,r.translations))})),this.onLangChange||(this.onLangChange=this.translate.onLangChange.subscribe(r=>{this.lastKey&&(this.lastKey=null,this.updateValue(e,o,r.translations))})),this.onFallbackLangChange||(this.onFallbackLangChange=this.translate.onFallbackLangChange.subscribe(()=>{this.lastKey&&(this.lastKey=null,this.updateValue(e,o))})),this.value}_dispose(){typeof this.onTranslationChange<"u"&&(this.onTranslationChange.unsubscribe(),this.onTranslationChange=void 0),typeof this.onLangChange<"u"&&(this.onLangChange.unsubscribe(),this.onLangChange=void 0),typeof this.onFallbackLangChange<"u"&&(this.onFallbackLangChange.unsubscribe(),this.onFallbackLangChange=void 0)}ngOnDestroy(){this._dispose()}static \u0275fac=function(i){return new(i||t)};static \u0275pipe=Li({name:"translate",type:t,pure:!1});static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();function o4(t){return{provide:Rf,useClass:t}}function r4(t){return{provide:Tb,useClass:t}}function s4(t){return{provide:Pb,useClass:t}}function a4(t){return{provide:OS,useClass:t}}function Ob(t={},n){const e=[];return t.loader&&e.push(t.loader),t.compiler&&e.push(t.compiler),t.parser&&e.push(t.parser),t.missingTranslationHandler&&e.push(t.missingTranslationHandler),n&&e.push(RS),(t.useDefaultLang||t.defaultLanguage)&&(console.warn("The `useDefaultLang` and `defaultLanguage` options are deprecated. Please use `fallbackLang` instead."),!0===t.useDefaultLang&&t.defaultLanguage&&(t.fallbackLang=t.defaultLanguage)),e.push({provide:NS,useValue:{fallbackLang:t.fallbackLang??null,lang:t.lang,extend:t.extend??!1}}),e.push({provide:zo,useClass:zo,deps:[RS,Rf,Tb,Pb,OS,NS]}),e}let l4=(()=>{class t{static forRoot(e={}){return{ngModule:t,providers:[...Ob({compiler:r4(JB),parser:s4(i4),loader:o4(e4),missingTranslationHandler:a4(QB),...e},!0)]}}static forChild(e={}){return{ngModule:t,providers:[...Ob(e,e.isolate??!1)]}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({})}return t})();function Hue(t,n){if(1&t&&(f(0,"div",0)(1,"mat-icon",5),m(2),h()()),2&t){const e=C();d(),v("inline",!0),d(),O(e.config.icon)}}function jue(t,n){if(1&t&&(f(0,"div",2),m(1),b(2,"translate"),b(3,"translate"),h()),2&t){const e=C();d(),Hn(" ",y(2,2,"common.error")," ",Ee(3,4,e.config.smallText,e.config.smallTextTranslationParams)," ")}}var Ab=function(t){return t.Error="error",t.Done="done",t.Warning="warning",t}(Ab||{}),Rb=function(t){return t.Red="red-background",t.Green="green-background",t.Yellow="yellow-background",t}(Rb||{});let Uue=(()=>{class t{constructor(e,i){this.snackbarRef=i,this.config=e}close(){this.snackbarRef.dismiss()}static{this.\u0275fac=function(i){return new(i||t)(P(TS),P(xb))}}static{this.\u0275cmp=se({type:t,selectors:[["app-snack-bar"]],standalone:!1,decls:9,vars:8,consts:[[1,"icon-container"],[1,"text-container"],[1,"second-line"],[1,"close-button-separator"],[1,"close-button",3,"click"],[3,"inline"]],template:function(i,o){1&i&&(f(0,"div"),S(1,Hue,3,2,"div",0),f(2,"div",1),m(3),b(4,"translate"),S(5,jue,4,7,"div",2),h(),B(6,"div",3),f(7,"mat-icon",4),L("click",function(){return o.close()}),m(8,"close"),h()()),2&i&&(at("main-container "+o.config.color),d(),k(o.config.icon?1:-1),d(2),I(" ",Ee(4,5,o.config.text,o.config.textTranslationParams)," "),d(2),k(o.config.smallText?5:-1))},dependencies:[lt,Se],styles:['.cursor-pointer[_ngcontent-%COMP%], .close-button[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media(max-width:767px),(min-width:992px)and (max-width:1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media(max-width:767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}.main-container[_ngcontent-%COMP%]{width:100%;display:flex;color:#fff;padding:15px;border-radius:5px}.red-background[_ngcontent-%COMP%]{background-color:#ea0606}.green-background[_ngcontent-%COMP%]{background-color:#1fb11f}.yellow-background[_ngcontent-%COMP%]{background-color:#f90}.icon-container[_ngcontent-%COMP%]{margin-right:10px;position:relative;top:1px}.text-container[_ngcontent-%COMP%]{flex-grow:1;margin-right:10px;font-size:1rem;word-break:break-word}.text-container[_ngcontent-%COMP%] .second-line[_ngcontent-%COMP%]{font-size:.8rem;opacity:.9}.close-button-separator[_ngcontent-%COMP%]{width:1px;margin-right:10px;background-color:#0000004d}.close-button[_ngcontent-%COMP%]{opacity:.7}.close-button[_ngcontent-%COMP%]:hover{opacity:1}mat-icon[_ngcontent-%COMP%]{position:relative;top:1px;-webkit-user-select:none;user-select:none}']})}}return t})(),bt=(()=>{class t{constructor(e){this.snackBar=e,this.lastWasTemporaryError=!1}showError(e,i=null,o=!1,r=null,s=null){e=Je(e),r=r?Je(r):null,this.lastWasTemporaryError=o,this.show(e.translatableErrorMsg,i,r?r.translatableErrorMsg:null,s,Ab.Error,Rb.Red,15e3)}showWarning(e,i=null){this.lastWasTemporaryError=!1,this.show(e,i,null,null,Ab.Warning,Rb.Yellow,15e3)}showDone(e,i=null){this.lastWasTemporaryError=!1,this.show(e,i,null,null,Ab.Done,Rb.Green,5e3)}closeCurrent(){this.snackBar.dismiss()}closeCurrentIfTemporaryError(){this.lastWasTemporaryError&&this.snackBar.dismiss()}show(e,i,o,r,s,a,l){this.snackBar.openFromComponent(Uue,{duration:l,panelClass:"snackbar-container",data:{text:e,textTranslationParams:i,smallText:o,smallTextTranslationParams:r,icon:s,color:a}})}static{this.\u0275fac=function(i){return new(i||t)(le(WB))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const ze={maxShortListElements:5,maxFullListElements:40,connectionRetryDelay:5e3,languages:[{code:"en",name:"English",iconName:"en.png"},{code:"es",name:"Espa\xf1ol",iconName:"es.png"},{code:"de",name:"Deutsch",iconName:"de.png"},{code:"pt",name:"Portugu\xeas (Brazil)",iconName:"pt.png"}],defaultLanguage:"en",smallModalWidth:"480px",mediumModalWidth:"640px",largeModalWidth:"900px",vpn:{hardcodedIpWhileDeveloping:!1}};class zue{constructor(n){Object.assign(this,n)}}let Nb=(()=>{class t{constructor(e){this.translate=e,this.currentLanguage=new no(1),this.languages=new no(1),this.storageKey="lang",this.languagesInternal=[],this.settingsLoaded=!1}loadLanguageSettings(){if(this.settingsLoaded)return;this.settingsLoaded=!0;const e=[];ze.languages.forEach(i=>{const o=new zue(i);this.languagesInternal.push(o),e.push(o.code)}),this.languages.next(this.languagesInternal),this.translate.addLangs(e),this.translate.setDefaultLang(ze.defaultLanguage),this.translate.onLangChange.subscribe(i=>this.onLanguageChanged(i)),this.loadCurrentLanguage()}changeLanguage(e){this.translate.use(e)}onLanguageChanged(e){this.currentLanguage.next(this.languagesInternal.find(i=>i.code===e.lang)),localStorage.setItem(this.storageKey,e.lang)}loadCurrentLanguage(){let e=localStorage.getItem(this.storageKey);e=e||ze.defaultLanguage,setTimeout(()=>this.translate.use(e),16)}static{this.\u0275fac=function(i){return new(i||t)(le(zo))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const $ue={url:"",deserializer:t=>JSON.parse(t.data),serializer:t=>JSON.stringify(t)};class FS extends ey{constructor(n,e){if(super(),this._socket=null,n instanceof Rt)this.destination=e,this.source=n;else{const i=this._config=Object.assign({},$ue);if(this._output=new pe,"string"==typeof n)i.url=n;else for(const o in n)n.hasOwnProperty(o)&&(i[o]=n[o]);if(!i.WebSocketCtor&&WebSocket)i.WebSocketCtor=WebSocket;else if(!i.WebSocketCtor)throw new Error("no WebSocket constructor can be found");this.destination=new no}}lift(n){const e=new FS(this._config,this.destination);return e.operator=n,e.source=this,e}_resetState(){this._socket=null,this.source||(this.destination=new no),this._output=new pe}multiplex(n,e,i){const o=this;return new Rt(r=>{try{o.next(n())}catch(a){r.error(a)}const s=o.subscribe({next:a=>{try{i(a)&&r.next(a)}catch(l){r.error(l)}},error:a=>r.error(a),complete:()=>r.complete()});return()=>{try{o.next(e())}catch(a){r.error(a)}s.unsubscribe()}})}_connectSocket(){const{WebSocketCtor:n,protocol:e,url:i,binaryType:o}=this._config,r=this._output;let s=null;try{s=e?new n(i,e):new n(i),this._socket=s,o&&(this._socket.binaryType=o)}catch(l){return void r.error(l)}const a=new mt(()=>{this._socket=null,s&&1===s.readyState&&s.close()});s.onopen=l=>{const{_socket:c}=this;if(!c)return s.close(),void this._resetState();const{openObserver:u}=this._config;u&&u.next(l);const p=this.destination;this.destination=Tp.create(g=>{if(1===s.readyState)try{const{serializer:_}=this._config;s.send(_(g))}catch(_){this.destination.error(_)}},g=>{const{closingObserver:_}=this._config;_&&_.next(void 0),g&&g.code?s.close(g.code,g.reason):r.error(new TypeError("WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }")),this._resetState()},()=>{const{closingObserver:g}=this._config;g&&g.next(void 0),s.close(),this._resetState()}),p&&p instanceof no&&a.add(p.subscribe(this.destination))},s.onerror=l=>{this._resetState(),r.error(l)},s.onclose=l=>{s===this._socket&&this._resetState();const{closeObserver:c}=this._config;c&&c.next(l),l.wasClean?r.complete():r.error(l)},s.onmessage=l=>{try{const{deserializer:c}=this._config;r.next(c(l))}catch(c){r.error(c)}}}_subscribe(n){const{source:e}=this;return e?e.subscribe(n):(this._socket||this._connectSocket(),this._output.subscribe(n),n.add(()=>{const{_socket:i}=this;0===this._output.observers.length&&(i&&(1===i.readyState||0===i.readyState)&&i.close(),this._resetState())}),n)}unsubscribe(){const{_socket:n}=this;n&&(1===n.readyState||0===n.readyState)&&n.close(),this._resetState(),super.unsubscribe()}}var Fb=function(t){return t.Json="json",t.Text="text",t}(Fb||{}),Lb=function(t){return t.Json="json",t}(Lb||{});class _r{constructor(n){this.responseType=Fb.Json,this.requestType=Lb.Json,this.ignoreAuth=!1,Object.assign(this,n)}}let br=(()=>{class t{constructor(e,i,o){this.http=e,this.router=i,this.ngZone=o,this.apiPrefix="api/",this.wsApiPrefix="api/"}get(e,i=null){return this.request("GET",e,{},i)}post(e,i={},o=null){return this.getCsrf().pipe(jr(),Et(r=>((o=o||new _r).csrfToken=r,this.request("POST",e,i,o))))}put(e,i={},o=null){return this.getCsrf().pipe(jr(),Et(r=>((o=o||new _r).csrfToken=r,this.request("PUT",e,i,o))))}delete(e,i=null){return this.getCsrf().pipe(jr(),Et(o=>((i=i||new _r).csrfToken=o,this.request("DELETE",e,{},i))))}getCsrf(){return this.get("csrf").pipe(ye(e=>e.csrf_token))}ws(e,i={}){const s=function Gue(t){return new FS(t)}((location.protocol.startsWith("https")?"wss://":"ws://")+location.host+"/"+this.wsApiPrefix+e);return s.next(i),s}request(e,i,o,r){return o=o||{},r=r||new _r,i.startsWith("/")&&(i=i.substr(1,i.length-1)),this.http.request(e,this.apiPrefix+i,{...this.getRequestOptions(r),responseType:r.responseType,withCredentials:!0,body:this.getPostBody(o,r)}).pipe(ye(s=>this.successHandler(s)),go(s=>this.errorHandler(s,r)))}getRequestOptions(e){const i={};return i.headers=new jo,e.requestType===Lb.Json&&(i.headers=i.headers.append("Content-Type","application/json")),e.csrfToken&&(i.headers=i.headers.append("X-CSRF-Token",e.csrfToken)),i}getPostBody(e,i){if(i.requestType===Lb.Json)return JSON.stringify(e);const o=new FormData;return Object.keys(e).forEach(r=>o.append(r,e[r])),o}successHandler(e){if("string"==typeof e&&"manager token is null"===e)throw new Error(e);return e}errorHandler(e,i){if(!i.ignoreAuth){if(401===e.status){const o=i.vpnKeyForAuth?["vpnlogin",i.vpnKeyForAuth]:["login"];this.ngZone.run(()=>this.router.navigate(o,{replaceUrl:!0}))}if(e.error&&"string"==typeof e.error&&e.error.includes("change password")){const o=i.vpnKeyForAuth?["vpnlogin",i.vpnKeyForAuth]:["login"];this.ngZone.run(()=>this.router.navigate(o,{replaceUrl:!0}))}}return cr(Je(e))}static{this.\u0275fac=function(i){return new(i||t)(le(ga),le(vt),le(ge))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const que=["determinateSpinner"];function Kue(t,n){if(1&t&&(Uc(),f(0,"svg",11),B(1,"circle",12),h()),2&t){const e=C();Ze("viewBox",e._viewBox()),d(),Cd("stroke-dasharray",e._strokeCircumference(),"px")("stroke-dashoffset",e._strokeCircumference()/2,"px")("stroke-width",e._circleStrokeWidth(),"%"),Ze("r",e._circleRadius())}}const Yue=new Z("mat-progress-spinner-default-options",{providedIn:"root",factory:()=>({diameter:c4})}),c4=100;let $o=(()=>{class t{_elementRef=D(Ae);_noopAnimations;get color(){return this._color||this._defaultColor}set color(e){this._color=e}_color;_defaultColor="primary";_determinateCircle;constructor(){const e=D(Yue),i=bB(),o=this._elementRef.nativeElement;this._noopAnimations="di-disabled"===i&&!!e&&!e._forceAnimations,this.mode="mat-spinner"===o.nodeName.toLowerCase()?"indeterminate":"determinate",!this._noopAnimations&&"reduced-motion"===i&&o.classList.add("mat-progress-spinner-reduced-motion"),e&&(e.color&&(this.color=this._defaultColor=e.color),e.diameter&&(this.diameter=e.diameter),e.strokeWidth&&(this.strokeWidth=e.strokeWidth))}mode;get value(){return"determinate"===this.mode?this._value:0}set value(e){this._value=Math.max(0,Math.min(100,e||0))}_value=0;get diameter(){return this._diameter}set diameter(e){this._diameter=e||0}_diameter=c4;get strokeWidth(){return this._strokeWidth??this.diameter/10}set strokeWidth(e){this._strokeWidth=e||0}_strokeWidth;_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 \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["mat-progress-spinner"],["mat-spinner"]],viewQuery:function(i,o){if(1&i&&rt(que,5),2&i){let r;ue(r=he())&&(o._determinateCircle=r.first)}},hostAttrs:["role","progressbar","tabindex","-1",1,"mat-mdc-progress-spinner","mdc-circular-progress"],hostVars:18,hostBindings:function(i,o){2&i&&(Ze("aria-valuemin",0)("aria-valuemax",100)("aria-valuenow","determinate"===o.mode?o.value:null)("mode",o.mode),at("mat-"+o.color),Cd("width",o.diameter,"px")("height",o.diameter,"px")("--mat-progress-spinner-size",o.diameter+"px")("--mat-progress-spinner-active-indicator-width",o.diameter+"px"),Ke("_mat-animation-noopable",o._noopAnimations)("mdc-circular-progress--indeterminate","indeterminate"===o.mode))},inputs:{color:"color",mode:"mode",value:[2,"value","value",Br],diameter:[2,"diameter","diameter",Br],strokeWidth:[2,"strokeWidth","strokeWidth",Br]},exportAs:["matProgressSpinner"],decls:14,vars:11,consts:[["circle",""],["determinateSpinner",""],["aria-hidden","true",1,"mdc-circular-progress__determinate-container"],["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&&(tt(0,Kue,2,8,"ng-template",null,0,El),f(2,"div",2,1),Uc(),f(4,"svg",3),B(5,"circle",4),h()(),Vy(),f(6,"div",5)(7,"div",6)(8,"div",7),sr(9,8),h(),f(10,"div",9),sr(11,8),h(),f(12,"div",10),sr(13,8),h()()()),2&i){const r=Vn(1);d(4),Ze("viewBox",o._viewBox()),d(),Cd("stroke-dasharray",o._strokeCircumference(),"px")("stroke-dashoffset",o._strokeDashOffset(),"px")("stroke-width",o._circleStrokeWidth(),"%"),Ze("r",o._circleRadius()),d(4),v("ngTemplateOutlet",r),d(2),v("ngTemplateOutlet",r),d(2),v("ngTemplateOutlet",r)}},dependencies:[Pd],styles:[".mat-mdc-progress-spinner{--mat-progress-spinner-animation-multiplier: 1;display:block;overflow:hidden;line-height:0;position:relative;direction:ltr;transition:opacity 250ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-progress-spinner circle{stroke-width:var(--mat-progress-spinner-active-indicator-width, 4px)}.mat-mdc-progress-spinner._mat-animation-noopable,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__determinate-circle{transition:none !important}.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 !important}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container circle{stroke-dasharray:0 !important}@media(forced-colors: active){.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle{stroke:currentColor;stroke:CanvasText}}.mat-progress-spinner-reduced-motion{--mat-progress-spinner-animation-multiplier: 1.25}.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 .mdc-circular-progress__determinate-container{opacity:0}.mdc-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{opacity:1;animation:mdc-circular-progress-container-rotate calc(1568.2352941176ms*var(--mat-progress-spinner-animation-multiplier)) linear infinite}.mdc-circular-progress__determinate-circle-graphic,.mdc-circular-progress__indeterminate-circle-graphic{fill:rgba(0,0,0,0)}.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--mat-progress-spinner-active-indicator-color, var(--mat-sys-primary))}@media(forced-colors: active){.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mdc-circular-progress__determinate-circle{transition:stroke-dashoffset 500ms 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 .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__circle-left .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-left-spin calc(1333ms*var(--mat-progress-spinner-animation-multiplier)) 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 calc(1333ms*var(--mat-progress-spinner-animation-multiplier)) cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.mdc-circular-progress--indeterminate .mdc-circular-progress__spinner-layer{animation:mdc-circular-progress-spinner-layer-rotate calc(5332ms*var(--mat-progress-spinner-animation-multiplier)) cubic-bezier(0.4, 0, 0.2, 1) infinite both}@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-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)}}\n"],encapsulation:2,changeDetection:0})}return t})(),Zue=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({imports:[ri]})}return t})();const Que=t=>({"white-theme":t});let vr=(()=>{class t{constructor(){this.showWhite=!0}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=se({type:t,selectors:[["app-loading-indicator"]],inputs:{showWhite:"showWhite"},standalone:!1,decls:2,vars:4,consts:[[1,"container",3,"ngClass"],[3,"diameter"]],template:function(i,o){1&i&&(f(0,"div",0),B(1,"mat-spinner",1),h()),2&i&&(v("ngClass",oe(2,Que,o.showWhite)),d(),v("diameter",50))},dependencies:[qt,$o],styles:["[_nghost-%COMP%]{width:100%;height:100%;display:flex}.container[_ngcontent-%COMP%]{width:100%;align-self:center;display:flex;flex-direction:column;align-items:center}.container[_ngcontent-%COMP%] > mat-spinner[_ngcontent-%COMP%]{opacity:.5}"]})}}return t})();const Jue=t=>({background:t});function ehe(t,n){1&t&&(f(0,"div",0)(1,"div"),B(2,"img",5),f(3,"div"),m(4),b(5,"translate"),h()()()),2&t&&(d(4),O(y(5,1,"common.window-size-error")))}function the(t,n){1&t&&B(0,"router-outlet")}function nhe(t,n){1&t&&B(0,"app-loading-indicator",3)}function ihe(t,n){1&t&&(f(0,"div",4)(1,"span",6)(2,"mat-icon",7),m(3,"error_outline"),h(),m(4),b(5,"translate"),h()()),2&t&&(d(2),v("inline",!0),d(2),I(" ",y(5,2,"common.data-update-problems")," "))}let Kr=(()=>{class t{constructor(e,i,o,r,s,a){this.storage=e,this.snackbarService=r,this.languageService=s,this.apiService=a,this.inVpnClient=!1,this.inLoginPage=!1,this.hypervisorPkObtained=!1,this.pkErrorShown=!1,this.pkErrorsFound=0,this.showingDataProblemMsg=!1,t.currentInstance=this,o.afterOpened.subscribe(()=>r.closeCurrent()),history.scrollRestoration&&(history.scrollRestoration="manual"),i.events.subscribe(l=>{l instanceof $r&&(r.closeCurrent(),o.closeAll())}),o.afterAllClosed.subscribe(()=>r.closeCurrentIfTemporaryError()),i.events.subscribe(l=>{if(this.inVpnClient=i.url.includes("/vpn/")||i.url.includes("vpnlogin"),l.url){const c=this.inLoginPage;this.inLoginPage=l.url.includes("login"),c&&!this.inLoginPage&&!this.hypervisorPkObtained&&this.checkHypervisorPk(0)}i.url.length>2&&(document.title=this.inVpnClient?"Skywire VPN":"Skywire Hypervisor")}),this.languageService.loadLanguageSettings(),this.checkHypervisorPk(0)}processLoginDone(){this.inLoginPage=!1,this.hypervisorPkObtained||this.checkHypervisorPk(0)}showDataProblemMsg(){this.showingDataProblemMsg=!0}hideDataProblemMsg(){this.showingDataProblemMsg=!1}checkHypervisorPk(e){this.obtainPkSubscription&&this.obtainPkSubscription.unsubscribe(),this.obtainPkSubscription=ae(1).pipe(ii(e),Et(()=>this.apiService.get("about"))).subscribe(i=>{i.public_key?(this.finishStartup(i.public_key),this.hypervisorPkObtained=!0):(this.pkErrorShown||(this.snackbarService.showError("start.loading-error",null,!0),this.pkErrorShown=!0),this.checkHypervisorPk(1e3))},i=>{if(this.pkErrorsFound+=1,this.pkErrorsFound>4&&!this.pkErrorShown){const o=Je(i);this.snackbarService.showError("start.loading-error",null,!0,o),this.pkErrorShown=!0}!this.inLoginPage&&this.pkErrorsFound<30&&this.checkHypervisorPk(Math.min(1e3*this.pkErrorsFound,1e4))})}finishStartup(e){this.storage.initialize(e)}static{this.\u0275fac=function(i){return new(i||t)(P(zn),P(vt),P(kt),P(bt),P(Nb),P(br))}}static{this.\u0275cmp=se({type:t,selectors:[["app-root"]],standalone:!1,decls:6,vars:7,consts:[[1,"size-alert","d-md-none"],[1,"flex-1","content","container-fluid"],[3,"ngClass"],[1,"h-100"],[1,"connection-problem-container"],["src","assets/img/size-alert.png"],[1,"blinking"],[3,"inline"]],template:function(i,o){1&i&&(S(0,ehe,6,3,"div",0),f(1,"div",1),B(2,"div",2),S(3,the,1,0,"router-outlet"),S(4,nhe,1,0,"app-loading-indicator",3),h(),S(5,ihe,6,4,"div",4)),2&i&&(k(o.inVpnClient?0:-1),d(2),v("ngClass",oe(5,Jue,o.inVpnClient)),d(),k(o.hypervisorPkObtained||o.inLoginPage?3:-1),d(),k(o.hypervisorPkObtained||o.inLoginPage?-1:4),d(),k(o.showingDataProblemMsg?5:-1))},dependencies:[qt,$_,lt,vr,Se],styles:[".size-alert[_ngcontent-%COMP%]{background-color:#000000d9;position:fixed;top:0;left:0;width:100%;height:100%;z-index:10000;display:inline-flex;align-items:center;justify-content:center;text-align:center;color:#fff}.size-alert[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{margin:0 40px;max-width:400px}[_nghost-%COMP%]{display:flex;flex-direction:column;justify-content:space-between;min-height:100%;height:100%}.content[_ngcontent-%COMP%]{padding:20px!important}.background[_ngcontent-%COMP%]{background-image:url(/assets/img/map.png);background-size:cover;background-position:center;opacity:.1;width:100%;height:100%;top:0;left:0;position:fixed}.connection-problem-container[_ngcontent-%COMP%]{position:fixed;bottom:0;right:0;background-color:red;padding:0 10px 5px;font-size:10px;opacity:.75}.connection-problem-container[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:4px}"]})}}return t})(),ghe=(()=>{class t{router=D(vt);stateManager=D(Yx);fragment=yt("");queryParams=yt({});path=yt("");serializer=D(Nd);constructor(){this.updateState(),this.router.events?.subscribe(e=>{e instanceof $r&&this.updateState()})}updateState(){const{fragment:e,root:i,queryParams:o}=this.stateManager.getCurrentUrlTree();this.fragment.set(e),this.queryParams.set(o),this.path.set(this.serializer.serialize(new dr(i)))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),wa=(()=>{class t{router;route;tabIndexAttribute;renderer;el;locationStrategy;hrefAttributeValue=D(new Xg("href"),{optional:!0});reactiveHref=function iw(t,n){return yN("function"==typeof t?_N(t,xte,n?.equal):_N(t.source,t.computation,t.equal))}(()=>this.isAnchorElement?this.computeHref(this._urlTree()):this.hrefAttributeValue);get href(){return nt(this.reactiveHref)}set href(e){this.reactiveHref.set(e)}set target(e){this._target.set(e)}get target(){return nt(this._target)}_target=yt(void 0);set queryParams(e){this._queryParams.set(e)}get queryParams(){return nt(this._queryParams)}_queryParams=yt(void 0,{equal:()=>!1});set fragment(e){this._fragment.set(e)}get fragment(){return nt(this._fragment)}_fragment=yt(void 0);set queryParamsHandling(e){this._queryParamsHandling.set(e)}get queryParamsHandling(){return nt(this._queryParamsHandling)}_queryParamsHandling=yt(void 0);set state(e){this._state.set(e)}get state(){return nt(this._state)}_state=yt(void 0,{equal:()=>!1});set info(e){this._info.set(e)}get info(){return nt(this._info)}_info=yt(void 0,{equal:()=>!1});set relativeTo(e){this._relativeTo.set(e)}get relativeTo(){return nt(this._relativeTo)}_relativeTo=yt(void 0);set preserveFragment(e){this._preserveFragment.set(e)}get preserveFragment(){return nt(this._preserveFragment)}_preserveFragment=yt(!1);set skipLocationChange(e){this._skipLocationChange.set(e)}get skipLocationChange(){return nt(this._skipLocationChange)}_skipLocationChange=yt(!1);set replaceUrl(e){this._replaceUrl.set(e)}get replaceUrl(){return nt(this._replaceUrl)}_replaceUrl=yt(!1);isAnchorElement;onChanges=new pe;applicationErrorHandler=D(Pr);options=D(Hd,{optional:!0});reactiveRouterState=D(ghe);constructor(e,i,o,r,s,a){this.router=e,this.route=i,this.tabIndexAttribute=o,this.renderer=r,this.el=s,this.locationStrategy=a;const l=s.nativeElement.tagName?.toLowerCase();this.isAnchorElement="a"===l||"area"===l||!("object"!=typeof customElements||!customElements.get(l)?.observedAttributes?.includes?.("href"))}setTabIndexIfNotOnNativeEl(e){null!=this.tabIndexAttribute||this.isAnchorElement||this.applyAttributeValue("tabindex",e)}ngOnChanges(e){this.onChanges.next(this)}routerLinkInput=yt(null);set routerLink(e){null==e?(this.routerLinkInput.set(null),this.setTabIndexIfNotOnNativeEl(null)):(jl(e)?this.routerLinkInput.set(e):this.routerLinkInput.set(Array.isArray(e)?e:[e]),this.setTabIndexIfNotOnNativeEl("0"))}onClick(e,i,o,r,s){const a=this._urlTree();if(null===a||this.isAnchorElement&&(0!==e||i||o||r||s||"string"==typeof this.target&&"_self"!=this.target))return!0;const l={skipLocationChange:this.skipLocationChange,replaceUrl:this.replaceUrl,state:this.state,info:this.info};return this.router.navigateByUrl(a,l)?.catch(c=>{this.applicationErrorHandler(c)}),!this.isAnchorElement}ngOnDestroy(){}applyAttributeValue(e,i){const o=this.renderer,r=this.el.nativeElement;null!==i?o.setAttribute(r,e,i):o.removeAttribute(r,e)}_urlTree=Ti(()=>{this.reactiveRouterState.path(),this._preserveFragment()&&this.reactiveRouterState.fragment();const e=o=>"preserve"===o||"merge"===o;(e(this._queryParamsHandling())||e(this.options?.defaultQueryParamsHandling))&&this.reactiveRouterState.queryParams();const i=this.routerLinkInput();return null!==i&&this.router.createUrlTree?jl(i)?i:this.router.createUrlTree(i,{relativeTo:void 0!==this._relativeTo()?this._relativeTo():this.route,queryParams:this._queryParams(),fragment:this._fragment(),queryParamsHandling:this._queryParamsHandling(),preserveFragment:this._preserveFragment()}):null},{equal:(e,i)=>this.computeHref(e)===this.computeHref(i)});get urlTree(){return nt(this._urlTree)}computeHref(e){return null!==e&&this.locationStrategy?this.locationStrategy?.prepareExternalUrl(this.router.serializeUrl(e))??"":null}static \u0275fac=function(i){return new(i||t)(P(vt),P(Ei),Gu("tabindex"),P(Kn),P(Ae),P(Al))};static \u0275dir=de({type:t,selectors:[["","routerLink",""]],hostVars:2,hostBindings:function(i,o){1&i&&L("click",function(s){return o.onClick(s.button,s.ctrlKey,s.shiftKey,s.altKey,s.metaKey)}),2&i&&Ze("href",o.reactiveHref(),d2)("target",o._target())},inputs:{target:"target",queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",state:"state",info:"info",relativeTo:"relativeTo",preserveFragment:[2,"preserveFragment","preserveFragment",Ie],skipLocationChange:[2,"skipLocationChange","skipLocationChange",Ie],replaceUrl:[2,"replaceUrl","replaceUrl",Ie],routerLink:"routerLink"},features:[yi]})}return t})();class h4{}let vhe=(()=>{class t{router;injector;preloadingStrategy;loader;subscription;constructor(e,i,o,r){this.router=e,this.injector=i,this.preloadingStrategy=o,this.loader=r}setUpPreloading(){this.subscription=this.router.events.pipe(vn(e=>e instanceof $r),Zh(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription?.unsubscribe()}processRoutes(e,i){const o=[];for(const r of i){r.providers&&!r._injector&&(r._injector=gg(r.providers,e,""));const s=r._injector??e;r._loadedNgModuleFactory&&!r._loadedInjector&&(r._loadedInjector=r._loadedNgModuleFactory.create(s).injector);const a=r._loadedInjector??s;(r.loadChildren&&!r._loadedRoutes&&void 0===r.canLoad||r.loadComponent&&!r._loadedComponent)&&o.push(this.preloadConfig(s,r)),(r.children||r._loadedRoutes)&&o.push(this.processRoutes(a,r.children??r._loadedRoutes))}return Un(o).pipe(Ad())}preloadConfig(e,i){return this.preloadingStrategy.preload(i,()=>{if(e.destroyed)return ae(null);let o;o=i.loadChildren&&void 0===i.canLoad?Un(this.loader.loadChildren(e,i)):ae(null);const r=o.pipe(Et(s=>null===s?ae(void 0):(i._loadedRoutes=s.routes,i._loadedInjector=s.injector,i._loadedNgModuleFactory=s.factory,this.processRoutes(s.injector??e,s.routes))));return i.loadComponent&&!i._loadedComponent?Un([r,this.loader.loadComponent(e,i)]).pipe(Ad()):r})}static \u0275fac=function(i){return new(i||t)(le(vt),le(Nn),le(h4),le(zx))};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const LS=new Z("");let f4=(()=>{class t{options;routerEventsSubscription;scrollEventsSubscription;lastId=0;lastSource=uf;restoredId=0;store={};urlSerializer=D(Nd);zone=D(ge);viewportScroller=D(JT);transitions=D(qx);constructor(e){this.options=e,this.options.scrollPositionRestoration||="disabled",this.options.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 j_?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=e.navigationTrigger,this.restoredId=e.restoredState?e.restoredState.navigationId:0):e instanceof $r?(this.lastId=e.id,this.scheduleScrollEvent(e,this.urlSerializer.parse(e.urlAfterRedirects).fragment)):e instanceof Fd&&e.code===U_.IgnoredSameUrlNavigation&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(e,this.urlSerializer.parse(e.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(e=>{if(!(e instanceof t3)||"manual"===e.scrollBehavior)return;const i={behavior:"instant"};e.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0],i):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(e.position,i):e.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(e.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0])})}scheduleScrollEvent(e,i){var o=this;const r=nt(this.transitions.currentNavigation)?.extras.scroll;this.zone.runOutsideAngular(Nt(function*(){yield new Promise(s=>{setTimeout(s),typeof requestAnimationFrame<"u"&&requestAnimationFrame(s)}),o.zone.run(()=>{o.transitions.events.next(new t3(e,"popstate"===o.lastSource?o.store[o.restoredId]:null,i,r))})}))}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static \u0275fac=function(i){P1()};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();function Wo(t,n){return{\u0275kind:t,\u0275providers:n}}function m4(){const t=D(Be);return n=>{const e=t.get(or);if(n!==e.components[0])return;const i=t.get(vt),o=t.get(g4);1===t.get(BS)&&i.initialNavigation(),t.get(_4,null,{optional:!0})?.setUpPreloading(),t.get(LS,null,{optional:!0})?.init(),i.resetRootComponentType(e.componentTypes[0]),o.closed||(o.next(),o.complete(),o.unsubscribe())}}const g4=new Z("",{factory:()=>new pe}),BS=new Z("",{factory:()=>1}),_4=new Z("");function She(t){return Wo(0,[{provide:_4,useExisting:vhe},{provide:h4,useExisting:t}])}function Dhe(t){return hi("NgRouterViewTransitions"),Wo(9,[{provide:M3,useValue:Jle},{provide:E3,useValue:{skipNextTransition:!!t?.skipInitialTransition,...t}}])}const The=[Ed,{provide:Nd,useClass:af},vt,hf,{provide:Ei,useFactory:function p4(){return D(vt).routerState.root}},zx,[]];let b4=(()=>{class t{constructor(){}static forRoot(e,i){return{ngModule:t,providers:[The,[],{provide:X_,multi:!0,useValue:e},[],i?.errorHandler?{provide:I3,useValue:i.errorHandler}:[],{provide:Hd,useValue:i||{}},i?.useHash?{provide:Al,useClass:Fte}:{provide:Al,useClass:kN},{provide:LS,useFactory:()=>{const t=D(JT),n=D(Hd);return n.scrollOffset&&t.setOffset(n.scrollOffset),new f4(n)}},i?.preloadingStrategy?She(i.preloadingStrategy).\u0275providers:[],i?.initialNavigation?Phe(i):[],i?.bindToComponentInputs?Wo(8,[c3,{provide:W_,useExisting:c3}]).\u0275providers:[],i?.enableViewTransitions?Dhe().\u0275providers:[],[{provide:v4,useFactory:m4},{provide:oO,multi:!0,useExisting:v4}]]}}static forChild(e){return{ngModule:t,providers:[{provide:X_,multi:!0,useValue:e}]}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({})}return t})();function Phe(t){return["disabled"===t.initialNavigation?Wo(3,[nO(()=>{D(vt).setUpLocationChangeListener()}),{provide:BS,useValue:2}]).\u0275providers:[],"enabledBlocking"===t.initialNavigation?Wo(2,[{provide:z7,useValue:!0},{provide:BS,useValue:0},nO(()=>{const n=D(Be);return n.get(mz,Promise.resolve()).then(()=>new Promise(i=>{const o=n.get(vt),r=n.get(g4);A3(o,()=>{i(!0)}),n.get(qx).afterPreactivation=()=>(i(!0),r.closed?ae(void 0):r),o.initialNavigation()}))})]).\u0275providers:[]]}const v4=new Z("");let Bf=(()=>{class t{set forceFail(e){this.forceFailInternal=e}constructor(e){this.router=e,this.forceFailInternal=!1}canActivate(e,i){return this.checkIfCanActivate()}canActivateChild(e,i){return this.checkIfCanActivate()}checkIfCanActivate(){return this.forceFailInternal?(this.router.navigate(["login"],{replaceUrl:!0}),ae(!1)):ae(!0)}static{this.\u0275fac=function(i){return new(i||t)(le(vt))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();var xa=function(t){return t[t.AuthDisabled=0]="AuthDisabled",t[t.Logged=1]="Logged",t[t.NotLogged=2]="NotLogged",t}(xa||{});let Vf=(()=>{class t{constructor(e,i,o){this.apiService=e,this.translateService=i,this.authGuardService=o}login(e){return this.apiService.post("login",{username:"admin",password:e},new _r({ignoreAuth:!0})).pipe(ni(i=>{if(!0!==i)throw new Error;this.authGuardService.forceFail=!1}))}checkLogin(){return this.apiService.get("user",new _r({ignoreAuth:!0})).pipe(ye(e=>e.username?xa.Logged:xa.AuthDisabled),go(e=>(e=Je(e)).originalError&&401===e.originalError.status?(this.authGuardService.forceFail=!0,ae(xa.NotLogged)):cr(e)))}logout(){return this.apiService.post("logout",{}).pipe(ni(e=>{if(!0!==e)throw new Error;this.authGuardService.forceFail=!0}))}changePassword(e,i){return this.apiService.post("change-password",{old_password:e,new_password:i},new _r({responseType:Fb.Text,ignoreAuth:!0})).pipe(ye(o=>{if("string"==typeof o&&"true"===o.trim())return!0;throw"Please do not change the default password."===o?new Error(this.translateService.instant("settings.password.errors.default-password")):new Error(this.translateService.instant("common.operation-error"))}),go(o=>((o=Je(o)).originalError&&401===o.originalError.status&&(o.translatableErrorMsg="settings.password.errors.bad-old-password"),cr(o))))}initialConfig(e){return this.apiService.post("create-account",{username:"admin",password:e},new _r({responseType:Fb.Text,ignoreAuth:!0})).pipe(ye(i=>{if("string"==typeof i&&"true"===i.trim())return!0;throw new Error(i)}),go(i=>((i=Je(i)).originalError&&500===i.originalError.status&&(i.translatableErrorMsg="settings.password.initial-config.error"),cr(i))))}userExists(){return this.apiService.get("user-exists",new _r({ignoreAuth:!0})).pipe(ye(e=>!0===e.exists),go(()=>ae(!0)))}static{this.\u0275fac=function(i){return new(i||t)(le(br),le(zo),le(Bf))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();class Ahe{}class Wn{constructor(){this.persistentScrollPosKey="scroll-pos"}static{this.mustCallNgOnInitSuper=Symbol("You must call super.ngOnInit.")}ngOnInit(){let n=this.getLocalValue(this.persistentScrollPosKey);n=n?n.value:"0",window.scrollTo(0,Number(n)),setTimeout(()=>window.scrollTo(0,Number(n)),1)}saveScrollPosition(n){this.saveLocalValue(this.persistentScrollPosKey,window.scrollY+"")}saveLocalValue(n,e){const i=window.history.state;i[n]=e,i[n+"_time"]=(new Date).getTime(),window.history.replaceState(i,"",window.location.pathname+window.location.hash)}getLocalValue(n){if(!window.history.state||void 0===window.history.state[n])return null;const e=new Ahe;return e.value=window.history.state[n],e.date=window.history.state[n+"_time"],e}static{this.\u0275fac=function(e){return new(e||Wn)}}static{this.\u0275cmp=se({type:Wn,selectors:[["app-page-base"]],hostBindings:function(e,i){1&e&&L("scroll",function(r){return i.saveScrollPosition(r)},zC)},standalone:!1,decls:0,vars:0,template:function(e,i){},encapsulation:2})}}let Rhe=(()=>{class t extends Wn{constructor(e,i){super(),this.authService=e,this.router=i}ngOnInit(){return this.verificationSubscription=this.authService.checkLogin().subscribe(e=>{this.router.navigate(e!==xa.NotLogged?["nodes"]:["login"],{replaceUrl:!0})},()=>{this.router.navigate(["nodes"],{replaceUrl:!0})}),super.ngOnInit()}ngOnDestroy(){this.verificationSubscription.unsubscribe()}static{this.\u0275fac=function(i){return new(i||t)(P(Vf),P(vt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-start"]],standalone:!1,features:[be],decls:2,vars:0,consts:[[1,"h-100","w-100"]],template:function(i,o){1&i&&(f(0,"div",0),B(1,"app-loading-indicator"),h())},dependencies:[vr],encapsulation:2})}}return t})(),y4=(()=>{class t{_renderer;_elementRef;onChange=e=>{};onTouched=()=>{};constructor(e,i){this._renderer=e,this._elementRef=i}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 \u0275fac=function(i){return new(i||t)(P(Kn),P(Ae))};static \u0275dir=de({type:t})}return t})(),Zl=(()=>{class t extends y4{static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275dir=de({type:t,features:[be]})}return t})();const yr=new Z(""),Fhe={provide:yr,useExisting:Vt(()=>rn),multi:!0},Bhe=new Z("");let rn=(()=>{class t extends y4{_compositionMode;_composing=!1;constructor(e,i,o){super(e,i),this._compositionMode=o,null==this._compositionMode&&(this._compositionMode=!function Lhe(){const t=Ys()?Ys().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 \u0275fac=function(i){return new(i||t)(P(Kn),P(Ae),P(Bhe,8))};static \u0275dir=de({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&&L("input",function(s){return o._handleInput(s.target.value)})("blur",function(){return o.onTouched()})("compositionstart",function(){return o._compositionStart()})("compositionend",function(s){return o._compositionEnd(s.target.value)})},standalone:!1,features:[ht([Fhe]),be]})}return t})();function VS(t){return null==t||0===HS(t)}function HS(t){return null==t?null:Array.isArray(t)||"string"==typeof t?t.length:t instanceof Set?t.size:null}const Ii=new Z(""),Sa=new Z(""),Vhe=/^(?=.{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 Ve{static min(n){return w4(n)}static max(n){return x4(n)}static required(n){return function S4(t){return VS(t.value)?{required:!0}:null}(n)}static requiredTrue(n){return function k4(t){return!0===t.value?null:{required:!0}}(n)}static email(n){return function D4(t){return VS(t.value)||Vhe.test(t.value)?null:{email:!0}}(n)}static minLength(n){return function T4(t){return n=>{const e=n.value?.length??HS(n.value);return null===e||0===e?null:e{if(VS(i.value))return null;const o=i.value;return n.test(o)?null:{pattern:{requiredPattern:e,actualValue:o}}}}(n)}static nullValidator(n){return null}static compose(n){return N4(n)}static composeAsync(n){return F4(n)}}function w4(t){return n=>{if(null==n.value||null==t)return null;const e=parseFloat(n.value);return!isNaN(e)&&e{if(null==n.value||null==t)return null;const e=parseFloat(n.value);return!isNaN(e)&&e>t?{max:{max:t,actual:n.value}}:null}}function M4(t){return n=>{const e=n.value?.length??HS(n.value);return null!==e&&e>t?{maxlength:{requiredLength:t,actualLength:e}}:null}}function Bb(t){return null}function I4(t){return null!=t}function P4(t){return Sh(t)?Un(t):t}function O4(t){let n={};return t.forEach(e=>{n=null!=e?{...n,...e}:n}),0===Object.keys(n).length?null:n}function A4(t,n){return n.map(e=>e(t))}function R4(t){return t.map(n=>function Hhe(t){return!t.validate}(n)?n:e=>n.validate(e))}function N4(t){if(!t)return null;const n=t.filter(I4);return 0==n.length?null:function(e){return O4(A4(e,n))}}function jS(t){return null!=t?N4(R4(t)):null}function F4(t){if(!t)return null;const n=t.filter(I4);return 0==n.length?null:function(e){return kb(A4(e,n).map(P4)).pipe(ye(O4))}}function US(t){return null!=t?F4(R4(t)):null}function L4(t,n){return null===t?[n]:Array.isArray(t)?[...t,n]:[t,n]}function B4(t){return t._rawValidators}function V4(t){return t._rawAsyncValidators}function zS(t){return t?Array.isArray(t)?t:[t]:[]}function Vb(t,n){return Array.isArray(t)?t.includes(n):t===n}function H4(t,n){const e=zS(n);return zS(t).forEach(o=>{Vb(e,o)||e.push(o)}),e}function j4(t,n){return zS(n).filter(e=>!Vb(t,e))}class U4{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}_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators=[];_rawAsyncValidators=[];_setValidators(n){this._rawValidators=n||[],this._composedValidatorFn=jS(this._rawValidators)}_setAsyncValidators(n){this._rawAsyncValidators=n||[],this._composedAsyncValidatorFn=US(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_onDestroyCallbacks=[];_registerOnDestroy(n){this._onDestroyCallbacks.push(n)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(n=>n()),this._onDestroyCallbacks=[]}reset(n=void 0){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 Hi extends U4{name;get formDirective(){return null}get path(){return null}}class Yr extends U4{_parent=null;name=null;valueAccessor=null}class z4{_cd;constructor(n){this._cd=n}get isTouched(){return this._cd?.control?._touched?.(),!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return this._cd?.control?._pristine?.(),!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return this._cd?.control?._status?.(),!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return this._cd?._submitted?.(),!!this._cd?.submitted}}let sn=(()=>{class t extends z4{constructor(e){super(e)}static \u0275fac=function(i){return new(i||t)(P(Yr,2))};static \u0275dir=de({type:t,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,o){2&i&&Ke("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)},standalone:!1,features:[be]})}return t})(),yn=(()=>{class t extends z4{constructor(e){super(e)}static \u0275fac=function(i){return new(i||t)(P(Hi,10))};static \u0275dir=de({type:t,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["","formArray",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(i,o){2&i&&Ke("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)},standalone:!1,features:[be]})}return t})();const Hf="VALID",jb="INVALID",Yd="PENDING",jf="DISABLED";class Xd{}class G4 extends Xd{value;source;constructor(n,e){super(),this.value=n,this.source=e}}class GS extends Xd{pristine;source;constructor(n,e){super(),this.pristine=n,this.source=e}}class qS extends Xd{touched;source;constructor(n,e){super(),this.touched=n,this.source=e}}class Ub extends Xd{status;source;constructor(n,e){super(),this.status=n,this.source=e}}class q4 extends Xd{source;constructor(n){super(),this.source=n}}class KS extends Xd{source;constructor(n){super(),this.source=n}}function YS(t){return(zb(t)?t.validators:t)||null}function XS(t,n){return(zb(n)?n.asyncValidators:t)||null}function zb(t){return null!=t&&!Array.isArray(t)&&"object"==typeof t}function K4(t,n,e){const i=t.controls;if(!(n?Object.keys(i):i).length)throw new X(1e3,"");if(!i[e])throw new X(1001,"")}function Y4(t,n,e){t._forEachChild((i,o)=>{if(void 0===e[o])throw new X(1002,"")})}class $b{_pendingDirty=!1;_hasOwnPendingAsyncValidator=null;_pendingTouched=!1;_onCollectionChange=()=>{};_updateOn;_parent=null;_asyncValidationSubscription;_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators;_rawAsyncValidators;value;constructor(n,e){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 status(){return nt(this.statusReactive)}set status(n){nt(()=>this.statusReactive.set(n))}_status=Ti(()=>this.statusReactive());statusReactive=yt(void 0);get valid(){return this.status===Hf}get invalid(){return this.status===jb}get pending(){return this.status==Yd}get disabled(){return this.status===jf}get enabled(){return this.status!==jf}errors;get pristine(){return nt(this.pristineReactive)}set pristine(n){nt(()=>this.pristineReactive.set(n))}_pristine=Ti(()=>this.pristineReactive());pristineReactive=yt(!0);get dirty(){return!this.pristine}get touched(){return nt(this.touchedReactive)}set touched(n){nt(()=>this.touchedReactive.set(n))}_touched=Ti(()=>this.touchedReactive());touchedReactive=yt(!1);get untouched(){return!this.touched}_events=new pe;events=this._events.asObservable();valueChanges;statusChanges;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(H4(n,this._rawValidators))}addAsyncValidators(n){this.setAsyncValidators(H4(n,this._rawAsyncValidators))}removeValidators(n){this.setValidators(j4(n,this._rawValidators))}removeAsyncValidators(n){this.setAsyncValidators(j4(n,this._rawAsyncValidators))}hasValidator(n){return Vb(this._rawValidators,n)}hasAsyncValidator(n){return Vb(this._rawAsyncValidators,n)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(n={}){const e=!1===this.touched;this.touched=!0;const i=n.sourceControl??this;n.onlySelf||this._parent?.markAsTouched({...n,sourceControl:i}),e&&!1!==n.emitEvent&&this._events.next(new qS(!0,i))}markAllAsDirty(n={}){this.markAsDirty({onlySelf:!0,emitEvent:n.emitEvent,sourceControl:this}),this._forEachChild(e=>e.markAllAsDirty(n))}markAllAsTouched(n={}){this.markAsTouched({onlySelf:!0,emitEvent:n.emitEvent,sourceControl:this}),this._forEachChild(e=>e.markAllAsTouched(n))}markAsUntouched(n={}){const e=!0===this.touched;this.touched=!1,this._pendingTouched=!1;const i=n.sourceControl??this;this._forEachChild(o=>{o.markAsUntouched({onlySelf:!0,emitEvent:n.emitEvent,sourceControl:i})}),n.onlySelf||this._parent?._updateTouched(n,i),e&&!1!==n.emitEvent&&this._events.next(new qS(!1,i))}markAsDirty(n={}){const e=!0===this.pristine;this.pristine=!1;const i=n.sourceControl??this;n.onlySelf||this._parent?.markAsDirty({...n,sourceControl:i}),e&&!1!==n.emitEvent&&this._events.next(new GS(!1,i))}markAsPristine(n={}){const e=!1===this.pristine;this.pristine=!0,this._pendingDirty=!1;const i=n.sourceControl??this;this._forEachChild(o=>{o.markAsPristine({onlySelf:!0,emitEvent:n.emitEvent})}),n.onlySelf||this._parent?._updatePristine(n,i),e&&!1!==n.emitEvent&&this._events.next(new GS(!0,i))}markAsPending(n={}){this.status=Yd;const e=n.sourceControl??this;!1!==n.emitEvent&&(this._events.next(new Ub(this.status,e)),this.statusChanges.emit(this.status)),n.onlySelf||this._parent?.markAsPending({...n,sourceControl:e})}disable(n={}){const e=this._parentMarkedDirty(n.onlySelf);this.status=jf,this.errors=null,this._forEachChild(o=>{o.disable({...n,onlySelf:!0})}),this._updateValue();const i=n.sourceControl??this;!1!==n.emitEvent&&(this._events.next(new G4(this.value,i)),this._events.next(new Ub(this.status,i)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...n,skipPristineCheck:e},this),this._onDisabledChange.forEach(o=>o(!0))}enable(n={}){const e=this._parentMarkedDirty(n.onlySelf);this.status=Hf,this._forEachChild(i=>{i.enable({...n,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent}),this._updateAncestors({...n,skipPristineCheck:e},this),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(n,e){n.onlySelf||(this._parent?.updateValueAndValidity(n),n.skipPristineCheck||this._parent?._updatePristine({},e),this._parent?._updateTouched({},e))}setParent(n){this._parent=n}getRawValue(){return this.value}updateValueAndValidity(n={}){if(this._setInitialStatus(),this._updateValue(),this.enabled){const i=this._cancelExistingSubscription();this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===Hf||this.status===Yd)&&this._runAsyncValidator(i,n.emitEvent)}const e=n.sourceControl??this;!1!==n.emitEvent&&(this._events.next(new G4(this.value,e)),this._events.next(new Ub(this.status,e)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),n.onlySelf||this._parent?.updateValueAndValidity({...n,sourceControl:e})}_updateTreeValidity(n={emitEvent:!0}){this._forEachChild(e=>e._updateTreeValidity(n)),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?jf:Hf}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(n,e){if(this.asyncValidator){this.status=Yd,this._hasOwnPendingAsyncValidator={emitEvent:!1!==e,shouldHaveEmitted:!1!==n};const i=P4(this.asyncValidator(this));this._asyncValidationSubscription=i.subscribe(o=>{this._hasOwnPendingAsyncValidator=null,this.setErrors(o,{emitEvent:e,shouldHaveEmitted:n})})}}_cancelExistingSubscription(){if(this._asyncValidationSubscription){this._asyncValidationSubscription.unsubscribe();const n=(this._hasOwnPendingAsyncValidator?.emitEvent||this._hasOwnPendingAsyncValidator?.shouldHaveEmitted)??!1;return this._hasOwnPendingAsyncValidator=null,n}return!1}setErrors(n,e={}){this.errors=n,this._updateControlsErrors(!1!==e.emitEvent,this,e.shouldHaveEmitted)}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?.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,e,i){this.status=this._calculateStatus(),n&&this.statusChanges.emit(this.status),(n||i)&&this._events.next(new Ub(this.status,e)),this._parent&&this._parent._updateControlsErrors(n,e,i)}_initObservables(){this.valueChanges=new ve,this.statusChanges=new ve}_calculateStatus(){return this._allControlsDisabled()?jf:this.errors?jb:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(Yd)?Yd:this._anyControlsHaveStatus(jb)?jb:Hf}_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,e){const i=!this._anyControlsDirty(),o=this.pristine!==i;this.pristine=i,n.onlySelf||this._parent?._updatePristine(n,e),o&&this._events.next(new GS(this.pristine,e))}_updateTouched(n={},e){this.touched=this._anyControlsTouched(),this._events.next(new qS(this.touched,e)),n.onlySelf||this._parent?._updateTouched(n,e)}_onDisabledChange=[];_registerOnCollectionChange(n){this._onCollectionChange=n}_setUpdateStrategy(n){zb(n)&&null!=n.updateOn&&(this._updateOn=n.updateOn)}_parentMarkedDirty(n){return!n&&!!this._parent?.dirty&&!this._parent._anyControlsDirty()}_find(n){return null}_assignValidators(n){this._rawValidators=Array.isArray(n)?n.slice():n,this._composedValidatorFn=function qhe(t){return Array.isArray(t)?jS(t):t||null}(this._rawValidators)}_assignAsyncValidators(n){this._rawAsyncValidators=Array.isArray(n)?n.slice():n,this._composedAsyncValidatorFn=function Khe(t){return Array.isArray(t)?US(t):t||null}(this._rawAsyncValidators)}}class Zd extends $b{constructor(n,e,i){super(YS(e),XS(i,e)),this.controls=n,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;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={}){Y4(this,0,n),Object.keys(n).forEach(i=>{K4(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,{...e,onlySelf:!0})}),this._updatePristine(e,this),this._updateTouched(e,this),this.updateValueAndValidity(e),!1!==e?.emitEvent&&this._events.next(new KS(this))}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}}const ZS=Zd;class X4 extends Zd{}const Ql=new Z("",{factory:()=>Uf}),Uf="always";function Wb(t,n){return[...n.path,t]}function zf(t,n,e=Uf){QS(t,n),n.valueAccessor.writeValue(t.value),(t.disabled||"always"===e)&&n.valueAccessor.setDisabledState?.(t.disabled),function Xhe(t,n){n.valueAccessor.registerOnChange(e=>{t._pendingValue=e,t._pendingChange=!0,t._pendingDirty=!0,"change"===t.updateOn&&Z4(t,n)})}(t,n),function Qhe(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 Zhe(t,n){n.valueAccessor.registerOnTouched(()=>{t._pendingTouched=!0,"blur"===t.updateOn&&t._pendingChange&&Z4(t,n),"submit"!==t.updateOn&&t.markAsTouched()})}(t,n),function Yhe(t,n){if(n.valueAccessor.setDisabledState){const e=i=>{n.valueAccessor.setDisabledState(i)};t.registerOnDisabledChange(e),n._registerOnDestroy(()=>{t._unregisterOnDisabledChange(e)})}}(t,n)}function Gb(t,n,e=!0){const i=()=>{};n?.valueAccessor?.registerOnChange(i),n?.valueAccessor?.registerOnTouched(i),Kb(t,n),t&&(n._invokeOnDestroyCallbacks(),t._registerOnCollectionChange(()=>{}))}function qb(t,n){t.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(n)})}function QS(t,n){const e=B4(t);null!==n.validator?t.setValidators(L4(e,n.validator)):"function"==typeof e&&t.setValidators([e]);const i=V4(t);null!==n.asyncValidator?t.setAsyncValidators(L4(i,n.asyncValidator)):"function"==typeof i&&t.setAsyncValidators([i]);const o=()=>t.updateValueAndValidity();qb(n._rawValidators,o),qb(n._rawAsyncValidators,o)}function Kb(t,n){let e=!1;if(null!==t){if(null!==n.validator){const o=B4(t);if(Array.isArray(o)&&o.length>0){const r=o.filter(s=>s!==n.validator);r.length!==o.length&&(e=!0,t.setValidators(r))}}if(null!==n.asyncValidator){const o=V4(t);if(Array.isArray(o)&&o.length>0){const r=o.filter(s=>s!==n.asyncValidator);r.length!==o.length&&(e=!0,t.setAsyncValidators(r))}}}const i=()=>{};return qb(n._rawValidators,i),qb(n._rawAsyncValidators,i),e}function Z4(t,n){t._pendingDirty&&t.markAsDirty(),t.setValue(t._pendingValue,{emitModelToViewChange:!1}),n.viewToModelUpdate(t._pendingValue),t._pendingChange=!1}function Q4(t,n){QS(t,n)}function ek(t,n){if(!t.hasOwnProperty("model"))return!1;const e=t.model;return!!e.isFirstChange()||!Object.is(n,e.currentValue)}function J4(t,n){t._syncPendingControls(),n.forEach(e=>{const i=e.control;"submit"===i.updateOn&&i._pendingChange&&(e.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}function tk(t,n){if(!n)return null;let e,i,o;return Array.isArray(n),n.forEach(r=>{r.constructor===rn?e=r:function tfe(t){return Object.getPrototypeOf(t.constructor)===Zl}(r)?i=r:o=r}),o||i||e||null}const ife={provide:Hi,useExisting:Vt(()=>Qd)},$f=Promise.resolve();let Qd=(()=>{class t extends Hi{callSetDisabledState;get submitted(){return nt(this.submittedReactive)}_submitted=Ti(()=>this.submittedReactive());submittedReactive=yt(!1);_directives=new Set;form;ngSubmit=new ve;options;constructor(e,i,o){super(),this.callSetDisabledState=o,this.form=new Zd({},jS(e),US(i))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(e){$f.then(()=>{const i=this._findContainer(e.path);e.control=i.registerControl(e.name,e.control),zf(e.control,e,this.callSetDisabledState),e.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(e)})}getControl(e){return this.form.get(e.path)}removeControl(e){$f.then(()=>{this._findContainer(e.path)?.removeControl(e.name),this._directives.delete(e)})}addFormGroup(e){$f.then(()=>{const i=this._findContainer(e.path),o=new Zd({});Q4(o,e),i.registerControl(e.name,o),o.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(e){$f.then(()=>{this._findContainer(e.path)?.removeControl?.(e.name)})}getFormGroup(e){return this.form.get(e.path)}updateModel(e,i){$f.then(()=>{this.form.get(e.path).setValue(i)})}setValue(e){this.control.setValue(e)}onSubmit(e){return this.submittedReactive.set(!0),J4(this.form,this._directives),this.ngSubmit.emit(e),this.form._events.next(new q4(this.control)),"dialog"===e?.target?.method}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this.submittedReactive.set(!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 \u0275fac=function(i){return new(i||t)(P(Ii,10),P(Sa,10),P(Ql,8))};static \u0275dir=de({type:t,selectors:[["form",3,"ngNoForm","",3,"formGroup","",3,"formArray",""],["ng-form"],["","ngForm",""]],hostBindings:function(i,o){1&i&&L("submit",function(s){return o.onSubmit(s)})("reset",function(){return o.onReset()})},inputs:{options:[0,"ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[ht([ife]),be]})}return t})();function eV(t,n){const e=t.indexOf(n);e>-1&&t.splice(e,1)}function tV(t){return"object"==typeof t&&null!==t&&2===Object.keys(t).length&&"value"in t&&"disabled"in t}const Jd=class extends $b{defaultValue=null;_onChange=[];_pendingValue;_pendingChange=!1;constructor(n=null,e,i){super(YS(e),XS(i,e)),this._applyFormState(n),this._setUpdateStrategy(e),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),zb(e)&&(e.nonNullable||e.initialValueIsDefault)&&(this.defaultValue=tV(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),e.overwriteDefaultValue&&(this.defaultValue=this.value),this._pendingChange=!1,!1!==e?.emitEvent&&this._events.next(new KS(this))}_updateValue(){}_anyControls(n){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(n){this._onChange.push(n)}_unregisterOnChange(n){eV(this._onChange,n)}registerOnDisabledChange(n){this._onDisabledChange.push(n)}_unregisterOnDisabledChange(n){eV(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){tV(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}},eu=Jd;let Yb=(()=>{class t extends Hi{_parent;ngOnInit(){this._checkParentType(),this.formDirective.addFormGroup(this)}ngOnDestroy(){this.formDirective?.removeFormGroup(this)}get control(){return this.formDirective.getFormGroup(this)}get path(){return Wb(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275dir=de({type:t,standalone:!1,features:[be]})}return t})();const lfe={provide:Yr,useExisting:Vt(()=>Zb)},nV=Promise.resolve();let Zb=(()=>{class t extends Yr{_changeDetectorRef;callSetDisabledState;control=new Jd;static ngAcceptInputType_isDisabled;_registered=!1;viewModel;name="";isDisabled;model;options;update=new ve;constructor(e,i,o,r,s,a){super(),this._changeDetectorRef=s,this.callSetDisabledState=a,this._parent=e,this._setValidators(i),this._setAsyncValidators(o),this.valueAccessor=tk(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),ek(e,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){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(){zf(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._checkName()}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(e){nV.then(()=>{this.control.setValue(e,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(e){const i=e.isDisabled.currentValue,o=0!==i&&Ie(i);nV.then(()=>{o&&!this.control.disabled?this.control.disable():!o&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(e){return this._parent?Wb(e,this._parent):[e]}static \u0275fac=function(i){return new(i||t)(P(Hi,9),P(Ii,10),P(Sa,10),P(yr,10),P(Pn,8),P(Ql,8))};static \u0275dir=de({type:t,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"],options:[0,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],standalone:!1,features:[ht([lfe]),be,yi]})}return t})(),Cn=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""],standalone:!1})}return t})();const cfe={provide:yr,useExisting:Vt(()=>Wf),multi:!0};let Wf=(()=>{class t extends Zl{writeValue(e){this.setProperty("value",e??"")}registerOnChange(e){this.onChange=i=>{e(""==i?null:parseFloat(i))}}static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275dir=de({type:t,selectors:[["input","type","number","formControlName",""],["input","type","number","formControl",""],["input","type","number","ngModel",""]],hostBindings:function(i,o){1&i&&L("input",function(s){return o.onChange(s.target.value)})("blur",function(){return o.onTouched()})},standalone:!1,features:[ht([cfe]),be]})}return t})();class rV extends $b{constructor(n,e,i){super(YS(e),XS(i,e)),this.controls=n,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;at(n){return this.controls[this._adjustIndex(n)]}push(n,e={}){Array.isArray(n)?n.forEach(i=>{this.controls.push(i),this._registerControl(i)}):(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={}){Y4(this,0,n),n.forEach((i,o)=>{K4(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],{...e,onlySelf:!0})}),this._updatePristine(e,this),this._updateTouched(e,this),this.updateValueAndValidity(e),!1!==e?.emitEvent&&this._events.next(new KS(this))}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}}let Qb=(()=>{class t extends Hi{callSetDisabledState;get submitted(){return nt(this._submittedReactive)}set submitted(e){this._submittedReactive.set(e)}_submitted=Ti(()=>this._submittedReactive());_submittedReactive=yt(!1);_oldForm;_onCollectionChange=()=>this._updateDomValue();directives=[];constructor(e,i,o){super(),this.callSetDisabledState=o,this._setValidators(e),this._setAsyncValidators(i)}ngOnChanges(e){this.onChanges(e)}ngOnDestroy(){this.onDestroy()}onChanges(e){this._checkFormPresent(),e.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}onDestroy(){this.form&&(Kb(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get path(){return[]}addControl(e){const i=this.form.get(e.path);return zf(i,e,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(e),i}getControl(e){return this.form.get(e.path)}removeControl(e){Gb(e.control||null,e,!1),function nfe(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)}getFormArray(e){return this.form.get(e.path)}addFormArray(e){this._setUpFormContainer(e)}removeFormArray(e){this._cleanUpFormContainer(e)}updateModel(e,i){this.form.get(e.path).setValue(i)}onReset(){this.resetForm()}resetForm(e=void 0,i={}){this.form.reset(e,i),this._submittedReactive.set(!1)}onSubmit(e){return this.submitted=!0,J4(this.form,this.directives),this.ngSubmit.emit(e),this.form._events.next(new q4(this.control)),"dialog"===e?.target?.method}_updateDomValue(){this.directives.forEach(e=>{const i=e.control,o=this.form.get(e.path);i!==o&&(Gb(i||null,e),(t=>t instanceof Jd)(o)&&(zf(o,e,this.callSetDisabledState),e.control=o))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(e){const i=this.form.get(e.path);Q4(i,e),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(e){const i=this.form?.get(e.path);i&&function Jhe(t,n){return Kb(t,n)}(i,e)&&i.updateValueAndValidity({emitEvent:!1})}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm?._registerOnCollectionChange(()=>{})}_updateValidators(){QS(this.form,this),this._oldForm&&Kb(this._oldForm,this)}_checkFormPresent(){}static \u0275fac=function(i){return new(i||t)(P(Ii,10),P(Sa,10),P(Ql,8))};static \u0275dir=de({type:t,features:[be,yi]})}return t})();const nk=new Z(""),mfe={provide:Hi,useExisting:Vt(()=>Jl)};let Jl=(()=>{class t extends Yb{name=null;constructor(e,i,o){super(),this._parent=e,this._setValidators(i),this._setAsyncValidators(o)}_checkParentType(){lV(this._parent)}static \u0275fac=function(i){return new(i||t)(P(Hi,13),P(Ii,10),P(Sa,10))};static \u0275dir=de({type:t,selectors:[["","formGroupName",""]],inputs:{name:[0,"formGroupName","name"]},standalone:!1,features:[ht([mfe]),be]})}return t})();const gfe={provide:Hi,useExisting:Vt(()=>tu)};let tu=(()=>{class t extends Hi{_parent;name=null;constructor(e,i,o){super(),this._parent=e,this._setValidators(i),this._setAsyncValidators(o)}ngOnInit(){lV(this._parent),this.formDirective.addFormArray(this)}ngOnDestroy(){this.formDirective?.removeFormArray(this)}get control(){return this.formDirective.getFormArray(this)}get formDirective(){return this._parent?this._parent.formDirective:null}get path(){return Wb(null==this.name?this.name:this.name.toString(),this._parent)}static \u0275fac=function(i){return new(i||t)(P(Hi,13),P(Ii,10),P(Sa,10))};static \u0275dir=de({type:t,selectors:[["","formArrayName",""]],inputs:{name:[0,"formArrayName","name"]},standalone:!1,features:[ht([gfe]),be]})}return t})();function lV(t){return!(t instanceof Jl||t instanceof Qb||t instanceof tu)}const _fe={provide:Yr,useExisting:Vt(()=>fn)};let fn=(()=>{class t extends Yr{_ngModelWarningConfig;_added=!1;viewModel;control;name=null;set isDisabled(e){}model;update=new ve;static _ngModelWarningSentOnce=!1;_ngModelWarningSent=!1;constructor(e,i,o,r,s){super(),this._ngModelWarningConfig=s,this._parent=e,this._setValidators(i),this._setAsyncValidators(o),this.valueAccessor=tk(0,r)}ngOnChanges(e){this._added||this._setUpControl(),ek(e,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective?.removeControl(this)}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}get path(){return Wb(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_setUpControl(){this.control=this.formDirective.addControl(this),this._added=!0}static \u0275fac=function(i){return new(i||t)(P(Hi,13),P(Ii,10),P(Sa,10),P(yr,10),P(nk,8))};static \u0275dir=de({type:t,selectors:[["","formControlName",""]],inputs:{name:[0,"formControlName","name"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},standalone:!1,features:[ht([_fe]),be,yi]})}return t})();const bfe={provide:Hi,useExisting:Vt(()=>Xt)};let Xt=(()=>{class t extends Qb{form=null;ngSubmit=new ve;get control(){return this.form}static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275dir=de({type:t,selectors:[["","formGroup",""]],hostBindings:function(i,o){1&i&&L("submit",function(s){return o.onSubmit(s)})("reset",function(){return o.onReset()})},inputs:{form:[0,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[ht([bfe]),be]})}return t})();function hV(t){return"number"==typeof t?t:parseFloat(t)}let ec=(()=>{class t{_validator=Bb;_onChange;_enabled;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):Bb,this._onChange?.()}}validate(e){return this._validator(e)}registerOnValidatorChange(e){this._onChange=e}enabled(e){return null!=e}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,features:[yi]})}return t})();const kfe={provide:Ii,useExisting:Vt(()=>rk),multi:!0};let rk=(()=>{class t extends ec{max;inputName="max";normalizeInput=e=>hV(e);createValidator=e=>x4(e);static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275dir=de({type:t,selectors:[["input","type","number","max","","formControlName",""],["input","type","number","max","","formControl",""],["input","type","number","max","","ngModel",""]],hostVars:1,hostBindings:function(i,o){2&i&&Ze("max",o._enabled?o.max:null)},inputs:{max:"max"},standalone:!1,features:[ht([kfe]),be]})}return t})();const Dfe={provide:Ii,useExisting:Vt(()=>sk),multi:!0};let sk=(()=>{class t extends ec{min;inputName="min";normalizeInput=e=>hV(e);createValidator=e=>w4(e);static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275dir=de({type:t,selectors:[["input","type","number","min","","formControlName",""],["input","type","number","min","","formControl",""],["input","type","number","min","","ngModel",""]],hostVars:1,hostBindings:function(i,o){2&i&&Ze("min",o._enabled?o.min:null)},inputs:{min:"min"},standalone:!1,features:[ht([Dfe]),be]})}return t})();const Pfe={provide:Ii,useExisting:Vt(()=>ji),multi:!0};let ji=(()=>{class t extends ec{maxlength;inputName="maxlength";normalizeInput=e=>function uV(t){return"number"==typeof t?t:parseInt(t,10)}(e);createValidator=e=>M4(e);static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275dir=de({type:t,selectors:[["","maxlength","","formControlName",""],["","maxlength","","formControl",""],["","maxlength","","ngModel",""]],hostVars:1,hostBindings:function(i,o){2&i&&Ze("maxlength",o._enabled?o.maxlength:null)},inputs:{maxlength:"maxlength"},standalone:!1,features:[ht([Pfe]),be]})}return t})(),_V=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({})}return t})();function bV(t){return!!t&&(void 0!==t.asyncValidators||void 0!==t.validators||void 0!==t.updateOn)}let vV=(()=>{class t{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 bV(i)?r=i:null!==i&&(r.validators=i.validator,r.asyncValidators=i.asyncValidator),new Zd(o,r)}record(e,i=null){const o=this._reduceControls(e);return new X4(o,i)}control(e,i,o){let r={};return this.useNonNullable?(bV(i)?r=i:(r.validators=i,r.asyncValidators=o),new Jd(e,{...r,nonNullable:!0})):new Jd(e,i,o)}array(e,i,o){const r=e.map(s=>this._createControl(s));return new rV(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 Jd||e instanceof $b?e:Array.isArray(e)?this.control(e[0],e.length>1?e[1]:null,e.length>2?e[2]:null):this.control(e)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),pi=(()=>{class t extends vV{group(e,i=null){return super.group(e,i)}control(e,i,o){return super.control(e,i,o)}array(e,i,o){return super.array(e,i,o)}static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Afe=(()=>{class t{static withConfig(e){return{ngModule:t,providers:[{provide:Ql,useValue:e.callSetDisabledState??Uf}]}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({imports:[_V]})}return t})(),Rfe=(()=>{class t{static withConfig(e){return{ngModule:t,providers:[{provide:nk,useValue:e.warnOnNgModelWithFormControl??"always"},{provide:Ql,useValue:e.callSetDisabledState??Uf}]}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({imports:[_V]})}return t})();function nu(t){return null!=t&&"false"!=`${t}`}class Ffe{_box;_destroyed=new pe;_resizeSubject=new pe;_resizeObserver;_elementObservables=new Map;constructor(n){this._box=n,typeof ResizeObserver<"u"&&(this._resizeObserver=new ResizeObserver(e=>this._resizeSubject.next(e)))}observe(n){return this._elementObservables.has(n)||this._elementObservables.set(n,new Rt(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(vn(e=>e.some(i=>i.target===n)),PS({bufferSize:1,refCount:!0}),on(this._destroyed))),this._elementObservables.get(n)}destroy(){this._destroyed.next(),this._destroyed.complete(),this._resizeSubject.complete(),this._elementObservables.clear()}}let yV=(()=>{class t{_cleanupErrorListener;_observers=new Map;_ngZone=D(ge);constructor(){}ngOnDestroy(){for(const[,e]of this._observers)e.destroy();this._observers.clear(),this._cleanupErrorListener?.()}observe(e,i){const o=i?.box||"content-box";return this._observers.has(o)||this._observers.set(o,new Ffe(o)),this._observers.get(o).observe(e)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Lfe=["notch"],Bfe=["matFormFieldNotchedOutline",""],Vfe=["*"],CV=["iconPrefixContainer"],wV=["textPrefixContainer"],xV=["iconSuffixContainer"],SV=["textSuffixContainer"],Hfe=["textField"],jfe=["*",[["mat-label"]],[["","matPrefix",""],["","matIconPrefix",""]],[["","matTextPrefix",""]],[["","matTextSuffix",""]],[["","matSuffix",""],["","matIconSuffix",""]],[["mat-error"],["","matError",""]],[["mat-hint",3,"align","end"]],[["mat-hint","align","end"]]],Ufe=["*","mat-label","[matPrefix], [matIconPrefix]","[matTextPrefix]","[matTextSuffix]","[matSuffix], [matIconSuffix]","mat-error, [matError]","mat-hint:not([align='end'])","mat-hint[align='end']"];function zfe(t,n){1&t&&B(0,"span",21)}function $fe(t,n){if(1&t&&(f(0,"label",20),At(1,1),S(2,zfe,1,0,"span",21),h()),2&t){const e=C(2);v("floating",e._shouldLabelFloat())("monitorResize",e._hasOutline())("id",e._labelId),Ze("for",e._control.disableAutomaticLabeling?null:e._control.id),d(2),k(!e.hideRequiredMarker&&e._control.required?2:-1)}}function Wfe(t,n){1&t&&S(0,$fe,3,5,"label",20),2&t&&k(C()._hasFloatingLabel()?0:-1)}function Gfe(t,n){1&t&&B(0,"div",7)}function qfe(t,n){}function Kfe(t,n){1&t&&tt(0,qfe,0,0,"ng-template",13),2&t&&(C(2),v("ngTemplateOutlet",Vn(1)))}function Yfe(t,n){if(1&t&&(f(0,"div",9),S(1,Kfe,1,1,null,13),h()),2&t){const e=C();v("matFormFieldNotchedOutlineOpen",e._shouldLabelFloat()),d(),k(e._forceDisplayInfixLabel()?-1:1)}}function Xfe(t,n){1&t&&(f(0,"div",10,2),At(2,2),h())}function Zfe(t,n){1&t&&(f(0,"div",11,3),At(2,3),h())}function Qfe(t,n){}function Jfe(t,n){1&t&&tt(0,Qfe,0,0,"ng-template",13),2&t&&(C(),v("ngTemplateOutlet",Vn(1)))}function epe(t,n){1&t&&(f(0,"div",14,4),At(2,4),h())}function tpe(t,n){1&t&&(f(0,"div",15,5),At(2,5),h())}function npe(t,n){1&t&&B(0,"div",16)}function ipe(t,n){1&t&&(f(0,"div",18),At(1,6),h())}function ope(t,n){if(1&t&&(f(0,"mat-hint",22),m(1),h()),2&t){const e=C(2);v("id",e._hintLabelId),d(),O(e.hintLabel)}}function rpe(t,n){if(1&t&&(f(0,"div",19),S(1,ope,2,2,"mat-hint",22),At(2,7),B(3,"div",23),At(4,8),h()),2&t){const e=C();d(),k(e.hintLabel?1:-1)}}let Jb=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["mat-label"]]})}return t})();const kV=new Z("MatError");let Es=(()=>{class t{id=D(oi).getId("mat-mdc-error-");constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["mat-error"],["","matError",""]],hostAttrs:[1,"mat-mdc-form-field-error","mat-mdc-form-field-bottom-align"],hostVars:1,hostBindings:function(i,o){2&i&&Lr("id",o.id)},inputs:{id:"id"},features:[ht([{provide:kV,useExisting:t}])]})}return t})(),lk=(()=>{class t{align="start";id=D(oi).getId("mat-mdc-hint-");static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({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&&(Lr("id",o.id),Ze("align",null),Ke("mat-mdc-form-field-hint-end","end"===o.align))},inputs:{align:"align",id:"id"}})}return t})();const spe=new Z("MatPrefix"),ape=new Z("MatSuffix"),DV=new Z("FloatingLabelParent");let TV=(()=>{class t{_elementRef=D(Ae);get floating(){return this._floating}set floating(e){this._floating=e,this.monitorResize&&this._handleResize()}_floating=!1;get monitorResize(){return this._monitorResize}set monitorResize(e){this._monitorResize=e,this._monitorResize?this._subscribeToResize():this._resizeSubscription.unsubscribe()}_monitorResize=!1;_resizeObserver=D(yV);_ngZone=D(ge);_parent=D(DV);_resizeSubscription=new mt;constructor(){}ngOnDestroy(){this._resizeSubscription.unsubscribe()}getWidth(){return function lpe(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 \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["label","matFormFieldFloatingLabel",""]],hostAttrs:[1,"mdc-floating-label","mat-mdc-floating-label"],hostVars:2,hostBindings:function(i,o){2&i&&Ke("mdc-floating-label--float-above",o.floating)},inputs:{floating:"floating",monitorResize:"monitorResize"}})}return t})();const MV="mdc-line-ripple--active",ev="mdc-line-ripple--deactivating";let EV=(()=>{class t{_elementRef=D(Ae);_cleanupTransitionEnd;constructor(){const e=D(ge),i=D(Kn);e.runOutsideAngular(()=>{this._cleanupTransitionEnd=i.listen(this._elementRef.nativeElement,"transitionend",this._handleTransitionEnd)})}activate(){const e=this._elementRef.nativeElement.classList;e.remove(ev),e.add(MV)}deactivate(){this._elementRef.nativeElement.classList.add(ev)}_handleTransitionEnd=e=>{const i=this._elementRef.nativeElement.classList,o=i.contains(ev);"opacity"===e.propertyName&&o&&i.remove(MV,ev)};ngOnDestroy(){this._cleanupTransitionEnd()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["div","matFormFieldLineRipple",""]],hostAttrs:[1,"mdc-line-ripple"]})}return t})(),IV=(()=>{class t{_elementRef=D(Ae);_ngZone=D(ge);open=!1;_notch;ngAfterViewInit(){const e=this._elementRef.nativeElement,i=e.querySelector(".mdc-floating-label");i?(e.classList.add("mdc-notched-outline--upgraded"),"function"==typeof requestAnimationFrame&&(i.style.transitionDuration="0s",this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>i.style.transitionDuration="")}))):e.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)`:""}_setMaxWidth(e){this._notch.nativeElement.style.setProperty("--mat-form-field-notch-max-width",`calc(100% - ${e}px)`)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["div","matFormFieldNotchedOutline",""]],viewQuery:function(i,o){if(1&i&&rt(Lfe,5),2&i){let r;ue(r=he())&&(o._notch=r.first)}},hostAttrs:[1,"mdc-notched-outline"],hostVars:2,hostBindings:function(i,o){2&i&&Ke("mdc-notched-outline--notched",o.open)},inputs:{open:[0,"matFormFieldNotchedOutlineOpen","open"]},attrs:Bfe,ngContentSelectors:Vfe,decls:5,vars:0,consts:[["notch",""],[1,"mat-mdc-notch-piece","mdc-notched-outline__leading"],[1,"mat-mdc-notch-piece","mdc-notched-outline__notch"],[1,"mat-mdc-notch-piece","mdc-notched-outline__trailing"]],template:function(i,o){1&i&&(Si(),la(0,"div",1),gs(1,"div",2,0),At(3),Tl(),la(4,"div",3))},encapsulation:2,changeDetection:0})}return t})(),ck=(()=>{class t{value=null;stateChanges;id;placeholder;ngControl=null;focused=!1;empty=!1;shouldLabelFloat=!1;required=!1;disabled=!1;errorState=!1;controlType;autofilled;userAriaDescribedBy;disableAutomaticLabeling;describedByIds;static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t})}return t})();const dk=new Z("MatFormField"),cpe=new Z("MAT_FORM_FIELD_DEFAULT_OPTIONS");let iu,wn=(()=>{class t{_elementRef=D(Ae);_changeDetectorRef=D(Pn);_platform=D($n);_idGenerator=D(oi);_ngZone=D(ge);_defaults=D(cpe,{optional:!0});_currentDirection;_textField;_iconPrefixContainer;_textPrefixContainer;_iconSuffixContainer;_textSuffixContainer;_floatingLabel;_notchedOutline;_lineRipple;_iconPrefixContainerSignal=Zg("iconPrefixContainer");_textPrefixContainerSignal=Zg("textPrefixContainer");_iconSuffixContainerSignal=Zg("iconSuffixContainer");_textSuffixContainerSignal=Zg("textSuffixContainer");_prefixSuffixContainers=Ti(()=>[this._iconPrefixContainerSignal(),this._textPrefixContainerSignal(),this._iconSuffixContainerSignal(),this._textSuffixContainerSignal()].map(e=>e?.nativeElement).filter(e=>void 0!==e));_formFieldControl;_prefixChildren;_suffixChildren;_errorChildren;_hintChildren;_labelChild=lee(Jb);get hideRequiredMarker(){return this._hideRequiredMarker}set hideRequiredMarker(e){this._hideRequiredMarker=nu(e)}_hideRequiredMarker=!1;color="primary";get floatLabel(){return this._floatLabel||this._defaults?.floatLabel||"auto"}set floatLabel(e){e!==this._floatLabel&&(this._floatLabel=e,this._changeDetectorRef.markForCheck())}_floatLabel;get appearance(){return this._appearanceSignal()}set appearance(e){this._appearanceSignal.set(e||this._defaults?.appearance||"fill")}_appearanceSignal=yt("fill");get subscriptSizing(){return this._subscriptSizing||this._defaults?.subscriptSizing||"fixed"}set subscriptSizing(e){this._subscriptSizing=e||this._defaults?.subscriptSizing||"fixed"}_subscriptSizing=null;get hintLabel(){return this._hintLabel}set hintLabel(e){this._hintLabel=e,this._processHints()}_hintLabel="";_hasIconPrefix=!1;_hasTextPrefix=!1;_hasIconSuffix=!1;_hasTextSuffix=!1;_labelId=this._idGenerator.getId("mat-mdc-form-field-label-");_hintLabelId=this._idGenerator.getId("mat-mdc-hint-");_describedByIds;get _control(){return this._explicitFormFieldControl||this._formFieldControl}set _control(e){this._explicitFormFieldControl=e}_destroyed=new pe;_isFocused=null;_explicitFormFieldControl;_previousControl=null;_previousControlValidatorFn=null;_stateChanges;_valueChanges;_describedByChanges;_outlineLabelOffsetResizeObserver=null;_animationsDisabled=fi();constructor(){const e=this._defaults,i=D(hr);e&&(e.appearance&&(this.appearance=e.appearance),this._hideRequiredMarker=!!e?.hideRequiredMarker,e.color&&(this.color=e.color)),nm(()=>this._currentDirection=i.valueSignal()),this._syncOutlineLabelOffset()}ngAfterViewInit(){this._updateFocusState(),this._animationsDisabled||this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{this._elementRef.nativeElement.classList.add("mat-form-field-animations-enabled")},300)}),this._changeDetectorRef.detectChanges()}ngAfterContentInit(){this._assertFormFieldControl(),this._initializeSubscript(),this._initializePrefixAndSuffix()}ngAfterContentChecked(){this._assertFormFieldControl(),this._control!==this._previousControl&&(this._initializeControl(this._previousControl),this._control.ngControl&&this._control.ngControl.control&&(this._previousControlValidatorFn=this._control.ngControl.control.validator),this._previousControl=this._control),this._control.ngControl&&this._control.ngControl.control&&this._control.ngControl.control.validator!==this._previousControlValidatorFn&&this._changeDetectorRef.markForCheck()}ngOnDestroy(){this._outlineLabelOffsetResizeObserver?.disconnect(),this._stateChanges?.unsubscribe(),this._valueChanges?.unsubscribe(),this._describedByChanges?.unsubscribe(),this._destroyed.next(),this._destroyed.complete()}getLabelId=Ti(()=>this._hasFloatingLabel()?this._labelId:null);getConnectedOverlayOrigin(){return this._textField||this._elementRef}_animateAndLockLabel(){this._hasFloatingLabel()&&(this.floatLabel="always")}_initializeControl(e){const i=this._control,o="mat-mdc-form-field-type-";e&&this._elementRef.nativeElement.classList.remove(o+e.controlType),i.controlType&&this._elementRef.nativeElement.classList.add(o+i.controlType),this._stateChanges?.unsubscribe(),this._stateChanges=i.stateChanges.subscribe(()=>{this._updateFocusState(),this._changeDetectorRef.markForCheck()}),this._describedByChanges?.unsubscribe(),this._describedByChanges=i.stateChanges.pipe(to([void 0,void 0]),ye(()=>[i.errorState,i.userAriaDescribedBy]),function Nfe(){return bn((t,n)=>{let e,i=!1;t.subscribe(en(n,o=>{const r=e;e=o,i&&n.next([r,o]),i=!0}))})}(),vn(([[r,s],[a,l]])=>r!==a||s!==l)).subscribe(()=>this._syncDescribedByIds()),this._valueChanges?.unsubscribe(),i.ngControl&&i.ngControl.valueChanges&&(this._valueChanges=i.ngControl.valueChanges.pipe(on(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(),gr(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(){const e=this._control.focused;e&&!this._isFocused?(this._isFocused=!0,this._lineRipple?.activate()):!e&&(this._isFocused||null===this._isFocused)&&(this._isFocused=!1,this._lineRipple?.deactivate()),this._elementRef.nativeElement.classList.toggle("mat-focused",e),this._textField?.nativeElement.classList.toggle("mdc-text-field--focused",e)}_syncOutlineLabelOffset(){!function cte(t,n){const e=n?.injector??D(Be),i=e.get(nl),o=e.get(o1),r=e.get(ia,null,{optional:!0});o.impl??=e.get(D2);let s=t;"function"==typeof s&&(s={mixedReadWrite:t});const a=e.get(Jp,null,{optional:!0}),l=new lte(o.impl,[s.earlyRead,s.write,s.mixedReadWrite,s.read],a?.view,i,e,r?.snapshot(null));o.impl.register(l)}({earlyRead:()=>{if("outline"!==this._appearanceSignal())return this._outlineLabelOffsetResizeObserver?.disconnect(),null;if(globalThis.ResizeObserver){this._outlineLabelOffsetResizeObserver||=new globalThis.ResizeObserver(()=>{this._writeOutlinedLabelStyles(this._getOutlinedLabelOffset())});for(const e of this._prefixSuffixContainers())this._outlineLabelOffsetResizeObserver.observe(e,{box:"border-box"})}return this._getOutlinedLabelOffset()},write:e=>this._writeOutlinedLabelStyles(e())})}_shouldAlwaysFloat(){return"always"===this.floatLabel}_hasOutline(){return"outline"===this.appearance}_forceDisplayInfixLabel(){return!this._platform.isBrowser&&this._prefixChildren.length&&!this._shouldLabelFloat()}_hasFloatingLabel=Ti(()=>!!this._labelChild());_shouldLabelFloat(){return!!this._hasFloatingLabel()&&(this._control.shouldLabelFloat||this._shouldAlwaysFloat())}_shouldForward(e){const i=this._control?this._control.ngControl:null;return i&&i[e]}_getSubscriptMessageType(){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._getSubscriptMessageType()){const r=this._hintChildren?this._hintChildren.find(a=>"start"===a.align):null,s=this._hintChildren?this._hintChildren.find(a=>"end"===a.align):null;r?e.push(r.id):this._hintLabel&&e.push(this._hintLabelId),s&&e.push(s.id)}else this._errorChildren&&e.push(...this._errorChildren.map(r=>r.id));const i=this._control.describedByIds;let o;if(i){const r=this._describedByIds||e;o=e.concat(i.filter(s=>s&&!r.includes(s)))}else o=e;this._control.setDescribedByIds(o),this._describedByIds=e}}_getOutlinedLabelOffset(){if(!this._hasOutline()||!this._floatingLabel)return null;if(!this._iconPrefixContainer&&!this._textPrefixContainer)return["",null];if(!this._isAttachedToDom())return null;const e=this._iconPrefixContainer?.nativeElement,i=this._textPrefixContainer?.nativeElement,o=this._iconSuffixContainer?.nativeElement,r=this._textSuffixContainer?.nativeElement,s=e?.getBoundingClientRect().width??0,a=i?.getBoundingClientRect().width??0,l=o?.getBoundingClientRect().width??0,c=r?.getBoundingClientRect().width??0;return[`var(--mat-mdc-form-field-label-transform, translateY(-50%) translateX(calc(${"rtl"===this._currentDirection?"-1":"1"} * (${s+a}px + var(--mat-mdc-form-field-label-offset-x, 0px)))))`,s+a+l+c]}_writeOutlinedLabelStyles(e){if(null!==e){const[i,o]=e;this._floatingLabel&&(this._floatingLabel.element.style.transform=i),null!==o&&this._notchedOutline?._setMaxWidth(o)}}_isAttachedToDom(){const e=this._elementRef.nativeElement;if(e.getRootNode){const i=e.getRootNode();return i&&i!==e}return document.documentElement.contains(e)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["mat-form-field"]],contentQueries:function(i,o,r){if(1&i&&(D0(r,o._labelChild,Jb,5),_s(r,ck,5)(r,spe,5)(r,ape,5)(r,kV,5)(r,lk,5)),2&i){let s;M0(),ue(s=he())&&(o._formFieldControl=s.first),ue(s=he())&&(o._prefixChildren=s),ue(s=he())&&(o._suffixChildren=s),ue(s=he())&&(o._errorChildren=s),ue(s=he())&&(o._hintChildren=s)}},viewQuery:function(i,o){if(1&i&&(T0(o._iconPrefixContainerSignal,CV,5)(o._textPrefixContainerSignal,wV,5)(o._iconSuffixContainerSignal,xV,5)(o._textSuffixContainerSignal,SV,5),rt(Hfe,5)(CV,5)(wV,5)(xV,5)(SV,5)(TV,5)(IV,5)(EV,5)),2&i){let r;M0(4),ue(r=he())&&(o._textField=r.first),ue(r=he())&&(o._iconPrefixContainer=r.first),ue(r=he())&&(o._textPrefixContainer=r.first),ue(r=he())&&(o._iconSuffixContainer=r.first),ue(r=he())&&(o._textSuffixContainer=r.first),ue(r=he())&&(o._floatingLabel=r.first),ue(r=he())&&(o._notchedOutline=r.first),ue(r=he())&&(o._lineRipple=r.first)}},hostAttrs:[1,"mat-mdc-form-field"],hostVars:38,hostBindings:function(i,o){2&i&&Ke("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-appearance-fill","fill"==o.appearance)("mat-form-field-appearance-outline","outline"==o.appearance)("mat-form-field-hide-placeholder",o._hasFloatingLabel()&&!o._shouldLabelFloat())("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:[ht([{provide:dk,useExisting:t},{provide:DV,useExisting:t}])],ngContentSelectors:Ufe,decls:18,vars:21,consts:[["labelTemplate",""],["textField",""],["iconPrefixContainer",""],["textPrefixContainer",""],["textSuffixContainer",""],["iconSuffixContainer",""],[1,"mat-mdc-text-field-wrapper","mdc-text-field",3,"click"],[1,"mat-mdc-form-field-focus-overlay"],[1,"mat-mdc-form-field-flex"],["matFormFieldNotchedOutline","",3,"matFormFieldNotchedOutlineOpen"],[1,"mat-mdc-form-field-icon-prefix"],[1,"mat-mdc-form-field-text-prefix"],[1,"mat-mdc-form-field-infix"],[3,"ngTemplateOutlet"],[1,"mat-mdc-form-field-text-suffix"],[1,"mat-mdc-form-field-icon-suffix"],["matFormFieldLineRipple",""],["aria-atomic","true","aria-live","polite",1,"mat-mdc-form-field-subscript-wrapper","mat-mdc-form-field-bottom-align"],[1,"mat-mdc-form-field-error-wrapper"],[1,"mat-mdc-form-field-hint-wrapper"],["matFormFieldFloatingLabel","",3,"floating","monitorResize","id"],["aria-hidden","true",1,"mat-mdc-form-field-required-marker","mdc-floating-label--required"],[3,"id"],[1,"mat-mdc-form-field-hint-spacer"]],template:function(i,o){if(1&i&&(Si(jfe),tt(0,Wfe,1,1,"ng-template",null,0,El),f(2,"div",6,1),L("click",function(s){return o._control.onContainerClick(s)}),S(4,Gfe,1,0,"div",7),f(5,"div",8),S(6,Yfe,2,2,"div",9),S(7,Xfe,3,0,"div",10),S(8,Zfe,3,0,"div",11),f(9,"div",12),S(10,Jfe,1,1,null,13),At(11),h(),S(12,epe,3,0,"div",14),S(13,tpe,3,0,"div",15),h(),S(14,npe,1,0,"div",16),h(),f(15,"div",17),S(16,ipe,2,0,"div",18)(17,rpe,5,1,"div",19),h()),2&i){let r;d(2),Ke("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),d(2),k(o._hasOutline()||o._control.disabled?-1:4),d(2),k(o._hasOutline()?6:-1),d(),k(o._hasIconPrefix?7:-1),d(),k(o._hasTextPrefix?8:-1),d(2),k(!o._hasOutline()||o._forceDisplayInfixLabel()?10:-1),d(2),k(o._hasTextSuffix?12:-1),d(),k(o._hasIconSuffix?13:-1),d(),k(o._hasOutline()?-1:14),d(),Ke("mat-mdc-form-field-subscript-dynamic-size","dynamic"===o.subscriptSizing);const s=o._getSubscriptMessageType();d(),k("error"===(r=s)?16:"hint"===r?17:-1)}},dependencies:[TV,IV,Pd,EV,lk],styles:['.mdc-text-field{display:inline-flex;align-items:baseline;padding:0 16px;position:relative;box-sizing:border-box;overflow:hidden;will-change:opacity,transform,color;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.mdc-text-field__input{width:100%;min-width:0;border:none;border-radius:0;background:none;padding:0;-moz-appearance:none;-webkit-appearance:none;height:28px}.mdc-text-field__input::-webkit-calendar-picker-indicator,.mdc-text-field__input::-webkit-search-cancel-button{display:none}.mdc-text-field__input::-ms-clear{display:none}.mdc-text-field__input:focus{outline:none}.mdc-text-field__input:invalid{box-shadow:none}.mdc-text-field__input::placeholder{opacity:0}.mdc-text-field__input::-moz-placeholder{opacity:0}.mdc-text-field__input::-webkit-input-placeholder{opacity:0}.mdc-text-field__input:-ms-input-placeholder{opacity:0}.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mdc-text-field--focused .mdc-text-field__input::placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{opacity:1}.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--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::-moz-placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::-webkit-input-placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive:-ms-input-placeholder{opacity:0}.mdc-text-field--outlined .mdc-text-field__input,.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{height:100%}.mdc-text-field--outlined .mdc-text-field__input{display:flex;border:none !important;background-color:rgba(0,0,0,0)}.mdc-text-field--disabled .mdc-text-field__input{pointer-events:auto}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mat-form-field-filled-input-text-color, var(--mat-sys-on-surface));caret-color:var(--mat-form-field-filled-caret-color, var(--mat-sys-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mat-form-field-filled-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-filled-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-filled-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-filled-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mat-form-field-outlined-input-text-color, var(--mat-sys-on-surface));caret-color:var(--mat-form-field-outlined-caret-color, var(--mat-sys-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mat-form-field-outlined-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-outlined-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-outlined-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-outlined-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mat-form-field-filled-error-caret-color, var(--mat-sys-error))}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mat-form-field-outlined-error-caret-color, var(--mat-sys-error))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-text-field__input{color:var(--mat-form-field-filled-disabled-input-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--mat-form-field-outlined-disabled-input-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}@media(forced-colors: active){.mdc-text-field--disabled .mdc-text-field__input{background-color:Window}}.mdc-text-field--filled{height:56px;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:var(--mat-form-field-filled-container-shape, var(--mat-sys-corner-extra-small));border-top-right-radius:var(--mat-form-field-filled-container-shape, var(--mat-sys-corner-extra-small))}.mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:var(--mat-form-field-filled-container-color, var(--mat-sys-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled{background-color:var(--mat-form-field-filled-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 4%, transparent))}.mdc-text-field--outlined{height:56px;overflow:visible;padding-right:max(16px,var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small)));padding-left:max(16px,var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small)) + 4px)}[dir=rtl] .mdc-text-field--outlined{padding-right:max(16px,var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small)) + 4px);padding-left:max(16px,var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small)))}.mdc-floating-label{position:absolute;left:0;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{right:0;left:auto;transform-origin:right top;text-align:right}.mdc-text-field .mdc-floating-label{top:50%;transform:translateY(-50%);pointer-events:none}.mdc-notched-outline .mdc-floating-label{display:inline-block;position:relative;max-width:100%}.mdc-text-field--outlined .mdc-floating-label{left:4px;right:auto}[dir=rtl] .mdc-text-field--outlined .mdc-floating-label{left:auto;right:4px}.mdc-text-field--filled .mdc-floating-label{left:16px;right:auto}[dir=rtl] .mdc-text-field--filled .mdc-floating-label{left:auto;right:16px}.mdc-text-field--disabled .mdc-floating-label{cursor:default}@media(forced-colors: active){.mdc-text-field--disabled .mdc-floating-label{z-index:1}}.mdc-text-field--filled.mdc-text-field--no-label .mdc-floating-label{display:none}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mat-form-field-filled-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mat-form-field-filled-focus-label-text-color, var(--mat-sys-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mat-form-field-filled-hover-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label{color:var(--mat-form-field-filled-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mat-form-field-filled-error-label-text-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mat-form-field-filled-error-focus-label-text-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mat-form-field-filled-error-hover-label-text-color, var(--mat-sys-on-error-container))}.mdc-text-field--filled .mdc-floating-label{font-family:var(--mat-form-field-filled-label-text-font, var(--mat-sys-body-large-font));font-size:var(--mat-form-field-filled-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-form-field-filled-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mat-form-field-filled-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mat-form-field-outlined-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mat-form-field-outlined-focus-label-text-color, var(--mat-sys-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mat-form-field-outlined-hover-label-text-color, var(--mat-sys-on-surface))}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label{color:var(--mat-form-field-outlined-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mat-form-field-outlined-error-label-text-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mat-form-field-outlined-error-focus-label-text-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mat-form-field-outlined-error-hover-label-text-color, var(--mat-sys-on-error-container))}.mdc-text-field--outlined .mdc-floating-label{font-family:var(--mat-form-field-outlined-label-text-font, var(--mat-sys-body-large-font));font-size:var(--mat-form-field-outlined-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-form-field-outlined-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mat-form-field-outlined-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-floating-label--float-above{cursor:auto;transform:translateY(-106%) scale(0.75)}.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) scale(1);font-size:.75rem}.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-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-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:1px;margin-right:0;content:"*"}[dir=rtl] .mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::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{text-align:right}.mdc-text-field--outlined .mdc-notched-outline{z-index:1}.mat-mdc-notch-piece{box-sizing:border-box;height:100%;pointer-events:none;border:none;border-top:1px solid;border-bottom:1px solid}.mdc-text-field--focused .mat-mdc-notch-piece{border-width:2px}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mat-mdc-notch-piece{border-color:var(--mat-form-field-outlined-outline-color, var(--mat-sys-outline));border-width:var(--mat-form-field-outlined-outline-width, 1px)}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mat-mdc-notch-piece{border-color:var(--mat-form-field-outlined-hover-outline-color, var(--mat-sys-on-surface))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mat-form-field-outlined-focus-outline-color, var(--mat-sys-primary))}.mdc-text-field--outlined.mdc-text-field--disabled .mat-mdc-notch-piece{border-color:var(--mat-form-field-outlined-disabled-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--mat-form-field-outlined-error-outline-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-notched-outline .mat-mdc-notch-piece{border-color:var(--mat-form-field-outlined-error-hover-outline-color, var(--mat-sys-on-error-container))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mat-form-field-outlined-error-focus-outline-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mat-mdc-notch-piece{border-width:var(--mat-form-field-outlined-focus-outline-width, 2px)}.mdc-notched-outline__leading{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small));border-bottom-left-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small))}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px,var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small)))}[dir=rtl] .mdc-notched-outline__leading{border-left:none;border-right:1px solid;border-bottom-left-radius:0;border-top-left-radius:0;border-top-right-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small));border-bottom-right-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small))}.mdc-notched-outline__trailing{flex-grow:1;border-left:none;border-right:1px solid;border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small));border-bottom-right-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small))}[dir=rtl] .mdc-notched-outline__trailing{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small));border-bottom-left-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small))}.mdc-notched-outline__notch{flex:0 0 auto;width:auto}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:min(var(--mat-form-field-notch-max-width, 100%),calc(100% - max(12px, var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small))) * 2))}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{max-width:min(100%,calc(100% - max(12px, var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small))) * 2))}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:1px}.mdc-text-field--focused.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:2px}.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{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;border-bottom-width:var(--mat-form-field-filled-active-indicator-height, 1px)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mat-form-field-filled-active-indicator-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mat-form-field-filled-hover-active-indicator-color, var(--mat-sys-on-surface))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-line-ripple::before{border-bottom-color:var(--mat-form-field-filled-disabled-active-indicator-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-line-ripple::before{border-bottom-color:var(--mat-form-field-filled-error-active-indicator-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mat-form-field-filled-error-hover-active-indicator-color, var(--mat-sys-on-error-container))}.mdc-line-ripple::after{transform:scaleX(0);opacity:0;z-index:2}.mdc-text-field--filled .mdc-line-ripple::after{border-bottom-width:var(--mat-form-field-filled-focus-active-indicator-height, 2px)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mat-form-field-filled-focus-active-indicator-color, var(--mat-sys-primary))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mat-form-field-filled-error-focus-active-indicator-color, var(--mat-sys-error))}.mdc-line-ripple--active::after{transform:scaleX(1);opacity:1}.mdc-line-ripple--deactivating::after{opacity:0}.mdc-text-field--disabled{pointer-events:none}.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;will-change:auto}.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;will-change: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, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.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-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:1px solid rgba(0,0,0,0)}[dir=rtl] .mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:none;border-right:1px solid rgba(0,0,0,0)}.mat-mdc-form-field-infix{min-height:var(--mat-form-field-container-height, 56px);padding-top:var(--mat-form-field-filled-with-label-container-padding-top, 24px);padding-bottom:var(--mat-form-field-filled-with-label-container-padding-bottom, 8px)}.mdc-text-field--outlined .mat-mdc-form-field-infix,.mdc-text-field--no-label .mat-mdc-form-field-infix{padding-top:var(--mat-form-field-container-vertical-padding, 16px);padding-bottom:var(--mat-form-field-container-vertical-padding, 16px)}.mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-floating-label{top:calc(var(--mat-form-field-container-height, 56px)/2)}.mdc-text-field--filled .mat-mdc-floating-label{display:var(--mat-form-field-filled-label-display, block)}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{--mat-mdc-form-field-label-transform: translateY(calc(calc(6.75px + var(--mat-form-field-container-height, 56px) / 2) * -1)) scale(var(--mat-mdc-form-field-floating-label-scale, 0.75));transform:var(--mat-mdc-form-field-label-transform)}@keyframes _mat-form-field-subscript-animation{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.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;opacity:1;transform:translateY(0);animation:_mat-form-field-subscript-animation 0ms cubic-bezier(0.55, 0, 0.55, 0.2)}.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;color:var(--mat-form-field-error-text-color, var(--mat-sys-error))}.mat-mdc-form-field-subscript-wrapper,.mat-mdc-form-field-bottom-align::before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-subscript-text-font, var(--mat-sys-body-small-font));line-height:var(--mat-form-field-subscript-text-line-height, var(--mat-sys-body-small-line-height));font-size:var(--mat-form-field-subscript-text-size, var(--mat-sys-body-small-size));letter-spacing:var(--mat-form-field-subscript-text-tracking, var(--mat-sys-body-small-tracking));font-weight:var(--mat-form-field-subscript-text-weight, var(--mat-sys-body-small-weight))}.mat-mdc-form-field-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;opacity:0;pointer-events:none;background-color:var(--mat-form-field-state-layer-color, var(--mat-sys-on-surface))}.mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-form-field.mat-focused .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-focus-state-layer-opacity, 0)}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}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option{color:var(--mat-form-field-select-option-text-color, var(--mat-sys-neutral10))}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option:disabled{color:var(--mat-form-field-select-disabled-option-text-color, color-mix(in srgb, var(--mat-sys-neutral10) 38%, transparent))}.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;color:var(--mat-form-field-enabled-select-arrow-color, var(--mat-sys-on-surface-variant))}[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-focused .mat-mdc-form-field-infix::after{color:var(--mat-form-field-focus-select-arrow-color, var(--mat-sys-primary))}.mat-mdc-form-field-type-mat-native-select.mat-form-field-disabled .mat-mdc-form-field-infix::after{color:var(--mat-form-field-disabled-select-arrow-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.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}@media(forced-colors: active){.mat-form-field-appearance-fill .mat-mdc-text-field-wrapper{outline:solid 1px}}@media(forced-colors: active){.mat-form-field-appearance-fill.mat-form-field-disabled .mat-mdc-text-field-wrapper{outline-color:GrayText}}@media(forced-colors: active){.mat-form-field-appearance-fill.mat-focused .mat-mdc-text-field-wrapper{outline:dashed 3px}}@media(forced-colors: 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, var(--mat-sys-body-large-font));line-height:var(--mat-form-field-container-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mat-form-field-container-text-size, var(--mat-sys-body-large-size));letter-spacing:var(--mat-form-field-container-text-tracking, var(--mat-sys-body-large-tracking));font-weight:var(--mat-form-field-container-text-weight, var(--mat-sys-body-large-weight))}.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)}[dir=rtl] .mat-mdc-form-field{text-align:right}.mat-mdc-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-mdc-text-field-wrapper{width:100%;z-index:0}.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>.mat-icon,.mat-mdc-form-field-icon-suffix>.mat-icon{padding:0 12px;box-sizing:content-box}.mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-leading-icon-color, var(--mat-sys-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-disabled-leading-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-trailing-icon-color, var(--mat-sys-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-disabled-trailing-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-invalid .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-trailing-icon-color, var(--mat-sys-error))}.mat-form-field-invalid:not(.mat-focused):not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-hover-trailing-icon-color, var(--mat-sys-on-error-container))}.mat-form-field-invalid.mat-focused .mat-mdc-text-field-wrapper .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-focus-trailing-icon-color, var(--mat-sys-error))}.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-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-infix:has(textarea[cols]){width:auto}.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.mat-form-field-animations-enabled .mdc-floating-label{transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1),color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field__input{transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field__input::placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field__input::-moz-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field__input::-webkit-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field__input:-ms-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--focused .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field--filled:not(.mdc-ripple-upgraded):focus .mdc-text-field__ripple::before{transition-duration:75ms}.mat-mdc-form-field.mat-form-field-animations-enabled .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)}.mat-mdc-form-field.mat-form-field-animations-enabled .mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field.mat-form-field-animations-enabled .mat-mdc-form-field-error-wrapper{animation-duration:300ms}.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)}\n'],encapsulation:2,changeDetection:0})}return t})();const AV=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"];function RV(){if(iu)return iu;if("object"!=typeof document||!document)return iu=new Set(AV),iu;let t=document.createElement("input");return iu=new Set(AV.filter(n=>(t.setAttribute("type",n),t.type===n))),iu}let hpe=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["ng-component"]],hostAttrs:["cdk-text-field-style-loader",""],decls:0,vars:0,template:function(i,o){},styles:["textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}@keyframes cdk-text-field-autofill-start{/*!*/}@keyframes cdk-text-field-autofill-end{/*!*/}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}\n"],encapsulation:2,changeDetection:0})}return t})();const fpe={passive:!0};let ppe=(()=>{class t{_platform=D($n);_ngZone=D(ge);_renderer=D(No).createRenderer(null,null);_styleLoader=D(pr);_monitoredElements=new Map;constructor(){}monitor(e){if(!this._platform.isBrowser)return Mi;this._styleLoader.load(hpe);const i=Ts(e),o=this._monitoredElements.get(i);if(o)return o.subject;const r=new pe,s="cdk-text-field-autofilled",a=c=>{"cdk-text-field-autofill-start"!==c.animationName||i.classList.contains(s)?"cdk-text-field-autofill-end"===c.animationName&&i.classList.contains(s)&&(i.classList.remove(s),this._ngZone.run(()=>r.next({target:c.target,isAutofilled:!1}))):(i.classList.add(s),this._ngZone.run(()=>r.next({target:c.target,isAutofilled:!0})))},l=this._ngZone.runOutsideAngular(()=>(i.classList.add("cdk-text-field-autofill-monitored"),this._renderer.listen(i,"animationstart",a,fpe)));return this._monitoredElements.set(i,{subject:r,unlisten:l}),r}stopMonitoring(e){const i=Ts(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 \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),mpe=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({})}return t})();const gpe=new Z("MAT_INPUT_VALUE_ACCESSOR");let _pe=(()=>{class t{isErrorState(e,i){return!!(e&&e.invalid&&(e.dirty||i&&i.submitted))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})(),uk=(()=>{class t{isErrorState(e,i){return!!(e&&e.invalid&&(e.touched||i&&i.submitted))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();class NV{_defaultMatcher;ngControl;_parentFormGroup;_parentForm;_stateChanges;errorState=!1;matcher;constructor(n,e,i,o,r){this._defaultMatcher=n,this.ngControl=e,this._parentFormGroup=i,this._parentForm=o,this._stateChanges=r}updateErrorState(){const n=this.errorState,e=this._parentFormGroup||this._parentForm,i=this.matcher||this._defaultMatcher,o=this.ngControl?this.ngControl.control:null,r=i?.isErrorState(o,e)??!1;r!==n&&(this.errorState=r,this._stateChanges.next())}}let tv=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({imports:[rB,wn,ri]})}return t})();const bpe=["button","checkbox","file","hidden","image","radio","range","reset","submit"],vpe=new Z("MAT_INPUT_CONFIG");let ei=(()=>{class t{_elementRef=D(Ae);_platform=D($n);ngControl=D(Yr,{optional:!0,self:!0});_autofillMonitor=D(ppe);_ngZone=D(ge);_formField=D(dk,{optional:!0});_renderer=D(Kn);_uid=D(oi).getId("mat-input-");_previousNativeValue;_inputValueAccessor;_signalBasedValueAccessor;_previousPlaceholder=null;_errorStateTracker;_config=D(vpe,{optional:!0});_cleanupIosKeyup;_cleanupWebkitWheel;_isServer=!1;_isNativeSelect=!1;_isTextarea=!1;_isInFormField=!1;focused=!1;stateChanges=new pe;controlType="mat-input";autofilled=!1;get disabled(){return this._disabled}set disabled(e){this._disabled=nu(e),this.focused&&(this.focused=!1,this.stateChanges.next())}_disabled=!1;get id(){return this._id}set id(e){this._id=e||this._uid}_id;placeholder;name;get required(){return this._required??this.ngControl?.control?.hasValidator(Ve.required)??!1}set required(e){this._required=nu(e)}_required;get type(){return this._type}set type(e){this._type=e||"text",this._validateType(),!this._isTextarea&&RV().has(this._type)&&(this._elementRef.nativeElement.type=this._type)}_type="text";get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(e){this._errorStateTracker.matcher=e}userAriaDescribedBy;get value(){return this._signalBasedValueAccessor?this._signalBasedValueAccessor.value():this._inputValueAccessor.value}set value(e){e!==this.value&&(this._signalBasedValueAccessor?this._signalBasedValueAccessor.value.set(e):this._inputValueAccessor.value=e,this.stateChanges.next())}get readonly(){return this._readonly}set readonly(e){this._readonly=nu(e)}_readonly=!1;disabledInteractive;get errorState(){return this._errorStateTracker.errorState}set errorState(e){this._errorStateTracker.errorState=e}_neverEmptyInputTypes=["date","datetime","datetime-local","month","time","week"].filter(e=>RV().has(e));constructor(){const e=D(Qd,{optional:!0}),i=D(Xt,{optional:!0}),o=D(uk),r=D(gpe,{optional:!0,self:!0}),s=this._elementRef.nativeElement,a=s.nodeName.toLowerCase();r?Sl(r.value)?this._signalBasedValueAccessor=r:this._inputValueAccessor=r:this._inputValueAccessor=s,this._previousNativeValue=this.value,this.id=this.id,this._platform.IOS&&this._ngZone.runOutsideAngular(()=>{this._cleanupIosKeyup=this._renderer.listen(s,"keyup",this._iOSKeyupListener)}),this._errorStateTracker=new NV(o,this.ngControl,i,e,this.stateChanges),this._isServer=!this._platform.isBrowser,this._isNativeSelect="select"===a,this._isTextarea="textarea"===a,this._isInFormField=!!this._formField,this.disabledInteractive=this._config?.disabledInteractive||!1,this._isNativeSelect&&(this.controlType=s.multiple?"mat-native-select-multiple":"mat-native-select"),this._signalBasedValueAccessor&&nm(()=>{this._signalBasedValueAccessor.value(),this.stateChanges.next()})}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._cleanupIosKeyup?.(),this._cleanupWebkitWheel?.()}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)}updateErrorState(){this._errorStateTracker.updateErrorState()}_focusChanged(e){if(e!==this.focused){if(!this._isNativeSelect&&e&&this.disabled&&this.disabledInteractive){const i=this._elementRef.nativeElement;"number"===i.type?(i.type="text",i.setSelectionRange(0,0),i.type="number"):i.setSelectionRange(0,0)}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(){bpe.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.disabled||!this.empty}get describedByIds(){return this._elementRef.nativeElement.getAttribute("aria-describedby")?.split(" ")||[]}setDescribedByIds(e){const i=this._elementRef.nativeElement;e.length?i.setAttribute("aria-describedby",e.join(" ")):i.removeAttribute("aria-describedby")}onContainerClick(){this.focused||this.focus()}_isInlineSelect(){const e=this._elementRef.nativeElement;return this._isNativeSelect&&(e.multiple||e.size>1)}_iOSKeyupListener=e=>{const i=e.target;!i.value&&0===i.selectionStart&&0===i.selectionEnd&&(i.setSelectionRange(1,1),i.setSelectionRange(0,0))};_getReadonlyAttribute(){return this._isNativeSelect?null:this.readonly||this.disabled&&this.disabledInteractive?"true":null}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["input","matInput",""],["textarea","matInput",""],["select","matNativeControl",""],["input","matNativeControl",""],["textarea","matNativeControl",""]],hostAttrs:[1,"mat-mdc-input-element"],hostVars:21,hostBindings:function(i,o){1&i&&L("focus",function(){return o._focusChanged(!0)})("blur",function(){return o._focusChanged(!1)})("input",function(){return o._onInput()}),2&i&&(Lr("id",o.id)("disabled",o.disabled&&!o.disabledInteractive)("required",o.required),Ze("name",o.name||null)("readonly",o._getReadonlyAttribute())("aria-disabled",o.disabled&&o.disabledInteractive?"true":null)("aria-invalid",o.empty&&o.required?null:o.errorState)("aria-required",o.required)("id",o.id),Ke("mat-input-server",o._isServer)("mat-mdc-form-field-textarea-control",o._isInFormField&&o._isTextarea)("mat-mdc-form-field-input-control",o._isInFormField)("mat-mdc-input-disabled-interactive",o.disabledInteractive)("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:[0,"aria-describedby","userAriaDescribedBy"],value:"value",readonly:"readonly",disabledInteractive:[2,"disabledInteractive","disabledInteractive",Ie]},exportAs:["matInput"],features:[ht([{provide:ck,useExisting:t}]),yi]})}return t})(),ype=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({imports:[tv,tv,mpe,ri]})}return t})();class FV{_letterKeyStream=new pe;_items=[];_selectedItemIndex=-1;_pressedLetters=[];_skipPredicateFn;_selectedItem=new pe;selectedItem=this._selectedItem;constructor(n,e){const i="number"==typeof e?.debounceInterval?e.debounceInterval:200;e?.skipPredicate&&(this._skipPredicateFn=e.skipPredicate),this.setItems(n),this._setupKeyHandler(i)}destroy(){this._pressedLetters=[],this._letterKeyStream.complete(),this._selectedItem.complete()}setCurrentSelectedItemIndex(n){this._selectedItemIndex=n}setItems(n){this._items=n}handleKey(n){const e=n.keyCode;n.key&&1===n.key.length?this._letterKeyStream.next(n.key.toLocaleUpperCase()):(e>=65&&e<=90||e>=48&&e<=57)&&this._letterKeyStream.next(String.fromCharCode(e))}isTyping(){return this._pressedLetters.length>0}reset(){this._pressedLetters=[]}_setupKeyHandler(n){this._letterKeyStream.pipe(ni(e=>this._pressedLetters.push(e)),_b(n),vn(()=>this._pressedLetters.length>0),ye(()=>this._pressedLetters.join("").toLocaleUpperCase())).subscribe(e=>{for(let i=1;io.trim()===e)&&(i.push(e),t.setAttribute(n,i.join(" ")))}function hk(t,n,e){const i=nv(t,n);e=e.trim();const o=i.filter(r=>r!==e);o.length?t.setAttribute(n,o.join(" ")):t.removeAttribute(n)}function nv(t,n){return t.getAttribute(n)?.match(/\S+/g)??[]}const HV="cdk-describedby-message",iv="cdk-describedby-host";let fk=0,Spe=(()=>{class t{_platform=D($n);_document=D(Qe);_messageRegistry=new Map;_messagesContainer=null;_id=""+fk++;constructor(){D(pr).load(uS),this._id=D(Qs)+"-"+fk++}describe(e,i,o){if(!this._canBeDescribed(e,i))return;const r=pk(i,o);"string"!=typeof i?(jV(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=pk(i,o);if(this._isElementDescribedByMessage(e,r)&&this._removeMessageReference(e,r),"string"==typeof i){const s=this._messageRegistry.get(r);s&&0===s.referenceCount&&this._deleteMessageElement(r)}0===this._messagesContainer?.childNodes.length&&(this._messagesContainer.remove(),this._messagesContainer=null)}ngOnDestroy(){const e=this._document.querySelectorAll(`[${iv}="${this._id}"]`);for(let i=0;i0!=o.indexOf(HV));e.setAttribute("aria-describedby",i.join(" "))}_addMessageReference(e,i){const o=this._messageRegistry.get(i);VV(e,"aria-describedby",o.messageElement.id),e.setAttribute(iv,this._id),o.referenceCount++}_removeMessageReference(e,i){const o=this._messageRegistry.get(i);o.referenceCount--,hk(e,"aria-describedby",o.messageElement.id),e.removeAttribute(iv)}_isElementDescribedByMessage(e,i){const o=nv(e,"aria-describedby"),r=this._messageRegistry.get(i),s=r&&r.messageElement.id;return!!s&&-1!=o.indexOf(s)}_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 \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function pk(t,n){return"string"==typeof t?`${n||""}/${t}`:t}function jV(t,n){t.id||(t.id=`${HV}-${n}-${fk++}`)}const Dpe=["tooltip"],Mpe=new Z("mat-tooltip-scroll-strategy",{providedIn:"root",factory:()=>{const t=D(Be);return()=>Tf(t,{scrollThrottle:20})}}),Epe=new Z("mat-tooltip-default-options",{providedIn:"root",factory:()=>({showDelay:0,hideDelay:0,touchendHideDelay:1500})}),UV="tooltip-panel",Ipe={passive:!0};let pn=(()=>{class t{_elementRef=D(Ae);_ngZone=D(ge);_platform=D($n);_ariaDescriber=D(Spe);_focusMonitor=D(qd);_dir=D(hr);_injector=D(Be);_viewContainerRef=D(wi);_mediaMatcher=D(fS);_document=D(Qe);_renderer=D(Kn);_animationsDisabled=fi();_defaultOptions=D(Epe,{optional:!0});_overlayRef=null;_tooltipInstance=null;_overlayPanelClass;_portal;_position="below";_positionAtOrigin=!1;_disabled=!1;_tooltipClass;_viewInitialized=!1;_pointerExitEventsInitialized=!1;_tooltipComponent=Npe;_viewportMargin=8;_currentPosition;_cssClassPrefix="mat-mdc";_ariaDescriptionPending=!1;_dirSubscribed=!1;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=nu(e),this._detach(),this._overlayRef=null}get disabled(){return this._disabled}set disabled(e){const i=nu(e);this._disabled!==i&&(this._disabled=i,i?this.hide(0):this._setupPointerEnterEventsIfNeeded(),this._syncAriaDescription(this.message))}get showDelay(){return this._showDelay}set showDelay(e){this._showDelay=Cf(e)}_showDelay;get hideDelay(){return this._hideDelay}set hideDelay(e){this._hideDelay=Cf(e),this._tooltipInstance&&(this._tooltipInstance._mouseLeaveHideDelay=this._hideDelay)}_hideDelay;touchGestures="auto";get message(){return this._message}set message(e){const i=this._message;this._message=null!=e?String(e).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage()),this._syncAriaDescription(i)}_message="";get tooltipClass(){return this._tooltipClass}set tooltipClass(e){this._tooltipClass=e,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)}_eventCleanups=[];_touchstartTimeout=null;_destroyed=new pe;_isDestroyed=!1;constructor(){const e=this._defaultOptions;e&&(this._showDelay=e.showDelay,this._hideDelay=e.hideDelay,e.position&&(this.position=e.position),e.positionAtOrigin&&(this.positionAtOrigin=e.positionAtOrigin),e.touchGestures&&(this.touchGestures=e.touchGestures),e.tooltipClass&&(this.tooltipClass=e.tooltipClass)),this._viewportMargin=8}ngAfterViewInit(){this._viewInitialized=!0,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe(on(this._destroyed)).subscribe(e=>{e?"keyboard"===e&&this._ngZone.run(()=>this.show()):this._ngZone.run(()=>this.hide(0))})}ngOnDestroy(){const e=this._elementRef.nativeElement;this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),this._eventCleanups.forEach(i=>i()),this._eventCleanups.length=0,this._destroyed.next(),this._destroyed.complete(),this._isDestroyed=!0,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 Ud(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(on(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 s=this._overlayRef.getConfig().positionStrategy;if((!this.positionAtOrigin||!e)&&s._origin instanceof Ae)return this._overlayRef;this._detach()}const i=this._injector.get(rb).getAncestorScrollContainers(this._elementRef),o=`${this._cssClassPrefix}-${UV}`,r=fb(this._injector,this.positionAtOrigin&&e||this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(!1).withViewportMargin(this._viewportMargin).withScrollableContainers(i).withPopoverLocation("global");return r.positionChanges.pipe(on(this._destroyed)).subscribe(s=>{this._updateCurrentPositionClass(s.connectionPair),this._tooltipInstance&&s.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run(()=>this.hide(0))}),this._overlayRef=$d(this._injector,{direction:this._dir,positionStrategy:r,panelClass:this._overlayPanelClass?[...this._overlayPanelClass,o]:o,scrollStrategy:this._injector.get(Mpe)(),disableAnimations:this._animationsDisabled,eventPredicate:this._overlayEventPredicate}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe(on(this._destroyed)).subscribe(()=>this._detach()),this._overlayRef.outsidePointerEvents().pipe(on(this._destroyed)).subscribe(()=>this._tooltipInstance?._handleBodyInteraction()),this._overlayRef.keydownEvents().pipe(on(this._destroyed)).subscribe(s=>{s.preventDefault(),s.stopPropagation(),this._ngZone.run(()=>this.hide(0))}),this._defaultOptions?.disableTooltipInteractivity&&this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`),this._dirSubscribed||(this._dirSubscribed=!0,this._dir.change.pipe(on(this._destroyed)).subscribe(()=>{this._overlayRef&&this._updatePosition(this._overlayRef)})),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){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}_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:s}=this._invertPosition(o.originX,o.originY);return{main:o,fallback:{originX:r,originY:s}}}_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:s}=this._invertPosition(o.overlayX,o.overlayY);return{main:o,fallback:{overlayX:r,overlayY:s}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),Fi(()=>{this._tooltipInstance&&this._overlayRef.updatePosition()},{injector:this._injector}))}_setTooltipClass(e){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=e instanceof Set?Array.from(e):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 s;if(s="center"===i?this._dir&&"rtl"===this._dir.value?"end"===o?"left":"right":"start"===o?"left":"right":"bottom"===i&&"top"===r?"above":"below",s!==this._currentPosition){const a=this._overlayRef;if(a){const l=`${this._cssClassPrefix}-${UV}-`;a.removePanelClass(l+this._currentPosition),a.addPanelClass(l+s)}this._currentPosition=s}}_setupPointerEnterEventsIfNeeded(){this._disabled||!this.message||!this._viewInitialized||this._eventCleanups.length||(this._isTouchPlatform()?"off"!==this.touchGestures&&(this._disableNativeGesturesIfNecessary(),this._addListener("touchstart",e=>{const i=e.targetTouches?.[0],o=i?{x:i.clientX,y:i.clientY}:void 0;this._setupPointerExitEventsIfNeeded(),this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this._touchstartTimeout=setTimeout(()=>{this._touchstartTimeout=null,this.show(void 0,o)},this._defaultOptions?.touchLongPressShowDelay??500)})):this._addListener("mouseenter",e=>{let i;this._setupPointerExitEventsIfNeeded(),void 0!==e.x&&void 0!==e.y&&(i=e),this.show(void 0,i)}))}_setupPointerExitEventsIfNeeded(){if(!this._pointerExitEventsInitialized)if(this._pointerExitEventsInitialized=!0,this._isTouchPlatform()){if("off"!==this.touchGestures){this._disableNativeGesturesIfNecessary();const e=()=>{this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this.hide(this._defaultOptions?.touchendHideDelay)};this._addListener("touchend",e),this._addListener("touchcancel",e)}}else this._addListener("mouseleave",e=>{const i=e.relatedTarget;(!i||!this._overlayRef?.overlayElement.contains(i))&&this.hide()}),this._addListener("wheel",e=>{if(this._isTooltipVisible()){const i=this._document.elementFromPoint(e.clientX,e.clientY),o=this._elementRef.nativeElement;i!==o&&!o.contains(i)&&this.hide()}})}_addListener(e,i){this._eventCleanups.push(this._renderer.listen(this._elementRef.nativeElement,e,i,Ipe))}_isTouchPlatform(){return!(!this._platform.IOS&&!this._platform.ANDROID)||!!this._platform.isBrowser&&!!this._defaultOptions?.detectHoverCapability&&this._mediaMatcher.matchMedia("(any-hover: none)").matches}_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"}}_syncAriaDescription(e){this._ariaDescriptionPending||(this._ariaDescriptionPending=!0,this._ariaDescriber.removeDescription(this._elementRef.nativeElement,e,"tooltip"),this._isDestroyed||Fi({write:()=>{this._ariaDescriptionPending=!1,this.message&&!this.disabled&&this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip")}},{injector:this._injector}))}_overlayEventPredicate=e=>"keydown"!==e.type||this._isTooltipVisible()&&27===e.keyCode&&!mr(e);static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-mdc-tooltip-trigger"],hostVars:2,hostBindings:function(i,o){2&i&&Ke("mat-mdc-tooltip-disabled",o.disabled)},inputs:{position:[0,"matTooltipPosition","position"],positionAtOrigin:[0,"matTooltipPositionAtOrigin","positionAtOrigin"],disabled:[0,"matTooltipDisabled","disabled"],showDelay:[0,"matTooltipShowDelay","showDelay"],hideDelay:[0,"matTooltipHideDelay","hideDelay"],touchGestures:[0,"matTooltipTouchGestures","touchGestures"],message:[0,"matTooltip","message"],tooltipClass:[0,"matTooltipClass","tooltipClass"]},exportAs:["matTooltip"]})}return t})(),Npe=(()=>{class t{_changeDetectorRef=D(Pn);_elementRef=D(Ae);_isMultiline=!1;message;tooltipClass;_showTimeoutId;_hideTimeoutId;_triggerElement;_mouseLeaveHideDelay;_animationsDisabled=fi();_tooltip;_closeOnInteraction=!1;_isVisible=!1;_onHide=new pe;_showAnimation="mat-mdc-tooltip-show";_hideAnimation="mat-mdc-tooltip-hide";constructor(){}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(){this._isMultiline=this._isTooltipMultiline(),this._markForCheck()}_isTooltipMultiline(){const e=this._elementRef.nativeElement.getBoundingClientRect();return e.height>24&&e.width>=200}_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&&(this._isVisible=e,this._changeDetectorRef.markForCheck()),e&&!this._animationsDisabled&&"function"==typeof getComputedStyle){const s=getComputedStyle(i);("0s"===s.getPropertyValue("animation-duration")||"none"===s.getPropertyValue("animation-name"))&&(this._animationsDisabled=!0)}e&&this._onShow(),this._animationsDisabled&&(i.classList.add("_mat-animation-noopable"),this._finalizeAnimation(e))}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["mat-tooltip-component"]],viewQuery:function(i,o){if(1&i&&rt(Dpe,7),2&i){let r;ue(r=he())&&(o._tooltip=r.first)}},hostAttrs:["aria-hidden","true"],hostBindings:function(i,o){1&i&&L("mouseleave",function(s){return o._handleMouseLeave(s)})},decls:4,vars:5,consts:[["tooltip",""],[1,"mdc-tooltip","mat-mdc-tooltip",3,"animationend"],[1,"mat-mdc-tooltip-surface","mdc-tooltip__surface"]],template:function(i,o){1&i&&(gs(0,"div",1,0),Fg("animationend",function(s){return o._handleAnimationEnd(s)}),gs(2,"div",2),m(3),Tl()()),2&i&&(at(o.tooltipClass),Ke("mdc-tooltip--multiline",o._isMultiline),d(3),O(o.message))},styles:['.mat-mdc-tooltip{position:relative;transform:scale(0);display:inline-flex}.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-surface{word-break:normal;overflow-wrap:anywhere;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center;will-change:transform,opacity;background-color:var(--mat-tooltip-container-color, var(--mat-sys-inverse-surface));color:var(--mat-tooltip-supporting-text-color, var(--mat-sys-inverse-on-surface));border-radius:var(--mat-tooltip-container-shape, var(--mat-sys-corner-extra-small));font-family:var(--mat-tooltip-supporting-text-font, var(--mat-sys-body-small-font));font-size:var(--mat-tooltip-supporting-text-size, var(--mat-sys-body-small-size));font-weight:var(--mat-tooltip-supporting-text-weight, var(--mat-sys-body-small-weight));line-height:var(--mat-tooltip-supporting-text-line-height, var(--mat-sys-body-small-line-height));letter-spacing:var(--mat-tooltip-supporting-text-tracking, var(--mat-sys-body-small-tracking))}.mat-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}.mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:right}.mat-mdc-tooltip-panel{line-height:normal}.mat-mdc-tooltip-panel.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}\n'],encapsulation:2,changeDetection:0})}return t})();const Fpe=["button1"],Lpe=["button2"],Bpe=["*"],Vpe=t=>({"for-dark-background":t});function Hpe(t,n){1&t&&B(0,"mat-spinner",3),2&t&&v("diameter",C().loadingSize)}function jpe(t,n){1&t&&(f(0,"mat-icon"),m(1,"error_outline"),h())}var tc=function(t){return t[t.Normal=0]="Normal",t[t.Error=1]="Error",t[t.Loading=2]="Loading",t}(tc||{});let On=(()=>{class t{constructor(){this.forDarkBackground=!1,this.disabled=!1,this.color="",this.loadingSize=20,this.action=new ve,this.state=tc.Normal,this.buttonStates=tc}ngOnDestroy(){this.action.complete()}click(){this.disabled||(this.reset(),this.action.emit())}reset(e=!0){this.state=tc.Normal,e&&(this.disabled=!1)}focus(){this.button1&&this.button1.focus(),this.button2&&this.button2.focus()}showEnabled(){this.disabled=!1}showDisabled(){this.disabled=!0}showLoading(e=!0){this.state=tc.Loading,e&&(this.disabled=!0)}showError(e=!0){this.state=tc.Error,e&&(this.disabled=!1)}get isLoading(){return this.state===tc.Loading}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=se({type:t,selectors:[["app-button"]],viewQuery:function(i,o){if(1&i&&rt(Fpe,5)(Lpe,5),2&i){let r;ue(r=he())&&(o.button1=r.first),ue(r=he())&&(o.button2=r.first)}},inputs:{forDarkBackground:"forDarkBackground",disabled:"disabled",color:"color",loadingSize:"loadingSize"},outputs:{action:"action"},standalone:!1,ngContentSelectors:Bpe,decls:6,vars:7,consts:[["button2",""],["mat-raised-button","",3,"click","disabled","color","ngClass"],[1,"d-flex"],[3,"diameter"]],template:function(i,o){1&i&&(Si(),f(0,"button",1,0),L("click",function(){return o.click()}),f(2,"div",2),S(3,Hpe,1,1,"mat-spinner",3),S(4,jpe,2,0,"mat-icon"),At(5),h()()),2&i&&(v("disabled",o.disabled)("color",o.color)("ngClass",oe(5,Vpe,o.forDarkBackground)),d(3),k(o.state===o.buttonStates.Loading?3:-1),d(),k(o.state===o.buttonStates.Error?4:-1))},dependencies:[qt,Jn,lt,$o],styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], button[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}button[_ngcontent-%COMP%]{color:#f8f9f9;border-radius:10px}button[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}mat-icon[_ngcontent-%COMP%], mat-spinner[_ngcontent-%COMP%]{display:inline-block;margin-right:15px}.for-dark-background[_ngcontent-%COMP%]:disabled{background-color:#000!important;color:#fff!important;opacity:.3}"]})}}return t})();const Upe=["button"],zpe=["firstInput"],$pe=t=>({"rounded-elevated-box":t}),zV=(t,n)=>({"white-form-field":t,"element-disabled":n}),Wpe=(t,n)=>({"mt-2 app-button":t,"float-right":n}),Gpe=t=>({"element-disabled":t});function qpe(t,n){if(1&t&&(f(0,"mat-form-field",6)(1,"div",7)(2,"label",8),m(3),b(4,"translate"),h(),B(5,"input",12),h(),f(6,"mat-error")(7,"span"),m(8),b(9,"translate"),h()()()),2&t){const e=C();v("ngClass",oe(7,Gpe,e.working)),d(3),O(y(4,3,"settings.password.old-password")),d(5),O(y(9,5,"settings.password.errors.old-password-required"))}}let $V=(()=>{class t{constructor(e,i,o,r){this.authService=e,this.router=i,this.snackbarService=o,this.dialog=r,this.workingState=new ve,this.forInitialConfig=!1}ngOnInit(){this.form=new ZS({oldPassword:new eu("",this.forInitialConfig?null:Ve.required),newPassword:new eu("",Ve.compose([Ve.required,Ve.minLength(6),Ve.maxLength(64)])),newPasswordConfirmation:new eu("",[Ve.required,this.validatePasswords.bind(this)])}),this.formSubscription=this.form.controls.newPassword.valueChanges.subscribe(()=>this.form.controls.newPasswordConfirmation.updateValueAndValidity())}ngAfterViewInit(){this.forInitialConfig&&setTimeout(()=>this.firstInput.nativeElement.focus())}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe(),this.formSubscription.unsubscribe()}get working(){return!!this.button&&this.button.isLoading}changePassword(){this.form.valid&&!this.button.disabled&&(this.button.showLoading(),this.workingState.next(!0),this.subscription=this.forInitialConfig?this.authService.initialConfig(this.form.get("newPassword").value).subscribe(()=>{this.dialog.closeAll(),this.snackbarService.showDone("settings.password.initial-config.done"),this.workingState.next(!1)},e=>{this.button.showError(),e=Je(e),this.snackbarService.showError(e,null,!0),this.workingState.next(!1)}):this.authService.changePassword(this.form.get("oldPassword").value,this.form.get("newPassword").value).subscribe(()=>{this.router.navigate(["nodes"]),this.snackbarService.showDone("settings.password.password-changed"),this.workingState.next(!1)},e=>{this.button.showError(),e=Je(e),this.snackbarService.showError(e),this.workingState.next(!1)}))}validatePasswords(){return this.form&&this.form.get("newPassword").value!==this.form.get("newPasswordConfirmation").value?{invalid:!0}:null}static{this.\u0275fac=function(i){return new(i||t)(P(Vf),P(vt),P(bt),P(kt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-password"]],viewQuery:function(i,o){if(1&i&&rt(Upe,5)(zpe,5),2&i){let r;ue(r=he())&&(o.button=r.first),ue(r=he())&&(o.firstInput=r.first)}},inputs:{forInitialConfig:"forInitialConfig"},outputs:{workingState:"workingState"},standalone:!1,decls:33,vars:40,consts:[["firstInput",""],["button",""],[3,"ngClass"],[1,"box-internal-container","overflow"],[1,"help-icon",3,"inline","matTooltip"],[3,"formGroup"],[1,"white-form-field",3,"ngClass"],[1,"field-container"],["for","remoteKey",1,"field-label"],["type","password","formControlName","newPassword","maxlength","64","matInput",""],["type","password","formControlName","newPasswordConfirmation","maxlength","64","matInput",""],["color","primary",3,"action","ngClass","disabled","forDarkBackground"],["type","password","formControlName","oldPassword","maxlength","64","matInput",""]],template:function(i,o){1&i&&(f(0,"div",2)(1,"div",3)(2,"div")(3,"mat-icon",4),b(4,"translate"),m(5," help "),h()(),f(6,"form",5),S(7,qpe,10,9,"mat-form-field",6),f(8,"mat-form-field",2)(9,"div",7)(10,"label",8),m(11),b(12,"translate"),h(),B(13,"input",9,0),h(),f(15,"mat-error")(16,"span"),m(17),b(18,"translate"),h()()(),f(19,"mat-form-field",2)(20,"div",7)(21,"label",8),m(22),b(23,"translate"),h(),B(24,"input",10),h(),f(25,"mat-error")(26,"span"),m(27),b(28,"translate"),h()()(),f(29,"app-button",11,1),L("action",function(){return o.changePassword()}),m(31),b(32,"translate"),h()()()()),2&i&&(v("ngClass",oe(29,$pe,!o.forInitialConfig)),d(2),at((o.forInitialConfig?"":"white-")+"form-help-icon-container"),d(),v("inline",!0)("matTooltip",y(4,17,o.forInitialConfig?"settings.password.initial-config-help":"settings.password.help")),d(3),v("formGroup",o.form),d(),k(o.forInitialConfig?-1:7),d(),v("ngClass",ft(31,zV,!o.forInitialConfig,o.working)),d(3),O(y(12,19,o.forInitialConfig?"settings.password.initial-config.password":"settings.password.new-password")),d(6),O(y(18,21,"settings.password.errors.new-password-error")),d(2),v("ngClass",ft(34,zV,!o.forInitialConfig,o.working)),d(3),O(y(23,23,o.forInitialConfig?"settings.password.initial-config.repeat-password":"settings.password.repeat-password")),d(5),O(y(28,25,"settings.password.errors.passwords-not-match")),d(2),v("ngClass",ft(37,Wpe,!o.forInitialConfig,o.forInitialConfig))("disabled",!o.form.valid)("forDarkBackground",!o.forInitialConfig),d(2),I(" ",y(32,27,o.forInitialConfig?"settings.password.initial-config.set-password":"settings.change-password")," "))},dependencies:[qt,Cn,rn,sn,yn,ji,Xt,fn,wn,Es,ei,lt,pn,On,Se],styles:[".help-icon[_ngcontent-%COMP%]{display:inline}mat-form-field[_ngcontent-%COMP%]{margin-right:32px}app-button[_ngcontent-%COMP%]{float:right;margin-right:32px}"]})}}return t})();const Kpe=["*"],WV=t=>({"content-margin":t});function Ype(t,n){1&t&&(f(0,"button",2)(1,"mat-icon"),m(2,"close"),h()())}function Xpe(t,n){1&t&&sr(0)}function Zpe(t,n){if(1&t&&(f(0,"mat-dialog-content",4),tt(1,Xpe,1,0,"ng-container",5),h()),2&t){const e=C(),i=Vn(8);v("ngClass",oe(2,WV,e.includeVerticalMargins)),d(),v("ngTemplateOutlet",i)}}function Qpe(t,n){1&t&&sr(0)}function Jpe(t,n){if(1&t&&(f(0,"div",4),tt(1,Qpe,1,0,"ng-container",5),h()),2&t){const e=C(),i=Vn(8);v("ngClass",oe(2,WV,e.includeVerticalMargins)),d(),v("ngTemplateOutlet",i)}}function eme(t,n){1&t&&At(0)}let Kt=(()=>{class t{set dialog(e){e.disableClose=!0,this.dialogInternal=e}constructor(e){this.matDialog=e,this.includeScrollableArea=!0,this.includeVerticalMargins=!0}onKeyUp(){this.closePopup()}closePopup(){this.disableDismiss||this.matDialog.openDialogs[this.matDialog.openDialogs.length-1].id===this.dialogInternal.id&&this.dialogInternal.close()}static{this.\u0275fac=function(i){return new(i||t)(P(kt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-dialog"]],hostBindings:function(i,o){1&i&&L("keyup.esc",function(){return o.onKeyUp()},zC)},inputs:{headline:"headline",disableDismiss:"disableDismiss",includeScrollableArea:"includeScrollableArea",includeVerticalMargins:"includeVerticalMargins",dialog:"dialog"},standalone:!1,ngContentSelectors:Kpe,decls:9,vars:4,consts:[["contentTemplate",""],["mat-dialog-title","",1,"header"],["mat-dialog-close","","mat-icon-button","",1,"grey-button-background"],[1,"header-separator"],[3,"ngClass"],[4,"ngTemplateOutlet"]],template:function(i,o){1&i&&(Si(),f(0,"div",1)(1,"span"),m(2),h(),S(3,Ype,3,0,"button",2),h(),B(4,"div",3),S(5,Zpe,2,4,"mat-dialog-content",4),S(6,Jpe,2,4,"div",4),tt(7,eme,1,0,"ng-template",null,0,El)),2&i&&(d(2),O(o.headline),d(),k(o.disableDismiss?-1:3),d(2),k(o.includeScrollableArea?5:-1),d(),k(o.includeScrollableArea?-1:6))},dependencies:[qt,Pd,DB,wS,Kd,Ms,lt],styles:['.cursor-pointer[_ngcontent-%COMP%], .header[_ngcontent-%COMP%] .mat-mdc-icon-button[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%], .header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media(max-width:767px),(min-width:992px)and (max-width:1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media(max-width:767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}[_nghost-%COMP%]{color:#202226}.header[_ngcontent-%COMP%]{margin:-24px -24px 0;color:#215f9e;padding:0 14px 0 24px;font-size:1rem;text-transform:uppercase;font-weight:700;display:flex;align-items:center}.header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{flex-grow:1}@media(max-width:767px){.header[_ngcontent-%COMP%]{padding:0 2px 0 24px}}.header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{line-height:1rem;margin:18px 0}.header[_ngcontent-%COMP%] .mat-mdc-icon-button[_ngcontent-%COMP%]{color:#a6b2b2;width:32px;height:32px;line-height:20px;margin-left:10px;padding:0}@media(max-width:767px){.header[_ngcontent-%COMP%] .mat-mdc-icon-button[_ngcontent-%COMP%]{width:46px;height:46px}}.header-separator[_ngcontent-%COMP%]{height:1px;background-color:#215f9e33;margin-left:-12px;margin-right:-12px}.content-margin[_ngcontent-%COMP%]{padding-top:18px;padding-bottom:24px!important}']})}}return t})(),tme=(()=>{class t{static openDialog(e){const i=new Lt;return i.autoFocus=!1,i.width=ze.smallModalWidth,e.open(t,i)}constructor(e){this.dialogRef=e,this.disableDismiss=!1}static{this.\u0275fac=function(i){return new(i||t)(P(It))}}static{this.\u0275cmp=se({type:t,selectors:[["app-initial-setup"]],standalone:!1,decls:3,vars:6,consts:[[3,"headline","dialog","disableDismiss"],[3,"workingState","forInitialConfig"]],template:function(i,o){1&i&&(f(0,"app-dialog",0),b(1,"translate"),f(2,"app-password",1),L("workingState",function(s){return o.disableDismiss=s}),h()()),2&i&&(v("headline",y(1,4,"settings.password.initial-config.title"))("dialog",o.dialogRef)("disableDismiss",o.disableDismiss),d(2),v("forInitialConfig",!0))},dependencies:[$V,Kt,Se],encapsulation:2})}}return t})();var mk=function qV(t){var n,e,i,M,A,o=E.prototype={constructor:E,toString:null,valueOf:null},r=new E(1),s=20,a=4,l=-7,c=21,u=-1e7,p=1e7,g=!1,_=1,w=0,x={prefix:"",groupSize:3,secondaryGroupSize:0,groupSeparator:",",decimalSeparator:".",fractionGroupSize:0,fractionGroupSeparator:"\xa0",suffix:""},T="0123456789abcdefghijklmnopqrstuvwxyz";function E(M,A){var F,U,H,G,J,V,N,q,j=this;if(!(j instanceof E))return new E(M,A);if(q=typeof M,null==A){if(W(M))return j.s=M.s,void(!M.c||M.e>p?j.c=j.e=null:M.e=10;J/=10,G++);return void(G>p?j.c=j.e=null:(j.e=G,j.c=[M]))}N=String(M)}else{if("string"==q){if(!nme.test(N=M))return i(j,N)}else{if("bigint"!=q)throw Error(bo+"Invalid argument: "+M);N=String(M)}j.s=45==N.charCodeAt(0)?(N=N.slice(1),-1):1}(G=N.indexOf("."))>-1&&(N=N.replace(".","")),(J=N.search(/e/i))>0?(G<0&&(G=J),G+=+N.slice(J+1),N=N.substring(0,J)):G<0&&(G=N.length)}else{if("string"!=q)throw Error(bo+"String expected: "+M);for(xn(A,2,T.length,"Base"),j.s=45===(N=M).charCodeAt(0)?(N=N.slice(1),-1):1,F=T.slice(0,A),G=J=0,V=N.length;JG){G=V;continue}}else if(!H&&(N==N.toUpperCase()&&(N=N.toLowerCase())||N==N.toLowerCase()&&(N=N.toUpperCase()))){H=!0,J=-1,G=0;continue}return i(j,M,A)}(G=(N=e(N,A,10,j.s)).indexOf("."))>-1?N=N.replace(".",""):G=N.length}for(J=0;48===N.charCodeAt(J);J++);for(V=N.length;48===N.charCodeAt(--V););if(N=N.slice(J,++V))if(V-=J,(G=G-J-1)>p)j.c=j.e=null;else if(G=c)?rv(N,J):Da(N,J,"0");else if(G=(M=ee(new E(M),A,F)).e,V=(N=xr(M.c)).length,1==U||2==U&&(A<=G||G<=l)){for(;VJ),N=Da(N,G,"0"),G+1>V){if(--A>0)for(N+=".";A--;N+="0");}else if((A+=G-V)>0)for(G+1==V&&(N+=".");A--;N+="0");return M.s<0&&H?"-"+N:N}function W(M){return M instanceof E||!!M&&!0===M._isBigNumber}function Y(M,A){for(var F,U,H=1,G=new E(M[0]);H=10;H/=10,U++);return(F=U+14*F-1)>p?M.c=M.e=null:F=10;V/=10,H++);if((G=A-H)<0)G+=14,N=Q[q=0],j=Cr(N/fe[H-(J=A)-1]%10);else if((q=gk((G+1)/14))>=Q.length){if(!U)break e;for(;Q.length<=q;Q.push(0));N=j=0,H=1,J=(G%=14)-14+1}else{for(N=V=Q[q],H=1;V>=10;V/=10,H++);j=(J=(G%=14)-14+H)<0?0:Cr(N/fe[H-J-1]%10)}if(U=U||A<0||null!=Q[q+1]||(J<0?N:N%fe[H-J-1]),U=F<4?(j||U)&&(0==F||F==(M.s<0?3:2)):j>5||5==j&&(4==F||U||6==F&&(G>0?J>0?N/fe[H-J]:0:Q[q-1])%10&1||F==(M.s<0?8:7)),A<1||!Q[0])return Q.length=0,U?(Q[0]=fe[(14-(A-=M.e+1)%14)%14],M.e=-A||0):Q[0]=M.e=0,M;if(0==G?(Q.length=q,V=1,q--):(Q.length=q+1,V=fe[14-G],Q[q]=J>0?Cr(N/fe[H-J]%fe[J])*V:0),U)for(;;){if(0==q){for(G=1,J=Q[0];J>=10;J/=10,G++);for(J=Q[0]+=V,V=1;J>=10;J/=10,V++);G!=V&&(M.e++,Q[0]==wr&&(Q[0]=1));break}if(Q[q]+=V,Q[q]!=wr)break;Q[q--]=0,V=1}for(G=Q.length;0===Q[--G];Q.pop());}M.e>p?M.c=M.e=null:M.e=c?rv(A,F):Da(A,F,"0"),M.s<0?"-"+A:A)}return E.clone=qV,E.ROUND_UP=0,E.ROUND_DOWN=1,E.ROUND_CEIL=2,E.ROUND_FLOOR=3,E.ROUND_HALF_UP=4,E.ROUND_HALF_DOWN=5,E.ROUND_HALF_EVEN=6,E.ROUND_HALF_CEIL=7,E.ROUND_HALF_FLOOR=8,E.EUCLID=9,E.config=E.set=function(M){var A,F;if(null!=M){if("object"!=typeof M)throw Error(bo+"Object expected: "+M);if(M.hasOwnProperty(A="DECIMAL_PLACES")&&(xn(F=M[A],0,mi,A),s=F),M.hasOwnProperty(A="ROUNDING_MODE")&&(xn(F=M[A],0,8,A),a=F),M.hasOwnProperty(A="EXPONENTIAL_AT")&&((F=M[A])&&F.pop?(xn(F[0],-mi,0,A),xn(F[1],0,mi,A),l=F[0],c=F[1]):(xn(F,-mi,mi,A),l=-(c=F<0?-F:F))),M.hasOwnProperty(A="RANGE"))if((F=M[A])&&F.pop)xn(F[0],-mi,-1,A),xn(F[1],1,mi,A),u=F[0],p=F[1];else{if(xn(F,-mi,mi,A),!F)throw Error(bo+A+" cannot be zero: "+F);u=-(p=F<0?-F:F)}if(M.hasOwnProperty(A="CRYPTO")){if((F=M[A])!==!!F)throw Error(bo+A+" not true or false: "+F);if(F){if(!(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes)))throw g=!F,Error(bo+"crypto unavailable");g=F}else g=F}if(M.hasOwnProperty(A="MODULO_MODE")&&(xn(F=M[A],0,9,A),_=F),M.hasOwnProperty(A="POW_PRECISION")&&(xn(F=M[A],0,mi,A),w=F),M.hasOwnProperty(A="FORMAT")){if("object"!=typeof(F=M[A]))throw Error(bo+A+" not an object: "+F);x=F}if(M.hasOwnProperty(A="ALPHABET")){if("string"!=typeof(F=M[A])||/^.?$|[+\-.\s]|(.).*\1/.test(F))throw Error(bo+A+" invalid: "+F);T=F}}return{DECIMAL_PLACES:s,ROUNDING_MODE:a,EXPONENTIAL_AT:[l,c],RANGE:[u,p],CRYPTO:g,MODULO_MODE:_,POW_PRECISION:w,FORMAT:x,ALPHABET:T}},E.isBigNumber=function(M){if(!W(M))return!1;var A,F,U=M.c,H=M.e,G=M.s;if("[object Array]"!={}.toString.call(U))return null===U&&null===H&&(null===G||1===G||-1===G);if(1!==G&&-1!==G||H<-mi||H>mi||H!==Cr(H))return!1;if(0===U[0])return 0===H&&1===U.length;if((A=(H+1)%14)<1&&(A+=14),String(U[0]).length!==A)return!1;for(A=0;A=wr||F!==Cr(F))return!1;return 0!==F},E.maximum=E.max=function(){return Y(arguments,-1)},E.minimum=E.min=function(){return Y(arguments,1)},E.random=(M=9007199254740992,A=Math.random()*M&2097151?function(){return Cr(Math.random()*M)}:function(){return 8388608*(1073741824*Math.random()|0)+(8388608*Math.random()|0)},function(F){var U,H,G,J,V,N=0,q=[],j=new E(r);if(null==F?F=s:xn(F,0,mi),J=gk(F/14),g)if(crypto.getRandomValues){for(U=crypto.getRandomValues(new Uint32Array(J*=2));N>>11))>=9e15?(H=crypto.getRandomValues(new Uint32Array(2)),U[N]=H[0],U[N+1]=H[1]):(q.push(V%1e14),N+=2);N=J/2}else{if(!crypto.randomBytes)throw g=!1,Error(bo+"crypto unavailable");for(U=crypto.randomBytes(J*=7);N=9e15?crypto.randomBytes(7).copy(U,N):(q.push(V%1e14),N+=7);N=J/7}if(!g)for(;N=10;V/=10,N++);N<14&&(G-=14-N)}return j.e=G,j.c=q,j}),E.sum=function(){for(var M=1,A=arguments,F=new E(A[0]);MH-1&&(null==V[J+1]&&(V[J+1]=0),V[J+1]+=V[J]/H|0,V[J]%=H)}return V.reverse()}return function(F,U,H,G,J){var V,N,q,j,Q,fe,_e,Te,ut=F.indexOf("."),Pe=s,Xe=a;for(ut>=0&&(j=w,w=0,F=F.replace(".",""),fe=(Te=new E(U)).pow(F.length-ut),w=j,Te.c=A(Da(xr(fe.c),fe.e,"0"),10,H,M),Te.e=Te.c.length),q=j=(_e=A(F,U,H,J?(V=T,M):(V=M,T))).length;0==_e[--j];_e.pop());if(!_e[0])return V.charAt(0);if(ut<0?--q:(fe.c=_e,fe.e=q,fe.s=G,_e=(fe=n(fe,Te,Pe,Xe,H)).c,Q=fe.r,q=fe.e),ut=_e[N=q+Pe+1],j=H/2,Q=Q||N<0||null!=_e[N+1],Q=Xe<4?(null!=ut||Q)&&(0==Xe||Xe==(fe.s<0?3:2)):ut>j||ut==j&&(4==Xe||Q||6==Xe&&1&_e[N-1]||Xe==(fe.s<0?8:7)),N<1||!_e[0])F=Q?Da(V.charAt(1),-Pe,V.charAt(0)):V.charAt(0);else{if(_e.length=N,Q)for(--H;++_e[--N]>H;)_e[N]=0,N||(++q,_e=[1].concat(_e));for(j=_e.length;!_e[--j];);for(ut=0,F="";ut<=j;F+=V.charAt(_e[ut++]));F=Da(F,q,V.charAt(0))}return F}}(),n=function(){function M(U,H,G){var J,V,N,q,j=0,Q=U.length,fe=H%ka,_e=H/ka|0;for(U=U.slice();Q--;)j=((V=fe*(N=U[Q]%ka)+(J=_e*N+(q=U[Q]/ka|0)*fe)%ka*ka+j)/G|0)+(J/ka|0)+_e*q,U[Q]=V%G;return j&&(U=[j].concat(U)),U}function A(U,H,G,J){var V,N;if(G!=J)N=G>J?1:-1;else for(V=N=0;VH[V]?1:-1;break}return N}function F(U,H,G,J){for(var V=0;G--;)U[G]-=V,U[G]=(V=U[G]1;U.splice(0,1));}return function(U,H,G,J,V){var N,q,j,Q,fe,_e,Te,ut,Pe,Xe,st,Ct,Yo,qi,La,Co,bp,Xo=U.s==H.s?1:-1,ro=U.c,Rn=H.c;if(!(ro&&ro[0]&&Rn&&Rn[0]))return new E(U.s&&H.s&&(ro?!Rn||ro[0]!=Rn[0]:Rn)?ro&&0==ro[0]||!Rn?0*Xo:Xo/0:NaN);for(Pe=(ut=new E(Xo)).c=[],Xo=G+(q=U.e-H.e)+1,V||(V=wr,q=Go(U.e/14)-Go(H.e/14),Xo=Xo/14|0),j=0;Rn[j]==(ro[j]||0);j++);if(Rn[j]>(ro[j]||0)&&q--,Xo<0)Pe.push(1),Q=!0;else{for(qi=ro.length,Co=Rn.length,j=0,Xo+=2,(fe=Cr(V/(Rn[0]+1)))>1&&(Rn=M(Rn,fe,V),ro=M(ro,fe,V),Co=Rn.length,qi=ro.length),Yo=Co,st=(Xe=ro.slice(0,Co)).length;st=V/2&&La++;do{if(fe=0,(N=A(Rn,Xe,Co,st))<0){if(Ct=Xe[0],Co!=st&&(Ct=Ct*V+(Xe[1]||0)),(fe=Cr(Ct/La))>1)for(fe>=V&&(fe=V-1),Te=(_e=M(Rn,fe,V)).length,st=Xe.length;1==A(_e,Xe,Te,st);)fe--,F(_e,Co=10;Xo/=10,j++);ee(ut,G+(ut.e=j+14*q-1)+1,J,Q)}else ut.e=q,ut.r=+Q;return ut}}(),i=function(){var M=/^(-?)0([xbo])(?=\w[\w.]*$)/i,A=/^([^.]+)\.$/,F=/^\.([^.]+)$/,U=/^-?(Infinity|NaN)$/,H=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(G,J,V){var N,q=J.replace(H,"");if(U.test(q))return G.s=isNaN(q)?null:q<0?-1:1,void(G.c=G.e=null);if(q=q.replace(M,function(j,Q,fe){return N="x"==(fe=fe.toLowerCase())?16:"b"==fe?2:8,V&&V!=N?j:Q}),V&&(N=V,q=q.replace(A,"$1").replace(F,"0.$1")),J!=q)return new E(q,N);throw Error(bo+"Not a"+(V?" base "+V:"")+" number: "+J)}}(),o.absoluteValue=o.abs=function(){var M=new E(this);return M.s<0&&(M.s=1),M},o.comparedTo=function(M,A){return nc(this,new E(M,A))},o.decimalPlaces=o.dp=function(M,A){var F,U,H,G=this;if(null!=M)return xn(M,0,mi),null==A?A=a:xn(A,0,8),ee(new E(G),M+G.e+1,A);if(!(F=G.c))return null;if(U=14*((H=F.length-1)-Go(this.e/14)),H=F[H])for(;H%10==0;H/=10,U--);return U<0&&(U=0),U},o.dividedBy=o.div=function(M,A){return n(this,new E(M,A),s,a)},o.dividedToIntegerBy=o.idiv=function(M,A){return n(this,new E(M,A),0,1)},o.exponentiatedBy=o.pow=function(M,A){var F,U,H,G,V,N,q,j,Q=this;if((M=new E(M)).c&&!M.isInteger())throw Error(bo+"Exponent not an integer: "+ie(M));if(null!=A&&(A=new E(A)),V=M.e>14,!Q.c||!Q.c[0]||1==Q.c[0]&&!Q.e&&1==Q.c.length||!M.c||!M.c[0])return j=new E(Math.pow(+ie(Q),V?M.s*(2-ov(M)):+ie(M))),A?j.mod(A):j;if(N=M.s<0,A){if(A.c?!A.c[0]:!A.s)return new E(NaN);(U=!N&&Q.isInteger()&&A.isInteger())&&(Q=Q.mod(A))}else{if(M.e>9&&(Q.e>0||Q.e<-1||(0==Q.e?Q.c[0]>1||V&&Q.c[1]>=24e7:Q.c[0]<8e13||V&&Q.c[0]<=9999975e7)))return G=Q.s<0&&ov(M)?-0:0,Q.e>-1&&(G=1/G),new E(N?1/G:G);w&&(G=gk(w/14+2))}for(V?(F=new E(.5),N&&(M.s=1),q=ov(M)):q=(H=Math.abs(+ie(M)))%2,j=new E(r);;){if(q){if(!(j=j.times(Q)).c)break;G?j.c.length>G&&(j.c.length=G):U&&(j=j.mod(A))}if(H){if(0===(H=Cr(H/2)))break;q=H%2}else if(ee(M=M.times(F),M.e+1,1),M.e>14)q=ov(M);else{if(0===(H=+ie(M)))break;q=H%2}Q=Q.times(Q),G?Q.c&&Q.c.length>G&&(Q.c.length=G):U&&(Q=Q.mod(A))}return U?j:(N&&(j=r.div(j)),A?j.mod(A):G?ee(j,w,a,void 0):j)},o.integerValue=function(M){var A=new E(this);return null==M?M=a:xn(M,0,8),ee(A,A.e+1,M)},o.isEqualTo=o.eq=function(M,A){return 0===nc(this,new E(M,A))},o.isFinite=function(){return!!this.c},o.isGreaterThan=o.gt=function(M,A){return nc(this,new E(M,A))>0},o.isGreaterThanOrEqualTo=o.gte=function(M,A){return 1===(A=nc(this,new E(M,A)))||0===A},o.isInteger=function(){return!!this.c&&Go(this.e/14)>this.c.length-2},o.isLessThan=o.lt=function(M,A){return nc(this,new E(M,A))<0},o.isLessThanOrEqualTo=o.lte=function(M,A){return-1===(A=nc(this,new E(M,A)))||0===A},o.isNaN=function(){return!this.s},o.isNegative=function(){return this.s<0},o.isPositive=function(){return this.s>0},o.isZero=function(){return!!this.c&&0==this.c[0]},o.minus=function(M,A){var F,U,H,G,J=this,V=J.s;if(A=(M=new E(M,A)).s,!V||!A)return new E(NaN);if(V!=A)return M.s=-A,J.plus(M);var N=J.e/14,q=M.e/14,j=J.c,Q=M.c;if(!N||!q){if(!j||!Q)return j?(M.s=-A,M):new E(Q?J:NaN);if(!j[0]||!Q[0])return Q[0]?(M.s=-A,M):new E(j[0]?J:3==a?-0:0)}if(N=Go(N),q=Go(q),j=j.slice(),V=N-q){for((G=V<0)?(V=-V,H=j):(q=N,H=Q),H.reverse(),A=V;A--;H.push(0));H.reverse()}else for(U=(G=(V=j.length)<(A=Q.length))?V:A,V=A=0;A0)for(;A--;j[F++]=0);for(A=wr-1;U>V;){if(j[--U]=0;){for(F=0,fe=Ct[H]%Pe,_e=Ct[H]/Pe|0,G=H+(J=N);G>H;)F=((q=fe*(q=st[--J]%Pe)+(V=_e*q+(j=st[J]/Pe|0)*fe)%Pe*Pe+Te[G]+F)/ut|0)+(V/Pe|0)+_e*j,Te[G--]=q%ut;Te[G]=F}return F?++U:Te.splice(0,1),K(M,Te,U)},o.negated=function(){var M=new E(this);return M.s=-M.s||null,M},o.plus=function(M,A){var F,U=this,H=U.s;if(A=(M=new E(M,A)).s,!H||!A)return new E(NaN);if(H!=A)return M.s=-A,U.minus(M);var G=U.e/14,J=M.e/14,V=U.c,N=M.c;if(!G||!J){if(!V||!N)return new E(H/0);if(!V[0]||!N[0])return N[0]?M:new E(V[0]?U:0*H)}if(G=Go(G),J=Go(J),V=V.slice(),H=G-J){for(H>0?(J=G,F=N):(H=-H,F=V),F.reverse();H--;F.push(0));F.reverse()}for((H=V.length)-(A=N.length)<0&&(F=N,N=V,V=F,A=H),H=0;A;)H=(V[--A]=V[A]+N[A]+H)/wr|0,V[A]=wr===V[A]?0:V[A]%wr;return H&&(V=[H].concat(V),++J),K(M,V,J)},o.precision=o.sd=function(M,A){var F,U,H,G=this;if(null!=M&&M!==!!M)return xn(M,1,mi),null==A?A=a:xn(A,0,8),ee(new E(G),M,A);if(!(F=G.c))return null;if(U=14*(H=F.length-1)+1,H=F[H]){for(;H%10==0;H/=10,U--);for(H=F[0];H>=10;H/=10,U++);}return M&&G.e+1>U&&(U=G.e+1),U},o.shiftedBy=function(M){return xn(M,-GV,GV),this.times("1e"+M)},o.squareRoot=o.sqrt=function(){var M,A,F,U,H,G=this,J=G.c,V=G.s,N=G.e,q=s+4,j=new E("0.5");if(1!==V||!J||!J[0])return new E(!V||V<0&&(!J||J[0])?NaN:J?G:1/0);if(0==(V=Math.sqrt(+ie(G)))||V==1/0?(((A=xr(J)).length+N)%2==0&&(A+="0"),V=Math.sqrt(+A),N=Go((N+1)/2)-(N<0||N%2),F=new E(A=V==1/0?"5e"+N:(A=V.toExponential()).slice(0,A.indexOf("e")+1)+N)):F=new E(V+""),F.c[0])for((V=(N=F.e)+q)<3&&(V=0);;)if(F=j.times((H=F).plus(n(G,H,q,1))),xr(H.c).slice(0,V)===(A=xr(F.c)).slice(0,V)){if(F.e0&&Te>0){for(j=_e.substr(0,G=Te%V||V);G0&&(j+=q+_e.slice(G)),fe&&(j="-"+j)}U=Q?j+(F.decimalSeparator||"")+((N=+F.fractionGroupSize)?Q.replace(new RegExp("\\d{"+N+"}\\B","g"),"$&"+(F.fractionGroupSeparator||"")):Q):j}return(F.prefix||"")+U+(F.suffix||"")},o.toFraction=function(M){var A,F,U,H,G,J,V,N,q,j,Q,fe,_e=this,Te=_e.c;if(null!=M&&(!(V=new E(M)).isInteger()&&(V.c||1!==V.s)||V.lt(r)))throw Error(bo+"Argument "+(V.isInteger()?"out of range: ":"not an integer: ")+ie(V));if(!Te)return new E(_e);for(A=new E(r),q=F=new E(r),U=N=new E(r),fe=xr(Te),G=A.e=fe.length-_e.e-1,A.c[0]=_k[(J=G%14)<0?14+J:J],M=!M||V.comparedTo(A)>0?G>0?A:q:V,J=p,p=1/0,V=new E(fe),N.c[0]=0;j=n(V,A,0,1),1!=(H=F.plus(j.times(U))).comparedTo(M);)F=U,U=H,q=N.plus(j.times(H=q)),N=H,A=V.minus(j.times(H=A)),V=H;return H=n(M.minus(F),U,0,1),N=N.plus(H.times(q)),F=F.plus(H.times(U)),N.s=q.s=_e.s,Q=n(q,U,G*=2,a).minus(_e).abs().comparedTo(n(N,F,G,a).minus(_e).abs())<1?[q,U]:[N,F],p=J,Q},o.toNumber=function(){return+ie(this)},o.toObject=function(){var M=this;return{c:M.c?M.c.slice():null,e:M.e,s:M.s}},o.toPrecision=function(M,A){return null!=M&&xn(M,1,mi),R(this,M,A,2)},o.toString=function(M){var A,F=this,U=F.s,H=F.e;return null===H?U?(A="Infinity",U<0&&(A="-"+A)):A="NaN":(null==M?A=H<=l||H>=c?rv(xr(F.c),H):Da(xr(F.c),H,"0"):(xn(M,2,T.length,"Base"),A=e(Da(xr(F.c),H,"0"),10,M,U,!0)),U<0&&F.c[0]&&(A="-"+A)),A},o.valueOf=o.toJSON=function(){return ie(this)},o._isBigNumber=!0,null!=t&&E.set(t),E}(),nme=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,gk=Math.ceil,Cr=Math.floor,bo="[BigNumber Error] ",wr=1e14,GV=9007199254740991,_k=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],ka=1e7,mi=1e9;function Go(t){var n=0|t;return t>0||t===n?n:n-1}function xr(t){for(var n,e,i=1,o=t.length,r=t[0]+"";ic^e?1:-1;for(a=(l=o.length)<(c=r.length)?l:c,s=0;sr[s]^e?1:-1;return l==c?0:l>c^e?1:-1}function xn(t,n,e,i){if(te||t!==Cr(t))throw Error(bo+(i||"Argument")+("number"==typeof t?te?" out of range: ":" not an integer: ":" not a primitive number: ")+String(t))}function ov(t){var n=t.c.length-1;return Go(t.e/14)==n&&t.c[n]%2!=0}function rv(t,n){return(t.length>1?t.charAt(0)+"."+t.slice(1):t)+(n<0?"e":"e+")+n}function Da(t,n,e){var i,o;if(n<0){for(o=e+".";++n;o+=e);t=o+t}else if(++n>(i=t.length)){for(o=e,n-=i;--n;o+=e);t+=o}else n{class t{constructor(e,i){this.apiService=e,this.storageService=i}getNodes(){let e=[];return this.apiService.get("visors-summary").pipe(ye(i=>{i&&i.forEach(l=>{const c=new bk;c.online=l.online,c.localPk=l.overview.local_pk,c.version=l.overview.build_info.version,c.configVersion=l.config_version,c.os=l.overview.build_info.os,c.arch=l.overview.build_info.arch,c.autoconnectTransports=l.public_autoconnect,c.isPublic=l.is_public,c.buildTag=l.build_tag?l.build_tag:"",c.rewardsAddress=l.reward_address,c.ip=l.overview&&l.overview.local_ip&&l.overview.local_ip.trim()?l.overview.local_ip:null,c.publicIp=l.overview&&l.overview.public_ip&&l.overview.public_ip.trim()?l.overview.public_ip:null,c.isSymmeticNat=l.overview.is_symmetic_nat,l.overview.country_code&&(c.countryCode=l.overview.country_code),l.overview.region_name&&(c.regionName=l.overview.region_name),l.overview.city_name&&(c.cityName=l.overview.city_name),l.overview.latitude&&(c.latitude=l.overview.latitude),l.overview.longitude&&(c.longitude=l.overview.longitude);const u=this.storageService.getLabelInfo(c.localPk);if(c.label=u&&u.label?u.label:this.storageService.getDefaultLabel(c),!c.online)return c.dmsgServerPk="",c.roundTripPing="",void e.push(c);c.health={servicesHealth:l.health.services_health,uptimeTrackerHealth:l.health.uptime_tracker_health,autoconnectHealth:l.health.autoconnect_health,transportabilityHealth:l.health.transportability_health},c.dmsgServerPk=l.dmsg_stats.server_public_key,c.connectedDmsgServers=l.connected_dmsg_servers||[],c.roundTripPing=this.nsToMs(l.dmsg_stats.round_trip),l.dmsg_servers&&Array.isArray(l.dmsg_servers)&&(c.dmsgServers=l.dmsg_servers.map(p=>({pk:p.pk,latency:p.latency||0}))),c.transports=[],l.overview.transports&&l.overview.transports.forEach(p=>{c.transports.push({id:p.id,localPk:p.local_pk,remotePk:p.remote_pk,type:p.type,recv:p.log?p.log.recv:0,sent:p.log?p.log.sent:0})}),c.apps=[],l.overview.apps&&l.overview.apps.forEach(p=>{c.apps.push({name:p.name,autostart:p.auto_start,port:p.port,status:p.status,detailedStatus:p.detailed_status,args:p.args})}),c.isHypervisor=l.is_hypervisor,e.push(c)});const o=new Map,r=[],s=[];e.forEach(l=>{o.set(l.localPk,l),l.online&&(r.push(l.localPk),s.push(l.ip))}),this.storageService.includeVisibleLocalNodes(r,s);const a=[];return this.storageService.getSavedLocalNodes().forEach(l=>{if(!o.has(l.publicKey)&&!l.hidden){const c=new bk;c.localPk=l.publicKey;const u=this.storageService.getLabelInfo(l.publicKey);c.label=u&&u.label?u.label:this.storageService.getDefaultLabel(c),c.online=!1,c.dmsgServerPk="",c.roundTripPing="",a.push(c)}o.has(l.publicKey)&&!o.get(l.publicKey).online&&l.hidden&&o.delete(l.publicKey)}),e=[],o.forEach(l=>e.push(l)),e=e.concat(a),e}))}nsToMs(e){let i=new sv(e).dividedBy(1e6);return i=i.isLessThan(10)?i.decimalPlaces(2):i.decimalPlaces(0),i.toString(10)}getNode(e){return this.apiService.get(`visors/${e}/summary`).pipe(ye(i=>{const o=new bk;o.localPk=i.overview.local_pk,o.version=i.overview.build_info.version,o.configVersion=i.config_version,o.os=i.overview.build_info.os,o.arch=i.overview.build_info.arch,o.secondsOnline=Math.floor(Number.parseFloat(i.uptime)),o.minHops=i.min_hops,o.buildTag=i.build_tag,o.skybianBuildVersion=i.skybian_build_version,o.connectedDmsgServers=i.connected_dmsg_servers||[],o.isSymmeticNat=i.overview.is_symmetic_nat,o.publicIp=i.overview.public_ip,o.autoconnectTransports=i.public_autoconnect,o.isPublic=i.is_public,o.rewardsAddress=i.reward_address,i.overview.country_code&&(o.countryCode=i.overview.country_code),i.overview.region_name&&(o.regionName=i.overview.region_name),i.overview.city_name&&(o.cityName=i.overview.city_name),i.overview.latitude&&(o.latitude=i.overview.latitude),i.overview.longitude&&(o.longitude=i.overview.longitude),o.ip=i.overview.local_ip&&i.overview.local_ip.trim()?i.overview.local_ip:null;const r=this.storageService.getLabelInfo(o.localPk);o.label=r&&r.label?r.label:this.storageService.getDefaultLabel(o),o.health={servicesHealth:i.health.services_health,uptimeTrackerHealth:i.health.uptime_tracker_health,autoconnectHealth:i.health.autoconnect_health,transportabilityHealth:i.health.transportability_health},o.transports=[],i.overview.transports&&i.overview.transports.forEach(a=>{o.transports.push({id:a.id,localPk:a.local_pk,remotePk:a.remote_pk,type:a.type,recv:a.log.recv,sent:a.log.sent})}),o.persistentTransports=[],i.persistent_transports&&i.persistent_transports.forEach(a=>{o.persistentTransports.push({pk:a.pk,type:a.type})}),o.routes=[],i.routes&&i.routes.forEach(a=>{o.routes.push({key:a.key,rule:a.rule}),a.rule_summary&&(o.routes[o.routes.length-1].ruleSummary={keepAlive:a.rule_summary.keep_alive,ruleType:a.rule_summary.rule_type,keyRouteId:a.rule_summary.key_route_id},a.rule_summary.app_fields&&a.rule_summary.app_fields.route_descriptor&&(o.routes[o.routes.length-1].appFields={routeDescriptor:{dstPk:a.rule_summary.app_fields.route_descriptor.dst_pk,dstPort:a.rule_summary.app_fields.route_descriptor.dst_port,srcPk:a.rule_summary.app_fields.route_descriptor.src_pk,srcPort:a.rule_summary.app_fields.route_descriptor.src_port}}),a.rule_summary.forward_fields&&(o.routes[o.routes.length-1].forwardFields={nextRid:a.rule_summary.forward_fields.next_rid,nextTid:a.rule_summary.forward_fields.next_tid},a.rule_summary.forward_fields.route_descriptor&&(o.routes[o.routes.length-1].forwardFields.routeDescriptor={dstPk:a.rule_summary.forward_fields.route_descriptor.dst_pk,dstPort:a.rule_summary.forward_fields.route_descriptor.dst_port,srcPk:a.rule_summary.forward_fields.route_descriptor.src_pk,srcPort:a.rule_summary.forward_fields.route_descriptor.src_port})),a.rule_summary.intermediary_forward_fields&&(o.routes[o.routes.length-1].intermediaryForwardFields={nextRid:a.rule_summary.intermediary_forward_fields.next_rid,nextTid:a.rule_summary.intermediary_forward_fields.next_tid}))}),o.apps=[],i.overview.apps&&i.overview.apps.forEach(a=>{o.apps.push({name:a.name,status:a.status,port:a.port,autostart:a.auto_start,detailedStatus:a.detailed_status,args:a.args})});let s=!1;return i.dmsg_stats&&(o.dmsgServerPk=i.dmsg_stats.server_public_key,o.roundTripPing=this.nsToMs(i.dmsg_stats.round_trip),s=!0),s||(o.dmsgServerPk="-",o.roundTripPing="-1"),i.dmsg_servers&&Array.isArray(i.dmsg_servers)&&(o.dmsgServers=i.dmsg_servers.map(a=>({pk:a.pk,latency:a.latency||0}))),o.isHypervisor=i.is_hypervisor,o}))}setRewardsAddress(e,i){return this.apiService.put(`visors/${e}/reward`,{reward_address:i})}getRewardsAddress(e){return this.apiService.get(`visors/${e}/reward`)}getRuntimeLogs(e){return this.apiService.get(`visors/${e}/runtime-logs`)}deleteRewardsAddress(e){return this.apiService.delete(`visors/${e}/reward`)}getProxies(e){return this.apiService.get(`visors/${e}/proxies`)}setProxyEnabled(e,i,o){return this.apiService.post(`visors/${e}/proxies/set`,{kind:i,enable:o})}setProxyUpstream(e,i,o){return this.apiService.post(`visors/${e}/proxies/upstream`,{kind:i,addr:o})}getSkynetPorts(e){return this.apiService.get(`visors/${e}/skynet-ports`)}registerSkynetPort(e,i){return this.apiService.post(`visors/${e}/skynet-ports/register`,{port:i})}deregisterSkynetPort(e,i){return this.apiService.post(`visors/${e}/skynet-ports/deregister`,{port:i})}getForwardedPorts(e){return this.apiService.get(`visors/${e}/forwarded-ports`)}registerForwardedPort(e,i){return this.apiService.post(`visors/${e}/forwarded-ports/register`,i)}updateForwardedPort(e,i){return this.apiService.post(`visors/${e}/forwarded-ports/update`,i)}getSkynetForwards(e){return this.apiService.get(`visors/${e}/skynet-forwards`)}skynetConnect(e,i,o,r,s){return this.apiService.post(`visors/${e}/skynet-forwards/connect`,{network:i,remote_pk:o,remote_port:r,local_port:s})}skynetDisconnect(e,i){return this.apiService.post(`visors/${e}/skynet-forwards/disconnect`,{id:i})}shutdown(e){return this.apiService.post(`visors/${e}/shutdown`)}checkIfUpdating(e){return this.apiService.get(`visors/${e}/update/ws/running`)}checkUpdate(e){let i="stable";return i=localStorage.getItem(ic.Channel)||i,this.apiService.get(`visors/${e}/update/available/${i}`)}update(e){const i={channel:"stable"};if(localStorage.getItem(ic.UseCustomSettings)){const r=localStorage.getItem(ic.Channel);r&&(i.channel=r);const s=localStorage.getItem(ic.Version);s&&(i.version=s);const a=localStorage.getItem(ic.ArchiveURL);a&&(i.archive_url=a);const l=localStorage.getItem(ic.ChecksumsURL);l&&(i.checksums_url=l)}return this.apiService.ws(`visors/${e}/update/ws`,i)}static{this.\u0275fac=function(i){return new(i||t)(le(br),le(zn))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();class ome{}let KV=(()=>{class t{constructor(e,i){this.storageService=e,this.nodeService=i,this.dataSubject=new _i(null),this.lastEmitedData=new ome,this.firstCallToGetDataMade=!1,this.storageService.getRefreshTimeObservable().subscribe(o=>{this.dataRefreshDelay=1e3*o,this.forceRefresh()})}startRequestingData(){return this.firstCallToGetDataMade||this.getData(0),this.dataSubject.asObservable()}stopRequestingData(){this.updateSubscription&&(this.updateSubscription.unsubscribe(),this.firstCallToGetDataMade=!1)}getData(e){this.firstCallToGetDataMade=!0,this.updateSubscription&&this.updateSubscription.unsubscribe(),this.updateSubscription=ae(1).pipe(ii(e),ni(()=>{this.lastEmitedData.updating=!0,this.dataSubject.next(this.lastEmitedData)}),ii(120),Et(()=>this.nodeService.getNodes())).subscribe(i=>{this.lastEmitedData={data:i,error:null,momentOfLastCorrectUpdate:Date.now(),updating:!1},this.dataSubject.next(this.lastEmitedData),this.getData(this.dataRefreshDelay)},i=>{i=Je(i),this.lastEmitedData={data:this.lastEmitedData.data,error:i,momentOfLastCorrectUpdate:this.lastEmitedData.momentOfLastCorrectUpdate,updating:!1},this.dataSubject.next(this.lastEmitedData),this.getData(ze.connectionRetryDelay)})}forceRefresh(){this.getData(0)}static{this.\u0275fac=function(i){return new(i||t)(le(zn),le(Sr))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();function rme(t,n){if(1&t){const e=ce();f(0,"button",3),L("click",function(){const o=z(e).$implicit;return $(C().closePopup(o))}),B(1,"img",4),f(2,"div",5),m(3),h()()}if(2&t){const e=n.$implicit;d(),v("src","assets/img/lang/"+e.iconName,ho),d(2),O(e.name)}}let YV=(()=>{class t{static openDialog(e){const i=new Lt;return i.autoFocus=!1,i.width=ze.mediumModalWidth,e.open(t,i)}constructor(e,i){this.dialogRef=e,this.languageService=i,this.languages=[]}ngOnInit(){this.subscription=this.languageService.languages.subscribe(e=>{this.languages=e})}ngOnDestroy(){this.subscription.unsubscribe()}closePopup(e=null){e&&this.languageService.changeLanguage(e.code),this.dialogRef.close()}static{this.\u0275fac=function(i){return new(i||t)(P(It),P(Nb))}}static{this.\u0275cmp=se({type:t,selectors:[["app-select-language"]],standalone:!1,decls:5,vars:4,consts:[[3,"headline","dialog"],[1,"options-container"],["mat-button","","color","accent",1,"grey-button-background"],["mat-button","","color","accent",1,"grey-button-background",3,"click"],[3,"src"],[1,"label"]],template:function(i,o){1&i&&(f(0,"app-dialog",0),b(1,"translate"),f(2,"div",1),we(3,rme,4,2,"button",2,Re),h()()),2&i&&(v("headline",y(1,2,"language.title"))("dialog",o.dialogRef),d(3),xe(o.languages))},dependencies:[Jn,Kt,Se],styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}.options-container[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:118px;height:auto!important;margin:20px;font-size:.7rem;line-height:unset;padding:0!important;color:unset}.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] .mdc-button__label{width:100%}@media(max-width:767px){.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:90px;font-size:.6rem;margin:6px}}.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:64px;height:64px;margin:10px 0}@media(max-width:767px){.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:48px;height:48px;margin:7px 0}}.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{color:#202226!important;background-color:#ffffff40;padding:4px 10px}@media(max-width:767px){.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{padding:4px 5px}}"]})}}return t})();function sme(t,n){1&t&&B(0,"img",1),2&t&&v("src","assets/img/lang/"+C().language.iconName,ho)}let ame=(()=>{class t{constructor(e,i){this.languageService=e,this.dialog=i}ngOnInit(){this.subscription=this.languageService.currentLanguage.subscribe(e=>{this.language=e})}ngOnDestroy(){this.subscription.unsubscribe()}openLanguageWindow(){YV.openDialog(this.dialog)}static{this.\u0275fac=function(i){return new(i||t)(P(Nb),P(kt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-lang-button"]],standalone:!1,decls:3,vars:4,consts:[["mat-button","",1,"lang-button","subtle-transparent-button",3,"click","matTooltip"],[1,"flag",3,"src"]],template:function(i,o){1&i&&(f(0,"button",0),b(1,"translate"),L("click",function(){return o.openLanguageWindow()}),S(2,sme,1,1,"img",1),h()),2&i&&(v("matTooltip",y(1,2,"language.title")),d(2),k(o.language?2:-1))},dependencies:[Jn,pn,Se],styles:[".lang-button[_ngcontent-%COMP%]{height:40px;background-color:#f8f9f9;border-radius:100%;padding:0;line-height:1;padding:0!important}.lang-button[_ngcontent-%COMP%] .flag[_ngcontent-%COMP%]{width:20px;height:20px}"]})}}return t})();const lme=t=>({"element-disabled":t});function cme(t,n){if(1&t){const e=ce();f(0,"div",8),L("click",function(){return z(e),$(C().configure())}),m(1),b(2,"translate"),h()}2&t&&(d(),O(y(2,1,"login.initial-config")))}let XV=(()=>{class t extends Wn{constructor(e,i,o,r,s,a){super(),this.authService=e,this.router=i,this.snackbarService=o,this.dialog=r,this.route=s,this.multipleNodeDataService=a,this.loading=!1,this.isForVpn=!1,this.vpnKey="",this.userExists=!0}ngOnInit(){return this.multipleNodeDataService.stopRequestingData(),this.routeSubscription=this.route.paramMap.subscribe(e=>{this.vpnKey=e.get("key"),this.isForVpn=-1!==window.location.href.indexOf("vpnlogin"),this.verificationSubscription=this.authService.checkLogin().subscribe(i=>{i!==xa.NotLogged&&(Kr.currentInstance.processLoginDone(),setTimeout(()=>{this.router.navigate(this.isForVpn?["vpn",this.vpnKey,"status"]:["nodes"],{replaceUrl:!0})},5))})}),this.form=new ZS({password:new eu("",Ve.required)}),this.authService.userExists().subscribe(e=>this.userExists=e,()=>this.userExists=!0),super.ngOnInit()}ngOnDestroy(){this.loginSubscription&&this.loginSubscription.unsubscribe(),this.verificationSubscription.unsubscribe(),this.routeSubscription.unsubscribe()}login(){!this.form.valid||this.loading||(this.loading=!0,this.loginSubscription=this.authService.login(this.form.get("password").value).subscribe(()=>this.onLoginSuccess(),e=>this.onLoginError(e)))}configure(){tme.openDialog(this.dialog)}onLoginSuccess(){Kr.currentInstance.processLoginDone(),setTimeout(()=>{this.router.navigate(this.isForVpn?["vpn",this.vpnKey,"status"]:["nodes"],{replaceUrl:!0})})}onLoginError(e){e=Je(e),this.loading=!1,this.snackbarService.showError(e.originalError&&401===e.originalError.status?"login.incorrect-password":e.translatableErrorMsg)}static{this.\u0275fac=function(i){return new(i||t)(P(Vf),P(vt),P(bt),P(kt),P(Ei),P(KV))}}static{this.\u0275cmp=se({type:t,selectors:[["app-login"]],standalone:!1,features:[be],decls:12,vars:9,consts:[[1,"w-100","h-100","d-flex","justify-content-center"],[1,"row","main-container"],["src","/assets/img/logo-v.png",1,"logo"],[1,"mt-5",3,"formGroup"],[1,"login-input",3,"ngClass"],["type","password","formControlName","password","autocomplete","off",3,"keydown.enter","placeholder"],[3,"click","disabled"],["class","config-link",3,"click",4,"ngIf"],[1,"config-link",3,"click"]],template:function(i,o){1&i&&(f(0,"div",0),B(1,"app-lang-button"),f(2,"div",1),B(3,"img",2),f(4,"form",3)(5,"div",4)(6,"input",5),b(7,"translate"),L("keydown.enter",function(){return o.login()}),h(),f(8,"button",6),L("click",function(){return o.login()}),f(9,"mat-icon"),m(10,"chevron_right"),h()()()(),tt(11,cme,3,3,"div",7),h()()),2&i&&(d(4),v("formGroup",o.form),d(),v("ngClass",oe(7,lme,o.loading)),d(),v("placeholder",y(7,5,"login.password")),d(2),v("disabled",!o.form.valid||o.loading),d(3),v("ngIf",!o.userExists))},dependencies:[qt,$h,Cn,rn,sn,yn,Xt,fn,lt,ame,Se],styles:['.cursor-pointer[_ngcontent-%COMP%], .config-link[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media(max-width:767px),(min-width:992px)and (max-width:1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media(max-width:767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}app-lang-button[_ngcontent-%COMP%]{position:fixed;right:10px;top:10px;z-index:10}.main-container[_ngcontent-%COMP%]{z-index:1;height:100%;flex-direction:column;align-items:center;justify-content:center}.logo[_ngcontent-%COMP%]{width:170px}.login-input[_ngcontent-%COMP%]{height:35px;width:300px;overflow:hidden;border-radius:10px;box-shadow:0 3px 8px #0000001a,0 6px 20px #0000001a;display:flex}.login-input[_ngcontent-%COMP%] input[type=password][_ngcontent-%COMP%]{background:#fff;width:calc(100% - 35px);height:100%;font-size:.875rem;border:none;padding-left:10px;padding-right:10px}.login-input[_ngcontent-%COMP%] input[type=password][_ngcontent-%COMP%]:focus{outline:none}.login-input[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{background:#fff;color:#202226;width:35px;height:35px;line-height:35px;border:none;display:flex;cursor:pointer;align-items:center}.login-input[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:disabled{color:#777}.config-link[_ngcontent-%COMP%]{color:#f8f9f9;font-size:.7rem;margin-top:20px}']})}}return t})();const dme=["firstInput"];let vk=(()=>{class t{static openDialog(e,i){const o=new Lt;return o.data=i,o.autoFocus=!1,o.width=ze.smallModalWidth,e.open(t,o)}constructor(e,i,o,r,s){this.dialogRef=e,this.data=i,this.formBuilder=o,this.storageService=r,this.snackbarService=s}ngOnInit(){this.form=this.formBuilder.group({label:[this.data.label]})}ngAfterViewInit(){setTimeout(()=>this.firstInput.nativeElement.focus())}save(){const e=this.form.get("label").value.trim();e!==this.data.label?(this.storageService.saveLabel(this.data.id,e,this.data.identifiedElementType),e?this.snackbarService.showDone("edit-label.done"):this.snackbarService.showWarning("edit-label.label-removed-warning"),this.dialogRef.close(!0)):this.dialogRef.close()}static{this.\u0275fac=function(i){return new(i||t)(P(It),P(hn),P(pi),P(zn),P(bt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-edit-label"]],viewQuery:function(i,o){if(1&i&&rt(dme,5),2&i){let r;ue(r=he())&&(o.firstInput=r.first)}},standalone:!1,decls:13,vars:11,consts:[["firstInput",""],[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","label","maxlength","66","matInput",""],["color","primary",1,"float-right",3,"action"]],template:function(i,o){1&i&&(f(0,"app-dialog",1),b(1,"translate"),f(2,"form",2)(3,"mat-form-field")(4,"div",3)(5,"label",4),m(6),b(7,"translate"),h(),B(8,"input",5,0),h()()(),f(10,"app-button",6),L("action",function(){return o.save()}),m(11),b(12,"translate"),h()()),2&i&&(v("headline",y(1,5,"labeled-element.edit-label"))("dialog",o.dialogRef),d(2),v("formGroup",o.form),d(4),O(y(7,7,"edit-label.label")),d(5),O(y(12,9,"common.save")))},dependencies:[Cn,rn,sn,yn,ji,Xt,fn,wn,ei,On,Kt,Se],encapsulation:2})}}return t})();const ume=["cancelButton"],hme=["confirmButton"];function fme(t,n){if(1&t&&(f(0,"div"),m(1),b(2,"translate"),h()),2&t){const e=n.$implicit;d(),I(" - ",y(2,1,e)," ")}}function pme(t,n){if(1&t&&(f(0,"div",4),we(1,fme,3,3,"div",null,Re),h()),2&t){const e=C();d(),xe(e.state!==e.confirmationStates.Done?e.data.list:e.doneList)}}function mme(t,n){if(1&t&&(f(0,"div",3),m(1),b(2,"translate"),h()),2&t){const e=C();d(),I(" ",y(2,1,e.data.lowerText)," ")}}function gme(t,n){if(1&t){const e=ce();f(0,"app-button",8,1),L("action",function(){return z(e),$(C().closeModal())}),m(2),b(3,"translate"),h()}if(2&t){const e=C();d(2),I(" ",y(3,1,e.data.cancelButtonText)," ")}}var ou=function(t){return t.Asking="Asking",t.Processing="Processing",t.Done="Done",t}(ou||{});let _me=(()=>{class t{constructor(e,i){this.dialogRef=e,this.data=i,this.disableDismiss=!1,this.state=ou.Asking,this.confirmationStates=ou,this.operationAccepted=new ve,this.disableDismiss=!!i.disableDismiss,this.dialogRef.disableClose=this.disableDismiss}ngAfterViewInit(){this.data.cancelButtonText?setTimeout(()=>this.cancelButton.focus()):setTimeout(()=>this.confirmButton.focus())}ngOnDestroy(){this.operationAccepted.complete()}closeModal(){this.dialogRef.close()}sendOperationAcceptedEvent(){this.operationAccepted.emit()}showAsking(e){e&&(this.data=e),this.state=ou.Asking,this.confirmButton.reset(),this.disableDismiss=!1,this.dialogRef.disableClose=this.disableDismiss,this.cancelButton&&this.cancelButton.showEnabled()}showProcessing(){this.state=ou.Processing,this.disableDismiss=!0,this.confirmButton.showLoading(),this.cancelButton&&this.cancelButton.showDisabled()}showDone(e,i,o=null){this.doneTitle=e||this.data.headerText,this.doneText=i,this.doneList=o,this.confirmButton.reset(),setTimeout(()=>this.confirmButton.focus()),this.state=ou.Done,this.dialogRef.disableClose=!1,this.disableDismiss=!1}static{this.\u0275fac=function(i){return new(i||t)(P(It),P(hn))}}static{this.\u0275cmp=se({type:t,selectors:[["app-confirmation"]],viewQuery:function(i,o){if(1&i&&rt(ume,5)(hme,5),2&i){let r;ue(r=he())&&(o.cancelButton=r.first),ue(r=he())&&(o.confirmButton=r.first)}},outputs:{operationAccepted:"operationAccepted"},standalone:!1,decls:13,vars:14,consts:[["confirmButton",""],["cancelButton",""],[3,"headline","dialog","disableDismiss"],[1,"text-container"],[1,"list-container"],[1,"buttons"],["color","accent"],["color","primary",3,"action"],["color","accent",3,"action"]],template:function(i,o){1&i&&(f(0,"app-dialog",2),b(1,"translate"),f(2,"div",3),m(3),b(4,"translate"),h(),S(5,pme,3,0,"div",4),S(6,mme,3,3,"div",3),f(7,"div",5),S(8,gme,4,3,"app-button",6),f(9,"app-button",7,0),L("action",function(){return o.state===o.confirmationStates.Asking?o.sendOperationAcceptedEvent():o.closeModal()}),m(11),b(12,"translate"),h()()()),2&i&&(v("headline",y(1,8,o.state!==o.confirmationStates.Done?o.data.headerText:o.doneTitle))("dialog",o.dialogRef)("disableDismiss",o.disableDismiss),d(3),I(" ",y(4,10,o.state!==o.confirmationStates.Done?o.data.text:o.doneText)," "),d(2),k(o.data.list&&o.state!==o.confirmationStates.Done||o.doneList&&o.state===o.confirmationStates.Done?5:-1),d(),k(o.data.lowerText&&o.state!==o.confirmationStates.Done?6:-1),d(2),k(o.data.cancelButtonText&&o.state!==o.confirmationStates.Done?8:-1),d(3),I(" ",y(12,12,o.state!==o.confirmationStates.Done?o.data.confirmButtonText:"confirmation.close")," "))},dependencies:[On,Kt,Se],styles:[".text-container[_ngcontent-%COMP%]{word-break:break-word}.list-container[_ngcontent-%COMP%]{font-size:14px;margin:10px;color:#215f9e;word-break:break-word}.buttons[_ngcontent-%COMP%]{margin-top:15px;text-align:right}.buttons[_ngcontent-%COMP%] app-button[_ngcontent-%COMP%]{margin-left:5px}"]})}}return t})();class Ye{static createConfirmationDialog(n,e){const i={text:e,headerText:"confirmation.header-text",confirmButtonText:"confirmation.confirm-button",cancelButtonText:"confirmation.cancel-button",disableDismiss:!1},o=new Lt;return o.data=i,o.autoFocus=!1,o.width=ze.smallModalWidth,n.open(_me,o)}static checkIfTagIsUpdatable(n){return!(null==n||n.toUpperCase()==="Windows".toUpperCase()||n.toUpperCase()==="Win".toUpperCase()||n.toUpperCase()==="Mac".toUpperCase()||n.toUpperCase()==="Macos".toUpperCase()||n.toUpperCase()==="Mac OS".toUpperCase()||n.toUpperCase()==="Darwin".toUpperCase())}static checkIfTagCanOpenterminal(n){return!(null==n||n.toUpperCase()==="Windows".toUpperCase()||n.toUpperCase()==="Win".toUpperCase())}static checkIfIpValidOrEmpty(n){if(!n)return!0;const e=n.split(".");if(4!==e.length)return!1;for(const i of e){const o=Number.parseInt(i,10);if(isNaN(o)||o+""!==i||o<0||o>255)return!1}return!0}}function bme(t,n){if(1&t&&(f(0,"mat-icon",4),m(1),h()),2&t){const e=C().$implicit;v("inline",!0),d(),O(e.icon)}}function vme(t,n){if(1&t){const e=ce();f(0,"div",1)(1,"button",2),L("click",function(){const o=z(e).$index;return $(C().closePopup(o+1))}),f(2,"div",3),S(3,bme,2,2,"mat-icon",4),f(4,"span"),m(5),b(6,"translate"),h()()()()}if(2&t){const e=n.$implicit;d(3),k(e.icon?3:-1),d(2),O(y(6,2,e.label))}}let oo=(()=>{class t{static openDialog(e,i,o){const r=new Lt;return r.data={options:i,title:o},r.autoFocus=!1,r.width=ze.smallModalWidth,e.open(t,r)}constructor(e,i){this.data=e,this.dialogRef=i}closePopup(e){this.dialogRef.close(e)}static{this.\u0275fac=function(i){return new(i||t)(P(hn),P(It))}}static{this.\u0275cmp=se({type:t,selectors:[["app-select-option"]],standalone:!1,decls:4,vars:5,consts:[[3,"headline","dialog","includeVerticalMargins"],[1,"options-list-button-container"],["mat-button","",1,"grey-button-background",3,"click"],[1,"internal-container"],[1,"icon",3,"inline"]],template:function(i,o){1&i&&(f(0,"app-dialog",0),b(1,"translate"),we(2,vme,7,4,"div",1,Re),h()),2&i&&(v("headline",y(1,3,o.data.title))("dialog",o.dialogRef)("includeVerticalMargins",!1),d(2),xe(o.data.options))},dependencies:[Jn,lt,Kt,Se],styles:[".icon[_ngcontent-%COMP%]{font-size:14px;width:14px;line-height:1}.grey-button-background[_ngcontent-%COMP%]{justify-content:left!important;min-height:45px}"]})}}return t})();var mn=function(t){return t.TextInput="TextInput",t.Select="Select",t}(mn||{});class Pt{constructor(n,e,i,o){this.properties=n,this.label=e,this.sortingMode=i,this.labelProperties=o}get id(){return this.properties.join("")}}var ct=function(t){return t.Text="Text",t.Number="Number",t.NumberReversed="NumberReversed",t.Boolean="Boolean",t}(ct||{});class ru{get sortingArrow(){return this.sortReverse?"keyboard_arrow_up":"keyboard_arrow_down"}get currentSortingColumn(){return this.sortBy}get sortingInReverseOrder(){return this.sortReverse}get dataSorted(){return this.dataUpdatedSubject.asObservable()}get currentlySortingByLabel(){return this.sortByLabel}constructor(n,e,i,o,r,s){this.dialog=n,this.translateService=e,this.storageService=i,this.sortReverse=!1,this.sortByLabel=!1,this.tieBreakerColumnIndex=null,this.columnStorageKeyPrefix="col_",this.orderStorageKeyPrefix="order_",this.labelStorageKeyPrefix="label_",this.dataUpdatedSubject=new pe,this.sortableColumns=o,this.id=s,this.defaultColumnIndex=r,this.sortBy=o[r];const a=this.storageService.getDataForHv(this.columnStorageKeyPrefix+s);if(a){const l=o.find(c=>c.id===a);l&&(this.sortBy=l)}this.sortReverse="true"===this.storageService.getDataForHv(this.orderStorageKeyPrefix+s),this.sortByLabel="true"===this.storageService.getDataForHv(this.labelStorageKeyPrefix+s)}dispose(){this.dataUpdatedSubject.complete()}setTieBreakerColumnIndex(n){this.tieBreakerColumnIndex=n}setData(n){this.data=n,this.sortData()}changeSortingOrder(n){if(this.sortBy===n||n.labelProperties)if(n.labelProperties){const e=[{label:this.translateService.instant("tables.sort-by-value")},{label:this.translateService.instant("tables.sort-by-value")+" "+this.translateService.instant("tables.inverted-order")},{label:this.translateService.instant("tables.sort-by-label")},{label:this.translateService.instant("tables.sort-by-label")+" "+this.translateService.instant("tables.inverted-order")}];oo.openDialog(this.dialog,e,"tables.title").afterClosed().subscribe(i=>{i&&this.changeSortingParams(n,i>2,i%2==0)})}else this.sortReverse=!this.sortReverse,this.storageService.setDataForHv(this.orderStorageKeyPrefix+this.id,String(this.sortReverse)),this.sortData();else this.changeSortingParams(n,!1,!1)}changeSortingParams(n,e,i){this.sortBy=n,this.sortByLabel=e,this.sortReverse=i,this.storageService.setDataForHv(this.columnStorageKeyPrefix+this.id,n.id),this.storageService.setDataForHv(this.orderStorageKeyPrefix+this.id,String(this.sortReverse)),this.storageService.setDataForHv(this.labelStorageKeyPrefix+this.id,String(this.sortByLabel)),this.sortData()}openSortingOrderModal(){const n=[],e=[];this.sortableColumns.forEach(i=>{const o=this.translateService.instant(i.label);n.push({label:o}),e.push({sortBy:i,sortReverse:!1,sortByLabel:!1}),n.push({label:o+" "+this.translateService.instant("tables.inverted-order")}),e.push({sortBy:i,sortReverse:!0,sortByLabel:!1}),i.labelProperties&&(n.push({label:o+" "+this.translateService.instant("tables.label")}),e.push({sortBy:i,sortReverse:!1,sortByLabel:!0}),n.push({label:o+" "+this.translateService.instant("tables.label")+" "+this.translateService.instant("tables.inverted-order")}),e.push({sortBy:i,sortReverse:!0,sortByLabel:!0}))}),oo.openDialog(this.dialog,n,"tables.title").afterClosed().subscribe(i=>{i&&this.changeSortingParams(e[i-1].sortBy,e[i-1].sortByLabel,e[i-1].sortReverse)})}sortData(){this.data&&(this.data.sort((n,e)=>{let i=this.getSortResponse(this.sortBy,n,e,!0);return 0===i&&null!==this.tieBreakerColumnIndex&&this.sortableColumns[this.tieBreakerColumnIndex]!==this.sortBy&&(i=this.getSortResponse(this.sortableColumns[this.tieBreakerColumnIndex],n,e,!1)),0===i&&this.sortableColumns[this.defaultColumnIndex]!==this.sortBy&&(i=this.getSortResponse(this.sortableColumns[this.defaultColumnIndex],n,e,!1)),i}),this.dataUpdatedSubject.next())}getSortResponse(n,e,i,o){let s=e,a=i;(this.sortByLabel&&o&&n.labelProperties?n.labelProperties:n.properties).forEach(u=>{s=s[u],a=a[u]});const l=this.sortByLabel&&o?ct.Text:n.sortingMode;let c=0;return l===ct.Text?c=this.sortReverse?a.localeCompare(s):s.localeCompare(a):l===ct.NumberReversed?c=this.sortReverse?s-a:a-s:l===ct.Number?c=this.sortReverse?a-s:s-a:l===ct.Boolean&&(s&&!a?c=-1:!s&&a&&(c=1),c*=this.sortReverse?-1:1),c}}let wme=(()=>{class t{_animationsDisabled=fi();state="unchecked";disabled=!1;appearance="full";constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["mat-pseudo-checkbox"]],hostAttrs:[1,"mat-pseudo-checkbox"],hostVars:12,hostBindings:function(i,o){2&i&&Ke("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",o._animationsDisabled)},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-minimal.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-pseudo-checkbox-minimal-selected-checkmark-color, var(--mat-sys-primary))}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full{border-color:var(--mat-pseudo-checkbox-full-unselected-icon-color, var(--mat-sys-on-surface-variant));border-width:2px;border-style:solid}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-disabled{border-color:var(--mat-pseudo-checkbox-full-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate{background-color:var(--mat-pseudo-checkbox-full-selected-icon-color, var(--mat-sys-primary));border-color:rgba(0,0,0,0)}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-pseudo-checkbox-full-selected-checkmark-color, var(--mat-sys-on-primary))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background-color:var(--mat-pseudo-checkbox-full-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-pseudo-checkbox-full-disabled-selected-checkmark-color, var(--mat-sys-surface))}.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}\n'],encapsulation:2,changeDetection:0})}return t})();const xme=["text"],Sme=[[["mat-icon"]],"*"],kme=["mat-icon","*"];function Dme(t,n){if(1&t&&B(0,"mat-pseudo-checkbox",1),2&t){const e=C();v("disabled",e.disabled)("state",e.selected?"checked":"unchecked")}}function Tme(t,n){1&t&&B(0,"mat-pseudo-checkbox",3),2&t&&v("disabled",C().disabled)}function Mme(t,n){if(1&t&&(f(0,"span",4),m(1),h()),2&t){const e=C();d(),I("(",e.group.label,")")}}const ZV=new Z("MAT_OPTION_PARENT_COMPONENT"),QV=new Z("MatOptgroup");class Eme{source;isUserInput;constructor(n,e=!1){this.source=n,this.isUserInput=e}}let Is=(()=>{class t{_element=D(Ae);_changeDetectorRef=D(Pn);_parent=D(ZV,{optional:!0});group=D(QV,{optional:!0});_signalDisableRipple=!1;_selected=!1;_active=!1;_mostRecentViewValue="";get multiple(){return this._parent&&this._parent.multiple}get selected(){return this._selected}value;id=D(oi).getId("mat-option-");get disabled(){return this.group&&this.group.disabled||this._disabled()}set disabled(e){this._disabled.set(e)}_disabled=yt(!1);get disableRipple(){return this._signalDisableRipple?this._parent.disableRipple():!!this._parent?.disableRipple}get hideSingleSelectionIndicator(){return!(!this._parent||!this._parent.hideSingleSelectionIndicator)}onSelectionChange=new ve;_text;_stateChanges=new pe;constructor(){const e=D(pr);e.load(Af),e.load(uS),this._signalDisableRipple=!!this._parent&&Sl(this._parent.disableRipple)}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)&&!mr(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 Eme(this,e))}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["mat-option"]],viewQuery:function(i,o){if(1&i&&rt(xme,7),2&i){let r;ue(r=he())&&(o._text=r.first)}},hostAttrs:["role","option",1,"mat-mdc-option","mdc-list-item"],hostVars:11,hostBindings:function(i,o){1&i&&L("click",function(){return o._selectViaInteraction()})("keydown",function(s){return o._handleKeydown(s)}),2&i&&(Lr("id",o.id),Ze("aria-selected",o.selected)("aria-disabled",o.disabled.toString()),Ke("mdc-list-item--selected",o.selected)("mat-mdc-option-multiple",o.multiple)("mat-mdc-option-active",o.active)("mdc-list-item--disabled",o.disabled))},inputs:{value:"value",id:"id",disabled:[2,"disabled","disabled",Ie]},outputs:{onSelectionChange:"onSelectionChange"},exportAs:["matOption"],ngContentSelectors:kme,decls:8,vars:5,consts:[["text",""],["aria-hidden","true",1,"mat-mdc-option-pseudo-checkbox",3,"disabled","state"],[1,"mdc-list-item__primary-text"],["state","checked","aria-hidden","true","appearance","minimal",1,"mat-mdc-option-pseudo-checkbox",3,"disabled"],[1,"cdk-visually-hidden"],["aria-hidden","true","mat-ripple","",1,"mat-mdc-option-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled"]],template:function(i,o){1&i&&(Si(Sme),S(0,Dme,1,2,"mat-pseudo-checkbox",1),At(1),f(2,"span",2,0),At(4,1),h(),S(5,Tme,1,1,"mat-pseudo-checkbox",3),S(6,Mme,2,1,"span",4),B(7,"div",5)),2&i&&(k(o.multiple?0:-1),d(5),k(o.multiple||!o.selected||o.hideSingleSelectionIndicator?-1:5),d(),k(o.group&&o.group._inert?6:-1),d(),v("matRippleTrigger",o._getHostElement())("matRippleDisabled",o.disabled||o.disableRipple))},dependencies:[wme,Of],styles:['.mat-mdc-option{-webkit-user-select:none;user-select:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;min-height:48px;padding:0 16px;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);color:var(--mat-option-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-option-label-text-font, var(--mat-sys-label-large-font));line-height:var(--mat-option-label-text-line-height, var(--mat-sys-label-large-line-height));font-size:var(--mat-option-label-text-size, var(--mat-sys-body-large-size));letter-spacing:var(--mat-option-label-text-tracking, var(--mat-sys-label-large-tracking));font-weight:var(--mat-option-label-text-weight, var(--mat-sys-body-large-weight))}.mat-mdc-option:hover:not(.mdc-list-item--disabled){background-color:var(--mat-option-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}.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, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent));outline:0}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled):not(.mat-mdc-option-active,.mat-mdc-option-multiple,:focus,:hover){background-color:var(--mat-option-selected-state-layer-color, var(--mat-sys-secondary-container))}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled):not(.mat-mdc-option-active,.mat-mdc-option-multiple,:focus,:hover) .mdc-list-item__primary-text{color:var(--mat-option-selected-state-label-text-color, var(--mat-sys-on-secondary-container))}.mat-mdc-option .mat-pseudo-checkbox{--mat-pseudo-checkbox-minimal-selected-checkmark-color: var(--mat-option-selected-state-label-text-color, var(--mat-sys-on-secondary-container))}.mat-mdc-option.mdc-list-item{align-items:center;background:rgba(0,0,0,0)}.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}@media(forced-colors: active){.mat-mdc-option.mdc-list-item--selected:not(:has(.mat-mdc-option-pseudo-checkbox))::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}[dir=rtl] .mat-mdc-option.mdc-list-item--selected:not(:has(.mat-mdc-option-pseudo-checkbox))::after{right:auto;left:16px}}.mat-mdc-option-multiple{--mat-list-list-item-selected-container-color: var(--mat-list-list-item-container-color, transparent)}.mat-mdc-option-active .mat-focus-indicator::before{content:""}\n'],encapsulation:2,changeDetection:0})}return t})();class JV{_items;_activeItemIndex=yt(-1);_activeItem=yt(null);_wrap=!1;_typeaheadSubscription=mt.EMPTY;_itemChangesSubscription;_vertical=!0;_horizontal=null;_allowedModifierKeys=[];_homeAndEnd=!1;_pageUpAndDown={enabled:!1,delta:10};_effectRef;_typeahead;_skipPredicateFn=n=>n.disabled;constructor(n,e){this._items=n,n instanceof Zc?this._itemChangesSubscription=n.changes.subscribe(i=>this._itemsChanged(i.toArray())):Sl(n)&&(this._effectRef=nm(()=>this._itemsChanged(n()),{injector:e}))}tabOut=new pe;change=new pe;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){this._typeaheadSubscription.unsubscribe();const e=this._getItemsArray();return this._typeahead=new FV(e,{debounceInterval:"number"==typeof n?n:void 0,skipPredicate:i=>this._skipPredicateFn(i)}),this._typeaheadSubscription=this._typeahead.selectedItem.subscribe(i=>{this.setActiveItem(i)}),this}cancelTypeahead(){return this._typeahead?.reset(),this}withHomeAndEnd(n=!0){return this._homeAndEnd=n,this}withPageUpDown(n=!0,e=10){return this._pageUpAndDown={enabled:n,delta:e},this}setActiveItem(n){const e=this._activeItem();this.updateActiveItem(n),this._activeItem()!==e&&this.change.next(this._activeItemIndex())}onKeydown(n){const e=n.keyCode,o=["altKey","ctrlKey","metaKey","shiftKey"].every(r=>!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,s=this._getItemsArray().length;this._setActiveItemByIndex(r-1&&i!==this._activeItemIndex()&&(this._activeItemIndex.set(i),this._typeahead?.setCurrentSelectedItemIndex(i))}}}class Ome extends JV{setActiveItem(n){this.activeItem&&this.activeItem.setInactiveStyles(),super.setActiveItem(n),this.activeItem&&this.activeItem.setActiveStyles()}}class Ame{_multiple;_emitChanges;compareWith;_selection=new Set;_deselectedToEmit=[];_selectedToEmit=[];_selected=null;get selected(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected}changed=new pe;constructor(n=!1,e,i=!0,o){this._multiple=n,this._emitChanges=i,this.compareWith=o,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.map(r=>this._getConcreteValue(r)));n.forEach(r=>this._markSelected(r)),e.filter(r=>!i.has(this._getConcreteValue(r,i))).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,e){if(this.compareWith){e=e??this._selection;for(let i of e)if(this.compareWith(n,i))return i;return n}return n}}let Rme=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({imports:[ri]})}return t})(),e5=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({imports:[DS,Rme,Is,ri]})}return t})();const Nme=["trigger"],Fme=["panel"],Lme=[[["mat-select-trigger"]],"*"],Bme=["mat-select-trigger","*"];function Vme(t,n){if(1&t&&(f(0,"span",4),m(1),h()),2&t){const e=C();d(),O(e.placeholder)}}function Hme(t,n){1&t&&At(0)}function jme(t,n){if(1&t&&(f(0,"span",11),m(1),h()),2&t){const e=C(2);d(),O(e.triggerValue)}}function Ume(t,n){if(1&t&&(f(0,"span",5),S(1,Hme,1,0)(2,jme,2,1,"span",11),h()),2&t){const e=C();d(),k(e.customTrigger?1:2)}}function zme(t,n){if(1&t){const e=ce();f(0,"div",12,1),L("keydown",function(o){return z(e),$(C()._handleKeydown(o))}),At(2,1),h()}if(2&t){const e=C();at(e.panelClass),Ke("mat-select-panel-animations-enabled",!e._animationsDisabled)("mat-primary","primary"===(null==e._parentFormField?null:e._parentFormField.color))("mat-accent","accent"===(null==e._parentFormField?null:e._parentFormField.color))("mat-warn","warn"===(null==e._parentFormField?null:e._parentFormField.color))("mat-undefined",!(null!=e._parentFormField&&e._parentFormField.color)),Ze("id",e.id+"-panel")("aria-multiselectable",e.multiple)("aria-label",e.ariaLabel||null)("aria-labelledby",e._getPanelAriaLabelledby())}}const $me=new Z("mat-select-scroll-strategy",{providedIn:"root",factory:()=>{const t=D(Be);return()=>Tf(t)}}),Wme=new Z("MAT_SELECT_CONFIG"),t5=new Z("MatSelectTrigger");class Gme{source;value;constructor(n,e){this.source=n,this.value=e}}let oc=(()=>{class t{_viewportRuler=D(jd);_changeDetectorRef=D(Pn);_elementRef=D(Ae);_dir=D(hr,{optional:!0});_idGenerator=D(oi);_renderer=D(Kn);_parentFormField=D(dk,{optional:!0});ngControl=D(Yr,{self:!0,optional:!0});_liveAnnouncer=D(dB);_defaultOptions=D(Wme,{optional:!0});_animationsDisabled=fi();_popoverLocation;_initialized=new pe;_cleanupDetach;options;optionGroups;customTrigger;_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"}];_scrollOptionIntoView(e){const i=this.options.toArray()[e];if(i){const o=this.panel.nativeElement,r=function Ime(t,n,e){if(e.length){let i=n.toArray(),o=e.toArray(),r=0;for(let s=0;se+i?Math.max(0,t-i+n):e}(s.offsetTop,s.offsetHeight,o.scrollTop,o.offsetHeight)}}_positioningSettled(){this._scrollOptionIntoView(this._keyManager.activeItemIndex||0)}_getChangeEvent(e){return new Gme(this,e)}_scrollStrategyFactory=D($me);_panelOpen=!1;_compareWith=(e,i)=>e===i;_uid=this._idGenerator.getId("mat-select-");_triggerAriaLabelledBy=null;_previousControl;_destroy=new pe;_errorStateTracker;stateChanges=new pe;disableAutomaticLabeling=!0;userAriaDescribedBy;_selectionModel;_keyManager;_preferredOverlayOrigin;_overlayWidth;_onChange=()=>{};_onTouched=()=>{};_valueId=this._idGenerator.getId("mat-select-value-");_scrollStrategy;_overlayPanelClass=this._defaultOptions?.overlayPanelClass||"";get focused(){return this._focused||this._panelOpen}_focused=!1;controlType="mat-select";trigger;panel;_overlayDir;panelClass;disabled=!1;get disableRipple(){return this._disableRipple()}set disableRipple(e){this._disableRipple.set(e)}_disableRipple=yt(!1);tabIndex=0;get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(e){this._hideSingleSelectionIndicator=e,this._syncParentProperties()}_hideSingleSelectionIndicator=this._defaultOptions?.hideSingleSelectionIndicator??!1;get placeholder(){return this._placeholder}set placeholder(e){this._placeholder=e,this.stateChanges.next()}_placeholder;get required(){return this._required??this.ngControl?.control?.hasValidator(Ve.required)??!1}set required(e){this._required=e,this.stateChanges.next()}_required;get multiple(){return this._multiple}set multiple(e){this._multiple=e}_multiple=!1;disableOptionCentering=this._defaultOptions?.disableOptionCentering??!1;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)}_value;ariaLabel="";ariaLabelledby;get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(e){this._errorStateTracker.matcher=e}typeaheadDebounceInterval;sortComparator;get id(){return this._id}set id(e){this._id=e||this._uid,this.stateChanges.next()}_id;get errorState(){return this._errorStateTracker.errorState}set errorState(e){this._errorStateTracker.errorState=e}panelWidth=this._defaultOptions&&typeof this._defaultOptions.panelWidth<"u"?this._defaultOptions.panelWidth:"auto";canSelectNullableOptions=this._defaultOptions?.canSelectNullableOptions??!1;optionSelectionChanges=ba(()=>{const e=this.options;return e?e.changes.pipe(to(e),Zn(()=>gr(...e.map(i=>i.onSelectionChange)))):this._initialized.pipe(Zn(()=>this.optionSelectionChanges))});openedChange=new ve;_openedStream=this.openedChange.pipe(vn(e=>e),ye(()=>{}));_closedStream=this.openedChange.pipe(vn(e=>!e),ye(()=>{}));selectionChange=new ve;valueChange=new ve;constructor(){const e=D(uk),i=D(Qd,{optional:!0}),o=D(Xt,{optional:!0}),r=D(new Xg("tabindex"),{optional:!0}),s=D(dS,{optional:!0});this.ngControl&&(this.ngControl.valueAccessor=this),null!=this._defaultOptions?.typeaheadDebounceInterval&&(this.typeaheadDebounceInterval=this._defaultOptions.typeaheadDebounceInterval),this._errorStateTracker=new NV(e,this.ngControl,o,i,this.stateChanges),this._scrollStrategy=this._scrollStrategyFactory(),this.tabIndex=null==r?0:parseInt(r)||0,this._popoverLocation=!1===s?.usePopover?null:"inline",this.id=this.id}ngOnInit(){this._selectionModel=new Ame(this.multiple),this.stateChanges.next(),this._viewportRuler.change().pipe(on(this._destroy)).subscribe(()=>{this.panelOpen&&(this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._changeDetectorRef.detectChanges())})}ngAfterContentInit(){this._initialized.next(),this._initialized.complete(),this._initKeyManager(),this._selectionModel.changed.pipe(on(this._destroy)).subscribe(e=>{e.added.forEach(i=>i.select()),e.removed.forEach(i=>i.deselect())}),this.options.changes.pipe(to(null),on(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),e.panelClass&&this.panelClass instanceof Set&&(this.panelClass=Array.from(this.panelClass))}ngOnDestroy(){this._cleanupDetach?.(),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._parentFormField&&(this._preferredOverlayOrigin=this._parentFormField.getConnectedOverlayOrigin()),this._cleanupDetach?.(),this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._applyModalPanelOwnership(),this._panelOpen=!0,this._overlayDir.positionChange.pipe(un(1)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this._positioningSettled()}),this._overlayDir.attachOverlay(),this._keyManager.withHorizontalOrientation(null),this._highlightCorrectOption(),this._changeDetectorRef.markForCheck(),this.stateChanges.next(),Promise.resolve().then(()=>this.openedChange.emit(!0)))}_trackedModal=null;_applyModalPanelOwnership(){const e=this._elementRef.nativeElement.closest('body > .cdk-overlay-container [aria-modal="true"]');if(!e)return;const i=`${this.id}-panel`;this._trackedModal&&hk(this._trackedModal,"aria-owns",i),VV(e,"aria-owns",i),this._trackedModal=e}_clearFromModal(){this._trackedModal&&(hk(this._trackedModal,"aria-owns",`${this.id}-panel`),this._trackedModal=null)}close(){this._panelOpen&&(this._panelOpen=!1,this._exitAndDetach(),this._keyManager.withHorizontalOrientation(this._isRtl()?"rtl":"ltr"),this._changeDetectorRef.markForCheck(),this._onTouched(),this.stateChanges.next(),Promise.resolve().then(()=>this.openedChange.emit(!1)))}_exitAndDetach(){if(this._animationsDisabled||!this.panel)return void this._detachOverlay();this._cleanupDetach?.(),this._cleanupDetach=()=>{i(),clearTimeout(o),this._cleanupDetach=void 0};const e=this.panel.nativeElement,i=this._renderer.listen(e,"animationend",r=>{"_mat-select-exit"===r.animationName&&(this._cleanupDetach?.(),this._detachOverlay())}),o=setTimeout(()=>{this._cleanupDetach?.(),this._detachOverlay()},200);e.classList.add("mat-select-panel-exit")}_detachOverlay(){this._overlayDir.detachOverlay(),this._changeDetectorRef.markForCheck()}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}updateErrorState(){this._errorStateTracker.updateErrorState()}_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,s=this._keyManager;if(!s.isTyping()&&r&&!mr(e)||(this.multiple||e.altKey)&&o)e.preventDefault(),this.open();else if(!this.multiple){const a=this.selected;s.onKeydown(e);const l=this.selected;l&&a!==l&&this._liveAnnouncer.announce(l.viewValue,1e4)}}_handleOpenKeydown(e){const i=this._keyManager,o=e.keyCode,r=40===o||38===o,s=i.isTyping();if(r&&e.altKey)e.preventDefault(),this.close();else if(s||13!==o&&32!==o||!i.activeItem||mr(e))if(!s&&this._multiple&&65===o&&e.ctrlKey){e.preventDefault();const a=this.options.some(l=>!l.disabled&&!l.selected);this.options.forEach(l=>{l.disabled||(a?l.select():l.deselect())})}else{const a=i.activeItemIndex;i.onKeydown(e),this._multiple&&r&&e.shiftKey&&i.activeItem&&i.activeItemIndex!==a&&i.activeItem._selectViaInteraction()}else e.preventDefault(),i.activeItem._selectViaInteraction()}_handleOverlayKeydown(e){27===e.keyCode&&!mr(e)&&(e.preventDefault(),this.close())}_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())}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.canSelectNullableOptions)&&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=>!this.panelOpen&&e.disabled;_getOverlayWidth(e){return"auto"===this.panelWidth?(e instanceof mb?e.elementRef:e||this._elementRef).nativeElement.getBoundingClientRect().width:null===this.panelWidth?"":this.panelWidth}_syncParentProperties(){if(this.options)for(const e of this.options)e._changeDetectorRef.markForCheck()}_initKeyManager(){this._keyManager=new Ome(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=gr(this.options.changes,this._destroy);this.optionSelectionChanges.pipe(on(e)).subscribe(i=>{this._onSelect(i.source,i.isUserInput),i.isUserInput&&!this.multiple&&this._panelOpen&&(this.close(),this.focus())}),gr(...this.options.map(i=>i._stateChanges)).pipe(on(e)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this.stateChanges.next()})}_onSelect(e,i){const o=this._selectionModel.isSelected(e);this.canSelectNullableOptions||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;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&&!!this._overlayDir}focus(e){this._elementRef.nativeElement.focus(e)}_getPanelAriaLabelledby(){if(this.ariaLabel)return null;const e=this._parentFormField?.getLabelId()||null;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;let e=this._parentFormField?.getLabelId()||"";return this.ariaLabelledby&&(e+=" "+this.ariaLabelledby),e||(e=this._valueId),e}get describedByIds(){return this._elementRef.nativeElement.getAttribute("aria-describedby")?.split(" ")||[]}setDescribedByIds(e){const i=this._elementRef.nativeElement;e.length?i.setAttribute("aria-describedby",e.join(" ")):i.removeAttribute("aria-describedby")}onContainerClick(e){const i=fr(e);i&&("MAT-OPTION"===i.tagName||i.classList.contains("cdk-overlay-backdrop")||i.closest(".mat-mdc-select-panel"))||(this.focus(),this.open())}get shouldLabelFloat(){return this.panelOpen||!this.empty||this.focused&&!!this.placeholder}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["mat-select"]],contentQueries:function(i,o,r){if(1&i&&_s(r,t5,5)(r,Is,5)(r,QV,5),2&i){let s;ue(s=he())&&(o.customTrigger=s.first),ue(s=he())&&(o.options=s),ue(s=he())&&(o.optionGroups=s)}},viewQuery:function(i,o){if(1&i&&rt(Nme,5)(Fme,5)(eB,5),2&i){let r;ue(r=he())&&(o.trigger=r.first),ue(r=he())&&(o.panel=r.first),ue(r=he())&&(o._overlayDir=r.first)}},hostAttrs:["role","combobox","aria-haspopup","listbox",1,"mat-mdc-select"],hostVars:21,hostBindings:function(i,o){1&i&&L("keydown",function(s){return o._handleKeydown(s)})("focus",function(){return o._onFocus()})("blur",function(){return o._onBlur()}),2&i&&(Ze("id",o.id)("tabindex",o.disabled?-1: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()),Ke("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)("mat-select-open",o.panelOpen))},inputs:{userAriaDescribedBy:[0,"aria-describedby","userAriaDescribedBy"],panelClass:"panelClass",disabled:[2,"disabled","disabled",Ie],disableRipple:[2,"disableRipple","disableRipple",Ie],tabIndex:[2,"tabIndex","tabIndex",e=>null==e?0:Br(e)],hideSingleSelectionIndicator:[2,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",Ie],placeholder:"placeholder",required:[2,"required","required",Ie],multiple:[2,"multiple","multiple",Ie],disableOptionCentering:[2,"disableOptionCentering","disableOptionCentering",Ie],compareWith:"compareWith",value:"value",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],errorStateMatcher:"errorStateMatcher",typeaheadDebounceInterval:[2,"typeaheadDebounceInterval","typeaheadDebounceInterval",Br],sortComparator:"sortComparator",id:"id",panelWidth:"panelWidth",canSelectNullableOptions:[2,"canSelectNullableOptions","canSelectNullableOptions",Ie]},outputs:{openedChange:"openedChange",_openedStream:"opened",_closedStream:"closed",selectionChange:"selectionChange",valueChange:"valueChange"},exportAs:["matSelect"],features:[ht([{provide:ck,useExisting:t},{provide:ZV,useExisting:t}]),yi],ngContentSelectors:Bme,decls:11,vars:10,consts:[["fallbackOverlayOrigin","cdkOverlayOrigin","trigger",""],["panel",""],["cdk-overlay-origin","",1,"mat-mdc-select-trigger",3,"click"],[1,"mat-mdc-select-value"],[1,"mat-mdc-select-placeholder","mat-mdc-select-min-line"],[1,"mat-mdc-select-value-text"],[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","","cdkConnectedOverlayHasBackdrop","","cdkConnectedOverlayBackdropClass","cdk-overlay-transparent-backdrop",3,"detach","backdropClick","overlayKeydown","cdkConnectedOverlayDisableClose","cdkConnectedOverlayPanelClass","cdkConnectedOverlayScrollStrategy","cdkConnectedOverlayOrigin","cdkConnectedOverlayPositions","cdkConnectedOverlayWidth","cdkConnectedOverlayFlexibleDimensions","cdkConnectedOverlayUsePopover"],[1,"mat-mdc-select-min-line"],["role","listbox","tabindex","-1",1,"mat-mdc-select-panel","mdc-menu-surface","mdc-menu-surface--open",3,"keydown"]],template:function(i,o){if(1&i&&(Si(Lme),f(0,"div",2,0),L("click",function(){return o.open()}),f(3,"div",3),S(4,Vme,2,1,"span",4)(5,Ume,3,1,"span",5),h(),f(6,"div",6)(7,"div",7),Uc(),f(8,"svg",8),B(9,"path",9),h()()()(),tt(10,zme,3,16,"ng-template",10),L("detach",function(){return o.close()})("backdropClick",function(){return o.close()})("overlayKeydown",function(s){return o._handleOverlayKeydown(s)})),2&i){const r=Vn(1);d(3),Ze("id",o._valueId),d(),k(o.empty?4:5),d(6),v("cdkConnectedOverlayDisableClose",!0)("cdkConnectedOverlayPanelClass",o._overlayPanelClass)("cdkConnectedOverlayScrollStrategy",o._scrollStrategy)("cdkConnectedOverlayOrigin",o._preferredOverlayOrigin||r)("cdkConnectedOverlayPositions",o._positions)("cdkConnectedOverlayWidth",o._overlayWidth)("cdkConnectedOverlayFlexibleDimensions",!0)("cdkConnectedOverlayUsePopover",o._popoverLocation)}},dependencies:[mb,eB],styles:['@keyframes _mat-select-enter{from{opacity:0;transform:scaleY(0.8)}to{opacity:1;transform:none}}@keyframes _mat-select-exit{from{opacity:1}to{opacity:0}}.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, var(--mat-sys-on-surface));font-family:var(--mat-select-trigger-text-font, var(--mat-sys-body-large-font));line-height:var(--mat-select-trigger-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mat-select-trigger-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-select-trigger-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mat-select-trigger-text-tracking, var(--mat-sys-body-large-tracking))}div.mat-mdc-select-panel{box-shadow:var(--mat-select-container-elevation-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-mdc-select-disabled{color:var(--mat-select-disabled-trigger-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-select-disabled .mat-mdc-select-placeholder{color:var(--mat-select-disabled-trigger-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.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 .mdc-text-field--no-label .mat-mdc-select-arrow-wrapper{transform:none}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-invalid .mat-mdc-select-arrow,.mat-form-field-invalid:not(.mat-form-field-disabled) .mat-mdc-form-field-infix::after{color:var(--mat-select-invalid-arrow-color, var(--mat-sys-error))}.mat-mdc-select-arrow{width:10px;height:5px;position:relative;color:var(--mat-select-enabled-arrow-color, var(--mat-sys-on-surface-variant))}.mat-mdc-form-field.mat-focused .mat-mdc-select-arrow{color:var(--mat-select-focused-arrow-color, var(--mat-sys-primary))}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-disabled .mat-mdc-select-arrow{color:var(--mat-select-disabled-arrow-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-select-open .mat-mdc-select-arrow{transform:rotate(180deg)}.mat-form-field-animations-enabled .mat-mdc-select-arrow{transition:transform 80ms linear}.mat-mdc-select-arrow svg{fill:currentColor;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}@media(forced-colors: active){.mat-mdc-select-arrow svg{fill:CanvasText}.mat-mdc-select-disabled .mat-mdc-select-arrow svg{fill:GrayText}}div.mat-mdc-select-panel{width:100%;max-height:275px;outline:0;overflow:auto;padding:8px 0;border-radius:4px;box-sizing:border-box;position:relative;background-color:var(--mat-select-panel-background-color, var(--mat-sys-surface-container))}@media(forced-colors: 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-select-panel-animations-enabled{animation:_mat-select-enter 120ms cubic-bezier(0, 0, 0.2, 1)}.mat-select-panel-animations-enabled.mat-select-panel-exit{animation:_mat-select-exit 100ms linear}.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, var(--mat-sys-on-surface-variant))}.mat-mdc-form-field:not(.mat-form-field-animations-enabled) .mat-mdc-select-placeholder,._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}.mat-form-field-appearance-fill .mat-mdc-select-arrow-wrapper{transform:var(--mat-select-arrow-transform, translateY(-8px))}\n'],encapsulation:2,changeDetection:0})}return t})(),qme=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["mat-select-trigger"]],features:[ht([{provide:t5,useExisting:t}])]})}return t})(),Kme=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({imports:[Wd,e5,ri,xf,tv,e5]})}return t})();function Yme(t,n){if(1&t&&B(0,"input",6),2&t){const e=C().$implicit;v("formControlName",e.keyNameInFiltersObject)("maxlength",e.maxlength)}}function Xme(t,n){if(1&t&&(f(0,"div",10),B(1,"div",11),h()),2&t){const e=C().$implicit,i=C(2).$implicit;Ji("background-image: url('"+i.printableLabelGeneralSettings.defaultImage+"'); width: "+i.printableLabelGeneralSettings.imageWidth+"px; height: "+i.printableLabelGeneralSettings.imageHeight+"px;"),d(),Ji("background-image: url('"+e.image+"');")}}function Zme(t,n){if(1&t&&(f(0,"mat-option",8),S(1,Xme,2,4,"div",9),m(2),b(3,"translate"),h()),2&t){const e=n.$implicit,i=C(2).$implicit;v("value",e.value),d(),k(i.printableLabelGeneralSettings&&e.image?1:-1),d(),I(" ",y(3,3,e.label)," ")}}function Qme(t,n){if(1&t&&(f(0,"mat-select",7),we(1,Zme,4,5,"mat-option",8,Re),h()),2&t){const e=C().$implicit;v("formControlName",e.keyNameInFiltersObject),d(),xe(e.printableLabelsForValues)}}function Jme(t,n){if(1&t&&(f(0,"mat-form-field")(1,"div",4)(2,"label",5),m(3),b(4,"translate"),h(),S(5,Yme,1,2,"input",6),S(6,Qme,3,1,"mat-select",7),h()()),2&t){const e=n.$implicit,i=C();d(3),O(y(4,3,e.filterName)),d(2),k(e.type===i.filterFieldTypes.TextInput?5:-1),d(),k(e.type===i.filterFieldTypes.Select?6:-1)}}let ege=(()=>{class t{static openDialog(e,i){const o=new Lt;return o.data=i,o.autoFocus=!1,o.width=ze.smallModalWidth,e.open(t,o)}constructor(e,i,o){this.data=e,this.dialogRef=i,this.formBuilder=o,this.filterFieldTypes=mn}ngOnInit(){const e={};this.data.filterPropertiesList.forEach(i=>{e[i.keyNameInFiltersObject]=[this.data.currentFilters[i.keyNameInFiltersObject]]}),this.form=this.formBuilder.group(e)}apply(){const e={};this.data.filterPropertiesList.forEach(i=>{e[i.keyNameInFiltersObject]=this.form.get(i.keyNameInFiltersObject).value.trim()}),this.dialogRef.close(e)}static{this.\u0275fac=function(i){return new(i||t)(P(hn),P(It),P(pi))}}static{this.\u0275cmp=se({type:t,selectors:[["app-filters-selection"]],standalone:!1,decls:9,vars:8,consts:[["button",""],[3,"headline","dialog"],[3,"formGroup"],["color","primary",1,"float-right",3,"action"],[1,"field-container"],["for","remoteKey",1,"field-label"],["matInput","",3,"formControlName","maxlength"],[3,"formControlName"],[3,"value"],[1,"image-container",3,"style"],[1,"image-container"],[1,"image"]],template:function(i,o){1&i&&(f(0,"app-dialog",1),b(1,"translate"),f(2,"form",2),we(3,Jme,7,5,"mat-form-field",null,Re),h(),f(5,"app-button",3,0),L("action",function(){return o.apply()}),m(7),b(8,"translate"),h()()),2&i&&(v("headline",y(1,4,"filters.filter-action"))("dialog",o.dialogRef),d(2),v("formGroup",o.form),d(),xe(o.data.filterPropertiesList),d(4),I(" ",y(8,6,"common.ok")," "))},dependencies:[Cn,rn,sn,yn,ji,Xt,fn,wn,ei,oc,Is,On,Kt,Se],styles:[".image-container[_ngcontent-%COMP%]{display:inline-block;background-size:contain;margin-right:5px}.image-container[_ngcontent-%COMP%] .image[_ngcontent-%COMP%]{background-size:contain;width:100%;height:100%}"]})}}return t})();class su{get currentFiltersTexts(){return this.currentFiltersTextsInternal}get currentUrlQueryParams(){return this.currentUrlQueryParamsInternal}get dataFiltered(){return this.dataUpdatedSubject.asObservable()}constructor(n,e,i,o,r){this.dialog=n,this.route=e,this.router=i,this.currentFiltersTextsInternal=[],this.dataUpdatedSubject=new pe,this.filterPropertiesList=o,this.currentFilters={},this.filterPropertiesList.forEach(s=>{s.keyNameInFiltersObject=r+"_"+s.keyNameInElementsArray,this.currentFilters[s.keyNameInFiltersObject]=""}),this.navigationsSubscription=this.route.queryParamMap.subscribe(s=>{Object.keys(this.currentFilters).forEach(a=>{s.has(a)&&(this.currentFilters[a]=s.get(a))}),this.currentUrlQueryParamsInternal={},s.keys.forEach(a=>{this.currentUrlQueryParamsInternal[a]=s.get(a)}),this.filter()})}dispose(){this.dataUpdatedSubject.complete(),this.navigationsSubscription.unsubscribe()}setData(n){this.data=n,this.filter()}removeFilters(){const n=Ye.createConfirmationDialog(this.dialog,"filters.remove-confirmation");n.componentInstance.operationAccepted.subscribe(()=>{n.componentInstance.closeModal(),this.router.navigate([],{queryParams:{}})})}changeFilters(){ege.openDialog(this.dialog,{filterPropertiesList:this.filterPropertiesList,currentFilters:this.currentFilters}).afterClosed().subscribe(e=>{e&&this.router.navigate([],{queryParams:e})})}filter(){if(this.data){let n,e=!1;Object.keys(this.currentFilters).forEach(i=>{this.currentFilters[i]&&(e=!0)}),e?(n=function yme(t,n,e){if(t){const i=[];return Object.keys(n).forEach(r=>{if(n[r])for(const s of e)if(s.keyNameInFiltersObject===r){i.push(s);break}}),t.filter(r=>{let s=!0;return i.forEach(a=>{const l=String(r[a.keyNameInElementsArray]).toLowerCase().includes(n[a.keyNameInFiltersObject].toLowerCase()),c=a.secondaryKeyNameInElementsArray&&String(r[a.secondaryKeyNameInElementsArray]).toLowerCase().includes(n[a.keyNameInFiltersObject].toLowerCase());!l&&!c&&(s=!1)}),s})}return null}(this.data,this.currentFilters,this.filterPropertiesList),this.updateCurrentFilters()):(n=this.data,this.updateCurrentFilters()),this.dataUpdatedSubject.next(n)}}updateCurrentFilters(){this.currentFiltersTextsInternal=function Cme(t,n){const e=[];return n.forEach(i=>{if(t[i.keyNameInFiltersObject]){let o,r;i.printableLabelsForValues&&i.printableLabelsForValues.forEach(s=>{s.value===t[i.keyNameInFiltersObject]&&(r=s.label)}),r||(o=t[i.keyNameInFiltersObject]),e.push({filterName:i.filterName,translatableValue:r,value:o})}}),e}(this.currentFilters,this.filterPropertiesList)}}function tge(t,n){if(1&t){const e=ce();f(0,"div",3)(1,"div",4)(2,"div",5),m(3),h(),f(4,"div",6),m(5),h()(),f(6,"div",7)(7,"app-button",8),L("click",function(){const o=z(e).$implicit;return $(C(2).openTerminal(o.key))}),m(8),b(9,"translate"),h()()()}if(2&t){const e=n.$implicit;d(3),O(e.label),d(2),O(e.version),d(3),I(" ",y(9,3,"update-all.update-button")," ")}}function nge(t,n){if(1&t&&(f(0,"div",1),m(1),b(2,"translate"),h(),f(3,"div",2),we(4,tge,10,5,"div",3,Re),h()),2&t){const e=C();d(),I(" ",y(2,1,"update-all.updatable-list-text")," "),d(3),xe(e.updatableNodes)}}function ige(t,n){if(1&t&&(f(0,"div",6),m(1),h()),2&t){const e=C().$implicit;d(),O(e.tag)}}function oge(t,n){if(1&t&&(f(0,"div",3)(1,"div",4)(2,"div",5),m(3),h(),f(4,"div",6),m(5),h(),S(6,ige,2,1,"div",6),h()()),2&t){const e=n.$implicit;d(3),O(e.label),d(2),O(e.version),d(),k(e.tag?6:-1)}}function rge(t,n){if(1&t&&(f(0,"div",1),m(1),b(2,"translate"),h(),f(3,"div",2),we(4,oge,7,3,"div",3,Re),h()),2&t){const e=C();d(),I(" ",y(2,1,"update-all.non-updatable-list-text")," "),d(3),xe(e.nonUpdatableNodes)}}let sge=(()=>{class t{static openDialog(e,i,o){const r=new Lt;return r.data=[i,o],r.autoFocus=!1,r.width=ze.smallModalWidth,e.open(t,r)}constructor(e,i){this.dialogRef=e,this.updatableNodes=i[0],this.nonUpdatableNodes=i[1]}openTerminal(e){const i=window.location.protocol,o=window.location.host.replace("localhost:4200","127.0.0.1:8000");window.open(i+"//"+o+"/pty/"+e+"?commands=update","_blank","noopener noreferrer")}static{this.\u0275fac=function(i){return new(i||t)(P(It),P(hn))}}static{this.\u0275cmp=se({type:t,selectors:[["app-update-all"]],standalone:!1,decls:4,vars:6,consts:[[3,"headline","dialog"],[1,"text-container"],[1,"list-container"],[1,"list-element"],[1,"left-part"],[1,"name"],[1,"version"],[1,"right-part"],["color","primary",3,"click"]],template:function(i,o){1&i&&(f(0,"app-dialog",0),b(1,"translate"),S(2,nge,6,3),S(3,rge,6,3),h()),2&i&&(v("headline",y(1,4,"update-all.title"))("dialog",o.dialogRef),d(2),k(o.updatableNodes&&o.updatableNodes.length>0?2:-1),d(),k(o.nonUpdatableNodes&&o.nonUpdatableNodes.length>0?3:-1))},dependencies:[On,Kt,Se],styles:[".text-container[_ngcontent-%COMP%]{word-break:break-word}.list-container[_ngcontent-%COMP%]{font-size:14px;margin:10px;color:#215f9e;word-break:break-word;line-height:1.2}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%]{display:flex;margin-bottom:10px}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-part[_ngcontent-%COMP%]{flex-grow:1;flex-shrink:1;align-self:center;margin-right:10px;min-width:0}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-part[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:575px){.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-part[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{font-size:.7rem}}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-part[_ngcontent-%COMP%] .version[_ngcontent-%COMP%]{font-size:.7rem;color:#777;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .right-part[_ngcontent-%COMP%]{flex-basis:0;flex-shrink:0}.list-container[_ngcontent-%COMP%] .details[_ngcontent-%COMP%]{color:#777}"]})}}return t})();const age=["mat-internal-form-field",""],lge=["*"];let cge=(()=>{class t{labelPosition="after";static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["div","mat-internal-form-field",""]],hostAttrs:[1,"mdc-form-field","mat-internal-form-field"],hostVars:2,hostBindings:function(i,o){2&i&&Ke("mdc-form-field--align-end","before"===o.labelPosition)},inputs:{labelPosition:"labelPosition"},attrs:age,ngContentSelectors:lge,decls:1,vars:0,template:function(i,o){1&i&&(Si(),At(0))},styles:[".mat-internal-form-field{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-flex;align-items:center;vertical-align:middle}.mat-internal-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mat-internal-form-field>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px}.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 .mdc-form-field--align-end label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0}\n"],encapsulation:2,changeDetection:0})}return t})();const dge=["input"],uge=["label"],hge=["*"],yk={color:"accent",clickAction:"check-indeterminate",disabledInteractive:!1},fge=new Z("mat-checkbox-default-options",{providedIn:"root",factory:()=>yk});var Ui=function(t){return t[t.Init=0]="Init",t[t.Checked=1]="Checked",t[t.Unchecked=2]="Unchecked",t[t.Indeterminate=3]="Indeterminate",t}(Ui||{});class pge{source;checked}let kr=(()=>{class t{_elementRef=D(Ae);_changeDetectorRef=D(Pn);_ngZone=D(ge);_animationsDisabled=fi();_options=D(fge,{optional:!0});focus(){this._inputElement.nativeElement.focus()}_createChangeEvent(e){const i=new pge;return i.source=this,i.checked=e,i}_getAnimationTargetElement(){return this._inputElement?.nativeElement}_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"};ariaLabel="";ariaLabelledby=null;ariaDescribedby;ariaExpanded;ariaControls;ariaOwns;_uniqueId;id;get inputId(){return`${this.id||this._uniqueId}-input`}required=!1;labelPosition="after";name=null;change=new ve;indeterminateChange=new ve;value;disableRipple=!1;_inputElement;_labelElement;tabIndex;color;disabledInteractive;_onTouched=()=>{};_currentAnimationClass="";_currentCheckState=Ui.Init;_controlValueAccessorChangeFn=()=>{};_validatorChangeFn=()=>{};constructor(){D(pr).load(Af);const e=D(new Xg("tabindex"),{optional:!0});this._options=this._options||yk,this.color=this._options.color||yk.color,this.tabIndex=null==e?0:parseInt(e)||0,this.id=this._uniqueId=D(oi).getId("mat-mdc-checkbox-"),this.disabledInteractive=this._options?.disabledInteractive??!1}ngOnChanges(e){e.required&&this._validatorChangeFn()}ngAfterViewInit(){this._syncIndeterminate(this.indeterminate)}get checked(){return this._checked}set checked(e){e!=this.checked&&(this._checked=e,this._changeDetectorRef.markForCheck())}_checked=!1;get disabled(){return this._disabled}set disabled(e){e!==this.disabled&&(this._disabled=e,this._changeDetectorRef.markForCheck())}_disabled=!1;get indeterminate(){return this._indeterminate()}set indeterminate(e){const i=e!=this._indeterminate();this._indeterminate.set(e),i&&(this._transitionCheckState(e?Ui.Indeterminate:this.checked?Ui.Checked:Ui.Unchecked),this.indeterminateChange.emit(e)),this._syncIndeterminate(e)}_indeterminate=yt(!1);_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}validate(e){return this.required&&!0!==e.value?{required:!0}:null}registerOnValidatorChange(e){this._validatorChangeFn=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&&this.disabledInteractive||!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.set(!1),this.indeterminateChange.emit(!1)}),this._checked=!this._checked,this._transitionCheckState(this._checked?Ui.Checked:Ui.Unchecked),this._emitChangeEvent())}_onInteractionEvent(e){e.stopPropagation()}_onBlur(){Promise.resolve().then(()=>{this._onTouched(),this._changeDetectorRef.markForCheck()})}_getAnimationClassForCheckStateTransition(e,i){if(this._animationsDisabled)return"";switch(e){case Ui.Init:if(i===Ui.Checked)return this._animationClasses.uncheckedToChecked;if(i==Ui.Indeterminate)return this._checked?this._animationClasses.checkedToIndeterminate:this._animationClasses.uncheckedToIndeterminate;break;case Ui.Unchecked:return i===Ui.Checked?this._animationClasses.uncheckedToChecked:this._animationClasses.uncheckedToIndeterminate;case Ui.Checked:return i===Ui.Unchecked?this._animationClasses.checkedToUnchecked:this._animationClasses.checkedToIndeterminate;case Ui.Indeterminate:return i===Ui.Checked?this._animationClasses.indeterminateToChecked:this._animationClasses.indeterminateToUnchecked}return""}_syncIndeterminate(e){const i=this._inputElement;i&&(i.nativeElement.indeterminate=e)}_onInputClick(){this._handleInputClick()}_onTouchTargetClick(){this._handleInputClick(),this.disabled||this._inputElement.nativeElement.focus()}_preventBubblingFromLabel(e){e.target&&this._labelElement.nativeElement.contains(e.target)&&e.stopPropagation()}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["mat-checkbox"]],viewQuery:function(i,o){if(1&i&&rt(dge,5)(uge,5),2&i){let r;ue(r=he())&&(o._inputElement=r.first),ue(r=he())&&(o._labelElement=r.first)}},hostAttrs:[1,"mat-mdc-checkbox"],hostVars:16,hostBindings:function(i,o){2&i&&(Lr("id",o.id),Ze("tabindex",null)("aria-label",null)("aria-labelledby",null),at(o.color?"mat-"+o.color:"mat-accent"),Ke("_mat-animation-noopable",o._animationsDisabled)("mdc-checkbox--disabled",o.disabled)("mat-mdc-checkbox-disabled",o.disabled)("mat-mdc-checkbox-checked",o.checked)("mat-mdc-checkbox-disabled-interactive",o.disabledInteractive))},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],ariaExpanded:[2,"aria-expanded","ariaExpanded",Ie],ariaControls:[0,"aria-controls","ariaControls"],ariaOwns:[0,"aria-owns","ariaOwns"],id:"id",required:[2,"required","required",Ie],labelPosition:"labelPosition",name:"name",value:"value",disableRipple:[2,"disableRipple","disableRipple",Ie],tabIndex:[2,"tabIndex","tabIndex",e=>null==e?void 0:Br(e)],color:"color",disabledInteractive:[2,"disabledInteractive","disabledInteractive",Ie],checked:[2,"checked","checked",Ie],disabled:[2,"disabled","disabled",Ie],indeterminate:[2,"indeterminate","indeterminate",Ie]},outputs:{change:"change",indeterminateChange:"indeterminateChange"},exportAs:["matCheckbox"],features:[ht([{provide:yr,useExisting:Vt(()=>t),multi:!0},{provide:Ii,useExisting:t,multi:!0}]),yi],ngContentSelectors:hge,decls:15,vars:23,consts:[["checkbox",""],["input",""],["label",""],["mat-internal-form-field","",3,"click","labelPosition"],[1,"mdc-checkbox"],["aria-hidden","true",1,"mat-mdc-checkbox-touch-target",3,"click"],["type","checkbox",1,"mdc-checkbox__native-control",3,"blur","click","change","checked","indeterminate","disabled","id","required","tabIndex"],["aria-hidden","true",1,"mdc-checkbox__ripple"],["aria-hidden","true",1,"mdc-checkbox__background"],["focusable","false","viewBox","0 0 24 24",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","","aria-hidden","true",1,"mat-mdc-checkbox-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-label",3,"for"]],template:function(i,o){if(1&i&&(Si(),f(0,"div",3),L("click",function(s){return o._preventBubblingFromLabel(s)}),f(1,"div",4,0)(3,"div",5),L("click",function(){return o._onTouchTargetClick()}),h(),f(4,"input",6,1),L("blur",function(){return o._onBlur()})("click",function(){return o._onInputClick()})("change",function(s){return o._onInteractionEvent(s)}),h(),B(6,"div",7),f(7,"div",8),Uc(),f(8,"svg",9),B(9,"path",10),h(),Vy(),B(10,"div",11),h(),B(11,"div",12),h(),f(12,"label",13,2),At(14),h()()),2&i){const r=Vn(2);v("labelPosition",o.labelPosition),d(4),Ke("mdc-checkbox--selected",o.checked),v("checked",o.checked)("indeterminate",o.indeterminate)("disabled",o.disabled&&!o.disabledInteractive)("id",o.inputId)("required",o.required)("tabIndex",o.disabled&&!o.disabledInteractive?-1:o.tabIndex),Ze("aria-label",o.ariaLabel||null)("aria-labelledby",o.ariaLabelledby)("aria-describedby",o.ariaDescribedby)("aria-checked",o.indeterminate?"mixed":null)("aria-controls",o.ariaControls)("aria-disabled",!(!o.disabled||!o.disabledInteractive)||null)("aria-expanded",o.ariaExpanded)("aria-owns",o.ariaOwns)("name",o.name)("value",o.value),d(7),v("matRippleTrigger",r)("matRippleDisabled",o.disableRipple||o.disabled)("matRippleCentered",!0),d(),v("for",o.inputId)}},dependencies:[Of,cge],styles:['.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;padding:calc((var(--mat-checkbox-state-layer-size, 40px) - 18px)/2);margin:calc((var(--mat-checkbox-state-layer-size, 40px) - var(--mat-checkbox-state-layer-size, 40px))/2)}.mdc-checkbox:hover>.mdc-checkbox__ripple{opacity:var(--mat-checkbox-unselected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));background-color:var(--mat-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:hover>.mat-mdc-checkbox-ripple>.mat-ripple-element{background-color:var(--mat-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus+.mdc-checkbox__ripple{opacity:var(--mat-checkbox-unselected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));background-color:var(--mat-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mat-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:active>.mdc-checkbox__native-control+.mdc-checkbox__ripple{opacity:var(--mat-checkbox-unselected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));background-color:var(--mat-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:active>.mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mat-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:hover>.mdc-checkbox__native-control:checked+.mdc-checkbox__ripple{opacity:var(--mat-checkbox-selected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));background-color:var(--mat-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:hover>.mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mat-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox .mdc-checkbox__native-control:focus:checked+.mdc-checkbox__ripple{opacity:var(--mat-checkbox-selected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));background-color:var(--mat-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mat-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:active>.mdc-checkbox__native-control:checked+.mdc-checkbox__ripple{opacity:var(--mat-checkbox-selected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));background-color:var(--mat-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:active>.mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mat-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control+.mdc-checkbox__ripple{background-color:var(--mat-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit;z-index:1;width:var(--mat-checkbox-state-layer-size, 40px);height:var(--mat-checkbox-state-layer-size, 40px);top:calc((var(--mat-checkbox-state-layer-size, 40px) - var(--mat-checkbox-state-layer-size, 40px))/2);right:calc((var(--mat-checkbox-state-layer-size, 40px) - var(--mat-checkbox-state-layer-size, 40px))/2);left:calc((var(--mat-checkbox-state-layer-size, 40px) - var(--mat-checkbox-state-layer-size, 40px))/2)}.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 cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms cubic-bezier(0.4, 0, 0.6, 1);-webkit-print-color-adjust:exact;color-adjust:exact;border-color:var(--mat-checkbox-unselected-icon-color, var(--mat-sys-on-surface-variant));top:calc((var(--mat-checkbox-state-layer-size, 40px) - 18px)/2);left:calc((var(--mat-checkbox-state-layer-size, 40px) - 18px)/2)}.mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background{border-color:var(--mat-checkbox-selected-icon-color, var(--mat-sys-primary));background-color:var(--mat-checkbox-selected-icon-color, var(--mat-sys-primary))}.mdc-checkbox--disabled .mdc-checkbox__background{border-color:var(--mat-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}@media(forced-colors: active){.mdc-checkbox--disabled .mdc-checkbox__background{border-color:GrayText}}.mdc-checkbox__native-control:disabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:disabled:indeterminate~.mdc-checkbox__background{background-color:var(--mat-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:rgba(0,0,0,0)}@media(forced-colors: active){.mdc-checkbox__native-control:disabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:disabled:indeterminate~.mdc-checkbox__background{border-color:GrayText}}.mdc-checkbox:hover>.mdc-checkbox__native-control:not(:checked)~.mdc-checkbox__background,.mdc-checkbox:hover>.mdc-checkbox__native-control:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mat-checkbox-unselected-hover-icon-color, var(--mat-sys-on-surface));background-color:rgba(0,0,0,0)}.mdc-checkbox:hover>.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox:hover>.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{border-color:var(--mat-checkbox-selected-hover-icon-color, var(--mat-sys-primary));background-color:var(--mat-checkbox-selected-hover-icon-color, var(--mat-sys-primary))}.mdc-checkbox__native-control:focus:focus:not(:checked)~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mat-checkbox-unselected-focus-icon-color, var(--mat-sys-on-surface))}.mdc-checkbox__native-control:focus:focus:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:indeterminate~.mdc-checkbox__background{border-color:var(--mat-checkbox-selected-focus-icon-color, var(--mat-sys-primary));background-color:var(--mat-checkbox-selected-focus-icon-color, var(--mat-sys-primary))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox:hover>.mdc-checkbox__native-control~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__background{border-color:var(--mat-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}@media(forced-colors: active){.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox:hover>.mdc-checkbox__native-control~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__background{border-color:GrayText}}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{background-color:var(--mat-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:rgba(0,0,0,0)}.mdc-checkbox__checkmark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;transition:opacity 180ms cubic-bezier(0.4, 0, 0.6, 1);color:var(--mat-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}@media(forced-colors: active){.mdc-checkbox__checkmark{color:CanvasText}}.mdc-checkbox--disabled .mdc-checkbox__checkmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:var(--mat-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}@media(forced-colors: active){.mdc-checkbox--disabled .mdc-checkbox__checkmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:GrayText}}.mdc-checkbox__checkmark-path{transition:stroke-dashoffset 180ms 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 cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1);border-color:var(--mat-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}@media(forced-colors: active){.mdc-checkbox__mixedmark{margin:0 1px}}.mdc-checkbox--disabled .mdc-checkbox__mixedmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__mixedmark{border-color:var(--mat-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}@media(forced-colors: active){.mdc-checkbox--disabled .mdc-checkbox__mixedmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__mixedmark{border-color:GrayText}}.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;transition:none}.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark{animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark{animation:mdc-checkbox-indeterminate-checked-checkmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-checked-mixedmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear;transition:none}.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{transition:border-color 90ms cubic-bezier(0, 0, 0.2, 1),background-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path{stroke-dashoffset:0}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__checkmark{transition:opacity 180ms cubic-bezier(0, 0, 0.2, 1),transform 180ms 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{transform:rotate(45deg);opacity:0;transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__mixedmark{transform:scaleX(1) rotate(0deg);opacity:1}@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:cubic-bezier(0, 0, 0.2, 1);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}}.mat-mdc-checkbox{display:inline-block;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mat-mdc-checkbox-touch-target,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__native-control,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__ripple,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mat-mdc-checkbox-ripple::before,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__checkmark,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__mixedmark{transition:none !important;animation:none !important}.mat-mdc-checkbox label{cursor:pointer}.mat-mdc-checkbox .mat-internal-form-field{color:var(--mat-checkbox-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-checkbox-label-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-checkbox-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-checkbox-label-text-size, var(--mat-sys-body-medium-size));letter-spacing:var(--mat-checkbox-label-text-tracking, var(--mat-sys-body-medium-tracking));font-weight:var(--mat-checkbox-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive{pointer-events:auto}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive input{cursor:default}.mat-mdc-checkbox.mat-mdc-checkbox-disabled label{cursor:default;color:var(--mat-checkbox-disabled-label-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}@media(forced-colors: active){.mat-mdc-checkbox.mat-mdc-checkbox-disabled label{color:GrayText}}.mat-mdc-checkbox label:empty{display:none}.mat-mdc-checkbox .mdc-checkbox__ripple{opacity:0}.mat-mdc-checkbox .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 .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%;left:50%;height:var(--mat-checkbox-touch-target-size, 48px);width:var(--mat-checkbox-touch-target-size, 48px);transform:translate(-50%, -50%);display:var(--mat-checkbox-touch-target-display, block)}.mat-mdc-checkbox .mat-mdc-checkbox-ripple::before{border-radius:50%}.mdc-checkbox__native-control:focus-visible~.mat-focus-indicator::before{content:""}\n'],encapsulation:2,changeDetection:0})}return t})(),mge=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({imports:[kr,ri]})}return t})();const gge=["button"],_ge=t=>({"element-disabled":t}),bge=t=>({"element-margin":t});function vge(t,n){1&t&&(f(0,"span",17),m(1),b(2,"translate"),h()),2&t&&(d(),I(" ",y(2,1,"bulk-rewards.checking")))}function yge(t,n){if(1&t&&(f(0,"span",18)(1,"span"),m(2),b(3,"translate"),h(),f(4,"span"),m(5),b(6,"translate"),h()()),2&t){const e=C(2).$implicit;d(2),I(" ",y(3,2,"bulk-rewards.error-checking")),d(3),I(" ",y(6,4,e.operationError))}}function Cge(t,n){if(1&t&&(f(0,"span"),m(1),h()),2&t){const e=C(2).$implicit;d(),I(" ",e.currentAddress)}}function wge(t,n){1&t&&(f(0,"span"),m(1),b(2,"translate"),h()),2&t&&(d(),I(" ",y(2,1,"bulk-rewards.not-registered")))}function xge(t,n){if(1&t&&(rr(0,12),f(1,"mat-checkbox",13)(2,"div")(3,"div",14),m(4),h(),f(5,"div",15)(6,"span",16),m(7),b(8,"translate"),h(),S(9,vge,3,3,"span",17),S(10,yge,7,6,"span",18),S(11,Cge,2,1,"span"),S(12,wge,3,3,"span"),h()()(),Lo()),2&t){const e=C(),i=e.$implicit;v("formGroupName",e.$index),d(4),I(" ",i.label," "),d(3),O(y(8,7,"bulk-rewards.current-address")),d(2),k(null!==i.currentAddress||i.operationError?-1:9),d(),k(i.operationError?10:-1),d(),k(i.currentAddress&&!i.operationError?11:-1),d(),k(""!==i.currentAddress||i.operationError?-1:12)}}function Sge(t,n){1&t&&(f(0,"span",17),m(1),b(2,"translate"),h()),2&t&&(d(),I(" ",y(2,1,"bulk-rewards.processing")))}function kge(t,n){if(1&t&&(f(0,"span",18)(1,"span"),m(2),b(3,"translate"),h(),f(4,"span"),m(5),b(6,"translate"),h()()),2&t){const e=C(2).$implicit;d(2),I(" ",y(3,2,"bulk-rewards.error-processing")),d(3),I(" ",y(6,4,e.operationError))}}function Dge(t,n){1&t&&(f(0,"span",22),m(1),b(2,"translate"),h()),2&t&&(d(),I(" ",y(2,1,"bulk-rewards.done")))}function Tge(t,n){if(1&t&&(f(0,"div",19),m(1,"-"),h(),f(2,"div",20),m(3),f(4,"div",21),S(5,Sge,3,3,"span",17),S(6,kge,7,6,"span",18),S(7,Dge,3,3,"span",22),h()()),2&t){const e=C().$implicit;d(3),I(" ",e.label," "),d(2),k(e.processing&&!e.operationError?5:-1),d(),k(e.operationError?6:-1),d(),k(e.processing||e.operationError?-1:7)}}function Mge(t,n){if(1&t&&(f(0,"div",9),S(1,xge,13,9,"ng-container",12),S(2,Tge,8,4),h()),2&t){const e=C();v("ngClass",oe(3,bge,e.processingStarted)),d(),k(e.processingStarted?-1:1),d(),k(e.processingStarted?2:-1)}}function Ege(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"bulk-rewards.perform-changes")," ")}function Ige(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"common.close")," ")}let Pge=(()=>{class t{static openDialog(e,i){const o=new Lt;return o.data=i,o.autoFocus=!1,o.width=ze.smallModalWidth,e.open(t,o)}constructor(e,i,o,r,s){this.dialogRef=e,this.data=i,this.nodeService=o,this.formBuilder=r,this.dialog=s,this.processingStarted=!1,this.processingFinished=!1,this.currentlyProcessed=0,this.form=r.group({address:["",Ve.compose([Ve.minLength(20),Ve.maxLength(112)])],nodes:r.array([])}),i.nodes.forEach(a=>{const l=this.formBuilder.group({selected:[!0]});this.form.get("nodes").push(l)}),this.startChecking()}formValid(){if(!this.processingStarted){if(!this.form.valid)return!1;let e=0;return this.form.get("nodes").controls.forEach((i,o)=>{i.get("selected")?.value&&(e+=1)}),e>0}return!0}get disableDismiss(){return this.processingStarted&&!this.processingFinished}startChecking(){this.nodesToEdit=[],this.data.nodes.forEach(e=>{this.nodesToEdit.push({key:e.key,label:e.label,currentAddress:null,operationError:"",processing:!1})}),this.operationSubscriptions=[],this.nodesToEdit.forEach((e,i)=>{this.operationSubscriptions.push(this.nodeService.getRewardsAddress(e.key).subscribe(o=>{this.nodesToEdit[i].currentAddress=o},o=>{this.nodesToEdit[i].operationError=o.translatableErrorMsg?o.translatableErrorMsg:o.originalServerErrorMsg}))})}checkBeforeProcessing(){if(this.form.valid)if(this.form.get("address").value)this.startProcessing();else{const i=Ye.createConfirmationDialog(this.dialog,"bulk-rewards.empty-warning");i.componentInstance.operationAccepted.subscribe(()=>{i.componentInstance.closeModal(),this.startProcessing()})}}startProcessing(){this.processingStarted=!0,this.button.showLoading(),this.closeoperationSubscriptions();const e=[];this.form.get("nodes").controls.forEach((o,r)=>{o.get("selected")?.value&&(this.nodesToEdit[r].operationError="",this.nodesToEdit[r].processing=!0,e.push(this.nodesToEdit[r]))}),this.nodesToEdit=e;const i=this.form.get("address").value;this.form.get("address").disable(),this.currentlyProcessed=0,this.operationSubscriptions=[],this.nodesToEdit.forEach((o,r)=>{let s=this.nodeService.setRewardsAddress(o.key,i);i||(s=this.nodeService.deleteRewardsAddress(o.key)),this.operationSubscriptions.push(ae(0).pipe(ii(100),Et(()=>s)).subscribe(a=>{this.nodesToEdit[r].processing=!1,this.currentlyProcessed+=1,this.currentlyProcessed===this.nodesToEdit.length&&(this.processingFinished=!0,this.button.reset())},a=>{this.nodesToEdit[r].processing=!1,this.nodesToEdit[r].operationError=a.translatableErrorMsg?a.translatableErrorMsg:a.originalServerErrorMsg,this.currentlyProcessed+=1,this.currentlyProcessed===this.nodesToEdit.length&&(this.processingFinished=!0,this.button.reset())}))})}ngOnDestroy(){this.closeoperationSubscriptions()}closeoperationSubscriptions(){this.operationSubscriptions&&this.operationSubscriptions.forEach(e=>e.unsubscribe())}closeModal(){this.dialogRef.close()}static{this.\u0275fac=function(i){return new(i||t)(P(It),P(hn),P(Sr),P(pi),P(kt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-bulk-reward-address-changer"]],viewQuery:function(i,o){if(1&i&&rt(gge,5),2&i){let r;ue(r=he())&&(o.button=r.first)}},standalone:!1,decls:31,vars:27,consts:[["button",""],[3,"headline","dialog","disableDismiss"],[3,"formGroup"],[1,"text-container"],["href","https://github.com/skycoin/skywire/blob/develop/rewards/mainnet_rules.md","target","_blank","rel","noreferrer nofollow noopener"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","address","maxlength","112","matInput","",3,"ngClass"],["formArrayName","nodes",1,"list-container"],[1,"list-element",3,"ngClass"],[1,"buttons"],["type","mat-raised-button","color","primary",3,"action","disabled"],[3,"formGroupName"],["color","primary","formControlName","selected"],[1,"contents"],[1,"address","contents"],[1,"address-label"],[1,"blinking"],[1,"red-text"],[1,"left-area"],[1,"right-area","contents"],[1,"address"],[1,"green-text"]],template:function(i,o){1&i&&(f(0,"app-dialog",1),b(1,"translate"),f(2,"form",2)(3,"div",3)(4,"span"),m(5),b(6,"translate"),h(),f(7,"a",4),m(8),b(9,"translate"),h()(),f(10,"mat-form-field")(11,"div",5)(12,"label",6),m(13),b(14,"translate"),h(),B(15,"input",7),h(),f(16,"mat-error")(17,"span"),m(18),b(19,"translate"),h()()(),f(20,"div",3),m(21),b(22,"translate"),h(),f(23,"div",8),we(24,Mge,3,5,"div",9,Re),h()(),f(26,"div",10)(27,"app-button",11,0),L("action",function(){return o.processingStarted?o.closeModal():o.checkBeforeProcessing()}),S(29,Ege,2,3),S(30,Ige,2,3),h()()()),2&i&&(v("headline",y(1,13,"bulk-rewards.title"))("dialog",o.dialogRef)("disableDismiss",o.disableDismiss),d(2),v("formGroup",o.form),d(3),I("",y(6,15,"bulk-rewards.info")," "),d(3),I(" ",y(9,17,"bulk-rewards.more-info-link")," "),d(5),O(y(14,19,"rewards-address-config.address")),d(2),v("ngClass",oe(25,_ge,o.processingStarted)),d(3),O(y(19,21,"rewards-address-config.address-error")),d(3),I(" ",y(22,23,"bulk-rewards.select-visors")," "),d(3),xe(o.nodesToEdit),d(3),v("disabled",!o.formValid()),d(2),k(o.processingStarted?-1:29),d(),k(o.processingStarted?30:-1))},dependencies:[qt,Cn,rn,sn,yn,ji,Xt,fn,Jl,tu,wn,Es,ei,kr,On,Kt,Se],styles:[".text-container[_ngcontent-%COMP%]{word-break:break-word}mat-form-field[_ngcontent-%COMP%]{margin-top:10px}.list-container[_ngcontent-%COMP%]{font-size:14px;margin:10px;color:#215f9e;word-break:break-word}.list-container[_ngcontent-%COMP%] .element-margin[_ngcontent-%COMP%]{margin:15px 0}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%]{display:flex}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-area[_ngcontent-%COMP%]{width:12px;flex-grow:0;flex-shrink:0}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .right-area[_ngcontent-%COMP%]{flex-grow:1}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .contents[_ngcontent-%COMP%]{white-space:normal;line-height:1.2}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .address[_ngcontent-%COMP%]{font-size:.7rem;color:#777}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .address[_ngcontent-%COMP%] .address-label[_ngcontent-%COMP%]{opacity:.7}.buttons[_ngcontent-%COMP%]{margin-top:15px;text-align:right}.buttons[_ngcontent-%COMP%] app-button[_ngcontent-%COMP%]{margin-left:5px}"]})}}return t})(),Gf=(()=>{class t{constructor(e){this.dom=e}copy(e){let i=null;try{return i=this.dom.createElement("textarea"),i.style.height="0px",i.style.left="-100px",i.style.opacity="0",i.style.position="fixed",i.style.top="-100px",i.style.width="0px",this.dom.body.appendChild(i),i.value=e,i.select(),this.dom.execCommand("copy"),!0}catch{return!1}finally{i&&i.parentNode&&i.parentNode.removeChild(i)}}static{this.\u0275fac=function(i){return new(i||t)(le(Qe))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac})}}return t})(),Oge=(()=>{class t{constructor(e){this.http=e,this.rewardSystemUrl="/api/rewards",this.rewardDataCache=new Map,this.cachedDates=[],this.fetching=!1}getLastNDays(e){const i=[];for(let o=0;o0}fetchRewardData(e){return this.hasCache()?ae(this.rewardDataCache):(this.fetching=!0,kb(e.map(o=>this.http.get(`${this.rewardSystemUrl}/skycoin-rewards/visor/${o}?days=7`).pipe(ye(r=>({pk:o,history:r&&r.history?r.history:[]})),go(()=>ae({pk:o,history:[]}))))).pipe(ye(o=>{const r=new Map;for(const{pk:s,history:a}of o){const l={pk:s,rewardAddress:"",dailyAmounts:{},dailySent:{},weekTotal:0};for(const c of a)c.date&&(l.dailyAmounts[c.date]=c.amount||0,l.dailySent[c.date]=c.sent||!1,l.weekTotal+=c.amount||0);r.set(s,l)}return this.rewardDataCache=r,this.cachedDates=this.getLastNDays(7),this.fetching=!1,r}),go(o=>(this.fetching=!1,ae(new Map)))))}clearCache(){this.rewardDataCache=new Map,this.cachedDates=[]}static{this.\u0275fac=function(i){return new(i||t)(le(ga))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();class n5 extends JV{_origin="program";setFocusOrigin(n){return this._origin=n,this}setActiveItem(n){super.setActiveItem(n),this.activeItem&&this.activeItem.focus(this._origin)}}const Age=["mat-menu-item",""],Rge=[[["mat-icon"],["","matMenuItemIcon",""]],"*"],Nge=["mat-icon, [matMenuItemIcon]","*"];function Fge(t,n){1&t&&(Uc(),f(0,"svg",2),B(1,"polygon",3),h())}const Lge=["*"];function Bge(t,n){if(1&t){const e=ce();gs(0,"div",0),Fg("click",function(){return z(e),$(C().closed.emit("click"))})("animationstart",function(o){return z(e),$(C()._onAnimationStart(o.animationName))})("animationend",function(o){return z(e),$(C()._onAnimationDone(o.animationName))})("animationcancel",function(o){return z(e),$(C()._onAnimationDone(o.animationName))}),gs(1,"div",1),At(2),Tl()()}if(2&t){const e=C();at(e._classList),Ke("mat-menu-panel-animations-disabled",e._animationsDisabled)("mat-menu-panel-exit-animation","void"===e._panelAnimationState)("mat-menu-panel-animating",e._isAnimating()),Lr("id",e.panelId),Ze("aria-label",e.ariaLabel||null)("aria-labelledby",e.ariaLabelledby||null)("aria-describedby",e.ariaDescribedby||null)}}const Ck=new Z("MAT_MENU_PANEL");let Ps=(()=>{class t{_elementRef=D(Ae);_document=D(Qe);_focusMonitor=D(qd);_parentMenu=D(Ck,{optional:!0});_changeDetectorRef=D(Pn);role="menuitem";disabled=!1;disableRipple=!1;_hovered=new pe;_focused=new pe;_highlighted=!1;_triggersSubmenu=!1;constructor(){D(pr).load(Af),this._parentMenu?.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({overlapTrigger:!1,xPosition:"after",yPosition:"below",backdropClass:"cdk-overlay-transparent-backdrop"})}),wk="_mat-menu-enter",av="_mat-menu-exit";let Xr=(()=>{class t{_elementRef=D(Ae);_changeDetectorRef=D(Pn);_injector=D(Be);_keyManager;_xPosition;_yPosition;_firstItemFocusRef;_exitFallbackTimeout;_animationsDisabled=fi();_allItems;_directDescendantItems=new Zc;_classList={};_panelAnimationState="void";_animationDone=new pe;_isAnimating=yt(!1);parentMenu;direction;overlayPanelClass;backdropClass;ariaLabel;ariaLabelledby;ariaDescribedby;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()}templateRef;items;lazyContent;overlapTrigger=!1;hasBackdrop;set panelClass(e){const i=this._previousPanelClass,o={...this._classList};i&&i.length&&i.split(" ").forEach(r=>{o[r]=!1}),this._previousPanelClass=e,e&&e.length&&(e.split(" ").forEach(r=>{o[r]=!0}),this._elementRef.nativeElement.className=""),this._classList=o}_previousPanelClass;get classList(){return this.panelClass}set classList(e){this.panelClass=e}closed=new ve;close=this.closed;panelId=D(oi).getId("mat-menu-panel-");constructor(){const e=D(Hge);this.overlayPanelClass=e.overlayPanelClass||"",this._xPosition=e.xPosition,this._yPosition=e.yPosition,this.backdropClass=e.backdropClass,this.overlapTrigger=e.overlapTrigger,this.hasBackdrop=e.hasBackdrop}ngOnInit(){this.setPositionClasses()}ngAfterContentInit(){this._updateDirectDescendants(),this._keyManager=new n5(this._directDescendantItems).withWrap().withTypeAhead().withHomeAndEnd(),this._keyManager.tabOut.subscribe(()=>this.closed.emit("tab")),this._directDescendantItems.changes.pipe(to(this._directDescendantItems),Zn(e=>gr(...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._firstItemFocusRef?.destroy(),clearTimeout(this._exitFallbackTimeout)}_hovered(){return this._directDescendantItems.changes.pipe(to(this._directDescendantItems),Zn(i=>gr(...i.map(o=>o._hovered))))}addItem(e){}removeItem(e){}_handleKeydown(e){const i=e.keyCode,o=this._keyManager;switch(i){case 27:mr(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)}}focusFirstItem(e="program"){this._firstItemFocusRef?.destroy(),this._firstItemFocusRef=Fi(()=>{const i=this._resolvePanel();if(!i||!i.contains(document.activeElement)){const o=this._keyManager;o.setFocusOrigin(e).setFirstItemActive(),!o.activeItem&&i&&i.focus()}},{injector:this._injector})}resetActiveItem(){this._keyManager.setActiveItem(-1)}setElevation(e){}setPositionClasses(e=this.xPosition,i=this.yPosition){this._classList={...this._classList,"mat-menu-before":"before"===e,"mat-menu-after":"after"===e,"mat-menu-above":"above"===i,"mat-menu-below":"below"===i},this._changeDetectorRef.markForCheck()}_onAnimationDone(e){const i=e===av;(i||e===wk)&&(i&&(clearTimeout(this._exitFallbackTimeout),this._exitFallbackTimeout=void 0),this._animationDone.next(i?"void":"enter"),this._isAnimating.set(!1))}_onAnimationStart(e){(e===wk||e===av)&&this._isAnimating.set(!0)}_setIsOpen(e){if(this._panelAnimationState=e?"enter":"void",e){if(0===this._keyManager.activeItemIndex){const i=this._resolvePanel();i&&(i.scrollTop=0)}}else this._animationsDisabled||(this._exitFallbackTimeout=setTimeout(()=>this._onAnimationDone(av),200));this._animationsDisabled&&setTimeout(()=>{this._onAnimationDone(e?wk:av)}),this._changeDetectorRef.markForCheck()}_updateDirectDescendants(){this._allItems.changes.pipe(to(this._allItems)).subscribe(e=>{this._directDescendantItems.reset(e.filter(i=>i._parentMenu===this)),this._directDescendantItems.notifyOnChanges()})}_resolvePanel(){let e=null;return this._directDescendantItems.length&&(e=this._directDescendantItems.first._getHostElement().closest('[role="menu"]')),e}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["mat-menu"]],contentQueries:function(i,o,r){if(1&i&&_s(r,Vge,5)(r,Ps,5)(r,Ps,4),2&i){let s;ue(s=he())&&(o.lazyContent=s.first),ue(s=he())&&(o._allItems=s),ue(s=he())&&(o.items=s)}},viewQuery:function(i,o){if(1&i&&rt(Ci,5),2&i){let r;ue(r=he())&&(o.templateRef=r.first)}},hostVars:3,hostBindings:function(i,o){2&i&&Ze("aria-label",null)("aria-labelledby",null)("aria-describedby",null)},inputs:{backdropClass:"backdropClass",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],xPosition:"xPosition",yPosition:"yPosition",overlapTrigger:[2,"overlapTrigger","overlapTrigger",Ie],hasBackdrop:[2,"hasBackdrop","hasBackdrop",e=>null==e?null:Ie(e)],panelClass:[0,"class","panelClass"],classList:"classList"},outputs:{closed:"closed",close:"close"},exportAs:["matMenu"],features:[ht([{provide:Ck,useExisting:t}])],ngContentSelectors:Lge,decls:1,vars:0,consts:[["tabindex","-1","role","menu",1,"mat-mdc-menu-panel",3,"click","animationstart","animationend","animationcancel","id"],[1,"mat-mdc-menu-content"]],template:function(i,o){1&i&&(Si(),bg(0,Bge,3,12,"ng-template"))},styles:['mat-menu{display:none}.mat-mdc-menu-content{margin:0;padding:8px 0;outline:0}.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;flex:1;white-space:normal;font-family:var(--mat-menu-item-label-text-font, var(--mat-sys-label-large-font));line-height:var(--mat-menu-item-label-text-line-height, var(--mat-sys-label-large-line-height));font-size:var(--mat-menu-item-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mat-menu-item-label-text-tracking, var(--mat-sys-label-large-tracking));font-weight:var(--mat-menu-item-label-text-weight, var(--mat-sys-label-large-weight))}@keyframes _mat-menu-enter{from{opacity:0;transform:scale(0.8)}to{opacity:1;transform:none}}@keyframes _mat-menu-exit{from{opacity:1}to{opacity:0}}.mat-mdc-menu-panel{min-width:112px;max-width:280px;overflow:auto;box-sizing:border-box;outline:0;animation:_mat-menu-enter 120ms cubic-bezier(0, 0, 0.2, 1);border-radius:var(--mat-menu-container-shape, var(--mat-sys-corner-extra-small));background-color:var(--mat-menu-container-color, var(--mat-sys-surface-container));box-shadow:var(--mat-menu-container-elevation-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));will-change:transform,opacity}.mat-mdc-menu-panel.mat-menu-panel-exit-animation{animation:_mat-menu-exit 100ms 25ms linear forwards}.mat-mdc-menu-panel.mat-menu-panel-animations-disabled{animation:none}.mat-mdc-menu-panel.mat-menu-panel-animating{pointer-events:none}.mat-mdc-menu-panel.mat-menu-panel-animating:has(.mat-mdc-menu-content:empty){display:none}@media(forced-colors: active){.mat-mdc-menu-panel{outline:solid 1px}}.mat-mdc-menu-panel .mat-divider{border-top-color:var(--mat-menu-divider-color, var(--mat-sys-surface-variant));margin-bottom:var(--mat-menu-divider-bottom-spacing, 8px);margin-top:var(--mat-menu-divider-top-spacing, 8px)}.mat-mdc-menu-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;cursor:pointer;width:100%;text-align:left;box-sizing:border-box;color:inherit;font-size:inherit;background:none;text-decoration:none;margin:0;min-height:48px;padding-left:var(--mat-menu-item-leading-spacing, 12px);padding-right:var(--mat-menu-item-trailing-spacing, 12px);-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-menu-item::-moz-focus-inner{border:0}[dir=rtl] .mat-mdc-menu-item{padding-left:var(--mat-menu-item-trailing-spacing, 12px);padding-right:var(--mat-menu-item-leading-spacing, 12px)}.mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]){padding-left:var(--mat-menu-item-with-icon-leading-spacing, 12px);padding-right:var(--mat-menu-item-with-icon-trailing-spacing, 12px)}[dir=rtl] .mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]){padding-left:var(--mat-menu-item-with-icon-trailing-spacing, 12px);padding-right:var(--mat-menu-item-with-icon-leading-spacing, 12px)}.mat-mdc-menu-item,.mat-mdc-menu-item:visited,.mat-mdc-menu-item:link{color:var(--mat-menu-item-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-menu-item .mat-icon-no-color,.mat-mdc-menu-item .mat-mdc-menu-submenu-icon{color:var(--mat-menu-item-icon-color, var(--mat-sys-on-surface-variant))}.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:focus{outline:0}.mat-mdc-menu-item .mat-icon{flex-shrink:0;margin-right:var(--mat-menu-item-spacing, 12px);height:var(--mat-menu-item-icon-size, 24px);width:var(--mat-menu-item-icon-size, 24px)}[dir=rtl] .mat-mdc-menu-item{text-align:right}[dir=rtl] .mat-mdc-menu-item .mat-icon{margin-right:0;margin-left:var(--mat-menu-item-spacing, 12px)}.mat-mdc-menu-item:not([disabled]):hover{background-color:var(--mat-menu-item-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}.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, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent))}@media(forced-colors: active){.mat-mdc-menu-item{margin-top:1px}}.mat-mdc-menu-submenu-icon{width:var(--mat-menu-item-icon-size, 24px);height:10px;fill:currentColor;padding-left:var(--mat-menu-item-spacing, 12px)}[dir=rtl] .mat-mdc-menu-submenu-icon{padding-right:var(--mat-menu-item-spacing, 12px);padding-left:0}[dir=rtl] .mat-mdc-menu-submenu-icon polygon{transform:scaleX(-1);transform-origin:center}@media(forced-colors: 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}\n'],encapsulation:2,changeDetection:0})}return t})();const jge=new Z("mat-menu-scroll-strategy",{providedIn:"root",factory:()=>{const t=D(Be);return()=>Tf(t)}}),au=new WeakMap;let Uge=(()=>{class t{_canHaveBackdrop;_element=D(Ae);_viewContainerRef=D(wi);_menuItemInstance=D(Ps,{optional:!0,self:!0});_dir=D(hr,{optional:!0});_focusMonitor=D(qd);_ngZone=D(ge);_injector=D(Be);_scrollStrategy=D(jge);_changeDetectorRef=D(Pn);_animationsDisabled=fi();_portal;_overlayRef=null;_menuOpen=!1;_closingActionsSubscription=mt.EMPTY;_menuCloseSubscription=mt.EMPTY;_pendingRemoval;_parentMaterialMenu;_parentInnerPadding;_openedBy=void 0;get _menu(){return this._menuInternal}set _menu(e){e!==this._menuInternal&&(this._menuInternal=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()))}_menuInternal=null;constructor(e){this._canHaveBackdrop=e;const i=D(Ck,{optional:!0});this._parentMaterialMenu=i instanceof Xr?i:void 0}ngOnDestroy(){this._menu&&this._ownsMenu(this._menu)&&au.delete(this._menu),this._pendingRemoval?.unsubscribe(),this._menuCloseSubscription.unsubscribe(),this._closingActionsSubscription.unsubscribe(),this._overlayRef&&(this._overlayRef.dispose(),this._overlayRef=null)}get menuOpen(){return this._menuOpen}get dir(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}_triggersSubmenu(){return!!(this._menuItemInstance&&this._parentMaterialMenu&&this._menu)}_closeMenu(){this._menu?.close.emit()}_openMenu(e){if(this._triggerIsAriaDisabled())return;const i=this._menu;if(this._menuOpen||!i)return;this._pendingRemoval?.unsubscribe();const o=au.get(i);au.set(i,this),o&&o!==this&&o._closeMenu();const r=this._createOverlay(i),s=r.getConfig(),a=s.positionStrategy;this._setPosition(i,a),s.hasBackdrop=this._canHaveBackdrop?null==i.hasBackdrop?!this._triggersSubmenu():i.hasBackdrop:i.hasBackdrop??!1,r.hasAttached()||(r.attach(this._getPortal(i)),i.lazyContent?.attach(this.menuData)),this._closingActionsSubscription=this._menuClosingActions().subscribe(()=>this._closeMenu()),i.parentMenu=this._triggersSubmenu()?this._parentMaterialMenu:void 0,i.direction=this.dir,e&&i.focusFirstItem(this._openedBy||"program"),this._setIsMenuOpen(!0),i instanceof Xr&&(i._setIsOpen(!0),i._directDescendantItems.changes.pipe(on(i.close)).subscribe(()=>{a.withLockedPosition(!1).reapplyLastPosition(),a.withLockedPosition(!0)}))}focus(e,i){this._focusMonitor&&e?this._focusMonitor.focusVia(this._element,e,i):this._element.nativeElement.focus(i)}_destroyMenu(e){const i=this._overlayRef,o=this._menu;!i||!this.menuOpen||(this._closingActionsSubscription.unsubscribe(),this._pendingRemoval?.unsubscribe(),o instanceof Xr&&this._ownsMenu(o)?(this._pendingRemoval=o._animationDone.pipe(un(1)).subscribe(()=>{i.detach(),au.has(o)||o.lazyContent?.detach()}),o._setIsOpen(!1)):(i.detach(),o?.lazyContent?.detach()),o&&this._ownsMenu(o)&&au.delete(o),this.restoreFocus&&("keydown"===e||!this._openedBy||!this._triggersSubmenu())&&this.focus(this._openedBy),this._openedBy=void 0,this._setIsMenuOpen(!1))}_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=$d(this._injector,i),this._overlayRef.keydownEvents().subscribe(o=>{this._menu instanceof Xr&&this._menu._handleKeydown(o)})}return this._overlayRef}_getOverlayConfig(e){return new Mf({positionStrategy:fb(this._injector,this._getOverlayOrigin()).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||"ltr",disableAnimations:this._animationsDisabled})}_subscribeToPositions(e,i){e.setPositionClasses&&i.positionChanges.subscribe(o=>{this._ngZone.run(()=>{e.setPositionClasses("start"===o.connectionPair.overlayX?"after":"before","top"===o.connectionPair.overlayY?"below":"above")})})}_setPosition(e,i){let[o,r]="before"===e.xPosition?["end","start"]:["start","end"],[s,a]="above"===e.yPosition?["bottom","top"]:["top","bottom"],[l,c]=[s,a],[u,p]=[o,r],g=0;if(this._triggersSubmenu()){if(p=o="before"===e.xPosition?"start":"end",r=u="end"===o?"start":"end",this._parentMaterialMenu){if(null==this._parentInnerPadding){const _=this._parentMaterialMenu.items.first;this._parentInnerPadding=_?_._getHostElement().offsetTop:0}g="bottom"===s?this._parentInnerPadding:-this._parentInnerPadding}}else e.overlapTrigger||(l="top"===s?"bottom":"top",c="top"===a?"bottom":"top");i.withPositions([{originX:o,originY:l,overlayX:u,overlayY:s,offsetY:g},{originX:r,originY:l,overlayX:p,overlayY:s,offsetY:g},{originX:o,originY:c,overlayX:u,overlayY:a,offsetY:-g},{originX:r,originY:c,overlayX:p,overlayY:a,offsetY:-g}])}_menuClosingActions(){const e=this._getOutsideClickStream(this._overlayRef),i=this._overlayRef.detachments();return gr(e,this._parentMaterialMenu?this._parentMaterialMenu.closed:ae(),this._parentMaterialMenu?this._parentMaterialMenu._hovered().pipe(vn(s=>this._menuOpen&&s!==this._menuItemInstance)):ae(),i)}_getPortal(e){return(!this._portal||this._portal.templateRef!==e.templateRef)&&(this._portal=new $l(e.templateRef,this._viewContainerRef)),this._portal}_ownsMenu(e){return au.get(e)===this}_triggerIsAriaDisabled(){return Ie(this._element.nativeElement.getAttribute("aria-disabled"))}static \u0275fac=function(i){P1()};static \u0275dir=de({type:t})}return t})(),lu=(()=>{class t extends Uge{_cleanupTouchstart;_hoverSubscription=mt.EMPTY;get _deprecatedMatMenuTriggerFor(){return this.menu}set _deprecatedMatMenuTriggerFor(e){this.menu=e}get menu(){return this._menu}set menu(e){this._menu=e}menuData;restoreFocus=!0;menuOpened=new ve;onMenuOpen=this.menuOpened;menuClosed=new ve;onMenuClose=this.menuClosed;constructor(){super(!0);const e=D(Kn);this._cleanupTouchstart=e.listen(this._element.nativeElement,"touchstart",i=>{gS(i)||(this._openedBy="touch")},{passive:!0})}triggersSubmenu(){return super._triggersSubmenu()}toggleMenu(){return this.menuOpen?this.closeMenu():this.openMenu()}openMenu(){this._openMenu(!0)}closeMenu(){this._closeMenu()}updatePosition(){this._overlayRef?.updatePosition()}ngAfterContentInit(){this._handleHover()}ngOnDestroy(){super.ngOnDestroy(),this._cleanupTouchstart(),this._hoverSubscription.unsubscribe()}_getOverlayOrigin(){return this._element}_getOutsideClickStream(e){return e.backdropClick()}_handleMousedown(e){mS(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().subscribe(e=>{e===this._menuItemInstance&&!e.disabled&&"void"!==this._parentMaterialMenu?._panelAnimationState&&(this._openedBy="mouse",this._openMenu(!1))}))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","mat-menu-trigger-for",""],["","matMenuTriggerFor",""]],hostAttrs:[1,"mat-mdc-menu-trigger"],hostVars:3,hostBindings:function(i,o){1&i&&L("click",function(s){return o._handleClick(s)})("mousedown",function(s){return o._handleMousedown(s)})("keydown",function(s){return o._handleKeydown(s)}),2&i&&Ze("aria-haspopup",o.menu?"menu":null)("aria-expanded",o.menuOpen)("aria-controls",o.menuOpen?null==o.menu?null:o.menu.panelId:null)},inputs:{_deprecatedMatMenuTriggerFor:[0,"mat-menu-trigger-for","_deprecatedMatMenuTriggerFor"],menu:[0,"matMenuTriggerFor","menu"],menuData:[0,"matMenuTriggerData","menuData"],restoreFocus:[0,"matMenuTriggerRestoreFocus","restoreFocus"]},outputs:{menuOpened:"menuOpened",onMenuOpen:"onMenuOpen",menuClosed:"menuClosed",onMenuClose:"onMenuClose"},exportAs:["matMenuTrigger"],features:[be]})}return t})(),zge=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({imports:[DS,Wd,ri,xf]})}return t})();const i5=()=>["1"],Ta=t=>[t],o5=t=>({number:t});function $ge(t,n){if(1&t&&(f(0,"a",4)(1,"mat-icon",10),m(2,"chevron_left"),h(),m(3),b(4,"translate"),h()),2&t){const e=C();v("routerLink",e.linkParts.concat(Mt(6,i5)))("queryParams",e.queryParams),d(),v("inline",!0),d(2),I(" ",y(4,4,"paginator.first")," ")}}function Wge(t,n){if(1&t&&(f(0,"a",5)(1,"mat-icon",10),m(2,"chevron_left"),h(),f(3,"span",11),m(4),b(5,"translate"),h()()),2&t){const e=C();v("routerLink",e.linkParts.concat(Mt(6,i5)))("queryParams",e.queryParams),d(),v("inline",!0),d(3),O(y(5,4,"paginator.first"))}}function Gge(t,n){if(1&t&&(f(0,"a",4)(1,"div")(2,"mat-icon",10),m(3,"chevron_left"),h()()()),2&t){const e=C();v("routerLink",e.linkParts.concat(oe(3,Ta,(e.currentPage-1).toString())))("queryParams",e.queryParams),d(2),v("inline",!0)}}function qge(t,n){if(1&t&&(f(0,"a",4),m(1),h()),2&t){const e=C();v("routerLink",e.linkParts.concat(oe(3,Ta,(e.currentPage-2).toString())))("queryParams",e.queryParams),d(),O(e.currentPage-2)}}function Kge(t,n){if(1&t&&(f(0,"a",6),m(1),h()),2&t){const e=C();v("routerLink",e.linkParts.concat(oe(3,Ta,(e.currentPage-1).toString())))("queryParams",e.queryParams),d(),O(e.currentPage-1)}}function Yge(t,n){if(1&t&&(f(0,"a",6),m(1),h()),2&t){const e=C();v("routerLink",e.linkParts.concat(oe(3,Ta,(e.currentPage+1).toString())))("queryParams",e.queryParams),d(),O(e.currentPage+1)}}function Xge(t,n){if(1&t&&(f(0,"a",4),m(1),h()),2&t){const e=C();v("routerLink",e.linkParts.concat(oe(3,Ta,(e.currentPage+2).toString())))("queryParams",e.queryParams),d(),O(e.currentPage+2)}}function Zge(t,n){if(1&t&&(f(0,"a",4)(1,"div")(2,"mat-icon",10),m(3,"chevron_right"),h()()()),2&t){const e=C();v("routerLink",e.linkParts.concat(oe(3,Ta,(e.currentPage+1).toString())))("queryParams",e.queryParams),d(2),v("inline",!0)}}function Qge(t,n){if(1&t&&(f(0,"a",4),m(1),b(2,"translate"),f(3,"mat-icon",10),m(4,"chevron_right"),h()()),2&t){const e=C();v("routerLink",e.linkParts.concat(oe(6,Ta,e.numberOfPages.toString())))("queryParams",e.queryParams),d(),I(" ",y(2,4,"paginator.last")," "),d(2),v("inline",!0)}}function Jge(t,n){if(1&t&&(f(0,"a",5)(1,"mat-icon",10),m(2,"chevron_right"),h(),f(3,"span",11),m(4),b(5,"translate"),h()()),2&t){const e=C();v("routerLink",e.linkParts.concat(oe(6,Ta,e.numberOfPages.toString())))("queryParams",e.queryParams),d(),v("inline",!0),d(3),O(y(5,4,"paginator.last"))}}function e_e(t,n){if(1&t&&(f(0,"div",8),m(1),b(2,"translate"),h()),2&t){const e=C();d(),O(Ee(2,1,"paginator.total",oe(4,o5,e.numberOfPages)))}}function t_e(t,n){if(1&t&&(f(0,"div",9),m(1),b(2,"translate"),h()),2&t){const e=C();d(),O(Ee(2,1,"paginator.total",oe(4,o5,e.numberOfPages)))}}let cu=(()=>{class t{constructor(e,i){this.dialog=e,this.router=i,this.linkParts=[""],this.queryParams={}}openSelectionDialog(){const e=[];for(let i=1;i<=this.numberOfPages;i++)e.push({label:i.toString()});oo.openDialog(this.dialog,e,"paginator.select-page-title").afterClosed().subscribe(i=>{i&&this.router.navigate(this.linkParts.concat([i.toString()]),{queryParams:this.queryParams})})}static{this.\u0275fac=function(i){return new(i||t)(P(kt),P(vt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-paginator"]],inputs:{currentPage:"currentPage",numberOfPages:"numberOfPages",linkParts:"linkParts",queryParams:"queryParams"},standalone:!1,decls:21,vars:13,consts:[[1,"main-container"],[1,"d-inline-block","small-rounded-elevated-box","mt-3"],[1,"d-flex"],[1,"responsive-height","d-md-none"],[1,"d-none","d-md-flex",3,"routerLink","queryParams"],[1,"d-flex","d-md-none","flex-column",3,"routerLink","queryParams"],[3,"routerLink","queryParams"],[1,"selected",3,"click"],[1,"d-none","d-md-block","total-pages"],[1,"d-block","d-md-none","total-pages"],[3,"inline"],[1,"label"]],template:function(i,o){1&i&&(f(0,"div",0)(1,"div",1)(2,"div",2)(3,"div",3),m(4,"\xa0"),B(5,"br"),m(6,"\xa0"),h(),S(7,$ge,5,7,"a",4),S(8,Wge,6,7,"a",5),S(9,Gge,4,5,"a",4),S(10,qge,2,5,"a",4),S(11,Kge,2,5,"a",6),f(12,"a",7),L("click",function(){return o.openSelectionDialog()}),m(13),h(),S(14,Yge,2,5,"a",6),S(15,Xge,2,5,"a",4),S(16,Zge,4,5,"a",4),S(17,Qge,5,8,"a",4),S(18,Jge,6,8,"a",5),h()(),S(19,e_e,3,6,"div",8),S(20,t_e,3,6,"div",9),h()),2&i&&(d(7),k(o.currentPage>3?7:-1),d(),k(o.currentPage>2?8:-1),d(),k(o.currentPage>1?9:-1),d(),k(o.currentPage>2?10:-1),d(),k(o.currentPage>1?11:-1),d(2),O(o.currentPage),d(),k(o.currentPage3?19:-1),d(),k(o.numberOfPages>2?20:-1))},dependencies:[wa,lt,Se],styles:[".main-container[_ngcontent-%COMP%]{text-align:right}.main-container[_ngcontent-%COMP%] .responsive-height[_ngcontent-%COMP%]{padding:10px 0;width:0px}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{padding:10px;border-right:rgba(255,255,255,.15) solid 1px;border-left:rgba(255,255,255,.15) solid 1px;min-width:40px;text-align:center;color:#f8f9f980;text-decoration:none;display:flex;align-items:center;justify-content:center}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{background:#0003}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:2px}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{font-size:.7rem}.main-container[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%]{color:#f8f9f9;background:#0000005c;padding:10px 20px;cursor:pointer}.main-container[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%]:hover{background:#0009}.main-container[_ngcontent-%COMP%] .total-pages[_ngcontent-%COMP%]{font-size:.6rem;margin-top:-3px;margin-right:4px}"]})}}return t})();function qf(t){return bn((n,e)=>{let i,r,o=!1;const s=()=>{i=n.subscribe(en(e,void 0,void 0,a=>{r||(r=new pe,Vi(t(r)).subscribe(en(e,()=>i?s():o=!0))),r&&r.next(a)})),o&&(i.unsubscribe(),i=null,o=!1,s())};s()})}const Zr={AF:"Afghanistan",AX:"Aland Islands",AL:"Albania",DZ:"Algeria",AS:"American Samoa",AD:"Andorra",AO:"Angola",AI:"Anguilla",AQ:"Antarctica",AG:"Antigua and Barbuda",AR:"Argentina",AM:"Armenia",AW:"Aruba",AU:"Australia",AT:"Austria",AZ:"Azerbaijan",BS:"Bahamas",BH:"Bahrain",BD:"Bangladesh",BB:"Barbados",BY:"Belarus",BE:"Belgium",BZ:"Belize",BJ:"Benin",BM:"Bermuda",BT:"Bhutan",BO:"Bolivia",BA:"Bosnia and Herzegovina",BW:"Botswana",BV:"Bouvet Island",BR:"Brazil",IO:"British Indian Ocean Territory",BN:"Brunei Darussalam",BG:"Bulgaria",BF:"Burkina Faso",BI:"Burundi",KH:"Cambodia",CM:"Cameroon",CA:"Canada",CV:"Cape Verde",KY:"Cayman Islands",CF:"Central African Republic",TD:"Chad",CL:"Chile",CN:"China",CX:"Christmas Island",CC:"Cocos (Keeling) Islands",CO:"Colombia",KM:"Comoros",CG:"Congo",CD:"Congo, Democratic Republic",CK:"Cook Islands",CR:"Costa Rica",CI:"Cote D'Ivoire",HR:"Croatia",CU:"Cuba",CY:"Cyprus",CZ:"Czech Republic",DK:"Denmark",DJ:"Djibouti",DM:"Dominica",DO:"Dominican Republic",EC:"Ecuador",EG:"Egypt",SV:"El Salvador",GQ:"Equatorial Guinea",ER:"Eritrea",EE:"Estonia",ET:"Ethiopia",FK:"Falkland Islands (Malvinas)",FO:"Faroe Islands",FJ:"Fiji",FI:"Finland",FR:"France",GF:"French Guiana",PF:"French Polynesia",TF:"French Southern Territories",GA:"Gabon",GM:"Gambia",GE:"Georgia",DE:"Germany",GH:"Ghana",GI:"Gibraltar",GR:"Greece",GL:"Greenland",GD:"Grenada",GP:"Guadeloupe",GU:"Guam",GT:"Guatemala",GG:"Guernsey",GN:"Guinea",GW:"Guinea-Bissau",GY:"Guyana",HT:"Haiti",HM:"Heard Island and Mcdonald Islands",VA:"Holy See (Vatican City State)",HN:"Honduras",HK:"Hong Kong",HU:"Hungary",IS:"Iceland",IN:"India",ID:"Indonesia",IR:"Iran",IQ:"Iraq",IE:"Ireland",IM:"Isle of Man",IL:"Israel",IT:"Italy",JM:"Jamaica",JP:"Japan",JE:"Jersey",JO:"Jordan",KZ:"Kazakhstan",KE:"Kenya",KI:"Kiribati",KP:"Korea (North)",KR:"Korea (South)",XK:"Kosovo",KW:"Kuwait",KG:"Kyrgyzstan",LA:"Laos",LV:"Latvia",LB:"Lebanon",LS:"Lesotho",LR:"Liberia",LY:"Libyan Arab Jamahiriya",LI:"Liechtenstein",LT:"Lithuania",LU:"Luxembourg",MO:"Macao",MK:"Macedonia",MG:"Madagascar",MW:"Malawi",MY:"Malaysia",MV:"Maldives",ML:"Mali",MT:"Malta",MH:"Marshall Islands",MQ:"Martinique",MR:"Mauritania",MU:"Mauritius",YT:"Mayotte",MX:"Mexico",FM:"Micronesia",MD:"Moldova",MC:"Monaco",MN:"Mongolia",MS:"Montserrat",MA:"Morocco",MZ:"Mozambique",MM:"Myanmar",NA:"Namibia",NR:"Nauru",NP:"Nepal",NL:"Netherlands",AN:"Netherlands Antilles",NC:"New Caledonia",NZ:"New Zealand",NI:"Nicaragua",NE:"Niger",NG:"Nigeria",NU:"Niue",NF:"Norfolk Island",MP:"Northern Mariana Islands",NO:"Norway",OM:"Oman",PK:"Pakistan",PW:"Palau",PS:"Palestinian Territory, Occupied",PA:"Panama",PG:"Papua New Guinea",PY:"Paraguay",PE:"Peru",PH:"Philippines",PN:"Pitcairn",PL:"Poland",PT:"Portugal",PR:"Puerto Rico",QA:"Qatar",RE:"Reunion",RO:"Romania",RU:"Russian Federation",RW:"Rwanda",SH:"Saint Helena",KN:"Saint Kitts and Nevis",LC:"Saint Lucia",PM:"Saint Pierre and Miquelon",VC:"Saint Vincent and the Grenadines",WS:"Samoa",SM:"San Marino",ST:"Sao Tome and Principe",SA:"Saudi Arabia",SN:"Senegal",RS:"Serbia",ME:"Montenegro",SC:"Seychelles",SL:"Sierra Leone",SG:"Singapore",SK:"Slovakia",SI:"Slovenia",SB:"Solomon Islands",SO:"Somalia",ZA:"South Africa",GS:"South Georgia and the South Sandwich Islands",ES:"Spain",LK:"Sri Lanka",SD:"Sudan",SR:"Suriname",SJ:"Svalbard and Jan Mayen",SZ:"Swaziland",SE:"Sweden",CH:"Switzerland",SY:"Syrian Arab Republic",TW:"Taiwan, Province of China",TJ:"Tajikistan",TZ:"Tanzania",TH:"Thailand",TL:"Timor-Leste",TG:"Togo",TK:"Tokelau",TO:"Tonga",TT:"Trinidad and Tobago",TN:"Tunisia",TR:"Turkey",TM:"Turkmenistan",TC:"Turks and Caicos Islands",TV:"Tuvalu",UG:"Uganda",UA:"Ukraine",AE:"United Arab Emirates",GB:"United Kingdom",US:"United States",UM:"United States Minor Outlying Islands",UY:"Uruguay",UZ:"Uzbekistan",VU:"Vanuatu",VE:"Venezuela",VN:"Viet Nam",VG:"Virgin Islands, British",VI:"Virgin Islands, U.S.",WF:"Wallis and Futuna",EH:"Western Sahara",YE:"Yemen",ZM:"Zambia",ZW:"Zimbabwe",ZZ:"Unknown"};let Os=(()=>{class t{constructor(e){this.apiService=e}changeAppState(e,i,o){return this.apiService.put(`visors/${e}/apps/${encodeURIComponent(i)}`,{status:o?1:0})}changeAppAutostart(e,i,o){return this.changeAppSettings(e,i,{autostart:o})}changeAppSettings(e,i,o){return this.apiService.put(`visors/${e}/apps/${encodeURIComponent(i)}`,o)}getLogMessages(e,i,o){const s=EN(-1!==o?Date.now()-864e5*o:0,"yyyy-MM-ddTHH:mm:ssZZZZZ","en-US");return this.apiService.get(this.getLogMessagesUrl(e,i)+`?since=${s}`).pipe(ye(a=>a.logs))}getLogMessagesUrl(e,i){return`visors/${e}/apps/${encodeURIComponent(i)}/logs`}static{this.\u0275fac=function(i){return new(i||t)(le(br))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();var an=function(t){return t.None="None",t.Favorite="Favorite",t.Blocked="Blocked",t}(an||{}),qo=function(t){return t.BitsSpeedAndBytesVolume="BitsSpeedAndBytesVolume",t.OnlyBytes="OnlyBytes",t.OnlyBits="OnlyBits",t}(qo||{});let rc=(()=>{class t{constructor(e,i){this.router=e,this.storageService=i,this.maxHistoryElements=30,this.savedServersStorageKey="VpnServers",this.checkIpSettingStorageKey="VpnGetIp",this.dataUnitsSettingStorageKey="VpnDataUnits",this.serversMap=new Map,this.savedDataVersion=0,this.currentServerSubject=new no(1),this.historySubject=new no(1),this.favoritesSubject=new no(1),this.blockedSubject=new no(1)}initialize(){this.migrateDataToHvStorage(),this.serversMap=new Map;const e=this.storageService.getDataForHv(this.savedServersStorageKey);if(e){const i=JSON.parse(e);i.serverList.forEach(o=>{this.serversMap.set(o.pk,o)}),this.savedDataVersion=i.version,i.selectedServerPk&&this.updateCurrentServerPk(i.selectedServerPk)}this.launchListEvents()}migrateDataToHvStorage(){const e=localStorage.getItem(this.savedServersStorageKey);e&&(this.storageService.setDataForHv(this.savedServersStorageKey,e),localStorage.removeItem(this.savedServersStorageKey));const i=localStorage.getItem(this.checkIpSettingStorageKey);i&&(this.storageService.setDataForHv(this.checkIpSettingStorageKey,i),localStorage.removeItem(this.checkIpSettingStorageKey));const o=localStorage.getItem(this.dataUnitsSettingStorageKey);o&&(this.storageService.setDataForHv(this.dataUnitsSettingStorageKey,o),localStorage.removeItem(this.dataUnitsSettingStorageKey))}get currentServer(){return this.serversMap.get(this.currentServerPk)}get currentServerObservable(){return this.currentServerSubject.asObservable()}get history(){return this.historySubject.asObservable()}get favorites(){return this.favoritesSubject.asObservable()}get blocked(){return this.blockedSubject.asObservable()}getSavedVersion(e,i){return i&&this.checkIfDataWasChanged(),this.serversMap.get(e)}getCheckIpSetting(){const e=this.storageService.getDataForHv(this.checkIpSettingStorageKey);return null==e||"false"!==e}setCheckIpSetting(e){this.storageService.setDataForHv(this.checkIpSettingStorageKey,e?"true":"false")}getDataUnitsSetting(){return this.storageService.getDataForHv(this.dataUnitsSettingStorageKey)??qo.BitsSpeedAndBytesVolume}setDataUnitsSetting(e){this.storageService.setDataForHv(this.dataUnitsSettingStorageKey,e)}updateFromDiscovery(e){this.checkIfDataWasChanged(),e.forEach(i=>{if(this.serversMap.has(i.pk)){const o=this.serversMap.get(i.pk);o.countryCode=i.countryCode,o.name=i.name,o.location=i.location,o.note=i.note}}),this.saveData()}updateServer(e){this.serversMap.set(e.pk,e),this.cleanServers(),this.saveData()}processFromDiscovery(e){this.checkIfDataWasChanged();const i=this.serversMap.get(e.pk);return i?(i.countryCode=e.countryCode,i.name=e.name,i.location=e.location,i.note=e.note,this.saveData(),i):{countryCode:e.countryCode,name:e.name,customName:null,pk:e.pk,lastUsed:0,inHistory:!1,flag:an.None,location:e.location,personalNote:null,note:e.note,enteredManually:!1,usedWithPassword:!1}}processFromManual(e){this.checkIfDataWasChanged();const i=this.serversMap.get(e.pk);return i?(i.customName=e.name,i.personalNote=e.note,i.enteredManually=!0,this.saveData(),i):{countryCode:"zz",name:"",customName:e.name,pk:e.pk,lastUsed:0,inHistory:!1,flag:an.None,location:"",personalNote:e.note,note:"",enteredManually:!0,usedWithPassword:!1}}changeFlag(e,i){this.checkIfDataWasChanged();const o=this.serversMap.get(e.pk);o&&(e=o),e.flag!==i&&(e.flag=i,this.serversMap.has(e.pk)||this.serversMap.set(e.pk,e),this.cleanServers(),this.saveData())}removeFromHistory(e){this.checkIfDataWasChanged();const i=this.serversMap.get(e);!i||!i.inHistory||(i.inHistory=!1,this.cleanServers(),this.saveData())}modifyCurrentServer(e){this.checkIfDataWasChanged(),e.pk!==this.currentServerPk&&(this.serversMap.has(e.pk)||this.serversMap.set(e.pk,e),this.updateCurrentServerPk(e.pk),this.cleanServers(),this.saveData())}compareCurrentServer(e){if(this.checkIfDataWasChanged(),e){if(!this.currentServerPk||this.currentServerPk!==e){if(this.currentServerPk=e,!this.serversMap.get(e)){const o=this.processFromManual({pk:e});this.serversMap.set(o.pk,o),this.cleanServers()}this.saveData(),this.currentServerSubject.next(this.currentServer)}}else this.currentServerPk&&(this.currentServerPk=null,this.saveData(),this.currentServerSubject.next(this.currentServer))}updateHistory(){this.checkIfDataWasChanged(),this.currentServer.lastUsed=Date.now(),this.currentServer.inHistory=!0;let e=[];this.serversMap.forEach(o=>{o.inHistory&&e.push(o)}),e=e.sort((o,r)=>r.lastUsed-o.lastUsed);let i=0;e.forEach(o=>{i{!i.inHistory&&i.flag===an.None&&i.pk!==this.currentServerPk&&!i.customName&&!i.personalNote&&e.push(i.pk)}),e.forEach(i=>{this.serversMap.delete(i)})}saveData(){let e=0;const i=this.storageService.getDataForHv(this.savedServersStorageKey);if(i&&(e=JSON.parse(i).version),e!==this.savedDataVersion)return void this.router.navigate(["vpn","unavailable"],{queryParams:{problem:"storage"}});this.savedDataVersion+=1;const o={version:this.savedDataVersion,serverList:Array.from(this.serversMap.values()),selectedServerPk:this.currentServerPk},r=JSON.stringify(o);this.storageService.setDataForHv(this.savedServersStorageKey,r),this.launchListEvents()}checkIfDataWasChanged(){let e=0;const i=this.storageService.getDataForHv(this.savedServersStorageKey);i&&(e=JSON.parse(i).version),e!==this.savedDataVersion&&this.initialize()}launchListEvents(){const e=[],i=[],o=[];this.serversMap.forEach(r=>{r.inHistory&&e.push(r),r.flag===an.Favorite&&i.push(r),r.flag===an.Blocked&&o.push(r)}),this.historySubject.next(e),this.favoritesSubject.next(i),this.blockedSubject.next(o)}updateCurrentServerPk(e){this.currentServerPk=e,this.currentServerSubject.next(this.currentServer)}static{this.\u0275fac=function(i){return new(i||t)(le(vt),le(zn))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();var Zt=function(t){return t.Stopped="stopped",t.Connecting="Connecting",t.Running="Running",t.ShuttingDown="Shutting down",t.Reconnecting="Connection failed, reconnecting",t}(Zt||{});class n_e{constructor(){this.updateDate=Date.now()}}class i_e{}class o_e{constructor(){this.latency=0,this.uploadSpeed=0,this.downloadSpeed=0,this.totalUploaded=0,this.totalDownloaded=0,this.connectionDuration=0,this.error=""}}var Pi=function(t){return t[t.PerformingInitialCheck=1]="PerformingInitialCheck",t[t.Off=10]="Off",t[t.Starting=20]="Starting",t[t.Running=100]="Running",t[t.Disconnecting=200]="Disconnecting",t}(Pi||{}),Dr=function(t){return t[t.Busy=1]="Busy",t[t.Ok=2]="Ok",t[t.MustStop=3]="MustStop",t[t.SamePkRunning=4]="SamePkRunning",t[t.SamePkStopped=5]="SamePkStopped",t}(Dr||{});let sc=(()=>{class t{constructor(e,i,o,r,s,a,l){this.apiService=e,this.appsService=i,this.router=o,this.vpnSavedDataService=r,this.http=s,this.snackbarService=a,this.translateService=l,this.vpnClientAppName="vpn-client",this.standardWaitTime=2e3,this.stateSubject=new _i(null),this.errorSubject=new _i(!1),this.working=!0,this.requestedServer=null,this.requestedPassword=null,this.updatesStopped=!1,this.currentEventData=new n_e,this.currentEventData.busy=!0,this.lastServiceState=Pi.PerformingInitialCheck}initialize(e){e&&(this.nodeKey?e!==this.nodeKey?this.router.navigate(["vpn","unavailable"],{queryParams:{problem:"pkChange"}}):this.updatesStopped&&(this.updatesStopped=!1,this.updateData()):(this.nodeKey=e,this.vpnSavedDataService.initialize(),this.updateData()))}get backendState(){return this.stateSubject.asObservable()}get errorsConnecting(){return this.errorSubject.asObservable()}updateData(){this.continuallyUpdateData(0)}start(){return!this.working&&this.lastServiceState<20&&(this.changeAppState(!0),!0)}stop(){return!this.working&&this.lastServiceState>=20&&this.lastServiceState<200&&(this.changeAppState(!1),!0)}getIpData(){return this.http.request("GET",window.location.protocol+"//ip.skycoin.com/").pipe(qf(e=>ks(e.pipe(ii(this.standardWaitTime),un(4)),cr(""))),ye(e=>[e&&e.ip_address?e.ip_address:this.translateService.instant("common.unknown"),e&&e.country_name?e.country_name:this.translateService.instant("common.unknown")]))}changeServerUsingHistory(e,i){return this.requestedServer=e,this.requestedPassword=i,this.updateRequestedServerPasswordSetting(),this.changeServer()}changeServerUsingDiscovery(e,i){return this.requestedServer=this.vpnSavedDataService.processFromDiscovery(e),this.requestedPassword=i,this.updateRequestedServerPasswordSetting(),this.changeServer()}changeServerManually(e,i){return this.requestedServer=this.vpnSavedDataService.processFromManual(e),this.requestedPassword=i,this.updateRequestedServerPasswordSetting(),this.changeServer()}updateRequestedServerPasswordSetting(){this.requestedServer.usedWithPassword=!!this.requestedPassword&&""!==this.requestedPassword;const e=this.vpnSavedDataService.getSavedVersion(this.requestedServer.pk,!0);e&&(e.usedWithPassword=this.requestedServer.usedWithPassword,this.vpnSavedDataService.updateServer(e))}changeServer(){return!this.working&&(this.stop()||this.processServerChange(),!0)}checkNewPk(e){return this.working?Dr.Busy:this.lastServiceState!==Pi.Off?e===this.vpnSavedDataService.currentServer.pk?Dr.SamePkRunning:Dr.MustStop:this.vpnSavedDataService.currentServer&&e===this.vpnSavedDataService.currentServer.pk?Dr.SamePkStopped:Dr.Ok}processServerChange(){this.dataSubscription&&this.dataSubscription.unsubscribe();const e={pk:this.requestedServer.pk};e.passcode=this.requestedPassword?this.requestedPassword:"",this.stopContinuallyUpdatingData(),this.working=!0,this.sendUpdate(),this.dataSubscription=this.appsService.changeAppSettings(this.nodeKey,this.vpnClientAppName,e).subscribe(()=>{this.vpnSavedDataService.modifyCurrentServer(this.requestedServer),this.requestedServer=null,this.requestedPassword=null,this.working=!1,this.start()},i=>{i=Je(i),this.snackbarService.showError("vpn.server-change.backend-error",null,!1,i.originalServerErrorMsg),this.working=!1,this.requestedServer=null,this.requestedPassword=null,this.sendUpdate(),this.updateData()})}changeAppState(e){if(this.working)return;this.stopContinuallyUpdatingData(),this.working=!0,this.sendUpdate();const i={status:1};e?(this.lastServiceState=Pi.Starting,this.connectionHistoryPk=null):(this.lastServiceState=Pi.Disconnecting,i.status=0),this.dataSubscription&&this.dataSubscription.unsubscribe(),this.dataSubscription=this.appsService.changeAppSettings(this.nodeKey,this.vpnClientAppName,i).pipe(go(o=>this.getVpnClientState().pipe(Et(r=>{if(r){if(e&&r.running)return ae(!0);if(!e&&!r.running)return ae(!0)}return cr(o)}))),qf(o=>ks(o.pipe(ii(this.standardWaitTime),un(3)),o.pipe(Et(r=>cr(r)))))).subscribe(o=>{this.working=!1;const r=this.processAppData(o);this.lastServiceState=r.running?Pi.Running:Pi.Off,this.currentEventData.vpnClientAppData=r,this.currentEventData.updateDate=Date.now(),this.sendUpdate(),this.updateData(),!e&&this.requestedServer&&this.processServerChange()},o=>{o=Je(o),this.snackbarService.showError(this.lastServiceState===Pi.Starting?"vpn.status-page.problem-starting-error":this.lastServiceState===Pi.Disconnecting?"vpn.status-page.problem-stopping-error":"vpn.status-page.generic-problem-error",null,!1,o.originalServerErrorMsg),this.working=!1,this.sendUpdate(),this.updateData()})}continuallyUpdateData(e){if(this.working&&this.lastServiceState!==Pi.PerformingInitialCheck)return;this.continuousUpdateSubscription&&this.continuousUpdateSubscription.unsubscribe();let i=0;this.continuousUpdateSubscription=ae(0).pipe(ii(e),Et(()=>this.getVpnClientState()),qf(o=>o.pipe(Et(r=>(this.errorSubject.next(!0),Kr.currentInstance.showDataProblemMsg(),(r=Je(r)).originalError&&r.originalError.status&&401===r.originalError.status?cr(r):this.lastServiceState!==Pi.PerformingInitialCheck||i<4?(i+=1,ae(r).pipe(ii(this.standardWaitTime))):cr(r)))))).subscribe(o=>{o?(this.errorSubject.next(!1),Kr.currentInstance.hideDataProblemMsg(),this.lastServiceState===Pi.PerformingInitialCheck&&(this.working=!1),this.vpnSavedDataService.compareCurrentServer(o.serverPk),this.lastServiceState=o.running?Pi.Running:Pi.Off,this.currentEventData.vpnClientAppData=o,this.currentEventData.updateDate=Date.now(),this.sendUpdate()):this.lastServiceState===Pi.PerformingInitialCheck&&(this.router.navigate(["vpn","unavailable"]),this.nodeKey=null,this.updatesStopped=!0),this.continuallyUpdateData(this.standardWaitTime)},o=>{(o=Je(o)).originalError&&o.originalError.status&&401===o.originalError.status||(this.router.navigate(["vpn","unavailable"]),this.nodeKey=null),this.updatesStopped=!0})}stopContinuallyUpdatingData(){this.continuousUpdateSubscription&&this.continuousUpdateSubscription.unsubscribe()}getVpnClientState(){let e;const i=new _r;return i.vpnKeyForAuth=this.nodeKey,this.apiService.get(`visors/${this.nodeKey}/summary`,i).pipe(Et(o=>{let r;if(o&&o.overview)if(this.visorPublicIp=o.overview.public_ip&&o.overview.public_ip.trim()?o.overview.public_ip:null,o.overview.country_code){this.visorCountryCode=o.overview.country_code;const s=Zr[o.overview.country_code.toUpperCase()];this.visorCountryName=s||o.overview.country_code}else this.visorCountryCode=null,this.visorCountryName=null;if(o&&o.overview&&o.overview.apps&&o.overview.apps.length>0&&o.overview.apps.forEach(s=>{s.name===this.vpnClientAppName&&(r=s)}),r&&(e=this.processAppData(r)),e.minHops=o.min_hops?o.min_hops:0,e&&e.running){const s=new _r;return s.vpnKeyForAuth=this.nodeKey,this.apiService.get(`visors/${this.nodeKey}/apps/${this.vpnClientAppName}/connections`,s)}return ae(null)}),ye(o=>{if(o&&o.length>0){const r=new o_e;o.forEach(s=>{r.latency+=s.latency/o.length,r.uploadSpeed+=s.upload_speed/o.length,r.downloadSpeed+=s.download_speed/o.length,r.totalUploaded+=s.bandwidth_sent,r.totalDownloaded+=s.bandwidth_received,s.error&&(r.error=s.error),s.connection_duration>r.connectionDuration&&(r.connectionDuration=s.connection_duration)}),(!this.connectionHistoryPk||this.connectionHistoryPk!==e.serverPk)&&(this.connectionHistoryPk=e.serverPk,this.uploadSpeedHistory=[0,0,0,0,0,0,0,0,0,0],this.downloadSpeedHistory=[0,0,0,0,0,0,0,0,0,0],this.latencyHistory=[0,0,0,0,0,0,0,0,0,0]),r.latency=Math.round(r.latency),r.uploadSpeed=Math.round(r.uploadSpeed),r.downloadSpeed=Math.round(r.downloadSpeed),r.totalUploaded=Math.round(r.totalUploaded),r.totalDownloaded=Math.round(r.totalDownloaded),this.uploadSpeedHistory.splice(0,1),this.uploadSpeedHistory.push(r.uploadSpeed),r.uploadSpeedHistory=this.uploadSpeedHistory,this.downloadSpeedHistory.splice(0,1),this.downloadSpeedHistory.push(r.downloadSpeed),r.downloadSpeedHistory=this.downloadSpeedHistory,this.latencyHistory.splice(0,1),this.latencyHistory.push(r.latency),r.latencyHistory=this.latencyHistory,e.connectionData=r}return e}))}processAppData(e){const i=new i_e;if(i.running=0!==e.status&&2!==e.status,i.connectionDuration=e.connection_duration,i.appState=Zt.Stopped,i.running?e.detailed_status===Zt.Connecting||3===e.status?i.appState=Zt.Connecting:e.detailed_status===Zt.Running?i.appState=Zt.Running:e.detailed_status===Zt.ShuttingDown?i.appState=Zt.ShuttingDown:e.detailed_status===Zt.Reconnecting&&(i.appState=Zt.Reconnecting):2===e.status&&(i.lastErrorMsg=e.detailed_status,i.lastErrorMsg||(i.lastErrorMsg=this.translateService.instant("vpn.status-page.unknown-error"))),i.killswitch=!1,e.args&&e.args.length>0)for(let o=0;o{class t{static openDialog(e,i){const o=new Lt;return o.data=i,o.autoFocus=!1,o.width=ze.mediumModalWidth,e.open(t,o)}constructor(e,i,o,r,s){this.dialogRef=e,this.data=i,this.formBuilder=o,this.snackbarService=r,this.vpnSavedDataService=s}ngOnInit(){this.form=this.formBuilder.group({value:[(this.data.editName?this.data.server.customName:this.data.server.personalNote)||""]}),setTimeout(()=>this.firstInput.nativeElement.focus())}process(){let e=this.vpnSavedDataService.getSavedVersion(this.data.server.pk,!0);e=e||this.data.server;const i=this.form.get("value").value;i!==(this.data.editName?this.data.server.customName:this.data.server.personalNote)?(this.data.editName?e.customName=i:e.personalNote=i,this.vpnSavedDataService.updateServer(e),this.snackbarService.showDone("vpn.server-options.edit-value.changes-made-confirmation"),this.dialogRef.close(!0)):this.dialogRef.close()}static{this.\u0275fac=function(i){return new(i||t)(P(It),P(hn),P(pi),P(bt),P(rc))}}static{this.\u0275cmp=se({type:t,selectors:[["app-edit-vpn-server-value"]],viewQuery:function(i,o){if(1&i&&rt(r_e,5),2&i){let r;ue(r=he())&&(o.firstInput=r.first)}},standalone:!1,decls:13,vars:11,consts:[["firstInput",""],[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","value","maxlength","100","matInput",""],["color","primary",1,"float-right",3,"action"]],template:function(i,o){1&i&&(f(0,"app-dialog",1),b(1,"translate"),f(2,"form",2)(3,"mat-form-field")(4,"div",3)(5,"label",4),m(6),b(7,"translate"),h(),B(8,"input",5,0),h()()(),f(10,"app-button",6),L("action",function(){return o.process()}),m(11),b(12,"translate"),h()()),2&i&&(v("headline",y(1,5,"vpn.server-options.edit-value."+(o.data.editName?"name":"note")+"-title"))("dialog",o.dialogRef),d(2),v("formGroup",o.form),d(4),O(y(7,7,"vpn.server-options.edit-value."+(o.data.editName?"name":"note")+"-label")),d(5),I(" ",y(12,9,"vpn.server-options.edit-value.apply-button")," "))},dependencies:[Cn,rn,sn,yn,ji,Xt,fn,wn,ei,On,Kt,Se],encapsulation:2})}}return t})();const a_e=["firstInput"];let r5=(()=>{class t{static openDialog(e,i){const o=new Lt;return o.data=i,o.autoFocus=!1,o.width=ze.mediumModalWidth,e.open(t,o)}constructor(e,i,o){this.dialogRef=e,this.data=i,this.formBuilder=o}ngOnInit(){this.form=this.formBuilder.group({password:["",this.data?void 0:Ve.required]}),setTimeout(()=>this.firstInput.nativeElement.focus())}process(){this.dialogRef.close("-"+this.form.get("password").value)}static{this.\u0275fac=function(i){return new(i||t)(P(It),P(hn),P(pi))}}static{this.\u0275cmp=se({type:t,selectors:[["app-enter-vpn-server-password"]],viewQuery:function(i,o){if(1&i&&rt(a_e,5),2&i){let r;ue(r=he())&&(o.firstInput=r.first)}},standalone:!1,decls:13,vars:12,consts:[["firstInput",""],[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","password","type","password","matInput",""],["color","primary",1,"float-right",3,"action","disabled"]],template:function(i,o){1&i&&(f(0,"app-dialog",1),b(1,"translate"),f(2,"form",2)(3,"mat-form-field")(4,"div",3)(5,"label",4),m(6),b(7,"translate"),h(),B(8,"input",5,0),h()()(),f(10,"app-button",6),L("action",function(){return o.process()}),m(11),b(12,"translate"),h()()),2&i&&(v("headline",y(1,6,"vpn.server-list.password-dialog.title"))("dialog",o.dialogRef),d(2),v("formGroup",o.form),d(4),O(y(7,8,"vpn.server-list.password-dialog.password"+(o.data?"-if-any":"")+"-label")),d(4),v("disabled",!o.form.valid),d(),I(" ",y(12,10,"vpn.server-list.password-dialog.continue-button")," "))},dependencies:[Cn,rn,sn,yn,Xt,fn,wn,ei,On,Kt,Se],encapsulation:2})}}return t})(),si=(()=>{class t{static{this.serverListTabStorageKey="ServerListTab"}static{this.currentPk=""}static changeCurrentPk(e){this.currentPk=e}static setDefaultTabForServerList(e){sessionStorage.setItem(t.serverListTabStorageKey,e)}static get vpnTabsData(){const e=sessionStorage.getItem(t.serverListTabStorageKey);return[{icon:"power_settings_new",label:"vpn.start",linkParts:["/vpn",this.currentPk,"status"]},{icon:"list",label:"vpn.servers",linkParts:e?["/vpn",this.currentPk,"servers",e,"1"]:["/vpn",this.currentPk,"servers"]},{icon:"settings",label:"vpn.settings",linkParts:["/vpn",this.currentPk,"settings"]}]}static getLatencyValueString(e){return e<1e3?"time-in-ms":"time-in-segs"}static getPrintableLatency(e){return e<1e3?e+"":(e/1e3).toFixed(1)}static processServerChange(e,i,o,r,s,a,l,c,u,p,g){let _;if(c&&(u||p)||u&&(c||p)||p&&(c||u))throw new Error("Invalid call");if(c)_=c.pk;else if(u)_=u.pk;else{if(!p)throw new Error("Invalid call");_=p.pk}const w=o.getSavedVersion(_,!0),x=w&&(g||w.usedWithPassword),T=i.checkNewPk(_);if(T!==Dr.Busy)if(T!==Dr.SamePkRunning||x){if(T===Dr.MustStop||T===Dr.SamePkRunning&&x){const E=Ye.createConfirmationDialog(s,"vpn.server-change.change-server-while-connected-confirmation");return void E.componentInstance.operationAccepted.subscribe(()=>{E.componentInstance.closeModal(),c?i.changeServerUsingHistory(c,g):u?i.changeServerUsingDiscovery(u,g):p&&i.changeServerManually(p,g),t.redirectAfterServerChange(e,a,l)})}if(T===Dr.SamePkStopped&&!x){const E=Ye.createConfirmationDialog(s,"vpn.server-change.start-same-server-confirmation");return void E.componentInstance.operationAccepted.subscribe(()=>{E.componentInstance.closeModal(),p&&w&&o.processFromManual(p),i.start(),t.redirectAfterServerChange(e,a,l)})}c?i.changeServerUsingHistory(c,g):u?i.changeServerUsingDiscovery(u,g):p&&i.changeServerManually(p,g),t.redirectAfterServerChange(e,a,l)}else r.showWarning("vpn.server-change.already-selected-warning");else r.showError("vpn.server-change.busy-error")}static redirectAfterServerChange(e,i,o){i&&i.close(),e.navigate(["vpn",o,"status"])}static openServerOptions(e,i,o,r,s,a){const l=[],c=[];return e.usedWithPassword?(l.push({icon:"lock_open",label:"vpn.server-options.connect-without-password"}),c.push(201),l.push({icon:"lock_outlined",label:"vpn.server-options.connect-using-another-password"}),c.push(202)):e.enteredManually&&(l.push({icon:"lock_outlined",label:"vpn.server-options.connect-using-password"}),c.push(202)),l.push({icon:"edit",label:"vpn.server-options.edit-name"}),c.push(101),l.push({icon:"subject",label:"vpn.server-options.edit-label"}),c.push(102),(!e||e.flag!==an.Favorite)&&(l.push({icon:"star",label:"vpn.server-options.make-favorite"}),c.push(1)),e&&e.flag===an.Favorite&&(l.push({icon:"star_outline",label:"vpn.server-options.remove-from-favorites"}),c.push(-1)),(!e||e.flag!==an.Blocked)&&(l.push({icon:"pan_tool",label:"vpn.server-options.block"}),c.push(2)),e&&e.flag===an.Blocked&&(l.push({icon:"thumb_up",label:"vpn.server-options.unblock"}),c.push(-2)),e&&e.inHistory&&(l.push({icon:"delete",label:"vpn.server-options.remove-from-history"}),c.push(-3)),oo.openDialog(a,l,"common.options").afterClosed().pipe(Et(u=>{if(u){const p=o.getSavedVersion(e.pk,!0);if(e=p||e,c[u-=1]>200){if(201===c[u]){let g=!1;const _=Ye.createConfirmationDialog(a,"vpn.server-options.connect-without-password-confirmation");return _.componentInstance.operationAccepted.subscribe(()=>{g=!0,t.processServerChange(i,r,o,s,a,null,t.currentPk,e,null,null,null),_.componentInstance.closeModal()}),_.afterClosed().pipe(ye(()=>g))}return r5.openDialog(a,!1).afterClosed().pipe(ye(g=>!(!g||"-"===g||(t.processServerChange(i,r,o,s,a,null,t.currentPk,e,null,null,g.substr(1)),0))))}if(c[u]>100)return s_e.openDialog(a,{editName:101===c[u],server:e}).afterClosed();if(1===c[u])return t.makeFavorite(e,o,s,a);if(-1===c[u])return o.changeFlag(e,an.None),s.showDone("vpn.server-options.remove-from-favorites-done"),ae(!0);if(2===c[u])return t.blockServer(e,o,r,s,a);if(-2===c[u])return o.changeFlag(e,an.None),s.showDone("vpn.server-options.unblock-done"),ae(!0);if(-3===c[u])return t.removeFromHistory(e,o,s,a)}return ae(!1)}))}static removeFromHistory(e,i,o,r){let s=!1;const a=Ye.createConfirmationDialog(r,"vpn.server-options.remove-from-history-confirmation");return a.componentInstance.operationAccepted.subscribe(()=>{s=!0,i.removeFromHistory(e.pk),o.showDone("vpn.server-options.remove-from-history-done"),a.componentInstance.closeModal()}),a.afterClosed().pipe(ye(()=>s))}static makeFavorite(e,i,o,r){if(e.flag!==an.Blocked)return i.changeFlag(e,an.Favorite),o.showDone("vpn.server-options.make-favorite-done"),ae(!0);let s=!1;const a=Ye.createConfirmationDialog(r,"vpn.server-options.make-favorite-confirmation");return a.componentInstance.operationAccepted.subscribe(()=>{s=!0,i.changeFlag(e,an.Favorite),o.showDone("vpn.server-options.make-favorite-done"),a.componentInstance.closeModal()}),a.afterClosed().pipe(ye(()=>s))}static blockServer(e,i,o,r,s){if(e.flag!==an.Favorite&&(!i.currentServer||i.currentServer.pk!==e.pk))return i.changeFlag(e,an.Blocked),r.showDone("vpn.server-options.block-done"),ae(!0);let a=!1;const l=i.currentServer&&i.currentServer.pk===e.pk;let c;c=e.flag!==an.Favorite?"vpn.server-options.block-selected-confirmation":l?"vpn.server-options.block-selected-favorite-confirmation":"vpn.server-options.block-confirmation";const u=Ye.createConfirmationDialog(s,c);return u.componentInstance.operationAccepted.subscribe(()=>{a=!0,i.changeFlag(e,an.Blocked),r.showDone("vpn.server-options.block-done"),l&&o.stop(),u.componentInstance.closeModal()}),u.afterClosed().pipe(ye(()=>a))}}return t})();var ac=function(t){return t[t.Seconds=0]="Seconds",t[t.Minutes=1]="Minutes",t[t.Hours=2]="Hours",t[t.Days=3]="Days",t[t.Weeks=4]="Weeks",t}(ac||{});class l_e{}class lv{static getElapsedTime(n){const e=new l_e;e.timeRepresentation=ac.Seconds,e.totalMinutes=Math.floor(n/60).toString(),e.translationVarName="second";let i=1;n>=60&&n<3600?(e.timeRepresentation=ac.Minutes,i=60,e.translationVarName="minute"):n>=3600&&n<86400?(e.timeRepresentation=ac.Hours,i=3600,e.translationVarName="hour"):n>=86400&&n<604800?(e.timeRepresentation=ac.Days,i=86400,e.translationVarName="day"):n>=604800&&(e.timeRepresentation=ac.Weeks,i=604800,e.translationVarName="week");const o=Math.floor(n/i);return e.elapsedTime=o.toString(),(e.timeRepresentation===ac.Seconds||o>1)&&(e.translationVarName=e.translationVarName+"s"),e}}const c_e=t=>({"grey-button-background":t}),s5=t=>({time:t});function d_e(t,n){1&t&&B(0,"mat-spinner",2),2&t&&v("diameter",14)}function u_e(t,n){1&t&&B(0,"mat-spinner",3),2&t&&v("diameter",18)}function h_e(t,n){1&t&&(f(0,"mat-icon",5),m(1,"refresh"),h()),2&t&&v("inline",!0)}function f_e(t,n){1&t&&(f(0,"mat-icon",6),m(1,"warning"),h()),2&t&&v("inline",!0)}function p_e(t,n){if(1&t&&(S(0,h_e,2,1,"mat-icon",5),S(1,f_e,2,1,"mat-icon",6)),2&t){const e=C();k(e.showAlert?-1:0),d(),k(e.showAlert?1:-1)}}function m_e(t,n){if(1&t&&(f(0,"span",4),m(1),b(2,"translate"),h()),2&t){const e=C();d(),O(Ee(2,1,"refresh-button."+e.elapsedTime.translationVarName,oe(4,s5,e.elapsedTime.elapsedTime)))}}let g_e=(()=>{class t{constructor(){this.refeshRate=-1}set secondsSinceLastUpdate(e){this.elapsedTime=lv.getElapsedTime(e)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=se({type:t,selectors:[["app-refresh-button"]],inputs:{secondsSinceLastUpdate:"secondsSinceLastUpdate",showLoading:"showLoading",showAlert:"showAlert",refeshRate:"refeshRate"},standalone:!1,decls:7,vars:14,consts:[["mat-button","",1,"time-button","subtle-transparent-button","white-theme",3,"disabled","ngClass","matTooltip"],[1,"internal-container"],[1,"icon","d-none","d-md-inline-block",3,"diameter"],[1,"icon","d-md-none",3,"diameter"],[1,"d-none","d-md-inline"],[1,"icon",3,"inline"],[1,"icon","alert",3,"inline"]],template:function(i,o){1&i&&(f(0,"button",0),b(1,"translate"),f(2,"div",1),S(3,d_e,1,1,"mat-spinner",2),S(4,u_e,1,1,"mat-spinner",3),S(5,p_e,2,2),S(6,m_e,3,6,"span",4),h()()),2&i&&(v("disabled",o.showLoading)("ngClass",oe(10,c_e,!o.showLoading))("matTooltip",o.showAlert?Ee(1,7,"refresh-button.error-tooltip",oe(12,s5,o.refeshRate)):""),d(3),k(o.showLoading?3:-1),d(),k(o.showLoading?4:-1),d(),k(o.showLoading?-1:5),d(),k(o.elapsedTime?6:-1))},dependencies:[qt,Jn,lt,pn,$o,Se],styles:[".time-button[_ngcontent-%COMP%]{color:#f8f9f9;border-radius:10px;height:40px}.time-button[disabled][_ngcontent-%COMP%]{opacity:.7!important;color:#f8f9f9}.time-button[disabled][_ngcontent-%COMP%] span[_ngcontent-%COMP%]{opacity:.7}.time-button[_ngcontent-%COMP%] .internal-container[_ngcontent-%COMP%]{display:flex;align-items:center}.time-button[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{font-size:16px;margin-right:5px;opacity:.5;display:inline-block}@media(max-width:767px){.time-button[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{font-size:22px;margin-right:0;opacity:.75}}.time-button[_ngcontent-%COMP%] .alert[_ngcontent-%COMP%]{color:orange;opacity:1}.time-button[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:.6rem}"]})}}return t})(),Kf=(()=>{class t{static{this.accumulatedMeasurements=["B","KB","MB","GB","TB","PB","EB","ZB","YB"]}static{this.measurementsPerSec=["B/s","KB/s","MB/s","GB/s","TB/s","PB/s","EB/s","ZB/s","YB/s"]}static{this.accumulatedMeasurementsInBits=["b","Kb","Mb","Gb","Tb","Pb","Eb","Zb","Yb"]}static{this.measurementsPerSecInBits=["b/s","Kb/s","Mb/s","Gb/s","Tb/s","Pb/s","Eb/s","Zb/s","Yb/s"]}transform(e,i){let r,o=!0;i?i.showPerSecond?i.useBits?(r=t.measurementsPerSecInBits,o=!1):r=t.measurementsPerSec:i.useBits?(r=t.accumulatedMeasurementsInBits,o=!1):r=t.accumulatedMeasurements:r=t.accumulatedMeasurements;let s=new mk(e);o||(s=s.multipliedBy(8));let a=r[0],l=0;for(;s.dividedBy(1024).isGreaterThan(1);)s=s.dividedBy(1024),l+=1,a=r[l];let c="";return(!i||i.showValue)&&(c=i&&i.limitDecimals?new mk(s).decimalPlaces(1).toString():s.toFixed(2)),(!i||i.showValue&&i.showUnit)&&(c+=" "),(!i||i.showUnit)&&(c+=a),c}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275pipe=Li({name:"autoScale",type:t,pure:!0,standalone:!1})}}return t})();const a5=(t,n)=>({"d-lg-none":t,"d-none":n}),__e=t=>({"normal-height":t}),b_e=(t,n)=>({"d-none d-lg-flex":t,"d-flex":n}),v_e=t=>({transparent:t}),y_e=(t,n)=>({"d-lg-none":t,"d-none d-md-inline-block":n}),xk=(t,n)=>({"mouse-disabled":t,"grey-button-background":n}),C_e=t=>({"d-none":t}),w_e=(t,n)=>({"animation-container":t,"d-none":n}),x_e=t=>({time:t}),l5=t=>({showValue:!0,showUnit:!0,showPerSecond:!0,useBits:t});function S_e(t,n){if(1&t){const e=ce();f(0,"button",22),L("click",function(){return z(e),$(C().requestAction(null))}),f(1,"mat-icon"),m(2,"chevron_left"),h()()}}function k_e(t,n){1&t&&B(0,"img",5)}function D_e(t,n){if(1&t&&(m(0),b(1,"translate")),2&t){const e=C();I(" ",y(1,1,e.titleParts[e.titleParts.length-1])," ")}}function T_e(t,n){if(1&t){const e=ce();f(0,"div",24),L("click",function(){const o=z(e).$implicit;return $(C(2).requestAction(o.actionName))}),f(1,"mat-icon",18),m(2),h(),m(3),b(4,"translate"),h()}if(2&t){const e=n.$implicit;v("disabled",e.disabled),d(),v("ngClass",oe(6,v_e,e.disabled)),d(),O(e.icon),d(),I(" ",y(4,4,e.name)," ")}}function M_e(t,n){1&t&&B(0,"div",9)}function E_e(t,n){if(1&t&&(we(0,T_e,5,8,"div",23,Re),S(2,M_e,1,0,"div",9)),2&t){const e=C();xe(e.optionsData),d(2),k(e.returnText?2:-1)}}function I_e(t,n){1&t&&B(0,"div",9)}function P_e(t,n){1&t&&B(0,"img",26),2&t&&v("src","assets/img/lang/"+C(2).language.iconName,ho)}function O_e(t,n){if(1&t){const e=ce();f(0,"div",25),L("click",function(){return z(e),$(C().openLanguageWindow())}),S(1,P_e,1,1,"img",26),m(2),b(3,"translate"),h()}if(2&t){const e=C();d(),k(e.language?1:-1),d(),I(" ",y(3,2,e.language?e.language.name:"")," ")}}function A_e(t,n){if(1&t){const e=ce();f(0,"div",14)(1,"a",27),b(2,"translate"),L("click",function(){return z(e),$(C().requestAction(null))}),f(3,"mat-icon",28),m(4,"chevron_left"),h()()()}if(2&t){const e=C();d(),v("matTooltip",y(2,2,e.returnText)),d(2),v("inline",!0)}}function R_e(t,n){if(1&t&&(f(0,"span",15),m(1),b(2,"translate"),h()),2&t){const e=C();d(),I(" ",y(2,1,e.titleParts[e.titleParts.length-1])," ")}}function N_e(t,n){1&t&&B(0,"img",16)}function F_e(t,n){if(1&t&&(f(0,"a",29)(1,"mat-icon",28),m(2),h(),f(3,"span"),m(4),b(5,"translate"),h()()),2&t){const e=C().$implicit,i=C();v("href",e.externalUrl,ho)("ngClass",ft(7,xk,i.disableMouse,!i.disableMouse)),d(),v("inline",!0),d(),O(e.icon),d(2),O(y(5,5,e.label))}}function L_e(t,n){if(1&t&&(f(0,"a",30)(1,"mat-icon",28),m(2),h(),f(3,"span"),m(4),b(5,"translate"),h()()),2&t){const e=C(),i=e.$implicit,o=e.$index,r=C();v("disabled",o===r.selectedTabIndex)("routerLink",i.linkParts)("ngClass",ft(8,xk,r.disableMouse,!r.disableMouse&&o!==r.selectedTabIndex)),d(),v("inline",!0),d(),O(i.icon),d(2),O(y(5,6,i.label))}}function B_e(t,n){if(1&t&&(f(0,"div",18),S(1,F_e,6,10,"a",29),S(2,L_e,6,11,"a",30),h()),2&t){const e=n.$implicit,i=C();v("ngClass",ft(3,y_e,e.onlyIfLessThanLg,1!==i.tabsData.length)),d(),k(e.externalUrl?1:-1),d(),k(e.externalUrl?-1:2)}}function V_e(t,n){if(1&t){const e=ce();f(0,"div",19)(1,"button",31),L("click",function(){return z(e),$(C().openTabSelector())}),f(2,"div",32)(3,"mat-icon",28),m(4),h(),f(5,"span"),m(6),b(7,"translate"),h(),f(8,"mat-icon",28),m(9,"keyboard_arrow_down"),h()()()()}if(2&t){const e=C();v("ngClass",oe(8,C_e,1===e.tabsData.length)),d(),v("ngClass",ft(10,xk,e.disableMouse,!e.disableMouse)),d(2),v("inline",!0),d(),O(e.tabsData[e.selectedTabIndex].icon),d(2),O(y(7,6,e.tabsData[e.selectedTabIndex].label)),d(2),v("inline",!0)}}function H_e(t,n){if(1&t){const e=ce();f(0,"app-refresh-button",36),L("click",function(){return z(e),$(C(2).sendRefreshEvent())}),h()}if(2&t){const e=C(2);v("secondsSinceLastUpdate",e.secondsSinceLastUpdate)("showLoading",e.showLoading)("showAlert",e.showAlert)("refeshRate",e.refeshRate)}}function j_e(t,n){if(1&t&&(f(0,"div",20),S(1,H_e,1,4,"app-refresh-button",33),f(2,"button",34)(3,"div",35)(4,"mat-icon",28),m(5,"menu"),h()()()()),2&t){const e=C(),i=Vn(12);d(),k(e.showUpdateButton?1:-1),d(),v("matMenuTriggerFor",i),d(2),v("inline",!0)}}function U_e(t,n){if(1&t){const e=ce();f(0,"div",38)(1,"div",44),L("click",function(){return z(e),$(C(2).openLanguageWindow())}),B(2,"img",45),m(3),b(4,"translate"),h()()}if(2&t){const e=C(2);d(2),v("src","assets/img/lang/"+e.language.iconName,ho),d(),I(" ",y(4,2,e.language?e.language.name:"")," ")}}function z_e(t,n){1&t&&(f(0,"div",40),b(1,"translate"),f(2,"mat-icon",28),m(3,"warning"),h(),m(4),b(5,"translate"),h()),2&t&&(v("matTooltip",y(1,3,"vpn.connection-error.info")),d(2),v("inline",!0),d(2),I(" ",y(5,5,"vpn.connection-error.text")," "))}function $_e(t,n){1&t&&(f(0,"div",50)(1,"mat-icon",49),m(2,"brightness_1"),h()()),2&t&&(d(),v("inline",!0))}function W_e(t,n){if(1&t&&(f(0,"table",42)(1,"tr")(2,"td",46),b(3,"translate"),f(4,"div",18)(5,"div",47)(6,"div",48)(7,"mat-icon",49),m(8,"brightness_1"),h(),m(9),b(10,"translate"),h()()(),S(11,$_e,3,1,"div",50),f(12,"mat-icon",49),m(13,"brightness_1"),h(),m(14),b(15,"translate"),h(),f(16,"td",46),b(17,"translate"),f(18,"mat-icon",28),m(19,"swap_horiz"),h(),m(20),b(21,"translate"),h()(),f(22,"tr")(23,"td",46),b(24,"translate"),f(25,"mat-icon",28),m(26,"arrow_upward"),h(),m(27),b(28,"autoScale"),h(),f(29,"td",46),b(30,"translate"),f(31,"mat-icon",28),m(32,"arrow_downward"),h(),m(33),b(34,"autoScale"),h()()()),2&t){const e=C(2);d(2),at(e.vpnData.stateClass+" state-td"),v("matTooltip",y(3,18,e.vpnData.state+"-info")),d(2),v("ngClass",ft(39,w_e,e.showVpnStateAnimation,!e.showVpnStateAnimation)),d(3),v("inline",!0),d(2),I(" ",y(10,20,e.vpnData.state)," "),d(2),k(e.showVpnStateAnimatedDot?11:-1),d(),v("inline",!0),d(2),I(" ",y(15,22,e.vpnData.state)," "),d(2),v("matTooltip",y(17,24,"vpn.connection-info.latency-info")),d(2),v("inline",!0),d(2),I(" ",Ee(21,26,"common."+e.getLatencyValueString(e.vpnData.latency),oe(42,x_e,e.getPrintableLatency(e.vpnData.latency)))," "),d(3),v("matTooltip",y(24,29,"vpn.connection-info.upload-info")),d(2),v("inline",!0),d(2),I(" ",Ee(28,31,e.vpnData.uploadSpeed,oe(44,l5,e.showVpnDataStatsInBits))," "),d(2),v("matTooltip",y(30,34,"vpn.connection-info.download-info")),d(2),v("inline",!0),d(2),I(" ",Ee(34,36,e.vpnData.downloadSpeed,oe(46,l5,e.showVpnDataStatsInBits))," ")}}function G_e(t,n){1&t&&B(0,"mat-spinner",43),2&t&&v("diameter",20)}function q_e(t,n){if(1&t&&(f(0,"div")(1,"div",37),S(2,U_e,5,4,"div",38),B(3,"div",39),S(4,z_e,6,7,"div",40),h(),f(5,"div",41),S(6,W_e,35,48,"table",42),S(7,G_e,1,1,"mat-spinner",43),h()()),2&t){const e=C();d(2),k(!e.hideLanguageButton&&e.language?2:-1),d(2),k(e.errorsConnectingToVpn?4:-1),d(2),k(e.vpnData?6:-1),d(),k(e.vpnData?-1:7)}}function K_e(t,n){1&t&&(f(0,"div",21)(1,"div",51)(2,"mat-icon",28),m(3,"error_outline"),h(),m(4),b(5,"translate"),h(),f(6,"div",52),m(7),b(8,"translate"),h()()),2&t&&(d(2),v("inline",!0),d(2),I(" ",y(5,3,"vpn.remote-access-title")," "),d(3),I(" ",y(8,5,"vpn.remote-access-text")," "))}let As=(()=>{class t{set localVpnKey(e){this.localVpnKeyInternal=e,e?this.startGettingVpnInfo():this.stopGettingVpnInfo()}constructor(e,i,o,r,s){this.languageService=e,this.dialog=i,this.router=o,this.vpnClientService=r,this.vpnSavedDataService=s,this.disableMouse=!1,this.selectedTabIndex=0,this.refeshRate=-1,this.showUpdateButton=!0,this.localVpnKeyInternal="",this.refreshRequested=new ve,this.optionSelected=new ve,this.hideLanguageButton=!0,this.showVpnInfo=!1,this.initialVpnStateObtained=!1,this.lastVpnState="",this.showVpnStateAnimation=!1,this.showVpnStateAnimatedDot=!0,this.showVpnDataStatsInBits=!0,this.remoteAccess=!1,this.errorsConnectingToVpn=!1,this.langSubscriptionsGroup=[]}ngOnInit(){this.langSubscriptionsGroup.push(this.languageService.currentLanguage.subscribe(i=>{this.language=i})),this.langSubscriptionsGroup.push(this.languageService.languages.subscribe(i=>{this.hideLanguageButton=!(i.length>1)}));const e=window.location.hostname;!e.toLowerCase().includes("localhost")&&!e.toLowerCase().includes("127.0.0.1")&&(this.remoteAccess=!0)}ngOnDestroy(){this.langSubscriptionsGroup.forEach(e=>e.unsubscribe()),this.refreshRequested.complete(),this.optionSelected.complete(),this.stopGettingVpnInfo()}startGettingVpnInfo(){this.showVpnInfo=!0,this.vpnClientService.initialize(this.localVpnKeyInternal),this.updateVpnDataStatsUnit(),this.vpnDataSubscription=this.vpnClientService.backendState.subscribe(e=>{e&&(this.vpnData={state:"",stateClass:"",latency:e.vpnClientAppData.connectionData?e.vpnClientAppData.connectionData.latency:0,downloadSpeed:e.vpnClientAppData.connectionData?e.vpnClientAppData.connectionData.downloadSpeed:0,uploadSpeed:e.vpnClientAppData.connectionData?e.vpnClientAppData.connectionData.uploadSpeed:0},e.vpnClientAppData.appState===Zt.Stopped?(this.vpnData.state="vpn.connection-info.state-disconnected",this.vpnData.stateClass="red-clear-text"):e.vpnClientAppData.appState===Zt.Connecting?(this.vpnData.state="vpn.connection-info.state-connecting",this.vpnData.stateClass="yellow-clear-text"):e.vpnClientAppData.appState===Zt.Running?(this.vpnData.state="vpn.connection-info.state-connected",this.vpnData.stateClass="green-clear-text"):e.vpnClientAppData.appState===Zt.ShuttingDown?(this.vpnData.state="vpn.connection-info.state-disconnecting",this.vpnData.stateClass="yellow-clear-text"):e.vpnClientAppData.appState===Zt.Reconnecting&&(this.vpnData.state="vpn.connection-info.state-reconnecting",this.vpnData.stateClass="yellow-clear-text"),this.initialVpnStateObtained?this.lastVpnState!==this.vpnData.state&&(this.lastVpnState=this.vpnData.state,this.showVpnStateAnimation=!1,this.showVpnStateChangeAnimationSubscription&&this.showVpnStateChangeAnimationSubscription.unsubscribe(),this.showVpnStateChangeAnimationSubscription=ae(0).pipe(ii(1)).subscribe(()=>this.showVpnStateAnimation=!0)):(this.initialVpnStateObtained=!0,this.lastVpnState=this.vpnData.state),this.showVpnStateAnimatedDot=!1,this.showVpnStateAnimatedDotSubscription&&this.showVpnStateAnimatedDotSubscription.unsubscribe(),this.showVpnStateAnimatedDotSubscription=ae(0).pipe(ii(1)).subscribe(()=>this.showVpnStateAnimatedDot=!0))}),this.errorsConnectingToVpnSubscription=this.vpnClientService.errorsConnecting.subscribe(e=>{this.errorsConnectingToVpn=e})}stopGettingVpnInfo(){this.showVpnInfo=!1,this.vpnDataSubscription&&this.vpnDataSubscription.unsubscribe(),this.errorsConnectingToVpnSubscription&&this.errorsConnectingToVpnSubscription.unsubscribe()}getLatencyValueString(e){return si.getLatencyValueString(e)}getPrintableLatency(e){return si.getPrintableLatency(e)}requestAction(e){this.optionSelected.emit(e)}openLanguageWindow(){YV.openDialog(this.dialog)}sendRefreshEvent(){this.refreshRequested.emit()}openTabSelector(){const e=[];this.tabsData.forEach(i=>{e.push({label:i.label,icon:i.icon})}),oo.openDialog(this.dialog,e,"tabs-window.title").afterClosed().subscribe(i=>{i&&(i-=1)!==this.selectedTabIndex&&this.router.navigate(this.tabsData[i].linkParts)})}updateVpnDataStatsUnit(){const e=this.vpnSavedDataService.getDataUnitsSetting();this.showVpnDataStatsInBits=e===qo.BitsSpeedAndBytesVolume||e===qo.OnlyBits}static{this.\u0275fac=function(i){return new(i||t)(P(Nb),P(kt),P(vt),P(sc),P(rc))}}static{this.\u0275cmp=se({type:t,selectors:[["app-top-bar"]],inputs:{disableMouse:"disableMouse",titleParts:"titleParts",tabsData:"tabsData",selectedTabIndex:"selectedTabIndex",optionsData:"optionsData",returnText:"returnText",secondsSinceLastUpdate:"secondsSinceLastUpdate",showLoading:"showLoading",showAlert:"showAlert",refeshRate:"refeshRate",showUpdateButton:"showUpdateButton",localVpnKey:"localVpnKey"},outputs:{refreshRequested:"refreshRequested",optionSelected:"optionSelected"},standalone:!1,decls:29,vars:30,consts:[["menu","matMenu"],[1,"top-bar",3,"ngClass"],[1,"button-container"],["mat-icon-button","",1,"transparent-button"],[1,"logo-container"],["src","/assets/img/logo-s.png"],["mat-icon-button","",1,"transparent-button",3,"matMenuTriggerFor"],[1,"top-bar-margin",3,"ngClass"],[3,"overlapTrigger"],[1,"menu-separator"],["mat-menu-item",""],[1,"main-container",3,"ngClass"],[1,"main-area"],[1,"title",3,"ngClass"],[1,"return-container"],[1,"title-text"],["src","./assets/img/logo-vpn.png",1,"title-image"],[1,"lower-container"],[3,"ngClass"],[1,"d-md-none",3,"ngClass"],[1,"right-container"],[1,"remote-vpn-alert-container"],["mat-icon-button","",1,"transparent-button",3,"click"],["mat-menu-item","",3,"disabled"],["mat-menu-item","",3,"click","disabled"],["mat-menu-item","",3,"click"],[1,"flag",3,"src"],[1,"return-button","transparent-button",3,"click","matTooltip"],[3,"inline"],["mat-button","","target","_blank","rel","noreferrer nofollow noopener",1,"tab-button","white-theme",3,"href","ngClass"],["mat-button","",1,"tab-button","white-theme",3,"disabled","routerLink","ngClass"],["mat-button","",1,"tab-button","select-tab-button","white-theme",3,"click","ngClass"],[1,"d-flex"],[3,"secondsSinceLastUpdate","showLoading","showAlert","refeshRate"],["mat-button","",1,"menu-button","subtle-transparent-button","d-none","d-lg-block",3,"matMenuTriggerFor"],[1,"icon-container"],[3,"click","secondsSinceLastUpdate","showLoading","showAlert","refeshRate"],[1,"top-text-vpn-container"],[1,"languaje-button-vpn"],[1,"elements-separator"],[1,"connection-error-msg-vpn","blinking",3,"matTooltip"],[1,"vpn-info","vpn-dark-box-radius"],["cellspacing","0","cellpadding","0"],[3,"diameter"],[1,"text-container",3,"click"],[1,"language-flag",3,"src"],[3,"matTooltip"],[1,"internal-animation-container"],[1,"animation-area"],[1,"state-icon",3,"inline"],[1,"aminated-state-icon-container"],[1,"top-line"],[1,"bottom-line"]],template:function(i,o){if(1&i&&(f(0,"div",1)(1,"div",2),S(2,S_e,3,0,"button",3),h(),f(3,"div",4),S(4,k_e,1,0,"img",5),S(5,D_e,2,3),h(),f(6,"div",2)(7,"button",6)(8,"mat-icon"),m(9,"menu"),h()()()(),B(10,"div",7),f(11,"mat-menu",8,0),S(13,E_e,3,1),S(14,I_e,1,0,"div",9),S(15,O_e,4,4,"div",10),h(),f(16,"div",11)(17,"div",12)(18,"div",13),S(19,A_e,5,4,"div",14),S(20,R_e,3,3,"span",15),S(21,N_e,1,0,"img",16),h(),f(22,"div",17),we(23,B_e,3,6,"div",18,Re),S(25,V_e,10,13,"div",19),S(26,j_e,6,3,"div",20),h()(),S(27,q_e,8,4,"div"),h(),S(28,K_e,9,7,"div",21)),2&i){const r=Vn(12);v("ngClass",ft(19,a5,!o.showVpnInfo,o.showVpnInfo)),d(2),k(o.returnText?2:-1),d(2),k(!o.titleParts||o.titleParts.length<2?4:-1),d(),k(o.titleParts&&o.titleParts.length>=2?5:-1),d(2),v("matMenuTriggerFor",r),d(3),v("ngClass",ft(22,a5,!o.showVpnInfo,o.showVpnInfo)),d(),v("overlapTrigger",!1),d(2),k(o.optionsData&&o.optionsData.length>=1?13:-1),d(),k(!o.hideLanguageButton&&o.optionsData&&o.optionsData.length>=1?14:-1),d(),k(o.hideLanguageButton?-1:15),d(),v("ngClass",oe(25,__e,!o.showVpnInfo)),d(2),v("ngClass",ft(27,b_e,!o.showVpnInfo,o.showVpnInfo)),d(),k(o.returnText?19:-1),d(),k(o.showVpnInfo?-1:20),d(),k(o.showVpnInfo?21:-1),d(2),xe(o.tabsData),d(2),k(o.tabsData&&o.tabsData[o.selectedTabIndex]?25:-1),d(),k(o.showVpnInfo?-1:26),d(),k(o.showVpnInfo?27:-1),d(),k(o.showVpnInfo&&o.remoteAccess?28:-1)}},dependencies:[qt,wa,Jn,Ms,lt,pn,Xr,Ps,lu,$o,g_e,Se,Kf],styles:["@media(max-width:991px){.normal-height[_ngcontent-%COMP%]{height:55px!important}}.main-container[_ngcontent-%COMP%]{border-bottom:1px solid rgba(255,255,255,.15);padding-bottom:10px;margin-bottom:-5px;height:100px;display:flex}.main-container[_ngcontent-%COMP%] .main-area[_ngcontent-%COMP%]{flex-grow:1}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-size:.875rem;margin-bottom:15px;margin-left:5px;flex-direction:row;align-items:center}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] .title-text[_ngcontent-%COMP%]{z-index:1}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] .title-image[_ngcontent-%COMP%]{width:124px;height:21px}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] .return-container[_ngcontent-%COMP%]{width:30px;position:relative;top:2px}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] .return-container[_ngcontent-%COMP%] .return-button[_ngcontent-%COMP%]{line-height:1;font-size:25px;position:relative;top:2px;width:100%;margin-right:4px;cursor:pointer}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%]{display:flex}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[_ngcontent-%COMP%]{color:#f8f9f9;border-radius:10px;opacity:.5;margin-right:2px;text-decoration:none;height:40px;display:flex;align-items:center}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[_ngcontent-%COMP%]:hover{opacity:.75}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[disabled][_ngcontent-%COMP%]{opacity:1!important;color:#f8f9f9;background:#000000b3!important}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[_ngcontent-%COMP%] .mat-icon[_ngcontent-%COMP%]{margin-right:2px;opacity:.75;font-size:18px}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:1rem;margin:0 4px;position:relative;top:-1px}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .select-tab-button[_ngcontent-%COMP%]{opacity:.75!important}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .select-tab-button[_ngcontent-%COMP%]:hover{opacity:1!important}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .right-container[_ngcontent-%COMP%]{display:flex;align-items:center;margin-left:auto}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .right-container[_ngcontent-%COMP%] app-refresh-button[_ngcontent-%COMP%]{align-self:flex-end}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .right-container[_ngcontent-%COMP%] .menu-button[_ngcontent-%COMP%]{height:32px;width:32px;min-width:0px!important;background-color:#f8f9f9;border-radius:100%;padding:0!important;line-height:normal;color:#929292;font-size:20px}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .right-container[_ngcontent-%COMP%] .menu-button[_ngcontent-%COMP%] .icon-container[_ngcontent-%COMP%]{display:flex;place-content:center}.menu-separator[_ngcontent-%COMP%]{width:100%;height:1px;background-color:#0000001f}.flag[_ngcontent-%COMP%]{width:24px;margin-right:16px}.transparent[_ngcontent-%COMP%]{opacity:.5}.top-bar[_ngcontent-%COMP%]{position:fixed;z-index:10;width:100%;height:56px;background-color:#f8f9f9;top:0;left:0;right:0;color:#202226;display:flex}.top-bar[_ngcontent-%COMP%] .logo-container[_ngcontent-%COMP%]{flex-grow:1;display:flex;justify-content:center;align-items:center}.top-bar[_ngcontent-%COMP%] .logo-container[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{height:28px}.top-bar[_ngcontent-%COMP%] .button-container[_ngcontent-%COMP%]{flex-shrink:0;width:56px}.top-bar[_ngcontent-%COMP%] .button-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:56px;height:56px}.top-bar-margin[_ngcontent-%COMP%]{margin-top:56px;flex-shrink:0}.vpn-info[_ngcontent-%COMP%]{font-size:.7rem;background:#000000b3;padding:15px 20px;align-self:center}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] .state-td[_ngcontent-%COMP%]{font-weight:700}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:2px 0;min-width:90px}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:3px;font-size:12px;position:relative;top:1px;-webkit-user-select:none;user-select:none;width:auto;line-height:1}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .state-icon[_ngcontent-%COMP%]{transform:scale(.75)}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .aminated-state-icon-container[_ngcontent-%COMP%]{width:0px;height:0px}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .aminated-state-icon-container[_ngcontent-%COMP%] .state-icon[_ngcontent-%COMP%]{height:auto;animation:_ngcontent-%COMP%_state-icon-animation 1s linear 1}@keyframes _ngcontent-%COMP%_state-icon-animation{0%{transform:perspective(1px) scale(1);opacity:.8}to{transform:scale(2);opacity:0}}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .animation-container[_ngcontent-%COMP%]{width:0px;height:0px}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .animation-container[_ngcontent-%COMP%] .internal-animation-container[_ngcontent-%COMP%]{width:200px}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .animation-container[_ngcontent-%COMP%] .internal-animation-container[_ngcontent-%COMP%] .animation-area[_ngcontent-%COMP%]{display:inline-block;animation:_ngcontent-%COMP%_state-animation 1s linear 1;opacity:0}@keyframes _ngcontent-%COMP%_state-animation{0%{transform:scale(1);opacity:1}to{transform:scale(2.5);opacity:0}}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:first-of-type{padding-right:30px}.vpn-info[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}.top-text-vpn-container[_ngcontent-%COMP%]{display:flex;flex-direction:row-reverse;font-size:.6rem}.top-text-vpn-container[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:3px}.top-text-vpn-container[_ngcontent-%COMP%] .connection-error-msg-vpn[_ngcontent-%COMP%]{margin:-5px 5px 5px 10px;color:orange}.top-text-vpn-container[_ngcontent-%COMP%] .elements-separator[_ngcontent-%COMP%]{flex-grow:1}.top-text-vpn-container[_ngcontent-%COMP%] .languaje-button-vpn[_ngcontent-%COMP%]{margin:-5px 10px 5px 0}.top-text-vpn-container[_ngcontent-%COMP%] .languaje-button-vpn[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]{cursor:pointer;display:inline;opacity:.8}.top-text-vpn-container[_ngcontent-%COMP%] .languaje-button-vpn[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]:hover{opacity:1}.top-text-vpn-container[_ngcontent-%COMP%] .languaje-button-vpn[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .language-flag[_ngcontent-%COMP%]{width:11px;height:11px;margin-right:2px}.remote-vpn-alert-container[_ngcontent-%COMP%]{background-color:#da3439;margin:0 -21px;padding:10px 20px 15px;text-align:center}.remote-vpn-alert-container[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:14px}.remote-vpn-alert-container[_ngcontent-%COMP%] .top-line[_ngcontent-%COMP%]{font-size:1.25rem}.remote-vpn-alert-container[_ngcontent-%COMP%] .bottom-line[_ngcontent-%COMP%]{font-size:.8rem}"]})}}return t})();const c5=()=>["start.title"],Y_e=t=>({"paginator-icons-fixer":t}),d5=()=>["/nodes","rewards"],u5=()=>["/nodes","list"],X_e=()=>({"click-effect":!0}),Z_e=t=>["/nodes",t,"rewards"],Q_e=(t,n)=>({"click-effect":t,"non-selectable":n}),h5=t=>["/nodes",t],J_e=t=>({"selectable click-effect":t}),ebe=(t,n)=>n.type;function tbe(t,n){if(1&t&&(f(0,"div",1)(1,"div"),B(2,"app-top-bar",3),h(),B(3,"app-loading-indicator",4),h()),2&t){const e=C();d(2),v("titleParts",Mt(4,c5))("tabsData",e.tabsData)("selectedTabIndex",e.showRewardsInfo?1:0)("showUpdateButton",!1)}}function nbe(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,C().$implicit.translatableValue)," ")}function ibe(t,n){1&t&&m(0),2&t&&I(" ",C().$implicit.value," ")}function obe(t,n){if(1&t&&(f(0,"div",19)(1,"span"),m(2),b(3,"translate"),h(),S(4,nbe,2,3),S(5,ibe,1,1),h()),2&t){const e=n.$implicit;d(2),I("",y(3,3,e.filterName),": "),d(2),k(e.translatableValue?4:-1),d(),k(e.value?5:-1)}}function rbe(t,n){if(1&t){const e=ce();f(0,"div",18),L("click",function(){return z(e),$(C(2).dataFilterer.removeFilters())}),we(1,obe,6,5,"div",19,Re),f(3,"div",20),m(4),b(5,"translate"),h()()}if(2&t){const e=C(2);d(),xe(e.dataFilterer.currentFiltersTexts),d(3),O(y(5,1,"filters.press-to-remove"))}}function sbe(t,n){if(1&t){const e=ce();f(0,"mat-icon",21),b(1,"translate"),L("click",function(){return z(e),$(C(2).dataFilterer.changeFilters())}),m(2,"filter_list"),h()}2&t&&v("inline",!0)("matTooltip",y(1,2,"filters.filter-action"))}function abe(t,n){1&t&&(f(0,"mat-icon",13),m(1,"more_horiz"),h()),2&t&&(C(),v("matMenuTriggerFor",Vn(12)))}function lbe(t,n){if(1&t&&B(0,"app-paginator",16),2&t){const e=C(2);v("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",e.showRewardsInfo?Mt(4,d5):Mt(5,u5))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function cbe(t,n){if(1&t&&(f(0,"mat-icon",27),m(1),h()),2&t){const e=C(4);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function dbe(t,n){if(1&t&&(f(0,"mat-icon",27),m(1),h()),2&t){const e=C(4);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function ube(t,n){if(1&t&&(f(0,"mat-icon",27),m(1),h()),2&t){const e=C(4);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function hbe(t,n){if(1&t&&(f(0,"mat-icon",27),m(1),h()),2&t){const e=C(4);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function fbe(t,n){if(1&t&&(f(0,"th",33),m(1),h()),2&t){const e=n.$implicit;d(),I(" ",e," ")}}function pbe(t,n){1&t&&(we(0,fbe,2,1,"th",33,Re),f(2,"th",34),m(3),b(4,"translate"),h()),2&t&&(xe(C(4).rewardDateHeaders),d(3),I(" ",y(4,1,"nodes.reward-total")," "))}function mbe(t,n){1&t&&(f(0,"th"),m(1),b(2,"translate"),h()),2&t&&(d(),I(" ",y(2,1,"nodes.rewards-loading")," "))}function gbe(t,n){1&t&&(f(0,"mat-icon",35),b(1,"translate"),m(2,"star"),h()),2&t&&v("inline",!0)("matTooltip",y(1,2,"nodes.hypervisor-info"))}function _be(t,n){if(1&t&&(f(0,"td",33)(1,"span",37),m(2),h()()),2&t){const e=n.$implicit,i=C(2).$implicit,o=C(4);d(),at(o.getRewardClass(i.localPk,e)),d(),O(o.getRewardAmount(i.localPk,e))}}function bbe(t,n){if(1&t&&(we(0,_be,3,3,"td",33,Re),f(2,"td",34)(3,"span",40),m(4),h()()),2&t){const e=C().$implicit,i=C(4);xe(i.rewardDates),d(4),O(i.getWeekTotal(e.localPk))}}function vbe(t,n){1&t&&(f(0,"td")(1,"span",37),m(2,"..."),h()())}function ybe(t,n){1&t&&(f(0,"button",39),b(1,"translate"),f(2,"mat-icon",27),m(3,"chevron_right"),h()()),2&t&&(v("matTooltip",y(1,2,"nodes.view-node")),d(2),v("inline",!0))}function Cbe(t,n){if(1&t){const e=ce();f(0,"button",38),b(1,"translate"),L("click",function(o){z(e);const r=C().$implicit,s=C(4);return o.stopPropagation(),o.preventDefault(),$(s.deleteNode(r))}),f(2,"mat-icon"),m(3,"close"),h()()}2&t&&v("matTooltip",y(1,1,"nodes.delete-node"))}function wbe(t,n){if(1&t){const e=ce();f(0,"a",32)(1,"td"),S(2,gbe,3,4,"mat-icon",35),h(),f(3,"td"),B(4,"span",36),b(5,"translate"),h(),f(6,"td"),m(7),h(),f(8,"td"),m(9),h(),f(10,"td")(11,"span",37),m(12),h()(),S(13,bbe,5,1),S(14,vbe,3,0,"td"),f(15,"td",31)(16,"button",38),b(17,"translate"),L("click",function(o){const r=z(e).$implicit,s=C(4);return o.stopPropagation(),o.preventDefault(),$(s.copyToClipboard(r))}),f(18,"mat-icon",27),m(19,"filter_none"),h()(),f(20,"button",38),b(21,"translate"),L("click",function(o){const r=z(e).$implicit,s=C(4);return o.stopPropagation(),o.preventDefault(),$(s.showEditLabelDialog(r))}),f(22,"mat-icon",27),m(23,"short_text"),h()(),S(24,ybe,4,4,"button",39),S(25,Cbe,4,3,"button",39),h()()}if(2&t){const e=n.$implicit,i=C(4);v("ngClass",Mt(23,X_e))("routerLink",oe(24,Z_e,e.localPk)),d(2),k(e.isHypervisor?2:-1),d(2),at(i.nodeStatusClass(e,!0)),v("matTooltip",y(5,17,i.nodeStatusText(e,!0))),d(3),I(" ",e.label," "),d(2),I(" ",e.localPk," "),d(3),O(i.getRewardAddress(e.localPk)),d(),k(i.rewardDataLoaded?13:-1),d(),k(i.rewardDataLoading?14:-1),d(2),v("matTooltip",y(17,19,"nodes.copy-key")),d(2),v("inline",!0),d(2),v("matTooltip",y(21,21,"labeled-element.edit-label")),d(2),v("inline",!0),d(2),k(e.online?24:-1),d(),k(e.online?-1:25)}}function xbe(t,n){if(1&t){const e=ce();f(0,"table",23)(1,"tr")(2,"th",25),b(3,"translate"),L("click",function(){z(e);const o=C(3);return $(o.dataSorter.changeSortingOrder(o.hypervisorSortData))}),f(4,"mat-icon",26),m(5,"star_outline"),h(),S(6,cbe,2,2,"mat-icon",27),h(),f(7,"th",25),b(8,"translate"),L("click",function(){z(e);const o=C(3);return $(o.dataSorter.changeSortingOrder(o.stateSortData))}),B(9,"span",28),S(10,dbe,2,2,"mat-icon",27),h(),f(11,"th",29),L("click",function(){z(e);const o=C(3);return $(o.dataSorter.changeSortingOrder(o.labelSortData))}),m(12),b(13,"translate"),S(14,ube,2,2,"mat-icon",27),h(),f(15,"th",30),L("click",function(){z(e);const o=C(3);return $(o.dataSorter.changeSortingOrder(o.keySortData))}),m(16),b(17,"translate"),S(18,hbe,2,2,"mat-icon",27),h(),f(19,"th"),m(20),b(21,"translate"),h(),S(22,pbe,5,3),S(23,mbe,3,3,"th"),B(24,"th",31),h(),we(25,wbe,26,26,"a",32,Re),h()}if(2&t){const e=C(3);d(2),v("matTooltip",y(3,11,"nodes.hypervisor")),d(4),k(e.dataSorter.currentSortingColumn===e.hypervisorSortData?6:-1),d(),v("matTooltip",y(8,13,"nodes.state-tooltip")),d(3),k(e.dataSorter.currentSortingColumn===e.stateSortData?10:-1),d(2),I(" ",y(13,15,"nodes.label")," "),d(2),k(e.dataSorter.currentSortingColumn===e.labelSortData?14:-1),d(2),I(" ",y(17,17,"nodes.key")," "),d(2),k(e.dataSorter.currentSortingColumn===e.keySortData?18:-1),d(2),I(" ",y(21,19,"nodes.reward-address")," "),d(2),k(e.rewardDataLoaded?22:-1),d(),k(e.rewardDataLoading?23:-1),d(2),xe(e.dataSource)}}function Sbe(t,n){if(1&t&&(f(0,"mat-icon",27),m(1),h()),2&t){const e=C(4);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function kbe(t,n){if(1&t&&(f(0,"mat-icon",27),m(1),h()),2&t){const e=C(4);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function Dbe(t,n){if(1&t&&(f(0,"mat-icon",27),m(1),h()),2&t){const e=C(4);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function Tbe(t,n){if(1&t&&(f(0,"mat-icon",27),m(1),h()),2&t){const e=C(4);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function Mbe(t,n){if(1&t&&(f(0,"mat-icon",27),m(1),h()),2&t){const e=C(4);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function Ebe(t,n){1&t&&(f(0,"mat-icon",35),b(1,"translate"),m(2,"star"),h()),2&t&&v("inline",!0)("matTooltip",y(1,2,"nodes.hypervisor-info"))}function Ibe(t,n){if(1&t&&(f(0,"div",37),m(1),h(),f(2,"div",37),m(3),h()),2&t){const e=C(2).$implicit;d(),O(e.ip),d(2),O(e.publicIp)}}function Pbe(t,n){if(1&t&&(f(0,"div",37),m(1),h()),2&t){const e=C(2).$implicit;d(),O(e.publicIp)}}function Obe(t,n){if(1&t&&(f(0,"div",37),m(1),h()),2&t){const e=C(2).$implicit;d(),O(e.ip)}}function Abe(t,n){if(1&t&&(f(0,"div",37),m(1),h()),2&t){const e=C(2).$implicit;d(),A0("",e.cityName?e.cityName+", ":"","",e.regionName?e.regionName+", ":"","",e.countryCode)}}function Rbe(t,n){if(1&t&&(S(0,Ibe,4,2)(1,Pbe,2,1,"div",37)(2,Obe,2,1,"div",37),S(3,Abe,2,3,"div",37)),2&t){const e=C().$implicit;k(e.ip&&e.publicIp&&e.ip!==e.publicIp?0:e.publicIp?1:e.ip?2:-1),d(3),k(e.countryCode?3:-1)}}function Nbe(t,n){1&t&&(f(0,"span"),m(1,"-"),h())}function Fbe(t,n){if(1&t&&(f(0,"div",37),m(1),h()),2&t){const e=n.$implicit;d(),Hn("",e.type,": ",e.count)}}function Lbe(t,n){if(1&t&&(we(0,Fbe,2,2,"div",37,ebe),f(2,"div",37),m(3),h()),2&t){const e=C().$implicit;xe(C(4).getTransportCounts(e)),d(3),I("Total: ",e.transports.length)}}function Bbe(t,n){1&t&&(f(0,"span",37),m(1,"Total: 0"),h())}function Vbe(t,n){1&t&&(f(0,"span"),m(1,"-"),h())}function Hbe(t,n){if(1&t&&(f(0,"div",37),m(1),h()),2&t){const e=C().$implicit;d(),O(e.version)}}function jbe(t,n){if(1&t&&(f(0,"div",37),m(1),b(2,"translate"),h(),f(3,"div",37),m(4),b(5,"translate"),h()),2&t){const e=C().$implicit;d(),Hn("",y(2,4,"nodes.visor-version"),": ",e.version||"-"),d(3),Hn("",y(5,6,"nodes.config-label"),": ",e.configVersion||"-")}}function Ube(t,n){if(1&t&&(f(0,"div",37),m(1),h()),2&t){const e=n.$implicit;d(),O(e)}}function zbe(t,n){if(1&t&&we(0,Ube,2,1,"div",37,Re),2&t){const e=C().$implicit;xe(C(4).getNodeServices(e))}}function $be(t,n){1&t&&(f(0,"span"),m(1,"-"),h())}function Wbe(t,n){1&t&&(f(0,"mat-icon",41),m(1,"check_circle"),h()),2&t&&v("matTooltip",C().$implicit.rewardsAddress)}function Gbe(t,n){1&t&&(f(0,"mat-icon",42),b(1,"translate"),m(2,"cancel"),h()),2&t&&v("matTooltip",y(1,1,"nodes.reward-not-set"))}function qbe(t,n){1&t&&(f(0,"button",39),b(1,"translate"),f(2,"mat-icon",27),m(3,"chevron_right"),h()()),2&t&&(v("matTooltip",y(1,2,"nodes.view-node")),d(2),v("inline",!0))}function Kbe(t,n){if(1&t){const e=ce();f(0,"button",38),b(1,"translate"),L("click",function(o){z(e);const r=C().$implicit,s=C(4);return o.stopPropagation(),o.preventDefault(),$(s.deleteNode(r))}),f(2,"mat-icon"),m(3,"close"),h()()}2&t&&v("matTooltip",y(1,1,"nodes.delete-node"))}function Ybe(t,n){if(1&t){const e=ce();f(0,"a",32)(1,"td"),S(2,Ebe,3,4,"mat-icon",35),h(),f(3,"td"),B(4,"span",36),b(5,"translate"),h(),f(6,"td"),m(7),h(),f(8,"td"),S(9,Rbe,4,2),S(10,Nbe,2,0,"span"),h(),f(11,"td"),S(12,Lbe,4,1),S(13,Bbe,2,0,"span",37),S(14,Vbe,2,0,"span"),h(),f(15,"td"),m(16),h(),f(17,"td"),S(18,Hbe,2,1,"div",37)(19,jbe,6,8),h(),f(20,"td"),S(21,zbe,2,0),S(22,$be,2,0,"span"),h(),f(23,"td"),S(24,Wbe,2,1,"mat-icon",41),S(25,Gbe,3,3,"mat-icon",42),h(),f(26,"td",31)(27,"button",38),b(28,"translate"),L("click",function(o){const r=z(e).$implicit,s=C(4);return o.stopPropagation(),o.preventDefault(),$(s.copyToClipboard(r))}),f(29,"mat-icon",27),m(30,"filter_none"),h()(),f(31,"button",38),b(32,"translate"),L("click",function(o){const r=z(e).$implicit,s=C(4);return o.stopPropagation(),o.preventDefault(),$(s.showEditLabelDialog(r))}),f(33,"mat-icon",27),m(34,"short_text"),h()(),S(35,qbe,4,4,"button",39),S(36,Kbe,4,3,"button",39),h()()}if(2&t){const e=n.$implicit,i=C(4);v("ngClass",ft(30,Q_e,e.online,!e.online))("routerLink",e.online?oe(33,h5,e.localPk):null),d(2),k(e.isHypervisor?2:-1),d(2),at(i.nodeStatusClass(e,!0)),v("matTooltip",y(5,24,i.nodeStatusText(e,!0))),d(3),I(" ",e.label," "),d(2),k(e.ip||e.publicIp||e.countryCode?9:-1),d(),k(e.ip||e.publicIp||e.countryCode?-1:10),d(2),k(e.transports&&e.transports.length>0?12:-1),d(),k(e.transports&&0===e.transports.length?13:-1),d(),k(e.transports?-1:14),d(2),I(" ",e.localPk," "),d(2),k(e.version&&e.configVersion&&e.version===e.configVersion?18:19),d(3),k(i.getNodeServices(e).length>0?21:-1),d(),k(0===i.getNodeServices(e).length?22:-1),d(2),k(e.rewardsAddress?24:-1),d(),k(e.rewardsAddress?-1:25),d(2),v("matTooltip",y(28,26,"nodes.copy-key")),d(2),v("inline",!0),d(2),v("matTooltip",y(32,28,"labeled-element.edit-label")),d(2),v("inline",!0),d(2),k(e.online?35:-1),d(),k(e.online?-1:36)}}function Xbe(t,n){if(1&t){const e=ce();f(0,"table",23)(1,"tr")(2,"th",25),b(3,"translate"),L("click",function(){z(e);const o=C(3);return $(o.dataSorter.changeSortingOrder(o.hypervisorSortData))}),f(4,"mat-icon",26),m(5,"star_outline"),h(),S(6,Sbe,2,2,"mat-icon",27),h(),f(7,"th",25),b(8,"translate"),L("click",function(){z(e);const o=C(3);return $(o.dataSorter.changeSortingOrder(o.stateSortData))}),B(9,"span",28),S(10,kbe,2,2,"mat-icon",27),h(),f(11,"th",29),L("click",function(){z(e);const o=C(3);return $(o.dataSorter.changeSortingOrder(o.labelSortData))}),m(12),b(13,"translate"),S(14,Dbe,2,2,"mat-icon",27),h(),f(15,"th"),m(16),b(17,"translate"),h(),f(18,"th"),m(19),b(20,"translate"),h(),f(21,"th",30),L("click",function(){z(e);const o=C(3);return $(o.dataSorter.changeSortingOrder(o.keySortData))}),m(22),b(23,"translate"),S(24,Tbe,2,2,"mat-icon",27),h(),f(25,"th",30),L("click",function(){z(e);const o=C(3);return $(o.dataSorter.changeSortingOrder(o.versionSortData))}),m(26),b(27,"translate"),S(28,Mbe,2,2,"mat-icon",27),h(),f(29,"th"),m(30),b(31,"translate"),h(),f(32,"th"),m(33),b(34,"translate"),h(),B(35,"th",31),h(),we(36,Ybe,37,35,"a",32,Re),h()}if(2&t){const e=C(3);d(2),v("matTooltip",y(3,14,"nodes.hypervisor")),d(4),k(e.dataSorter.currentSortingColumn===e.hypervisorSortData?6:-1),d(),v("matTooltip",y(8,16,"nodes.state-tooltip")),d(3),k(e.dataSorter.currentSortingColumn===e.stateSortData?10:-1),d(2),I(" ",y(13,18,"nodes.label")," "),d(2),k(e.dataSorter.currentSortingColumn===e.labelSortData?14:-1),d(2),I(" ",y(17,20,"nodes.ip-location")," "),d(3),I(" ",y(20,22,"nodes.transports")," "),d(3),I(" ",y(23,24,"nodes.key")," "),d(2),k(e.dataSorter.currentSortingColumn===e.keySortData?24:-1),d(2),I(" ",y(27,26,"nodes.version")," "),d(2),k(e.dataSorter.currentSortingColumn===e.versionSortData?28:-1),d(2),I(" ",y(31,28,"nodes.services")," "),d(3),I(" ",y(34,30,"nodes.reward")," "),d(3),xe(e.dataSource)}}function Zbe(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"tables.label")," ")}function Qbe(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"tables.inverted-order")," ")}function Jbe(t,n){1&t&&(f(0,"div",49)(1,"mat-icon",53),m(2,"star"),h(),m(3,"\xa0 "),f(4,"span",54),m(5),b(6,"translate"),h()()),2&t&&(d(),v("inline",!0),d(4),O(y(6,2,"nodes.hypervisor")))}function eve(t,n){if(1&t&&(f(0,"span"),m(1),h()),2&t){const e=C(2).$implicit;d(),O(e.ip)}}function tve(t,n){1&t&&(f(0,"span"),m(1," / "),h())}function nve(t,n){if(1&t&&(f(0,"span"),m(1),h()),2&t){const e=C(2).$implicit;d(),O(e.publicIp)}}function ive(t,n){if(1&t&&(f(0,"div",49)(1,"span",8),m(2),b(3,"translate"),h(),m(4,": "),S(5,eve,2,1,"span"),S(6,tve,2,0,"span"),S(7,nve,2,1,"span"),h()),2&t){const e=C().$implicit;d(2),O(y(3,4,"nodes.ip")),d(3),k(e.ip?5:-1),d(),k(e.ip&&e.publicIp?6:-1),d(),k(e.publicIp?7:-1)}}function ove(t,n){if(1&t&&(f(0,"span"),m(1),h()),2&t){const e=C(2).$implicit;d(),I("",e.cityName,", ")}}function rve(t,n){if(1&t&&(f(0,"span"),m(1),h()),2&t){const e=C(2).$implicit;d(),I("",e.regionName,", ")}}function sve(t,n){if(1&t&&(f(0,"div",49)(1,"span",8),m(2),b(3,"translate"),h(),m(4,": "),S(5,ove,2,1,"span"),S(6,rve,2,1,"span"),m(7),h()),2&t){const e=C().$implicit;d(2),O(y(3,4,"nodes.location")),d(3),k(e.cityName?5:-1),d(),k(e.regionName?6:-1),d(),I("",e.countryCode," ")}}function ave(t,n){if(1&t&&(f(0,"div",49)(1,"span",8),m(2),b(3,"translate"),h(),m(4),h()),2&t){const e=C().$implicit;d(2),O(y(3,2,"nodes.version")),d(2),I(": ",e.version," ")}}function lve(t,n){if(1&t&&(f(0,"div",49)(1,"span",8),m(2),b(3,"translate"),h(),m(4),h()),2&t){const e=C().$implicit;d(2),O(y(3,2,"nodes.config-version")),d(2),I(": ",e.configVersion," ")}}function cve(t,n){if(1&t){const e=ce();f(0,"a",47)(1,"tr",48)(2,"td",48)(3,"div",44)(4,"div",45),S(5,Jbe,7,4,"div",49),f(6,"div",49)(7,"span",8),m(8),b(9,"translate"),h(),m(10,": "),f(11,"span"),m(12),b(13,"translate"),h()(),f(14,"div",49)(15,"span",8),m(16),b(17,"translate"),h(),m(18),h(),S(19,ive,8,6,"div",49),S(20,sve,8,6,"div",49),f(21,"div",50)(22,"span",8),m(23),b(24,"translate"),h(),m(25),h(),S(26,ave,5,4,"div",49),S(27,lve,5,4,"div",49),h(),B(28,"div",51),f(29,"div",46)(30,"button",52),b(31,"translate"),L("click",function(o){const r=z(e).$implicit,s=C(4);return o.stopPropagation(),o.preventDefault(),$(s.showOptionsDialog(r))}),f(32,"mat-icon"),m(33),h()()()()()()()}if(2&t){const e=n.$implicit,i=C(4);v("ngClass",oe(27,J_e,e.online))("routerLink",e.online?oe(29,h5,e.localPk):null),d(5),k(e.isHypervisor?5:-1),d(3),O(y(9,17,"nodes.state")),d(3),at(i.nodeStatusClass(e,!1)+" title"),d(),O(y(13,19,i.nodeStatusText(e,!1))),d(4),O(y(17,21,"nodes.label")),d(2),I(": ",e.label," "),d(),k(e.ip||e.publicIp?19:-1),d(),k(e.countryCode?20:-1),d(3),O(y(24,23,"nodes.key")),d(2),I(": ",e.localPk," "),d(),k(e.version?26:-1),d(),k(e.configVersion?27:-1),d(3),v("matTooltip",y(31,25,"common.options")),d(3),O("add")}}function dve(t,n){if(1&t){const e=ce();f(0,"table",24)(1,"tr",43),L("click",function(){return z(e),$(C(3).dataSorter.openSortingOrderModal())}),f(2,"td")(3,"div",44)(4,"div",45)(5,"div",8),m(6),b(7,"translate"),h(),f(8,"div"),m(9),b(10,"translate"),S(11,Zbe,2,3),S(12,Qbe,2,3),h()(),f(13,"div",46)(14,"mat-icon",27),m(15,"keyboard_arrow_down"),h()()()()(),we(16,cve,34,31,"a",47,Re),h()}if(2&t){const e=C(3);d(6),O(y(7,5,"tables.sorting-title")),d(3),I("",y(10,7,e.dataSorter.currentSortingColumn.label)," "),d(2),k(e.dataSorter.currentlySortingByLabel?11:-1),d(),k(e.dataSorter.sortingInReverseOrder?12:-1),d(2),v("inline",!0),d(2),xe(e.dataSource)}}function uve(t,n){if(1&t&&(f(0,"div",17)(1,"div",22),S(2,xbe,27,21,"table",23),S(3,Xbe,38,32,"table",23),S(4,dve,18,9,"table",24),h()()),2&t){const e=C(2);d(2),k(e.showRewardsInfo&&e.dataSource.length>0?2:-1),d(),k(!e.showRewardsInfo&&e.dataSource.length>0?3:-1),d(),k(e.dataSource.length>0?4:-1)}}function hve(t,n){if(1&t&&B(0,"app-paginator",16),2&t){const e=C(2);v("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",e.showRewardsInfo?Mt(4,d5):Mt(5,u5))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function fve(t,n){1&t&&(f(0,"span",57),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"nodes.empty")))}function pve(t,n){1&t&&(f(0,"span",57),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"nodes.empty-with-filter")))}function mve(t,n){if(1&t&&(f(0,"div",17)(1,"div",55)(2,"mat-icon",56),m(3,"warning"),h(),S(4,fve,3,3,"span",57),S(5,pve,3,3,"span",57),h()()),2&t){const e=C(2);d(2),v("inline",!0),d(2),k(0===e.allNodes.length?4:-1),d(),k(0!==e.allNodes.length?5:-1)}}function gve(t,n){if(1&t){const e=ce();f(0,"div",2)(1,"div",5)(2,"app-top-bar",6),L("refreshRequested",function(){return z(e),$(C().forceDataRefresh(!0))})("optionSelected",function(o){return z(e),$(C().performAction(o))}),h()(),f(3,"div",5)(4,"div",7)(5,"div",8),S(6,rbe,6,3,"div",9),h(),f(7,"div",10)(8,"div",11),S(9,sbe,3,4,"mat-icon",12),S(10,abe,2,1,"mat-icon",13),f(11,"mat-menu",14,0)(13,"div",15),L("click",function(){return z(e),$(C().removeOffline())}),m(14),b(15,"translate"),h()()(),S(16,lbe,1,6,"app-paginator",16),h()(),S(17,uve,5,3,"div",17),S(18,hve,1,6,"app-paginator",16),S(19,mve,6,3,"div",17),h()()}if(2&t){const e=C();d(2),v("titleParts",Mt(22,c5))("tabsData",e.tabsData)("selectedTabIndex",e.showRewardsInfo?1:0)("secondsSinceLastUpdate",e.secondsSinceLastUpdate)("showLoading",e.updating)("showAlert",e.errorsUpdating)("refeshRate",e.storageService.getRefreshTime())("optionsData",e.options),d(2),v("ngClass",oe(23,Y_e,e.numberOfPages>1)),d(2),k(e.dataFilterer.currentFiltersTexts&&e.dataFilterer.currentFiltersTexts.length>0?6:-1),d(3),k(e.allNodes&&e.allNodes.length>0?9:-1),d(),k(e.dataSource.length>0?10:-1),d(),v("overlapTrigger",!1),d(2),v("disabled",Wt(!e.hasOfflineNodes)),d(),I(" ",y(15,20,"nodes.delete-all-offline")," "),d(2),k(e.numberOfPages>1?16:-1),d(),k(0!==e.dataSource.length?17:-1),d(),k(e.numberOfPages>1?18:-1),d(),k(0===e.dataSource.length?19:-1)}}let f5=(()=>{class t extends Wn{constructor(e,i,o,r,s,a,l,c,u,p,g,_){super(),this.nodeService=e,this.multipleNodeDataService=i,this.router=o,this.dialog=r,this.authService=s,this.storageService=a,this.ngZone=l,this.snackbarService=c,this.clipboardService=u,this.translateService=p,this.rewardService=g,this.persistentServerDataResponseKey="serv-dat-response",this.nodesListId="nl",this.dmsgListId="dl",this.hypervisorSortData=new Pt(["isHypervisor"],"nodes.hypervisor",ct.Boolean),this.stateSortData=new Pt(["online"],"nodes.state",ct.Boolean),this.labelSortData=new Pt(["label"],"nodes.label",ct.Text),this.keySortData=new Pt(["localPk"],"nodes.key",ct.Text),this.versionSortData=new Pt(["version"],"nodes.version",ct.Text),this.configVersionSortData=new Pt(["configVersion"],"nodes.config-version",ct.Text),this.dmsgServerSortData=new Pt(["dmsgServerPk"],"nodes.dmsg-server",ct.Text,["dmsgServerPk_label"]),this.pingSortData=new Pt(["roundTripPing"],"nodes.ping",ct.Number),this.loading=!0,this.dataSource=[],this.tabsData=[],this.options=[],this.showDmsgInfo=!1,this.showRewardsInfo=!1,this.canLogOut=!0,this.rewardDataMap=new Map,this.rewardDates=[],this.rewardDateHeaders=[],this.rewardDataLoading=!1,this.rewardDataLoaded=!1,this.hasOfflineNodes=!1,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.filterProperties=[{filterName:"nodes.filter-dialog.online",keyNameInElementsArray:"online",type:mn.Select,printableLabelsForValues:[{value:"",label:"nodes.filter-dialog.online-options.any"},{value:"true",label:"nodes.filter-dialog.online-options.online"},{value:"false",label:"nodes.filter-dialog.online-options.offline"}]},{filterName:"nodes.filter-dialog.label",keyNameInElementsArray:"label",type:mn.TextInput,maxlength:100},{filterName:"nodes.filter-dialog.key",keyNameInElementsArray:"localPk",type:mn.TextInput,maxlength:66},{filterName:"nodes.filter-dialog.dmsg",keyNameInElementsArray:"dmsgServerPk",secondaryKeyNameInElementsArray:"dmsgServerPk_label",type:mn.TextInput,maxlength:66}],this.secondsSinceLastUpdate=0,this.lastUpdate=Date.now(),this.updating=!1,this.errorsUpdating=!1,this.lastUpdateRequestedManually=!1,this.labeledElementTypes=io,this.updateOptionsMenu(),this.authVerificationSubscription=this.authService.checkLogin().subscribe(T=>{this.canLogOut=T!==xa.AuthDisabled,this.updateOptionsMenu()}),this.showRewardsInfo=-1!==this.router.url.indexOf("rewards"),this.showDmsgInfo=!1,this.filterProperties.splice(this.filterProperties.length-1);const x=this.showRewardsInfo?"rl":this.nodesListId;this.dataSorter=new ru(this.dialog,this.translateService,this.storageService,[this.hypervisorSortData,this.stateSortData,this.labelSortData,this.keySortData,this.versionSortData,this.configVersionSortData],3,x),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataFilterer=new su(this.dialog,_,this.router,this.filterProperties,x),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(T=>{this.filteredNodes=T,this.hasOfflineNodes=!1,this.filteredNodes.forEach(E=>{E.online||(this.hasOfflineNodes=!0)}),this.dataSorter.setData(this.filteredNodes)}),this.navigationsSubscription=_.paramMap.subscribe(T=>{if(T.has("page")){let E=Number.parseInt(T.get("page"),10);(isNaN(E)||E<1)&&(E=1),this.currentPageInUrl=E,this.recalculateElementsToShow()}}),this.tabsData=[{icon:"view_headline",label:"nodes.title",linkParts:["/nodes"]},{icon:"monetization_on",label:"nodes.rewards-title",linkParts:["/nodes","rewards"]},{icon:"health_and_safety",label:"nodes.services-health-title",linkParts:["/nodes","services-health"]},{icon:"hub",label:"nodes.dmsg-settings-title",linkParts:["/nodes","dmsg-settings"]},{icon:"bubble_chart",label:"node.details.tpviz.title",linkParts:[],externalUrl:"/tp-viz/"},{icon:"settings",label:"settings.title",linkParts:["/settings"]}],this.languageSubscription=this.translateService.onLangChange.subscribe(()=>{this.multipleNodeDataService.forceRefresh()})}updateOptionsMenu(){this.options=[],this.options.push({name:"nodes.modify-rewards-all",actionName:"modifyRewardsAll",icon:"edit"}),this.canLogOut&&this.options.push({name:"common.logout",actionName:"logout",icon:"power_settings_new"})}ngOnInit(){return this.startGettingData(!0),this.ngZone.runOutsideAngular(()=>{this.updateTimeSubscription=Ul(5e3,5e3).subscribe(()=>this.ngZone.run(()=>{this.secondsSinceLastUpdate=Math.floor((Date.now()-this.lastUpdate)/1e3)}))}),super.ngOnInit()}ngOnDestroy(){this.authVerificationSubscription.unsubscribe(),this.dataSubscription.unsubscribe(),this.updateTimeSubscription.unsubscribe(),this.navigationsSubscription.unsubscribe(),this.languageSubscription.unsubscribe(),this.updateSubscription&&this.updateSubscription.unsubscribe(),this.dataSortedSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFiltererSubscription.unsubscribe(),this.dataFilterer.dispose()}performAction(e){"logout"===e?this.logout():"updateAll"===e?this.updateAll():"modifyRewardsAll"===e&&this.changeRewardsToAll()}nodeStatusClass(e,i){return e.online?e.health&&e.health.servicesHealth===Eo.Unhealthy?i?"dot-yellow blinking":"yellow-text":e.health&&e.health.servicesHealth===Eo.Healthy?i?"dot-green":"green-text":i?"dot-outline-gray":"":i?"dot-red":"red-text"}nodeStatusText(e,i){return e.online?e.health&&e.health.servicesHealth===Eo.Healthy?"node.statuses.online"+(i?"-tooltip":""):e.health&&e.health.servicesHealth===Eo.Unhealthy?"node.statuses.partially-online"+(i?"-tooltip":""):e.health&&e.health.servicesHealth===Eo.Connecting?"node.statuses.connecting"+(i?"-tooltip":""):"node.statuses.unknown"+(i?"-tooltip":""):"node.statuses.offline"+(i?"-tooltip":"")}forceDataRefresh(e=!1){e&&(this.lastUpdateRequestedManually=!0),this.multipleNodeDataService.forceRefresh()}startGettingData(e){const i=e?this.getLocalValue(this.persistentServerDataResponseKey):null;let o=this.multipleNodeDataService.startRequestingData();i&&(o=ae(JSON.parse(i.value))),this.dataSubscription=o.subscribe(r=>{i||this.saveLocalValue(this.persistentServerDataResponseKey,JSON.stringify(r)),this.updating=!r||r.updating,r&&!r.updating&&(r.data&&!r.error?(this.allNodes=r.data,this.dataFilterer.setData(this.allNodes),this.showRewardsInfo&&!this.rewardDataLoaded&&!this.rewardDataLoading&&this.loadRewardData(),this.loading=!1,this.snackbarService.closeCurrentIfTemporaryError(),this.lastUpdate=r.momentOfLastCorrectUpdate,this.secondsSinceLastUpdate=Math.floor((Date.now()-r.momentOfLastCorrectUpdate)/1e3),this.errorsUpdating=!1,Kr.currentInstance.hideDataProblemMsg(),this.lastUpdateRequestedManually&&(this.snackbarService.showDone("common.refreshed",null),this.lastUpdateRequestedManually=!1)):r.error&&(this.errorsUpdating||this.snackbarService.showError(this.loading?"common.loading-error":"nodes.error-load",null,!0,r.error),this.loading=!1,this.errorsUpdating=!0,Kr.currentInstance.showDataProblemMsg())),i&&this.startGettingData(!1)})}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredNodes){const e=ze.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredNodes.length/e),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const i=e*(this.currentPage-1);this.nodesToShow=this.filteredNodes.slice(i,i+e)}else this.nodesToShow=null;this.nodesToShow&&(this.dataSource=this.nodesToShow)}logout(){const e=Ye.createConfirmationDialog(this.dialog,"common.logout-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.closeModal(),this.authService.logout().subscribe(()=>this.router.navigate(["login"]),()=>this.snackbarService.showError("common.logout-error"))})}updateAll(){if(!this.dataSource||0===this.dataSource.length)return void this.snackbarService.showError("nodes.no-visors-to-update");const e=[],i=[];this.dataSource.forEach(o=>{if(o.online){const r={key:o.localPk,label:o.label,version:o.version,tag:o.buildTag};Ye.checkIfTagIsUpdatable(o.buildTag)?e.push(r):i.push(r)}}),sge.openDialog(this.dialog,e,i)}changeRewardsToAll(){if(!this.dataSource||0===this.dataSource.length)return void this.snackbarService.showError("nodes.no-visors-to-modify");const e=[];this.dataSource.forEach(o=>{o.online&&e.push({key:o.localPk,label:o.label})}),Pge.openDialog(this.dialog,{nodes:e})}recursivelyUpdateWallets(e,i,o=0){return this.nodeService.update(e[e.length-1]).pipe(go(()=>ae(null)),Et(r=>(r&&r.updated&&!r.error?this.snackbarService.showDone(this.translateService.instant("nodes.update.done",{name:i[i.length-1]})):(this.snackbarService.showError(this.translateService.instant("nodes.update.update-error",{name:i[i.length-1]})),o+=1),e.pop(),i.pop(),e.length>=1?this.recursivelyUpdateWallets(e,i,o):ae(o))))}showOptionsDialog(e){const i=[{icon:"filter_none",label:"nodes.copy-key"}];i.push({icon:"short_text",label:"labeled-element.edit-label"}),e.online||i.push({icon:"close",label:"nodes.delete-node"}),oo.openDialog(this.dialog,i,"common.options").afterClosed().subscribe(o=>{1===o?this.copySpecificTextToClipboard(e.localPk):2===o?this.showEditLabelDialog(e):3===o&&this.deleteNode(e)})}copyToClipboard(e){this.copySpecificTextToClipboard(e.localPk)}copySpecificTextToClipboard(e){this.clipboardService.copy(e)&&this.snackbarService.showDone("copy.copied")}showEditLabelDialog(e){let i=this.storageService.getLabelInfo(e.localPk);i||(i={id:e.localPk,label:"",identifiedElementType:io.Node}),vk.openDialog(this.dialog,i).afterClosed().subscribe(o=>{o&&this.forceDataRefresh()})}deleteNode(e){const i=Ye.createConfirmationDialog(this.dialog,"nodes.delete-node-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.close(),this.storageService.setLocalNodesAsHidden([e.localPk],[e.ip]),this.forceDataRefresh(),this.snackbarService.showDone("nodes.deleted")})}getTransportCounts(e){if(!e.transports||0===e.transports.length)return[];const i={};return e.transports.forEach(o=>{const r=(o.type||"unknown").toUpperCase();i[r]=(i[r]||0)+1}),Object.keys(i).sort().map(o=>({type:o,count:i[o]}))}getNodeServices(e){const i=[];return e.apps&&e.apps.forEach(o=>{1===o.status&&("skysocks"===o.name?i.push("Proxy Server"):"vpn-server"===o.name&&i.push("VPN Server"))}),e.isPublic&&i.push("Public Visor"),e.autoconnectTransports&&i.push("Autoconnect"),i}loadRewardData(){if(!this.allNodes||0===this.allNodes.length)return;this.rewardDataLoading=!0;const e=this.allNodes.map(i=>i.localPk);this.rewardService.fetchRewardData(e).subscribe(i=>{this.rewardDataMap=i,this.rewardDates=this.rewardService.getCachedDates(),this.rewardDateHeaders=this.rewardDates.map(o=>this.rewardService.formatDateShort(o)),this.rewardDataLoading=!1,this.rewardDataLoaded=!0})}getRewardData(e){return this.rewardDataMap.get(e)||null}getRewardAmount(e,i){const o=this.rewardDataMap.get(e);return o&&o.dailyAmounts[i]&&0!==o.dailyAmounts[i]?o.dailyAmounts[i].toFixed(2):"-"}getRewardClass(e,i){const o=this.rewardDataMap.get(e);return o&&o.dailyAmounts[i]&&0!==o.dailyAmounts[i]?o.dailySent[i]?"reward-sent":"reward-pending":""}getWeekTotal(e){const i=this.rewardDataMap.get(e);return i&&0!==i.weekTotal?i.weekTotal.toFixed(2):"-"}getRewardAddress(e){const i=this.allNodes?.find(r=>r.localPk===e);if(i?.rewardsAddress)return i.rewardsAddress;const o=this.rewardDataMap.get(e);return o?.rewardAddress?o.rewardAddress:"-"}removeOffline(){let e="nodes.delete-all-offline-confirmation";this.dataFilterer.currentFiltersTexts&&this.dataFilterer.currentFiltersTexts.length>0&&(e="nodes.delete-all-filtered-offline-confirmation");const i=Ye.createConfirmationDialog(this.dialog,e);i.componentInstance.operationAccepted.subscribe(()=>{i.close();const o=[],r=[];this.filteredNodes.forEach(s=>{s.online||(o.push(s.localPk),r.push(s.ip))}),o.length>0&&(this.storageService.setLocalNodesAsHidden(o,r),this.forceDataRefresh(),1===o.length?this.snackbarService.showDone("nodes.deleted-singular"):this.snackbarService.showDone("nodes.deleted-plural",{number:o.length}))})}static{this.\u0275fac=function(i){return new(i||t)(P(Sr),P(KV),P(vt),P(kt),P(Vf),P(zn),P(ge),P(bt),P(Gf),P(zo),P(Oge),P(Ei))}}static{this.\u0275cmp=se({type:t,selectors:[["app-node-list"]],standalone:!1,features:[be],decls:2,vars:2,consts:[["selectionMenu","matMenu"],[1,"d-flex","flex-column","h-100","w-100"],[1,"row"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton"],[1,"h-100"],[1,"col-12"],[3,"refreshRequested","optionSelected","titleParts","tabsData","selectedTabIndex","secondsSinceLastUpdate","showLoading","showAlert","refeshRate","optionsData"],[1,"generic-title-container","mt-4.5","d-flex",3,"ngClass"],[1,"title"],[1,"filter-label","subtle-transparent-button","cursor-pointer"],[1,"options"],[1,"options-container"],[1,"small-icon",3,"inline","matTooltip"],[3,"matMenuTriggerFor"],[3,"overlapTrigger"],["mat-menu-item","",3,"click","disabled"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"rounded-elevated-box","mt-3"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],[1,"item"],[1,"transparent-50"],[1,"small-icon",3,"click","inline","matTooltip"],[1,"box-internal-container","overflow","full-node-list-margins"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none","nowrap"],[1,"sortable-column","small-column",3,"click","matTooltip"],[1,"hypervisor-icon","grey-text"],[3,"inline"],[1,"dot-outline-gray"],[1,"sortable-column","labels",3,"click"],[1,"sortable-column",3,"click"],[1,"actions"],[1,"selectable","link-row",3,"ngClass","routerLink"],[1,"reward-day-column"],[1,"reward-total-column"],[1,"hypervisor-icon",3,"inline","matTooltip"],[3,"matTooltip"],[2,"font-size","0.85em"],["mat-button","",1,"big-action-button","transparent-button",3,"click","matTooltip"],["mat-button","",1,"big-action-button","transparent-button",3,"matTooltip"],[2,"font-size","0.85em","font-weight","bold"],[2,"color","#4caf50","font-size","20px",3,"matTooltip"],[2,"color","#f44336","font-size","20px",3,"matTooltip"],[1,"selectable","click-effect",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],[1,"link-row",3,"ngClass","routerLink"],[1,"d-block"],[1,"list-row"],[1,"list-row","long-content"],[1,"margin-part"],["mat-icon-button","",1,"transparent-button",3,"click","matTooltip"],[1,"hypervisor-icon",3,"inline"],[1,"yellow-clear-text","title"],[1,"box-internal-container","font-sm"],[1,"alert-icon",3,"inline"],[1,"font-sm"]],template:function(i,o){1&i&&(S(0,tbe,4,5,"div",1),S(1,gve,20,25,"div",2)),2&i&&(k(o.loading?0:-1),d(),k(o.loading?-1:1))},dependencies:[qt,wa,Jn,Ms,lt,pn,Xr,Ps,lu,vr,cu,As,Se],styles:[".labels[_ngcontent-%COMP%]{width:15%}.actions[_ngcontent-%COMP%]{text-align:right;width:120px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}.hypervisor-icon[_ngcontent-%COMP%]{font-size:14px!important;line-height:14px!important;position:relative;top:2px;margin-left:2px;color:#d48b05}.small-column[_ngcontent-%COMP%]{width:1px}.non-selectable[_ngcontent-%COMP%]{cursor:not-allowed}.reward-day-column[_ngcontent-%COMP%]{text-align:center;white-space:nowrap;min-width:60px}.reward-total-column[_ngcontent-%COMP%]{text-align:center;white-space:nowrap;min-width:70px}.reward-sent[_ngcontent-%COMP%]{color:#4caf50}.reward-pending[_ngcontent-%COMP%]{color:#ff9800}"]})}}return t})();function _ve(t,n){1&t&&(f(0,"div",6),B(1,"mat-spinner",7),h())}function bve(t,n){if(1&t&&(f(0,"tr")(1,"td"),m(2,".dmsg"),h(),f(3,"td"),m(4),h(),f(5,"td"),m(6),h(),f(7,"td"),m(8),h()()),2&t){const e=C(4);d(3),at(e.proxyStatus.dmsg_web.running?"status-ok":"status-off"),d(),I(" ",e.proxyStatus.dmsg_web.running?"Yes":"No"," "),d(2),O(e.proxyStatus.dmsg_web.socks_addr||"-"),d(2),O(e.proxyStatus.dmsg_web.upstream_socks||"direct")}}function vve(t,n){if(1&t&&(f(0,"tr")(1,"td"),m(2,".skynet"),h(),f(3,"td"),m(4),h(),f(5,"td"),m(6),h(),f(7,"td"),m(8),h()()),2&t){const e=C(4);d(3),at(e.proxyStatus.skynet_web.running?"status-ok":"status-off"),d(),I(" ",e.proxyStatus.skynet_web.running?"Yes":"No"," "),d(2),O(e.proxyStatus.skynet_web.socks_addr||"-"),d(2),O(e.proxyStatus.skynet_web.upstream_socks||"direct")}}function yve(t,n){if(1&t&&(f(0,"table",21)(1,"tr")(2,"th"),m(3,"Resolver"),h(),f(4,"th"),m(5,"Running"),h(),f(6,"th"),m(7,"SOCKS"),h(),f(8,"th"),m(9,"Upstream"),h()(),tt(10,bve,9,5,"tr",3)(11,vve,9,5,"tr",3),h()),2&t){const e=C(3);d(10),v("ngIf",e.proxyStatus.dmsg_web),d(),v("ngIf",e.proxyStatus.skynet_web)}}function Cve(t,n){if(1&t&&(f(0,"div",19),tt(1,yve,12,2,"table",20),h()),2&t){const e=C(2);d(),v("ngIf",e.proxyStatus.dmsg_web||e.proxyStatus.skynet_web)}}function wve(t,n){if(1&t){const e=ce();f(0,"div")(1,"h3",8),m(2,"Resolving Proxy"),h(),f(3,"p",9),m(4," Browse "),f(5,"strong"),m(6,".skynet"),h(),m(7," and "),f(8,"strong"),m(9,".dmsg"),h(),m(10," domains. Set an upstream SOCKS5 proxy to route all other traffic through skysocks. "),h(),tt(11,Cve,2,1,"div",10),f(12,"div",11)(13,"div",12)(14,"mat-checkbox",13),L("change",function(o){z(e);const r=C();return r.form.get("skynetEnabled").setValue(o.checked),$(r.toggleProxy())}),m(15," Enable resolving proxy (.skynet + .dmsg) "),h()(),f(16,"form",14)(17,"div",15)(18,"mat-form-field",16)(19,"mat-label"),m(20,"Upstream SOCKS5 (e.g. 127.0.0.1:1080)"),h(),B(21,"input",17),h(),f(22,"button",18),L("click",function(){return z(e),$(C().setUpstream())}),m(23," Set "),h()()()()()}if(2&t){const e=C();d(11),v("ngIf",e.proxyStatus),d(3),v("checked",e.form.get("skynetEnabled").value)("disabled",e.loading),d(2),v("formGroup",e.form),d(6),v("disabled",e.loading)}}let xve=(()=>{class t{constructor(e,i,o,r){this.dialogRef=e,this.data=i,this.nodeService=o,this.snackbarService=r,this.loading=!1,this.proxyStatus=null,this.skynetPorts=[],this.newPort="",this.form=new ZS({skynetEnabled:new eu(!1),upstream:new eu("")}),this.loadStatus(),this.loadPorts()}loadStatus(){this.loading=!0,this.nodeService.getProxies(this.data.nodeKey).subscribe(e=>{this.proxyStatus=e,this.loading=!1;const i=e?.skynet_web?.running||!1,o=e?.skynet_web?.upstream_socks||"";this.form.get("skynetEnabled").setValue(i),this.form.get("upstream").setValue(o)},()=>{this.loading=!1})}loadPorts(){this.nodeService.getSkynetPorts(this.data.nodeKey).subscribe(e=>{this.skynetPorts=(e||[]).sort((i,o)=>i-o)},()=>{})}toggleProxy(){const e=this.form.get("skynetEnabled").value;this.loading=!0,this.nodeService.setProxyEnabled(this.data.nodeKey,"skynet",e).subscribe(()=>{this.nodeService.setProxyEnabled(this.data.nodeKey,"dmsg",e).subscribe(()=>{this.loading=!1,this.snackbarService.showDone(e?"Resolving proxy enabled":"Resolving proxy disabled"),this.loadStatus()},()=>{this.loading=!1})},()=>{this.loading=!1,this.snackbarService.showError("Failed to toggle proxy")})}setUpstream(){const e=this.form.get("upstream").value.trim();this.loading=!0,this.nodeService.setProxyUpstream(this.data.nodeKey,"skynet",e).subscribe(()=>{this.loading=!1,this.snackbarService.showDone(e?`Upstream set to ${e}`:"Upstream cleared"),this.loadStatus()},()=>{this.loading=!1,this.snackbarService.showError("Failed to set upstream")})}addPort(){const e=parseInt(this.newPort,10);isNaN(e)||e<1||e>65535?this.snackbarService.showError("Invalid port number"):this.nodeService.registerSkynetPort(this.data.nodeKey,e).subscribe(()=>{this.newPort="",this.snackbarService.showDone(`Port ${e} forwarded`),this.loadPorts()},i=>{this.snackbarService.showError(i?.error?.error||"Failed to register port")})}removePort(e){this.nodeService.deregisterSkynetPort(this.data.nodeKey,e).subscribe(()=>{this.snackbarService.showDone(`Port ${e} removed`),this.loadPorts()},()=>{this.snackbarService.showError("Failed to deregister port")})}close(){this.dialogRef.close()}static{this.\u0275fac=function(i){return new(i||t)(P(It),P(hn),P(Sr),P(bt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-proxy-settings"]],standalone:!1,decls:9,vars:2,consts:[[1,"generic-dialog-container"],["mat-dialog-title",""],["class","text-center py-3",4,"ngIf"],[4,"ngIf"],["align","end"],["mat-button","",3,"click"],[1,"text-center","py-3"],["diameter","30",1,"mx-auto"],[1,"section-title"],[1,"help-text"],["class","proxy-status",4,"ngIf"],[1,"proxy-form"],[1,"form-row","toggle-row"],[3,"change","checked","disabled"],[3,"formGroup"],[1,"form-row","upstream-row"],["appearance","outline",1,"upstream-field"],["matInput","","formControlName","upstream","placeholder","127.0.0.1:1080"],["mat-raised-button","","color","primary",3,"click","disabled"],[1,"proxy-status"],["class","status-table",4,"ngIf"],[1,"status-table"]],template:function(i,o){1&i&&(f(0,"div",0)(1,"h2",1),m(2,"Skynet Settings"),h(),f(3,"mat-dialog-content"),tt(4,_ve,2,0,"div",2)(5,wve,24,5,"div",3),h(),f(6,"mat-dialog-actions",4)(7,"button",5),L("click",function(){return o.close()}),m(8,"Close"),h()()()),2&i&&(d(4),v("ngIf",o.loading),d(),v("ngIf",!o.loading))},dependencies:[$h,Cn,rn,sn,yn,Xt,fn,wS,MB,Kd,wn,Jb,ei,Jn,$o,kr],styles:[".section-title[_ngcontent-%COMP%]{font-size:15px;font-weight:500;margin:16px 0 4px;color:#000000de}.section-title[_ngcontent-%COMP%]:first-of-type{margin-top:0}.help-text[_ngcontent-%COMP%]{color:#0009;font-size:13px;margin-bottom:12px}.help-text[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{background:#0000000f;padding:1px 4px;border-radius:3px;font-size:12px}.status-table[_ngcontent-%COMP%]{width:100%;margin-bottom:12px;border-collapse:collapse}.status-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%], .status-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:5px 8px;text-align:left;border-bottom:1px solid rgba(0,0,0,.08);font-size:13px}.status-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{color:#00000080;font-weight:500}.status-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{color:#000000de}.status-table[_ngcontent-%COMP%] .status-ok[_ngcontent-%COMP%]{color:#4caf50;font-weight:500}.status-table[_ngcontent-%COMP%] .status-off[_ngcontent-%COMP%]{color:#00000061}.proxy-form[_ngcontent-%COMP%]{margin-top:8px;margin-bottom:8px}.form-row[_ngcontent-%COMP%]{margin-bottom:12px}.upstream-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.upstream-row[_ngcontent-%COMP%] .upstream-field[_ngcontent-%COMP%]{flex:1}.no-ports[_ngcontent-%COMP%]{color:#00000061;font-style:italic;font-size:13px}.port-list[_ngcontent-%COMP%]{margin-bottom:8px}.port-item[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;border-bottom:1px solid rgba(0,0,0,.06)}.port-item[_ngcontent-%COMP%] .port-number[_ngcontent-%COMP%]{font-family:monospace;font-size:14px;font-weight:500}.add-port-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.add-port-row[_ngcontent-%COMP%] .port-field[_ngcontent-%COMP%]{width:120px}"]})}}return t})();const Sve=["content"],Sk=t=>({number:t}),kve=t=>({time:t});function Dve(t,n){if(1&t&&(f(0,"div",11),m(1),b(2,"translate"),h()),2&t){const e=C(2);d(),I(" ",Ee(2,1,"node.logs.filter-ignored",oe(4,Sk,e.logEntries.length-e.filteredLogEntries.length))," ")}}function Tve(t,n){if(1&t){const e=ce();f(0,"div",8),L("click",function(){return z(e),$(C().showFilters())}),f(1,"div",9)(2,"div")(3,"span"),m(4),b(5,"translate"),h(),f(6,"span",10),m(7),b(8,"translate"),h()(),S(9,Dve,3,6,"div",11),h(),B(10,"div",12),h()}if(2&t){const e=C();d(4),I("",y(5,3,"node.logs.selected-filter")," "),d(3),O(y(8,5,"node.logs."+e.levelDetails.get(e.currentMinimumLevel).levelFilterName)),d(2),k(e.logEntries.length>e.filteredLogEntries.length?9:-1)}}function Mve(t,n){if(1&t&&(f(0,"div",3)(1,"a",13),m(2),b(3,"translate"),h()()),2&t){const e=C();d(),v("href",e.getFullLogsUrl(),ho),d(),I(" ",Ee(3,2,"node.logs.view-rest",oe(5,Sk,e.totalLogs))," ")}}function Eve(t,n){1&t&&m(0," : ")}function Ive(t,n){if(1&t&&(f(0,"span"),m(1),h()),2&t){const e=C().$implicit;d(),I(" ",e.msg," ")}}function Pve(t,n){if(1&t&&(f(0,"span",16),m(1),h(),f(2,"span"),m(3),h()),2&t){const e=n.$implicit;d(),I(" ",e.name," "),d(2),I(' ="',e.value,'" ')}}function Ove(t,n){if(1&t&&(f(0,"div",3)(1,"span",14),m(2),h(),f(3,"span"),m(4),h(),m(5," [ "),f(6,"span",14),m(7),h(),f(8,"span",15),m(9),h(),m(10," ]"),S(11,Eve,1,0),S(12,Ive,2,1,"span"),we(13,Pve,4,2,null,null,Re),h()),2&t){const e=n.$implicit,i=C(2);d(2),I(" ",e.time," "),d(),at(i.levelDetails.get(e.level).colorClass),d(),I(" ",i.levelDetails.get(e.level).name," "),d(3),I(" ",e.func," "),d(2),I(" ",e._module," "),d(2),k(e.msg?11:-1),d(),k(e.msg?12:-1),d(),xe(e.extra)}}function Ave(t,n){1&t&&we(0,Ove,15,8,"div",3,Re),2&t&&xe(C().filteredLogEntries)}function Rve(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"node.logs.view-all")," ")}function Nve(t,n){if(1&t&&(m(0),b(1,"translate")),2&t){const e=C(2);I(" ",Ee(1,1,"node.logs.view-rest",oe(4,Sk,e.totalLogs))," ")}}function Fve(t,n){if(1&t&&(f(0,"div",3)(1,"a",13),S(2,Rve,2,3),S(3,Nve,2,6),h()()),2&t){const e=C();d(),v("href",e.getFullLogsUrl(),ho),d(),k(e.hasMoreLogMessages?-1:2),d(),k(e.hasMoreLogMessages?3:-1)}}function Lve(t,n){1&t&&(f(0,"div",4),m(1),b(2,"translate"),h()),2&t&&(d(),I(" ",y(2,1,"node.logs.no-logs")," "))}function Bve(t,n){1&t&&(f(0,"div",4),m(1),b(2,"translate"),h()),2&t&&(d(),I(" ",y(2,1,"node.logs.no-logs-for-filter")," "))}function Vve(t,n){1&t&&B(0,"app-loading-indicator",5),2&t&&v("showWhite",!1)}function Hve(t,n){1&t&&(f(0,"mat-icon",17),m(1,"refresh"),h()),2&t&&v("inline",!0)}function jve(t,n){if(1&t&&(f(0,"div",7),S(1,Hve,2,1,"mat-icon",17),f(2,"span"),m(3),b(4,"translate"),h()()),2&t){const e=C();d(),k(e.showAlert?-1:1),d(2),O(Ee(4,2,"refresh-button."+e.elapsedTime.translationVarName,oe(5,kve,e.elapsedTime.elapsedTime)))}}var ln=function(t){return t[t.PanicLevel=0]="PanicLevel",t[t.FatalLevel=1]="FatalLevel",t[t.ErrorLevel=2]="ErrorLevel",t[t.WarnLevel=3]="WarnLevel",t[t.InfoLevel=4]="InfoLevel",t[t.DebugLevel=5]="DebugLevel",t[t.TraceLevel=6]="TraceLevel",t[t.Unknown=7]="Unknown",t}(ln||{});class Uve{constructor(){this.extra=[]}}let zve=(()=>{class t{static openDialog(e){const i=new Lt;return i.autoFocus=!1,i.width=ze.largeModalWidth,e.open(t,i)}constructor(e,i,o,r,s){this.dialogRef=e,this.nodeService=i,this.snackbarService=o,this.ngZone=r,this.dialog=s,this.levelDetails=new Map([[ln.PanicLevel,{name:"PANIC",colorClass:"panic-level-color",levelFilterName:"filter-panic",importance:8}],[ln.FatalLevel,{name:"FATAL",colorClass:"fatal-level-color",levelFilterName:"filter-faltal",importance:7}],[ln.ErrorLevel,{name:"ERROR",colorClass:"error-level-color",levelFilterName:"filter-error",importance:6}],[ln.WarnLevel,{name:"WARNING",colorClass:"warning-level-color",levelFilterName:"filter-warning",importance:5}],[ln.InfoLevel,{name:"INFO",colorClass:"info-level-color",levelFilterName:"filter-info",importance:4}],[ln.DebugLevel,{name:"DEBUG",colorClass:"debug-level-color",levelFilterName:"filter-debug",importance:3}],[ln.TraceLevel,{name:"TRACE",colorClass:"trace-level-color",levelFilterName:"filter-all",importance:2}],[ln.Unknown,{name:"UNKNOWN LOG",colorClass:"unknown-level-color",levelFilterName:"filter-all",importance:1}]]),this.currentMinimumLevel=ln.Unknown,this.loading=!0,this.LoadingMoment=0,this.maxElementsPerPage=1e3,this.logEntries=[],this.filteredLogEntries=[],this.hasMoreLogMessages=!1,this.totalLogs=0,this.shouldShowError=!0}ngOnInit(){this.loadData(0)}ngOnDestroy(){this.removeSubscription(),this.removeTimeSubscription()}showFilters(){const e=[{icon:"",label:"node.logs.filter-all"},{icon:"",label:"node.logs.filter-debug"},{icon:"",label:"node.logs.filter-info"},{icon:"",label:"node.logs.filter-warning"},{icon:"",label:"node.logs.filter-error"},{icon:"",label:"node.logs.filter-faltal"},{icon:"",label:"node.logs.filter-panic"}],i=[ln.Unknown,ln.DebugLevel,ln.InfoLevel,ln.WarnLevel,ln.ErrorLevel,ln.FatalLevel,ln.PanicLevel];for(let o=0;o<=i.length;o++)this.currentMinimumLevel===i[o]&&(e[o].icon="check");oo.openDialog(this.dialog,e,"node.logs.filter-title").afterClosed().subscribe(o=>{this.currentMinimumLevel=i[o-1],this.filter()})}loadData(e){this.removeSubscription(),this.loading=!0,this.subscription=ae(1).pipe(ii(e),Et(()=>this.nodeService.getRuntimeLogs(ke.getCurrentNodeKey()))).subscribe(i=>this.onLogsReceived(i),i=>this.onLogsError(i))}removeSubscription(){this.subscription&&this.subscription.unsubscribe()}removeTimeSubscription(){this.timeUpdateSubscription&&this.timeUpdateSubscription.unsubscribe()}onLogsReceived(e){let i=0;this.totalLogs=e.length,this.hasMoreLogMessages=this.totalLogs-this.maxElementsPerPage>0,e.forEach(o=>{const r=new Uve;r.time=o.time,r._module=o._module,r.msg=o.msg,r.func=o.func;const s=o.level?o.level.toLowerCase():"";if(r.level=s.includes("panic")?ln.PanicLevel:s.includes("fatal")?ln.FatalLevel:s.includes("error")?ln.ErrorLevel:s.includes("warn")?ln.WarnLevel:s.includes("info")?ln.InfoLevel:s.includes("debug")?ln.DebugLevel:s.includes("trace")?ln.TraceLevel:ln.Unknown,o.current_backoff){const l=Math.floor(o.current_backoff/1e9),c=Math.floor(l/60),u=Math.floor(l%60);r.extra.push(c?{name:"current_backoff",value:c+"m"+u+"s"}:{name:"current_backoff",value:u+"s"})}o.error&&r.extra.push({name:"error",value:o.error});const a=new Set;a.add("time"),a.add("_module"),a.add("msg"),a.add("func"),a.add("level"),a.add("current_backoff"),a.add("error"),a.add("log_line");for(const l in o)a.has(l)||r.extra.push({name:l,value:o[l]});this.totalLogs-i<=this.maxElementsPerPage&&this.logEntries.push(r),i+=1}),this.loading=!1,this.LoadingMoment=Date.now(),this.startUpdatingTime(),this.filter()}filter(){this.filteredLogEntries=[];const e=this.levelDetails.get(this.currentMinimumLevel).importance;this.logEntries.forEach(i=>{const o=this.levelDetails.get(i.level).importance;e<=o&&this.filteredLogEntries.push(i)}),setTimeout(()=>{this.content.nativeElement.scrollTop=this.content.nativeElement.scrollHeight})}startUpdatingTime(){this.elapsedTime=lv.getElapsedTime(Math.floor((Date.now()-this.LoadingMoment)/1e3)),this.removeTimeSubscription(),this.timeUpdateSubscription=Ul(5e3,5e3).subscribe(()=>this.ngZone.run(()=>{this.elapsedTime=lv.getElapsedTime(Math.floor((Date.now()-this.LoadingMoment)/1e3))}))}getFullLogsUrl(){return window.location.origin+"/api/visors/"+ke.getCurrentNodeKey()+"/runtime-logs"}onLogsError(e){e=Je(e),this.shouldShowError&&(this.snackbarService.showError("common.loading-error",null,!0,e),this.shouldShowError=!1),this.loadData(ze.connectionRetryDelay)}static{this.\u0275fac=function(i){return new(i||t)(P(It),P(Sr),P(bt),P(ge),P(kt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-node-logs"]],viewQuery:function(i,o){if(1&i&&rt(Sve,5),2&i){let r;ue(r=he())&&(o.content=r.first)}},standalone:!1,decls:13,vars:14,consts:[["content",""],[3,"headline","includeVerticalMargins","includeScrollableArea","dialog"],[1,"top-dialog-button"],[1,"log-entry"],[1,"log-empty-msg"],[3,"showWhite"],[1,"update-button","subtle-transparent-button",3,"click"],[1,"update-time"],[1,"top-dialog-button",3,"click"],[1,"top-dialog-button-content"],[1,"actual-value"],[1,"small"],[1,"top-dialog-button-margin"],["target","_blank",1,"view-raw-link",3,"href"],[1,"transparent"],[1,"module-color"],[1,"extra-data-color"],[1,"icon",3,"inline"]],template:function(i,o){1&i&&(f(0,"app-dialog",1),b(1,"translate"),S(2,Tve,11,7,"div",2),f(3,"mat-dialog-content",null,0),S(5,Mve,4,7,"div",3),S(6,Ave,2,0),S(7,Fve,4,3,"div",3),S(8,Lve,3,3,"div",4),S(9,Bve,3,3,"div",4),S(10,Vve,1,1,"app-loading-indicator",5),f(11,"div",6),L("click",function(){return o.loadData(0)}),S(12,jve,5,7,"div",7),h()()()),2&i&&(v("headline",y(1,12,"node.logs.title"))("includeVerticalMargins",!1)("includeScrollableArea",!1)("dialog",o.dialogRef),d(2),k(!o.loading&&o.logEntries&&o.logEntries.length>0?2:-1),d(3),k(!o.loading&&o.hasMoreLogMessages?5:-1),d(),k(o.loading?-1:6),d(),k(!o.loading&&o.logEntries&&o.logEntries.length>0?7:-1),d(),k(o.loading||o.logEntries&&0!==o.logEntries.length?-1:8),d(),k(!o.loading&&o.logEntries&&o.logEntries.length>0&&o.filteredLogEntries.length<1?9:-1),d(),k(o.loading?10:-1),d(2),k(o.loading?-1:12))},dependencies:[Kd,lt,Kt,vr,Se],styles:[".top-dialog-button[_ngcontent-%COMP%]{color:#777!important}.top-dialog-button[_ngcontent-%COMP%] .top-dialog-button-content[_ngcontent-%COMP%]{text-align:center}.top-dialog-button[_ngcontent-%COMP%] .top-dialog-button-content[_ngcontent-%COMP%] .actual-value[_ngcontent-%COMP%]{color:#202226}.top-dialog-button[_ngcontent-%COMP%] .top-dialog-button-content[_ngcontent-%COMP%] .small[_ngcontent-%COMP%]{font-size:.6rem}.log-entry[_ngcontent-%COMP%]{margin-top:15px;word-break:break-word}.log-entry[_ngcontent-%COMP%] .transparent[_ngcontent-%COMP%]{color:#999}.log-entry[_ngcontent-%COMP%]:first-of-type{margin-top:0}.log-entry[_ngcontent-%COMP%]:last-of-type{margin-bottom:24px}.log-empty-msg[_ngcontent-%COMP%]{text-align:center}.view-raw-link[_ngcontent-%COMP%]{color:#215f9e}.update-button[_ngcontent-%COMP%]{display:flex;justify-content:center;cursor:pointer}.update-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:5px;margin-right:5px}.update-button[_ngcontent-%COMP%] .update-time[_ngcontent-%COMP%]{text-align:center;font-size:.7rem;color:#202226;margin:0 5px}.panic-level-color[_ngcontent-%COMP%], .fatal-level-color[_ngcontent-%COMP%]{color:red}.error-level-color[_ngcontent-%COMP%]{color:#d10000}.warning-level-color[_ngcontent-%COMP%]{color:#e27505}.info-level-color[_ngcontent-%COMP%]{color:#0d9519}.debug-level-color[_ngcontent-%COMP%]{color:#0065ff}.trace-level-color[_ngcontent-%COMP%]{color:#468cf5}.unknown-level-color[_ngcontent-%COMP%]{color:#e27505}.module-color[_ngcontent-%COMP%]{color:#a119fc}.extra-data-color[_ngcontent-%COMP%]{color:#ad8021}"]})}}return t})();class p5{constructor(n,e){this.canBeUpdated=!1,this.canOpenTerminal=!1,this.options=[],this.dialog=n.get(kt),this.router=n.get(vt),this.snackbarService=n.get(bt),this.nodeService=n.get(Sr),this.storageService=n.get(zn),this.showingFullList=e,this.returnButtonText=e?"node.title":"nodes.title",this.updateOptions()}updateOptions(){this.options=[],this.canOpenTerminal&&this.options.push({name:"actions.menu.terminal",actionName:"terminal",icon:"laptop"}),this.options.push({name:"actions.menu.logs",actionName:"logs",icon:"subject"}),this.options.push({name:"actions.menu.proxy",actionName:"proxy",icon:"vpn_lock"}),this.options.push({name:"actions.menu.turn-off",actionName:"shutdown",icon:"power_settings_new"})}setCurrentNode(n){this.currentNode=n,this.canBeUpdated=!!Ye.checkIfTagIsUpdatable(n.buildTag),this.canOpenTerminal=Ye.checkIfTagCanOpenterminal(n.buildTag),this.updateOptions()}setCurrentNodeKey(n){this.currentNodeKey=n}performAction(n,e){"terminal"===n?this.terminal():"update"===n?this.update():"logs"===n?this.runtimeLogs():"proxy"===n?this.openProxySettings():"shutdown"===n?this.shutdown():null===n&&this.back()}dispose(){this.updateSubscription&&this.updateSubscription.unsubscribe(),this.shutdownSubscription&&this.shutdownSubscription.unsubscribe()}shutdown(){const n=Ye.createConfirmationDialog(this.dialog,"actions.turn-off.confirmation");n.componentInstance.operationAccepted.subscribe(()=>{n.componentInstance.showProcessing(),this.shutdownSubscription=this.nodeService.shutdown(this.currentNodeKey).subscribe(()=>{this.snackbarService.showDone("actions.turn-off.done"),n.close(),this.router.navigate(["nodes"])},e=>{e=Je(e),n.componentInstance.showDone("confirmation.error-header-text",e.translatableErrorMsg)})})}update(){const n=Ye.createConfirmationDialog(this.dialog,"actions.update.confirmation");n.componentInstance.operationAccepted.subscribe(()=>{const e=window.location.protocol,i=window.location.host.replace("localhost:4200","127.0.0.1:8000");window.open(e+"//"+i+"/pty/"+this.currentNodeKey+"?commands=update","_blank","noopener noreferrer"),n.close()})}terminal(){const n=window.location.protocol,e=window.location.host.replace("localhost:4200","127.0.0.1:8000");window.open(n+"//"+e+"/pty/"+this.currentNodeKey,"_blank","noopener noreferrer")}runtimeLogs(){zve.openDialog(this.dialog)}openProxySettings(){this.dialog.open(xve,{width:"550px",data:{nodeKey:this.currentNodeKey}})}back(){this.router.navigate(this.showingFullList?["nodes",this.currentNodeKey]:["nodes"])}}class $ve{constructor(){this.trafficData=new Wve}}class Wve{constructor(){this.totalSent=0,this.totalReceived=0,this.sentHistory=[],this.receivedHistory=[]}}class Gve{constructor(){this.lastEmitedData=new $ve,this.dataSubject=new _i(null),this.whenUpdateWasScheduled=0,this.stopRequestedDate=-1,this.consecutiveErrors=0}}let qve=(()=>{class t{constructor(e,i){this.storageService=e,this.nodeService=i,this.maxTrafficHistorySlots=10,this.expirationTime=6e4,this.nodesMap=new Map,this.storageService.getRefreshTimeObservable().subscribe(o=>{this.dataRefreshDelay=1e3*o,this.nodesMap.forEach(r=>{this.forceSpecificNodeRefresh(r.pk)})}),this.checkForExpired()}checkForExpired(){setInterval(()=>{try{this.nodesMap.forEach(e=>{this.finishIfExpired(e)})}catch{}},5e3)}startRequestingData(e){let i=this.nodesMap.get(e);return i?i.stopRequestedDate=-1:(i=new Gve,i.pk=e,this.nodesMap.set(e,i),this.startDataSubscription(0,i)),i.dataSubject.asObservable()}stopRequestingSpecificNode(e){const i=this.nodesMap.get(e);i&&(i.stopRequestedDate=Date.now())}startDataSubscription(e,i){i.updateSubscription&&i.updateSubscription.unsubscribe();let o=0;i.updateSubscription=ae(1).pipe(ii(e),ni(()=>{i.lastEmitedData.updating=!0,i.dataSubject.next(i.lastEmitedData)}),ii(120),ni(()=>{o=performance.now(),console.log("[HV-DIAG] fetching node data for",i.pk.substring(0,8)+"...")}),Et(()=>this.nodeService.getNode(i.pk))).subscribe(r=>{console.log("[HV-DIAG] fetch completed in",(performance.now()-o).toFixed(0),"ms for",i.pk.substring(0,8)+"..."),i.consecutiveErrors=0,this.updateTrafficData(r.transports,i.lastEmitedData.trafficData,i.whenUpdateWasScheduled);let s=this.calculateRemainingTime(i.whenUpdateWasScheduled);s<1e3&&(i.whenUpdateWasScheduled=Date.now(),s=this.dataRefreshDelay),i.lastEmitedData={data:r,error:null,momentOfLastCorrectUpdate:Date.now(),updating:!1,trafficData:i.lastEmitedData.trafficData},i.dataSubject.next(i.lastEmitedData),this.startDataSubscription(s,i)},r=>{if(r=Je(r),i.consecutiveErrors=(i.consecutiveErrors||0)+1,i.lastEmitedData={data:i.lastEmitedData.data,error:r,momentOfLastCorrectUpdate:i.lastEmitedData.momentOfLastCorrectUpdate,updating:!1,trafficData:i.lastEmitedData.trafficData},i.dataSubject.next(i.lastEmitedData),r.originalError&&400===r.originalError.status)i.dataSubject.complete(),i.updateSubscription.unsubscribe(),this.nodesMap.delete(i.pk);else{const a=Math.min(ze.connectionRetryDelay*Math.pow(2,i.consecutiveErrors-1),3e4);this.startDataSubscription(a,i)}})}calculateRemainingTime(e){if(e<1)return 0;let i=this.dataRefreshDelay-(Date.now()-e);return i<0&&(i=0),i}updateTrafficData(e,i,o){if(i.totalSent=0,i.totalReceived=0,e&&e.length>0&&(i.totalSent=e.reduce((r,s)=>r+s.sent,0),i.totalReceived=e.reduce((r,s)=>r+s.recv,0)),0===i.sentHistory.length)for(let r=0;rthis.maxTrafficHistorySlots&&(s=this.maxTrafficHistorySlots),0===s)i.sentHistory[i.sentHistory.length-1]=i.totalSent,i.receivedHistory[i.receivedHistory.length-1]=i.totalReceived;else for(let a=0;athis.maxTrafficHistorySlots&&(i.sentHistory.splice(0,i.sentHistory.length-this.maxTrafficHistorySlots),i.receivedHistory.splice(0,i.receivedHistory.length-this.maxTrafficHistorySlots))}}forceSpecificNodeRefresh(e){const i=this.nodesMap.get(e);i&&this.startDataSubscription(0,i)}finishIfExpired(e){e.stopRequestedDate>0&&Date.now()-e.stopRequestedDate>this.expirationTime&&(e.dataSubject.complete(),e.updateSubscription.unsubscribe(),this.nodesMap.delete(e.pk))}static{this.\u0275fac=function(i){return new(i||t)(le(zn),le(Sr))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const Kve=(t,n)=>({"main-area":t,"full-size-main-area":n}),Yve=t=>({"d-none":t});function Xve(t,n){if(1&t&&(rr(0),B(1,"app-node-info-content",9),Lo()),2&t){const e=C(2);d(),v("nodeInfo",e.node)("trafficData",e.trafficData)}}function Zve(t,n){if(1&t){const e=ce();rr(0),f(1,"div",2)(2,"div",3)(3,"app-top-bar",4),L("optionSelected",function(o){return z(e),$(C().performAction(o))})("refreshRequested",function(){return z(e),$(C().forceDataRefresh(!0))}),h()(),f(4,"div",3)(5,"div",5)(6,"div",6),B(7,"router-outlet"),h()(),f(8,"div",7),tt(9,Xve,2,2,"ng-container",8),h()()(),Lo()}if(2&t){const e=C();d(3),v("titleParts",e.titleParts)("tabsData",e.tabsData)("selectedTabIndex",e.selectedTabIndex)("secondsSinceLastUpdate",e.secondsSinceLastUpdate)("showLoading",e.updating)("showAlert",e.errorsUpdating)("refeshRate",e.storageService.getRefreshTime())("optionsData",e.nodeActionsHelper?e.nodeActionsHelper.options:null)("returnText",e.nodeActionsHelper?e.nodeActionsHelper.returnButtonText:""),d(2),v("ngClass",ft(12,Kve,!e.showingInfo&&!e.showingFullList,e.showingInfo||e.showingFullList)),d(3),v("ngClass",oe(15,Yve,e.showingInfo||e.showingFullList)),d(),v("ngIf",!e.showingInfo&&!e.showingFullList)}}function Qve(t,n){1&t&&(rr(0),B(1,"app-loading-indicator"),Lo())}function Jve(t,n){1&t&&(rr(0),f(1,"div",12)(2,"div")(3,"mat-icon",13),m(4,"error"),h(),m(5),b(6,"translate"),h()(),Lo()),2&t&&(d(3),v("inline",!0),d(2),I(" ",y(6,2,"node.not-found")," "))}function eye(t,n){if(1&t){const e=ce();rr(0),f(1,"div",12)(2,"div")(3,"mat-icon",13),m(4,"error"),h(),m(5),b(6,"translate"),B(7,"br"),f(8,"button",14),L("click",function(){return z(e),$(C(2).retryLoading())}),m(9),b(10,"translate"),h()()(),Lo()}2&t&&(d(3),v("inline",!0),d(2),I(" ",y(6,3,"node.error-load")," "),d(4),I(" ",y(10,5,"common.refresh")," "))}function tye(t,n){if(1&t){const e=ce();f(0,"div",10)(1,"div")(2,"app-top-bar",11),L("optionSelected",function(o){return z(e),$(C().performAction(o))}),h()(),tt(3,Qve,2,0,"ng-container",8)(4,Jve,7,4,"ng-container",8)(5,eye,11,7,"ng-container",8),h()}if(2&t){const e=C();d(2),v("titleParts",e.titleParts)("tabsData",e.tabsData)("selectedTabIndex",e.selectedTabIndex)("showUpdateButton",!1)("optionsData",e.nodeActionsHelper?e.nodeActionsHelper.options:null)("returnText",e.nodeActionsHelper?e.nodeActionsHelper.returnButtonText:""),d(),v("ngIf",!e.notFound&&!e.loadFailed),d(),v("ngIf",e.notFound),d(),v("ngIf",e.loadFailed)}}let ke=(()=>{class t extends Wn{static refreshCurrentDisplayedData(){t.currentInstanceInternal&&t.currentInstanceInternal.forceDataRefresh(!1)}static getCurrentNodeKey(){return t.currentNodeKey}static get currentNode(){return t.nodeSubject.asObservable()}static get currentTrafficData(){return t.trafficDataSubject.asObservable()}constructor(e,i,o,r,s,a,l,c){super(),this.storageService=e,this.singleNodeDataService=i,this.route=o,this.ngZone=r,this.snackbarService=s,this.injector=a,this.cdr=l,this.persistentDataResponseKey="serv-dat-response",this.nodeLoaded=!1,this.notFound=!1,this.titleParts=[],this.tabsData=[],this.selectedTabIndex=-1,this.showingInfo=!1,this.showingFullList=!1,this.initialRouteEventFired=!1,this.secondsSinceLastUpdate=0,this.lastUpdate=Date.now(),this.updating=!1,this.errorsUpdating=!1,this.lastUpdateRequestedManually=!1,this.loadFailed=!1,this.consecutiveLoadErrors=0,this.instanceId="",t.nodeSubject=new no(1),t.trafficDataSubject=new no(1),t.currentInstanceInternal=this,this.instanceId=Math.random().toString(36).substring(7),console.log("[HV-DIAG] NodeComponent constructor, instance:",this.instanceId),this.navigationsSubscription=c.events.subscribe(u=>{u.urlAfterRedirects&&(this.lastUrl=u.urlAfterRedirects,this.processRouteUpdate(),this.initialRouteEventFired=!0)})}ngOnInit(){return this.ngZone.runOutsideAngular(()=>{this.updateTimeSubscription=Ul(5e3,5e3).subscribe(()=>this.ngZone.run(()=>{this.secondsSinceLastUpdate=Math.floor((Date.now()-this.lastUpdate)/1e3)}))}),this.initSubscription=ae(0).pipe(ii(500)).subscribe(()=>{this.initialRouteEventFired||(this.lastUrl=window.location.href,this.processRouteUpdate())}),super.ngOnInit()}processRouteUpdate(){console.log("[HV-DIAG] processRouteUpdate called, instance id:",this.instanceId),t.currentNodeKey=this.route.snapshot.params.key,this.nodeActionsHelper&&this.nodeActionsHelper.setCurrentNodeKey(t.currentNodeKey),this.updateTabBar(),this.navigationsSubscription.unsubscribe(),this.startGettingData(!0)}updateTabBar(){if(this.lastUrl&&(this.lastUrl.includes("/info")||this.lastUrl.includes("/routing")||this.lastUrl.includes("/rewards")||this.lastUrl.includes("/skynet")||this.lastUrl.includes("/apps")&&!this.lastUrl.includes("/apps-list")))this.titleParts=["nodes.title","node.title"],this.tabsData=[{icon:"info",label:"node.tabs.info",onlyIfLessThanLg:!0,linkParts:t.currentNodeKey?["/nodes",t.currentNodeKey,"info"]:null},{icon:"shuffle",label:"node.tabs.routing",linkParts:t.currentNodeKey?["/nodes",t.currentNodeKey,"routing"]:null},{icon:"apps",label:"node.tabs.apps",linkParts:t.currentNodeKey?["/nodes",t.currentNodeKey,"apps"]:null},{icon:"monetization_on",label:"node.tabs.rewards",linkParts:t.currentNodeKey?["/nodes",t.currentNodeKey,"rewards"]:null},{icon:"public",label:"node.tabs.skynet",linkParts:t.currentNodeKey?["/nodes",t.currentNodeKey,"skynet"]:null}],this.selectedTabIndex=1,this.showingInfo=!1,this.lastUrl.includes("/info")&&(this.selectedTabIndex=0,this.showingInfo=!0),this.lastUrl.includes("/apps")&&(this.selectedTabIndex=2),this.lastUrl.includes("/rewards")&&(this.selectedTabIndex=3),this.lastUrl.includes("/skynet")&&(this.selectedTabIndex=4),this.showingFullList=!1,this.nodeActionsHelper=new p5(this.injector,this.showingFullList),this.nodeActionsHelper.setCurrentNodeKey(t.currentNodeKey),this.node&&this.nodeActionsHelper.setCurrentNode(this.node);else if(this.lastUrl&&(this.lastUrl.includes("/transports")||this.lastUrl.includes("/routes")||this.lastUrl.includes("/apps-list"))){this.showingFullList=!0,this.showingInfo=!1,this.nodeActionsHelper=new p5(this.injector,this.showingFullList),this.nodeActionsHelper.setCurrentNodeKey(t.currentNodeKey),this.node&&this.nodeActionsHelper.setCurrentNode(this.node);let e="transports";this.lastUrl.includes("/routes")?e="routes":this.lastUrl.includes("/apps-list")&&(e="apps.apps-list"),this.titleParts=["nodes.title","node.title",e+".title"],this.tabsData=[{icon:"view_headline",label:e+".list-title",linkParts:[]}],this.selectedTabIndex=0}else this.titleParts=[],this.tabsData=[]}performAction(e){this.nodeActionsHelper.performAction(e,t.currentNodeKey)}forceDataRefresh(e=!1){e&&(this.lastUpdateRequestedManually=!0),this.singleNodeDataService.forceSpecificNodeRefresh(t.currentNodeKey)}retryLoading(){this.loadFailed=!1,this.consecutiveLoadErrors=0,this.startGettingData(!1)}startGettingData(e){const i=e?this.getLocalValue(this.persistentDataResponseKey):null;let o=this.singleNodeDataService.startRequestingData(t.currentNodeKey);i&&(o=ae(JSON.parse(i.value))),this.dataSubscription=o.subscribe(r=>{if(performance.now(),console.log("[HV-DIAG] data event received",{updating:r?.updating,hasData:!!r?.data,hasError:!!r?.error,transports:r?.data?.transports?.length??"n/a",routes:r?.data?.routes?.length??"n/a",apps:r?.data?.apps?.length??"n/a"}),!i){const a=performance.now();this.saveLocalValue(this.persistentDataResponseKey,JSON.stringify(r)),console.log("[HV-DIAG] saveLocalValue took",(performance.now()-a).toFixed(1),"ms")}if(this.updating=!r||r.updating,console.log("[HV-DIAG] updating:",this.updating,"node set:",!!this.node,"notFound:",this.notFound,"loadFailed:",this.loadFailed),r&&!r.updating)if(r.data&&!r.error){const a=performance.now();this.ngZone.run(()=>{this.node=r.data,this.trafficData=r.trafficData,this.nodeLoaded=!0}),console.log("[HV-DIAG] node assigned, instance:",this.instanceId,"nodeLoaded:",this.nodeLoaded,"node.localPk:",this.node?.localPk?.substring(0,8),"transports:",this.node?.transports?.length,"routes:",this.node?.routes?.length);try{t.nodeSubject.next(this.node)}catch(l){console.error("[HV-DIAG] ERROR in nodeSubject.next:",l)}t.trafficDataSubject.next(this.trafficData),this.nodeActionsHelper&&this.nodeActionsHelper.setCurrentNode(this.node),this.snackbarService.closeCurrentIfTemporaryError(),this.lastUpdate=r.momentOfLastCorrectUpdate,this.secondsSinceLastUpdate=Math.floor((Date.now()-r.momentOfLastCorrectUpdate)/1e3),this.errorsUpdating=!1,this.consecutiveLoadErrors=0,this.loadFailed=!1,Kr.currentInstance.hideDataProblemMsg(),console.log("[HV-DIAG] data processing took",(performance.now()-a).toFixed(1),"ms"),console.log("[HV-DIAG] AFTER ASSIGNMENT: this.node is",this.node?"SET":"NULL","this.notFound:",this.notFound,"this.loadFailed:",this.loadFailed),this.cdr.detectChanges(),this.lastUpdateRequestedManually&&(this.snackbarService.showDone("common.refreshed",null),this.lastUpdateRequestedManually=!1)}else if(r.error){if(r.error.originalError&&400===r.error.originalError.status)return void(this.notFound=!0);if(this.consecutiveLoadErrors++,!this.node&&this.consecutiveLoadErrors>=3)return this.loadFailed=!0,this.singleNodeDataService.stopRequestingSpecificNode(t.currentNodeKey),this.snackbarService.showError("common.loading-error",null,!0,r.error),void Kr.currentInstance.showDataProblemMsg();this.errorsUpdating||this.snackbarService.showError(this.node?"node.error-load":"common.loading-error",null,!0,r.error),this.errorsUpdating=!0,Kr.currentInstance.showDataProblemMsg()}i&&this.startGettingData(!1)})}ngOnDestroy(){console.log("[HV-DIAG] ngOnDestroy, instance:",this.instanceId),this.singleNodeDataService.stopRequestingSpecificNode(t.currentNodeKey),this.dataSubscription.unsubscribe(),this.updateTimeSubscription.unsubscribe(),this.navigationsSubscription.unsubscribe(),this.initSubscription.unsubscribe(),t.currentInstanceInternal=void 0,t.currentNodeKey=void 0,t.nodeSubject.complete(),t.nodeSubject=void 0,t.trafficDataSubject.complete(),t.trafficDataSubject=void 0,this.nodeActionsHelper.dispose()}static{this.\u0275fac=function(i){return new(i||t)(P(zn),P(qve),P(Ei),P(ge),P(bt),P(Be),P(Pn),P(vt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-node"]],standalone:!1,features:[be],decls:3,vars:2,consts:[["loadingBlock",""],[4,"ngIf","ngIfElse"],[1,"row"],[1,"col-12"],[3,"optionSelected","refreshRequested","titleParts","tabsData","selectedTabIndex","secondsSinceLastUpdate","showLoading","showAlert","refeshRate","optionsData","returnText"],[3,"ngClass"],[1,"d-flex","flex-column","h-100"],[1,"right-bar",3,"ngClass"],[4,"ngIf"],[3,"nodeInfo","trafficData"],[1,"d-flex","flex-column","h-100","w-100"],[3,"optionSelected","titleParts","tabsData","selectedTabIndex","showUpdateButton","optionsData","returnText"],[1,"w-100","h-100","d-flex","not-found-label"],[3,"inline"],["mat-raised-button","","color","primary",2,"margin-top","16px",3,"click"]],template:function(i,o){if(1&i&&tt(0,Zve,10,17,"ng-container",1)(1,tye,6,9,"ng-template",null,0,El),2&i){const r=Vn(2);v("ngIf",o.nodeLoaded)("ngIfElse",r)}},styles:[".not-found-label[_ngcontent-%COMP%]{align-items:center;justify-content:center;font-size:1rem;position:relative}.not-found-label[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:5px;font-size:22px;opacity:.5;margin-right:3px}.full-size-main-area[_ngcontent-%COMP%], .main-area[_ngcontent-%COMP%]{width:100%}@media(min-width:992px){.main-area[_ngcontent-%COMP%]{width:73%;padding-right:20px;float:left}}.right-bar[_ngcontent-%COMP%]{width:27%;float:right;display:none}@media(min-width:992px){.right-bar[_ngcontent-%COMP%]{display:block;width:27%;float:right}}"]})}}return t})();function nye(t,n){if(1&t&&(f(0,"mat-option",9),m(1),b(2,"translate"),h()),2&t){const e=n.$implicit;v("value",Wt(e)),d(),Hn(" ",e," ",y(2,4,"settings.seconds")," ")}}let iye=(()=>{class t{constructor(e,i,o){this.formBuilder=e,this.storageService=i,this.snackbarService=o,this.timesList=["3","5","10","15","30","60","90","150","300"]}ngOnInit(){this.form=this.formBuilder.group({refreshRate:[this.storageService.getRefreshTime().toString()]}),this.subscription=this.form.get("refreshRate").valueChanges.subscribe(e=>{this.storageService.setRefreshTime(e),this.snackbarService.showDone("settings.refresh-rate-confirmation")})}ngOnDestroy(){this.subscription.unsubscribe()}static{this.\u0275fac=function(i){return new(i||t)(P(pi),P(zn),P(bt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-refresh-rate"]],standalone:!1,decls:15,vars:8,consts:[[1,"rounded-elevated-box"],[1,"box-internal-container","overflow"],[1,"white-form-help-icon-container"],[1,"help-icon",3,"inline","matTooltip"],[3,"formGroup"],[1,"white-form-field"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","refreshRate"],[3,"value"]],template:function(i,o){1&i&&(f(0,"div",0)(1,"div",1)(2,"div",2)(3,"mat-icon",3),b(4,"translate"),m(5," help "),h()(),f(6,"form",4)(7,"mat-form-field",5)(8,"div",6)(9,"label",7),m(10),b(11,"translate"),h(),f(12,"mat-select",8),we(13,nye,3,6,"mat-option",9,Re),h()()()()()()),2&i&&(d(3),v("inline",!0)("matTooltip",y(4,4,"settings.refresh-rate-help")),d(3),v("formGroup",o.form),d(4),O(y(11,6,"settings.refresh-rate")),d(3),xe(o.timesList))},dependencies:[Cn,sn,yn,Xt,fn,wn,lt,pn,oc,Is,Se],styles:[".help-icon[_ngcontent-%COMP%]{display:inline}mat-form-field[_ngcontent-%COMP%]{margin-right:32px}mat-form-field[_ngcontent-%COMP%] .mat-mdc-form-field-bottom-align{margin-bottom:0!important}"]})}}return t})();const oye=t=>({number:t});let cv=(()=>{class t{constructor(){this.numberOfElements=0,this.linkParts=[""],this.queryParams={}}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=se({type:t,selectors:[["app-view-all-link"]],inputs:{numberOfElements:"numberOfElements",linkParts:"linkParts",queryParams:"queryParams"},standalone:!1,decls:6,vars:9,consts:[[1,"main-container"],[3,"routerLink","queryParams"],[3,"inline"]],template:function(i,o){1&i&&(f(0,"div",0)(1,"a",1),m(2),b(3,"translate"),f(4,"mat-icon",2),m(5,"chevron_right"),h()()()),2&i&&(d(),v("routerLink",o.linkParts)("queryParams",o.queryParams),d(),I(" ",Ee(3,4,"view-all-link.label",oe(7,oye,o.numberOfElements))," "),d(2),v("inline",!0))},dependencies:[wa,lt,Se],styles:[".main-container[_ngcontent-%COMP%]{padding-top:20px;margin-bottom:4px;text-align:right;font-size:.875rem}@media(max-width:767px),(min-width:992px)and (max-width:1299px){.main-container[_ngcontent-%COMP%]{margin:0;padding:16px}}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:#f8f9f9;text-decoration:none}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:7px}"]})}}return t})();const rye=t=>({"paginator-icons-fixer":t}),kk=()=>["/settings","labels"],sye=(t,n)=>({"small-node-list-margins":t,"full-node-list-margins":n}),aye=t=>({"d-lg-none d-xl-table":t}),lye=t=>({"d-lg-table d-xl-none":t});function cye(t,n){1&t&&(f(0,"span",3),m(1),b(2,"translate"),f(3,"mat-icon",14),b(4,"translate"),m(5,"help"),h()()),2&t&&(d(),I(" ",y(2,3,"labels.title")," "),d(2),v("inline",!0)("matTooltip",y(4,5,"labels.info")))}function dye(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,C().$implicit.translatableValue)," ")}function uye(t,n){1&t&&m(0),2&t&&I(" ",C().$implicit.value," ")}function hye(t,n){if(1&t&&(f(0,"div",16)(1,"span"),m(2),b(3,"translate"),h(),S(4,dye,2,3),S(5,uye,1,1),h()),2&t){const e=n.$implicit;d(2),I("",y(3,3,e.filterName),": "),d(2),k(e.translatableValue?4:-1),d(),k(e.value?5:-1)}}function fye(t,n){if(1&t){const e=ce();f(0,"div",15),L("click",function(){return z(e),$(C().dataFilterer.removeFilters())}),we(1,hye,6,5,"div",16,Re),f(3,"div",17),m(4),b(5,"translate"),h()()}if(2&t){const e=C();d(),xe(e.dataFilterer.currentFiltersTexts),d(3),O(y(5,1,"filters.press-to-remove"))}}function pye(t,n){if(1&t){const e=ce();f(0,"mat-icon",18),b(1,"translate"),L("click",function(){return z(e),$(C().dataFilterer.changeFilters())}),m(2,"filter_list"),h()}2&t&&v("inline",!0)("matTooltip",y(1,2,"filters.filter-action"))}function mye(t,n){if(1&t&&(f(0,"mat-icon",8),m(1,"more_horiz"),h()),2&t){C();const e=Vn(9);v("inline",!0)("matMenuTriggerFor",e)}}function gye(t,n){if(1&t&&B(0,"app-paginator",12),2&t){const e=C();v("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",Mt(4,kk))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function _ye(t,n){if(1&t&&(f(0,"mat-icon",22),m(1),h()),2&t){const e=C(2);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function bye(t,n){if(1&t&&(f(0,"mat-icon",22),m(1),h()),2&t){const e=C(2);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function vye(t,n){if(1&t&&(f(0,"mat-icon",22),m(1),h()),2&t){const e=C(2);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function yye(t,n){if(1&t){const e=ce();f(0,"tr")(1,"td",30)(2,"mat-checkbox",31),L("change",function(){const o=z(e).$implicit;return $(C(2).changeSelection(o))}),h()(),f(3,"td"),m(4),h(),f(5,"td"),m(6),h(),f(7,"td"),m(8),b(9,"translate"),h(),f(10,"td",23)(11,"button",32),b(12,"translate"),L("click",function(){const o=z(e).$implicit;return $(C(2).delete(o.id))}),f(13,"mat-icon",22),m(14,"close"),h()()()()}if(2&t){const e=n.$implicit,i=C(2);d(2),v("checked",i.selections.get(e.id)),d(2),I(" ",e.label," "),d(2),I(" ",e.id," "),d(2),Hn(" ",i.getLabelTypeIdentification(e)[0]," - ",y(9,7,i.getLabelTypeIdentification(e)[1])," "),d(3),v("matTooltip",y(12,9,"labels.delete")),d(2),v("inline",!0)}}function Cye(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"tables.label")," ")}function wye(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"tables.inverted-order")," ")}function xye(t,n){if(1&t){const e=ce();f(0,"tr")(1,"td")(2,"div",26)(3,"div",33)(4,"mat-checkbox",31),L("change",function(){const o=z(e).$implicit;return $(C(2).changeSelection(o))}),h()(),f(5,"div",27)(6,"div",34)(7,"span",2),m(8),b(9,"translate"),h(),m(10),h(),f(11,"div",35)(12,"span",2),m(13),b(14,"translate"),h(),m(15),h(),f(16,"div",34)(17,"span",2),m(18),b(19,"translate"),h(),m(20),b(21,"translate"),h()(),B(22,"div",36),f(23,"div",28)(24,"button",37),b(25,"translate"),L("click",function(o){const r=z(e).$implicit,s=C(2);return o.stopPropagation(),$(s.showOptionsDialog(r))}),f(26,"mat-icon"),m(27),h()()()()()()}if(2&t){const e=n.$implicit,i=C(2);d(4),v("checked",i.selections.get(e.id)),d(4),O(y(9,10,"labels.label")),d(2),I(": ",e.label," "),d(3),O(y(14,12,"labels.id")),d(2),I(": ",e.id," "),d(3),O(y(19,14,"labels.type")),d(2),Hn(": ",i.getLabelTypeIdentification(e)[0]," - ",y(21,16,i.getLabelTypeIdentification(e)[1])," "),d(4),v("matTooltip",y(25,18,"common.options")),d(3),O("add")}}function Sye(t,n){if(1&t&&B(0,"app-view-all-link",29),2&t){const e=C(2);v("numberOfElements",e.filteredLabels.length)("linkParts",Mt(3,kk))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function kye(t,n){if(1&t){const e=ce();f(0,"div",13)(1,"div",19)(2,"table",20)(3,"tr"),B(4,"th"),f(5,"th",21),L("click",function(){z(e);const o=C();return $(o.dataSorter.changeSortingOrder(o.labelSortData))}),m(6),b(7,"translate"),S(8,_ye,2,2,"mat-icon",22),h(),f(9,"th",21),L("click",function(){z(e);const o=C();return $(o.dataSorter.changeSortingOrder(o.idSortData))}),m(10),b(11,"translate"),S(12,bye,2,2,"mat-icon",22),h(),f(13,"th",21),L("click",function(){z(e);const o=C();return $(o.dataSorter.changeSortingOrder(o.typeSortData))}),m(14),b(15,"translate"),S(16,vye,2,2,"mat-icon",22),h(),B(17,"th",23),h(),we(18,yye,15,11,"tr",null,Re),h(),f(20,"table",24)(21,"tr",25),L("click",function(){return z(e),$(C().dataSorter.openSortingOrderModal())}),f(22,"td")(23,"div",26)(24,"div",27)(25,"div",2),m(26),b(27,"translate"),h(),f(28,"div"),m(29),b(30,"translate"),S(31,Cye,2,3),S(32,wye,2,3),h()(),f(33,"div",28)(34,"mat-icon",22),m(35,"keyboard_arrow_down"),h()()()()(),we(36,xye,28,20,"tr",null,Re),h(),S(38,Sye,1,4,"app-view-all-link",29),h()()}if(2&t){const e=C();d(),v("ngClass",ft(25,sye,e.showShortList_,!e.showShortList_)),d(),v("ngClass",oe(28,aye,e.showShortList_)),d(4),I(" ",y(7,15,"labels.label")," "),d(2),k(e.dataSorter.currentSortingColumn===e.labelSortData?8:-1),d(2),I(" ",y(11,17,"labels.id")," "),d(2),k(e.dataSorter.currentSortingColumn===e.idSortData?12:-1),d(2),I(" ",y(15,19,"labels.type")," "),d(2),k(e.dataSorter.currentSortingColumn===e.typeSortData?16:-1),d(2),xe(e.dataSource),d(2),v("ngClass",oe(30,lye,e.showShortList_)),d(6),O(y(27,21,"tables.sorting-title")),d(3),I("",y(30,23,e.dataSorter.currentSortingColumn.label)," "),d(2),k(e.dataSorter.currentlySortingByLabel?31:-1),d(),k(e.dataSorter.sortingInReverseOrder?32:-1),d(2),v("inline",!0),d(2),xe(e.dataSource),d(2),k(e.showShortList_&&e.numberOfPages>1?38:-1)}}function Dye(t,n){1&t&&(f(0,"span",40),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"labels.empty")))}function Tye(t,n){1&t&&(f(0,"span",40),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"labels.empty-with-filter")))}function Mye(t,n){if(1&t&&(f(0,"div",13)(1,"div",38)(2,"mat-icon",39),m(3,"warning"),h(),S(4,Dye,3,3,"span",40),S(5,Tye,3,3,"span",40),h()()),2&t){const e=C();d(2),v("inline",!0),d(2),k(0===e.allLabels.length?4:-1),d(),k(0!==e.allLabels.length?5:-1)}}function Eye(t,n){if(1&t&&B(0,"app-paginator",12),2&t){const e=C();v("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",Mt(4,kk))("queryParams",e.dataFilterer.currentUrlQueryParams)}}let m5=(()=>{class t{set showShortList(e){this.showShortList_=e,this.dataSorter.setData(this.filteredLabels)}constructor(e,i,o,r,s,a){this.dialog=e,this.route=i,this.router=o,this.snackbarService=r,this.translateService=s,this.storageService=a,this.listId="ll",this.labelSortData=new Pt(["label"],"labels.label",ct.Text),this.idSortData=new Pt(["id"],"labels.id",ct.Text),this.typeSortData=new Pt(["identifiedElementType_sort"],"labels.type",ct.Text),this.selections=new Map,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.filterProperties=[{filterName:"labels.filter-dialog.label",keyNameInElementsArray:"label",type:mn.TextInput,maxlength:100},{filterName:"labels.filter-dialog.id",keyNameInElementsArray:"id",type:mn.TextInput,maxlength:66},{filterName:"labels.filter-dialog.type",keyNameInElementsArray:"identifiedElementType",type:mn.Select,printableLabelsForValues:[{value:"",label:"labels.filter-dialog.type-options.any"},{value:io.Node,label:"labels.filter-dialog.type-options.visor"},{value:io.DmsgServer,label:"labels.filter-dialog.type-options.dmsg-server"},{value:io.Transport,label:"labels.filter-dialog.type-options.transport"}]}],this.dataSorter=new ru(this.dialog,this.translateService,this.storageService,[this.labelSortData,this.idSortData,this.typeSortData],0,this.listId),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataFilterer=new su(this.dialog,this.route,this.router,this.filterProperties,this.listId),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(c=>{this.filteredLabels=c,this.dataSorter.setData(this.filteredLabels)}),this.loadData(),this.navigationsSubscription=this.route.paramMap.subscribe(c=>{if(c.has("page")){let u=Number.parseInt(c.get("page"),10);(isNaN(u)||u<1)&&(u=1),this.currentPageInUrl=u,this.recalculateElementsToShow()}})}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.dataSortedSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFiltererSubscription.unsubscribe(),this.dataFilterer.dispose()}loadData(){this.allLabels=this.storageService.getSavedLabels(),this.allLabels.forEach(e=>{e.identifiedElementType_sort=this.getLabelTypeIdentification(e)[0]}),this.dataFilterer.setData(this.allLabels)}getLabelTypeIdentification(e){return e.identifiedElementType===io.Node?["1","labels.filter-dialog.type-options.visor"]:e.identifiedElementType===io.DmsgServer?["2","labels.filter-dialog.type-options.dmsg-server"]:e.identifiedElementType===io.Transport?["3","labels.filter-dialog.type-options.transport"]:void 0}changeSelection(e){this.selections.get(e.id)?this.selections.set(e.id,!1):this.selections.set(e.id,!0)}hasSelectedElements(){if(!this.selections)return!1;let e=!1;return this.selections.forEach(i=>{i&&(e=!0)}),e}changeAllSelections(e){this.selections.forEach((i,o)=>{this.selections.set(o,e)})}deleteSelected(){const e=Ye.createConfirmationDialog(this.dialog,"labels.delete-selected-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.close(),this.selections.forEach((i,o)=>{i&&this.storageService.saveLabel(o,"",null)}),this.snackbarService.showDone("labels.deleted"),this.loadData()})}showOptionsDialog(e){oo.openDialog(this.dialog,[{icon:"close",label:"labels.delete"}],"common.options").afterClosed().subscribe(o=>{1===o&&this.delete(e.id)})}delete(e){const i=Ye.createConfirmationDialog(this.dialog,"labels.delete-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.close(),this.storageService.saveLabel(e,"",null),this.snackbarService.showDone("labels.deleted"),this.loadData()})}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredLabels){const e=this.showShortList_?ze.maxShortListElements:ze.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredLabels.length/e),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const i=e*(this.currentPage-1);this.labelsToShow=this.filteredLabels.slice(i,i+e);const r=new Map;this.labelsToShow.forEach(a=>{r.set(a.id,!0),this.selections.has(a.id)||this.selections.set(a.id,!1)});const s=[];this.selections.forEach((a,l)=>{r.has(l)||s.push(l)}),s.forEach(a=>{this.selections.delete(a)})}else this.labelsToShow=null,this.selections=new Map;this.dataSource=this.labelsToShow}static{this.\u0275fac=function(i){return new(i||t)(P(kt),P(Ei),P(vt),P(bt),P(zo),P(zn))}}static{this.\u0275cmp=se({type:t,selectors:[["app-label-list"]],inputs:{showShortList:"showShortList"},standalone:!1,decls:23,vars:23,consts:[["selectionMenu","matMenu"],[1,"generic-title-container","mt-4.5","d-flex",3,"ngClass"],[1,"title"],[1,"uppercase"],[1,"filter-label","subtle-transparent-button","cursor-pointer"],[1,"options"],[1,"options-container"],[1,"small-icon",3,"inline","matTooltip"],[3,"inline","matMenuTriggerFor"],[3,"overlapTrigger"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"click","disabled"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"rounded-elevated-box","mt-3"],[1,"help","d-none","d-md-inline",3,"inline","matTooltip"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],[1,"item"],[1,"transparent-50"],[1,"small-icon",3,"click","inline","matTooltip"],[1,"box-internal-container","overflow",3,"ngClass"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table",3,"ngClass"],[1,"sortable-column",3,"click"],[3,"inline"],[1,"actions"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none",3,"ngClass"],[1,"selectable",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],[3,"numberOfElements","linkParts","queryParams"],[1,"selection-col"],[3,"change","checked"],["mat-button","",1,"action-button","transparent-button",3,"click","matTooltip"],[1,"check-part"],[1,"list-row"],[1,"list-row","long-content"],[1,"margin-part"],["mat-icon-button","",1,"transparent-button",3,"click","matTooltip"],[1,"box-internal-container"],[1,"alert-icon",3,"inline"],[1,"font-sm"]],template:function(i,o){1&i&&(f(0,"div",1)(1,"div",2),S(2,cye,6,7,"span",3),S(3,fye,6,3,"div",4),h(),f(4,"div",5)(5,"div",6),S(6,pye,3,4,"mat-icon",7),S(7,mye,2,2,"mat-icon",8),f(8,"mat-menu",9,0)(10,"div",10),L("click",function(){return o.changeAllSelections(!0)}),m(11),b(12,"translate"),h(),f(13,"div",10),L("click",function(){return o.changeAllSelections(!1)}),m(14),b(15,"translate"),h(),f(16,"div",11),L("click",function(){return o.deleteSelected()}),m(17),b(18,"translate"),h()()(),S(19,gye,1,5,"app-paginator",12),h()(),S(20,kye,39,32,"div",13),S(21,Mye,6,3,"div",13),S(22,Eye,1,5,"app-paginator",12)),2&i&&(v("ngClass",oe(21,rye,!o.showShortList_&&o.numberOfPages>1&&o.dataSource)),d(2),k(o.showShortList_?2:-1),d(),k(o.dataFilterer.currentFiltersTexts&&o.dataFilterer.currentFiltersTexts.length>0?3:-1),d(3),k(o.allLabels&&o.allLabels.length>0?6:-1),d(),k(o.dataSource&&o.dataSource.length>0?7:-1),d(),v("overlapTrigger",!1),d(3),I(" ",y(12,15,"selection.select-all")," "),d(3),I(" ",y(15,17,"selection.unselect-all")," "),d(2),v("disabled",Wt(!o.hasSelectedElements())),d(),I(" ",y(18,19,"selection.delete-all")," "),d(2),k(!o.showShortList_&&o.numberOfPages>1&&o.dataSource?19:-1),d(),k(o.dataSource&&o.dataSource.length>0?20:-1),d(),k(o.dataSource&&0!==o.dataSource.length?-1:21),d(),k(!o.showShortList_&&o.numberOfPages>1&&o.dataSource?22:-1))},dependencies:[qt,Jn,Ms,lt,pn,Xr,Ps,lu,kr,cv,cu,Se],styles:[".overflow[_ngcontent-%COMP%]{display:block;width:100%;overflow-x:auto}.overflow[_ngcontent-%COMP%] table[_ngcontent-%COMP%]{width:100%}.actions[_ngcontent-%COMP%]{text-align:right;width:90px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}"]})}}return t})();const Iye=()=>["start.title"];function Pye(t,n){1&t&&B(0,"app-password")}function Oye(t,n){1&t&&(f(0,"div",5),B(1,"mat-spinner",7),m(2),b(3,"translate"),h()),2&t&&(d(),v("diameter",11),d(),I(" ",y(3,2,"settings.checking-auth")," "))}let Aye=(()=>{class t extends Wn{constructor(e,i,o,r){super(),this.authService=e,this.router=i,this.snackbarService=o,this.dialog=r,this.persistentAuthDataResponseKey="serv-aut-response",this.tabsData=[],this.options=[],this.waitBeforeShowingLoading=!0,this.authChecked=!1,this.authActive=!1,this.tabsData=[{icon:"view_headline",label:"nodes.title",linkParts:["/nodes"]},{icon:"monetization_on",label:"nodes.rewards-title",linkParts:["/nodes","rewards"]},{icon:"health_and_safety",label:"nodes.services-health-title",linkParts:["/nodes","services-health"]},{icon:"hub",label:"nodes.dmsg-settings-title",linkParts:["/nodes","dmsg-settings"]},{icon:"bubble_chart",label:"node.details.tpviz.title",linkParts:[],externalUrl:"/tp-viz/"},{icon:"settings",label:"settings.title",linkParts:["/settings"]}],this.updateOptionsMenu()}ngOnInit(){return setTimeout(()=>{this.waitBeforeShowingLoading=!1},500),this.checkAuth(0,!0),super.ngOnInit()}checkAuth(e,i){const o=i?this.getLocalValue(this.persistentAuthDataResponseKey):null;let r=this.authService.checkLogin();o&&(r=ae(JSON.parse(o.value))),this.authSubscription=ae(1).pipe(ii(e),Et(()=>r)).subscribe(s=>{o||this.saveLocalValue(this.persistentAuthDataResponseKey,JSON.stringify(s)),this.authChecked=!0,this.authActive=s===xa.Logged,this.updateOptionsMenu(),o&&this.checkAuth(0,!1)},()=>{this.checkAuth(15e3,!1)})}ngOnDestroy(){this.authSubscription.unsubscribe()}updateOptionsMenu(){this.options=[],this.authActive&&(this.options=[{name:"common.logout",actionName:"logout",icon:"power_settings_new"}])}performAction(e){"logout"===e&&this.logout()}logout(){const e=Ye.createConfirmationDialog(this.dialog,"common.logout-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.closeModal(),this.authService.logout().subscribe(()=>this.router.navigate(["login"]),()=>this.snackbarService.showError("common.logout-error"))})}static{this.\u0275fac=function(i){return new(i||t)(P(Vf),P(vt),P(bt),P(kt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-settings"]],standalone:!1,features:[be],decls:8,vars:9,consts:[[1,"row"],[1,"col-12"],[3,"optionSelected","titleParts","tabsData","selectedTabIndex","showUpdateButton","optionsData"],[1,"content","col-12","mt-4.5"],[1,"d-block","mb-4"],[1,"white-theme","checking-container"],[3,"showShortList"],[3,"diameter"]],template:function(i,o){1&i&&(f(0,"div",0)(1,"div",1)(2,"app-top-bar",2),L("optionSelected",function(s){return o.performAction(s)}),h()(),f(3,"div",3),B(4,"app-refresh-rate",4),S(5,Pye,1,0,"app-password"),S(6,Oye,4,4,"div",5),B(7,"app-label-list",6),h()()),2&i&&(d(2),v("titleParts",Mt(8,Iye))("tabsData",o.tabsData)("selectedTabIndex",4)("showUpdateButton",!1)("optionsData",o.options),d(3),k(o.authChecked&&o.authActive?5:-1),d(),k(o.authChecked||o.waitBeforeShowingLoading?-1:6),d(),v("showShortList",!0))},dependencies:[$o,$V,iye,As,m5,Se],styles:[".checking-container[_ngcontent-%COMP%]{font-size:10px;opacity:.5}.checking-container[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%]{display:inline-block}.show-link[_ngcontent-%COMP%]{cursor:pointer;font-size:.8rem}"]})}}return t})(),Dk=(()=>{class t{constructor(e){this.apiService=e}create(e,i,o){const r={remote_pk:i};return o&&(r.transport_type=o),this.apiService.post(`visors/${e}/transports`,r)}delete(e,i){return this.apiService.delete(`visors/${e}/transports/${i}`)}savePersistentTransportsData(e,i){return this.apiService.put(`visors/${e}/persistent-transports`,i)}getPersistentTransports(e){return this.apiService.get(`visors/${e}/persistent-transports`)}types(e){return this.apiService.get(`visors/${e}/transport-types`)}changeAutoconnectSetting(e,i){const o={};return o.public_autoconnect=i,this.apiService.put(`visors/${e}/public-autoconnect`,o)}static{this.\u0275fac=function(i){return new(i||t)(le(br))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const Rye=["button"],Nye=["firstInput"],dv=t=>({"element-disabled":t});function Fye(t,n){1&t&&B(0,"app-loading-indicator",3),2&t&&v("showWhite",!1)}function Lye(t,n){1&t&&(f(0,"span"),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"transports.dialog.errors.remote-key-length-error")))}function Bye(t,n){1&t&&(f(0,"span"),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"transports.dialog.errors.remote-key-chars-error")))}function Vye(t,n){if(1&t&&(f(0,"mat-option",12),m(1),h()),2&t){const e=n.$implicit;v("value",e),d(),O(e)}}function Hye(t,n){if(1&t){const e=ce();f(0,"form",4)(1,"mat-form-field",6)(2,"div",7)(3,"label",8),m(4),b(5,"translate"),h(),B(6,"input",9,1),h(),f(8,"mat-error"),S(9,Lye,3,3,"span")(10,Bye,3,3,"span"),h()(),f(11,"mat-form-field",6)(12,"div",7)(13,"label",8),m(14),b(15,"translate"),h(),B(16,"input",10),h()(),f(17,"mat-form-field",6)(18,"div",7)(19,"label",8),m(20),b(21,"translate"),h(),f(22,"mat-select",11),we(23,Vye,2,2,"mat-option",12,Re),h()(),f(25,"mat-error")(26,"span"),m(27),b(28,"translate"),h()()(),f(29,"mat-checkbox",13),L("change",function(o){return z(e),$(C().setMakePersistent(o))}),m(30),b(31,"translate"),f(32,"mat-icon",14),b(33,"translate"),m(34,"help"),h()()()}if(2&t){const e=C();v("formGroup",e.form),d(),v("ngClass",oe(26,dv,e.disableDismiss)),d(3),O(y(5,14,"transports.dialog.remote-key")),d(5),k(e.form.get("remoteKey").hasError("pattern")?10:9),d(2),v("ngClass",oe(28,dv,e.disableDismiss)),d(3),O(y(15,16,"transports.dialog.label")),d(3),v("ngClass",oe(30,dv,e.disableDismiss)),d(3),O(y(21,18,"transports.dialog.transport-type")),d(3),xe(e.types),d(4),O(y(28,20,"transports.dialog.errors.transport-type-error")),d(2),v("checked",e.makePersistent)("ngClass",oe(32,dv,e.disableDismiss)),d(),I(" ",y(31,22,"transports.dialog.make-persistent")," "),d(2),v("inline",!0)("matTooltip",y(33,24,"transports.dialog.persistent-tooltip"))}}let jye=(()=>{class t{static openDialog(e){const i=new Lt;return i.autoFocus=!1,i.width=ze.mediumModalWidth,e.open(t,i)}constructor(e,i,o,r,s,a){this.transportService=e,this.formBuilder=i,this.dialogRef=o,this.snackbarService=r,this.storageService=s,this.nodeService=a,this.makePersistent=!1,this.shouldShowError=!0}ngOnInit(){this.form=this.formBuilder.group({remoteKey:["",Ve.compose([Ve.required,Ve.minLength(66),Ve.maxLength(66),Ve.pattern("^[0-9a-fA-F]+$")])],label:[""],type:["",Ve.required]}),this.loadData(0)}ngOnDestroy(){this.dataSubscription.unsubscribe(),this.operationSubscription&&this.operationSubscription.unsubscribe()}get disableDismiss(){return!!this.button&&this.button.isLoading}setMakePersistent(e){this.makePersistent=!!e.checked}create(){if(!this.form.valid||this.button.disabled)return;this.button.showLoading();const e=this.form.get("remoteKey").value,i=this.form.get("type").value,o=this.form.get("label").value;if(this.makePersistent){const r=this.transportService.getPersistentTransports(ke.getCurrentNodeKey());this.operationSubscription=r.subscribe(s=>{const a=s||[];let l=!1;a.forEach(c=>{c.pk.toUpperCase()===e.toUpperCase()&&c.type.toUpperCase()===i.toUpperCase()&&(l=!0)}),l?this.createTransport(e,i,o,!0):this.createPersistent(a,e,i,o)},s=>{this.onError(s)})}else this.createTransport(e,i,o,!1)}createPersistent(e,i,o,r){e.push({pk:i,type:o}),this.operationSubscription=this.transportService.savePersistentTransportsData(ke.getCurrentNodeKey(),e).subscribe(()=>{this.createTransport(i,o,r,!0)},s=>{this.onError(s)})}createTransport(e,i,o,r){this.operationSubscription=this.transportService.create(ke.getCurrentNodeKey(),e,i).subscribe(s=>{let a=!1;o&&(s&&s.id?this.storageService.saveLabel(s.id,o,io.Transport):a=!0),ke.refreshCurrentDisplayedData(),this.dialogRef.close(),a?this.snackbarService.showWarning("transports.dialog.success-without-label"):this.snackbarService.showDone("transports.dialog.success")},s=>{r?(ke.refreshCurrentDisplayedData(),this.dialogRef.close(),this.snackbarService.showWarning("transports.dialog.only-persistent-created")):this.onError(s)})}onError(e){this.button.showError(),e=Je(e),this.snackbarService.showError(e)}loadData(e){this.dataSubscription&&this.dataSubscription.unsubscribe(),this.dataSubscription=ae(1).pipe(ii(e),Et(()=>this.transportService.types(ke.getCurrentNodeKey()))).subscribe(i=>{i.sort((r,s)=>"stcp"===r.toLowerCase()?1:"stcp"===s.toLowerCase()?-1:r.localeCompare(s));let o=i.findIndex(r=>"dmsg"===r.toLowerCase());o=-1!==o?o:0,this.types=i,this.form.get("type").setValue(i[o]),this.snackbarService.closeCurrentIfTemporaryError(),setTimeout(()=>this.firstInput.nativeElement.focus())},i=>{i=Je(i),this.shouldShowError&&(this.snackbarService.showError("common.loading-error",null,!0,i),this.shouldShowError=!1),this.loadData(ze.connectionRetryDelay)})}static{this.\u0275fac=function(i){return new(i||t)(P(Dk),P(pi),P(It),P(bt),P(zn),P(Sr))}}static{this.\u0275cmp=se({type:t,selectors:[["app-create-transport"]],viewQuery:function(i,o){if(1&i&&rt(Rye,5)(Nye,5),2&i){let r;ue(r=he())&&(o.button=r.first),ue(r=he())&&(o.firstInput=r.first)}},standalone:!1,decls:8,vars:11,consts:[["button",""],["firstInput",""],[3,"headline","dialog","disableDismiss"],[3,"showWhite"],[3,"formGroup"],["color","primary",1,"float-right",3,"action","disabled"],[3,"ngClass"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","remoteKey","maxlength","66","matInput",""],["formControlName","label","maxlength","66","matInput",""],["formControlName","type"],[3,"value"],["color","primary",3,"change","checked","ngClass"],[1,"help-icon",3,"inline","matTooltip"]],template:function(i,o){1&i&&(f(0,"app-dialog",2),b(1,"translate"),S(2,Fye,1,1,"app-loading-indicator",3),S(3,Hye,35,34,"form",4),f(4,"app-button",5,0),L("action",function(){return o.create()}),m(6),b(7,"translate"),h()()),2&i&&(v("headline",y(1,7,"transports.create"))("dialog",o.dialogRef)("disableDismiss",o.disableDismiss),d(2),k(o.types?-1:2),d(),k(o.types?3:-1),d(),v("disabled",!o.form.valid),d(2),I(" ",y(7,9,"transports.create")," "))},dependencies:[qt,Cn,rn,sn,yn,ji,Xt,fn,wn,Es,ei,lt,pn,oc,Is,kr,On,Kt,vr,Se],styles:["mat-checkbox[_ngcontent-%COMP%]{margin-bottom:15px}"]})}}return t})();function Uye(t,n){1&t&&(m(0),b(1,"translate"),f(2,"mat-icon",5),b(3,"translate"),m(4,"help"),h()),2&t&&(I(" ",y(1,3,"common.yes")," "),d(2),v("inline",!0)("matTooltip",y(3,5,"transports.persistent-transport-tooltip")))}function zye(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"common.no")," ")}let $ye=(()=>{class t{static openDialog(e,i){const o=new Lt;return o.data=i,o.autoFocus=!1,o.width=ze.largeModalWidth,e.open(t,o)}constructor(e,i){this.data=e,this.dialogRef=i}static{this.\u0275fac=function(i){return new(i||t)(P(hn),P(It))}}static{this.\u0275cmp=se({type:t,selectors:[["app-transport-details"]],standalone:!1,decls:51,vars:45,consts:[[1,"info-dialog",3,"headline","dialog"],[1,"title","mt-0"],[3,"inline"],[1,"item"],[1,"title"],[1,"help-icon","d-none","d-md-inline",3,"inline","matTooltip"]],template:function(i,o){1&i&&(f(0,"app-dialog",0),b(1,"translate"),f(2,"div")(3,"div",1)(4,"mat-icon",2),m(5,"list"),h(),m(6),b(7,"translate"),h(),f(8,"div",3)(9,"span"),m(10),b(11,"translate"),h(),S(12,Uye,5,7),S(13,zye,2,3),h(),f(14,"div",3)(15,"span"),m(16),b(17,"translate"),h(),m(18),h(),f(19,"div",3)(20,"span"),m(21),b(22,"translate"),h(),m(23),h(),f(24,"div",3)(25,"span"),m(26),b(27,"translate"),h(),m(28),h(),f(29,"div",3)(30,"span"),m(31),b(32,"translate"),h(),m(33),h(),f(34,"div",4)(35,"mat-icon",2),m(36,"import_export"),h(),m(37),b(38,"translate"),h(),f(39,"div",3)(40,"span"),m(41),b(42,"translate"),h(),m(43),b(44,"autoScale"),h(),f(45,"div",3)(46,"span"),m(47),b(48,"translate"),h(),m(49),b(50,"autoScale"),h()()()),2&i&&(v("headline",y(1,21,"transports.details.title"))("dialog",o.dialogRef),d(4),v("inline",!0),d(2),I("",y(7,23,"transports.details.basic.title")," "),d(4),O(y(11,25,"transports.details.basic.persistent")),d(2),k(o.data.isPersistent?12:-1),d(),k(o.data.isPersistent?-1:13),d(3),O(y(17,27,"transports.details.basic.id")),d(2),I(" ",o.data.id," "),d(3),O(y(22,29,"transports.details.basic.local-pk")),d(2),I(" ",o.data.localPk," "),d(3),O(y(27,31,"transports.details.basic.remote-pk")),d(2),I(" ",o.data.remotePk," "),d(3),O(y(32,33,"transports.details.basic.type")),d(2),I(" ",o.data.type," "),d(2),v("inline",!0),d(2),I("",y(38,35,"transports.details.data.title")," "),d(4),O(y(42,37,"transports.details.data.uploaded")),d(2),I(" ",y(44,39,o.data.sent)," "),d(4),O(y(48,41,"transports.details.data.downloaded")),d(2),I(" ",y(50,43,o.data.recv)," "))},dependencies:[lt,pn,Kt,Se,Kf],styles:[".help-icon[_ngcontent-%COMP%]{opacity:.5;font-size:14px;cursor:default}"]})}}return t})();const Wye=()=>({"tooltip-word-break":!0});function Gye(t,n){if(1&t&&(f(0,"span",1),m(1),h()),2&t){const e=C();d(),O(e.shortText)}}function qye(t,n){if(1&t&&(f(0,"span"),m(1),h()),2&t){const e=C();d(),O(e.text)}}let g5=(()=>{class t{constructor(){this.short=!1,this.showTooltip=!0,this.shortTextLength=5}get shortText(){if(this.text.length>2*this.shortTextLength){const e=this.text.length;return`${this.text.slice(0,this.shortTextLength)}...${this.text.slice(e-this.shortTextLength,e)}`}return this.text}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=se({type:t,selectors:[["app-truncated-text"]],inputs:{short:"short",showTooltip:"showTooltip",text:"text",shortTextLength:"shortTextLength"},standalone:!1,decls:3,vars:5,consts:[[1,"wrapper",3,"matTooltip","matTooltipClass"],[1,"nowrap"]],template:function(i,o){1&i&&(f(0,"div",0),S(1,Gye,2,1,"span",1),S(2,qye,2,1,"span"),h()),2&i&&(v("matTooltip",o.short&&o.showTooltip?o.text:"")("matTooltipClass",Mt(4,Wye)),d(),k(o.short?1:-1),d(),k(o.short?-1:2))},dependencies:[pn],styles:['.cursor-pointer[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%], .wrapper[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media(max-width:767px),(min-width:992px)and (max-width:1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media(max-width:767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}.nowrap[_ngcontent-%COMP%]{white-space:nowrap}.wrapper[_ngcontent-%COMP%]{display:inline}']})}}return t})();const Kye=t=>({text:t}),Yye=()=>({"tooltip-word-break":!0});function Xye(t,n){if(1&t&&(f(0,"span"),m(1),b(2,"translate"),h()),2&t){const e=C();d(),I(" ",y(2,1,e.labelComponents.prefix)," ")}}function Zye(t,n){if(1&t&&(f(0,"span"),m(1),h()),2&t){const e=C();d(),I(" ",e.labelComponents.prefixSeparator," ")}}function Qye(t,n){if(1&t&&(f(0,"span"),m(1),h()),2&t){const e=C();d(),I(" ",e.labelComponents.label," ")}}function Jye(t,n){if(1&t&&(f(0,"span"),m(1),b(2,"translate"),h()),2&t){const e=C();d(),I(" ",y(2,1,e.labelComponents.translatableLabel)," ")}}class eCe{constructor(){this.prefix="",this.prefixSeparator="",this.label="",this.translatableLabel=""}}let lc=(()=>{class t{set id(e){this.idInternal=e,this.labelComponents=t.getLabelComponents(this.storageService,this.id)}get id(){return this.idInternal?this.idInternal:""}static getLabelComponents(e,i){let o;o=!!e.getSavedVisibleLocalNodes().has(i);const r=new eCe;return r.labelInfo=e.getLabelInfo(i),r.labelInfo&&r.labelInfo.label?(o&&(r.prefix="labeled-element.local-element",r.prefixSeparator=" - "),r.label=r.labelInfo.label):e.getSavedVisibleLocalNodes().has(i)?r.prefix="labeled-element.unnamed-local-visor":r.translatableLabel="labeled-element.unnamed-element",r}static getCompleteLabel(e,i,o){const r=t.getLabelComponents(e,o);return(r.prefix?i.instant(r.prefix):"")+r.prefixSeparator+r.label+(r.translatableLabel?i.instant(r.translatableLabel):"")}constructor(e,i,o,r,s){this.dialog=e,this.storageService=i,this.clipboardService=o,this.snackbarService=r,this.router=s,this.short=!1,this.shortTextLength=5,this.elementType=io.Node,this.labelEdited=new ve}ngOnDestroy(){this.labelEdited.complete()}processClick(){const e=[{icon:"filter_none",label:"labeled-element.copy"},{icon:"edit",label:"labeled-element.edit-label"}];this.labelComponents.labelInfo&&e.push({icon:"close",label:"labeled-element.remove-label"}),e.push({icon:"list",label:"labeled-element.view-all-labels"}),oo.openDialog(this.dialog,e,"common.options").afterClosed().subscribe(i=>{if(1===i)this.clipboardService.copy(this.id)&&this.snackbarService.showDone("copy.copied");else if(i>2)if(3===i&&this.labelComponents.labelInfo){const o=Ye.createConfirmationDialog(this.dialog,"labeled-element.remove-label-confirmation");o.componentInstance.operationAccepted.subscribe(()=>{o.componentInstance.closeModal(),this.storageService.saveLabel(this.id,null,this.elementType),this.snackbarService.showDone("edit-label.label-removed-warning"),this.labelEdited.emit()})}else this.router.navigate(["/settings","labels"]);else if(2===i){let o=this.labelComponents.labelInfo;o||(o={id:this.id,label:"",identifiedElementType:this.elementType}),vk.openDialog(this.dialog,o).afterClosed().subscribe(r=>{r&&this.labelEdited.emit()})}})}static{this.\u0275fac=function(i){return new(i||t)(P(kt),P(zn),P(Gf),P(bt),P(vt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-labeled-element-text"]],inputs:{id:"id",short:"short",shortTextLength:"shortTextLength",elementType:"elementType"},outputs:{labelEdited:"labelEdited"},standalone:!1,decls:12,vars:17,consts:[[1,"wrapper","highlight-internal-icon",3,"click","matTooltip","matTooltipClass"],[1,"label"],[3,"short","showTooltip","shortTextLength","text"],[3,"inline"]],template:function(i,o){1&i&&(f(0,"div",0),b(1,"translate"),L("click",function(s){return s.stopPropagation(),s.preventDefault(),o.processClick()}),f(2,"span",1),S(3,Xye,3,3,"span"),S(4,Zye,2,1,"span"),S(5,Qye,2,1,"span"),S(6,Jye,3,3,"span"),h(),B(7,"br")(8,"app-truncated-text",2),m(9," \xa0"),f(10,"mat-icon",3),m(11,"settings"),h()()),2&i&&(v("matTooltip",Ee(1,11,o.short?"labeled-element.tooltip-with-text":"labeled-element.tooltip",oe(14,Kye,o.id)))("matTooltipClass",Mt(16,Yye)),d(3),k(o.labelComponents&&o.labelComponents.prefix?3:-1),d(),k(o.labelComponents&&o.labelComponents.prefixSeparator?4:-1),d(),k(o.labelComponents&&o.labelComponents.label?5:-1),d(),k(o.labelComponents&&o.labelComponents.translatableLabel?6:-1),d(2),v("short",o.short)("showTooltip",!1)("shortTextLength",o.shortTextLength)("text",o.id),d(2),v("inline",!0))},dependencies:[lt,pn,g5,Se],styles:['.cursor-pointer[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%], .wrapper[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media(max-width:767px),(min-width:992px)and (max-width:1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media(max-width:767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}.wrapper[_ngcontent-%COMP%]{display:inline}.wrapper[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:.8rem;-webkit-user-select:none;user-select:none}.label[_ngcontent-%COMP%]{opacity:.7;font-size:.8rem}']})}}return t})();const tCe=t=>({"paginator-icons-fixer":t}),Tk=t=>["/nodes",t,"transports"],nCe=(t,n)=>({"small-node-list-margins":t,"full-node-list-margins":n}),iCe=t=>({"d-lg-none d-xl-table":t}),oCe=t=>({"d-lg-table d-xl-none":t}),_5=t=>({offline:t});function rCe(t,n){1&t&&(f(0,"span",3),m(1),b(2,"translate"),f(3,"mat-icon",15),b(4,"translate"),m(5,"help"),h()()),2&t&&(d(),I(" ",y(2,3,"transports.title")," "),d(2),v("inline",!0)("matTooltip",y(4,5,"transports.info")))}function sCe(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,C().$implicit.translatableValue)," ")}function aCe(t,n){1&t&&m(0),2&t&&I(" ",C().$implicit.value," ")}function lCe(t,n){if(1&t&&(f(0,"div",17)(1,"span"),m(2),b(3,"translate"),h(),S(4,sCe,2,3),S(5,aCe,1,1),h()),2&t){const e=n.$implicit;d(2),I("",y(3,3,e.filterName),": "),d(2),k(e.translatableValue?4:-1),d(),k(e.value?5:-1)}}function cCe(t,n){if(1&t){const e=ce();f(0,"div",16),L("click",function(){return z(e),$(C().dataFilterer.removeFilters())}),we(1,lCe,6,5,"div",17,Re),f(3,"div",18),m(4),b(5,"translate"),h()()}if(2&t){const e=C();d(),xe(e.dataFilterer.currentFiltersTexts),d(3),O(y(5,1,"filters.press-to-remove"))}}function dCe(t,n){if(1&t){const e=ce();f(0,"mat-icon",19),L("click",function(){return z(e),$(C().dataFilterer.changeFilters())}),m(1,"filter_list"),h()}2&t&&v("inline",!0)}function uCe(t,n){if(1&t&&(f(0,"mat-icon",9),m(1,"more_horiz"),h()),2&t){C();const e=Vn(11);v("inline",!0)("matMenuTriggerFor",e)}}function hCe(t,n){if(1&t&&B(0,"app-paginator",13),2&t){const e=C();v("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",oe(4,Tk,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function fCe(t,n){if(1&t&&(f(0,"mat-icon",24),m(1),h()),2&t){const e=C(2);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function pCe(t,n){1&t&&m(0," * ")}function mCe(t,n){if(1&t&&(f(0,"mat-icon",24),m(1),h(),S(2,pCe,1,0)),2&t){const e=C(2);v("inline",!0),d(),O(e.dataSorter.sortingArrow),d(),k(e.dataSorter.currentlySortingByLabel?2:-1)}}function gCe(t,n){1&t&&m(0," * ")}function _Ce(t,n){if(1&t&&(f(0,"mat-icon",24),m(1),h(),S(2,gCe,1,0)),2&t){const e=C(2);v("inline",!0),d(),O(e.dataSorter.sortingArrow),d(),k(e.dataSorter.currentlySortingByLabel?2:-1)}}function bCe(t,n){if(1&t&&(f(0,"mat-icon",24),m(1),h()),2&t){const e=C(2);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function vCe(t,n){if(1&t&&(f(0,"mat-icon",24),m(1),h()),2&t){const e=C(2);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function yCe(t,n){if(1&t&&(f(0,"mat-icon",24),m(1),h()),2&t){const e=C(2);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function CCe(t,n){if(1&t){const e=ce();f(0,"button",39),b(1,"translate"),L("click",function(){z(e);const o=C().$implicit;return $(C(2).changeIfPersistent([o],!1))}),f(2,"mat-icon",40),m(3,"star"),h()()}2&t&&(v("matTooltip",y(1,2,"transports.persistent-transport-button-tooltip")),d(2),v("inline",!0))}function wCe(t,n){if(1&t){const e=ce();f(0,"button",39),b(1,"translate"),L("click",function(){z(e);const o=C().$implicit;return $(C(2).changeIfPersistent([o],!0))}),f(2,"mat-icon",41),m(3,"star_outline"),h()()}2&t&&(v("matTooltip",y(1,2,"transports.non-persistent-transport-button-tooltip")),d(2),v("inline",!0))}function xCe(t,n){1&t&&(f(0,"span"),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"transports.offline")))}function SCe(t,n){if(1&t){const e=ce();f(0,"td")(1,"app-labeled-element-text",42),L("labelEdited",function(){return z(e),$(C(3).refreshData())}),h(),S(2,xCe,3,3,"span"),h()}if(2&t){const e=C().$implicit,i=C(2);d(),v("id",Wt(e.id))("elementType",i.labeledElementTypes.Transport),d(),k(e.notFound?2:-1)}}function kCe(t,n){1&t&&(f(0,"td"),m(1),b(2,"translate"),h()),2&t&&(d(),I(" ",y(2,1,"transports.offline")," "))}function DCe(t,n){if(1&t&&(f(0,"td"),m(1),b(2,"autoScale"),h()),2&t){const e=C().$implicit;d(),I(" ",y(2,1,e.sent)," ")}}function TCe(t,n){if(1&t&&(f(0,"td"),m(1),b(2,"autoScale"),h()),2&t){const e=C().$implicit;d(),I(" ",y(2,1,e.recv)," ")}}function MCe(t,n){1&t&&(f(0,"td"),m(1),b(2,"translate"),h()),2&t&&(d(),I(" ",y(2,1,"transports.offline")," "))}function ECe(t,n){1&t&&(f(0,"td"),m(1),b(2,"translate"),h()),2&t&&(d(),I(" ",y(2,1,"transports.offline")," "))}function ICe(t,n){if(1&t){const e=ce();f(0,"button",43),b(1,"translate"),L("click",function(){z(e);const o=C().$implicit;return $(C(2).details(o))}),f(2,"mat-icon",24),m(3,"visibility"),h()()}2&t&&(v("matTooltip",y(1,2,"transports.details.title")),d(2),v("inline",!0))}function PCe(t,n){if(1&t){const e=ce();f(0,"button",43),b(1,"translate"),L("click",function(){z(e);const o=C().$implicit;return $(C(2).delete(o))}),f(2,"mat-icon",24),m(3,"close"),h()()}2&t&&(v("matTooltip",y(1,2,"transports.delete")),d(2),v("inline",!0))}function OCe(t,n){if(1&t){const e=ce();f(0,"tr",27)(1,"td",34)(2,"mat-checkbox",35),L("change",function(){const o=z(e).$implicit;return $(C(2).changeSelection(o))}),h()(),f(3,"td"),S(4,CCe,4,4,"button",36),S(5,wCe,4,4,"button",36),h(),S(6,SCe,3,4,"td"),S(7,kCe,3,3,"td"),f(8,"td")(9,"app-labeled-element-text",37),L("labelEdited",function(){return z(e),$(C(2).refreshData())}),h()(),f(10,"td"),m(11),h(),S(12,DCe,3,3,"td"),S(13,TCe,3,3,"td"),S(14,MCe,3,3,"td"),S(15,ECe,3,3,"td"),f(16,"td",26),S(17,ICe,4,4,"button",38),S(18,PCe,4,4,"button",38),h()()}if(2&t){const e=n.$implicit,i=C(2);v("ngClass",oe(15,_5,e.notFound)),d(2),v("checked",i.selections.get(e.id)),d(2),k(e.isPersistent?4:-1),d(),k(e.isPersistent?-1:5),d(),k(e.notFound?-1:6),d(),k(e.notFound?7:-1),d(2),v("id",Wt(e.remotePk)),d(2),I(" ",e.type," "),d(),k(e.notFound?-1:12),d(),k(e.notFound?-1:13),d(),k(e.notFound?14:-1),d(),k(e.notFound?15:-1),d(2),k(e.notFound?-1:17),d(),k(e.notFound?-1:18)}}function ACe(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"tables.label")," ")}function RCe(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"tables.inverted-order")," ")}function NCe(t,n){1&t&&(f(0,"div",46)(1,"div",46)(2,"mat-icon",51),m(3,"star"),h(),m(4,"\xa0 "),f(5,"span",52),m(6),b(7,"translate"),h()()()),2&t&&(d(2),v("inline",!0),d(4),O(y(7,2,"transports.persistent")))}function FCe(t,n){if(1&t){const e=ce();f(0,"app-labeled-element-text",42),L("labelEdited",function(){return z(e),$(C(3).refreshData())}),h()}if(2&t){const e=C().$implicit,i=C(2);v("id",Wt(e.id))("elementType",i.labeledElementTypes.Transport)}}function LCe(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"transports.offline")," ")}function BCe(t,n){1&t&&(m(0),b(1,"autoScale")),2&t&&I(" ",y(1,1,C().$implicit.sent)," ")}function VCe(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"transports.offline")," ")}function HCe(t,n){1&t&&(m(0),b(1,"autoScale")),2&t&&I(" ",y(1,1,C().$implicit.recv)," ")}function jCe(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"transports.offline")," ")}function UCe(t,n){if(1&t){const e=ce();f(0,"tr")(1,"td")(2,"div",44)(3,"div",45)(4,"mat-checkbox",35),L("change",function(){const o=z(e).$implicit;return $(C(2).changeSelection(o))}),h()(),f(5,"div",31),S(6,NCe,8,4,"div",46),f(7,"div",47)(8,"span",2),m(9),b(10,"translate"),h(),m(11,": "),S(12,FCe,1,3,"app-labeled-element-text",48),S(13,LCe,2,3),h(),f(14,"div",47)(15,"span",2),m(16),b(17,"translate"),h(),m(18,": "),f(19,"app-labeled-element-text",37),L("labelEdited",function(){return z(e),$(C(2).refreshData())}),h()(),f(20,"div",46)(21,"span",2),m(22),b(23,"translate"),h(),m(24),h(),f(25,"div",46)(26,"span",2),m(27),b(28,"translate"),h(),m(29,": "),S(30,BCe,2,3),S(31,VCe,2,3),h(),f(32,"div",46)(33,"span",2),m(34),b(35,"translate"),h(),m(36,": "),S(37,HCe,2,3),S(38,jCe,2,3),h()(),B(39,"div",49),f(40,"div",32)(41,"button",50),b(42,"translate"),L("click",function(o){const r=z(e).$implicit,s=C(2);return o.stopPropagation(),$(s.showOptionsDialog(r))}),f(43,"mat-icon"),m(44),h()()()()()()}if(2&t){const e=n.$implicit,i=C(2);d(2),v("ngClass",oe(31,_5,e.notFound)),d(2),v("checked",i.selections.get(e.id)),d(2),k(e.isPersistent?6:-1),d(3),O(y(10,19,"transports.id")),d(3),k(e.notFound?-1:12),d(),k(e.notFound?13:-1),d(3),O(y(17,21,"transports.remote-node")),d(3),v("id",Wt(e.remotePk)),d(3),O(y(23,23,"transports.type")),d(2),I(": ",e.type," "),d(3),O(y(28,25,"common.uploaded")),d(3),k(e.notFound?-1:30),d(),k(e.notFound?31:-1),d(3),O(y(35,27,"common.downloaded")),d(3),k(e.notFound?-1:37),d(),k(e.notFound?38:-1),d(3),v("matTooltip",y(42,29,"common.options")),d(3),O("add")}}function zCe(t,n){if(1&t&&B(0,"app-view-all-link",33),2&t){const e=C(2);v("numberOfElements",e.filteredTransports.length)("linkParts",oe(3,Tk,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function $Ce(t,n){if(1&t){const e=ce();f(0,"div",14)(1,"div",20)(2,"table",21)(3,"tr"),B(4,"th"),f(5,"th",22),b(6,"translate"),L("click",function(){z(e);const o=C();return $(o.dataSorter.changeSortingOrder(o.persistentSortData))}),f(7,"mat-icon",23),m(8,"star_outline"),h(),S(9,fCe,2,2,"mat-icon",24),h(),f(10,"th",25),L("click",function(){z(e);const o=C();return $(o.dataSorter.changeSortingOrder(o.idSortData))}),m(11),b(12,"translate"),S(13,mCe,3,3),h(),f(14,"th",25),L("click",function(){z(e);const o=C();return $(o.dataSorter.changeSortingOrder(o.remotePkSortData))}),m(15),b(16,"translate"),S(17,_Ce,3,3),h(),f(18,"th",25),L("click",function(){z(e);const o=C();return $(o.dataSorter.changeSortingOrder(o.typeSortData))}),m(19),b(20,"translate"),S(21,bCe,2,2,"mat-icon",24),h(),f(22,"th",25),L("click",function(){z(e);const o=C();return $(o.dataSorter.changeSortingOrder(o.uploadedSortData))}),m(23),b(24,"translate"),S(25,vCe,2,2,"mat-icon",24),h(),f(26,"th",25),L("click",function(){z(e);const o=C();return $(o.dataSorter.changeSortingOrder(o.downloadedSortData))}),m(27),b(28,"translate"),S(29,yCe,2,2,"mat-icon",24),h(),B(30,"th",26),h(),we(31,OCe,19,17,"tr",27,Re),h(),f(33,"table",28)(34,"tr",29),L("click",function(){return z(e),$(C().dataSorter.openSortingOrderModal())}),f(35,"td")(36,"div",30)(37,"div",31)(38,"div",2),m(39),b(40,"translate"),h(),f(41,"div"),m(42),b(43,"translate"),S(44,ACe,2,3),S(45,RCe,2,3),h()(),f(46,"div",32)(47,"mat-icon",24),m(48,"keyboard_arrow_down"),h()()()()(),we(49,UCe,45,33,"tr",null,Re),h(),S(51,zCe,1,5,"app-view-all-link",33),h()()}if(2&t){const e=C();d(),v("ngClass",ft(37,nCe,e.showShortList_,!e.showShortList_)),d(),v("ngClass",oe(40,iCe,e.showShortList_)),d(3),v("matTooltip",y(6,21,"transports.persistent-tooltip")),d(4),k(e.dataSorter.currentSortingColumn===e.persistentSortData?9:-1),d(2),I(" ",y(12,23,"transports.id")," "),d(2),k(e.dataSorter.currentSortingColumn===e.idSortData?13:-1),d(2),I(" ",y(16,25,"transports.remote-node")," "),d(2),k(e.dataSorter.currentSortingColumn===e.remotePkSortData?17:-1),d(2),I(" ",y(20,27,"transports.type")," "),d(2),k(e.dataSorter.currentSortingColumn===e.typeSortData?21:-1),d(2),I(" ",y(24,29,"common.uploaded")," "),d(2),k(e.dataSorter.currentSortingColumn===e.uploadedSortData?25:-1),d(2),I(" ",y(28,31,"common.downloaded")," "),d(2),k(e.dataSorter.currentSortingColumn===e.downloadedSortData?29:-1),d(2),xe(e.dataSource),d(2),v("ngClass",oe(42,oCe,e.showShortList_)),d(6),O(y(40,33,"tables.sorting-title")),d(3),I("",y(43,35,e.dataSorter.currentSortingColumn.label)," "),d(2),k(e.dataSorter.currentlySortingByLabel?44:-1),d(),k(e.dataSorter.sortingInReverseOrder?45:-1),d(2),v("inline",!0),d(2),xe(e.dataSource),d(2),k(e.showShortList_&&e.numberOfPages>1?51:-1)}}function WCe(t,n){1&t&&(f(0,"span",55),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"transports.empty")))}function GCe(t,n){1&t&&(f(0,"span",55),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"transports.empty-with-filter")))}function qCe(t,n){if(1&t&&(f(0,"div",14)(1,"div",53)(2,"mat-icon",54),m(3,"warning"),h(),S(4,WCe,3,3,"span",55),S(5,GCe,3,3,"span",55),h()()),2&t){const e=C();d(2),v("inline",!0),d(2),k(0===e.allTransports.length?4:-1),d(),k(0!==e.allTransports.length?5:-1)}}function KCe(t,n){if(1&t&&B(0,"app-paginator",13),2&t){const e=C();v("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",oe(4,Tk,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}let b5=(()=>{class t{set showShortList(e){this.showShortList_=e,this.dataSorter.setData(this.filteredTransports)}set node(e){const i=performance.now();console.log("[HV-DIAG] transport-list setter called, transports:",e.transports?.length,"persistentTransports:",e.persistentTransports?.length);const o=e.transports.map(s=>s.id).sort().join(",");if(o===this.lastTransportIds&&e.transports.length===this.lastTransportCount)return this.allTransports&&(e.transports.forEach(s=>{const a=this.allTransports.find(l=>l.id===s.id);a&&(a.sent=s.sent,a.recv=s.recv)}),this.cdr.markForCheck()),void console.log("[HV-DIAG] transport-list stats-only update took",(performance.now()-i).toFixed(1),"ms");console.log("[HV-DIAG] transport-list FULL reprocessing",e.transports.length,"transports"),this.lastTransportCount=e.transports.length,this.lastTransportIds=o,this.currentNode=e,this.allTransports=e.transports,this.nodePK=e.localPk;const r=new Map;e.persistentTransports.forEach(s=>r.set(this.getPersistentTransportID(s.pk,s.type),s)),this.allTransports.forEach(s=>{r.has(this.getPersistentTransportID(s.remotePk,s.type))?(s.isPersistent=!0,r.delete(this.getPersistentTransportID(s.remotePk,s.type))):s.isPersistent=!1}),r.forEach((s,a)=>{this.allTransports.push({id:this.getPersistentTransportID(s.pk,s.type),localPk:e.localPk,remotePk:s.pk,type:s.type,recv:0,sent:0,isPersistent:!0,notFound:!0})}),this.allTransports.forEach(s=>{s.id_label=lc.getCompleteLabel(this.storageService,this.translateService,s.id),s.remote_pk_label=lc.getCompleteLabel(this.storageService,this.translateService,s.remotePk)}),this.dataFilterer.setData(this.allTransports),this.cdr.markForCheck()}constructor(e,i,o,r,s,a,l,c,u){this.dialog=e,this.transportService=i,this.route=o,this.router=r,this.snackbarService=s,this.translateService=a,this.storageService=l,this.nodeService=c,this.cdr=u,this.listId="tr",this.persistentSortData=new Pt(["isPersistent"],"transports.persistent",ct.Boolean),this.idSortData=new Pt(["id"],"transports.id",ct.Text,["id_label"]),this.remotePkSortData=new Pt(["remotePk"],"transports.remote-node",ct.Text,["remote_pk_label"]),this.typeSortData=new Pt(["type"],"transports.type",ct.Text),this.uploadedSortData=new Pt(["sent"],"common.uploaded",ct.NumberReversed),this.downloadedSortData=new Pt(["recv"],"common.downloaded",ct.NumberReversed),this.selections=new Map,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.lastTransportCount=-1,this.lastTransportIds="",this.filterProperties=[{filterName:"transports.filter-dialog.persistent",keyNameInElementsArray:"isPersistent",type:mn.Select,printableLabelsForValues:[{value:"",label:"transports.filter-dialog.persistent-options.any"},{value:"true",label:"transports.filter-dialog.persistent-options.persistent"},{value:"false",label:"transports.filter-dialog.persistent-options.non-persistent"}]},{filterName:"transports.filter-dialog.id",keyNameInElementsArray:"id",secondaryKeyNameInElementsArray:"id_label",type:mn.TextInput,maxlength:36},{filterName:"transports.filter-dialog.remote-node",keyNameInElementsArray:"remotePk",secondaryKeyNameInElementsArray:"remote_pk_label",type:mn.TextInput,maxlength:66}],this.labeledElementTypes=io,this.operationSubscriptionsGroup=[],this.dataSorter=new ru(this.dialog,this.translateService,this.storageService,[this.persistentSortData,this.idSortData,this.remotePkSortData,this.typeSortData,this.uploadedSortData,this.downloadedSortData],1,this.listId),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataFilterer=new su(this.dialog,this.route,this.router,this.filterProperties,this.listId),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(g=>{this.filteredTransports=g,this.dataSorter.setData(this.filteredTransports)}),this.navigationsSubscription=this.route.paramMap.subscribe(g=>{if(g.has("page")){let _=Number.parseInt(g.get("page"),10);(isNaN(_)||_<1)&&(_=1),this.currentPageInUrl=_,this.recalculateElementsToShow()}}),this.languageSubscription=this.translateService.onLangChange.subscribe(()=>{this.node=this.currentNode})}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.operationSubscriptionsGroup.forEach(e=>e.unsubscribe()),this.languageSubscription.unsubscribe(),this.dataSortedSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFiltererSubscription.unsubscribe(),this.dataFilterer.dispose(),this.persistentTransportSubscription&&this.persistentTransportSubscription.unsubscribe()}changeSelection(e){this.selections.get(e.id)?this.selections.set(e.id,!1):this.selections.set(e.id,!0)}hasSelectedElements(){if(!this.selections)return!1;let e=!1;return this.selections.forEach(i=>{i&&(e=!0)}),e}changeAllSelections(e){this.selections.forEach((i,o)=>{this.selections.set(o,e)})}deleteSelected(){const e=Ye.createConfirmationDialog(this.dialog,"transports.delete-selected-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.showProcessing();const i=[];this.selections.forEach((o,r)=>{o&&i.push(r)}),this.deleteRecursively(i,e)})}create(){jye.openDialog(this.dialog)}showOptionsDialog(e){const i=[];i.push(e.isPersistent?{icon:"star_outline",label:"transports.make-non-persistent"}:{icon:"star",label:"transports.make-persistent"}),e.notFound||(i.push({icon:"visibility",label:"transports.details.title"}),i.push({icon:"close",label:"transports.delete"})),oo.openDialog(this.dialog,i,"common.options").afterClosed().subscribe(o=>{1===o?this.changeIfPersistent([e],!e.isPersistent):2===o?this.details(e):3===o&&this.delete(e)})}changeIfPersistentOfSelected(e){const i=[];this.allTransports.forEach(o=>{this.selections.has(o.id)&&this.selections.get(o.id)&&i.push(o)}),this.changeIfPersistent(i,e)}changeIfPersistent(e,i){if(e.length<1)return;let o="transports.";o+=1===e.length?i?"make-persistent-confirmation":"make"+(e[0].notFound?"-offline":"")+"-non-persistent-confirmation":i?"make-selected-persistent-confirmation":"make-selected-non-persistent-confirmation";const r=Ye.createConfirmationDialog(this.dialog,o);r.componentInstance.operationAccepted.subscribe(()=>{r.componentInstance.showProcessing(),this.persistentTransportSubscription=this.transportService.getPersistentTransports(this.nodePK).subscribe(s=>{const a=s||[];let l;const c=new Map;if(e.forEach(u=>c.set(this.getPersistentTransportID(u.remotePk,u.type),u)),i)a.forEach(u=>{c.has(this.getPersistentTransportID(u.pk,u.type))&&c.delete(this.getPersistentTransportID(u.pk,u.type))}),l=0===c.size,l||c.forEach(u=>{a.push({pk:u.remotePk,type:u.type})});else{l=!0;for(let u=0;u{r.close(),ke.refreshCurrentDisplayedData(),this.snackbarService.showDone("transports.changes-made")},u=>{u=Je(u),r.componentInstance.showDone("confirmation.error-header-text",u.translatableErrorMsg)})},s=>{s=Je(s),r.componentInstance.showDone("confirmation.error-header-text",s.translatableErrorMsg)})})}details(e){$ye.openDialog(this.dialog,e)}delete(e){const o=Ye.createConfirmationDialog(this.dialog,"transports.delete-"+(e.isPersistent?"persistent-":"")+"confirmation");o.componentInstance.operationAccepted.subscribe(()=>{o.componentInstance.showProcessing(),this.operationSubscriptionsGroup.push(this.startDeleting(e.id).subscribe(()=>{o.close(),ke.refreshCurrentDisplayedData(),this.snackbarService.showDone("transports.deleted")},r=>{r=Je(r),o.componentInstance.showDone("confirmation.error-header-text",r.translatableErrorMsg)}))})}refreshData(){ke.refreshCurrentDisplayedData()}getPersistentTransportID(e,i){return e.toUpperCase()+i.toUpperCase()}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredTransports){const e=this.showShortList_?ze.maxShortListElements:ze.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredTransports.length/e),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const i=e*(this.currentPage-1);this.transportsToShow=this.filteredTransports.slice(i,i+e);const r=new Map;this.transportsToShow.forEach(a=>{r.set(a.id,!0),this.selections.has(a.id)||this.selections.set(a.id,!1)});const s=[];this.selections.forEach((a,l)=>{r.has(l)||s.push(l)}),s.forEach(a=>{this.selections.delete(a)})}else this.transportsToShow=null,this.selections=new Map;this.dataSource=this.transportsToShow,this.cdr.markForCheck()}startDeleting(e){return this.transportService.delete(ke.getCurrentNodeKey(),e)}deleteRecursively(e,i){this.operationSubscriptionsGroup.push(this.startDeleting(e[e.length-1]).subscribe(()=>{e.pop(),0===e.length?(i.close(),ke.refreshCurrentDisplayedData(),this.snackbarService.showDone("transports.deleted")):this.deleteRecursively(e,i)},o=>{ke.refreshCurrentDisplayedData(),o=Je(o),i.componentInstance.showDone("confirmation.error-header-text",o.translatableErrorMsg)}))}static{this.\u0275fac=function(i){return new(i||t)(P(kt),P(Dk),P(Ei),P(vt),P(bt),P(zo),P(zn),P(Sr),P(Pn))}}static{this.\u0275cmp=se({type:t,selectors:[["app-transport-list"]],inputs:{showShortList:"showShortList",node:"node"},standalone:!1,decls:31,vars:34,consts:[["selectionMenu","matMenu"],[1,"generic-title-container","mt-4.5","d-flex",3,"ngClass"],[1,"title"],[1,"uppercase"],[1,"filter-label","subtle-transparent-button","cursor-pointer"],[1,"options"],[1,"options-container"],[3,"click","inline"],[1,"small-icon",3,"inline"],[3,"inline","matMenuTriggerFor"],[3,"overlapTrigger"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"click","disabled"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"rounded-elevated-box","mt-3"],[1,"help","d-none","d-md-inline",3,"inline","matTooltip"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],[1,"item"],[1,"transparent-50"],[1,"small-icon",3,"click","inline"],[1,"box-internal-container","overflow",3,"ngClass"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table",3,"ngClass"],[1,"sortable-column","small-column",3,"click","matTooltip"],[1,"persistent-icon","grey-text"],[3,"inline"],[1,"sortable-column",3,"click"],[1,"actions"],[3,"ngClass"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none",3,"ngClass"],[1,"selectable",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],[3,"numberOfElements","linkParts","queryParams"],[1,"selection-col"],[3,"change","checked"],["mat-button","",1,"action-button","subtle-transparent-button",3,"matTooltip"],[3,"labelEdited","id"],["mat-button","",1,"action-button","transparent-button",3,"matTooltip"],["mat-button","",1,"action-button","subtle-transparent-button",3,"click","matTooltip"],[1,"persistent-icon","default-cursor",3,"inline"],[1,"persistent-icon","grey-text",3,"inline"],[3,"labelEdited","id","elementType"],["mat-button","",1,"action-button","transparent-button",3,"click","matTooltip"],[1,"list-item-container",3,"ngClass"],[1,"check-part"],[1,"list-row"],[1,"list-row","long-content"],[3,"id","elementType"],[1,"margin-part"],["mat-icon-button","",1,"transparent-button",3,"click","matTooltip"],[1,"persistent-icon",3,"inline"],[1,"yellow-clear-text","title"],[1,"box-internal-container"],[1,"alert-icon",3,"inline"],[1,"font-sm"]],template:function(i,o){1&i&&(f(0,"div",1)(1,"div",2),S(2,rCe,6,7,"span",3),S(3,cCe,6,3,"div",4),h(),f(4,"div",5)(5,"div",6)(6,"mat-icon",7),L("click",function(){return o.create()}),m(7,"add"),h(),S(8,dCe,2,1,"mat-icon",8),S(9,uCe,2,2,"mat-icon",9),f(10,"mat-menu",10,0)(12,"div",11),L("click",function(){return o.changeAllSelections(!0)}),m(13),b(14,"translate"),h(),f(15,"div",11),L("click",function(){return o.changeAllSelections(!1)}),m(16),b(17,"translate"),h(),f(18,"div",12),L("click",function(){return o.changeIfPersistentOfSelected(!0)}),m(19),b(20,"translate"),h(),f(21,"div",12),L("click",function(){return o.changeIfPersistentOfSelected(!1)}),m(22),b(23,"translate"),h(),f(24,"div",12),L("click",function(){return o.deleteSelected()}),m(25),b(26,"translate"),h()()(),S(27,hCe,1,6,"app-paginator",13),h()(),S(28,$Ce,52,44,"div",14),S(29,qCe,6,3,"div",14),S(30,KCe,1,6,"app-paginator",13)),2&i&&(v("ngClass",oe(32,tCe,!o.showShortList_&&o.numberOfPages>1&&o.dataSource)),d(2),k(o.showShortList_?2:-1),d(),k(o.dataFilterer.currentFiltersTexts&&o.dataFilterer.currentFiltersTexts.length>0?3:-1),d(3),v("inline",!0),d(2),k(o.allTransports&&o.allTransports.length>0?8:-1),d(),k(o.dataSource&&o.dataSource.length>0?9:-1),d(),v("overlapTrigger",!1),d(3),I(" ",y(14,22,"selection.select-all")," "),d(3),I(" ",y(17,24,"selection.unselect-all")," "),d(2),v("disabled",Wt(!o.hasSelectedElements())),d(),I(" ",y(20,26,"transports.make-selected-persistent")," "),d(2),v("disabled",Wt(!o.hasSelectedElements())),d(),I(" ",y(23,28,"transports.make-selected-non-persistent")," "),d(2),v("disabled",Wt(!o.hasSelectedElements())),d(),I(" ",y(26,30,"selection.delete-all")," "),d(2),k(!o.showShortList_&&o.numberOfPages>1&&o.dataSource?27:-1),d(),k(o.dataSource&&o.dataSource.length>0?28:-1),d(),k(o.dataSource&&0!==o.dataSource.length?-1:29),d(),k(!o.showShortList_&&o.numberOfPages>1&&o.dataSource?30:-1))},dependencies:[qt,Jn,Ms,lt,pn,Xr,Ps,lu,kr,cv,cu,lc,Se,Kf],styles:[".overflow[_ngcontent-%COMP%]{display:block;width:100%;overflow-x:auto}.overflow[_ngcontent-%COMP%] table[_ngcontent-%COMP%]{width:100%}.actions[_ngcontent-%COMP%]{text-align:right;width:90px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}.small-column[_ngcontent-%COMP%]{width:1px;text-align:center}.persistent-icon[_ngcontent-%COMP%]{font-size:14px!important;color:#d48b05}.offline[_ngcontent-%COMP%]{opacity:.35}"],changeDetection:0})}}return t})();function YCe(t,n){1&t&&(f(0,"div",4)(1,"mat-icon",2),m(2,"settings"),h(),m(3),b(4,"translate"),h()),2&t&&(d(),v("inline",!0),d(2),I("",y(4,2,"routes.details.specific-fields-titles.app")," "))}function XCe(t,n){1&t&&(f(0,"div",4)(1,"mat-icon",2),m(2,"swap_horiz"),h(),m(3),b(4,"translate"),h()),2&t&&(d(),v("inline",!0),d(2),I("",y(4,2,"routes.details.specific-fields-titles.forward")," "))}function ZCe(t,n){1&t&&(f(0,"div",4)(1,"mat-icon",2),m(2,"arrow_forward"),h(),m(3),b(4,"translate"),h()),2&t&&(d(),v("inline",!0),d(2),I("",y(4,2,"routes.details.specific-fields-titles.intermediary-forward")," "))}function QCe(t,n){if(1&t&&(f(0,"div")(1,"div",3)(2,"span"),m(3),b(4,"translate"),h(),m(5),h(),f(6,"div",3)(7,"span"),m(8),b(9,"translate"),h(),m(10),h()()),2&t){const e=C(2);d(3),O(y(4,5,"routes.details.specific-fields.route-id")),d(2),I(" ",e.routeRule.forwardFields?e.routeRule.forwardFields.nextRid:e.routeRule.intermediaryForwardFields.nextRid," "),d(3),O(y(9,7,"routes.details.specific-fields.transport-id")),d(2),Hn(" ",e.routeRule.forwardFields?e.routeRule.forwardFields.nextTid:e.routeRule.intermediaryForwardFields.nextTid," ",e.getLabel(e.routeRule.forwardFields?e.routeRule.forwardFields.nextTid:e.routeRule.intermediaryForwardFields.nextTid)," ")}}function JCe(t,n){if(1&t&&(f(0,"div")(1,"div",3)(2,"span"),m(3),b(4,"translate"),h(),m(5),h(),f(6,"div",3)(7,"span"),m(8),b(9,"translate"),h(),m(10),h(),f(11,"div",3)(12,"span"),m(13),b(14,"translate"),h(),m(15),h(),f(16,"div",3)(17,"span"),m(18),b(19,"translate"),h(),m(20),h()()),2&t){const e=C(2);d(3),O(y(4,10,"routes.details.specific-fields.destination-pk")),d(2),Hn(" ",e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.dstPk:e.routeRule.forwardFields.routeDescriptor.dstPk," ",e.getLabel(e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.dstPk:e.routeRule.forwardFields.routeDescriptor.dstPk)," "),d(3),O(y(9,12,"routes.details.specific-fields.source-pk")),d(2),Hn(" ",e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.srcPk:e.routeRule.forwardFields.routeDescriptor.srcPk," ",e.getLabel(e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.srcPk:e.routeRule.forwardFields.routeDescriptor.srcPk)," "),d(3),O(y(14,14,"routes.details.specific-fields.destination-port")),d(2),I(" ",e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.dstPort:e.routeRule.forwardFields.routeDescriptor.dstPort," "),d(3),O(y(19,16,"routes.details.specific-fields.source-port")),d(2),I(" ",e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.srcPort:e.routeRule.forwardFields.routeDescriptor.srcPort," ")}}function e1e(t,n){if(1&t&&(f(0,"div")(1,"div",4)(2,"mat-icon",2),m(3,"list"),h(),m(4),b(5,"translate"),h(),f(6,"div",3)(7,"span"),m(8),b(9,"translate"),h(),m(10),h(),f(11,"div",3)(12,"span"),m(13),b(14,"translate"),h(),m(15),h(),f(16,"div",3)(17,"span"),m(18),b(19,"translate"),h(),m(20),h(),S(21,YCe,5,4,"div",4),S(22,XCe,5,4,"div",4),S(23,ZCe,5,4,"div",4),S(24,QCe,11,9,"div"),S(25,JCe,21,18,"div"),h()),2&t){const e=C();d(2),v("inline",!0),d(2),I("",y(5,13,"routes.details.summary.title")," "),d(4),O(y(9,15,"routes.details.summary.keep-alive")),d(2),I(" ",e.routeRule.ruleSummary.keepAlive," "),d(3),O(y(14,17,"routes.details.summary.type")),d(2),I(" ",e.getRuleTypeName(e.routeRule.ruleSummary.ruleType)," "),d(3),O(y(19,19,"routes.details.summary.key-route-id")),d(2),I(" ",e.routeRule.ruleSummary.keyRouteId," "),d(),k(e.routeRule.appFields?21:-1),d(),k(e.routeRule.forwardFields?22:-1),d(),k(e.routeRule.intermediaryForwardFields?23:-1),d(),k(e.routeRule.forwardFields||e.routeRule.intermediaryForwardFields?24:-1),d(),k(e.routeRule.appFields&&e.routeRule.appFields.routeDescriptor||e.routeRule.forwardFields&&e.routeRule.forwardFields.routeDescriptor?25:-1)}}let t1e=(()=>{class t{static openDialog(e,i){const o=new Lt;return o.data=i,o.autoFocus=!1,o.width=ze.largeModalWidth,e.open(t,o)}constructor(e,i,o){this.dialogRef=i,this.storageService=o,this.ruleTypes=new Map([[0,"App"],[1,"Forward"],[2,"Intermediary forward"]]),this.routeRule=e}getRuleTypeName(e){return this.ruleTypes.has(e)?this.ruleTypes.get(e):e.toString()}closePopup(){this.dialogRef.close()}getLabel(e){const i=this.storageService.getLabelInfo(e);return i?" ("+i.label+")":""}static{this.\u0275fac=function(i){return new(i||t)(P(hn),P(It),P(zn))}}static{this.\u0275cmp=se({type:t,selectors:[["app-route-details"]],standalone:!1,decls:19,vars:17,consts:[[1,"info-dialog",3,"headline","dialog"],[1,"title","mt-0"],[3,"inline"],[1,"item"],[1,"title"]],template:function(i,o){1&i&&(f(0,"app-dialog",0),b(1,"translate"),f(2,"div")(3,"div",1)(4,"mat-icon",2),m(5,"list"),h(),m(6),b(7,"translate"),h(),f(8,"div",3)(9,"span"),m(10),b(11,"translate"),h(),m(12),h(),f(13,"div",3)(14,"span"),m(15),b(16,"translate"),h(),m(17),h(),S(18,e1e,26,21,"div"),h()()),2&i&&(v("headline",y(1,9,"routes.details.title"))("dialog",o.dialogRef),d(4),v("inline",!0),d(2),I("",y(7,11,"routes.details.basic.title")," "),d(4),O(y(11,13,"routes.details.basic.key")),d(2),I(" ",o.routeRule.key," "),d(3),O(y(16,15,"routes.details.basic.rule")),d(2),I(" ",o.routeRule.rule," "),d(),k(o.routeRule.ruleSummary?18:-1))},dependencies:[lt,Kt,Se],encapsulation:2})}}return t})(),v5=(()=>{class t{constructor(e){this.apiService=e}get(e,i){return this.apiService.get(`visors/${e}/routes/${i}`)}delete(e,i){return this.apiService.delete(`visors/${e}/routes/${i}`)}setMinHops(e,i){return this.apiService.post(`visors/${e}/min-hops`,{min_hops:i})}static{this.\u0275fac=function(i){return new(i||t)(le(br))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const n1e=t=>({"paginator-icons-fixer":t}),Mk=t=>["/nodes",t,"routes"],i1e=(t,n)=>({"small-node-list-margins":t,"full-node-list-margins":n}),o1e=t=>({"d-lg-none d-xl-table":t}),r1e=t=>({"d-lg-table d-xl-none":t});function s1e(t,n){1&t&&(f(0,"span",3),m(1),b(2,"translate"),f(3,"mat-icon",14),b(4,"translate"),m(5,"help"),h()()),2&t&&(d(),I(" ",y(2,3,"routes.title")," "),d(2),v("inline",!0)("matTooltip",y(4,5,"routes.info")))}function a1e(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,C().$implicit.translatableValue)," ")}function l1e(t,n){1&t&&m(0),2&t&&I(" ",C().$implicit.value," ")}function c1e(t,n){if(1&t&&(f(0,"div",16)(1,"span"),m(2),b(3,"translate"),h(),S(4,a1e,2,3),S(5,l1e,1,1),h()),2&t){const e=n.$implicit;d(2),I("",y(3,3,e.filterName),": "),d(2),k(e.translatableValue?4:-1),d(),k(e.value?5:-1)}}function d1e(t,n){if(1&t){const e=ce();f(0,"div",15),L("click",function(){return z(e),$(C().dataFilterer.removeFilters())}),we(1,c1e,6,5,"div",16,Re),f(3,"div",17),m(4),b(5,"translate"),h()()}if(2&t){const e=C();d(),xe(e.dataFilterer.currentFiltersTexts),d(3),O(y(5,1,"filters.press-to-remove"))}}function u1e(t,n){if(1&t){const e=ce();f(0,"mat-icon",18),b(1,"translate"),L("click",function(){return z(e),$(C().dataFilterer.changeFilters())}),m(2,"filter_list"),h()}2&t&&v("inline",!0)("matTooltip",y(1,2,"filters.filter-action"))}function h1e(t,n){1&t&&(f(0,"mat-icon",8),m(1,"more_horiz"),h()),2&t&&(C(),v("matMenuTriggerFor",Vn(9)))}function f1e(t,n){if(1&t&&B(0,"app-paginator",12),2&t){const e=C();v("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",oe(4,Mk,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function p1e(t,n){if(1&t&&(f(0,"mat-icon",22),m(1),h()),2&t){const e=C(2);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function m1e(t,n){if(1&t&&(f(0,"mat-icon",22),m(1),h()),2&t){const e=C(2);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function g1e(t,n){if(1&t&&(f(0,"mat-icon",22),m(1),h()),2&t){const e=C(2);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function _1e(t,n){if(1&t&&(f(0,"mat-icon",22),m(1),h()),2&t){const e=C(2);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function b1e(t,n){if(1&t){const e=ce();f(0,"td")(1,"app-labeled-element-text",33),L("labelEdited",function(){return z(e),$(C(3).refreshData())}),h()(),f(2,"td")(3,"app-labeled-element-text",33),L("labelEdited",function(){return z(e),$(C(3).refreshData())}),h()()}if(2&t){const e=C().$implicit,i=C(2);d(),v("id",Wt(e.src))("short",!0)("elementType",i.labeledElementTypes.Node),d(2),v("id",Wt(e.dst))("short",!0)("elementType",i.labeledElementTypes.Node)}}function v1e(t,n){if(1&t){const e=ce();f(0,"td"),m(1,"---"),h(),f(2,"td")(3,"app-labeled-element-text",34),L("labelEdited",function(){return z(e),$(C(3).refreshData())}),h()()}if(2&t){const e=C().$implicit,i=C(2);d(3),v("id",Wt(e.dst))("short",!0)("elementType",i.labeledElementTypes.Transport)}}function y1e(t,n){1&t&&(f(0,"td"),m(1,"---"),h(),f(2,"td"),m(3,"---"),h())}function C1e(t,n){if(1&t){const e=ce();f(0,"tr")(1,"td",30)(2,"mat-checkbox",31),L("change",function(){const o=z(e).$implicit;return $(C(2).changeSelection(o))}),h()(),f(3,"td"),m(4),h(),f(5,"td"),m(6),h(),S(7,b1e,4,8),S(8,v1e,4,4),S(9,y1e,4,0),f(10,"td",23)(11,"button",32),b(12,"translate"),L("click",function(){const o=z(e).$implicit;return $(C(2).details(o))}),f(13,"mat-icon",22),m(14,"visibility"),h()(),f(15,"button",32),b(16,"translate"),L("click",function(){const o=z(e).$implicit;return $(C(2).delete(o.key))}),f(17,"mat-icon",22),m(18,"close"),h()()()()}if(2&t){const e=n.$implicit,i=C(2);d(2),v("checked",i.selections.get(e.key)),d(2),I(" ",e.key," "),d(2),I(" ",i.getTypeName(e.type)," "),d(),k(e.appFields||e.forwardFields?7:-1),d(),k(e.appFields||e.forwardFields||!e.intermediaryForwardFields?-1:8),d(),k(e.appFields||e.forwardFields||e.intermediaryForwardFields?-1:9),d(2),v("matTooltip",y(12,10,"routes.details.title")),d(2),v("inline",!0),d(2),v("matTooltip",y(16,12,"routes.delete")),d(2),v("inline",!0)}}function w1e(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"tables.label")," ")}function x1e(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"tables.inverted-order")," ")}function S1e(t,n){if(1&t){const e=ce();f(0,"div",36)(1,"span",2),m(2),b(3,"translate"),h(),m(4,": "),f(5,"app-labeled-element-text",39),L("labelEdited",function(){return z(e),$(C(3).refreshData())}),h()(),f(6,"div",36)(7,"span",2),m(8),b(9,"translate"),h(),m(10,": "),f(11,"app-labeled-element-text",39),L("labelEdited",function(){return z(e),$(C(3).refreshData())}),h()()}if(2&t){const e=C().$implicit,i=C(2);d(2),O(y(3,8,"routes.source")),d(3),v("id",Wt(e.src))("elementType",i.labeledElementTypes.Node),d(3),O(y(9,10,"routes.destination")),d(3),v("id",Wt(e.dst))("elementType",i.labeledElementTypes.Node)}}function k1e(t,n){if(1&t){const e=ce();f(0,"div",36)(1,"span",2),m(2),b(3,"translate"),h(),m(4,": --- "),h(),f(5,"div",36)(6,"span",2),m(7),b(8,"translate"),h(),m(9,": "),f(10,"app-labeled-element-text",39),L("labelEdited",function(){return z(e),$(C(3).refreshData())}),h()()}if(2&t){const e=C().$implicit,i=C(2);d(2),O(y(3,5,"routes.source")),d(5),O(y(8,7,"routes.destination")),d(3),v("id",Wt(e.dst))("elementType",i.labeledElementTypes.Transport)}}function D1e(t,n){1&t&&(f(0,"div",36)(1,"span",2),m(2),b(3,"translate"),h(),m(4,": --- "),h(),f(5,"div",36)(6,"span",2),m(7),b(8,"translate"),h(),m(9,": --- "),h()),2&t&&(d(2),O(y(3,2,"routes.source")),d(5),O(y(8,4,"routes.destination")))}function T1e(t,n){if(1&t){const e=ce();f(0,"tr")(1,"td")(2,"div",26)(3,"div",35)(4,"mat-checkbox",31),L("change",function(){const o=z(e).$implicit;return $(C(2).changeSelection(o))}),h()(),f(5,"div",27)(6,"div",36)(7,"span",2),m(8),b(9,"translate"),h(),m(10),h(),f(11,"div",36)(12,"span",2),m(13),b(14,"translate"),h(),m(15),h(),S(16,S1e,12,12),S(17,k1e,11,9),S(18,D1e,10,6),h(),B(19,"div",37),f(20,"div",28)(21,"button",38),b(22,"translate"),L("click",function(o){const r=z(e).$implicit,s=C(2);return o.stopPropagation(),$(s.showOptionsDialog(r))}),f(23,"mat-icon"),m(24),h()()()()()()}if(2&t){const e=n.$implicit,i=C(2);d(4),v("checked",i.selections.get(e.key)),d(4),O(y(9,10,"routes.key")),d(2),I(": ",e.key," "),d(3),O(y(14,12,"routes.type")),d(2),I(": ",i.getTypeName(e.type)," "),d(),k(e.appFields||e.forwardFields?16:-1),d(),k(e.appFields||e.forwardFields||!e.intermediaryForwardFields?-1:17),d(),k(e.appFields||e.forwardFields||e.intermediaryForwardFields?-1:18),d(3),v("matTooltip",y(22,14,"common.options")),d(3),O("add")}}function M1e(t,n){if(1&t&&B(0,"app-view-all-link",29),2&t){const e=C(2);v("numberOfElements",e.filteredRoutes.length)("linkParts",oe(3,Mk,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function E1e(t,n){if(1&t){const e=ce();f(0,"div",13)(1,"div",19)(2,"table",20)(3,"tr"),B(4,"th"),f(5,"th",21),L("click",function(){z(e);const o=C();return $(o.dataSorter.changeSortingOrder(o.keySortData))}),m(6),b(7,"translate"),S(8,p1e,2,2,"mat-icon",22),h(),f(9,"th",21),L("click",function(){z(e);const o=C();return $(o.dataSorter.changeSortingOrder(o.typeSortData))}),m(10),b(11,"translate"),S(12,m1e,2,2,"mat-icon",22),h(),f(13,"th",21),L("click",function(){z(e);const o=C();return $(o.dataSorter.changeSortingOrder(o.sourceSortData))}),m(14),b(15,"translate"),S(16,g1e,2,2,"mat-icon",22),h(),f(17,"th",21),L("click",function(){z(e);const o=C();return $(o.dataSorter.changeSortingOrder(o.destinationSortData))}),m(18),b(19,"translate"),S(20,_1e,2,2,"mat-icon",22),h(),B(21,"th",23),h(),we(22,C1e,19,14,"tr",null,Re),h(),f(24,"table",24)(25,"tr",25),L("click",function(){return z(e),$(C().dataSorter.openSortingOrderModal())}),f(26,"td")(27,"div",26)(28,"div",27)(29,"div",2),m(30),b(31,"translate"),h(),f(32,"div"),m(33),b(34,"translate"),S(35,w1e,2,3),S(36,x1e,2,3),h()(),f(37,"div",28)(38,"mat-icon",22),m(39,"keyboard_arrow_down"),h()()()()(),we(40,T1e,25,16,"tr",null,Re),h(),S(42,M1e,1,5,"app-view-all-link",29),h()()}if(2&t){const e=C();d(),v("ngClass",ft(29,i1e,e.showShortList_,!e.showShortList_)),d(),v("ngClass",oe(32,o1e,e.showShortList_)),d(4),I(" ",y(7,17,"routes.key")," "),d(2),k(e.dataSorter.currentSortingColumn===e.keySortData?8:-1),d(2),I(" ",y(11,19,"routes.type")," "),d(2),k(e.dataSorter.currentSortingColumn===e.typeSortData?12:-1),d(2),I(" ",y(15,21,"routes.source")," "),d(2),k(e.dataSorter.currentSortingColumn===e.sourceSortData?16:-1),d(2),I(" ",y(19,23,"routes.destination")," "),d(2),k(e.dataSorter.currentSortingColumn===e.destinationSortData?20:-1),d(2),xe(e.dataSource),d(2),v("ngClass",oe(34,r1e,e.showShortList_)),d(6),O(y(31,25,"tables.sorting-title")),d(3),I("",y(34,27,e.dataSorter.currentSortingColumn.label)," "),d(2),k(e.dataSorter.currentlySortingByLabel?35:-1),d(),k(e.dataSorter.sortingInReverseOrder?36:-1),d(2),v("inline",!0),d(2),xe(e.dataSource),d(2),k(e.showShortList_&&e.numberOfPages>1?42:-1)}}function I1e(t,n){1&t&&(f(0,"span",42),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"routes.empty")))}function P1e(t,n){1&t&&(f(0,"span",42),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"routes.empty-with-filter")))}function O1e(t,n){if(1&t&&(f(0,"div",13)(1,"div",40)(2,"mat-icon",41),m(3,"warning"),h(),S(4,I1e,3,3,"span",42),S(5,P1e,3,3,"span",42),h()()),2&t){const e=C();d(2),v("inline",!0),d(2),k(0===e.allRoutes.length?4:-1),d(),k(0!==e.allRoutes.length?5:-1)}}function A1e(t,n){if(1&t&&B(0,"app-paginator",12),2&t){const e=C();v("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",oe(4,Mk,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}let y5=(()=>{class t{set showShortList(e){this.showShortList_=e,this.dataSorter.setData(this.filteredRoutes)}set routes(e){if(!e)return;const i=performance.now();console.log("[HV-DIAG] route-list setter called, routes:",e.length);const o=e.map(r=>r.key).sort().join(",");if(o===this.lastRouteKeys&&e.length===this.lastRouteCount)return this.cdr.markForCheck(),void console.log("[HV-DIAG] route-list skip (unchanged) took",(performance.now()-i).toFixed(1),"ms");console.log("[HV-DIAG] route-list FULL reprocessing",e.length,"routes"),this.lastRouteCount=e.length,this.lastRouteKeys=o,this.allRoutes=e,this.allRoutes.forEach(r=>{if(r.type=r.ruleSummary.ruleType||0===r.ruleSummary.ruleType?r.ruleSummary.ruleType:"",r.appFields||r.forwardFields){const s=r.appFields?r.appFields.routeDescriptor:r.forwardFields.routeDescriptor;r.src=s.srcPk,r.src_label=lc.getCompleteLabel(this.storageService,this.translateService,r.src),r.dst=s.dstPk,r.dst_label=lc.getCompleteLabel(this.storageService,this.translateService,r.dst)}else r.intermediaryForwardFields?(r.src="",r.src_label="",r.dst=r.intermediaryForwardFields.nextTid,r.dst_label=lc.getCompleteLabel(this.storageService,this.translateService,r.dst)):(r.src="",r.src_label="",r.dst="",r.dst_label="")}),this.dataFilterer.setData(this.allRoutes)}constructor(e,i,o,r,s,a,l,c){this.routeService=e,this.dialog=i,this.route=o,this.router=r,this.snackbarService=s,this.translateService=a,this.storageService=l,this.cdr=c,this.listId="rl",this.keySortData=new Pt(["key"],"routes.key",ct.Number),this.typeSortData=new Pt(["type"],"routes.type",ct.Number),this.sourceSortData=new Pt(["src"],"routes.source",ct.Text,["src_label"]),this.destinationSortData=new Pt(["dst"],"routes.destination",ct.Text,["dst_label"]),this.labeledElementTypes=io,this.selections=new Map,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.lastRouteCount=-1,this.lastRouteKeys="",this.filterProperties=[{filterName:"routes.filter-dialog.key",keyNameInElementsArray:"key",type:mn.TextInput,maxlength:8},{filterName:"routes.filter-dialog.source",keyNameInElementsArray:"src",secondaryKeyNameInElementsArray:"src_label",type:mn.TextInput,maxlength:66},{filterName:"routes.filter-dialog.destination",keyNameInElementsArray:"dst",secondaryKeyNameInElementsArray:"dst_label",type:mn.TextInput,maxlength:66}],this.ruleTypes=new Map([[0,"App"],[1,"Forward"],[2,"Int. forward"]]),this.operationSubscriptionsGroup=[],this.dataSorter=new ru(this.dialog,this.translateService,this.storageService,[this.keySortData,this.typeSortData,this.sourceSortData,this.destinationSortData],0,this.listId),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()});const p={filterName:"routes.filter-dialog.type",keyNameInElementsArray:"type",type:mn.Select,printableLabelsForValues:[{value:"",label:"routes.filter-dialog.any-type-option"}]};this.ruleTypes.forEach((g,_)=>{p.printableLabelsForValues.push({value:_+"",label:g})}),this.filterProperties=[p].concat(this.filterProperties),this.dataFilterer=new su(this.dialog,this.route,this.router,this.filterProperties,this.listId),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(g=>{this.filteredRoutes=g,this.dataSorter.setData(this.filteredRoutes)}),this.navigationsSubscription=this.route.paramMap.subscribe(g=>{if(g.has("page")){let _=Number.parseInt(g.get("page"),10);(isNaN(_)||_<1)&&(_=1),this.currentPageInUrl=_,this.recalculateElementsToShow()}})}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.operationSubscriptionsGroup.forEach(e=>e.unsubscribe()),this.dataSortedSubscription.unsubscribe(),this.dataFiltererSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFilterer.dispose()}refreshData(){ke.refreshCurrentDisplayedData()}getTypeName(e){return this.ruleTypes.has(e)?this.ruleTypes.get(e):"Unknown"}changeSelection(e){this.selections.get(e.key)?this.selections.set(e.key,!1):this.selections.set(e.key,!0)}hasSelectedElements(){if(!this.selections)return!1;let e=!1;return this.selections.forEach(i=>{i&&(e=!0)}),e}changeAllSelections(e){this.selections.forEach((i,o)=>{this.selections.set(o,e)})}deleteSelected(){const e=Ye.createConfirmationDialog(this.dialog,"routes.delete-selected-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.showProcessing();const i=[];this.selections.forEach((o,r)=>{o&&i.push(r)}),this.deleteRecursively(i,e)})}showOptionsDialog(e){oo.openDialog(this.dialog,[{icon:"visibility",label:"routes.details.title"},{icon:"close",label:"routes.delete"}],"common.options").afterClosed().subscribe(o=>{1===o?this.details(e):2===o&&this.delete(e.key)})}details(e){t1e.openDialog(this.dialog,e)}delete(e){const i=Ye.createConfirmationDialog(this.dialog,"routes.delete-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.componentInstance.showProcessing(),this.operationSubscriptionsGroup.push(this.startDeleting(e).subscribe(()=>{i.close(),ke.refreshCurrentDisplayedData(),this.snackbarService.showDone("routes.deleted")},o=>{o=Je(o),i.componentInstance.showDone("confirmation.error-header-text",o.translatableErrorMsg)}))})}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredRoutes){const e=this.showShortList_?ze.maxShortListElements:ze.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredRoutes.length/e),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const i=e*(this.currentPage-1);this.routesToShow=this.filteredRoutes.slice(i,i+e);const r=new Map;this.routesToShow.forEach(a=>{r.set(a.key,!0),this.selections.has(a.key)||this.selections.set(a.key,!1)});const s=[];this.selections.forEach((a,l)=>{r.has(l)||s.push(l)}),s.forEach(a=>{this.selections.delete(a)})}else this.routesToShow=null,this.selections=new Map;this.dataSource=this.routesToShow,this.cdr.markForCheck()}startDeleting(e){return this.routeService.delete(ke.getCurrentNodeKey(),e.toString())}deleteRecursively(e,i){this.operationSubscriptionsGroup.push(this.startDeleting(e[e.length-1]).subscribe(()=>{e.pop(),0===e.length?(i.close(),ke.refreshCurrentDisplayedData(),this.snackbarService.showDone("routes.deleted")):this.deleteRecursively(e,i)},o=>{ke.refreshCurrentDisplayedData(),o=Je(o),i.componentInstance.showDone("confirmation.error-header-text",o.translatableErrorMsg)}))}static{this.\u0275fac=function(i){return new(i||t)(P(v5),P(kt),P(Ei),P(vt),P(bt),P(zo),P(zn),P(Pn))}}static{this.\u0275cmp=se({type:t,selectors:[["app-route-list"]],inputs:{nodePK:"nodePK",showShortList:"showShortList",routes:"routes"},standalone:!1,decls:23,vars:23,consts:[["selectionMenu","matMenu"],[1,"generic-title-container","mt-4.5","d-flex",3,"ngClass"],[1,"title"],[1,"uppercase"],[1,"filter-label","subtle-transparent-button","cursor-pointer"],[1,"options"],[1,"options-container"],[1,"small-icon",3,"inline","matTooltip"],[3,"matMenuTriggerFor"],[3,"overlapTrigger"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"click","disabled"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"rounded-elevated-box","mt-3"],[1,"help","d-none","d-md-inline",3,"inline","matTooltip"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],[1,"item"],[1,"transparent-50"],[1,"small-icon",3,"click","inline","matTooltip"],[1,"box-internal-container","overflow",3,"ngClass"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table",3,"ngClass"],[1,"sortable-column",3,"click"],[3,"inline"],[1,"actions"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none",3,"ngClass"],[1,"selectable",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],[3,"numberOfElements","linkParts","queryParams"],[1,"selection-col"],[3,"change","checked"],["mat-button","",1,"action-button","transparent-button",3,"click","matTooltip"],["shortTextLength","7",3,"labelEdited","short","id","elementType"],["shortTextLength","5",3,"labelEdited","short","id","elementType"],[1,"check-part"],[1,"list-row","long-content"],[1,"margin-part"],["mat-icon-button","",1,"transparent-button",3,"click","matTooltip"],[3,"labelEdited","id","elementType"],[1,"box-internal-container"],[1,"alert-icon",3,"inline"],[1,"font-sm"]],template:function(i,o){1&i&&(f(0,"div",1)(1,"div",2),S(2,s1e,6,7,"span",3),S(3,d1e,6,3,"div",4),h(),f(4,"div",5)(5,"div",6),S(6,u1e,3,4,"mat-icon",7),S(7,h1e,2,1,"mat-icon",8),f(8,"mat-menu",9,0)(10,"div",10),L("click",function(){return o.changeAllSelections(!0)}),m(11),b(12,"translate"),h(),f(13,"div",10),L("click",function(){return o.changeAllSelections(!1)}),m(14),b(15,"translate"),h(),f(16,"div",11),L("click",function(){return o.deleteSelected()}),m(17),b(18,"translate"),h()()(),S(19,f1e,1,6,"app-paginator",12),h()(),S(20,E1e,43,36,"div",13),S(21,O1e,6,3,"div",13),S(22,A1e,1,6,"app-paginator",12)),2&i&&(v("ngClass",oe(21,n1e,!o.showShortList_&&o.numberOfPages>1&&o.dataSource)),d(2),k(o.showShortList_?2:-1),d(),k(o.dataFilterer.currentFiltersTexts&&o.dataFilterer.currentFiltersTexts.length>0?3:-1),d(3),k(o.allRoutes&&o.allRoutes.length>0?6:-1),d(),k(o.dataSource&&o.dataSource.length>0?7:-1),d(),v("overlapTrigger",!1),d(3),I(" ",y(12,15,"selection.select-all")," "),d(3),I(" ",y(15,17,"selection.unselect-all")," "),d(2),v("disabled",Wt(!o.hasSelectedElements())),d(),I(" ",y(18,19,"selection.delete-all")," "),d(2),k(!o.showShortList_&&o.numberOfPages>1&&o.dataSource?19:-1),d(),k(o.dataSource&&o.dataSource.length>0?20:-1),d(),k(o.dataSource&&0!==o.dataSource.length?-1:21),d(),k(!o.showShortList_&&o.numberOfPages>1&&o.dataSource?22:-1))},dependencies:[qt,Jn,Ms,lt,pn,Xr,Ps,lu,kr,cv,cu,lc,Se],styles:[".actions[_ngcontent-%COMP%]{text-align:right;width:90px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}"],changeDetection:0})}}return t})(),R1e=(()=>{class t extends Wn{ngOnInit(){return this.dataSubscription=ke.currentNode.subscribe(e=>{this.nodePK=e.localPk,this.node=e,this.routes=e.routes}),super.ngOnInit()}ngOnDestroy(){this.dataSubscription.unsubscribe()}static{this.\u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})()}static{this.\u0275cmp=se({type:t,selectors:[["app-routing"]],standalone:!1,features:[be],decls:2,vars:5,consts:[[3,"node","showShortList"],[3,"routes","showShortList","nodePK"]],template:function(i,o){1&i&&B(0,"app-transport-list",0)(1,"app-route-list",1),2&i&&(v("node",o.node)("showShortList",!0),d(),v("routes",o.routes)("showShortList",!0)("nodePK",o.nodePK))},dependencies:[b5,y5],encapsulation:2})}}return t})();function N1e(t,n){if(1&t&&(f(0,"mat-option",5),m(1),b(2,"translate"),h()),2&t){const e=n.$implicit;v("value",e.days),d(),O(y(2,2,e.text))}}let F1e=(()=>{class t{static openDialog(e,i){const o=new Lt;return o.data=i,o.autoFocus=!1,o.width=ze.smallModalWidth,e.open(t,o)}constructor(e,i,o){this.data=e,this.dialogRef=i,this.formBuilder=o}ngOnInit(){this.filters=[{text:"apps.log.filter.7-days",days:7},{text:"apps.log.filter.1-month",days:30},{text:"apps.log.filter.3-months",days:90},{text:"apps.log.filter.6-months",days:180},{text:"apps.log.filter.1-year",days:365},{text:"apps.log.filter.all",days:-1}],this.form=this.formBuilder.group({filter:[this.data.days]}),this.formSubscription=this.form.get("filter").valueChanges.subscribe(e=>{this.dialogRef.close(this.filters.find(i=>i.days===e))})}ngOnDestroy(){this.formSubscription.unsubscribe()}static{this.\u0275fac=function(i){return new(i||t)(P(hn),P(It),P(pi))}}static{this.\u0275cmp=se({type:t,selectors:[["app-log-filter"]],standalone:!1,decls:11,vars:8,consts:[[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","filter"],[3,"value"]],template:function(i,o){1&i&&(f(0,"app-dialog",0),b(1,"translate"),f(2,"form",1)(3,"mat-form-field")(4,"div",2)(5,"label",3),m(6),b(7,"translate"),h(),f(8,"mat-select",4),we(9,N1e,3,4,"mat-option",5,Re),h()()()()()),2&i&&(v("headline",y(1,4,"apps.log.filter.title"))("dialog",o.dialogRef),d(2),v("formGroup",o.form),d(4),O(y(7,6,"apps.log.filter.filter")),d(3),xe(o.filters))},dependencies:[Cn,sn,yn,Xt,fn,wn,oc,Is,Kt,Se],styles:["mat-form-field[_ngcontent-%COMP%]{margin-bottom:-24px}"]})}}return t})();const L1e=["content"],B1e=t=>({totalLogs:t});function V1e(t,n){if(1&t&&(f(0,"app-button",7)(1,"div",11),m(2),b(3,"translate"),h()()),2&t){const e=C();d(2),I(" ",Ee(3,1,"apps.log.view-all",oe(4,B1e,e.totalLogs))," ")}}function H1e(t,n){if(1&t&&(f(0,"div",8)(1,"span",12),m(2),h(),m(3),h()),2&t){const e=n.$implicit;d(2),I(" ",e.time," "),d(),I(" ",e.msg," ")}}function j1e(t,n){1&t&&(f(0,"div",9),m(1),b(2,"translate"),h()),2&t&&(d(),I(" ",y(2,1,"apps.log.empty")," "))}function U1e(t,n){1&t&&B(0,"app-loading-indicator",10),2&t&&v("showWhite",!1)}let z1e=(()=>{class t{static openDialog(e,i){const o=new Lt;return o.data=i,o.autoFocus=!1,o.width=ze.largeModalWidth,e.open(t,o)}constructor(e,i,o,r,s,a){this.data=e,this.dialogRef=i,this.appsService=o,this.dialog=r,this.snackbarService=s,this.apiService=a,this.logMessages=[],this.hasMoreLogMessages=!1,this.totalLogs=0,this.loading=!1,this.currentFilter={text:"apps.log.filter.7-days",days:7},this.shouldShowError=!0}ngOnInit(){this.loadData(0)}ngOnDestroy(){this.removeSubscription()}filter(){F1e.openDialog(this.dialog,this.currentFilter).afterClosed().subscribe(e=>{e&&(this.currentFilter=e,this.logMessages=[],this.loadData(0))})}getLogsUrl(){return"/"+this.apiService.apiPrefix+this.appsService.getLogMessagesUrl(ke.getCurrentNodeKey(),this.data.name)}loadData(e){this.removeSubscription(),this.loading=!0,this.subscription=ae(1).pipe(ii(e),Et(()=>this.appsService.getLogMessages(ke.getCurrentNodeKey(),this.data.name,this.currentFilter.days))).subscribe(i=>this.onLogsReceived(i),i=>this.onLogsError(i))}removeSubscription(){this.subscription&&this.subscription.unsubscribe()}onLogsReceived(e=[]){this.loading=!1,this.shouldShowError=!0,this.snackbarService.closeCurrentIfTemporaryError();let i=0;this.hasMoreLogMessages=!1,this.totalLogs=e.length,e.forEach(o=>{if(i<5e3){const r=o.startsWith("[")?0:-1,s=-1!==r?o.indexOf("]"):-1;this.logMessages.push(-1!==r&&-1!==s?{time:o.substr(r,s+1),msg:o.substr(s+1)}:{time:"",msg:o})}else this.hasMoreLogMessages=!0;i+=1}),setTimeout(()=>{this.content.nativeElement.scrollTop=this.content.nativeElement.scrollHeight})}onLogsError(e){e=Je(e),this.shouldShowError&&(this.snackbarService.showError("common.loading-error",null,!0,e),this.shouldShowError=!1),this.loadData(ze.connectionRetryDelay)}static{this.\u0275fac=function(i){return new(i||t)(P(hn),P(It),P(Os),P(kt),P(bt),P(br))}}static{this.\u0275cmp=se({type:t,selectors:[["app-log"]],viewQuery:function(i,o){if(1&i&&rt(L1e,5),2&i){let r;ue(r=he())&&(o.content=r.first)}},standalone:!1,decls:20,vars:16,consts:[["content",""],[3,"headline","includeVerticalMargins","includeScrollableArea","dialog"],[1,"top-dialog-button",3,"click"],[1,"top-dialog-button-content"],[1,"actual-value"],[1,"top-dialog-button-margin"],["target","_blank",3,"href"],["color","primary",1,"full-logs-button"],[1,"app-log-message"],[1,"app-log-empty","mt-3"],[3,"showWhite"],[1,"text-container"],[1,"transparent"]],template:function(i,o){1&i&&(f(0,"app-dialog",1),b(1,"translate"),f(2,"div",2),L("click",function(){return o.filter()}),f(3,"div",3)(4,"div")(5,"span"),m(6),b(7,"translate"),h(),f(8,"span",4),m(9),b(10,"translate"),h()()(),B(11,"div",5),h(),f(12,"mat-dialog-content",null,0)(14,"a",6),S(15,V1e,4,6,"app-button",7),h(),we(16,H1e,4,2,"div",8,Re),S(18,j1e,3,3,"div",9),S(19,U1e,1,1,"app-loading-indicator",10),h()()),2&i&&(v("headline",y(1,10,"apps.log.title"))("includeVerticalMargins",!1)("includeScrollableArea",!1)("dialog",o.dialogRef),d(6),I("",y(7,12,"apps.log.filter-button")," "),d(3),O(y(10,14,o.currentFilter.text)),d(5),v("href",o.getLogsUrl(),ho),d(),k(o.hasMoreLogMessages?15:-1),d(),xe(o.logMessages),d(2),k(o.loading||o.logMessages&&0!==o.logMessages.length?-1:18),d(),k(o.loading?19:-1))},dependencies:[Kd,On,Kt,vr,Se],styles:[".mat-mdc-dialog-content[_ngcontent-%COMP%]{font-size:.875rem}.app-log-message[_ngcontent-%COMP%]{margin-top:15px;word-break:break-word}.app-log-message[_ngcontent-%COMP%] .transparent[_ngcontent-%COMP%]{color:#999}.app-log-message[_ngcontent-%COMP%]:first-of-type{margin-top:0}.app-log-message[_ngcontent-%COMP%]:last-of-type{margin-bottom:24px}.top-dialog-button[_ngcontent-%COMP%]{color:#777!important}.top-dialog-button[_ngcontent-%COMP%] .top-dialog-button-content[_ngcontent-%COMP%]{text-align:center}.top-dialog-button[_ngcontent-%COMP%] .top-dialog-button-content[_ngcontent-%COMP%] .actual-value[_ngcontent-%COMP%]{color:#202226}.full-logs-button[_ngcontent-%COMP%] button{width:100%!important;display:block;text-align:center;margin-bottom:15px}.full-logs-button[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]{width:100%}"]})}}return t})();const $1e=["button"],W1e=["firstInput"],Ek=t=>({"element-disabled":t});function G1e(t,n){if(1&t&&(f(0,"mat-form-field",4)(1,"div",5)(2,"label",10),m(3),b(4,"translate"),h(),B(5,"input",11),h()()),2&t){const e=C();v("ngClass",oe(4,Ek,e.disableDismiss)),d(3),O(y(4,2,"apps.vpn-socks-server-settings.netifc"))}}function q1e(t,n){if(1&t){const e=ce();f(0,"div",8)(1,"mat-checkbox",12),L("change",function(o){return z(e),$(C().setSecureMode(o))}),m(2),b(3,"translate"),f(4,"mat-icon",13),b(5,"translate"),m(6,"help"),h()()()}if(2&t){const e=C();d(),v("checked",e.secureMode)("ngClass",oe(9,Ek,e.disableDismiss)),d(),I(" ",y(3,5,"apps.vpn-socks-server-settings.secure-mode-check")," "),d(2),v("inline",!0)("matTooltip",y(5,7,"apps.vpn-socks-server-settings.secure-mode-info"))}}let K1e=(()=>{class t{static openDialog(e,i){const o=new Lt;return o.data=i,o.autoFocus=!1,o.width=ze.mediumModalWidth,e.open(t,o)}constructor(e,i,o,r,s,a){this.data=e,this.appsService=i,this.formBuilder=o,this.dialogRef=r,this.snackbarService=s,this.dialog=a,this.configuringVpn=!1,this.secureMode=!1,-1!==e.name.toLocaleLowerCase().indexOf("vpn")&&(this.configuringVpn=!0)}ngOnInit(){if(this.form=this.formBuilder.group({whitelist:["",this.validateWhitelist.bind(this)],netifc:[""]}),this.data.args&&this.data.args.length>0)for(let e=0;ethis.firstInput.nativeElement.focus())}ngOnDestroy(){this.formSubscription&&this.formSubscription.unsubscribe(),this.operationSubscription&&this.operationSubscription.unsubscribe()}get disableDismiss(){return!!this.button&&this.button.isLoading}setSecureMode(e){this.button.disabled||(this.secureMode=!!e.checked)}saveChanges(){if(!this.form.valid||this.button.disabled)return;const i=this.normalizedWhitelist()?"apps.vpn-socks-server-settings.set-whitelist-confirmation":"apps.vpn-socks-server-settings.clear-whitelist-confirmation",o=Ye.createConfirmationDialog(this.dialog,i);o.componentInstance.operationAccepted.subscribe(()=>{o.close(),this.continueSavingChanges()})}continueSavingChanges(){this.button.showLoading();const e={whitelist:this.normalizedWhitelist()};this.configuringVpn&&(e.secure=this.secureMode,e.netifc=this.form.get("netifc").value),this.operationSubscription=this.appsService.changeAppSettings(ke.getCurrentNodeKey(),this.data.name,e).subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)})}normalizedWhitelist(){const e=(this.form.get("whitelist").value||"").trim();return""===e?"":e.split(/[\s,]+/).filter(i=>i.length>0).join(",")}onSuccess(){ke.refreshCurrentDisplayedData(),this.snackbarService.showDone("apps.vpn-socks-server-settings.changes-made"),this.dialogRef.close()}onError(e){this.button.showError(),e=Je(e),this.snackbarService.showError(e)}validateWhitelist(e){const i=(e&&(e.value||"")).trim();if(""===i)return null;for(const o of i.split(/[\s,]+/))if(""!==o&&(66!==o.length||!/^[0-9a-fA-F]+$/.test(o)))return{invalid:!0};return null}static{this.\u0275fac=function(i){return new(i||t)(P(hn),P(Os),P(pi),P(It),P(bt),P(kt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-skysocks-settings"]],viewQuery:function(i,o){if(1&i&&rt($1e,5)(W1e,5),2&i){let r;ue(r=he())&&(o.button=r.first),ue(r=he())&&(o.firstInput=r.first)}},standalone:!1,decls:23,vars:24,consts:[["firstInput",""],["button",""],[3,"headline","dialog","disableDismiss"],[3,"formGroup"],[3,"ngClass"],[1,"field-container"],["for","whitelist",1,"field-label"],["id","whitelist","formControlName","whitelist","rows","3","matInput","","placeholder","02abc..., 03def..."],[1,"main-theme","settings-option"],["color","primary",1,"float-right",3,"action","disabled"],["for","remoteKey",1,"field-label"],["id","netifc","type","text","formControlName","netifc","matInput",""],["color","primary",3,"change","checked","ngClass"],[1,"help-icon",3,"inline","matTooltip"]],template:function(i,o){1&i&&(f(0,"app-dialog",2),b(1,"translate"),f(2,"form",3)(3,"mat-form-field",4)(4,"div",5)(5,"label",6),m(6),b(7,"translate"),h(),B(8,"textarea",7,0),h(),f(10,"mat-hint"),m(11),b(12,"translate"),h(),f(13,"mat-error")(14,"span"),m(15),b(16,"translate"),h()()(),S(17,G1e,6,6,"mat-form-field",4),S(18,q1e,7,11,"div",8),h(),f(19,"app-button",9,1),L("action",function(){return o.saveChanges()}),m(21),b(22,"translate"),h()()),2&i&&(v("headline",y(1,12,"apps.vpn-socks-server-settings."+(o.configuringVpn?"vpn-title":"socks-title")))("dialog",o.dialogRef)("disableDismiss",o.disableDismiss),d(2),v("formGroup",o.form),d(),v("ngClass",oe(22,Ek,o.disableDismiss)),d(3),O(y(7,14,"apps.vpn-socks-server-settings.whitelist")),d(5),O(y(12,16,"apps.vpn-socks-server-settings.whitelist-help")),d(4),O(y(16,18,"apps.vpn-socks-server-settings.whitelist-invalid-pk")),d(2),k(o.configuringVpn?17:-1),d(),k(o.configuringVpn?18:-1),d(),v("disabled",!o.form.valid),d(2),I(" ",y(22,20,"apps.vpn-socks-server-settings.save")," "))},dependencies:[qt,Cn,rn,sn,yn,Xt,fn,wn,lk,Es,ei,lt,pn,kr,On,Kt,Se],styles:["mat-checkbox[_ngcontent-%COMP%]{margin-bottom:15px}"]})}}return t})();const Y1e=["firstInput"];let X1e=(()=>{class t{static openDialog(e,i){const o=new Lt;return o.data=i||"",o.autoFocus=!1,o.width=ze.smallModalWidth,e.open(t,o)}constructor(e,i,o){this.dialogRef=e,this.data=i,this.formBuilder=o}ngOnInit(){this.form=this.formBuilder.group({note:[this.data]}),setTimeout(()=>this.firstInput.nativeElement.focus())}finish(){const e=this.form.get("note").value.trim();this.dialogRef.close("-"+e)}static{this.\u0275fac=function(i){return new(i||t)(P(It),P(hn),P(pi))}}static{this.\u0275cmp=se({type:t,selectors:[["app-edit-skysocks-client-note"]],viewQuery:function(i,o){if(1&i&&rt(Y1e,5),2&i){let r;ue(r=he())&&(o.firstInput=r.first)}},standalone:!1,decls:13,vars:11,consts:[["firstInput",""],[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","note","maxlength","100","matInput",""],["color","primary","type","mat-raised-button",1,"float-right",3,"action"]],template:function(i,o){1&i&&(f(0,"app-dialog",1),b(1,"translate"),f(2,"form",2)(3,"mat-form-field")(4,"div",3)(5,"label",4),m(6),b(7,"translate"),h(),B(8,"input",5,0),h()()(),f(10,"app-button",6),L("action",function(){return o.finish()}),m(11),b(12,"translate"),h()()),2&i&&(v("headline",y(1,5,"apps.vpn-socks-client-settings.change-note-dialog.title"))("dialog",o.dialogRef),d(2),v("formGroup",o.form),d(4),O(y(7,7,"apps.vpn-socks-client-settings.change-note-dialog.note")),d(5),O(y(12,9,"common.save")))},dependencies:[Cn,rn,sn,yn,ji,Xt,fn,wn,ei,On,Kt,Se],encapsulation:2})}}return t})();function Z1e(t,n){if(1&t&&m(0),2&t){const e=C().$implicit;I(" ",C(2).completeCountriesList[e.toUpperCase()]," ")}}function Q1e(t,n){1&t&&m(0),2&t&&I(" ",C().$implicit.toUpperCase()," ")}function J1e(t,n){if(1&t&&(f(0,"mat-option",9)(1,"div",10),B(2,"div"),h(),S(3,Z1e,1,1),S(4,Q1e,1,1),h()),2&t){const e=n.$implicit,i=C(2);v("value",e.toUpperCase()),d(2),Ji("background-image: url('assets/img/flags/"+e.toLocaleLowerCase()+".png');"),d(),k(i.completeCountriesList[e.toUpperCase()]?3:-1),d(),k(i.completeCountriesList[e.toUpperCase()]?-1:4)}}function e0e(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"apps.vpn-socks-client-settings.filter-dialog.any-country")," ")}function t0e(t,n){if(1&t&&m(0),2&t){const e=C(3);I(" ",e.completeCountriesList[e.form.get("country").value]," ")}}function n0e(t,n){1&t&&m(0),2&t&&I(" ",C(3).form.get("country").value," ")}function i0e(t,n){if(1&t&&(f(0,"div",10),B(1,"div"),h(),S(2,t0e,1,1),S(3,n0e,1,1)),2&t){const e=C(2);d(),Ji("background-image: url('assets/img/flags/"+e.form.get("country").value.toLocaleLowerCase()+".png');"),d(),k(e.completeCountriesList[e.form.get("country").value]?2:-1),d(),k(e.completeCountriesList[e.form.get("country").value]?-1:3)}}function o0e(t,n){if(1&t&&(f(0,"mat-form-field")(1,"div",3)(2,"label",4),m(3),b(4,"translate"),h(),f(5,"mat-select",8)(6,"mat-option",9),m(7),b(8,"translate"),h(),we(9,J1e,5,5,"mat-option",9,Re),f(11,"mat-select-trigger"),S(12,e0e,2,3),S(13,i0e,4,4),h()()()()),2&t){const e=C();d(3),O(y(4,5,"apps.vpn-socks-client-settings.filter-dialog.country")),d(3),v("value","-"),d(),O(y(8,7,"apps.vpn-socks-client-settings.filter-dialog.any-country")),d(2),xe(e.data.availableCountries),d(3),k("-"===e.form.get("country").value?12:-1),d(),k("-"!==e.form.get("country").value?13:-1)}}class C5{constructor(){this.country="",this.location="",this.key=""}}let r0e=(()=>{class t{static openDialog(e,i){const o=new Lt;return o.data=i,o.autoFocus=!1,o.width=ze.smallModalWidth,e.open(t,o)}constructor(e,i,o){this.data=e,this.dialogRef=i,this.formBuilder=o,this.completeCountriesList=Zr}ngOnInit(){this.form=this.formBuilder.group({country:[this.data.currentFilters.country?this.data.currentFilters.country:"-"],"location-text":[this.data.currentFilters.location],"key-text":[this.data.currentFilters.key]})}apply(){const e=new C5;let i=this.form.get("country").value.trim();"-"===i&&(i=""),e.country=i,e.location=this.form.get("location-text").value.trim(),e.key=this.form.get("key-text").value.trim(),this.dialogRef.close(e)}static{this.\u0275fac=function(i){return new(i||t)(P(hn),P(It),P(pi))}}static{this.\u0275cmp=se({type:t,selectors:[["app-skysocks-client-filter"]],standalone:!1,decls:20,vars:15,consts:[["button",""],[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","location-text","maxlength","100","matInput",""],["formControlName","key-text","maxlength","66","matInput",""],["type","mat-raised-button","color","primary",1,"float-right",3,"action"],["formControlName","country","id","country"],[3,"value"],[1,"flag-container"]],template:function(i,o){1&i&&(f(0,"app-dialog",1),b(1,"translate"),f(2,"form",2),S(3,o0e,14,9,"mat-form-field"),f(4,"mat-form-field")(5,"div",3)(6,"label",4),m(7),b(8,"translate"),h(),B(9,"input",5),h()(),f(10,"mat-form-field")(11,"div",3)(12,"label",4),m(13),b(14,"translate"),h(),B(15,"input",6),h()()(),f(16,"app-button",7,0),L("action",function(){return o.apply()}),m(18),b(19,"translate"),h()()),2&i&&(v("headline",y(1,7,"apps.vpn-socks-client-settings.filter-dialog.title"))("dialog",o.dialogRef),d(2),v("formGroup",o.form),d(),k(o.data.availableCountries.length>0?3:-1),d(4),O(y(8,9,"apps.vpn-socks-client-settings.filter-dialog.location")),d(6),O(y(14,11,"apps.vpn-socks-client-settings.filter-dialog.pub-key")),d(5),I(" ",y(19,13,"apps.vpn-socks-client-settings.filter-dialog.apply")," "))},dependencies:[Cn,rn,sn,yn,ji,Xt,fn,wn,ei,oc,qme,Is,On,Kt,Se],encapsulation:2})}}return t})();const s0e=["firstInput"];let a0e=(()=>{class t{static openDialog(e){const i=new Lt;return i.autoFocus=!1,i.width=ze.smallModalWidth,e.open(t,i)}constructor(e,i){this.dialogRef=e,this.formBuilder=i}ngOnInit(){this.form=this.formBuilder.group({password:[""]}),setTimeout(()=>this.firstInput.nativeElement.focus())}finish(){const e=this.form.get("password").value;this.dialogRef.close("-"+e)}static{this.\u0275fac=function(i){return new(i||t)(P(It),P(pi))}}static{this.\u0275cmp=se({type:t,selectors:[["app-skysocks-client-password"]],viewQuery:function(i,o){if(1&i&&rt(s0e,5),2&i){let r;ue(r=he())&&(o.firstInput=r.first)}},standalone:!1,decls:16,vars:14,consts:[["firstInput",""],[3,"headline","dialog"],[3,"formGroup"],[1,"info"],[1,"field-container"],["for","remoteKey",1,"field-label"],["type","password","id","password","formControlName","password","maxlength","100","matInput",""],["color","primary","type","mat-raised-button",1,"float-right",3,"action"]],template:function(i,o){1&i&&(f(0,"app-dialog",1),b(1,"translate"),f(2,"form",2)(3,"div",3),m(4),b(5,"translate"),h(),f(6,"mat-form-field")(7,"div",4)(8,"label",5),m(9),b(10,"translate"),h(),B(11,"input",6,0),h()()(),f(13,"app-button",7),L("action",function(){return o.finish()}),m(14),b(15,"translate"),h()()),2&i&&(v("headline",y(1,6,"apps.vpn-socks-client-settings.password-dialog.title"))("dialog",o.dialogRef),d(2),v("formGroup",o.form),d(2),O(y(5,8,"apps.vpn-socks-client-settings.password-dialog.info")),d(5),O(y(10,10,"apps.vpn-socks-client-settings.password-dialog.password")),d(5),I(" ",y(15,12,"apps.vpn-socks-client-settings.password-dialog.continue-button")," "))},dependencies:[Cn,rn,sn,yn,ji,Xt,fn,wn,ei,On,Kt,Se],styles:[".info[_ngcontent-%COMP%]{font-size:.7rem;margin-bottom:15px}"]})}}return t})(),l0e=(()=>{class t{constructor(e){this.http=e,this.discoveryServiceUrl="https://sd.skycoin.com/api/services?type="}getServices(e){const i=[];return this.http.get(this.discoveryServiceUrl+(e?"proxy":"vpn")).pipe(qf(o=>o.pipe(ii(4e3))),ye(o=>(o||(o=[]),o.forEach(r=>{const s=new ime,a=r.address.split(":");2===a.length&&(s.address=r.address,s.pk=a[0],s.port=a[1],s.location="",r.geo&&(r.geo.country&&(s.country=r.geo.country,s.location+=Zr[r.geo.country.toUpperCase()]?Zr[r.geo.country.toUpperCase()]:r.geo.country),r.geo.region&&r.geo.country&&(s.location+=", "),r.geo.region&&(s.region=r.geo.region,s.location+=s.region)),i.push(s))}),i)))}static{this.\u0275fac=function(i){return new(i||t)(le(ga))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const Ik=["*"];function c0e(t,n){1&t&&At(0)}const d0e=["tabListContainer"],u0e=["tabList"],h0e=["tabListInner"],f0e=["nextPaginator"],p0e=["previousPaginator"],m0e=["content"];function g0e(t,n){}const _0e=["tabBodyWrapper"],b0e=["tabHeader"];function v0e(t,n){}function y0e(t,n){1&t&&tt(0,v0e,0,0,"ng-template",12),2&t&&v("cdkPortalOutlet",C().$implicit.templateLabel)}function C0e(t,n){1&t&&m(0),2&t&&O(C().$implicit.textLabel)}function w0e(t,n){if(1&t){const e=ce();f(0,"div",7,2),L("click",function(){const o=z(e),r=o.$implicit,s=o.$index,a=C(),l=Vn(1);return $(a._handleClick(r,l,s))})("cdkFocusChange",function(o){const r=z(e).$index;return $(C()._tabFocusChanged(o,r))}),B(2,"span",8)(3,"div",9),f(4,"span",10)(5,"span",11),S(6,y0e,1,1,null,12)(7,C0e,1,1),h()()()}if(2&t){const e=n.$implicit,i=n.$index,o=Vn(1),r=C();at(e.labelClass),Ke("mdc-tab--active",r.selectedIndex===i),v("id",r._getTabLabelId(e,i))("disabled",e.disabled)("fitInkBarToContent",r.fitInkBarToContent),Ze("tabIndex",r._getTabIndex(i))("aria-posinset",i+1)("aria-setsize",r._tabs.length)("aria-controls",r._getTabContentId(i))("aria-selected",r.selectedIndex===i)("aria-label",e.ariaLabel||null)("aria-labelledby",!e.ariaLabel&&e.ariaLabelledby?e.ariaLabelledby:null),d(3),v("matRippleTrigger",o)("matRippleDisabled",e.disabled||r.disableRipple),d(3),k(e.templateLabel?6:7)}}function x0e(t,n){1&t&&At(0)}function S0e(t,n){if(1&t){const e=ce();f(0,"mat-tab-body",13),L("_onCentered",function(){return z(e),$(C()._removeTabBodyWrapperHeight())})("_onCentering",function(o){return z(e),$(C()._setTabBodyWrapperHeight(o))})("_beforeCentering",function(o){return z(e),$(C()._bodyCentered(o))}),h()}if(2&t){const e=n.$implicit,i=n.$index,o=C();at(e.bodyClass),v("id",o._getTabContentId(i))("content",e.content)("position",e.position)("animationDuration",o.animationDuration)("preserveContent",o.preserveContent),Ze("tabindex",null!=o.contentTabIndex&&o.selectedIndex===i?o.contentTabIndex:null)("aria-labelledby",o._getTabLabelId(e,i))("aria-hidden",o.selectedIndex!==i)}}const k0e=new Z("MatTabContent");let D0e=(()=>{class t{template=D(Ci);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","matTabContent",""]],features:[ht([{provide:k0e,useExisting:t}])]})}return t})();const T0e=new Z("MatTabLabel"),w5=new Z("MAT_TAB");let M0e=(()=>{class t extends Vce{_closestTab=D(w5,{optional:!0});static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275dir=de({type:t,selectors:[["","mat-tab-label",""],["","matTabLabel",""]],features:[ht([{provide:T0e,useExisting:t}]),be]})}return t})();const x5=new Z("MAT_TAB_GROUP");let S5=(()=>{class t{_viewContainerRef=D(wi);_closestTabGroup=D(x5,{optional:!0});disabled=!1;get templateLabel(){return this._templateLabel}set templateLabel(e){this._setTemplateLabelInput(e)}_templateLabel;_explicitContent=void 0;_implicitContent;textLabel="";ariaLabel;ariaLabelledby;labelClass;bodyClass;id=null;_contentPortal=null;get content(){return this._contentPortal}_stateChanges=new pe;position=null;origin=null;isActive=!1;constructor(){D(pr).load(Af)}ngOnChanges(e){(e.hasOwnProperty("textLabel")||e.hasOwnProperty("disabled"))&&this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}ngOnInit(){this._contentPortal=new $l(this._explicitContent||this._implicitContent,this._viewContainerRef)}_setTemplateLabelInput(e){e&&e._closestTab===this&&(this._templateLabel=e)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["mat-tab"]],contentQueries:function(i,o,r){if(1&i&&_s(r,M0e,5)(r,D0e,7,Ci),2&i){let s;ue(s=he())&&(o.templateLabel=s.first),ue(s=he())&&(o._explicitContent=s.first)}},viewQuery:function(i,o){if(1&i&&rt(Ci,7),2&i){let r;ue(r=he())&&(o._implicitContent=r.first)}},hostAttrs:["hidden",""],hostVars:1,hostBindings:function(i,o){2&i&&Ze("id",null)},inputs:{disabled:[2,"disabled","disabled",Ie],textLabel:[0,"label","textLabel"],ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],labelClass:"labelClass",bodyClass:"bodyClass",id:"id"},exportAs:["matTab"],features:[ht([{provide:w5,useExisting:t}]),yi],ngContentSelectors:Ik,decls:1,vars:0,template:function(i,o){1&i&&(Si(),bg(0,c0e,1,0,"ng-template"))},encapsulation:2})}return t})();const Pk="mdc-tab-indicator--active",k5="mdc-tab-indicator--no-transition";class E0e{_items;_currentItem;constructor(n){this._items=n}hide(){this._items.forEach(n=>n.deactivateInkBar()),this._currentItem=void 0}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}}}let I0e=(()=>{class t{_elementRef=D(Ae);_inkBarElement=null;_inkBarContentElement=null;_fitToContent=!1;get fitInkBarToContent(){return this._fitToContent}set fitInkBarToContent(e){this._fitToContent!==e&&(this._fitToContent=e,this._inkBarElement&&this._appendInkBarElement())}activateInkBar(e){const i=this._elementRef.nativeElement;if(!e||!i.getBoundingClientRect||!this._inkBarContentElement)return void i.classList.add(Pk);const o=i.getBoundingClientRect(),r=e.width/o.width,s=e.left-o.left;i.classList.add(k5),this._inkBarContentElement.style.setProperty("transform",`translateX(${s}px) scaleX(${r})`),i.getBoundingClientRect(),i.classList.remove(k5),i.classList.add(Pk),this._inkBarContentElement.style.setProperty("transform","")}deactivateInkBar(){this._elementRef.nativeElement.classList.remove(Pk)}ngOnInit(){this._createInkBarElement()}ngOnDestroy(){this._inkBarElement?.remove(),this._inkBarElement=this._inkBarContentElement=null}_createInkBarElement(){const e=this._elementRef.nativeElement.ownerDocument||document,i=this._inkBarElement=e.createElement("span"),o=this._inkBarContentElement=e.createElement("span");i.className="mdc-tab-indicator",o.className="mdc-tab-indicator__content mdc-tab-indicator__content--underline",i.appendChild(this._inkBarContentElement),this._appendInkBarElement()}_appendInkBarElement(){(this._fitToContent?this._elementRef.nativeElement.querySelector(".mdc-tab__content"):this._elementRef.nativeElement).appendChild(this._inkBarElement)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,inputs:{fitInkBarToContent:[2,"fitInkBarToContent","fitInkBarToContent",Ie]}})}return t})(),D5=(()=>{class t extends I0e{elementRef=D(Ae);disabled=!1;focus(){this.elementRef.nativeElement.focus()}getOffsetLeft(){return this.elementRef.nativeElement.offsetLeft}getOffsetWidth(){return this.elementRef.nativeElement.offsetWidth}static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275dir=de({type:t,selectors:[["","matTabLabelWrapper",""]],hostVars:3,hostBindings:function(i,o){2&i&&(Ze("aria-disabled",!!o.disabled),Ke("mat-mdc-tab-disabled",o.disabled))},inputs:{disabled:[2,"disabled","disabled",Ie]},features:[be]})}return t})();const T5={passive:!0};let A0e=(()=>{class t{_elementRef=D(Ae);_changeDetectorRef=D(Pn);_viewportRuler=D(jd);_dir=D(hr,{optional:!0});_ngZone=D(ge);_platform=D($n);_sharedResizeObserver=D(yV);_injector=D(Be);_renderer=D(Kn);_animationsDisabled=fi();_eventCleanups;_scrollDistance=0;_selectedIndexChanged=!1;_destroyed=new pe;_showPaginationControls=!1;_disableScrollAfter=!0;_disableScrollBefore=!0;_tabLabelCount;_scrollDistanceChanged=!1;_keyManager;_currentTextContent;_stopScrolling=new pe;disablePagination=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(e){const i=isNaN(e)?0:e;this._selectedIndex!=i&&(this._selectedIndexChanged=!0,this._selectedIndex=i,this._keyManager&&this._keyManager.updateActiveItem(i))}_selectedIndex=0;selectFocusedIndex=new ve;indexFocused=new ve;constructor(){this._eventCleanups=this._ngZone.runOutsideAngular(()=>[this._renderer.listen(this._elementRef.nativeElement,"mouseleave",()=>this._stopInterval())])}ngAfterViewInit(){this._eventCleanups.push(this._renderer.listen(this._previousPaginator.nativeElement,"touchstart",()=>this._handlePaginatorPress("before"),T5),this._renderer.listen(this._nextPaginator.nativeElement,"touchstart",()=>this._handlePaginatorPress("after"),T5))}ngAfterContentInit(){const e=this._dir?this._dir.change:ae("ltr"),i=this._sharedResizeObserver.observe(this._elementRef.nativeElement).pipe(_b(32),on(this._destroyed)),o=this._viewportRuler.change(150).pipe(on(this._destroyed)),r=()=>{this.updatePagination(),this._alignInkBarToSelectedTab()};this._keyManager=new n5(this._items).withHorizontalOrientation(this._getLayoutDirection()).withHomeAndEnd().withWrap().skipPredicate(()=>!1),this._keyManager.updateActiveItem(Math.max(this._selectedIndex,0)),Fi(r,{injector:this._injector}),gr(e,o,i,this._items.changes,this._itemsResized()).pipe(on(this._destroyed)).subscribe(()=>{this._ngZone.run(()=>{Promise.resolve().then(()=>{this._scrollDistance=Math.max(0,Math.min(this._getMaxScrollDistance(),this._scrollDistance)),r()})}),this._keyManager?.withHorizontalOrientation(this._getLayoutDirection())}),this._keyManager.change.subscribe(s=>{this.indexFocused.emit(s),this._setTabFocus(s)})}_itemsResized(){return"function"!=typeof ResizeObserver?Mi:this._items.changes.pipe(to(this._items),Zn(e=>new Rt(i=>this._ngZone.runOutsideAngular(()=>{const o=new ResizeObserver(r=>i.next(r));return e.forEach(r=>o.observe(r.elementRef.nativeElement)),()=>{o.disconnect()}}))),hS(1),vn(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._eventCleanups.forEach(e=>e()),this._keyManager?.destroy(),this._destroyed.next(),this._destroyed.complete(),this._stopScrolling.complete()}_handleKeydown(e){if(!mr(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:s}=i.elementRef.nativeElement;let a,l;"ltr"==this._getLayoutDirection()?(a=r,l=a+s):(l=this._tabListInner.nativeElement.offsetWidth-r,a=l-s);const c=this.scrollDistance,u=this.scrollDistance+o;au&&(this.scrollDistance+=Math.min(l-u,a-c))}_checkPaginationEnabled(){if(this.disablePagination)this._showPaginationControls=!1;else{const o=this._tabListInner.nativeElement.scrollWidth-this._elementRef.nativeElement.offsetWidth>=5;o||(this.scrollDistance=0),o!==this._showPaginationControls&&(this._showPaginationControls=o,this._changeDetectorRef.markForCheck())}}_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(),Ul(650,100).pipe(on(gr(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 \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,inputs:{disablePagination:[2,"disablePagination","disablePagination",Ie],selectedIndex:[2,"selectedIndex","selectedIndex",Br]},outputs:{selectFocusedIndex:"selectFocusedIndex",indexFocused:"indexFocused"}})}return t})(),R0e=(()=>{class t extends A0e{_items;_tabListContainer;_tabList;_tabListInner;_nextPaginator;_previousPaginator;_inkBar;ariaLabel;ariaLabelledby;disableRipple=!1;ngAfterContentInit(){this._inkBar=new E0e(this._items),super.ngAfterContentInit()}_itemSelected(e){e.preventDefault()}static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275cmp=se({type:t,selectors:[["mat-tab-header"]],contentQueries:function(i,o,r){if(1&i&&_s(r,D5,4),2&i){let s;ue(s=he())&&(o._items=s)}},viewQuery:function(i,o){if(1&i&&rt(d0e,7)(u0e,7)(h0e,7)(f0e,5)(p0e,5),2&i){let r;ue(r=he())&&(o._tabListContainer=r.first),ue(r=he())&&(o._tabList=r.first),ue(r=he())&&(o._tabListInner=r.first),ue(r=he())&&(o._nextPaginator=r.first),ue(r=he())&&(o._previousPaginator=r.first)}},hostAttrs:[1,"mat-mdc-tab-header"],hostVars:4,hostBindings:function(i,o){2&i&&Ke("mat-mdc-tab-header-pagination-controls-enabled",o._showPaginationControls)("mat-mdc-tab-header-rtl","rtl"==o._getLayoutDirection())},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],disableRipple:[2,"disableRipple","disableRipple",Ie]},features:[be],ngContentSelectors:Ik,decls:13,vars:10,consts:[["previousPaginator",""],["tabListContainer",""],["tabList",""],["tabListInner",""],["nextPaginator",""],["mat-ripple","",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-before",3,"click","mousedown","touchend","matRippleDisabled"],[1,"mat-mdc-tab-header-pagination-chevron"],[1,"mat-mdc-tab-label-container",3,"keydown"],["role","tablist",1,"mat-mdc-tab-list",3,"cdkObserveContent"],[1,"mat-mdc-tab-labels"],["mat-ripple","",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-after",3,"mousedown","click","touchend","matRippleDisabled"]],template:function(i,o){1&i&&(Si(),f(0,"div",5,0),L("click",function(){return o._handlePaginatorClick("before")})("mousedown",function(s){return o._handlePaginatorPress("before",s)})("touchend",function(){return o._stopInterval()}),B(2,"div",6),h(),f(3,"div",7,1),L("keydown",function(s){return o._handleKeydown(s)}),f(5,"div",8,2),L("cdkObserveContent",function(){return o._onContentChanges()}),f(7,"div",9,3),At(9),h()()(),f(10,"div",10,4),L("mousedown",function(s){return o._handlePaginatorPress("after",s)})("click",function(){return o._handlePaginatorClick("after")})("touchend",function(){return o._stopInterval()}),B(12,"div",6),h()),2&i&&(Ke("mat-mdc-tab-header-pagination-disabled",o._disableScrollBefore),v("matRippleDisabled",o._disableScrollBefore||o.disableRipple),d(3),Ke("_mat-animation-noopable",o._animationsDisabled),d(2),Ze("aria-label",o.ariaLabel||null)("aria-labelledby",o.ariaLabelledby||null),d(5),Ke("mat-mdc-tab-header-pagination-disabled",o._disableScrollAfter),v("matRippleDisabled",o._disableScrollAfter||o.disableRipple))},dependencies:[Of,Sde],styles:[".mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.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;outline: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-inactive-ripple-color, var(--mat-sys-on-surface))}.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-pagination-icon-color, var(--mat-sys-on-surface))}.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-mdc-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1;border-bottom-style:solid;border-bottom-width:var(--mat-tab-divider-height, 1px);border-bottom-color:var(--mat-tab-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-group-inverted-header .mat-mdc-tab-label-container{border-bottom:none;border-top-style:solid;border-top-width:var(--mat-tab-divider-height, 1px);border-top-color:var(--mat-tab-divider-color, var(--mat-sys-surface-variant))}.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}.cdk-drop-list .mat-mdc-tab-labels,.mat-mdc-tab-labels.cdk-drop-list{min-height:var(--mat-tab-container-height, 48px)}.mat-mdc-tab::before{margin:5px}@media(forced-colors: active){.mat-mdc-tab[aria-disabled=true]{color:GrayText}}\n"],encapsulation:2})}return t})();const N0e=new Z("MAT_TABS_CONFIG");let M5=(()=>{class t extends Wl{_host=D(Ok);_ngZone=D(ge);_centeringSub=mt.EMPTY;_leavingSub=mt.EMPTY;constructor(){super()}ngOnInit(){super.ngOnInit(),this._centeringSub=this._host._beforeCentering.pipe(to(this._host._isCenterPosition())).subscribe(e=>{this._host._content&&e&&!this.hasAttached()&&this._ngZone.run(()=>{Promise.resolve().then(),this.attach(this._host._content)})}),this._leavingSub=this._host._afterLeavingCenter.subscribe(()=>{this._host.preserveContent||this._ngZone.run(()=>this.detach())})}ngOnDestroy(){super.ngOnDestroy(),this._centeringSub.unsubscribe(),this._leavingSub.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","matTabBodyHost",""]],features:[be]})}return t})(),Ok=(()=>{class t{_elementRef=D(Ae);_dir=D(hr,{optional:!0});_ngZone=D(ge);_injector=D(Be);_renderer=D(Kn);_diAnimationsDisabled=fi();_eventCleanups;_initialized=!1;_fallbackTimer;_positionIndex;_dirChangeSubscription=mt.EMPTY;_position;_previousPosition;_onCentering=new ve;_beforeCentering=new ve;_afterLeavingCenter=new ve;_onCentered=new ve(!0);_portalHost;_contentElement;_content;animationDuration="500ms";preserveContent=!1;set position(e){this._positionIndex=e,this._computePositionAnimationState()}constructor(){if(this._dir){const e=D(Pn);this._dirChangeSubscription=this._dir.change.subscribe(i=>{this._computePositionAnimationState(i),e.markForCheck()})}}ngOnInit(){this._bindTransitionEvents(),"center"===this._position&&(this._setActiveClass(!0),Fi(()=>this._onCentering.emit(this._elementRef.nativeElement.clientHeight),{injector:this._injector})),this._initialized=!0}ngOnDestroy(){clearTimeout(this._fallbackTimer),this._eventCleanups?.forEach(e=>e()),this._dirChangeSubscription.unsubscribe()}_bindTransitionEvents(){this._ngZone.runOutsideAngular(()=>{const e=this._elementRef.nativeElement,i=o=>{o.target===this._contentElement?.nativeElement&&(this._elementRef.nativeElement.classList.remove("mat-tab-body-animating"),"transitionend"===o.type&&this._transitionDone())};this._eventCleanups=[this._renderer.listen(e,"transitionstart",o=>{o.target===this._contentElement?.nativeElement&&(this._elementRef.nativeElement.classList.add("mat-tab-body-animating"),this._transitionStarted())}),this._renderer.listen(e,"transitionend",i),this._renderer.listen(e,"transitioncancel",i)]})}_transitionStarted(){clearTimeout(this._fallbackTimer);const e="center"===this._position;this._beforeCentering.emit(e),e&&this._onCentering.emit(this._elementRef.nativeElement.clientHeight)}_transitionDone(){"center"===this._position?this._onCentered.emit():"center"===this._previousPosition&&this._afterLeavingCenter.emit()}_setActiveClass(e){this._elementRef.nativeElement.classList.toggle("mat-mdc-tab-body-active",e)}_getLayoutDirection(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}_isCenterPosition(){return 0===this._positionIndex}_computePositionAnimationState(e=this._getLayoutDirection()){this._previousPosition=this._position,this._position=this._positionIndex<0?"ltr"==e?"left":"right":this._positionIndex>0?"ltr"==e?"right":"left":"center",this._animationsDisabled()?this._simulateTransitionEvents():this._initialized&&("center"===this._position||"center"===this._previousPosition)&&(clearTimeout(this._fallbackTimer),this._fallbackTimer=this._ngZone.runOutsideAngular(()=>setTimeout(()=>this._simulateTransitionEvents(),100)))}_simulateTransitionEvents(){this._transitionStarted(),Fi(()=>this._transitionDone(),{injector:this._injector})}_animationsDisabled(){return this._diAnimationsDisabled||"0ms"===this.animationDuration||"0s"===this.animationDuration}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["mat-tab-body"]],viewQuery:function(i,o){if(1&i&&rt(M5,5)(m0e,5),2&i){let r;ue(r=he())&&(o._portalHost=r.first),ue(r=he())&&(o._contentElement=r.first)}},hostAttrs:[1,"mat-mdc-tab-body"],hostVars:1,hostBindings:function(i,o){2&i&&Ze("inert","center"===o._position?null:"")},inputs:{_content:[0,"content","_content"],animationDuration:"animationDuration",preserveContent:"preserveContent",position:"position"},outputs:{_onCentering:"_onCentering",_beforeCentering:"_beforeCentering",_onCentered:"_onCentered"},decls:3,vars:6,consts:[["content",""],["cdkScrollable","",1,"mat-mdc-tab-body-content"],["matTabBodyHost",""]],template:function(i,o){1&i&&(f(0,"div",1,0),tt(2,g0e,0,0,"ng-template",2),h()),2&i&&Ke("mat-tab-body-content-left","left"===o._position)("mat-tab-body-content-right","right"===o._position)("mat-tab-body-content-can-animate","center"===o._position||"center"===o._previousPosition)},dependencies:[M5,H3],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;transform:none;visibility:hidden}.mat-tab-body-animating>.mat-mdc-tab-body-content,.mat-mdc-tab-body-active>.mat-mdc-tab-body-content{visibility:visible}.mat-tab-body-animating>.mat-mdc-tab-body-content{min-height:1px}.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{overflow:hidden}.mat-tab-body-content-can-animate{transition:transform var(--mat-tab-animation-duration) 1ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable .mat-tab-body-content-can-animate{transition:none}.mat-tab-body-content-left{transform:translate3d(-100%, 0, 0)}.mat-tab-body-content-right{transform:translate3d(100%, 0, 0)}\n"],encapsulation:2})}return t})(),F0e=(()=>{class t{_elementRef=D(Ae);_changeDetectorRef=D(Pn);_ngZone=D(ge);_tabsSubscription=mt.EMPTY;_tabLabelSubscription=mt.EMPTY;_tabBodySubscription=mt.EMPTY;_diAnimationsDisabled=fi();_allTabs;_tabBodies;_tabBodyWrapper;_tabHeader;_tabs=new Zc;_indexToSelect=0;_lastFocusedTabIndex=null;_tabBodyWrapperHeight=0;color;get fitInkBarToContent(){return this._fitInkBarToContent}set fitInkBarToContent(e){this._fitInkBarToContent=e,this._changeDetectorRef.markForCheck()}_fitInkBarToContent=!1;stretchTabs=!0;alignTabs=null;dynamicHeight=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(e){this._indexToSelect=isNaN(e)?null:e}_selectedIndex=null;headerPosition="above";get animationDuration(){return this._animationDuration}set animationDuration(e){const i=e+"";this._animationDuration=/^\d+$/.test(i)?e+"ms":i}_animationDuration;get contentTabIndex(){return this._contentTabIndex}set contentTabIndex(e){this._contentTabIndex=isNaN(e)?null:e}_contentTabIndex=null;disablePagination=!1;disableRipple=!1;preserveContent=!1;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}_backgroundColor;ariaLabel;ariaLabelledby;selectedIndexChange=new ve;focusChange=new ve;animationDone=new ve;selectedTabChange=new ve(!0);_groupId;_isServer=!D($n).isBrowser;constructor(){const e=D(N0e,{optional:!0});this._groupId=D(oi).getId("mat-tab-group-"),this.animationDuration=e&&e.animationDuration?e.animationDuration:"500ms",this.disablePagination=!(!e||null==e.disablePagination)&&e.disablePagination,this.dynamicHeight=!(!e||null==e.dynamicHeight)&&e.dynamicHeight,null!=e?.contentTabIndex&&(this.contentTabIndex=e.contentTabIndex),this.preserveContent=!!e?.preserveContent,this.fitInkBarToContent=!(!e||null==e.fitInkBarToContent)&&e.fitInkBarToContent,this.stretchTabs=!e||null==e.stretchTabs||e.stretchTabs,this.alignTabs=e&&null!=e.alignTabs?e.alignTabs:null}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()})}ngAfterViewInit(){this._tabBodySubscription=this._tabBodies.changes.subscribe(()=>this._bodyCentered(!0))}_subscribeToAllTabChanges(){this._allTabs.changes.pipe(to(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(),this._tabBodySubscription.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 L0e;return i.index=e,this._tabs&&this._tabs.length&&(i.tab=this._tabs.toArray()[e]),i}_subscribeToTabLabels(){this._tabLabelSubscription&&this._tabLabelSubscription.unsubscribe(),this._tabLabelSubscription=gr(...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,i){return e.id||`${this._groupId}-label-${i}`}_getTabContentId(e){return`${this._groupId}-content-${e}`}_setTabBodyWrapperHeight(e){if(!this.dynamicHeight||!this._tabBodyWrapperHeight)return void(this._tabBodyWrapperHeight=e);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._ngZone.run(()=>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)}_bodyCentered(e){e&&this._tabBodies?.forEach((i,o)=>i._setActiveClass(o===this._selectedIndex))}_animationsDisabled(){return this._diAnimationsDisabled||"0"===this.animationDuration||"0ms"===this.animationDuration}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["mat-tab-group"]],contentQueries:function(i,o,r){if(1&i&&_s(r,S5,5),2&i){let s;ue(s=he())&&(o._allTabs=s)}},viewQuery:function(i,o){if(1&i&&rt(_0e,5)(b0e,5)(Ok,5),2&i){let r;ue(r=he())&&(o._tabBodyWrapper=r.first),ue(r=he())&&(o._tabHeader=r.first),ue(r=he())&&(o._tabBodies=r)}},hostAttrs:[1,"mat-mdc-tab-group"],hostVars:11,hostBindings:function(i,o){2&i&&(Ze("mat-align-tabs",o.alignTabs),at("mat-"+(o.color||"primary")),Cd("--mat-tab-animation-duration",o.animationDuration),Ke("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",fitInkBarToContent:[2,"fitInkBarToContent","fitInkBarToContent",Ie],stretchTabs:[2,"mat-stretch-tabs","stretchTabs",Ie],alignTabs:[0,"mat-align-tabs","alignTabs"],dynamicHeight:[2,"dynamicHeight","dynamicHeight",Ie],selectedIndex:[2,"selectedIndex","selectedIndex",Br],headerPosition:"headerPosition",animationDuration:"animationDuration",contentTabIndex:[2,"contentTabIndex","contentTabIndex",Br],disablePagination:[2,"disablePagination","disablePagination",Ie],disableRipple:[2,"disableRipple","disableRipple",Ie],preserveContent:[2,"preserveContent","preserveContent",Ie],backgroundColor:"backgroundColor",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"]},outputs:{selectedIndexChange:"selectedIndexChange",focusChange:"focusChange",animationDone:"animationDone",selectedTabChange:"selectedTabChange"},exportAs:["matTabGroup"],features:[ht([{provide:x5,useExisting:t}])],ngContentSelectors:Ik,decls:9,vars:8,consts:[["tabHeader",""],["tabBodyWrapper",""],["tabNode",""],[3,"indexFocused","selectFocusedIndex","selectedIndex","disableRipple","disablePagination","aria-label","aria-labelledby"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-focus-indicator",3,"id","mdc-tab--active","class","disabled","fitInkBarToContent"],[1,"mat-mdc-tab-body-wrapper"],["role","tabpanel",3,"id","class","content","position","animationDuration","preserveContent"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-focus-indicator",3,"click","cdkFocusChange","id","disabled","fitInkBarToContent"],[1,"mdc-tab__ripple"],["mat-ripple","",1,"mat-mdc-tab-ripple",3,"matRippleTrigger","matRippleDisabled"],[1,"mdc-tab__content"],[1,"mdc-tab__text-label"],[3,"cdkPortalOutlet"],["role","tabpanel",3,"_onCentered","_onCentering","_beforeCentering","id","content","position","animationDuration","preserveContent"]],template:function(i,o){1&i&&(Si(),f(0,"mat-tab-header",3,0),L("indexFocused",function(s){return o._focusChanged(s)})("selectFocusedIndex",function(s){return o.selectedIndex=s}),we(2,w0e,8,17,"div",4,Re),h(),S(4,x0e,1,0),f(5,"div",5,1),we(7,S0e,1,10,"mat-tab-body",6,Re),h()),2&i&&(v("selectedIndex",o.selectedIndex||0)("disableRipple",o.disableRipple)("disablePagination",o.disablePagination),f0("aria-label",o.ariaLabel)("aria-labelledby",o.ariaLabelledby),d(2),xe(o._tabs),d(2),k(o._isServer?4:-1),d(),Ke("_mat-animation-noopable",o._animationsDisabled()),d(2),xe(o._tabs))},dependencies:[R0e,D5,qde,Of,Wl,Ok],styles:['.mdc-tab{min-width:90px;padding:0 24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;z-index:1;touch-action:manipulation}.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--active .mdc-tab__text-label{transition-delay:100ms}._mat-animation-noopable .mdc-tab__text-label{transition:none}.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{transition:var(--mat-tab-animation-duration, 250ms) transform cubic-bezier(0.4, 0, 0.2, 1);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--active .mdc-tab-indicator__content{opacity:1}._mat-animation-noopable .mdc-tab-indicator__content,.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mat-mdc-tab-ripple.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;height:var(--mat-tab-container-height, 48px);font-family:var(--mat-tab-label-text-font, var(--mat-sys-title-small-font));font-size:var(--mat-tab-label-text-size, var(--mat-sys-title-small-size));letter-spacing:var(--mat-tab-label-text-tracking, var(--mat-sys-title-small-tracking));line-height:var(--mat-tab-label-text-line-height, var(--mat-sys-title-small-line-height));font-weight:var(--mat-tab-label-text-weight, var(--mat-sys-title-small-weight))}.mat-mdc-tab.mdc-tab{flex-grow:0}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-active-indicator-color, var(--mat-sys-primary));border-top-width:var(--mat-tab-active-indicator-height, 2px);border-radius:var(--mat-tab-active-indicator-shape, 0)}.mat-mdc-tab:hover .mdc-tab__text-label{color:var(--mat-tab-inactive-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab:focus .mdc-tab__text-label{color:var(--mat-tab-inactive-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__text-label{color:var(--mat-tab-active-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__ripple::before,.mat-mdc-tab.mdc-tab--active .mat-ripple-element{background-color:var(--mat-tab-active-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab__text-label{color:var(--mat-tab-active-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-active-hover-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab__text-label{color:var(--mat-tab-active-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-active-focus-indicator-color, var(--mat-sys-primary))}.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-disabled-ripple-color, var(--mat-sys-on-surface-variant))}.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-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-inactive-label-text-color, var(--mat-sys-on-surface));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-inactive-ripple-color, var(--mat-sys-on-surface))}.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-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-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-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-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-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-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-focus-indicator::before{border-color:var(--mat-tab-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-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-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}\n'],encapsulation:2})}return t})();class L0e{index;tab}let B0e=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({imports:[ri]})}return t})(),V0e=(()=>{class t{constructor(e){this.dialog=e,this.tabNames=[""],this.selectedTab=0,this.tabChanged=new ve}ngOnDestroy(){this.tabChanged.complete()}showTabSelector(){const e=[];this.tabNames.forEach((i,o)=>{e.push({icon:o===this.selectedTab?"check":"",label:i})}),oo.openDialog(this.dialog,e,"node.logs.filter-title").afterClosed().subscribe(i=>{this.tabChanged.emit(i-1)})}static{this.\u0275fac=function(i){return new(i||t)(P(kt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-tab-selector"]],inputs:{tabNames:"tabNames",selectedTab:"selectedTab"},outputs:{tabChanged:"tabChanged"},standalone:!1,decls:9,vars:4,consts:[[1,"top-dialog-button",3,"click"],[1,"top-dialog-button-content"],[1,"tab-name"],[1,"icon",3,"inline"],[1,"top-dialog-button-margin"]],template:function(i,o){1&i&&(f(0,"div",0),L("click",function(){return o.showTabSelector()}),f(1,"div",1)(2,"div",2)(3,"span"),m(4),b(5,"translate"),h()(),f(6,"mat-icon",3),m(7,"expand_more"),h()(),B(8,"div",4),h()),2&i&&(d(4),O(y(5,2,o.tabNames[o.selectedTab])),d(2),v("inline",!0))},dependencies:[lt,Se],styles:[".top-dialog-button[_ngcontent-%COMP%] .top-dialog-button-content[_ngcontent-%COMP%]{display:flex}.top-dialog-button[_ngcontent-%COMP%] .top-dialog-button-content[_ngcontent-%COMP%] .tab-name[_ngcontent-%COMP%]{flex-grow:1;margin-right:10px;align-self:center}.top-dialog-button[_ngcontent-%COMP%] .top-dialog-button-content[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{font-size:20px;flex-shrink:0;align-self:center}"]})}}return t})();const H0e=["button"],j0e=["settingsButton"],U0e=["firstInput"],z0e=["tabGroup"],cc=t=>({"element-disabled":t}),E5=t=>({highlighted:t}),$0e=(t,n)=>({currentElementsRange:t,totalElements:n}),W0e=t=>({number:t});function G0e(t,n){1&t&&(f(0,"span"),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"apps.vpn-socks-client-settings.remote-key-length-error")))}function q0e(t,n){1&t&&(f(0,"span"),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"apps.vpn-socks-client-settings.remote-key-chars-error")))}function K0e(t,n){if(1&t&&(f(0,"mat-form-field",10)(1,"div",11)(2,"label",12),m(3),b(4,"translate"),h(),B(5,"input",20),h()()),2&t){const e=C();v("ngClass",oe(4,cc,e.disableDismiss)),d(3),O(y(4,2,"apps.vpn-socks-client-settings.password"))}}function Y0e(t,n){1&t&&(f(0,"div",14)(1,"mat-icon",21),m(2,"warning"),h(),m(3),b(4,"translate"),h()),2&t&&(d(),v("inline",!0),d(2),I(" ",y(4,2,"apps.vpn-socks-client-settings.password-history-warning")," "))}function X0e(t,n){1&t&&B(0,"app-loading-indicator",16),2&t&&v("showWhite",!1)}function Z0e(t,n){1&t&&(f(0,"div",17)(1,"mat-icon",21),m(2,"error"),h(),m(3),b(4,"translate"),h()),2&t&&(d(),v("inline",!0),d(2),I(" ",y(4,2,"apps.vpn-socks-client-settings.no-elements")," "))}function Q0e(t,n){1&t&&(f(0,"div",25),m(1),b(2,"translate"),h()),2&t&&(d(),I(" ",y(2,1,"apps.vpn-socks-client-settings.no-filter")," "))}function J0e(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,C().$implicit[1])," ")}function ewe(t,n){1&t&&m(0),2&t&&I(" ",C().$implicit[2]," ")}function twe(t,n){if(1&t&&(f(0,"div",25)(1,"span"),m(2),b(3,"translate"),h(),S(4,J0e,2,3),S(5,ewe,1,1),h()),2&t){const e=n.$implicit;d(2),I("",y(3,3,e[0])," "),d(2),k(e[1]?4:-1),d(),k(e[2]?5:-1)}}function nwe(t,n){1&t&&(f(0,"div",17)(1,"mat-icon",21),m(2,"error"),h(),m(3),b(4,"translate"),h()),2&t&&(d(),v("inline",!0),d(2),I(" ",y(4,2,"apps.vpn-socks-client-settings.no-elements-for-filters")," "))}function iwe(t,n){if(1&t&&(f(0,"span",10),m(1),h()),2&t){const e=n.$implicit;v("ngClass",oe(2,E5,n.$index%2!=0)),d(),O(e)}}function owe(t,n){if(1&t&&(f(0,"div",31),B(1,"div"),h()),2&t){const e=C(2).$implicit;d(),Ji("background-image: url('assets/img/flags/"+e.country.toLocaleLowerCase()+".png');")}}function rwe(t,n){if(1&t&&(f(0,"span",10),m(1),h()),2&t){const e=n.$implicit;v("ngClass",oe(2,E5,n.$index%2!=0)),d(),O(e)}}function swe(t,n){if(1&t&&(f(0,"div",25)(1,"span"),m(2),b(3,"translate"),h(),f(4,"span"),m(5,"\xa0 "),S(6,owe,2,2,"div",31),we(7,rwe,2,4,"span",10,Re),h()()),2&t){const e=C().$implicit,i=C(2);d(2),O(y(3,2,"apps.vpn-socks-client-settings.location")),d(4),k(e.country?6:-1),d(),xe(i.getHighlightedTextParts(e.location,i.currentFilters.location))}}function awe(t,n){if(1&t){const e=ce();f(0,"div",19)(1,"button",27),L("click",function(){const o=z(e).$implicit;return $(C(2).saveChanges(o.pk,null,!1,o.location))}),f(2,"div",28)(3,"div",25)(4,"span"),m(5),b(6,"translate"),h(),f(7,"span"),m(8,"\xa0"),we(9,iwe,2,4,"span",10,Re),h()(),S(11,swe,9,4,"div",25),h()(),f(12,"button",29),b(13,"translate"),L("click",function(){const o=z(e).$implicit;return $(C(2).copyPk(o.pk))}),f(14,"mat-icon",30),m(15,"filter_none"),h()()()}if(2&t){const e=n.$implicit,i=C(2);d(),v("ngClass",oe(9,cc,i.disableDismiss)),d(4),O(y(6,5,"apps.vpn-socks-client-settings.key")),d(4),xe(i.getHighlightedTextParts(e.pk,i.currentFilters.key)),d(2),k(e.location?11:-1),d(),v("matTooltip",y(13,7,"apps.vpn-socks-client-settings.copy-pk-info")),d(2),v("inline",!0)}}function lwe(t,n){if(1&t){const e=ce();f(0,"button",22),L("click",function(){return z(e),$(C().changeFilters())}),f(1,"div",23)(2,"div",24)(3,"mat-icon",21),m(4,"filter_list"),h()(),f(5,"div"),S(6,Q0e,3,3,"div",25),we(7,twe,6,5,"div",25,Re),f(9,"div",26),m(10),b(11,"translate"),h()()()(),S(12,nwe,5,4,"div",17),we(13,awe,16,11,"div",19,Re)}if(2&t){const e=C();d(3),v("inline",!0),d(3),k(0===e.currentFiltersTexts.length?6:-1),d(),xe(e.currentFiltersTexts),d(3),O(y(11,4,"apps.vpn-socks-client-settings.click-to-change")),d(2),k(0===e.filteredProxiesFromDiscovery.length?12:-1),d(),xe(e.proxiesFromDiscoveryToShow)}}function cwe(t,n){if(1&t){const e=ce();f(0,"div",18)(1,"span"),m(2),b(3,"translate"),h(),f(4,"button",32),L("click",function(){return z(e),$(C().goToPreviousPage())}),f(5,"mat-icon"),m(6,"chevron_left"),h()(),f(7,"button",32),L("click",function(){return z(e),$(C().goToNextPage())}),f(8,"mat-icon"),m(9,"chevron_right"),h()()()}if(2&t){const e=C();d(2),O(Ee(3,1,"apps.vpn-socks-client-settings.pagination-info",ft(4,$0e,e.currentRange,e.filteredProxiesFromDiscovery.length)))}}function dwe(t,n){if(1&t&&(f(0,"div")(1,"div",17)(2,"mat-icon",21),m(3,"error"),h(),m(4),b(5,"translate"),h()()),2&t){const e=C();d(2),v("inline",!0),d(2),I(" ",Ee(5,2,"apps.vpn-socks-client-settings.no-history",oe(5,W0e,e.maxHistoryElements))," ")}}function uwe(t,n){1&t&&sr(0)}function hwe(t,n){1&t&&sr(0)}function fwe(t,n){if(1&t&&(f(0,"span"),m(1),h()),2&t){const e=C(2).$implicit;d(),I(" ",e.note)}}function pwe(t,n){1&t&&(f(0,"span"),m(1),b(2,"translate"),h()),2&t&&(d(),I(" ",y(2,1,"apps.vpn-socks-client-settings.note-entered-manually")))}function mwe(t,n){if(1&t&&(f(0,"span"),m(1),h()),2&t){const e=C(4).$implicit;d(),I(" (",e.location,")")}}function gwe(t,n){if(1&t&&(f(0,"span"),m(1),b(2,"translate"),h(),S(3,mwe,2,1,"span")),2&t){const e=C(3).$implicit;d(),I(" ",y(2,2,"apps.vpn-socks-client-settings.note-obtained")),d(2),k(e.location?3:-1)}}function _we(t,n){if(1&t&&(S(0,pwe,3,3,"span"),S(1,gwe,4,4)),2&t){const e=C(2).$implicit;k(e.enteredManually?0:-1),d(),k(e.enteredManually?-1:1)}}function bwe(t,n){if(1&t&&(f(0,"div",37)(1,"div",38)(2,"div",25)(3,"span"),m(4),b(5,"translate"),h(),f(6,"span"),m(7),h()(),f(8,"div",25)(9,"span"),m(10),b(11,"translate"),h(),S(12,fwe,2,1,"span"),S(13,_we,2,2),h()(),f(14,"div",39)(15,"div",40)(16,"mat-icon",21),m(17,"add"),h()()()()),2&t){const e=C().$implicit;d(4),O(y(5,6,"apps.vpn-socks-client-settings.key")),d(3),I(" ",e.key),d(3),O(y(11,8,"apps.vpn-socks-client-settings.note")),d(2),k(e.note?12:-1),d(),k(e.note?-1:13),d(3),v("inline",!0)}}function vwe(t,n){if(1&t){const e=ce();f(0,"div",19)(1,"button",33),L("click",function(){const o=z(e).$implicit;return $(C().useFromHistory(o))}),tt(2,uwe,1,0,"ng-container",34),h(),f(3,"button",35),b(4,"translate"),L("click",function(){const o=z(e).$implicit;return $(C().changeNote(o))}),f(5,"mat-icon",30),m(6,"edit"),h()(),f(7,"button",35),b(8,"translate"),L("click",function(){const o=z(e).$implicit;return $(C().removeFromHistory(o.key))}),f(9,"mat-icon",30),m(10,"close"),h()(),f(11,"button",36),L("click",function(){const o=z(e).$implicit;return $(C().openHistoryOptions(o))}),tt(12,hwe,1,0,"ng-container",34),h(),tt(13,bwe,18,10,"ng-template",null,0,El),h()}if(2&t){const e=Vn(14),i=C();d(),v("ngClass",oe(12,cc,i.disableDismiss)),d(),v("ngTemplateOutlet",e),d(),v("matTooltip",y(4,8,"apps.vpn-socks-client-settings.change-note")),d(2),v("inline",!0),d(2),v("matTooltip",y(8,10,"apps.vpn-socks-client-settings.remove-entry")),d(2),v("inline",!0),d(2),v("ngClass",oe(14,cc,i.disableDismiss)),d(),v("ngTemplateOutlet",e)}}function ywe(t,n){1&t&&(f(0,"span"),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"apps.vpn-socks-client-settings.dns-error")))}function Cwe(t,n){1&t&&(f(0,"div",45)(1,"mat-icon",21),m(2,"warning"),h(),m(3),b(4,"translate"),h()),2&t&&(d(),v("inline",!0),d(2),I(" ",y(4,2,"apps.vpn-socks-client-settings.settings-changed-alert")," "))}function wwe(t,n){if(1&t){const e=ce();f(0,"mat-tab",8),b(1,"translate"),f(2,"form",9)(3,"mat-form-field",10)(4,"div",11)(5,"label",12),m(6),b(7,"translate"),h(),B(8,"input",41),h(),f(9,"mat-error"),S(10,ywe,3,3,"span"),h()(),f(11,"div",42)(12,"mat-checkbox",43),m(13),b(14,"translate"),f(15,"mat-icon",44),b(16,"translate"),m(17,"help"),h()()(),S(18,Cwe,5,4,"div",45),f(19,"app-button",15,4),L("action",function(){return z(e),$(C().saveSettings())}),m(21),b(22,"translate"),h()()()}if(2&t){const e=C();v("label",y(1,12,e.tabLabels[3])),d(2),v("formGroup",e.settingsForm),d(),v("ngClass",oe(22,cc,e.disableDismiss)),d(3),O(y(7,14,"apps.vpn-socks-client-settings.dns")),d(4),k(e.settingsForm.get("dns").valid?-1:10),d(2),v("ngClass",oe(24,cc,e.disableDismiss)),d(),I(" ",y(14,16,"apps.vpn-socks-client-settings.killswitch-check")," "),d(2),v("inline",!0)("matTooltip",y(16,18,"apps.vpn-socks-client-settings.killswitch-info")),d(3),k(e.settingsChanged?18:-1),d(),v("disabled",!e.settingsForm.valid||!e.settingsChanged||e.working),d(2),I(" ",y(22,20,"apps.vpn-socks-client-settings.save-settings")," ")}}let xwe=(()=>{class t{static openDialog(e,i){const o=new Lt;return o.data=i,o.autoFocus=!1,o.width=ze.largeModalWidth,e.open(t,o)}constructor(e,i,o,r,s,a,l,c,u){this.data=e,this.dialogRef=i,this.appsService=o,this.formBuilder=r,this.snackbarService=s,this.dialog=a,this.proxyDiscoveryService=l,this.clipboardService=c,this.storageService=u,this.socksHistoryStorageKey="SkysocksClientHistory_",this.vpnHistoryStorageKey="VpnClientHistory_",this.maxHistoryElements=10,this.maxElementsPerPage=10,this.tabLabels=[],this.currentTab=0,this.countriesFromDiscovery=new Set,this.loadingFromDiscovery=!0,this.numberOfPages=1,this.currentPage=1,this.currentRange="1 - 1",this.currentFilters=new C5,this.currentFiltersTexts=[],this.configuringVpn=!1,this.initialKillswitchSetting=!1,this.initialDnsSetting="",this.working=!1,-1!==e.name.toLocaleLowerCase().indexOf("vpn")?(this.configuringVpn=!0,this.tabLabels=["apps.vpn-socks-client-settings.remote-visor-tab","apps.vpn-socks-client-settings.discovery-tab","apps.vpn-socks-client-settings.history-tab","apps.vpn-socks-client-settings.settings-tab"]):this.tabLabels=["apps.vpn-socks-client-settings.remote-visor-tab","apps.vpn-socks-client-settings.discovery-tab","apps.vpn-socks-client-settings.history-tab"]}ngOnInit(){this.migrateDataToHvStorage(),this.discoverySubscription=this.proxyDiscoveryService.getServices(!this.configuringVpn).subscribe(o=>{this.proxiesFromDiscovery=o,this.proxiesFromDiscovery.forEach(r=>{r.country&&this.countriesFromDiscovery.add(r.country.toUpperCase())}),this.filterProxies(),this.loadingFromDiscovery=!1});const e=this.storageService.getDataForHv(this.configuringVpn?this.vpnHistoryStorageKey:this.socksHistoryStorageKey);this.history=e?JSON.parse(e):[];let i="";if(this.data.args&&this.data.args.length>0)for(let o=0;othis.firstInput.nativeElement.focus())}ngOnDestroy(){this.discoverySubscription.unsubscribe(),this.operationSubscription&&this.operationSubscription.unsubscribe()}migrateDataToHvStorage(){const e=localStorage.getItem(this.socksHistoryStorageKey);e&&(this.storageService.setDataForHv(this.socksHistoryStorageKey,e),localStorage.removeItem(this.socksHistoryStorageKey));const i=localStorage.getItem(this.vpnHistoryStorageKey);i&&(this.storageService.setDataForHv(this.vpnHistoryStorageKey,i),localStorage.removeItem(this.vpnHistoryStorageKey))}get disableDismiss(){return this.button&&this.button.isLoading||this.settingsButton&&this.settingsButton.isLoading}tabChangeRequested(e){this.tabGroup.selectedIndex=e}tabIdexChanged(){this.currentTab=this.tabGroup.selectedIndex}validateIp(){if(this.settingsForm){const e=this.settingsForm.get("dns").value;return Ye.checkIfIpValidOrEmpty(e)?null:{invalid:!0}}return null}get settingsChanged(){return this.initialKillswitchSetting!==this.settingsForm.get("killswitch").value||this.initialDnsSetting!==this.settingsForm.get("dns").value}changeFilters(){const e=[];this.countriesFromDiscovery.forEach(o=>e.push(o)),r0e.openDialog(this.dialog,{currentFilters:this.currentFilters,availableCountries:e}).afterClosed().subscribe(o=>{o&&(this.currentFilters=o,this.filterProxies())})}getHighlightedTextParts(e,i){if(!i)return[e];const o=e.toLowerCase(),r=i.toLowerCase();let s=!0,a=0;const l=[];for(;s;){const c=o.indexOf(r,a);-1===c?s=!1:(l.push(e.substring(a,c)),l.push(e.substring(c,c+i.length)),a=c+i.length)}return l.push(e.substring(a)),l}filterProxies(){this.filteredProxiesFromDiscovery=this.currentFilters.country||this.currentFilters.location||this.currentFilters.key?this.proxiesFromDiscovery.filter(e=>!(this.currentFilters.country&&(!e.country||!e.country.toUpperCase().includes(this.currentFilters.country.toUpperCase()))||this.currentFilters.location&&!e.location.toLowerCase().includes(this.currentFilters.location.toLowerCase())||this.currentFilters.key&&!e.address.toLowerCase().includes(this.currentFilters.key.toLowerCase()))):this.proxiesFromDiscovery,this.updateCurrentFilters(),this.updatePagination()}updateCurrentFilters(){if(this.currentFiltersTexts=[],this.currentFilters.country){const e=Zr[this.currentFilters.country.toUpperCase()]?Zr[this.currentFilters.country.toUpperCase()]:this.currentFilters.country.toUpperCase();this.currentFiltersTexts.push(["apps.vpn-socks-client-settings.filter-dialog.country","",e])}this.currentFilters.location&&this.currentFiltersTexts.push(["apps.vpn-socks-client-settings.filter-dialog.location","",this.currentFilters.location]),this.currentFilters.key&&this.currentFiltersTexts.push(["apps.vpn-socks-client-settings.filter-dialog.pub-key","",this.currentFilters.key])}updatePagination(){this.currentPage=1,this.numberOfPages=Math.ceil(this.filteredProxiesFromDiscovery.length/this.maxElementsPerPage),this.showCurrentPage()}goToNextPage(){this.currentPage>=this.numberOfPages||(this.currentPage+=1,this.showCurrentPage())}goToPreviousPage(){this.currentPage<=1||(this.currentPage-=1,this.showCurrentPage())}showCurrentPage(){this.proxiesFromDiscoveryToShow=this.filteredProxiesFromDiscovery.slice((this.currentPage-1)*this.maxElementsPerPage,this.currentPage*this.maxElementsPerPage),this.currentRange=(this.currentPage-1)*this.maxElementsPerPage+1+" - ",this.currentRange+=this.currentPage{1===o?this.useFromHistory(e):2===o?this.changeNote(e):3===o&&this.removeFromHistory(e.key)})}removeFromHistory(e){const o=Ye.createConfirmationDialog(this.dialog,"apps.vpn-socks-client-settings.remove-from-history-confirmation");o.componentInstance.operationAccepted.subscribe(()=>{this.history=this.history.filter(s=>s.key!==e);const r=JSON.stringify(this.history);this.storageService.setDataForHv(this.configuringVpn?this.vpnHistoryStorageKey:this.socksHistoryStorageKey,r),o.close()})}changeNote(e){X1e.openDialog(this.dialog,e.note).afterClosed().subscribe(i=>{if(i){i=i.substr(1,i.length-1),this.history.forEach(r=>{r.key===e.key&&(r.note=i)});const o=JSON.stringify(this.history);this.storageService.setDataForHv(this.configuringVpn?this.vpnHistoryStorageKey:this.socksHistoryStorageKey,o),i?this.snackbarService.showDone("apps.vpn-socks-client-settings.changes-made"):this.snackbarService.showWarning("apps.vpn-socks-client-settings.default-note-warning")}})}useFromHistory(e){e.hasPassword?a0e.openDialog(this.dialog).afterClosed().subscribe(i=>{i&&(i=i.substr(1,i.length-1),this.saveChanges(e.key,i,e.enteredManually,e.location,e.note))}):this.saveChanges(e.key,null,e.enteredManually,e.location,e.note)}saveChanges(e=null,i=null,o=null,r=null,s=null){if(!this.form.valid&&!e||this.working)return;o=!e||o,i=e?i:this.form.get("password").value,e=e||this.form.get("pk").value;const l=Ye.createConfirmationDialog(this.dialog,"apps.vpn-socks-client-settings.change-key-confirmation");l.componentInstance.operationAccepted.subscribe(()=>{l.close(),this.continueSavingChanges(e,i,o,r,s)})}saveSettings(){if(this.working)return;const e={killswitch:this.settingsForm.get("killswitch").value,dns:this.settingsForm.get("dns").value};this.settingsButton.showLoading(!1),this.button.showLoading(!1),this.working=!0,this.operationSubscription=this.appsService.changeAppSettings(ke.getCurrentNodeKey(),this.data.name,e).subscribe(()=>{this.initialKillswitchSetting=e.killswitch,this.initialDnsSetting=e.dns,this.snackbarService.showDone("apps.vpn-socks-client-settings.changes-made"),this.working=!1,this.settingsButton.reset(!1),this.button.reset(!1),ke.refreshCurrentDisplayedData()},i=>{this.working=!1,this.settingsButton.showError(!1),this.button.reset(!1),i=Je(i),this.snackbarService.showError(i)})}copyPk(e){this.clipboardService.copy(e)?this.snackbarService.showDone("apps.vpn-socks-client-settings.copied-pk-info"):this.snackbarService.showError("apps.vpn-socks-client-settings.copy-pk-error")}continueSavingChanges(e,i,o,r,s){if(this.working)return;this.button.showLoading(!1),this.settingsButton&&this.settingsButton.showLoading(!1),this.working=!0;const a={pk:e};this.configuringVpn&&(a.passcode=i||""),this.operationSubscription=this.appsService.changeAppSettings(ke.getCurrentNodeKey(),this.data.name,a).subscribe(()=>this.onServerDataChangeSuccess(e,!!i,o,r,s),l=>this.onServerDataChangeError(l))}onServerDataChangeSuccess(e,i,o,r,s){this.history=this.history.filter(c=>c.key!==e);const a={key:e,enteredManually:o};if(i&&(a.hasPassword=i),r&&(a.location=r),s&&(a.note=s),this.history=[a].concat(this.history),this.history.length>this.maxHistoryElements){const c=this.history.length-this.maxHistoryElements;this.history.splice(this.history.length-c,c)}this.form.get("pk").setValue(e);const l=JSON.stringify(this.history);this.storageService.setDataForHv(this.configuringVpn?this.vpnHistoryStorageKey:this.socksHistoryStorageKey,l),ke.refreshCurrentDisplayedData(),this.snackbarService.showDone("apps.vpn-socks-client-settings.changes-made"),this.working=!1,this.button.reset(!1),this.settingsButton&&this.settingsButton.reset(!1)}onServerDataChangeError(e){this.working=!1,this.button.showError(!1),this.settingsButton&&this.settingsButton.reset(!1),e=Je(e),this.snackbarService.showError(e)}static{this.\u0275fac=function(i){return new(i||t)(P(hn),P(It),P(Os),P(pi),P(bt),P(kt),P(l0e),P(Gf),P(zn))}}static{this.\u0275cmp=se({type:t,selectors:[["app-skysocks-client-settings"]],viewQuery:function(i,o){if(1&i&&rt(H0e,5)(j0e,5)(U0e,5)(z0e,5),2&i){let r;ue(r=he())&&(o.button=r.first),ue(r=he())&&(o.settingsButton=r.first),ue(r=he())&&(o.firstInput=r.first),ue(r=he())&&(o.tabGroup=r.first)}},standalone:!1,decls:38,vars:38,consts:[["content",""],["tabGroup",""],["firstInput",""],["button",""],["settingsButton",""],[3,"headline","dialog","disableDismiss","includeVerticalMargins","includeScrollableArea"],[3,"tabChanged","tabNames","selectedTab"],[3,"selectedIndexChange"],[3,"label"],[3,"formGroup"],[3,"ngClass"],[1,"field-container"],["for","remoteKey",1,"field-label"],["id","pk","formControlName","pk","maxlength","66","matInput",""],[1,"password-history-warning"],["color","primary",1,"float-right",3,"action","disabled"],[1,"loading-indicator",3,"showWhite"],[1,"info-text"],[1,"paginator"],[1,"d-flex"],["id","password","type","password","formControlName","password","maxlength","100","matInput",""],[3,"inline"],["mat-button","",1,"list-button","grey-button-background","w-100",3,"click"],[1,"filter-button-content"],[1,"icon-area"],[1,"item"],[1,"blue-part"],["mat-button","",1,"list-button","grey-button-background","w-100",3,"click","ngClass"],[1,"button-content"],["mat-button","",1,"list-button","grey-button-background",3,"click","matTooltip"],[1,"option-button-icon",3,"inline"],[1,"flag-container"],["mat-icon-button","",1,"hard-grey-button-background",3,"click"],["mat-button","",1,"list-button","grey-button-background","w-100","d-none","d-md-inline",3,"click","ngClass"],[4,"ngTemplateOutlet"],["mat-button","",1,"list-button","grey-button-background","d-none","d-md-inline",3,"click","matTooltip"],["mat-button","",1,"list-button","grey-button-background","w-100","d-md-none",3,"click","ngClass"],[1,"button-content","d-flex"],[1,"full-size-area"],[1,"options-container"],[1,"small-button","d-md-none"],["formControlName","dns","maxlength","15","matInput",""],[1,"main-theme","settings-option"],["color","primary","formControlName","killswitch",3,"ngClass"],[1,"help-icon",3,"inline","matTooltip"],[1,"settings-changed-warning"]],template:function(i,o){1&i&&(f(0,"app-dialog",5),b(1,"translate"),f(2,"app-tab-selector",6),L("tabChanged",function(s){return o.tabChangeRequested(s)}),h(),f(3,"mat-dialog-content",null,0)(5,"mat-tab-group",7,1),L("selectedIndexChange",function(){return o.tabIdexChanged()}),f(7,"mat-tab",8),b(8,"translate"),f(9,"form",9)(10,"mat-form-field",10)(11,"div",11)(12,"label",12),m(13),b(14,"translate"),h(),B(15,"input",13,2),h(),f(17,"mat-error"),S(18,G0e,3,3,"span")(19,q0e,3,3,"span"),h()(),S(20,K0e,6,6,"mat-form-field",10),S(21,Y0e,5,4,"div",14),f(22,"app-button",15,3),L("action",function(){return o.saveChanges()}),m(24),b(25,"translate"),h()()(),f(26,"mat-tab",8),b(27,"translate"),S(28,X0e,1,1,"app-loading-indicator",16),S(29,Z0e,5,4,"div",17),S(30,lwe,15,6),S(31,cwe,10,7,"div",18),h(),f(32,"mat-tab",8),b(33,"translate"),S(34,dwe,6,7,"div"),we(35,vwe,15,16,"div",19,Re),h(),S(37,wwe,23,26,"mat-tab",8),h()()()),2&i&&(v("headline",y(1,24,"apps.vpn-socks-client-settings."+(o.configuringVpn?"vpn-title":"socks-title")))("dialog",o.dialogRef)("disableDismiss",o.disableDismiss)("includeVerticalMargins",!1)("includeScrollableArea",!1),d(2),v("tabNames",o.tabLabels)("selectedTab",o.currentTab),d(5),v("label",y(8,26,o.tabLabels[0])),d(2),v("formGroup",o.form),d(),v("ngClass",oe(36,cc,o.disableDismiss)),d(3),O(y(14,28,"apps.vpn-socks-client-settings.public-key")),d(5),k(o.form.get("pk").hasError("pattern")?19:18),d(2),k(o.configuringVpn?20:-1),d(),k(o.form&&o.form.get("password").value?21:-1),d(),v("disabled",!o.form.valid||o.working),d(2),I(" ",y(25,30,"apps.vpn-socks-client-settings.save")," "),d(2),v("label",y(27,32,o.tabLabels[1])),d(2),k(o.loadingFromDiscovery?28:-1),d(),k(o.loadingFromDiscovery||0!==o.proxiesFromDiscovery.length?-1:29),d(),k(!o.loadingFromDiscovery&&o.proxiesFromDiscovery.length>0?30:-1),d(),k(o.numberOfPages>1?31:-1),d(),v("label",y(33,34,o.tabLabels[2])),d(2),k(0===o.history.length?34:-1),d(),xe(o.history),d(2),k(o.configuringVpn?37:-1))},dependencies:[qt,Pd,Cn,rn,sn,yn,ji,Xt,fn,Kd,wn,Es,ei,S5,F0e,Jn,Ms,lt,pn,kr,On,Kt,vr,V0e,Se],styles:["mat-tab-header{border-bottom:solid 1px rgba(0,0,0,.12)}@media(max-width:767px){ mat-tab-header{display:none!important}}app-tab-selector[_ngcontent-%COMP%]{display:none}@media(max-width:767px){app-tab-selector[_ngcontent-%COMP%]{display:block!important}}form[_ngcontent-%COMP%]{margin-top:15px}.info-text[_ngcontent-%COMP%]{margin-top:20px;margin-bottom:2px;text-align:center;color:#202226}.info-text[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:5px}.loading-indicator[_ngcontent-%COMP%]{height:100px}.password-history-warning[_ngcontent-%COMP%]{font-size:.7rem;opacity:.7;position:relative;top:-5px}.list-button[_ngcontent-%COMP%]{border-bottom:solid 1px rgba(0,0,0,.12);height:auto;justify-content:left}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%]{padding:15px 0;white-space:normal;line-height:1.3;color:#202226;text-align:left;display:flex;font-size:.8rem;word-break:break-word}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%] .icon-area[_ngcontent-%COMP%]{font-size:20px;margin-right:15px;color:#999;opacity:.4;align-self:center}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]{margin:4px 0}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:first-of-type{color:#999}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%] .blue-part[_ngcontent-%COMP%]{color:#215f9e}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%]{text-align:left;padding:15px 0;white-space:normal}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .full-size-area[_ngcontent-%COMP%]{flex-grow:1}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]{line-height:1.3;margin:4px 0;font-size:.8rem;color:#202226;word-break:break-all}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]:first-of-type{color:#999}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .highlighted[_ngcontent-%COMP%]{background-color:#ff0}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .options-container[_ngcontent-%COMP%]{flex-shrink:0;margin-left:5px;text-align:right;line-height:1}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .options-container[_ngcontent-%COMP%] .small-button[_ngcontent-%COMP%]{width:24px;height:24px;line-height:14px;font-size:14px;margin-left:5px}.list-button[_ngcontent-%COMP%] .option-button-icon[_ngcontent-%COMP%]{font-size:14px;margin:0!important;overflow:visible!important}.paginator[_ngcontent-%COMP%]{float:right;margin-top:15px;display:flex;align-items:center}@media(max-width:767px){.paginator[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{font-size:.7rem}}.paginator[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-left:5px;display:flex}.settings-option[_ngcontent-%COMP%]{margin-top:20px}.settings-option[_ngcontent-%COMP%] mat-checkbox[_ngcontent-%COMP%]{margin-bottom:15px}.settings-changed-warning[_ngcontent-%COMP%]{font-size:.7rem;opacity:.7;position:relative}"]})}}return t})();const Swe=["button"],kwe=t=>({name:t}),I5=t=>({"element-disabled":t}),P5=t=>({number:t});function Dwe(t,n){if(1&t){const e=ce();rr(0,4),f(1,"div",7)(2,"mat-form-field",8)(3,"div",9)(4,"label",10),m(5),b(6,"translate"),h(),B(7,"input",11),h()(),f(8,"mat-form-field",8)(9,"div",9)(10,"label",12),m(11),b(12,"translate"),h(),B(13,"input",13),h()(),f(14,"button",14),b(15,"translate"),L("click",function(){const o=z(e).$index;return $(C().removeSetting(o))}),f(16,"mat-icon",15),m(17,"close"),h()()(),Lo()}if(2&t){const e=n.$index,i=C();d(),v("formGroupName",e),d(),v("ngClass",oe(15,I5,i.disableDismiss)),d(3),O(Ee(6,7,"apps.user-app-settings.name",oe(17,P5,e+1))),d(3),v("ngClass",oe(19,I5,i.disableDismiss)),d(3),O(Ee(12,10,"apps.user-app-settings.value",oe(21,P5,e+1))),d(3),v("matTooltip",y(15,13,"apps.user-app-settings.remove")),d(2),v("inline",!0)}}let Twe=(()=>{class t{static openDialog(e,i){const o=new Lt;return o.data=i,o.autoFocus=!1,o.width=ze.mediumModalWidth,e.open(t,o)}constructor(e,i,o,r,s,a){this.data=e,this.appsService=i,this.formBuilder=o,this.dialogRef=r,this.snackbarService=s,this.dialog=a,this.appName="",this.appName=e.name}ngOnInit(){if(this.form=this.formBuilder.group({settings:this.formBuilder.array([])}),this.data.args&&this.data.args.length>0)for(let e=0;e{let s=r.get("name").value,a=r.get("value").value;s=s&&s.trim(),a=a&&a.trim(),s?(o[s]=a,i+=1):e=!0}),e||0===i){const s=Ye.createConfirmationDialog(this.dialog,"apps.user-app-settings."+(0===i?"empty-confirmation":"invalid-confirmation"));s.componentInstance.operationAccepted.subscribe(()=>{s.close(),this.continueSavingChanges(o)})}else this.continueSavingChanges(o)}continueSavingChanges(e){this.button.showLoading();const i={custom_setting:e};this.operationSubscription=this.appsService.changeAppSettings(ke.getCurrentNodeKey(),this.data.name,i).subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)})}onSuccess(){ke.refreshCurrentDisplayedData(),this.snackbarService.showDone("apps.user-app-settings.changes-made"),this.dialogRef.close()}onError(e){this.button.showError(),e=Je(e),this.snackbarService.showError(e)}static{this.\u0275fac=function(i){return new(i||t)(P(hn),P(Os),P(pi),P(It),P(bt),P(kt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-user-app-settings"]],viewQuery:function(i,o){if(1&i&&rt(Swe,5),2&i){let r;ue(r=he())&&(o.button=r.first)}},standalone:!1,decls:16,vars:19,consts:[["button",""],[3,"headline","dialog","disableDismiss"],[1,"info-container"],[3,"formGroup"],["formArrayName","settings"],[1,"add-setting",3,"click"],["color","primary",1,"float-right",3,"action","disabled"],[1,"settings-row",3,"formGroupName"],[3,"ngClass"],[1,"field-container"],["for","name",1,"field-label"],["id","name","formControlName","name","matInput",""],["for","value",1,"field-label"],["id","value","formControlName","value","matInput",""],["mat-button","",1,"transparent-button",3,"click","matTooltip"],[3,"inline"]],template:function(i,o){1&i&&(f(0,"app-dialog",1),b(1,"translate"),f(2,"div",2),m(3),b(4,"translate"),h(),f(5,"form",3),we(6,Dwe,18,23,"ng-container",4,Re),h(),f(8,"div")(9,"a",5),L("click",function(){return o.addSetting()}),m(10),b(11,"translate"),h()(),f(12,"app-button",6,0),L("action",function(){return o.saveChanges()}),m(14),b(15,"translate"),h()()),2&i&&(v("headline",Ee(1,8,"apps.user-app-settings.title",oe(17,kwe,o.appName)))("dialog",o.dialogRef)("disableDismiss",o.disableDismiss),d(3),O(y(4,11,"apps.user-app-settings.info")),d(2),v("formGroup",o.form),d(),xe(o.settingsControls),d(4),I("+ ",y(11,13,"apps.user-app-settings.add")),d(2),v("disabled",!o.form.valid),d(2),I(" ",y(15,15,"apps.user-app-settings.save")," "))},dependencies:[qt,Cn,rn,sn,yn,Xt,fn,Jl,tu,wn,ei,Jn,lt,pn,On,Kt,Se],styles:[".info-container[_ngcontent-%COMP%]{margin-bottom:10px}.settings-row[_ngcontent-%COMP%]{display:flex}mat-form-field[_ngcontent-%COMP%]{flex-grow:1;margin-right:10px}button[_ngcontent-%COMP%]{flex-shrink:0;width:50px;padding:0!important;align-self:center;border-radius:10px}button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin:0!important}.add-setting[_ngcontent-%COMP%]{color:#215f9e!important;cursor:pointer}"]})}}return t})();const Mwe=["button"],O5=t=>({"element-disabled":t});let Ewe=(()=>{class t{static openDialog(e,i){const o=new Lt;return o.data=i,o.autoFocus=!1,o.width=ze.mediumModalWidth,e.open(t,o)}constructor(e,i,o,r,s,a){this.data=e,this.appsService=i,this.formBuilder=o,this.dialogRef=r,this.snackbarService=s,this.dialog=a}ngOnInit(){if(this.form=this.formBuilder.group({localhostOnly:[!0],port:["",Ve.compose([Ve.required,Ve.min(1025),Ve.max(65536)])]}),this.formSubscription=this.form.get("localhostOnly").valueChanges.subscribe(e=>{if(!e){this.form.get("localhostOnly").setValue(!0);const i=Ye.createConfirmationDialog(this.dialog,"apps.skychat-settings.non-localhost-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.componentInstance.closeModal(),this.form.get("localhostOnly").setValue(!1,{emitEvent:!1})})}}),this.data.args&&this.data.args.length>0)for(let e=0;e({"paginator-icons-fixer":t}),A5=(t,n)=>["/nodes",t,"apps-list",n],Pwe=(t,n)=>({"small-node-list-margins":t,"full-node-list-margins":n}),Owe=t=>({"d-lg-none d-xl-table":t}),Awe=t=>({"d-lg-table d-xl-none":t}),R5=t=>({error:t}),Rwe=(t,n)=>["/nodes",t,"apps-list",n,"1"];function Nwe(t,n){1&t&&(f(0,"span",3),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"apps.apps-list.title-official")))}function Fwe(t,n){1&t&&(f(0,"span",3),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"apps.apps-list.title-user")))}function Lwe(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,C().$implicit.translatableValue)," ")}function Bwe(t,n){1&t&&m(0),2&t&&I(" ",C().$implicit.value," ")}function Vwe(t,n){if(1&t&&(f(0,"div",15)(1,"span"),m(2),b(3,"translate"),h(),S(4,Lwe,2,3),S(5,Bwe,1,1),h()),2&t){const e=n.$implicit;d(2),I("",y(3,3,e.filterName),": "),d(2),k(e.translatableValue?4:-1),d(),k(e.value?5:-1)}}function Hwe(t,n){if(1&t){const e=ce();f(0,"div",14),L("click",function(){return z(e),$(C().dataFilterer.removeFilters())}),we(1,Vwe,6,5,"div",15,Re),f(3,"div",16),m(4),b(5,"translate"),h()()}if(2&t){const e=C();d(),xe(e.dataFilterer.currentFiltersTexts),d(3),O(y(5,1,"filters.press-to-remove"))}}function jwe(t,n){if(1&t){const e=ce();f(0,"mat-icon",17),b(1,"translate"),L("click",function(){return z(e),$(C().dataFilterer.changeFilters())}),m(2,"filter_list"),h()}2&t&&v("inline",!0)("matTooltip",y(1,2,"filters.filter-action"))}function Uwe(t,n){1&t&&(f(0,"mat-icon",8),m(1,"more_horiz"),h()),2&t&&(C(),v("matMenuTriggerFor",Vn(10)))}function zwe(t,n){if(1&t&&B(0,"app-paginator",12),2&t){const e=C();v("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",ft(4,A5,e.nodePK,e.showOfficialApps))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function $we(t,n){if(1&t&&(f(0,"mat-icon",22),m(1),h()),2&t){const e=C(2);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function Wwe(t,n){if(1&t&&(f(0,"mat-icon",22),m(1),h()),2&t){const e=C(2);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function Gwe(t,n){if(1&t&&(f(0,"mat-icon",22),m(1),h()),2&t){const e=C(2);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function qwe(t,n){if(1&t&&(f(0,"mat-icon",22),m(1),h()),2&t){const e=C(2);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function Kwe(t,n){if(1&t&&(B(0,"i",38),b(1,"translate")),2&t){const e=C().$implicit,i=C(2);at(i.getStateClass(e)),v("matTooltip",y(1,3,i.getStateTooltip(e)))}}function Ywe(t,n){if(1&t&&(f(0,"mat-icon",34),b(1,"translate"),m(2,"warning"),h()),2&t){const e=C().$implicit;v("inline",!0)("matTooltip",Ee(1,2,"apps.status-failed-tooltip",oe(5,R5,e.detailedStatus?e.detailedStatus:"")))}}function Xwe(t,n){if(1&t&&(f(0,"a",36)(1,"button",37),b(2,"translate"),f(3,"mat-icon",22),m(4,"open_in_browser"),h()()()),2&t){const e=C().$implicit;v("href",C(2).getLink(e),ho),d(),v("matTooltip",y(2,3,"apps.open")),d(2),v("inline",!0)}}function Zwe(t,n){if(1&t){const e=ce();f(0,"button",35),b(1,"translate"),L("click",function(){z(e);const o=C().$implicit;return $(C(2).config(o))}),f(2,"mat-icon",22),m(3,"settings"),h()()}2&t&&(v("matTooltip",y(1,2,"apps.settings")),d(2),v("inline",!0))}function Qwe(t,n){if(1&t){const e=ce();f(0,"tr")(1,"td",31)(2,"mat-checkbox",32),L("change",function(){const o=z(e).$implicit;return $(C(2).changeSelection(o))}),h()(),f(3,"td"),S(4,Kwe,2,5,"i",33),S(5,Ywe,3,7,"mat-icon",34),h(),f(6,"td"),m(7),h(),f(8,"td"),m(9),h(),f(10,"td")(11,"button",35),b(12,"translate"),L("click",function(){const o=z(e).$implicit;return $(C(2).changeAppAutostart(o))}),f(13,"mat-icon",22),m(14),h()()(),f(15,"td",24),S(16,Xwe,5,5,"a",36),S(17,Zwe,4,4,"button",37),f(18,"button",35),b(19,"translate"),L("click",function(){const o=z(e).$implicit;return $(C(2).viewLogs(o))}),f(20,"mat-icon",22),m(21,"list"),h()(),f(22,"button",35),b(23,"translate"),L("click",function(){const o=z(e).$implicit;return $(C(2).changeAppState(o))}),f(24,"mat-icon",22),m(25),h()()()()}if(2&t){const e=n.$implicit,i=C(2);d(2),v("checked",i.selections.get(e.name)),d(2),k(2!==e.status?4:-1),d(),k(2===e.status?5:-1),d(2),I(" ",e.name," "),d(2),I(" ",e.port," "),d(2),v("matTooltip",y(12,15,e.autostart?"apps.apps-list.disable-autostart":"apps.apps-list.enable-autostart")),d(2),v("inline",!0),d(),O(e.autostart?"done":"close"),d(2),k(i.getLink(e)?16:-1),d(),k(i.appsWithoutConfig.has(e.name)?-1:17),d(),v("matTooltip",y(19,17,"apps.view-logs")),d(2),v("inline",!0),d(2),v("matTooltip",y(23,19,"apps."+(0===e.status||2===e.status?"start-app":"stop-app"))),d(2),v("inline",!0),d(),O(0===e.status||2===e.status?"play_arrow":"stop")}}function Jwe(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"tables.label")," ")}function exe(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"tables.inverted-order")," ")}function txe(t,n){if(1&t&&(f(0,"a",43),L("click",function(i){return i.stopPropagation()}),f(1,"button",44),b(2,"translate"),f(3,"mat-icon"),m(4,"open_in_browser"),h()()()),2&t){const e=C().$implicit;v("href",C(2).getLink(e),ho),d(),v("matTooltip",y(2,2,"apps.open"))}}function nxe(t,n){if(1&t){const e=ce();f(0,"tr")(1,"td")(2,"div",27)(3,"div",39)(4,"mat-checkbox",32),L("change",function(){const o=z(e).$implicit;return $(C(2).changeSelection(o))}),h()(),f(5,"div",28)(6,"div",40)(7,"span",2),m(8),b(9,"translate"),h(),m(10),h(),f(11,"div",40)(12,"span",2),m(13),b(14,"translate"),h(),m(15),h(),f(16,"div",40)(17,"span",2),m(18),b(19,"translate"),h(),m(20,": "),f(21,"span"),m(22),b(23,"translate"),h()(),f(24,"div",40)(25,"span",2),m(26),b(27,"translate"),h(),m(28,": "),f(29,"span"),m(30),b(31,"translate"),h()()(),B(32,"div",41),f(33,"div",29),S(34,txe,5,4,"a",36),f(35,"button",42),b(36,"translate"),L("click",function(o){const r=z(e).$implicit,s=C(2);return o.stopPropagation(),$(s.showOptionsDialog(r))}),f(37,"mat-icon"),m(38),h()()()()()()}if(2&t){const e=n.$implicit,i=C(2);d(4),v("checked",i.selections.get(e.name)),d(4),O(y(9,16,"apps.apps-list.app-name")),d(2),I(": ",e.name," "),d(3),O(y(14,18,"apps.apps-list.port")),d(2),I(": ",e.port," "),d(3),O(y(19,20,"apps.apps-list.state")),d(3),at(i.getSmallScreenStateClass(e)+" title"),d(),I(" ",Ee(23,22,i.getSmallScreenStateTextVar(e),oe(31,R5,e.detailedStatus?e.detailedStatus:""))," "),d(4),O(y(27,25,"apps.apps-list.auto-start")),d(3),at((e.autostart?"green-clear-text":"red-clear-text")+" title"),d(),I(" ",y(31,27,e.autostart?"apps.apps-list.autostart-enabled":"apps.apps-list.autostart-disabled")," "),d(4),k(i.getLink(e)?34:-1),d(),v("matTooltip",y(36,29,"common.options")),d(3),O("add")}}function ixe(t,n){if(1&t&&B(0,"app-view-all-link",30),2&t){const e=C(2);v("numberOfElements",e.filteredApps.length)("linkParts",ft(3,Rwe,e.nodePK,e.showOfficialApps))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function oxe(t,n){if(1&t){const e=ce();f(0,"div",13)(1,"div",18)(2,"table",19)(3,"tr"),B(4,"th"),f(5,"th",20),b(6,"translate"),L("click",function(){z(e);const o=C();return $(o.dataSorter.changeSortingOrder(o.stateSortData))}),B(7,"span",21),S(8,$we,2,2,"mat-icon",22),h(),f(9,"th",23),L("click",function(){z(e);const o=C();return $(o.dataSorter.changeSortingOrder(o.nameSortData))}),m(10),b(11,"translate"),S(12,Wwe,2,2,"mat-icon",22),h(),f(13,"th",23),L("click",function(){z(e);const o=C();return $(o.dataSorter.changeSortingOrder(o.portSortData))}),m(14),b(15,"translate"),S(16,Gwe,2,2,"mat-icon",22),h(),f(17,"th",23),L("click",function(){z(e);const o=C();return $(o.dataSorter.changeSortingOrder(o.autoStartSortData))}),m(18),b(19,"translate"),S(20,qwe,2,2,"mat-icon",22),h(),B(21,"th",24),h(),we(22,Qwe,26,21,"tr",null,Re),h(),f(24,"table",25)(25,"tr",26),L("click",function(){return z(e),$(C().dataSorter.openSortingOrderModal())}),f(26,"td")(27,"div",27)(28,"div",28)(29,"div",2),m(30),b(31,"translate"),h(),f(32,"div"),m(33),b(34,"translate"),S(35,Jwe,2,3),S(36,exe,2,3),h()(),f(37,"div",29)(38,"mat-icon",22),m(39,"keyboard_arrow_down"),h()()()()(),we(40,nxe,39,33,"tr",null,Re),h(),S(42,ixe,1,6,"app-view-all-link",30),h()()}if(2&t){const e=C();d(),v("ngClass",ft(29,Pwe,e.showShortList_,!e.showShortList_)),d(),v("ngClass",oe(32,Owe,e.showShortList_)),d(3),v("matTooltip",y(6,17,"apps.apps-list.state-tooltip")),d(3),k(e.dataSorter.currentSortingColumn===e.stateSortData?8:-1),d(2),I(" ",y(11,19,"apps.apps-list.app-name")," "),d(2),k(e.dataSorter.currentSortingColumn===e.nameSortData?12:-1),d(2),I(" ",y(15,21,"apps.apps-list.port")," "),d(2),k(e.dataSorter.currentSortingColumn===e.portSortData?16:-1),d(2),I(" ",y(19,23,"apps.apps-list.auto-start")," "),d(2),k(e.dataSorter.currentSortingColumn===e.autoStartSortData?20:-1),d(2),xe(e.dataSource),d(2),v("ngClass",oe(34,Awe,e.showShortList_)),d(6),O(y(31,25,"tables.sorting-title")),d(3),I("",y(34,27,e.dataSorter.currentSortingColumn.label)," "),d(2),k(e.dataSorter.currentlySortingByLabel?35:-1),d(),k(e.dataSorter.sortingInReverseOrder?36:-1),d(2),v("inline",!0),d(2),xe(e.dataSource),d(2),k(e.showShortList_&&e.numberOfPages>1?42:-1)}}function rxe(t,n){1&t&&(f(0,"span",47),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"apps.apps-list.empty-official")))}function sxe(t,n){1&t&&(f(0,"span",47),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"apps.apps-list.empty-user")))}function axe(t,n){1&t&&(f(0,"span",47),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"apps.apps-list.empty-with-filter")))}function lxe(t,n){if(1&t&&(f(0,"div",13)(1,"div",45)(2,"mat-icon",46),m(3,"warning"),h(),S(4,rxe,3,3,"span",47),S(5,sxe,3,3,"span",47),S(6,axe,3,3,"span",47),h()()),2&t){const e=C();d(2),v("inline",!0),d(2),k(0===e.allAppsForType.length&&e.showOfficialApps?4:-1),d(),k(0!==e.allAppsForType.length||e.showOfficialApps?-1:5),d(),k(0!==e.allAppsForType.length?6:-1)}}function cxe(t,n){if(1&t&&B(0,"app-paginator",12),2&t){const e=C();v("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",ft(4,A5,e.nodePK,e.showOfficialApps))("queryParams",e.dataFilterer.currentUrlQueryParams)}}let N5=(()=>{class t{set showShortList(e){this.showShortList_=e,this.dataSorter&&this.dataSorter.setData(this.filteredApps)}set apps(e){this.allApps=e||[],this.allApps&&(this.allAppsForType=[],this.allApps.forEach(i=>{(this.showOfficialApps&&this.officialAppsList.has(i.name)||!this.showOfficialApps&&!this.officialAppsList.has(i.name))&&this.allAppsForType.push(i)}),this.dataFilterer&&this.dataFilterer.setData(this.allAppsForType))}constructor(e,i,o,r,s,a,l){this.appsService=e,this.dialog=i,this.route=o,this.router=r,this.snackbarService=s,this.translateService=a,this.storageService=l,this.listIdForOfficialApps="op",this.listIdForUserApps="up",this.officialAppsList=new Set(["skychat","skysocks","skysocks-client","vpn-client","vpn-server"]),this.showOfficialApps=!0,this.stateSortData=new Pt(["status"],"apps.apps-list.state",ct.NumberReversed),this.nameSortData=new Pt(["name"],"apps.apps-list.app-name",ct.Text),this.portSortData=new Pt(["port"],"apps.apps-list.port",ct.Number),this.autoStartSortData=new Pt(["autostart"],"apps.apps-list.auto-start",ct.Boolean),this.selections=new Map,this.appsWithoutConfig=new Set,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.filterProperties=[{filterName:"apps.apps-list.filter-dialog.state",keyNameInElementsArray:"status",type:mn.Select,printableLabelsForValues:[{value:"",label:"apps.apps-list.filter-dialog.state-options.any"},{value:"1",label:"apps.apps-list.filter-dialog.state-options.running"},{value:"0",label:"apps.apps-list.filter-dialog.state-options.stopped"}]},{filterName:"apps.apps-list.filter-dialog.name",keyNameInElementsArray:"name",type:mn.TextInput,maxlength:50},{filterName:"apps.apps-list.filter-dialog.port",keyNameInElementsArray:"port",type:mn.TextInput,maxlength:8},{filterName:"apps.apps-list.filter-dialog.autostart",keyNameInElementsArray:"autostart",type:mn.Select,printableLabelsForValues:[{value:"",label:"apps.apps-list.filter-dialog.autostart-options.any"},{value:"true",label:"apps.apps-list.filter-dialog.autostart-options.enabled"},{value:"false",label:"apps.apps-list.filter-dialog.autostart-options.disabled"}]}],this.refreshAgain=!1,this.operationSubscriptionsGroup=[],this.navigationsSubscription=this.route.paramMap.subscribe(c=>{if(c.has("showOfficialApps")&&(this.showOfficialApps=c.get("showOfficialApps").toUpperCase()==="true".toUpperCase()),c.has("page")){let u=Number.parseInt(c.get("page"),10);(isNaN(u)||u<1)&&(u=1),this.currentPageInUrl=u,this.recalculateElementsToShow()}})}ngOnInit(){const e=this.showOfficialApps?this.listIdForOfficialApps:this.listIdForUserApps;this.dataSorter=new ru(this.dialog,this.translateService,this.storageService,[this.stateSortData,this.nameSortData,this.portSortData,this.autoStartSortData],1,e),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataSorter&&this.dataSorter.setData(this.filteredApps),this.dataFilterer=new su(this.dialog,this.route,this.router,this.filterProperties,e),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(o=>{this.filteredApps=o,this.dataSorter.setData(this.filteredApps)}),this.allAppsForType&&this.dataFilterer.setData(this.allAppsForType)}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.operationSubscriptionsGroup.forEach(e=>e.unsubscribe()),this.dataSortedSubscription.unsubscribe(),this.dataFiltererSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFilterer.dispose()}getLink(e){if("skychat"===e.name.toLocaleLowerCase()&&this.nodeIp&&0!==e.status&&2!==e.status){let i="8001",o="127.0.0.1";if(e.args)for(let r=0;r{i&&(e=!0)}),e}changeAllSelections(e){this.selections.forEach((i,o)=>{this.selections.set(o,e)})}changeStateOfSelected(e){const i=[];if(this.selections.forEach((o,r)=>{o&&(e&&(0===this.appsMap.get(r).status||2===this.appsMap.get(r).status)||!e&&0!==this.appsMap.get(r).status&&2!==this.appsMap.get(r).status)&&i.push(r)}),e)this.changeAppsValRecursively(i,!1,e);else{const o=Ye.createConfirmationDialog(this.dialog,"apps.stop-selected-confirmation");o.componentInstance.operationAccepted.subscribe(()=>{o.componentInstance.showProcessing(),this.changeAppsValRecursively(i,!1,e,o)})}}changeAutostartOfSelected(e){const i=[];this.selections.forEach((r,s)=>{r&&(e&&!this.appsMap.get(s).autostart||!e&&this.appsMap.get(s).autostart)&&i.push(s)});const o=Ye.createConfirmationDialog(this.dialog,e?"apps.enable-autostart-selected-confirmation":"apps.disable-autostart-selected-confirmation");o.componentInstance.operationAccepted.subscribe(()=>{o.componentInstance.showProcessing(),this.changeAppsValRecursively(i,!0,e,o)})}showOptionsDialog(e){const i=[{icon:"list",label:"apps.view-logs"},{icon:0===e.status||2===e.status?"play_arrow":"stop",label:"apps."+(0===e.status||2===e.status?"start-app":"stop-app")},{icon:e.autostart?"close":"done",label:e.autostart?"apps.apps-list.disable-autostart":"apps.apps-list.enable-autostart"}];this.appsWithoutConfig.has(e.name)||i.push({icon:"settings",label:"apps.settings"}),oo.openDialog(this.dialog,i,"common.options").afterClosed().subscribe(o=>{1===o?this.viewLogs(e):2===o?this.changeAppState(e):3===o?this.changeAppAutostart(e):4===o&&this.config(e)})}changeAppState(e){if(0===e.status||2===e.status)this.changeSingleAppVal(this.startChangingAppState(e.name,!0));else{const i=Ye.createConfirmationDialog(this.dialog,"apps.stop-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.componentInstance.showProcessing(),this.changeSingleAppVal(this.startChangingAppState(e.name,!1),i)})}}changeAppAutostart(e){const i=Ye.createConfirmationDialog(this.dialog,e.autostart?"apps.disable-autostart-confirmation":"apps.enable-autostart-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.componentInstance.showProcessing(),this.changeSingleAppVal(this.startChangingAppAutostart(e.name,!e.autostart),i)})}changeSingleAppVal(e,i=null){this.operationSubscriptionsGroup.push(e.subscribe(()=>{i&&i.close(),setTimeout(()=>{this.refreshAgain=!0,ke.refreshCurrentDisplayedData()},50),this.snackbarService.showDone("apps.operation-completed")},o=>{o=Je(o),setTimeout(()=>{this.refreshAgain=!0,ke.refreshCurrentDisplayedData()},50),i?i.componentInstance.showDone("confirmation.error-header-text",o.translatableErrorMsg):this.snackbarService.showError(o)}))}viewLogs(e){0!==e.status&&2!==e.status?z1e.openDialog(this.dialog,e):this.snackbarService.showError("apps.apps-list.unavailable-logs-error")}config(e){"skychat"===e.name?Ewe.openDialog(this.dialog,e):"skysocks"===e.name||"vpn-server"===e.name?K1e.openDialog(this.dialog,e):"skysocks-client"===e.name||"vpn-client"===e.name?xwe.openDialog(this.dialog,e):Twe.openDialog(this.dialog,e)}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredApps){const e=this.showShortList_?ze.maxShortListElements:ze.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredApps.length/e),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const i=e*(this.currentPage-1);this.appsToShow=this.filteredApps.slice(i,i+e),this.appsMap=new Map,this.appsToShow.forEach(s=>{this.appsMap.set(s.name,s),this.selections.has(s.name)||this.selections.set(s.name,!1)});const r=[];this.selections.forEach((s,a)=>{this.appsMap.has(a)||r.push(a)}),r.forEach(s=>{this.selections.delete(s)})}else this.appsToShow=null,this.selections=new Map;this.dataSource=this.appsToShow,this.refreshAgain&&(this.refreshAgain=!1,setTimeout(()=>ke.refreshCurrentDisplayedData(),2e3))}startChangingAppState(e,i){return this.appsService.changeAppState(ke.getCurrentNodeKey(),e,i).pipe(ye(o=>(null!=o.status&&this.dataSource.forEach(r=>{r.name===e&&(r.status=o.status,r.detailedStatus=o.detailed_status)}),o)))}startChangingAppAutostart(e,i){return this.appsService.changeAppAutostart(ke.getCurrentNodeKey(),e,i)}changeAppsValRecursively(e,i,o,r=null){if(!e||0===e.length)return setTimeout(()=>ke.refreshCurrentDisplayedData(),50),this.snackbarService.showWarning("apps.operation-unnecessary"),void(r&&r.close());let s;s=i?this.startChangingAppAutostart(e[e.length-1],o):this.startChangingAppState(e[e.length-1],o),this.operationSubscriptionsGroup.push(s.subscribe(()=>{e.pop(),0===e.length?(r&&r.close(),setTimeout(()=>{this.refreshAgain=!0,ke.refreshCurrentDisplayedData()},50),this.snackbarService.showDone("apps.operation-completed")):this.changeAppsValRecursively(e,i,o,r)},a=>{a=Je(a),setTimeout(()=>{this.refreshAgain=!0,ke.refreshCurrentDisplayedData()},50),r?r.componentInstance.showDone("confirmation.error-header-text",a.translatableErrorMsg):this.snackbarService.showError(a)}))}static{this.\u0275fac=function(i){return new(i||t)(P(Os),P(kt),P(Ei),P(vt),P(bt),P(zo),P(zn))}}static{this.\u0275cmp=se({type:t,selectors:[["app-node-app-list"]],inputs:{nodePK:"nodePK",nodeIp:"nodeIp",showOfficialApps:"showOfficialApps",showShortList:"showShortList",apps:"apps"},standalone:!1,decls:33,vars:39,consts:[["selectionMenu","matMenu"],[1,"generic-title-container","mt-4.5","d-flex",3,"ngClass"],[1,"title"],[1,"uppercase"],[1,"filter-label","subtle-transparent-button","cursor-pointer"],[1,"options"],[1,"options-container"],[1,"small-icon",3,"inline","matTooltip"],[3,"matMenuTriggerFor"],[3,"overlapTrigger"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"click","disabled"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"rounded-elevated-box","mt-3"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],[1,"item"],[1,"transparent-50"],[1,"small-icon",3,"click","inline","matTooltip"],[1,"box-internal-container","overflow",3,"ngClass"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table",3,"ngClass"],[1,"sortable-column",3,"click","matTooltip"],[1,"dot-outline-white"],[3,"inline"],[1,"sortable-column",3,"click"],[1,"actions"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none",3,"ngClass"],[1,"selectable",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],[3,"numberOfElements","linkParts","queryParams"],[1,"selection-col"],[3,"change","checked"],[3,"class","matTooltip"],[1,"red-text",3,"inline","matTooltip"],["mat-button","",1,"big-action-button","transparent-button",3,"click","matTooltip"],["target","_blank","rel","noreferrer nofollow noopener",1,"skychat-link",3,"href"],["mat-button","",1,"big-action-button","transparent-button",3,"matTooltip"],[3,"matTooltip"],[1,"check-part"],[1,"list-row"],[1,"margin-part"],["mat-icon-button","",1,"transparent-button",3,"click","matTooltip"],["target","_blank","rel","noreferrer nofollow noopener",1,"skychat-link",3,"click","href"],["mat-icon-button","",1,"transparent-button",3,"matTooltip"],[1,"box-internal-container"],[1,"alert-icon",3,"inline"],[1,"font-sm"]],template:function(i,o){1&i&&(f(0,"div",1)(1,"div",2),S(2,Nwe,3,3,"span",3),S(3,Fwe,3,3,"span",3),S(4,Hwe,6,3,"div",4),h(),f(5,"div",5)(6,"div",6),S(7,jwe,3,4,"mat-icon",7),S(8,Uwe,2,1,"mat-icon",8),f(9,"mat-menu",9,0)(11,"div",10),L("click",function(){return o.changeAllSelections(!0)}),m(12),b(13,"translate"),h(),f(14,"div",10),L("click",function(){return o.changeAllSelections(!1)}),m(15),b(16,"translate"),h(),f(17,"div",11),L("click",function(){return o.changeStateOfSelected(!0)}),m(18),b(19,"translate"),h(),f(20,"div",11),L("click",function(){return o.changeStateOfSelected(!1)}),m(21),b(22,"translate"),h(),f(23,"div",11),L("click",function(){return o.changeAutostartOfSelected(!0)}),m(24),b(25,"translate"),h(),f(26,"div",11),L("click",function(){return o.changeAutostartOfSelected(!1)}),m(27),b(28,"translate"),h()()(),S(29,zwe,1,7,"app-paginator",12),h()(),S(30,oxe,43,36,"div",13),S(31,lxe,7,4,"div",13),S(32,cxe,1,7,"app-paginator",12)),2&i&&(v("ngClass",oe(37,Iwe,!o.showShortList_&&o.numberOfPages>1&&o.dataSource)),d(2),k(o.showShortList_&&o.showOfficialApps?2:-1),d(),k(o.showShortList_&&!o.showOfficialApps?3:-1),d(),k(o.dataFilterer.currentFiltersTexts&&o.dataFilterer.currentFiltersTexts.length>0?4:-1),d(3),k(o.allAppsForType&&o.allAppsForType.length>0?7:-1),d(),k(o.dataSource&&o.dataSource.length>0?8:-1),d(),v("overlapTrigger",!1),d(3),I(" ",y(13,25,"selection.select-all")," "),d(3),I(" ",y(16,27,"selection.unselect-all")," "),d(2),v("disabled",Wt(!o.hasSelectedElements())),d(),I(" ",y(19,29,"selection.start-all")," "),d(2),v("disabled",Wt(!o.hasSelectedElements())),d(),I(" ",y(22,31,"selection.stop-all")," "),d(2),v("disabled",Wt(!o.hasSelectedElements())),d(),I(" ",y(25,33,"selection.enable-autostart-all")," "),d(2),v("disabled",Wt(!o.hasSelectedElements())),d(),I(" ",y(28,35,"selection.disable-autostart-all")," "),d(2),k(!o.showShortList_&&o.numberOfPages>1&&o.dataSource?29:-1),d(),k(o.dataSource&&o.dataSource.length>0?30:-1),d(),k(o.dataSource&&0!==o.dataSource.length?-1:31),d(),k(!o.showShortList_&&o.numberOfPages>1&&o.dataSource?32:-1))},dependencies:[qt,Jn,Ms,lt,pn,Xr,Ps,lu,kr,cv,cu,Se],styles:[".actions[_ngcontent-%COMP%]{text-align:right;width:150px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}.skychat-link[_ngcontent-%COMP%]{color:#f8f9f9;text-decoration:none}.skychat-link[_ngcontent-%COMP%] .big-action-button[_ngcontent-%COMP%]{margin-right:5px}"]})}}return t})(),dxe=(()=>{class t extends Wn{ngOnInit(){return this.dataSubscription=ke.currentNode.subscribe(e=>{this.nodePK=e.localPk,this.apps=e.apps,this.nodeIp=e.ip}),super.ngOnInit()}ngOnDestroy(){this.dataSubscription.unsubscribe()}static{this.\u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})()}static{this.\u0275cmp=se({type:t,selectors:[["app-apps"]],standalone:!1,features:[be],decls:2,vars:10,consts:[[3,"showOfficialApps","apps","showShortList","nodePK","nodeIp"]],template:function(i,o){1&i&&B(0,"app-node-app-list",0)(1,"app-node-app-list",0),2&i&&(v("showOfficialApps",!0)("apps",o.apps)("showShortList",!0)("nodePK",o.nodePK)("nodeIp",o.nodeIp),d(),v("showOfficialApps",!1)("apps",o.apps)("showShortList",!0)("nodePK",o.nodePK)("nodeIp",o.nodeIp))},dependencies:[N5],encapsulation:2})}}return t})();function uxe(t,n){1&t&&B(0,"app-transport-list",0),2&t&&v("node",C().node)("showShortList",!1)}let hxe=(()=>{class t extends Wn{ngOnInit(){return this.dataSubscription=ke.currentNode.subscribe(e=>this.node=e),super.ngOnInit()}ngOnDestroy(){this.dataSubscription.unsubscribe()}static{this.\u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})()}static{this.\u0275cmp=se({type:t,selectors:[["app-all-transports"]],standalone:!1,features:[be],decls:1,vars:1,consts:[[3,"node","showShortList"]],template:function(i,o){1&i&&S(0,uxe,1,2,"app-transport-list",0),2&i&&k(o.node?0:-1)},dependencies:[b5],encapsulation:2})}}return t})();function fxe(t,n){if(1&t&&B(0,"app-route-list",0),2&t){const e=C();v("routes",e.routes)("showShortList",!1)("nodePK",e.nodePK)}}let pxe=(()=>{class t extends Wn{ngOnInit(){return this.dataSubscription=ke.currentNode.subscribe(e=>{this.nodePK=e.localPk,this.routes=e.routes}),super.ngOnInit()}ngOnDestroy(){this.dataSubscription.unsubscribe()}static{this.\u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})()}static{this.\u0275cmp=se({type:t,selectors:[["app-all-routes"]],standalone:!1,features:[be],decls:1,vars:1,consts:[[3,"routes","showShortList","nodePK"]],template:function(i,o){1&i&&S(0,fxe,1,3,"app-route-list",0),2&i&&k(o.routes?0:-1)},dependencies:[y5],encapsulation:2})}}return t})();const mxe=(t,n)=>n.date;function gxe(t,n){if(1&t&&(f(0,"span",4),m(1),h()),2&t){const e=C();d(),I("(",e.label,")")}}function _xe(t,n){if(1&t&&(f(0,"div",10)(1,"span",15),m(2),h(),f(3,"span",16),m(4),h()()),2&t){const e=C();d(2),I(" Total: ",e.total.toFixed(2)," SKY "),d(2),I(" (",e.days," days) ")}}function bxe(t,n){1&t&&(f(0,"div",11),B(1,"mat-spinner",17),h())}function vxe(t,n){if(1&t&&(f(0,"div",12),m(1),h()),2&t){const e=C();d(),O(e.errorMsg)}}function yxe(t,n){1&t&&m(0),2&t&&I(" ",C().$implicit.amount.toFixed(6)," ")}function Cxe(t,n){1&t&&(f(0,"span",19),m(1,"-"),h())}function wxe(t,n){1&t&&m(0),2&t&&I(" ",C().$implicit.share.toFixed(4),"% ")}function xxe(t,n){1&t&&(f(0,"span",19),m(1,"-"),h())}function Sxe(t,n){if(1&t&&(f(0,"a",20),m(1),h()),2&t){const e=C().$implicit;v("href","https://explorer.skycoin.com/app/transaction/"+e.txid,ho),d(),I(" ",e.txid.substring(0,12),"... ")}}function kxe(t,n){1&t&&(f(0,"span",19),m(1,"-"),h())}function Dxe(t,n){if(1&t&&(f(0,"tr")(1,"td"),m(2),h(),f(3,"td"),S(4,yxe,1,1)(5,Cxe,2,0,"span",19),h(),f(6,"td"),S(7,wxe,1,1)(8,xxe,2,0,"span",19),h(),f(9,"td")(10,"span"),m(11),h()(),f(12,"td"),S(13,Sxe,2,2,"a",20)(14,kxe,2,0,"span",19),h()()),2&t){const e=n.$implicit,i=C(2);at(i.statusClass(e)),d(2),O(i.formatDate(e.date)),d(2),k(e.amount>0?4:5),d(3),k(e.share>0?7:8),d(3),at("status-badge "+i.statusClass(e)),d(),O(i.statusText(e)),d(2),k(e.txid?13:14)}}function Txe(t,n){if(1&t&&(f(0,"table",13)(1,"tr")(2,"th"),m(3,"Date"),h(),f(4,"th"),m(5,"Amount (SKY)"),h(),f(6,"th"),m(7,"Share (%)"),h(),f(8,"th"),m(9,"Status"),h(),f(10,"th"),m(11,"Transaction"),h()(),we(12,Dxe,15,9,"tr",18,mxe),h()),2&t){const e=C();d(12),xe(e.history)}}function Mxe(t,n){1&t&&(f(0,"div",14),m(1," No reward data available for this visor. "),h())}let Exe=(()=>{class t{constructor(e,i,o,r){this.http=e,this.route=i,this.nodeComponent=o,this.storageService=r,this.pk="",this.label="",this.history=[],this.loading=!1,this.days=30,this.total=0,this.errorMsg=""}ngOnInit(){this.pk=this.nodeComponent.node?.localPk||this.route.snapshot.parent?.paramMap.get("key")||"";const e=this.storageService.getLabelInfo(this.pk);this.label=e?.label||"",this.loadHistory()}ngOnDestroy(){this.routeSub?.unsubscribe(),this.dataSub?.unsubscribe()}loadHistory(){this.pk&&(this.loading=!0,this.errorMsg="",this.dataSub=this.http.get(`/api/rewards/skycoin-rewards/visor/${this.pk}?days=${this.days}`).pipe(go(e=>(this.errorMsg="Failed to load reward data",ae({history:[]})))).subscribe(e=>{this.history=e?.history||[],this.total=this.history.reduce((i,o)=>i+(o.amount||0),0),this.loading=!1}))}changeDays(e){this.days=e,this.loadHistory()}formatDate(e){return new Date(e+"T00:00:00").toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}statusClass(e){return e.amount&&0!==e.amount?e.sent?"sent":"pending":"no-reward"}statusText(e){return e.amount&&0!==e.amount?e.sent?"Sent":"Pending":"No reward"}static{this.\u0275fac=function(i){return new(i||t)(P(ga),P(Ei),P(ke),P(zn))}}static{this.\u0275cmp=se({type:t,selectors:[["app-node-rewards"]],standalone:!1,decls:24,vars:13,consts:[[1,"rounded-elevated-box","mt-3"],[1,"box-internal-container","overflow"],[1,"d-flex","justify-content-between","align-items-center","mb-3"],[1,"title"],[1,"label-text","ml-2"],[1,"d-flex","align-items-center"],[1,"mr-2",2,"font-size","0.85em","color","#ccc"],["mat-button","",3,"click"],[1,"pk-row","mb-3"],[2,"font-size","0.75em","color","#999"],[1,"total-row","mb-3"],[1,"d-flex","justify-content-center","py-4"],[1,"error-msg","py-2"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid"],[1,"py-4","text-center",2,"color","#999"],[2,"font-size","1.1em","font-weight","bold","color","#4caf50"],[2,"font-size","0.85em","color","#999","margin-left","12px"],["diameter","30"],[3,"class"],[2,"color","#666"],["target","_blank","rel","noopener",2,"font-size","0.8em","color","#3399ff",3,"href"]],template:function(i,o){1&i&&(f(0,"div",0)(1,"div",1)(2,"div",2)(3,"div")(4,"span",3),m(5,"Reward History"),h(),S(6,gxe,2,1,"span",4),h(),f(7,"div",5)(8,"span",6),m(9,"Show:"),h(),f(10,"button",7),L("click",function(){return o.changeDays(7)}),m(11,"7d"),h(),f(12,"button",7),L("click",function(){return o.changeDays(30)}),m(13,"30d"),h(),f(14,"button",7),L("click",function(){return o.changeDays(90)}),m(15,"90d"),h()()(),f(16,"div",8)(17,"span",9),m(18),h()(),S(19,_xe,5,2,"div",10),S(20,bxe,2,0,"div",11),S(21,vxe,2,1,"div",12),S(22,Txe,14,0,"table",13),S(23,Mxe,2,0,"div",14),h()()),2&i&&(d(6),k(o.label?6:-1),d(4),Ke("active-days",7===o.days),d(2),Ke("active-days",30===o.days),d(2),Ke("active-days",90===o.days),d(4),O(o.pk),d(),k(!o.loading&&o.history.length>0?19:-1),d(),k(o.loading?20:-1),d(),k(o.errorMsg?21:-1),d(),k(!o.loading&&o.history.length>0?22:-1),d(),k(o.loading||0!==o.history.length||o.errorMsg?-1:23))},dependencies:[Jn,$o],styles:[".title[_ngcontent-%COMP%]{font-size:1.1em;font-weight:700;color:#f8f9f9}.label-text[_ngcontent-%COMP%]{font-size:.9em;color:#aaa}.active-days[_ngcontent-%COMP%]{color:#4caf50!important;font-weight:700}.total-row[_ngcontent-%COMP%]{padding:8px 0;border-bottom:1px solid rgba(255,255,255,.1)}.error-msg[_ngcontent-%COMP%]{color:#f44336;text-align:center}.status-badge[_ngcontent-%COMP%]{padding:2px 8px;border-radius:4px;font-size:.8em}.status-badge.sent[_ngcontent-%COMP%]{background:#4caf5033;color:#4caf50}.status-badge.pending[_ngcontent-%COMP%]{background:#ffc10733;color:#ffc107}.status-badge.no-reward[_ngcontent-%COMP%]{color:#666}tr.sent[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border-left:2px solid rgba(76,175,80,.3)}tr.pending[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border-left:2px solid rgba(255,193,7,.3)}"]})}}return t})();function Ak(t=0,n=vf){return t<0&&(t=0),Ul(t,t,n)}let Ixe=(()=>{class t{constructor(e){this.apiService=e}get(){return this.apiService.get("service-health")}static{this.\u0275fac=function(i){return new(i||t)(le(br))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const Pxe=()=>["nodes.services-health-title"];function Oxe(t,n){1&t&&(f(0,"div",4),B(1,"mat-spinner",6),f(2,"span",7),m(3),b(4,"translate"),h()()),2&t&&(d(),v("diameter",16),d(2),O(y(4,2,"services-health.loading")))}function Axe(t,n){if(1&t&&(f(0,"div",5)(1,"mat-icon"),m(2,"error_outline"),h(),f(3,"span",7),m(4),h()()),2&t){const e=C();d(4),O(e.error)}}function Rxe(t,n){1&t&&(f(0,"mat-icon",14),m(1,"warning"),h(),f(2,"span"),m(3),b(4,"translate"),h()),2&t&&(d(3),O(y(4,1,"services-health.degraded")))}function Nxe(t,n){1&t&&(f(0,"mat-icon",15),m(1,"check_circle"),h(),f(2,"span"),m(3),b(4,"translate"),h()),2&t&&(d(3),O(y(4,1,"services-health.all-ok")))}function Fxe(t,n){if(1&t&&(f(0,"span",9),m(1),b(2,"translate"),b(3,"date"),h()),2&t){const e=C(2);d(),Hn(" \u2014 ",y(2,2,"services-health.last-updated"),": ",Ee(3,4,e.lastUpdated,"HH:mm:ss")," ")}}function Lxe(t,n){if(1&t&&(f(0,"code"),m(1),h()),2&t){const e=C().$implicit;d(),O(e.version)}}function Bxe(t,n){1&t&&(f(0,"span",16),m(1,"\u2014"),h())}function Vxe(t,n){if(1&t&&(f(0,"tr")(1,"td"),B(2,"span"),h(),f(3,"td")(4,"strong"),m(5),h()(),f(6,"td"),m(7),h(),f(8,"td"),m(9),h(),f(10,"td"),S(11,Lxe,2,1,"code")(12,Bxe,2,0,"span",16),h(),f(13,"td")(14,"code",16),m(15),h()()()),2&t){const e=n.$implicit,i=C(2);d(2),at(i.statusClass(e)),d(3),O(e.name),d(2),I(" ",e.status," "),d(),at(i.latencyClass(e)),d(),I(" ",e.latency_ms,"\xa0ms "),d(2),k(e.version?11:12),d(4),O(i.shortUrl(e.url))}}function Hxe(t,n){if(1&t&&(f(0,"div",19)(1,"span",16),m(2),b(3,"translate"),h(),f(4,"code"),m(5),h()()),2&t){const e=C().$implicit;d(2),I("",y(3,2,"services-health.version"),":"),d(3),O(e.version)}}function jxe(t,n){if(1&t&&(f(0,"div",20),m(1),h()),2&t){const e=C().$implicit;d(),O(e.error)}}function Uxe(t,n){if(1&t&&(f(0,"div",13)(1,"div",17),B(2,"span"),f(3,"strong",7),m(4),h(),f(5,"span",18),m(6),h()(),f(7,"div",19)(8,"span",16),m(9),b(10,"translate"),h(),m(11),h(),S(12,Hxe,6,4,"div",19),f(13,"div",19)(14,"span",16),m(15),b(16,"translate"),h(),f(17,"code",16),m(18),h()(),S(19,jxe,2,1,"div",20),h()),2&t){const e=n.$implicit,i=C(2);d(2),at(i.statusClass(e)),d(2),O(e.name),d(),at(i.latencyClass(e)),d(),I("",e.latency_ms,"\xa0ms"),d(3),I("",y(10,12,"services-health.status"),":"),d(2),I(" ",e.status," "),d(),k(e.version?12:-1),d(3),I("",y(16,14,"services-health.endpoint"),":"),d(3),O(i.shortUrl(e.url)),d(),k(e.error?19:-1)}}function zxe(t,n){if(1&t&&(f(0,"div",8),S(1,Rxe,5,3)(2,Nxe,5,3),S(3,Fxe,4,7,"span",9),h(),f(4,"table",10)(5,"tr"),B(6,"th",11),f(7,"th"),m(8),b(9,"translate"),h(),f(10,"th"),m(11),b(12,"translate"),h(),f(13,"th"),m(14),b(15,"translate"),h(),f(16,"th"),m(17),b(18,"translate"),h(),f(19,"th"),m(20),b(21,"translate"),h()(),we(22,Vxe,16,9,"tr",null,Dh().trackByName,!0),h(),f(24,"div",12),we(25,Uxe,20,16,"div",13,Dh().trackByName,!0),h()),2&t){const e=C();d(),k(e.anyDown()?1:2),d(2),k(e.lastUpdated?3:-1),d(5),O(y(9,7,"services-health.service")),d(3),O(y(12,9,"services-health.status")),d(3),O(y(15,11,"services-health.latency")),d(3),O(y(18,13,"services-health.version")),d(3),O(y(21,15,"services-health.endpoint")),d(2),xe(e.entries),d(3),xe(e.entries)}}let $xe=(()=>{class t extends Wn{constructor(e){super(),this.healthSvc=e,this.tabsData=[],this.entries=[],this.loading=!0,this.error=null,this.lastUpdated=null,this.tabsData=[{icon:"view_headline",label:"nodes.title",linkParts:["/nodes"]},{icon:"monetization_on",label:"nodes.rewards-title",linkParts:["/nodes","rewards"]},{icon:"health_and_safety",label:"nodes.services-health-title",linkParts:["/nodes","services-health"]},{icon:"hub",label:"nodes.dmsg-settings-title",linkParts:["/nodes","dmsg-settings"]},{icon:"bubble_chart",label:"node.details.tpviz.title",linkParts:[],externalUrl:"/tp-viz/"},{icon:"settings",label:"settings.title",linkParts:["/settings"]}]}ngOnInit(){return this.sub=Ak(15e3).pipe(to(0),Zn(()=>this.healthSvc.get())).subscribe({next:e=>{this.entries=e||[],this.loading=!1,this.error=null,this.lastUpdated=new Date},error:e=>{this.loading=!1,this.error=e?.message||"Failed to fetch services health"}}),super.ngOnInit()}ngOnDestroy(){this.sub&&this.sub.unsubscribe()}statusClass(e){const i=(e?.status||"").toUpperCase();return"OK"===i?"dot-green":"DOWN"===i?"dot-red":"dot-outline-gray"}anyDown(){return this.entries.some(e=>"OK"!==(e?.status||"").toUpperCase())}latencyClass(e){const i=e?.latency_ms??0;return i<500?"latency-fast":i<2e3?"latency-medium":"latency-slow"}shortUrl(e){if(!e)return"";try{return new URL(e).host}catch{return e}}trackByName(e,i){return i.name}static{this.\u0275fac=function(i){return new(i||t)(P(Ixe))}}static{this.\u0275cmp=se({type:t,selectors:[["app-services-health"]],standalone:!1,features:[be],decls:7,vars:8,consts:[[1,"row"],[1,"col-12"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton"],[1,"content","col-12","mt-4.5"],[1,"loading-row"],[1,"error-row"],[3,"diameter"],[1,"ml-2"],[1,"summary-line"],[1,"last-updated"],[1,"responsive-table-translucid","d-none","d-md-table","mt-3"],[1,"small-column"],[1,"d-md-none","mt-3"],[1,"mobile-card"],[1,"warn"],[1,"ok"],[1,"dim"],[1,"mobile-header"],[1,"ml-auto"],[1,"mobile-row"],[1,"error-detail"]],template:function(i,o){1&i&&(f(0,"div",0)(1,"div",1),B(2,"app-top-bar",2),h(),f(3,"div",3),S(4,Oxe,5,4,"div",4),S(5,Axe,5,1,"div",5),S(6,zxe,27,17),h()()),2&i&&(d(2),v("titleParts",Mt(7,Pxe))("tabsData",o.tabsData)("selectedTabIndex",2)("showUpdateButton",!1),d(2),k(o.loading&&0===o.entries.length?4:-1),d(),k(o.error&&0===o.entries.length?5:-1),d(),k(o.entries.length>0?6:-1))},dependencies:[lt,$o,As,g_,Se],styles:[".loading-row[_ngcontent-%COMP%]{display:flex;align-items:center;color:#ffffffbf;padding:24px 0}.error-row[_ngcontent-%COMP%]{display:flex;align-items:center;color:#f87171;padding:24px 0}.summary-line[_ngcontent-%COMP%]{display:flex;align-items:center;color:#ffffffe6;font-size:.95em}.summary-line[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:20px;width:20px;height:20px;margin-right:6px}.summary-line[_ngcontent-%COMP%] mat-icon.ok[_ngcontent-%COMP%]{color:#4ade80}.summary-line[_ngcontent-%COMP%] mat-icon.warn[_ngcontent-%COMP%]{color:#fbbf24}.summary-line[_ngcontent-%COMP%] .last-updated[_ngcontent-%COMP%]{color:#ffffff8c;font-size:.85em;margin-left:8px}.small-column[_ngcontent-%COMP%]{width:24px}.dim[_ngcontent-%COMP%]{color:#ffffff8c}.latency-fast[_ngcontent-%COMP%]{color:#4ade80}.latency-medium[_ngcontent-%COMP%]{color:#fbbf24}.latency-slow[_ngcontent-%COMP%]{color:#f87171}.error-detail[_ngcontent-%COMP%]{color:#f87171;font-size:.8em;margin-top:4px}.mobile-card[_ngcontent-%COMP%]{background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:6px;padding:12px;margin-bottom:10px}.mobile-card[_ngcontent-%COMP%] .mobile-header[_ngcontent-%COMP%]{display:flex;align-items:center;margin-bottom:8px;font-size:1em}.mobile-card[_ngcontent-%COMP%] .mobile-row[_ngcontent-%COMP%]{font-size:.85em;color:#ffffffd9;padding:2px 0}.mobile-card[_ngcontent-%COMP%] .mobile-row[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{color:#ffffffd9}code[_ngcontent-%COMP%]{font-family:monospace;font-size:.9em}"]})}}return t})(),Wxe=(()=>{class t{constructor(e){this.apiService=e}getSessions(){return this.apiService.get("dmsg/sessions")}connectAll(){return this.apiService.post("dmsg/connect-all")}setSessionsCount(e){return this.apiService.put("dmsg/sessions-count",{count:e})}static{this.\u0275fac=function(i){return new(i||t)(le(br))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const Gxe=()=>["nodes.dmsg-settings-title"];function qxe(t,n){1&t&&(f(0,"div",4),B(1,"mat-spinner",6),f(2,"span",7),m(3),b(4,"translate"),h()()),2&t&&(d(),v("diameter",16),d(2),O(y(4,2,"dmsg-settings.loading")))}function Kxe(t,n){if(1&t&&(f(0,"div",5)(1,"mat-icon"),m(2,"error_outline"),h(),f(3,"span",7),m(4),h()()),2&t){const e=C();d(4),O(e.error)}}function Yxe(t,n){if(1&t&&(f(0,"span",10),m(1),b(2,"translate"),b(3,"date"),h()),2&t){const e=C(2);d(),Hn(" \u2014 ",y(2,2,"dmsg-settings.last-updated"),": ",Ee(3,4,e.lastUpdated,"HH:mm:ss")," ")}}function Xxe(t,n){1&t&&B(0,"mat-spinner",14),2&t&&v("diameter",14)}function Zxe(t,n){1&t&&B(0,"mat-spinner",14),2&t&&v("diameter",14)}function Qxe(t,n){if(1&t&&(f(0,"div",22),m(1),b(2,"translate"),h()),2&t){const e=C(3);d(),Hn(" ",y(2,2,"dmsg-settings.result-failed"),": ",e.objectKeys(e.lastActionResult.failed).length," ")}}function Jxe(t,n){if(1&t&&(f(0,"div",18)(1,"span",21),m(2),h(),m(3),b(4,"translate"),b(5,"translate"),b(6,"translate"),S(7,Qxe,3,4,"div",22),h()),2&t){const e=C(2);d(2),I("",e.lastActionLabel,":"),d(),R0(" ",y(4,8,"dmsg-settings.result-total")," ",e.lastActionResult.total,", ",y(5,10,"dmsg-settings.result-already")," ",e.lastActionResult.already_connected,", ",y(6,12,"dmsg-settings.result-new")," ",e.lastActionResult.newly_connected," "),d(4),k(e.lastActionResult.failed&&e.objectKeys(e.lastActionResult.failed).length>0?7:-1)}}function eSe(t,n){if(1&t&&(f(0,"div",29),m(1),h()),2&t){const e=n.$implicit;d(),O(e)}}function tSe(t,n){if(1&t&&(f(0,"div",27),we(1,eSe,2,1,"div",29,Dh().trackByPk,!0),h()),2&t){const e=C().$implicit;d(),xe(e.servers)}}function nSe(t,n){1&t&&(f(0,"div",28),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"dmsg-settings.no-sessions")))}function iSe(t,n){if(1&t&&(f(0,"div",19)(1,"div",23)(2,"span",24),m(3),h(),f(4,"span",25),m(5),b(6,"translate"),h()(),f(7,"div",26),m(8),h(),S(9,tSe,3,0,"div",27)(10,nSe,3,3,"div",28),h()),2&t){const e=n.$implicit,i=C(2);d(3),O(i.roleLabel(e.role)),d(2),Hn("",e.count," ",y(6,5,"dmsg-settings.sessions")),d(3),O(e.pk),d(),k(e.servers&&e.servers.length>0?9:10)}}function oSe(t,n){1&t&&(f(0,"div",20)(1,"div",28),m(2),b(3,"translate"),h()()),2&t&&(d(2),O(y(3,1,"dmsg-settings.no-clients")))}function rSe(t,n){if(1&t){const e=ce();f(0,"div",8)(1,"mat-icon"),m(2,"hub"),h(),f(3,"span",9),m(4),b(5,"translate"),h(),S(6,Yxe,4,7,"span",10),h(),f(7,"div",11)(8,"div",12)(9,"button",13),L("click",function(){return z(e),$(C().connectAll())}),S(10,Xxe,1,1,"mat-spinner",14),m(11),b(12,"translate"),h()(),f(13,"span",15),m(14,"|"),h(),f(15,"div",12)(16,"label",16),m(17),b(18,"translate"),h(),f(19,"input",17),Di("ngModelChange",function(o){z(e);const r=C();return Bi(r.sessionsCountInput,o)||(r.sessionsCountInput=o),$(o)}),h(),f(20,"button",13),L("click",function(){return z(e),$(C().applySessionsCount())}),S(21,Zxe,1,1,"mat-spinner",14),m(22),b(23,"translate"),h()()(),S(24,Jxe,8,14,"div",18),we(25,iSe,11,7,"div",19,Dh().trackByRole,!0),S(27,oSe,4,3,"div",20)}if(2&t){const e=C();d(4),O(y(5,13,"dmsg-settings.summary")),d(2),k(e.lastUpdated?6:-1),d(3),v("disabled",e.connectAllInFlight||e.setCountInFlight),d(),k(e.connectAllInFlight?10:-1),d(),I(" ",y(12,15,"dmsg-settings.connect-all")," "),d(6),I("",y(18,17,"dmsg-settings.sessions-count-label"),":"),d(2),ki("ngModel",e.sessionsCountInput),v("disabled",e.setCountInFlight||e.connectAllInFlight),d(),v("disabled",e.setCountInFlight||e.connectAllInFlight),d(),k(e.setCountInFlight?21:-1),d(),I(" ",y(23,19,"dmsg-settings.apply-count")," "),d(2),k(e.lastActionResult?24:-1),d(),xe(e.clientList()),d(2),k(0===e.clientList().length?27:-1)}}let sSe=(()=>{class t extends Wn{constructor(e,i){super(),this.dmsgSvc=e,this.snackbar=i,this.tabsData=[],this.sessions=null,this.loading=!0,this.error=null,this.lastUpdated=null,this.sessionsCountInput=0,this.connectAllInFlight=!1,this.setCountInFlight=!1,this.lastActionResult=null,this.lastActionLabel="",this.tabsData=[{icon:"view_headline",label:"nodes.title",linkParts:["/nodes"]},{icon:"monetization_on",label:"nodes.rewards-title",linkParts:["/nodes","rewards"]},{icon:"health_and_safety",label:"nodes.services-health-title",linkParts:["/nodes","services-health"]},{icon:"hub",label:"nodes.dmsg-settings-title",linkParts:["/nodes","dmsg-settings"]},{icon:"bubble_chart",label:"node.details.tpviz.title",linkParts:[],externalUrl:"/tp-viz/"},{icon:"settings",label:"settings.title",linkParts:["/settings"]}]}ngOnInit(){return this.sub=Ak(2e4).pipe(to(0),Zn(()=>this.dmsgSvc.getSessions())).subscribe({next:e=>{this.sessions=e||{},this.loading=!1,this.error=null,this.lastUpdated=new Date},error:e=>{this.loading=!1,this.error=e?.message||"Failed to fetch dmsg sessions"}}),super.ngOnInit()}ngOnDestroy(){this.sub&&this.sub.unsubscribe()}refresh(){this.dmsgSvc.getSessions().subscribe({next:e=>{this.sessions=e||{},this.lastUpdated=new Date},error:()=>{}})}connectAll(){this.connectAllInFlight||(this.connectAllInFlight=!0,this.lastActionResult=null,this.dmsgSvc.connectAll().subscribe({next:e=>{this.connectAllInFlight=!1,this.lastActionResult=e,this.lastActionLabel="Connect to all",this.snackbar.showDone(`Opened ${e.newly_connected} new session(s); already had ${e.already_connected}.`),this.refresh()},error:e=>{this.connectAllInFlight=!1,this.snackbar.showError(`connect-all failed: ${e?.message||"unknown error"}`)}}))}applySessionsCount(){if(!this.setCountInFlight){if(this.sessionsCountInput<0)return void this.snackbar.showError("Sessions count must be >= 0");this.setCountInFlight=!0,this.lastActionResult=null,this.dmsgSvc.setSessionsCount(this.sessionsCountInput).subscribe({next:e=>{this.setCountInFlight=!1,this.lastActionResult=e,this.lastActionLabel=`Set sessions_count = ${this.sessionsCountInput}`,this.snackbar.showDone(`Persisted sessions_count=${this.sessionsCountInput}; opened ${e.newly_connected} new session(s).`),this.refresh()},error:e=>{this.setCountInFlight=!1,this.snackbar.showError(`set-sessions failed: ${e?.message||"unknown error"}`)}})}}clientList(){const e=[];return this.sessions&&(this.sessions.main&&e.push(this.sessions.main),this.sessions.route_setup&&e.push(this.sessions.route_setup),this.sessions.transport_setup&&e.push(this.sessions.transport_setup)),e}roleLabel(e){switch(e){case"main":return"Main visor";case"route_setup":return"Route Setup Node";case"transport_setup":return"Transport Setup Node";default:return e}}trackByRole(e,i){return i.role}trackByPk(e,i){return i}objectKeys(e){return e?Object.keys(e):[]}static{this.\u0275fac=function(i){return new(i||t)(P(Wxe),P(bt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-dmsg-settings"]],standalone:!1,features:[be],decls:7,vars:8,consts:[[1,"row"],[1,"col-12"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton"],[1,"content","col-12","mt-4.5"],[1,"loading-row"],[1,"error-row"],[3,"diameter"],[1,"ml-2"],[1,"summary-line"],[1,"ml-1"],[1,"last-updated"],[1,"actions","mt-3"],[1,"action-group"],["mat-raised-button","","color","primary",3,"click","disabled"],[1,"d-inline-block","mr-2",3,"diameter"],[1,"divider"],["for","sessions-count"],["id","sessions-count","type","number","min","0","max","99",3,"ngModelChange","ngModel","disabled"],[1,"action-result"],[1,"client-card"],[1,"client-card","missing"],[1,"result-label"],[1,"result-failed"],[1,"client-header"],[1,"role"],[1,"count"],[1,"client-pk"],[1,"server-list"],[1,"empty"],[1,"server"]],template:function(i,o){1&i&&(f(0,"div",0)(1,"div",1),B(2,"app-top-bar",2),h(),f(3,"div",3),S(4,qxe,5,4,"div",4),S(5,Kxe,5,1,"div",5),S(6,rSe,28,21),h()()),2&i&&(d(2),v("titleParts",Mt(7,Gxe))("tabsData",o.tabsData)("selectedTabIndex",3)("showUpdateButton",!1),d(2),k(o.loading&&!o.sessions?4:-1),d(),k(o.error&&!o.sessions?5:-1),d(),k(o.sessions?6:-1))},dependencies:[rn,Wf,sn,sk,rk,Jn,lt,Zb,$o,As,g_,Se],styles:['@charset "UTF-8";.loading-row[_ngcontent-%COMP%]{display:flex;align-items:center;color:#ffffffbf;padding:24px 0}.error-row[_ngcontent-%COMP%]{display:flex;align-items:center;color:#f87171;padding:24px 0}.summary-line[_ngcontent-%COMP%]{display:flex;align-items:center;color:#ffffffe6;font-size:.95em}.summary-line[_ngcontent-%COMP%] .last-updated[_ngcontent-%COMP%]{color:#ffffff8c;font-size:.85em;margin-left:8px}.actions[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:16px 0 24px;padding:14px 16px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:6px}.actions[_ngcontent-%COMP%] .action-group[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.actions[_ngcontent-%COMP%] .action-group[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{color:#ffffffbf;font-size:.9em}.actions[_ngcontent-%COMP%] .action-group[_ngcontent-%COMP%] input[type=number][_ngcontent-%COMP%]{width:72px;background:#ffffff14;border:1px solid rgba(255,255,255,.15);color:#fff;padding:4px 8px;border-radius:4px;font-size:.95em}.actions[_ngcontent-%COMP%] .divider[_ngcontent-%COMP%]{color:#ffffff40;padding:0 6px}.action-result[_ngcontent-%COMP%]{margin:8px 0 20px;padding:10px 14px;background:#4ade8014;border-left:3px solid #4ade80;border-radius:4px;font-size:.9em;color:#ffffffe6}.action-result[_ngcontent-%COMP%] .result-label[_ngcontent-%COMP%]{font-weight:600;margin-right:8px}.action-result[_ngcontent-%COMP%] .result-failed[_ngcontent-%COMP%]{color:#f87171;margin-top:4px;font-size:.85em}.client-card[_ngcontent-%COMP%]{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:6px;padding:14px 16px;margin-bottom:14px}.client-card[_ngcontent-%COMP%] .client-header[_ngcontent-%COMP%]{display:flex;align-items:baseline;margin-bottom:10px;gap:10px}.client-card[_ngcontent-%COMP%] .client-header[_ngcontent-%COMP%] .role[_ngcontent-%COMP%]{font-size:1.1em;font-weight:600;color:#fff}.client-card[_ngcontent-%COMP%] .client-header[_ngcontent-%COMP%] .count[_ngcontent-%COMP%]{color:#ffffffa6;font-size:.85em}.client-card[_ngcontent-%COMP%] .client-pk[_ngcontent-%COMP%]{font-family:monospace;font-size:.8em;color:#ffffff8c;margin-bottom:10px;word-break:break-all}.client-card[_ngcontent-%COMP%] .server-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:3px}.client-card[_ngcontent-%COMP%] .server-list[_ngcontent-%COMP%] .server[_ngcontent-%COMP%]{font-family:monospace;font-size:.82em;color:#ffffffd9;padding:2px 0}.client-card[_ngcontent-%COMP%] .server-list[_ngcontent-%COMP%] .server[_ngcontent-%COMP%]:before{content:"\\2022";margin-right:8px;color:#4ade80}.client-card[_ngcontent-%COMP%] .empty[_ngcontent-%COMP%]{color:#ffffff80;font-size:.9em;font-style:italic}.client-card.missing[_ngcontent-%COMP%]{opacity:.55}']})}}return t})();function aSe(t,n){if(1&t&&B(0,"app-node-app-list",0),2&t){const e=C();v("apps",e.apps)("showShortList",!1)("nodePK",e.nodePK)}}let lSe=(()=>{class t extends Wn{ngOnInit(){return this.dataSubscription=ke.currentNode.subscribe(e=>{this.nodePK=e.localPk,this.apps=e.apps}),super.ngOnInit()}ngOnDestroy(){this.dataSubscription.unsubscribe()}static{this.\u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})()}static{this.\u0275cmp=se({type:t,selectors:[["app-all-apps"]],standalone:!1,features:[be],decls:1,vars:1,consts:[[3,"apps","showShortList","nodePK"]],template:function(i,o){1&i&&S(0,aSe,1,3,"app-node-app-list",0),2&i&&k(o.apps?0:-1)},dependencies:[N5],encapsulation:2})}}return t})();const cSe=["button"],dSe=["firstInput"],uSe=t=>({"element-disabled":t});let F5=(()=>{class t{static openDialog(e,i){const o=new Lt;return o.data=i,o.autoFocus=!1,o.width=ze.smallModalWidth,e.open(t,o)}constructor(e,i,o,r,s){this.dialogRef=e,this.data=i,this.formBuilder=o,this.snackbarService=r,this.routeService=s}ngOnInit(){this.form=this.formBuilder.group({min:[this.data.minHops,Ve.compose([Ve.required,Ve.maxLength(3),Ve.pattern("^[0-9]+$")])]}),setTimeout(()=>this.firstInput.nativeElement.focus())}ngOnDestroy(){this.operationSubscription&&this.operationSubscription.unsubscribe()}get disableDismiss(){return!!this.button&&this.button.isLoading}save(){!this.form.valid||this.operationSubscription||(this.button.showLoading(),this.operationSubscription=this.routeService.setMinHops(this.data.nodePk,Number.parseInt(this.form.get("min").value,10)).subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)}))}onSuccess(e){this.dialogRef.close(!0),this.snackbarService.showDone("router-config.done")}onError(e){this.button.showError(),this.operationSubscription=null,e=Je(e),this.snackbarService.showError(e)}static{this.\u0275fac=function(i){return new(i||t)(P(It),P(hn),P(pi),P(bt),P(v5))}}static{this.\u0275cmp=se({type:t,selectors:[["app-router-config"]],viewQuery:function(i,o){if(1&i&&rt(cSe,5)(dSe,5),2&i){let r;ue(r=he())&&(o.button=r.first),ue(r=he())&&(o.firstInput=r.first)}},standalone:!1,decls:21,vars:22,consts:[["firstInput",""],["button",""],[3,"headline","dialog","disableDismiss"],[1,"info-container"],[3,"formGroup","ngClass"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","min","maxlength","3","matInput",""],["color","primary",1,"float-right",3,"action","disabled"]],template:function(i,o){1&i&&(f(0,"app-dialog",2),b(1,"translate"),f(2,"div",3),m(3),b(4,"translate"),h(),f(5,"form",4)(6,"mat-form-field")(7,"div",5)(8,"label",6),m(9),b(10,"translate"),h(),B(11,"input",7,0),h(),f(13,"mat-error")(14,"span"),m(15),b(16,"translate"),h()()()(),f(17,"app-button",8,1),L("action",function(){return o.save()}),m(19),b(20,"translate"),h()()),2&i&&(v("headline",y(1,10,"router-config.title"))("dialog",o.dialogRef)("disableDismiss",o.disableDismiss),d(3),O(y(4,12,"router-config.info")),d(2),v("formGroup",o.form)("ngClass",oe(20,uSe,o.disableDismiss)),d(4),O(y(10,14,"router-config.min-hops")),d(6),O(y(16,16,"router-config.min-hops-error")),d(2),v("disabled",!o.form.valid),d(2),I(" ",y(20,18,"router-config.save-config-button")," "))},dependencies:[qt,Cn,rn,sn,yn,ji,Xt,fn,wn,Es,ei,On,Kt,Se],styles:[".info-container[_ngcontent-%COMP%]{margin-bottom:10px}"]})}}return t})();const hSe=["button"],fSe=["firstInput"],pSe=t=>({"element-disabled":t});let mSe=(()=>{class t{static openDialog(e,i){const o=new Lt;return o.data=i,o.autoFocus=!1,o.width=ze.smallModalWidth,e.open(t,o)}constructor(e,i,o,r,s,a){this.dialogRef=e,this.data=i,this.formBuilder=o,this.snackbarService=r,this.nodeService=s,this.dialog=a}ngOnInit(){this.form=this.formBuilder.group({address:[this.data.currentAddress,Ve.compose([Ve.minLength(20),Ve.maxLength(112)])]}),setTimeout(()=>this.firstInput.nativeElement.focus())}ngOnDestroy(){this.operationSubscription&&this.operationSubscription.unsubscribe()}get disableDismiss(){return!!this.button&&this.button.isLoading}startSaving(){if(this.form.valid&&!this.operationSubscription)if(this.form.get("address").value)this.finishSaving();else{const i=Ye.createConfirmationDialog(this.dialog,"rewards-address-config.empty-warning");i.componentInstance.operationAccepted.subscribe(()=>{i.componentInstance.closeModal(),this.finishSaving()})}}finishSaving(){this.button.showLoading();const e=this.form.get("address").value;let i=this.nodeService.setRewardsAddress(this.data.nodePk,e);e||(i=this.nodeService.deleteRewardsAddress(this.data.nodePk)),this.operationSubscription=i.subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)})}onSuccess(e){this.dialogRef.close(!0),this.snackbarService.showDone("rewards-address-config.done")}onError(e){this.button.showError(),this.operationSubscription=null,e=Je(e),this.snackbarService.showError(e)}static{this.\u0275fac=function(i){return new(i||t)(P(It),P(hn),P(pi),P(bt),P(Sr),P(kt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-rewards-address-config"]],viewQuery:function(i,o){if(1&i&&rt(hSe,5)(fSe,5),2&i){let r;ue(r=he())&&(o.button=r.first),ue(r=he())&&(o.firstInput=r.first)}},standalone:!1,decls:25,vars:25,consts:[["firstInput",""],["button",""],[3,"headline","dialog","disableDismiss"],[1,"info-container"],["href","https://github.com/skycoin/skywire/blob/develop/rewards/mainnet_rules.md","target","_blank","rel","noreferrer nofollow noopener"],[3,"formGroup","ngClass"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","address","maxlength","112","matInput",""],["color","primary",1,"float-right",3,"action","disabled"]],template:function(i,o){1&i&&(f(0,"app-dialog",2),b(1,"translate"),f(2,"div",3)(3,"span"),m(4),b(5,"translate"),h(),f(6,"a",4),m(7),b(8,"translate"),h()(),f(9,"form",5)(10,"mat-form-field")(11,"div",6)(12,"label",7),m(13),b(14,"translate"),h(),B(15,"input",8,0),h(),f(17,"mat-error")(18,"span"),m(19),b(20,"translate"),h()()()(),f(21,"app-button",9,1),L("action",function(){return o.startSaving()}),m(23),b(24,"translate"),h()()),2&i&&(v("headline",y(1,11,"rewards-address-config.title"))("dialog",o.dialogRef)("disableDismiss",o.disableDismiss),d(4),I("",y(5,13,"rewards-address-config.info")," "),d(3),I(" ",y(8,15,"rewards-address-config.more-info-link")," "),d(2),v("formGroup",o.form)("ngClass",oe(23,pSe,o.disableDismiss)),d(4),O(y(14,17,"rewards-address-config.address")),d(6),O(y(20,19,"rewards-address-config.address-error")),d(2),v("disabled",!o.form.valid),d(2),I(" ",y(24,21,"rewards-address-config.save-config-button")," "))},dependencies:[qt,Cn,rn,sn,yn,ji,Xt,fn,wn,Es,ei,On,Kt,Se],styles:[".info-container[_ngcontent-%COMP%]{margin-bottom:10px}"]})}}return t})(),gSe=(()=>{class t{constructor(e){this.clipboardService=e,this.copyEvent=new ve,this.errorEvent=new ve,this.value=""}ngOnDestroy(){this.copyEvent.complete(),this.errorEvent.complete()}copyToClipboard(){this.clipboardService.copy(this.value)?this.copyEvent.emit(this.value):this.errorEvent.emit()}static{this.\u0275fac=function(i){return new(i||t)(P(Gf))}}static{this.\u0275dir=de({type:t,selectors:[["","clipboard",""]],hostBindings:function(i,o){1&i&&L("click",function(){return o.copyToClipboard()})},inputs:{value:[0,"clipboard","value"]},outputs:{copyEvent:"copyEvent",errorEvent:"errorEvent"},standalone:!1})}}return t})();const _Se=t=>({text:t}),bSe=()=>({"tooltip-word-break":!0});function vSe(t,n){if(1&t&&(B(0,"app-truncated-text",2),f(1,"mat-icon",3),m(2,"filter_none"),h()),2&t){const e=C();v("short",e.short)("showTooltip",!1)("shortTextLength",e.shortTextLength)("text",e.text),d(),v("inline",!0)}}function ySe(t,n){if(1&t&&(f(0,"div",1)(1,"div",4),m(2),h(),f(3,"mat-icon",3),m(4,"filter_none"),h()()),2&t){const e=C();d(2),O(e.text),d(),v("inline",!0)}}let Rk=(()=>{class t{constructor(e){this.snackbarService=e,this.short=!1,this.shortSimple=!1,this.shortTextLength=5}onCopyToClipboardClicked(){this.snackbarService.showDone("copy.copied")}static{this.\u0275fac=function(i){return new(i||t)(P(bt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-copy-to-clipboard-text"]],inputs:{text:"text",short:"short",shortSimple:"shortSimple",shortTextLength:"shortTextLength"},standalone:!1,decls:4,vars:11,consts:[[1,"wrapper","highlight-internal-icon",3,"copyEvent","clipboard","matTooltip","matTooltipClass"],[1,"d-flex"],[1,"text-margin",3,"short","showTooltip","shortTextLength","text"],[3,"inline"],[1,"single-line","text-margin"]],template:function(i,o){1&i&&(f(0,"div",0),b(1,"translate"),L("copyEvent",function(){return o.onCopyToClipboardClicked()}),S(2,vSe,3,5),S(3,ySe,5,2,"div",1),h()),2&i&&(v("clipboard",o.text)("matTooltip",Ee(1,5,o.short||o.shortSimple?"copy.tooltip-with-text":"copy.tooltip",oe(8,_Se,o.text)))("matTooltipClass",Mt(10,bSe)),d(2),k(o.shortSimple?-1:2),d(),k(o.shortSimple?3:-1))},dependencies:[lt,pn,gSe,g5,Se],styles:['.cursor-pointer[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%], .wrapper[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media(max-width:767px),(min-width:992px)and (max-width:1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media(max-width:767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}.wrapper[_ngcontent-%COMP%]{display:inline}.wrapper[_ngcontent-%COMP%] .text-margin[_ngcontent-%COMP%]{margin-right:5px}.wrapper[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:.6rem;-webkit-user-select:none;user-select:none;flex-shrink:0;display:inline!important}']})}}return t})();function du(t){return t+.5|0}const Rs=(t,n,e)=>Math.max(Math.min(t,e),n);function Yf(t){return Rs(du(2.55*t),0,255)}function Ma(t){return Rs(du(255*t),0,255)}function Ns(t){return Rs(du(t/2.55)/100,0,1)}function L5(t){return Rs(du(100*t),0,100)}const Ko={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},Nk=[..."0123456789ABCDEF"],CSe=t=>Nk[15&t],wSe=t=>Nk[(240&t)>>4]+Nk[15&t],uv=t=>(240&t)>>4==(15&t);const TSe=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function B5(t,n,e){const i=n*Math.min(e,1-e),o=(r,s=(r+t/30)%12)=>e-i*Math.max(Math.min(s-3,9-s,1),-1);return[o(0),o(8),o(4)]}function MSe(t,n,e){const i=(o,r=(o+t/60)%6)=>e-e*n*Math.max(Math.min(r,4-r,1),0);return[i(5),i(3),i(1)]}function ESe(t,n,e){const i=B5(t,1,.5);let o;for(n+e>1&&(o=1/(n+e),n*=o,e*=o),o=0;o<3;o++)i[o]*=1-n-e,i[o]+=n;return i}function Fk(t){const e=t.r/255,i=t.g/255,o=t.b/255,r=Math.max(e,i,o),s=Math.min(e,i,o),a=(r+s)/2;let l,c,u;return r!==s&&(u=r-s,c=a>.5?u/(2-r-s):u/(r+s),l=function ISe(t,n,e,i,o){return t===o?(n-e)/i+(nt<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055,uu=t=>t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4);function fv(t,n,e){if(t){let i=Fk(t);i[n]=Math.max(0,Math.min(i[n]+i[n]*e,0===n?360:1)),i=Bk(i),t.r=i[0],t.g=i[1],t.b=i[2]}}function U5(t,n){return t&&Object.assign(n||{},t)}function z5(t){var n={r:0,g:0,b:0,a:255};return Array.isArray(t)?t.length>=3&&(n={r:t[0],g:t[1],b:t[2],a:255},t.length>3&&(n.a=Ma(t[3]))):(n=U5(t,{r:0,g:0,b:0,a:1})).a=Ma(n.a),n}function USe(t){return"r"===t.charAt(0)?function VSe(t){const n=BSe.exec(t);let i,o,r,e=255;if(n){if(n[7]!==i){const s=+n[7];e=n[8]?Yf(s):Rs(255*s,0,255)}return i=+n[1],o=+n[3],r=+n[5],i=255&(n[2]?Yf(i):Rs(i,0,255)),o=255&(n[4]?Yf(o):Rs(o,0,255)),r=255&(n[6]?Yf(r):Rs(r,0,255)),{r:i,g:o,b:r,a:e}}}(t):function ASe(t){const n=TSe.exec(t);let i,e=255;if(!n)return;n[5]!==i&&(e=n[6]?Yf(+n[5]):Ma(+n[5]));const o=V5(+n[2]),r=+n[3]/100,s=+n[4]/100;return i="hwb"===n[1]?function PSe(t,n,e){return Lk(ESe,t,n,e)}(o,r,s):"hsv"===n[1]?function OSe(t,n,e){return Lk(MSe,t,n,e)}(o,r,s):Bk(o,r,s),{r:i[0],g:i[1],b:i[2],a:e}}(t)}class hu{constructor(n){if(n instanceof hu)return n;const e=typeof n;let i;"object"===e?i=z5(n):"string"===e&&(i=function SSe(t){var e,n=t.length;return"#"===t[0]&&(4===n||5===n?e={r:255&17*Ko[t[1]],g:255&17*Ko[t[2]],b:255&17*Ko[t[3]],a:5===n?17*Ko[t[4]]:255}:(7===n||9===n)&&(e={r:Ko[t[1]]<<4|Ko[t[2]],g:Ko[t[3]]<<4|Ko[t[4]],b:Ko[t[5]]<<4|Ko[t[6]],a:9===n?Ko[t[7]]<<4|Ko[t[8]]:255})),e}(n)||function LSe(t){hv||(hv=function FSe(){const t={},n=Object.keys(j5),e=Object.keys(H5);let i,o,r,s,a;for(i=0;i>16&255,r>>8&255,255&r]}return t}(),hv.transparent=[0,0,0,0]);const n=hv[t.toLowerCase()];return n&&{r:n[0],g:n[1],b:n[2],a:4===n.length?n[3]:255}}(n)||USe(n)),this._rgb=i,this._valid=!!i}get valid(){return this._valid}get rgb(){var n=U5(this._rgb);return n&&(n.a=Ns(n.a)),n}set rgb(n){this._rgb=z5(n)}rgbString(){return this._valid?function HSe(t){return t&&(t.a<255?`rgba(${t.r}, ${t.g}, ${t.b}, ${Ns(t.a)})`:`rgb(${t.r}, ${t.g}, ${t.b})`)}(this._rgb):void 0}hexString(){return this._valid?function DSe(t){var n=(t=>uv(t.r)&&uv(t.g)&&uv(t.b)&&uv(t.a))(t)?CSe:wSe;return t?"#"+n(t.r)+n(t.g)+n(t.b)+((t,n)=>t<255?n(t):"")(t.a,n):void 0}(this._rgb):void 0}hslString(){return this._valid?function NSe(t){if(!t)return;const n=Fk(t),e=n[0],i=L5(n[1]),o=L5(n[2]);return t.a<255?`hsla(${e}, ${i}%, ${o}%, ${Ns(t.a)})`:`hsl(${e}, ${i}%, ${o}%)`}(this._rgb):void 0}mix(n,e){if(n){const i=this.rgb,o=n.rgb;let r;const s=e===r?.5:e,a=2*s-1,l=i.a-o.a,c=((a*l===-1?a:(a+l)/(1+a*l))+1)/2;r=1-c,i.r=255&c*i.r+r*o.r+.5,i.g=255&c*i.g+r*o.g+.5,i.b=255&c*i.b+r*o.b+.5,i.a=s*i.a+(1-s)*o.a,this.rgb=i}return this}interpolate(n,e){return n&&(this._rgb=function jSe(t,n,e){const i=uu(Ns(t.r)),o=uu(Ns(t.g)),r=uu(Ns(t.b));return{r:Ma(Vk(i+e*(uu(Ns(n.r))-i))),g:Ma(Vk(o+e*(uu(Ns(n.g))-o))),b:Ma(Vk(r+e*(uu(Ns(n.b))-r))),a:t.a+e*(n.a-t.a)}}(this._rgb,n._rgb,e)),this}clone(){return new hu(this.rgb)}alpha(n){return this._rgb.a=Ma(n),this}clearer(n){return this._rgb.a*=1-n,this}greyscale(){const n=this._rgb,e=du(.3*n.r+.59*n.g+.11*n.b);return n.r=n.g=n.b=e,this}opaquer(n){return this._rgb.a*=1+n,this}negate(){const n=this._rgb;return n.r=255-n.r,n.g=255-n.g,n.b=255-n.b,this}lighten(n){return fv(this._rgb,2,n),this}darken(n){return fv(this._rgb,2,-n),this}saturate(n){return fv(this._rgb,1,n),this}desaturate(n){return fv(this._rgb,1,-n),this}rotate(n){return function RSe(t,n){var e=Fk(t);e[0]=V5(e[0]+n),e=Bk(e),t.r=e[0],t.g=e[1],t.b=e[2]}(this._rgb,n),this}}const zSe=(()=>{let t=0;return()=>t++})();function dt(t){return null==t}function cn(t){if(Array.isArray&&Array.isArray(t))return!0;const n=Object.prototype.toString.call(t);return"[object"===n.slice(0,7)&&"Array]"===n.slice(-6)}function pt(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)}function An(t){return("number"==typeof t||t instanceof Number)&&isFinite(+t)}function Io(t,n){return An(t)?t:n}function $e(t,n){return typeof t>"u"?n:t}function Qt(t,n,e){if(t&&"function"==typeof t.call)return t.apply(e,n)}function Bt(t,n,e,i){let o,r,s;if(cn(t))if(r=t.length,i)for(o=r-1;o>=0;o--)n.call(e,t[o],o);else for(o=0;ot,x:t=>t.x,y:t=>t.y};function Ea(t,n){return(G5[n]||(G5[n]=function KSe(t){const n=function qSe(t){const n=t.split("."),e=[];let i="";for(const o of n)i+=o,i.endsWith("\\")?i=i.slice(0,-1)+".":(e.push(i),i="");return e}(t);return e=>{for(const i of n){if(""===i)break;e=e&&e[i]}return e}}(n)))(t)}function Hk(t){return t.charAt(0).toUpperCase()+t.slice(1)}const Qf=t=>typeof t<"u",Ia=t=>"function"==typeof t,q5=(t,n)=>{if(t.size!==n.size)return!1;for(const e of t)if(!n.has(e))return!1;return!0},Dt=Math.PI,dn=2*Dt,XSe=dn+Dt,gv=Number.POSITIVE_INFINITY,ZSe=Dt/180,Gn=Dt/2,dc=Dt/4,K5=2*Dt/3,Pa=Math.log10,Qr=Math.sign;function Jf(t,n,e){return Math.abs(t-n)l&&c=Math.min(n,e)-i&&t<=Math.max(n,e)+i}function zk(t,n,e){e=e||(s=>t[s]1;)r=o+i>>1,e(r)?o=r:i=r;return{lo:o,hi:i}}const Bs=(t,n,e,i)=>zk(t,e,i?o=>{const r=t[o][n];return rt[o][n]zk(t,e,i=>t[i][n]>=e),J5=["push","pop","shift","splice","unshift"];function eH(t,n){const e=t._chartjs;if(!e)return;const i=e.listeners,o=i.indexOf(n);-1!==o&&i.splice(o,1),!(i.length>0)&&(J5.forEach(r=>{delete t[r]}),delete t._chartjs)}const nH=typeof window>"u"?function(t){return t()}:window.requestAnimationFrame;function iH(t,n){let e=[],i=!1;return function(...o){e=o,i||(i=!0,nH.call(window,()=>{i=!1,t.apply(n,e)}))}}const $i=(t,n,e)=>"start"===t?n:"end"===t?e:(n+e)/2;const _v=t=>0===t||1===t,sH=(t,n,e)=>-Math.pow(2,10*(t-=1))*Math.sin((t-n)*dn/e),aH=(t,n,e)=>Math.pow(2,-10*t)*Math.sin((t-n)*dn/e)+1,tp={linear:t=>t,easeInQuad:t=>t*t,easeOutQuad:t=>-t*(t-2),easeInOutQuad:t=>(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1),easeInCubic:t=>t*t*t,easeOutCubic:t=>(t-=1)*t*t+1,easeInOutCubic:t=>(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2),easeInQuart:t=>t*t*t*t,easeOutQuart:t=>-((t-=1)*t*t*t-1),easeInOutQuart:t=>(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2),easeInQuint:t=>t*t*t*t*t,easeOutQuint:t=>(t-=1)*t*t*t*t+1,easeInOutQuint:t=>(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2),easeInSine:t=>1-Math.cos(t*Gn),easeOutSine:t=>Math.sin(t*Gn),easeInOutSine:t=>-.5*(Math.cos(Dt*t)-1),easeInExpo:t=>0===t?0:Math.pow(2,10*(t-1)),easeOutExpo:t=>1===t?1:1-Math.pow(2,-10*t),easeInOutExpo:t=>_v(t)?t:t<.5?.5*Math.pow(2,10*(2*t-1)):.5*(2-Math.pow(2,-10*(2*t-1))),easeInCirc:t=>t>=1?t:-(Math.sqrt(1-t*t)-1),easeOutCirc:t=>Math.sqrt(1-(t-=1)*t),easeInOutCirc:t=>(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1),easeInElastic:t=>_v(t)?t:sH(t,.075,.3),easeOutElastic:t=>_v(t)?t:aH(t,.075,.3),easeInOutElastic:t=>_v(t)?t:t<.5?.5*sH(2*t,.1125,.45):.5+.5*aH(2*t-1,.1125,.45),easeInBack:t=>t*t*(2.70158*t-1.70158),easeOutBack:t=>(t-=1)*t*(2.70158*t+1.70158)+1,easeInOutBack(t){let n=1.70158;return(t/=.5)<1?t*t*((1+(n*=1.525))*t-n)*.5:.5*((t-=2)*t*((1+(n*=1.525))*t+n)+2)},easeInBounce:t=>1-tp.easeOutBounce(1-t),easeOutBounce:t=>t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375,easeInOutBounce:t=>t<.5?.5*tp.easeInBounce(2*t):.5*tp.easeOutBounce(2*t-1)+.5};function Wk(t){if(t&&"object"==typeof t){const n=t.toString();return"[object CanvasPattern]"===n||"[object CanvasGradient]"===n}return!1}function lH(t){return Wk(t)?t:new hu(t)}function Gk(t){return Wk(t)?t:new hu(t).saturate(.5).darken(.1).hexString()}const lke=["x","y","borderWidth","radius","tension"],cke=["color","borderColor","backgroundColor"],cH=new Map;function np(t,n,e){return function hke(t,n){n=n||{};const e=t+JSON.stringify(n);let i=cH.get(e);return i||(i=new Intl.NumberFormat(t,n),cH.set(e,i)),i}(n,e).format(t)}const dH={values:t=>cn(t)?t:""+t,numeric(t,n,e){if(0===t)return"0";const i=this.chart.options.locale;let o,r=t;if(e.length>1){const c=Math.max(Math.abs(e[0].value),Math.abs(e[e.length-1].value));(c<1e-4||c>1e15)&&(o="scientific"),r=function fke(t,n){let e=n.length>3?n[2].value-n[1].value:n[1].value-n[0].value;return Math.abs(e)>=1&&t!==Math.floor(t)&&(e=t-Math.floor(t)),e}(t,e)}const s=Pa(Math.abs(r)),a=isNaN(s)?1:Math.max(Math.min(-1*Math.floor(s),20),0),l={notation:o,minimumFractionDigits:a,maximumFractionDigits:a};return Object.assign(l,this.options.ticks.format),np(t,i,l)},logarithmic(t,n,e){if(0===t)return"0";const i=e[n].significand||t/Math.pow(10,Math.floor(Pa(t)));return[1,2,3,5,10,15].includes(i)||n>.8*e.length?dH.numeric.call(this,t,n,e):""}};var bv={formatters:dH};const uc=Object.create(null),qk=Object.create(null);function ip(t,n){if(!n)return t;const e=n.split(".");for(let i=0,o=e.length;ii.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(i,o)=>Gk(o.backgroundColor),this.hoverBorderColor=(i,o)=>Gk(o.borderColor),this.hoverColor=(i,o)=>Gk(o.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(n),this.apply(e)}set(n,e){return Kk(this,n,e)}get(n){return ip(this,n)}describe(n,e){return Kk(qk,n,e)}override(n,e){return Kk(uc,n,e)}route(n,e,i,o){const r=ip(this,n),s=ip(this,i),a="_"+e;Object.defineProperties(r,{[a]:{value:r[e],writable:!0},[e]:{enumerable:!0,get(){const l=this[a],c=s[o];return pt(l)?Object.assign({},c,l):$e(l,c)},set(l){this[a]=l}}})}apply(n){n.forEach(e=>e(this))}}var gn=new mke({_scriptable:t=>!t.startsWith("on"),_indexable:t=>"events"!==t,hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}},[function dke(t){t.set("animation",{delay:void 0,duration:1e3,easing:"easeOutQuart",fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),t.describe("animation",{_fallback:!1,_indexable:!1,_scriptable:n=>"onProgress"!==n&&"onComplete"!==n&&"fn"!==n}),t.set("animations",{colors:{type:"color",properties:cke},numbers:{type:"number",properties:lke}}),t.describe("animations",{_fallback:"animation"}),t.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:n=>0|n}}}})},function uke(t){t.set("layout",{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})},function pke(t){t.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:"ticks",clip:!0,grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(n,e)=>e.lineWidth,tickColor:(n,e)=>e.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:bv.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}}),t.route("scale.ticks","color","","color"),t.route("scale.grid","color","","borderColor"),t.route("scale.border","color","","borderColor"),t.route("scale.title","color","","color"),t.describe("scale",{_fallback:!1,_scriptable:n=>!n.startsWith("before")&&!n.startsWith("after")&&"callback"!==n&&"parser"!==n,_indexable:n=>"borderDash"!==n&&"tickBorderDash"!==n&&"dash"!==n}),t.describe("scales",{_fallback:"scale"}),t.describe("scale.ticks",{_scriptable:n=>"backdropPadding"!==n&&"callback"!==n,_indexable:n=>"backdropPadding"!==n})}]);function vv(t,n,e,i,o){let r=n[o];return r||(r=n[o]=t.measureText(o).width,e.push(o)),r>i&&(i=r),i}function hc(t,n,e){const i=t.currentDevicePixelRatio,o=0!==e?Math.max(e/2,.5):0;return Math.round((n-o)*i)/i+o}function uH(t,n){!n&&!t||((n=n||t.getContext("2d")).save(),n.resetTransform(),n.clearRect(0,0,t.width,t.height),n.restore())}function Yk(t,n,e,i){!function hH(t,n,e,i,o){let r,s,a,l,c,u,p,g;const _=n.pointStyle,w=n.rotation,x=n.radius;let T=(w||0)*ZSe;if(_&&"object"==typeof _&&(r=_.toString(),"[object HTMLImageElement]"===r||"[object HTMLCanvasElement]"===r))return t.save(),t.translate(e,i),t.rotate(T),t.drawImage(_,-_.width/2,-_.height/2,_.width,_.height),void t.restore();if(!(isNaN(x)||x<=0)){switch(t.beginPath(),_){default:o?t.ellipse(e,i,o/2,x,0,0,dn):t.arc(e,i,x,0,dn),t.closePath();break;case"triangle":u=o?o/2:x,t.moveTo(e+Math.sin(T)*u,i-Math.cos(T)*x),T+=K5,t.lineTo(e+Math.sin(T)*u,i-Math.cos(T)*x),T+=K5,t.lineTo(e+Math.sin(T)*u,i-Math.cos(T)*x),t.closePath();break;case"rectRounded":c=.516*x,l=x-c,s=Math.cos(T+dc)*l,p=Math.cos(T+dc)*(o?o/2-c:l),a=Math.sin(T+dc)*l,g=Math.sin(T+dc)*(o?o/2-c:l),t.arc(e-p,i-a,c,T-Dt,T-Gn),t.arc(e+g,i-s,c,T-Gn,T),t.arc(e+p,i+a,c,T,T+Gn),t.arc(e-g,i+s,c,T+Gn,T+Dt),t.closePath();break;case"rect":if(!w){l=Math.SQRT1_2*x,u=o?o/2:l,t.rect(e-u,i-l,2*u,2*l);break}T+=dc;case"rectRot":p=Math.cos(T)*(o?o/2:x),s=Math.cos(T)*x,a=Math.sin(T)*x,g=Math.sin(T)*(o?o/2:x),t.moveTo(e-p,i-a),t.lineTo(e+g,i-s),t.lineTo(e+p,i+a),t.lineTo(e-g,i+s),t.closePath();break;case"crossRot":T+=dc;case"cross":p=Math.cos(T)*(o?o/2:x),s=Math.cos(T)*x,a=Math.sin(T)*x,g=Math.sin(T)*(o?o/2:x),t.moveTo(e-p,i-a),t.lineTo(e+p,i+a),t.moveTo(e+g,i-s),t.lineTo(e-g,i+s);break;case"star":p=Math.cos(T)*(o?o/2:x),s=Math.cos(T)*x,a=Math.sin(T)*x,g=Math.sin(T)*(o?o/2:x),t.moveTo(e-p,i-a),t.lineTo(e+p,i+a),t.moveTo(e+g,i-s),t.lineTo(e-g,i+s),T+=dc,p=Math.cos(T)*(o?o/2:x),s=Math.cos(T)*x,a=Math.sin(T)*x,g=Math.sin(T)*(o?o/2:x),t.moveTo(e-p,i-a),t.lineTo(e+p,i+a),t.moveTo(e+g,i-s),t.lineTo(e-g,i+s);break;case"line":s=o?o/2:Math.cos(T)*x,a=Math.sin(T)*x,t.moveTo(e-s,i-a),t.lineTo(e+s,i+a);break;case"dash":t.moveTo(e,i),t.lineTo(e+Math.cos(T)*(o?o/2:x),i+Math.sin(T)*x);break;case!1:t.closePath()}t.fill(),n.borderWidth>0&&t.stroke()}}(t,n,e,i,null)}function Vs(t,n,e){return e=e||.5,!n||t&&t.x>n.left-e&&t.xn.top-e&&t.y0&&""!==r.strokeColor;let l,c;for(t.save(),t.font=o.string,function yke(t,n){n.translation&&t.translate(n.translation[0],n.translation[1]),dt(n.rotation)||t.rotate(n.rotation),n.color&&(t.fillStyle=n.color),n.textAlign&&(t.textAlign=n.textAlign),n.textBaseline&&(t.textBaseline=n.textBaseline)}(t,r),l=0;l+t||0;function fH(t){return function Xk(t,n){const e={},i=pt(n),o=i?Object.keys(n):n,r=pt(t)?i?s=>$e(t[s],t[n[s]]):s=>t[s]:()=>t;for(const s of o)e[s]=Dke(r(s));return e}(t,{top:"y",right:"x",bottom:"y",left:"x"})}function Wi(t){const n=fH(t);return n.width=n.left+n.right,n.height=n.top+n.bottom,n}function ai(t,n){let e=$e((t=t||{}).size,(n=n||gn.font).size);"string"==typeof e&&(e=parseInt(e,10));let i=$e(t.style,n.style);i&&!(""+i).match(Ske)&&(console.warn('Invalid font style specified: "'+i+'"'),i=void 0);const o={family:$e(t.family,n.family),lineHeight:kke($e(t.lineHeight,n.lineHeight),e),size:e,style:i,weight:$e(t.weight,n.weight),string:""};return o.string=function gke(t){return!t||dt(t.size)||dt(t.family)?null:(t.style?t.style+" ":"")+(t.weight?t.weight+" ":"")+t.size+"px "+t.family}(o),o}function rp(t,n,e,i){let r,s,a,o=!0;for(r=0,s=t.length;rt[0]){const r=e||t;typeof i>"u"&&(i=bH("_fallback",t));const s={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:t,_rootScopes:r,_fallback:i,_getTarget:o,override:a=>Zk([a,...t],n,r,i)};return new Proxy(s,{deleteProperty:(a,l)=>(delete a[l],delete a._keys,delete t[0][l],!0),get:(a,l)=>mH(a,l,()=>function Nke(t,n,e,i){let o;for(const r of n)if(o=bH(Mke(r,t),e),typeof o<"u")return Qk(t,o)?Jk(e,i,t,o):o}(l,n,t,a)),getOwnPropertyDescriptor:(a,l)=>Reflect.getOwnPropertyDescriptor(a._scopes[0],l),getPrototypeOf:()=>Reflect.getPrototypeOf(t[0]),has:(a,l)=>vH(a).includes(l),ownKeys:a=>vH(a),set(a,l,c){const u=a._storage||(a._storage=o());return a[l]=u[l]=c,delete a._keys,!0}})}function pu(t,n,e,i){const o={_cacheable:!1,_proxy:t,_context:n,_subProxy:e,_stack:new Set,_descriptors:pH(t,i),setContext:r=>pu(t,r,e,i),override:r=>pu(t.override(r),n,e,i)};return new Proxy(o,{deleteProperty:(r,s)=>(delete r[s],delete t[s],!0),get:(r,s,a)=>mH(r,s,()=>function Eke(t,n,e){const{_proxy:i,_context:o,_subProxy:r,_descriptors:s}=t;let a=i[n];return Ia(a)&&s.isScriptable(n)&&(a=function Ike(t,n,e,i){const{_proxy:o,_context:r,_subProxy:s,_stack:a}=e;if(a.has(t))throw new Error("Recursion detected: "+Array.from(a).join("->")+"->"+t);a.add(t);let l=n(r,s||i);return a.delete(t),Qk(t,l)&&(l=Jk(o._scopes,o,t,l)),l}(n,a,t,e)),cn(a)&&a.length&&(a=function Pke(t,n,e,i){const{_proxy:o,_context:r,_subProxy:s,_descriptors:a}=e;if(typeof r.index<"u"&&i(t))return n[r.index%n.length];if(pt(n[0])){const l=n,c=o._scopes.filter(u=>u!==l);n=[];for(const u of l){const p=Jk(c,o,t,u);n.push(pu(p,r,s&&s[t],a))}}return n}(n,a,t,s.isIndexable)),Qk(n,a)&&(a=pu(a,o,r&&r[n],s)),a}(r,s,a)),getOwnPropertyDescriptor:(r,s)=>r._descriptors.allKeys?Reflect.has(t,s)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(t,s),getPrototypeOf:()=>Reflect.getPrototypeOf(t),has:(r,s)=>Reflect.has(t,s),ownKeys:()=>Reflect.ownKeys(t),set:(r,s,a)=>(t[s]=a,delete r[s],!0)})}function pH(t,n={scriptable:!0,indexable:!0}){const{_scriptable:e=n.scriptable,_indexable:i=n.indexable,_allKeys:o=n.allKeys}=t;return{allKeys:o,scriptable:e,indexable:i,isScriptable:Ia(e)?e:()=>e,isIndexable:Ia(i)?i:()=>i}}const Mke=(t,n)=>t?t+Hk(n):n,Qk=(t,n)=>pt(n)&&"adapters"!==t&&(null===Object.getPrototypeOf(n)||n.constructor===Object);function mH(t,n,e){if(Object.prototype.hasOwnProperty.call(t,n)||"constructor"===n)return t[n];const i=e();return t[n]=i,i}function gH(t,n,e){return Ia(t)?t(n,e):t}const Oke=(t,n)=>!0===t?n:"string"==typeof t?Ea(n,t):void 0;function Ake(t,n,e,i,o){for(const r of n){const s=Oke(e,r);if(s){t.add(s);const a=gH(s._fallback,e,o);if(typeof a<"u"&&a!==e&&a!==i)return a}else if(!1===s&&typeof i<"u"&&e!==i)return null}return!1}function Jk(t,n,e,i){const o=n._rootScopes,r=gH(n._fallback,e,i),s=[...t,...o],a=new Set;a.add(i);let l=_H(a,s,e,r||e,i);return!(null===l||typeof r<"u"&&r!==e&&(l=_H(a,s,r,l,i),null===l))&&Zk(Array.from(a),[""],o,r,()=>function Rke(t,n,e){const i=t._getTarget();n in i||(i[n]={});const o=i[n];return cn(o)&&pt(e)?e:o||{}}(n,e,i))}function _H(t,n,e,i,o){for(;e;)e=Ake(t,n,e,i,o);return e}function bH(t,n){for(const e of n){if(!e)continue;const i=e[t];if(typeof i<"u")return i}}function vH(t){let n=t._keys;return n||(n=t._keys=function Fke(t){const n=new Set;for(const e of t)for(const i of Object.keys(e).filter(o=>!o.startsWith("_")))n.add(i);return Array.from(n)}(t._scopes)),n}const Lke=Number.EPSILON||1e-14,mu=(t,n)=>n"x"===t?"y":"x";function Bke(t,n,e,i){const o=t.skip?n:t,r=n,s=e.skip?n:e,a=Uk(r,o),l=Uk(s,r);let c=a/(a+l),u=l/(a+l);c=isNaN(c)?0:c,u=isNaN(u)?0:u;const p=i*c,g=i*u;return{previous:{x:r.x-p*(s.x-o.x),y:r.y-p*(s.y-o.y)},next:{x:r.x+g*(s.x-o.x),y:r.y+g*(s.y-o.y)}}}function wv(t,n,e){return Math.max(Math.min(t,e),n)}function zke(t,n,e,i,o){let r,s,a,l;if(n.spanGaps&&(t=t.filter(c=>!c.skip)),"monotone"===n.cubicInterpolationMode)!function jke(t,n="x"){const e=CH(n),i=t.length,o=Array(i).fill(0),r=Array(i);let s,a,l,c=mu(t,0);for(s=0;st.ownerDocument.defaultView.getComputedStyle(t,null),Wke=["top","right","bottom","left"];function mc(t,n,e){const i={};e=e?"-"+e:"";for(let o=0;o<4;o++){const r=Wke[o];i[r]=parseFloat(t[n+"-"+r+e])||0}return i.width=i.left+i.right,i.height=i.top+i.bottom,i}function gc(t,n){if("native"in t)return t;const{canvas:e,currentDevicePixelRatio:i}=n,o=Sv(e),r="border-box"===o.boxSizing,s=mc(o,"padding"),a=mc(o,"border","width"),{x:l,y:c,box:u}=function qke(t,n){const e=t.touches,i=e&&e.length?e[0]:t,{offsetX:o,offsetY:r}=i;let a,l,s=!1;if(((t,n,e)=>(t>0||n>0)&&(!e||!e.shadowRoot))(o,r,t.target))a=o,l=r;else{const c=n.getBoundingClientRect();a=i.clientX-c.left,l=i.clientY-c.top,s=!0}return{x:a,y:l,box:s}}(t,e),p=s.left+(u&&a.left),g=s.top+(u&&a.top);let{width:_,height:w}=n;return r&&(_-=s.width+a.width,w-=s.height+a.height),{x:Math.round((l-p)/_*e.width/i),y:Math.round((c-g)/w*e.height/i)}}const Aa=t=>Math.round(10*t)/10;function wH(t,n,e){const i=n||1,o=Aa(t.height*i),r=Aa(t.width*i);t.height=Aa(t.height),t.width=Aa(t.width);const s=t.canvas;return s.style&&(e||!s.style.height&&!s.style.width)&&(s.style.height=`${t.height}px`,s.style.width=`${t.width}px`),(t.currentDevicePixelRatio!==i||s.height!==o||s.width!==r)&&(t.currentDevicePixelRatio=i,s.height=o,s.width=r,t.ctx.setTransform(i,0,0,i,0,0),!0)}const Xke=function(){let t=!1;try{const n={get passive(){return t=!0,!1}};eD()&&(window.addEventListener("test",null,n),window.removeEventListener("test",null,n))}catch{}return t}();function xH(t,n){const e=function $ke(t,n){return Sv(t).getPropertyValue(n)}(t,n),i=e&&e.match(/^(\d+)(\.\d+)?px$/);return i?+i[1]:void 0}function _c(t,n,e,i){return{x:t.x+e*(n.x-t.x),y:t.y+e*(n.y-t.y)}}function Zke(t,n,e,i){return{x:t.x+e*(n.x-t.x),y:"middle"===i?e<.5?t.y:n.y:"after"===i?e<1?t.y:n.y:e>0?n.y:t.y}}function Qke(t,n,e,i){const o={x:t.cp2x,y:t.cp2y},r={x:n.cp1x,y:n.cp1y},s=_c(t,o,e),a=_c(o,r,e),l=_c(r,n,e),c=_c(s,a,e),u=_c(a,l,e);return _c(c,u,e)}function DH(t){return"angle"===t?{between:ep,compare:tke,normalize:zi}:{between:Ls,compare:(n,e)=>n-e,normalize:n=>n}}function TH({start:t,end:n,count:e,loop:i,style:o}){return{start:t%e,end:n%e,loop:i&&(n-t+1)%e==0,style:o}}function MH(t,n,e){if(!e)return[t];const{property:i,start:o,end:r}=e,s=n.length,{compare:a,between:l,normalize:c}=DH(i),{start:u,end:p,loop:g,style:_}=function tDe(t,n,e){const{property:i,start:o,end:r}=e,{between:s,normalize:a}=DH(i),l=n.length;let g,_,{start:c,end:u,loop:p}=t;if(p){for(c+=l,u+=l,g=0,_=l;g<_&&s(a(n[c%l][i]),o,r);++g)c--,u--;c%=l,u%=l}return ux||l(o,W,E)&&0!==a(o,W),ie=()=>!x||0===a(r,E)||l(r,W,E);for(let M=u,A=u;M<=p;++M)R=n[M%s],!R.skip&&(E=c(R[i]),E!==W&&(x=l(E,o,r),null===T&&ee()&&(T=0===a(E,o)?M:A),null!==T&&ie()&&(w.push(TH({start:T,end:M,loop:g,count:s,style:_})),T=null),A=M,W=E));return null!==T&&w.push(TH({start:T,end:p,loop:g,count:s,style:_})),w}function EH(t,n){const e=[],i=t.segments;for(let o=0;oa({chart:n,initial:e.initial,numSteps:s,currentStep:Math.min(i-e.start,s)}))}_refresh(){this._request||(this._running=!0,this._request=nH.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(n=Date.now()){let e=0;this._charts.forEach((i,o)=>{if(!i.running||!i.items.length)return;const r=i.items;let l,s=r.length-1,a=!1;for(;s>=0;--s)l=r[s],l._active?(l._total>i.duration&&(i.duration=l._total),l.tick(n),a=!0):(r[s]=r[r.length-1],r.pop());a&&(o.draw(),this._notify(o,i,n,"progress")),r.length||(i.running=!1,this._notify(o,i,n,"complete"),i.initial=!1),e+=r.length}),this._lastDate=n,0===e&&(this._running=!1)}_getAnims(n){const e=this._charts;let i=e.get(n);return i||(i={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},e.set(n,i)),i}listen(n,e,i){this._getAnims(n).listeners[e].push(i)}add(n,e){!e||!e.length||this._getAnims(n).items.push(...e)}has(n){return this._getAnims(n).items.length>0}start(n){const e=this._charts.get(n);e&&(e.running=!0,e.start=Date.now(),e.duration=e.items.reduce((i,o)=>Math.max(i,o._duration),0),this._refresh())}running(n){if(!this._running)return!1;const e=this._charts.get(n);return!(!e||!e.running||!e.items.length)}stop(n){const e=this._charts.get(n);if(!e||!e.items.length)return;const i=e.items;let o=i.length-1;for(;o>=0;--o)i[o].cancel();e.items=[],this._notify(n,e,Date.now(),"complete")}remove(n){return this._charts.delete(n)}}var Hs=new lDe;const AH="transparent",cDe={boolean:(t,n,e)=>e>.5?n:t,color(t,n,e){const i=lH(t||AH),o=i.valid&&lH(n||AH);return o&&o.valid?o.mix(i,e).hexString():n},number:(t,n,e)=>t+(n-t)*e};class dDe{constructor(n,e,i,o){const r=e[i];o=rp([n.to,o,r,n.from]);const s=rp([n.from,r,o]);this._active=!0,this._fn=n.fn||cDe[n.type||typeof s],this._easing=tp[n.easing]||tp.linear,this._start=Math.floor(Date.now()+(n.delay||0)),this._duration=this._total=Math.floor(n.duration),this._loop=!!n.loop,this._target=e,this._prop=i,this._from=s,this._to=o,this._promises=void 0}active(){return this._active}update(n,e,i){if(this._active){this._notify(!1);const o=this._target[this._prop],r=i-this._start,s=this._duration-r;this._start=i,this._duration=Math.floor(Math.max(s,n.duration)),this._total+=r,this._loop=!!n.loop,this._to=rp([n.to,e,o,n.from]),this._from=rp([n.from,o,e])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(n){const e=n-this._start,i=this._duration,o=this._prop,r=this._from,s=this._loop,a=this._to;let l;if(this._active=r!==a&&(s||e1?2-l:l,l=this._easing(Math.min(1,Math.max(0,l))),this._target[o]=this._fn(r,a,l))}wait(){const n=this._promises||(this._promises=[]);return new Promise((e,i)=>{n.push({res:e,rej:i})})}_notify(n){const e=n?"res":"rej",i=this._promises||[];for(let o=0;o{const r=n[o];if(!pt(r))return;const s={};for(const a of e)s[a]=r[a];(cn(r.properties)&&r.properties||[o]).forEach(a=>{(a===o||!i.has(a))&&i.set(a,s)})})}_animateOptions(n,e){const i=e.options,o=function hDe(t,n){if(!n)return;let e=t.options;if(e)return e.$shared&&(t.options=e=Object.assign({},e,{$shared:!1,$animations:{}})),e;t.options=n}(n,i);if(!o)return[];const r=this._createAnimations(o,i);return i.$shared&&function uDe(t,n){const e=[],i=Object.keys(n);for(let o=0;o{n.options=i},()=>{}),r}_createAnimations(n,e){const i=this._properties,o=[],r=n.$animations||(n.$animations={}),s=Object.keys(e),a=Date.now();let l;for(l=s.length-1;l>=0;--l){const c=s[l];if("$"===c.charAt(0))continue;if("options"===c){o.push(...this._animateOptions(n,e));continue}const u=e[c];let p=r[c];const g=i.get(c);if(p){if(g&&p.active()){p.update(g,u,a);continue}p.cancel()}g&&g.duration?(r[c]=p=new dDe(g,n,c,u),o.push(p)):n[c]=u}return o}update(n,e){if(0===this._properties.size)return void Object.assign(n,e);const i=this._createAnimations(n,e);return i.length?(Hs.add(this._chart,i),!0):void 0}}function NH(t,n){const e=t&&t.options||{},i=e.reverse,o=void 0===e.min?n:0,r=void 0===e.max?n:0;return{start:i?r:o,end:i?o:r}}function FH(t,n){const e=[],i=t._getSortedDatasetMetas(n);let o,r;for(o=0,r=i.length;o0||!e&&r<0)return o.index}return null}function VH(t,n){const{chart:e,_cachedMeta:i}=t,o=e._stacks||(e._stacks={}),{iScale:r,vScale:s,index:a}=i,l=r.axis,c=s.axis,u=function gDe(t,n,e){return`${t.id}.${n.id}.${e.stack||e.type}`}(r,s,i),p=n.length;let g;for(let _=0;_e[i].axis===n).shift()}function sp(t,n){const e=t.controller.index,i=t.vScale&&t.vScale.axis;if(i){n=n||t._parsed;for(const o of n){const r=o._stacks;if(!r||void 0===r[i]||void 0===r[i][e])return;delete r[i][e],void 0!==r[i]._visualValues&&void 0!==r[i]._visualValues[e]&&delete r[i]._visualValues[e]}}}const oD=t=>"reset"===t||"none"===t,HH=(t,n)=>n?t:Object.assign({},t);let Ra=(()=>class t{static defaults={};static datasetElementType=null;static dataElementType=null;constructor(e,i){this.chart=e,this._ctx=e.ctx,this.index=i,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const e=this._cachedMeta;this.configure(),this.linkScales(),e._stacked=nD(e.vScale,e),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(e){this.index!==e&&sp(this._cachedMeta),this.index=e}linkScales(){const e=this.chart,i=this._cachedMeta,o=this.getDataset(),r=(g,_,w,x)=>"x"===g?_:"r"===g?x:w,s=i.xAxisID=$e(o.xAxisID,iD(e,"x")),a=i.yAxisID=$e(o.yAxisID,iD(e,"y")),l=i.rAxisID=$e(o.rAxisID,iD(e,"r")),c=i.indexAxis,u=i.iAxisID=r(c,s,a,l),p=i.vAxisID=r(c,a,s,l);i.xScale=this.getScaleForId(s),i.yScale=this.getScaleForId(a),i.rScale=this.getScaleForId(l),i.iScale=this.getScaleForId(u),i.vScale=this.getScaleForId(p)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(e){return this.chart.scales[e]}_getOtherScale(e){const i=this._cachedMeta;return e===i.iScale?i.vScale:i.iScale}reset(){this._update("reset")}_destroy(){const e=this._cachedMeta;this._data&&eH(this._data,this),e._stacked&&sp(e)}_dataCheck(){const e=this.getDataset(),i=e.data||(e.data=[]),o=this._data;if(pt(i))this._data=function mDe(t,n){const{iScale:e,vScale:i}=n,o="x"===e.axis?"x":"y",r="x"===i.axis?"x":"y",s=Object.keys(t),a=new Array(s.length);let l,c,u;for(l=0,c=s.length;l{const i="_onData"+Hk(e),o=t[e];Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value(...r){const s=o.apply(this,r);return t._chartjs.listeners.forEach(a=>{"function"==typeof a[i]&&a[i](...r)}),s}})}))}(i,this),this._syncList=[],this._data=i}}addElements(){const e=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(e.dataset=new this.datasetElementType)}buildOrUpdateElements(e){const i=this._cachedMeta,o=this.getDataset();let r=!1;this._dataCheck();const s=i._stacked;i._stacked=nD(i.vScale,i),i.stack!==o.stack&&(r=!0,sp(i),i.stack=o.stack),this._resyncElements(e),(r||s!==i._stacked)&&(VH(this,i._parsed),i._stacked=nD(i.vScale,i))}configure(){const e=this.chart.config,i=e.datasetScopeKeys(this._type),o=e.getOptionScopes(this.getDataset(),i,!0);this.options=e.createResolver(o,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(e,i){const{_cachedMeta:o,_data:r}=this,{iScale:s,_stacked:a}=o,l=s.axis;let p,g,_,c=0===e&&i===r.length||o._sorted,u=e>0&&o._parsed[e-1];if(!1===this._parsing)o._parsed=r,o._sorted=!0,_=r;else{_=cn(r[e])?this.parseArrayData(o,r,e,i):pt(r[e])?this.parseObjectData(o,r,e,i):this.parsePrimitiveData(o,r,e,i);const w=()=>null===g[l]||u&&g[l]t&&!n.hidden&&n._stacked&&{keys:FH(this.chart,!0),values:null})(i,o),u={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY},{min:p,max:g}=function _De(t){const{min:n,max:e,minDefined:i,maxDefined:o}=t.getUserBounds();return{min:i?n:Number.NEGATIVE_INFINITY,max:o?e:Number.POSITIVE_INFINITY}}(l);let _,w;function x(){w=r[_];const T=w[l.axis];return!An(w[e.axis])||p>T||g=0;--_)if(!x()){this.updateRangeFromParsed(u,e,w,c);break}return u}getAllParsedValues(e){const i=this._cachedMeta._parsed,o=[];let r,s,a;for(r=0,s=i.length;r=0&&ethis.getContext(o,r,i),g);return T.$shared&&(T.$shared=c,s[a]=Object.freeze(HH(T,c))),T}_resolveAnimations(e,i,o){const r=this.chart,s=this._cachedDataOpts,a=`animation-${i}`,l=s[a];if(l)return l;let c;if(!1!==r.options.animation){const p=this.chart.config,g=p.datasetAnimationScopeKeys(this._type,i),_=p.getOptionScopes(this.getDataset(),g);c=p.createResolver(_,this.getContext(e,o,i))}const u=new RH(r,c&&c.animations);return c&&c._cacheable&&(s[a]=Object.freeze(u)),u}getSharedOptions(e){if(e.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},e))}includeOptions(e,i){return!i||oD(e)||this.chart._animationsDisabled}_getSharedOptions(e,i){const o=this.resolveDataElementOptions(e,i),r=this._sharedOptions,s=this.getSharedOptions(o),a=this.includeOptions(i,s)||s!==r;return this.updateSharedOptions(s,i,o),{sharedOptions:s,includeOptions:a}}updateElement(e,i,o,r){oD(r)?Object.assign(e,o):this._resolveAnimations(i,r).update(e,o)}updateSharedOptions(e,i,o){e&&!oD(i)&&this._resolveAnimations(void 0,i).update(e,o)}_setStyle(e,i,o,r){e.active=r;const s=this.getStyle(i,r);this._resolveAnimations(i,o,r).update(e,{options:!r&&this.getSharedOptions(s)||s})}removeHoverStyle(e,i,o){this._setStyle(e,o,"active",!1)}setHoverStyle(e,i,o){this._setStyle(e,o,"active",!0)}_removeDatasetHoverStyle(){const e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!1)}_setDatasetHoverStyle(){const e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!0)}_resyncElements(e){const i=this._data,o=this._cachedMeta.data;for(const[l,c,u]of this._syncList)this[l](c,u);this._syncList=[];const r=o.length,s=i.length,a=Math.min(s,r);a&&this.parse(0,a),s>r?this._insertElements(r,s-r,e):s{for(u.length+=i,l=u.length-1;l>=a;l--)u[l]=u[l-i]};for(c(s),l=e;lclass t extends Ra{static id="line";static defaults={datasetElementType:"line",dataElementType:"point",showLine:!0,spanGaps:!1};static overrides={scales:{_index_:{type:"category"},_value_:{type:"linear"}}};initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(e){const i=this._cachedMeta,{dataset:o,data:r=[],_dataset:s}=i,a=this.chart._animationsDisabled;let{start:l,count:c}=function oH(t,n,e){const i=n.length;let o=0,r=i;if(t._sorted){const{iScale:s,vScale:a,_parsed:l}=t,c=t.dataset&&t.dataset.options?t.dataset.options.spanGaps:null,u=s.axis,{min:p,max:g,minDefined:_,maxDefined:w}=s.getUserBounds();if(_){if(o=Math.min(Bs(l,u,p).lo,e?i:Bs(n,u,s.getPixelForValue(p)).lo),c){const x=l.slice(0,o+1).reverse().findIndex(T=>!dt(T[a.axis]));o-=Math.max(0,x)}o=gi(o,0,i-1)}if(w){let x=Math.max(Bs(l,s.axis,g,!0).hi+1,e?0:Bs(n,u,s.getPixelForValue(g),!0).hi+1);if(c){const T=l.slice(x-1).findIndex(E=>!dt(E[a.axis]));x+=Math.max(0,T)}r=gi(x,o,i)-o}else r=i-o}return{start:o,count:r}}(i,r,a);this._drawStart=l,this._drawCount=c,function rH(t){const{xScale:n,yScale:e,_scaleRanges:i}=t,o={xmin:n.min,xmax:n.max,ymin:e.min,ymax:e.max};if(!i)return t._scaleRanges=o,!0;const r=i.xmin!==n.min||i.xmax!==n.max||i.ymin!==e.min||i.ymax!==e.max;return Object.assign(i,o),r}(i)&&(l=0,c=r.length),o._chart=this.chart,o._datasetIndex=this.index,o._decimated=!!s._decimated,o.points=r;const u=this.resolveDatasetElementOptions(e);this.options.showLine||(u.borderWidth=0),u.segment=this.options.segment,this.updateElement(o,void 0,{animated:!a,options:u},e),this.updateElements(r,l,c,e)}updateElements(e,i,o,r){const s="reset"===r,{iScale:a,vScale:l,_stacked:c,_dataset:u}=this._cachedMeta,{sharedOptions:p,includeOptions:g}=this._getSharedOptions(i,r),_=a.axis,w=l.axis,{spanGaps:x,segment:T}=this.options,E=fu(x)?x:Number.POSITIVE_INFINITY,R=this.chart._animationsDisabled||s||"none"===r,W=i+o,Y=e.length;let K=i>0&&this.getParsed(i-1);for(let ee=0;ee=W){M.skip=!0;continue}const A=this.getParsed(ee),F=dt(A[w]),U=M[_]=a.getPixelForValue(A[_],ee),H=M[w]=s||F?l.getBasePixel():l.getPixelForValue(c?this.applyStack(l,A,c):A[w],ee);M.skip=isNaN(U)||isNaN(H)||F,M.stop=ee>0&&Math.abs(A[_]-K[_])>E,T&&(M.parsed=A,M.raw=u.data[ee]),g&&(M.options=p||this.resolveDataElementOptions(ee,ie.active?"active":r)),R||this.updateElement(ie,ee,M,r),K=A}}getMaxOverflow(){const e=this._cachedMeta,i=e.dataset,o=i.options&&i.options.borderWidth||0,r=e.data||[];if(!r.length)return o;const s=r[0].size(this.resolveDataElementOptions(0)),a=r[r.length-1].size(this.resolveDataElementOptions(r.length-1));return Math.max(o,s,a)/2}draw(){const e=this._cachedMeta;e.dataset.updateControlPoints(this.chart.chartArea,e.iScale.axis),super.draw()}})();function LDe(t,n,e,i){const{controller:o,data:r,_sorted:s}=t,a=o._cachedMeta.iScale,l=t.dataset&&t.dataset.options?t.dataset.options.spanGaps:null;if(a&&n===a.axis&&"r"!==n&&s&&r.length){const c=a._reversePixels?ike:Bs;if(!i){const u=c(r,n,e);if(l){const{vScale:p}=o._cachedMeta,{_parsed:g}=t,_=g.slice(0,u.lo+1).reverse().findIndex(x=>!dt(x[p.axis]));u.lo-=Math.max(0,_);const w=g.slice(u.hi).findIndex(x=>!dt(x[p.axis]));u.hi+=Math.max(0,w)}return u}if(o._sharedOptions){const u=r[0],p="function"==typeof u.getRange&&u.getRange(n);if(p){const g=c(r,n,e-p),_=c(r,n,e+p);return{lo:g.lo,hi:_.hi}}}}return{lo:0,hi:r.length-1}}function ap(t,n,e,i,o){const r=t.getSortedVisibleDatasetMetas(),s=e[n];for(let a=0,l=r.length;a{l[s]&&l[s](n[e],o)&&(r.push({element:l,datasetIndex:c,index:u}),a=a||l.inRange(n.x,n.y,o))}),i&&!a?[]:r}var jDe={evaluateInteractionItems:ap,modes:{index(t,n,e,i){const o=gc(n,t),r=e.axis||"x",s=e.includeInvisible||!1,a=e.intersect?lD(t,o,r,i,s):cD(t,o,r,!1,i,s),l=[];return a.length?(t.getSortedVisibleDatasetMetas().forEach(c=>{const u=a[0].index,p=c.data[u];p&&!p.skip&&l.push({element:p,datasetIndex:c.index,index:u})}),l):[]},dataset(t,n,e,i){const o=gc(n,t),r=e.axis||"xy",s=e.includeInvisible||!1;let a=e.intersect?lD(t,o,r,i,s):cD(t,o,r,!1,i,s);if(a.length>0){const l=a[0].datasetIndex,c=t.getDatasetMeta(l).data;a=[];for(let u=0;ulD(t,gc(n,t),e.axis||"xy",i,e.includeInvisible||!1),nearest:(t,n,e,i)=>cD(t,gc(n,t),e.axis||"xy",e.intersect,i,e.includeInvisible||!1),x:(t,n,e,i)=>qH(t,gc(n,t),"x",e.intersect,i),y:(t,n,e,i)=>qH(t,gc(n,t),"y",e.intersect,i)}};const KH=["left","top","right","bottom"];function lp(t,n){return t.filter(e=>e.pos===n)}function YH(t,n){return t.filter(e=>-1===KH.indexOf(e.pos)&&e.box.axis===n)}function cp(t,n){return t.sort((e,i)=>{const o=n?i:e,r=n?e:i;return o.weight===r.weight?o.index-r.index:o.weight-r.weight})}function XH(t,n,e,i){return Math.max(t[e],n[e])+Math.max(t[i],n[i])}function ZH(t,n){t.top=Math.max(t.top,n.top),t.left=Math.max(t.left,n.left),t.bottom=Math.max(t.bottom,n.bottom),t.right=Math.max(t.right,n.right)}function GDe(t,n,e,i){const{pos:o,box:r}=e,s=t.maxPadding;if(!pt(o)){e.size&&(t[o]-=e.size);const p=i[e.stack]||{size:0,count:1};p.size=Math.max(p.size,e.horizontal?r.height:r.width),e.size=p.size/p.count,t[o]+=e.size}r.getPadding&&ZH(s,r.getPadding());const a=Math.max(0,n.outerWidth-XH(s,t,"left","right")),l=Math.max(0,n.outerHeight-XH(s,t,"top","bottom")),c=a!==t.w,u=l!==t.h;return t.w=a,t.h=l,e.horizontal?{same:c,other:u}:{same:u,other:c}}function KDe(t,n){const e=n.maxPadding;return function i(o){const r={left:0,top:0,right:0,bottom:0};return o.forEach(s=>{r[s]=Math.max(n[s],e[s])}),r}(t?["left","right"]:["top","bottom"])}function dp(t,n,e,i){const o=[];let r,s,a,l,c,u;for(r=0,s=t.length,c=0;rc.box.fullSize),!0),i=cp(lp(n,"left"),!0),o=cp(lp(n,"right")),r=cp(lp(n,"top"),!0),s=cp(lp(n,"bottom")),a=YH(n,"x"),l=YH(n,"y");return{fullSize:e,leftAndTop:i.concat(r),rightAndBottom:o.concat(l).concat(s).concat(a),chartArea:lp(n,"chartArea"),vertical:i.concat(o).concat(l),horizontal:r.concat(s).concat(a)}}(t.boxes),l=a.vertical,c=a.horizontal;Bt(t.boxes,x=>{"function"==typeof x.beforeLayout&&x.beforeLayout()});const u=l.reduce((x,T)=>T.box.options&&!1===T.box.options.display?x:x+1,0)||1,p=Object.freeze({outerWidth:n,outerHeight:e,padding:o,availableWidth:r,availableHeight:s,vBoxMaxWidth:r/2/u,hBoxMaxHeight:s/2}),g=Object.assign({},o);ZH(g,Wi(i));const _=Object.assign({maxPadding:g,w:r,h:s,x:o.left,y:o.top},o),w=function $De(t,n){const e=function zDe(t){const n={};for(const e of t){const{stack:i,pos:o,stackWeight:r}=e;if(!i||!KH.includes(o))continue;const s=n[i]||(n[i]={count:0,placed:0,weight:0,size:0});s.count++,s.weight+=r}return n}(t),{vBoxMaxWidth:i,hBoxMaxHeight:o}=n;let r,s,a;for(r=0,s=t.length;r{const T=x.box;Object.assign(T,t.chartArea),T.update(_.w,_.h,{left:0,top:0,right:0,bottom:0})})}};class JH{acquireContext(n,e){}releaseContext(n){return!1}addEventListener(n,e,i){}removeEventListener(n,e,i){}getDevicePixelRatio(){return 1}getMaximumSize(n,e,i,o){return e=Math.max(0,e||n.width),i=i||n.height,{width:e,height:Math.max(0,o?Math.floor(e/o):i)}}isAttached(n){return!0}updateConfig(n){}}class YDe extends JH{acquireContext(n){return n&&n.getContext&&n.getContext("2d")||null}updateConfig(n){n.options.animation=!1}}const Tv="$chartjs",XDe={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},e8=t=>null===t||""===t,t8=!!Xke&&{passive:!0};function JDe(t,n,e){t&&t.canvas&&t.canvas.removeEventListener(n,e,t8)}function Mv(t,n){for(const e of t)if(e===n||e.contains(n))return!0}function tTe(t,n,e){const i=t.canvas,o=new MutationObserver(r=>{let s=!1;for(const a of r)s=s||Mv(a.addedNodes,i),s=s&&!Mv(a.removedNodes,i);s&&e()});return o.observe(document,{childList:!0,subtree:!0}),o}function nTe(t,n,e){const i=t.canvas,o=new MutationObserver(r=>{let s=!1;for(const a of r)s=s||Mv(a.removedNodes,i),s=s&&!Mv(a.addedNodes,i);s&&e()});return o.observe(document,{childList:!0,subtree:!0}),o}const up=new Map;let n8=0;function i8(){const t=window.devicePixelRatio;t!==n8&&(n8=t,up.forEach((n,e)=>{e.currentDevicePixelRatio!==t&&n()}))}function rTe(t,n,e){const i=t.canvas,o=i&&tD(i);if(!o)return;const r=iH((a,l)=>{const c=o.clientWidth;e(a,l),c{const l=a[0],c=l.contentRect.width,u=l.contentRect.height;0===c&&0===u||r(c,u)});return s.observe(o),function iTe(t,n){up.size||window.addEventListener("resize",i8),up.set(t,n)}(t,r),s}function dD(t,n,e){e&&e.disconnect(),"resize"===n&&function oTe(t){up.delete(t),up.size||window.removeEventListener("resize",i8)}(t)}function sTe(t,n,e){const i=t.canvas,o=iH(r=>{null!==t.ctx&&e(function eTe(t,n){const e=XDe[t.type]||t.type,{x:i,y:o}=gc(t,n);return{type:e,chart:n,native:t,x:void 0!==i?i:null,y:void 0!==o?o:null}}(r,t))},t);return function QDe(t,n,e){t&&t.addEventListener(n,e,t8)}(i,n,o),o}class aTe extends JH{acquireContext(n,e){const i=n&&n.getContext&&n.getContext("2d");return i&&i.canvas===n?(function ZDe(t,n){const e=t.style,i=t.getAttribute("height"),o=t.getAttribute("width");if(t[Tv]={initial:{height:i,width:o,style:{display:e.display,height:e.height,width:e.width}}},e.display=e.display||"block",e.boxSizing=e.boxSizing||"border-box",e8(o)){const r=xH(t,"width");void 0!==r&&(t.width=r)}if(e8(i))if(""===t.style.height)t.height=t.width/(n||2);else{const r=xH(t,"height");void 0!==r&&(t.height=r)}}(n,e),i):null}releaseContext(n){const e=n.canvas;if(!e[Tv])return!1;const i=e[Tv].initial;["height","width"].forEach(r=>{const s=i[r];dt(s)?e.removeAttribute(r):e.setAttribute(r,s)});const o=i.style||{};return Object.keys(o).forEach(r=>{e.style[r]=o[r]}),e.width=e.width,delete e[Tv],!0}addEventListener(n,e,i){this.removeEventListener(n,e),(n.$proxies||(n.$proxies={}))[e]=({attach:tTe,detach:nTe,resize:rTe}[e]||sTe)(n,e,i)}removeEventListener(n,e){const i=n.$proxies||(n.$proxies={}),o=i[e];o&&(({attach:dD,detach:dD,resize:dD}[e]||JDe)(n,e,o),i[e]=void 0)}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(n,e,i,o){return function Yke(t,n,e,i){const o=Sv(t),r=mc(o,"margin"),s=xv(o.maxWidth,t,"clientWidth")||gv,a=xv(o.maxHeight,t,"clientHeight")||gv,l=function Kke(t,n,e){let i,o;if(void 0===n||void 0===e){const r=t&&tD(t);if(r){const s=r.getBoundingClientRect(),a=Sv(r),l=mc(a,"border","width"),c=mc(a,"padding");n=s.width-c.width-l.width,e=s.height-c.height-l.height,i=xv(a.maxWidth,r,"clientWidth"),o=xv(a.maxHeight,r,"clientHeight")}else n=t.clientWidth,e=t.clientHeight}return{width:n,height:e,maxWidth:i||gv,maxHeight:o||gv}}(t,n,e);let{width:c,height:u}=l;if("content-box"===o.boxSizing){const g=mc(o,"border","width"),_=mc(o,"padding");c-=_.width+g.width,u-=_.height+g.height}return c=Math.max(0,c-r.width),u=Math.max(0,i?c/i:u-r.height),c=Aa(Math.min(c,s,l.maxWidth)),u=Aa(Math.min(u,a,l.maxHeight)),c&&!u&&(u=Aa(c/2)),(void 0!==n||void 0!==e)&&i&&l.height&&u>l.height&&(u=l.height,c=Aa(Math.floor(u*i))),{width:c,height:u}}(n,e,i,o)}isAttached(n){const e=n&&tD(n);return!(!e||!e.isConnected)}}class js{static defaults={};static defaultRoutes=void 0;x;y;active=!1;options;$animations;tooltipPosition(n){const{x:e,y:i}=this.getProps(["x","y"],n);return{x:e,y:i}}hasValue(){return fu(this.x)&&fu(this.y)}getProps(n,e){const i=this.$animations;if(!e||!i)return this;const o={};return n.forEach(r=>{o[r]=i[r]&&i[r].active()?i[r]._to:this[r]}),o}}function Ev(t,n,e,i,o){const r=$e(i,0),s=Math.min($e(o,t.length),t.length);let l,c,u,a=0;for(e=Math.ceil(e),o&&(l=o-i,e=l/Math.floor(l/e)),u=r;u<0;)a++,u=Math.round(r+a*e);for(c=Math.max(r,0);c"top"===n||"left"===n?t[n]+e:t[n]-e,r8=(t,n)=>Math.min(n||t,t);function s8(t,n){const e=[],i=t.length/n,o=t.length;let r=0;for(;rs+a)))return l}function hp(t){return t.drawTicks?t.tickLength:0}function a8(t,n){if(!t.display)return 0;const e=ai(t.font,n),i=Wi(t.padding);return(cn(t.text)?t.text.length:1)*e.lineHeight+i.height}function yTe(t,n,e){let i=(t=>"start"===t?"left":"end"===t?"right":"center")(t);return(e&&"right"!==n||!e&&"right"===n)&&(i=(t=>"left"===t?"right":"right"===t?"left":t)(i)),i}class vc extends js{constructor(n){super(),this.id=n.id,this.type=n.type,this.options=void 0,this.ctx=n.ctx,this.chart=n.chart,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this._margins={left:0,right:0,top:0,bottom:0},this.maxWidth=void 0,this.maxHeight=void 0,this.paddingTop=void 0,this.paddingBottom=void 0,this.paddingLeft=void 0,this.paddingRight=void 0,this.axis=void 0,this.labelRotation=void 0,this.min=void 0,this.max=void 0,this._range=void 0,this.ticks=[],this._gridLineItems=null,this._labelItems=null,this._labelSizes=null,this._length=0,this._maxLength=0,this._longestTextCache={},this._startPixel=void 0,this._endPixel=void 0,this._reversePixels=!1,this._userMax=void 0,this._userMin=void 0,this._suggestedMax=void 0,this._suggestedMin=void 0,this._ticksLength=0,this._borderValue=0,this._cache={},this._dataLimitsCached=!1,this.$context=void 0}init(n){this.options=n.setContext(this.getContext()),this.axis=n.axis,this._userMin=this.parse(n.min),this._userMax=this.parse(n.max),this._suggestedMin=this.parse(n.suggestedMin),this._suggestedMax=this.parse(n.suggestedMax)}parse(n,e){return n}getUserBounds(){let{_userMin:n,_userMax:e,_suggestedMin:i,_suggestedMax:o}=this;return n=Io(n,Number.POSITIVE_INFINITY),e=Io(e,Number.NEGATIVE_INFINITY),i=Io(i,Number.POSITIVE_INFINITY),o=Io(o,Number.NEGATIVE_INFINITY),{min:Io(n,i),max:Io(e,o),minDefined:An(n),maxDefined:An(e)}}getMinMax(n){let s,{min:e,max:i,minDefined:o,maxDefined:r}=this.getUserBounds();if(o&&r)return{min:e,max:i};const a=this.getMatchingVisibleMetas();for(let l=0,c=a.length;li?i:e,i=o&&e>i?e:i,{min:Io(e,Io(i,e)),max:Io(i,Io(e,i))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const n=this.chart.data;return this.options.labels||(this.isHorizontal()?n.xLabels:n.yLabels)||n.labels||[]}getLabelItems(n=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(n))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){Qt(this.options.beforeUpdate,[this])}update(n,e,i){const{beginAtZero:o,grace:r,ticks:s}=this.options,a=s.sampleSize;this.beforeUpdate(),this.maxWidth=n,this.maxHeight=e,this._margins=i=Object.assign({left:0,right:0,top:0,bottom:0},i),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+i.left+i.right:this.height+i.top+i.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=function Tke(t,n,e){const{min:i,max:o}=t,r=((t,n)=>"string"==typeof t&&t.endsWith("%")?parseFloat(t)/100*n:+t)(n,(o-i)/2),s=(a,l)=>e&&0===a?0:a+l;return{min:s(i,-Math.abs(r)),max:s(o,r)}}(this,r,o),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const l=ao)return function fTe(t,n,e,i){let s,o=0,r=e[0];for(i=Math.ceil(i),s=0;so-r).pop(),n}(i);for(let s=0,a=r.length-1;so)return l}return Math.max(o,1)}(r,n,o);if(s>0){let p,g;const _=s>1?Math.round((l-a)/(s-1)):null;for(Ev(n,c,u,dt(_)?0:a-_,a),p=0,g=s-1;p=r||i<=1||!this.isHorizontal())return void(this.labelRotation=o);const u=this._getLabelSizes(),p=u.widest.width,g=u.highest.height,_=gi(this.chart.width-p,0,this.maxWidth);a=n.offset?this.maxWidth/i:_/(i-1),p+6>a&&(a=_/(i-(n.offset?.5:1)),l=this.maxHeight-hp(n.grid)-e.padding-a8(n.title,this.chart.options.font),c=Math.sqrt(p*p+g*g),s=function jk(t){return t*(180/Dt)}(Math.min(Math.asin(gi((u.highest.height+6)/a,-1,1)),Math.asin(gi(l/c,-1,1))-Math.asin(gi(g/c,-1,1)))),s=Math.max(o,Math.min(r,s))),this.labelRotation=s}afterCalculateLabelRotation(){Qt(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){Qt(this.options.beforeFit,[this])}fit(){const n={width:0,height:0},{chart:e,options:{ticks:i,title:o,grid:r}}=this,s=this._isVisible(),a=this.isHorizontal();if(s){const l=a8(o,e.options.font);if(a?(n.width=this.maxWidth,n.height=hp(r)+l):(n.height=this.maxHeight,n.width=hp(r)+l),i.display&&this.ticks.length){const{first:c,last:u,widest:p,highest:g}=this._getLabelSizes(),_=2*i.padding,w=Tr(this.labelRotation),x=Math.cos(w),T=Math.sin(w);a?n.height=Math.min(this.maxHeight,n.height+(i.mirror?0:T*p.width+x*g.height)+_):n.width=Math.min(this.maxWidth,n.width+(i.mirror?0:x*p.width+T*g.height)+_),this._calculatePadding(c,u,T,x)}}this._handleMargins(),a?(this.width=this._length=e.width-this._margins.left-this._margins.right,this.height=n.height):(this.width=n.width,this.height=this._length=e.height-this._margins.top-this._margins.bottom)}_calculatePadding(n,e,i,o){const{ticks:{align:r,padding:s},position:a}=this.options,l=0!==this.labelRotation,c="top"!==a&&"x"===this.axis;if(this.isHorizontal()){const u=this.getPixelForTick(0)-this.left,p=this.right-this.getPixelForTick(this.ticks.length-1);let g=0,_=0;l?c?(g=o*n.width,_=i*e.height):(g=i*n.height,_=o*e.width):"start"===r?_=e.width:"end"===r?g=n.width:"inner"!==r&&(g=n.width/2,_=e.width/2),this.paddingLeft=Math.max((g-u+s)*this.width/(this.width-u),0),this.paddingRight=Math.max((_-p+s)*this.width/(this.width-p),0)}else{let u=e.height/2,p=n.height/2;"start"===r?(u=0,p=n.height):"end"===r&&(u=e.height,p=0),this.paddingTop=u+s,this.paddingBottom=p+s}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){Qt(this.options.afterFit,[this])}isHorizontal(){const{axis:n,position:e}=this.options;return"top"===e||"bottom"===e||"x"===n}isFullSize(){return this.options.fullSize}_convertTicksToLabels(n){let e,i;for(this.beforeTickToLabelConversion(),this.generateTickLabels(n),e=0,i=n.length;e{const i=e.gc,o=i.length/2;let r;if(o>n){for(r=0;r({width:s[A]||0,height:a[A]||0});return{first:M(0),last:M(e-1),widest:M(ee),highest:M(ie),widths:s,heights:a}}getLabelForValue(n){return n}getPixelForValue(n,e){return NaN}getValueForPixel(n){}getPixelForTick(n){const e=this.ticks;return n<0||n>e.length-1?null:this.getPixelForValue(e[n].value)}getPixelForDecimal(n){this._reversePixels&&(n=1-n);const e=this._startPixel+n*this._length;return function nke(t){return gi(t,-32768,32767)}(this._alignToPixels?hc(this.chart,e,0):e)}getDecimalForPixel(n){const e=(n-this._startPixel)/this._length;return this._reversePixels?1-e:e}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:n,max:e}=this;return n<0&&e<0?e:n>0&&e>0?n:0}getContext(n){const e=this.ticks||[];if(n>=0&&na*o?a/i:l/o:l*o0}_computeGridLineItems(n){const e=this.axis,i=this.chart,o=this.options,{grid:r,position:s,border:a}=o,l=r.offset,c=this.isHorizontal(),p=this.ticks.length+(l?1:0),g=hp(r),_=[],w=a.setContext(this.getContext()),x=w.display?w.width:0,T=x/2,E=function(N){return hc(i,N,x)};let R,W,Y,K,ee,ie,M,A,F,U,H,G;if("top"===s)R=E(this.bottom),ie=this.bottom-g,A=R-T,U=E(n.top)+T,G=n.bottom;else if("bottom"===s)R=E(this.top),U=n.top,G=E(n.bottom)-T,ie=R+T,A=this.top+g;else if("left"===s)R=E(this.right),ee=this.right-g,M=R-T,F=E(n.left)+T,H=n.right;else if("right"===s)R=E(this.left),F=n.left,H=E(n.right)-T,ee=R+T,M=this.left+g;else if("x"===e){if("center"===s)R=E((n.top+n.bottom)/2+.5);else if(pt(s)){const N=Object.keys(s)[0];R=E(this.chart.scales[N].getPixelForValue(s[N]))}U=n.top,G=n.bottom,ie=R+T,A=ie+g}else if("y"===e){if("center"===s)R=E((n.left+n.right)/2);else if(pt(s)){const N=Object.keys(s)[0];R=E(this.chart.scales[N].getPixelForValue(s[N]))}ee=R-T,M=ee-g,F=n.left,H=n.right}const J=$e(o.ticks.maxTicksLimit,p),V=Math.max(1,Math.ceil(p/J));for(W=0;W0&&(st-=Pe/2)}_e={left:st,top:Xe,width:Pe+Te.width,height:ut+Te.height,color:V.backdropColor}}T.push({label:Y,font:A,textOffset:H,options:{rotation:x,color:q,strokeColor:j,strokeWidth:Q,textAlign:fe,textBaseline:G,translation:[K,ee],backdrop:_e}})}return T}_getXAxisLabelAlignment(){const{position:n,ticks:e}=this.options;if(-Tr(this.labelRotation))return"top"===n?"left":"right";let o="center";return"start"===e.align?o="left":"end"===e.align?o="right":"inner"===e.align&&(o="inner"),o}_getYAxisLabelAlignment(n){const{position:e,ticks:{crossAlign:i,mirror:o,padding:r}}=this.options,a=n+r,l=this._getLabelSizes().widest.width;let c,u;return"left"===e?o?(u=this.right+r,"near"===i?c="left":"center"===i?(c="center",u+=l/2):(c="right",u+=l)):(u=this.right-a,"near"===i?c="right":"center"===i?(c="center",u-=l/2):(c="left",u=this.left)):"right"===e?o?(u=this.left+r,"near"===i?c="right":"center"===i?(c="center",u-=l/2):(c="left",u-=l)):(u=this.left+a,"near"===i?c="left":"center"===i?(c="center",u+=l/2):(c="right",u=this.right)):c="right",{textAlign:c,x:u}}_computeLabelArea(){if(this.options.ticks.mirror)return;const n=this.chart,e=this.options.position;return"left"===e||"right"===e?{top:0,left:this.left,bottom:n.height,right:this.right}:"top"===e||"bottom"===e?{top:this.top,left:0,bottom:this.bottom,right:n.width}:void 0}drawBackground(){const{ctx:n,options:{backgroundColor:e},left:i,top:o,width:r,height:s}=this;e&&(n.save(),n.fillStyle=e,n.fillRect(i,o,r,s),n.restore())}getLineWidthForValue(n){const e=this.options.grid;if(!this._isVisible()||!e.display)return 0;const o=this.ticks.findIndex(r=>r.value===n);return o>=0?e.setContext(this.getContext(o)).lineWidth:0}drawGrid(n){const e=this.options.grid,i=this.ctx,o=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(n));let r,s;const a=(l,c,u)=>{!u.width||!u.color||(i.save(),i.lineWidth=u.width,i.strokeStyle=u.color,i.setLineDash(u.borderDash||[]),i.lineDashOffset=u.borderDashOffset,i.beginPath(),i.moveTo(l.x,l.y),i.lineTo(c.x,c.y),i.stroke(),i.restore())};if(e.display)for(r=0,s=o.length;r{this.drawBackground(),this.drawGrid(r),this.drawTitle()}},{z:o,draw:()=>{this.drawBorder()}},{z:e,draw:r=>{this.drawLabels(r)}}]:[{z:e,draw:r=>{this.draw(r)}}]}getMatchingVisibleMetas(n){const e=this.chart.getSortedVisibleDatasetMetas(),i=this.axis+"AxisID",o=[];let r,s;for(r=0,s=e.length;r{const i=e.split("."),o=i.pop(),r=[t].concat(i).join("."),s=n[e].split("."),a=s.pop(),l=s.join(".");gn.route(r,o,l,a)})}(n,t.defaultRoutes),t.descriptors&&gn.describe(n,t.descriptors)}(n,s,i),this.override&&gn.override(n.id,n.overrides)),s}get(n){return this.items[n]}unregister(n){const e=this.items,i=n.id,o=this.scope;i in e&&delete e[i],o&&i in gn[o]&&(delete gn[o][i],this.override&&delete uc[i])}}class kTe{constructor(){this.controllers=new Iv(Ra,"datasets",!0),this.elements=new Iv(js,"elements"),this.plugins=new Iv(Object,"plugins"),this.scales=new Iv(vc,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...n){this._each("register",n)}remove(...n){this._each("unregister",n)}addControllers(...n){this._each("register",n,this.controllers)}addElements(...n){this._each("register",n,this.elements)}addPlugins(...n){this._each("register",n,this.plugins)}addScales(...n){this._each("register",n,this.scales)}getController(n){return this._get(n,this.controllers,"controller")}getElement(n){return this._get(n,this.elements,"element")}getPlugin(n){return this._get(n,this.plugins,"plugin")}getScale(n){return this._get(n,this.scales,"scale")}removeControllers(...n){this._each("unregister",n,this.controllers)}removeElements(...n){this._each("unregister",n,this.elements)}removePlugins(...n){this._each("unregister",n,this.plugins)}removeScales(...n){this._each("unregister",n,this.scales)}_each(n,e,i){[...e].forEach(o=>{const r=i||this._getRegistryForType(o);i||r.isForType(o)||r===this.plugins&&o.id?this._exec(n,r,o):Bt(o,s=>{const a=i||this._getRegistryForType(s);this._exec(n,a,s)})})}_exec(n,e,i){const o=Hk(n);Qt(i["before"+o],[],i),e[n](i),Qt(i["after"+o],[],i)}_getRegistryForType(n){for(let e=0;er.filter(a=>!s.some(l=>a.plugin.id===l.plugin.id));this._notify(o(e,i),n,"stop"),this._notify(o(i,e),n,"start")}}function MTe(t,n){return n||!1!==t?!0===t?{}:t:null}function ITe(t,{plugin:n,local:e},i,o){const r=t.pluginScopeKeys(n),s=t.getOptionScopes(i,r);return e&&n.defaults&&s.push(n.defaults),t.createResolver(s,o,[""],{scriptable:!1,indexable:!1,allKeys:!0})}function uD(t,n){return((n.datasets||{})[t]||{}).indexAxis||n.indexAxis||(gn.datasets[t]||{}).indexAxis||"x"}function l8(t){if("x"===t||"y"===t||"r"===t)return t}function ATe(t){return"top"===t||"bottom"===t?"x":"left"===t||"right"===t?"y":void 0}function hD(t,...n){if(l8(t))return t;for(const e of n){const i=e.axis||ATe(e.position)||t.length>1&&l8(t[0].toLowerCase());if(i)return i}throw new Error(`Cannot determine type of '${t}' axis. Please provide 'axis' or 'position' option.`)}function c8(t,n,e){if(e[n+"AxisID"]===t)return{axis:n}}function d8(t){const n=t.options||(t.options={});n.plugins=$e(n.plugins,{}),n.scales=function NTe(t,n){const e=uc[t.type]||{scales:{}},i=n.scales||{},o=uD(t.type,n),r=Object.create(null);return Object.keys(i).forEach(s=>{const a=i[s];if(!pt(a))return console.error(`Invalid scale configuration for scale: ${s}`);if(a._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${s}`);const l=hD(s,a,function RTe(t,n){if(n.data&&n.data.datasets){const e=n.data.datasets.filter(i=>i.xAxisID===t||i.yAxisID===t);if(e.length)return c8(t,"x",e[0])||c8(t,"y",e[0])}return{}}(s,t),gn.scales[a.type]),c=function OTe(t,n){return t===n?"_index_":"_value_"}(l,o),u=e.scales||{};r[s]=Zf(Object.create(null),[{axis:l},a,u[l],u[c]])}),t.data.datasets.forEach(s=>{const a=s.type||t.type,l=s.indexAxis||uD(a,n),u=(uc[a]||{}).scales||{};Object.keys(u).forEach(p=>{const g=function PTe(t,n){let e=t;return"_index_"===t?e=n:"_value_"===t&&(e="x"===n?"y":"x"),e}(p,l),_=s[g+"AxisID"]||g;r[_]=r[_]||Object.create(null),Zf(r[_],[{axis:g},i[_],u[p]])})}),Object.keys(r).forEach(s=>{const a=r[s];Zf(a,[gn.scales[a.type],gn.scale])}),r}(t,n)}function u8(t){return(t=t||{}).datasets=t.datasets||[],t.labels=t.labels||[],t}const h8=new Map,f8=new Set;function Pv(t,n){let e=h8.get(t);return e||(e=n(),h8.set(t,e),f8.add(e)),e}const fp=(t,n,e)=>{const i=Ea(n,e);void 0!==i&&t.add(i)};class LTe{constructor(n){this._config=function FTe(t){return(t=t||{}).data=u8(t.data),d8(t),t}(n),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(n){this._config.type=n}get data(){return this._config.data}set data(n){this._config.data=u8(n)}get options(){return this._config.options}set options(n){this._config.options=n}get plugins(){return this._config.plugins}update(){const n=this._config;this.clearCache(),d8(n)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(n){return Pv(n,()=>[[`datasets.${n}`,""]])}datasetAnimationScopeKeys(n,e){return Pv(`${n}.transition.${e}`,()=>[[`datasets.${n}.transitions.${e}`,`transitions.${e}`],[`datasets.${n}`,""]])}datasetElementScopeKeys(n,e){return Pv(`${n}-${e}`,()=>[[`datasets.${n}.elements.${e}`,`datasets.${n}`,`elements.${e}`,""]])}pluginScopeKeys(n){const e=n.id;return Pv(`${this.type}-plugin-${e}`,()=>[[`plugins.${e}`,...n.additionalOptionScopes||[]]])}_cachedScopes(n,e){const i=this._scopeCache;let o=i.get(n);return(!o||e)&&(o=new Map,i.set(n,o)),o}getOptionScopes(n,e,i){const{options:o,type:r}=this,s=this._cachedScopes(n,i),a=s.get(e);if(a)return a;const l=new Set;e.forEach(u=>{n&&(l.add(n),u.forEach(p=>fp(l,n,p))),u.forEach(p=>fp(l,o,p)),u.forEach(p=>fp(l,uc[r]||{},p)),u.forEach(p=>fp(l,gn,p)),u.forEach(p=>fp(l,qk,p))});const c=Array.from(l);return 0===c.length&&c.push(Object.create(null)),f8.has(e)&&s.set(e,c),c}chartOptionScopes(){const{options:n,type:e}=this;return[n,uc[e]||{},gn.datasets[e]||{},{type:e},gn,qk]}resolveNamedOptions(n,e,i,o=[""]){const r={$shared:!0},{resolver:s,subPrefixes:a}=p8(this._resolverCache,n,o);let l=s;(function VTe(t,n){const{isScriptable:e,isIndexable:i}=pH(t);for(const o of n){const r=e(o),s=i(o),a=(s||r)&&t[o];if(r&&(Ia(a)||BTe(a))||s&&cn(a))return!0}return!1})(s,e)&&(r.$shared=!1,l=pu(s,i=Ia(i)?i():i,this.createResolver(n,i,a)));for(const c of e)r[c]=l[c];return r}createResolver(n,e,i=[""],o){const{resolver:r}=p8(this._resolverCache,n,i);return pt(e)?pu(r,e,void 0,o):r}}function p8(t,n,e){let i=t.get(n);i||(i=new Map,t.set(n,i));const o=e.join();let r=i.get(o);return r||(r={resolver:Zk(n,e),subPrefixes:e.filter(a=>!a.toLowerCase().includes("hover"))},i.set(o,r)),r}const BTe=t=>pt(t)&&Object.getOwnPropertyNames(t).some(n=>Ia(t[n])),jTe=["top","bottom","left","right","chartArea"];function m8(t,n){return"top"===t||"bottom"===t||-1===jTe.indexOf(t)&&"x"===n}function g8(t,n){return function(e,i){return e[t]===i[t]?e[n]-i[n]:e[t]-i[t]}}function _8(t){const n=t.chart,e=n.options.animation;n.notifyPlugins("afterRender"),Qt(e&&e.onComplete,[t],n)}function UTe(t){const n=t.chart,e=n.options.animation;Qt(e&&e.onProgress,[t],n)}function b8(t){return eD()&&"string"==typeof t?t=document.getElementById(t):t&&t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas),t}const Ov={},v8=t=>{const n=b8(t);return Object.values(Ov).filter(e=>e.canvas===n).pop()};function zTe(t,n,e){const i=Object.keys(t);for(const o of i){const r=+o;if(r>=n){const s=t[o];delete t[o],(e>0||r>n)&&(t[r+e]=s)}}}let fD=(()=>class t{static defaults=gn;static instances=Ov;static overrides=uc;static registry=Jr;static version="4.5.1";static getChart=v8;static register(...e){Jr.add(...e),y8()}static unregister(...e){Jr.remove(...e),y8()}constructor(e,i){const o=this.config=new LTe(i),r=b8(e),s=v8(r);if(s)throw new Error("Canvas is already in use. Chart with ID '"+s.id+"' must be destroyed before the canvas with ID '"+s.canvas.id+"' can be reused.");const a=o.createResolver(o.chartOptionScopes(),this.getContext());this.platform=new(o.platform||function lTe(t){return!eD()||typeof OffscreenCanvas<"u"&&t instanceof OffscreenCanvas?YDe:aTe}(r)),this.platform.updateConfig(o);const l=this.platform.acquireContext(r,a.aspectRatio),c=l&&l.canvas,u=c&&c.height,p=c&&c.width;this.id=zSe(),this.ctx=l,this.canvas=c,this.width=p,this.height=u,this._options=a,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new DTe,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=function ske(t,n){let e;return function(...i){return n?(clearTimeout(e),e=setTimeout(t,n,i)):t.apply(this,i),n}}(g=>this.update(g),a.resizeDelay||0),this._dataChanges=[],Ov[this.id]=this,l&&c?(Hs.listen(this,"complete",_8),Hs.listen(this,"progress",UTe),this._initialize(),this.attached&&this.update()):console.error("Failed to create chart: can't acquire context from the given item")}get aspectRatio(){const{options:{aspectRatio:e,maintainAspectRatio:i},width:o,height:r,_aspectRatio:s}=this;return dt(e)?i&&s?s:r?o/r:null:e}get data(){return this.config.data}set data(e){this.config.data=e}get options(){return this._options}set options(e){this.config.options=e}get registry(){return Jr}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():wH(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return uH(this.canvas,this.ctx),this}stop(){return Hs.stop(this),this}resize(e,i){Hs.running(this)?this._resizeBeforeDraw={width:e,height:i}:this._resize(e,i)}_resize(e,i){const o=this.options,a=this.platform.getMaximumSize(this.canvas,e,i,o.maintainAspectRatio&&this.aspectRatio),l=o.devicePixelRatio||this.platform.getDevicePixelRatio(),c=this.width?"resize":"attach";this.width=a.width,this.height=a.height,this._aspectRatio=this.aspectRatio,wH(this,l,!0)&&(this.notifyPlugins("resize",{size:a}),Qt(o.onResize,[this,a],this),this.attached&&this._doResize(c)&&this.render())}ensureScalesHaveIDs(){Bt(this.options.scales||{},(o,r)=>{o.id=r})}buildOrUpdateScales(){const e=this.options,i=e.scales,o=this.scales,r=Object.keys(o).reduce((a,l)=>(a[l]=!1,a),{});let s=[];i&&(s=s.concat(Object.keys(i).map(a=>{const l=i[a],c=hD(a,l),u="r"===c,p="x"===c;return{options:l,dposition:u?"chartArea":p?"bottom":"left",dtype:u?"radialLinear":p?"category":"linear"}}))),Bt(s,a=>{const l=a.options,c=l.id,u=hD(c,l),p=$e(l.type,a.dtype);(void 0===l.position||m8(l.position,u)!==m8(a.dposition))&&(l.position=a.dposition),r[c]=!0;let g=null;c in o&&o[c].type===p?g=o[c]:(g=new(Jr.getScale(p))({id:c,type:p,ctx:this.ctx,chart:this}),o[g.id]=g),g.init(l,e)}),Bt(r,(a,l)=>{a||delete o[l]}),Bt(o,a=>{Gi.configure(this,a,a.options),Gi.addBox(this,a)})}_updateMetasets(){const e=this._metasets,i=this.data.datasets.length,o=e.length;if(e.sort((r,s)=>r.index-s.index),o>i){for(let r=i;ri.length&&delete this._stacks,e.forEach((o,r)=>{0===i.filter(s=>s===o._dataset).length&&this._destroyDatasetMeta(r)})}buildOrUpdateControllers(){const e=[],i=this.data.datasets;let o,r;for(this._removeUnreferencedMetasets(),o=0,r=i.length;o{this.getDatasetMeta(i).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(e){const i=this.config;i.update();const o=this._options=i.createResolver(i.chartOptionScopes(),this.getContext()),r=this._animationsDisabled=!o.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),!1===this.notifyPlugins("beforeUpdate",{mode:e,cancelable:!0}))return;const s=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let a=0;for(let u=0,p=this.data.datasets.length;u{u.reset()}),this._updateDatasets(e),this.notifyPlugins("afterUpdate",{mode:e}),this._layers.sort(g8("z","_idx"));const{_active:l,_lastEvent:c}=this;c?this._eventHandler(c,!0):l.length&&this._updateHoverStyles(l,l,!0),this.render()}_updateScales(){Bt(this.scales,e=>{Gi.removeBox(this,e)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const e=this.options,i=new Set(Object.keys(this._listeners)),o=new Set(e.events);(!q5(i,o)||!!this._responsiveListeners!==e.responsive)&&(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:e}=this,i=this._getUniformDataChanges()||[];for(const{method:o,start:r,count:s}of i)zTe(e,r,"_removeElements"===o?-s:s)}_getUniformDataChanges(){const e=this._dataChanges;if(!e||!e.length)return;this._dataChanges=[];const i=this.data.datasets.length,o=s=>new Set(e.filter(a=>a[0]===s).map((a,l)=>l+","+a.splice(1).join(","))),r=o(0);for(let s=1;ss.split(",")).map(s=>({method:s[1],start:+s[2],count:+s[3]}))}_updateLayout(e){if(!1===this.notifyPlugins("beforeLayout",{cancelable:!0}))return;Gi.update(this,this.width,this.height,e);const i=this.chartArea,o=i.width<=0||i.height<=0;this._layers=[],Bt(this.boxes,r=>{o&&"chartArea"===r.position||(r.configure&&r.configure(),this._layers.push(...r._layers()))},this),this._layers.forEach((r,s)=>{r._idx=s}),this.notifyPlugins("afterLayout")}_updateDatasets(e){if(!1!==this.notifyPlugins("beforeDatasetsUpdate",{mode:e,cancelable:!0})){for(let i=0,o=this.data.datasets.length;i=0;--i)this._drawDataset(e[i]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(e){const i=this.ctx,o={meta:e,index:e.index,cancelable:!0},r=OH(this,e);!1!==this.notifyPlugins("beforeDatasetDraw",o)&&(r&&yv(i,r),e.controller.draw(),r&&Cv(i),o.cancelable=!1,this.notifyPlugins("afterDatasetDraw",o))}isPointInArea(e){return Vs(e,this.chartArea,this._minPadding)}getElementsAtEventForMode(e,i,o,r){const s=jDe.modes[i];return"function"==typeof s?s(this,e,o,r):[]}getDatasetMeta(e){const i=this.data.datasets[e],o=this._metasets;let r=o.filter(s=>s&&s._dataset===i).pop();return r||(r={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:i&&i.order||0,index:e,_dataset:i,_parsed:[],_sorted:!1},o.push(r)),r}getContext(){return this.$context||(this.$context=Oa(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(e){const i=this.data.datasets[e];if(!i)return!1;const o=this.getDatasetMeta(e);return"boolean"==typeof o.hidden?!o.hidden:!i.hidden}setDatasetVisibility(e,i){this.getDatasetMeta(e).hidden=!i}toggleDataVisibility(e){this._hiddenIndices[e]=!this._hiddenIndices[e]}getDataVisibility(e){return!this._hiddenIndices[e]}_updateVisibility(e,i,o){const r=o?"show":"hide",s=this.getDatasetMeta(e),a=s.controller._resolveAnimations(void 0,r);Qf(i)?(s.data[i].hidden=!o,this.update()):(this.setDatasetVisibility(e,o),a.update(s,{visible:o}),this.update(l=>l.datasetIndex===e?r:void 0))}hide(e,i){this._updateVisibility(e,i,!1)}show(e,i){this._updateVisibility(e,i,!0)}_destroyDatasetMeta(e){const i=this._metasets[e];i&&i.controller&&i.controller._destroy(),delete this._metasets[e]}_stop(){let e,i;for(this.stop(),Hs.remove(this),e=0,i=this.data.datasets.length;e{i.addEventListener(this,s,a),e[s]=a},r=(s,a,l)=>{s.offsetX=a,s.offsetY=l,this._eventHandler(s)};Bt(this.options.events,s=>o(s,r))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const e=this._responsiveListeners,i=this.platform,o=(c,u)=>{i.addEventListener(this,c,u),e[c]=u},r=(c,u)=>{e[c]&&(i.removeEventListener(this,c,u),delete e[c])},s=(c,u)=>{this.canvas&&this.resize(c,u)};let a;const l=()=>{r("attach",l),this.attached=!0,this.resize(),o("resize",s),o("detach",a)};a=()=>{this.attached=!1,r("resize",s),this._stop(),this._resize(0,0),o("attach",l)},i.isAttached(this.canvas)?l():a()}unbindEvents(){Bt(this._listeners,(e,i)=>{this.platform.removeEventListener(this,i,e)}),this._listeners={},Bt(this._responsiveListeners,(e,i)=>{this.platform.removeEventListener(this,i,e)}),this._responsiveListeners=void 0}updateHoverStyle(e,i,o){const r=o?"set":"remove";let s,a,l,c;for("dataset"===i&&(s=this.getDatasetMeta(e[0].datasetIndex),s.controller["_"+r+"DatasetHoverStyle"]()),l=0,c=e.length;l{const l=this.getDatasetMeta(s);if(!l)throw new Error("No dataset found at index "+s);return{datasetIndex:s,element:l.data[a],index:a}});!pv(o,i)&&(this._active=o,this._lastEvent=null,this._updateHoverStyles(o,i))}notifyPlugins(e,i,o){return this._plugins.notify(this,e,i,o)}isPluginEnabled(e){return 1===this._plugins._cache.filter(i=>i.plugin.id===e).length}_updateHoverStyles(e,i,o){const r=this.options.hover,s=(c,u)=>c.filter(p=>!u.some(g=>p.datasetIndex===g.datasetIndex&&p.index===g.index)),a=s(i,e),l=o?e:s(e,i);a.length&&this.updateHoverStyle(a,r.mode,!1),l.length&&r.mode&&this.updateHoverStyle(l,r.mode,!0)}_eventHandler(e,i){const o={event:e,replay:i,cancelable:!0,inChartArea:this.isPointInArea(e)},r=a=>(a.options.events||this.options.events).includes(e.native.type);if(!1===this.notifyPlugins("beforeEvent",o,r))return;const s=this._handleEvent(e,i,o.inChartArea);return o.cancelable=!1,this.notifyPlugins("afterEvent",o,r),(s||o.changed)&&this.render(),this}_handleEvent(e,i,o){const{_active:r=[],options:s}=this,l=this._getActiveElements(e,r,o,i),c=function YSe(t){return"mouseup"===t.type||"click"===t.type||"contextmenu"===t.type}(e),u=function $Te(t,n,e,i){return e&&"mouseout"!==t.type?i?n:t:null}(e,this._lastEvent,o,c);o&&(this._lastEvent=null,Qt(s.onHover,[e,l,this],this),c&&Qt(s.onClick,[e,l,this],this));const p=!pv(l,r);return(p||i)&&(this._active=l,this._updateHoverStyles(l,r,i)),this._lastEvent=u,p}_getActiveElements(e,i,o,r){if("mouseout"===e.type)return[];if(!o)return i;const s=this.options.hover;return this.getElementsAtEventForMode(e,s.mode,s,r)}})();function y8(){return Bt(fD.instances,t=>t._plugins.invalidate())}function C8(t,n,e=n){t.lineCap=$e(e.borderCapStyle,n.borderCapStyle),t.setLineDash($e(e.borderDash,n.borderDash)),t.lineDashOffset=$e(e.borderDashOffset,n.borderDashOffset),t.lineJoin=$e(e.borderJoinStyle,n.borderJoinStyle),t.lineWidth=$e(e.borderWidth,n.borderWidth),t.strokeStyle=$e(e.borderColor,n.borderColor)}function QTe(t,n,e){t.lineTo(e.x,e.y)}function w8(t,n,e={}){const i=t.length,{start:o=0,end:r=i-1}=e,{start:s,end:a}=n,l=Math.max(o,s),c=Math.min(r,a);return{count:i,start:l,loop:n.loop,ilen:ca&&r>a)?i+c-l:c-l}}function eMe(t,n,e,i){const{points:o,options:r}=n,{count:s,start:a,loop:l,ilen:c}=w8(o,e,i),u=function JTe(t){return t.stepped?bke:t.tension||"monotone"===t.cubicInterpolationMode?vke:QTe}(r);let _,w,x,{move:p=!0,reverse:g}=i||{};for(_=0;_<=c;++_)w=o[(a+(g?c-_:_))%s],!w.skip&&(p?(t.moveTo(w.x,w.y),p=!1):u(t,x,w,g,r.stepped),x=w);return l&&(w=o[(a+(g?c:0))%s],u(t,x,w,g,r.stepped)),!!l}function tMe(t,n,e,i){const o=n.points,{count:r,start:s,ilen:a}=w8(o,e,i),{move:l=!0,reverse:c}=i||{};let g,_,w,x,T,E,u=0,p=0;const R=Y=>(s+(c?a-Y:Y))%r,W=()=>{x!==T&&(t.lineTo(u,T),t.lineTo(u,x),t.lineTo(u,E))};for(l&&(_=o[R(0)],t.moveTo(_.x,_.y)),g=0;g<=a;++g){if(_=o[R(g)],_.skip)continue;const Y=_.x,K=_.y,ee=0|Y;ee===w?(KT&&(T=K),u=(p*u+Y)/++p):(W(),t.lineTo(Y,K),w=ee,p=0,x=T=K),E=K}W()}function pD(t){const n=t.options;return t._decimated||t._loop||n.tension||"monotone"===n.cubicInterpolationMode||n.stepped||n.borderDash&&n.borderDash.length?eMe:tMe}const rMe="function"==typeof Path2D;let pp=(()=>class t extends js{static id="line";static defaults={borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:3,capBezierPoints:!0,cubicInterpolationMode:"default",fill:!1,spanGaps:!1,stepped:!1,tension:0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};static descriptors={_scriptable:!0,_indexable:e=>"borderDash"!==e&&"fill"!==e};constructor(e){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,e&&Object.assign(this,e)}updateControlPoints(e,i){const o=this.options;!o.tension&&"monotone"!==o.cubicInterpolationMode||o.stepped||this._pointsUpdated||(zke(this._points,o,e,o.spanGaps?this._loop:this._fullLoop,i),this._pointsUpdated=!0)}set points(e){this._points=e,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=function oDe(t,n){const e=t.points,i=t.options.spanGaps,o=e.length;if(!o)return[];const r=!!t._loop,{start:s,end:a}=function nDe(t,n,e,i){let o=0,r=n-1;if(e&&!i)for(;oo&&t[r%n].skip;)r--;return r%=n,{start:o,end:r}}(e,o,r,i);return function IH(t,n,e,i){return i&&i.setContext&&e?function rDe(t,n,e,i){const o=t._chart.getContext(),r=PH(t.options),{_datasetIndex:s,options:{spanGaps:a}}=t,l=e.length,c=[];let u=r,p=n[0].start,g=p;function _(w,x,T,E){const R=a?-1:1;if(w!==x){for(w+=l;e[w%l].skip;)w-=R;for(;e[x%l].skip;)x+=R;w%l!==x%l&&(c.push({start:w%l,end:x%l,loop:T,style:E}),u=E,p=x%l)}}for(const w of n){p=a?p:w.start;let T,x=e[p%l];for(g=p+1;g<=w.end;g++){const E=e[g%l];T=PH(i.setContext(Oa(o,{type:"segment",p0:x,p1:E,p0DataIndex:(g-1)%l,p1DataIndex:g%l,datasetIndex:s}))),sDe(T,u)&&_(p,g-1,w.loop,u),x=E,u=T}pclass t extends js{static id="point";parsed;skip;stop;static defaults={borderWidth:1,hitRadius:1,hoverBorderWidth:1,hoverRadius:4,pointStyle:"circle",radius:3,rotation:0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};constructor(e){super(),this.options=void 0,this.parsed=void 0,this.skip=void 0,this.stop=void 0,e&&Object.assign(this,e)}inRange(e,i,o){const r=this.options,{x:s,y:a}=this.getProps(["x","y"],o);return Math.pow(e-s,2)+Math.pow(i-a,2)t;n--){const i=e[n];if(!isNaN(i.x)&&!isNaN(i.y))break}return n}function O8(t,n,e,i){return t&&n?i(t[e],n[e]):t?t[e]:n?n[e]:0}function A8(t,n){let e=[],i=!1;return cn(t)?(i=!0,e=t):e=function DMe(t,n){const{x:e=null,y:i=null}=t||{},o=n.points,r=[];return n.segments.forEach(({start:s,end:a})=>{a=Rv(s,a,o);const l=o[s],c=o[a];null!==i?(r.push({x:l.x,y:i}),r.push({x:c.x,y:i})):null!==e&&(r.push({x:e,y:l.y}),r.push({x:e,y:c.y}))}),r}(t,n),e.length?new pp({points:e,options:{tension:0},_loop:i,_fullLoop:i}):null}function R8(t){return t&&!1!==t.fill}function TMe(t,n,e){let o=t[n].fill;const r=[n];let s;if(!e)return o;for(;!1!==o&&-1===r.indexOf(o);){if(!An(o))return o;if(s=t[o],!s)return!1;if(s.visible)return o;r.push(o),o=s.fill}return!1}function MMe(t,n,e){const i=function OMe(t){const n=t.options,e=n.fill;let i=$e(e&&e.target,e);return void 0===i&&(i=!!n.backgroundColor),!1!==i&&null!==i&&(!0===i?"origin":i)}(t);if(pt(i))return!isNaN(i.value)&&i;let o=parseFloat(i);return An(o)&&Math.floor(o)===o?function EMe(t,n,e,i){return("-"===t||"+"===t)&&(e=n+e),!(e===n||e<0||e>=i)&&e}(i[0],n,o,e):["origin","start","end","stack","shape"].indexOf(i)>=0&&i}function NMe(t,n,e){const i=[];for(let o=0;o=0;--s){const a=o[s].$filler;a&&(a.line.updateControlPoints(r,a.axis),i&&a.fill&&vD(t.ctx,a,r))}},beforeDatasetsDraw(t,n,e){if("beforeDatasetsDraw"!==e.drawTime)return;const i=t.getSortedVisibleDatasetMetas();for(let o=i.length-1;o>=0;--o){const r=i[o].$filler;R8(r)&&vD(t.ctx,r,t.chartArea)}},beforeDatasetDraw(t,n,e){const i=n.meta.$filler;!R8(i)||"beforeDatasetDraw"!==e.drawTime||vD(t.ctx,i,t.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};function X8(t){const n=this.getLabels();return t>=0&&tclass t extends vc{static id="category";static defaults={ticks:{callback:X8}};constructor(e){super(e),this._startValue=void 0,this._valueRange=0,this._addedLabels=[]}init(e){const i=this._addedLabels;if(i.length){const o=this.getLabels();for(const{index:r,label:s}of i)o[r]===s&&o.splice(r,1);this._addedLabels=[]}super.init(e)}parse(e,i){if(dt(e))return null;const o=this.getLabels();return((t,n)=>null===t?null:gi(Math.round(t),0,n))(i=isFinite(i)&&o[i]===e?i:function cEe(t,n,e,i){const o=t.indexOf(n);return-1===o?((t,n,e,i)=>("string"==typeof n?(e=t.push(n)-1,i.unshift({index:e,label:n})):isNaN(n)&&(e=null),e))(t,n,e,i):o!==t.lastIndexOf(n)?e:o}(o,e,$e(i,e),this._addedLabels),o.length-1)}determineDataLimits(){const{minDefined:e,maxDefined:i}=this.getUserBounds();let{min:o,max:r}=this.getMinMax(!0);"ticks"===this.options.bounds&&(e||(o=0),i||(r=this.getLabels().length-1)),this.min=o,this.max=r}buildTicks(){const e=this.min,i=this.max,o=this.options.offset,r=[];let s=this.getLabels();s=0===e&&i===s.length-1?s:s.slice(e,i+1),this._valueRange=Math.max(s.length-(o?0:1),1),this._startValue=this.min-(o?.5:0);for(let a=e;a<=i;a++)r.push({value:a});return r}getLabelForValue(e){return X8.call(this,e)}configure(){super.configure(),this.isHorizontal()||(this._reversePixels=!this._reversePixels)}getPixelForValue(e){return"number"!=typeof e&&(e=this.parse(e)),null===e?NaN:this.getPixelForDecimal((e-this._startValue)/this._valueRange)}getPixelForTick(e){const i=this.ticks;return e<0||e>i.length-1?null:this.getPixelForValue(i[e].value)}getValueForPixel(e){return Math.round(this._startValue+this.getDecimalForPixel(e)*this._valueRange)}getBasePixel(){return this.bottom}})();function Q8(t,n,{horizontal:e,minRotation:i}){const o=Tr(i),r=(e?Math.sin(o):Math.cos(o))||.001;return Math.min(n/r,.75*n*(""+t).length)}class Lv extends vc{constructor(n){super(n),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(n,e){return dt(n)||("number"==typeof n||n instanceof Number)&&!isFinite(+n)?null:+n}handleTickRangeOptions(){const{beginAtZero:n}=this.options,{minDefined:e,maxDefined:i}=this.getUserBounds();let{min:o,max:r}=this;const s=l=>o=e?o:l,a=l=>r=i?r:l;if(n){const l=Qr(o),c=Qr(r);l<0&&c<0?a(0):l>0&&c>0&&s(0)}if(o===r){let l=0===r?1:Math.abs(.05*r);a(r+l),n||s(o-l)}this.min=o,this.max=r}getTickLimit(){const n=this.options.ticks;let o,{maxTicksLimit:e,stepSize:i}=n;return i?(o=Math.ceil(this.max/i)-Math.floor(this.min/i)+1,o>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${i} would result generating up to ${o} ticks. Limiting to 1000.`),o=1e3)):(o=this.computeTickLimit(),e=e||11),e&&(o=Math.min(e,o)),o}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const n=this.options,e=n.ticks;let i=this.getTickLimit();i=Math.max(2,i);const s=function uEe(t,n){const e=[],{bounds:o,step:r,min:s,max:a,precision:l,count:c,maxTicks:u,maxDigits:p,includeBounds:g}=t,_=r||1,w=u-1,{min:x,max:T}=n,E=!dt(s),R=!dt(a),W=!dt(c),Y=(T-x)/(p+1);let ee,ie,M,A,K=Y5((T-x)/w/_)*_;if(K<1e-14&&!E&&!R)return[{value:x},{value:T}];A=Math.ceil(T/K)-Math.floor(x/K),A>w&&(K=Y5(A*K/w/_)*_),dt(l)||(ee=Math.pow(10,l),K=Math.ceil(K*ee)/ee),"ticks"===o?(ie=Math.floor(x/K)*K,M=Math.ceil(T/K)*K):(ie=x,M=T),E&&R&&r&&function eke(t,n){const e=Math.round(t);return e-n<=t&&e+n>=t}((a-s)/r,K/1e3)?(A=Math.round(Math.min((a-s)/K,u)),K=(a-s)/A,ie=s,M=a):W?(ie=E?s:ie,M=R?a:M,A=c-1,K=(M-ie)/A):(A=(M-ie)/K,A=Jf(A,Math.round(A),K/1e3)?Math.round(A):Math.ceil(A));const F=Math.max(Z5(K),Z5(ie));ee=Math.pow(10,dt(l)?F:l),ie=Math.round(ie*ee)/ee,M=Math.round(M*ee)/ee;let U=0;for(E&&(g&&ie!==s?(e.push({value:s}),iea)break;e.push({value:H})}return R&&g&&M!==a?e.length&&Jf(e[e.length-1].value,a,Q8(a,Y,t))?e[e.length-1].value=a:e.push({value:a}):(!R||M===a)&&e.push({value:M}),e}({maxTicks:i,bounds:n.bounds,min:n.min,max:n.max,precision:e.precision,step:e.stepSize,count:e.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:e.minRotation||0,includeBounds:!1!==e.includeBounds},this._range||this);return"ticks"===n.bounds&&function X5(t,n,e){let i,o,r;for(i=0,o=t.length;i{class t{static{this.topInternalMargin=5}constructor(e){this.height=100,this.animated=!1,this.min=void 0,this.max=void 0,this.differ=e.find([]).create(null)}ngAfterViewInit(){this.chart=new fD(this.chartElement.nativeElement,{type:"line",data:{labels:Array.from(Array(this.data.length).keys()),datasets:[{data:this.data,backgroundColor:"rgba(10, 15, 22, 0.4)",borderColor:"rgba(10, 15, 22, 0.4)",borderWidth:1}]},options:{maintainAspectRatio:!1,events:[],plugins:{legend:{display:!1},tooltip:{enabled:!1}},scales:{y:{display:!1,suggestedMin:0},x:{display:!1}},elements:{point:{radius:0}},layout:{padding:{left:0,right:0,top:t.topInternalMargin,bottom:0}},animation:!!this.animated&&void 0}}),void 0!==this.min&&void 0!==this.max&&(this.updateMinAndMax(),this.chart.update())}ngDoCheck(){this.differ.diff(this.data)&&this.chart&&(void 0!==this.min&&void 0!==this.max&&this.updateMinAndMax(),this.animated?this.chart.update():this.chart.update("none"))}ngOnDestroy(){this.chart&&this.chart.destroy()}updateMinAndMax(){this.chart.options.scales.y.min=this.min,this.chart.options.scales.y.max=this.max}static{this.\u0275fac=function(i){return new(i||t)(P(t_))}}static{this.\u0275cmp=se({type:t,selectors:[["app-line-chart"]],viewQuery:function(i,o){if(1&i&&rt(REe,5),2&i){let r;ue(r=he())&&(o.chartElement=r.first)}},inputs:{data:"data",height:"height",animated:"animated",min:"min",max:"max"},standalone:!1,decls:3,vars:2,consts:[["chart",""],[1,"chart-container"]],template:function(i,o){1&i&&(f(0,"div",1),B(1,"canvas",null,0),h()),2&i&&Ji("height: "+o.height+"px;")},styles:[".chart-container[_ngcontent-%COMP%]{position:relative;width:100%;overflow:hidden;border-radius:10px}"]})}}return t})();const cj=()=>({showValue:!0}),dj=()=>({showUnit:!0});function NEe(t,n){if(1&t&&(f(0,"div",0),B(1,"app-line-chart",1),f(2,"div",2)(3,"span",3),m(4),b(5,"translate"),h(),f(6,"span",4)(7,"span",5),m(8),b(9,"autoScale"),h(),f(10,"span",6),m(11),b(12,"autoScale"),h()()()()),2&t){const e=C();d(),v("data",e.trafficData.sentHistory),d(3),O(y(5,4,"common.uploaded")),d(4),O(Ee(9,6,e.trafficData.totalSent,Mt(12,cj))),d(3),O(Ee(12,9,e.trafficData.totalSent,Mt(13,dj)))}}function FEe(t,n){if(1&t&&(f(0,"div",0),B(1,"app-line-chart",1),f(2,"div",2)(3,"span",3),m(4),b(5,"translate"),h(),f(6,"span",4)(7,"span",5),m(8),b(9,"autoScale"),h(),f(10,"span",6),m(11),b(12,"autoScale"),h()()()()),2&t){const e=C();d(),v("data",e.trafficData.receivedHistory),d(3),O(y(5,4,"common.downloaded")),d(4),O(Ee(9,6,e.trafficData.totalReceived,Mt(12,cj))),d(3),O(Ee(12,9,e.trafficData.totalReceived,Mt(13,dj)))}}let LEe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=se({type:t,selectors:[["app-charts"]],inputs:{trafficData:"trafficData"},standalone:!1,decls:2,vars:2,consts:[[1,"small-rounded-elevated-box","chart"],[3,"data"],[1,"info"],[1,"text"],[1,"rate"],[1,"value"],[1,"unit"]],template:function(i,o){1&i&&(S(0,NEe,13,14,"div",0),S(1,FEe,13,14,"div",0)),2&i&&(k(o.trafficData?0:-1),d(),k(o.trafficData?1:-1))},dependencies:[SD,Se,Kf],styles:[".chart[_ngcontent-%COMP%]{position:relative;margin-bottom:20px}.chart[_ngcontent-%COMP%]:last-child{margin-bottom:10px}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%]{position:absolute;bottom:0;left:0;display:flex;justify-content:space-between;align-items:flex-end;padding:10px;width:100%}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:#f8f9f9}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] span.text[_ngcontent-%COMP%]{font-size:.8rem;text-transform:uppercase;font-weight:700}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] span.rate[_ngcontent-%COMP%] .value[_ngcontent-%COMP%]{font-size:1.25rem;font-weight:700}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] span.rate[_ngcontent-%COMP%] .unit[_ngcontent-%COMP%]{font-size:.8rem;padding-left:5px}"]})}}return t})();const kD=t=>({time:t}),BEe=(t,n)=>({"latency-high":t,"latency-very-high":n}),VEe=(t,n)=>n.name;function HEe(t,n){if(1&t&&(f(0,"span",3)(1,"span",4),m(2),b(3,"translate"),h(),B(4,"app-copy-to-clipboard-text",8),h()),2&t){const e=C(2);d(2),I("",y(3,3,"node.details.node-info.public-ip")," "),d(2),v("text",Wt(e.node.publicIp))}}function jEe(t,n){if(1&t&&(f(0,"span",3)(1,"span",4),m(2),b(3,"translate"),h(),B(4,"app-copy-to-clipboard-text",8),h()),2&t){const e=C(2);d(2),I("",y(3,3,"node.details.node-info.ip")," "),d(2),v("text",Wt(e.node.ip))}}function UEe(t,n){1&t&&(m(0),b(1,"translate")),2&t&&Hn(" ",C(2).node.dmsgServers.length," ",y(1,2,"node.details.node-info.connected")," ")}function zEe(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"node.details.node-info.no-dmsg-server")," ")}function $Ee(t,n){if(1&t&&(f(0,"span",20),m(1),h()),2&t){const e=C().$implicit,i=C(3);v("ngClass",ft(2,BEe,e.latency>3e8,e.latency>8e8)),d(),I(" ",i.formatLatency(e.latency)," ")}}function WEe(t,n){if(1&t&&(f(0,"div",19),B(1,"app-copy-to-clipboard-text",8),S(2,$Ee,2,5,"span",20),h()),2&t){const e=n.$implicit;d(),v("text",Wt(e.pk)),d(),k(e.latency>0?2:-1)}}function GEe(t,n){if(1&t&&(f(0,"div",9),we(1,WEe,3,3,"div",19,Re),h()),2&t){const e=C(2);d(),xe(e.node.dmsgServers)}}function qEe(t,n){if(1&t&&(f(0,"span",3)(1,"span",4),m(2),b(3,"translate"),h(),m(4),h()),2&t){const e=C(2);d(2),I("",y(3,2,"node.details.node-info.skybian-version")," "),d(2),I(" ",e.node.skybianBuildVersion," ")}}function KEe(t,n){if(1&t&&(f(0,"mat-icon",10),b(1,"translate"),m(2," info "),h()),2&t){const e=C(2);v("inline",!0)("matTooltip",Ee(1,2,"node.details.node-info.time.minutes",oe(5,kD,e.timeOnline.totalMinutes)))}}function YEe(t,n){1&t&&(f(0,"a",22)(1,"mat-icon",23),b(2,"translate"),m(3," open_in_browser "),h()()),2&t&&(v("href","https://explorer.skycoin.com/app/address/"+C(3).node.rewardsAddress,ho),d(),v("inline",!0)("matTooltip",y(2,3,"node.details.rewards-info.open-in-explorer")))}function XEe(t,n){if(1&t&&(B(0,"app-copy-to-clipboard-text",21),S(1,YEe,4,5,"a",22)),2&t){const e=C(2);v("text",Wt(e.node.rewardsAddress)),d(),k(e.rewardsAddressIsXpub?-1:1)}}function ZEe(t,n){1&t&&(m(0),b(1,"translate"),f(2,"mat-icon",10),b(3,"translate"),m(4,"info"),h()),2&t&&(I(" ",y(1,3,"node.details.rewards-info.not-registered")," "),d(2),v("inline",!0)("matTooltip",y(3,5,"node.details.rewards-info.not-registered-info")))}function QEe(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"node.details.rewards-info.change-address-button")," ")}function JEe(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"node.details.rewards-info.set-address-button")," ")}function e2e(t,n){1&t&&(f(0,"span"),m(1,", "),h())}function t2e(t,n){if(1&t&&(f(0,"span")(1,"span",24),m(2),h(),m(3,": "),f(4,"span",15),m(5),h(),S(6,e2e,2,0,"span"),h()),2&t){const e=n.$implicit,i=n.$index,o=n.$count;d(2),O(e.type),d(3),O(e.count),d(),k(i!==o-1?6:-1)}}function n2e(t,n){if(1&t&&(m(0," ("),we(1,t2e,7,3,"span",null,Re),m(3,") ")),2&t){const e=C(2);d(),xe(e.transportStats.byType)}}function i2e(t,n){if(1&t&&(f(0,"span",16)(1,"span",4),m(2),b(3,"translate"),h(),B(4,"i"),m(5),b(6,"translate"),h()),2&t){const e=C(2);d(2),O(y(3,4,"node.details.node-health.uptime-tracker")),d(2),at(e.subHealthClass(null==e.node.health?null:e.node.health.uptimeTrackerHealth)),d(),I(" ",y(6,6,e.subHealthText(null==e.node.health?null:e.node.health.uptimeTrackerHealth))," ")}}function o2e(t,n){if(1&t&&(f(0,"span",16)(1,"span",4),m(2),b(3,"translate"),h(),B(4,"i"),m(5),b(6,"translate"),h()),2&t){const e=C(2);d(2),O(y(3,4,"node.details.node-health.autoconnect")),d(2),at(e.subHealthClass(null==e.node.health?null:e.node.health.autoconnectHealth)),d(),I(" ",y(6,6,e.subHealthText(null==e.node.health?null:e.node.health.autoconnectHealth))," ")}}function r2e(t,n){if(1&t&&(f(0,"span",16)(1,"span",4),m(2),b(3,"translate"),h(),B(4,"i"),m(5),b(6,"translate"),h()),2&t){const e=C(2);d(2),O(y(3,4,"node.details.node-health.transportability")),d(2),at(e.subHealthClass(null==e.node.health?null:e.node.health.transportabilityHealth)),d(),I(" ",y(6,6,e.subHealthText(null==e.node.health?null:e.node.health.transportabilityHealth))," ")}}function s2e(t,n){if(1&t&&(f(0,"span",3)(1,"span",4),m(2),h(),m(3),h()),2&t){const e=n.$implicit;d(2),I("",e.name,": "),d(),I(" ",e.value," ")}}function a2e(t,n){1&t&&we(0,s2e,4,2,"span",3,VEe),2&t&&xe(C(3).ports)}function l2e(t,n){if(1&t){const e=ce();B(0,"div",11),f(1,"div",1)(2,"span",25),L("click",function(){z(e);const o=C(2);return $(o.showPorts=!o.showPorts)}),f(3,"mat-icon",26),m(4),h(),m(5),b(6,"translate"),f(7,"span",27),m(8),h()(),S(9,a2e,2,0),h()}if(2&t){const e=C(2);d(3),v("inline",!0),d(),O(e.showPorts?"expand_more":"chevron_right"),d(),I(" ",y(6,5,"node.details.ports.title")," "),d(3),I("(",e.ports.length,")"),d(),k(e.showPorts?9:-1)}}function c2e(t,n){if(1&t&&(f(0,"pre",17),m(1),h()),2&t){const e=C(2);d(),O(e.rawConfig)}}function d2e(t,n){if(1&t){const e=ce();B(0,"div",11),f(1,"div",1)(2,"span",2),m(3),b(4,"translate"),h(),f(5,"div",12)(6,"app-button",13),L("action",function(){return z(e),$(C(2).openTpViz())}),m(7),b(8,"translate"),h()()()}2&t&&(d(3),O(y(4,3,"node.details.tpviz.title")),d(3),v("forDarkBackground",!0),d(),I(" ",y(8,5,"node.details.tpviz.open")," "))}function u2e(t,n){if(1&t){const e=ce();f(0,"div",0)(1,"div",1)(2,"span",2),m(3),b(4,"translate"),h(),f(5,"span",3)(6,"span",4),m(7),b(8,"translate"),h(),f(9,"span",5),L("click",function(){return z(e),$(C().showEditLabelDialog())}),f(10,"span",6),m(11),h(),f(12,"mat-icon",7),m(13,"edit"),h()()(),f(14,"span",3)(15,"span",4),m(16),b(17,"translate"),h(),B(18,"app-copy-to-clipboard-text",8),h(),f(19,"span",3)(20,"span",4),m(21),b(22,"translate"),h(),m(23),b(24,"translate"),h(),S(25,HEe,5,5,"span",3),S(26,jEe,5,5,"span",3),f(27,"span",3)(28,"span",4),m(29),b(30,"translate"),h(),S(31,UEe,2,4),S(32,zEe,2,3),h(),S(33,GEe,3,0,"div",9),f(34,"span",3)(35,"span",4),m(36),b(37,"translate"),h(),m(38),b(39,"translate"),h(),f(40,"span",3)(41,"span",4),m(42),b(43,"translate"),h(),m(44),b(45,"translate"),h(),f(46,"span",3)(47,"span",4),m(48),b(49,"translate"),h(),m(50),b(51,"translate"),h(),f(52,"span",3)(53,"span",4),m(54),b(55,"translate"),h(),m(56),b(57,"translate"),h(),f(58,"span",3)(59,"span",4),m(60),b(61,"translate"),h(),m(62),b(63,"translate"),h(),S(64,qEe,5,4,"span",3),f(65,"span",3)(66,"span",4),m(67),b(68,"translate"),h(),m(69),b(70,"translate"),S(71,KEe,3,7,"mat-icon",10),h()(),B(72,"div",11),f(73,"div",1)(74,"span",2),m(75),b(76,"translate"),h(),f(77,"span",3)(78,"span",4),m(79),b(80,"translate"),h(),S(81,XEe,2,3),S(82,ZEe,5,7),h(),f(83,"div",12)(84,"app-button",13),L("action",function(){return z(e),$(C().changeRewardsAddressConfig())}),S(85,QEe,2,3),S(86,JEe,2,3),h()()(),B(87,"div",11),f(88,"div",1)(89,"span",2),m(90),b(91,"translate"),h(),f(92,"span",3)(93,"span",4),m(94),b(95,"translate"),h(),f(96,"span",14)(97,"span",15),m(98),h(),S(99,n2e,4,0),h()(),f(100,"span",3)(101,"span",4),m(102),b(103,"translate"),h(),m(104),b(105,"translate"),f(106,"mat-icon",10),b(107,"translate"),m(108,"info"),h()(),f(109,"div",12)(110,"app-button",13),L("action",function(){return z(e),$(C().changeTransportsConfig())}),m(111),b(112,"translate"),h()(),f(113,"span",3)(114,"span",4),m(115),b(116,"translate"),h(),m(117),b(118,"translate"),f(119,"mat-icon",10),b(120,"translate"),m(121,"info"),h()(),f(122,"div",12)(123,"app-button",13),L("action",function(){return z(e),$(C().changePublicConfig())}),m(124),b(125,"translate"),h()()(),B(126,"div",11),f(127,"div",1)(128,"span",2),m(129),b(130,"translate"),h(),f(131,"span",3)(132,"span",4),m(133),b(134,"translate"),h(),m(135),h(),f(136,"div",12)(137,"app-button",13),L("action",function(){return z(e),$(C().changeRouterConfig())}),m(138),b(139,"translate"),h()()(),B(140,"div",11),f(141,"div",1)(142,"span",2),m(143),b(144,"translate"),h(),f(145,"span",3)(146,"span",4),m(147),b(148,"translate"),h(),B(149,"i"),m(150),b(151,"translate"),h(),S(152,i2e,7,8,"span",16),S(153,o2e,7,8,"span",16),S(154,r2e,7,8,"span",16),h(),S(155,l2e,10,7),B(156,"div",11),f(157,"div",1)(158,"span",2),m(159),b(160,"translate"),h(),f(161,"div",12)(162,"app-button",13),L("action",function(){return z(e),$(C().viewConfig())}),m(163),b(164,"translate"),h()(),S(165,c2e,2,1,"pre",17),h(),S(166,d2e,9,7),B(167,"div",11),f(168,"div",1)(169,"span",2),m(170),b(171,"translate"),h(),B(172,"app-charts",18),h()()}if(2&t){const e=C();d(3),O(y(4,73,e.node.isHypervisor?"node.details.node-info.title-local":"node.details.node-info.title")),d(4),I("",y(8,75,"node.details.node-info.label")," "),d(4),O(e.node.label),d(),v("inline",!0),d(4),I("",y(17,77,"node.details.node-info.public-key")," "),d(2),v("text",Wt(e.node.localPk)),d(3),I("",y(22,79,"node.details.node-info.symmetic-nat")," "),d(2),I(" ",y(24,81,e.node.isSymmeticNat?"common.yes":"common.no")," "),d(2),k(e.node.isSymmeticNat?-1:25),d(),k(e.node.ip?26:-1),d(3),I("",y(30,83,"node.details.node-info.dmsg-servers")," "),d(2),k(e.node.dmsgServers&&e.node.dmsgServers.length>0?31:-1),d(),k(e.node.dmsgServers&&0!==e.node.dmsgServers.length?-1:32),d(),k(e.node.dmsgServers&&e.node.dmsgServers.length>0?33:-1),d(3),I("",y(37,85,"node.details.node-info.ping")," "),d(2),I(" ",Ee(39,87,"common.time-in-ms",oe(153,kD,e.node.roundTripPing))," "),d(4),I("",y(43,90,"node.details.node-info.node-version")," "),d(2),I(" ",e.node.version?e.node.version:y(45,92,"common.unknown")," "),d(4),I("",y(49,94,"node.details.node-info.config-version")," "),d(2),I(" ",e.node.configVersion?e.node.configVersion:y(51,96,"common.unknown")," "),d(4),I("",y(55,98,"node.details.node-info.os")," "),d(2),I(" ",e.node.os?e.node.os:y(57,100,"common.unknown")," "),d(4),I("",y(61,102,"node.details.node-info.arch")," "),d(2),I(" ",e.node.arch?e.node.arch:y(63,104,"common.unknown")," "),d(2),k(e.node.skybianBuildVersion?64:-1),d(3),I("",y(68,106,"node.details.node-info.time.title")," "),d(2),I(" ",Ee(70,108,"node.details.node-info.time."+e.timeOnline.translationVarName,oe(155,kD,e.timeOnline.elapsedTime))," "),d(2),k(e.timeOnline.totalMinutes>60?71:-1),d(4),O(y(76,111,"node.details.rewards-info.title")),d(4),I("",y(80,113,"node.details.rewards-info.rewards-address")," "),d(2),k(e.node.rewardsAddress?81:-1),d(),k(e.node.rewardsAddress?-1:82),d(2),v("forDarkBackground",!0),d(),k(e.node.rewardsAddress?85:-1),d(),k(e.node.rewardsAddress?-1:86),d(4),O(y(91,115,"node.details.transports-info.title")),d(4),I("",y(95,117,"node.details.transports-info.total")," "),d(4),O(e.transportStats.total),d(),k(e.transportStats.byType.length>0?99:-1),d(3),I("",y(103,119,"node.details.transports-info.autoconnect")," "),d(2),I(" ",y(105,121,"node.details.transports-info."+(e.node.autoconnectTransports?"enabled":"disabled"))," "),d(2),v("inline",!0)("matTooltip",y(107,123,"node.details.transports-info.autoconnect-info")),d(4),v("forDarkBackground",!0),d(),I(" ",y(112,125,"node.details.transports-info."+(e.node.autoconnectTransports?"disable":"enable")+"-button")," "),d(4),I("",y(116,127,"node.details.transports-info.is-public")," "),d(2),I(" ",y(118,129,"node.details.transports-info.public-"+(e.isPublic?"enabled":"disabled"))," "),d(2),v("inline",!0)("matTooltip",y(120,131,"node.details.transports-info.is-public-info")),d(4),v("forDarkBackground",!0),d(),I(" ",y(125,133,"node.details.transports-info.public-"+(e.isPublic?"disable":"enable")+"-button")," "),d(5),O(y(130,135,"node.details.router-info.title")),d(4),I("",y(134,137,"node.details.router-info.min-hops")," "),d(2),I(" ",e.node.minHops," "),d(2),v("forDarkBackground",!0),d(),I(" ",y(139,139,"node.details.router-info.change-config-button")," "),d(5),I("",y(144,141,"node.details.node-health.title")," "),d(4),O(y(148,143,"node.details.node-health.services")),d(2),at(e.nodeHealthClass),d(),I(" ",y(151,145,e.nodeHealthText)," "),d(2),k(null!=e.node.health&&e.node.health.uptimeTrackerHealth?152:-1),d(),k(null!=e.node.health&&e.node.health.autoconnectHealth?153:-1),d(),k(null!=e.node.health&&e.node.health.transportabilityHealth?154:-1),d(),k(e.ports.length>0?155:-1),d(4),O(y(160,147,"node.details.config.title")),d(3),v("forDarkBackground",!0),d(),I(" ",y(164,149,"node.details.config.view-button")," "),d(2),k(e.showRawConfig&&e.rawConfig?165:-1),d(),k(e.node.isHypervisor?166:-1),d(4),O(y(171,151,"node.details.node-traffic-data")),d(2),v("trafficData",e.trafficData)}}let uj=(()=>{class t{set nodeInfo(e){this.node=e,this.timeOnline=lv.getElapsedTime(e.secondsOnline),this.transportStats=this.computeTransportStats(),e.health&&e.health.servicesHealth===Eo.Healthy?(this.nodeHealthText="node.statuses.online",this.nodeHealthClass="dot-green"):e.health&&e.health.servicesHealth===Eo.Unhealthy?(this.nodeHealthText="node.statuses.partially-online",this.nodeHealthClass="dot-yellow blinking"):e.health&&e.health.servicesHealth===Eo.Connecting?(this.nodeHealthText="node.statuses.connecting",this.nodeHealthClass="dot-outline-gray"):(this.nodeHealthText="node.statuses.unknown",this.nodeHealthClass="dot-outline-gray"),this.fetchPorts(e.localPk),this.fetchPublicStatus(e.localPk)}get rewardsAddressIsXpub(){return(this.node&&this.node.rewardsAddress||"").startsWith("xpub")}constructor(e,i,o,r,s){this.dialog=e,this.storageService=i,this.transportService=o,this.snackbarService=r,this.apiService=s,this.transportStats={total:0,byType:[]},this.ports=[],this.showPorts=!1,this.isPublic=!1,this.showRawConfig=!1,this.rawConfig=""}ngOnDestroy(){this.autoconnectSubscription&&this.autoconnectSubscription.unsubscribe(),this.publicToggleSubscription&&this.publicToggleSubscription.unsubscribe()}subHealthClass(e){return e===Eo.Healthy?"dot-green":e===Eo.Unhealthy?"dot-yellow blinking":"dot-outline-gray"}subHealthText(e){return e===Eo.Healthy?"node.statuses.online":e===Eo.Unhealthy?"node.statuses.partially-online":"node.statuses.connecting"}showEditLabelDialog(){let e=this.storageService.getLabelInfo(this.node.localPk);e||(e={id:this.node.localPk,label:"",identifiedElementType:io.Node}),vk.openDialog(this.dialog,e).afterClosed().subscribe(i=>{i&&ke.refreshCurrentDisplayedData()})}changeRewardsAddressConfig(){mSe.openDialog(this.dialog,{nodePk:this.node.localPk,currentAddress:this.node.rewardsAddress}).afterClosed().subscribe(i=>{i&&ke.refreshCurrentDisplayedData()})}changeRouterConfig(){F5.openDialog(this.dialog,{nodePk:this.node.localPk,minHops:this.node.minHops}).afterClosed().subscribe(i=>{i&&ke.refreshCurrentDisplayedData()})}hasDmsgServer(){return!(!this.node||0===this.node.dmsgServerPk.replace(/0/g,"").length)}formatLatency(e){const i=e/1e6;return i<10?i.toFixed(2)+"ms":Math.round(i)+"ms"}computeTransportStats(){if(!this.node||!this.node.transports)return{total:0,byType:[]};const e={};for(const o of this.node.transports)e[o.type]=(e[o.type]||0)+1;const i=Object.entries(e).map(([o,r])=>({type:o,count:r})).sort((o,r)=>r.count-o.count);return{total:this.node.transports.length,byType:i}}fetchPorts(e){this.apiService.get(`visors/${e}/ports`).subscribe(i=>{this.ports=i&&"object"==typeof i?Object.entries(i).map(([o,r])=>({name:o,value:JSON.stringify(r)})):[]},()=>{this.ports=[]})}fetchPublicStatus(e){this.apiService.get(`visors/${e}/public`).subscribe(i=>{this.isPublic=i&&!0===i.is_public},()=>{this.isPublic=!1})}changePublicConfig(){const e=Ye.createConfirmationDialog(this.dialog,this.isPublic?"node.details.transports-info.public-disable-confirmation":"node.details.transports-info.public-enable-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.showProcessing(),this.publicToggleSubscription=this.apiService.put(`visors/${this.node.localPk}/public`,{is_public:!this.isPublic}).subscribe(()=>{e.close(),this.snackbarService.showDone(this.isPublic?"node.details.transports-info.public-disable-done":"node.details.transports-info.public-enable-done"),this.isPublic=!this.isPublic},i=>{i=Je(i),e.componentInstance.showDone("confirmation.error-header-text",i.translatableErrorMsg)})})}viewConfig(){this.showRawConfig?this.showRawConfig=!1:this.apiService.get(`visors/${this.node.localPk}/runtime-config`).subscribe(e=>{this.rawConfig=JSON.stringify(e,null,2),this.showRawConfig=!0},()=>{this.snackbarService.showError("common.loading-error")})}openTpViz(){window.open("/tp-viz/","_blank")}changeTransportsConfig(){const e=Ye.createConfirmationDialog(this.dialog,this.node.autoconnectTransports?"node.details.transports-info.disable-confirmation":"node.details.transports-info.enable-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.showProcessing();const i=this.transportService.changeAutoconnectSetting(this.node.localPk,!this.node.autoconnectTransports);this.autoconnectSubscription=i.subscribe(()=>{e.close(),this.snackbarService.showDone(this.node.autoconnectTransports?"node.details.transports-info.disable-done":"node.details.transports-info.enable-done"),ke.refreshCurrentDisplayedData()},o=>{o=Je(o),e.componentInstance.showDone("confirmation.error-header-text",o.translatableErrorMsg)})})}static{this.\u0275fac=function(i){return new(i||t)(P(kt),P(zn),P(Dk),P(bt),P(br))}}static{this.\u0275cmp=se({type:t,selectors:[["app-node-info-content"]],inputs:{nodeInfo:"nodeInfo",trafficData:"trafficData"},standalone:!1,decls:1,vars:1,consts:[[1,"font-smaller","d-flex","flex-column","mt-4.5"],[1,"d-flex","flex-column"],[1,"section-title"],[1,"info-line"],[1,"title"],[1,"highlight-internal-icon",3,"click"],[1,"text-with-small-right-margin"],[1,"edit-icon",3,"inline"],[3,"text"],[1,"dmsg-servers-list"],[3,"inline","matTooltip"],[1,"separator"],[1,"config-button-container"],["color","primary",3,"action","forDarkBackground"],[1,"transport-stats"],[1,"transport-count"],[1,"info-line","sub-health"],[1,"raw-config"],[1,"d-flex","flex-column","justify-content-end","mt-3",3,"trafficData"],[1,"dmsg-server-item"],[1,"dmsg-latency",3,"ngClass"],[1,"text-with-right-margin",3,"text"],["target","_blank","rel","noreferrer nofollow noopener",3,"href"],[1,"link-icon","transparent-button",3,"inline","matTooltip"],[1,"transport-type"],[1,"section-title","collapsible-header",2,"cursor","pointer",3,"click"],[3,"inline"],[1,"count-badge"]],template:function(i,o){1&i&&S(0,u2e,173,157,"div",0),2&i&&k(o.node?0:-1)},dependencies:[qt,lt,pn,Rk,On,LEe,Se],styles:[".section-title[_ngcontent-%COMP%]{font-size:1rem;font-weight:700;text-transform:uppercase;color:#00d4ff;text-shadow:0 0 10px rgba(0,212,255,.5),0 0 20px rgba(0,212,255,.3);letter-spacing:1px;margin-bottom:8px}.info-table[_ngcontent-%COMP%]{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;align-items:baseline;margin-top:8px}.info-table[_ngcontent-%COMP%] .info-label[_ngcontent-%COMP%]{opacity:.7;white-space:nowrap;font-size:.9em}.info-table[_ngcontent-%COMP%] .info-value[_ngcontent-%COMP%]{word-break:break-word}.info-line[_ngcontent-%COMP%]{word-break:break-word;margin-top:7px;display:flex;align-items:baseline;gap:6px}.info-line[_ngcontent-%COMP%] .text-with-right-margin[_ngcontent-%COMP%]{margin-right:5px}.info-line[_ngcontent-%COMP%] .text-with-small-right-margin[_ngcontent-%COMP%]{margin-right:3px}.info-line[_ngcontent-%COMP%] .link-icon[_ngcontent-%COMP%]{font-size:20px;line-height:1;color:#fff!important;cursor:pointer}.info-line[_ngcontent-%COMP%] .edit-icon[_ngcontent-%COMP%]{display:inline!important}.info-line[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:3px;-webkit-user-select:none;user-select:none}.info-line[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{margin-left:7px}.info-line[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{opacity:.7;white-space:nowrap;min-width:120px;font-size:.9em}.separator[_ngcontent-%COMP%]{width:100%;height:0px;margin:1rem 0;border-top:1px solid rgba(255,255,255,.15);opacity:.5}.config-button-container[_ngcontent-%COMP%]{margin-top:10px;margin-left:-4px}.dmsg-servers-list[_ngcontent-%COMP%]{margin-left:0;margin-top:8px;display:flex;flex-direction:column;gap:4px;padding:10px 12px;background:#00d4ff0d;border-radius:6px;border-left:2px solid rgba(0,212,255,.3)}.dmsg-servers-list[_ngcontent-%COMP%] .dmsg-server-item[_ngcontent-%COMP%]{font-family:Consolas,Monaco,Courier New,monospace;font-size:.82em;display:flex;align-items:center;gap:10px;padding:4px 0;color:#fffffff2;transition:all .2s ease}.dmsg-servers-list[_ngcontent-%COMP%] .dmsg-server-item[_ngcontent-%COMP%]:hover{color:#00d4ff;text-shadow:0 0 8px rgba(0,212,255,.4)}.dmsg-servers-list[_ngcontent-%COMP%] .dmsg-server-item[_ngcontent-%COMP%] .dmsg-latency[_ngcontent-%COMP%]{color:#4ade80;font-weight:500;font-size:.95em;text-shadow:0 0 6px rgba(74,222,128,.3)}.dmsg-servers-list[_ngcontent-%COMP%] .dmsg-server-item[_ngcontent-%COMP%] .dmsg-latency.latency-high[_ngcontent-%COMP%]{color:#fbbf24;text-shadow:0 0 6px rgba(251,191,36,.3)}.dmsg-servers-list[_ngcontent-%COMP%] .dmsg-server-item[_ngcontent-%COMP%] .dmsg-latency.latency-very-high[_ngcontent-%COMP%]{color:#f87171;text-shadow:0 0 6px rgba(248,113,113,.3)}.glow-value[_ngcontent-%COMP%]{color:#e0f2fe;text-shadow:0 0 4px rgba(224,242,254,.2)}.status-online[_ngcontent-%COMP%]{color:#4ade80;text-shadow:0 0 8px rgba(74,222,128,.5)}.status-offline[_ngcontent-%COMP%]{color:#f87171;text-shadow:0 0 8px rgba(248,113,113,.5)}.raw-config[_ngcontent-%COMP%]{margin-top:10px;padding:12px;background:#0000004d;border:1px solid rgba(0,212,255,.2);border-radius:6px;font-family:Consolas,Monaco,Courier New,monospace;font-size:.8em;color:#ffffffe6;overflow-x:auto;max-height:400px;overflow-y:auto;white-space:pre-wrap;word-break:break-all}.sub-health[_ngcontent-%COMP%]{padding-left:12px;font-size:.9em;color:#ffffffd9}.collapsible-header[_ngcontent-%COMP%]{display:flex;align-items:center;-webkit-user-select:none;user-select:none}.collapsible-header[_ngcontent-%COMP%]:hover{color:#a5b4fc}.collapsible-header[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:4px;font-size:18px;width:18px;height:18px}.collapsible-header[_ngcontent-%COMP%] .count-badge[_ngcontent-%COMP%]{margin-left:6px;color:#ffffff8c;font-weight:400;font-size:.85em}.transport-stats[_ngcontent-%COMP%]{color:#ffffffd9}.transport-stats[_ngcontent-%COMP%] .transport-type[_ngcontent-%COMP%]{color:#a5b4fc;font-weight:500}.transport-stats[_ngcontent-%COMP%] .transport-count[_ngcontent-%COMP%]{color:#4ade80;font-weight:600}"]})}}return t})(),h2e=(()=>{class t extends Wn{ngOnInit(){return this.nodeSubscription=ke.currentNode.subscribe(e=>{this.node=e}),this.trafficDataSubscription=ke.currentTrafficData.subscribe(e=>{this.trafficData=e}),super.ngOnInit()}ngOnDestroy(){this.nodeSubscription.unsubscribe(),this.trafficDataSubscription.unsubscribe()}static{this.\u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})()}static{this.\u0275cmp=se({type:t,selectors:[["app-node-info"]],standalone:!1,features:[be],decls:1,vars:2,consts:[[3,"nodeInfo","trafficData"]],template:function(i,o){1&i&&B(0,"app-node-info-content",0),2&i&&v("nodeInfo",o.node)("trafficData",o.trafficData)},dependencies:[uj],encapsulation:2})}}return t})();const f2e=()=>[];function p2e(t,n){1&t&&(f(0,"div",6),B(1,"mat-spinner",7),h())}function m2e(t,n){1&t&&(f(0,"span"),m(1,"open"),h())}function g2e(t,n){1&t&&(f(0,"span"),m(1,"s"),h())}function _2e(t,n){if(1&t&&(f(0,"span"),m(1),tt(2,g2e,2,0,"span",5),h()),2&t){const e=C().$implicit;d(),I(" ",e.whitelist.length," PK"),d(),v("ngIf",1!==e.whitelist.length)}}function b2e(t,n){if(1&t){const e=ce();f(0,"button",41),L("click",function(){z(e);const o=C(2).$implicit;return $(C(3).clearWhitelist(o))}),m(1," Clear "),h()}}function v2e(t,n){if(1&t){const e=ce();f(0,"tr",32)(1,"td",33)(2,"div",34)(3,"p",35),m(4," Comma- or whitespace-separated public keys. Empty = accessible to all authenticated peers. "),h(),f(5,"mat-form-field",36)(6,"mat-label"),m(7),h(),f(8,"textarea",37),Di("ngModelChange",function(o){z(e);const r=C(4);return Bi(r.whitelistInput,o)||(r.whitelistInput=o),$(o)}),h()(),f(9,"div",38)(10,"button",22),L("click",function(){z(e);const o=C().$implicit;return $(C(3).saveWhitelist(o))}),f(11,"mat-icon"),m(12,"save"),h(),m(13," Save "),h(),tt(14,b2e,2,0,"button",39),f(15,"button",40),L("click",function(){return z(e),$(C(4).cancelEditWhitelist())}),m(16,"Cancel"),h()()()()()}if(2&t){const e=C().$implicit,i=C(3);d(7),I("Allowed PKs for port ",e.port),d(),ki("ngModel",i.whitelistInput),d(6),v("ngIf",e.whitelist&&e.whitelist.length>0)}}function y2e(t,n){if(1&t){const e=ce();rr(0),f(1,"tr")(2,"td",25),m(3),h(),f(4,"td",25),m(5),h(),f(6,"td"),m(7),h(),f(8,"td")(9,"mat-checkbox",26),L("change",function(){const o=z(e).$implicit;return $(C(3).toggleSkynet(o))}),h()(),f(10,"td")(11,"mat-checkbox",26),L("change",function(){const o=z(e).$implicit;return $(C(3).toggleDmsg(o))}),h()(),f(12,"td")(13,"mat-checkbox",26),L("change",function(){const o=z(e).$implicit;return $(C(3).toggleLanding(o))}),h()(),f(14,"td")(15,"button",27),L("click",function(){const o=z(e).$implicit;return $(C(3).startEditWhitelist(o))}),tt(16,m2e,2,0,"span",5)(17,_2e,3,2,"span",5),f(18,"mat-icon",28),m(19,"edit"),h()()(),f(20,"td",29)(21,"button",30),L("click",function(){const o=z(e).$implicit;return $(C(3).removePort(o.port))}),f(22,"mat-icon"),m(23,"close"),h()()()(),tt(24,v2e,17,3,"tr",31),Lo()}if(2&t){const e=n.$implicit,i=C(3);d(3),O(e.port),d(2),O(e.proxy_addr||"localhost:"+(e.local_port||e.port)),d(2),O(e.label||"-"),d(2),v("checked",e.skynet),d(2),v("checked",e.dmsg),d(2),v("checked",e.show_on_landing),d(2),v("matTooltip",(e.whitelist||Mt(10,f2e)).join(", ")||"Open to all peers"),d(),v("ngIf",!e.whitelist||0===e.whitelist.length),d(),v("ngIf",e.whitelist&&e.whitelist.length>0),d(7),v("ngIf",i.editingWhitelistPort===e.port)}}function C2e(t,n){if(1&t&&(f(0,"table",23)(1,"tr")(2,"th"),m(3,"Port"),h(),f(4,"th"),m(5,"Target"),h(),f(6,"th"),m(7,"Label"),h(),f(8,"th"),m(9,"Skynet"),h(),f(10,"th"),m(11,"DMSG"),h(),f(12,"th"),m(13,"Landing"),h(),f(14,"th"),m(15,"Whitelist"),h(),B(16,"th"),h(),tt(17,y2e,25,11,"ng-container",24),h()),2&t){const e=C(2);d(17),v("ngForOf",e.ports)}}function w2e(t,n){1&t&&(f(0,"p",42),m(1,"No ports forwarded."),h())}function x2e(t,n){if(1&t){const e=ce();f(0,"div"),tt(1,C2e,18,1,"table",8)(2,w2e,2,0,"p",9),f(3,"div",10)(4,"div",11)(5,"mat-form-field",12)(6,"mat-label"),m(7,"Skynet Port"),h(),f(8,"input",13),Di("ngModelChange",function(o){z(e);const r=C();return Bi(r.newPort,o)||(r.newPort=o),$(o)}),h()(),f(9,"mat-form-field",12)(10,"mat-label"),m(11,"Local Port"),h(),f(12,"input",14),Di("ngModelChange",function(o){z(e);const r=C();return Bi(r.newLocalPort,o)||(r.newLocalPort=o),$(o)}),h()(),f(13,"mat-form-field",15)(14,"mat-label"),m(15,"Target Address"),h(),f(16,"input",16),Di("ngModelChange",function(o){z(e);const r=C();return Bi(r.newProxyAddr,o)||(r.newProxyAddr=o),$(o)}),h()(),f(17,"mat-form-field",15)(18,"mat-label"),m(19,"Label"),h(),f(20,"input",17),Di("ngModelChange",function(o){z(e);const r=C();return Bi(r.newLabel,o)||(r.newLabel=o),$(o)}),h()()(),f(21,"div",11)(22,"mat-form-field",18)(23,"mat-label"),m(24,"Description"),h(),f(25,"input",19),Di("ngModelChange",function(o){z(e);const r=C();return Bi(r.newDesc,o)||(r.newDesc=o),$(o)}),h()(),f(26,"mat-form-field",18)(27,"mat-label"),m(28,"Whitelist (optional)"),h(),f(29,"textarea",20),Di("ngModelChange",function(o){z(e);const r=C();return Bi(r.newWhitelist,o)||(r.newWhitelist=o),$(o)}),h()()(),f(30,"div",11)(31,"mat-checkbox",21),Di("ngModelChange",function(o){z(e);const r=C();return Bi(r.newSkynet,o)||(r.newSkynet=o),$(o)}),m(32,"Skynet"),h(),f(33,"mat-checkbox",21),Di("ngModelChange",function(o){z(e);const r=C();return Bi(r.newDmsg,o)||(r.newDmsg=o),$(o)}),m(34,"DMSG"),h(),f(35,"mat-checkbox",21),Di("ngModelChange",function(o){z(e);const r=C();return Bi(r.newShowLanding,o)||(r.newShowLanding=o),$(o)}),m(36,"Show on landing page"),h(),f(37,"button",22),L("click",function(){return z(e),$(C().addPort())}),f(38,"mat-icon"),m(39,"add"),h(),m(40," Forward "),h()(),f(41,"p",3),m(42," Target Address overrides Local Port \u2014 set it to forward to a host:port elsewhere on the LAN (e.g. "),f(43,"code"),m(44,"192.168.1.20:5432"),h(),m(45,") instead of localhost. Whitelist accepts comma- or whitespace-separated 66-char hex public keys; leave empty to allow all authenticated peers (you can edit the whitelist per-row later, on the table above). "),h()()()}if(2&t){const e=C();d(),v("ngIf",e.ports.length>0),d(),v("ngIf",0===e.ports.length),d(6),ki("ngModel",e.newPort),d(4),ki("ngModel",e.newLocalPort),d(4),ki("ngModel",e.newProxyAddr),d(4),ki("ngModel",e.newLabel),d(5),ki("ngModel",e.newDesc),d(4),ki("ngModel",e.newWhitelist),d(2),ki("ngModel",e.newSkynet),d(2),ki("ngModel",e.newDmsg),d(2),ki("ngModel",e.newShowLanding)}}function S2e(t,n){1&t&&(f(0,"div",6),B(1,"mat-spinner",7),h())}function k2e(t,n){if(1&t){const e=ce();f(0,"tr")(1,"td",25),m(2),h(),f(3,"td",49),m(4),h(),f(5,"td",25),m(6),h(),f(7,"td",25),m(8),h(),f(9,"td",29)(10,"button",50),L("click",function(){const o=z(e).$implicit;return $(C(3).disconnect(o.id))}),f(11,"mat-icon"),m(12,"close"),h()()()()}if(2&t){const e=n.$implicit;d(2),O(e.network||"skynet"),d(2),O(e.remotePK),d(2),O(e.remotePort),d(2),O(e.localPort)}}function D2e(t,n){if(1&t&&(f(0,"table",23)(1,"tr")(2,"th"),m(3,"Network"),h(),f(4,"th"),m(5,"Remote PK"),h(),f(6,"th"),m(7,"Remote Port"),h(),f(8,"th"),m(9,"Local Port"),h(),B(10,"th"),h(),tt(11,k2e,13,4,"tr",24),h()),2&t){const e=C(2);d(11),v("ngForOf",e.forwards)}}function T2e(t,n){1&t&&(f(0,"p",42),m(1,"No active reverse proxies."),h())}function M2e(t,n){if(1&t){const e=ce();f(0,"div"),tt(1,D2e,12,1,"table",8)(2,T2e,2,0,"p",9),f(3,"div",11)(4,"mat-form-field",12)(5,"mat-label"),m(6,"Network"),h(),f(7,"mat-select",43),Di("ngModelChange",function(o){z(e);const r=C();return Bi(r.connectNetwork,o)||(r.connectNetwork=o),$(o)}),f(8,"mat-option",44),m(9,"skynet"),h(),f(10,"mat-option",45),m(11,"dmsg"),h()()(),f(12,"mat-form-field",46)(13,"mat-label"),m(14,"Remote Public Key"),h(),f(15,"input",47),Di("ngModelChange",function(o){z(e);const r=C();return Bi(r.connectPK,o)||(r.connectPK=o),$(o)}),h()()(),f(16,"div",11)(17,"mat-form-field",12)(18,"mat-label"),m(19,"Remote Port"),h(),f(20,"input",13),Di("ngModelChange",function(o){z(e);const r=C();return Bi(r.connectRemotePort,o)||(r.connectRemotePort=o),$(o)}),h()(),f(21,"mat-form-field",12)(22,"mat-label"),m(23,"Local Port"),h(),f(24,"input",48),Di("ngModelChange",function(o){z(e);const r=C();return Bi(r.connectLocalPort,o)||(r.connectLocalPort=o),$(o)}),h()(),f(25,"button",22),L("click",function(){return z(e),$(C().connect())}),f(26,"mat-icon"),m(27,"link"),h(),m(28," Connect "),h()()()}if(2&t){const e=C();d(),v("ngIf",e.forwards.length>0),d(),v("ngIf",0===e.forwards.length),d(5),ki("ngModel",e.connectNetwork),d(8),ki("ngModel",e.connectPK),d(5),ki("ngModel",e.connectRemotePort),d(4),ki("ngModel",e.connectLocalPort)}}let E2e=(()=>{class t extends Wn{constructor(e,i){super(),this.nodeService=e,this.snackbarService=i,this.ports=[],this.portsLoading=!0,this.newPort="",this.newLocalPort="",this.newProxyAddr="",this.newLabel="",this.newDesc="",this.newWhitelist="",this.newSkynet=!0,this.newDmsg=!0,this.newShowLanding=!0,this.editingWhitelistPort=null,this.whitelistInput="",this.forwards=[],this.forwardsLoading=!0,this.connectNetwork="skynet",this.connectPK="",this.connectRemotePort="",this.connectLocalPort="",this.nodeKey=""}ngOnInit(){return this.nodeKey=ke.getCurrentNodeKey(),this.loadPorts(),this.loadForwards(),super.ngOnInit()}ngOnDestroy(){this.portsSub&&this.portsSub.unsubscribe(),this.fwdsSub&&this.fwdsSub.unsubscribe()}loadPorts(){this.portsLoading=!0,this.portsSub=this.nodeService.getForwardedPorts(this.nodeKey).subscribe(e=>{this.ports=(e||[]).sort((i,o)=>i.port-o.port),this.portsLoading=!1},()=>{this.ports=[],this.portsLoading=!1})}addPort(){const e=parseInt(this.newPort,10);if(isNaN(e)||e<1||e>65535)return void this.snackbarService.showError("Enter a valid port (1-65535)");const i=this.newLocalPort?parseInt(this.newLocalPort,10):0,o=(this.newProxyAddr||"").trim();let r=[];const s=(this.newWhitelist||"").trim();if(""!==s){r=s.split(/[\s,]+/).map(l=>l.trim()).filter(l=>l.length>0);for(const l of r)if(66!==l.length||!/^[0-9a-fA-F]+$/.test(l))return void this.snackbarService.showError(`Invalid public key in whitelist: ${l}`)}this.nodeService.registerForwardedPort(this.nodeKey,{port:e,local_port:i||void 0,proxy_addr:o||void 0,label:this.newLabel,description:this.newDesc,show_on_landing:this.newShowLanding,skynet:this.newSkynet,dmsg:this.newDmsg,whitelist:r.length>0?r:void 0}).subscribe(()=>{this.newPort="",this.newLocalPort="",this.newProxyAddr="",this.newLabel="",this.newDesc="",this.newWhitelist="",this.snackbarService.showDone(`Port ${e} forwarded`),this.loadPorts()},l=>{this.snackbarService.showError(l?.error?.error||"Failed")})}removePort(e){this.nodeService.deregisterSkynetPort(this.nodeKey,e).subscribe(()=>{this.snackbarService.showDone(`Port ${e} removed`),this.loadPorts()},()=>{this.snackbarService.showError("Failed to remove port")})}toggleLanding(e){e.show_on_landing=!e.show_on_landing,this.nodeService.updateForwardedPort(this.nodeKey,e).subscribe(()=>{},()=>{this.snackbarService.showError("Failed to update"),this.loadPorts()})}toggleSkynet(e){e.skynet=!e.skynet,this.nodeService.updateForwardedPort(this.nodeKey,e).subscribe(()=>{},()=>{this.snackbarService.showError("Failed to update"),this.loadPorts()})}toggleDmsg(e){e.dmsg=!e.dmsg,this.nodeService.updateForwardedPort(this.nodeKey,e).subscribe(()=>{},()=>{this.snackbarService.showError("Failed to update"),this.loadPorts()})}startEditWhitelist(e){this.editingWhitelistPort=e.port,this.whitelistInput=(e.whitelist||[]).join(", ")}cancelEditWhitelist(){this.editingWhitelistPort=null,this.whitelistInput=""}saveWhitelist(e){const i=(this.whitelistInput||"").trim();let o=[];if(""!==i){o=i.split(/[\s,]+/).map(s=>s.trim()).filter(s=>s.length>0);for(const s of o)if(66!==s.length||!/^[0-9a-fA-F]+$/.test(s))return void this.snackbarService.showError(`Invalid public key: ${s}`)}const r={...e,whitelist:o};this.nodeService.updateForwardedPort(this.nodeKey,r).subscribe(()=>{this.snackbarService.showDone(0===o.length?`Whitelist cleared on port ${e.port}`:`Whitelist set on port ${e.port} (${o.length} PK${1===o.length?"":"s"})`),this.cancelEditWhitelist(),this.loadPorts()},s=>{this.snackbarService.showError(s?.error?.error||"Failed to update whitelist")})}clearWhitelist(e){const i={...e,whitelist:[]};this.nodeService.updateForwardedPort(this.nodeKey,i).subscribe(()=>{this.snackbarService.showDone(`Whitelist cleared on port ${e.port}`),this.cancelEditWhitelist(),this.loadPorts()},o=>{this.snackbarService.showError(o?.error?.error||"Failed to clear whitelist")})}loadForwards(){this.forwardsLoading=!0,this.fwdsSub=this.nodeService.getSkynetForwards(this.nodeKey).subscribe(e=>{if(this.forwards=[],e)for(const[i,o]of Object.entries(e))this.forwards.push({id:i,network:o.network||"skynet",remotePK:o.remote_pk||"",remotePort:o.remote_port||0,localPort:o.local_port||0});this.forwardsLoading=!1},()=>{this.forwards=[],this.forwardsLoading=!1})}connect(){const e=parseInt(this.connectRemotePort,10),i=parseInt(this.connectLocalPort,10);this.connectPK&&66===this.connectPK.length?isNaN(e)||e<1?this.snackbarService.showError("Enter a valid remote port"):isNaN(i)||i<1?this.snackbarService.showError("Enter a valid local port"):"skynet"===this.connectNetwork||"dmsg"===this.connectNetwork?this.nodeService.skynetConnect(this.nodeKey,this.connectNetwork,this.connectPK,e,i).subscribe(()=>{this.connectPK="",this.connectRemotePort="",this.connectLocalPort="",this.snackbarService.showDone(`Connected via ${this.connectNetwork}: remote ${e} \u2192 localhost:${i}`),this.loadForwards()},o=>{this.snackbarService.showError(o?.error?.error||"Failed")}):this.snackbarService.showError("Network must be skynet or dmsg"):this.snackbarService.showError("Enter a valid public key")}disconnect(e){this.nodeService.skynetDisconnect(this.nodeKey,e).subscribe(()=>{this.snackbarService.showDone("Disconnected"),this.loadForwards()},()=>{this.snackbarService.showError("Failed")})}static{this.\u0275fac=function(i){return new(i||t)(P(Sr),P(bt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-skynet"]],standalone:!1,features:[be],decls:21,vars:4,consts:[[1,"container-elevated-translucid","mt-4.5","skynet-container"],[1,"section"],[1,"section-title"],[1,"section-desc"],["class","text-center py-2",4,"ngIf"],[4,"ngIf"],[1,"text-center","py-2"],["diameter","24",1,"mx-auto"],["class","data-table",4,"ngIf"],["class","empty-msg",4,"ngIf"],[1,"add-form"],[1,"add-row"],["appearance","outline",1,"field-sm"],["matInput","","placeholder","80","type","number",3,"ngModelChange","ngModel"],["matInput","","placeholder","3000","type","number",3,"ngModelChange","ngModel"],["appearance","outline",1,"field-md"],["matInput","","placeholder","192.168.1.20:5432",3,"ngModelChange","ngModel"],["matInput","","placeholder","My Service",3,"ngModelChange","ngModel"],["appearance","outline",1,"field-lg"],["matInput","","placeholder","Optional description",3,"ngModelChange","ngModel"],["matInput","","rows","2","placeholder","02abc..., 03def... (empty = open to all)",3,"ngModelChange","ngModel"],["color","primary",3,"ngModelChange","ngModel"],["mat-raised-button","","color","primary",3,"click"],[1,"data-table"],[4,"ngFor","ngForOf"],[1,"mono"],["color","primary",3,"change","checked"],["mat-button","",3,"click","matTooltip"],[1,"edit-icon"],[1,"action-col"],["mat-icon-button","","color","warn","matTooltip","Remove",3,"click"],["class","whitelist-edit-row",4,"ngIf"],[1,"whitelist-edit-row"],["colspan","8"],[1,"whitelist-edit"],[1,"whitelist-help"],["appearance","outline",1,"whitelist-input"],["matInput","","rows","3","placeholder","02abc..., 03def...",3,"ngModelChange","ngModel"],[1,"whitelist-actions"],["mat-stroked-button","",3,"click",4,"ngIf"],["mat-button","",3,"click"],["mat-stroked-button","",3,"click"],[1,"empty-msg"],["panelClass","skynet-select-panel",3,"ngModelChange","ngModel"],["value","skynet"],["value","dmsg"],["appearance","outline",1,"field-pk"],["matInput","","placeholder","02abc...",3,"ngModelChange","ngModel"],["matInput","","placeholder","9090","type","number",3,"ngModelChange","ngModel"],[1,"mono","small"],["mat-icon-button","","color","warn","matTooltip","Disconnect",3,"click"]],template:function(i,o){1&i&&(f(0,"div",0)(1,"div",1)(2,"h4",2),m(3,"Forwarded Ports"),h(),f(4,"p",3),m(5," Expose local TCP ports over skynet and/or DMSG. "),h(),tt(6,p2e,2,0,"div",4)(7,x2e,46,11,"div",5),h(),f(8,"div",1)(9,"h4",2),m(10,"Reverse Proxy"),h(),f(11,"p",3),m(12," Map a remote visor's port to a local port. The Network selector picks the transport: "),f(13,"code"),m(14,"skynet"),h(),m(15," goes through the routing layer; "),f(16,"code"),m(17,"dmsg"),h(),m(18," opens a direct DMSG stream. A single forward uses one network at a time. "),h(),tt(19,S2e,2,0,"div",4)(20,M2e,29,6,"div",5),h()()),2&i&&(d(6),v("ngIf",o.portsLoading),d(),v("ngIf",!o.portsLoading),d(12),v("ngIf",o.forwardsLoading),d(),v("ngIf",!o.forwardsLoading))},dependencies:[LN,$h,rn,Wf,sn,wn,Jb,ei,Jn,Ms,lt,pn,Zb,oc,Is,$o,kr],styles:[".skynet-container[_ngcontent-%COMP%]{padding:20px;max-width:900px}.section[_ngcontent-%COMP%]{margin-bottom:28px}.section-title[_ngcontent-%COMP%]{font-size:16px;font-weight:500;margin-bottom:4px}.section-desc[_ngcontent-%COMP%]{color:#fff9;font-size:13px;margin-bottom:16px}.section-desc[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{background:#ffffff1a;padding:1px 4px;border-radius:3px;font-size:12px}.data-table[_ngcontent-%COMP%]{width:100%;border-collapse:collapse;margin-bottom:16px}.data-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%], .data-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:8px 12px;text-align:left;border-bottom:1px solid rgba(255,255,255,.08)}.data-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{color:#ffffff80;font-weight:500;font-size:13px}.data-table[_ngcontent-%COMP%] .mono[_ngcontent-%COMP%]{font-family:monospace}.data-table[_ngcontent-%COMP%] .small[_ngcontent-%COMP%]{font-size:12px;color:#ffffffb3;word-break:break-all}.data-table[_ngcontent-%COMP%] .action-col[_ngcontent-%COMP%]{width:48px;text-align:right}.empty-msg[_ngcontent-%COMP%]{color:#ffffff61;font-style:italic;margin-bottom:16px}.add-form[_ngcontent-%COMP%]{margin-top:8px}.add-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}.field-sm[_ngcontent-%COMP%]{width:120px}.field-md[_ngcontent-%COMP%]{width:200px}.field-lg[_ngcontent-%COMP%]{width:300px}.field-pk[_ngcontent-%COMP%]{width:100%;max-width:580px}.edit-icon[_ngcontent-%COMP%]{font-size:14px;width:14px;height:14px;vertical-align:middle;margin-left:4px;opacity:.6}.whitelist-edit-row[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{background:#ffffff08;padding:12px 16px!important}.whitelist-edit[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:8px}.whitelist-help[_ngcontent-%COMP%]{margin:0;color:#fff9;font-size:12px}.whitelist-input[_ngcontent-%COMP%]{width:100%;max-width:720px}.whitelist-actions[_ngcontent-%COMP%]{display:flex;gap:8px;align-items:center}[_nghost-%COMP%] .mat-mdc-text-field-wrapper{background:#ffffff14!important}[_nghost-%COMP%] .mdc-text-field--outlined .mdc-notched-outline__leading, [_nghost-%COMP%] .mdc-text-field--outlined .mdc-notched-outline__notch, [_nghost-%COMP%] .mdc-text-field--outlined .mdc-notched-outline__trailing{border-color:#ffffff4d!important}[_nghost-%COMP%] .mat-mdc-input-element, [_nghost-%COMP%] .mdc-text-field__input{color:#fff!important;caret-color:#fff!important}[_nghost-%COMP%] .mdc-floating-label{color:#fff9!important}[_nghost-%COMP%] .mdc-label, [_nghost-%COMP%] .mdc-form-field>label, [_nghost-%COMP%] .mat-mdc-checkbox label{color:#ffffffde!important}"]})}}return t})();const I2e=()=>["settings.title","labels.title"];let P2e=(()=>{class t{constructor(e){this.router=e,this.tabsData=[],this.returnButtonText="settings.title",this.tabsData=[{icon:"view_headline",label:"labels.list-title",linkParts:[]}]}performAction(e){null===e&&this.router.navigate(["settings"])}static{this.\u0275fac=function(i){return new(i||t)(P(vt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-all-labels"]],standalone:!1,decls:5,vars:6,consts:[[1,"row"],[1,"col-12"],[3,"optionSelected","titleParts","tabsData","showUpdateButton","returnText"],[1,"content","col-12"],[3,"showShortList"]],template:function(i,o){1&i&&(f(0,"div",0)(1,"div",1)(2,"app-top-bar",2),L("optionSelected",function(s){return o.performAction(s)}),h()(),f(3,"div",3),B(4,"app-label-list",4),h()()),2&i&&(d(2),v("titleParts",Mt(5,I2e))("tabsData",o.tabsData)("showUpdateButton",!1)("returnText",o.returnButtonText),d(2),v("showShortList",!1))},dependencies:[As,m5],encapsulation:2})}}return t})();const O2e=["firstInput"];function A2e(t,n){1&t&&(f(0,"span"),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"vpn.server-list.add-server-dialog.pk-length-error")))}function R2e(t,n){1&t&&(f(0,"span"),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"vpn.server-list.add-server-dialog.pk-chars-error")))}let N2e=(()=>{class t{static openDialog(e,i){const o=new Lt;return o.data=i,o.autoFocus=!1,o.width=ze.mediumModalWidth,e.open(t,o)}constructor(e,i,o,r,s,a,l,c){this.dialogRef=e,this.data=i,this.formBuilder=o,this.dialog=r,this.router=s,this.vpnClientService=a,this.vpnSavedDataService=l,this.snackbarService=c}ngOnInit(){this.form=this.formBuilder.group({pk:["",Ve.compose([Ve.required,Ve.minLength(66),Ve.maxLength(66),Ve.pattern("^[0-9a-fA-F]+$")])],password:[""],name:[""],note:[""]}),setTimeout(()=>this.firstInput.nativeElement.focus())}process(){if(!this.form.valid)return;const e={pk:this.form.get("pk").value,name:this.form.get("name").value,note:this.form.get("note").value};si.processServerChange(this.router,this.vpnClientService,this.vpnSavedDataService,this.snackbarService,this.dialog,this.dialogRef,this.data,null,null,e,this.form.get("password").value)}static{this.\u0275fac=function(i){return new(i||t)(P(It),P(hn),P(pi),P(kt),P(vt),P(sc),P(rc),P(bt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-add-vpn-server"]],viewQuery:function(i,o){if(1&i&&rt(O2e,5),2&i){let r;ue(r=he())&&(o.firstInput=r.first)}},standalone:!1,decls:34,vars:22,consts:[["firstInput",""],[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","pk","maxlength","66","matInput",""],["formControlName","password","type","password","matInput",""],["formControlName","name","maxlength","100","matInput",""],["formControlName","note","maxlength","100","matInput",""],["color","primary",1,"float-right",3,"action","disabled"]],template:function(i,o){1&i&&(f(0,"app-dialog",1),b(1,"translate"),f(2,"form",2)(3,"mat-form-field")(4,"div",3)(5,"label",4),m(6),b(7,"translate"),h(),B(8,"input",5,0),h(),f(10,"mat-error"),S(11,A2e,3,3,"span")(12,R2e,3,3,"span"),h()(),f(13,"mat-form-field")(14,"div",3)(15,"label",4),m(16),b(17,"translate"),h(),B(18,"input",6),h()(),f(19,"mat-form-field")(20,"div",3)(21,"label",4),m(22),b(23,"translate"),h(),B(24,"input",7),h()(),f(25,"mat-form-field")(26,"div",3)(27,"label",4),m(28),b(29,"translate"),h(),B(30,"input",8),h()()(),f(31,"app-button",9),L("action",function(){return o.process()}),m(32),b(33,"translate"),h()()),2&i&&(v("headline",y(1,10,"vpn.server-list.add-server-dialog.title"))("dialog",o.dialogRef),d(2),v("formGroup",o.form),d(4),O(y(7,12,"vpn.server-list.add-server-dialog.pk-label")),d(5),k(o.form.get("pk").hasError("pattern")?12:11),d(5),O(y(17,14,"vpn.server-list.add-server-dialog.password-label")),d(6),O(y(23,16,"vpn.server-list.add-server-dialog.name-label")),d(6),O(y(29,18,"vpn.server-list.add-server-dialog.note-label")),d(3),v("disabled",!o.form.valid),d(),I(" ",y(33,20,"vpn.server-list.add-server-dialog.use-server-button")," "))},dependencies:[Cn,rn,sn,yn,ji,Xt,fn,wn,Es,ei,On,Kt,Se],encapsulation:2})}}return t})();class F2e{constructor(){this.countryCode="ZZ"}}let L2e=(()=>{class t{constructor(e){this.http=e,this.discoveryServiceUrl="https://sd.skycoin.com/api/services?type=vpn"}getServers(){return this.servers?ae(this.servers):this.http.get(this.discoveryServiceUrl).pipe(qf(e=>e.pipe(ii(4e3))),ye(e=>{const i=[];return e&&e.forEach(o=>{const r=new F2e,s=o.address.split(":");2===s.length&&(r.pk=s[0],r.location="",o.geo&&(o.geo.country&&(r.countryCode=o.geo.country),o.geo.region&&(r.location=o.geo.region)),r.name=s[0],r.note="",i.push(r))}),this.servers=i,i}))}static{this.\u0275fac=function(i){return new(i||t)(le(ga))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const hj=()=>["vpn.title"],B2e=t=>({deactivated:t}),Hv=(t,n)=>["/vpn",t,"servers",n,1],V2e=t=>({"mb-3":t}),H2e=(t,n)=>({"public-pk-column":t,"history-pk-column":n}),j2e=t=>({"selectable click-effect":t}),U2e=(t,n)=>({custom:t,original:n}),z2e=(t,n)=>["/vpn",t,"servers",n];function $2e(t,n){1&t&&sr(0)}function W2e(t,n){if(1&t&&(f(0,"div",1)(1,"div",3),B(2,"app-top-bar",4),f(3,"div",5)(4,"div",6)(5,"div",7),tt(6,$2e,1,0,"ng-container",8),h()()()(),B(7,"app-loading-indicator",9),h()),2&t){const e=C(),i=Vn(2);d(2),v("titleParts",Mt(6,hj))("tabsData",e.tabsData)("selectedTabIndex",1)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk),d(4),v("ngTemplateOutlet",i)}}function G2e(t,n){1&t&&(f(0,"div",14)(1,"span"),m(2),b(3,"translate"),h()()),2&t&&(d(2),O(y(3,1,"vpn.server-list.tabs.public")))}function q2e(t,n){if(1&t&&(f(0,"a",15)(1,"span"),m(2),b(3,"translate"),h()()),2&t){const e=C(2);v("routerLink",ft(4,Hv,e.currentLocalPk,e.lists.Public)),d(2),O(y(3,2,"vpn.server-list.tabs.public"))}}function K2e(t,n){1&t&&(f(0,"div",14)(1,"span"),m(2),b(3,"translate"),h()()),2&t&&(d(2),O(y(3,1,"vpn.server-list.tabs.history")))}function Y2e(t,n){if(1&t&&(f(0,"a",15)(1,"span"),m(2),b(3,"translate"),h()()),2&t){const e=C(2);v("routerLink",ft(4,Hv,e.currentLocalPk,e.lists.History)),d(2),O(y(3,2,"vpn.server-list.tabs.history"))}}function X2e(t,n){1&t&&(f(0,"div",14)(1,"span"),m(2),b(3,"translate"),h()()),2&t&&(d(2),O(y(3,1,"vpn.server-list.tabs.favorites")))}function Z2e(t,n){if(1&t&&(f(0,"a",15)(1,"span"),m(2),b(3,"translate"),h()()),2&t){const e=C(2);v("routerLink",ft(4,Hv,e.currentLocalPk,e.lists.Favorites)),d(2),O(y(3,2,"vpn.server-list.tabs.favorites"))}}function Q2e(t,n){1&t&&(f(0,"div",14)(1,"span"),m(2),b(3,"translate"),h()()),2&t&&(d(2),O(y(3,1,"vpn.server-list.tabs.blocked")))}function J2e(t,n){if(1&t&&(f(0,"a",15)(1,"span"),m(2),b(3,"translate"),h()()),2&t){const e=C(2);v("routerLink",ft(4,Hv,e.currentLocalPk,e.lists.Blocked)),d(2),O(y(3,2,"vpn.server-list.tabs.blocked"))}}function eIe(t,n){1&t&&B(0,"br")}function tIe(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,C().$implicit.translatableValue)," ")}function nIe(t,n){1&t&&m(0),2&t&&I(" ",C().$implicit.value," ")}function iIe(t,n){if(1&t&&(f(0,"div",23)(1,"span"),m(2),b(3,"translate"),h(),S(4,tIe,2,3),S(5,nIe,1,1),h()),2&t){const e=n.$implicit;d(2),I("",y(3,3,e.filterName),": "),d(2),k(e.translatableValue?4:-1),d(),k(e.value?5:-1)}}function oIe(t,n){if(1&t){const e=ce();f(0,"div",21),L("click",function(){return z(e),$(C(3).dataFilterer.removeFilters())}),f(1,"div",22)(2,"mat-icon",18),m(3,"search"),h(),m(4),b(5,"translate"),h(),we(6,iIe,6,5,"div",23,Re),h()}if(2&t){const e=C(3);d(2),v("inline",!0),d(2),I(" ",y(5,2,"vpn.server-list.current-filters")),d(2),xe(e.dataFilterer.currentFiltersTexts)}}function rIe(t,n){if(1&t&&(S(0,eIe,1,0,"br"),S(1,oIe,8,4,"div",20)),2&t){const e=C(2);k(e.dataFilterer.currentFiltersTexts&&e.dataFilterer.currentFiltersTexts.length>0?0:-1),d(),k(e.dataFilterer.currentFiltersTexts&&e.dataFilterer.currentFiltersTexts.length>0?1:-1)}}function sIe(t,n){if(1&t){const e=ce();f(0,"div",10)(1,"div",11)(2,"div",12)(3,"div",13),S(4,G2e,4,3,"div",14),S(5,q2e,4,7,"a",15),S(6,K2e,4,3,"div",14),S(7,Y2e,4,7,"a",15),S(8,X2e,4,3,"div",14),S(9,Z2e,4,7,"a",15),S(10,Q2e,4,3,"div",14),S(11,J2e,4,7,"a",15),h()()()(),f(12,"div",16)(13,"div",11)(14,"div",12)(15,"div",13)(16,"div",17),b(17,"translate"),L("click",function(){z(e);const o=C();return $(o.dataFilterer?o.dataFilterer.changeFilters():null)}),f(18,"span")(19,"mat-icon",18),m(20,"search"),h()()()()()()(),f(21,"div",19)(22,"div",11)(23,"div",12)(24,"div",13)(25,"div",17),b(26,"translate"),L("click",function(){return z(e),$(C().enterManually())}),f(27,"span")(28,"mat-icon",18),m(29,"add"),h()()()()()()(),S(30,rIe,2,2)}if(2&t){const e=C();d(4),k(e.currentList===e.lists.Public?4:-1),d(),k(e.currentList!==e.lists.Public?5:-1),d(),k(e.currentList===e.lists.History?6:-1),d(),k(e.currentList!==e.lists.History?7:-1),d(),k(e.currentList===e.lists.Favorites?8:-1),d(),k(e.currentList!==e.lists.Favorites?9:-1),d(),k(e.currentList===e.lists.Blocked?10:-1),d(),k(e.currentList!==e.lists.Blocked?11:-1),d(),v("ngClass",oe(18,B2e,e.loading)),d(4),v("matTooltip",y(17,14,"filters.filter-info")),d(3),v("inline",!0),d(6),v("matTooltip",y(26,16,"vpn.server-list.add-manually-info")),d(3),v("inline",!0),d(2),k(e.dataFilterer?30:-1)}}function aIe(t,n){1&t&&sr(0)}function lIe(t,n){if(1&t&&(f(0,"mat-icon",18),m(1),h()),2&t){const e=C(5);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function cIe(t,n){if(1&t){const e=ce();f(0,"th",41),b(1,"translate"),L("click",function(){z(e);const o=C(4);return $(o.dataSorter.changeSortingOrder(o.dateSortData))}),f(2,"div",34)(3,"div",35),m(4),b(5,"translate"),h(),S(6,lIe,2,2,"mat-icon",18),h()()}if(2&t){const e=C(4);v("matTooltip",y(1,3,"vpn.server-list.date-info")),d(4),I(" ",y(5,5,"vpn.server-list.date-small-table-label")," "),d(2),k(e.dataSorter.currentSortingColumn===e.dateSortData?6:-1)}}function dIe(t,n){if(1&t&&(f(0,"mat-icon",18),m(1),h()),2&t){const e=C(4);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function uIe(t,n){if(1&t&&(f(0,"mat-icon",18),m(1),h()),2&t){const e=C(4);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function hIe(t,n){if(1&t&&(f(0,"mat-icon",18),m(1),h()),2&t){const e=C(4);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function fIe(t,n){if(1&t&&(f(0,"mat-icon",18),m(1),h()),2&t){const e=C(4);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function pIe(t,n){if(1&t&&(f(0,"mat-icon",18),m(1),h()),2&t){const e=C(4);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function mIe(t,n){if(1&t&&(f(0,"td",43),m(1),b(2,"date"),h()),2&t){const e=C().$implicit;d(),I(" ",Ee(2,1,e.lastUsed,"yyyy/MM/dd, H:mm a")," ")}}function gIe(t,n){1&t&&m(0),2&t&&I(" ",C().$implicit.location," ")}function _Ie(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"vpn.server-list.unknown")," ")}function bIe(t,n){if(1&t&&(f(0,"mat-icon",55),b(1,"translate"),L("click",function(i){return i.stopPropagation()}),m(2,"info_outline"),h()),2&t){const e=C().$implicit,i=C(4);v("inline",!0)("matTooltip",Ee(1,2,i.getNoteVar(e),ft(5,U2e,e.personalNote,e.note)))}}function vIe(t,n){if(1&t){const e=ce();f(0,"tr",42),L("click",function(){const o=z(e).$implicit,r=C(4);return $(r.currentList!==r.lists.Blocked?r.selectServer(o):null)}),S(1,mIe,3,4,"td",43),f(2,"td",44)(3,"div",45),B(4,"div",46),h()(),f(5,"td",47),B(6,"app-vpn-server-name",48),h(),f(7,"td",49),S(8,gIe,1,1),S(9,_Ie,2,3),h(),f(10,"td",50)(11,"app-copy-to-clipboard-text",51),L("click",function(o){return o.stopPropagation()}),h()(),f(12,"td",52),S(13,bIe,3,8,"mat-icon",53),h(),f(14,"td",39)(15,"button",54),b(16,"translate"),L("click",function(o){const r=z(e).$implicit,s=C(4);return o.stopPropagation(),$(s.openOptions(r))}),f(17,"mat-icon",18),m(18,"settings"),h()()()()}if(2&t){const e=n.$implicit,i=C(4);v("ngClass",oe(23,j2e,i.currentList!==i.lists.Blocked)),d(),k(i.currentList===i.lists.History?1:-1),d(3),Ji("background-image: url('assets/img/big-flags/"+e.countryCode.toLocaleLowerCase()+".png');"),v("matTooltip",i.getCountryName(e.countryCode)),d(2),v("isCurrentServer",i.currentServer&&e.pk===i.currentServer.pk)("isFavorite",e.flag===i.serverFlags.Favorite&&i.currentList!==i.lists.Favorites)("isBlocked",e.flag===i.serverFlags.Blocked&&i.currentList!==i.lists.Blocked)("isInHistory",e.inHistory&&i.currentList!==i.lists.History)("hasPassword",e.usedWithPassword)("name",e.name)("pk",e.pk)("customName",e.customName)("defaultName","vpn.server-list.none"),d(2),k(e.location?8:-1),d(),k(e.location?-1:9),d(2),v("shortSimple",!0)("text",e.pk),d(2),k(e.note||e.personalNote?13:-1),d(2),v("matTooltip",y(16,21,"vpn.server-options.tooltip")),d(2),v("inline",!0)}}function yIe(t,n){if(1&t){const e=ce();f(0,"table",30)(1,"tr"),S(2,cIe,7,7,"th",31),f(3,"th",32),b(4,"translate"),L("click",function(){z(e);const o=C(3);return $(o.dataSorter.changeSortingOrder(o.countrySortData))}),f(5,"mat-icon",18),m(6,"flag"),h(),S(7,dIe,2,2,"mat-icon",18),h(),f(8,"th",33),L("click",function(){z(e);const o=C(3);return $(o.dataSorter.changeSortingOrder(o.nameSortData))}),f(9,"div",34)(10,"div",35),m(11),b(12,"translate"),h(),S(13,uIe,2,2,"mat-icon",18),h()(),f(14,"th",36),L("click",function(){z(e);const o=C(3);return $(o.dataSorter.changeSortingOrder(o.locationSortData))}),f(15,"div",34)(16,"div",35),m(17),b(18,"translate"),h(),S(19,hIe,2,2,"mat-icon",18),h()(),f(20,"th",37),b(21,"translate"),L("click",function(){z(e);const o=C(3);return $(o.dataSorter.changeSortingOrder(o.pkSortData))}),f(22,"div",34)(23,"div",35),m(24),b(25,"translate"),h(),S(26,fIe,2,2,"mat-icon",18),h()(),f(27,"th",38),b(28,"translate"),L("click",function(){z(e);const o=C(3);return $(o.dataSorter.changeSortingOrder(o.noteSortData))}),f(29,"div",34)(30,"mat-icon",18),m(31,"info_outline"),h(),S(32,pIe,2,2,"mat-icon",18),h()(),B(33,"th",39),h(),we(34,vIe,19,25,"tr",40,Re),h()}if(2&t){const e=C(3);d(2),k(e.currentList===e.lists.History?2:-1),d(),v("matTooltip",y(4,15,"vpn.server-list.country-info")),d(2),v("inline",!0),d(2),k(e.dataSorter.currentSortingColumn===e.countrySortData?7:-1),d(4),I(" ",y(12,17,"vpn.server-list.name-small-table-label")," "),d(2),k(e.dataSorter.currentSortingColumn===e.nameSortData?13:-1),d(4),I(" ",y(18,19,"vpn.server-list.location-small-table-label")," "),d(2),k(e.dataSorter.currentSortingColumn===e.locationSortData?19:-1),d(),v("ngClass",ft(27,H2e,e.currentList===e.lists.Public,e.currentList===e.lists.History))("matTooltip",y(21,21,"vpn.server-list.public-key-info")),d(4),I(" ",y(25,23,"vpn.server-list.public-key-small-table-label")," "),d(2),k(e.dataSorter.currentSortingColumn===e.pkSortData?26:-1),d(),v("matTooltip",y(28,25,"vpn.server-list.note-info")),d(3),v("inline",!0),d(2),k(e.dataSorter.currentSortingColumn===e.noteSortData?32:-1),d(2),xe(e.dataSource)}}function CIe(t,n){if(1&t&&(f(0,"div",27)(1,"div",29),S(2,yIe,36,30,"table",30),h()()),2&t){const e=C(2);d(2),k(e.dataSource.length>0?2:-1)}}function wIe(t,n){if(1&t&&B(0,"app-paginator",28),2&t){const e=C(2);v("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",ft(4,z2e,e.currentLocalPk,e.currentList))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function xIe(t,n){1&t&&(f(0,"span",58),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"vpn.server-list.empty-discovery")))}function SIe(t,n){1&t&&(f(0,"span",58),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"vpn.server-list.empty-history")))}function kIe(t,n){1&t&&(f(0,"span",58),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"vpn.server-list.empty-favorites")))}function DIe(t,n){1&t&&(f(0,"span",58),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"vpn.server-list.empty-blocked")))}function TIe(t,n){1&t&&(f(0,"span",58),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"vpn.server-list.empty-with-filter")))}function MIe(t,n){if(1&t&&(f(0,"div",27)(1,"div",56)(2,"mat-icon",57),m(3,"warning"),h(),S(4,xIe,3,3,"span",58),S(5,SIe,3,3,"span",58),S(6,kIe,3,3,"span",58),S(7,DIe,3,3,"span",58),S(8,TIe,3,3,"span",58),h()()),2&t){const e=C(2);d(2),v("inline",!0),d(2),k(0===e.allServers.length&&e.currentList===e.lists.Public?4:-1),d(),k(0===e.allServers.length&&e.currentList===e.lists.History?5:-1),d(),k(0===e.allServers.length&&e.currentList===e.lists.Favorites?6:-1),d(),k(0===e.allServers.length&&e.currentList===e.lists.Blocked?7:-1),d(),k(0!==e.allServers.length?8:-1)}}function EIe(t,n){if(1&t&&(f(0,"div",2)(1,"div",24),B(2,"app-top-bar",4),h(),f(3,"div",25)(4,"div",6)(5,"div",26),tt(6,aIe,1,0,"ng-container",8),h(),S(7,CIe,3,1,"div",27),S(8,wIe,1,7,"app-paginator",28),S(9,MIe,9,6,"div",27),h()()()),2&t){const e=C(),i=Vn(2);d(2),v("titleParts",Mt(10,hj))("tabsData",e.tabsData)("selectedTabIndex",1)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk),d(3),v("ngClass",oe(11,V2e,!e.dataFilterer.currentFiltersTexts||e.dataFilterer.currentFiltersTexts.length<1)),d(),v("ngTemplateOutlet",i),d(),k(0!==e.dataSource.length?7:-1),d(),k(e.numberOfPages>1?8:-1),d(),k(0===e.dataSource.length?9:-1)}}var li=function(t){return t.Public="public",t.History="history",t.Favorites="favorites",t.Blocked="blocked",t}(li||{});let fj=(()=>{class t extends Wn{constructor(e,i,o,r,s,a,l,c,u){super(),this.dialog=e,this.router=i,this.translateService=o,this.route=r,this.vpnClientDiscoveryService=s,this.vpnClientService=a,this.vpnSavedDataService=l,this.snackbarService=c,this.storageService=u,this.persistentServerDataResponseKey="serv-dat-response",this.maxFullListElements=50,this.dateSortData=new Pt(["lastUsed"],"vpn.server-list.date-small-table-label",ct.NumberReversed),this.countrySortData=new Pt(["countryName"],"vpn.server-list.country-small-table-label",ct.Text),this.nameSortData=new Pt(["name"],"vpn.server-list.name-small-table-label",ct.Text),this.locationSortData=new Pt(["location"],"vpn.server-list.location-small-table-label",ct.Text),this.pkSortData=new Pt(["pk"],"vpn.server-list.public-key-small-table-label",ct.Text),this.noteSortData=new Pt(["note"],"vpn.server-list.note-small-table-label",ct.Text),this.loading=!0,this.loadingBackendData=!0,this.tabsData=si.vpnTabsData,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.currentList=li.Public,this.vpnRunning=!1,this.serverFlags=an,this.lists=li,this.initialLoadStarted=!1,this.navigationsSubscription=r.paramMap.subscribe(p=>{if(p.has("type")?p.get("type")===li.Favorites?(this.currentList=li.Favorites,this.listId="vfs"):p.get("type")===li.Blocked?(this.currentList=li.Blocked,this.listId="vbs"):p.get("type")===li.History?(this.currentList=li.History,this.listId="vhs"):(this.currentList=li.Public,this.listId="vps"):(this.currentList=li.Public,this.listId="vps"),si.setDefaultTabForServerList(this.currentList),p.has("key")&&(this.currentLocalPk=p.get("key"),si.changeCurrentPk(this.currentLocalPk),this.tabsData=si.vpnTabsData),p.has("page")){let g=Number.parseInt(p.get("page"),10);(isNaN(g)||g<1)&&(g=1),this.currentPageInUrl=g,this.recalculateElementsToShow()}this.initialLoadStarted||(this.initialLoadStarted=!0,this.loadData(!0))}),this.currentServerSubscription=this.vpnSavedDataService.currentServerObservable.subscribe(p=>this.currentServer=p),this.backendDataSubscription=this.vpnClientService.backendState.subscribe(p=>{p&&(this.loadingBackendData=!1,this.vpnRunning=p.vpnClientAppData.running)})}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.currentServerSubscription.unsubscribe(),this.backendDataSubscription.unsubscribe(),this.dataSortedSubscription&&this.dataSortedSubscription.unsubscribe(),this.dataFiltererSubscription&&this.dataFiltererSubscription.unsubscribe(),this.dataSubscription&&this.dataSubscription.unsubscribe(),this.dataFilterer&&this.dataFilterer.dispose(),this.dataSorter&&this.dataSorter.dispose()}enterManually(){N2e.openDialog(this.dialog,this.currentLocalPk)}getNoteVar(e){return e.note&&e.personalNote?"vpn.server-list.notes-info":!e.note&&e.personalNote?e.personalNote:e.note}selectServer(e){const i=this.vpnSavedDataService.getSavedVersion(e.pk,!0);if(this.snackbarService.closeCurrentIfTemporaryError(),i&&i.flag===an.Blocked)this.snackbarService.showError("vpn.starting-blocked-server-error",{},!0);else{if(this.currentServer&&this.currentServer.pk===e.pk){if(this.vpnRunning)this.snackbarService.showWarning("vpn.server-change.already-selected-warning");else{const o=Ye.createConfirmationDialog(this.dialog,"vpn.server-change.start-same-server-confirmation");o.componentInstance.operationAccepted.subscribe(()=>{o.componentInstance.closeModal(),this.vpnClientService.start(),si.redirectAfterServerChange(this.router,null,this.currentLocalPk)})}return}if(i&&i.usedWithPassword)return void r5.openDialog(this.dialog,!0).afterClosed().subscribe(o=>{o&&this.makeServerChange(e,"-"===o?null:o.substr(1))});this.makeServerChange(e,null)}}makeServerChange(e,i){si.processServerChange(this.router,this.vpnClientService,this.vpnSavedDataService,this.snackbarService,this.dialog,null,this.currentLocalPk,e.originalLocalData,e.originalDiscoveryData,null,i)}openOptions(e){let i=this.vpnSavedDataService.getSavedVersion(e.pk,!0);i||(i=this.vpnSavedDataService.processFromDiscovery(e.originalDiscoveryData)),i?si.openServerOptions(i,this.router,this.vpnSavedDataService,this.vpnClientService,this.snackbarService,this.dialog).subscribe(o=>{o&&this.processAllServers()}):this.snackbarService.showError("vpn.unexpedted-error")}loadData(e){if(this.currentList===li.Public){const i=e?this.getLocalValue(this.persistentServerDataResponseKey):null;let o=this.vpnClientDiscoveryService.getServers();i&&(o=ae(JSON.parse(i.value))),this.dataSubscription=o.subscribe(r=>{i||this.saveLocalValue(this.persistentServerDataResponseKey,JSON.stringify(r)),this.allServers=r.map(s=>({countryCode:s.countryCode,countryName:this.getCountryName(s.countryCode),name:s.name,customName:null,location:s.location,pk:s.pk,note:s.note,personalNote:null,originalDiscoveryData:s})),this.vpnSavedDataService.updateFromDiscovery(r),this.loading=!1,this.processAllServers(),i&&this.loadData(!1)})}else{let i;i=this.currentList===li.History?this.vpnSavedDataService.history:this.currentList===li.Favorites?this.vpnSavedDataService.favorites:this.vpnSavedDataService.blocked,this.dataSubscription=i.subscribe(o=>{const r=[];o.forEach(s=>{r.push({countryCode:s.countryCode,countryName:this.getCountryName(s.countryCode),name:s.name,customName:null,location:s.location,pk:s.pk,note:s.note,personalNote:null,lastUsed:s.lastUsed,inHistory:s.inHistory,flag:s.flag,originalLocalData:s})}),this.allServers=r,this.loading=!1,this.processAllServers()})}}processAllServers(){this.fillFilterPropertiesArray();const e=new Set;this.allServers.forEach((c,u)=>{e.add(c.countryCode);const p=this.vpnSavedDataService.getSavedVersion(c.pk,0===u);c.customName=p?p.customName:null,c.personalNote=p?p.personalNote:null,c.inHistory=!!p&&p.inHistory,c.flag=p?p.flag:an.None,c.enteredManually=!!p&&p.enteredManually,c.usedWithPassword=!!p&&p.usedWithPassword});let i=[];e.forEach(c=>{i.push({label:this.getCountryName(c),value:c,image:"/assets/img/big-flags/"+c.toLowerCase()+".png"})}),i.sort((c,u)=>c.label.localeCompare(u.label)),i=[{label:"vpn.server-list.filter-dialog.country-options.any",value:""}].concat(i),this.filterProperties=[{filterName:"vpn.server-list.filter-dialog.country",keyNameInElementsArray:"countryCode",type:mn.Select,printableLabelsForValues:i,printableLabelGeneralSettings:{defaultImage:"/assets/img/big-flags/unknown.png",imageWidth:20,imageHeight:15}}].concat(this.filterProperties);const r=[];let s,a,l;this.currentList===li.Public?(r.push(this.countrySortData),r.push(this.nameSortData),r.push(this.locationSortData),r.push(this.pkSortData),r.push(this.noteSortData),s=0,a=1):(this.currentList===li.History&&r.push(this.dateSortData),r.push(this.countrySortData),r.push(this.nameSortData),r.push(this.locationSortData),r.push(this.pkSortData),r.push(this.noteSortData),s=this.currentList===li.History?0:1,a=this.currentList===li.History?2:3),this.dataSorter=new ru(this.dialog,this.translateService,this.storageService,r,s,this.listId),this.dataSorter.setTieBreakerColumnIndex(a),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataFilterer=new su(this.dialog,this.route,this.router,this.filterProperties,this.listId),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(c=>{this.filteredServers=c,this.dataSorter.setData(this.filteredServers)}),l=this.currentList===li.Public?this.allServers.filter(c=>c.flag!==an.Blocked):this.allServers,this.dataFilterer.setData(l)}fillFilterPropertiesArray(){this.filterProperties=[{filterName:"vpn.server-list.filter-dialog.name",keyNameInElementsArray:"name",secondaryKeyNameInElementsArray:"customName",type:mn.TextInput,maxlength:100},{filterName:"vpn.server-list.filter-dialog.location",keyNameInElementsArray:"location",type:mn.TextInput,maxlength:100},{filterName:"vpn.server-list.filter-dialog.public-key",keyNameInElementsArray:"pk",type:mn.TextInput,maxlength:100}]}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredServers){const e=this.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredServers.length/e),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const i=e*(this.currentPage-1);this.serversToShow=this.filteredServers.slice(i,i+e)}else this.serversToShow=null;this.dataSource=this.serversToShow}getCountryName(e){return Zr[e.toUpperCase()]?Zr[e.toUpperCase()]:e}static{this.\u0275fac=function(i){return new(i||t)(P(kt),P(vt),P(zo),P(Ei),P(L2e),P(sc),P(rc),P(bt),P(zn))}}static{this.\u0275cmp=se({type:t,selectors:[["app-vpn-server-list"]],standalone:!1,features:[be],decls:4,vars:2,consts:[["topPart",""],[1,"d-flex","flex-column","h-100","w-100"],[1,"row"],[1,"loading-top-container"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton","localVpnKey"],[1,"main-container"],[1,"width-limiter"],[1,"center-container","mt-4.5"],[4,"ngTemplateOutlet"],[1,"h-100","loading-indicator"],[1,"option-bar-container"],[1,"rounded-elevated-box","mt-3"],[1,"box-internal-container","allow-overflow"],[1,"option-bar"],[1,"text-option","selected"],[1,"text-option",3,"routerLink"],[1,"option-bar-container","option-bar-margin",3,"ngClass"],[1,"icon-option",3,"click","matTooltip"],[3,"inline"],[1,"option-bar-container","option-bar-margin"],[1,"filter-label","subtle-transparent-button","cursor-pointer"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],[1,"transparent-50"],[1,"item"],[1,"col-12"],[1,"col-12","vpn-table-container"],[1,"center-container","mt-4.5",3,"ngClass"],[1,"rounded-elevated-box"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"box-internal-container"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table"],[1,"sortable-column","date-column","click-effect",3,"matTooltip"],[1,"sortable-column","flag-column","center","click-effect",3,"click","matTooltip"],[1,"sortable-column","name-column","click-effect",3,"click"],[1,"header-container"],[1,"header-text"],[1,"sortable-column","location-column","click-effect",3,"click"],[1,"sortable-column","pk-column","click-effect",3,"click","ngClass","matTooltip"],[1,"sortable-column","note-column","center","click-effect",3,"click","matTooltip"],[1,"actions"],[3,"ngClass"],[1,"sortable-column","date-column","click-effect",3,"click","matTooltip"],[3,"click","ngClass"],[1,"date-column"],[1,"flag-column","icon-fixer"],[1,"flag"],[3,"matTooltip"],[1,"name-column"],[3,"isCurrentServer","isFavorite","isBlocked","isInHistory","hasPassword","name","pk","customName","defaultName"],[1,"location-column"],[1,"pk-column","history-pk-column"],[1,"d-inline-block","w-100",3,"click","shortSimple","text"],[1,"center","note-column"],[1,"note-icon",3,"inline","matTooltip"],["mat-button","",1,"big-action-button","transparent-button","vpn-small-button",3,"click","matTooltip"],[1,"note-icon",3,"click","inline","matTooltip"],[1,"box-internal-container","font-sm"],[1,"alert-icon",3,"inline"],[1,"font-sm"]],template:function(i,o){1&i&&(S(0,W2e,8,7,"div",1),tt(1,sIe,31,20,"ng-template",null,0,El),S(3,EIe,10,13,"div",2)),2&i&&(k(o.loading||o.loadingBackendData?0:-1),d(3),k(o.loading||o.loadingBackendData?-1:3))},styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .header-container[_ngcontent-%COMP%] .header-text[_ngcontent-%COMP%], .note-column[_ngcontent-%COMP%], .pk-column[_ngcontent-%COMP%], .location-column[_ngcontent-%COMP%], .name-column[_ngcontent-%COMP%], .date-column[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}.center-container[_ngcontent-%COMP%]{text-align:center}.center-container[_ngcontent-%COMP%] app-paginator[_ngcontent-%COMP%]{display:inline-block}.loading-top-container[_ngcontent-%COMP%]{z-index:1}.loading-indicator[_ngcontent-%COMP%]{padding-top:30px;padding-bottom:20px}.deactivated[_ngcontent-%COMP%]{opacity:.5;pointer-events:none}.option-bar-container[_ngcontent-%COMP%]{display:inline-block}.option-bar-container[_ngcontent-%COMP%] .allow-overflow[_ngcontent-%COMP%]{overflow:visible}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%]{display:flex;margin:-17px}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] > div[_ngcontent-%COMP%], .option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{height:55px;line-height:55px;cursor:pointer;color:#fff;text-decoration:none;-webkit-user-select:none;user-select:none}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:hover, .option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{background:#0003}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] > .icon-option[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] a[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:inline-block}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] > .icon-option[_ngcontent-%COMP%]:active span[_ngcontent-%COMP%], .option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:active span[_ngcontent-%COMP%]{transform:scale(.95)}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] .text-option[_ngcontent-%COMP%]{padding:0 40px;font-size:1rem}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] .icon-option[_ngcontent-%COMP%]{width:55px;font-size:24px}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%]{background:#0000005c;cursor:unset!important}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%]:hover{background:#0009}.option-bar-margin[_ngcontent-%COMP%]{margin-left:10px}.filter-label[_ngcontent-%COMP%]{font-size:.7rem;display:inline-block;padding:5px 10px;margin-bottom:7px}.filter-label[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{vertical-align:middle}table[_ngcontent-%COMP%]{width:100%}tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:2px 5px!important;font-size:12px!important;font-weight:400!important}tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{padding-left:5px!important;padding-right:5px!important}.date-column[_ngcontent-%COMP%]{width:150px}.name-column[_ngcontent-%COMP%]{max-width:0;width:20%}.location-column[_ngcontent-%COMP%]{max-width:0;min-width:72px}.pk-column[_ngcontent-%COMP%]{max-width:0;width:25%}.history-pk-column[_ngcontent-%COMP%]{width:20%!important}.icon-fixer[_ngcontent-%COMP%]{line-height:0px}.note-column[_ngcontent-%COMP%]{max-width:0;width:3%;min-width:60px}.note-column[_ngcontent-%COMP%] .note-icon[_ngcontent-%COMP%]{opacity:.55;font-size:16px!important;display:inline}.flag-column[_ngcontent-%COMP%]{width:1px;line-height:0px}.actions[_ngcontent-%COMP%]{width:1px}.header-container[_ngcontent-%COMP%]{max-width:100%;display:inline-flex}.header-container[_ngcontent-%COMP%] .header-text[_ngcontent-%COMP%]{flex-grow:1}.flag[_ngcontent-%COMP%]{width:20px;height:15px;display:inline-block;margin-right:5px;background-image:url(/assets/img/big-flags/unknown.png);background-size:contain}.flag[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{width:20px;height:15px;background-size:contain}.center[_ngcontent-%COMP%]{text-align:center}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}"]})}}return t})();const _p=(t,n)=>({"small-text-icon":t,"big-text-icon":n});function IIe(t,n){if(1&t&&(f(0,"mat-icon",0),b(1,"translate"),m(2,"done"),h()),2&t){const e=C();v("ngClass",ft(5,_p,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",y(1,3,"vpn.server-conditions.selected-info"))}}function PIe(t,n){if(1&t&&(f(0,"mat-icon",1),b(1,"translate"),m(2,"clear"),h()),2&t){const e=C();v("ngClass",ft(5,_p,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",y(1,3,"vpn.server-conditions.blocked-info"))}}function OIe(t,n){if(1&t&&(f(0,"mat-icon",2),b(1,"translate"),m(2,"star"),h()),2&t){const e=C();v("ngClass",ft(5,_p,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",y(1,3,"vpn.server-conditions.favorite-info"))}}function AIe(t,n){if(1&t&&(f(0,"mat-icon",0),b(1,"translate"),m(2,"history"),h()),2&t){const e=C();v("ngClass",ft(5,_p,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",y(1,3,"vpn.server-conditions.history-info"))}}function RIe(t,n){if(1&t&&(f(0,"mat-icon",0),b(1,"translate"),m(2,"lock_outlined"),h()),2&t){const e=C();v("ngClass",ft(5,_p,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",y(1,3,"vpn.server-conditions.has-password-info"))}}function NIe(t,n){if(1&t&&(m(0),f(1,"mat-icon",3),m(2,"fiber_manual_record"),h(),m(3)),2&t){const e=C();I(" ",e.customName," "),d(),v("inline",!0),d(2),I(" ",e.name,"\n")}}function FIe(t,n){1&t&&m(0),2&t&&I(" ",C().customName,"\n")}function LIe(t,n){1&t&&m(0),2&t&&I(" ",C().name,"\n")}function BIe(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,C().defaultName),"\n")}let pj=(()=>{class t{constructor(){this.isCurrentServer=!1,this.isFavorite=!1,this.isBlocked=!1,this.isInHistory=!1,this.hasPassword=!1,this.name="",this.customName="",this.pk="",this.defaultName="",this.adjustIconsForBigText=!1}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=se({type:t,selectors:[["app-vpn-server-name"]],inputs:{isCurrentServer:"isCurrentServer",isFavorite:"isFavorite",isBlocked:"isBlocked",isInHistory:"isInHistory",hasPassword:"hasPassword",name:"name",customName:"customName",pk:"pk",defaultName:"defaultName",adjustIconsForBigText:"adjustIconsForBigText"},standalone:!1,decls:9,vars:9,consts:[[1,"server-condition-icon",3,"ngClass","inline","matTooltip"],[1,"server-condition-icon","red-clear-text",3,"ngClass","inline","matTooltip"],[1,"server-condition-icon","yellow-clear-text",3,"ngClass","inline","matTooltip"],[1,"name-separator",3,"inline"]],template:function(i,o){1&i&&(S(0,IIe,3,8,"mat-icon",0),S(1,PIe,3,8,"mat-icon",1),S(2,OIe,3,8,"mat-icon",2),S(3,AIe,3,8,"mat-icon",0),S(4,RIe,3,8,"mat-icon",0),S(5,NIe,4,3),S(6,FIe,1,1),S(7,LIe,1,1),S(8,BIe,2,3)),2&i&&(k(o.isCurrentServer?0:-1),d(),k(o.isBlocked?1:-1),d(),k(o.isFavorite?2:-1),d(),k(o.isInHistory?3:-1),d(),k(o.hasPassword?4:-1),d(),k(!o.customName||!o.name||o.pk&&o.name===o.pk?-1:5),d(),k((!o.name||o.pk&&o.name===o.pk)&&o.customName?6:-1),d(),k(!o.name||o.pk&&o.name===o.pk||o.customName?-1:7),d(),k(o.name&&(!o.pk||o.name!==o.pk)||o.customName?-1:8))},dependencies:[qt,lt,pn,Se],styles:[".server-condition-icon[_ngcontent-%COMP%]{font-size:14px!important;line-height:14px!important;margin-right:3px;position:relative;width:14px!important;-webkit-user-select:none;user-select:none;cursor:default}.small-text-icon[_ngcontent-%COMP%]{top:2px}.big-text-icon[_ngcontent-%COMP%]{top:0}.name-separator[_ngcontent-%COMP%]{display:inline!important;font-size:8px!important;opacity:.5!important}"]})}}return t})();const mj=()=>["vpn.title"],gj=t=>({"disabled-button":t}),VIe=(t,n)=>({custom:t,original:n}),bu=t=>({showValue:!0,showUnit:!0,showPerSecond:!0,limitDecimals:!0,useBits:t}),_j=t=>({showValue:!0,showUnit:!0,showPerSecond:!0,useBits:t}),bj=t=>({showValue:!0,showUnit:!0,useBits:t}),jv=t=>({time:t});function HIe(t,n){if(1&t&&(f(0,"div",0)(1,"div"),B(2,"app-top-bar",2),h(),B(3,"app-loading-indicator"),h()),2&t){const e=C();d(2),v("titleParts",Mt(5,mj))("tabsData",e.tabsData)("selectedTabIndex",0)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk)}}function jIe(t,n){1&t&&B(0,"mat-spinner",22),2&t&&v("diameter",40)}function UIe(t,n){1&t&&(f(0,"mat-icon",23),m(1,"power_settings_new"),h()),2&t&&v("inline",!0)}function zIe(t,n){if(1&t){const e=ce();f(0,"div",28),B(1,"div",29),h(),f(2,"div",30)(3,"div",31),B(4,"app-vpn-server-name",32),h(),f(5,"div",33),B(6,"app-copy-to-clipboard-text",34),h()(),f(7,"div",35),B(8,"div"),h(),f(9,"div",36)(10,"mat-icon",37),b(11,"translate"),L("click",function(){return z(e),$(C(3).openServerOptions())}),m(12,"settings"),h()()}if(2&t){const e=C(3);d(),Ji("background-image: url('assets/img/big-flags/"+e.currentRemoteServer.countryCode.toLocaleLowerCase()+".png');"),v("matTooltip",e.getCountryName(e.currentRemoteServer.countryCode)),d(3),v("isFavorite",e.currentRemoteServer.flag===e.serverFlags.Favorite)("isBlocked",e.currentRemoteServer.flag===e.serverFlags.Blocked)("hasPassword",e.currentRemoteServer.usedWithPassword)("name",e.currentRemoteServer.name)("pk",e.currentRemoteServer.pk)("customName",e.currentRemoteServer.customName),d(2),v("shortSimple",!0)("text",e.currentRemoteServer.pk),d(4),v("inline",!0)("matTooltip",y(11,13,"vpn.server-options.tooltip"))}}function $Ie(t,n){1&t&&(f(0,"div",25),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"vpn.status-page.no-server")))}function WIe(t,n){if(1&t&&(f(0,"div",26)(1,"mat-icon",23),m(2,"info_outline"),h(),m(3),b(4,"translate"),h()),2&t){const e=C(3);d(),v("inline",!0),d(2),I(" ",Ee(4,2,e.getNoteVar(),ft(5,VIe,e.currentRemoteServer.personalNote,e.currentRemoteServer.note))," ")}}function GIe(t,n){if(1&t&&(f(0,"div",27)(1,"mat-icon",23),m(2,"cancel"),h(),m(3),b(4,"translate"),h()),2&t){const e=C(3);d(),v("inline",!0),d(2),Hn(" ",y(4,3,"vpn.status-page.last-error")," ",e.backendState.vpnClientAppData.lastErrorMsg," ")}}function qIe(t,n){if(1&t){const e=ce();f(0,"div",6)(1,"div",9)(2,"div",11),m(3),b(4,"translate"),h(),f(5,"div")(6,"div",18),L("click",function(){return z(e),$(C(2).start())}),f(7,"div",19),B(8,"div",20),h(),f(9,"div",19),B(10,"div",21),h(),S(11,jIe,1,1,"mat-spinner",22),S(12,UIe,2,1,"mat-icon",23),h()(),f(13,"div",24),S(14,zIe,13,15),S(15,$Ie,3,3,"div",25),h(),f(16,"div"),S(17,WIe,5,8,"div",26),h(),f(18,"div"),S(19,GIe,5,5,"div",27),h()()()}if(2&t){const e=C(2);d(3),O(y(4,8,"vpn.status-page.start-title")),d(3),v("ngClass",oe(10,gj,e.showBusy)),d(5),k(e.showBusy?11:-1),d(),k(e.showBusy?-1:12),d(2),k(e.currentRemoteServer?14:-1),d(),k(e.currentRemoteServer?-1:15),d(2),k(e.currentRemoteServer&&(e.currentRemoteServer.note||e.currentRemoteServer.personalNote)?17:-1),d(2),k(e.backendState&&e.backendState.vpnClientAppData&&e.backendState.vpnClientAppData.lastErrorMsg?19:-1)}}function KIe(t,n){if(1&t&&(f(0,"div",44)(1,"mat-icon",23),m(2,"cancel"),h(),m(3),b(4,"translate"),h()),2&t){const e=C(3);d(),v("inline",!0),d(2),Hn(" ",y(4,3,"vpn.status-page.last-error")," ",e.backendState.vpnClientAppData.connectionData.error," ")}}function YIe(t,n){1&t&&(f(0,"div"),B(1,"mat-spinner",22),h()),2&t&&(d(),v("diameter",24))}function XIe(t,n){1&t&&(f(0,"mat-icon",23),m(1,"power_settings_new"),h()),2&t&&v("inline",!0)}function ZIe(t,n){if(1&t){const e=ce();f(0,"div",7)(1,"div",9)(2,"div",38)(3,"div",39)(4,"mat-icon",23),m(5,"timer"),h(),f(6,"span"),m(7),h()()(),f(8,"div",40),m(9),b(10,"translate"),h(),f(11,"div",41)(12,"div",42),m(13),b(14,"translate"),h(),B(15,"div"),h(),f(16,"div",43),m(17),b(18,"translate"),h(),S(19,KIe,5,5,"div",44),f(20,"div",45)(21,"div",46),b(22,"translate"),f(23,"div",47),B(24,"app-line-chart",48),h(),f(25,"div",49)(26,"div",50)(27,"div",51),m(28),b(29,"autoScale"),h(),B(30,"div",52),h()(),f(31,"div",49)(32,"div",53)(33,"div",51),m(34),b(35,"autoScale"),h(),B(36,"div",52),h()(),f(37,"div",49)(38,"div",54)(39,"div",51),m(40),b(41,"autoScale"),h()()(),f(42,"div",55)(43,"mat-icon",56),m(44,"keyboard_backspace"),h(),f(45,"div",57),m(46),b(47,"autoScale"),h(),f(48,"div",58),m(49),b(50,"autoScale"),b(51,"translate"),h()()(),f(52,"div",46),b(53,"translate"),f(54,"div",47),B(55,"app-line-chart",48),h(),f(56,"div",59)(57,"div",50)(58,"div",51),m(59),b(60,"autoScale"),h(),B(61,"div",52),h()(),f(62,"div",49)(63,"div",53)(64,"div",51),m(65),b(66,"autoScale"),h(),B(67,"div",52),h()(),f(68,"div",49)(69,"div",54)(70,"div",51),m(71),b(72,"autoScale"),h()()(),f(73,"div",55)(74,"mat-icon",60),m(75,"keyboard_backspace"),h(),f(76,"div",57),m(77),b(78,"autoScale"),h(),f(79,"div",58),m(80),b(81,"autoScale"),b(82,"translate"),h()()()(),f(83,"div",61)(84,"div",62),b(85,"translate"),f(86,"div",47),B(87,"app-line-chart",63),h(),f(88,"div",59)(89,"div",50)(90,"div",51),m(91),b(92,"translate"),h(),B(93,"div",52),h()(),f(94,"div",49)(95,"div",53)(96,"div",51),m(97),b(98,"translate"),h(),B(99,"div",52),h()(),f(100,"div",49)(101,"div",54)(102,"div",51),m(103),b(104,"translate"),h()()(),f(105,"div",55)(106,"mat-icon",23),m(107,"swap_horiz"),h(),f(108,"div"),m(109),b(110,"translate"),h()()()(),f(111,"div",64),L("click",function(){return z(e),$(C(2).stop())}),f(112,"div",65)(113,"div",66),S(114,YIe,2,1,"div"),S(115,XIe,2,1,"mat-icon",23),f(116,"span"),m(117),b(118,"translate"),h()()()()()()}if(2&t){const e=C(2);d(4),v("inline",!0),d(3),O(e.connectionTimeString),d(2),O(y(10,58,"vpn.connection-info.state-title")),d(4),O(y(14,60,e.currentStateText)),d(2),at("state-line "+e.currentStateLineClass),d(2),O(y(18,62,e.currentStateText+"-info")),d(2),k(e.backendState&&e.backendState.vpnClientAppData&&e.backendState.vpnClientAppData.connectionData&&e.backendState.vpnClientAppData.connectionData.error?19:-1),d(2),v("matTooltip",y(22,64,"vpn.status-page.upload-info")),d(3),v("animated",!1)("data",e.sentHistory)("min",e.minUploadInGraph)("max",e.maxUploadInGraph),d(4),I(" ",Ee(29,66,e.maxUploadInGraph,oe(118,bu,e.showSpeedsInBits))," "),d(2),Ji("margin-top: "+e.graphsTopInternalMargin+"px;"),d(4),I(" ",Ee(35,69,e.midUploadInGraph,oe(120,bu,e.showSpeedsInBits))," "),d(2),Ji("margin-top: "+e.graphsTopInternalMargin/2+"px;"),d(4),I(" ",Ee(41,72,e.minUploadInGraph,oe(122,bu,e.showSpeedsInBits))," "),d(3),v("inline",!0),d(3),O(Ee(47,75,e.uploadSpeed,oe(124,_j,e.showSpeedsInBits))),d(3),Hn(" ",Ee(50,78,e.totalUploaded,oe(126,bj,e.showTotalsInBits))," ",y(51,81,"vpn.status-page.total-data-label")," "),d(3),v("matTooltip",y(53,83,"vpn.status-page.download-info")),d(3),v("animated",!1)("data",e.receivedHistory)("min",e.minDownloadInGraph)("max",e.maxDownloadInGraph),d(4),I(" ",Ee(60,85,e.maxDownloadInGraph,oe(128,bu,e.showSpeedsInBits))," "),d(2),Ji("margin-top: "+e.graphsTopInternalMargin+"px;"),d(4),I(" ",Ee(66,88,e.midDownloadInGraph,oe(130,bu,e.showSpeedsInBits))," "),d(2),Ji("margin-top: "+e.graphsTopInternalMargin/2+"px;"),d(4),I(" ",Ee(72,91,e.minDownloadInGraph,oe(132,bu,e.showSpeedsInBits))," "),d(3),v("inline",!0),d(3),O(Ee(78,94,e.downloadSpeed,oe(134,_j,e.showSpeedsInBits))),d(3),Hn(" ",Ee(81,97,e.totalDownloaded,oe(136,bj,e.showTotalsInBits))," ",y(82,100,"vpn.status-page.total-data-label")," "),d(4),v("matTooltip",y(85,102,"vpn.status-page.latency-info")),d(3),v("animated",!1)("data",e.latencyHistory)("min",e.minLatencyInGraph)("max",e.maxLatencyInGraph),d(4),I(" ",Ee(92,104,"common."+e.getLatencyValueString(e.maxLatencyInGraph),oe(138,jv,e.getPrintableLatency(e.maxLatencyInGraph)))," "),d(2),Ji("margin-top: "+e.graphsTopInternalMargin+"px;"),d(4),I(" ",Ee(98,107,"common."+e.getLatencyValueString(e.midLatencyInGraph),oe(140,jv,e.getPrintableLatency(e.midLatencyInGraph)))," "),d(2),Ji("margin-top: "+e.graphsTopInternalMargin/2+"px;"),d(4),I(" ",Ee(104,110,"common."+e.getLatencyValueString(e.minLatencyInGraph),oe(142,jv,e.getPrintableLatency(e.minLatencyInGraph)))," "),d(3),v("inline",!0),d(3),O(Ee(110,113,"common."+e.getLatencyValueString(e.latency),oe(144,jv,e.getPrintableLatency(e.latency)))),d(2),v("ngClass",oe(146,gj,e.showBusy)),d(3),k(e.showBusy?114:-1),d(),k(e.showBusy?-1:115),d(2),O(y(118,116,"vpn.status-page.disconnect"))}}function QIe(t,n){1&t&&m(0),2&t&&I(" ",C(3).currentIp," ")}function JIe(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"common.unknown")," ")}function ePe(t,n){1&t&&B(0,"mat-spinner",22),2&t&&v("diameter",20)}function tPe(t,n){1&t&&(f(0,"mat-icon",67),b(1,"translate"),m(2,"warning"),h()),2&t&&v("inline",!0)("matTooltip",y(1,2,"vpn.status-page.data.ip-problem-info"))}function nPe(t,n){if(1&t){const e=ce();f(0,"mat-icon",69),b(1,"translate"),L("click",function(){return z(e),$(C(3).getIp())}),m(2,"refresh"),h()}2&t&&v("inline",!0)("matTooltip",y(1,2,"vpn.status-page.data.ip-refresh-info"))}function iPe(t,n){if(1&t&&(f(0,"div",12),S(1,QIe,1,1),S(2,JIe,2,3),S(3,ePe,1,1,"mat-spinner",22),S(4,tPe,3,4,"mat-icon",67),S(5,nPe,3,4,"mat-icon",68),h()),2&t){const e=C(2);d(),k(e.currentIp?1:-1),d(),k(e.currentIp||e.loadingCurrentIp?-1:2),d(),k(e.loadingCurrentIp?3:-1),d(),k(e.problemGettingIp?4:-1),d(),k(e.loadingCurrentIp?-1:5)}}function oPe(t,n){1&t&&(f(0,"div",12),m(1),b(2,"translate"),h()),2&t&&(d(),I(" ",y(2,1,"vpn.status-page.data.unavailable")," "))}function rPe(t,n){1&t&&m(0),2&t&&I(" ",C(3).ipCountry," ")}function sPe(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"common.unknown")," ")}function aPe(t,n){1&t&&B(0,"mat-spinner",22),2&t&&v("diameter",20)}function lPe(t,n){1&t&&(f(0,"mat-icon",67),b(1,"translate"),m(2,"warning"),h()),2&t&&v("inline",!0)("matTooltip",y(1,2,"vpn.status-page.data.ip-country-problem-info"))}function cPe(t,n){if(1&t&&(f(0,"div",12),S(1,rPe,1,1),S(2,sPe,2,3),S(3,aPe,1,1,"mat-spinner",22),S(4,lPe,3,4,"mat-icon",67),h()),2&t){const e=C(2);d(),k(e.ipCountry?1:-1),d(),k(e.ipCountry||e.loadingCurrentIp?-1:2),d(),k(e.loadingCurrentIp?3:-1),d(),k(e.problemGettingIp?4:-1)}}function dPe(t,n){1&t&&(f(0,"div",12),m(1),b(2,"translate"),h()),2&t&&(d(),I(" ",y(2,1,"vpn.status-page.data.unavailable")," "))}function uPe(t,n){if(1&t){const e=ce();f(0,"div")(1,"div",11),m(2),b(3,"translate"),h(),f(4,"div",12),B(5,"app-vpn-server-name",70),f(6,"mat-icon",69),b(7,"translate"),L("click",function(){return z(e),$(C(2).openServerOptions())}),m(8,"settings"),h()()()}if(2&t){const e=C(2);d(2),O(y(3,10,"vpn.status-page.data.server")),d(3),v("isFavorite",e.currentRemoteServer.flag===e.serverFlags.Favorite)("isBlocked",e.currentRemoteServer.flag===e.serverFlags.Blocked)("hasPassword",e.currentRemoteServer.usedWithPassword)("adjustIconsForBigText",!0)("name",e.currentRemoteServer.name)("pk",e.currentRemoteServer.pk)("customName",e.currentRemoteServer.customName),d(),v("inline",!0)("matTooltip",y(7,12,"vpn.server-options.tooltip"))}}function hPe(t,n){1&t&&B(0,"div",13)}function fPe(t,n){if(1&t&&(f(0,"div")(1,"div",11),m(2),b(3,"translate"),h(),f(4,"div",16),m(5),h()()),2&t){const e=C(2);d(2),O(y(3,2,"vpn.status-page.data.server-note")),d(3),I(" ",e.currentRemoteServer.personalNote," ")}}function pPe(t,n){1&t&&B(0,"div",13)}function mPe(t,n){if(1&t&&(f(0,"div")(1,"div",11),m(2),b(3,"translate"),h(),f(4,"div",16),m(5),h()()),2&t){const e=C(2);d(2),O(y(3,2,"vpn.status-page.data."+(e.currentRemoteServer.personalNote?"original-":"")+"server-note")),d(3),I(" ",e.currentRemoteServer.note," ")}}function gPe(t,n){1&t&&B(0,"div",13)}function _Pe(t,n){if(1&t&&(f(0,"div")(1,"div",11),m(2),b(3,"translate"),h(),f(4,"div",16),B(5,"app-copy-to-clipboard-text",17),h()()),2&t){const e=C(2);d(2),O(y(3,2,"vpn.status-page.data.remote-pk")),d(3),v("text",e.currentRemoteServer.pk)}}function bPe(t,n){1&t&&B(0,"div",13)}function vPe(t,n){if(1&t&&(f(0,"div",1)(1,"div",3)(2,"div",4),B(3,"app-top-bar",2),h()(),f(4,"div",5),S(5,qIe,20,12,"div",6),S(6,ZIe,119,148,"div",7),f(7,"div",8)(8,"div",9)(9,"div",10)(10,"div")(11,"div",11),m(12),b(13,"translate"),h(),S(14,iPe,6,5,"div",12),S(15,oPe,3,3,"div",12),h(),B(16,"div",13),f(17,"div")(18,"div",11),m(19),b(20,"translate"),h(),S(21,cPe,5,4,"div",12),S(22,dPe,3,3,"div",12),h(),B(23,"div",14)(24,"div",15)(25,"div",14),S(26,uPe,9,14,"div"),S(27,hPe,1,0,"div",13),S(28,fPe,6,4,"div"),S(29,pPe,1,0,"div",13),S(30,mPe,6,4,"div"),S(31,gPe,1,0,"div",13),S(32,_Pe,6,4,"div"),S(33,bPe,1,0,"div",13),f(34,"div")(35,"div",11),m(36),b(37,"translate"),h(),f(38,"div",16),B(39,"app-copy-to-clipboard-text",17),h()()()()()()()),2&t){const e=C();d(3),v("titleParts",Mt(29,mj))("tabsData",e.tabsData)("selectedTabIndex",0)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk),d(2),k(e.showStarted?-1:5),d(),k(e.showStarted?6:-1),d(6),O(y(13,23,"vpn.status-page.data.ip")),d(2),k(e.ipInfoAllowed?14:-1),d(),k(e.ipInfoAllowed?-1:15),d(4),O(y(20,25,"vpn.status-page.data.country")),d(2),k(e.ipInfoAllowed?21:-1),d(),k(e.ipInfoAllowed?-1:22),d(4),k(e.showStarted&&e.currentRemoteServer?26:-1),d(),k(e.showStarted&&e.currentRemoteServer?27:-1),d(),k(e.showStarted&&e.currentRemoteServer&&e.currentRemoteServer.personalNote?28:-1),d(),k(e.showStarted&&e.currentRemoteServer&&e.currentRemoteServer.personalNote?29:-1),d(),k(e.showStarted&&e.currentRemoteServer&&e.currentRemoteServer.note?30:-1),d(),k(e.showStarted&&e.currentRemoteServer&&e.currentRemoteServer.note?31:-1),d(),k(e.showStarted&&e.currentRemoteServer?32:-1),d(),k(e.showStarted&&e.currentRemoteServer?33:-1),d(3),O(y(37,27,"vpn.status-page.data.local-pk")),d(3),v("text",e.currentLocalPk)}}let yPe=(()=>{class t extends Wn{constructor(e,i,o,r,s,a){super(),this.vpnClientService=e,this.vpnSavedDataService=i,this.snackbarService=o,this.route=r,this.dialog=s,this.router=a,this.persistentServerDataResponseKey="serv-dat-response",this.tabsData=si.vpnTabsData,this.sentHistory=[0,0,0,0,0,0,0,0,0,0],this.receivedHistory=[0,0,0,0,0,0,0,0,0,0],this.latencyHistory=[0,0,0,0,0,0,0,0,0,0],this.minUploadInGraph=0,this.midUploadInGraph=0,this.maxUploadInGraph=0,this.minDownloadInGraph=0,this.midDownloadInGraph=0,this.maxDownloadInGraph=0,this.minLatencyInGraph=0,this.midLatencyInGraph=0,this.maxLatencyInGraph=0,this.graphsTopInternalMargin=SD.topInternalMargin,this.connectionTimeString="00:00:00",this.calculatedSegs=-1,this.uploadSpeed=0,this.downloadSpeed=0,this.totalUploaded=0,this.totalDownloaded=0,this.latency=0,this.showSpeedsInBits=!0,this.showTotalsInBits=!1,this.loading=!0,this.showStartedLastValue=!1,this.showStarted=!1,this.lastAppState=null,this.showBusy=!1,this.stopRequested=!1,this.loadingCurrentIp=!0,this.problemGettingIp=!1,this.serverFlags=an,this.ipInfoAllowed=this.vpnSavedDataService.getCheckIpSetting();const l=this.vpnSavedDataService.getDataUnitsSetting();l===qo.OnlyBits?(this.showSpeedsInBits=!0,this.showTotalsInBits=!0):l===qo.OnlyBytes?(this.showSpeedsInBits=!1,this.showTotalsInBits=!1):(this.showSpeedsInBits=!0,this.showTotalsInBits=!1)}ngOnInit(){return this.navigationsSubscription=this.route.paramMap.subscribe(e=>{e.has("key")&&(this.currentLocalPk=e.get("key"),si.changeCurrentPk(this.currentLocalPk),this.tabsData=si.vpnTabsData),setTimeout(()=>this.navigationsSubscription.unsubscribe()),this.startGettingData(!0),this.currentRemoteServerSubscription=this.vpnSavedDataService.currentServerObservable.subscribe(i=>{this.currentRemoteServer=i})}),super.ngOnInit()}startGettingData(e){const i=e?this.getLocalValue(this.persistentServerDataResponseKey):null;let o=this.vpnClientService.backendState;i&&(o=ae(JSON.parse(i.value))),this.dataSubscription=o.subscribe(r=>{if(i||this.saveLocalValue(this.persistentServerDataResponseKey,JSON.stringify(r)),r&&r.serviceState!==Pi.PerformingInitialCheck){if(this.backendState=r,r.publicIp?(this.currentIp=r.publicIp,this.problemGettingIp=!1):this.currentIp=null,this.ipCountry=r.countryName?r.countryName:null,this.loadingCurrentIp=!1,this.showStarted=r.vpnClientAppData.running||r.vpnClientAppData.appState!==Zt.Stopped,this.showStartedLastValue!==this.showStarted){for(let s=0;s<10;s++)this.receivedHistory[s]=0,this.sentHistory[s]=0,this.latencyHistory[s]=0;this.updateGraphLimits(),this.uploadSpeed=0,this.downloadSpeed=0,this.totalUploaded=0,this.totalDownloaded=0,this.latency=0}if(this.lastAppState=r.vpnClientAppData.appState,this.showStartedLastValue=this.showStarted,this.stopRequested?this.showStarted||(this.stopRequested=!1,this.showBusy=r.busy):this.showBusy=r.busy,r.vpnClientAppData.connectionData){for(let s=0;s<10;s++)this.receivedHistory[s]=r.vpnClientAppData.connectionData.downloadSpeedHistory[s],this.sentHistory[s]=r.vpnClientAppData.connectionData.uploadSpeedHistory[s],this.latencyHistory[s]=r.vpnClientAppData.connectionData.latencyHistory[s];this.updateGraphLimits(),this.uploadSpeed=r.vpnClientAppData.connectionData.uploadSpeed,this.downloadSpeed=r.vpnClientAppData.connectionData.downloadSpeed,this.totalUploaded=r.vpnClientAppData.connectionData.totalUploaded,this.totalDownloaded=r.vpnClientAppData.connectionData.totalDownloaded,this.latency=r.vpnClientAppData.connectionData.latency}r.vpnClientAppData.running&&r.vpnClientAppData.appState===Zt.Running&&r.vpnClientAppData.connectionData&&r.vpnClientAppData.connectionData.connectionDuration?(-1===this.calculatedSegs||r.vpnClientAppData.connectionData.connectionDuration>this.calculatedSegs+2||r.vpnClientAppData.connectionData.connectionDuration{this.calculatedSegs+=1,this.refreshConnectionTimeString()})):this.timeUpdateSubscription&&(this.timeUpdateSubscription.unsubscribe(),this.timeUpdateSubscription=null,this.calculatedSegs=-1,this.connectionTimeString="00:00:00"),this.loading=!1}i&&this.startGettingData(!1)})}refreshConnectionTimeString(){const e=this.calculatedSegs%60,i=Math.floor(this.calculatedSegs/60),o=i%60,r=Math.floor(i/60);this.connectionTimeString=String(r).padStart(2,"0")+":"+String(o).padStart(2,"0")+":"+String(e).padStart(2,"0")}ngOnDestroy(){this.dataSubscription.unsubscribe(),this.navigationsSubscription.unsubscribe(),this.currentRemoteServerSubscription.unsubscribe(),this.closeOperationSubscription(),this.timeUpdateSubscription&&this.timeUpdateSubscription.unsubscribe()}start(){if(!this.currentRemoteServer)return this.router.navigate(["vpn",this.currentLocalPk,"servers"]),void setTimeout(()=>this.snackbarService.showWarning("vpn.status-page.select-server-warning"),100);this.currentRemoteServer.flag!==an.Blocked?(this.showBusy=!0,this.vpnClientService.start()):this.snackbarService.showError("vpn.starting-blocked-server-error")}stop(){if(!this.backendState.vpnClientAppData.killswitch)return void this.finishStoppingVpn();const e=Ye.createConfirmationDialog(this.dialog,"vpn.status-page.disconnect-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.closeModal(),this.finishStoppingVpn()})}finishStoppingVpn(){this.stopRequested=!0,this.showBusy=!0,this.vpnClientService.stop()}openServerOptions(){si.openServerOptions(this.currentRemoteServer,this.router,this.vpnSavedDataService,this.vpnClientService,this.snackbarService,this.dialog).subscribe()}getCountryName(e){return Zr[e.toUpperCase()]?Zr[e.toUpperCase()]:e}getNoteVar(){return this.currentRemoteServer.note&&this.currentRemoteServer.personalNote?"vpn.server-list.notes-info":!this.currentRemoteServer.note&&this.currentRemoteServer.personalNote?this.currentRemoteServer.personalNote:this.currentRemoteServer.note}getLatencyValueString(e){return si.getLatencyValueString(e)}getPrintableLatency(e){return si.getPrintableLatency(e)}get currentStateText(){return this.backendState.vpnClientAppData.appState===Zt.Stopped?"vpn.connection-info.state-disconnected":this.backendState.vpnClientAppData.appState===Zt.Connecting?"vpn.connection-info.state-connecting":this.backendState.vpnClientAppData.appState===Zt.Running?"vpn.connection-info.state-connected":this.backendState.vpnClientAppData.appState===Zt.ShuttingDown?"vpn.connection-info.state-disconnecting":this.backendState.vpnClientAppData.appState===Zt.Reconnecting?"vpn.connection-info.state-reconnecting":void 0}get currentStateLineClass(){return this.backendState.vpnClientAppData.appState===Zt.Stopped?"red-line":this.backendState.vpnClientAppData.appState===Zt.Connecting?"yellow-line":this.backendState.vpnClientAppData.appState===Zt.Running?"green-line":"yellow-line"}closeOperationSubscription(){this.operationSubscription&&this.operationSubscription.unsubscribe()}updateGraphLimits(){const e=this.calculateGraphLimits(this.sentHistory);this.minUploadInGraph=e[0],this.midUploadInGraph=e[1],this.maxUploadInGraph=e[2];const i=this.calculateGraphLimits(this.receivedHistory);this.minDownloadInGraph=i[0],this.midDownloadInGraph=i[1],this.maxDownloadInGraph=i[2];const o=this.calculateGraphLimits(this.latencyHistory);this.minLatencyInGraph=o[0],this.midLatencyInGraph=o[1],this.maxLatencyInGraph=o[2]}calculateGraphLimits(e){let o=0;return e.forEach(s=>{s>o&&(o=s)}),0===o&&(o+=1),[0,new sv(o).minus(0).dividedBy(2).plus(0).decimalPlaces(1).toNumber(),o]}getIp(){this.ipInfoAllowed&&(this.vpnClientService.updateData(),this.snackbarService.showDone("common.refreshed"))}static{this.\u0275fac=function(i){return new(i||t)(P(sc),P(rc),P(bt),P(Ei),P(kt),P(vt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-vpn-status"]],standalone:!1,features:[be],decls:2,vars:2,consts:[[1,"d-flex","flex-column","h-100","w-100"],[1,"general-container"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton","localVpnKey"],[1,"row"],[1,"col-12"],[1,"row","flex-1"],[1,"col-7","column","left-area"],[1,"col-7","column","left-area-connected"],[1,"col-5","column","right-area"],[1,"column-container"],[1,"content-area"],[1,"title"],[1,"big-text"],[1,"margin"],[1,"big-margin"],[1,"separator"],[1,"small-text"],[3,"text"],[1,"start-button",3,"click","ngClass"],[1,"start-button-img-container"],[1,"start-button-img"],[1,"start-button-img","animated-button"],[3,"diameter"],[3,"inline"],[1,"current-server"],[1,"none"],[1,"lower-text","current-server-note"],[1,"lower-text","last-error"],[1,"flag"],[3,"matTooltip"],[1,"text-container"],[1,"top-line"],["defaultName","vpn.unnamed",3,"isFavorite","isBlocked","hasPassword","name","pk","customName"],[1,"bottom-line"],[3,"shortSimple","text"],[1,"icon-button-separator"],[1,"icon-button"],[1,"transparent-button","vpn-small-button",3,"click","inline","matTooltip"],[1,"time-container"],[1,"time-content"],[1,"state-title"],[1,"d-inline-block"],[1,"state-text"],[1,"state-explanation"],[1,"last-connected-error"],[1,"data-container"],[1,"rounded-elevated-box","data-box","big-box",3,"matTooltip"],[1,"chart-container"],["height","140","color","#00000080",3,"animated","data","min","max"],[1,"chart-label"],[1,"label-container","label-top"],[1,"label"],[1,"line"],[1,"label-container","label-mid"],[1,"label-container","label-bottom"],[1,"content"],[1,"upload",3,"inline"],[1,"speed"],[1,"total"],[1,"chart-label","top-chart-label"],[1,"download",3,"inline"],[1,"latency-container"],[1,"rounded-elevated-box","data-box","small-box",3,"matTooltip"],["height","50","color","#00000080",3,"animated","data","min","max"],[1,"disconnect-button",3,"click","ngClass"],[1,"disconnect-button-container"],[1,"d-inline-flex"],[1,"small-icon","blinking",3,"inline","matTooltip"],[1,"big-icon","transparent-button","vpn-small-button",3,"inline","matTooltip"],[1,"big-icon","transparent-button","vpn-small-button",3,"click","inline","matTooltip"],["defaultName","vpn.unnamed",3,"isFavorite","isBlocked","hasPassword","adjustIconsForBigText","name","pk","customName"]],template:function(i,o){1&i&&(S(0,HIe,4,6,"div",0),S(1,vPe,40,30,"div",1)),2&i&&(k(o.loading?0:-1),d(),k(o.loading?-1:1))},dependencies:[qt,lt,pn,$o,Rk,SD,vr,As,pj,Se,Kf],styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .bottom-line[_ngcontent-%COMP%], .left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .top-line[_ngcontent-%COMP%], .left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .none[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}.general-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%}.column[_ngcontent-%COMP%]{height:100%;display:flex;align-items:center;padding-top:40px;padding-bottom:20px}.column[_ngcontent-%COMP%] .column-container[_ngcontent-%COMP%]{width:100%;text-align:center}.left-area-connected[_ngcontent-%COMP%] .time-container[_ngcontent-%COMP%]{background:#000000b3;border-radius:100px;font-size:.8rem;padding:8px 15px;display:inline-block}.left-area-connected[_ngcontent-%COMP%] .time-container[_ngcontent-%COMP%] .time-content[_ngcontent-%COMP%]{color:#bbb}.left-area-connected[_ngcontent-%COMP%] .time-container[_ngcontent-%COMP%] .time-content[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:10px}.left-area-connected[_ngcontent-%COMP%] .time-container[_ngcontent-%COMP%] .time-content[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{vertical-align:top}.left-area-connected[_ngcontent-%COMP%] .state-title[_ngcontent-%COMP%]{font-size:1rem;color:#bbb}.left-area-connected[_ngcontent-%COMP%] .state-text[_ngcontent-%COMP%]{font-size:2rem;text-transform:uppercase}.left-area-connected[_ngcontent-%COMP%] .state-line[_ngcontent-%COMP%]{height:1px;width:100%;margin-bottom:5px}.left-area-connected[_ngcontent-%COMP%] .green-line[_ngcontent-%COMP%]{background-color:#2ecc54}.left-area-connected[_ngcontent-%COMP%] .yellow-line[_ngcontent-%COMP%]{background-color:#d48b05}.left-area-connected[_ngcontent-%COMP%] .red-line[_ngcontent-%COMP%]{background-color:#da3439}.left-area-connected[_ngcontent-%COMP%] .state-explanation[_ngcontent-%COMP%]{font-size:.7rem}.left-area-connected[_ngcontent-%COMP%] .last-connected-error[_ngcontent-%COMP%]{margin-top:15px;font-size:.8rem;color:#ff393f}.left-area-connected[_ngcontent-%COMP%] .last-connected-error[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:2px;display:inline;-webkit-user-select:none;user-select:none}.left-area-connected[_ngcontent-%COMP%] .data-container[_ngcontent-%COMP%]{margin-top:20px}.left-area-connected[_ngcontent-%COMP%] .latency-container[_ngcontent-%COMP%]{margin-bottom:20px}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%]{cursor:default;display:inline-block}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-container[_ngcontent-%COMP%]{height:0px;position:relative;top:-3px;left:-3px}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%]{height:0px;text-align:left}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%]{position:relative;top:-3px;left:-3px;display:flex;margin-right:-6px}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{font-size:.6rem;margin-left:5px;opacity:.2}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%] .line[_ngcontent-%COMP%]{height:1px;width:10px;background-color:#fff;flex-grow:1;opacity:.1;margin-left:10px;margin-right:5px}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-top[_ngcontent-%COMP%]{align-items:flex-start}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-mid[_ngcontent-%COMP%]{align-items:center}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-bottom[_ngcontent-%COMP%]{align-items:flex-end;position:relative;top:-6px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%]{width:170px;height:140px;margin:5px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .chart-container[_ngcontent-%COMP%]{width:170px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]{width:170px;height:140px;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;padding-bottom:20px;position:relative;top:-3px;left:-3px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:25px;transform:rotate(-90deg);width:40px;height:40px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .download[_ngcontent-%COMP%]{transform:rotate(-90deg)}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .upload[_ngcontent-%COMP%]{transform:rotate(90deg)}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .speed[_ngcontent-%COMP%]{font-size:.875rem}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .total[_ngcontent-%COMP%]{font-size:.8rem;color:#bbb}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%]{height:140px}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%]{width:352px;height:50px}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%] .chart-container[_ngcontent-%COMP%]{width:352px}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]{display:inline-flex;align-items:center;height:100%;font-size:.875rem;position:relative}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px;height:25px;margin-right:5px}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%]{height:50px}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%]{background:linear-gradient(#940000,#7b0000) no-repeat!important;box-shadow:5px 5px 7px #00000080;width:352px;font-size:24px;display:inline-block;border-radius:10px;overflow:hidden;cursor:pointer;-webkit-user-select:none;user-select:none}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%]:hover{background:linear-gradient(#a10000,#900000) no-repeat!important}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%]:active{transform:scale(.98);box-shadow:0 0 7px #00000080}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%]{background-image:url(/assets/img/background-pattern.png);padding:12px}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:10px;align-self:center}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%]{display:inline-block;position:relative;top:4px;margin-right:10px;align-self:center}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{position:relative;top:-2px;line-height:1.7}.left-area[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-size:1.25rem;font-weight:700;text-align:center;text-transform:uppercase}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%]{text-align:center;margin:10px 0;cursor:pointer;display:inline-block;width:140px;height:140px}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%]:active mat-icon[_ngcontent-%COMP%]{transform:scale(.9)}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%]:hover .start-button-img-container[_ngcontent-%COMP%]{opacity:1}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{text-shadow:0px 0px 5px white}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .start-button-img-container[_ngcontent-%COMP%]{width:0px;height:0px;opacity:.7}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .start-button-img-container[_ngcontent-%COMP%] .start-button-img[_ngcontent-%COMP%]{display:inline-block;background-image:url(/assets/img/start-button.png);background-size:contain;width:140px;height:140px}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .start-button-img-container[_ngcontent-%COMP%] .animated-button[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_button-animation 4s linear infinite;pointer-events:none}@keyframes _ngcontent-%COMP%_button-animation{0%{transform:scale(1.5);opacity:0}25%{transform:scale(1);opacity:.8}50%{transform:scale(1.5);opacity:0}to{transform:scale(1.5);opacity:0}}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{line-height:140px;font-size:50px;-webkit-user-select:none;user-select:none;text-shadow:0px 0px 2px white}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%]{display:inline-block;margin-top:50px;opacity:.5}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%]{display:inline-flex;background:#000000b3;border-radius:10px;padding:10px 15px;max-width:280px;text-align:left}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .none[_ngcontent-%COMP%]{font-size:.875rem}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .flag[_ngcontent-%COMP%]{background-image:url(/assets/img/big-flags/unknown.png);width:20px;height:15px;background-size:contain;align-self:center;flex-shrink:0;margin-right:12px}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .flag[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{width:20px;height:15px;background-size:contain}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]{overflow:hidden}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .top-line[_ngcontent-%COMP%]{font-size:.875rem}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .bottom-line[_ngcontent-%COMP%]{font-size:.7rem;color:#bbb}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .icon-button-separator[_ngcontent-%COMP%]{display:flex;align-items:center}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .icon-button-separator[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{width:1px;height:30px;background:#ffffff26;margin-left:12px}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .icon-button[_ngcontent-%COMP%]{font-size:22px;line-height:1;display:flex;align-items:center;padding-left:12px}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .icon-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{cursor:pointer}.left-area[_ngcontent-%COMP%] .lower-text[_ngcontent-%COMP%]{display:inline-block;max-width:280px;margin-top:10px}.left-area[_ngcontent-%COMP%] .lower-text[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:2px;display:inline;-webkit-user-select:none;user-select:none}.left-area[_ngcontent-%COMP%] .current-server-note[_ngcontent-%COMP%]{font-size:.8rem;color:#bbb}.left-area[_ngcontent-%COMP%] .last-error[_ngcontent-%COMP%]{font-size:.8rem;color:#ff393f}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%]{background:#3d67a226;padding:30px;text-align:left;max-width:420px;opacity:.95}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-size:.8rem;color:#bbb}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%]{font-size:1.25rem;overflow-wrap:break-word}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%]{display:inline-block;opacity:.5;margin-left:5px;position:relative;top:2px}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%] .small-icon[_ngcontent-%COMP%]{color:#d48b05;opacity:.7;font-size:.875rem;cursor:default;margin-left:5px}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%] .big-icon[_ngcontent-%COMP%]{font-size:1.125rem;margin-left:5px;position:relative;top:2px;line-height:1}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .small-text[_ngcontent-%COMP%]{font-size:.7rem;margin-top:1px;overflow-wrap:break-word}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .margin[_ngcontent-%COMP%]{height:12px}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-margin[_ngcontent-%COMP%]{height:15px}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .separator[_ngcontent-%COMP%]{height:1px;width:100%;background:#ffffff26}.disabled-button[_ngcontent-%COMP%]{opacity:.5;pointer-events:none}"]})}}return t})(),DD=(()=>{class t{set lastError(e){this.lastErrorInternal=e}constructor(e){this.router=e}canActivate(e,i){return this.checkIfCanActivate()}canActivateChild(e,i){return this.checkIfCanActivate()}checkIfCanActivate(){return this.lastErrorInternal?(this.router.navigate(["vpn","unavailable"],{queryParams:{problem:this.lastErrorInternal}}),ae(!1)):ae(!0)}static{this.\u0275fac=function(i){return new(i||t)(le(vt))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();var Fa=function(t){return t.UnableToConnectWithTheVpnClientApp="unavailable",t.NoLocalVisorPkProvided="pk",t.InvalidStorageState="storage",t.LocalVisorPkChangedDuringUsage="pkChange",t}(Fa||{});let CPe=(()=>{class t extends Wn{constructor(e,i,o){super(),this.route=e,this.vpnAuthGuardService=i,this.vpnClientService=o,this.problem=null,this.navigationsSubscription=this.route.queryParamMap.subscribe(r=>{this.problem=r.get("problem"),this.problem||(this.problem=Fa.UnableToConnectWithTheVpnClientApp),this.vpnAuthGuardService.lastError=this.problem,this.vpnClientService.stopContinuallyUpdatingData(),setTimeout(()=>this.navigationsSubscription.unsubscribe())})}getTitle(){return this.problem===Fa.NoLocalVisorPkProvided?"vpn.error-page.text-pk":this.problem===Fa.InvalidStorageState?"vpn.error-page.text-storage":this.problem===Fa.LocalVisorPkChangedDuringUsage?"vpn.error-page.text-pk-change":"vpn.error-page.text"}getInfo(){return this.problem===Fa.NoLocalVisorPkProvided?"vpn.error-page.more-info-pk":this.problem===Fa.InvalidStorageState?"vpn.error-page.more-info-storage":this.problem===Fa.LocalVisorPkChangedDuringUsage?"vpn.error-page.more-info-pk-change":"vpn.error-page.more-info"}static{this.\u0275fac=function(i){return new(i||t)(P(Ei),P(DD),P(sc))}}static{this.\u0275cmp=se({type:t,selectors:[["app-vpn-error"]],standalone:!1,features:[be],decls:12,vars:7,consts:[[1,"main-container"],[1,"text-container"],[1,"inner-container"],[1,"error-icon"],[3,"inline"],[1,"more-info"]],template:function(i,o){1&i&&(f(0,"div",0)(1,"div",1)(2,"div",2)(3,"div",3)(4,"mat-icon",4),m(5,"error_outline"),h()(),f(6,"div"),m(7),b(8,"translate"),h(),f(9,"div",5),m(10),b(11,"translate"),h()()()()),2&i&&(d(4),v("inline",!0),d(3),O(y(8,3,o.getTitle())),d(3),O(y(11,5,o.getInfo())))},dependencies:[lt,Se],styles:[".main-container[_ngcontent-%COMP%]{height:100%;display:flex}.main-container[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]{width:100%;align-self:center;text-align:center}.main-container[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .inner-container[_ngcontent-%COMP%]{max-width:550px;display:inline-block;font-size:1.25rem}.main-container[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .inner-container[_ngcontent-%COMP%] .error-icon[_ngcontent-%COMP%]{font-size:80px}.main-container[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .inner-container[_ngcontent-%COMP%] .more-info[_ngcontent-%COMP%]{font-size:.8rem;opacity:.75;margin-top:10px}"]})}}return t})();const wPe=["button"],xPe=["firstInput"];let SPe=(()=>{class t{static openDialog(e,i){const o=new Lt;return o.data=i,o.autoFocus=!1,o.width=ze.smallModalWidth,e.open(t,o)}constructor(e,i,o,r,s,a){this.dialogRef=e,this.data=i,this.formBuilder=o,this.snackbarService=r,this.appsService=s,this.vpnClientService=a}ngOnInit(){this.form=this.formBuilder.group({ip:[this.data.ip,Ve.compose([Ve.maxLength(15),this.validateIp.bind(this)])]}),setTimeout(()=>this.firstInput.nativeElement.focus())}ngOnDestroy(){this.operationSubscription&&this.operationSubscription.unsubscribe()}validateIp(){if(this.form){const e=this.form.get("ip").value;return Ye.checkIfIpValidOrEmpty(e)?null:{invalid:!0}}return null}save(){!this.form.valid||this.operationSubscription||(this.button.showLoading(),this.operationSubscription=this.appsService.changeAppSettings(this.data.nodePk,this.vpnClientService.vpnClientAppName,{dns:this.form.get("ip").value}).subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)}))}onSuccess(e){this.dialogRef.close(!0),this.snackbarService.showDone("vpn.dns-config.done")}onError(e){this.button.showError(),this.operationSubscription=null,e=Je(e),this.snackbarService.showError(e)}static{this.\u0275fac=function(i){return new(i||t)(P(It),P(hn),P(vV),P(bt),P(Os),P(sc))}}static{this.\u0275cmp=se({type:t,selectors:[["app-vpn-dns-config"]],viewQuery:function(i,o){if(1&i&&rt(wPe,5)(xPe,5),2&i){let r;ue(r=he())&&(o.button=r.first),ue(r=he())&&(o.firstInput=r.first)}},standalone:!1,decls:14,vars:11,consts:[["firstInput",""],["button",""],[3,"headline"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","ip","maxlength","15","matInput",""],["color","primary",1,"float-right",3,"action","disabled"]],template:function(i,o){1&i&&(f(0,"app-dialog",2),b(1,"translate"),f(2,"form",3)(3,"mat-form-field")(4,"div",4)(5,"label",5),m(6),b(7,"translate"),h(),B(8,"input",6,0),h()()(),f(10,"app-button",7,1),L("action",function(){return o.save()}),m(12),b(13,"translate"),h()()),2&i&&(v("headline",y(1,5,"vpn.dns-config.title")),d(2),v("formGroup",o.form),d(4),O(y(7,7,"vpn.dns-config.ip")),d(4),v("disabled",!o.form.valid),d(2),I(" ",y(13,9,"vpn.dns-config.save-config-button")," "))},dependencies:[Cn,rn,sn,yn,ji,Xt,fn,wn,ei,On,Kt,Se],encapsulation:2})}}return t})();const kPe=["topBarLoading"],DPe=["topBarLoaded"],vj=()=>["vpn.title"];function TPe(t,n){if(1&t&&(f(0,"div",2)(1,"div"),B(2,"app-top-bar",4,0),h(),B(4,"app-loading-indicator",5),h()),2&t){const e=C();d(2),v("titleParts",Mt(5,vj))("tabsData",e.tabsData)("selectedTabIndex",2)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk)}}function MPe(t,n){1&t&&B(0,"mat-spinner",17),2&t&&v("diameter",12)}function EPe(t,n){if(1&t){const e=ce();f(0,"div",3)(1,"div",6),B(2,"app-top-bar",4,1),h(),f(4,"div",7)(5,"div",8)(6,"div",9)(7,"div",10)(8,"table",11)(9,"tr")(10,"th",12)(11,"div",13)(12,"div",14),m(13),b(14,"translate"),h()()(),f(15,"th",12),m(16),b(17,"translate"),h()(),f(18,"tr",15),L("click",function(){return z(e),$(C().changeKillswitchOption())}),f(19,"td",12)(20,"div"),m(21),b(22,"translate"),f(23,"mat-icon",16),b(24,"translate"),m(25,"help"),h()()(),f(26,"td",12),B(27,"span"),m(28),b(29,"translate"),S(30,MPe,1,1,"mat-spinner",17),h()(),f(31,"tr",15),L("click",function(){return z(e),$(C().changeGetIpOption())}),f(32,"td",12)(33,"div"),m(34),b(35,"translate"),f(36,"mat-icon",16),b(37,"translate"),m(38,"help"),h()()(),f(39,"td",12),B(40,"span"),m(41),b(42,"translate"),h()(),f(43,"tr",15),L("click",function(){return z(e),$(C().changeDataUnits())}),f(44,"td",12)(45,"div"),m(46),b(47,"translate"),f(48,"mat-icon",16),b(49,"translate"),m(50,"help"),h()()(),f(51,"td",12),m(52),b(53,"translate"),h()(),f(54,"tr",15),L("click",function(){return z(e),$(C().changeHops())}),f(55,"td",12)(56,"div"),m(57),b(58,"translate"),f(59,"mat-icon",16),b(60,"translate"),m(61,"help"),h()()(),f(62,"td",12),m(63),h()(),f(64,"tr",15),L("click",function(){return z(e),$(C().changeDns())}),f(65,"td",12)(66,"div"),m(67),b(68,"translate"),f(69,"mat-icon",16),b(70,"translate"),m(71,"help"),h()()(),f(72,"td",12),m(73),b(74,"translate"),h()()()()()()()()}if(2&t){const e=C();d(2),v("titleParts",Mt(64,vj))("tabsData",e.tabsData)("selectedTabIndex",2)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk),d(11),I(" ",y(14,32,"vpn.settings-page.setting-small-table-label")," "),d(3),I(" ",y(17,34,"vpn.settings-page.value-small-table-label")," "),d(5),I(" ",y(22,36,"vpn.settings-page.killswitch")," "),d(2),v("inline",!0)("matTooltip",y(24,38,"vpn.settings-page.killswitch-info")),d(4),at(e.getStatusClass(e.backendData.vpnClientAppData.killswitch)),d(),I(" ",y(29,40,e.getStatusText(e.backendData.vpnClientAppData.killswitch))," "),d(2),k(e.working===e.workingOptions.Killswitch?30:-1),d(4),I(" ",y(35,42,"vpn.settings-page.get-ip")," "),d(2),v("inline",!0)("matTooltip",y(37,44,"vpn.settings-page.get-ip-info")),d(4),at(e.getStatusClass(e.getIpOption)),d(),I(" ",y(42,46,e.getStatusText(e.getIpOption))," "),d(5),I(" ",y(47,48,"vpn.settings-page.data-units")," "),d(2),v("inline",!0)("matTooltip",y(49,50,"vpn.settings-page.data-units-info")),d(4),I(" ",y(53,52,e.getUnitsOptionText(e.dataUnitsOption))," "),d(5),I(" ",y(58,54,"vpn.settings-page.minimum-hops")," "),d(2),v("inline",!0)("matTooltip",y(60,56,"vpn.settings-page.minimum-hops-info")),d(4),I(" ",e.backendData.vpnClientAppData.minHops," "),d(4),I(" ",y(68,58,"vpn.settings-page.dns")," "),d(2),v("inline",!0)("matTooltip",y(70,60,"vpn.settings-page.dns-info")),d(4),I(" ",e.backendData.vpnClientAppData.dns?e.backendData.vpnClientAppData.dns:y(74,62,"vpn.settings-page.setting-none")," ")}}var Cc=function(t){return t[t.None=0]="None",t[t.Killswitch=1]="Killswitch",t}(Cc||{});const IPe=[{path:"",component:Rhe},{path:"login",component:XV},{path:"nodes",canActivate:[Bf],canActivateChild:[Bf],children:[{path:"",redirectTo:"list/1",pathMatch:"full"},{path:"list",redirectTo:"list/1",pathMatch:"full"},{path:"list/:page",component:f5},{path:"dmsg",redirectTo:"rewards/1",pathMatch:"full"},{path:"dmsg/:page",redirectTo:"rewards/1"},{path:"rewards",redirectTo:"rewards/1",pathMatch:"full"},{path:"rewards/:page",component:f5},{path:"services-health",component:$xe},{path:"dmsg-settings",component:sSe},{path:":key",component:ke,children:[{path:"",redirectTo:"routing",pathMatch:"full"},{path:"info",component:h2e},{path:"routing",component:R1e},{path:"apps",component:dxe},{path:"transports",redirectTo:"transports/1",pathMatch:"full"},{path:"transports/:page",component:hxe},{path:"routes",redirectTo:"routes/1",pathMatch:"full"},{path:"routes/:page",component:pxe},{path:"rewards",component:Exe},{path:"skynet",component:E2e},{path:"apps-list/:showOfficialApps/:page",component:lSe}]}]},{path:"settings",canActivate:[Bf],canActivateChild:[Bf],children:[{path:"",component:Aye},{path:"labels",redirectTo:"labels/1",pathMatch:"full"},{path:"labels/:page",component:P2e}]},{path:"vpnlogin/:key",component:XV},{path:"vpn",canActivate:[DD],canActivateChild:[DD],children:[{path:"unavailable",component:CPe},{path:":key",children:[{path:"status",component:yPe},{path:"servers",redirectTo:"servers/public/1",pathMatch:"full"},{path:"servers/:type/:page",component:fj},{path:"settings",component:(()=>{class t extends Wn{constructor(e,i,o,r,s,a){super(),this.vpnClientService=e,this.snackbarService=i,this.appsService=o,this.vpnSavedDataService=r,this.dialog=s,this.loading=!0,this.tabsData=si.vpnTabsData,this.working=Cc.None,this.workingOptions=Cc,this.navigationsSubscription=a.paramMap.subscribe(l=>{l.has("key")&&(this.currentLocalPk=l.get("key"),si.changeCurrentPk(this.currentLocalPk),this.tabsData=si.vpnTabsData)}),this.dataSubscription=this.vpnClientService.backendState.subscribe(l=>{l&&l.serviceState!==Pi.PerformingInitialCheck&&(this.backendData=l,this.loading=!1)}),this.getIpOption=this.vpnSavedDataService.getCheckIpSetting(),this.dataUnitsOption=this.vpnSavedDataService.getDataUnitsSetting()}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.dataSubscription.unsubscribe(),this.operationSubscription&&this.operationSubscription.unsubscribe()}getStatusClass(e){return!0===e?"dot-green":"dot-red"}getStatusText(e){return!0===e?"vpn.settings-page.setting-on":"vpn.settings-page.setting-off"}getUnitsOptionText(e){switch(e){case qo.OnlyBits:return"vpn.settings-page.data-units-modal.only-bits";case qo.OnlyBytes:return"vpn.settings-page.data-units-modal.only-bytes";default:return"vpn.settings-page.data-units-modal.bits-speed-and-bytes-volume"}}changeKillswitchOption(){if(this.working===Cc.None)if(this.backendData.vpnClientAppData.running){const e=Ye.createConfirmationDialog(this.dialog,"vpn.settings-page.change-while-connected-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.closeModal(),this.finishChangingKillswitchOption()})}else this.finishChangingKillswitchOption();else this.snackbarService.showWarning("vpn.settings-page.working-warning")}finishChangingKillswitchOption(){this.working=Cc.Killswitch,this.operationSubscription=this.appsService.changeAppSettings(this.currentLocalPk,this.vpnClientService.vpnClientAppName,{killswitch:!this.backendData.vpnClientAppData.killswitch}).subscribe(()=>{this.working=Cc.None,this.vpnClientService.updateData()},e=>{this.working=Cc.None,e=Je(e),this.snackbarService.showError(e)})}changeGetIpOption(){this.getIpOption=!this.getIpOption,this.vpnSavedDataService.setCheckIpSetting(this.getIpOption)}changeDataUnits(){const e=[],i=[];Object.keys(qo).forEach(o=>{const r={label:this.getUnitsOptionText(qo[o])};this.dataUnitsOption===qo[o]&&(r.icon="done"),e.push(r),i.push(qo[o])}),oo.openDialog(this.dialog,e,"vpn.settings-page.data-units-modal.title").afterClosed().subscribe(o=>{o&&(this.dataUnitsOption=i[o-1],this.vpnSavedDataService.setDataUnitsSetting(this.dataUnitsOption),this.topBarLoading&&this.topBarLoading.updateVpnDataStatsUnit(),this.topBarLoaded&&this.topBarLoaded.updateVpnDataStatsUnit())})}changeHops(){F5.openDialog(this.dialog,{nodePk:this.currentLocalPk,minHops:this.backendData.vpnClientAppData.minHops}).afterClosed().subscribe()}changeDns(){SPe.openDialog(this.dialog,{nodePk:this.currentLocalPk,ip:this.backendData.vpnClientAppData.dns}).afterClosed().subscribe()}static{this.\u0275fac=function(i){return new(i||t)(P(sc),P(bt),P(Os),P(rc),P(kt),P(Ei))}}static{this.\u0275cmp=se({type:t,selectors:[["app-vpn-settings-list"]],viewQuery:function(i,o){if(1&i&&rt(kPe,5)(DPe,5),2&i){let r;ue(r=he())&&(o.topBarLoading=r.first),ue(r=he())&&(o.topBarLoaded=r.first)}},standalone:!1,features:[be],decls:2,vars:2,consts:[["topBarLoading",""],["topBarLoaded",""],[1,"d-flex","flex-column","h-100","w-100"],[1,"row"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton","localVpnKey"],[1,"h-100"],[1,"col-12"],[1,"col-12","mt-4.5","vpn-table-container"],[1,"width-limiter"],[1,"rounded-elevated-box"],[1,"box-internal-container"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table"],[1,"data-column"],[1,"header-container"],[1,"header-text"],[1,"selectable",3,"click"],[1,"help-icon",3,"inline","matTooltip"],[3,"diameter"]],template:function(i,o){1&i&&(S(0,TPe,5,6,"div",2),S(1,EPe,75,65,"div",3)),2&i&&(k(o.loading?0:-1),d(),k(o.loading?-1:1))},dependencies:[lt,pn,$o,vr,As,Se],styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .header-container[_ngcontent-%COMP%] .header-text[_ngcontent-%COMP%], .data-column[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}table[_ngcontent-%COMP%]{width:100%}table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding-top:7px!important;padding-bottom:7px!important;font-size:12px!important;font-weight:400!important}.data-column[_ngcontent-%COMP%]{max-width:0;width:50%}.header-container[_ngcontent-%COMP%]{max-width:100%;display:inline-flex}.header-container[_ngcontent-%COMP%] .header-text[_ngcontent-%COMP%]{flex-grow:1}mat-spinner[_ngcontent-%COMP%]{display:inline-block;opacity:.5;margin-left:2px;position:relative;top:2px}mat-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}"]})}}return t})()},{path:"**",redirectTo:"status"}]},{path:"**",redirectTo:"/vpn/unavailable?problem=pk"}]},{path:"**",redirectTo:""}];let PPe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=ot({type:t})}static{this.\u0275inj=et({imports:[b4.forRoot(IPe,{useHash:!0}),b4]})}}return t})(),APe=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({imports:[ri]})}return t})(),RPe=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({imports:[fB,Wd,ri,xf]})}return t})();class NPe{getTranslation(n){return Un(wc(995)(`./${n}.json`))}}let FPe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=ot({type:t})}static{this.\u0275inj=et({imports:[l4.forRoot({loader:{provide:Rf,useClass:NPe}}),l4]})}}return t})(),LPe=(()=>{class t{shouldDetach(e){return!1}store(e,i){}shouldAttach(e){return!1}retrieve(e){return null}shouldReuseRoute(e,i){return!1}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac})}}return t})();const BPe={disabled:!0};let VPe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=ot({type:t,bootstrap:[Kr]})}static{this.\u0275inj=et({providers:[Gf,{provide:$B,useValue:{duration:3e3,verticalPosition:"top"}},{provide:kB,useValue:{width:"600px",hasBackdrop:!0}},{provide:uk,useClass:_pe},{provide:O3,useClass:LPe},{provide:xS,useValue:BPe},kse(Bl(_a.LegacyInterceptors,[{provide:xL,useFactory:gse},{provide:nf,useExisting:xL,multi:!0}]))],imports:[oF,ure,Rfe,PPe,FPe,Tue,rue,tv,ype,B0e,BB,Fue,RPe,zge,Afe,APe,Kme,Zue,mge]})}}return t})();B0(ke,[qt,$h,$_,Jn,lt,vr,As,uj],[Se]),B0(fj,[qt,Pd,wa,Jn,lt,pn,Rk,vr,cu,As,pj],[g_,Se]),gie().bootstrapModule(VPe,{applicationProviders:[function fee(t){const n=t?.scheduleInRootZone,e=function hee({ngZoneFactory:t,scheduleInRootZone:n}){return t??=()=>new ge({...VR(),scheduleInRootZone:n}),[{provide:em,useValue:!1},{provide:ge,useFactory:t},{provide:is,multi:!0,useFactory:()=>{const e=D(dee,{optional:!0});return()=>e.initialize()}},{provide:is,multi:!0,useFactory:()=>{const e=D(pee);return()=>{e.initialize()}}},{provide:WT,useValue:n??HT}]}({ngZoneFactory:()=>{const i=VR(t);return i.scheduleInRootZone=n,i.shouldCoalesceEventChangeDetection&&hi("NgZone_CoalesceEvent"),new ge(i)},scheduleInRootZone:n});return Iu([{provide:uee,useValue:!0},e])}()]}).catch(t=>console.log(t))},995(vu,Uv,wc){var Sn={"./de.json":[229,[229]],"./de_base.json":[735,[735]],"./en.json":[473,[473]],"./es.json":[18,[18]],"./es_base.json":[434,[434]],"./pt.json":[750,[750]],"./pt_base.json":[718,[718]]};function ts(Ba){if(!wc.o(Sn,Ba))return Promise.resolve().then(()=>{var De=new Error("Cannot find module '"+Ba+"'");throw De.code="MODULE_NOT_FOUND",De});var xc=Sn[Ba],kn=xc[0];return wc.e(xc[1][0]).then(()=>wc.t(kn,19))}ts.keys=()=>Object.keys(Sn),ts.id=995,vu.exports=ts}},vu=>{vu(vu.s=256)}]); \ No newline at end of file diff --git a/pkg/visor/static/main.9b3d1a64bbf5d827.js b/pkg/visor/static/main.9b3d1a64bbf5d827.js new file mode 100644 index 0000000000..f1e10b56fd --- /dev/null +++ b/pkg/visor/static/main.9b3d1a64bbf5d827.js @@ -0,0 +1 @@ +(self.webpackChunkskywire_manager=self.webpackChunkskywire_manager||[]).push([[792],{398(Eu,Yv,Ec){"use strict";let An=null,os=!1,Ua=1;const Rn=Symbol("SIGNAL");function Te(t){const n=An;return An=t,n}const Ic={version:0,lastCleanEpoch:0,dirty:!1,producers:void 0,producersTail:void 0,consumers:void 0,consumersTail:void 0,recomputing:!1,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,kind:"unknown",producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function Pu(t){if(os)throw new Error("");if(null===An)return;An.consumerOnSignalRead(t);const n=An.producersTail;if(void 0!==n&&n.producer===t)return;let e;const i=An.recomputing;if(i&&(e=void 0!==n?n.nextProducer:An.producers,void 0!==e&&e.producer===t))return An.producersTail=e,void(e.lastReadVersion=t.version);const o=t.consumersTail;if(void 0!==o&&o.consumer===An&&(!i||function D6(t,n){const e=n.producersTail;if(void 0!==e){let i=n.producers;do{if(i===t)return!0;if(i===e)break;i=i.nextProducer}while(void 0!==i)}return!1}(o,An)))return;const r=Ac(An),s={producer:t,consumer:An,nextProducer:e,prevConsumer:o,lastReadVersion:t.version,nextConsumer:void 0};An.producersTail=s,void 0!==n?n.nextProducer=s:An.producers=s,r&&MD(t,s)}function Iu(t){if((!Ac(t)||t.dirty)&&(t.dirty||t.lastCleanEpoch!==Ua)){if(!t.producerMustRecompute(t)&&!Ip(t))return void Pp(t);t.producerRecomputeValue(t),Pp(t)}}function kD(t){if(void 0===t.consumers)return;const n=os;os=!0;try{for(let e=t.consumers;void 0!==e;e=e.nextConsumer){const i=e.consumer;i.dirty||x6(i)}}finally{os=n}}function DD(){return!1!==An?.consumerAllowSignalWrites}function x6(t){t.dirty=!0,kD(t),t.consumerMarkedDirty?.(t)}function Pp(t){t.dirty=!1,t.lastCleanEpoch=Ua}function Oc(t){return t&&function S6(t){t.producersTail=void 0,t.recomputing=!0}(t),Te(t)}function Ou(t,n){Te(n),t&&function k6(t){t.recomputing=!1;const n=t.producersTail;let e=void 0!==n?n.nextProducer:t.producers;if(void 0!==e){if(Ac(t))do{e=Zv(e)}while(void 0!==e);void 0!==n?n.nextProducer=void 0:t.producers=void 0}}(t)}function Ip(t){for(let n=t.producers;void 0!==n;n=n.nextProducer){const e=n.producer,i=n.lastReadVersion;if(i!==e.version||(Iu(e),i!==e.version))return!0}return!1}function Au(t){if(Ac(t)){let n=t.producers;for(;void 0!==n;)n=Zv(n)}t.producers=void 0,t.producersTail=void 0,t.consumers=void 0,t.consumersTail=void 0}function MD(t,n){const e=t.consumersTail,i=Ac(t);if(void 0!==e?(n.nextConsumer=e.nextConsumer,e.nextConsumer=n):(n.nextConsumer=void 0,t.consumers=n),n.prevConsumer=e,t.consumersTail=n,!i)for(let o=t.producers;void 0!==o;o=o.nextProducer)MD(o.producer,o)}function Zv(t){const n=t.producer,e=t.nextProducer,i=t.nextConsumer,o=t.prevConsumer;if(t.nextConsumer=void 0,t.prevConsumer=void 0,void 0!==i?i.prevConsumer=o:n.consumersTail=o,void 0!==o)o.nextConsumer=i;else if(n.consumers=i,!Ac(n)){let r=n.producers;for(;void 0!==r;)r=Zv(r)}return e}function Ac(t){return t.consumerIsAlwaysLive||void 0!==t.consumers}function Jv(t,n){return Object.is(t,n)}function TD(t,n){const e=Object.create(M6);e.computation=t,void 0!==n&&(e.equal=n);const i=()=>{if(Iu(e),Pu(e),e.value===rs)throw e.error;return e.value};return i[Rn]=e,i}const za=Symbol("UNSET"),Rc=Symbol("COMPUTING"),rs=Symbol("ERRORED"),M6={...Ic,value:za,dirty:!0,error:null,equal:Jv,kind:"computed",producerMustRecompute:t=>t.value===za||t.value===Rc,producerRecomputeValue(t){if(t.value===Rc)throw new Error("");const n=t.value;t.value=Rc;const e=Oc(t);let i,o=!1;try{i=t.computation(),Te(null),o=n!==za&&n!==rs&&i!==rs&&t.equal(n,i)}catch(r){i=rs,t.error=r}finally{Ou(t,e)}o?t.value=n:(t.value=i,t.version++)}};let ED=function T6(){throw new Error};function PD(t){ED(t)}function Ap(t,n){DD()||PD(t),t.equal(t.value,n)||(t.value=n,function O6(t){t.version++,function w6(){Ua++}(),kD(t)}(t))}function ID(t,n){DD()||PD(t),Ap(t,n(t.value))}const ey={...Ic,equal:Jv,value:void 0,kind:"signal"},A6={...Ic,consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!0,dirty:!0,kind:"effect"};function cn(t){return"function"==typeof t}function ty(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 ny=ty(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 Rp(t,n){if(t){const e=t.indexOf(n);0<=e&&t.splice(e,1)}}class pt{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(cn(i))try{i()}catch(r){n=r instanceof ny?r.errors:[r]}const{_finalizers:o}=this;if(o){this._finalizers=null;for(const r of o)try{RD(r)}catch(s){n=n??[],s instanceof ny?n=[...n,...s.errors]:n.push(s)}}if(n)throw new ny(n)}}add(n){var e;if(n&&n!==this)if(this.closed)RD(n);else{if(n instanceof pt){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)&&Rp(e,n)}remove(n){const{_finalizers:e}=this;e&&Rp(e,n),n instanceof pt&&n._removeParent(this)}}pt.EMPTY=(()=>{const t=new pt;return t.closed=!0,t})();const OD=pt.EMPTY;function AD(t){return t instanceof pt||t&&"closed"in t&&cn(t.remove)&&cn(t.add)&&cn(t.unsubscribe)}function RD(t){cn(t)?t():t.unsubscribe()}const $a={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},Fp={setTimeout(t,n,...e){const{delegate:i}=Fp;return i?.setTimeout?i.setTimeout(t,n,...e):setTimeout(t,n,...e)},clearTimeout(t){const{delegate:n}=Fp;return(n?.clearTimeout||clearTimeout)(t)},delegate:void 0};function FD(t){Fp.setTimeout(()=>{const{onUnhandledError:n}=$a;if(!n)throw t;n(t)})}function Np(){}const F6=iy("C",void 0,void 0);function iy(t,n,e){return{kind:t,value:n,error:e}}let Wa=null;function Lp(t){if($a.useDeprecatedSynchronousErrorHandling){const n=!Wa;if(n&&(Wa={errorThrown:!1,error:null}),t(),n){const{errorThrown:e,error:i}=Wa;if(Wa=null,e)throw i}}else t()}class Bp extends pt{constructor(n){super(),this.isStopped=!1,n?(this.destination=n,AD(n)&&n.add(this)):this.destination=U6}static create(n,e,i){return new Ru(n,e,i)}next(n){this.isStopped?ry(function L6(t){return iy("N",t,void 0)}(n),this):this._next(n)}error(n){this.isStopped?ry(function N6(t){return iy("E",void 0,t)}(n),this):(this.isStopped=!0,this._error(n))}complete(){this.isStopped?ry(F6,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 V6=Function.prototype.bind;function oy(t,n){return V6.call(t,n)}class H6{constructor(n){this.partialObserver=n}next(n){const{partialObserver:e}=this;if(e.next)try{e.next(n)}catch(i){Vp(i)}}error(n){const{partialObserver:e}=this;if(e.error)try{e.error(n)}catch(i){Vp(i)}else Vp(n)}complete(){const{partialObserver:n}=this;if(n.complete)try{n.complete()}catch(e){Vp(e)}}}class Ru extends Bp{constructor(n,e,i){let o;if(super(),cn(n)||!n)o={next:n??void 0,error:e??void 0,complete:i??void 0};else{let r;this&&$a.useDeprecatedNextContext?(r=Object.create(n),r.unsubscribe=()=>this.unsubscribe(),o={next:n.next&&oy(n.next,r),error:n.error&&oy(n.error,r),complete:n.complete&&oy(n.complete,r)}):o=n}this.destination=new H6(o)}}function Vp(t){$a.useDeprecatedSynchronousErrorHandling?function B6(t){$a.useDeprecatedSynchronousErrorHandling&&Wa&&(Wa.errorThrown=!0,Wa.error=t)}(t):FD(t)}function ry(t,n){const{onStoppedNotification:e}=$a;e&&Fp.setTimeout(()=>e(t,n))}const U6={closed:!0,next:Np,error:function j6(t){throw t},complete:Np},sy="function"==typeof Symbol&&Symbol.observable||"@@observable";function Ga(t){return t}function ND(t){return 0===t.length?Ga:1===t.length?t[0]:function(e){return t.reduce((i,o)=>o(i),e)}}let Ft=(()=>{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 W6(t){return t&&t instanceof Bp||function $6(t){return t&&cn(t.next)&&cn(t.error)&&cn(t.complete)}(t)&&AD(t)}(e)?e:new Ru(e,i,o);return Lp(()=>{const{operator:s,source:a}=this;r.add(s?s.call(r,a):a?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=LD(i))((o,r)=>{const s=new Ru({next:a=>{try{e(a)}catch(l){r(l),s.unsubscribe()}},error:r,complete:o});this.subscribe(s)})}_subscribe(e){var i;return null===(i=this.source)||void 0===i?void 0:i.subscribe(e)}[sy](){return this}pipe(...e){return ND(e)(this)}toPromise(e){return new(e=LD(e))((i,o)=>{let r;this.subscribe(s=>r=s,s=>o(s),()=>i(r))})}}return t.create=n=>new t(n),t})();function LD(t){var n;return null!==(n=t??$a.Promise)&&void 0!==n?n:Promise}const G6=ty(t=>function(){t(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let ly,me=(()=>{class t extends Ft{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(e){const i=new ay(this,this);return i.operator=e,i}_throwIfClosed(){if(this.closed)throw new G6}next(e){Lp(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const i of this.currentObservers)i.next(e)}})}error(e){Lp(()=>{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(){Lp(()=>{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?OD:(this.currentObservers=null,r.push(e),new pt(()=>{this.currentObservers=null,Rp(r,e)}))}_checkFinalizedStatuses(e){const{hasError:i,thrownError:o,isStopped:r}=this;i?e.error(o):r&&e.complete()}asObservable(){const e=new Ft;return e.source=this,e}}return t.create=(n,e)=>new ay(n,e),t})();class ay extends me{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:OD}}class ki extends me{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 cy(){return ly}function $s(t){const n=ly;return ly=t,n}const q6=Symbol("NotFound");function dy(t){return t===q6||"\u0275NotFound"===t?.name}Error;const HD="https://angular.dev/best-practices/security#preventing-cross-site-scripting-xss";class X extends Error{code;constructor(n,e){super(co(n,e)),this.code=n}}function co(t,n){return`${function Y6(t){return`NG0${Math.abs(t)}`}(t)}${n?": "+n:""}`}const Fn=globalThis;function Tt(t){for(let n in t)if(t[n]===Tt)return n;throw Error("")}function X6(t,n){for(const e in n)n.hasOwnProperty(e)&&!t.hasOwnProperty(e)&&(t[e]=n[e])}function Ws(t){if("string"==typeof t)return t;if(Array.isArray(t))return`[${t.map(Ws).join(", ")}]`;if(null==t)return""+t;const n=t.overriddenName||t.name;if(n)return`${n}`;const e=t.toString();if(null==e)return""+e;const i=e.indexOf("\n");return i>=0?e.slice(0,i):e}function uy(t,n){return t?n?`${t} ${n}`:t:n||""}const Z6=Tt({__forward_ref__:Tt});function Nt(t){return t.__forward_ref__=Nt,t}function qe(t){return jp(t)?t():t}function jp(t){return"function"==typeof t&&t.hasOwnProperty(Z6)&&t.__forward_ref__===Nt}function te(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function Je(t){return{providers:t.providers||[],imports:t.imports||[]}}function Up(t){return function oj(t,n){return t.hasOwnProperty(n)&&t[n]||null}(t,$p)}function zp(t){return t&&t.hasOwnProperty(hy)?t[hy]:null}const $p=Tt({\u0275prov:Tt}),hy=Tt({\u0275inj:Tt});class Z{_desc;ngMetadataName="InjectionToken";\u0275prov;constructor(n,e){this._desc=n,this.\u0275prov=void 0,"number"==typeof e?this.__NG_ELEMENT_ID__=e:void 0!==e&&(this.\u0275prov=te({token:this,providedIn:e.providedIn||"root",factory:e.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}function py(t){return t&&!!t.\u0275providers}const jD=Tt({\u0275cmp:Tt}),dj=Tt({\u0275dir:Tt}),uj=Tt({\u0275pipe:Tt}),UD=Tt({\u0275mod:Tt}),Ya=Tt({\u0275fac:Tt}),Fu=Tt({__NG_ELEMENT_ID__:Tt}),zD=Tt({__NG_ENV_ID__:Tt});function Er(t){return Gp(t),t[UD]||null}function xt(t){return Gp(t),t[jD]||null}function Zi(t){return Gp(t),t[dj]||null}function tr(t){return Gp(t),t[uj]||null}function Gp(t,n){if(null==t)throw new X(-919,!1)}function je(t){return"string"==typeof t?t:null==t?"":String(t)}const gy=Tt({ngErrorCode:Tt}),$D=Tt({ngErrorMessage:Tt}),Nu=Tt({ngTokenPath:Tt});function _y(t,n){return WD("",-200,n)}function by(t,n){throw new X(-201,!1)}function WD(t,n,e){const i=new X(n,t);return i[gy]=n,i[$D]=t,e&&(i[Nu]=e),i}let vy;function GD(){return vy}function uo(t){const n=vy;return vy=t,n}function qD(t,n,e){const i=Up(t);return i&&"root"==i.providedIn?void 0===i.value?i.value=i.factory():i.value:8&e?null:void 0!==n?n:void by()}const Xa={};class _j{injector;constructor(n){this.injector=n}retrieve(n,e){const i=Lu(e)||0;try{return this.injector.get(n,8&i?null:Xa,i)}catch(o){if(dy(o))return o;throw o}}}function bj(t,n=0){const e=cy();if(void 0===e)throw new X(-203,!1);if(null===e)return qD(t,void 0,n);{const i=function vj(t){return{optional:!!(8&t),host:!!(1&t),self:!!(2&t),skipSelf:!!(4&t)}}(n),o=e.retrieve(t,i);if(dy(o)){if(i.optional)return null;throw o}return o}}function ce(t,n=0){return(GD()||bj)(qe(t),n)}function D(t,n){return ce(t,Lu(n))}function Lu(t){return typeof t>"u"||"number"==typeof t?t:0|(t.optional&&8)|(t.host&&1)|(t.self&&2)|(t.skipSelf&&4)}function Cy(t){const n=[];for(let e=0;eArray.isArray(e)?Bc(e,n):n(e))}function YD(t,n,e){n>=t.length?t.push(e):t.splice(n,0,e)}function qp(t,n){return n>=t.length-1?t.pop():t.splice(n,1)[0]}function Yp(t,n,e){let i=Vu(t,n);return i>=0?t[1|i]=e:(i=~i,function ZD(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 wy(t,n){const e=Vu(t,n);if(e>=0)return t[1|e]}function Vu(t,n){return function wj(t,n,e){let i=0,o=t.length>>e;for(;o!==i;){const r=i+(o-i>>1),s=t[r<n?o=r:i=r+1}return~(o<{e.push(s)};return Bc(n,s=>{const a=s;Zp(a,r,[],i)&&(o||=[],o.push(a))}),void 0!==o&&JD(o,r),e}function JD(t,n){for(let e=0;e{n(r,i)})}}function Zp(t,n,e,i){if(!(t=qe(t)))return!1;let o=null,r=zp(t);const s=!r&&xt(t);if(r||s){if(s&&!s.standalone)return!1;o=t}else{const l=t.ngModule;if(r=zp(l),!r)return!1;o=l}const a=i.has(o);if(s){if(a)return!1;if(i.add(o),s.dependencies){const l="function"==typeof s.dependencies?s.dependencies():s.dependencies;for(const c of l)Zp(c,n,e,i)}}else{if(!r)return!1;{if(null!=r.imports&&!a){let c;i.add(o),Bc(r.imports,f=>{Zp(f,n,e,i)&&(c||=[],c.push(f))}),void 0!==c&&JD(c,n)}if(!a){const c=Za(o)||(()=>new o);n({provide:o,useFactory:c,deps:Yt},o),n({provide:xy,useValue:o,multi:!0},o),n({provide:ss,useValue:()=>ce(o),multi:!0},o)}const l=r.providers;if(null!=l&&!a){const c=t;ky(l,f=>{n(f,c)})}}}return o!==t&&void 0!==t.providers}function ky(t,n){for(let e of t)py(e)&&(e=e.\u0275providers),Array.isArray(e)?ky(e,n):n(e)}const kj=Tt({provide:String,useValue:Tt});function Dy(t){return null!==t&&"object"==typeof t&&kj in t}function as(t){return"function"==typeof t}const My=new Z(""),Qp={},iM={};let Ty;function Jp(){return void 0===Ty&&(Ty=new Xp),Ty}class zn{}class Qa extends zn{parent;source;scopes;records=new Map;_ngOnDestroyHooks=new Set;_onDestroyHooks=[];get destroyed(){return this._destroyed}_destroyed=!1;injectorDefTypes;constructor(n,e,i,o){super(),this.parent=e,this.source=i,this.scopes=o,Py(n,s=>this.processProvider(s)),this.records.set(QD,Vc(void 0,this)),o.has("environment")&&this.records.set(zn,Vc(void 0,this));const r=this.records.get(My);null!=r&&"string"==typeof r.value&&this.scopes.add(r.value),this.injectorDefTypes=new Set(this.get(xy,Yt,{self:!0}))}retrieve(n,e){const i=Lu(e)||0;try{return this.get(n,Xa,i)}catch(o){if(dy(o))return o;throw o}}destroy(){ju(this),this._destroyed=!0;const n=Te(null);try{for(const i of this._ngOnDestroyHooks)i.ngOnDestroy();const e=this._onDestroyHooks;this._onDestroyHooks=[];for(const i of e)i()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),Te(n)}}onDestroy(n){return ju(this),this._onDestroyHooks.push(n),()=>this.removeOnDestroy(n)}runInContext(n){ju(this);const e=$s(this),i=uo(void 0);try{return n()}finally{$s(e),uo(i)}}get(n,e=Xa,i){if(ju(this),n.hasOwnProperty(zD))return n[zD](this);const o=Lu(i),s=$s(this),a=uo(void 0);try{if(!(4&o)){let c=this.records.get(n);if(void 0===c){const f=function Pj(t){return"function"==typeof t||"object"==typeof t&&"InjectionToken"===t.ngMetadataName}(n)&&Up(n);c=f&&this.injectableDefInScope(f)?Vc(Ey(n),Qp):null,this.records.set(n,c)}if(null!=c)return this.hydrate(n,c,o)}return(2&o?Jp():this.parent).get(n,e=8&o&&e===Xa?null:e)}catch(l){const c=function mj(t){return t[gy]}(l);throw-200===c||-201===c?new X(c,null):l}finally{uo(a),$s(s)}}resolveInjectorInitializers(){const n=Te(null),e=$s(this),i=uo(void 0);try{const r=this.get(ss,Yt,{self:!0});for(const s of r)s()}finally{$s(e),uo(i),Te(n)}}toString(){return"R3Injector[...]"}processProvider(n){let e=as(n=qe(n))?n:qe(n&&n.provide);const i=function Mj(t){return Dy(t)?Vc(void 0,t.useValue):Vc(oM(t),Qp)}(n);if(!as(n)&&!0===n.multi){let o=this.records.get(e);o||(o=Vc(void 0,Qp,!0),o.factory=()=>Cy(o.multi),this.records.set(e,o)),e=n,o.multi.push(n)}this.records.set(e,i)}hydrate(n,e,i){const o=Te(null);try{if(e.value===iM)throw _y();return e.value===Qp&&(e.value=iM,e.value=e.factory(void 0,i)),"object"==typeof e.value&&e.value&&function Ej(t){return null!==t&&"object"==typeof t&&"function"==typeof t.ngOnDestroy}(e.value)&&this._ngOnDestroyHooks.add(e.value),e.value}finally{Te(o)}}injectableDefInScope(n){if(!n.providedIn)return!1;const e=qe(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 Ey(t){const n=Up(t),e=null!==n?n.factory:Za(t);if(null!==e)return e;if(t instanceof Z)throw new X(-204,!1);if(t instanceof Function)return function Dj(t){if(t.length>0)throw new X(-204,!1);const e=function rj(t){return(t?.[$p]??null)||null}(t);return null!==e?()=>e.factory(t):()=>new t}(t);throw new X(-204,!1)}function oM(t,n,e){let i;if(as(t)){const o=qe(t);return Za(o)||Ey(o)}if(Dy(t))i=()=>qe(t.useValue);else if(function tM(t){return!(!t||!t.useFactory)}(t))i=()=>t.useFactory(...Cy(t.deps||[]));else if(function eM(t){return!(!t||!t.useExisting)}(t))i=(o,r)=>ce(qe(t.useExisting),void 0!==r&&8&r?8:void 0);else{const o=qe(t&&(t.useClass||t.provide));if(!function Tj(t){return!!t.deps}(t))return Za(o)||Ey(o);i=()=>new o(...Cy(t.deps))}return i}function ju(t){if(t.destroyed)throw new X(-205,!1)}function Vc(t,n,e=!1){return{factory:t,value:n,multi:e?[]:void 0}}function Py(t,n){for(const e of t)Array.isArray(e)?Py(e,n):e&&py(e)?Py(e.\u0275providers,n):n(e)}function Qi(t,n){let e;t instanceof Qa?(ju(t),e=t):e=new _j(t);const o=$s(e),r=uo(void 0);try{return n()}finally{$s(o),uo(r)}}function Iy(){return void 0!==GD()||null!=cy()}function Dn(t){return Array.isArray(t)&&"object"==typeof t[1]}function Ji(t){return Array.isArray(t)&&!0===t[1]}function sM(t){return!!(4&t.flags)}function Ir(t){return t.componentOffset>-1}function $c(t){return!(1&~t.flags)}function ir(t){return!!t.template}function Ks(t){return!!(512&t[2])}function us(t){return!(256&~t[2])}function gi(t){for(;Array.isArray(t);)t=t[0];return t}function Wc(t,n){return gi(n[t])}function Zn(t,n){return gi(n[t.index])}function Gc(t,n){return t.data[n]}function il(t,n){return t[n]}function eo(t,n){const e=n[t];return Dn(e)?e:e[0]}function Fy(t){return!(128&~t[2])}function Li(t,n){return null==n?null:t[n]}function hM(t){t[17]=0}function fM(t){1024&t[2]||(t[2]|=1024,Fy(t)&&qc(t))}function im(t){return!!(9216&t[2]||t[24]?.dirty)}function Ny(t){t[10].changeDetectionScheduler?.notify(8),64&t[2]&&(t[2]|=1024),im(t)&&qc(t)}function qc(t){t[10].changeDetectionScheduler?.notify(0);let n=hs(t);for(;null!==n&&!(8192&n[2])&&(n[2]|=8192,Fy(n));)n=hs(n)}function om(t,n){if(us(t))throw new X(911,!1);null===t[21]&&(t[21]=[]),t[21].push(n)}function hs(t){const n=t[3];return Ji(n)?n[3]:n}function mM(t){return t[7]??=[]}function gM(t){return t.cleanup??=[]}const Be={lFrame:IM(null),bindingsEnabled:!0,skipHydrationRootTNode:null};let Vy=!1;function _M(){Be.lFrame.elementDepthCount--}function Hy(){return Be.bindingsEnabled}function bM(){return null!==Be.skipHydrationRootTNode}function vM(t){return Be.skipHydrationRootTNode===t}function yM(){Be.skipHydrationRootTNode=null}function ne(){return Be.lFrame.lView}function ze(){return Be.lFrame.tView}function j(t){return Be.lFrame.contextLView=t,t[8]}function U(t){return Be.lFrame.contextLView=null,t}function Ve(){let t=CM();for(;null!==t&&64===t.type;)t=t.parent;return t}function CM(){return Be.lFrame.currentTNode}function fs(t,n){const e=Be.lFrame;e.currentTNode=t,e.isParent=n}function wM(){return Be.lFrame.isParent}function xM(){Be.lFrame.isParent=!1}function DM(){return Vy}function rm(t){const n=Vy;return Vy=t,n}function Bi(){const t=Be.lFrame;let n=t.bindingRootIndex;return-1===n&&(n=t.bindingRootIndex=t.tView.bindingStartIndex),n}function ps(){return Be.lFrame.bindingIndex}function ho(){return Be.lFrame.bindingIndex++}function ms(t){const n=Be.lFrame,e=n.bindingIndex;return n.bindingIndex=n.bindingIndex+t,e}function zj(t,n){const e=Be.lFrame;e.bindingIndex=e.bindingRootIndex=t,jy(n)}function jy(t){Be.lFrame.currentDirectiveIndex=t}function zy(){return Be.lFrame.currentQueryIndex}function sm(t){Be.lFrame.currentQueryIndex=t}function Wj(t){const n=t[1];return 2===n.type?n.declTNode:1===n.type?t[5]:null}function EM(t,n,e){if(4&e){let o=n,r=t;for(;!(o=o.parent,null!==o||1&e||(o=Wj(r),null===o||(r=r[14],10&o.type))););if(null===o)return!1;n=o,t=r}const i=Be.lFrame=PM();return i.currentTNode=n,i.lView=t,!0}function $y(t){const n=PM(),e=t[1];Be.lFrame=n,n.currentTNode=e.firstChild,n.lView=t,n.tView=e,n.contextLView=t,n.bindingIndex=e.bindingStartIndex,n.inI18n=!1}function PM(){const t=Be.lFrame,n=null===t?null:t.child;return null===n?IM(t):n}function IM(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 OM(){const t=Be.lFrame;return Be.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}const AM=OM;function Wy(){const t=OM();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 Di(){return Be.lFrame.selectedIndex}function ol(t){Be.lFrame.selectedIndex=t}function or(){const t=Be.lFrame;return Gc(t.tView,t.selectedIndex)}function rl(){Be.lFrame.currentNamespace="svg"}function Gy(){!function Kj(){Be.lFrame.currentNamespace=null}()}let RM=!0;function am(){return RM}function $u(t){RM=t}function FM(t,n=null,e=null,i){const o=NM(t,n,e);return o.resolveInjectorInitializers(),o}function NM(t,n=null,e=null,i,o=new Set){const r=[e||Yt,Sj(t)];return new Qa(r,n||Jp(),null,o)}class He{static THROW_IF_NOT_FOUND=Xa;static NULL=new Xp;static create(n,e){if(Array.isArray(n))return FM({name:""},e,n);{const i=n.name??"";return FM({name:i},n.parent,n.providers)}}static \u0275prov=te({token:He,providedIn:"any",factory:()=>ce(QD)});static __NG_ELEMENT_ID__=-1}const et=new Z("");let rr=(()=>class t{static __NG_ELEMENT_ID__=Xj;static __NG_ENV_ID__=e=>e})();class LM extends rr{_lView;constructor(n){super(),this._lView=n}get destroyed(){return us(this._lView)}onDestroy(n){const e=this._lView;return om(e,n),()=>function Ly(t,n){if(null===t[21])return;const e=t[21].indexOf(n);-1!==e&&t[21].splice(e,1)}(e,n)}}function Xj(){return new LM(ne())}const BM=!1,Zj=new Z("");let Ys=(()=>{class t{taskId=0;pendingTasks=new Set;destroyed=!1;pendingTask=new ki(!1);debugTaskTracker=D(Zj,{optional:!0});get hasPendingTasks(){return!this.destroyed&&this.pendingTask.value}get hasPendingTasksObservable(){return this.destroyed?new Ft(e=>{e.next(!1),e.complete()}):this.pendingTask}add(){!this.hasPendingTasks&&!this.destroyed&&this.pendingTask.next(!0);const e=this.taskId++;return this.pendingTasks.add(e),this.debugTaskTracker?.add(e),e}has(e){return this.pendingTasks.has(e)}remove(e){this.pendingTasks.delete(e),this.debugTaskTracker?.remove(e),0===this.pendingTasks.size&&this.hasPendingTasks&&this.pendingTask.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this.hasPendingTasks&&this.pendingTask.next(!1),this.destroyed=!0,this.pendingTask.unsubscribe()}static \u0275prov=te({token:t,providedIn:"root",factory:()=>new t})}return t})();const we=class Qj extends me{__isAsync;destroyRef=void 0;pendingTasks=void 0;constructor(n=!1){super(),this.__isAsync=n,Iy()&&(this.destroyRef=D(rr,{optional:!0})??void 0,this.pendingTasks=D(Ys,{optional:!0})??void 0)}emit(n){const e=Te(null);try{super.next(n)}finally{Te(e)}}subscribe(n,e,i){let o=n,r=e||(()=>null),s=i;if(n&&"object"==typeof n){const l=n;o=l.next?.bind(l),r=l.error?.bind(l),s=l.complete?.bind(l)}this.__isAsync&&(r=this.wrapInTimeout(r),o&&(o=this.wrapInTimeout(o)),s&&(s=this.wrapInTimeout(s)));const a=super.subscribe({next:o,error:r,complete:s});return n instanceof pt&&n.add(a),a}wrapInTimeout(n){return e=>{const i=this.pendingTasks?.add();setTimeout(()=>{try{n(e)}finally{void 0!==i&&this.pendingTasks?.remove(i)}})}}};function lm(...t){}function VM(t){let n,e;function i(){t=lm;try{void 0!==e&&"function"==typeof cancelAnimationFrame&&cancelAnimationFrame(e),void 0!==n&&clearTimeout(n)}catch{}}return n=setTimeout(()=>{t(),i()}),"function"==typeof requestAnimationFrame&&(e=requestAnimationFrame(()=>{t(),i()})),()=>i()}function Jj(t){return queueMicrotask(()=>t()),()=>{t=lm}}const qy="isAngularZone",cm=qy+"_ID";let eU=0;class _e{hasPendingMacrotasks=!1;hasPendingMicrotasks=!1;isStable=!0;onUnstable=new we(!1);onMicrotaskEmpty=new we(!1);onStable=new we(!1);onError=new we(!1);constructor(n){const{enableLongStackTrace:e=!1,shouldCoalesceEventChangeDetection:i=!1,shouldCoalesceRunChangeDetection:o=!1,scheduleInRootZone:r=BM}=n;if(typeof Zone>"u")throw new X(908,!1);Zone.assertZonePatched();const s=this;s._nesting=0,s._outer=s._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(s._inner=s._inner.fork(new Zone.TaskTrackingZoneSpec)),e&&Zone.longStackTraceZoneSpec&&(s._inner=s._inner.fork(Zone.longStackTraceZoneSpec)),s.shouldCoalesceEventChangeDetection=!o&&i,s.shouldCoalesceRunChangeDetection=o,s.callbackScheduled=!1,s.scheduleInRootZone=r,function iU(t){const n=()=>{!function nU(t){function n(){VM(()=>{t.callbackScheduled=!1,Yy(t),t.isCheckStableRunning=!0,Ky(t),t.isCheckStableRunning=!1})}t.isCheckStableRunning||t.callbackScheduled||(t.callbackScheduled=!0,t.scheduleInRootZone?Zone.root.run(()=>{n()}):t._outer.run(()=>{n()}),Yy(t))}(t)},e=eU++;t._inner=t._inner.fork({name:"angular",properties:{[qy]:!0,[cm]:e,[cm+e]:!0},onInvokeTask:(i,o,r,s,a,l)=>{if(function rU(t){return UM(t,"__ignore_ng_zone__")}(l))return i.invokeTask(r,s,a,l);try{return HM(t),i.invokeTask(r,s,a,l)}finally{(t.shouldCoalesceEventChangeDetection&&"eventTask"===s.type||t.shouldCoalesceRunChangeDetection)&&n(),jM(t)}},onInvoke:(i,o,r,s,a,l,c)=>{try{return HM(t),i.invoke(r,s,a,l,c)}finally{t.shouldCoalesceRunChangeDetection&&!t.callbackScheduled&&!function sU(t){return UM(t,"__scheduler_tick__")}(l)&&n(),jM(t)}},onHasTask:(i,o,r,s)=>{i.hasTask(r,s),o===r&&("microTask"==s.change?(t._hasPendingMicrotasks=s.microTask,Yy(t),Ky(t)):"macroTask"==s.change&&(t.hasPendingMacrotasks=s.macroTask))},onHandleError:(i,o,r,s)=>(i.handleError(r,s),t.runOutsideAngular(()=>t.onError.emit(s)),!1)})}(s)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get(qy)}static assertInAngularZone(){if(!_e.isInAngularZone())throw new X(909,!1)}static assertNotInAngularZone(){if(_e.isInAngularZone())throw new X(909,!1)}run(n,e,i){return this._inner.run(n,e,i)}runTask(n,e,i,o){const r=this._inner,s=r.scheduleEventTask("NgZoneEvent: "+o,n,tU,lm,lm);try{return r.runTask(s,e,i)}finally{r.cancelTask(s)}}runGuarded(n,e,i){return this._inner.runGuarded(n,e,i)}runOutsideAngular(n){return this._outer.run(n)}}const tU={};function Ky(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 Yy(t){t.hasPendingMicrotasks=!!(t._hasPendingMicrotasks||(t.shouldCoalesceEventChangeDetection||t.shouldCoalesceRunChangeDetection)&&!0===t.callbackScheduled)}function HM(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function jM(t){t._nesting--,Ky(t)}class oU{hasPendingMicrotasks=!1;hasPendingMacrotasks=!1;isStable=!0;onUnstable=new we;onMicrotaskEmpty=new we;onStable=new we;onError=new we;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)}}function UM(t,n){return!(!Array.isArray(t)||1!==t.length)&&!0===t[0]?.data?.[n]}class sl{_console=console;handleError(n){this._console.error("ERROR",n)}}const Or=new Z("",{factory:()=>{const t=D(_e),n=D(zn);let e;return i=>{t.runOutsideAngular(()=>{n.destroyed&&!e?setTimeout(()=>{throw i}):(e??=n.get(sl),e.handleError(i))})}}}),aU={provide:ss,useValue:()=>{D(sl,{optional:!0})},multi:!0};function yt(t,n){const[e,i,o]=function P6(t,n){const e=Object.create(ey);e.value=t,void 0!==n&&(e.equal=n);const i=()=>function I6(t){return Pu(t),t.value}(e);return i[Rn]=e,[i,s=>Ap(e,s),s=>ID(e,s)]}(t,n?.equal),r=e;return r.set=i,r.update=o,r.asReadonly=Xy.bind(r),r}function Xy(){const t=this[Rn];if(void 0===t.readonlyFn){const n=()=>this();n[Rn]=t,t.readonlyFn=n}return t.readonlyFn}let dm=(()=>class t{view;node;constructor(e,i){this.view=e,this.node=i}static __NG_ELEMENT_ID__=cU})();function cU(){return new dm(ne(),Ve())}class al{}const um=new Z("",{factory:()=>!0}),zM=new Z("");let hm=(()=>{class t{internalPendingTasks=D(Ys);scheduler=D(al);errorHandler=D(Or);add(){const e=this.internalPendingTasks.add();return()=>{this.internalPendingTasks.has(e)&&(this.scheduler.notify(11),this.internalPendingTasks.remove(e))}}run(e){const i=this.add();e().catch(this.errorHandler).finally(i)}static \u0275prov=te({token:t,providedIn:"root",factory:()=>new t})}return t})(),$M=(()=>{class t{static \u0275prov=te({token:t,providedIn:"root",factory:()=>new dU})}return t})();class dU{dirtyEffectCount=0;queues=new Map;add(n){this.enqueue(n),this.schedule(n)}schedule(n){n.dirty&&this.dirtyEffectCount++}remove(n){const i=this.queues.get(n.zone);i.has(n)&&(i.delete(n),n.dirty&&this.dirtyEffectCount--)}enqueue(n){const e=n.zone;this.queues.has(e)||this.queues.set(e,new Set);const i=this.queues.get(e);i.has(n)||i.add(n)}flush(){for(;this.dirtyEffectCount>0;){let n=!1;for(const[e,i]of this.queues)n||=null===e?this.flushQueue(i):e.run(()=>this.flushQueue(i));n||(this.dirtyEffectCount=0)}}flushQueue(n){let e=!1;for(const i of n)i.dirty&&(this.dirtyEffectCount--,e=!0,i.run());return e}}class Zy{[Rn];constructor(n){this[Rn]=n}destroy(){this[Rn].destroy()}}function fm(t,n){const e=n?.injector??D(He);let o,i=!0!==n?.manualCleanup?e.get(rr):null;const r=e.get(dm,null,{optional:!0}),s=e.get(al);return null!==r?(o=function fU(t,n,e){const i=Object.create(hU);return i.view=t,i.zone=typeof Zone<"u"?Zone.current:null,i.notifier=n,i.fn=GM(i,e),t[23]??=new Set,t[23].add(i),i.consumerMarkedDirty(i),i}(r.view,s,t),i instanceof LM&&i._lView===r.view&&(i=null)):o=function pU(t,n,e){const i=Object.create(uU);return i.fn=GM(i,t),i.scheduler=n,i.notifier=e,i.zone=typeof Zone<"u"?Zone.current:null,i.scheduler.add(i),i.notifier.notify(12),i}(t,e.get($M),s),o.injector=e,null!==i&&(o.onDestroyFns=[i.onDestroy(()=>o.destroy())]),new Zy(o)}const WM={...A6,cleanupFns:void 0,zone:null,onDestroyFns:null,run(){const t=rm(!1);try{!function R6(t){if(t.dirty=!1,t.version>0&&!Ip(t))return;t.version++;const n=Oc(t);try{t.cleanup(),t.fn()}finally{Ou(t,n)}}(this)}finally{rm(t)}},cleanup(){if(!this.cleanupFns?.length)return;const t=Te(null);try{for(;this.cleanupFns.length;)this.cleanupFns.pop()()}finally{this.cleanupFns=[],Te(t)}}},uU={...WM,consumerMarkedDirty(){this.scheduler.schedule(this),this.notifier.notify(12)},destroy(){if(Au(this),null!==this.onDestroyFns)for(const t of this.onDestroyFns)t();this.cleanup(),this.scheduler.remove(this)}},hU={...WM,consumerMarkedDirty(){this.view[2]|=8192,qc(this.view),this.notifier.notify(13)},destroy(){if(Au(this),null!==this.onDestroyFns)for(const t of this.onDestroyFns)t();this.cleanup(),this.view[23]?.delete(this)}};function GM(t,n){return()=>{n(e=>(t.cleanupFns??=[]).push(e))}}let qM=null;function Xs(){return qM}class gU{}let pm=(()=>{class t{historyGo(e){throw new Error("")}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:()=>D(bU),providedIn:"platform"})}return t})();const _U=new Z("");let bU=(()=>{class t extends pm{_location;_history;_doc=D(et);constructor(){super(),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return Xs().getBaseHref(this._doc)}onPopState(e){const i=Xs().getGlobalEventTarget(this._doc,"window");return i.addEventListener("popstate",e,!1),()=>i.removeEventListener("popstate",e)}onHashChange(e){const i=Xs().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 \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:()=>new t,providedIn:"platform"})}return t})();function KM(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}class YM{}const XM="browser";let ZM=(()=>{class t{static \u0275prov=te({token:t,providedIn:"root",factory:()=>new DU(D(et),window)})}return t})();class DU{document;window;offset=()=>[0,0];constructor(n,e){this.document=n,this.window=e}setOffset(n){this.offset=Array.isArray(n)?()=>n:n}getScrollPosition(){return[this.window.scrollX,this.window.scrollY]}scrollToPosition(n,e){this.window.scrollTo({...e,left:n[0],top:n[1]})}scrollToAnchor(n,e){const i=function MU(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 s=r.getElementById(n)||r.querySelector(`[name="${n}"]`);if(s)return s}o=i.nextNode()}}return null}(this.document,n);i&&(this.scrollToElement(i,e),i.focus())}setHistoryScrollRestoration(n){try{this.window.history.scrollRestoration=n}catch{console.warn(co(2400,!1))}}scrollToElement(n,e){const i=n.getBoundingClientRect(),o=i.left+this.window.pageXOffset,r=i.top+this.window.pageYOffset,s=this.offset();this.window.scrollTo({...e,left:o-s[0],top:r-s[1]})}}function lT(t,n,e,i,o,r,s){try{var a=t[r](s),l=a.value}catch(c){return void e(c)}a.done?n(l):Promise.resolve(l).then(i,o)}function Et(t){return function(){var n=this,e=arguments;return new Promise(function(i,o){var r=t.apply(n,e);function s(l){lT(r,i,o,s,a,"next",l)}function a(l){lT(r,i,o,s,a,"throw",l)}s(void 0)})}}function Mn(t){return n=>{if(function tz(t){return cn(t?.lift)}(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 dn(t,n,e,i,o){return new nz(t,n,e,i,o)}class nz extends Bp{constructor(n,e,i,o,r,s){super(n),this.onFinalize=r,this.shouldUnsubscribe=s,this._next=e?function(a){try{e(a)}catch(l){n.error(l)}}:super._next,this._error=o?function(a){try{o(a)}catch(l){n.error(l)}finally{this.unsubscribe()}}:super._error,this._complete=i?function(){try{i()}catch(a){n.error(a)}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 Se(t,n){return Mn((e,i)=>{let o=0;e.subscribe(dn(i,r=>{i.next(t.call(n,r,o++))}))})}function gs(t){return{toString:t}.toString()}function CT(t,n,e,i){null!==n?n.applyValueToInputSignal(n,i):t[e]=i}class Rz{previousValue;currentValue;firstChange;constructor(n,e,i){this.previousValue=n,this.currentValue=e,this.firstChange=i}isFirstChange(){return this.firstChange}}const _i=(()=>{const t=()=>wT;return t.ngInherit=!0,t})();function wT(t){return t.type.prototype.ngOnChanges&&(t.setInput=Nz),Fz}function Fz(){const t=ST(this),n=t?.current;if(n){const e=t.previous;if(e===Pr)t.previous=n;else for(let i in n)e[i]=n[i];t.current=null,this.ngOnChanges(n)}}function Nz(t,n,e,i,o){const r=this.declaredInputs[i],s=ST(t)||function Lz(t,n){return t[xT]=n}(t,{previous:Pr,current:null}),a=s.current||(s.current={}),l=s.previous,c=l[r];a[r]=new Rz(c&&c.currentValue,e,l===Pr),CT(t,n,o,e)}const xT="__ngSimpleChanges__";function ST(t){return t[xT]||null}const dl=[],Lt=function(t,n=null,e){for(let i=0;i=i)break}else n[l]<0&&(t[17]+=65536),(a>14>16&&(3&t[2])===n&&(t[2]+=16384,MT(a,r)):MT(a,r)}class Qu{factory;name;injectImpl;resolving=!1;canSeeViewProviders;multi;componentProviders;index;providerFactory;constructor(n,e,i,o){this.factory=n,this.name=o,this.canSeeViewProviders=e,this.injectImpl=i}}function ET(t){return 3===t||4===t||6===t}function PT(t){return 64===t.charCodeAt(0)}function td(t,n){if(null!==n&&0!==n.length)if(null===t||0===t.length)t=n.slice();else{let e=-1;for(let i=0;in){s=r-1;break}}}for(;r>16}(t),i=n;for(;e>0;)i=i[14],e--;return i}let uC=!0;function Dm(t){const n=uC;return uC=t,n}let qz=0;const Rr={};function Mm(t,n){const e=RT(t,n);if(-1!==e)return e;const i=n[1];i.firstCreatePass&&(t.injectorIndex=n.length,hC(i.data,t),hC(n,null),hC(i.blueprint,null));const o=Tm(t,n),r=t.injectorIndex;if(dC(o)){const s=Ju(o),a=eh(o,n),l=a[1].data;for(let c=0;c<8;c++)n[r+c]=a[s+c]|l[s+c]}return n[r+8]=o,r}function hC(t,n){t.push(0,0,0,0,0,0,0,0,n)}function RT(t,n){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null===n[t.injectorIndex+8]?-1:t.injectorIndex}function Tm(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=jT(o),null===i)return-1;if(e++,o=o[14],-1!==i.injectorIndex)return i.injectorIndex|e<<16}return-1}function fC(t,n,e){!function Kz(t,n,e){let i;"string"==typeof e?i=e.charCodeAt(0)||0:e.hasOwnProperty(Fu)&&(i=e[Fu]),null==i&&(i=e[Fu]=qz++);const o=255&i;n.data[t+(o>>5)]|=1<=0?255&n:Qz:n}(e);if("function"==typeof r){if(!EM(n,t,i))return 1&i?FT(o,0,i):NT(n,e,i,o);try{let s;if(s=r(i),null!=s||8&i)return s;by()}finally{AM()}}else if("number"==typeof r){let s=null,a=RT(t,n),l=-1,c=1&i?n[15][5]:null;for((-1===a||4&i)&&(l=-1===a?Tm(t,n):n[a+8],-1!==l&&HT(i,!1)?(s=n[1],a=Ju(l),n=eh(l,n)):a=-1);-1!==a;){const f=n[1];if(VT(r,a,f.data)){const m=Xz(a,n,e,s,i,c);if(m!==Rr)return m}l=n[a+8],-1!==l&&HT(i,n[1].data[a+8]===c)&&VT(r,a,n)?(s=f,a=Ju(l),n=eh(l,n)):a=-1}}return o}function Xz(t,n,e,i,o,r){const s=n[1],a=s.data[t+8],f=Em(a,s,e,null==i?Ir(a)&&uC:i!=s&&!!(3&a.type),1&o&&r===a);return null!==f?th(n,s,f,a,o):Rr}function Em(t,n,e,i,o){const r=t.providerIndexes,s=n.data,a=1048575&r,l=t.directiveStart,f=r>>20,g=o?a+f:t.directiveEnd;for(let _=i?a:a+f;_=l&&w.type===e)return _}if(o){const _=s[l];if(_&&ir(_)&&_.type===e)return l}return null}function th(t,n,e,i,o){let r=t[e];const s=n.data;if(r instanceof Qu){const a=r;if(a.resolving)throw _y();const l=Dm(a.canSeeViewProviders);a.resolving=!0;const m=a.injectImpl?uo(a.injectImpl):null;EM(t,i,0);try{r=t[e]=a.factory(void 0,o,s,t,i),n.firstCreatePass&&e>=i.directiveStart&&function jz(t,n,e){const{ngOnChanges:i,ngOnInit:o,ngDoCheck:r}=n.type.prototype;if(i){const s=wT(n);(e.preOrderHooks??=[]).push(t,s),(e.preOrderCheckHooks??=[]).push(t,s)}o&&(e.preOrderHooks??=[]).push(0-t,o),r&&((e.preOrderHooks??=[]).push(t,r),(e.preOrderCheckHooks??=[]).push(t,r))}(e,s[e],n)}finally{null!==m&&uo(m),Dm(l),a.resolving=!1,AM()}}return r}function VT(t,n,e){return!!(e[n+(t>>5)]&1<{const n=t.prototype.constructor,e=n[Ya]||pC(n),i=Object.prototype;let o=Object.getPrototypeOf(t.prototype).constructor;for(;o&&o!==i;){const r=o[Ya]||pC(o);if(r&&r!==e)return r;o=Object.getPrototypeOf(o)}return r=>new r})}function pC(t){return jp(t)?()=>{const n=pC(qe(t));return n&&n()}:Za(t)}function jT(t){const n=t[1],e=n.type;return 2===e?n.declTNode:1===e?t[5]:null}function nh(t){return function Yz(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(;oclass t{nativeElement;constructor(e){this.nativeElement=e}static __NG_ELEMENT_ID__=a7})();function GT(t){return t instanceof Re?t.nativeElement:t}function l7(){return this._results[Symbol.iterator]()}class id{_emitDistinctChangesOnly;dirty=!0;_onDirty=void 0;_results=[];_changesDetected=!1;_changes=void 0;length=0;first=void 0;last=void 0;get changes(){return this._changes??=new me}constructor(n=!1){this._emitDistinctChangesOnly=n}get(n){return this._results[n]}map(n){return this._results.map(n)}filter(n){return this._results.filter(n)}find(n){return this._results.find(n)}reduce(n,e){return this._results.reduce(n,e)}forEach(n){this._results.forEach(n)}some(n){return this._results.some(n)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(n,e){this.dirty=!1;const i=function Ao(t){return t.flat(Number.POSITIVE_INFINITY)}(n);(this._changesDetected=!function Cj(t,n,e){if(t.length!==n.length)return!1;for(let i=0;iR7}),R7="ng",u2=new Z(""),wC=new Z("",{providedIn:"platform",factory:()=>"unknown"}),Rm=new Z(""),xC=new Z("",{factory:()=>D(et).body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null}),j7=new Z("",{factory:()=>!1}),W7=new Z("");function Vm(t){return!(32&~t.flags)}function V2(t,n){const e=t.contentQueries;if(null!==e){const i=Te(null);try{for(let o=0;ot,createScript:t=>t,createScriptURL:t=>t})}catch{}return Gm}()?.createHTML(t)||t}function G2(t){return function UC(){if(void 0===qm&&(qm=null,Fn.trustedTypes))try{qm=Fn.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return qm}()?.createScriptURL(t)||t}class hl{changingThisBreaksApplicationSecurity;constructor(n){this.changingThisBreaksApplicationSecurity=n}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${HD})`}}class C9 extends hl{getTypeName(){return"HTML"}}class w9 extends hl{getTypeName(){return"Style"}}class x9 extends hl{getTypeName(){return"Script"}}class S9 extends hl{getTypeName(){return"URL"}}class k9 extends hl{getTypeName(){return"ResourceURL"}}function Mo(t){return t instanceof hl?t.changingThisBreaksApplicationSecurity:t}function Fr(t,n){const e=function D9(t){return t instanceof hl&&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 ${HD})`)}return e===n}class O9{inertDocumentHelper;constructor(n){this.inertDocumentHelper=n}getInertBodyElement(n){n=""+n;try{const e=(new window.DOMParser).parseFromString(rd(n),"text/html").body;return null===e?this.inertDocumentHelper.getInertBodyElement(n):(e.firstChild?.remove(),e)}catch{return null}}}class A9{defaultDoc;inertDocument;constructor(n){this.defaultDoc=n,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(n){const e=this.inertDocument.createElement("template");return e.innerHTML=rd(n),e}}const F9=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function ch(t){return(t=String(t)).match(F9)?t:"unsafe:"+t}function Nr(t){const n={};for(const e of t.split(","))n[e]=!0;return n}function sd(...t){const n={};for(const e of t)for(const i in e)e.hasOwnProperty(i)&&(n[i]=!0);return n}const K2=Nr("area,br,col,hr,img,wbr"),Y2=Nr("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),X2=Nr("rp,rt"),zC=sd(K2,sd(Y2,Nr("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")),sd(X2,Nr("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")),sd(X2,Y2)),$C=Nr("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),WC=sd($C,Nr("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"),Nr("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")),N9=Nr("script,style,template");class L9{sanitizedSomething=!1;buf=[];sanitizeChildren(n){let e=n.firstChild,i=!0,o=[];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)o.push(e),e=H9(e);else for(;e;){e.nodeType===Node.ELEMENT_NODE&&this.endElement(e);let r=V9(e);if(r){e=r;break}e=o.pop()}return this.buf.join("")}startElement(n){const e=Z2(n).toLowerCase();if(!zC.hasOwnProperty(e))return this.sanitizedSomething=!0,!N9.hasOwnProperty(e);this.buf.push("<"),this.buf.push(e);const i=n.attributes;for(let o=0;o"),!0}endElement(n){const e=Z2(n).toLowerCase();zC.hasOwnProperty(e)&&!K2.hasOwnProperty(e)&&(this.buf.push(""))}chars(n){this.buf.push(J2(n))}}function V9(t){const n=t.nextSibling;if(n&&t!==n.previousSibling)throw Q2(n);return n}function H9(t){const n=t.firstChild;if(n&&function B9(t,n){return(t.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_CONTAINED_BY)!==Node.DOCUMENT_POSITION_CONTAINED_BY}(t,n))throw Q2(n);return n}function Z2(t){const n=t.nodeName;return"string"==typeof n?n:"FORM"}function Q2(t){return new Error(`Failed to sanitize html because the element is clobbered: ${t.outerHTML}`)}const j9=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,U9=/([^\#-~ |!])/g;function J2(t){return t.replace(/&/g,"&").replace(j9,function(n){return"&#"+(1024*(n.charCodeAt(0)-55296)+(n.charCodeAt(1)-56320)+65536)+";"}).replace(U9,function(n){return"&#"+n.charCodeAt(0)+";"}).replace(//g,">")}let Km;function eE(t,n){let e=null;try{Km=Km||function q2(t){const n=new A9(t);return function R9(){try{return!!(new window.DOMParser).parseFromString(rd(""),"text/html")}catch{return!1}}()?new O9(n):n}(t);let i=n?String(n):"";e=Km.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=Km.getInertBodyElement(i)}while(i!==r);return rd((new L9).sanitizeChildren(qC(e)||e))}finally{if(e){const i=qC(e)||e;for(;i.firstChild;)i.firstChild.remove()}}}function qC(t){return"content"in t&&function z9(t){return t.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===t.nodeName}(t)?t.content:null}const $9=/^>|^->||--!>|)/g;function YC(t,n){return t.createComment(function tE(t){return t.replace($9,n=>n.replace(W9,"\u200b$1\u200b"))}(n))}function Ym(t,n,e){return t.createElement(n,e)}function fl(t,n,e,i,o){t.insertBefore(n,e,i,o)}function iE(t,n,e){t.appendChild(n,e)}function oE(t,n,e,i,o){null!==i?fl(t,n,e,i,o):iE(t,n,e)}function dh(t,n,e,i){t.removeChild(null,n,e,i)}function sE(t,n,e){const{mergedAttrs:i,classes:o,styles:r}=e;null!==i&&function Wz(t,n,e){let i=0;for(;i-1){let r;for(;++or?"":o[f+1].toLowerCase(),2&i&&c!==m){if(sr(i))return!1;s=!0}}}}else{if(!s&&!sr(i)&&!sr(l))return!1;if(s&&sr(l))continue;s=!1,i=l|1&i}}return sr(i)||s}function sr(t){return!(1&t)}function _$(t,n,e,i){if(null===n)return-1;let o=0;if(i||!e){let r=!1;for(;o-1)for(e++;e0?'="'+a+'"':"")+"]"}else 8&i?o+="."+s:4&i&&(o+=" "+s);else""!==o&&!sr(s)&&(n+=mE(r,o),o=""),i=s,r=r||!sr(i);e++}return""!==o&&(n+=mE(r,o)),n}const At={};function QC(t,n,e,i,o,r,s,a,l,c,f){const m=27+i,g=m+o,_=function k$(t,n){const e=[];for(let i=0;i{class t{impl=null;execute(){this.impl?.execute()}static \u0275prov=te({token:t,providedIn:"root",factory:()=>new t})}return t})();const xE=[0,1,2,3];let SE=(()=>{class t{ngZone=D(_e);scheduler=D(al);errorHandler=D(sl,{optional:!0});sequences=new Set;deferredRegistrations=new Set;executing=!1;constructor(){D(oa,{optional:!0})}execute(){const e=this.sequences.size>0;e&&Lt(ge.AfterRenderHooksStart),this.executing=!0;for(const i of xE)for(const o of this.sequences)if(!o.erroredOrDestroyed&&o.hooks[i])try{o.pipelinedValue=this.ngZone.runOutsideAngular(()=>this.maybeTrace(()=>(0,o.hooks[i])(o.pipelinedValue),o.snapshot))}catch(r){o.erroredOrDestroyed=!0,this.errorHandler?.handleError(r)}this.executing=!1;for(const i of this.sequences)i.afterRun(),i.once&&(this.sequences.delete(i),i.destroy());for(const i of this.deferredRegistrations)this.sequences.add(i);this.deferredRegistrations.size>0&&this.scheduler.notify(7),this.deferredRegistrations.clear(),e&&Lt(ge.AfterRenderHooksEnd)}register(e){const{view:i}=e;void 0!==i?((i[25]??=[]).push(e),qc(i),i[2]|=8192):this.executing?this.deferredRegistrations.add(e):this.addSequence(e)}addSequence(e){this.sequences.add(e),this.scheduler.notify(7)}unregister(e){this.executing&&this.sequences.has(e)?(e.erroredOrDestroyed=!0,e.pipelinedValue=void 0,e.once=!0):(this.sequences.delete(e),this.deferredRegistrations.delete(e))}maybeTrace(e,i){return i?i.run(d1.AFTER_NEXT_RENDER,e):e()}static \u0275prov=te({token:t,providedIn:"root",factory:()=>new t})}return t})();class kE{impl;hooks;view;once;snapshot;erroredOrDestroyed=!1;pipelinedValue=void 0;unregisterOnDestroy;constructor(n,e,i,o,r,s=null){this.impl=n,this.hooks=e,this.view=i,this.once=o,this.snapshot=s,this.unregisterOnDestroy=r?.onDestroy(()=>this.destroy())}afterRun(){this.erroredOrDestroyed=!1,this.pipelinedValue=void 0,this.snapshot?.dispose(),this.snapshot=null}destroy(){this.impl.unregister(this),this.unregisterOnDestroy?.();const n=this.view?.[25];n&&(this.view[25]=n.filter(e=>e!==this))}}function Vi(t,n){const e=n?.injector??D(He);return vi("NgAfterNextRender"),function DE(t,n,e,i){const o=n.get(u1);o.impl??=n.get(SE);const r=n.get(oa,null,{optional:!0}),s=!0!==e?.manualCleanup?n.get(rr):null,a=n.get(dm,null,{optional:!0}),l=new kE(o.impl,function U$(t){return t instanceof Function?[void 0,void 0,t,void 0]:[t.earlyRead,t.write,t.mixedReadWrite,t.read]}(t),a?.view,i,s,r?.snapshot(null));return o.impl.register(l),l}(t,e,n,!0)}const og=new Z("",{factory:()=>({queue:new Set,isScheduled:!1,scheduler:null,injector:D(zn)})});function ME(t,n,e){const i=t.get(og);if(Array.isArray(n))for(const o of n)i.queue.add(o),e?.detachedLeaveAnimationFns?.push(o);else i.queue.add(n),e?.detachedLeaveAnimationFns?.push(n);i.scheduler&&i.scheduler(t)}function TE(t,n,e,i){const o=t?.[26]?.enter;null!==n&&o&&o.has(e.index)&&function h1(t,n){for(const[e,i]of n)ME(t,i.animateFns)}(i,o)}function cd(t,n,e,i,o,r,s,a){if(null!=o){let l,c=!1;Ji(o)?l=o:Dn(o)&&(c=!0,o=o[0]);const f=gi(o);0===t&&null!==i?(TE(a,i,r,e),null==s?iE(n,i,f):fl(n,i,f,s||null,!0)):1===t&&null!==i?(TE(a,i,r,e),fl(n,i,f,s||null,!0),function R$(t,n){const e=fh.get(t);if(!e||0===e.length)return;const i=n.parentNode,o=n.previousSibling;for(let r=e.length-1;r>=0;r--){const s=e[r],a=s.parentNode;s===n?(e.splice(r,1),o1.add(s),s.dispatchEvent(new CustomEvent("animationend",{detail:{cancel:!0}}))):(o&&s===o||a&&i&&a!==i)&&(e.splice(r,1),s.dispatchEvent(new CustomEvent("animationend",{detail:{cancel:!0}})),s.parentNode?.removeChild(s))}}(r,f)):2===t?(a?.[26]?.leave?.has(r.index)&&function s1(t,n){const e=fh.get(t);e?e.includes(n)||e.push(n):fh.set(t,[n])}(r,f),IE(a,r,e,m=>{o1.has(f)?o1.delete(f):dh(n,f,c,m)})):3===t&&IE(a,r,e,()=>{n.destroyNode(f)}),null!=l&&function Z$(t,n,e,i,o,r,s){const a=i[7];a!==gi(i)&&cd(n,t,e,r,a,o,s);for(let c=10;c=0?i[a]():i[-a].unsubscribe(),s+=2}else e[s].call(i[e[s+1]]);null!==i&&(n[7]=null);const o=n[21];if(null!==o){n[21]=null;for(let s=0;s{if(o.leave&&o.leave.has(n.index)){const s=o.leave.get(n.index),a=[];if(s){for(let l=0;l{t[26].running=void 0,bl.delete(t[19]),n(!0)}):n(!1)}(t,i)}else t&&bl.delete(t[19]),i(!1)},o)}function m1(t,n,e){return function OE(t,n,e){let i=n;for(;null!==i&&168&i.type;)i=(n=i).parent;if(null===i)return e[0];if(Ir(i)){const{encapsulation:o}=t.data[i.directiveStart+i.componentOffset];if(o===No.None||o===No.Emulated)return null}return Zn(i,e)}(t,n.parent,e)}function AE(t,n,e){return FE(t,n,e)}let FE=function RE(t,n,e){return 40&t.type?Zn(t,e):null};function _1(t,n,e,i){const o=m1(t,i,n),r=n[11],a=AE(i.parent||n[5],i,n);if(null!=o)if(Array.isArray(e))for(let l=0;l27&&_E(t,n,27,!1),Lt(s?ge.TemplateUpdateStart:ge.TemplateCreateStart,o,e),e(i,o)}finally{ol(r),Lt(s?ge.TemplateUpdateEnd:ge.TemplateCreateEnd,o,e)}}function ag(t,n,e){(function iW(t,n,e){const i=e.directiveStart,o=e.directiveEnd;Ir(e)&&function D$(t,n,e){const i=Zn(n,t),o=function gE(t){const n=t.tView;return null===n||n.incompleteFirstPass?t.tView=QC(1,null,t.template,t.decls,t.vars,t.directiveDefs,t.pipeDefs,t.viewQuery,t.schemas,t.consts,t.id):n}(e),r=t[10].rendererFactory,s=e1(t,Zm(t,o,null,JC(e),i,n,null,r.createRenderer(i,e),null,null,null));t[n.index]=s}(n,e,t.data[i+e.componentOffset]),t.firstCreatePass||Mm(e,n);const r=e.initialInputs;for(let s=i;snull;function y1(t,n,e,i,o,r){ug(t,n[1],n,e,i)?Ir(t)&&jE(n,t.index):(3&t.type&&(e=function nW(t){return"class"===t?"className":"for"===t?"htmlFor":"formaction"===t?"formAction":"innerHtml"===t?"innerHTML":"readonly"===t?"readOnly":"tabindex"===t?"tabIndex":t}(e)),C1(t,n,e,i,o,r))}function C1(t,n,e,i,o,r){if(3&t.type){const s=Zn(t,n);i=null!=r?r(i,t.value||"",e):i,o.setProperty(s,e,i)}}function jE(t,n){const e=eo(n,t);16&e[2]||(e[2]|=64)}function rW(t,n){null!==t.hostBindings&&t.hostBindings(1,n)}function w1(t,n){const e=t.directiveRegistry;let i=null;if(e)for(let o=0;o{qc(t.lView)},consumerOnSignalRead(){this.lView[24]=this}},bW={...Ic,consumerIsAlwaysLive:!0,kind:"template",consumerMarkedDirty:t=>{let n=hs(t.lView);for(;n&&!GE(n[1]);)n=hs(n);n&&fM(n)},consumerOnSignalRead(){this.lView[24]=this}};function GE(t){return 2!==t.type}function qE(t){if(null===t[23])return;let n=!0;for(;n;){let e=!1;for(const i of t[23])i.dirty&&(e=!0,null===i.zone||Zone.current===i.zone?i.run():i.zone.run(()=>i.run()));n=e&&!!(8192&t[2])}}function fg(t,n=0){const i=t[10].rendererFactory;i.begin?.();try{!function yW(t,n){const e=DM();try{rm(!0),S1(t,n);let i=0;for(;im(t);){if(100===i)throw new X(103,!1);i++,S1(t,1)}}finally{rm(e)}}(t,n)}finally{i.end?.()}}function KE(t,n,e,i){if(us(n))return;const o=n[2];$y(n);let a=!0,l=null,c=null;GE(t)?(c=function fW(t){return t[24]??function pW(t){const n=WE.pop()??Object.create(gW);return n.lView=t,n}(t)}(n),l=Oc(c)):null===function Xv(){return An}()?(a=!1,c=function _W(t){const n=t[24]??Object.create(bW);return n.lView=t,n}(n),l=Oc(c)):n[24]&&(Au(n[24]),n[24]=null);try{hM(n),function MM(t){return Be.lFrame.bindingIndex=t}(t.bindingStartIndex),null!==e&&VE(t,n,e,2,i);const f=!(3&~o);if(f){const _=t.preOrderCheckHooks;null!==_&&Sm(n,_,null)}else{const _=t.preOrderHooks;null!==_&&km(n,_,0,null),lC(n,0)}if(function CW(t){for(let n=n2(t);null!==n;n=i2(n)){if(!(2&n[2]))continue;const e=n[9];for(let i=0;i0&&(e[o-1][4]=n),i0&&(t[e-1][4]=i[4]);const r=qp(t,10+n);!function EE(t,n){PE(t,n),n[0]=null,n[5]=null}(i[1],i);const s=r[18];null!==s&&s.detachView(r[1]),i[3]=null,i[4]=null,i[2]&=-129}return i}function eP(t,n){const e=t[9],i=n[3];(Dn(i)||n[15]!==i[3][15])&&(t[2]|=2),null===e?t[9]=[n]:e.push(n)}class bh{_lView;_cdRefInjectingView;_appRef=null;_attachedToViewContainer=!1;exhaustive;get rootNodes(){const n=this._lView,e=n[1];return gh(e,n,e.firstChild,[])}constructor(n,e){this._lView=n,this._cdRefInjectingView=e}get context(){return this._lView[8]}set context(n){this._lView[8]=n}get destroyed(){return us(this._lView)}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._attachedToViewContainer){const n=this._lView[3];if(Ji(n)){const e=n[8],i=e?e.indexOf(this):-1;i>-1&&(_h(n,i),qp(e,i))}this._attachedToViewContainer=!1}mh(this._lView[1],this._lView)}onDestroy(n){om(this._lView,n)}markForCheck(){hd(this._cdRefInjectingView||this._lView,4)}detach(){this._lView[2]&=-129}reattach(){Ny(this._lView),this._lView[2]|=128}detectChanges(){this._lView[2]|=1024,fg(this._lView)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new X(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null;const n=Ks(this._lView),e=this._lView[16];null!==e&&!n&&f1(e,this._lView),PE(this._lView[1],this._lView)}attachToAppRef(n){if(this._attachedToViewContainer)throw new X(902,!1);this._appRef=n;const e=Ks(this._lView),i=this._lView[16];null!==i&&!e&&eP(i,this._lView),Ny(this._lView)}}let Ti=(()=>class t{_declarationLView;_declarationTContainer;elementRef;static __NG_ELEMENT_ID__=kW;constructor(e,i,o){this._declarationLView=e,this._declarationTContainer=i,this.elementRef=o}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(e,i){return this.createEmbeddedViewImpl(e,i)}createEmbeddedViewImpl(e,i,o){const r=ud(this._declarationLView,this._declarationTContainer,e,{embeddedViewInjector:i,dehydratedView:o});return new bh(r)}})();function kW(){return pg(Ve(),ne())}function pg(t,n){return 4&t.type?new Ti(n,t,nd(t,n)):null}function Cl(t,n,e,i,o){let r=t.data[n];if(null===r)r=function E1(t,n,e,i,o){const r=CM(),s=wM(),l=t.data[n]=function RW(t,n,e,i,o,r){let s=n?n.injectorIndex:-1,a=0;return bM()&&(a|=128),{type:e,index:i,insertBeforeIndex:null,injectorIndex:s,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,componentOffset:-1,controlDirectiveIndex:-1,customControlIndex:-1,propertyBindings:null,flags:a,providerIndexes:0,value:o,attrs:r,mergedAttrs:null,localNames:null,initialInputs:null,inputs:null,hostDirectiveInputs:null,outputs:null,hostDirectiveOutputs:null,directiveToIndex:null,tView:null,next:null,prev:null,projectionNext:null,child:null,parent:n,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}(0,s?r:r&&r.parent,e,n,i,o);return function AW(t,n,e,i){null===t.firstChild&&(t.firstChild=n),null!==e&&(i?null==e.child&&null!==n.parent&&(e.child=n):null===e.next&&(e.next=n,n.prev=e))}(t,l,r,s),l}(t,n,e,i,o),function Uj(){return Be.lFrame.inI18n}()&&(r.flags|=32);else if(64&r.type){r.type=e,r.value=i,r.attrs=o;const s=function zu(){const t=Be.lFrame,n=t.currentTNode;return t.isParent?n:n.parent}();r.injectorIndex=null===s?-1:s.injectorIndex}return fs(r,!0),r}function vP(t,n){let e=0,i=t.firstChild;if(i){const o=t.data.r;for(;eclass t{destroyNode=null;static __NG_ELEMENT_ID__=()=>function bG(){const t=ne(),e=eo(Ve().index,t);return(Dn(e)?e:t)[11]}()})(),vG=(()=>{class t{static \u0275prov=te({token:t,providedIn:"root",factory:()=>null})}return t})();const L1={};class md{injector;parentInjector;constructor(n,e){this.injector=n,this.parentInjector=e}get(n,e,i){const o=this.injector.get(n,L1,i);return o!==L1||e===L1?o:this.parentInjector.get(n,e,i)}}function Sg(t,n,e){let i=e?t.styles:null,o=e?t.classes:null,r=0;if(null!==n)for(let s=0;s0&&(e.directiveToIndex=new Map);for(let g=0;g0;){const e=t[--n];if("number"==typeof e&&e<0)return e}return 0})(s)!=a&&s.push(a),s.push(e,i,r)}}(t,n,i,hh(t,e,o.hostVars,At),o)}function PG(t,n,e){if(e){if(n.exportAs)for(let i=0;il?a[l]:null}"string"==typeof s&&(r+=2)}return null}(n,e,r,t.index)),null!==f)(f.__ngLastListenerFn__||f).__ngNextListenerFn__=s,f.__ngLastListenerFn__=s,c=!0;else{const m=Zn(t,e),g=i?i(m):m,_=o.listen(g,r,a);(function FG(t){return t.startsWith("animation")||t.startsWith("transition")})(r)||RP(i?k=>i(gi(k[t.index])):t.index,n,e,r,a,_,!1)}return c}function RP(t,n,e,i,o,r,s){const a=n.firstCreatePass?gM(n):null,l=mM(e),c=l.length;l.push(o,r),a&&a.push(i,t,c,(c+1)*(s?-1:1))}function _d(t,n,e,i,o,r){const a=n[1],m=n[e][a.data[e].outputs[i]].subscribe(r);RP(t.index,a,n,o,r,m,!0)}const _s=Symbol("BINDING");function z1(t){return t.debugInfo?.className||t.type.name||null}class UP extends wg{ngModule;constructor(n){super(),this.ngModule=n}resolveComponentFactory(n){const e=xt(n);return new Th(e,this.ngModule)}}class Th extends kP{componentDef;ngModule;selector;componentType;ngContentSelectors;isBoundToModule;cachedInputs=null;cachedOutputs=null;get inputs(){return this.cachedInputs??=function qG(t){return Object.keys(t).map(n=>{const[e,i,o]=t[n],r={propName:e,templateName:n,isSignal:0!==(i&Qm.SignalBased)};return o&&(r.transform=o),r})}(this.componentDef.inputs),this.cachedInputs}get outputs(){return this.cachedOutputs??=function KG(t){return Object.keys(t).map(n=>({propName:t[n],templateName:n}))}(this.componentDef.outputs),this.cachedOutputs}constructor(n,e){super(),this.componentDef=n,this.ngModule=e,this.componentType=n.type,this.selector=function x$(t){return t.map(w$).join(",")}(n.selectors),this.ngContentSelectors=n.ngContentSelectors??[],this.isBoundToModule=!!e}create(n,e,i,o,r,s){Lt(ge.DynamicComponentStart);const a=Te(null);try{const l=this.componentDef,c=function YG(t,n,e){let i=n instanceof zn?n:n?.injector;return i&&null!==t.getStandaloneInjector&&(i=t.getStandaloneInjector(i)||i),i?new md(e,i):e}(l,o||this.ngModule,n),f=function XG(t){const n=t.get(Lo,null);if(null===n)throw new X(407,!1);return{rendererFactory:n,sanitizer:t.get(vG,null),changeDetectionScheduler:t.get(al,null),ngReflect:!1,tracingService:t.get(oa,null,{optional:!0})}}(c),m=f.tracingService;return m&&m.componentCreate?m.componentCreate(z1(l),()=>this.createComponentRef(f,c,e,i,r,s)):this.createComponentRef(f,c,e,i,r,s)}finally{Te(a)}}createComponentRef(n,e,i,o,r,s){const a=this.componentDef,l=function JG(t,n,e,i){const o=t?["ng-version","21.2.4"]:function S$(t){const n=[],e=[];let i=1,o=2;for(;i{if(1&e&&t)for(const i of t)i.create();if(2&e&&n)for(const i of n)i.update()}:null}(r,s),1,a,l,null,null,null,[o],null)}(o,a,s,r),c=n.rendererFactory.createRenderer(null,a),f=o?function J$(t,n,e,i){const r=i.get(j7,!1)||e===No.ShadowDom||e===No.ExperimentalIsolatedShadowDom,s=t.selectRootElement(n,r);return function eW(t){HE(t)}(s),s}(c,o,a.encapsulation,e):function ZG(t,n){const e=function QG(t){return(t.selectors[0][0]||"div").toLowerCase()}(t);return Ym(n,e,"svg"===e?"svg":"math"===e?"math":null)}(a,c),m=s?.some(zP)||r?.some(w=>"function"!=typeof w&&w.bindings.some(zP)),g=Zm(null,l,null,512|JC(a),null,null,n,c,e,null,null);g[27]=f,$y(g);let _=null;try{const w=V1(27,g,2,"#host",()=>l.directiveRegistry,!0,0);sE(c,f,w),po(f,g),ag(l,g,w),VC(l,w,g),H1(l,w),void 0!==i&&function nq(t,n,e){const i=t.projection=[];for(let o=0;oclass t{static __NG_ELEMENT_ID__=iq})();function iq(){return WP(Ve(),ne())}class $1 extends Ei{_lContainer;_hostTNode;_hostLView;constructor(n,e,i){super(),this._lContainer=n,this._hostTNode=e,this._hostLView=i}get element(){return nd(this._hostTNode,this._hostLView)}get injector(){return new Bn(this._hostTNode,this._hostLView)}get parentInjector(){const n=Tm(this._hostTNode,this._hostLView);if(dC(n)){const e=eh(n,this._hostLView),i=Ju(n);return new Bn(e[1].data[i+8],e)}return new Bn(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(n){const e=$P(this._lContainer);return null!==e&&e[n]||null}get length(){return this._lContainer.length-10}createEmbeddedView(n,e,i){let o,r;"number"==typeof i?o=i:null!=i&&(o=i.index,r=i.injector);const a=n.createEmbeddedViewImpl(e||{},r,null);return this.insertImpl(a,o,yl(this._hostTNode,null)),a}createComponent(n,e,i,o,r,s,a){const l=n&&!function Zu(t){return"function"==typeof t}(n);let c;if(l)c=e;else{const T=e||{};c=T.index,i=T.injector,o=T.projectableNodes,r=T.environmentInjector||T.ngModuleRef,s=T.directives,a=T.bindings}const f=l?n:new Th(xt(n)),m=i||this.parentInjector;if(!r&&null==f.ngModule){const I=(l?m:this.parentInjector).get(zn,null);I&&(r=I)}xt(f.componentType??{});const k=f.create(m,o,null,r,s,a);return this.insertImpl(k.hostView,c,yl(this._hostTNode,null)),k}insert(n,e){return this.insertImpl(n,e,!0)}insertImpl(n,e,i){const o=n._lView;if(function Nj(t){return Ji(t[3])}(o)){const a=this.indexOf(n);if(-1!==a)this.detach(a);else{const l=o[3],c=new $1(l,l[5],l[3]);c.detach(c.indexOf(n))}}const r=this._adjustIndex(e),s=this._lContainer;return fd(s,o,r,i),n.attachToViewContainerRef(),YD(W1(s),r,n),n}move(n,e){return this.insert(n,e)}indexOf(n){const e=$P(this._lContainer);return null!==e?e.indexOf(n):-1}remove(n){const e=this._adjustIndex(n,-1),i=_h(this._lContainer,e);i&&(qp(W1(this._lContainer),e),mh(i[1],i))}detach(n){const e=this._adjustIndex(n,-1),i=_h(this._lContainer,e);return i&&null!=qp(W1(this._lContainer),e)?new bh(i):null}_adjustIndex(n,e=0){return n??this.length+e}}function $P(t){return t[8]}function W1(t){return t[8]||(t[8]=[])}function WP(t,n){let e;const i=n[t.index];return Ji(i)?e=i:(e=QE(i,n,null,t),n[t.index]=e,e1(n,e)),GP(e,n,t,i),new $1(e,t,n)}let GP=function KP(t,n,e,i){if(t[7])return;let o;o=8&e.type?gi(i):function oq(t,n){const e=t[11],i=e.createComment(""),o=Zn(n,t),r=e.parentNode(o);return fl(e,r,i,e.nextSibling(o),!1),i}(n,e),t[7]=o};class q1{queryList;matches=null;constructor(n){this.queryList=n}clone(){return new q1(this.queryList)}setDirty(){this.queryList.setDirty()}}class K1{queries;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 Y1{queries;constructor(n=[]){this.queries=n}elementStart(n,e){for(let i=0;i0)i.push(s[a/2]);else{const c=r[a+1],f=n[-l];for(let m=10;m{i._dirtyCounter();const r=function pq(t,n){const e=t._lView,i=t._queryIndex;if(void 0===e||void 0===i||4&e[2])return n?void 0:Yt;const o=Q1(e,i),r=tI(e,i);return o.reset(r,GT),n?o.first:o._changesDetected||void 0===t._flatValue?t._flatValue=o.toArray():t._flatValue}(i,t);if(n&&void 0===r)throw new X(-951,!1);return r});return i=o[Rn],i._dirtyCounter=yt(0),i._flatValue=void 0,o}function nI(t){return e0(!0,!1)}function iI(t){return e0(!0,!0)}function oI(t,n){const e=t[Rn];e._lView=ne(),e._queryIndex=n,e._queryList=Q1(e._lView,n),e._queryList.onDirty(()=>e._dirtyCounter.update(i=>i+1))}let bs=class{},lI=class{};class o0 extends bs{ngModuleType;_parent;_bootstrapComponents=[];_r3Injector;instance;destroyCbs=[];componentFactoryResolver=new UP(this);constructor(n,e,i,o=!0){super(),this.ngModuleType=n,this._parent=e;const r=Er(n);this._bootstrapComponents=Lr(r.bootstrap),this._r3Injector=NM(n,e,[{provide:bs,useValue:this},{provide:wg,useValue:this.componentFactoryResolver},...i],Ws(n),new Set(["environment"])),o&&this.resolveInjectorInitializers()}resolveInjectorInitializers(){this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(this.ngModuleType)}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 cI extends lI{moduleType;constructor(n){super(),this.moduleType=n}create(n){return new o0(this.moduleType,n,[])}}class wq extends bs{injector;componentFactoryResolver=new UP(this);instance=null;constructor(n){super();const e=new Qa([...n.providers,{provide:bs,useValue:this},{provide:wg,useValue:this.componentFactoryResolver}],n.parent||Jp(),n.debugName,new Set(["environment"]));this.injector=e,n.runEnvironmentInitializers&&e.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(n){this.injector.onDestroy(n)}}function Mg(t,n,e=null){return new wq({providers:t,parent:n,debugName:e,runEnvironmentInitializers:!0}).injector}let xq=(()=>{class t{_injector;cachedInjectors=new Map;constructor(e){this._injector=e}getOrCreateStandaloneInjector(e){if(!e.standalone)return null;if(!this.cachedInjectors.has(e)){const i=Sy(0,e.type),o=i.length>0?Mg([i],this._injector,""):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 \u0275prov=te({token:t,providedIn:"environment",factory:()=>new t(ce(zn))})}return t})();function re(t){return gs(()=>{const n=uI(t),e={...n,decls:t.decls,vars:t.vars,template:t.template,consts:t.consts||null,ngContentSelectors:t.ngContentSelectors,onPush:t.changeDetection===Im.OnPush,directiveDefs:null,pipeDefs:null,dependencies:n.standalone&&t.dependencies||null,getStandaloneInjector:n.standalone?o=>o.get(xq).getOrCreateStandaloneInjector(e):null,getExternalStyles:null,signals:t.signals??!1,data:t.data||{},encapsulation:t.encapsulation||No.Emulated,styles:t.styles||Yt,_:null,schemas:t.schemas||null,tView:null,id:""};n.standalone&&vi("NgStandalone"),hI(e);const i=t.dependencies;return e.directiveDefs=Tg(i,dI),e.pipeDefs=Tg(i,tr),e.id=function Mq(t){let n=0;const i=[t.selectors,t.ngContentSelectors,t.hostVars,t.hostAttrs,"function"==typeof t.consts?"":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];for(const r of i.join("|"))n=Math.imul(31,n)+r.charCodeAt(0)|0;return n+=2147483648,"c"+n}(e),e})}function dI(t){return xt(t)||Zi(t)}function tt(t){return gs(()=>({type:t.type,bootstrap:t.bootstrap||Yt,declarations:t.declarations||Yt,imports:t.imports||Yt,exports:t.exports||Yt,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null}))}function Sq(t,n){if(null==t)return Pr;const e={};for(const i in t)if(t.hasOwnProperty(i)){const o=t[i];let r,s,a,l;Array.isArray(o)?(a=o[0],r=o[1],s=o[2]??r,l=o[3]||null):(r=o,s=o,a=Qm.None,l=null),e[r]=[i,a,l],n[r]=s}return e}function kq(t){if(null==t)return Pr;const n={};for(const e in t)t.hasOwnProperty(e)&&(n[t[e]]=e);return n}function de(t){return gs(()=>{const n=uI(t);return hI(n),n})}function Hi(t){return{type:t.type,name:t.name,factory:null,pure:!1!==t.pure,standalone:t.standalone??!0,onDestroy:t.type.prototype.ngOnDestroy||null}}function uI(t){const n={};return{type:t.type,providersResolver:null,viewProvidersResolver:null,factory:null,hostBindings:t.hostBindings||null,hostVars:t.hostVars||0,hostAttrs:t.hostAttrs||null,contentQueries:t.contentQueries||null,declaredInputs:n,inputConfig:t.inputs||Pr,exportAs:t.exportAs||null,standalone:t.standalone??!0,signals:!0===t.signals,selectors:t.selectors||Yt,viewQuery:t.viewQuery||null,features:t.features||null,setInput:null,resolveHostDirectives:null,hostDirectives:null,controlDef:null,inputs:Sq(t.inputs,n),outputs:kq(t.outputs),debugInfo:null}}function hI(t){t.features?.forEach(n=>n(t))}function Tg(t,n){return t?()=>{const e="function"==typeof t?t():t,i=[];for(const o of e){const r=n(o);null!==r&&i.push(r)}return i}:null}function fI(t){const n=e=>{const i=Array.isArray(t);null===e.hostDirectives?(e.resolveHostDirectives=Eq,e.hostDirectives=i?t.map(r0):[t]):i?e.hostDirectives.unshift(...t.map(r0)):e.hostDirectives.unshift(t)};return n.ngInherit=!0,n}function Eq(t){const n=[];let e=!1,i=null,o=null;for(let r=0;r=0;i--){const o=t[i];o.hostVars=n+=o.hostVars,o.hostAttrs=td(o.hostAttrs,e=td(e,o.hostAttrs))}}(i)}function Oq(t,n){for(const e in n.inputs){if(!n.inputs.hasOwnProperty(e)||t.inputs.hasOwnProperty(e))continue;const i=n.inputs[e];void 0!==i&&(t.inputs[e]=i,t.declaredInputs[e]=n.declaredInputs[e])}}function s0(t){return t===Pr?{}:t===Yt?[]:t}function Rq(t,n){const e=t.viewQuery;t.viewQuery=e?(i,o)=>{n(i,o),e(i,o)}:n}function Fq(t,n){const e=t.contentQueries;t.contentQueries=e?(i,o,r)=>{n(i,o,r),e(i,o,r)}:n}function Nq(t,n){const e=t.hostBindings;t.hostBindings=e?(i,o)=>{n(i,o),e(i,o)}:n}function bI(t,n,e,i,o,r,s,a){if(e.firstCreatePass){t.mergedAttrs=td(t.mergedAttrs,t.attrs);const f=t.tView=QC(2,t,o,r,s,e.directiveRegistry,e.pipeRegistry,null,e.schemas,e.consts,null);null!==e.queries&&(e.queries.template(e,t),f.queries=e.queries.embeddedTView(t))}a&&(t.flags|=a),fs(t,!1);const l=vI(e,n,t,i);am()&&_1(e,n,l,t),po(l,n);const c=QE(l,n,l,t);n[i+27]=c,e1(n,c)}function Dl(t,n,e,i,o,r,s,a,l,c,f){const m=e+27;let g;if(n.firstCreatePass){if(g=Cl(n,m,4,s||null,a||null),null!=c){const _=Li(n.consts,c);g.localNames=[];for(let w=0;w<_.length;w+=2)g.localNames.push(_[w],-1)}}else g=n.data[m];return bI(g,t,n,e,i,o,r,l),null!=c&&dd(t,g,f),g}function it(t,n,e,i,o,r,s,a){const l=ne(),c=ze();return function Lq(t,n,e,i,o,r,s,a,l,c,f){const m=e+27;let g;n.firstCreatePass?(g=Cl(n,m,4,s||null,a||null),Hy()&&MP(n,t,g,Li(n.consts,c),w1),kT(n,g)):g=n.data[m],bI(g,t,n,e,i,o,r,l),$c(g)&&ag(n,t,g),null!=c&&dd(t,g,f)}(l,c,t,n,e,i,o,Li(c.consts,r),void 0,s,a),it}function Eg(t,n,e,i,o,r,s,a){const l=ne(),c=ze();return Dl(l,c,t,n,e,i,o,Li(c.consts,r),void 0,s,a),Eg}let vI=function yI(t,n,e,i){return $u(!0),n[11].createComment("")};let AI=(()=>{class t{log(e){console.log(e)}warn(e){console.warn(e)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();function El(t){return"function"==typeof t&&void 0!==t[Rn]}function FI(t){return El(t)&&"function"==typeof t.set}const XI=new Z(""),ZI=new Z("");let p0,f0=(()=>{class t{_ngZone;registry;_isZoneStable=!0;_callbacks=[];_taskTrackingZone=null;_destroyRef;constructor(e,i,o){this._ngZone=e,this.registry=i,Iy()&&(this._destroyRef=D(rr,{optional:!0})??void 0),p0||(function WK(t){p0=t}(o),o.addToWindow(i)),this._watchAngularEvents(),e.run(()=>{this._taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){const e=this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),i=this._ngZone.runOutsideAngular(()=>this._ngZone.onStable.subscribe({next:()=>{_e.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}}));this._destroyRef?.onDestroy(()=>{e.unsubscribe(),i.unsubscribe()})}isStable(){return this._isZoneStable&&!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(s=>s.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()}registerApplication(e){this.registry.registerApplication(e,this)}unregisterApplication(e){this.registry.unregisterApplication(e)}findProviders(e,i,o){return[]}static \u0275fac=function(i){return new(i||t)(ce(_e),ce($K),ce(ZI))};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})(),$K=(()=>{class t{_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 p0?.findTestabilityInTree(this,e,i)??null}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();function Rh(t){return!!t&&"function"==typeof t.then}function QI(t){return!!t&&"function"==typeof t.subscribe}const JI=new Z("");function eO(t){return Hu([{provide:JI,multi:!0,useValue:t}])}let tO=(()=>{class t{resolve;reject;initialized=!1;done=!1;donePromise=new Promise((e,i)=>{this.resolve=e,this.reject=i});appInits=D(JI,{optional:!0})??[];injector=D(He);constructor(){}runInitializers(){if(this.initialized)return;const e=[];for(const o of this.appInits){const r=Qi(this.injector,o);if(Rh(r))e.push(r);else if(QI(r)){const s=new Promise((a,l)=>{r.subscribe({complete:a,error:l})});e.push(s)}}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 \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const nO=new Z("");function iO(t,n){return Array.isArray(n)?n.reduce(iO,t):{...t,...n}}let lr=(()=>{class t{_runningTick=!1;_destroyed=!1;_destroyListeners=[];_views=[];internalErrorHandler=D(Or);afterRenderManager=D(u1);zonelessEnabled=D(um);rootEffectScheduler=D($M);dirtyFlags=0;tracingSnapshot=null;allTestViews=new Set;autoDetectTestViews=new Set;includeAllTestViews=!1;afterTick=new me;get allViews(){return[...(this.includeAllTestViews?this.allTestViews:this.autoDetectTestViews).keys(),...this._views]}get destroyed(){return this._destroyed}componentTypes=[];components=[];internalPendingTask=D(Ys);get isStable(){return this.internalPendingTask.hasPendingTasksObservable.pipe(Se(e=>!e))}constructor(){D(oa,{optional:!0})}whenStable(){let e;return new Promise(i=>{e=this.isStable.subscribe({next:o=>{o&&i()}})}).finally(()=>{e.unsubscribe()})}_injector=D(zn);_rendererFactory=null;get injector(){return this._injector}bootstrap(e,i){return this.bootstrapImpl(e,i)}bootstrapImpl(e,i,o=He.NULL){return this._injector.get(_e).run(()=>{Lt(ge.BootstrapComponentStart);const s=e instanceof kP;if(!this._injector.get(tO).done)throw new X(405,"");let l;l=s?e:this._injector.get(wg).resolveComponentFactory(e),this.componentTypes.push(l.componentType);const c=function qK(t){return t.isBoundToModule}(l)?void 0:this._injector.get(bs),m=l.create(o,[],i||l.selector,c),g=m.location.nativeElement,_=m.injector.get(XI,null);return _?.registerApplication(g),m.onDestroy(()=>{this.detachView(m.hostView),Lg(this.components,m),_?.unregisterApplication(g)}),this._loadComponent(m),Lt(ge.BootstrapComponentEnd,m),m})}tick(){this.zonelessEnabled||(this.dirtyFlags|=1),this._tick()}_tick(){Lt(ge.ChangeDetectionStart),null!==this.tracingSnapshot?this.tracingSnapshot.run(d1.CHANGE_DETECTION,this.tickImpl):this.tickImpl()}tickImpl=()=>{if(this._runningTick)throw Lt(ge.ChangeDetectionEnd),new X(101,!1);const e=Te(null);try{this._runningTick=!0,this.synchronize()}finally{this._runningTick=!1,this.tracingSnapshot?.dispose(),this.tracingSnapshot=null,Te(e),this.afterTick.next(),Lt(ge.ChangeDetectionEnd)}};synchronize(){null===this._rendererFactory&&!this._injector.destroyed&&(this._rendererFactory=this._injector.get(Lo,null,{optional:!0}));let e=0;for(;0!==this.dirtyFlags&&e++<10;){Lt(ge.ChangeDetectionSyncStart);try{this.synchronizeOnce()}finally{Lt(ge.ChangeDetectionSyncEnd)}}}synchronizeOnce(){16&this.dirtyFlags&&(this.dirtyFlags&=-17,this.rootEffectScheduler.flush());let e=!1;if(7&this.dirtyFlags){const i=!!(1&this.dirtyFlags);this.dirtyFlags&=-8,this.dirtyFlags|=8;for(let{_lView:o}of this.allViews)(i||im(o))&&(fg(o,i&&!this.zonelessEnabled?0:1),e=!0);if(this.dirtyFlags&=-5,this.syncDirtyFlagsWithViews(),23&this.dirtyFlags)return}e||(this._rendererFactory?.begin?.(),this._rendererFactory?.end?.()),8&this.dirtyFlags&&(this.dirtyFlags&=-9,this.afterRenderManager.execute()),this.syncDirtyFlagsWithViews()}syncDirtyFlagsWithViews(){this.allViews.some(({_lView:e})=>im(e))?this.dirtyFlags|=2:this.dirtyFlags&=-8}attachView(e){const i=e;this._views.push(i),i.attachToAppRef(this)}detachView(e){const i=e;Lg(this._views,i),i.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView);try{this.tick()}catch(o){this.internalErrorHandler(o)}this.components.push(e),this._injector.get(nO,[]).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._destroyListeners=[]}}onDestroy(e){return this._destroyListeners.push(e),()=>Lg(this._destroyListeners,e)}destroy(){if(this._destroyed)throw new X(406,!1);const e=this._injector;e.destroy&&!e.destroyed&&e.destroy()}get viewCount(){return this._views.length}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Lg(t,n){const e=t.indexOf(n);e>-1&&t.splice(e,1)}function y0(t,n){const e=ne();if(un(e,ho(),n)){const o=ze(),r=or();if(ug(r,o,e,t,n))Ir(r)&&jE(e,r.index);else{const a=Zn(r,e);lg(e[11],a,null,r.value,t,n,null)}}return y0}function $e(t,n,e,i){const o=ne();return un(o,ho(),n)&&(ze(),function sW(t,n,e,i,o,r){const s=Zn(t,n);lg(n[11],s,r,t.value,e,i,o)}(or(),o,t,n,e,i)),$e}function Br(){return ne()[15][8]}class FY{destroy(n){}updateValue(n,e){}swap(n,e){const i=Math.min(n,e),o=Math.max(n,e),r=this.detach(o);if(o-i>1){const s=this.detach(i);this.attach(i,r),this.attach(o,s)}else this.attach(i,r)}move(n,e){this.attach(e,this.detach(n))}}function w0(t,n,e,i,o){return t===e&&Object.is(n,i)?1:Object.is(o(t,n),o(e,i))?-1:0}function x0(t,n,e,i){return!(void 0===n||!n.has(i)||(t.attach(e,n.get(i)),n.delete(i),0))}function hO(t,n,e,i,o){if(x0(t,n,i,e(i,o)))t.updateValue(i,o);else{const r=t.create(i,o);t.attach(i,r)}}function fO(t,n,e,i){const o=new Set;for(let r=n;r<=e;r++)o.add(i(r,t.at(r)));return o}class pO{kvMap=new Map;_vMap=void 0;has(n){return this.kvMap.has(n)}delete(n){if(!this.has(n))return!1;const e=this.kvMap.get(n);return void 0!==this._vMap&&this._vMap.has(e)?(this.kvMap.set(n,this._vMap.get(e)),this._vMap.delete(e)):this.kvMap.delete(n),!0}get(n){return this.kvMap.get(n)}set(n,e){if(this.kvMap.has(n)){let i=this.kvMap.get(n);void 0===this._vMap&&(this._vMap=new Map);const o=this._vMap;for(;o.has(i);)i=o.get(i);o.set(i,e)}else this.kvMap.set(n,e)}forEach(n){for(let[e,i]of this.kvMap)if(n(i,e),void 0!==this._vMap){const o=this._vMap;for(;o.has(i);)i=o.get(i),n(i,e)}}}function x(t,n,e,i,o,r,s,a){vi("NgControlFlow");const l=ne(),c=ze();return Dl(l,c,t,n,e,i,o,Li(c.consts,r),256,s,a),S0}function S0(t,n,e,i,o,r,s,a){vi("NgControlFlow");const l=ne(),c=ze();return Dl(l,c,t,n,e,i,o,Li(c.consts,r),512,s,a),S0}function S(t,n){vi("NgControlFlow");const e=ne(),i=ho(),o=e[i]!==At?e[i]:-1,r=-1!==o?jg(e,27+o):void 0;if(un(e,i,t)){const a=Te(null);try{if(void 0!==r&&k1(r,0),-1!==t){const l=27+t,c=jg(e,l),f=k0(e[1],l),m=null;fd(c,ud(e,f,n,{dehydratedView:m}),0,yl(f,m))}}finally{Te(a)}}else if(void 0!==r){const a=JE(r,0);void 0!==a&&(a[8]=n)}}class LY{lContainer;$implicit;$index;constructor(n,e,i){this.lContainer=n,this.$implicit=e,this.$index=i}get $count(){return this.lContainer.length-10}}function mO(t){return t}function Fe(t,n){return n}class BY{hasEmptyBlock;trackByFn;liveCollection;constructor(n,e,i){this.hasEmptyBlock=n,this.trackByFn=e,this.liveCollection=i}}function ve(t,n,e,i,o,r,s,a,l,c,f,m,g){vi("NgControlFlow");const _=ne(),w=ze(),k=void 0!==l,T=ne(),I=a?s.bind(T[15][8]):s,R=new BY(k,I);T[27+t]=R,Dl(_,w,t+1,n,e,i,o,Li(w.consts,r),256),k&&Dl(_,w,t+2,l,c,f,m,Li(w.consts,g),512)}class VY extends FY{lContainer;hostLView;templateTNode;operationsCounter=void 0;needsIndexUpdate=!1;constructor(n,e,i){super(),this.lContainer=n,this.hostLView=e,this.templateTNode=i}get length(){return this.lContainer.length-10}at(n){return this.getLView(n)[8].$implicit}attach(n,e){const i=e[6];this.needsIndexUpdate||=n!==this.length,fd(this.lContainer,e,n,yl(this.templateTNode,i)),function HY(t,n){if(t.length<=10)return;const i=t[10+n],o=i?i[26]:void 0;i&&o&&o.detachedLeaveAnimationFns&&o.detachedLeaveAnimationFns.length>0&&(function z$(t,n){const e=t.get(og);if(n.detachedLeaveAnimationFns){for(const i of n.detachedLeaveAnimationFns)e.queue.delete(i);n.detachedLeaveAnimationFns=void 0}}(i[9],o),bl.delete(i[19]),o.detachedLeaveAnimationFns=void 0)}(this.lContainer,n)}detach(n){return this.needsIndexUpdate||=n!==this.length-1,function jY(t,n){if(t.length<=10)return;const i=t[10+n],o=i?i[26]:void 0;o&&o.leave&&o.leave.size>0&&(o.detachedLeaveAnimationFns=[])}(this.lContainer,n),function UY(t,n){return _h(t,n)}(this.lContainer,n)}create(n,e){return ud(this.hostLView,this.templateTNode,new LY(this.lContainer,e,n),{dehydratedView:null})}destroy(n){mh(n[1],n)}updateValue(n,e){this.getLView(n)[8].$implicit=e}reset(){this.needsIndexUpdate=!1}updateIndexes(){if(this.needsIndexUpdate)for(let n=0;n{t.destroy(c)})}(l,t,r.trackByFn,n),l.updateIndexes(),r.hasEmptyBlock){const c=ho(),f=0===l.length;if(un(i,c,f)){const m=e+2,g=jg(i,m);if(f){const _=k0(o,m),w=null;fd(g,ud(i,_,void 0,{dehydratedView:w}),0,yl(_,w))}else o.firstUpdatePass&&function vg(t){const n=t[6]??[],i=t[3][11],o=[];for(const r of n)void 0!==r.data.di?o.push(r):vP(r,i);t[6]=o}(g),k1(g,0)}}}finally{Te(n)}}function jg(t,n){return t[n]}function k0(t,n){return Gc(t,n)}function C(t,n,e){const i=ne();return un(i,ho(),n)&&(ze(),y1(or(),i,t,n,i[11],e)),C}function D0(t,n,e,i,o){ug(n,t,e,o?"class":"style",i)}function h(t,n,e,i){const o=ne(),r=o[1],s=t+27,a=r.firstCreatePass?V1(s,o,2,n,w1,Hy(),e,i):r.data[s];if(Ir(a)){const l=o[10].tracingService;if(l&&l.componentCreate)return l.componentCreate(z1(r.data[a.directiveStart+a.componentOffset]),()=>(gO(t,n,o,a,i),h))}return gO(t,n,o,a,i),h}function gO(t,n,e,i,o){if(cg(i,e,t,n,M0),$c(i)){const r=e[1];ag(r,e,i),VC(r,i,e)}null!=o&&dd(e,i)}function u(){const t=ze(),e=dg(Ve());return t.firstCreatePass&&H1(t,e),vM(e)&&yM(),_M(),null!=e.classesWithoutHost&&function zz(t){return!!(8&t.flags)}(e)&&D0(t,e,ne(),e.classesWithoutHost,!0),null!=e.stylesWithoutHost&&function $z(t){return!!(16&t.flags)}(e)&&D0(t,e,ne(),e.stylesWithoutHost,!1),u}function B(t,n,e,i){return h(t,n,e,i),u(),B}function vs(t,n,e,i){const o=ne(),r=o[1],s=t+27,a=r.firstCreatePass?function OP(t,n,e,i,o,r){const s=n.consts,l=Cl(n,t,e,i,Li(s,o));if(l.mergedAttrs=td(l.mergedAttrs,l.attrs),null!=r){const c=Li(s,r);l.localNames=[];for(let f=0;f($u(!0),Ym(n[11],i,function Yj(){return Be.lFrame.currentNamespace}()));function Vr(t,n,e){const i=ne(),o=i[1],r=t+27,s=o.firstCreatePass?V1(r,i,8,"ng-container",w1,Hy(),n,e):o.data[r];if(cg(s,i,t,"ng-container",E0),$c(s)){const a=i[1];ag(a,i,s),VC(a,s,i)}return null!=e&&dd(i,s),Vr}function cr(){const t=ze(),e=dg(Ve());return t.firstCreatePass&&H1(t,e),cr}function dr(t,n,e){return Vr(t,n,e),cr(),dr}let E0=(t,n,e,i,o)=>($u(!0),YC(n[11],""));function oe(){return ne()}function ur(t,n,e){const i=ne();return un(i,ho(),n)&&(ze(),C1(or(),i,t,n,i[11],e)),ur}const Nh=void 0;var qY=["en",[["a","p"],["AM","PM"]],[["AM","PM"]],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],Nh,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],Nh,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm\u202fa","h:mm:ss\u202fa","h:mm:ss\u202fa z","h:mm:ss\u202fa zzzz"],["{1}, {0}",Nh,Nh,Nh],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function GY(t){const n=Math.floor(Math.abs(t)),e=t.toString().replace(/^[^.]*\.?/,"").length;return 1===n&&0===e?1:5}];let Sd={};function to(t){const n=function KY(t){return t.toLowerCase().replace(/_/g,"-")}(t);let e=CO(n);if(e)return e;const i=n.split("-")[0];if(e=CO(i),e)return e;if("en"===i)return qY;throw new X(701,!1)}function CO(t){return t in Sd||(Sd[t]=Fn.ng&&Fn.ng.common&&Fn.ng.common.locales&&Fn.ng.common.locales[t]),Sd[t]}var hn=function(t){return t[t.LocaleId=0]="LocaleId",t[t.DayPeriodsFormat=1]="DayPeriodsFormat",t[t.DayPeriodsStandalone=2]="DayPeriodsStandalone",t[t.DaysFormat=3]="DaysFormat",t[t.DaysStandalone=4]="DaysStandalone",t[t.MonthsFormat=5]="MonthsFormat",t[t.MonthsStandalone=6]="MonthsStandalone",t[t.Eras=7]="Eras",t[t.FirstDayOfWeek=8]="FirstDayOfWeek",t[t.WeekendRange=9]="WeekendRange",t[t.DateFormat=10]="DateFormat",t[t.TimeFormat=11]="TimeFormat",t[t.DateTimeFormat=12]="DateTimeFormat",t[t.NumberSymbols=13]="NumberSymbols",t[t.NumberFormats=14]="NumberFormats",t[t.CurrencyCode=15]="CurrencyCode",t[t.CurrencySymbol=16]="CurrencySymbol",t[t.CurrencyName=17]="CurrencyName",t[t.Currencies=18]="Currencies",t[t.Directionality=19]="Directionality",t[t.PluralCase=20]="PluralCase",t[t.ExtraData=21]="ExtraData",t}(hn||{});const Ug="en-US";let wO=Ug;function F(t,n,e){const i=ne(),o=ze(),r=Ve();return O0(o,i,i[11],r,t,n,e),F}function qg(t,n,e){const i=ne(),o=ze(),r=Ve();return(3&r.type||e)&&U1(r,o,i,e,i[11],t,n,sa(r,i,n)),qg}function O0(t,n,e,i,o,r,s){let a=!0,l=null;if((3&i.type||s)&&(l??=sa(i,n,r),U1(i,t,n,s,e,o,r,l)&&(a=!1)),a){const c=i.outputs?.[o],f=i.hostDirectiveOutputs?.[o];if(f&&f.length)for(let m=0;m0;)n=n[14],t--;return n}(t,Be.lFrame.contextLView))[8]}(t)}function RX(t,n){let e=null;const i=function b$(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>17&32767}function N0(t){return 2|t}function kd(t){return(131068&t)>>2}function L0(t,n){return-131069&t|n<<2}function B0(t){return 1|t}function UO(t,n,e,i){const o=t[e+1],r=null===n;let s=i?Al(o):kd(o),a=!1;for(;0!==s&&(!1===a||r);){const c=t[s+1];jX(t[s],n)&&(a=!0,t[s+1]=i?B0(c):N0(c)),s=i?Al(c):kd(c)}a&&(t[e+1]=i?N0(o):B0(o))}function jX(t,n){return null===t||null==n||(Array.isArray(t)?t[1]:t)===n||!(!Array.isArray(t)||"string"!=typeof n)&&Vu(t,n)>=0}const ri={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function zO(t){return t.substring(ri.key,ri.keyEnd)}function UX(t){return t.substring(ri.value,ri.valueEnd)}function $O(t,n){const e=ri.textEnd;return e===n?-1:(n=ri.keyEnd=function WX(t,n,e){for(;n32;)n++;return n}(t,ri.key=n,e),Dd(t,n,e))}function WO(t,n){const e=ri.textEnd;let i=ri.key=Dd(t,n,e);return e===i?-1:(i=ri.keyEnd=function GX(t,n,e){let i;for(;n=65&&(-33&i)<=90||i>=48&&i<=57);)n++;return n}(t,i,e),i=qO(t,i,e),i=ri.value=Dd(t,i,e),i=ri.valueEnd=function qX(t,n,e){let i=-1,o=-1,r=-1,s=n,a=s;for(;s32&&(a=s),r=o,o=i,i=-33&l}return a}(t,i,e),qO(t,i,e))}function GO(t){ri.key=0,ri.keyEnd=0,ri.value=0,ri.valueEnd=0,ri.textEnd=t.length}function Dd(t,n,e){for(;n=0;e=WO(n,e))JO(t,zO(n),UX(n))}function Ze(t){XO(tZ,YX,t,!0)}function YX(t,n){for(let e=function zX(t){return GO(t),$O(t,Dd(t,0,ri.textEnd))}(n);e>=0;e=$O(n,e))Yp(t,zO(n),!0)}function YO(t,n,e,i){const o=ne(),r=ze(),s=ms(2);r.firstUpdatePass&&QO(r,t,s,i),n!==At&&un(o,s,n)&&eA(r,r.data[Di()],o,o[11],t,o[s+1]=function iZ(t,n){return null==t||""===t||("string"==typeof n?t+=n:"object"==typeof t&&(t=Ws(Mo(t)))),t}(n,e),i,s)}function XO(t,n,e,i){const o=ze(),r=ms(2);o.firstUpdatePass&&QO(o,null,r,i);const s=ne();if(e!==At&&un(s,r,e)){const a=o.data[Di()];if(nA(a,i)&&!ZO(o,r)){let l=i?a.classesWithoutHost:a.stylesWithoutHost;null!==l&&(e=uy(l,e||"")),D0(o,a,s,e,i)}else!function nZ(t,n,e,i,o,r,s,a){o===At&&(o=Yt);let l=0,c=0,f=0=t.expandoStartIndex}function QO(t,n,e,i){const o=t.data;if(null===o[e+1]){const r=o[Di()],s=ZO(t,e);nA(r,i)&&null===n&&!s&&(n=!1),n=function XX(t,n,e,i){const o=function Uy(t){const n=Be.lFrame.currentDirectiveIndex;return-1===n?null:t[n]}(t);let r=i?n.residualClasses:n.residualStyles;if(null===o)0===(i?n.classBindings:n.styleBindings)&&(e=jh(e=V0(null,t,n,e,i),n.attrs,i),r=null);else{const s=n.directiveStylingLast;if(-1===s||t[s]!==o)if(e=V0(o,t,n,e,i),null===r){let l=function ZX(t,n,e){const i=e?n.classBindings:n.styleBindings;if(0!==kd(i))return t[Al(i)]}(t,n,i);void 0!==l&&Array.isArray(l)&&(l=V0(null,t,n,l[1],i),l=jh(l,n.attrs,i),function QX(t,n,e,i){t[Al(e?n.classBindings:n.styleBindings)]=i}(t,n,i,l))}else r=function JX(t,n,e){let i;const o=n.directiveEnd;for(let r=1+n.directiveStylingLast;r0)&&(c=!0)):f=e,o)if(0!==l){const g=Al(t[a+1]);t[i+1]=Kg(g,a),0!==g&&(t[g+1]=L0(t[g+1],i)),t[a+1]=function LX(t,n){return 131071&t|n<<17}(t[a+1],i)}else t[i+1]=Kg(a,0),0!==a&&(t[a+1]=L0(t[a+1],i)),a=i;else t[i+1]=Kg(l,0),0===a?a=i:t[l+1]=L0(t[l+1],i),l=i;c&&(t[i+1]=N0(t[i+1])),UO(t,f,i,!0),UO(t,f,i,!1),function HX(t,n,e,i,o){const r=o?t.residualClasses:t.residualStyles;null!=r&&"string"==typeof n&&Vu(r,n)>=0&&(e[i+1]=B0(e[i+1]))}(n,f,t,i,r),s=Kg(a,l),r?n.classBindings=s:n.styleBindings=s}(o,r,n,e,s,i)}}function V0(t,n,e,i,o){let r=null;const s=e.directiveEnd;let a=e.directiveStylingLast;for(-1===a?a=e.directiveStart:a++;a0;){const l=t[o],c=Array.isArray(l),f=c?l[1]:l,m=null===f;let g=e[o+1];g===At&&(g=m?Yt:void 0);let _=m?wy(g,i):f===i?g:void 0;if(c&&!Yg(_)&&(_=wy(l,i)),Yg(_)&&(a=_,s))return a;const w=t[o+1];o=s?Al(w):kd(w)}if(null!==n){let l=r?n.residualClasses:n.residualStyles;null!=l&&(a=wy(l,i))}return a}function Yg(t){return void 0!==t}function nA(t,n){return!!(t.flags&(n?8:16))}function p(t,n=""){const e=ne(),i=ze(),o=t+27,r=i.firstCreatePass?Cl(i,o,1,n,null):i.data[o],s=iA(i,e,r,n);e[o]=s,am()&&_1(i,e,s,r),fs(r,!1)}let iA=(t,n,e,i)=>($u(!0),function KC(t,n){return t.createText(n)}(n[11],i));function M(t){return E("",t),M}function E(t,n,e){const i=ne(),o=function rA(t,n,e,i=""){return un(t,ho(),e)?n+je(e)+i:At}(i,t,n,e);return o!==At&&Cs(i,Di(),o),E}function gt(t,n,e,i,o){const r=ne(),s=function sA(t,n,e,i,o,r=""){const a=Sl(t,ps(),e,o);return ms(2),a?n+je(e)+i+je(o)+r:At}(r,t,n,e,i,o);return s!==At&&Cs(r,Di(),s),gt}function Uh(t,n,e,i,o,r,s){const a=ne(),l=function aA(t,n,e,i,o,r,s,a=""){const c=Dg(t,ps(),e,o,s);return ms(3),c?n+je(e)+i+je(o)+r+je(s)+a:At}(a,t,n,e,i,o,r,s);return l!==At&&Cs(a,Di(),l),Uh}function Xg(t,n,e,i,o,r,s,a,l){const c=ne(),f=function lA(t,n,e,i,o,r,s,a,l,c=""){const m=Bo(t,ps(),e,o,s,l);return ms(4),m?n+je(e)+i+je(o)+r+je(s)+a+je(l)+c:At}(c,t,n,e,i,o,r,s,a,l);return f!==At&&Cs(c,Di(),f),Xg}function H0(t,n,e,i,o,r,s,a,l,c,f,m,g){const _=ne(),w=function dA(t,n,e,i,o,r,s,a,l,c,f,m,g,_=""){const w=ps();let k=Bo(t,w,e,o,s,l);return k=Sl(t,w+4,f,g)||k,ms(6),k?n+je(e)+i+je(o)+r+je(s)+a+je(l)+c+je(f)+m+je(g)+_:At}(_,t,n,e,i,o,r,s,a,l,c,f,m,g);return w!==At&&Cs(_,Di(),w),H0}function Cs(t,n,e){const i=Wc(n,t);!function nE(t,n,e){t.setValue(n,e)}(t[11],i,e)}function Ut(t,n,e){FI(n)&&(n=n());const i=ne();return un(i,ho(),n)&&(ze(),y1(or(),i,t,n,i[11],e)),Ut}function Zt(t,n){const e=FI(t);return e&&t.set(n),e}function zt(t,n){const e=ne(),i=ze(),o=Ve();return O0(i,e,e[11],o,t,n),zt}function Qt(t){return un(ne(),ho(),t)?je(t):At}function vA(t,n,e){const i=ze();i.firstCreatePass&&yA(n,i.data,i.blueprint,ir(t),e)}function yA(t,n,e,i,o){if(t=qe(t),Array.isArray(t))for(let r=0;r>20;if(as(t)||!t.multi){const _=new Qu(c,o,O,null),w=U0(l,n,o?f:f+g,m);-1===w?(fC(Mm(a,s),r,l),j0(r,t,n.length),n.push(l),a.directiveStart++,a.directiveEnd++,o&&(a.providerIndexes+=1048576),e.push(_),s.push(_)):(e[w]=_,s[w]=_)}else{const _=U0(l,n,f+g,m),w=U0(l,n,f,f+g),T=w>=0&&e[w];if(o&&!T||!o&&!(_>=0&&e[_])){fC(Mm(a,s),r,l);const I=function yZ(t,n,e,i,o){const s=new Qu(t,e,O,null);return s.multi=[],s.index=n,s.componentProviders=0,CA(s,o,i&&!e),s}(o?vZ:bZ,e.length,o,i,c);!o&&T&&(e[w].providerFactory=I),j0(r,t,n.length,0),n.push(l),a.directiveStart++,a.directiveEnd++,o&&(a.providerIndexes+=1048576),e.push(I),s.push(I)}else j0(r,t,_>-1?_:w,CA(e[o?w:_],c,!o&&i));!o&&i&&T&&e[w].componentProviders++}}}function j0(t,n,e,i){const o=as(n),r=function nM(t){return!!t.useClass}(n);if(o||r){const l=(r?qe(n.useClass):n).prototype.ngOnDestroy;if(l){const c=t.destroyHooks||(t.destroyHooks=[]);if(!o&&n.multi){const f=c.indexOf(e);-1===f?c.push(e,[i,l]):c[f+1].push(i,l)}else c.push(e,l)}}}function CA(t,n,e){return e&&t.componentProviders++,t.multi.push(n)-1}function U0(t,n,e,i){for(let o=e;o{e.providersResolver=(i,o)=>vA(i,o?o(t):t,!1),n&&(e.viewProvidersResolver=(i,o)=>vA(i,o?o(n):n,!0))}}function Ct(t,n){const e=Bi()+t,i=ne();return i[e]===At?ar(i,e,n()):function gd(t,n){return t[n]}(i,e)}function se(t,n,e){return kA(ne(),Bi(),t,n,e)}function _t(t,n,e,i){return DA(ne(),Bi(),t,n,e,i)}function SA(t,n,e,i,o){return function MA(t,n,e,i,o,r,s,a){const l=n+e;return Dg(t,l,o,r,s)?ar(t,l+3,a?i.call(a,o,r,s):i(o,r,s)):zh(t,l+3)}(ne(),Bi(),t,n,e,i,o)}function zh(t,n){const e=t[n];return e===At?void 0:e}function kA(t,n,e,i,o,r){const s=n+e;return un(t,s,o)?ar(t,s+1,r?i.call(r,o):i(o)):zh(t,s+1)}function DA(t,n,e,i,o,r,s){const a=n+e;return Sl(t,a,o,r)?ar(t,a+2,s?i.call(s,o,r):i(o,r)):zh(t,a+2)}function b(t,n){const e=ze();let i;const o=t+27;e.firstCreatePass?(i=function EZ(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=Za(i.type)),a=uo(O);try{const l=Dm(!1),c=r();return Dm(l),function Ry(t,n,e,i){e>=t.data.length&&(t.data[e]=null,t.blueprint[e]=null),n[e]=i}(e,ne(),o,c),c}finally{uo(a)}}function y(t,n,e){const i=t+27,o=ne(),r=il(o,i);return $h(o,i)?kA(o,Bi(),n,r.transform,e,r):r.transform(e)}function pe(t,n,e,i){const o=t+27,r=ne(),s=il(r,o);return $h(r,o)?DA(r,Bi(),n,s.transform,e,i,s):s.transform(e,i)}function $h(t,n){return t[1].data[n].pure}function Rl(t,n){return pg(t,n)}class sQ{ngModuleFactory;componentFactories;constructor(n,e){this.ngModuleFactory=n,this.componentFactories=e}}let aQ=(()=>{class t{compileModuleSync(e){return new cI(e)}compileModuleAsync(e){return Promise.resolve(this.compileModuleSync(e))}compileModuleAndAllComponentsSync(e){const i=this.compileModuleSync(e),r=Lr(Er(e).declarations).reduce((s,a)=>{const l=xt(a);return l&&s.push(new Th(l)),s},[]);return new sQ(i,r)}compileModuleAndAllComponentsAsync(e){return Promise.resolve(this.compileModuleAndAllComponentsSync(e))}clearCache(){}clearCacheFor(e){}getModuleId(e){}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),cQ=(()=>{class t{applicationErrorHandler=D(Or);appRef=D(lr);taskService=D(Ys);ngZone=D(_e);zonelessEnabled=D(um);tracing=D(oa,{optional:!0});zoneIsDefined=typeof Zone<"u"&&!!Zone.root.run;schedulerTickApplyArgs=[{data:{__scheduler_tick__:!0}}];subscriptions=new pt;angularZoneId=this.zoneIsDefined?this.ngZone._inner?.get(cm):null;scheduleInRootZone=!this.zonelessEnabled&&this.zoneIsDefined&&(D(zM,{optional:!0})??!1);cancelScheduledCallback=null;useMicrotaskScheduler=!1;runningTick=!1;pendingRenderTaskId=null;constructor(){this.subscriptions.add(this.appRef.afterTick.subscribe(()=>{const e=this.taskService.add();this.runningTick||(this.cleanup(),this.zonelessEnabled&&!this.appRef.includeAllTestViews)?(this.switchToMicrotaskScheduler(),this.taskService.remove(e)):this.taskService.remove(e)})),this.subscriptions.add(this.ngZone.onUnstable.subscribe(()=>{this.runningTick||this.cleanup()}))}switchToMicrotaskScheduler(){this.ngZone.runOutsideAngular(()=>{const e=this.taskService.add();this.useMicrotaskScheduler=!0,queueMicrotask(()=>{this.useMicrotaskScheduler=!1,this.taskService.remove(e)})})}notify(e){if(!this.zonelessEnabled&&5===e)return;switch(e){case 0:case 6:case 13:this.appRef.dirtyFlags|=2;break;case 3:case 2:case 4:case 5:case 1:this.appRef.dirtyFlags|=4;break;case 12:this.appRef.dirtyFlags|=16;break;case 11:break;default:this.appRef.dirtyFlags|=8}if(this.appRef.tracingSnapshot=this.tracing?.snapshot(this.appRef.tracingSnapshot)??null,!this.shouldScheduleTick())return;const i=this.useMicrotaskScheduler?Jj:VM;this.pendingRenderTaskId=this.taskService.add(),this.cancelScheduledCallback=this.scheduleInRootZone?Zone.root.run(()=>i(()=>this.tick())):this.ngZone.runOutsideAngular(()=>i(()=>this.tick()))}shouldScheduleTick(){return!(this.appRef.destroyed||null!==this.pendingRenderTaskId||this.runningTick||this.appRef._runningTick||!this.zonelessEnabled&&this.zoneIsDefined&&Zone.current.get(cm+this.angularZoneId))}tick(){if(this.runningTick||this.appRef.destroyed)return;if(0===this.appRef.dirtyFlags)return void this.cleanup();!this.zonelessEnabled&&7&this.appRef.dirtyFlags&&(this.appRef.dirtyFlags|=1);const e=this.taskService.add();try{this.ngZone.run(()=>{this.runningTick=!0,this.appRef._tick()},void 0,this.schedulerTickApplyArgs)}catch(i){this.applicationErrorHandler(i)}finally{this.taskService.remove(e),this.cleanup()}}ngOnDestroy(){this.subscriptions.unsubscribe(),this.cleanup()}cleanup(){if(this.runningTick=!1,this.cancelScheduledCallback?.(),this.cancelScheduledCallback=null,null!==this.pendingRenderTaskId){const e=this.pendingRenderTaskId;this.pendingRenderTaskId=null,this.taskService.remove(e)}}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const ua=new Z("",{factory:()=>D(ua,{optional:!0,skipSelf:!0})||function dQ(){return typeof $localize<"u"&&$localize.locale||Ug}()}),a_=Symbol("InputSignalNode#UNSET"),IR={...ey,transformFn:void 0,applyValueToInputSignal(t,n){Ap(t,n)}};function OR(t,n){const e=Object.create(IR);function i(){if(Pu(e),e.value===a_)throw new X(-950,null);return e.value}return e.value=t,e.transformFn=n?.transform,i[Rn]=e,i}class Yh{attributeName;constructor(n){this.attributeName=n}__NG_ELEMENT_ID__=()=>nh(this.attributeName);toString(){return`HostAttributeToken ${this.attributeName}`}}function AR(t,n){return OR(t,n)}const ree=(AR.required=function oee(t){return OR(a_,t)},AR);function RR(t,n){return nI()}const l_=(RR.required=function see(t,n){return iI()},RR);function FR(t,n){return nI()}const lee=(FR.required=function aee(t,n){return iI()},FR);let dee=(()=>{class t{zone=D(_e);changeDetectionScheduler=D(al);applicationRef=D(lr);applicationErrorHandler=D(Or);_onMicrotaskEmptySubscription;initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.changeDetectionScheduler.runningTick||this.zone.run(()=>{try{this.applicationRef.dirtyFlags|=1,this.applicationRef._tick()}catch(e){this.applicationErrorHandler(e)}})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const uee=new Z("",{factory:()=>!1});function VR(t){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:t?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:t?.runCoalescing??!1}}let pee=(()=>{class t{subscription=new pt;initialized=!1;zone=D(_e);pendingTasks=D(Ys);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(()=>{_e.assertNotInAngularZone(),queueMicrotask(()=>{null!==e&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(e),e=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{_e.assertInAngularZone(),e??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const c_=new Z(""),bee=new Z("");function Xh(t){return!t.moduleRef}let UR;function zR(){UR=vee}function vee(t,n){const e=t.injector.get(lr);if(t._bootstrapComponents.length>0)t._bootstrapComponents.forEach(i=>e.bootstrap(i));else{if(!t.instance.ngDoBootstrap)throw new X(-403,!1);t.instance.ngDoBootstrap(e)}n.push(t)}let $R=(()=>{class t{_injector;_modules=[];_destroyListeners=[];_destroyed=!1;constructor(e){this._injector=e}bootstrapModuleFactory(e,i){const o=[[{provide:al,useExisting:cQ},{provide:_e,useClass:oU},{provide:um,useValue:!0}],...i?.applicationProviders??[],aU],r=function Cq(t,n,e){return new o0(t,n,e,!1)}(e.moduleType,this.injector,o);return zR(),function jR(t){const n=Xh(t)?t.r3Injector:t.moduleRef.injector,e=n.get(_e);return e.run(()=>{Xh(t)?t.r3Injector.resolveInjectorInitializers():t.moduleRef.resolveInjectorInitializers();const i=n.get(Or);let o;if(e.runOutsideAngular(()=>{o=e.onError.subscribe({next:i})}),Xh(t)){const r=()=>n.destroy(),s=t.platformInjector.get(c_);s.add(r),n.onDestroy(()=>{o.unsubscribe(),s.delete(r)})}else{const r=()=>t.moduleRef.destroy(),s=t.platformInjector.get(c_);s.add(r),t.moduleRef.onDestroy(()=>{Lg(t.allPlatformModules,t.moduleRef),o.unsubscribe(),s.delete(r)})}return function yee(t,n,e){try{const i=e();return Rh(i)?i.catch(o=>{throw n.runOutsideAngular(()=>t(o)),o}):i}catch(i){throw n.runOutsideAngular(()=>t(i)),i}}(i,e,()=>{const r=n.get(Ys),s=r.add(),a=n.get(tO);return a.runInitializers(),a.donePromise.then(()=>{if(function QY(t){"string"==typeof t&&(wO=t.toLowerCase().replace(/_/g,"-"))}(n.get(ua,Ug)||Ug),!n.get(bee,!0))return Xh(t)?n.get(lr):(t.allPlatformModules.push(t.moduleRef),t.moduleRef);if(Xh(t)){const f=n.get(lr);return void 0!==t.rootComponent&&f.bootstrap(t.rootComponent),f}return UR?.(t.moduleRef,t.allPlatformModules),t.moduleRef}).finally(()=>{r.remove(s)})})})}({moduleRef:r,allPlatformModules:this._modules,platformInjector:this.injector})}bootstrapModule(e,i=[]){const o=iO({},i);return zR(),function cee(t,n,e){const i=new cI(e);return Promise.resolve(i)}(0,0,e).then(r=>this.bootstrapModuleFactory(r,o))}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new X(404,!1);this._modules.slice().forEach(i=>i.destroy()),this._destroyListeners.forEach(i=>i());const e=this._injector.get(c_,null);e&&(e.forEach(i=>i()),e.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}static \u0275fac=function(i){return new(i||t)(ce(He))};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})(),Rd=null;function WR(t,n,e=[]){const i=`Platform: ${n}`,o=new Z(i);return(r=[])=>{let s=d_();if(!s){const a=[...e,...r,{provide:o,useValue:!0}];s=t?.(a)??function Cee(t){if(d_())throw new X(400,!1);(function GK(){!function E6(t){ED=t}(()=>{throw new X(600,"")})})(),Rd=t;const n=t.get($R);return function qR(t){const n=t.get(u2,null);Qi(t,()=>{n?.forEach(e=>e())})}(t),n}(function GR(t=[],n){return He.create({name:n,providers:[{provide:My,useValue:"platform"},{provide:c_,useValue:new Set([()=>Rd=null])},...t]})}(a,i))}return function wee(){const n=d_();if(!n)throw new X(-401,!1);return n}()}}function d_(){return Rd?.get($R)??null}let Jt=(()=>class t{static __NG_ELEMENT_ID__=Lee})();function Lee(t){return function Bee(t,n,e){if(Ir(t)&&!e){const i=eo(t.index,n);return new bh(i,i)}return 175&t.type?new bh(n[15],n):null}(Ve(),ne(),!(16&~t))}class tF{supports(n){return kg(n)}create(n){return new Hee(n)}}const Vee=(t,n)=>n;class Hee{length=0;collection;_linkedRecords=null;_unlinkedRecords=null;_previousItHead=null;_itHead=null;_itTail=null;_additionsHead=null;_additionsTail=null;_movesHead=null;_movesTail=null;_removalsHead=null;_removalsTail=null;_identityChangesHead=null;_identityChangesTail=null;_trackByFn;constructor(n){this._trackByFn=n||Vee}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 s=!i||e&&e.currentIndex{s=this._trackByFn(o,a),null!==e&&Object.is(e.trackById,s)?(i&&(e=this._verifyReinsertion(e,a,s,o)),Object.is(e.item,a)||this._addIdentityChange(e,a)):(e=this._mismatch(e,a,s,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 jee(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 nF),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 nF),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 jee{item;trackById;currentIndex=null;previousIndex=null;_nextPrevious=null;_prev=null;_next=null;_prevDup=null;_nextDup=null;_prevRemoved=null;_nextRemoved=null;_nextAdded=null;_nextMoved=null;_nextIdentityChange=null;constructor(n,e){this.item=n,this.trackById=e}}class Uee{_head=null;_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 nF{map=new Map;put(n){const e=n.trackById;let i=this.map.get(e);i||(i=new Uee,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 iF(t,n,e){const i=t.previousIndex;if(null===i)return i;let o=0;return e&&i{class t{factories;static \u0275prov=te({token:t,providedIn:"root",factory:rF});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:()=>{const i=D(t,{optional:!0,skipSelf:!0});return t.create(e,i||rF())}}}find(e){const i=this.factories.find(o=>o.supports(e));if(null!=i)return i;throw new X(901,!1)}}return t})();const qee=WR(null,"core",[]);let Kee=(()=>{class t{constructor(e){}static \u0275fac=function(i){return new(i||t)(ce(lr))};static \u0275mod=tt({type:t});static \u0275inj=Je({})}return t})();function De(t){return"boolean"==typeof t?t:null!=t&&"false"!==t}function hr(t,n=NaN){return isNaN(parseFloat(t))||isNaN(Number(t))?n:Number(t)}const sw=Symbol("NOT_SET"),mF=new Set,ate={...ey,kind:"afterRenderEffectPhase",consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!0,value:sw,cleanup:null,consumerMarkedDirty(){if(this.sequence.impl.executing){if(null===this.sequence.lastPhase||this.sequence.lastPhase(Pu(c),c.value),c.signal[Rn]=c,c.registerCleanupFn=f=>(c.cleanup??=new Set).add(f),this.nodes[a]=c,this.hooks[a]=f=>c.phaseFn(f)}}afterRun(){super.afterRun(),this.lastPhase=null}destroy(){if(null!==this.onDestroyFns)for(const n of this.onDestroyFns)n();super.destroy();for(const n of this.nodes)if(n)try{for(const e of n.cleanup??mF)e()}finally{Au(n)}}}function gF(t,n){const e=xt(t),i=n.elementInjector||Jp();return new Th(e).create(i,n.projectableNodes,n.hostElement,n.environmentInjector,n.directives,n.bindings)}function _F(t,n,e){const i=Object.create(mte);i.source=t,i.computation=n,null!=e&&(i.equal=e);const r=()=>{if(Iu(i),Pu(i),i.value===rs)throw i.error;return i.value};return r[Rn]=i,r}const mte={...Ic,value:za,dirty:!0,error:null,equal:Jv,kind:"linkedSignal",producerMustRecompute:t=>t.value===za||t.value===Rc,producerRecomputeValue(t){if(t.value===Rc)throw new Error("");const n=t.value;t.value=Rc;const e=Oc(t);let i;try{const o=t.source();i=t.computation(o,n===za||n===rs?void 0:{source:t.sourceValue,value:n}),t.sourceValue=o}catch(o){i=rs,t.error=o}finally{Ou(t,e)}n!==za&&i!==rs&&t.equal(n,i)?t.value=n:(t.value=i,t.version++)}};function nt(t){return function gte(t){const n=Te(null);try{return t()}finally{Te(n)}}(t)}function Ii(t,n){return TD(t,n?.equal)}const xte=t=>t;function yF(t,n){const e=t[Rn],i=t;return i.set=o=>function fte(t,n){Iu(t),Ap(t,n),Pp(t)}(e,o),i.update=o=>function pte(t,n){if(Iu(t),t.value===rs)throw t.error;ID(t,n),Pp(t)}(e,o),i.asReadonly=Xy.bind(t),i}function dw(t,n){return t?n?t.endsWith("/")?n.startsWith("/")?t+n.slice(1):t+n:n.startsWith("/")?t+n:`${t}/${n}`:t:n}function xF(t){const n=t.search(/#|\?|$/);return"/"===t[n-1]?t.slice(0,n-1)+t.slice(n):t}function ws(t){return t&&"?"!==t[0]?`?${t}`:t}Error,Error;let Bl=(()=>{class t{historyGo(e){throw new Error("")}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:()=>D(kF),providedIn:"root"})}return t})();const SF=new Z("");let kF=(()=>{class t extends Bl{_platformLocation;_baseHref;_removeListenerFns=[];constructor(e,i){super(),this._platformLocation=e,this._baseHref=i??this._platformLocation.getBaseHrefFromDOM()??D(et).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 dw(this._baseHref,e)}path(e=!1){const i=this._platformLocation.pathname+ws(this._platformLocation.search),o=this._platformLocation.hash;return o&&e?`${i}${o}`:i}pushState(e,i,o,r){const s=this.prepareExternalUrl(o+ws(r));this._platformLocation.pushState(e,i,s)}replaceState(e,i,o,r){const s=this.prepareExternalUrl(o+ws(r));this._platformLocation.replaceState(e,i,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(e=0){this._platformLocation.historyGo?.(e)}static \u0275fac=function(i){return new(i||t)(ce(pm),ce(SF,8))};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Fd=(()=>{class t{_subject=new me;_basePath;_locationStrategy;_urlChangeListeners=[];_urlChangeSubscription=null;constructor(e){this._locationStrategy=e;const i=this._locationStrategy.getBaseHref();this._basePath=function Rte(t){if(new RegExp("^(https?:)?//").test(t)){const[,e]=t.split(/\/\/[^\/]+/);return e}return t}(xF(DF(i))),this._locationStrategy.onPopState(o=>{this._subject.next({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+ws(i))}normalize(e){return t.stripTrailingSlash(function Ate(t,n){if(!t||!n.startsWith(t))return n;const e=n.substring(t.length);return""===e||["/",";","?","#"].includes(e[0])?e:n}(this._basePath,DF(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+ws(i)),o)}replaceState(e,i="",o=null){this._locationStrategy.replaceState(o,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+ws(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??void 0,complete:o??void 0})}static normalizeQueryParams=ws;static joinWithSlash=dw;static stripTrailingSlash=xF;static \u0275fac=function(i){return new(i||t)(ce(Bl))};static \u0275prov=te({token:t,factory:()=>function Ote(){return new Fd(ce(Bl))}(),providedIn:"root"})}return t})();function DF(t){return t.replace(/\/index.html$/,"")}let Nte=(()=>{class t extends Bl{_platformLocation;_baseHref="";_removeListenerFns=[];constructor(e,i){super(),this._platformLocation=e,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=dw(this._baseHref,e);return i.length>0?"#"+i:i}pushState(e,i,o,r){const s=this.prepareExternalUrl(o+ws(r))||this._platformLocation.pathname;this._platformLocation.pushState(e,i,s)}replaceState(e,i,o,r){const s=this.prepareExternalUrl(o+ws(r))||this._platformLocation.pathname;this._platformLocation.replaceState(e,i,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(e=0){this._platformLocation.historyGo?.(e)}static \u0275fac=function(i){return new(i||t)(ce(pm),ce(SF,8))};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();var g_=function(t){return t[t.Decimal=0]="Decimal",t[t.Percent=1]="Percent",t[t.Currency=2]="Currency",t[t.Scientific=3]="Scientific",t}(g_||{}),io=function(t){return t[t.Format=0]="Format",t[t.Standalone=1]="Standalone",t}(io||{}),en=function(t){return t[t.Narrow=0]="Narrow",t[t.Abbreviated=1]="Abbreviated",t[t.Wide=2]="Wide",t[t.Short=3]="Short",t}(en||{}),To=function(t){return t[t.Short=0]="Short",t[t.Medium=1]="Medium",t[t.Long=2]="Long",t[t.Full=3]="Full",t}(To||{});function __(t,n){return Ho(to(t)[hn.DateFormat],n)}function b_(t,n){return Ho(to(t)[hn.TimeFormat],n)}function v_(t,n){return Ho(to(t)[hn.DateTimeFormat],n)}function Vo(t,n){const e=to(t),i=e[hn.NumberSymbols][n];if(typeof i>"u"){if(12===n)return e[hn.NumberSymbols][0];if(13===n)return e[hn.NumberSymbols][1]}return i}function TF(t){if(!t[hn.ExtraData])throw new X(2303,!1)}function Ho(t,n){for(let e=n;e>-1;e--)if(typeof t[e]<"u")return t[e];throw new X(2304,!1)}function hw(t){const[n,e]=t.split(":");return{hours:+n,minutes:+e}}const Xte=/^(\d{4,})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,y_={},Zte=/((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/;function EF(t,n,e,i){let o=function sne(t){if(OF(t))return t;if("number"==typeof t&&!isNaN(t))return new Date(t);if("string"==typeof t){if(t=t.trim(),/^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(t)){const[o,r=1,s=1]=t.split("-").map(a=>+a);return C_(o,r-1,s)}const e=parseFloat(t);if(!isNaN(t-e))return new Date(e);let i;if(i=t.match(Xte))return function ane(t){const n=new Date(0);let e=0,i=0;const o=t[8]?n.setUTCFullYear:n.setFullYear,r=t[8]?n.setUTCHours:n.setHours;t[9]&&(e=Number(t[9]+t[10]),i=Number(t[9]+t[11])),o.call(n,Number(t[1]),Number(t[2])-1,Number(t[3]));const s=Number(t[4]||0)-e,a=Number(t[5]||0)-i,l=Number(t[6]||0),c=Math.floor(1e3*parseFloat("0."+(t[7]||0)));return r.call(n,s,a,l,c),n}(i)}const n=new Date(t);if(!OF(n))throw new X(2311,!1);return n}(t);n=xs(e,n)||n;let a,s=[];for(;n;){if(a=Zte.exec(n),!a){s.push(n);break}{s=s.concat(a.slice(1));const f=s.pop();if(!f)break;n=f}}let l=o.getTimezoneOffset();i&&(l=IF(i,l),o=function rne(t,n){const o=t.getTimezoneOffset();return function one(t,n){return(t=new Date(t.getTime())).setMinutes(t.getMinutes()+n),t}(t,-1*(IF(n,o)-o))}(o,i));let c="";return s.forEach(f=>{const m=function ine(t){if(pw[t])return pw[t];let n;switch(t){case"G":case"GG":case"GGG":n=rn(3,en.Abbreviated);break;case"GGGG":n=rn(3,en.Wide);break;case"GGGGG":n=rn(3,en.Narrow);break;case"y":n=ei(0,1,0,!1,!0);break;case"yy":n=ei(0,2,0,!0,!0);break;case"yyy":n=ei(0,3,0,!1,!0);break;case"yyyy":n=ei(0,4,0,!1,!0);break;case"Y":n=k_(1);break;case"YY":n=k_(2,!0);break;case"YYY":n=k_(3);break;case"YYYY":n=k_(4);break;case"M":case"L":n=ei(1,1,1);break;case"MM":case"LL":n=ei(1,2,1);break;case"MMM":n=rn(2,en.Abbreviated);break;case"MMMM":n=rn(2,en.Wide);break;case"MMMMM":n=rn(2,en.Narrow);break;case"LLL":n=rn(2,en.Abbreviated,io.Standalone);break;case"LLLL":n=rn(2,en.Wide,io.Standalone);break;case"LLLLL":n=rn(2,en.Narrow,io.Standalone);break;case"w":n=fw(1);break;case"ww":n=fw(2);break;case"W":n=fw(1,!0);break;case"d":n=ei(2,1);break;case"dd":n=ei(2,2);break;case"c":case"cc":n=ei(7,1);break;case"ccc":n=rn(1,en.Abbreviated,io.Standalone);break;case"cccc":n=rn(1,en.Wide,io.Standalone);break;case"ccccc":n=rn(1,en.Narrow,io.Standalone);break;case"cccccc":n=rn(1,en.Short,io.Standalone);break;case"E":case"EE":case"EEE":n=rn(1,en.Abbreviated);break;case"EEEE":n=rn(1,en.Wide);break;case"EEEEE":n=rn(1,en.Narrow);break;case"EEEEEE":n=rn(1,en.Short);break;case"a":case"aa":case"aaa":n=rn(0,en.Abbreviated);break;case"aaaa":n=rn(0,en.Wide);break;case"aaaaa":n=rn(0,en.Narrow);break;case"b":case"bb":case"bbb":n=rn(0,en.Abbreviated,io.Standalone,!0);break;case"bbbb":n=rn(0,en.Wide,io.Standalone,!0);break;case"bbbbb":n=rn(0,en.Narrow,io.Standalone,!0);break;case"B":case"BB":case"BBB":n=rn(0,en.Abbreviated,io.Format,!0);break;case"BBBB":n=rn(0,en.Wide,io.Format,!0);break;case"BBBBB":n=rn(0,en.Narrow,io.Format,!0);break;case"h":n=ei(3,1,-12);break;case"hh":n=ei(3,2,-12);break;case"H":n=ei(3,1);break;case"HH":n=ei(3,2);break;case"m":n=ei(4,1);break;case"mm":n=ei(4,2);break;case"s":n=ei(5,1);break;case"ss":n=ei(5,2);break;case"S":n=ei(6,1);break;case"SS":n=ei(6,2);break;case"SSS":n=ei(6,3);break;case"Z":case"ZZ":case"ZZZ":n=x_(0);break;case"ZZZZZ":n=x_(3);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":n=x_(1);break;case"OOOO":case"ZZZZ":case"zzzz":n=x_(2);break;default:return null}return pw[t]=n,n}(f);c+=m?m(o,e,l):"''"===f?"'":f.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),c}function C_(t,n,e){const i=new Date(0);return i.setFullYear(t,n,e),i.setHours(0,0,0),i}function xs(t,n){const e=function Bte(t){return to(t)[hn.LocaleId]}(t);if(y_[e]??={},y_[e][n])return y_[e][n];let i="";switch(n){case"shortDate":i=__(t,To.Short);break;case"mediumDate":i=__(t,To.Medium);break;case"longDate":i=__(t,To.Long);break;case"fullDate":i=__(t,To.Full);break;case"shortTime":i=b_(t,To.Short);break;case"mediumTime":i=b_(t,To.Medium);break;case"longTime":i=b_(t,To.Long);break;case"fullTime":i=b_(t,To.Full);break;case"short":const o=xs(t,"shortTime"),r=xs(t,"shortDate");i=w_(v_(t,To.Short),[o,r]);break;case"medium":const s=xs(t,"mediumTime"),a=xs(t,"mediumDate");i=w_(v_(t,To.Medium),[s,a]);break;case"long":const l=xs(t,"longTime"),c=xs(t,"longDate");i=w_(v_(t,To.Long),[l,c]);break;case"full":const f=xs(t,"fullTime"),m=xs(t,"fullDate");i=w_(v_(t,To.Full),[f,m])}return i&&(y_[e][n]=i),i}function w_(t,n){return n&&(t=t.replace(/\{([^}]+)}/g,function(e,i){return null!=n&&i in n?n[i]:e})),t}function fr(t,n,e="-",i,o){let r="";(t<0||o&&t<=0)&&(o?t=1-t:(t=-t,r=e));let s=String(t);for(;s.length0||a>-e)&&(a+=e),3===t)0===a&&-12===e&&(a=12);else if(6===t)return function Qte(t,n){return fr(t,3).substring(0,n)}(a,n);const l=Vo(s,5);return fr(a,n,l,i,o)}}function rn(t,n,e=io.Format,i=!1){return function(o,r){return function ene(t,n,e,i,o,r){switch(e){case 2:return function jte(t,n,e){const i=to(t),r=Ho([i[hn.MonthsFormat],i[hn.MonthsStandalone]],n);return Ho(r,e)}(n,o,i)[t.getMonth()];case 1:return function Hte(t,n,e){const i=to(t),r=Ho([i[hn.DaysFormat],i[hn.DaysStandalone]],n);return Ho(r,e)}(n,o,i)[t.getDay()];case 0:const s=t.getHours(),a=t.getMinutes();if(r){const c=function Wte(t){const n=to(t);return TF(n),(n[hn.ExtraData][2]||[]).map(i=>"string"==typeof i?hw(i):[hw(i[0]),hw(i[1])])}(n),f=function Gte(t,n,e){const i=to(t);TF(i);const r=Ho([i[hn.ExtraData][0],i[hn.ExtraData][1]],n)||[];return Ho(r,e)||[]}(n,o,i),m=c.findIndex(g=>{if(Array.isArray(g)){const[_,w]=g,k=s>=_.hours&&a>=_.minutes,T=s0?Math.floor(o/60):Math.ceil(o/60);switch(t){case 0:return(o>=0?"+":"")+fr(s,2,r)+fr(Math.abs(o%60),2,r);case 1:return"GMT"+(o>=0?"+":"")+fr(s,1,r);case 2:return"GMT"+(o>=0?"+":"")+fr(s,2,r)+":"+fr(Math.abs(o%60),2,r);case 3:return 0===i?"Z":(o>=0?"+":"")+fr(s,2,r)+":"+fr(Math.abs(o%60),2,r);default:throw new X(2310,!1)}}}function PF(t){const n=t.getDay(),e=0===n?-3:4-n;return C_(t.getFullYear(),t.getMonth(),t.getDate()+e)}function fw(t,n=!1){return function(e,i){let o;if(n){const r=new Date(e.getFullYear(),e.getMonth(),1).getDay()-1,s=e.getDate();o=1+Math.floor((s+r)/7)}else{const r=PF(e),s=function nne(t){const n=C_(t,0,1).getDay();return C_(t,0,1+(n<=4?4:11)-n)}(r.getFullYear()),a=r.getTime()-s.getTime();o=1+Math.round(a/6048e5)}return fr(o,t,Vo(i,5))}}function k_(t,n=!1){return function(e,i){return fr(PF(e).getFullYear(),t,Vo(i,5),n)}}const pw={};function IF(t,n){t=t.replace(/:/g,"");const e=Date.parse("Jan 01, 1970 00:00:00 "+t)/6e4;return isNaN(e)?n:e}function OF(t){return t instanceof Date&&!isNaN(t.valueOf())}const lne=/^(\d+)?\.((\d+)(-(\d+))?)?$/;function bw(t){const n=parseInt(t);if(isNaN(n))throw new X(2305,!1);return n}const yw=/\s+/,NF=[];let $t=(()=>{class t{_ngEl;_renderer;initialClasses=NF;rawClass;stateMap=new Map;constructor(e,i){this._ngEl=e,this._renderer=i}set klass(e){this.initialClasses=null!=e?e.trim().split(yw):NF}set ngClass(e){this.rawClass="string"==typeof e?e.trim().split(yw):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(yw).forEach(o=>{i?this._renderer.addClass(this._ngEl.nativeElement,o):this._renderer.removeClass(this._ngEl.nativeElement,o)})}static \u0275fac=function(i){return new(i||t)(O(Re),O(Qn))};static \u0275dir=de({type:t,selectors:[["","ngClass",""]],inputs:{klass:[0,"class","klass"],ngClass:"ngClass"}})}return t})();class Cne{$implicit;ngForOf;index;count;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 LF=(()=>{class t{_viewContainer;_template;_differs;set ngForOf(e){this._ngForOf=e,this._ngForOfDirty=!0}set ngForTrackBy(e){this._trackByFn=e}get ngForTrackBy(){return this._trackByFn}_ngForOf=null;_ngForOfDirty=!0;_differ=null;_trackByFn;constructor(e,i,o){this._viewContainer=e,this._template=i,this._differs=o}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,s)=>{if(null==o.previousIndex)i.createEmbeddedView(this._template,new Cne(o.item,this._ngForOf,-1,-1),null===s?void 0:s);else if(null==s)i.remove(null===r?void 0:r);else if(null!==r){const a=i.get(r);i.move(a,s),BF(a,o)}});for(let o=0,r=i.length;o{BF(i.get(o.currentIndex),o)})}static ngTemplateContextGuard(e,i){return!0}static \u0275fac=function(i){return new(i||t)(O(Ei),O(Ti),O(h_))};static \u0275dir=de({type:t,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"}})}return t})();function BF(t,n){t.context.$implicit=n.item}let tf=(()=>{class t{_viewContainer;_context=new wne;_thenTemplateRef=null;_elseTemplateRef=null;_thenViewRef=null;_elseViewRef=null;constructor(e,i){this._viewContainer=e,this._thenTemplateRef=i}set ngIf(e){this._context.$implicit=this._context.ngIf=e,this._updateView()}set ngIfThen(e){VF(e),this._thenTemplateRef=e,this._thenViewRef=null,this._updateView()}set ngIfElse(e){VF(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 ngIfUseIfTypeGuard;static ngTemplateGuard_ngIf;static ngTemplateContextGuard(e,i){return!0}static \u0275fac=function(i){return new(i||t)(O(Ei),O(Ti))};static \u0275dir=de({type:t,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"}})}return t})();class wne{$implicit=null;ngIf=null}function VF(t,n){if(t&&!t.createEmbeddedView)throw new X(2020,!1)}let Ld=(()=>{class t{_viewContainerRef;_viewRef=null;ngTemplateOutletContext=null;ngTemplateOutlet=null;ngTemplateOutletInjector=null;injector=D(He);constructor(e){this._viewContainerRef=e}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._getInjector()})}}_getInjector(){return"outlet"===this.ngTemplateOutletInjector?this.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 \u0275fac=function(i){return new(i||t)(O(Ei))};static \u0275dir=de({type:t,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},features:[_i]})}return t})();function Ss(t,n){return new X(2100,!1)}const Lne=new Z(""),Bne=new Z("");let fa=(()=>{class t{locale;defaultTimezone;defaultOptions;constructor(e,i,o){this.locale=e,this.defaultTimezone=i,this.defaultOptions=o}transform(e,i,o,r){if(null==e||""===e||e!=e)return null;try{return EF(e,i??this.defaultOptions?.dateFormat??"mediumDate",r||this.locale,o??this.defaultOptions?.timezone??this.defaultTimezone??void 0)}catch(s){throw Ss()}}static \u0275fac=function(i){return new(i||t)(O(ua,16),O(Lne,24),O(Bne,24))};static \u0275pipe=Hi({name:"date",type:t,pure:!0})}return t})(),Vl=(()=>{class t{_locale;constructor(e){this._locale=e}transform(e,i,o){if(!function Sw(t){return!(null==t||""===t||t!=t)}(e))return null;o||=this._locale;try{return function pne(t,n,e){return function gw(t,n,e,i,o,r,s=!1){let a="",l=!1;if(isFinite(t)){let c=function gne(t){let i,o,r,s,a,n=Math.abs(t)+"",e=0;for((o=n.indexOf("."))>-1&&(n=n.replace(".","")),(r=n.search(/e/i))>0?(o<0&&(o=r),o+=+n.slice(r+1),n=n.substring(0,r)):o<0&&(o=n.length),r=0;"0"===n.charAt(r);r++);if(r===(a=n.length))i=[0],o=1;else{for(a--;"0"===n.charAt(a);)a--;for(o-=r,i=[],s=0;r<=a;r++,s++)i[s]=Number(n.charAt(r))}return o>22&&(i=i.splice(0,21),e=o-1,o=1),{digits:i,exponent:e,integerLen:o}}(t);s&&(c=function mne(t){if(0===t.digits[0])return t;const n=t.digits.length-t.integerLen;return t.exponent?t.exponent+=2:(0===n?t.digits.push(0,0):1===n&&t.digits.push(0),t.integerLen+=2),t}(c));let f=n.minInt,m=n.minFrac,g=n.maxFrac;if(r){const R=r.match(lne);if(null===R)throw new X(2306,!1);const W=R[1],Y=R[3],K=R[5];null!=W&&(f=bw(W)),null!=Y&&(m=bw(Y)),null!=K?g=bw(K):null!=Y&&m>g&&(g=m)}!function _ne(t,n,e){if(n>e)throw new X(2307,!1);let i=t.digits,o=i.length-t.integerLen;const r=Math.min(Math.max(n,o),e);let s=r+t.integerLen,a=i[s];if(s>0){i.splice(Math.max(t.integerLen,s));for(let m=s;m=5)if(s-1<0){for(let m=0;m>s;m--)i.unshift(0),t.integerLen++;i.unshift(1),t.integerLen++}else i[s-1]++;for(;o=c?w.pop():l=!1),g>=10?1:0},0);f&&(i.unshift(f),t.integerLen++)}(c,m,g);let _=c.digits,w=c.integerLen;const k=c.exponent;let T=[];for(l=_.every(R=>!R);w0?T=_.splice(w,_.length):(T=_,_=[0]);const I=[];for(_.length>=n.lgSize&&I.unshift(_.splice(-n.lgSize,_.length).join(""));_.length>n.gSize;)I.unshift(_.splice(-n.gSize,_.length).join(""));_.length&&I.unshift(_.join("")),a=I.join(Vo(e,i)),T.length&&(a+=Vo(e,o)+T.join("")),k&&(a+=Vo(e,6)+"+"+k)}else a=Vo(e,9);return a=t<0&&!l?n.negPre+a+n.negSuf:n.posPre+a+n.posSuf,a}(t,function _w(t,n="-"){const e={minInt:1,minFrac:0,maxFrac:0,posPre:"",posSuf:"",negPre:"",negSuf:"",gSize:0,lgSize:0},i=t.split(";"),o=i[0],r=i[1],s=-1!==o.indexOf(".")?o.split("."):[o.substring(0,o.lastIndexOf("0")+1),o.substring(o.lastIndexOf("0")+1)],a=s[0],l=s[1]||"";e.posPre=a.substring(0,a.indexOf("#"));for(let f=0;f{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({})}return t})();class UF{_doc;constructor(n){this._doc=n}manager}let Dw=(()=>{class t extends UF{constructor(e){super(e)}supports(e){return!0}addEventListener(e,i,o,r){return e.addEventListener(i,o,r),()=>this.removeEventListener(e,i,o,r)}removeEventListener(e,i,o,r){return e.removeEventListener(i,o,r)}static \u0275fac=function(i){return new(i||t)(ce(et))};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();const Mw=new Z("");let zF=(()=>{class t{_zone;_plugins;_eventNameToPlugin=new Map;constructor(e,i){this._zone=i,e.forEach(s=>{s.manager=this});const o=e.filter(s=>!(s instanceof Dw));this._plugins=o.slice().reverse();const r=e.find(s=>s instanceof Dw);r&&this._plugins.push(r)}addEventListener(e,i,o,r){return this._findPluginFor(i).addEventListener(e,i,o,r)}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 X(5101,!1);return this._eventNameToPlugin.set(e,i),i}static \u0275fac=function(i){return new(i||t)(ce(Mw),ce(_e))};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();const Tw="ng-app-id";function $F(t){for(const n of t)n.remove()}function WF(t,n){const e=n.createElement("style");return e.textContent=t,e}function Ew(t,n){const e=n.createElement("link");return e.setAttribute("rel","stylesheet"),e.setAttribute("href",t),e}let GF=(()=>{class t{doc;appId;nonce;inline=new Map;external=new Map;hosts=new Set;constructor(e,i,o,r={}){this.doc=e,this.appId=i,this.nonce=o,function Kne(t,n,e,i){const o=t.head?.querySelectorAll(`style[${Tw}="${n}"],link[${Tw}="${n}"]`);if(o)for(const r of o)r.removeAttribute(Tw),r instanceof HTMLLinkElement?i.set(r.href.slice(r.href.lastIndexOf("/")+1),{usage:0,elements:[r]}):r.textContent&&e.set(r.textContent,{usage:0,elements:[r]})}(e,i,this.inline,this.external),this.hosts.add(e.head)}addStyles(e,i){for(const o of e)this.addUsage(o,this.inline,WF);i?.forEach(o=>this.addUsage(o,this.external,Ew))}removeStyles(e,i){for(const o of e)this.removeUsage(o,this.inline);i?.forEach(o=>this.removeUsage(o,this.external))}addUsage(e,i,o){const r=i.get(e);r?r.usage++:i.set(e,{usage:1,elements:[...this.hosts].map(s=>this.addElement(s,o(e,this.doc)))})}removeUsage(e,i){const o=i.get(e);o&&(o.usage--,o.usage<=0&&($F(o.elements),i.delete(e)))}ngOnDestroy(){for(const[,{elements:e}]of[...this.inline,...this.external])$F(e);this.hosts.clear()}addHost(e){this.hosts.add(e);for(const[i,{elements:o}]of this.inline)o.push(this.addElement(e,WF(i,this.doc)));for(const[i,{elements:o}]of this.external)o.push(this.addElement(e,Ew(i,this.doc)))}removeHost(e){this.hosts.delete(e)}addElement(e,i){return this.nonce&&i.setAttribute("nonce",this.nonce),e.appendChild(i)}static \u0275fac=function(i){return new(i||t)(ce(et),ce(Js),ce(xC,8),ce(wC))};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();const Pw={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/Math/MathML"},Iw=/%COMP%/g,eie=new Z("",{factory:()=>!0});function KF(t,n){return n.map(e=>e.replace(Iw,t))}let Ow=(()=>{class t{eventManager;sharedStylesHost;appId;removeStylesOnCompDestroy;doc;ngZone;nonce;tracingService;rendererByCompId=new Map;defaultRenderer;constructor(e,i,o,r,s,a,l=null,c=null){this.eventManager=e,this.sharedStylesHost=i,this.appId=o,this.removeStylesOnCompDestroy=r,this.doc=s,this.ngZone=a,this.nonce=l,this.tracingService=c,this.defaultRenderer=new Aw(e,s,a,this.tracingService)}createRenderer(e,i){if(!e||!i)return this.defaultRenderer;const o=this.getOrCreateRenderer(e,i);return o instanceof ZF?o.applyToHost(e):o instanceof Rw&&o.applyStyles(),o}getOrCreateRenderer(e,i){const o=this.rendererByCompId;let r=o.get(i.id);if(!r){const s=this.doc,a=this.ngZone,l=this.eventManager,c=this.sharedStylesHost,f=this.removeStylesOnCompDestroy,m=this.tracingService;switch(i.encapsulation){case No.Emulated:r=new ZF(l,c,i,this.appId,f,s,a,m);break;case No.ShadowDom:return new XF(l,e,i,s,a,this.nonce,m,c);case No.ExperimentalIsolatedShadowDom:return new XF(l,e,i,s,a,this.nonce,m);default:r=new Rw(l,c,i,f,s,a,m)}o.set(i.id,r)}return r}ngOnDestroy(){this.rendererByCompId.clear()}componentReplaced(e){this.rendererByCompId.delete(e)}static \u0275fac=function(i){return new(i||t)(ce(zF),ce(GF),ce(Js),ce(eie),ce(et),ce(_e),ce(xC),ce(oa,8))};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();class Aw{eventManager;doc;ngZone;tracingService;data=Object.create(null);throwOnSyntheticProps=!0;constructor(n,e,i,o){this.eventManager=n,this.doc=e,this.ngZone=i,this.tracingService=o}destroy(){}destroyNode=null;createElement(n,e){return e?this.doc.createElementNS(Pw[e]||e,n):this.doc.createElement(n)}createComment(n){return this.doc.createComment(n)}createText(n){return this.doc.createTextNode(n)}appendChild(n,e){(YF(n)?n.content:n).appendChild(e)}insertBefore(n,e,i){n&&(YF(n)?n.content:n).insertBefore(e,i)}removeChild(n,e){e.remove()}selectRootElement(n,e){let i="string"==typeof n?this.doc.querySelector(n):n;if(!i)throw new X(-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=Pw[o];r?n.setAttributeNS(r,e,i):n.setAttribute(e,i)}else n.setAttribute(e,i)}removeAttribute(n,e,i){if(i){const o=Pw[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&(ia.DashCase|ia.Important)?n.style.setProperty(e,i,o&ia.Important?"important":""):n.style[e]=i}removeStyle(n,e,i){i&ia.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,o){if("string"==typeof n&&!(n=Xs().getGlobalEventTarget(this.doc,n)))throw new X(5102,!1);let r=this.decoratePreventDefault(i);return this.tracingService?.wrapEventListener&&(r=this.tracingService.wrapEventListener(n,e,r)),this.eventManager.addEventListener(n,e,r,o)}decoratePreventDefault(n){return e=>{if("__ngUnwrap__"===e)return n;!1===n(e)&&e.preventDefault()}}}function YF(t){return"TEMPLATE"===t.tagName&&void 0!==t.content}class XF extends Aw{hostEl;sharedStylesHost;shadowRoot;constructor(n,e,i,o,r,s,a,l){super(n,o,r,a),this.hostEl=e,this.sharedStylesHost=l,this.shadowRoot=e.attachShadow({mode:"open"}),this.sharedStylesHost&&this.sharedStylesHost.addHost(this.shadowRoot);let c=i.styles;c=KF(i.id,c);for(const m of c){const g=document.createElement("style");s&&g.setAttribute("nonce",s),g.textContent=m,this.shadowRoot.appendChild(g)}const f=i.getExternalStyles?.();if(f)for(const m of f){const g=Ew(m,o);s&&g.setAttribute("nonce",s),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(null,e)}parentNode(n){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(n)))}destroy(){this.sharedStylesHost&&this.sharedStylesHost.removeHost(this.shadowRoot)}}class Rw extends Aw{sharedStylesHost;removeStylesOnCompDestroy;styles;styleUrls;constructor(n,e,i,o,r,s,a,l){super(n,r,s,a),this.sharedStylesHost=e,this.removeStylesOnCompDestroy=o;let c=i.styles;this.styles=l?KF(l,c):c,this.styleUrls=i.getExternalStyles?.(l)}applyStyles(){this.sharedStylesHost.addStyles(this.styles,this.styleUrls)}destroy(){this.removeStylesOnCompDestroy&&0===bl.size&&this.sharedStylesHost.removeStyles(this.styles,this.styleUrls)}}class ZF extends Rw{contentAttr;hostAttr;constructor(n,e,i,o,r,s,a,l){const c=o+"-"+i.id;super(n,e,i,r,s,a,l,c),this.contentAttr=function tie(t){return"_ngcontent-%COMP%".replace(Iw,t)}(c),this.hostAttr=function nie(t){return"_nghost-%COMP%".replace(Iw,t)}(c)}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}}class Nw extends gU{supportsDOMEvents=!0;static makeCurrent(){!function mU(t){qM??=t}(new Nw)}onAndCancel(n,e,i,o){return n.addEventListener(e,i,o),()=>{n.removeEventListener(e,i,o)}}dispatchEvent(n,e){n.dispatchEvent(e)}remove(n){n.remove()}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 rie(){return nf=nf||document.head.querySelector("base"),nf?nf.getAttribute("href"):null}();return null==e?null:function sie(t){return new URL(t,document.baseURI).pathname}(e)}resetBaseElement(){nf=null}getUserAgent(){return window.navigator.userAgent}getCookie(n){return KM(document.cookie,n)}}let nf=null,lie=(()=>{class t{build(){return new XMLHttpRequest}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();const JF=["alt","control","meta","shift"],cie={"\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"},die={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey};let uie=(()=>{class t extends UF{constructor(e){super(e)}supports(e){return null!=t.parseEventName(e)}addEventListener(e,i,o,r){const s=t.parseEventName(i),a=t.eventCallback(s.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Xs().onAndCancel(e,s.domEventName,a,r))}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 s="",a=i.indexOf("code");if(a>-1&&(i.splice(a,1),s="code."),JF.forEach(c=>{const f=i.indexOf(c);f>-1&&(i.splice(f,1),s+=c+".")}),s+=r,0!=i.length||0===r.length)return null;const l={};return l.domEventName=o,l.fullKey=s,l}static matchEventFullKeyCode(e,i){let o=cie[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"),JF.forEach(s=>{s!==o&&(0,die[s])(e)&&(r+=s+".")}),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 \u0275fac=function(i){return new(i||t)(ce(et))};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();const mie=WR(qee,"browser",[{provide:wC,useValue:XM},{provide:u2,useValue:function hie(){Nw.makeCurrent()},multi:!0},{provide:et,useFactory:function pie(){return function A7(t){CC=t}(document),document}}]),nN=[{provide:ZI,useClass:class aie{addToWindow(n){Fn.getAngularTestability=(i,o=!0)=>{const r=n.findTestabilityInTree(i,o);if(null==r)throw new X(5103,!1);return r},Fn.getAllAngularTestabilities=()=>n.getAllTestabilities(),Fn.getAllAngularRootElements=()=>n.getAllRootElements(),Fn.frameworkStabilizers||(Fn.frameworkStabilizers=[]),Fn.frameworkStabilizers.push(i=>{const o=Fn.getAllAngularTestabilities();let r=o.length;const s=function(){r--,0==r&&i()};o.forEach(a=>{a.whenStable(s)})})}findTestabilityInTree(n,e,i){return null==e?null:n.getTestability(e)??(i?Xs().isShadowRoot(e)?this.findTestabilityInTree(n,e.host,!0):this.findTestabilityInTree(n,e.parentElement,!0):null)}}},{provide:XI,useClass:f0},{provide:f0,useClass:f0}],iN=[{provide:My,useValue:"root"},{provide:sl,useFactory:function fie(){return new sl}},{provide:Mw,useClass:Dw,multi:!0},{provide:Mw,useClass:uie,multi:!0},Ow,GF,zF,{provide:Lo,useExisting:Ow},{provide:YM,useClass:lie},[]];let oN=(()=>{class t{constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({providers:[...iN,...nN],imports:[qne,Kee]})}return t})();var Le=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}(Le||{});const ks="*";function rN(t){return{type:Le.Style,styles:t,offset:null}}class of{_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_originalOnDoneFns=[];_originalOnStartFns=[];_started=!1;_destroyed=!1;_finished=!1;_position=0;parentPlayer=null;totalTime;constructor(n=0,e=0){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 sN{_onDoneFns=[];_onStartFns=[];_finished=!1;_started=!1;_destroyed=!1;_onDestroyFns=[];parentPlayer=null;totalTime=0;players;constructor(n){this.players=n;let e=0,i=0,o=0;const r=this.players.length;0==r?queueMicrotask(()=>this._onFinish()):this.players.forEach(s=>{s.onDone(()=>{++e==r&&this._onFinish()}),s.onDestroy(()=>{++i==r&&this._onDestroy()}),s.onStart(()=>{++o==r&&this._onStart()})}),this.totalTime=this.players.reduce((s,a)=>Math.max(s,a.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 lN(t){return new X(3e3,!1)}function Die(t){return new X(3002,!1)}function pa(t){switch(t.length){case 0:return new of;case 1:return t[0];default:return new sN(t)}}function cN(t,n,e=new Map,i=new Map){const o=[],r=[];let s=-1,a=null;if(n.forEach(l=>{const c=l.get("offset"),f=c==s,m=f&&a||new Map;l.forEach((g,_)=>{let w=_,k=g;if("offset"!==_)switch(w=t.normalizePropertyName(w,o),k){case"!":k=e.get(_);break;case ks:k=i.get(_);break;default:k=t.normalizeStyleValue(_,w,k,o)}m.set(w,k)}),f||r.push(m),a=m,s=c}),o.length)throw function Lie(){return new X(3502,!1)}();return r}function jw(t,n,e,i){switch(n){case"start":t.onStart(()=>i(e&&Uw(e,"start",t)));break;case"done":t.onDone(()=>i(e&&Uw(e,"done",t)));break;case"destroy":t.onDestroy(()=>i(e&&Uw(e,"destroy",t)))}}function Uw(t,n,e){const r=zw(t.element,t.triggerName,t.fromState,t.toState,n||t.phaseName,e.totalTime??t.totalTime,!!e.disabled),s=t._data;return null!=s&&(r._data=s),r}function zw(t,n,e,i,o="",r=0,s){return{element:t,triggerName:n,fromState:e,toState:i,phaseName:o,totalTime:r,disabled:!!s}}function Eo(t,n,e){let i=t.get(n);return i||t.set(n,i=e),i}function dN(t){const n=t.indexOf(":");return[t.substring(1,n),t.slice(n+1)]}const Yie=typeof document>"u"?null:document.documentElement;function $w(t){const n=t.parentNode||t.host||null;return n===Yie?null:n}let Hl=null,uN=!1;function hN(t,n){for(;n;){if(n===t)return!0;n=$w(n)}return!1}function fN(t,n,e){if(e)return Array.from(t.querySelectorAll(n));const i=t.querySelector(n);return i?[i]:[]}const mN="ng-enter",Ww="ng-leave",M_="ng-trigger",T_=".ng-trigger",gN="ng-animating",Gw=".ng-animating";function Ds(t){if("number"==typeof t)return t;const n=t.match(/^(-?[\.\d]+)(m?s)/);return!n||n.length<2?0:qw(parseFloat(n[1]),n[2])}function qw(t,n){return"s"===n?1e3*t:t}function E_(t,n,e){return t.hasOwnProperty("duration")?t:function noe(t,n,e){let i,o=0,r="";if("string"==typeof t){const s=t.match(toe);if(null===s)return n.push(lN()),{duration:0,delay:0,easing:""};i=qw(parseFloat(s[1]),s[2]);const a=s[3];null!=a&&(o=qw(parseFloat(a),s[4]));const l=s[5];l&&(r=l)}else i=t;if(!e){let s=!1,a=n.length;i<0&&(n.push(function _ie(){return new X(3100,!1)}()),s=!0),o<0&&(n.push(function bie(){return new X(3101,!1)}()),s=!0),s&&n.splice(a,0,lN())}return{duration:i,delay:o,easing:r}}(t,n,e)}const toe=/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i;function Hr(t,n,e){n.forEach((i,o)=>{const r=Yw(o);e&&!e.has(o)&&e.set(o,t.style[r]),t.style[r]=i})}function jl(t,n){n.forEach((e,i)=>{const o=Yw(i);t.style[o]=""})}function rf(t){return Array.isArray(t)?1==t.length?t[0]:function gie(t,n=null){return{type:Le.Sequence,steps:t,options:n}}(t):t}const Kw=new RegExp("{{\\s*(.+?)\\s*}}","g");function _N(t){let n=[];if("string"==typeof t){let e;for(;e=Kw.exec(t);)n.push(e[1]);Kw.lastIndex=0}return n}function sf(t,n,e){const i=`${t}`,o=i.replace(Kw,(r,s)=>{let a=n[s];return null==a&&(e.push(function yie(){return new X(3003,!1)}()),a=""),a.toString()});return o==i?t:o}const roe=/-+([a-z0-9])/g;function Yw(t){return t.replace(roe,(...n)=>n[1].toUpperCase())}function Po(t,n,e){switch(n.type){case Le.Trigger:return t.visitTrigger(n,e);case Le.State:return t.visitState(n,e);case Le.Transition:return t.visitTransition(n,e);case Le.Sequence:return t.visitSequence(n,e);case Le.Group:return t.visitGroup(n,e);case Le.Animate:return t.visitAnimate(n,e);case Le.Keyframes:return t.visitKeyframes(n,e);case Le.Style:return t.visitStyle(n,e);case Le.Reference:return t.visitReference(n,e);case Le.AnimateChild:return t.visitAnimateChild(n,e);case Le.AnimateRef:return t.visitAnimateRef(n,e);case Le.Query:return t.visitQuery(n,e);case Le.Stagger:return t.visitStagger(n,e);default:throw function Cie(){return new X(3004,!1)}()}}function Xw(t,n){return window.getComputedStyle(t)[n]}let Zw=(()=>{class t{validateStyleProperty(e){return function Zie(t){Hl||(Hl=function Qie(){return typeof document<"u"?document.body:null}()||{},uN=!!Hl.style&&"WebkitAppearance"in Hl.style);let n=!0;return Hl.style&&!function Xie(t){return"ebkit"==t.substring(1,6)}(t)&&(n=t in Hl.style,!n&&uN&&(n="Webkit"+t.charAt(0).toUpperCase()+t.slice(1)in Hl.style)),n}(e)}containsElement(e,i){return hN(e,i)}getParentElement(e){return $w(e)}query(e,i,o){return fN(e,i,o)}computeStyle(e,i,o){return o||""}animate(e,i,o,r,s,a=[],l){return new of(o,r)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();class Qw{static NOOP=new Zw}class Jw{}const foe=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 vN extends Jw{normalizePropertyName(n,e){return Yw(n)}normalizeStyleValue(n,e,i,o){let r="";const s=i.toString().trim();if(foe.has(e)&&0!==i&&"0"!==i)if("number"==typeof i)r="px";else{const a=i.match(/^[+-]?[\d\.]+([a-z]*)$/);a&&0==a[1].length&&o.push(function wie(){return new X(3005,!1)}())}return s+r}}const I_=new Set(["true","1"]),O_=new Set(["false","0"]);function yN(t,n){const e=I_.has(t)||O_.has(t),i=I_.has(n)||O_.has(n);return(o,r)=>{let s="*"==t||t==o,a="*"==n||n==r;return!s&&e&&"boolean"==typeof o&&(s=o?I_.has(t):O_.has(t)),!a&&i&&"boolean"==typeof r&&(a=r?I_.has(n):O_.has(n)),s&&a}}const _oe=new RegExp("s*:selfs*,?","g");function tx(t,n,e,i){return new boe(t).build(n,e,i)}class boe{_driver;constructor(n){this._driver=n}build(n,e,i){const o=new Coe(e);return this._resetContextStyleTimingState(o),Po(this,rf(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=[],s=[];return"@"==n.name.charAt(0)&&e.errors.push(function xie(){return new X(3006,!1)}()),n.definitions.forEach(a=>{if(this._resetContextStyleTimingState(e),a.type==Le.State){const l=a,c=l.name;c.toString().split(/\s*,\s*/).forEach(f=>{l.name=f,r.push(this.visitState(l,e))}),l.name=c}else if(a.type==Le.Transition){const l=this.visitTransition(a,e);i+=l.queryCount,o+=l.depCount,s.push(l)}else e.errors.push(function Sie(){return new X(3007,!1)}())}),{type:Le.Trigger,name:n.name,states:r,transitions:s,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,s=o||{};i.styles.forEach(a=>{a instanceof Map&&a.forEach(l=>{_N(l).forEach(c=>{s.hasOwnProperty(c)||r.add(c)})})}),r.size&&e.errors.push(function kie(){return new X(3008,!1)}(0,r.values()))}return{type:Le.State,name:n.name,style:i,options:o?{params:o}:null}}visitTransition(n,e){e.queryCount=0,e.depCount=0;const i=Po(this,rf(n.animation),e),o=function poe(t,n){const e=[];return"string"==typeof t?t.split(/\s*,\s*/).forEach(i=>function moe(t,n,e){if(":"==t[0]){const l=function goe(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 l)return void n.push(l);t=l}const i=t.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==i||i.length<4)return e.push(function Rie(){return new X(3015,!1)}()),n;const o=i[1],r=i[2],s=i[3];n.push(yN(o,s)),"<"==r[0]&&("*"!=o||"*"!=s)&&n.push(yN(s,o))}(i,e,n)):e.push(t),e}(n.expr,e.errors);return{type:Le.Transition,matchers:o,animation:i,queryCount:e.queryCount,depCount:e.depCount,options:Ul(n.options)}}visitSequence(n,e){return{type:Le.Sequence,steps:n.steps.map(i=>Po(this,i,e)),options:Ul(n.options)}}visitGroup(n,e){const i=e.currentTime;let o=0;const r=n.steps.map(s=>{e.currentTime=i;const a=Po(this,s,e);return o=Math.max(o,e.currentTime),a});return e.currentTime=o,{type:Le.Group,steps:r,options:Ul(n.options)}}visitAnimate(n,e){const i=function xoe(t,n){if(t.hasOwnProperty("duration"))return t;if("number"==typeof t)return nx(E_(t,n).duration,0,"");const e=t;if(e.split(/\s+/).some(r=>"{"==r.charAt(0)&&"{"==r.charAt(1))){const r=nx(0,0,"");return r.dynamic=!0,r.strValue=e,r}const o=E_(e,n);return nx(o.duration,o.delay,o.easing)}(n.timings,e.errors);e.currentAnimateTimings=i;let o,r=n.styles?n.styles:rN({});if(r.type==Le.Keyframes)o=this.visitKeyframes(r,e);else{let s=n.styles,a=!1;if(!s){a=!0;const c={};i.easing&&(c.easing=i.easing),s=rN(c)}e.currentTime+=i.duration+i.delay;const l=this.visitStyle(s,e);l.isEmptyStep=a,o=l}return e.currentAnimateTimings=null,{type:Le.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 a of o)"string"==typeof a?a===ks?i.push(a):e.errors.push(Die()):i.push(new Map(Object.entries(a)));let r=!1,s=null;return i.forEach(a=>{if(a instanceof Map&&(a.has("easing")&&(s=a.get("easing"),a.delete("easing")),!r))for(let l of a.values())if(l.toString().indexOf("{{")>=0){r=!0;break}}),{type:Le.Style,styles:i,easing:s,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(s=>{"string"!=typeof s&&s.forEach((a,l)=>{const c=e.collectedStyles.get(e.currentQuerySelector),f=c.get(l);let m=!0;f&&(r!=o&&r>=f.startTime&&o<=f.endTime&&(e.errors.push(function Mie(){return new X(3010,!1)}()),m=!1),r=f.startTime),m&&c.set(l,{startTime:r,endTime:o}),e.options&&function ooe(t,n,e){const i=n.params||{},o=_N(t);o.length&&o.forEach(r=>{i.hasOwnProperty(r)||e.push(function vie(){return new X(3001,!1)}())})}(a,e.options,e.errors)})})}visitKeyframes(n,e){const i={type:Le.Keyframes,styles:[],options:null};if(!e.currentAnimateTimings)return e.errors.push(function Tie(){return new X(3011,!1)}()),i;let r=0;const s=[];let a=!1,l=!1,c=0;const f=n.steps.map(I=>{const R=this._makeStyleAst(I,e);let W=null!=R.offset?R.offset:function woe(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}(R.styles),Y=0;return null!=W&&(r++,Y=R.offset=W),l=l||Y<0||Y>1,a=a||Y0&&r{const W=g>0?R==_?1:g*R:s[R],Y=W*T;e.currentTime=w+k.delay+Y,k.duration=Y,this._validateStyleAst(I,e),I.offset=W,i.styles.push(I)}),i}visitReference(n,e){return{type:Le.Reference,animation:Po(this,rf(n.animation),e),options:Ul(n.options)}}visitAnimateChild(n,e){return e.depCount++,{type:Le.AnimateChild,options:Ul(n.options)}}visitAnimateRef(n,e){return{type:Le.AnimateRef,animation:this.visitReference(n.animation,e),options:Ul(n.options)}}visitQuery(n,e){const i=e.currentQuerySelector,o=n.options||{};e.queryCount++,e.currentQuery=n;const[r,s]=function voe(t){const n=!!t.split(/\s*,\s*/).find(e=>":self"==e);return n&&(t=t.replace(_oe,"")),t=t.replace(/@\*/g,T_).replace(/@\w+/g,e=>T_+"-"+e.slice(1)).replace(/:animating/g,Gw),[t,n]}(n.selector);e.currentQuerySelector=i.length?i+" "+r:r,Eo(e.collectedStyles,e.currentQuerySelector,new Map);const a=Po(this,rf(n.animation),e);return e.currentQuery=null,e.currentQuerySelector=i,{type:Le.Query,selector:r,limit:o.limit||0,optional:!!o.optional,includeSelf:s,animation:a,originalSelector:n.selector,options:Ul(n.options)}}visitStagger(n,e){e.currentQuery||e.errors.push(function Oie(){return new X(3013,!1)}());const i="full"===n.timings?{duration:0,delay:0,easing:"full"}:E_(n.timings,e.errors,!0);return{type:Le.Stagger,animation:Po(this,rf(n.animation),e),timings:i,options:null}}}class Coe{errors;queryCount=0;depCount=0;currentTransition=null;currentQuery=null;currentQuerySelector=null;currentAnimateTimings=null;currentTime=0;collectedStyles=new Map;options=null;unsupportedCSSPropertiesFound=new Set;constructor(n){this.errors=n}}function Ul(t){return t?(t={...t}).params&&(t.params=function yoe(t){return t?{...t}:null}(t.params)):t={},t}function nx(t,n,e){return{duration:t,delay:n,easing:e}}function ix(t,n,e,i,o,r,s=null,a=!1){return{type:1,element:t,keyframes:n,preStyleProps:e,postStyleProps:i,duration:o,delay:r,totalTime:o+r,easing:s,subTimeline:a}}class A_{_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 Doe=new RegExp(":enter","g"),Toe=new RegExp(":leave","g");function ox(t,n,e,i,o,r=new Map,s=new Map,a,l,c=[]){return(new Eoe).buildKeyframes(t,n,e,i,o,r,s,a,l,c)}class Eoe{buildKeyframes(n,e,i,o,r,s,a,l,c,f=[]){c=c||new A_;const m=new rx(n,e,c,o,r,f,[]);m.options=l;const g=l.delay?Ds(l.delay):0;m.currentTimeline.delayNextStep(g),m.currentTimeline.setStyles([s],null,m.errors,l),Po(this,i,m);const _=m.timelines.filter(w=>w.containsAnimation());if(_.length&&a.size){let w;for(let k=_.length-1;k>=0;k--){const T=_[k];if(T.element===e){w=T;break}}w&&!w.allowOnlyTimelineStyles()&&w.setStyles([a],null,m.errors,l)}return _.length?_.map(w=>w.buildKeyframes()):[ix(e,[],[],[],0,g,"",!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,s=this._visitSubInstructions(i,o,o.options);r!=s&&e.transformIntoNewTimeline(s)}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 s="number"==typeof r?r:Ds(sf(r,o?.params??{},e.errors));i.delayNextStep(s)}}}_visitSubInstructions(n,e,i){let r=e.currentTimeline.currentTime;const s=null!=i.duration?Ds(i.duration):null,a=null!=i.delay?Ds(i.delay):null;return 0!==s&&n.forEach(l=>{const c=e.appendInstructionToTimeline(l,s,a);r=Math.max(r,c.duration+c.delay)}),r}visitReference(n,e){e.updateOptions(n.options,!0),Po(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==Le.Style&&(o.currentTimeline.snapshotCurrentStyles(),o.previousNode=R_);const s=Ds(r.delay);o.delayNextStep(s)}n.steps.length&&(n.steps.forEach(s=>Po(this,s,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?Ds(n.options.delay):0;n.steps.forEach(s=>{const a=e.createSubContext(n.options);r&&a.delayNextStep(r),Po(this,s,a),o=Math.max(o,a.currentTimeline.currentTime),i.push(a.currentTimeline)}),i.forEach(s=>e.currentTimeline.mergeTimelineCollectedStyles(s)),e.transformIntoNewTimeline(o),e.previousNode=n}_visitTiming(n,e){if(n.dynamic){const i=n.strValue;return E_(e.params?sf(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==Le.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,a=e.createSubContext().currentTimeline;a.easing=i.easing,n.styles.forEach(l=>{a.forwardTime((l.offset||0)*r),a.setStyles(l.styles,l.easing,e.errors,e.options),a.applyStylesToKeyframe()}),e.currentTimeline.mergeTimelineCollectedStyles(a),e.transformIntoNewTimeline(o+r),e.previousNode=n}visitQuery(n,e){const i=e.currentTimeline.currentTime,o=n.options||{},r=o.delay?Ds(o.delay):0;r&&(e.previousNode.type===Le.Style||0==i&&e.currentTimeline.hasCurrentStyleProperties())&&(e.currentTimeline.snapshotCurrentStyles(),e.previousNode=R_);let s=i;const a=e.invokeQuery(n.selector,n.originalSelector,n.limit,n.includeSelf,!!o.optional,e.errors);e.currentQueryTotal=a.length;let l=null;a.forEach((c,f)=>{e.currentQueryIndex=f;const m=e.createSubContext(n.options,c);r&&m.delayNextStep(r),c===e.element&&(l=m.currentTimeline),Po(this,n.animation,m),m.currentTimeline.applyStylesToKeyframe(),s=Math.max(s,m.currentTimeline.currentTime)}),e.currentQueryIndex=0,e.currentQueryTotal=0,e.transformIntoNewTimeline(s),l&&(e.currentTimeline.mergeTimelineCollectedStyles(l),e.currentTimeline.snapshotCurrentStyles()),e.previousNode=n}visitStagger(n,e){const i=e.parentContext,o=e.currentTimeline,r=n.timings,s=Math.abs(r.duration),a=s*(e.currentQueryTotal-1);let l=s*e.currentQueryIndex;switch(r.duration<0?"reverse":r.easing){case"reverse":l=a-l;break;case"full":l=i.currentStaggerTime}const f=e.currentTimeline;l&&f.delayNextStep(l);const m=f.currentTime;Po(this,n.animation,e),e.previousNode=n,i.currentStaggerTime=o.currentTime-m+(o.startTime-i.currentTimeline.startTime)}}const R_={};class rx{_driver;element;subInstructions;_enterClassName;_leaveClassName;errors;timelines;parentContext=null;currentTimeline;currentAnimateTimings=null;previousNode=R_;subContextCount=0;options={};currentQueryIndex=0;currentQueryTotal=0;currentStaggerTime=0;constructor(n,e,i,o,r,s,a,l){this._driver=n,this.element=e,this.subInstructions=i,this._enterClassName=o,this._leaveClassName=r,this.errors=s,this.timelines=a,this.currentTimeline=l||new F_(this._driver,e,0),a.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=Ds(i.duration)),null!=i.delay&&(o.delay=Ds(i.delay));const r=i.params;if(r){let s=o.params;s||(s=this.options.params={}),Object.keys(r).forEach(a=>{(!e||!s.hasOwnProperty(a))&&(s[a]=sf(r[a],s,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 rx(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=R_,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 Poe(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,s){let a=[];if(o&&a.push(this.element),n.length>0){n=(n=n.replace(Doe,"."+this._enterClassName)).replace(Toe,"."+this._leaveClassName);let c=this._driver.query(this.element,n,1!=i);0!==i&&(c=i<0?c.slice(c.length+i,c.length):c.slice(0,i)),a.push(...c)}return!r&&0==a.length&&s.push(function Aie(){return new X(3014,!1)}()),a}}class F_{_driver;element;startTime;_elementTimelineStylesLookup;duration=0;easing=null;_previousKeyframe=new Map;_currentKeyframe=new Map;_keyframes=new Map;_styleSummary=new Map;_localTimelineStyles=new Map;_globalTimelineStyles;_pendingStyles=new Map;_backFill=new Map;_currentEmptyStepKeyframe=null;constructor(n,e,i,o){this._driver=n,this.element=e,this.startTime=i,this._elementTimelineStylesLookup=o,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 F_(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||ks),this._currentKeyframe.set(e,ks);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(n,e,i,o){e&&this._previousKeyframe.set("easing",e);const r=o&&o.params||{},s=function Ioe(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,ks)}else for(let[r,s]of o)e.set(r,s)}),e}(n,this._globalTimelineStyles);for(let[a,l]of s){const c=sf(l,r,i);this._pendingStyles.set(a,c),this._localTimelineStyles.has(a)||this._backFill.set(a,this._globalTimelineStyles.get(a)??ks),this._updateStyle(a,c)}}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((a,l)=>{const c=new Map([...this._backFill,...a]);c.forEach((f,m)=>{"!"===f?n.add(m):f===ks&&e.add(m)}),i||c.set("offset",l/this.duration),o.push(c)});const r=[...n.values()],s=[...e.values()];if(i){const a=o[0],l=new Map(a);a.set("offset",0),l.set("offset",1),o=[a,l]}return ix(this.element,o,r,s,this.duration,this.startTime,this.easing,!1)}}class Poe extends F_{keyframes;preStyleProps;postStyleProps;_stretchStartingKeyframe;timings;constructor(n,e,i,o,r,s,a=!1){super(n,e,s.delay),this.keyframes=i,this.preStyleProps=o,this.postStyleProps=r,this._stretchStartingKeyframe=a,this.timings={duration:s.duration,delay:s.delay,easing:s.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=[],s=i+e,a=e/s,l=new Map(n[0]);l.set("offset",0),r.push(l);const c=new Map(n[0]);c.set("offset",xN(a)),r.push(c);const f=n.length-1;for(let m=1;m<=f;m++){let g=new Map(n[m]);const _=g.get("offset");g.set("offset",xN((e+_*i)/s)),r.push(g)}i=s,e=0,o="",n=r}return ix(this.element,n,this.preStyleProps,this.postStyleProps,i,e,o,!0)}}function xN(t,n=3){const e=Math.pow(10,n-1);return Math.round(t*e)/e}function SN(t,n,e,i,o,r,s,a,l,c,f,m,g){return{type:0,element:t,triggerName:n,isRemovalTransition:o,fromState:e,fromStyles:r,toState:i,toStyles:s,timelines:a,queriedElements:l,preStyleProps:c,postStyleProps:f,totalTime:m,errors:g}}const sx={};class kN{_triggerName;ast;_stateStyles;constructor(n,e,i){this._triggerName=n,this.ast=e,this._stateStyles=i}match(n,e,i,o){return function Ooe(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,s,a,l,c,f){const m=[],g=this.ast.options&&this.ast.options.params||sx,w=this.buildStyles(i,a&&a.params||sx,m),k=l&&l.params||sx,T=this.buildStyles(o,k,m),I=new Set,R=new Map,W=new Map,Y="void"===o,K={params:DN(k,g),delay:this.ast.options?.delay},ee=f?[]:ox(n,e,this.ast.animation,r,s,w,T,K,c,m);let ie=0;return ee.forEach(P=>{ie=Math.max(P.duration+P.delay,ie)}),m.length?SN(e,this._triggerName,i,o,Y,w,T,[],[],R,W,ie,m):(ee.forEach(P=>{const A=P.element,L=Eo(R,A,new Set);P.preStyleProps.forEach(H=>L.add(H));const $=Eo(W,A,new Set);P.postStyleProps.forEach(H=>$.add(H)),A!==e&&I.add(A)}),SN(e,this._triggerName,i,o,Y,w,T,ee,[...I.values()],R,W,ie))}}function DN(t,n){const e={...n};return Object.entries(t).forEach(([i,o])=>{null!=o&&(e[i]=o)}),e}class Aoe{styles;defaultParams;normalizer;constructor(n,e,i){this.styles=n,this.defaultParams=e,this.normalizer=i}buildStyles(n,e){const i=new Map,o=DN(n,this.defaultParams);return this.styles.styles.forEach(r=>{"string"!=typeof r&&r.forEach((s,a)=>{s&&(s=sf(s,o,e));const l=this.normalizer.normalizePropertyName(a,e);s=this.normalizer.normalizeStyleValue(a,l,s,e),i.set(a,s)})}),i}}class Foe{name;ast;_normalizer;transitionFactories=[];fallbackTransition;states=new Map;constructor(n,e,i){this.name=n,this.ast=e,this._normalizer=i,e.states.forEach(o=>{this.states.set(o.name,new Aoe(o.style,o.options&&o.options.params||{},i))}),MN(this.states,"true","1"),MN(this.states,"false","0"),e.transitions.forEach(o=>{this.transitionFactories.push(new kN(n,o,this.states))}),this.fallbackTransition=function Noe(t,n){return new kN(t,{type:Le.Transition,animation:{type:Le.Sequence,steps:[],options:null},matchers:[(s,a)=>!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(s=>s.match(n,e,i,o))||null}matchStyles(n,e,i){return this.fallbackTransition.buildStyles(n,e,i)}}function MN(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 Loe=new A_;class Boe{bodyNode;_driver;_normalizer;_animations=new Map;_playersById=new Map;players=[];constructor(n,e,i){this.bodyNode=n,this._driver=e,this._normalizer=i}register(n,e){const i=[],r=tx(this._driver,e,i,[]);if(i.length)throw function Bie(){return new X(3503,!1)}();this._animations.set(n,r)}_buildPlayer(n,e,i){const o=n.element,r=cN(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 s;const a=new Map;if(r?(s=ox(this._driver,e,r,mN,Ww,new Map,new Map,i,Loe,o),s.forEach(f=>{const m=Eo(a,f.element,new Map);f.postStyleProps.forEach(g=>m.set(g,null))})):(o.push(function Vie(){return new X(3300,!1)}()),s=[]),o.length)throw function Hie(){return new X(3504,!1)}();a.forEach((f,m)=>{f.forEach((g,_)=>{f.set(_,this._driver.computeStyle(m,_,ks))})});const c=pa(s.map(f=>{const m=a.get(f.element);return this._buildPlayer(f,new Map,m)}));return this._playersById.set(n,c),c.onDestroy(()=>this.destroy(n)),this.players.push(c),c}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 jie(){return new X(3301,!1)}();return e}listen(n,e,i,o){const r=zw(e,"","","");return jw(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 TN="ng-animate-queued",ax="ng-animate-disabled",zoe=[],EN={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},$oe={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},pr="__ng_removed";class lx{namespaceId;value;options;get params(){return this.options.params}constructor(n,e=""){this.namespaceId=e;const i=n&&n.hasOwnProperty("value");if(this.value=function Koe(t){return t??null}(i?n.value:n),i){const{value:r,...s}=n;this.options=s}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 af="void",cx=new lx(af);class Woe{id;hostElement;_engine;players=[];_triggers=new Map;_queue=[];_elementListeners=new Map;_hostClassName;constructor(n,e,i){this.id=n,this.hostElement=e,this._engine=i,this._hostClassName="ng-tns-"+n,jo(e,this._hostClassName)}listen(n,e,i,o){if(!this._triggers.has(e))throw function Uie(){return new X(3302,!1)}();if(null==i||0==i.length)throw function zie(){return new X(3303,!1)}();if(!function Yoe(t){return"start"==t||"done"==t}(i))throw function $ie(){return new X(3400,!1)}();const r=Eo(this._elementListeners,n,[]),s={name:e,phase:i,callback:o};r.push(s);const a=Eo(this._engine.statesByElement,n,new Map);return a.has(e)||(jo(n,M_),jo(n,M_+"-"+e),a.set(e,cx)),()=>{this._engine.afterFlush(()=>{const l=r.indexOf(s);l>=0&&r.splice(l,1),this._triggers.has(e)||a.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 Wie(){return new X(3401,!1)}();return e}trigger(n,e,i,o=!0){const r=this._getTrigger(e),s=new dx(this.id,e,n);let a=this._engine.statesByElement.get(n);a||(jo(n,M_),jo(n,M_+"-"+e),this._engine.statesByElement.set(n,a=new Map));let l=a.get(e);const c=new lx(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&l&&c.absorbOptions(l.options),a.set(e,c),l||(l=cx),c.value!==af&&l.value===c.value){if(!function Qoe(t,n){const e=Object.keys(t),i=Object.keys(n);if(e.length!=i.length)return!1;for(let o=0;o{jl(n,T),Hr(n,I)})}return}const g=Eo(this._engine.playersByElement,n,[]);g.forEach(k=>{k.namespaceId==this.id&&k.triggerName==e&&k.queued&&k.destroy()});let _=r.matchTransition(l.value,c.value,n,c.params),w=!1;if(!_){if(!o)return;_=r.fallbackTransition,w=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:n,triggerName:e,transition:_,fromState:l,toState:c,player:s,isFallbackTransition:w}),w||(jo(n,TN),s.onStart(()=>{Bd(n,TN)})),s.onDone(()=>{let k=this.players.indexOf(s);k>=0&&this.players.splice(k,1);const T=this._engine.playersByElement.get(n);if(T){let I=T.indexOf(s);I>=0&&T.splice(I,1)}}),this.players.push(s),g.push(s),s}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,T_,!0);i.forEach(o=>{if(o[pr])return;const r=this._engine.fetchNamespacesByElement(o);r.size?r.forEach(s=>s.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),s=new Map;if(r){const a=[];if(r.forEach((l,c)=>{if(s.set(c,l.value),this._triggers.has(c)){const f=this.trigger(n,c,af,o);f&&a.push(f)}}),a.length)return this._engine.markElementAsRemoved(this.id,n,!0,e,s),i&&pa(a).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 s=r.name;if(o.has(s))return;o.add(s);const l=this._triggers.get(s).fallbackTransition,c=i.get(s)||cx,f=new lx(af),m=new dx(this.id,s,n);this._engine.totalQueuedPlayers++,this._queue.push({element:n,triggerName:s,transition:l,fromState:c,toState:f,player:m,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 s=n;for(;s=s.parentNode;)if(i.statesByElement.get(s)){o=!0;break}}}if(this.prepareLeaveAnimationListeners(n),o)i.markElementAsRemoved(this.id,n,!1,e);else{const r=n[pr];(!r||r===EN)&&(i.afterFlush(()=>this.clearElementCache(n)),i.destroyInnerAnimations(n),i._onRemovalComplete(n,e))}}insertNode(n,e){jo(n,this._hostClassName)}drainQueuedTransitions(n){const e=[];return this._queue.forEach(i=>{const o=i.player;if(o.destroyed)return;const r=i.element,s=this._elementListeners.get(r);s&&s.forEach(a=>{if(a.name==i.triggerName){const l=zw(r,i.triggerName,i.fromState.value,i.toState.value);l._data=n,jw(i.player,a.phase,l,a.callback)}}),o.markedForDestroy?this._engine.afterFlush(()=>{o.destroy()}):e.push(i)}),this._queue=[],e.sort((i,o)=>{const r=i.transition.ast.depCount,s=o.transition.ast.depCount;return 0==r||0==s?r-s:this._engine.driver.containsElement(i.element,o.element)?1:-1})}destroy(n){this.players.forEach(e=>e.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,n)}}class Goe{bodyNode;driver;_normalizer;players=[];newHostElements=new Map;playersByElement=new Map;playersByQueriedElement=new Map;statesByElement=new Map;disabledNodes=new Set;totalAnimations=0;totalQueuedPlayers=0;_namespaceLookup={};_namespaceList=[];_flushFns=[];_whenQuietFns=[];namespacesByHostElement=new Map;collectedEnterElements=[];collectedLeaveElements=[];onRemovalComplete=(n,e)=>{};_onRemovalComplete(n,e){this.onRemovalComplete(n,e)}constructor(n,e,i){this.bodyNode=n,this.driver=e,this._normalizer=i}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 Woe(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 s=!1,a=this.driver.getParentElement(e);for(;a;){const l=o.get(a);if(l){const c=i.indexOf(l);i.splice(c+1,0,n),s=!0;break}a=this.driver.getParentElement(a)}s||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(N_(e)){const r=this._fetchNamespace(n);if(r)return r.trigger(e,i,o),!0}return!1}insertNode(n,e,i,o){if(!N_(e))return;const r=e[pr];if(r&&r.setForRemoval){r.setForRemoval=!1,r.setForMove=!0;const s=this.collectedLeaveElements.indexOf(e);s>=0&&this.collectedLeaveElements.splice(s,1)}if(n){const s=this._fetchNamespace(n);s&&s.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),jo(n,ax)):this.disabledNodes.has(n)&&(this.disabledNodes.delete(n),Bd(n,ax))}removeNode(n,e,i){if(N_(e)){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[pr]={namespaceId:n,setForRemoval:o,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:r}}listen(n,e,i,o,r){return N_(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,T_,!0);e.forEach(i=>this.destroyActiveAnimationsForElement(i)),0!=this.playersByQueriedElement.size&&(e=this.driver.query(n,Gw,!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 pa(this.players).onDone(()=>n());n()})}processLeaveNode(n){const e=n[pr];if(e&&e.setForRemoval){if(n[pr]=EN,e.namespaceId){this.destroyInnerAnimations(n);const i=this._fetchNamespace(e.namespaceId);i&&i.clearElementCache(n)}this._onRemovalComplete(n,e.setForRemoval)}n.classList?.contains(ax)&&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?pa(e).onDone(()=>{i.forEach(o=>o())}):i.forEach(o=>o())}}reportError(n){throw function Gie(){return new X(3402,!1)}()}_flushAnimations(n,e){const i=new A_,o=[],r=new Map,s=[],a=new Map,l=new Map,c=new Map,f=new Set;this.disabledNodes.forEach(N=>{f.add(N);const q=this.driver.query(N,".ng-animate-queued",!0);for(let z=0;z{const z=mN+k++;w.set(q,z),N.forEach(Q=>jo(Q,z))});const T=[],I=new Set,R=new Set;for(let N=0;NI.add(Q)):R.add(q))}const W=new Map,Y=ON(g,Array.from(I));Y.forEach((N,q)=>{const z=Ww+k++;W.set(q,z),N.forEach(Q=>jo(Q,z))}),n.push(()=>{_.forEach((N,q)=>{const z=w.get(q);N.forEach(Q=>Bd(Q,z))}),Y.forEach((N,q)=>{const z=W.get(q);N.forEach(Q=>Bd(Q,z))}),T.forEach(N=>{this.processLeaveNode(N)})});const K=[],ee=[];for(let N=this._namespaceList.length-1;N>=0;N--)this._namespaceList[N].drainQueuedTransitions(e).forEach(z=>{const Q=z.player,ue=z.element;if(K.push(Q),this.collectedEnterElements.length){const wt=ue[pr];if(wt&&wt.setForMove){if(wt.previousTriggersValues&&wt.previousTriggersValues.has(z.triggerName)){const Jo=wt.previousTriggersValues.get(z.triggerName),Xi=this.statesByElement.get(z.element);if(Xi&&Xi.has(z.triggerName)){const ja=Xi.get(z.triggerName);ja.value=Jo,Xi.set(z.triggerName,ja)}}return void Q.destroy()}}const Ce=!m||!this.driver.containsElement(m,ue),Ee=W.get(ue),ut=w.get(ue),Oe=this._buildInstruction(z,i,ut,Ee,Ce);if(Oe.errors&&Oe.errors.length)return void ee.push(Oe);if(Ce)return Q.onStart(()=>jl(ue,Oe.fromStyles)),Q.onDestroy(()=>Hr(ue,Oe.toStyles)),void o.push(Q);if(z.isFallbackTransition)return Q.onStart(()=>jl(ue,Oe.fromStyles)),Q.onDestroy(()=>Hr(ue,Oe.toStyles)),void o.push(Q);const Xe=[];Oe.timelines.forEach(wt=>{wt.stretchStartingKeyframe=!0,this.disabledNodes.has(wt.element)||Xe.push(wt)}),Oe.timelines=Xe,i.append(ue,Oe.timelines),s.push({instruction:Oe,player:Q,element:ue}),Oe.queriedElements.forEach(wt=>Eo(a,wt,[]).push(Q)),Oe.preStyleProps.forEach((wt,Jo)=>{if(wt.size){let Xi=l.get(Jo);Xi||l.set(Jo,Xi=new Set),wt.forEach((ja,xo)=>Xi.add(xo))}}),Oe.postStyleProps.forEach((wt,Jo)=>{let Xi=c.get(Jo);Xi||c.set(Jo,Xi=new Set),wt.forEach((ja,xo)=>Xi.add(xo))})});if(ee.length){const N=[];ee.forEach(q=>{N.push(function qie(){return new X(3505,!1)}())}),K.forEach(q=>q.destroy()),this.reportError(N)}const ie=new Map,P=new Map;s.forEach(N=>{const q=N.element;i.has(q)&&(P.set(q,q),this._beforeAnimationBuild(N.player.namespaceId,N.instruction,ie))}),o.forEach(N=>{const q=N.element;this._getPreviousPlayers(q,!1,N.namespaceId,N.triggerName,null).forEach(Q=>{Eo(ie,q,[]).push(Q),Q.destroy()})});const A=T.filter(N=>RN(N,l,c)),L=new Map;IN(L,this.driver,R,c,ks).forEach(N=>{RN(N,l,c)&&A.push(N)});const H=new Map;_.forEach((N,q)=>{IN(H,this.driver,new Set(N),l,"!")}),A.forEach(N=>{const q=L.get(N),z=H.get(N);L.set(N,new Map([...q?.entries()??[],...z?.entries()??[]]))});const G=[],J=[],V={};s.forEach(N=>{const{element:q,player:z,instruction:Q}=N;if(i.has(q)){if(f.has(q))return z.onDestroy(()=>Hr(q,Q.toStyles)),z.disabled=!0,z.overrideTotalTime(Q.totalTime),void o.push(z);let ue=V;if(P.size>1){let Ee=q;const ut=[];for(;Ee=Ee.parentNode;){const Oe=P.get(Ee);if(Oe){ue=Oe;break}ut.push(Ee)}ut.forEach(Oe=>P.set(Oe,ue))}const Ce=this._buildAnimation(z.namespaceId,Q,ie,r,H,L);if(z.setRealPlayer(Ce),ue===V)G.push(z);else{const Ee=this.playersByElement.get(ue);Ee&&Ee.length&&(z.parentPlayer=pa(Ee)),o.push(z)}}else jl(q,Q.fromStyles),z.onDestroy(()=>Hr(q,Q.toStyles)),J.push(z),f.has(q)&&o.push(z)}),J.forEach(N=>{const q=r.get(N.element);if(q&&q.length){const z=pa(q);N.setRealPlayer(z)}}),o.forEach(N=>{N.parentPlayer?N.syncPlayerEvents(N.parentPlayer):N.destroy()});for(let N=0;N!Ce.destroyed);ue.length?Xoe(this,q,ue):this.processLeaveNode(q)}return T.length=0,G.forEach(N=>{this.players.push(N),N.onDone(()=>{N.destroy();const q=this.players.indexOf(N);this.players.splice(q,1)}),N.play()}),G}afterFlush(n){this._flushFns.push(n)}afterFlushAnimationsDone(n){this._whenQuietFns.push(n)}_getPreviousPlayers(n,e,i,o,r){let s=[];if(e){const a=this.playersByQueriedElement.get(n);a&&(s=a)}else{const a=this.playersByElement.get(n);if(a){const l=!r||r==af;a.forEach(c=>{c.queued||!l&&c.triggerName!=o||s.push(c)})}}return(i||o)&&(s=s.filter(a=>!(i&&i!=a.namespaceId||o&&o!=a.triggerName))),s}_beforeAnimationBuild(n,e,i){const r=e.element,s=e.isRemovalTransition?void 0:n,a=e.isRemovalTransition?void 0:e.triggerName;for(const l of e.timelines){const c=l.element,f=c!==r,m=Eo(i,c,[]);this._getPreviousPlayers(c,f,s,a,e.toState).forEach(_=>{const w=_.getRealPlayer();w.beforeDestroy&&w.beforeDestroy(),_.destroy(),m.push(_)})}jl(r,e.fromStyles)}_buildAnimation(n,e,i,o,r,s){const a=e.triggerName,l=e.element,c=[],f=new Set,m=new Set,g=e.timelines.map(w=>{const k=w.element;f.add(k);const T=k[pr];if(T&&T.removedBeforeQueried)return new of(w.duration,w.delay);const I=k!==l,R=function Zoe(t){const n=[];return AN(t,n),n}((i.get(k)||zoe).map(ie=>ie.getRealPlayer())).filter(ie=>!!ie.element&&ie.element===k),W=r.get(k),Y=s.get(k),K=cN(this._normalizer,w.keyframes,W,Y),ee=this._buildPlayer(w,K,R);if(w.subTimeline&&o&&m.add(k),I){const ie=new dx(n,a,k);ie.setRealPlayer(ee),c.push(ie)}return ee});c.forEach(w=>{Eo(this.playersByQueriedElement,w.element,[]).push(w),w.onDone(()=>function qoe(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,w.element,w))}),f.forEach(w=>jo(w,gN));const _=pa(g);return _.onDestroy(()=>{f.forEach(w=>Bd(w,gN)),Hr(l,e.toStyles)}),m.forEach(w=>{Eo(o,w,[]).push(_)}),_}_buildPlayer(n,e,i){return e.length>0?this.driver.animate(n.element,e,n.duration,n.delay,n.easing,i):new of(n.duration,n.delay)}}class dx{namespaceId;triggerName;element;_player=new of;_containsRealPlayer=!1;_queuedCallbacks=new Map;destroyed=!1;parentPlayer=null;markedForDestroy=!1;disabled=!1;queued=!0;totalTime=0;constructor(n,e,i){this.namespaceId=n,this.triggerName=e,this.element=i}setRealPlayer(n){this._containsRealPlayer||(this._player=n,this._queuedCallbacks.forEach((e,i)=>{e.forEach(o=>jw(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){Eo(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 N_(t){return t&&1===t.nodeType}function PN(t,n){const e=t.style.display;return t.style.display=n??"none",e}function IN(t,n,e,i,o){const r=[];e.forEach(l=>r.push(PN(l)));const s=[];i.forEach((l,c)=>{const f=new Map;l.forEach(m=>{const g=n.computeStyle(c,m,o);f.set(m,g),(!g||0==g.length)&&(c[pr]=$oe,s.push(c))}),t.set(c,f)});let a=0;return e.forEach(l=>PN(l,r[a++])),s}function ON(t,n){const e=new Map;if(t.forEach(a=>e.set(a,[])),0==n.length)return e;const o=new Set(n),r=new Map;function s(a){if(!a)return 1;let l=r.get(a);if(l)return l;const c=a.parentNode;return l=e.has(c)?c:o.has(c)?1:s(c),r.set(a,l),l}return n.forEach(a=>{const l=s(a);1!==l&&e.get(l).push(a)}),e}function jo(t,n){t.classList?.add(n)}function Bd(t,n){t.classList?.remove(n)}function Xoe(t,n,e){pa(e).onDone(()=>t.processLeaveNode(n))}function AN(t,n){for(let e=0;eo.add(r)):n.set(t,i),e.delete(t),!0}class lf{_driver;_normalizer;_transitionEngine;_timelineEngine;_triggerCache={};onRemovalComplete=(n,e)=>{};constructor(n,e,i){this._driver=e,this._normalizer=i,this._transitionEngine=new Goe(n.body,e,i),this._timelineEngine=new Boe(n.body,e,i),this._transitionEngine.onRemovalComplete=(o,r)=>this.onRemovalComplete(o,r)}registerTrigger(n,e,i,o,r){const s=n+"-"+o;let a=this._triggerCache[s];if(!a){const l=[],f=tx(this._driver,r,l,[]);if(l.length)throw function Nie(){return new X(3404,!1)}();a=function Roe(t,n,e){return new Foe(t,n,e)}(o,f,this._normalizer),this._triggerCache[s]=a}this._transitionEngine.registerTrigger(e,o,a)}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,s]=dN(i);this._timelineEngine.command(r,e,s,o)}else this._transitionEngine.trigger(n,e,i,o)}listen(n,e,i,o,r){if("@"==i.charAt(0)){const[s,a]=dN(i);return this._timelineEngine.listen(s,e,a,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)}}let ere=(()=>{class t{_element;_startStyles;_endStyles;static initialStylesByElement=new WeakMap;_state=0;_initialStyles;constructor(e,i,o){this._element=e,this._startStyles=i,this._endStyles=o;let r=t.initialStylesByElement.get(e);r||t.initialStylesByElement.set(e,r=new Map),this._initialStyles=r}start(){this._state<1&&(this._startStyles&&Hr(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(Hr(this._element,this._initialStyles),this._endStyles&&(Hr(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(t.initialStylesByElement.delete(this._element),this._startStyles&&(jl(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(jl(this._element,this._endStyles),this._endStyles=null),Hr(this._element,this._initialStyles),this._state=3)}}return t})();function ux(t){let n=null;return t.forEach((e,i)=>{(function tre(t){return"display"===t||"position"===t})(i)&&(n=n||new Map,n.set(i,e))}),n}class FN{element;keyframes;options;_specialStyles;_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_duration;_delay;_initialized=!1;_finished=!1;_started=!1;_destroyed=!1;_finalKeyframe;_originalOnDoneFns=[];_originalOnStartFns=[];domPlayer=null;time=0;parentPlayer=null;currentSnapshot=new Map;constructor(n,e,i,o){this.element=n,this.keyframes=e,this.options=i,this._specialStyles=o,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.domPlayer;this._initialized=!0;const n=this.keyframes,e=this._triggerWebAnimation(this.element,n,this.options);if(!e)return this._onFinish(),null;this.domPlayer=e,this._finalKeyframe=n.length?n[n.length-1]:new Map;const i=()=>this._onFinish();return e.addEventListener("finish",i),this.onDestroy(()=>{e.removeEventListener("finish",i)}),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){const o=this._convertKeyframesToObject(e);try{return n.animate(o,i)}catch{return null}}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(){const n=this._buildPlayer();n&&(this.hasStarted()||(this._onStartFns.forEach(e=>e()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),n.play())}pause(){this.init(),this.domPlayer?.pause()}finish(){this.init(),this.domPlayer&&(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?.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){this.domPlayer||this.init(),this.domPlayer&&(this.domPlayer.currentTime=n*this.time)}getPosition(){return this.domPlayer?+(this.domPlayer.currentTime??0)/this.time:this._initialized?1:0}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:Xw(this.element,o))}),this.currentSnapshot=n}triggerCallback(n){const e="start"===n?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}class NN{validateStyleProperty(n){return!0}validateAnimatableStyleProperty(n){return!0}containsElement(n,e){return hN(n,e)}getParentElement(n){return $w(n)}query(n,e,i){return fN(n,e,i)}computeStyle(n,e,i){return Xw(n,e)}animate(n,e,i,o,r,s=[]){const l={duration:i,delay:o,fill:0==o?"both":"forwards"};r&&(l.easing=r);const c=new Map,f=s.filter(_=>_ instanceof FN);(function soe(t,n){return 0===t||0===n})(i,o)&&f.forEach(_=>{_.currentSnapshot.forEach((w,k)=>c.set(k,w))});let m=function ioe(t){return t.length?t[0]instanceof Map?t:t.map(n=>new Map(Object.entries(n))):[]}(e).map(_=>new Map(_));m=function aoe(t,n,e){if(e.size&&n.length){let i=n[0],o=[];if(e.forEach((r,s)=>{i.has(s)||o.push(s),i.set(s,r)}),o.length)for(let r=1;rs.set(a,Xw(t,a)))}}return n}(n,m,c);const g=function Joe(t,n){let e=null,i=null;return Array.isArray(n)&&n.length?(e=ux(n[0]),n.length>1&&(i=ux(n[n.length-1]))):n instanceof Map&&(e=ux(n)),e||i?new ere(t,e,i):null}(n,m);return new FN(n,m,l,g)}}const LN="@.disabled";class BN{namespaceId;delegate;engine;_onDestroy;\u0275type=0;constructor(n,e,i,o){this.namespaceId=n,this.delegate=e,this.engine=i,this._onDestroy=o}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,o){o?this.delegate.removeChild(n,e,i,o):this.parentNode(e)&&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==LN?this.disableAnimations(n,!!i):this.delegate.setProperty(n,e,i)}setValue(n,e){this.delegate.setValue(n,e)}listen(n,e,i,o){return this.delegate.listen(n,e,i,o)}disableAnimations(n,e){this.engine.disableAnimations(n,e)}}class nre extends BN{factory;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==LN?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,o){if("@"==e.charAt(0)){const r=function ire(t){switch(t){case"body":return document.body;case"document":return document;case"window":return window;default:return t}}(n);let s=e.slice(1),a="";return"@"!=s.charAt(0)&&([s,a]=function ore(t){const n=t.indexOf(".");return[t.substring(0,n),t.slice(n+1)]}(s)),this.engine.listen(this.namespaceId,r,s,a,l=>{this.factory.scheduleListenerCallback(l._data||-1,i,l)})}return this.delegate.listen(n,e,i,o)}}class rre{delegate;engine;_zone;_currentId=0;_microtaskId=1;_animationCallbacksBuffer=[];_rendererCache=new Map;_cdRecurDepth=0;constructor(n,e,i){this.delegate=n,this.engine=e,this._zone=i,e.onRemovalComplete=(o,r)=>{r?.removeChild(null,o)}}createRenderer(n,e){const o=this.delegate.createRenderer(n,e);if(!n||!e?.data?.animation){const c=this._rendererCache;let f=c.get(o);return f||(f=new BN("",o,this.engine,()=>c.delete(o)),c.set(o,f)),f}const r=e.id,s=e.id+"-"+this._currentId;this._currentId++,this.engine.register(s,n);const a=c=>{Array.isArray(c)?c.forEach(a):this.engine.registerTrigger(r,s,n,c.name,c)};return e.data.animation.forEach(a),new nre(this,s,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[s,a]=r;s(a)}),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()}componentReplaced(n){this.engine.flush(),this.delegate.componentReplaced?.(n)}}const VN=[{provide:Jw,useFactory:function lre(){return new vN}},{provide:lf,useClass:(()=>{class t extends lf{constructor(e,i,o){super(e,i,o)}ngOnDestroy(){this.flush()}static \u0275fac=function(i){return new(i||t)(ce(et),ce(Qw),ce(Jw))};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})()},{provide:Lo,useFactory:function cre(){return new rre(D(Ow),D(lf),D(_e))}}],HN=[{provide:Qw,useClass:Zw},{provide:Rm,useValue:"NoopAnimations"},...VN],hx=[{provide:Qw,useFactory:()=>new NN},{provide:Rm,useFactory:()=>"BrowserAnimations"},...VN];let dre=(()=>{class t{static withConfig(e){return{ngModule:t,providers:e.disableAnimations?HN:hx}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({providers:hx,imports:[oN]})}return t})();function ma(t){return this instanceof ma?(this.v=t,this):new ma(t)}function $N(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 gx(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(s){return new Promise(function(a,l){!function o(r,s,a,l){Promise.resolve(l).then(function(c){r({value:c,done:a})},s)}(a,l,(s=t[r](s)).done,s.value)})}}}"function"==typeof SuppressedError&&SuppressedError;const WN=t=>t&&"number"==typeof t.length&&"function"!=typeof t;function GN(t){return cn(t?.then)}function qN(t){return cn(t[sy])}function KN(t){return Symbol.asyncIterator&&cn(t?.[Symbol.asyncIterator])}function YN(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 XN=function Lre(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function ZN(t){return cn(t?.[XN])}function QN(t){return function zN(t,n,e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o,i=e.apply(t,n||[]),r=[];return o=Object.create(("function"==typeof AsyncIterator?AsyncIterator:Object).prototype),a("next"),a("throw"),a("return",function s(_){return function(w){return Promise.resolve(w).then(_,m)}}),o[Symbol.asyncIterator]=function(){return this},o;function a(_,w){i[_]&&(o[_]=function(k){return new Promise(function(T,I){r.push([_,k,T,I])>1||l(_,k)})},w&&(o[_]=w(o[_])))}function l(_,w){try{!function c(_){_.value instanceof ma?Promise.resolve(_.value.v).then(f,m):g(r[0][2],_)}(i[_](w))}catch(k){g(r[0][3],k)}}function f(_){l("next",_)}function m(_){l("throw",_)}function g(_,w){_(w),r.shift(),r.length&&l(r[0][0],r[0][1])}}(this,arguments,function*(){const e=t.getReader();try{for(;;){const{value:i,done:o}=yield ma(e.read());if(o)return yield ma(void 0);yield yield ma(i)}}finally{e.releaseLock()}})}function JN(t){return cn(t?.getReader)}function ji(t){if(t instanceof Ft)return t;if(null!=t){if(qN(t))return function Bre(t){return new Ft(n=>{const e=t[sy]();if(cn(e.subscribe))return e.subscribe(n);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(t);if(WN(t))return function Vre(t){return new Ft(n=>{for(let e=0;e{t.then(e=>{n.closed||(n.next(e),n.complete())},e=>n.error(e)).then(null,FD)})}(t);if(KN(t))return eL(t);if(ZN(t))return function jre(t){return new Ft(n=>{for(const e of t)if(n.next(e),n.closed)return;n.complete()})}(t);if(JN(t))return function Ure(t){return eL(QN(t))}(t)}throw YN(t)}function eL(t){return new Ft(n=>{(function zre(t,n){var e,i,o,r;return function jN(t,n,e,i){return new(e||(e=Promise))(function(r,s){function a(f){try{c(i.next(f))}catch(m){s(m)}}function l(f){try{c(i.throw(f))}catch(m){s(m)}}function c(f){f.done?r(f.value):function o(r){return r instanceof e?r:new e(function(s){s(r)})}(f.value).then(a,l)}c((i=i.apply(t,n||[])).next())})}(this,void 0,void 0,function*(){try{for(e=$N(t);!(i=yield e.next()).done;)if(n.next(i.value),n.closed)return}catch(s){o={error:s}}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 tn(t,n){return Mn((e,i)=>{let o=null,r=0,s=!1;const a=()=>s&&!o&&i.complete();e.subscribe(dn(i,l=>{o?.unsubscribe();let c=0;const f=r++;ji(t(l,f)).subscribe(o=dn(i,m=>i.next(n?n(l,m,f,c++):m),()=>{o=null,a()}))},()=>{s=!0,a()}))})}function B_(t){return Mn((n,e)=>{try{n.subscribe(e)}finally{e.add(t)}})}function Ms(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 It(t,n,e=1/0){return cn(n)?It((i,o)=>Se((r,s)=>n(i,r,o,s))(ji(t(i,o))),e):("number"==typeof n&&(e=n),Mn((i,o)=>function $re(t,n,e,i,o,r,s,a){const l=[];let c=0,f=0,m=!1;const g=()=>{m&&!l.length&&!c&&n.complete()},_=k=>c{r&&n.next(k),c++;let T=!1;ji(e(k,f++)).subscribe(dn(n,I=>{o?.(I),r?_(I):n.next(I)},()=>{T=!0},void 0,()=>{if(T)try{for(c--;l.length&&cw(I)):w(I)}g()}catch(I){n.error(I)}}))};return t.subscribe(dn(n,_,()=>{m=!0,g()})),()=>{a?.()}}(i,o,t,e)))}function cf(t,n){return cn(n)?It(t,n,1):It(t,1)}function Tn(t,n){return Mn((e,i)=>{let o=0;e.subscribe(dn(i,r=>t.call(n,r,o++)&&i.next(r)))})}function tL(t,n=0){return Mn((e,i)=>{e.subscribe(dn(i,o=>Ms(i,t,()=>i.next(o),n),()=>Ms(i,t,()=>i.complete(),n),o=>Ms(i,t,()=>i.error(o),n)))})}function nL(t,n=0){return Mn((e,i)=>{i.add(t.schedule(()=>e.subscribe(i),n))})}function iL(t,n){if(!t)throw new Error("Iterable cannot be null");return new Ft(e=>{Ms(e,n,()=>{const i=t[Symbol.asyncIterator]();Ms(e,n,()=>{i.next().then(o=>{o.done?e.complete():e.next(o.value)})},0,!0)})})}function Kn(t,n){return n?function Xre(t,n){if(null!=t){if(qN(t))return function Wre(t,n){return ji(t).pipe(nL(n),tL(n))}(t,n);if(WN(t))return function qre(t,n){return new Ft(e=>{let i=0;return n.schedule(function(){i===t.length?e.complete():(e.next(t[i++]),e.closed||this.schedule())})})}(t,n);if(GN(t))return function Gre(t,n){return ji(t).pipe(nL(n),tL(n))}(t,n);if(KN(t))return iL(t,n);if(ZN(t))return function Kre(t,n){return new Ft(e=>{let i;return Ms(e,n,()=>{i=t[XN](),Ms(e,n,()=>{let o,r;try{({value:o,done:r}=i.next())}catch(s){return void e.error(s)}r?e.complete():e.next(o)},0,!0)}),()=>cn(i?.return)&&i.return()})}(t,n);if(JN(t))return function Yre(t,n){return iL(QN(t),n)}(t,n)}throw YN(t)}(t,n):ji(t)}function oL(t){return t&&cn(t.schedule)}function bx(t){return t[t.length-1]}function rL(t){return cn(bx(t))?t.pop():void 0}function df(t){return oL(bx(t))?t.pop():void 0}function ae(...t){return Kn(t,df(t))}class Uo{headers;normalizedNames=new Map;lazyInit;lazyUpdate=null;constructor(n){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=e.slice(i+1).trim();this.addHeaderEntry(o,r)}})}:typeof Headers<"u"&&n instanceof Headers?(this.headers=new Map,n.forEach((e,i)=>{this.addHeaderEntry(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 Uo?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 Uo;return e.lazyInit=this.lazyInit&&this.lazyInit instanceof Uo?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 s=this.headers.get(e);if(!s)return;s=s.filter(a=>-1===r.indexOf(a)),0===s.length?(this.headers.delete(e),this.normalizedNames.delete(e)):this.headers.set(e,s)}else this.headers.delete(e),this.normalizedNames.delete(e)}}addHeaderEntry(n,e){const i=n.toLowerCase();this.maybeSetNormalizedName(n,i),this.headers.has(i)?this.headers.get(i).push(e):this.headers.set(i,[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 Qre{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()}}class Jre{encodeKey(n){return aL(n)}encodeValue(n){return aL(n)}decodeKey(n){return decodeURIComponent(n)}decodeValue(n){return decodeURIComponent(n)}}const tse=/%(\d[a-f0-9])/gi,nse={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function aL(t){return encodeURIComponent(t).replace(tse,(n,e)=>nse[e]??n)}function V_(t){return`${t}`}class ga{map;encoder;updates=null;cloneFrom=null;constructor(n={}){if(this.encoder=n.encoder||new Jre,n.fromString){if(n.fromObject)throw new X(2805,!1);this.map=function ese(t,n){const e=new Map;return t.length>0&&t.replace(/^\?/,"").split("&").forEach(o=>{const r=o.indexOf("="),[s,a]=-1==r?[n.decodeKey(o),""]:[n.decodeKey(o.slice(0,r)),n.decodeValue(o.slice(r+1))],l=e.get(s)||[];l.push(a),e.set(s,l)}),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(V_):[V_(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 ga({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(V_(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(V_(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)}}function lL(t){return typeof ArrayBuffer<"u"&&t instanceof ArrayBuffer}function cL(t){return typeof Blob<"u"&&t instanceof Blob}function dL(t){return typeof FormData<"u"&&t instanceof FormData}const uf="Content-Type",uL="text/plain",hL="application/json",fL=`${hL}, ${uL}, */*`;class hf{url;body=null;headers;context;reportProgress=!1;withCredentials=!1;credentials;keepalive=!1;cache;priority;mode;redirect;referrer;integrity;referrerPolicy;responseType="json";method;params;urlWithParams;transferCache;timeout;constructor(n,e,i,o){let r;if(this.url=e,this.method=n.toUpperCase(),function ise(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){if(this.reportProgress=!!r.reportProgress,this.withCredentials=!!r.withCredentials,this.keepalive=!!r.keepalive,r.responseType&&(this.responseType=r.responseType),r.headers&&(this.headers=r.headers),r.context&&(this.context=r.context),r.params&&(this.params=r.params),r.priority&&(this.priority=r.priority),r.cache&&(this.cache=r.cache),r.credentials&&(this.credentials=r.credentials),"number"==typeof r.timeout){if(r.timeout<1||!Number.isInteger(r.timeout))throw new X(2822,"");this.timeout=r.timeout}r.mode&&(this.mode=r.mode),r.redirect&&(this.redirect=r.redirect),r.integrity&&(this.integrity=r.integrity),r.referrer&&(this.referrer=r.referrer),r.referrerPolicy&&(this.referrerPolicy=r.referrerPolicy),this.transferCache=r.transferCache}if(this.headers??=new Uo,this.context??=new Qre,this.params){const s=this.params.toString();if(0===s.length)this.urlWithParams=e;else{const a=e.indexOf("?");this.urlWithParams=e+(-1===a?"?":aee.set(ie,n.setHeaders[ie]),W)),n.setParams&&(Y=Object.keys(n.setParams).reduce((ee,ie)=>ee.set(ie,n.setParams[ie]),Y)),new hf(e,i,T,{params:Y,headers:W,context:K,reportProgress:R,responseType:o,withCredentials:I,transferCache:w,keepalive:r,cache:a,priority:s,timeout:k,mode:l,redirect:c,credentials:f,referrer:m,integrity:g,referrerPolicy:_})}}var _a=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}(_a||{});class vx{headers;status;statusText;url;ok;type;redirected;responseType;constructor(n,e=200,i="OK"){this.headers=n.headers||new Uo,this.status=void 0!==n.status?n.status:e,this.statusText=n.statusText||i,this.url=n.url||null,this.redirected=n.redirected,this.responseType=n.responseType,this.ok=this.status>=200&&this.status<300}}class j_ extends vx{constructor(n={}){super(n)}type=_a.ResponseHeader;clone(n={}){return new j_({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 ff extends vx{body;constructor(n={}){super(n),this.body=void 0!==n.body?n.body:null}type=_a.Response;clone(n={}){return new ff({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,redirected:n.redirected??this.redirected,responseType:n.responseType??this.responseType})}}class zl extends vx{name="HttpErrorResponse";message;error;ok=!1;constructor(n){super(n,0,"Unknown Error"),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}}const mL=new Z(""),dse=/^\)\]\}',?\n/;let gL=(()=>{class t{xhrFactory;tracingService=D(oa,{optional:!0});constructor(e){this.xhrFactory=e}maybePropagateTrace(e){return this.tracingService?.propagate?this.tracingService.propagate(e):e}handle(e){if("JSONP"===e.method)throw new X(-2800,!1);const i=this.xhrFactory;return ae(null).pipe(tn(()=>new Ft(r=>{const s=i.build();if(s.open(e.method,e.urlWithParams),e.withCredentials&&(s.withCredentials=!0),e.headers.forEach((T,I)=>s.setRequestHeader(T,I.join(","))),e.headers.has("Accept")||s.setRequestHeader("Accept",fL),!e.headers.has(uf)){const T=e.detectContentTypeHeader();null!==T&&s.setRequestHeader(uf,T)}if(e.timeout&&(s.timeout=e.timeout),e.responseType){const T=e.responseType.toLowerCase();s.responseType="json"!==T?T:"text"}const a=e.serializeBody();let l=null;const c=()=>{if(null!==l)return l;const T=s.statusText||"OK",I=new Uo(s.getAllResponseHeaders());return l=new j_({headers:I,status:s.status,statusText:T,url:s.responseURL||e.url}),l},f=this.maybePropagateTrace(()=>{let{headers:T,status:I,statusText:R,url:W}=c(),Y=null;204!==I&&(Y=typeof s.response>"u"?s.responseText:s.response),0===I&&(I=Y?200:0);let K=I>=200&&I<300;if("json"===e.responseType&&"string"==typeof Y){const ee=Y;Y=Y.replace(dse,"");try{Y=""!==Y?JSON.parse(Y):null}catch(ie){Y=ee,K&&(K=!1,Y={error:ie,text:Y})}}K?(r.next(new ff({body:Y,headers:T,status:I,statusText:R,url:W||void 0})),r.complete()):r.error(new zl({error:Y,headers:T,status:I,statusText:R,url:W||void 0}))}),m=this.maybePropagateTrace(T=>{const{url:I}=c(),R=new zl({error:T,status:s.status||0,statusText:s.statusText||"Unknown Error",url:I||void 0});r.error(R)});let g=m;e.timeout&&(g=this.maybePropagateTrace(T=>{const{url:I}=c(),R=new zl({error:new DOMException("Request timed out","TimeoutError"),status:s.status||0,statusText:s.statusText||"Request timeout",url:I||void 0});r.error(R)}));let _=!1;const w=this.maybePropagateTrace(T=>{_||(r.next(c()),_=!0);let I={type:_a.DownloadProgress,loaded:T.loaded};T.lengthComputable&&(I.total=T.total),"text"===e.responseType&&s.responseText&&(I.partialText=s.responseText),r.next(I)}),k=this.maybePropagateTrace(T=>{let I={type:_a.UploadProgress,loaded:T.loaded};T.lengthComputable&&(I.total=T.total),r.next(I)});return s.addEventListener("load",f),s.addEventListener("error",m),s.addEventListener("timeout",g),s.addEventListener("abort",m),e.reportProgress&&(s.addEventListener("progress",w),null!==a&&s.upload&&s.upload.addEventListener("progress",k)),s.send(a),r.next({type:_a.Sent}),()=>{s.removeEventListener("error",m),s.removeEventListener("abort",m),s.removeEventListener("load",f),s.removeEventListener("timeout",g),e.reportProgress&&(s.removeEventListener("progress",w),null!==a&&s.upload&&s.upload.removeEventListener("progress",k)),s.readyState!==s.DONE&&s.abort()}})))}static \u0275fac=function(i){return new(i||t)(ce(YM))};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function _L(t,n){return n(t)}function use(t,n){return(e,i)=>n.intercept(e,{handle:o=>t(o,i)})}const fse=new Z(""),pf=new Z("",{factory:()=>[]}),pse=new Z(""),bL=new Z("",{factory:()=>!0});function mse(){let t=null;return(n,e)=>{null===t&&(t=(D(fse,{optional:!0})??[]).reduceRight(use,_L));const i=D(hm);if(D(bL)){const r=i.add();return t(n,e).pipe(B_(r))}return t(n,e)}}let U_=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:function(i){let o=null;return o=i?new(i||t):ce(gL),o},providedIn:"root"})}return t})(),wx=(()=>{class t{backend;injector;chain=null;pendingTasks=D(hm);contributeToStability=D(bL);constructor(e,i){this.backend=e,this.injector=i}handle(e){if(null===this.chain){const i=Array.from(new Set([...this.injector.get(pf),...this.injector.get(pse,[])]));this.chain=i.reduceRight((o,r)=>function hse(t,n,e){return(i,o)=>Qi(e,()=>n(i,r=>t(r,o)))}(o,r,this.injector),_L)}if(this.contributeToStability){const i=this.pendingTasks.add();return this.chain(e,o=>this.backend.handle(o)).pipe(B_(i))}return this.chain(e,i=>this.backend.handle(i))}static \u0275fac=function(i){return new(i||t)(ce(U_),ce(zn))};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),xx=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:function(i){let o=null;return o=i?new(i||t):ce(wx),o},providedIn:"root"})}return t})();function Sx(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,credentials:t.credentials,transferCache:t.transferCache,timeout:t.timeout,keepalive:t.keepalive,priority:t.priority,cache:t.cache,mode:t.mode,redirect:t.redirect,integrity:t.integrity,referrer:t.referrer,referrerPolicy:t.referrerPolicy}}let ba=(()=>{class t{handler;constructor(e){this.handler=e}request(e,i,o={}){let r;if(e instanceof hf)r=e;else{let l,c;l=o.headers instanceof Uo?o.headers:new Uo(o.headers),o.params&&(c=o.params instanceof ga?o.params:new ga({fromObject:o.params})),r=new hf(e,i,void 0!==o.body?o.body:null,{headers:l,context:o.context,params:c,reportProgress:o.reportProgress,responseType:o.responseType||"json",withCredentials:o.withCredentials,transferCache:o.transferCache,keepalive:o.keepalive,priority:o.priority,cache:o.cache,mode:o.mode,redirect:o.redirect,credentials:o.credentials,referrer:o.referrer,referrerPolicy:o.referrerPolicy,integrity:o.integrity,timeout:o.timeout})}const s=ae(r).pipe(cf(l=>this.handler.handle(l)));if(e instanceof hf||"events"===o.observe)return s;const a=s.pipe(Tn(l=>l instanceof ff));switch(o.observe||"body"){case"body":switch(r.responseType){case"arraybuffer":return a.pipe(Se(l=>{if(null!==l.body&&!(l.body instanceof ArrayBuffer))throw new X(2806,!1);return l.body}));case"blob":return a.pipe(Se(l=>{if(null!==l.body&&!(l.body instanceof Blob))throw new X(2807,!1);return l.body}));case"text":return a.pipe(Se(l=>{if(null!==l.body&&"string"!=typeof l.body)throw new X(2808,!1);return l.body}));default:return a.pipe(Se(l=>l.body))}case"response":return a;default:throw new X(2809,!1)}}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 ga).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,Sx(o,i))}post(e,i,o={}){return this.request("POST",e,Sx(o,i))}put(e,i,o={}){return this.request("PUT",e,Sx(o,i))}static \u0275fac=function(i){return new(i||t)(ce(xx))};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const yL=new Z("",{factory:()=>!0}),CL=new Z("",{factory:()=>"XSRF-TOKEN"}),wL=new Z("",{factory:()=>"X-XSRF-TOKEN"});let Cse=(()=>{class t{cookieName=D(CL);doc=D(et);lastCookieString="";lastToken=null;parseCount=0;getToken(){const e=this.doc.cookie||"";return e!==this.lastCookieString&&(this.parseCount++,this.lastToken=KM(e,this.cookieName),this.lastCookieString=e),this.lastToken}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),wse=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:function(i){let o=null;return o=i?new(i||t):ce(Cse),o},providedIn:"root"})}return t})();function xse(t,n){if(!D(yL)||"GET"===t.method||"HEAD"===t.method)return n(t);try{const o=D(pm).href,{origin:r}=new URL(o),{origin:s}=new URL(t.url,r);if(r!==s)return n(t)}catch{return n(t)}const e=D(wse).getToken(),i=D(wL);return null!=e&&!t.headers.has(i)&&(t=t.clone({headers:t.headers.set(i,e)})),n(t)}var va=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}(va||{});function $l(t,n){return{\u0275kind:t,\u0275providers:n}}function Sse(...t){const n=[ba,wx,{provide:xx,useExisting:wx},{provide:U_,useFactory:()=>D(mL,{optional:!0})??D(gL)},{provide:pf,useValue:xse,multi:!0}];for(const e of t)n.push(...e.\u0275providers);return Hu(n)}const xL=new Z("");function jr(t){return!!t&&(t instanceof Ft||cn(t.lift)&&cn(t.subscribe))}const{isArray:Dse}=Array,{getPrototypeOf:Mse,prototype:Tse,keys:Ese}=Object;function SL(t){if(1===t.length){const n=t[0];if(Dse(n))return{args:n,keys:null};if(function Pse(t){return t&&"object"==typeof t&&Mse(t)===Tse}(n)){const e=Ese(n);return{args:e.map(i=>n[i]),keys:e}}}return{args:t,keys:null}}const{isArray:Ise}=Array;function kL(t){return Se(n=>function Ose(t,n){return Ise(n)?t(...n):t(n)}(t,n))}function DL(t,n){return t.reduce((e,i,o)=>(e[i]=n[o],e),{})}function kx(...t){const n=df(t),e=rL(t),{args:i,keys:o}=SL(t);if(0===i.length)return Kn([],n);const r=new Ft(function Ase(t,n,e=Ga){return i=>{ML(n,()=>{const{length:o}=t,r=new Array(o);let s=o,a=o;for(let l=0;l{const c=Kn(t[l],n);let f=!1;c.subscribe(dn(i,m=>{r[l]=m,f||(f=!0,a--),a||i.next(e(r.slice()))},()=>{--s||i.complete()}))},i)},i)}}(i,n,o?s=>DL(o,s):Ga));return e?r.pipe(kL(e)):r}function ML(t,n,e){t?Ms(e,t,n):n()}const Dx=ty(t=>function(){t(this),this.name="EmptyError",this.message="no elements in sequence"});function Vd(t=1/0){return It(Ga,t)}function Ts(...t){return function Rse(){return Vd(1)}()(Kn(t,df(t)))}function ya(t){return new Ft(n=>{ji(t()).subscribe(n)})}const Oi=new Ft(t=>t.complete());function mr(t,n){const e=cn(t)?t:()=>t,i=o=>o.error(e());return new Ft(n?o=>n.schedule(i,0,o):i)}function Cn(t){return t<=0?()=>Oi:Mn((n,e)=>{let i=0;n.subscribe(dn(e,o=>{++i<=t&&(e.next(o),t<=i&&e.complete())}))})}function Bse(t=Vse){return Mn((n,e)=>{let i=!1;n.subscribe(dn(e,o=>{i=!0,e.next(o)},()=>i?e.complete():e.error(t())))})}function Vse(){return new Dx}function Ur(t,n){const e=arguments.length>=2;return i=>i.pipe(t?Tn((o,r)=>t(o,r,i)):Ga,Cn(1),e?function Lse(t){return Mn((n,e)=>{let i=!1;n.subscribe(dn(e,o=>{i=!0,e.next(o)},()=>{i||e.next(t),e.complete()}))})}(n):Bse(()=>new Dx))}function si(...t){const n=df(t);return Mn((e,i)=>{(n?Ts(t,e,n):Ts(t,e)).subscribe(i)})}function fn(t){return Mn((n,e)=>{ji(t).subscribe(dn(e,()=>e.complete(),Np)),!e.closed&&n.subscribe(e)})}function ai(t,n,e){const i=cn(t)||n||e?{next:t,error:n,complete:e}:t;return i?Mn((o,r)=>{var s;null===(s=i.subscribe)||void 0===s||s.call(i);let a=!0;o.subscribe(dn(r,l=>{var c;null===(c=i.next)||void 0===c||c.call(i,l),r.next(l)},()=>{var l;a=!1,null===(l=i.complete)||void 0===l||l.call(i),r.complete()},l=>{var c;a=!1,null===(c=i.error)||void 0===c||c.call(i,l),r.error(l)},()=>{var l,c;a&&(null===(l=i.unsubscribe)||void 0===l||l.call(i)),null===(c=i.finalize)||void 0===c||c.call(i)}))}):Ga}function TL(t){return t<=0?()=>Oi:Mn((n,e)=>{let i=[];n.subscribe(dn(e,o=>{i.push(o),t{for(const o of i)e.next(o);e.complete()},void 0,()=>{i=null}))})}function Ui(t){return Mn((n,e)=>{let r,i=null,o=!1;i=n.subscribe(dn(e,void 0,void 0,s=>{r=ji(t(s,Ui(t)(n))),i?(i.unsubscribe(),i=null,r.subscribe(e)):o=!0})),o&&(i.unsubscribe(),i=null,r.subscribe(e))})}let Zse=(()=>{class t{_doc;constructor(e){this._doc=e}getTitle(){return this._doc.title}setTitle(e){this._doc.title=e||""}static \u0275fac=function(i){return new(i||t)(ce(et))};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Mx=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:function(i){let o=null;return o=i?new(i||t):ce(tae),o},providedIn:"root"})}return t})(),tae=(()=>{class t extends Mx{_doc;constructor(e){super(),this._doc=e}sanitize(e,i){if(null==i)return null;switch(e){case bi.NONE:return i;case bi.HTML:return Fr(i,"HTML")?Mo(i):eE(this._doc,String(i)).toString();case bi.STYLE:return Fr(i,"Style")?Mo(i):i;case bi.SCRIPT:if(Fr(i,"Script"))return Mo(i);throw new X(5200,!1);case bi.URL:return Fr(i,"URL")?Mo(i):ch(String(i));case bi.RESOURCE_URL:if(Fr(i,"ResourceURL"))return Mo(i);throw new X(5201,!1);default:throw new X(5202,!1)}}bypassSecurityTrustHtml(e){return function M9(t){return new C9(t)}(e)}bypassSecurityTrustStyle(e){return function T9(t){return new w9(t)}(e)}bypassSecurityTrustScript(e){return function E9(t){return new x9(t)}(e)}bypassSecurityTrustUrl(e){return function P9(t){return new S9(t)}(e)}bypassSecurityTrustResourceUrl(e){return function I9(t){return new k9(t)}(e)}static \u0275fac=function(i){return new(i||t)(ce(et))};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Ke="primary",gf=Symbol("RouteTitle");class nae{params;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 Hd(t){return new nae(t)}function Tx(t,n,e){for(let i=0;it.length||"full"===e.pathMatch&&(n.hasChildren()||i.lengtht.length||"full"===e.pathMatch&&n.hasChildren()&&"**"!==e.path)return null;const a={};return Tx(r,t.slice(0,r.length),a)&&Tx(s,t.slice(t.length-s.length),a)?{consumed:t,posParams:a}:null}function z_(t){return new Promise((n,e)=>{t.pipe(Ur()).subscribe({next:i=>n(i),error:i=>e(i)})})}function zr(t,n){const e=t?Ex(t):void 0,i=n?Ex(n):void 0;if(!e||!i||e.length!=i.length)return!1;let o;for(let r=0;ri[r]===o)}return t===n}function Wl(t){return jr(t)?t:Rh(t)?Kn(Promise.resolve(t)):ae(t)}function FL(t){return jr(t)?z_(t):Promise.resolve(t)}const sae={exact:function BL(t,n,e){if(!Gl(t.segments,n.segments)||!W_(t.segments,n.segments,e)||t.numberOfChildren!==n.numberOfChildren)return!1;for(const i in n.children)if(!t.children[i]||!BL(t.children[i],n.children[i],e))return!1;return!0},subset:VL},NL={exact:function lae(t,n){return zr(t,n)},subset:function cae(t,n){return Object.keys(n).length<=Object.keys(t).length&&Object.keys(n).every(e=>RL(t[e],n[e]))},ignored:()=>!0},LL={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},$_={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};function Px(t,n,e){return sae[e.paths](t.root,n.root,e.matrixParams)&&NL[e.queryParams](t.queryParams,n.queryParams)&&!("exact"===e.fragment&&t.fragment!==n.fragment)}function VL(t,n,e){return HL(t,n,n.segments,e)}function HL(t,n,e,i){if(t.segments.length>e.length){const o=t.segments.slice(0,e.length);return!(!Gl(o,e)||n.hasChildren()||!W_(o,e,i))}if(t.segments.length===e.length){if(!Gl(t.segments,e)||!W_(t.segments,e,i))return!1;for(const o in n.children)if(!t.children[o]||!VL(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!!(Gl(t.segments,o)&&W_(t.segments,o,i)&&t.children[Ke])&&HL(t.children[Ke],n,r,i)}}function W_(t,n,e){return n.every((i,o)=>NL[e](t[o].parameters,i.parameters))}class gr{root;queryParams;fragment;_queryParamMap;constructor(n=new Wt([],{}),e={},i=null){this.root=n,this.queryParams=e,this.fragment=i}get queryParamMap(){return this._queryParamMap??=Hd(this.queryParams),this._queryParamMap}toString(){return hae.serialize(this)}}class Wt{segments;children;parent=null;constructor(n,e){this.segments=n,this.children=e,Object.values(e).forEach(i=>i.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return G_(this)}}class _f{path;parameters;_parameterMap;constructor(n,e){this.path=n,this.parameters=e}get parameterMap(){return this._parameterMap??=Hd(this.parameters),this._parameterMap}toString(){return zL(this)}}function Gl(t,n){return t.length===n.length&&t.every((e,i)=>e.path===n[i].path)}let jd=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:()=>new bf,providedIn:"root"})}return t})();class bf{parse(n){const e=new xae(n);return new gr(e.parseRootSegment(),e.parseQueryParams(),e.parseFragment())}serialize(n){const e=`/${vf(n.root,!0)}`,i=function mae(t){const n=Object.entries(t).map(([e,i])=>Array.isArray(i)?i.map(o=>`${q_(e)}=${q_(o)}`).join("&"):`${q_(e)}=${q_(i)}`).filter(e=>e);return n.length?`?${n.join("&")}`:""}(n.queryParams);return`${e}${i}${"string"==typeof n.fragment?`#${function fae(t){return encodeURI(t)}(n.fragment)}`:""}`}}const hae=new bf;function G_(t){return t.segments.map(n=>zL(n)).join("/")}function vf(t,n){if(!t.hasChildren())return G_(t);if(n){const e=t.children[Ke]?vf(t.children[Ke],!1):"",i=[];return Object.entries(t.children).forEach(([o,r])=>{o!==Ke&&i.push(`${o}:${vf(r,!1)}`)}),i.length>0?`${e}(${i.join("//")})`:e}{const e=function uae(t,n){let e=[];return Object.entries(t.children).forEach(([i,o])=>{i===Ke&&(e=e.concat(n(o,i)))}),Object.entries(t.children).forEach(([i,o])=>{i!==Ke&&(e=e.concat(n(o,i)))}),e}(t,(i,o)=>o===Ke?[vf(t.children[Ke],!1)]:[`${o}:${vf(i,!1)}`]);return 1===Object.keys(t.children).length&&null!=t.children[Ke]?`${G_(t)}/${e[0]}`:`${G_(t)}/(${e.join("//")})`}}function jL(t){return encodeURIComponent(t).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function q_(t){return jL(t).replace(/%3B/gi,";")}function Ix(t){return jL(t).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function K_(t){return decodeURIComponent(t)}function UL(t){return K_(t.replace(/\+/g,"%20"))}function zL(t){return`${Ix(t.path)}${function pae(t){return Object.entries(t).map(([n,e])=>`;${Ix(n)}=${Ix(e)}`).join("")}(t.parameters)}`}const gae=/^[^\/()?;#]+/;function Ox(t){const n=t.match(gae);return n?n[0]:""}const _ae=/^[^\/()?;=#]+/,vae=/^[^=?&#]+/,Cae=/^[^&#]+/;class xae{url;remaining;constructor(n){this.url=n,this.remaining=n}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new Wt([],{}):new Wt([],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(n=0){if(n>50)throw new X(4010,!1);if(""===this.remaining)return{};this.consumeOptional("/");const e=[];for(this.peekStartsWith("(")||e.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),e.push(this.parseSegment());let i={};this.peekStartsWith("/(")&&(this.capture("/"),i=this.parseParens(!0,n));let o={};return this.peekStartsWith("(")&&(o=this.parseParens(!1,n)),(e.length>0||Object.keys(i).length>0)&&(o[Ke]=new Wt(e,i)),o}parseSegment(){const n=Ox(this.remaining);if(""===n&&this.peekStartsWith(";"))throw new X(4009,!1);return this.capture(n),new _f(K_(n),this.parseMatrixParams())}parseMatrixParams(){const n={};for(;this.consumeOptional(";");)this.parseParam(n);return n}parseParam(n){const e=function bae(t){const n=t.match(_ae);return n?n[0]:""}(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){const o=Ox(this.remaining);o&&(i=o,this.capture(i))}n[K_(e)]=K_(i)}parseQueryParam(n){const e=function yae(t){const n=t.match(vae);return n?n[0]:""}(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){const s=function wae(t){const n=t.match(Cae);return n?n[0]:""}(this.remaining);s&&(i=s,this.capture(i))}const o=UL(e),r=UL(i);if(n.hasOwnProperty(o)){let s=n[o];Array.isArray(s)||(s=[s],n[o]=s),s.push(r)}else n[o]=r}parseParens(n,e){const i={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const o=Ox(this.remaining),r=this.remaining[o.length];if("/"!==r&&")"!==r&&";"!==r)throw new X(4010,!1);let s;o.indexOf(":")>-1?(s=o.slice(0,o.indexOf(":")),this.capture(s),this.capture(":")):n&&(s=Ke);const a=this.parseChildren(e+1);i[s??Ke]=1===Object.keys(a).length&&a[Ke]?a[Ke]:new Wt([],a),this.consumeOptional("//")}return i}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 X(4011,!1)}}function $L(t){return t.segments.length>0?new Wt([],{[Ke]:t}):t}function WL(t){const n={};for(const[i,o]of Object.entries(t.children)){const r=WL(o);if(i===Ke&&0===r.segments.length&&r.hasChildren())for(const[s,a]of Object.entries(r.children))n[s]=a;else(r.segments.length>0||r.hasChildren())&&(n[i]=r)}return function Sae(t){if(1===t.numberOfChildren&&t.children[Ke]){const n=t.children[Ke];return new Wt(t.segments.concat(n.segments),n.children)}return t}(new Wt(t.segments,n))}function ql(t){return t instanceof gr}function GL(t){let n;const o=$L(function e(r){const s={};for(const l of r.children){const c=e(l);s[l.outlet]=c}const a=new Wt(r.url,s);return r===t&&(n=a),a}(t.root));return n??o}function qL(t,n,e,i,o){let r=t;for(;r.parent;)r=r.parent;if(0===n.length)return Ax(r,r,r,e,i,o);const s=function Dae(t){if("string"==typeof t[0]&&1===t.length&&"/"===t[0])return new XL(!0,0,t);let n=0,e=!1;const i=t.reduce((o,r,s)=>{if("object"==typeof r&&null!=r){if(r.outlets){const a={};return Object.entries(r.outlets).forEach(([l,c])=>{a[l]="string"==typeof c?c.split("/"):c}),[...o,{outlets:a}]}if(r.segmentPath)return[...o,r.segmentPath]}return"string"!=typeof r?[...o,r]:0===s?(r.split("/").forEach((a,l)=>{0==l&&"."===a||(0==l&&""===a?e=!0:".."===a?n++:""!=a&&o.push(a))}),o):[...o,r]},[]);return new XL(e,n,i)}(n);if(s.toRoot())return Ax(r,r,new Wt([],{}),e,i,o);const a=function Mae(t,n,e){if(t.isAbsolute)return new X_(n,!0,0);if(!e)return new X_(n,!1,NaN);if(null===e.parent)return new X_(e,!0,0);const i=Y_(t.commands[0])?0:1;return function Tae(t,n,e){let i=t,o=n,r=e;for(;r>o;){if(r-=o,i=i.parent,!i)throw new X(4005,!1);o=i.segments.length}return new X_(i,!1,o-r)}(e,e.segments.length-1+i,t.numberOfDoubleDots)}(s,r,t),l=a.processChildren?Cf(a.segmentGroup,a.index,s.commands):ZL(a.segmentGroup,a.index,s.commands);return Ax(r,a.segmentGroup,l,e,i,o)}function Y_(t){return"object"==typeof t&&null!=t&&!t.outlets&&!t.segmentPath}function yf(t){return"object"==typeof t&&null!=t&&t.outlets}function KL(t,n,e){t||="\u0275";const i=new gr;return i.queryParams={[t]:n},e.parse(e.serialize(i)).queryParams[t]}function Ax(t,n,e,i,o,r){const s={};for(const[c,f]of Object.entries(i??{}))s[c]=Array.isArray(f)?f.map(m=>KL(c,m,r)):KL(c,f,r);let a;a=t===n?e:YL(t,n,e);const l=$L(WL(a));return new gr(l,s,o)}function YL(t,n,e){const i={};return Object.entries(t.children).forEach(([o,r])=>{i[o]=r===n?e:YL(r,n,e)}),new Wt(t.segments,i)}class XL{isAbsolute;numberOfDoubleDots;commands;constructor(n,e,i){if(this.isAbsolute=n,this.numberOfDoubleDots=e,this.commands=i,n&&i.length>0&&Y_(i[0]))throw new X(4003,!1);const o=i.find(yf);if(o&&o!==function rae(t){return t.length>0?t[t.length-1]:null}(i))throw new X(4004,!1)}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class X_{segmentGroup;processChildren;index;constructor(n,e,i){this.segmentGroup=n,this.processChildren=e,this.index=i}}function ZL(t,n,e){if(t??=new Wt([],{}),0===t.segments.length&&t.hasChildren())return Cf(t,n,e);const i=function Pae(t,n,e){let i=0,o=n;const r={match:!1,pathIndex:0,commandIndex:0};for(;o=e.length)return r;const s=t.segments[o],a=e[i];if(yf(a))break;const l=`${a}`,c=i0&&void 0===l)break;if(l&&c&&"object"==typeof c&&void 0===c.outlets){if(!JL(l,c,s))return r;i+=2}else{if(!JL(l,{},s))return r;i++}o++}return{match:!0,pathIndex:o,commandIndex:i}}(t,n,e),o=e.slice(i.commandIndex);if(i.match&&i.pathIndexr!==Ke)&&t.children[Ke]&&1===t.numberOfChildren&&0===t.children[Ke].segments.length){const r=Cf(t.children[Ke],n,e);return new Wt(t.segments,r.children)}return Object.entries(i).forEach(([r,s])=>{"string"==typeof s&&(s=[s]),null!==s&&(o[r]=ZL(t.children[r],n,s))}),Object.entries(t.children).forEach(([r,s])=>{void 0===i[r]&&(o[r]=s)}),new Wt(t.segments,o)}}function Rx(t,n,e){const i=t.segments.slice(0,n);let o=0;for(;o{"string"==typeof i&&(i=[i]),null!==i&&(n[e]=Rx(new Wt([],{}),0,i))}),n}function QL(t){const n={};return Object.entries(t).forEach(([e,i])=>n[e]=`${i}`),n}function JL(t,n,e){return t==e.path&&zr(n,e.parameters)}const wf="imperative";var bt=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}(bt||{});class $r{id;url;constructor(n,e){this.id=n,this.url=e}}class Z_ extends $r{type=bt.NavigationStart;navigationTrigger;restoredState;constructor(n,e,i="imperative",o=null){super(n,e),this.navigationTrigger=i,this.restoredState=o}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class Wr extends $r{urlAfterRedirects;type=bt.NavigationEnd;constructor(n,e,i){super(n,e),this.urlAfterRedirects=i}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}var vo=function(t){return t[t.Redirect=0]="Redirect",t[t.SupersededByNewNavigation=1]="SupersededByNewNavigation",t[t.NoDataFromResolver=2]="NoDataFromResolver",t[t.GuardRejected=3]="GuardRejected",t[t.Aborted=4]="Aborted",t}(vo||{}),Q_=function(t){return t[t.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",t[t.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",t}(Q_||{});class wa extends $r{reason;code;type=bt.NavigationCancel;constructor(n,e,i,o){super(n,e),this.reason=i,this.code=o}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class Ud extends $r{reason;code;type=bt.NavigationSkipped;constructor(n,e,i,o){super(n,e),this.reason=i,this.code=o}}class Fx extends $r{error;target;type=bt.NavigationError;constructor(n,e,i,o){super(n,e),this.error=i,this.target=o}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class e3 extends $r{urlAfterRedirects;state;type=bt.RoutesRecognized;constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Aae extends $r{urlAfterRedirects;state;type=bt.GuardsCheckStart;constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Rae extends $r{urlAfterRedirects;state;shouldActivate;type=bt.GuardsCheckEnd;constructor(n,e,i,o,r){super(n,e),this.urlAfterRedirects=i,this.state=o,this.shouldActivate=r}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class Fae extends $r{urlAfterRedirects;state;type=bt.ResolveStart;constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Nae extends $r{urlAfterRedirects;state;type=bt.ResolveEnd;constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Lae{route;type=bt.RouteConfigLoadStart;constructor(n){this.route=n}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class Bae{route;type=bt.RouteConfigLoadEnd;constructor(n){this.route=n}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class Vae{snapshot;type=bt.ChildActivationStart;constructor(n){this.snapshot=n}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Hae{snapshot;type=bt.ChildActivationEnd;constructor(n){this.snapshot=n}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class jae{snapshot;type=bt.ActivationStart;constructor(n){this.snapshot=n}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Uae{snapshot;type=bt.ActivationEnd;constructor(n){this.snapshot=n}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class t3{routerEvent;position;anchor;scrollBehavior;type=bt.Scroll;constructor(n,e,i,o){this.routerEvent=n,this.position=e,this.anchor=i,this.scrollBehavior=o}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}class Nx{}class n3{}class J_{url;navigationBehaviorOptions;constructor(n,e){this.url=n,this.navigationBehaviorOptions=e}}class $ae{rootInjector;outlet=null;route=null;children;attachRef=null;get injector(){return this.route?.snapshot._environmentInjector??this.rootInjector}constructor(n){this.rootInjector=n,this.children=new xf(this.rootInjector)}}let xf=(()=>{class t{rootInjector;contexts=new Map;constructor(e){this.rootInjector=e}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 $ae(this.rootInjector),this.contexts.set(e,i)),i}getContext(e){return this.contexts.get(e)||null}static \u0275fac=function(i){return new(i||t)(ce(zn))};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();class i3{_root;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=Lx(n,this._root);return e?e.children.map(i=>i.value):[]}firstChild(n){const e=Lx(n,this._root);return e&&e.children.length>0?e.children[0].value:null}siblings(n){const e=Bx(n,this._root);return e.length<2?[]:e[e.length-2].children.map(o=>o.value).filter(o=>o!==n)}pathFromRoot(n){return Bx(n,this._root).map(e=>e.value)}}function Lx(t,n){if(t===n.value)return n;for(const e of n.children){const i=Lx(t,e);if(i)return i}return null}function Bx(t,n){if(t===n.value)return[n];for(const e of n.children){const i=Bx(t,e);if(i.length)return i.unshift(n),i}return[]}class _r{value;children;constructor(n,e){this.value=n,this.children=e}toString(){return`TreeNode(${this.value})`}}function zd(t){const n={};return t&&t.children.forEach(e=>n[e.value.outlet]=e),n}class o3 extends i3{snapshot;constructor(n,e){super(n),this.snapshot=e,jx(this,n)}toString(){return this.snapshot.toString()}}function r3(t,n){const e=function Wae(t,n){const s=new Hx([],{},{},"",{},Ke,t,null,{},n);return new s3("",new _r(s,[]))}(t,n),i=new ki([new _f("",{})]),o=new ki({}),r=new ki({}),s=new ki({}),a=new ki(""),l=new Ai(i,o,s,a,r,Ke,t,e.root);return l.snapshot=e.root,new o3(new _r(l,[]),e)}class Ai{urlSubject;paramsSubject;queryParamsSubject;fragmentSubject;dataSubject;outlet;component;snapshot;_futureSnapshot;_routerState;_paramMap;_queryParamMap;title;url;params;queryParams;fragment;data;constructor(n,e,i,o,r,s,a,l){this.urlSubject=n,this.paramsSubject=e,this.queryParamsSubject=i,this.fragmentSubject=o,this.dataSubject=r,this.outlet=s,this.component=a,this._futureSnapshot=l,this.title=this.dataSubject?.pipe(Se(c=>c[gf]))??ae(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(Se(n=>Hd(n))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe(Se(n=>Hd(n))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function Vx(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&&l3(o)&&(i.resolve[gf]=o.title),i}class Hx{url;params;queryParams;fragment;data;outlet;component;routeConfig;_resolve;_resolvedData;_routerState;_paramMap;_queryParamMap;_environmentInjector;get title(){return this.data?.[gf]}constructor(n,e,i,o,r,s,a,l,c,f){this.url=n,this.params=e,this.queryParams=i,this.fragment=o,this.data=r,this.outlet=s,this.component=a,this.routeConfig=l,this._resolve=c,this._environmentInjector=f}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??=Hd(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=Hd(this.queryParams),this._queryParamMap}toString(){return`Route(url:'${this.url.map(i=>i.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class s3 extends i3{url;constructor(n,e){super(e),this.url=n,jx(this,e)}toString(){return a3(this._root)}}function jx(t,n){n.value._routerState=t,n.children.forEach(e=>jx(t,e))}function a3(t){const n=t.children.length>0?` { ${t.children.map(a3).join(", ")} } `:"";return`${t.value}${n}`}function Ux(t){if(t.snapshot){const n=t.snapshot,e=t._futureSnapshot;t.snapshot=e,zr(n.queryParams,e.queryParams)||t.queryParamsSubject.next(e.queryParams),n.fragment!==e.fragment&&t.fragmentSubject.next(e.fragment),zr(n.params,e.params)||t.paramsSubject.next(e.params),function oae(t,n){if(t.length!==n.length)return!1;for(let e=0;ezr(e.parameters,n[i].parameters))}(t.url,n.url);return e&&!(!t.parent!=!n.parent)&&(!t.parent||zx(t.parent,n.parent))}function l3(t){return"string"==typeof t.title||null===t.title}const Gae=new Z("");let eb=(()=>{class t{activated=null;get activatedComponentRef(){return this.activated}_activatedRoute=null;name=Ke;activateEvents=new we;deactivateEvents=new we;attachEvents=new we;detachEvents=new we;routerOutletData=ree();parentContexts=D(xf);location=D(Ei);changeDetector=D(Jt);inputBinder=D(tb,{optional:!0});supportsBindingToComponentInputs=!0;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 X(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new X(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new X(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 X(4013,!1);this._activatedRoute=e;const o=this.location,s=e.snapshot.component,a=this.parentContexts.getOrCreateContext(this.name).children,l=new qae(e,a,o.injector,this.routerOutletData);this.activated=o.createComponent(s,{index:o.length,injector:l,environmentInjector:i}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["router-outlet"]],inputs:{name:"name",routerOutletData:[1,"routerOutletData"]},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],features:[_i]})}return t})();class qae{route;childContexts;parent;outletData;constructor(n,e,i,o){this.route=n,this.childContexts=e,this.parent=i,this.outletData=o}get(n,e){return n===Ai?this.route:n===xf?this.childContexts:n===Gae?this.outletData:this.parent.get(n,e)}}const tb=new Z("");let c3=(()=>{class t{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=kx([i.queryParams,i.params,i.data]).pipe(tn(([r,s,a],l)=>(a={...r,...s,...a},0===l?ae(a):Promise.resolve(a)))).subscribe(r=>{if(!e.isActivated||!e.activatedComponentRef||e.activatedRoute!==i||null===i.component)return void this.unsubscribeFromRouteData(e);const s=function hte(t){const n=xt(t);if(!n)return null;const e=new Th(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(s)for(const{templateName:a}of s.inputs)e.activatedComponentRef.setInput(a,r[a]);else this.unsubscribeFromRouteData(e)});this.outletDataSubscriptions.set(e,o)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})(),d3=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["ng-component"]],exportAs:["emptyRouterOutlet"],decls:1,vars:0,template:function(i,o){1&i&&B(0,"router-outlet")},dependencies:[eb],encapsulation:2})}return t})();function $x(t){const n=t.children&&t.children.map($x),e=n?{...t,children:n}:{...t};return!e.component&&!e.loadComponent&&(n||e.loadChildren)&&e.outlet&&e.outlet!==Ke&&(e.component=d3),e}function Sf(t,n,e){if(e&&t.shouldReuseRoute(n.value,e.value.snapshot)){const i=e.value;i._futureSnapshot=n.value;const o=function Yae(t,n,e){return n.children.map(i=>{for(const o of e.children)if(t.shouldReuseRoute(i.value,o.value.snapshot))return Sf(t,i,o);return Sf(t,i)})}(t,n,e);return new _r(i,o)}{if(t.shouldAttach(n.value)){const r=t.retrieve(n.value);if(null!==r){const s=r.route;return s.value._futureSnapshot=n.value,s.children=n.children.map(a=>Sf(t,a)),s}}const i=function Xae(t){return new Ai(new ki(t.url),new ki(t.params),new ki(t.queryParams),new ki(t.fragment),new ki(t.data),t.outlet,t.component,t)}(n.value),o=n.children.map(r=>Sf(t,r));return new _r(i,o)}}class Wx{redirectTo;navigationBehaviorOptions;constructor(n,e){this.redirectTo=n,this.navigationBehaviorOptions=e}}const u3="ngNavigationCancelingError";function nb(t,n){const{redirectTo:e,navigationBehaviorOptions:i}=ql(n)?{redirectTo:n,navigationBehaviorOptions:void 0}:n,o=h3(!1,vo.Redirect);return o.url=e,o.navigationBehaviorOptions=i,o}function h3(t,n){const e=new Error(`NavigationCancelingError: ${t||""}`);return e[u3]=!0,e.cancellationCode=n,e}function f3(t){return!!t&&t[u3]}class Qae{routeReuseStrategy;futureState;currState;forwardEvent;inputBindingEnabled;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),Ux(this.futureState.root),this.activateChildRoutes(e,i,n)}deactivateChildRoutes(n,e,i){const o=zd(e);n.children.forEach(r=>{const s=r.value.outlet;this.deactivateRoutes(r,o[s],i),delete o[s]}),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 s=i.getContext(o.outlet);s&&this.deactivateChildRoutes(n,e,s.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=zd(n);for(const s of Object.values(r))this.deactivateRouteAndItsChildren(s,o);if(i&&i.outlet){const s=i.outlet.detach(),a=i.children.onOutletDeactivated();this.routeReuseStrategy.store(n.value.snapshot,{componentRef:s,route:n,contexts:a})}}deactivateRouteAndOutlet(n,e){const i=e.getContext(n.value.outlet),o=i&&n.value.component?i.children:e,r=zd(n);for(const s of Object.values(r))this.deactivateRouteAndItsChildren(s,o);i&&(i.outlet&&(i.outlet.deactivate(),i.children.onOutletDeactivated()),i.attachRef=null,i.route=null)}activateChildRoutes(n,e,i){const o=zd(e);n.children.forEach(r=>{this.activateRoutes(r,o[r.value.outlet],i),this.forwardEvent(new Uae(r.value.snapshot))}),n.children.length&&this.forwardEvent(new Hae(n.value.snapshot))}activateRoutes(n,e,i){const o=n.value,r=e?e.value:null;if(Ux(o),o===r)if(o.component){const s=i.getOrCreateContext(o.outlet);this.activateChildRoutes(n,e,s.children)}else this.activateChildRoutes(n,e,i);else if(o.component){const s=i.getOrCreateContext(o.outlet);if(this.routeReuseStrategy.shouldAttach(o.snapshot)){const a=this.routeReuseStrategy.retrieve(o.snapshot);this.routeReuseStrategy.store(o.snapshot,null),s.children.onOutletReAttached(a.contexts),s.attachRef=a.componentRef,s.route=a.route.value,s.outlet&&s.outlet.attach(a.componentRef,a.route.value),Ux(a.route.value),this.activateChildRoutes(n,null,s.children)}else s.attachRef=null,s.route=o,s.outlet&&s.outlet.activateWith(o,s.injector),this.activateChildRoutes(n,null,s.children)}else this.activateChildRoutes(n,null,i)}}class p3{path;route;constructor(n){this.path=n,this.route=this.path[this.path.length-1]}}class ib{component;route;constructor(n,e){this.component=n,this.route=e}}function Jae(t,n,e){const i=t._root;return kf(i,n?n._root:null,e,[i.value])}function $d(t,n){const e=Symbol(),i=n.get(t,e);return i===e?"function"!=typeof t||function ij(t){return null!==Up(t)}(t)?n.get(t):t:i}function kf(t,n,e,i,o={canDeactivateChecks:[],canActivateChecks:[]}){const r=zd(n);return t.children.forEach(s=>{(function tle(t,n,e,i,o={canDeactivateChecks:[],canActivateChecks:[]}){const r=t.value,s=n?n.value:null,a=e?e.getContext(t.value.outlet):null;if(s&&r.routeConfig===s.routeConfig){const l=function nle(t,n,e){if("function"==typeof e)return Qi(n._environmentInjector,()=>e(t,n));switch(e){case"pathParamsChange":return!Gl(t.url,n.url);case"pathParamsOrQueryParamsChange":return!Gl(t.url,n.url)||!zr(t.queryParams,n.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!zx(t,n)||!zr(t.queryParams,n.queryParams);default:return!zx(t,n)}}(s,r,r.routeConfig.runGuardsAndResolvers);l?o.canActivateChecks.push(new p3(i)):(r.data=s.data,r._resolvedData=s._resolvedData),kf(t,n,r.component?a?a.children:null:e,i,o),l&&a&&a.outlet&&a.outlet.isActivated&&o.canDeactivateChecks.push(new ib(a.outlet.component,s))}else s&&Df(n,a,o),o.canActivateChecks.push(new p3(i)),kf(t,null,r.component?a?a.children:null:e,i,o)})(s,r[s.value.outlet],e,i.concat([s.value]),o),delete r[s.value.outlet]}),Object.entries(r).forEach(([s,a])=>Df(a,e.getContext(s),o)),o}function Df(t,n,e){const i=zd(t),o=t.value;Object.entries(i).forEach(([r,s])=>{Df(s,o.component?n?n.children.getContext(r):null:n,e)}),e.canDeactivateChecks.push(new ib(o.component&&n&&n.outlet&&n.outlet.isActivated?n.outlet.component:null,o))}function Mf(t){return"function"==typeof t}function m3(t){return t instanceof Dx||"EmptyError"===t?.name}const ob=Symbol("INITIAL_VALUE");function Wd(){return tn(t=>kx(t.map(n=>n.pipe(Cn(1),si(ob)))).pipe(Se(n=>{for(const e of n)if(!0!==e){if(e===ob)return ob;if(!1===e||cle(e))return e}return!0}),Tn(n=>n!==ob),Cn(1)))}function cle(t){return ql(t)||t instanceof Wx}function g3(t){return t.aborted?ae(void 0).pipe(Cn(1)):new Ft(n=>{const e=()=>{n.next(),n.complete()};return t.addEventListener("abort",e),()=>t.removeEventListener("abort",e)})}function _3(t){return fn(g3(t))}function b3(t){return function z6(...t){return ND(t)}(ai(n=>{if("boolean"!=typeof n)throw nb(0,n)}),Se(n=>!0===n))}class Es extends Error{segmentGroup;constructor(n){super(),this.segmentGroup=n||null,Object.setPrototypeOf(this,Es.prototype)}}class Tf extends Error{urlTree;constructor(n){super(),this.urlTree=n,Object.setPrototypeOf(this,Tf.prototype)}}function yle(t){throw new X(4e3,!1)}class wle{urlSerializer;urlTree;constructor(n,e){this.urlSerializer=n,this.urlTree=e}lineralizeSegments(n,e){return Et(function*(){let i=[],o=e.root;for(;;){if(i=i.concat(o.segments),0===o.numberOfChildren)return i;if(o.numberOfChildren>1||!o.children[Ke])throw yle();o=o.children[Ke]}})()}applyRedirectCommands(n,e,i,o,r){var s=this;return Et(function*(){const a=yield function xle(t,n,e){if("string"==typeof t)return Promise.resolve(t);const i=t;return z_(Wl(Qi(e,()=>i(n))))}(e,o,r);if(a instanceof gr)throw new Tf(a);const l=s.applyRedirectCreateUrlTree(a,s.urlSerializer.parse(a),n,i);if("/"===a[0])throw new Tf(l);return l})()}applyRedirectCreateUrlTree(n,e,i,o){const r=this.createSegmentGroup(n,e.root,i,o);return new gr(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[0]){const a=r.substring(1);i[o]=e[a]}else i[o]=r}),i}createSegmentGroup(n,e,i,o){const r=this.createSegments(n,e.segments,i,o);let s={};return Object.entries(e.children).forEach(([a,l])=>{s[a]=this.createSegmentGroup(n,l,i,o)}),new Wt(r,s)}createSegments(n,e,i,o){return e.map(r=>":"===r.path[0]?this.findPosParam(n,r,o):this.findOrReturn(r,i))}findPosParam(n,e,i){const o=i[e.path.substring(1)];if(!o)throw new X(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}}function Gr(t){return t.outlet||Ke}function Tle(t,n){const e=t.filter(i=>Gr(i)===n);return e.push(...t.filter(i=>Gr(i)!==n)),e}const Gx={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function v3(t){return{routeConfig:t.routeConfig,url:t.url,params:t.params,queryParams:t.queryParams,fragment:t.fragment,data:t.data,outlet:t.outlet,title:t.title,paramMap:t.paramMap,queryParamMap:t.queryParamMap}}function Ele(t,n,e,i,o,r,s){const a=y3(t,n,e);if(!a.matched)return ae(a);const l=v3(r(a));return i=function Sle(t,n){return t.providers&&!t._injector&&(t._injector=Mg(t.providers,n,`Route: ${t.path}`)),t._injector??n}(n,i),function vle(t,n,e,i,o,r){const s=n.canMatch;return s&&0!==s.length?ae(s.map(l=>{const c=$d(l,t);return Wl(function lle(t){return t&&Mf(t.canMatch)}(c)?c.canMatch(n,e,o):Qi(t,()=>c(n,e,o))).pipe(_3(r))})).pipe(Wd(),b3()):ae(!0)}(i,n,e,0,l,s).pipe(Se(c=>!0===c?a:{...Gx}))}function y3(t,n,e){if(""===n.path)return"full"===n.pathMatch&&(t.hasChildren()||e.length>0)?{...Gx}:{matched:!0,consumedSegments:[],remainingSegments:e,parameters:{},positionalParamSegments:{}};const o=(n.matcher||iae)(e,t,n);if(!o)return{...Gx};const r={};Object.entries(o.posParams??{}).forEach(([a,l])=>{r[a]=l.path});const s=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:s,positionalParamSegments:o.posParams??{}}}function C3(t,n,e,i){return e.length>0&&function Ole(t,n,e){return e.some(i=>rb(t,n,i)&&Gr(i)!==Ke)}(t,e,i)?{segmentGroup:new Wt(n,Ile(i,new Wt(e,t.children))),slicedSegments:[]}:0===e.length&&function Ale(t,n,e){return e.some(i=>rb(t,n,i))}(t,e,i)?{segmentGroup:new Wt(t.segments,Ple(t,e,i,t.children)),slicedSegments:e}:{segmentGroup:new Wt(t.segments,t.children),slicedSegments:e}}function Ple(t,n,e,i){const o={};for(const r of e)if(rb(t,n,r)&&!i[Gr(r)]){const s=new Wt([],{});o[Gr(r)]=s}return{...i,...o}}function Ile(t,n){const e={};e[Ke]=n;for(const i of t)if(""===i.path&&Gr(i)!==Ke){const o=new Wt([],{});e[Gr(i)]=o}return e}function rb(t,n,e){return(!(t.hasChildren()||n.length>0)||"full"!==e.pathMatch)&&""===e.path}class Fle{}function qx(){return(qx=Et(function*(t,n,e,i,o,r,s="emptyOnly",a){return new Ble(t,n,e,i,o,s,r,a).recognize()})).apply(this,arguments)}class Ble{injector;configLoader;rootComponentType;config;urlTree;paramsInheritanceStrategy;urlSerializer;abortSignal;applyRedirects;absoluteRedirectCount=0;allowRedirects=!0;constructor(n,e,i,o,r,s,a,l){this.injector=n,this.configLoader=e,this.rootComponentType=i,this.config=o,this.urlTree=r,this.paramsInheritanceStrategy=s,this.urlSerializer=a,this.abortSignal=l,this.applyRedirects=new wle(this.urlSerializer,this.urlTree)}noMatchError(n){return new X(4002,`'${n.segmentGroup}'`)}recognize(){var n=this;return Et(function*(){const e=C3(n.urlTree.root,[],[],n.config).segmentGroup,{children:i,rootSnapshot:o}=yield n.match(e),r=new _r(o,i),s=new s3("",r),a=function kae(t,n,e=null,i=null,o=new bf){return qL(GL(t),n,e,i,o)}(o,[],n.urlTree.queryParams,n.urlTree.fragment);return a.queryParams=n.urlTree.queryParams,s.url=n.urlSerializer.serialize(a),{state:s,tree:a}})()}match(n){var e=this;return Et(function*(){const i=new Hx([],Object.freeze({}),Object.freeze({...e.urlTree.queryParams}),e.urlTree.fragment,Object.freeze({}),Ke,e.rootComponentType,null,{},e.injector);try{return{children:yield e.processSegmentGroup(e.injector,e.config,n,Ke,i),rootSnapshot:i}}catch(o){if(o instanceof Tf)return e.urlTree=o.urlTree,e.match(o.urlTree.root);throw o instanceof Es?e.noMatchError(o):o}})()}processSegmentGroup(n,e,i,o,r){var s=this;return Et(function*(){if(0===i.segments.length&&i.hasChildren())return s.processChildren(n,e,i,r);const a=yield s.processSegment(n,e,i,i.segments,o,!0,r);return a instanceof _r?[a]:[]})()}processChildren(n,e,i,o){var r=this;return Et(function*(){const s=[];for(const c of Object.keys(i.children))"primary"===c?s.unshift(c):s.push(c);let a=[];for(const c of s){const f=i.children[c],m=Tle(e,c),g=yield r.processSegmentGroup(n,m,f,c,o);a.push(...g)}const l=w3(a);return function Vle(t){t.sort((n,e)=>n.value.outlet===Ke?-1:e.value.outlet===Ke?1:n.value.outlet.localeCompare(e.value.outlet))}(l),l})()}processSegment(n,e,i,o,r,s,a){var l=this;return Et(function*(){for(const c of e)try{return yield l.processSegmentAgainstRoute(c._injector??n,e,c,i,o,r,s,a)}catch(f){if(f instanceof Es||m3(f))continue;throw f}if(function Rle(t,n,e){return 0===n.length&&!t.children[e]}(i,o,r))return new Fle;throw new Es(i)})()}processSegmentAgainstRoute(n,e,i,o,r,s,a,l){var c=this;return Et(function*(){if(Gr(i)!==s&&(s===Ke||!rb(o,r,i)))throw new Es(o);if(void 0===i.redirectTo)return c.matchSegmentAgainstRoute(n,o,i,r,s,l);if(c.allowRedirects&&a)return c.expandSegmentAgainstRouteUsingRedirect(n,o,e,i,r,s,l);throw new Es(o)})()}expandSegmentAgainstRouteUsingRedirect(n,e,i,o,r,s,a){var l=this;return Et(function*(){const{matched:c,parameters:f,consumedSegments:m,positionalParamSegments:g,remainingSegments:_}=y3(e,o,r);if(!c)throw new Es(e);"string"==typeof o.redirectTo&&"/"===o.redirectTo[0]&&(l.absoluteRedirectCount++,l.absoluteRedirectCount>31&&(l.allowRedirects=!1));const w=l.createSnapshot(n,o,r,f,a);if(l.abortSignal.aborted)throw new Error(l.abortSignal.reason);const k=yield l.applyRedirects.applyRedirectCommands(m,o.redirectTo,g,v3(w),n),T=yield l.applyRedirects.lineralizeSegments(o,k);return l.processSegment(n,i,e,T.concat(_),s,!1,a)})()}createSnapshot(n,e,i,o,r){const s=new Hx(i,o,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,function jle(t){return t.data||{}}(e),Gr(e),e.component??e._loadedComponent??null,e,function Ule(t){return t.resolve||{}}(e),n),a=Vx(s,r,this.paramsInheritanceStrategy);return s.params=Object.freeze(a.params),s.data=Object.freeze(a.data),s}matchSegmentAgainstRoute(n,e,i,o,r,s){var a=this;return Et(function*(){if(a.abortSignal.aborted)throw new Error(a.abortSignal.reason);const c=yield z_(Ele(e,i,o,n,0,Y=>a.createSnapshot(n,i,Y.consumedSegments,Y.parameters,s),a.abortSignal));if("**"===i.path&&(e.children={}),!c?.matched)throw new Es(e);n=i._injector??n;const{routes:f}=yield a.getChildConfig(n,i,o),m=i._loadedInjector??n,{parameters:g,consumedSegments:_,remainingSegments:w}=c,k=a.createSnapshot(n,i,_,g,s),{segmentGroup:T,slicedSegments:I}=C3(e,_,w,f);if(0===I.length&&T.hasChildren()){const Y=yield a.processChildren(m,f,T,k);return new _r(k,Y)}if(0===f.length&&0===I.length)return new _r(k,[]);const R=Gr(i)===r,W=yield a.processSegment(m,f,T,I,R?Ke:r,!0,k);return new _r(k,W instanceof _r?[W]:[])})()}getChildConfig(n,e,i){var o=this;return Et(function*(){if(e.children)return{routes:e.children,injector:n};if(e.loadChildren){if(void 0!==e._loadedRoutes){const s=e._loadedNgModuleFactory;return s&&!e._loadedInjector&&(e._loadedInjector=s.create(n).injector),{routes:e._loadedRoutes,injector:e._loadedInjector}}if(o.abortSignal.aborted)throw new Error(o.abortSignal.reason);if(yield z_(function ble(t,n,e,i,o){const r=n.canLoad;return void 0===r||0===r.length?ae(!0):ae(r.map(a=>{const l=$d(a,t),f=Wl(function ole(t){return t&&Mf(t.canLoad)}(l)?l.canLoad(n,e):Qi(t,()=>l(n,e)));return o?f.pipe(_3(o)):f})).pipe(Wd(),b3())}(n,e,i,0,o.abortSignal))){const s=yield o.configLoader.loadChildren(n,e);return e._loadedRoutes=s.routes,e._loadedInjector=s.injector,e._loadedNgModuleFactory=s.factory,s}throw function Cle(){throw h3(!1,vo.GuardRejected)}()}return{routes:[],injector:n}})()}}function Hle(t){const n=t.value.routeConfig;return n&&""===n.path}function w3(t){const n=[],e=new Set;for(const i of t){if(!Hle(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=w3(i.children);n.push(new _r(i.value,o))}return n.filter(i=>!e.has(i))}function x3(t){const n=t.children.map(e=>x3(e)).flat();return[t,...n]}function S3(t){return tn(n=>{const e=t(n);return e?Kn(e).pipe(Se(()=>n)):ae(n)})}let k3=(()=>{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===Ke);return i}getResolvedTitleForRoute(e){return e.data[gf]}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:()=>D(Kle),providedIn:"root"})}return t})(),Kle=(()=>{class t extends k3{title;constructor(e){super(),this.title=e}updateTitle(e){const i=this.buildTitle(e);void 0!==i&&this.title.setTitle(i)}static \u0275fac=function(i){return new(i||t)(ce(Zse))};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Gd=new Z("",{factory:()=>({})}),sb=new Z("");let Kx=(()=>{class t{componentLoaders=new WeakMap;childrenLoaders=new WeakMap;onLoadStartListener;onLoadEndListener;compiler=D(aQ);loadComponent(e,i){var o=this;return Et(function*(){if(o.componentLoaders.get(i))return o.componentLoaders.get(i);if(i._loadedComponent)return Promise.resolve(i._loadedComponent);o.onLoadStartListener&&o.onLoadStartListener(i);const r=Et(function*(){try{const s=yield FL(Qi(e,()=>i.loadComponent())),a=yield M3(D3(s));return o.onLoadEndListener&&o.onLoadEndListener(i),i._loadedComponent=a,a}finally{o.componentLoaders.delete(i)}})();return o.componentLoaders.set(i,r),r})()}loadChildren(e,i){var o=this;if(this.childrenLoaders.get(i))return this.childrenLoaders.get(i);if(i._loadedRoutes)return Promise.resolve({routes:i._loadedRoutes,injector:i._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(i);const r=Et(function*(){try{const s=yield function Yle(t,n,e,i){return Yx.apply(this,arguments)}(i,o.compiler,e,o.onLoadEndListener);return i._loadedRoutes=s.routes,i._loadedInjector=s.injector,i._loadedNgModuleFactory=s.factory,s}finally{o.childrenLoaders.delete(i)}})();return this.childrenLoaders.set(i,r),r}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Yx(){return(Yx=Et(function*(t,n,e,i){const o=yield FL(Qi(e,()=>t.loadChildren())),r=yield M3(D3(o));let s;s=r instanceof lI||Array.isArray(r)?r:yield n.compileModuleAsync(r),i&&i(t);let a,l,f;return Array.isArray(s)?l=s:(a=s.create(e).injector,f=s,l=a.get(sb,[],{optional:!0,self:!0}).flat()),{routes:l.map($x),injector:a,factory:f}})).apply(this,arguments)}function D3(t){return function Xle(t){return t&&"object"==typeof t&&"default"in t}(t)?t.default:t}function M3(t){return Xx.apply(this,arguments)}function Xx(){return(Xx=Et(function*(t){return t})).apply(this,arguments)}let Zx=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:()=>D(Zle),providedIn:"root"})}return t})(),Zle=(()=>{class t{shouldProcessUrl(e){return!0}extract(e){return e}merge(e,i){return e}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const T3=new Z(""),E3=new Z("");function Qle(t,n,e){const i=t.get(E3),o=t.get(et);if(!o.startViewTransition||i.skipNextTransition)return i.skipNextTransition=!1,new Promise(c=>setTimeout(c));let r;const s=new Promise(c=>{r=c}),a=o.startViewTransition(()=>(r(),function Jle(t){return new Promise(n=>{Vi({read:()=>setTimeout(n)},{injector:t})})}(t)));a.updateCallbackDone.catch(c=>{}),a.ready.catch(c=>{}),a.finished.catch(c=>{});const{onViewTransitionCreated:l}=i;return l&&Qi(t,()=>l({transition:a,from:n,to:e})),s}const ece=()=>{},P3=new Z("");let Qx=(()=>{class t{currentNavigation=yt(null,{equal:()=>!1});currentTransition=null;lastSuccessfulNavigation=yt(null);events=new me;transitionAbortWithErrorSubject=new me;configLoader=D(Kx);environmentInjector=D(zn);destroyRef=D(rr);urlSerializer=D(jd);rootContexts=D(xf);location=D(Fd);inputBindingEnabled=null!==D(tb,{optional:!0});titleStrategy=D(k3);options=D(Gd,{optional:!0})||{};paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly";urlHandlingStrategy=D(Zx);createViewTransition=D(T3,{optional:!0});navigationErrorHandler=D(P3,{optional:!0});navigationId=0;get hasRequestedNavigation(){return 0!==this.navigationId}transitions;afterPreactivation=()=>ae(void 0);rootComponentType=null;destroyed=!1;constructor(){this.configLoader.onLoadEndListener=o=>this.events.next(new Bae(o)),this.configLoader.onLoadStartListener=o=>this.events.next(new Lae(o)),this.destroyRef.onDestroy(()=>{this.destroyed=!0})}complete(){this.transitions?.complete()}handleNavigationRequest(e){const i=++this.navigationId;nt(()=>{this.transitions?.next({...e,extractedUrl:this.urlHandlingStrategy.extract(e.rawUrl),targetSnapshot:null,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null,id:i,routesRecognizeHandler:{},beforeActivateHandler:{}})})}setupNavigations(e){return this.transitions=new ki(null),this.transitions.pipe(Tn(i=>null!==i),tn(i=>{let o=!1;const r=new AbortController,s=()=>!o&&this.currentTransition?.id===i.id;return ae(i).pipe(tn(a=>{if(this.navigationId>i.id)return this.cancelNavigationTransition(i,"",vo.SupersededByNewNavigation),Oi;this.currentTransition=i;const l=this.lastSuccessfulNavigation();this.currentNavigation.set({id:a.id,initialUrl:a.rawUrl,extractedUrl:a.extractedUrl,targetBrowserUrl:"string"==typeof a.extras.browserUrl?this.urlSerializer.parse(a.extras.browserUrl):a.extras.browserUrl,trigger:a.source,extras:a.extras,previousNavigation:l?{...l,previousNavigation:null}:null,abort:()=>r.abort(),routesRecognizeHandler:a.routesRecognizeHandler,beforeActivateHandler:a.beforeActivateHandler});const c=!e.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl();if(!c&&"reload"!==(a.extras.onSameUrlNavigation??e.onSameUrlNavigation))return this.events.next(new Ud(a.id,this.urlSerializer.serialize(a.rawUrl),"",Q_.IgnoredSameUrlNavigation)),a.resolve(!1),Oi;if(this.urlHandlingStrategy.shouldProcessUrl(a.rawUrl))return ae(a).pipe(tn(m=>(this.events.next(new Z_(m.id,this.urlSerializer.serialize(m.extractedUrl),m.source,m.restoredState)),m.id!==this.navigationId?Oi:Promise.resolve(m))),function zle(t,n,e,i,o,r,s){return It(function(){var a=Et(function*(l){const{state:c,tree:f}=yield function Nle(t,n,e,i,o,r){return qx.apply(this,arguments)}(t,n,e,i,l.extractedUrl,o,r,s);return{...l,targetSnapshot:c,urlAfterRedirects:f}});return function(l){return a.apply(this,arguments)}}())}(this.environmentInjector,this.configLoader,this.rootComponentType,e.config,this.urlSerializer,this.paramsInheritanceStrategy,r.signal),ai(m=>{i.targetSnapshot=m.targetSnapshot,i.urlAfterRedirects=m.urlAfterRedirects,this.currentNavigation.update(g=>(g.finalUrl=m.urlAfterRedirects,g)),this.events.next(new n3)}),tn(m=>Kn(i.routesRecognizeHandler.deferredHandle??ae(void 0)).pipe(Se(()=>m))),ai(()=>{const m=new e3(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects),a.targetSnapshot);this.events.next(m)}));if(c&&this.urlHandlingStrategy.shouldProcessUrl(a.currentRawUrl)){const{id:m,extractedUrl:g,source:_,restoredState:w,extras:k}=a,T=new Z_(m,this.urlSerializer.serialize(g),_,w);this.events.next(T);const I=r3(this.rootComponentType,this.environmentInjector).snapshot;return this.currentTransition=i={...a,targetSnapshot:I,urlAfterRedirects:g,extras:{...k,skipLocationChange:!1,replaceUrl:!1}},this.currentNavigation.update(R=>(R.finalUrl=g,R)),ae(i)}return this.events.next(new Ud(a.id,this.urlSerializer.serialize(a.extractedUrl),"",Q_.IgnoredByUrlHandlingStrategy)),a.resolve(!1),Oi}),Se(a=>{const l=new Aae(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects),a.targetSnapshot);return this.events.next(l),this.currentTransition=i={...a,guards:Jae(a.targetSnapshot,a.currentSnapshot,this.rootContexts)},i}),function dle(t){return It(n=>{const{targetSnapshot:e,currentSnapshot:i,guards:{canActivateChecks:o,canDeactivateChecks:r}}=n;return 0===r.length&&0===o.length?ae({...n,guardsResult:!0}):function ule(t,n,e){return Kn(t).pipe(It(i=>function _le(t,n,e,i){const o=n&&n.routeConfig?n.routeConfig.canDeactivate:null;return o&&0!==o.length?ae(o.map(s=>{const a=n._environmentInjector,l=$d(s,a);return Wl(function ale(t){return t&&Mf(t.canDeactivate)}(l)?l.canDeactivate(t,n,e,i):Qi(a,()=>l(t,n,e,i))).pipe(Ur())})).pipe(Wd()):ae(!0)}(i.component,i.route,e,n)),Ur(i=>!0!==i,!0))}(r,e,i).pipe(It(s=>s&&function ile(t){return"boolean"==typeof t}(s)?function hle(t,n,e){return Kn(n).pipe(cf(i=>Ts(function ple(t,n){return null!==t&&n&&n(new Vae(t)),ae(!0)}(i.route.parent,e),function fle(t,n){return null!==t&&n&&n(new jae(t)),ae(!0)}(i.route,e),function gle(t,n){const e=n[n.length-1],o=n.slice(0,n.length-1).reverse().map(r=>function ele(t){const n=t.routeConfig?t.routeConfig.canActivateChild:null;return n&&0!==n.length?{node:t,guards:n}:null}(r)).filter(r=>null!==r).map(r=>ya(()=>ae(r.guards.map(a=>{const l=r.node._environmentInjector,c=$d(a,l);return Wl(function sle(t){return t&&Mf(t.canActivateChild)}(c)?c.canActivateChild(e,t):Qi(l,()=>c(e,t))).pipe(Ur())})).pipe(Wd())));return ae(o).pipe(Wd())}(t,i.path),function mle(t,n){const e=n.routeConfig?n.routeConfig.canActivate:null;if(!e||0===e.length)return ae(!0);const i=e.map(o=>ya(()=>{const r=n._environmentInjector,s=$d(o,r);return Wl(function rle(t){return t&&Mf(t.canActivate)}(s)?s.canActivate(n,t):Qi(r,()=>s(n,t))).pipe(Ur())}));return ae(i).pipe(Wd())}(t,i.route))),Ur(i=>!0!==i,!0))}(e,o,t):ae(s)),Se(s=>({...n,guardsResult:s})))})}(a=>this.events.next(a)),tn(a=>{if(i.guardsResult=a.guardsResult,a.guardsResult&&"boolean"!=typeof a.guardsResult)throw nb(0,a.guardsResult);const l=new Rae(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects),a.targetSnapshot,!!a.guardsResult);if(this.events.next(l),!s())return Oi;if(!a.guardsResult)return this.cancelNavigationTransition(a,"",vo.GuardRejected),Oi;if(0===a.guards.canActivateChecks.length)return ae(a);const c=new Fae(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects),a.targetSnapshot);if(this.events.next(c),!s())return Oi;let f=!1;return ae(a).pipe(function $le(t){return It(n=>{const{targetSnapshot:e,guards:{canActivateChecks:i}}=n;if(!i.length)return ae(n);const o=new Set(i.map(a=>a.route)),r=new Set;for(const a of o)if(!r.has(a))for(const l of x3(a))r.add(l);let s=0;return Kn(r).pipe(cf(a=>o.has(a)?function Wle(t,n,e){const i=t.routeConfig,o=t._resolve;return void 0!==i?.title&&!l3(i)&&(o[gf]=i.title),ya(()=>(t.data=Vx(t,t.parent,e).resolve,function Gle(t,n,e){const i=Ex(t);if(0===i.length)return ae({});const o={};return Kn(i).pipe(It(r=>function qle(t,n,e){const i=n._environmentInjector,o=$d(t,i);return Wl(o.resolve?o.resolve(n,e):Qi(i,()=>o(n,e)))}(t[r],n,e).pipe(Ur(),ai(s=>{if(s instanceof Wx)throw nb(new bf,s);o[r]=s}))),TL(1),Se(()=>o),Ui(r=>m3(r)?Oi:mr(r)))}(o,t,n).pipe(Se(r=>(t._resolvedData=r,t.data={...t.data,...r},null)))))}(a,e,t):(a.data=Vx(a,a.parent,t).resolve,ae(void 0))),ai(()=>s++),TL(1),It(a=>s===r.size?ae(n):Oi))})}(this.paramsInheritanceStrategy),ai({next:()=>{f=!0;const m=new Nae(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects),a.targetSnapshot);this.events.next(m)},complete:()=>{f||this.cancelNavigationTransition(a,"",vo.NoDataFromResolver)}}))}),S3(a=>{const l=f=>{const m=[];f.routeConfig?._loadedComponent?f.component=f.routeConfig?._loadedComponent:f.routeConfig?.loadComponent&&m.push(this.configLoader.loadComponent(f._environmentInjector,f.routeConfig).then(_=>{f.component=_}));for(const g of f.children)m.push(...l(g));return m},c=l(a.targetSnapshot.root);return 0===c.length?ae(a):Kn(Promise.all(c).then(()=>a))}),S3(()=>this.afterPreactivation()),tn(()=>{const{currentSnapshot:a,targetSnapshot:l}=i,c=this.createViewTransition?.(this.environmentInjector,a.root,l.root);return c?Kn(c).pipe(Se(()=>i)):ae(i)}),Cn(1),tn(a=>{const l=function Kae(t,n,e){const i=Sf(t,n._root,e?e._root:void 0);return new o3(i,n)}(e.routeReuseStrategy,a.targetSnapshot,a.currentRouterState);this.currentTransition=i=a={...a,targetRouterState:l},this.currentNavigation.update(f=>(f.targetRouterState=l,f)),this.events.next(new Nx);const c=i.beforeActivateHandler.deferredHandle;return c?Kn(c.then(()=>a)):ae(a)}),ai(a=>{new Qae(e.routeReuseStrategy,i.targetRouterState,i.currentRouterState,l=>this.events.next(l),this.inputBindingEnabled).activate(this.rootContexts),s()&&(o=!0,this.currentNavigation.update(l=>(l.abort=ece,l)),this.lastSuccessfulNavigation.set(nt(this.currentNavigation)),this.events.next(new Wr(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects))),this.titleStrategy?.updateTitle(a.targetRouterState.snapshot),a.resolve(!0))}),fn(g3(r.signal).pipe(Tn(()=>!o&&!i.targetRouterState),ai(()=>{this.cancelNavigationTransition(i,r.signal.reason+"",vo.Aborted)}))),ai({complete:()=>{o=!0}}),fn(this.transitionAbortWithErrorSubject.pipe(ai(a=>{throw a}))),B_(()=>{r.abort(),o||this.cancelNavigationTransition(i,"",vo.SupersededByNewNavigation),this.currentTransition?.id===i.id&&(this.currentNavigation.set(null),this.currentTransition=null)}),Ui(a=>{if(o=!0,this.destroyed)return i.resolve(!1),Oi;if(f3(a))this.events.next(new wa(i.id,this.urlSerializer.serialize(i.extractedUrl),a.message,a.cancellationCode)),function Zae(t){return f3(t)&&ql(t.url)}(a)?this.events.next(new J_(a.url,a.navigationBehaviorOptions)):i.resolve(!1);else{const l=new Fx(i.id,this.urlSerializer.serialize(i.extractedUrl),a,i.targetSnapshot??void 0);try{const c=Qi(this.environmentInjector,()=>this.navigationErrorHandler?.(l));if(!(c instanceof Wx))throw this.events.next(l),a;{const{message:f,cancellationCode:m}=nb(0,c);this.events.next(new wa(i.id,this.urlSerializer.serialize(i.extractedUrl),f,m)),this.events.next(new J_(c.redirectTo,c.navigationBehaviorOptions))}}catch(c){this.options.resolveNavigationPromiseOnError?i.resolve(!1):i.reject(c)}}return Oi}))}))}cancelNavigationTransition(e,i,o){const r=new wa(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(){const e=this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))),i=nt(this.currentNavigation),o=i?.targetBrowserUrl??i?.extractedUrl;return e.toString()!==o?.toString()&&!i?.extras.skipLocationChange}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function tce(t){return t!==wf}const nce=new Z("");let O3=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:()=>D(oce),providedIn:"root"})}return t})();class ice{shouldDetach(n){return!1}store(n,e){}shouldAttach(n){return!1}retrieve(n){return null}shouldReuseRoute(n,e){return n.routeConfig===e.routeConfig}shouldDestroyInjector(n){return!0}}let oce=(()=>{class t extends ice{static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),eS=(()=>{class t{urlSerializer=D(jd);options=D(Gd,{optional:!0})||{};canceledNavigationResolution=this.options.canceledNavigationResolution||"replace";location=D(Fd);urlHandlingStrategy=D(Zx);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";currentUrlTree=new gr;getCurrentUrlTree(){return this.currentUrlTree}rawUrlTree=this.currentUrlTree;getRawUrlTree(){return this.rawUrlTree}createBrowserPath({finalUrl:e,initialUrl:i,targetBrowserUrl:o}){const r=void 0!==e?this.urlHandlingStrategy.merge(e,i):i,s=o??r;return s instanceof gr?this.urlSerializer.serialize(s):s}commitTransition({targetRouterState:e,finalUrl:i,initialUrl:o}){i&&e?(this.currentUrlTree=i,this.rawUrlTree=this.urlHandlingStrategy.merge(i,o),this.routerState=e):this.rawUrlTree=o}routerState=r3(null,D(zn));getRouterState(){return this.routerState}_stateMemento=this.createStateMemento();get stateMemento(){return this._stateMemento}updateStateMemento(){this._stateMemento=this.createStateMemento()}createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}restoredState(){return this.location.getState()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:()=>D(rce),providedIn:"root"})}return t})(),rce=(()=>{class t extends eS{currentPageId=0;lastSuccessfulId=-1;get browserPageId(){return"computed"!==this.canceledNavigationResolution?this.currentPageId:this.restoredState()?.\u0275routerPageId??this.currentPageId}registerNonRouterCurrentEntryChangeListener(e){return this.location.subscribe(i=>{"popstate"===i.type&&setTimeout(()=>{e(i.url,i.state,"popstate",{replaceUrl:!0})})})}handleRouterEvent(e,i){e instanceof Z_?this.updateStateMemento():e instanceof Ud?this.commitTransition(i):e instanceof e3?"eager"===this.urlUpdateStrategy&&(i.extras.skipLocationChange||this.setBrowserUrl(this.createBrowserPath(i),i)):e instanceof Nx?(this.commitTransition(i),"deferred"===this.urlUpdateStrategy&&!i.extras.skipLocationChange&&this.setBrowserUrl(this.createBrowserPath(i),i)):e instanceof wa&&!function Oae(t){return t instanceof wa&&(t.code===vo.Redirect||t.code===vo.SupersededByNewNavigation)}(e)?this.restoreHistory(i):e instanceof Fx?this.restoreHistory(i,!0):e instanceof Wr&&(this.lastSuccessfulId=e.id,this.currentPageId=this.browserPageId)}setBrowserUrl(e,{extras:i,id:o}){const{replaceUrl:r,state:s}=i;if(this.location.isCurrentPathEqualTo(e)||r){const a=this.browserPageId,l={...s,...this.generateNgRouterState(o,a)};this.location.replaceState(e,"",l)}else{const a={...s,...this.generateNgRouterState(o,this.browserPageId+1)};this.location.go(e,"",a)}}restoreHistory(e,i=!1){if("computed"===this.canceledNavigationResolution){const r=this.currentPageId-this.browserPageId;0!==r?this.location.historyGo(r):this.getCurrentUrlTree()===e.finalUrl&&0===r&&(this.resetInternalState(e),this.resetUrlToCurrentUrlTree())}else"replace"===this.canceledNavigationResolution&&(i&&this.resetInternalState(e),this.resetUrlToCurrentUrlTree())}resetInternalState({finalUrl:e}){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,e??this.rawUrlTree)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.getRawUrlTree()),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(e,i){return"computed"===this.canceledNavigationResolution?{navigationId:e,\u0275routerPageId:i}:{navigationId:e}}static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function A3(t,n){t.events.pipe(Tn(e=>e instanceof Wr||e instanceof wa||e instanceof Fx||e instanceof Ud),Se(e=>e instanceof Wr||e instanceof Ud?0:e instanceof wa&&(e.code===vo.Redirect||e.code===vo.SupersededByNewNavigation)?2:1),Tn(e=>2!==e),Cn(1)).subscribe(()=>{n()})}let vt=(()=>{class t{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}disposed=!1;nonRouterCurrentEntryChangeSubscription;console=D(AI);stateManager=D(eS);options=D(Gd,{optional:!0})||{};pendingTasks=D(Ys);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";navigationTransitions=D(Qx);urlSerializer=D(jd);location=D(Fd);urlHandlingStrategy=D(Zx);injector=D(zn);_events=new me;get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}navigated=!1;routeReuseStrategy=D(O3);injectorCleanup=D(nce,{optional:!0});onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore";config=D(sb,{optional:!0})?.flat()??[];componentInputBindingEnabled=!!D(tb,{optional:!0});currentNavigation=this.navigationTransitions.currentNavigation.asReadonly();constructor(){this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this).subscribe({error:e=>{}}),this.subscribeToNavigationEvents()}eventsSubscription=new pt;subscribeToNavigationEvents(){const e=this.navigationTransitions.events.subscribe(i=>{try{const o=this.navigationTransitions.currentTransition,r=nt(this.navigationTransitions.currentNavigation);if(null!==o&&null!==r)if(this.stateManager.handleRouterEvent(i,r),i instanceof wa&&i.code!==vo.Redirect&&i.code!==vo.SupersededByNewNavigation)this.navigated=!0;else if(i instanceof Wr)this.navigated=!0,this.injectorCleanup?.(this.routeReuseStrategy,this.routerState,this.config);else if(i instanceof J_){const s=i.navigationBehaviorOptions,a=this.urlHandlingStrategy.merge(i.url,o.currentRawUrl),l={scroll:o.extras.scroll,browserUrl:o.extras.browserUrl,info:o.extras.info,skipLocationChange:o.extras.skipLocationChange,replaceUrl:o.extras.replaceUrl||"eager"===this.urlUpdateStrategy||tce(o.source),...s};this.scheduleNavigation(a,wf,null,l,{resolve:o.resolve,reject:o.reject,promise:o.promise})}(function zae(t){return!(t instanceof Nx||t instanceof J_||t instanceof n3)})(i)&&this._events.next(i)}catch(o){this.navigationTransitions.transitionAbortWithErrorSubject.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),wf,this.stateManager.restoredState(),{replaceUrl:!0})}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((e,i,o,r)=>{this.navigateToSyncWithBrowser(e,o,i,r)})}navigateToSyncWithBrowser(e,i,o,r){const s=o?.navigationId?o:null;if(o){const l={...o};delete l.navigationId,delete l.\u0275routerPageId,0!==Object.keys(l).length&&(r.state=l)}const a=this.parseUrl(e);this.scheduleNavigation(a,i,s,r).catch(l=>{this.disposed||this.injector.get(Or)(l)})}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return nt(this.navigationTransitions.currentNavigation)}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(e){this.config=e.map($x),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this._events.unsubscribe(),this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription?.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0,this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(e,i={}){const{relativeTo:o,queryParams:r,fragment:s,queryParamsHandling:a,preserveFragment:l}=i,c=l?this.currentUrlTree.fragment:s;let m,f=null;switch(a??this.options.defaultQueryParamsHandling){case"merge":f={...this.currentUrlTree.queryParams,...r};break;case"preserve":f=this.currentUrlTree.queryParams;break;default:f=r||null}null!==f&&(f=this.removeEmptyProps(f));try{m=GL(o?o.snapshot:this.routerState.snapshot.root)}catch{("string"!=typeof e[0]||"/"!==e[0][0])&&(e=[]),m=this.currentUrlTree.root}return qL(m,e,f,c??null,this.urlSerializer)}navigateByUrl(e,i={skipLocationChange:!1}){const o=ql(e)?e:this.parseUrl(e),r=this.urlHandlingStrategy.merge(o,this.rawUrlTree);return this.scheduleNavigation(r,wf,null,i)}navigate(e,i={skipLocationChange:!1}){return function sce(t){for(let n=0;n(null!=r&&(i[o]=r),i),{})}scheduleNavigation(e,i,o,r,s){if(this.disposed)return Promise.resolve(!1);let a,l,c;s?(a=s.resolve,l=s.reject,c=s.promise):c=new Promise((m,g)=>{a=m,l=g});const f=this.pendingTasks.add();return A3(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(f))}),this.navigationTransitions.handleNavigationRequest({source:i,restoredState:o,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:e,extras:r,resolve:a,reject:l,promise:c,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),c.catch(Promise.reject.bind(Promise))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();class ace extends pt{constructor(n,e){super()}schedule(n,e=0){return this}}const ab={setInterval(t,n,...e){const{delegate:i}=ab;return i?.setInterval?i.setInterval(t,n,...e):setInterval(t,n,...e)},clearInterval(t){const{delegate:n}=ab;return(n?.clearInterval||clearInterval)(t)},delegate:void 0};class tS extends ace{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 ab.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&&ab.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,Rp(i,this),null!=n&&(this.id=this.recycleAsyncId(e,n,null)),this.delay=null,super.unsubscribe()}}}const nS={now:()=>(nS.delegate||Date).now(),delegate:void 0};class Ef{constructor(n,e=Ef.now){this.schedulerActionCtor=n,this.now=e}schedule(n,e=0,i){return new this.schedulerActionCtor(this,n).schedule(i,e)}}Ef.now=nS.now;class iS extends Ef{constructor(n,e=Ef.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 Pf=new iS(tS),lce=Pf;function R3(t,n){return n?e=>Ts(n.pipe(Cn(1),function cce(){return Mn((t,n)=>{t.subscribe(dn(n,Np))})}()),e.pipe(R3(t))):It((e,i)=>ji(t(e,i)).pipe(Cn(1),function dce(t){return Se(()=>t)}(e)))}function xa(t=0,n,e=lce){let i=-1;return null!=n&&(oL(n)?e=n:i=n),new Ft(o=>{let r=function uce(t){return t instanceof Date&&!isNaN(t)}(t)?+t-e.now():t;r<0&&(r=0);let s=0;return e.schedule(function(){o.closed||(o.next(s++),0<=i?this.schedule(void 0,i):o.complete())},r)})}function li(t,n=Pf){const e=xa(t,n);return R3(()=>e)}var lb=function(t){return t.NoConnection="NoConnection",t.Unknown="Unknown",t}(lb||{});class hce{}const F3="common.operation-error";function Qe(t){if(t&&t.type&&!t.srcElement)return t;const n=new hce;if(n.originalError=t,!t||"string"==typeof t)return n.originalServerErrorMsg=t||"",n.translatableErrorMsg=t||F3,n.type=lb.Unknown,n;n.originalServerErrorMsg=function pce(t){if(t){if("string"==typeof t._body)return t._body;if(t.originalServerErrorMsg&&"string"==typeof t.originalServerErrorMsg)return t.originalServerErrorMsg;if(t.error&&"string"==typeof t.error)return t.error;if(t.error&&t.error.error&&t.error.error.message)return t.error.error.message;if(t.error&&t.error.error&&"string"==typeof t.error.error)return t.error.error;if(t.message)return t.message;if(t._body&&t._body.error)return t._body.error;try{return JSON.parse(t._body).error}catch{}}return null}(t);return null!=t.status&&(0===t.status||504===t.status)&&(n.type=lb.NoConnection,n.translatableErrorMsg="common.no-connection-error"),n.type||(n.type=lb.Unknown,n.translatableErrorMsg=n.originalServerErrorMsg?function fce(t){if(!t||0===t.length)return t;if(-1!==t.indexOf('"error":'))try{t=JSON.parse(t).error}catch{}if(t.startsWith("400")||t.startsWith("403")){const e=t.split(" - ",2);t=2===e.length?e[1]:t}const n=(t=t.trim()).substr(0,1);return n.toUpperCase()!==n&&(t=n.toUpperCase()+t.substr(1,t.length-1)),!t.endsWith(".")&&!t.endsWith(",")&&!t.endsWith(":")&&!t.endsWith(";")&&!t.endsWith("?")&&!t.endsWith("!")&&(t+="."),t}(n.originalServerErrorMsg):F3),n}class oo extends me{constructor(n=1/0,e=1/0,i=nS){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:s}=this;e||(i.push(n),!o&&i.push(r.now()+s)),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 s=0;s{class t{constructor(){this.currentRefreshTimeSubject=new oo(1),this.savedLocalNodes=new Map,this.savedLabels=new Map,this.savedVisibleLocalNodes=new Set}initialize(e){this.storage=localStorage,this.hypervisorPk=e,this.migrateDataToHvStorage(),this.currentRefreshTime=parseInt(this.getDataForHv(cb),10)||10,this.currentRefreshTimeSubject.next(this.currentRefreshTime),this.getSavedLocalNodes().forEach(r=>{this.savedLocalNodes.set(r.publicKey,r),r.hidden||this.savedVisibleLocalNodes.add(r.publicKey)}),this.getSavedLabels().forEach(r=>this.savedLabels.set(r.id,r)),this.loadLegacyNodeData();const i=[];this.savedLocalNodes.forEach(r=>i.push(r));const o=[];this.savedLabels.forEach(r=>o.push(r)),this.saveLocalNodes(i),this.saveLabels(o)}getDataForHv(e){return this.storage.getItem(this.hypervisorPk+e)}setDataForHv(e,i){return this.storage.setItem(this.hypervisorPk+e,i)}migrateDataToHvStorage(){const e=this.storage.getItem(cb);if(e){const r=parseInt(e,10)||10;this.setRefreshTime(r),this.storage.removeItem(cb)}const i=this.storage.getItem(ub);if(i){const r=JSON.parse(i)||[];this.saveLocalNodes(r),this.storage.removeItem(ub)}const o=this.storage.getItem(db);if(o){const r=JSON.parse(o)||[];this.saveLabels(r),this.storage.removeItem(db)}}loadLegacyNodeData(){const e=JSON.parse(this.storage.getItem(N3))||[];if(e.length>0){const i=this.getSavedLocalNodes(),o=this.getSavedLabels();e.forEach(r=>{i.push({publicKey:r.publicKey,hidden:r.deleted,ip:null}),this.savedLocalNodes.set(r.publicKey,i[i.length-1]),r.deleted||this.savedVisibleLocalNodes.add(r.publicKey),o.push({id:r.publicKey,identifiedElementType:ro.Node,label:r.label}),this.savedLabels.set(r.publicKey,o[o.length-1])}),this.saveLocalNodes(i),this.saveLabels(o),this.storage.removeItem(N3)}}setRefreshTime(e){this.setDataForHv(cb,e.toString()),this.currentRefreshTime=e,this.currentRefreshTimeSubject.next(this.currentRefreshTime)}getRefreshTimeObservable(){return this.currentRefreshTimeSubject.asObservable()}getRefreshTime(){return this.currentRefreshTime}includeVisibleLocalNodes(e,i){this.changeLocalNodesHiddenProperty(e,i,!1)}setLocalNodesAsHidden(e,i){this.changeLocalNodesHiddenProperty(e,i,!0)}changeLocalNodesHiddenProperty(e,i,o){if(e.length!==i.length)throw new Error("Invalid params");const r=new Map,s=new Map;e.forEach((c,f)=>{r.set(c,i[f]),s.set(c,i[f])});let a=!1;const l=this.getSavedLocalNodes();l.forEach(c=>{r.has(c.publicKey)&&(s.has(c.publicKey)&&s.delete(c.publicKey),c.ip!==r.get(c.publicKey)&&(c.ip=r.get(c.publicKey),a=!0,this.savedLocalNodes.set(c.publicKey,c)),c.hidden!==o&&(c.hidden=o,a=!0,this.savedLocalNodes.set(c.publicKey,c),o?this.savedVisibleLocalNodes.delete(c.publicKey):this.savedVisibleLocalNodes.add(c.publicKey)))}),s.forEach((c,f)=>{a=!0;const m={publicKey:f,hidden:o,ip:c};l.push(m),this.savedLocalNodes.set(f,m),o?this.savedVisibleLocalNodes.delete(f):this.savedVisibleLocalNodes.add(f)}),a&&this.saveLocalNodes(l)}getSavedLocalNodes(){return JSON.parse(this.getDataForHv(ub))||[]}getSavedVisibleLocalNodes(){return this.savedVisibleLocalNodes}saveLocalNodes(e){this.setDataForHv(ub,JSON.stringify(e))}getSavedLabels(){return JSON.parse(this.getDataForHv(db))||[]}saveLabels(e){this.setDataForHv(db,JSON.stringify(e))}saveLabel(e,i,o){if(i){let r=!1;const s=this.getSavedLabels().map(a=>(a.id===e&&a.identifiedElementType===o&&(r=!0,a.label=i,this.savedLabels.set(a.id,{label:a.label,id:a.id,identifiedElementType:a.identifiedElementType})),a));if(r)this.saveLabels(s);else{const a={label:i,id:e,identifiedElementType:o};s.push(a),this.savedLabels.set(e,a),this.saveLabels(s)}}else{this.savedLabels.has(e)&&this.savedLabels.delete(e);let r=!1;const s=this.getSavedLabels().filter(a=>a.id!==e||(r=!0,!1));r&&this.saveLabels(s)}}getDefaultLabel(e){return e?e.ip?e.ip:e.localPk:""}getLabelInfo(e){return this.savedLabels.has(e)?this.savedLabels.get(e):null}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const oS={};class ni{_appId=D(Js);static _infix=`a${Math.floor(1e5*Math.random()).toString()}`;getId(n,e=!1){return"ng"!==this._appId&&(n+=this._appId),oS.hasOwnProperty(n)||(oS[n]=0),`${n}${e?ni._infix+"-":""}${oS[n]++}`}static \u0275fac=function(e){return new(e||ni)};static \u0275prov=te({token:ni,factory:ni.\u0275fac,providedIn:"root"})}const If={schedule(t){let n=requestAnimationFrame,e=cancelAnimationFrame;const{delegate:i}=If;i&&(n=i.requestAnimationFrame,e=i.cancelAnimationFrame);const o=n(r=>{e=void 0,t(r)});return new pt(()=>e?.(o))},requestAnimationFrame(...t){const{delegate:n}=If;return(n?.requestAnimationFrame||requestAnimationFrame)(...t)},cancelAnimationFrame(...t){const{delegate:n}=If;return(n?.cancelAnimationFrame||cancelAnimationFrame)(...t)},delegate:void 0};new class gce extends iS{flush(n){let e;this._active=!0,n?e=n.id:(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 mce extends tS{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=If.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&&e===n._scheduled&&(null===(o=r[r.length-1])||void 0===o?void 0:o.id)!==e&&(If.cancelAnimationFrame(e),n._scheduled=void 0)}});let rS,bce=1;const hb={};function L3(t){return t in hb&&(delete hb[t],!0)}const vce={setImmediate(t){const n=bce++;return hb[n]=!0,rS||(rS=Promise.resolve()),rS.then(()=>L3(n)&&t()),n},clearImmediate(t){L3(t)}},{setImmediate:yce,clearImmediate:Cce}=vce,fb={setImmediate(...t){const{delegate:n}=fb;return(n?.setImmediate||yce)(...t)},clearImmediate(t){const{delegate:n}=fb;return(n?.clearImmediate||Cce)(t)},delegate:void 0};new class xce extends iS{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 wce extends tS{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=fb.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&&(fb.clearImmediate(e),n._scheduled===e&&(n._scheduled=void 0))}});function B3(t,n=Pf){return function kce(t){return Mn((n,e)=>{let i=!1,o=null,r=null,s=!1;const a=()=>{if(r?.unsubscribe(),r=null,i){i=!1;const c=o;o=null,e.next(c)}s&&e.complete()},l=()=>{r=null,s&&e.complete()};n.subscribe(dn(e,c=>{i=!0,o=c,r||ji(t(c)).subscribe(r=dn(e,a,l))},()=>{s=!0,(!i||!r||r.closed)&&e.complete()}))})}(()=>xa(t,n))}function Of(t,n=0){return function Dce(t){return!isNaN(parseFloat(t))&&!isNaN(Number(t))}(t)?Number(t):2===arguments.length?n:0}function Ps(t){return t instanceof Re?t.nativeElement:t}let sS;try{sS=typeof Intl<"u"&&Intl.v8BreakIterator}catch{sS=!1}let Yn=(()=>{class t{_platformId=D(wC);isBrowser=this._platformId?function kU(t){return t===XM}(this._platformId):"object"==typeof document&&!!document;EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent);TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent);BLINK=this.isBrowser&&!(!window.chrome&&!sS)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT;WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT;IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window);FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent);ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT;SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT;constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Mce=new Z("cdk-dir-doc",{providedIn:"root",factory:()=>D(et)}),Tce=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;let br=(()=>{class t{get value(){return this.valueSignal()}valueSignal=yt("ltr");change=new we;constructor(){const e=D(Mce,{optional:!0});e&&this.valueSignal.set(function Ece(t){const n=t?.toLowerCase()||"";return"auto"===n&&typeof navigator<"u"&&navigator?.language?Tce.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 \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var qr=function(t){return t[t.NORMAL=0]="NORMAL",t[t.NEGATED=1]="NEGATED",t[t.INVERTED=2]="INVERTED",t}(qr||{});let pb,Kl;function V3(){if(null==Kl){if("object"!=typeof document||!document||"function"!=typeof Element||!Element)return Kl=!1,Kl;if(document.documentElement?.style&&"scrollBehavior"in document.documentElement.style)Kl=!0;else{const t=Element.prototype.scrollTo;Kl=!!t&&!/\{\s*\[native code\]\s*\}/.test(t.toString())}}return Kl}function Af(){if("object"!=typeof document||!document)return qr.NORMAL;if(null==pb){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),pb=qr.NORMAL,0===t.scrollLeft&&(t.scrollLeft=1,pb=0===t.scrollLeft?qr.NEGATED:qr.INVERTED),t.remove()}return pb}let aS,ii=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({})}return t})(),mb=(()=>{class t{_ngZone=D(_e);_platform=D(Yn);_renderer=D(Lo).createRenderer(null,null);_cleanupGlobalListener;constructor(){}_scrolled=new me;_scrolledCount=0;scrollContainers=new Map;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 Ft(i=>{this._cleanupGlobalListener||(this._cleanupGlobalListener=this._ngZone.runOutsideAngular(()=>this._renderer.listen("document","scroll",()=>this._scrolled.next())));const o=e>0?this._scrolled.pipe(B3(e)).subscribe(i):this._scrolled.subscribe(i);return this._scrolledCount++,()=>{o.unsubscribe(),this._scrolledCount--,this._scrolledCount||(this._cleanupGlobalListener?.(),this._cleanupGlobalListener=void 0)}}):ae()}ngOnDestroy(){this._cleanupGlobalListener?.(),this._cleanupGlobalListener=void 0,this.scrollContainers.forEach((e,i)=>this.deregister(i)),this._scrolled.complete()}ancestorScrolled(e,i){const o=this.getAncestorScrollContainers(e);return this.scrolled(i).pipe(Tn(r=>!r||o.indexOf(r)>-1))}getAncestorScrollContainers(e){const i=[];return this.scrollContainers.forEach((o,r)=>{this._scrollableContainsElement(r,e)&&i.push(r)}),i}_scrollableContainsElement(e,i){let o=Ps(i),r=e.getElementRef().nativeElement;do{if(o==r)return!0}while(o=o.parentElement);return!1}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),H3=(()=>{class t{elementRef=D(Re);scrollDispatcher=D(mb);ngZone=D(_e);dir=D(br,{optional:!0});_scrollElement=this.elementRef.nativeElement;_destroyed=new me;_renderer=D(Qn);_cleanupScroll;_elementScrolled=new me;constructor(){}ngOnInit(){this._cleanupScroll=this.ngZone.runOutsideAngular(()=>this._renderer.listen(this._scrollElement,"scroll",e=>this._elementScrolled.next(e))),this.scrollDispatcher.register(this)}ngOnDestroy(){this._cleanupScroll?.(),this._elementScrolled.complete(),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&&Af()!=qr.NORMAL?(null!=e.left&&(e.right=i.scrollWidth-i.clientWidth-e.left),Af()==qr.INVERTED?e.left=e.right:Af()==qr.NEGATED&&(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;V3()?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 s=this.dir&&"rtl"==this.dir.value;return"start"==e?e=s?o:i:"end"==e&&(e=s?i:o),s&&Af()==qr.INVERTED?e==i?r.scrollWidth-r.clientWidth-r.scrollLeft:r.scrollLeft:s&&Af()==qr.NEGATED?e==i?r.scrollLeft+r.scrollWidth-r.clientWidth:-r.scrollLeft:e==i?r.scrollLeft:r.scrollWidth-r.clientWidth-r.scrollLeft}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","cdk-scrollable",""],["","cdkScrollable",""]]})}return t})(),qd=(()=>{class t{_platform=D(Yn);_listeners;_viewportSize=null;_change=new me;_document=D(et);constructor(){const e=D(_e),i=D(Lo).createRenderer(null,null);e.runOutsideAngular(()=>{if(this._platform.isBrowser){const o=r=>this._change.next(r);this._listeners=[i.listen("window","resize",o),i.listen("window","orientationchange",o)]}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){this._listeners?.forEach(e=>e()),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(B3(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 \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Rf=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({})}return t})(),j3=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({imports:[ii,Rf,ii,Rf]})}return t})();function lS(){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 vr(t){return t.composedPath?t.composedPath()[0]:t.target}function U3(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}const gb=new WeakMap;let zo=(()=>{class t{_appRef;_injector=D(He);_environmentInjector=D(zn);load(e){const i=this._appRef=this._appRef||this._injector.get(lr);let o=gb.get(i);o||(o={loaders:new Set,refs:[]},gb.set(i,o),i.onDestroy(()=>{gb.get(i)?.refs.forEach(r=>r.destroy()),gb.delete(i)})),o.loaders.has(e)||(o.loaders.add(e),o.refs.push(gF(e,{environmentInjector:this._environmentInjector})))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function oi(t){return null==t?"":"string"==typeof t?t:`${t}px`}function _b(t){return Array.isArray(t)?t:[t]}class cS{_attachedHost=null;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 Kd extends cS{component;viewContainerRef;injector;projectableNodes;bindings;constructor(n,e,i,o,r){super(),this.component=n,this.viewContainerRef=e,this.injector=i,this.projectableNodes=o,this.bindings=r||null}}class Yl extends cS{templateRef;viewContainerRef;context;injector;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 Nce extends cS{element;constructor(n){super(),this.element=n instanceof Re?n.nativeElement:n}}class bb{_attachedPortal=null;_disposeFn=null;_isDisposed=!1;hasAttached(){return!!this._attachedPortal}attach(n){return n instanceof Kd?(this._attachedPortal=n,this.attachComponentPortal(n)):n instanceof Yl?(this._attachedPortal=n,this.attachTemplatePortal(n)):this.attachDomPortal&&n instanceof Nce?(this._attachedPortal=n,this.attachDomPortal(n)):void 0}attachDomPortal=null;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 Lce extends bb{outletElement;_appRef;_defaultInjector;constructor(n,e,i){super(),this.outletElement=n,this._appRef=e,this._defaultInjector=i}attachComponentPortal(n){let e;if(n.viewContainerRef){const i=n.injector||n.viewContainerRef.injector,o=i.get(bs,null,{optional:!0})||void 0;e=n.viewContainerRef.createComponent(n.component,{index:n.viewContainerRef.length,injector:i,ngModuleRef:o,projectableNodes:n.projectableNodes||void 0,bindings:n.bindings||void 0}),this.setDisposeFn(()=>e.destroy())}else{const i=this._appRef,o=n.injector||this._defaultInjector||He.NULL,r=o.get(zn,i.injector);e=gF(n.component,{elementInjector:o,environmentInjector:r,projectableNodes:n.projectableNodes||void 0,bindings:n.bindings||void 0}),i.attachView(e.hostView),this.setDisposeFn(()=>{i.viewCount>0&&i.detachView(e.hostView),e.destroy()})}return this.outletElement.appendChild(this._getComponentRootNode(e)),this._attachedPortal=n,e}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}attachDomPortal=n=>{const e=n.element,i=this.outletElement.ownerDocument.createComment("dom-portal");e.parentNode.insertBefore(i,e),this.outletElement.appendChild(e),this._attachedPortal=n,super.setDisposeFn(()=>{i.parentNode&&i.parentNode.replaceChild(e,i)})};dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(n){return n.hostView.rootNodes[0]}}let Bce=(()=>{class t extends Yl{constructor(){super(D(Ti),D(Ei))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","cdkPortal",""]],exportAs:["cdkPortal"],features:[be]})}return t})(),Xl=(()=>{class t extends bb{_moduleRef=D(bs,{optional:!0});_document=D(et);_viewContainerRef=D(Ei);_isInitialized=!1;_attachedRef=null;constructor(){super()}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)}attached=new we;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,o=i.createComponent(e.component,{index:i.length,injector:e.injector||i.injector,projectableNodes:e.projectableNodes||void 0,ngModuleRef:this._moduleRef||void 0,bindings:e.bindings||void 0});return i!==this._viewContainerRef&&this._getRootNode().appendChild(o.hostView.rootNodes[0]),super.setDisposeFn(()=>o.destroy()),this._attachedPortal=e,this._attachedRef=o,this.attached.emit(o),o}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}attachDomPortal=e=>{const i=e.element,o=this._document.createComment("dom-portal");e.setAttachedHost(this),i.parentNode.insertBefore(o,i),this._getRootNode().appendChild(i),this._attachedPortal=e,super.setDisposeFn(()=>{o.parentNode&&o.parentNode.replaceChild(i,o)})};_getRootNode(){const e=this._viewContainerRef.element.nativeElement;return e.nodeType===e.ELEMENT_NODE?e:e.parentNode}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:[0,"cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],features:[be]})}return t})(),Ff=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({})}return t})();function yr(t,...n){return n.length?n.some(e=>t[e]):t.altKey||t.shiftKey||t.ctrlKey||t.metaKey}const $3=V3();function dS(t){return new Jce(t.get(qd),t.get(et))}class Jce{_viewportRuler;_previousHTMLStyles={top:"",left:""};_previousScrollPosition;_isEnabled=!1;_document;constructor(n,e){this._viewportRuler=n,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=oi(-this._previousScrollPosition.left),n.style.top=oi(-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||"",s=o.scrollBehavior||"";this._isEnabled=!1,i.left=this._previousHTMLStyles.left,i.top=this._previousHTMLStyles.top,n.classList.remove("cdk-global-scrollblock"),$3&&(i.scrollBehavior=o.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),$3&&(i.scrollBehavior=r,o.scrollBehavior=s)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;const e=this._document.documentElement,i=this._viewportRuler.getViewportSize();return e.scrollHeight>i.height||e.scrollWidth>i.width}}class tde{_scrollDispatcher;_ngZone;_viewportRuler;_config;_scrollSubscription=null;_overlayRef;_initialScrollPosition;constructor(n,e,i,o){this._scrollDispatcher=n,this._ngZone=e,this._viewportRuler=i,this._config=o}attach(n){this._overlayRef=n}enable(){if(this._scrollSubscription)return;const n=this._scrollDispatcher.scrolled(0).pipe(Tn(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}_detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}}class uS{enable(){}disable(){}attach(){}}function hS(t,n){return n.some(e=>t.bottome.bottom||t.righte.right)}function W3(t,n){return n.some(e=>t.tope.bottom||t.lefte.right)}function Bf(t,n){return new nde(t.get(mb),t.get(qd),t.get(_e),n)}class nde{_scrollDispatcher;_viewportRuler;_ngZone;_config;_scrollSubscription=null;_overlayRef;constructor(n,e,i,o){this._scrollDispatcher=n,this._viewportRuler=e,this._ngZone=i,this._config=o}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();hS(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 ide=(()=>{class t{_injector=D(He);constructor(){}noop=()=>new uS;close=e=>function ede(t,n){return new tde(t.get(mb),t.get(_e),t.get(qd),n)}(this._injector,e);block=()=>dS(this._injector);reposition=e=>Bf(this._injector,e);static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();class Vf{positionStrategy;scrollStrategy=new uS;panelClass="";hasBackdrop=!1;backdropClass="cdk-overlay-dark-backdrop";disableAnimations;width;height;minWidth;minHeight;maxWidth;maxHeight;direction;disposeOnNavigation=!1;usePopover;eventPredicate;constructor(n){if(n){const e=Object.keys(n);for(const i of e)void 0!==n[i]&&(this[i]=n[i])}}}class ode{connectionPair;scrollableViewProperties;constructor(n,e){this.connectionPair=n,this.scrollableViewProperties=e}}let G3=(()=>{class t{_attachedOverlays=[];_document=D(et);_isAttached=!1;constructor(){}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()}canReceiveEvent(e,i,o){return!(o.observers.length<1)&&(!e.eventPredicate||e.eventPredicate(i))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),rde=(()=>{class t extends G3{_ngZone=D(_e);_renderer=D(Lo).createRenderer(null,null);_cleanupKeydown;add(e){super.add(e),this._isAttached||(this._ngZone.runOutsideAngular(()=>{this._cleanupKeydown=this._renderer.listen("body","keydown",this._keydownListener)}),this._isAttached=!0)}detach(){this._isAttached&&(this._cleanupKeydown?.(),this._isAttached=!1)}_keydownListener=e=>{const i=this._attachedOverlays;for(let o=i.length-1;o>-1;o--){const r=i[o];if(this.canReceiveEvent(r,e,r._keydownEvents)){this._ngZone.run(()=>r._keydownEvents.next(e));break}}};static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),sde=(()=>{class t extends G3{_platform=D(Yn);_ngZone=D(_e);_renderer=D(Lo).createRenderer(null,null);_cursorOriginalValue;_cursorStyleIsSet=!1;_pointerDownEventTarget=null;_cleanups;add(e){if(super.add(e),!this._isAttached){const i=this._document.body,o={capture:!0},r=this._renderer;this._cleanups=this._ngZone.runOutsideAngular(()=>[r.listen(i,"pointerdown",this._pointerDownListener,o),r.listen(i,"click",this._clickListener,o),r.listen(i,"auxclick",this._clickListener,o),r.listen(i,"contextmenu",this._clickListener,o)]),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=i.style.cursor,i.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){this._isAttached&&(this._cleanups?.forEach(e=>e()),this._cleanups=void 0,this._platform.IOS&&this._cursorStyleIsSet&&(this._document.body.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1)}_pointerDownListener=e=>{this._pointerDownEventTarget=vr(e)};_clickListener=e=>{const i=vr(e),o="click"===e.type&&this._pointerDownEventTarget?this._pointerDownEventTarget:i;this._pointerDownEventTarget=null;const r=this._attachedOverlays.slice();for(let s=r.length-1;s>-1;s--){const a=r[s],l=a._outsidePointerEvents;if(a.hasAttached()&&this.canReceiveEvent(a,e,l)){if(q3(a.overlayElement,i)||q3(a.overlayElement,o))break;this._ngZone?this._ngZone.run(()=>l.next(e)):l.next(e)}}};static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function q3(t,n){const e=typeof ShadowRoot<"u"&&ShadowRoot;let i=n;for(;i;){if(i===t)return!0;i=e&&i instanceof ShadowRoot?i.host:i.parentNode}return!1}let K3=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["ng-component"]],hostAttrs:["cdk-overlay-style-loader",""],decls:0,vars:0,template:function(i,o){},styles:[".cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed}@layer cdk-overlay{.cdk-overlay-container{z-index:1000}}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute}@layer cdk-overlay{.cdk-global-overlay-wrapper{z-index:1000}}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;display:flex;max-width:100%;max-height:100%}@layer cdk-overlay{.cdk-overlay-pane{z-index:1000}}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);opacity:0;touch-action:manipulation}@layer cdk-overlay{.cdk-overlay-backdrop{z-index:1000;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}}@media(prefers-reduced-motion){.cdk-overlay-backdrop{transition-duration:1ms}}.cdk-overlay-backdrop-showing{opacity:1}@media(forced-colors: active){.cdk-overlay-backdrop-showing{opacity:.6}}@layer cdk-overlay{.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing,.cdk-high-contrast-active .cdk-overlay-transparent-backdrop{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;display:flex;flex-direction:column;min-width:1px;min-height:1px}@layer cdk-overlay{.cdk-overlay-connected-position-bounding-box{z-index:1000}}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.cdk-overlay-popover{background:none;border:none;padding:0;outline:0;overflow:visible;position:fixed;pointer-events:none;white-space:normal;color:inherit;text-decoration:none;width:100%;height:100%;inset:auto;top:0;left:0}.cdk-overlay-popover::backdrop{display:none}.cdk-overlay-popover .cdk-overlay-backdrop{position:fixed;z-index:auto}\n"],encapsulation:2,changeDetection:0})}return t})(),fS=(()=>{class t{_platform=D(Yn);_containerElement;_document=D(et);_styleLoader=D(zo);constructor(){}ngOnDestroy(){this._containerElement?.remove()}getContainerElement(){return this._loadStyles(),this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const e="cdk-overlay-container";if(this._platform.isBrowser||U3()){const o=this._document.querySelectorAll(`.${e}[platform="server"], .${e}[platform="test"]`);for(let r=0;r{const n=this.element;clearTimeout(this._fallbackTimeout),this._cleanupTransitionEnd?.(),this._cleanupTransitionEnd=this._renderer.listen(n,"transitionend",this.dispose),this._fallbackTimeout=setTimeout(this.dispose,500),n.style.pointerEvents="none",n.classList.remove("cdk-overlay-backdrop-showing")})}dispose=()=>{clearTimeout(this._fallbackTimeout),this._cleanupClick?.(),this._cleanupTransitionEnd?.(),this._cleanupClick=this._cleanupTransitionEnd=this._fallbackTimeout=void 0,this.element.remove()}}function pS(t){return t&&1===t.nodeType}class Y3{_portalOutlet;_host;_pane;_config;_ngZone;_keyboardDispatcher;_document;_location;_outsideClickDispatcher;_animationsDisabled;_injector;_renderer;_backdropClick=new me;_attachments=new me;_detachments=new me;_positionStrategy;_scrollStrategy;_locationChanges=pt.EMPTY;_backdropRef=null;_detachContentMutationObserver;_detachContentAfterRenderRef;_disposed=!1;_previousHostParent;_keydownEvents=new me;_outsidePointerEvents=new me;_afterNextRenderRef;constructor(n,e,i,o,r,s,a,l,c,f=!1,m,g){this._portalOutlet=n,this._host=e,this._pane=i,this._config=o,this._ngZone=r,this._keyboardDispatcher=s,this._document=a,this._location=l,this._outsideClickDispatcher=c,this._animationsDisabled=f,this._injector=m,this._renderer=g,o.scrollStrategy&&(this._scrollStrategy=o.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=o.positionStrategy}get overlayElement(){return this._pane}get backdropElement(){return this._backdropRef?.element||null}get hostElement(){return this._host}get eventPredicate(){return this._config?.eventPredicate||null}attach(n){if(this._disposed)return null;this._attachHost();const e=this._portalOutlet.attach(n);return this._positionStrategy?.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._afterNextRenderRef?.destroy(),this._afterNextRenderRef=Vi(()=>{this.hasAttached()&&this.updatePosition()},{injector:this._injector}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._completeDetachContent(),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._completeDetachContent(),this._keyboardDispatcher.remove(this),this._detachContentWhenEmpty(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),n}dispose(){if(this._disposed)return;const n=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._backdropRef?.dispose(),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._afterNextRenderRef?.destroy(),this._previousHostParent=this._pane=this._host=this._backdropRef=null,n&&this._detachments.next(),this._detachments.complete(),this._completeDetachContent(),this._disposed=!0}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=oi(this._config.width),n.height=oi(this._config.height),n.minWidth=oi(this._config.minWidth),n.minHeight=oi(this._config.minHeight),n.maxWidth=oi(this._config.maxWidth),n.maxHeight=oi(this._config.maxHeight)}_togglePointerEvents(n){this._pane.style.pointerEvents=n?"":"none"}_attachHost(){if(!this._host.parentElement){const n=this._config.usePopover?this._positionStrategy?.getPopoverInsertionPoint?.():null;pS(n)?n.after(this._host):"parent"===n?.type?n.element.appendChild(this._host):this._previousHostParent?.appendChild(this._host)}if(this._config.usePopover)try{this._host.showPopover()}catch{}}_attachBackdrop(){const n="cdk-overlay-backdrop-showing";this._backdropRef?.dispose(),this._backdropRef=new ade(this._document,this._renderer,this._ngZone,e=>{this._backdropClick.next(e)}),this._animationsDisabled&&this._backdropRef.element.classList.add("cdk-overlay-backdrop-noop-animation"),this._config.backdropClass&&this._toggleClasses(this._backdropRef.element,this._config.backdropClass,!0),this._config.usePopover?this._host.prepend(this._backdropRef.element):this._host.parentElement.insertBefore(this._backdropRef.element,this._host),!this._animationsDisabled&&typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>this._backdropRef?.element.classList.add(n))}):this._backdropRef.element.classList.add(n)}_updateStackingOrder(){!this._config.usePopover&&this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){this._animationsDisabled?(this._backdropRef?.dispose(),this._backdropRef=null):this._backdropRef?.detach()}_toggleClasses(n,e,i){const o=_b(e||[]).filter(r=>!!r);o.length&&(i?n.classList.add(...o):n.classList.remove(...o))}_detachContentWhenEmpty(){let n=!1;try{this._detachContentAfterRenderRef=Vi(()=>{n=!0,this._detachContent()},{injector:this._injector})}catch(e){if(n)throw e;this._detachContent()}globalThis.MutationObserver&&this._pane&&(this._detachContentMutationObserver||=new globalThis.MutationObserver(()=>{this._detachContent()}),this._detachContentMutationObserver.observe(this._pane,{childList:!0}))}_detachContent(){(!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()),this._completeDetachContent())}_completeDetachContent(){this._detachContentAfterRenderRef?.destroy(),this._detachContentAfterRenderRef=void 0,this._detachContentMutationObserver?.disconnect()}_disposeScrollStrategy(){const n=this._scrollStrategy;n?.disable(),n?.detach?.()}}const X3="cdk-overlay-connected-position-bounding-box",lde=/([A-Za-z%]+)$/;function xb(t,n){return new cde(n,t.get(qd),t.get(et),t.get(Yn),t.get(fS))}class cde{_viewportRuler;_document;_platform;_overlayContainer;_overlayRef;_isInitialRender=!1;_lastBoundingBoxSize={width:0,height:0};_isPushed=!1;_canPush=!0;_growAfterOpen=!1;_hasFlexibleDimensions=!0;_positionLocked=!1;_originRect;_overlayRect;_viewportRect;_containerRect;_viewportMargin=0;_scrollables=[];_preferredPositions=[];_origin;_pane;_isDisposed=!1;_boundingBox=null;_lastPosition=null;_lastScrollVisibility=null;_positionChanges=new me;_resizeSubscription=pt.EMPTY;_offsetX=0;_offsetY=0;_transformOriginSelector;_appliedPanelClasses=[];_previousPushAmount=null;_popoverLocation="global";positionChanges=this._positionChanges;get positions(){return this._preferredPositions}constructor(n,e,i,o,r){this._viewportRuler=e,this._document=i,this._platform=o,this._overlayContainer=r,this.setOrigin(n)}attach(n){this._validatePositions(),n.hostElement.classList.add(X3),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._getContainerRect();const n=this._originRect,e=this._overlayRect,i=this._viewportRect,o=this._containerRect,r=[];let s;for(let a of this._preferredPositions){let l=this._getOriginPoint(n,o,a),c=this._getOverlayPoint(l,e,a),f=this._getOverlayFit(c,e,i,a);if(f.isCompletelyWithinViewport)return this._isPushed=!1,void this._applyPosition(a,l);this._canFitWithFlexibleDimensions(f,c,i)?r.push({position:a,origin:l,overlayRect:e,boundingBoxRect:this._calculateBoundingBoxRect(l,a)}):(!s||s.overlayFit.visibleAreal&&(l=f,a=c)}return this._isPushed=!1,void this._applyPosition(a.position,a.origin)}if(this._canPush)return this._isPushed=!0,void this._applyPosition(s.position,s.originPoint);this._applyPosition(s.position,s.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&Zl(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(X3),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;n?(this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._getContainerRect(),this._applyPosition(n,this._getOriginPoint(this._originRect,this._containerRect,n))):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}withPopoverLocation(n){return this._popoverLocation=n,this}getPopoverInsertionPoint(){return"global"===this._popoverLocation?null:"inline"!==this._popoverLocation?this._popoverLocation:this._origin instanceof Re?this._origin.nativeElement:pS(this._origin)?this._origin:null}_getOriginPoint(n,e,i){let o,r;if("center"==i.originX)o=n.left+n.width/2;else{const s=this._isRtl()?n.right:n.left,a=this._isRtl()?n.left:n.right;o="start"==i.originX?s:a}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=Q3(e);let{x:s,y:a}=n,l=this._getOffset(o,"x"),c=this._getOffset(o,"y");l&&(s+=l),c&&(a+=c);let g=0-a,_=a+r.height-i.height,w=this._subtractOverflows(r.width,0-s,s+r.width-i.width),k=this._subtractOverflows(r.height,g,_),T=w*k;return{visibleArea:T,isCompletelyWithinViewport:r.width*r.height===T,fitsInViewportVertically:k===r.height,fitsInViewportHorizontally:w==r.width}}_canFitWithFlexibleDimensions(n,e,i){if(this._hasFlexibleDimensions){const o=i.bottom-e.y,r=i.right-e.x,s=Z3(this._overlayRef.getConfig().minHeight),a=Z3(this._overlayRef.getConfig().minWidth);return(n.fitsInViewportVertically||null!=s&&s<=o)&&(n.fitsInViewportHorizontally||null!=a&&a<=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=Q3(e),r=this._viewportRect,s=Math.max(n.x+o.width-r.width,0),a=Math.max(n.y+o.height-r.height,0),l=Math.max(r.top-i.top-n.y,0),c=Math.max(r.left-i.left-n.x,0);let f=0,m=0;return f=o.width<=r.width?c||-s:n.xw&&!this._isInitialRender&&!this._growAfterOpen&&(s=n.y-w/2)}const l="start"===e.overlayX&&!o||"end"===e.overlayX&&o;let f,m,g;if("end"===e.overlayX&&!o||"start"===e.overlayX&&o)g=i.width-n.x+this._getViewportMarginStart()+this._getViewportMarginEnd(),f=n.x-this._getViewportMarginStart();else if(l)m=n.x,f=i.right-n.x-this._getViewportMarginEnd();else{const _=Math.min(i.right-n.x+i.left,n.x),w=this._lastBoundingBoxSize.width;f=2*_,m=n.x-_,f>w&&!this._isInitialRender&&!this._growAfterOpen&&(m=n.x-w/2)}return{top:s,left:m,bottom:a,right:g,width:f,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="auto",o.maxHeight=o.maxWidth="",o.width=o.height="100%";else{const r=this._overlayRef.getConfig().maxHeight,s=this._overlayRef.getConfig().maxWidth;o.width=oi(i.width),o.height=oi(i.height),o.top=oi(i.top)||"auto",o.bottom=oi(i.bottom)||"auto",o.left=oi(i.left)||"auto",o.right=oi(i.right)||"auto",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=oi(r)),s&&(o.maxWidth=oi(s))}this._lastBoundingBoxSize=i,Zl(this._boundingBox.style,o)}_resetBoundingBoxStyles(){Zl(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){Zl(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(n,e){const i={},o=this._hasExactPosition(),r=this._hasFlexibleDimensions,s=this._overlayRef.getConfig();if(o){const f=this._viewportRuler.getViewportScrollPosition();Zl(i,this._getExactOverlayY(e,n,f)),Zl(i,this._getExactOverlayX(e,n,f))}else i.position="static";let a="",l=this._getOffset(e,"x"),c=this._getOffset(e,"y");l&&(a+=`translateX(${l}px) `),c&&(a+=`translateY(${c}px)`),i.transform=a.trim(),s.maxHeight&&(o?i.maxHeight=oi(s.maxHeight):r&&(i.maxHeight="")),s.maxWidth&&(o?i.maxWidth=oi(s.maxWidth):r&&(i.maxWidth="")),Zl(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=oi(r.y),o}_getExactOverlayX(n,e,i){let s,o={left:"",right:""},r=this._getOverlayPoint(e,this._overlayRect,n);return this._isPushed&&(r=this._pushOverlayOnScreen(r,this._overlayRect,i)),s=this._isRtl()?"end"===n.overlayX?"left":"right":"end"===n.overlayX?"right":"left","right"===s?o.right=this._document.documentElement.clientWidth-(r.x+this._overlayRect.width)+"px":o.left=oi(r.x),o}_getScrollVisibility(){const n=this._getOriginRect(),e=this._pane.getBoundingClientRect(),i=this._scrollables.map(o=>o.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:W3(n,i),isOriginOutsideView:hS(n,i),isOverlayClipped:W3(e,i),isOverlayOutsideView:hS(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._getViewportMarginTop(),left:i.left+this._getViewportMarginStart(),right:i.left+n-this._getViewportMarginEnd(),bottom:i.top+e-this._getViewportMarginBottom(),width:n-this._getViewportMarginStart()-this._getViewportMarginEnd(),height:e-this._getViewportMarginTop()-this._getViewportMarginBottom()}}_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&&_b(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=[])}_getViewportMarginStart(){return"number"==typeof this._viewportMargin?this._viewportMargin:this._viewportMargin?.start??0}_getViewportMarginEnd(){return"number"==typeof this._viewportMargin?this._viewportMargin:this._viewportMargin?.end??0}_getViewportMarginTop(){return"number"==typeof this._viewportMargin?this._viewportMargin:this._viewportMargin?.top??0}_getViewportMarginBottom(){return"number"==typeof this._viewportMargin?this._viewportMargin:this._viewportMargin?.bottom??0}_getOriginRect(){const n=this._origin;if(n instanceof Re)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}}_getContainerRect(){const n=this._overlayRef.getConfig().usePopover&&"global"!==this._popoverLocation,e=this._overlayContainer.getContainerElement();n&&(e.style.display="block");const i=e.getBoundingClientRect();return n&&(e.style.display=""),i}}function Zl(t,n){for(let e in n)n.hasOwnProperty(e)&&(t[e]=n[e]);return t}function Z3(t){if("number"!=typeof t&&null!=t){const[n,e]=t.split(lde);return e&&"px"!==e?null:parseFloat(n)}return t||null}function Q3(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 J3="cdk-global-overlay-wrapper";function Sb(t){return new ude}class ude{_overlayRef;_cssPosition="static";_topOffset="";_bottomOffset="";_alignItems="";_xPosition="";_xOffset="";_width="";_height="";_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(J3),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:s,maxHeight:a}=i,l=!("100%"!==o&&"100vw"!==o||s&&"100%"!==s&&"100vw"!==s),c=!("100%"!==r&&"100vh"!==r||a&&"100%"!==a&&"100vh"!==a),f=this._xPosition,m=this._xOffset,g="rtl"===this._overlayRef.getConfig().direction;let _="",w="",k="";l?k="flex-start":"center"===f?(k="center",g?w=m:_=m):g?"left"===f||"end"===f?(k="flex-end",_=m):("right"===f||"start"===f)&&(k="flex-start",w=m):"left"===f||"start"===f?(k="flex-start",_=m):("right"===f||"end"===f)&&(k="flex-end",w=m),n.position=this._cssPosition,n.marginLeft=l?"0":_,n.marginTop=c?"0":this._topOffset,n.marginBottom=this._bottomOffset,n.marginRight=l?"0":w,e.justifyContent=k,e.alignItems=c?"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(J3),i.justifyContent=i.alignItems=n.marginTop=n.marginBottom=n.marginLeft=n.marginRight=n.position="",this._overlayRef=null,this._isDisposed=!0}}let hde=(()=>{class t{_injector=D(He);constructor(){}global(){return Sb()}flexibleConnectedTo(e){return xb(this._injector,e)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const mS=new Z("OVERLAY_DEFAULT_CONFIG");function Xd(t,n){t.get(zo).load(K3);const e=t.get(fS),i=t.get(et),o=t.get(ni),r=t.get(lr),s=t.get(br),a=t.get(Qn,null,{optional:!0})||t.get(Lo).createRenderer(null,null),l=new Vf(n),c=t.get(mS,null,{optional:!0})?.usePopover??!0;l.direction=l.direction||s.value,l.usePopover="showPopover"in i.body&&(n?.usePopover??c);const f=i.createElement("div"),m=i.createElement("div");f.id=o.getId("cdk-overlay-"),f.classList.add("cdk-overlay-pane"),m.appendChild(f),l.usePopover&&(m.setAttribute("popover","manual"),m.classList.add("cdk-overlay-popover"));const g=l.usePopover?l.positionStrategy?.getPopoverInsertionPoint?.():null;return pS(g)?g.after(m):"parent"===g?.type?g.element.appendChild(m):e.getContainerElement().appendChild(m),new Y3(new Lce(f,r,t),m,f,l,t.get(_e),t.get(rde),i,t.get(Fd),t.get(sde),n?.disableAnimations??"NoopAnimations"===t.get(Rm,null,{optional:!0}),t.get(zn),a)}let fde=(()=>{class t{scrollStrategies=D(ide);_positionBuilder=D(hde);_injector=D(He);constructor(){}create(e){return Xd(this._injector,e)}position(){return this._positionBuilder}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const pde=[{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"}],mde=new Z("cdk-connected-overlay-scroll-strategy",{providedIn:"root",factory:()=>{const t=D(He);return()=>Bf(t)}});let kb=(()=>{class t{elementRef=D(Re);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"]})}return t})();const gde=new Z("cdk-connected-overlay-default-config");let Db,e4=(()=>{class t{_dir=D(br,{optional:!0});_injector=D(He);_overlayRef;_templatePortal;_backdropSubscription=pt.EMPTY;_attachSubscription=pt.EMPTY;_detachSubscription=pt.EMPTY;_positionSubscription=pt.EMPTY;_offsetX;_offsetY;_position;_scrollStrategyFactory=D(mde);_ngZone=D(_e);origin;positions;positionStrategy;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)}width;height;minWidth;minHeight;backdropClass;panelClass;viewportMargin=0;scrollStrategy;open=!1;disableClose=!1;transformOriginSelector;hasBackdrop=!1;lockPosition=!1;flexibleDimensions=!1;growAfterOpen=!1;push=!1;disposeOnNavigation=!1;usePopover;matchWidth=!1;set _config(e){"string"!=typeof e&&this._assignConfig(e)}backdropClick=new we;positionChange=new we;attach=new we;detach=new we;overlayKeydown=new we;overlayOutsideClick=new we;constructor(){const e=D(Ti),i=D(Ei),o=D(gde,{optional:!0}),r=D(mS,{optional:!0});this.usePopover=!1===r?.usePopover?null:"global",this._templatePortal=new Yl(e,i),this.scrollStrategy=this._scrollStrategyFactory(),o&&this._assignConfig(o)}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?.dispose()}ngOnChanges(e){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef?.updateSize({width:this._getWidth(),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=pde);const e=this._overlayRef=Xd(this._injector,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&&!yr(i)&&(i.preventDefault(),this.detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(i=>{const o=this._getOriginElement(),r=vr(i);(!o||o!==r&&!o.contains(r))&&this.overlayOutsideClick.next(i)})}_buildConfig(){const e=this._position=this.positionStrategy||this._createPositionStrategy(),i=new Vf({direction:this._dir||"ltr",positionStrategy:e,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop,disposeOnNavigation:this.disposeOnNavigation,usePopover:!!this.usePopover});return(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._getOrigin()).withPositions(i).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector).withPopoverLocation(null===this.usePopover?"global":this.usePopover)}_createPositionStrategy(){const e=xb(this._injector,this._getOrigin());return this._updatePositionStrategy(e),e}_getOrigin(){return this.origin instanceof kb?this.origin.elementRef:this.origin}_getOriginElement(){return this.origin instanceof kb?this.origin.elementRef.nativeElement:this.origin instanceof Re?this.origin.nativeElement:typeof Element<"u"&&this.origin instanceof Element?this.origin:null}_getWidth(){return this.width?this.width:this.matchWidth?this._getOriginElement()?.getBoundingClientRect?.().width:void 0}attachOverlay(){this._overlayRef||this._createOverlay();const e=this._overlayRef;e.getConfig().hasBackdrop=this.hasBackdrop,e.updateSize({width:this._getWidth()}),e.hasAttached()||e.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=e.backdropClick().subscribe(i=>this.backdropClick.emit(i)):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe(function Vce(t,n=!1){return Mn((e,i)=>{let o=0;e.subscribe(dn(i,r=>{const s=t(r,o++);(s||n)&&i.next(r),!s&&i.complete()}))})}(()=>this.positionChange.observers.length>0)).subscribe(i=>{this._ngZone.run(()=>this.positionChange.emit(i)),0===this.positionChange.observers.length&&this._positionSubscription.unsubscribe()})),this.open=!0}detachOverlay(){this._overlayRef?.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.open=!1}_assignConfig(e){this.origin=e.origin??this.origin,this.positions=e.positions??this.positions,this.positionStrategy=e.positionStrategy??this.positionStrategy,this.offsetX=e.offsetX??this.offsetX,this.offsetY=e.offsetY??this.offsetY,this.width=e.width??this.width,this.height=e.height??this.height,this.minWidth=e.minWidth??this.minWidth,this.minHeight=e.minHeight??this.minHeight,this.backdropClass=e.backdropClass??this.backdropClass,this.panelClass=e.panelClass??this.panelClass,this.viewportMargin=e.viewportMargin??this.viewportMargin,this.scrollStrategy=e.scrollStrategy??this.scrollStrategy,this.disableClose=e.disableClose??this.disableClose,this.transformOriginSelector=e.transformOriginSelector??this.transformOriginSelector,this.hasBackdrop=e.hasBackdrop??this.hasBackdrop,this.lockPosition=e.lockPosition??this.lockPosition,this.flexibleDimensions=e.flexibleDimensions??this.flexibleDimensions,this.growAfterOpen=e.growAfterOpen??this.growAfterOpen,this.push=e.push??this.push,this.disposeOnNavigation=e.disposeOnNavigation??this.disposeOnNavigation,this.usePopover=e.usePopover??this.usePopover,this.matchWidth=e.matchWidth??this.matchWidth}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{origin:[0,"cdkConnectedOverlayOrigin","origin"],positions:[0,"cdkConnectedOverlayPositions","positions"],positionStrategy:[0,"cdkConnectedOverlayPositionStrategy","positionStrategy"],offsetX:[0,"cdkConnectedOverlayOffsetX","offsetX"],offsetY:[0,"cdkConnectedOverlayOffsetY","offsetY"],width:[0,"cdkConnectedOverlayWidth","width"],height:[0,"cdkConnectedOverlayHeight","height"],minWidth:[0,"cdkConnectedOverlayMinWidth","minWidth"],minHeight:[0,"cdkConnectedOverlayMinHeight","minHeight"],backdropClass:[0,"cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:[0,"cdkConnectedOverlayPanelClass","panelClass"],viewportMargin:[0,"cdkConnectedOverlayViewportMargin","viewportMargin"],scrollStrategy:[0,"cdkConnectedOverlayScrollStrategy","scrollStrategy"],open:[0,"cdkConnectedOverlayOpen","open"],disableClose:[0,"cdkConnectedOverlayDisableClose","disableClose"],transformOriginSelector:[0,"cdkConnectedOverlayTransformOriginOn","transformOriginSelector"],hasBackdrop:[2,"cdkConnectedOverlayHasBackdrop","hasBackdrop",De],lockPosition:[2,"cdkConnectedOverlayLockPosition","lockPosition",De],flexibleDimensions:[2,"cdkConnectedOverlayFlexibleDimensions","flexibleDimensions",De],growAfterOpen:[2,"cdkConnectedOverlayGrowAfterOpen","growAfterOpen",De],push:[2,"cdkConnectedOverlayPush","push",De],disposeOnNavigation:[2,"cdkConnectedOverlayDisposeOnNavigation","disposeOnNavigation",De],usePopover:[0,"cdkConnectedOverlayUsePopover","usePopover"],matchWidth:[2,"cdkConnectedOverlayMatchWidth","matchWidth",De],_config:[0,"cdkConnectedOverlay","_config"]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],features:[_i]})}return t})(),Zd=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({providers:[fde],imports:[ii,Ff,j3,j3]})}return t})(),gS=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["ng-component"]],exportAs:["cdkVisuallyHidden"],decls:0,vars:0,template:function(i,o){},styles:[".cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}\n"],encapsulation:2,changeDetection:0})}return t})();function Qd(t){return function _de(){if(void 0===Db&&(Db=null,typeof window<"u")){const t=window;void 0!==t.trustedTypes&&(Db=t.trustedTypes.createPolicy("angular#components",{createHTML:n=>n}))}return Db}()?.createHTML(t)||t}function _S(t){return Tn((n,e)=>t<=e)}function Mb(t,n=Pf){return Mn((e,i)=>{let o=null,r=null,s=null;const a=()=>{if(o){o.unsubscribe(),o=null;const c=r;r=null,i.next(c)}};function l(){const c=s+t,f=n.now();if(f{r=c,s=n.now(),o||(o=n.schedule(l,t),i.add(o))},()=>{a(),i.complete()},void 0,()=>{r=o=null}))})}const t4=new Set;let Ql,bS=(()=>{class t{_platform=D(Yn);_nonce=D(xC,{optional:!0});_matchMedia;constructor(){this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):yde}matchMedia(e){return(this._platform.WEBKIT||this._platform.BLINK)&&function vde(t,n){if(!t4.has(t))try{Ql||(Ql=document.createElement("style"),n&&Ql.setAttribute("nonce",n),Ql.setAttribute("type","text/css"),document.head.appendChild(Ql)),Ql.sheet&&(Ql.sheet.insertRule(`@media ${t} {body{ }}`,0),t4.add(t))}catch(e){console.error(e)}}(e,this._nonce),this._matchMedia(e)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function yde(t){return{matches:"all"===t||""===t,media:t,addListener:()=>{},removeListener:()=>{}}}let n4=(()=>{class t{_mediaMatcher=D(bS);_zone=D(_e);_queries=new Map;_destroySubject=new me;constructor(){}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(e){return i4(_b(e)).some(o=>this._registerQuery(o).mql.matches)}observe(e){let r=kx(i4(_b(e)).map(s=>this._registerQuery(s).observable));return r=Ts(r.pipe(Cn(1)),r.pipe(_S(1),Mb(0))),r.pipe(Se(s=>{const a={matches:!1,breakpoints:{}};return s.forEach(({matches:l,query:c})=>{a.matches=a.matches||l,a.breakpoints[c]=l}),a}))}_registerQuery(e){if(this._queries.has(e))return this._queries.get(e);const i=this._mediaMatcher.matchMedia(e),r={observable:new Ft(s=>{const a=l=>this._zone.run(()=>s.next(l));return i.addListener(a),()=>{i.removeListener(a)}}).pipe(si(i),Se(({matches:s})=>({query:e,matches:s})),fn(this._destroySubject)),mql:i};return this._queries.set(e,r),r}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function i4(t){return t.map(n=>n.split(",")).reduce((n,e)=>n.concat(e)).map(n=>n.trim())}let o4=(()=>{class t{create(e){return typeof MutationObserver>"u"?null:new MutationObserver(e)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),wde=(()=>{class t{_mutationObserverFactory=D(o4);_observedElements=new Map;_ngZone=D(_e);constructor(){}ngOnDestroy(){this._observedElements.forEach((e,i)=>this._cleanupObserver(i))}observe(e){const i=Ps(e);return new Ft(o=>{const s=this._observeElement(i).pipe(Se(a=>a.filter(l=>!function Cde(t){if("characterData"===t.type&&t.target instanceof Comment)return!0;if("childList"===t.type){for(let n=0;n!!a.length)).subscribe(a=>{this._ngZone.run(()=>{o.next(a)})});return()=>{s.unsubscribe(),this._unobserveElement(i)}})}_observeElement(e){return this._ngZone.runOutsideAngular(()=>{if(this._observedElements.has(e))this._observedElements.get(e).count++;else{const i=new me,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 \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),xde=(()=>{class t{_contentObserver=D(wde);_elementRef=D(Re);event=new we;get disabled(){return this._disabled}set disabled(e){this._disabled=e,this._disabled?this._unsubscribe():this._subscribe()}_disabled=!1;get debounce(){return this._debounce}set debounce(e){this._debounce=Of(e),this._subscribe()}_debounce;_currentSubscription=null;constructor(){}ngAfterContentInit(){!this._currentSubscription&&!this.disabled&&this._subscribe()}ngOnDestroy(){this._unsubscribe()}_subscribe(){this._unsubscribe();const e=this._contentObserver.observe(this._elementRef);this._currentSubscription=(this.debounce?e.pipe(Mb(this.debounce)):e).subscribe(this.event)}_unsubscribe(){this._currentSubscription?.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","cdkObserveContent",""]],inputs:{disabled:[2,"cdkObserveContentDisabled","disabled",De],debounce:"debounce"},outputs:{event:"cdkObserveContent"},exportAs:["cdkObserveContent"]})}return t})(),r4=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({providers:[o4]})}return t})(),s4=(()=>{class t{_platform=D(Yn);constructor(){}isDisabled(e){return e.hasAttribute("disabled")}isVisible(e){return function kde(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 Sde(t){try{return t.frameElement}catch{return null}}(function Ade(t){return t.ownerDocument&&t.ownerDocument.defaultView||window}(e));if(i&&(-1===l4(i)||!this.isVisible(i)))return!1;let o=e.nodeName.toLowerCase(),r=l4(e);return e.hasAttribute("contenteditable")?-1!==r:!("iframe"===o||"object"===o||this._platform.WEBKIT&&this._platform.IOS&&!function Ide(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 Ode(t){return!function Mde(t){return function Ede(t){return"input"==t.nodeName.toLowerCase()}(t)&&"hidden"==t.type}(t)&&(function Dde(t){let n=t.nodeName.toLowerCase();return"input"===n||"select"===n||"button"===n||"textarea"===n}(t)||function Tde(t){return function Pde(t){return"a"==t.nodeName.toLowerCase()}(t)&&t.hasAttribute("href")}(t)||t.hasAttribute("contenteditable")||a4(t))}(e)&&!this.isDisabled(e)&&(i?.ignoreVisibility||this.isVisible(e))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function a4(t){if(!t.hasAttribute("tabindex")||void 0===t.tabIndex)return!1;let n=t.getAttribute("tabindex");return!(!n||isNaN(parseInt(n,10)))}function l4(t){if(!a4(t))return null;const n=parseInt(t.getAttribute("tabindex")||"",10);return isNaN(n)?-1:n}class c4{_element;_checker;_ngZone;_document;_injector;_startAnchor=null;_endAnchor=null;_hasAttached=!1;startAnchorListener=()=>this.focusLastTabbableElement();endAnchorListener=()=>this.focusFirstTabbableElement();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))}_enabled=!0;constructor(n,e,i,o,r=!1,s){this._element=n,this._checker=e,this._ngZone=i,this._document=o,this._injector=s,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._injector?Vi(n,{injector:this._injector}):setTimeout(n)}}let Rde=(()=>{class t{_checker=D(s4);_ngZone=D(_e);_document=D(et);_injector=D(He);constructor(){D(zo).load(gS)}create(e,i=!1){return new c4(e,this._checker,this._ngZone,this._document,i,this._injector)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Fde=new Z("liveAnnouncerElement",{providedIn:"root",factory:()=>null}),Nde=new Z("LIVE_ANNOUNCER_DEFAULT_OPTIONS");let Lde=0,d4=(()=>{class t{_ngZone=D(_e);_defaultOptions=D(Nde,{optional:!0});_liveElement;_document=D(et);_sanitizer=D(Mx);_previousTimeout;_currentPromise;_currentResolve;constructor(){const e=D(Fde,{optional:!0});this._liveElement=e||this._createLiveElement()}announce(e,...i){const o=this._defaultOptions;let r,s;return 1===i.length&&"number"==typeof i[0]?s=i[0]:[r,s]=i,this.clear(),clearTimeout(this._previousTimeout),r||(r=o&&o.politeness?o.politeness:"polite"),null==s&&o&&(s=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(a=>this._currentResolve=a)),clearTimeout(this._previousTimeout),this._previousTimeout=setTimeout(()=>{e&&"string"!=typeof e?function bde(t,n,e){const i=e.sanitize(bi.HTML,n);t.innerHTML=Qd(i||"")}(this._liveElement,e,this._sanitizer):this._liveElement.textContent=e,"number"==typeof s&&(this._previousTimeout=setTimeout(()=>this.clear(),s)),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{_platform=D(Yn);_hasCheckedHighContrastMode=!1;_document=D(et);_breakpointSubscription;constructor(){this._breakpointSubscription=D(n4).observe("(forced-colors: active)").subscribe(()=>{this._hasCheckedHighContrastMode&&(this._hasCheckedHighContrastMode=!1,this._applyBodyHighContrastModeCssClasses())})}getHighContrastMode(){if(!this._platform.isBrowser)return Jl.NONE;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 Jl.WHITE_ON_BLACK;case"rgb(255,255,255)":case"rgb(255,250,239)":return Jl.BLACK_ON_WHITE}return Jl.NONE}ngOnDestroy(){this._breakpointSubscription.unsubscribe()}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){const e=this._document.body.classList;e.remove(vS,u4,h4),this._hasCheckedHighContrastMode=!0;const i=this.getHighContrastMode();i===Jl.BLACK_ON_WHITE?e.add(vS,u4):i===Jl.WHITE_ON_BLACK&&e.add(vS,h4)}}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),f4=(()=>{class t{constructor(){D(Bde)._applyBodyHighContrastModeCssClasses()}static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({imports:[r4]})}return t})();function Hde(t,n){return t===n}function yS(t){return 0===t.buttons||0===t.detail}function CS(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)}function wS(t){return function jde(){if(null==Hf&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>Hf=!0}))}finally{Hf=Hf||!1}return Hf}()?t:!!t.capture}const Ude=new Z("cdk-input-modality-detector-options"),zde={ignoreKeys:[18,17,224,91,16]},xS={passive:!0,capture:!0};let $de=(()=>{class t{_platform=D(Yn);_listenerCleanups;modalityDetected;modalityChanged;get mostRecentModality(){return this._modality.value}_mostRecentTarget=null;_modality=new ki(null);_options;_lastTouchMs=0;_onKeydown=e=>{this._options?.ignoreKeys?.some(i=>i===e.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=vr(e))};_onMousedown=e=>{Date.now()-this._lastTouchMs<650||(this._modality.next(yS(e)?"keyboard":"mouse"),this._mostRecentTarget=vr(e))};_onTouchstart=e=>{CS(e)?this._modality.next("keyboard"):(this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=vr(e))};constructor(){const e=D(_e),i=D(et),o=D(Ude,{optional:!0});if(this._options={...zde,...o},this.modalityDetected=this._modality.pipe(_S(1)),this.modalityChanged=this.modalityDetected.pipe(function Vde(t,n=Ga){return t=t??Hde,Mn((e,i)=>{let o,r=!0;e.subscribe(dn(i,s=>{const a=n(s);(r||!t(o,a))&&(r=!1,o=a,i.next(s))}))})}()),this._platform.isBrowser){const r=D(Lo).createRenderer(null,null);this._listenerCleanups=e.runOutsideAngular(()=>[r.listen(i,"keydown",this._onKeydown,xS),r.listen(i,"mousedown",this._onMousedown,xS),r.listen(i,"touchstart",this._onTouchstart,xS)])}}ngOnDestroy(){this._modality.complete(),this._listenerCleanups?.forEach(e=>e())}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var Tb=function(t){return t[t.IMMEDIATE=0]="IMMEDIATE",t[t.EVENTUAL=1]="EVENTUAL",t}(Tb||{});const Wde=new Z("cdk-focus-monitor-default-options"),Eb=wS({passive:!0,capture:!0});let ec=(()=>{class t{_ngZone=D(_e);_platform=D(Yn);_inputModalityDetector=D($de);_origin=null;_lastFocusOrigin=null;_windowFocused=!1;_windowFocusTimeoutId;_originTimeoutId;_originFromTouchInteraction=!1;_elementInfo=new Map;_monitoredElementCount=0;_rootNodeFocusListenerCount=new Map;_detectionMode;_windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=setTimeout(()=>this._windowFocused=!1)};_document=D(et);_stopInputModalityDetector=new me;constructor(){const e=D(Wde,{optional:!0});this._detectionMode=e?.detectionMode||Tb.IMMEDIATE}_rootNodeFocusAndBlurListener=e=>{for(let o=vr(e);o;o=o.parentElement)"focus"===e.type?this._onFocus(e,o):this._onBlur(e,o)};monitor(e,i=!1){const o=Ps(e);if(!this._platform.isBrowser||1!==o.nodeType)return ae();const r=function Fce(t){if(function Rce(){if(null==aS){const t=typeof document<"u"?document.head:null;aS=!(!t||!t.createShadowRoot&&!t.attachShadow)}return aS}()){const n=t.getRootNode?t.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&n instanceof ShadowRoot)return n}return null}(o)||this._document,s=this._elementInfo.get(o);if(s)return i&&(s.checkChildren=!0),s.subject;const a={checkChildren:i,subject:new me,rootNode:r};return this._elementInfo.set(o,a),this._registerGlobalListeners(a),a.subject}stopMonitoring(e){const i=Ps(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=Ps(e);r===this._document.activeElement?this._getClosestElementsInfo(r).forEach(([a,l])=>this._originChanged(a,i,l)):(this._setOrigin(i),"function"==typeof r.focus&&r.focus(o))}ngOnDestroy(){this._elementInfo.forEach((e,i)=>this.stopMonitoring(i))}_getWindow(){return this._document.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 this._detectionMode===Tb.EVENTUAL||!!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,this._detectionMode===Tb.IMMEDIATE&&(clearTimeout(this._originTimeoutId),this._originTimeoutId=setTimeout(()=>this._origin=null,this._originFromTouchInteraction?650:1))})}_onFocus(e,i){const o=this._elementInfo.get(i),r=vr(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,Eb),i.addEventListener("blur",this._rootNodeFocusAndBlurListener,Eb)}),this._rootNodeFocusListenerCount.set(i,o+1),1===++this._monitoredElementCount&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(fn(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,Eb),i.removeEventListener("blur",this._rootNodeFocusAndBlurListener,Eb),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 s=0;s{class t{_elementRef=D(Re);_focusMonitor=D(ec);_monitorSubscription;_focusOrigin=null;cdkFocusChange=new we;constructor(){}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?.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","cdkMonitorElementFocus",""],["","cdkMonitorSubtreeFocus",""]],outputs:{cdkFocusChange:"cdkFocusChange"},exportAs:["cdkMonitorFocus"]})}return t})();function qde(t,n){}class jf{viewContainerRef;injector;id;role="dialog";panelClass="";hasBackdrop=!0;backdropClass="";disableClose=!1;closePredicate;width="";height="";minWidth;minHeight;maxWidth;maxHeight;positionStrategy;data=null;direction;ariaDescribedBy=null;ariaLabelledBy=null;ariaLabel=null;ariaModal=!1;autoFocus="first-tabbable";restoreFocus=!0;scrollStrategy;closeOnNavigation=!0;closeOnDestroy=!0;closeOnOverlayDetachments=!0;disableAnimations=!1;providers;container;templateContext}let m4=(()=>{class t extends bb{_elementRef=D(Re);_focusTrapFactory=D(Rde);_config;_interactivityChecker=D(s4);_ngZone=D(_e);_focusMonitor=D(ec);_renderer=D(Qn);_changeDetectorRef=D(Jt);_injector=D(He);_platform=D(Yn);_document=D(et);_portalOutlet;_focusTrapped=new me;_focusTrap=null;_elementFocusedBeforeDialogWasOpened=null;_closeInteractionType=null;_ariaLabelledByQueue=[];_isDestroyed=!1;constructor(){super(),this._config=D(jf,{optional:!0})||new jf,this._config.ariaLabelledBy&&this._ariaLabelledByQueue.push(this._config.ariaLabelledBy)}_addAriaLabelledBy(e){this._ariaLabelledByQueue.push(e),this._changeDetectorRef.markForCheck()}_removeAriaLabelledBy(e){const i=this._ariaLabelledByQueue.indexOf(e);i>-1&&(this._ariaLabelledByQueue.splice(i,1),this._changeDetectorRef.markForCheck())}_contentAttached(){this._initializeFocusTrap(),this._captureInitialFocus()}_captureInitialFocus(){this._trapFocus()}ngOnDestroy(){this._focusTrapped.complete(),this._isDestroyed=!0,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}attachDomPortal=e=>{this._portalOutlet.hasAttached();const i=this._portalOutlet.attachDomPortal(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=()=>{r(),s(),e.removeAttribute("tabindex")},r=this._renderer.listen(e,"blur",o),s=this._renderer.listen(e,"mousedown",o)})),e.focus(i)}_focusByCssSelector(e,i){let o=this._elementRef.nativeElement.querySelector(e);o&&this._forceFocus(o,i)}_trapFocus(e){this._isDestroyed||Vi(()=>{const i=this._elementRef.nativeElement;switch(this._config.autoFocus){case!1:case"dialog":this._containsFocus()||i.focus(e);break;case!0:case"first-tabbable":this._focusTrap?.focusInitialElement(e)||this._focusDialogContainer(e);break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]',e);break;default:this._focusByCssSelector(this._config.autoFocus,e)}this._focusTrapped.next()},{injector:this._injector})}_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=lS(),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(e){this._elementRef.nativeElement.focus?.(e)}_containsFocus(){const e=this._elementRef.nativeElement,i=lS();return e===i||e.contains(i)}_initializeFocusTrap(){this._platform.isBrowser&&(this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._document&&(this._elementFocusedBeforeDialogWasOpened=lS()))}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["cdk-dialog-container"]],viewQuery:function(i,o){if(1&i&&ot(Xl,7),2&i){let r;he(r=fe())&&(o._portalOutlet=r.first)}},hostAttrs:["tabindex","-1",1,"cdk-dialog-container"],hostVars:6,hostBindings:function(i,o){2&i&&$e("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:[be],decls:1,vars:0,consts:[["cdkPortalOutlet",""]],template:function(i,o){1&i&&it(0,qde,0,0,"ng-template",0)},dependencies:[Xl],styles:[".cdk-dialog-container{display:block;width:100%;height:100%;min-height:inherit;max-height:inherit}\n"],encapsulation:2})}return t})();class SS{overlayRef;config;componentInstance=null;componentRef=null;containerInstance;disableClose;closed=new me;backdropClick;keydownEvents;outsidePointerEvents;id;_detachSubscription;constructor(n,e){this.overlayRef=n,this.config=e,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&&!yr(i)&&(i.preventDefault(),this.close(void 0,{focusOrigin:"keyboard"}))}),this.backdropClick.subscribe(()=>{!this.disableClose&&this._canClose()?this.close(void 0,{focusOrigin:"mouse"}):this.containerInstance._recaptureFocus?.()}),this._detachSubscription=n.detachments().subscribe(()=>{!1!==e.closeOnOverlayDetachments&&this.close()})}close(n,e){if(this._canClose(n)){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}_canClose(n){const e=this.config;return!!this.containerInstance&&(!e.closePredicate||e.closePredicate(n,e,this.componentInstance))}}const Kde=new Z("DialogScrollStrategy",{providedIn:"root",factory:()=>{const t=D(He);return()=>dS(t)}}),Yde=new Z("DialogData"),Xde=new Z("DefaultDialogConfig");function Zde(t){const n=yt(t),e=new we;return{valueSignal:n,get value(){return n()},change:e,ngOnDestroy(){e.complete()}}}let g4=(()=>{class t{_injector=D(He);_defaultOptions=D(Xde,{optional:!0});_parentDialog=D(t,{optional:!0,skipSelf:!0});_overlayContainer=D(fS);_idGenerator=D(ni);_openDialogsAtThisLevel=[];_afterAllClosedAtThisLevel=new me;_afterOpenedAtThisLevel=new me;_ariaHiddenElements=new Map;_scrollStrategy=D(Kde);get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}afterAllClosed=ya(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(si(void 0)));constructor(){}open(e,i){(i={...this._defaultOptions||new jf,...i}).id=i.id||this._idGenerator.getId("cdk-dialog-"),i.id&&this.getDialogById(i.id);const r=this._getOverlayConfig(i),s=Xd(this._injector,r),a=new SS(s,i),l=this._attachContainer(s,a,i);if(a.containerInstance=l,!this.openDialogs.length){const c=this._overlayContainer.getContainerElement();l._focusTrapped?l._focusTrapped.pipe(Cn(1)).subscribe(()=>{this._hideNonDialogContentFromAssistiveTechnology(c)}):this._hideNonDialogContentFromAssistiveTechnology(c)}return this._attachDialogContent(e,a,l,i),this.openDialogs.push(a),a.closed.subscribe(()=>this._removeOpenDialog(a,!0)),this.afterOpened.next(a),a}closeAll(){kS(this.openDialogs,e=>e.close())}getDialogById(e){return this.openDialogs.find(i=>i.id===e)}ngOnDestroy(){kS(this._openDialogsAtThisLevel,e=>{!1===e.config.closeOnDestroy&&this._removeOpenDialog(e,!1)}),kS(this._openDialogsAtThisLevel,e=>e.close()),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete(),this._openDialogsAtThisLevel=[]}_getOverlayConfig(e){const i=new Vf({positionStrategy:e.positionStrategy||Sb().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,disableAnimations:e.disableAnimations});return e.backdropClass&&(i.backdropClass=e.backdropClass),i}_attachContainer(e,i,o){const r=o.injector||o.viewContainerRef?.injector,s=[{provide:jf,useValue:o},{provide:SS,useValue:i},{provide:Y3,useValue:e}];let a;o.container?"function"==typeof o.container?a=o.container:(a=o.container.type,s.push(...o.container.providers(o))):a=m4;const l=new Kd(a,o.viewContainerRef,He.create({parent:r||this._injector,providers:s}));return e.attach(l).instance}_attachDialogContent(e,i,o,r){if(e instanceof Ti){const s=this._createInjector(r,i,o,void 0);let a={$implicit:r.data,dialogRef:i};r.templateContext&&(a={...a,..."function"==typeof r.templateContext?r.templateContext():r.templateContext}),o.attachTemplatePortal(new Yl(e,null,a,s))}else{const s=this._createInjector(r,i,o,this._injector),a=o.attachComponentPortal(new Kd(e,r.viewContainerRef,s));i.componentRef=a,i.componentInstance=a.instance}}_createInjector(e,i,o,r){const s=e.injector||e.viewContainerRef?.injector,a=[{provide:Yde,useValue:e.data},{provide:SS,useValue:i}];return e.providers&&("function"==typeof e.providers?a.push(...e.providers(i,e,o)):a.push(...e.providers)),e.direction&&(!s||!s.get(br,null,{optional:!0}))&&a.push({provide:br,useValue:Zde(e.direction)}),He.create({parent:s||r,providers:a})}_removeOpenDialog(e,i){const o=this.openDialogs.indexOf(e);o>-1&&(this.openDialogs.splice(o,1),this.openDialogs.length||(this._ariaHiddenElements.forEach((r,s)=>{r?s.setAttribute("aria-hidden",r):s.removeAttribute("aria-hidden")}),this._ariaHiddenElements.clear(),i&&this._getAfterAllClosed().next()))}_hideNonDialogContentFromAssistiveTechnology(e){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")&&!r.hasAttribute("popover")&&(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 \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function kS(t,n){let e=t.length;for(;e--;)n(t[e])}let Qde=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({providers:[g4],imports:[Zd,Ff,f4,Ff]})}return t})();const Jde=new Z("MATERIAL_ANIMATIONS");let _4=null;function b4(){return D(Jde,{optional:!0})?.animationsDisabled||"NoopAnimations"===D(Rm,{optional:!0})?"di-disabled":(_4??=D(bS).matchMedia("(prefers-reduced-motion)").matches,_4?"reduced-motion":"enabled")}function ci(){return"enabled"!==b4()}function Cr(...t){const n=df(t),e=function Zre(t,n){return"number"==typeof bx(t)?t.pop():n}(t,1/0),i=t;return i.length?1===i.length?ji(i[0]):Vd(e)(Kn(i,n)):Oi}function eue(t,n){}class nn{viewContainerRef;injector;id;role="dialog";panelClass="";hasBackdrop=!0;backdropClass="";disableClose=!1;closePredicate;width="";height="";minWidth;minHeight;maxWidth;maxHeight;position;data=null;direction;ariaDescribedBy=null;ariaLabelledBy=null;ariaLabel=null;ariaModal=!1;autoFocus="first-tabbable";restoreFocus=!0;delayFocusTrap=!0;scrollStrategy;closeOnNavigation=!0;enterAnimationDuration;exitAnimationDuration}const DS="mdc-dialog--open",v4="mdc-dialog--opening",y4="mdc-dialog--closing";let C4=(()=>{class t extends m4{_animationStateChanged=new we;_animationsEnabled=!ci();_actionSectionCount=0;_hostElement=this._elementRef.nativeElement;_enterAnimationDuration=this._animationsEnabled?x4(this._config.enterAnimationDuration)??150:0;_exitAnimationDuration=this._animationsEnabled?x4(this._config.exitAnimationDuration)??75:0;_animationTimer=null;_contentAttached(){super._contentAttached(),this._startOpenAnimation()}_startOpenAnimation(){this._animationStateChanged.emit({state:"opening",totalTime:this._enterAnimationDuration}),this._animationsEnabled?(this._hostElement.style.setProperty(w4,`${this._enterAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(v4,DS)),this._waitForAnimationToComplete(this._enterAnimationDuration,this._finishDialogOpen)):(this._hostElement.classList.add(DS),Promise.resolve().then(()=>this._finishDialogOpen()))}_startExitAnimation(){this._animationStateChanged.emit({state:"closing",totalTime:this._exitAnimationDuration}),this._hostElement.classList.remove(DS),this._animationsEnabled?(this._hostElement.style.setProperty(w4,`${this._exitAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(y4)),this._waitForAnimationToComplete(this._exitAnimationDuration,this._finishDialogClose)):Promise.resolve().then(()=>this._finishDialogClose())}_updateActionSectionCount(e){this._actionSectionCount+=e,this._changeDetectorRef.markForCheck()}_finishDialogOpen=()=>{this._clearAnimationClasses(),this._openAnimationDone(this._enterAnimationDuration)};_finishDialogClose=()=>{this._clearAnimationClasses(),this._animationStateChanged.emit({state:"closed",totalTime:this._exitAnimationDuration})};_clearAnimationClasses(){this._hostElement.classList.remove(v4,y4)}_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()})}_captureInitialFocus(){this._config.delayFocusTrap||this._trapFocus()}_openAnimationDone(e){this._config.delayFocusTrap&&this._trapFocus(),this._animationStateChanged.next({state:"opened",totalTime:e})}ngOnDestroy(){super.ngOnDestroy(),null!==this._animationTimer&&clearTimeout(this._animationTimer)}attachComponentPortal(e){const i=super.attachComponentPortal(e);return i.location.nativeElement.classList.add("mat-mdc-dialog-component-host"),i}static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275cmp=re({type:t,selectors:[["mat-dialog-container"]],hostAttrs:["tabindex","-1",1,"mat-mdc-dialog-container","mdc-dialog"],hostVars:10,hostBindings:function(i,o){2&i&&(ur("id",o._config.id),$e("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),Ie("_mat-animation-noopable",!o._animationsEnabled)("mat-mdc-dialog-container-with-actions",o._actionSectionCount>0))},features:[be],decls:3,vars:0,consts:[[1,"mat-mdc-dialog-inner-container","mdc-dialog__container"],[1,"mat-mdc-dialog-surface","mdc-dialog__surface"],["cdkPortalOutlet",""]],template:function(i,o){1&i&&(h(0,"div",0)(1,"div",1),it(2,eue,0,0,"ng-template",2),u()())},dependencies:[Xl],styles:['.mat-mdc-dialog-container{width:100%;height:100%;display:block;box-sizing:border-box;max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit;outline:0}.cdk-overlay-pane.mat-mdc-dialog-panel{max-width:var(--mat-dialog-container-max-width, 560px);min-width:var(--mat-dialog-container-min-width, 280px)}@media(max-width: 599px){.cdk-overlay-pane.mat-mdc-dialog-panel{max-width:var(--mat-dialog-container-small-max-width, calc(100vw - 32px))}}.mat-mdc-dialog-inner-container{display:flex;flex-direction:row;align-items:center;justify-content:space-around;box-sizing:border-box;height:100%;opacity:0;transition:opacity linear var(--mat-dialog-transition-duration, 0ms);max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit}.mdc-dialog--closing .mat-mdc-dialog-inner-container{transition:opacity 75ms linear;transform:none}.mdc-dialog--open .mat-mdc-dialog-inner-container{opacity:1}._mat-animation-noopable .mat-mdc-dialog-inner-container{transition:none}.mat-mdc-dialog-surface{display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;box-sizing:border-box;width:100%;height:100%;position:relative;overflow-y:auto;outline:0;transform:scale(0.8);transition:transform var(--mat-dialog-transition-duration, 0ms) cubic-bezier(0, 0, 0.2, 1);max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit;box-shadow:var(--mat-dialog-container-elevation-shadow, none);border-radius:var(--mat-dialog-container-shape, var(--mat-sys-corner-extra-large, 4px));background-color:var(--mat-dialog-container-color, var(--mat-sys-surface, white))}[dir=rtl] .mat-mdc-dialog-surface{text-align:right}.mdc-dialog--open .mat-mdc-dialog-surface,.mdc-dialog--closing .mat-mdc-dialog-surface{transform:none}._mat-animation-noopable .mat-mdc-dialog-surface{transition:none}.mat-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}.mat-mdc-dialog-title{display:block;position:relative;flex-shrink:0;box-sizing:border-box;margin:0 0 1px;padding:var(--mat-dialog-headline-padding, 6px 24px 13px)}.mat-mdc-dialog-title::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}[dir=rtl] .mat-mdc-dialog-title{text-align:right}.mat-mdc-dialog-container .mat-mdc-dialog-title{color:var(--mat-dialog-subhead-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mat-dialog-subhead-font, var(--mat-sys-headline-small-font, inherit));line-height:var(--mat-dialog-subhead-line-height, var(--mat-sys-headline-small-line-height, 1.5rem));font-size:var(--mat-dialog-subhead-size, var(--mat-sys-headline-small-size, 1rem));font-weight:var(--mat-dialog-subhead-weight, var(--mat-sys-headline-small-weight, 400));letter-spacing:var(--mat-dialog-subhead-tracking, var(--mat-sys-headline-small-tracking, 0.03125em))}.mat-mdc-dialog-content{display:block;flex-grow:1;box-sizing:border-box;margin:0;overflow:auto;max-height:65vh}.mat-mdc-dialog-content>:first-child{margin-top:0}.mat-mdc-dialog-content>:last-child{margin-bottom:0}.mat-mdc-dialog-container .mat-mdc-dialog-content{color:var(--mat-dialog-supporting-text-color, var(--mat-sys-on-surface-variant, rgba(0, 0, 0, 0.6)));font-family:var(--mat-dialog-supporting-text-font, var(--mat-sys-body-medium-font, inherit));line-height:var(--mat-dialog-supporting-text-line-height, var(--mat-sys-body-medium-line-height, 1.5rem));font-size:var(--mat-dialog-supporting-text-size, var(--mat-sys-body-medium-size, 1rem));font-weight:var(--mat-dialog-supporting-text-weight, var(--mat-sys-body-medium-weight, 400));letter-spacing:var(--mat-dialog-supporting-text-tracking, var(--mat-sys-body-medium-tracking, 0.03125em))}.mat-mdc-dialog-container .mat-mdc-dialog-content{padding:var(--mat-dialog-content-padding, 20px 24px)}.mat-mdc-dialog-container-with-actions .mat-mdc-dialog-content{padding:var(--mat-dialog-with-actions-content-padding, 20px 24px 0)}.mat-mdc-dialog-container .mat-mdc-dialog-title+.mat-mdc-dialog-content{padding-top:0}.mat-mdc-dialog-actions{display:flex;position:relative;flex-shrink:0;flex-wrap:wrap;align-items:center;box-sizing:border-box;min-height:52px;margin:0;border-top:1px solid rgba(0,0,0,0);padding:var(--mat-dialog-actions-padding, 16px 24px);justify-content:var(--mat-dialog-actions-alignment, flex-end)}@media(forced-colors: active){.mat-mdc-dialog-actions{border-top-color:CanvasText}}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-start,.mat-mdc-dialog-actions[align=start]{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}.mat-mdc-dialog-component-host{display:contents}\n'],encapsulation:2})}return t})();const w4="--mat-dialog-transition-duration";function x4(t){return null==t?null:"number"==typeof t?t:t.endsWith("ms")?Of(t.substring(0,t.length-2)):t.endsWith("s")?1e3*Of(t.substring(0,t.length-1)):"0"===t?0:null}var Pb=function(t){return t[t.OPEN=0]="OPEN",t[t.CLOSING=1]="CLOSING",t[t.CLOSED=2]="CLOSED",t}(Pb||{});class Bt{_ref;_config;_containerInstance;componentInstance;componentRef=null;disableClose;id;_afterOpened=new oo(1);_beforeClosed=new oo(1);_result;_closeFallbackTimeout;_state=Pb.OPEN;_closeInteractionType;constructor(n,e,i){this._ref=n,this._config=e,this._containerInstance=i,this.disableClose=e.disableClose,this.id=n.id,n.addPanelClass("mat-mdc-dialog-panel"),i._animationStateChanged.pipe(Tn(o=>"opened"===o.state),Cn(1)).subscribe(()=>{this._afterOpened.next(),this._afterOpened.complete()}),i._animationStateChanged.pipe(Tn(o=>"closed"===o.state),Cn(1)).subscribe(()=>{clearTimeout(this._closeFallbackTimeout),this._finishDialogClose()}),n.overlayRef.detachments().subscribe(()=>{this._beforeClosed.next(this._result),this._beforeClosed.complete(),this._finishDialogClose()}),Cr(this.backdropClick(),this.keydownEvents().pipe(Tn(o=>27===o.keyCode&&!this.disableClose&&!yr(o)))).subscribe(o=>{this.disableClose||(o.preventDefault(),S4(this,"keydown"===o.type?"keyboard":"mouse"))})}close(n){const e=this._config.closePredicate;e&&!e(n,this._config,this.componentInstance)||(this._result=n,this._containerInstance._animationStateChanged.pipe(Tn(i=>"closing"===i.state),Cn(1)).subscribe(i=>{this._beforeClosed.next(n),this._beforeClosed.complete(),this._ref.overlayRef.detachBackdrop(),this._closeFallbackTimeout=setTimeout(()=>this._finishDialogClose(),i.totalTime+100)}),this._state=Pb.CLOSING,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=Pb.CLOSED,this._ref.close(this._result,{focusOrigin:this._closeInteractionType}),this.componentInstance=null}}function S4(t,n,e){return t._closeInteractionType=n,t.close(e)}const En=new Z("MatMdcDialogData"),k4=new Z("mat-mdc-dialog-default-options"),iue=new Z("mat-mdc-dialog-scroll-strategy",{providedIn:"root",factory:()=>{const t=D(He);return()=>dS(t)}});let Ot=(()=>{class t{_defaultOptions=D(k4,{optional:!0});_scrollStrategy=D(iue);_parentDialog=D(t,{optional:!0,skipSelf:!0});_idGenerator=D(ni);_injector=D(He);_dialog=D(g4);_animationsDisabled=ci();_openDialogsAtThisLevel=[];_afterAllClosedAtThisLevel=new me;_afterOpenedAtThisLevel=new me;dialogConfigClass=nn;_dialogRefConstructor;_dialogContainerType;_dialogDataToken;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}afterAllClosed=ya(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(si(void 0)));constructor(){this._dialogRefConstructor=Bt,this._dialogContainerType=C4,this._dialogDataToken=En}open(e,i){let o;(i={...this._defaultOptions||new nn,...i}).id=i.id||this._idGenerator.getId("mat-mdc-dialog-"),i.scrollStrategy=i.scrollStrategy||this._scrollStrategy();const r=this._dialog.open(e,{...i,positionStrategy:Sb().centerHorizontally().centerVertically(),disableClose:!0,closePredicate:void 0,closeOnDestroy:!1,closeOnOverlayDetachments:!1,disableAnimations:this._animationsDisabled||"0"===i.enterAnimationDuration?.toLocaleString()||"0"===i.exitAnimationDuration?.toString(),container:{type:this._dialogContainerType,providers:()=>[{provide:this.dialogConfigClass,useValue:i},{provide:jf,useValue:i}]},templateContext:()=>({dialogRef:o}),providers:(s,a,l)=>(o=new this._dialogRefConstructor(s,i,l),o.updatePosition(i?.position),[{provide:this._dialogContainerType,useValue:l},{provide:this._dialogDataToken,useValue:a.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 s=this.openDialogs.indexOf(o);s>-1&&(this.openDialogs.splice(s,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 \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),D4=(()=>{class t{dialogRef=D(Bt,{optional:!0});_elementRef=D(Re);_dialog=D(Ot);ariaLabel;type="button";dialogResult;_matDialogClose;constructor(){}ngOnInit(){this.dialogRef||(this.dialogRef=E4(this._elementRef,this._dialog.openDialogs))}ngOnChanges(e){const i=e._matDialogClose||e._matDialogCloseResult;i&&(this.dialogResult=i.currentValue)}_onButtonClick(e){S4(this.dialogRef,0===e.screenX&&0===e.screenY?"keyboard":"mouse",this.dialogResult)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","mat-dialog-close",""],["","matDialogClose",""]],hostVars:2,hostBindings:function(i,o){1&i&&F("click",function(s){return o._onButtonClick(s)}),2&i&&$e("aria-label",o.ariaLabel||null)("type",o.type)},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],type:"type",dialogResult:[0,"mat-dialog-close","dialogResult"],_matDialogClose:[0,"matDialogClose","_matDialogClose"]},exportAs:["matDialogClose"],features:[_i]})}return t})(),M4=(()=>{class t{_dialogRef=D(Bt,{optional:!0});_elementRef=D(Re);_dialog=D(Ot);constructor(){}ngOnInit(){this._dialogRef||(this._dialogRef=E4(this._elementRef,this._dialog.openDialogs)),this._dialogRef&&Promise.resolve().then(()=>{this._onAdd()})}ngOnDestroy(){this._dialogRef?._containerInstance&&Promise.resolve().then(()=>{this._onRemove()})}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t})}return t})(),MS=(()=>{class t extends M4{id=D(ni).getId("mat-mdc-dialog-title-");_onAdd(){this._dialogRef._containerInstance?._addAriaLabelledBy?.(this.id)}_onRemove(){this._dialogRef?._containerInstance?._removeAriaLabelledBy?.(this.id)}static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275dir=de({type:t,selectors:[["","mat-dialog-title",""],["","matDialogTitle",""]],hostAttrs:[1,"mat-mdc-dialog-title","mdc-dialog__title"],hostVars:1,hostBindings:function(i,o){2&i&&ur("id",o.id)},inputs:{id:"id"},exportAs:["matDialogTitle"],features:[be]})}return t})(),Jd=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","mat-dialog-content",""],["mat-dialog-content"],["","matDialogContent",""]],hostAttrs:[1,"mat-mdc-dialog-content","mdc-dialog__content"],features:[fI([H3])]})}return t})(),T4=(()=>{class t extends M4{align;_onAdd(){this._dialogRef._containerInstance?._updateActionSectionCount?.(1)}_onRemove(){this._dialogRef._containerInstance?._updateActionSectionCount?.(-1)}static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275dir=de({type:t,selectors:[["","mat-dialog-actions",""],["mat-dialog-actions"],["","matDialogActions",""]],hostAttrs:[1,"mat-mdc-dialog-actions","mdc-dialog__actions"],hostVars:6,hostBindings:function(i,o){2&i&&Ie("mat-mdc-dialog-actions-align-start","start"===o.align)("mat-mdc-dialog-actions-align-center","center"===o.align)("mat-mdc-dialog-actions-align-end","end"===o.align)},inputs:{align:"align"},features:[be]})}return t})();function E4(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 oue=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({providers:[Ot],imports:[Qde,Zd,Ff,ii]})}return t})();var $o=function(t){return t[t.FADING_IN=0]="FADING_IN",t[t.VISIBLE=1]="VISIBLE",t[t.FADING_OUT=2]="FADING_OUT",t[t.HIDDEN=3]="HIDDEN",t}($o||{});class rue{_renderer;element;config;_animationForciblyDisabledThroughCss;state=$o.HIDDEN;constructor(n,e,i,o=!1){this._renderer=n,this.element=e,this.config=i,this._animationForciblyDisabledThroughCss=o}fadeOut(){this._renderer.fadeOutRipple(this)}}const P4=wS({passive:!0,capture:!0});class sue{_events=new Map;addHandler(n,e,i,o){const r=this._events.get(e);if(r){const s=r.get(i);s?s.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,P4)})}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,P4)))}_delegateEventHandler=n=>{const e=vr(n);e&&this._events.get(n.type)?.forEach((i,o)=>{(o===e||o.contains(e))&&i.forEach(r=>r.handleEvent(n))})}}const Ib={enterDuration:225,exitDuration:150},I4=wS({passive:!0,capture:!0}),O4=["mousedown","touchstart"],A4=["mouseup","mouseleave","touchend","touchcancel"];let lue=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["ng-component"]],hostAttrs:["mat-ripple-style-loader",""],decls:0,vars:0,template:function(i,o){},styles:[".mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale3d(0, 0, 0);background-color:var(--mat-ripple-color, color-mix(in srgb, var(--mat-sys-on-surface) 10%, transparent))}@media(forced-colors: active){.mat-ripple-element{display:none}}.cdk-drag-preview .mat-ripple-element,.cdk-drag-placeholder .mat-ripple-element{display:none}\n"],encapsulation:2,changeDetection:0})}return t})();class Uf{_target;_ngZone;_platform;_containerElement;_triggerElement=null;_isPointerDown=!1;_activeRipples=new Map;_mostRecentTransientRipple=null;_lastTouchStartEvent;_pointerUpEventsRegistered=!1;_containerRect=null;static _eventManager=new sue;constructor(n,e,i,o,r){this._target=n,this._ngZone=e,this._platform=o,o.isBrowser&&(this._containerElement=Ps(i)),r&&r.get(zo).load(lue)}fadeInRipple(n,e,i={}){const o=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),r={...Ib,...i.animation};i.centered&&(n=o.left+o.width/2,e=o.top+o.height/2);const s=i.radius||function cue(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),a=n-o.left,l=e-o.top,c=r.enterDuration,f=document.createElement("div");f.classList.add("mat-ripple-element"),f.style.left=a-s+"px",f.style.top=l-s+"px",f.style.height=2*s+"px",f.style.width=2*s+"px",null!=i.color&&(f.style.backgroundColor=i.color),f.style.transitionDuration=`${c}ms`,this._containerElement.appendChild(f);const m=window.getComputedStyle(f),_=m.transitionDuration,w="none"===m.transitionProperty||"0s"===_||"0s, 0s"===_||0===o.width&&0===o.height,k=new rue(this,f,i,w);f.style.transform="scale3d(1, 1, 1)",k.state=$o.FADING_IN,i.persistent||(this._mostRecentTransientRipple=k);let T=null;return!w&&(c||r.exitDuration)&&this._ngZone.runOutsideAngular(()=>{const I=()=>{T&&(T.fallbackTimer=null),clearTimeout(W),this._finishRippleTransition(k)},R=()=>this._destroyRipple(k),W=setTimeout(R,c+100);f.addEventListener("transitionend",I),f.addEventListener("transitioncancel",R),T={onTransitionEnd:I,onTransitionCancel:R,fallbackTimer:W}}),this._activeRipples.set(k,T),(w||!c)&&this._finishRippleTransition(k),k}fadeOutRipple(n){if(n.state===$o.FADING_OUT||n.state===$o.HIDDEN)return;const e=n.element,i={...Ib,...n.config.animation};e.style.transitionDuration=`${i.exitDuration}ms`,e.style.opacity="0",n.state=$o.FADING_OUT,(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=Ps(n);!this._platform.isBrowser||!e||e===this._triggerElement||(this._removeTriggerEvents(),this._triggerElement=e,O4.forEach(i=>{Uf._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(()=>{A4.forEach(e=>{this._triggerElement.addEventListener(e,this,I4)})}),this._pointerUpEventsRegistered=!0)}_finishRippleTransition(n){n.state===$o.FADING_IN?this._startFadeOutTransition(n):n.state===$o.FADING_OUT&&this._destroyRipple(n)}_startFadeOutTransition(n){const e=n===this._mostRecentTransientRipple,{persistent:i}=n.config;n.state=$o.VISIBLE,!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=$o.HIDDEN,null!==e&&(n.element.removeEventListener("transitionend",e.onTransitionEnd),n.element.removeEventListener("transitioncancel",e.onTransitionCancel),null!==e.fallbackTimer&&clearTimeout(e.fallbackTimer)),n.element.remove()}_onMousedown(n){const e=yS(n),i=this._lastTouchStartEvent&&Date.now(){!n.config.persistent&&(n.state===$o.VISIBLE||n.config.terminateOnPointerUp&&n.state===$o.FADING_IN)&&n.fadeOut()}))}_getActiveRipples(){return Array.from(this._activeRipples.keys())}_removeTriggerEvents(){const n=this._triggerElement;n&&(O4.forEach(e=>Uf._eventManager.removeHandler(e,n,this)),this._pointerUpEventsRegistered&&(A4.forEach(e=>n.removeEventListener(e,this,I4)),this._pointerUpEventsRegistered=!1))}}const TS=new Z("mat-ripple-global-options");let eu=(()=>{class t{_elementRef=D(Re);_animationsDisabled=ci();color;unbounded=!1;centered=!1;radius=0;animation;get disabled(){return this._disabled}set disabled(e){e&&this.fadeOutAllNonPersistent(),this._disabled=e,this._setupTriggerEventsIfEnabled()}_disabled=!1;get trigger(){return this._trigger||this._elementRef.nativeElement}set trigger(e){this._trigger=e,this._setupTriggerEventsIfEnabled()}_trigger;_rippleRenderer;_globalOptions;_isInitialized=!1;constructor(){const e=D(_e),i=D(Yn),o=D(TS,{optional:!0}),r=D(He);this._globalOptions=o||{},this._rippleRenderer=new Uf(this,e,this._elementRef,i,r)}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,...this._animationsDisabled?{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 \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(i,o){2&i&&Ie("mat-ripple-unbounded",o.unbounded)},inputs:{color:[0,"matRippleColor","color"],unbounded:[0,"matRippleUnbounded","unbounded"],centered:[0,"matRippleCentered","centered"],radius:[0,"matRippleRadius","radius"],animation:[0,"matRippleAnimation","animation"],disabled:[0,"matRippleDisabled","disabled"],trigger:[0,"matRippleTrigger","trigger"]},exportAs:["matRipple"]})}return t})();const due={capture:!0},uue=["focus","mousedown","mouseenter","touchstart"],ES="mat-ripple-loader-uninitialized",PS="mat-ripple-loader-class-name",R4="mat-ripple-loader-centered",Ob="mat-ripple-loader-disabled";let hue=(()=>{class t{_document=D(et);_animationsDisabled=ci();_globalRippleOptions=D(TS,{optional:!0});_platform=D(Yn);_ngZone=D(_e);_injector=D(He);_eventCleanups;_hosts=new Map;constructor(){const e=D(Lo).createRenderer(null,null);this._eventCleanups=this._ngZone.runOutsideAngular(()=>uue.map(i=>e.listen(this._document,i,this._onInteraction,due)))}ngOnDestroy(){const e=this._hosts.keys();for(const i of e)this.destroyRipple(i);this._eventCleanups.forEach(i=>i())}configureRipple(e,i){e.setAttribute(ES,this._globalRippleOptions?.namespace??""),(i.className||!e.hasAttribute(PS))&&e.setAttribute(PS,i.className||""),i.centered&&e.setAttribute(R4,""),i.disabled&&e.setAttribute(Ob,"")}setDisabled(e,i){const o=this._hosts.get(e);o?(o.target.rippleDisabled=i,!i&&!o.hasSetUpEvents&&(o.hasSetUpEvents=!0,o.renderer.setupTriggerEvents(e))):i?e.setAttribute(Ob,""):e.removeAttribute(Ob)}_onInteraction=e=>{const i=vr(e);if(i instanceof HTMLElement){const o=i.closest(`[${ES}="${this._globalRippleOptions?.namespace??""}"]`);o&&this._createRipple(o)}};_createRipple(e){if(!this._document||this._hosts.has(e))return;e.querySelector(".mat-ripple")?.remove();const i=this._document.createElement("span");i.classList.add("mat-ripple",e.getAttribute(PS)),e.append(i);const o=this._globalRippleOptions,r=this._animationsDisabled?0:o?.animation?.enterDuration??Ib.enterDuration,s=this._animationsDisabled?0:o?.animation?.exitDuration??Ib.exitDuration,a={rippleDisabled:this._animationsDisabled||o?.disabled||e.hasAttribute(Ob),rippleConfig:{centered:e.hasAttribute(R4),terminateOnPointerUp:o?.terminateOnPointerUp,animation:{enterDuration:r,exitDuration:s}}},l=new Uf(a,this._ngZone,i,this._platform,this._injector),c=!a.rippleDisabled;c&&l.setupTriggerEvents(e),this._hosts.set(e,{target:a,renderer:l,hasSetUpEvents:c}),e.removeAttribute(ES)}destroyRipple(e){const i=this._hosts.get(e);i&&(i.renderer._removeTriggerEvents(),this._hosts.delete(e))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),tu=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["structural-styles"]],decls:0,vars:0,template:function(i,o){},styles:['.mat-focus-indicator{position:relative}.mat-focus-indicator::before{top:0;left:0;right:0;bottom:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border-width:var(--mat-focus-indicator-border-width, 3px);border-style:var(--mat-focus-indicator-border-style, solid);border-color:var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus-visible::before{content:""}@media(forced-colors: active){html{--mat-focus-indicator-display: block}}\n'],encapsulation:2,changeDetection:0})}return t})();const fue=["mat-icon-button",""],pue=["*"],mue=new Z("MAT_BUTTON_CONFIG");function F4(t){return null==t?void 0:hr(t)}let N4=(()=>{class t{_elementRef=D(Re);_ngZone=D(_e);_animationsDisabled=ci();_config=D(mue,{optional:!0});_focusMonitor=D(ec);_cleanupClick;_renderer=D(Qn);_rippleLoader=D(hue);_isAnchor;_isFab=!1;color;get disableRipple(){return this._disableRipple}set disableRipple(e){this._disableRipple=e,this._updateRippleDisabled()}_disableRipple=!1;get disabled(){return this._disabled}set disabled(e){this._disabled=e,this._updateRippleDisabled()}_disabled=!1;ariaDisabled;disabledInteractive;tabIndex;set _tabindex(e){this.tabIndex=e}constructor(){D(zo).load(tu);const e=this._elementRef.nativeElement;this._isAnchor="A"===e.tagName,this.disabledInteractive=this._config?.disabledInteractive??!1,this.color=this._config?.color??null,this._rippleLoader?.configureRipple(e,{className:"mat-mdc-button-ripple"})}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0),this._isAnchor&&this._setupAsAnchor()}ngOnDestroy(){this._cleanupClick?.(),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)}_getAriaDisabled(){return null!=this.ariaDisabled?this.ariaDisabled:this._isAnchor?this.disabled||null:!(!this.disabled||!this.disabledInteractive)||null}_getDisabledAttribute(){return!(this.disabledInteractive||!this.disabled)||null}_updateRippleDisabled(){this._rippleLoader?.setDisabled(this._elementRef.nativeElement,this.disableRipple||this.disabled)}_getTabIndex(){return this._isAnchor&&this.disabled&&!this.disabledInteractive?-1:this.tabIndex}_setupAsAnchor(){this._cleanupClick=this._ngZone.runOutsideAngular(()=>this._renderer.listen(this._elementRef.nativeElement,"click",e=>{this.disabled&&(e.preventDefault(),e.stopImmediatePropagation())}))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,hostAttrs:[1,"mat-mdc-button-base"],hostVars:13,hostBindings:function(i,o){2&i&&($e("disabled",o._getDisabledAttribute())("aria-disabled",o._getAriaDisabled())("tabindex",o._getTabIndex()),Ze(o.color?"mat-"+o.color:""),Ie("mat-mdc-button-disabled",o.disabled)("mat-mdc-button-disabled-interactive",o.disabledInteractive)("mat-unthemed",!o.color)("_mat-animation-noopable",o._animationsDisabled))},inputs:{color:"color",disableRipple:[2,"disableRipple","disableRipple",De],disabled:[2,"disabled","disabled",De],ariaDisabled:[2,"aria-disabled","ariaDisabled",De],disabledInteractive:[2,"disabledInteractive","disabledInteractive",De],tabIndex:[2,"tabIndex","tabIndex",F4],_tabindex:[2,"tabindex","_tabindex",F4]}})}return t})(),Wo=(()=>{class t extends N4{constructor(){super(),this._rippleLoader.configureRipple(this._elementRef.nativeElement,{centered:!0})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["button","mat-icon-button",""],["a","mat-icon-button",""],["button","matIconButton",""],["a","matIconButton",""]],hostAttrs:[1,"mdc-icon-button","mat-mdc-icon-button"],exportAs:["matButton","matAnchor"],features:[be],attrs:fue,ngContentSelectors:pue,decls:4,vars:0,consts:[[1,"mat-mdc-button-persistent-ripple","mdc-icon-button__ripple"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,o){1&i&&(yi(),ca(0,"span",0),Pt(1),ca(2,"span",1)(3,"span",2))},styles:['.mat-mdc-icon-button{-webkit-user-select:none;user-select:none;display:inline-block;position:relative;box-sizing:border-box;border:none;outline:none;background-color:rgba(0,0,0,0);fill:currentColor;text-decoration:none;cursor:pointer;z-index:0;overflow:visible;border-radius:var(--mat-icon-button-container-shape, var(--mat-sys-corner-full, 50%));flex-shrink:0;text-align:center;width:var(--mat-icon-button-state-layer-size, 40px);height:var(--mat-icon-button-state-layer-size, 40px);padding:calc(calc(var(--mat-icon-button-state-layer-size, 40px) - var(--mat-icon-button-icon-size, 24px)) / 2);font-size:var(--mat-icon-button-icon-size, 24px);color:var(--mat-icon-button-icon-color, var(--mat-sys-on-surface-variant));-webkit-tap-highlight-color:rgba(0,0,0,0)}.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}.mat-mdc-icon-button .mdc-button__label,.mat-mdc-icon-button .mat-icon{z-index:1;position:relative}.mat-mdc-icon-button .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit}.mat-mdc-icon-button:focus-visible>.mat-focus-indicator::before{content:"";border-radius:inherit}.mat-mdc-icon-button .mat-ripple-element{background-color:var(--mat-icon-button-ripple-color, color-mix(in srgb, var(--mat-sys-on-surface-variant) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-icon-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-icon-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-icon-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:var(--mat-icon-button-touch-target-size, 48px);display:var(--mat-icon-button-touch-target-display, block);left:50%;width:var(--mat-icon-button-touch-target-size, 48px);transform:translate(-50%, -50%)}.mat-mdc-icon-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-icon-button[disabled],.mat-mdc-icon-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-icon-button-disabled-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-icon-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-icon-button img,.mat-mdc-icon-button svg{width:var(--mat-icon-button-icon-size, 24px);height:var(--mat-icon-button-icon-size, 24px);vertical-align:baseline}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple{border-radius:var(--mat-icon-button-container-shape, var(--mat-sys-corner-full, 50%))}.mat-mdc-icon-button[hidden]{display:none}.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}\n',"@media(forced-colors: active){.mat-mdc-button:not(.mdc-button--outlined),.mat-mdc-unelevated-button:not(.mdc-button--outlined),.mat-mdc-raised-button:not(.mdc-button--outlined),.mat-mdc-outlined-button:not(.mdc-button--outlined),.mat-mdc-button-base.mat-tonal-button,.mat-mdc-icon-button.mat-mdc-icon-button,.mat-mdc-outlined-button .mdc-button__ripple{outline:solid 1px}}\n"],encapsulation:2,changeDetection:0})}return t})(),IS=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({imports:[ii]})}return t})();const gue=["matButton",""],_ue=[[["",8,"material-icons",3,"iconPositionEnd",""],["mat-icon",3,"iconPositionEnd",""],["","matButtonIcon","",3,"iconPositionEnd",""]],"*",[["","iconPositionEnd","",8,"material-icons"],["mat-icon","iconPositionEnd",""],["","matButtonIcon","","iconPositionEnd",""]]],bue=[".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])","*",".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"],L4=new Map([["text",["mat-mdc-button"]],["filled",["mdc-button--unelevated","mat-mdc-unelevated-button"]],["elevated",["mdc-button--raised","mat-mdc-raised-button"]],["outlined",["mdc-button--outlined","mat-mdc-outlined-button"]],["tonal",["mat-tonal-button"]]]);let Pn=(()=>{class t extends N4{get appearance(){return this._appearance}set appearance(e){this.setAppearance(e||this._config?.defaultAppearance||"text")}_appearance=null;constructor(){super();const e=function vue(t){return t.hasAttribute("mat-raised-button")?"elevated":t.hasAttribute("mat-stroked-button")?"outlined":t.hasAttribute("mat-flat-button")?"filled":t.hasAttribute("mat-button")?"text":null}(this._elementRef.nativeElement);e&&this.setAppearance(e)}setAppearance(e){if(e===this._appearance)return;const i=this._elementRef.nativeElement.classList,o=this._appearance?L4.get(this._appearance):null,r=L4.get(e);o&&i.remove(...o),i.add(...r),this._appearance=e}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["button","matButton",""],["a","matButton",""],["button","mat-button",""],["button","mat-raised-button",""],["button","mat-flat-button",""],["button","mat-stroked-button",""],["a","mat-button",""],["a","mat-raised-button",""],["a","mat-flat-button",""],["a","mat-stroked-button",""]],hostAttrs:[1,"mdc-button"],inputs:{appearance:[0,"matButton","appearance"]},exportAs:["matButton","matAnchor"],features:[be],attrs:gue,ngContentSelectors:bue,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,o){1&i&&(yi(_ue),ca(0,"span",0),Pt(1),vs(2,"span",1),Pt(3,1),Ol(),Pt(4,2),ca(5,"span",2)(6,"span",3)),2&i&&Ie("mdc-button__ripple",!o._isFab)("mdc-fab__ripple",o._isFab)},styles:['.mat-mdc-button-base{text-decoration:none}.mat-mdc-button-base .mat-icon{min-height:fit-content;flex-shrink:0}@media(hover: none){.mat-mdc-button-base:hover>span.mat-mdc-button-persistent-ripple::before{opacity:0}}.mdc-button{-webkit-user-select:none;user-select:none;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;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0);padding:0 8px}.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__label{position:relative}.mat-mdc-button{padding:0 var(--mat-button-text-horizontal-padding, 12px);height:var(--mat-button-text-container-height, 40px);font-family:var(--mat-button-text-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mat-button-text-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mat-button-text-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mat-button-text-label-text-transform);font-weight:var(--mat-button-text-label-text-weight, var(--mat-sys-label-large-weight))}.mat-mdc-button,.mat-mdc-button .mdc-button__ripple{border-radius:var(--mat-button-text-container-shape, var(--mat-sys-corner-full))}.mat-mdc-button:not(:disabled){color:var(--mat-button-text-label-text-color, var(--mat-sys-primary))}.mat-mdc-button[disabled],.mat-mdc-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-button-text-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-button:has(.material-icons,mat-icon,[matButtonIcon]){padding:0 var(--mat-button-text-with-icon-horizontal-padding, 16px)}.mat-mdc-button>.mat-icon{margin-right:var(--mat-button-text-icon-spacing, 8px);margin-left:var(--mat-button-text-icon-offset, -4px)}[dir=rtl] .mat-mdc-button>.mat-icon{margin-right:var(--mat-button-text-icon-offset, -4px);margin-left:var(--mat-button-text-icon-spacing, 8px)}.mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-text-icon-offset, -4px);margin-left:var(--mat-button-text-icon-spacing, 8px)}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-text-icon-spacing, 8px);margin-left:var(--mat-button-text-icon-offset, -4px)}.mat-mdc-button .mat-ripple-element{background-color:var(--mat-button-text-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-text-state-layer-color, var(--mat-sys-primary))}.mat-mdc-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-text-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-text-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-text-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-text-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:var(--mat-button-text-touch-target-size, 48px);display:var(--mat-button-text-touch-target-display, block);left:0;right:0;transform:translateY(-50%)}.mat-mdc-unelevated-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mat-button-filled-container-height, 40px);font-family:var(--mat-button-filled-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mat-button-filled-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mat-button-filled-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mat-button-filled-label-text-transform);font-weight:var(--mat-button-filled-label-text-weight, var(--mat-sys-label-large-weight));padding:0 var(--mat-button-filled-horizontal-padding, 24px)}.mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-button-filled-icon-spacing, 8px);margin-left:var(--mat-button-filled-icon-offset, -8px)}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-button-filled-icon-offset, -8px);margin-left:var(--mat-button-filled-icon-spacing, 8px)}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-filled-icon-offset, -8px);margin-left:var(--mat-button-filled-icon-spacing, 8px)}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-filled-icon-spacing, 8px);margin-left:var(--mat-button-filled-icon-offset, -8px)}.mat-mdc-unelevated-button .mat-ripple-element{background-color:var(--mat-button-filled-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-filled-state-layer-color, var(--mat-sys-on-primary))}.mat-mdc-unelevated-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-filled-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-unelevated-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-filled-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-unelevated-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-filled-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-unelevated-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-filled-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-unelevated-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:var(--mat-button-filled-touch-target-size, 48px);display:var(--mat-button-filled-touch-target-display, block);left:0;right:0;transform:translateY(-50%)}.mat-mdc-unelevated-button:not(:disabled){color:var(--mat-button-filled-label-text-color, var(--mat-sys-on-primary));background-color:var(--mat-button-filled-container-color, var(--mat-sys-primary))}.mat-mdc-unelevated-button,.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mat-button-filled-container-shape, var(--mat-sys-corner-full))}.mat-mdc-unelevated-button[disabled],.mat-mdc-unelevated-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-button-filled-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-button-filled-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-raised-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);box-shadow:var(--mat-button-protected-container-elevation-shadow, var(--mat-sys-level1));height:var(--mat-button-protected-container-height, 40px);font-family:var(--mat-button-protected-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mat-button-protected-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mat-button-protected-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mat-button-protected-label-text-transform);font-weight:var(--mat-button-protected-label-text-weight, var(--mat-sys-label-large-weight));padding:0 var(--mat-button-protected-horizontal-padding, 24px)}.mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-button-protected-icon-spacing, 8px);margin-left:var(--mat-button-protected-icon-offset, -8px)}[dir=rtl] .mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-button-protected-icon-offset, -8px);margin-left:var(--mat-button-protected-icon-spacing, 8px)}.mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-protected-icon-offset, -8px);margin-left:var(--mat-button-protected-icon-spacing, 8px)}[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-protected-icon-spacing, 8px);margin-left:var(--mat-button-protected-icon-offset, -8px)}.mat-mdc-raised-button .mat-ripple-element{background-color:var(--mat-button-protected-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-protected-state-layer-color, var(--mat-sys-primary))}.mat-mdc-raised-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-protected-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-raised-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-protected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-raised-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-protected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-raised-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-protected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-raised-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:var(--mat-button-protected-touch-target-size, 48px);display:var(--mat-button-protected-touch-target-display, block);left:0;right:0;transform:translateY(-50%)}.mat-mdc-raised-button:not(:disabled){color:var(--mat-button-protected-label-text-color, var(--mat-sys-primary));background-color:var(--mat-button-protected-container-color, var(--mat-sys-surface))}.mat-mdc-raised-button,.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mat-button-protected-container-shape, var(--mat-sys-corner-full))}@media(hover: hover){.mat-mdc-raised-button:hover{box-shadow:var(--mat-button-protected-hover-container-elevation-shadow, var(--mat-sys-level2))}}.mat-mdc-raised-button:focus{box-shadow:var(--mat-button-protected-focus-container-elevation-shadow, var(--mat-sys-level1))}.mat-mdc-raised-button:active,.mat-mdc-raised-button:focus:active{box-shadow:var(--mat-button-protected-pressed-container-elevation-shadow, var(--mat-sys-level1))}.mat-mdc-raised-button[disabled],.mat-mdc-raised-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-button-protected-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-button-protected-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-raised-button[disabled].mat-mdc-button-disabled,.mat-mdc-raised-button.mat-mdc-button-disabled.mat-mdc-button-disabled{box-shadow:var(--mat-button-protected-disabled-container-elevation-shadow, var(--mat-sys-level0))}.mat-mdc-raised-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mat-button-outlined-container-height, 40px);font-family:var(--mat-button-outlined-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mat-button-outlined-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mat-button-outlined-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mat-button-outlined-label-text-transform);font-weight:var(--mat-button-outlined-label-text-weight, var(--mat-sys-label-large-weight));border-radius:var(--mat-button-outlined-container-shape, var(--mat-sys-corner-full));border-width:var(--mat-button-outlined-outline-width, 1px);padding:0 var(--mat-button-outlined-horizontal-padding, 24px)}.mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-button-outlined-icon-spacing, 8px);margin-left:var(--mat-button-outlined-icon-offset, -8px)}[dir=rtl] .mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-button-outlined-icon-offset, -8px);margin-left:var(--mat-button-outlined-icon-spacing, 8px)}.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-outlined-icon-offset, -8px);margin-left:var(--mat-button-outlined-icon-spacing, 8px)}[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-outlined-icon-spacing, 8px);margin-left:var(--mat-button-outlined-icon-offset, -8px)}.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-button-outlined-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-outlined-state-layer-color, var(--mat-sys-primary))}.mat-mdc-outlined-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-outlined-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-outlined-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-outlined-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-outlined-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-outlined-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-outlined-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-outlined-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:var(--mat-button-outlined-touch-target-size, 48px);display:var(--mat-button-outlined-touch-target-display, block);left:0;right:0;transform:translateY(-50%)}.mat-mdc-outlined-button:not(:disabled){color:var(--mat-button-outlined-label-text-color, var(--mat-sys-primary));border-color:var(--mat-button-outlined-outline-color, var(--mat-sys-outline))}.mat-mdc-outlined-button[disabled],.mat-mdc-outlined-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-button-outlined-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:var(--mat-button-outlined-disabled-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-tonal-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mat-button-tonal-container-height, 40px);font-family:var(--mat-button-tonal-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mat-button-tonal-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mat-button-tonal-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mat-button-tonal-label-text-transform);font-weight:var(--mat-button-tonal-label-text-weight, var(--mat-sys-label-large-weight));padding:0 var(--mat-button-tonal-horizontal-padding, 24px)}.mat-tonal-button:not(:disabled){color:var(--mat-button-tonal-label-text-color, var(--mat-sys-on-secondary-container));background-color:var(--mat-button-tonal-container-color, var(--mat-sys-secondary-container))}.mat-tonal-button,.mat-tonal-button .mdc-button__ripple{border-radius:var(--mat-button-tonal-container-shape, var(--mat-sys-corner-full))}.mat-tonal-button[disabled],.mat-tonal-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-button-tonal-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-button-tonal-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-tonal-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-tonal-button>.mat-icon{margin-right:var(--mat-button-tonal-icon-spacing, 8px);margin-left:var(--mat-button-tonal-icon-offset, -8px)}[dir=rtl] .mat-tonal-button>.mat-icon{margin-right:var(--mat-button-tonal-icon-offset, -8px);margin-left:var(--mat-button-tonal-icon-spacing, 8px)}.mat-tonal-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-tonal-icon-offset, -8px);margin-left:var(--mat-button-tonal-icon-spacing, 8px)}[dir=rtl] .mat-tonal-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-tonal-icon-spacing, 8px);margin-left:var(--mat-button-tonal-icon-offset, -8px)}.mat-tonal-button .mat-ripple-element{background-color:var(--mat-button-tonal-ripple-color, color-mix(in srgb, var(--mat-sys-on-secondary-container) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-tonal-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-tonal-state-layer-color, var(--mat-sys-on-secondary-container))}.mat-tonal-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-tonal-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-tonal-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-tonal-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-tonal-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-tonal-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-tonal-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-tonal-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-tonal-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-tonal-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-tonal-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:var(--mat-button-tonal-touch-target-size, 48px);display:var(--mat-button-tonal-touch-target-display, block);left:0;right:0;transform:translateY(-50%)}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button,.mat-tonal-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,.mat-tonal-button .mat-mdc-button-ripple,.mat-tonal-button .mat-mdc-button-persistent-ripple,.mat-tonal-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,.mat-tonal-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,.mat-tonal-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-button .mdc-button__label,.mat-mdc-button .mat-icon,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-unelevated-button .mat-icon,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-raised-button .mat-icon,.mat-mdc-outlined-button .mdc-button__label,.mat-mdc-outlined-button .mat-icon,.mat-tonal-button .mdc-button__label,.mat-tonal-button .mat-icon{z-index:1;position:relative}.mat-mdc-button .mat-focus-indicator,.mat-mdc-unelevated-button .mat-focus-indicator,.mat-mdc-raised-button .mat-focus-indicator,.mat-mdc-outlined-button .mat-focus-indicator,.mat-tonal-button .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit}.mat-mdc-button:focus-visible>.mat-focus-indicator::before,.mat-mdc-unelevated-button:focus-visible>.mat-focus-indicator::before,.mat-mdc-raised-button:focus-visible>.mat-focus-indicator::before,.mat-mdc-outlined-button:focus-visible>.mat-focus-indicator::before,.mat-tonal-button:focus-visible>.mat-focus-indicator::before{content:"";border-radius:inherit}.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,.mat-tonal-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon,.mat-tonal-button>.mat-icon{display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px}.mat-mdc-unelevated-button .mat-focus-indicator::before,.mat-tonal-button .mat-focus-indicator::before,.mat-mdc-raised-button .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-outlined-button .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 3px)*-1)}\n',"@media(forced-colors: active){.mat-mdc-button:not(.mdc-button--outlined),.mat-mdc-unelevated-button:not(.mdc-button--outlined),.mat-mdc-raised-button:not(.mdc-button--outlined),.mat-mdc-outlined-button:not(.mdc-button--outlined),.mat-mdc-button-base.mat-tonal-button,.mat-mdc-icon-button.mat-mdc-icon-button,.mat-mdc-outlined-button .mdc-button__ripple{outline:solid 1px}}\n"],encapsulation:2,changeDetection:0})}return t})(),B4=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({imports:[IS,ii]})}return t})();function wue(t,n){if(1&t){const e=oe();h(0,"div",1)(1,"button",2),F("click",function(){return j(e),U(v().action())}),p(2),u()()}if(2&t){const e=v();d(2),E(" ",e.data.action," ")}}const xue=["label"];function Sue(t,n){}const kue=Math.pow(2,31)-1;class Ab{_overlayRef;instance;containerInstance;_afterDismissed=new me;_afterOpened=new me;_onAction=new me;_durationTimeoutId;_dismissedByAction=!1;constructor(n,e){this._overlayRef=e,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,kue))}_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 OS=new Z("MatSnackBarData");class Rb{politeness="polite";announcementMessage="";viewContainerRef;duration=0;panelClass;direction;data=null;horizontalPosition="center";verticalPosition="bottom"}let V4=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","matSnackBarLabel",""]],hostAttrs:[1,"mat-mdc-snack-bar-label","mdc-snackbar__label"]})}return t})(),H4=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","matSnackBarActions",""]],hostAttrs:[1,"mat-mdc-snack-bar-actions","mdc-snackbar__actions"]})}return t})(),j4=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","matSnackBarAction",""]],hostAttrs:[1,"mat-mdc-snack-bar-action","mdc-snackbar__action"]})}return t})(),U4=(()=>{class t{snackBarRef=D(Ab);data=D(OS);constructor(){}action(){this.snackBarRef.dismissWithAction()}get hasAction(){return!!this.data.action}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["simple-snack-bar"]],hostAttrs:[1,"mat-mdc-simple-snack-bar"],exportAs:["matSnackBar"],decls:3,vars:2,consts:[["matSnackBarLabel",""],["matSnackBarActions",""],["matButton","","matSnackBarAction","",3,"click"]],template:function(i,o){1&i&&(h(0,"div",0),p(1),u(),x(2,wue,3,1,"div",1)),2&i&&(d(),E(" ",o.data.message,"\n"),d(),S(o.hasAction?2:-1))},dependencies:[Pn,V4,H4,j4],styles:[".mat-mdc-simple-snack-bar{display:flex}.mat-mdc-simple-snack-bar .mat-mdc-snack-bar-label{max-height:50vh;overflow:auto}\n"],encapsulation:2,changeDetection:0})}return t})();const AS="_mat-snack-bar-enter",RS="_mat-snack-bar-exit";let z4=(()=>{class t extends bb{_ngZone=D(_e);_elementRef=D(Re);_changeDetectorRef=D(Jt);_platform=D(Yn);_animationsDisabled=ci();snackBarConfig=D(Rb);_document=D(et);_trackedModals=new Set;_enterFallback;_exitFallback;_injector=D(He);_announceDelay=150;_announceTimeoutId;_destroyed=!1;_portalOutlet;_onAnnounce=new me;_onExit=new me;_onEnter=new me;_animationState="void";_live;_label;_role;_liveElementId=D(ni).getId("mat-snack-bar-container-live-");constructor(){super();const e=this.snackBarConfig;this._live="assertive"!==e.politeness||e.announcementMessage?"off"===e.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}attachDomPortal=e=>{this._assertNotAttached();const i=this._portalOutlet.attachDomPortal(e);return this._afterPortalAttached(),i};onAnimationEnd(e){e===RS?this._completeExit():e===AS&&(clearTimeout(this._enterFallback),this._ngZone.run(()=>{this._onEnter.next(),this._onEnter.complete()}))}enter(){this._destroyed||(this._animationState="visible",this._changeDetectorRef.markForCheck(),this._changeDetectorRef.detectChanges(),this._screenReaderAnnounce(),this._animationsDisabled?Vi(()=>{this._ngZone.run(()=>queueMicrotask(()=>this.onAnimationEnd(AS)))},{injector:this._injector}):(clearTimeout(this._enterFallback),this._enterFallback=setTimeout(()=>{this._elementRef.nativeElement.classList.add("mat-snack-bar-fallback-visible"),this.onAnimationEnd(AS)},200)))}exit(){return this._destroyed?ae(void 0):(this._ngZone.run(()=>{this._animationState="hidden",this._changeDetectorRef.markForCheck(),this._elementRef.nativeElement.setAttribute("mat-exit",""),clearTimeout(this._announceTimeoutId),this._animationsDisabled?Vi(()=>{this._ngZone.run(()=>queueMicrotask(()=>this.onAnimationEnd(RS)))},{injector:this._injector}):(clearTimeout(this._exitFallback),this._exitFallback=setTimeout(()=>this.onAnimationEnd(RS),200))}),this._onExit)}ngOnDestroy(){this._destroyed=!0,this._clearFromModals(),this._completeExit()}_completeExit(){clearTimeout(this._exitFallback),queueMicrotask(()=>{this._onExit.next(),this._onExit.complete()})}_afterPortalAttached(){const e=this._elementRef.nativeElement,i=this.snackBarConfig.panelClass;i&&(Array.isArray(i)?i.forEach(s=>e.classList.add(s)):e.classList.add(i)),this._exposeToModals();const o=this._label.nativeElement,r="mdc-snackbar__label";o.classList.toggle(r,!o.querySelector(`.${r}`))}_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(()=>{if(this._destroyed)return;const e=this._elementRef.nativeElement,i=e.querySelector("[aria-hidden]"),o=e.querySelector("[aria-live]");if(i&&o){let r=null;this._platform.isBrowser&&document.activeElement instanceof HTMLElement&&i.contains(document.activeElement)&&(r=document.activeElement),i.removeAttribute("aria-hidden"),o.appendChild(i),r?.focus(),this._onAnnounce.next(),this._onAnnounce.complete()}},this._announceDelay)})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["mat-snack-bar-container"]],viewQuery:function(i,o){if(1&i&&ot(Xl,7)(xue,7),2&i){let r;he(r=fe())&&(o._portalOutlet=r.first),he(r=fe())&&(o._label=r.first)}},hostAttrs:[1,"mdc-snackbar","mat-mdc-snack-bar-container"],hostVars:6,hostBindings:function(i,o){1&i&&F("animationend",function(s){return o.onAnimationEnd(s.animationName)})("animationcancel",function(s){return o.onAnimationEnd(s.animationName)}),2&i&&Ie("mat-snack-bar-container-enter","visible"===o._animationState)("mat-snack-bar-container-exit","hidden"===o._animationState)("mat-snack-bar-container-animations-enabled",!o._animationsDisabled)},features:[be],decls:6,vars:3,consts:[["label",""],[1,"mdc-snackbar__surface","mat-mdc-snackbar-surface"],[1,"mat-mdc-snack-bar-label"],["aria-hidden","true"],["cdkPortalOutlet",""]],template:function(i,o){1&i&&(h(0,"div",1)(1,"div",2,0)(3,"div",3),it(4,Sue,0,0,"ng-template",4),u(),B(5,"div"),u()()),2&i&&(d(5),$e("aria-live",o._live)("role",o._role)("id",o._liveElementId))},dependencies:[Xl],styles:["@keyframes _mat-snack-bar-enter{from{transform:scale(0.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes _mat-snack-bar-exit{from{opacity:1}to{opacity:0}}.mat-mdc-snack-bar-container{display:flex;align-items:center;justify-content:center;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0);margin:8px}.mat-mdc-snack-bar-handset .mat-mdc-snack-bar-container{width:100vw}.mat-snack-bar-container-animations-enabled{opacity:0}.mat-snack-bar-container-animations-enabled.mat-snack-bar-fallback-visible{opacity:1}.mat-snack-bar-container-animations-enabled.mat-snack-bar-container-enter{animation:_mat-snack-bar-enter 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-snack-bar-container-animations-enabled.mat-snack-bar-container-exit{animation:_mat-snack-bar-exit 75ms cubic-bezier(0.4, 0, 1, 1) forwards}.mat-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);display:flex;align-items:center;justify-content:flex-start;box-sizing:border-box;padding-left:0;padding-right:8px}[dir=rtl] .mat-mdc-snackbar-surface{padding-right:0;padding-left:8px}.mat-mdc-snack-bar-container .mat-mdc-snackbar-surface{min-width:344px;max-width:672px}.mat-mdc-snack-bar-handset .mat-mdc-snackbar-surface{width:100%;min-width:0}@media(forced-colors: active){.mat-mdc-snackbar-surface{outline:solid 1px}}.mat-mdc-snack-bar-container .mat-mdc-snackbar-surface{color:var(--mat-snack-bar-supporting-text-color, var(--mat-sys-inverse-on-surface));border-radius:var(--mat-snack-bar-container-shape, var(--mat-sys-corner-extra-small));background-color:var(--mat-snack-bar-container-color, var(--mat-sys-inverse-surface))}.mdc-snackbar__label{width:100%;flex-grow:1;box-sizing:border-box;margin:0;padding:14px 8px 14px 16px}[dir=rtl] .mdc-snackbar__label{padding-left:8px;padding-right:16px}.mat-mdc-snack-bar-container .mdc-snackbar__label{font-family:var(--mat-snack-bar-supporting-text-font, var(--mat-sys-body-medium-font));font-size:var(--mat-snack-bar-supporting-text-size, var(--mat-sys-body-medium-size));font-weight:var(--mat-snack-bar-supporting-text-weight, var(--mat-sys-body-medium-weight));line-height:var(--mat-snack-bar-supporting-text-line-height, var(--mat-sys-body-medium-line-height))}.mat-mdc-snack-bar-actions{display:flex;flex-shrink:0;align-items:center;box-sizing:border-box}.mat-mdc-snack-bar-handset,.mat-mdc-snack-bar-container,.mat-mdc-snack-bar-label{flex:1 1 auto}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled).mat-unthemed{color:var(--mat-snack-bar-button-color, var(--mat-sys-inverse-primary))}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled){--mat-button-text-state-layer-color: currentColor;--mat-button-text-ripple-color: currentColor}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled) .mat-ripple-element{opacity:.1}\n"],encapsulation:2})}return t})();const $4=new Z("mat-snack-bar-default-options",{providedIn:"root",factory:()=>new Rb});let W4=(()=>{class t{_live=D(d4);_injector=D(He);_breakpointObserver=D(n4);_parentSnackBar=D(t,{optional:!0,skipSelf:!0});_defaultConfig=D($4);_animationsDisabled=ci();_snackBarRefAtThisLevel=null;simpleSnackBarComponent=U4;snackBarContainerComponent=z4;handsetCssClass="mat-mdc-snack-bar-handset";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(){}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=He.create({parent:i&&i.viewContainerRef&&i.viewContainerRef.injector||this._injector,providers:[{provide:Rb,useValue:i}]}),s=new Kd(this.snackBarContainerComponent,i.viewContainerRef,r),a=e.attach(s);return a.instance.snackBarConfig=i,a.instance}_attach(e,i){const o={...new Rb,...this._defaultConfig,...i},r=this._createOverlay(o),s=this._attachSnackBarContainer(r,o),a=new Ab(s,r);if(e instanceof Ti){const l=new Yl(e,null,{$implicit:o.data,snackBarRef:a});a.instance=s.attachTemplatePortal(l)}else{const l=this._createInjector(o,a),c=new Kd(e,void 0,l),f=s.attachComponentPortal(c);a.instance=f.instance}return this._breakpointObserver.observe("(max-width: 599.98px) and (orientation: portrait)").pipe(fn(r.detachments())).subscribe(l=>{r.overlayElement.classList.toggle(this.handsetCssClass,l.matches)}),o.announcementMessage&&s._onAnnounce.subscribe(()=>{this._live.announce(o.announcementMessage,o.politeness)}),this._animateSnackBar(a,o),this._openedSnackBarRef=a,this._openedSnackBarRef}_animateSnackBar(e,i){e.afterDismissed().subscribe(()=>{this._openedSnackBarRef==e&&(this._openedSnackBarRef=null),i.announcementMessage&&this._live.clear()}),i.duration&&i.duration>0&&e.afterOpened().subscribe(()=>e._dismissAfter(i.duration)),this._openedSnackBarRef?(this._openedSnackBarRef.afterDismissed().subscribe(()=>{e.containerInstance.enter()}),this._openedSnackBarRef.dismiss()):e.containerInstance.enter()}_createOverlay(e){const i=new Vf;i.direction=e.direction;const o=Sb(),r="rtl"===e.direction,s="left"===e.horizontalPosition||"start"===e.horizontalPosition&&!r||"end"===e.horizontalPosition&&r,a=!s&&"center"!==e.horizontalPosition;return s?o.left("0"):a?o.right("0"):o.centerHorizontally(),"top"===e.verticalPosition?o.top("0"):o.bottom("0"),i.positionStrategy=o,i.disableAnimations=this._animationsDisabled,Xd(this._injector,i)}_createInjector(e,i){return He.create({parent:e&&e.viewContainerRef&&e.viewContainerRef.injector||this._injector,providers:[{provide:Ab,useValue:i},{provide:OS,useValue:e.data}]})}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Due=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({providers:[W4],imports:[Zd,Ff,B4,U4,ii]})}return t})();function zf(...t){const n=rL(t),{args:e,keys:i}=SL(t),o=new Ft(r=>{const{length:s}=e;if(!s)return void r.complete();const a=new Array(s);let l=s,c=s;for(let f=0;f{m||(m=!0,c--),a[f]=g},()=>l--,void 0,()=>{(!l||!m)&&(c||r.next(i?DL(i,a):a),r.complete())}))}});return n?o.pipe(kL(n)):o}function G4(t={}){const{connector:n=()=>new me,resetOnError:e=!0,resetOnComplete:i=!0,resetOnRefCountZero:o=!0}=t;return r=>{let s,a,l,c=0,f=!1,m=!1;const g=()=>{a?.unsubscribe(),a=void 0},_=()=>{g(),s=l=void 0,f=m=!1},w=()=>{const k=s;_(),k?.unsubscribe()};return Mn((k,T)=>{c++,!m&&!f&&g();const I=l=l??n();T.add(()=>{c--,0===c&&!m&&!f&&(a=FS(w,o))}),I.subscribe(T),!s&&c>0&&(s=new Ru({next:R=>I.next(R),error:R=>{m=!0,g(),a=FS(_,e,R),I.error(R)},complete:()=>{f=!0,g(),a=FS(_,i),I.complete()}}),ji(k).subscribe(s))})(r)}}function FS(t,n,...e){if(!0===n)return void t();if(!1===n)return;const i=new Ru({next:()=>{i.unsubscribe(),t()}});return ji(n(...e)).subscribe(i)}function q4(t){return Error(`Unable to find icon with the name "${t}"`)}function K4(t){return Error(`The URL provided to MatIconRegistry was not trusted as a resource URL via Angular's DomSanitizer. Attempted URL was "${t}".`)}function Y4(t){return Error(`The literal provided to MatIconRegistry was not trusted as safe HTML by Angular's DomSanitizer. Attempted literal was "${t}".`)}class tc{url;svgText;options;svgElement=null;constructor(n,e,i){this.url=n,this.svgText=e,this.options=i}}let Tue=(()=>{class t{_httpClient;_sanitizer;_errorHandler;_document;_svgIconConfigs=new Map;_iconSetConfigs=new Map;_cachedIconsByUrl=new Map;_inProgressUrlFetches=new Map;_fontCssClassesByAlias=new Map;_resolvers=[];_defaultFontSetClass=["material-icons","mat-ligature-font"];constructor(e,i,o,r){this._httpClient=e,this._sanitizer=i,this._errorHandler=r,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 tc(o,null,r))}addSvgIconResolver(e){return this._resolvers.push(e),this}addSvgIconLiteralInNamespace(e,i,o,r){const s=this._sanitizer.sanitize(bi.HTML,o);if(!s)throw Y4(o);const a=Qd(s);return this._addSvgIconConfig(e,i,new tc("",a,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 tc(i,null,o))}addSvgIconSetLiteralInNamespace(e,i,o){const r=this._sanitizer.sanitize(bi.HTML,i);if(!r)throw Y4(i);const s=Qd(r);return this._addSvgIconSetConfig(e,new tc("",s,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(bi.RESOURCE_URL,e);if(!i)throw K4(e);const o=this._cachedIconsByUrl.get(i);return o?ae(Fb(o)):this._loadSvgIconFromConfig(new tc(e,null)).pipe(ai(r=>this._cachedIconsByUrl.set(i,r)),Se(r=>Fb(r)))}getNamedSvgIcon(e,i=""){const o=X4(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 s=this._iconSetConfigs.get(i);return s?this._getSvgFromIconSetConfigs(e,s):mr(q4(o))}ngOnDestroy(){this._resolvers=[],this._svgIconConfigs.clear(),this._iconSetConfigs.clear(),this._cachedIconsByUrl.clear()}_getSvgFromConfig(e){return e.svgText?ae(Fb(this._svgElementFromConfig(e))):this._loadSvgIconFromConfig(e).pipe(Se(i=>Fb(i)))}_getSvgFromIconSetConfigs(e,i){const o=this._extractIconWithNameFromAnySet(e,i);return o?ae(o):zf(i.filter(s=>!s.svgText).map(s=>this._loadSvgIconSetFromConfig(s).pipe(Ui(a=>{const c=`Loading icon set URL: ${this._sanitizer.sanitize(bi.RESOURCE_URL,s.url)} failed: ${a.message}`;return this._errorHandler.handleError(new Error(c)),ae(null)})))).pipe(Se(()=>{const s=this._extractIconWithNameFromAnySet(e,i);if(!s)throw q4(e);return s}))}_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 s=this._svgElementFromConfig(r),a=this._extractSvgIconFromSet(s,e,r.options);if(a)return a}}return null}_loadSvgIconFromConfig(e){return this._fetchIcon(e).pipe(ai(i=>e.svgText=i),Se(()=>this._svgElementFromConfig(e)))}_loadSvgIconSetFromConfig(e){return e.svgText?ae(null):this._fetchIcon(e).pipe(ai(i=>e.svgText=i))}_extractSvgIconFromSet(e,i,o){const r=e.querySelector(`[id="${i}"]`);if(!r)return null;const s=r.cloneNode(!0);if(s.removeAttribute("id"),"svg"===s.nodeName.toLowerCase())return this._setSvgAttributes(s,o);if("symbol"===s.nodeName.toLowerCase())return this._setSvgAttributes(this._toSvgElement(s),o);const a=this._svgElementFromString(Qd(""));return a.appendChild(s),this._setSvgAttributes(a,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(Qd("")),o=e.attributes;for(let r=0;rQd(c)),B_(()=>this._inProgressUrlFetches.delete(s)),G4());return this._inProgressUrlFetches.set(s,l),l}_addSvgIconConfig(e,i,o){return this._svgIconConfigs.set(X4(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;o{const t=D(et),n=t?t.location:null;return{getPathname:()=>n?n.pathname+n.search:""}}}),Z4=["clip-path","color-profile","src","cursor","fill","filter","marker","marker-start","marker-mid","marker-end","mask","stroke"],Aue=Z4.map(t=>`[${t}]`).join(", "),Rue=/^url\(['"]?#(.*?)['"]?\)$/;let We=(()=>{class t{_elementRef=D(Re);_iconRegistry=D(Tue);_location=D(Oue);_errorHandler=D(sl);_defaultColor;get color(){return this._color||this._defaultColor}set color(e){this._color=e}_color;inline=!1;get svgIcon(){return this._svgIcon}set svgIcon(e){e!==this._svgIcon&&(e?this._updateSvgIcon(e):this._svgIcon&&this._clearSvgElement(),this._svgIcon=e)}_svgIcon;get fontSet(){return this._fontSet}set fontSet(e){const i=this._cleanupFontValue(e);i!==this._fontSet&&(this._fontSet=i,this._updateFontIconClasses())}_fontSet;get fontIcon(){return this._fontIcon}set fontIcon(e){const i=this._cleanupFontValue(e);i!==this._fontIcon&&(this._fontIcon=i,this._updateFontIconClasses())}_fontIcon;_previousFontSetClass=[];_previousFontIconClass;_svgName=null;_svgNamespace=null;_previousPath;_elementsWithExternalReferences;_currentIconFetch=pt.EMPTY;constructor(){const e=D(new Yh("aria-hidden"),{optional:!0}),i=D(Iue,{optional:!0});i&&(i.color&&(this.color=this._defaultColor=i.color),i.fontSet&&(this.fontSet=i.fontSet)),e||this._elementRef.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(s=>{r.setAttribute(s.name,`url('${e}#${s.value}')`)})})}_cacheChildrenWithExternalReferences(e){const i=e.querySelectorAll(Aue),o=this._elementsWithExternalReferences=this._elementsWithExternalReferences||new Map;for(let r=0;r{const a=i[r],l=a.getAttribute(s),c=l?l.match(Rue):null;if(c){let f=o.get(a);f||(f=[],o.set(a,f)),f.push({name:s,value:c[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(Cn(1)).subscribe(r=>this._setSvgElement(r),r=>{this._errorHandler.handleError(new Error(`Error retrieving icon ${i}:${o}! ${r.message}`))})}}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["mat-icon"]],hostAttrs:["role","img",1,"mat-icon","notranslate"],hostVars:10,hostBindings:function(i,o){2&i&&($e("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),Ze(o.color?"mat-"+o.color:""),Ie("mat-icon-inline",o.inline)("mat-icon-no-color","primary"!==o.color&&"accent"!==o.color&&"warn"!==o.color))},inputs:{color:"color",inline:[2,"inline","inline",De],svgIcon:"svgIcon",fontSet:"fontSet",fontIcon:"fontIcon"},exportAs:["matIcon"],ngContentSelectors:Pue,decls:1,vars:0,template:function(i,o){1&i&&(yi(),Pt(0))},styles:["mat-icon,mat-icon.mat-primary,mat-icon.mat-accent,mat-icon.mat-warn{color:var(--mat-icon-color, inherit)}.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}\n"],encapsulation:2,changeDetection:0})}return t})(),Fue=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({imports:[ii]})}return t})();function NS(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,G4({connector:()=>new oo(i,n,e),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:o})}class LS{}let Q4=(()=>{class t{handle(e){return e.key}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();class Nb{}let J4=(()=>{class t extends Nb{compile(e,i){return e}compileTranslations(e,i){return e}static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();class $f{}let e5=(()=>{class t extends $f{getTranslation(e){return ae({})}static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();function Lb(t,n){if(t===n)return!0;if(null===t||null===n)return!1;if(t!=t&&n!=n)return!0;const e=typeof t;let o;if(e==typeof n&&"object"==e)if(Array.isArray(t)){if(!Array.isArray(n))return!1;if((o=t.length)==n.length){for(let r=0;rVb(n));if(Kr(t)){const n={};return Object.keys(t).forEach(e=>{n[e]=Vb(t[e])}),n}return t}function BS(t,n){if(!Wf(t))return Vb(n);const e=Vb(t);return Wf(e)&&Wf(n)&&Object.keys(n).forEach(i=>{Kr(n[i])?i in t?e[i]=BS(t[i],n[i]):Object.assign(e,{[i]:n[i]}):Object.assign(e,{[i]:n[i]})}),e}function n5(t,n){const e=n.split(".");n="";do{n+=e.shift();const i=!e.length;if(Sa(t)){if(Kr(t)&&t5(t[n])&&(Kr(t[n])||nc(t[n])||i)){t=t[n],n="";continue}if(nc(t)){const o=parseInt(n,10);if(t5(t[o])&&(Kr(t[o])||nc(t[o])||i)){t=t[o],n="";continue}}}i?t=void 0:n+="."}while(e.length);return t}class Hb{}let i5=(()=>{class t extends Hb{templateMatcher=/{{\s?([^{}\s]*)\s?}}/g;interpolate(e,i){return Bb(e)?this.interpolateString(e,i):function Nue(t){return"function"==typeof t}(e)?this.interpolateFunction(e,i):void 0}interpolateFunction(e,i){return e(i)}interpolateString(e,i){return i?e.replace(this.templateMatcher,(o,r)=>{const s=this.getInterpolationReplacement(i,r);return void 0!==s?s:o}):e}getInterpolationReplacement(e,i){return this.formatValue(n5(e,i))}formatValue(e){return Bb(e)?e:"number"==typeof e||"boolean"==typeof e?e.toString():null===e?"null":nc(e)?e.join(", "):Wf(e)?"function"==typeof e.toString&&e.toString!==Object.prototype.toString?e.toString():JSON.stringify(e):void 0}static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})(),VS=(()=>{class t{_onTranslationChange=new me;_onLangChange=new me;_onFallbackLangChange=new me;fallbackLang=null;currentLang;translations={};languages=[];getTranslations(e){return this.translations[e]}setTranslations(e,i,o){this.translations[e]=o&&this.hasTranslationFor(e)?BS(this.translations[e],i):i,this.addLanguages([e]),this._onTranslationChange.next({lang:e,translations:this.getTranslations(e)})}getLanguages(){return this.languages}getCurrentLang(){return this.currentLang}getFallbackLang(){return this.fallbackLang}setFallbackLang(e,i=!0){this.fallbackLang=e,i&&this._onFallbackLangChange.next({lang:e,translations:this.translations[e]})}setCurrentLang(e,i=!0){this.currentLang=e,i&&this._onLangChange.next({lang:e,translations:this.translations[e]})}get onTranslationChange(){return this._onTranslationChange.asObservable()}get onLangChange(){return this._onLangChange.asObservable()}get onFallbackLangChange(){return this._onFallbackLangChange.asObservable()}addLanguages(e){this.languages=Array.from(new Set([...this.languages,...e]))}hasTranslationFor(e){return typeof this.translations[e]<"u"}deleteTranslations(e){delete this.translations[e]}getTranslation(e){let i=this.getValue(this.currentLang,e);return void 0===i&&null!=this.fallbackLang&&this.fallbackLang!==this.currentLang&&(i=this.getValue(this.fallbackLang,e)),i}getValue(e,i){return n5(this.getTranslations(e),i)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();const HS=new Z("TRANSLATE_CONFIG"),Gf=t=>jr(t)?t:ae(t);let Go=(()=>{class t{loadingTranslations;pending=!1;_translationRequests={};lastUseLanguage=null;currentLoader=D($f);compiler=D(Nb);parser=D(Hb);missingTranslationHandler=D(LS);store=D(VS);extend=!1;get onTranslationChange(){return this.store.onTranslationChange}get onLangChange(){return this.store.onLangChange}get onFallbackLangChange(){return this.store.onFallbackLangChange}get onDefaultLangChange(){return this.store.onFallbackLangChange}constructor(){const e={extend:!1,fallbackLang:null,...D(HS,{optional:!0})};e.lang&&this.use(e.lang),e.fallbackLang&&this.setFallbackLang(e.fallbackLang),e.extend&&(this.extend=!0)}setFallbackLang(e){this.getFallbackLang()||this.store.setFallbackLang(e,!1);const i=this.loadOrExtendLanguage(e);return jr(i)?(i.pipe(Cn(1)).subscribe({next:()=>{this.store.setFallbackLang(e)},error:()=>{}}),i):(this.store.setFallbackLang(e),ae(this.store.getTranslations(e)))}use(e){this.lastUseLanguage=e,this.getCurrentLang()||this.store.setCurrentLang(e,!1);const i=this.loadOrExtendLanguage(e);return jr(i)?(i.pipe(Cn(1)).subscribe({next:()=>{this.changeLang(e)},error:()=>{}}),i):(this.changeLang(e),ae(this.store.getTranslations(e)))}loadOrExtendLanguage(e){if(!this.store.hasTranslationFor(e)||this.extend)return this._translationRequests[e]=this._translationRequests[e]||this.loadAndCompileTranslations(e),this._translationRequests[e]}changeLang(e){e===this.lastUseLanguage&&this.store.setCurrentLang(e)}getCurrentLang(){return this.store.getCurrentLang()}loadAndCompileTranslations(e){this.pending=!0;const i=this.currentLoader.getTranslation(e).pipe(NS(1),Cn(1));return this.loadingTranslations=i.pipe(Se(o=>this.compiler.compileTranslations(o,e)),NS(1),Cn(1)),this.loadingTranslations.subscribe({next:o=>{this.store.setTranslations(e,o,this.extend),this.pending=!1},error:o=>{this.pending=!1}}),i}setTranslation(e,i,o=!1){const r=this.compiler.compileTranslations(i,e);this.store.setTranslations(e,r,o||this.extend)}getLangs(){return this.store.getLanguages()}addLangs(e){this.store.addLanguages(e)}getParsedResultForKey(e,i){const o=this.getTextToInterpolate(e);if(Sa(o))return this.runInterpolation(o,i);const r=this.missingTranslationHandler.handle({key:e,translateService:this,...void 0!==i&&{interpolateParams:i}});return void 0!==r?r:e}getFallbackLang(){return this.store.getFallbackLang()}getTextToInterpolate(e){return this.store.getTranslation(e)}runInterpolation(e,i){if(Sa(e))return nc(e)?this.runInterpolationOnArray(e,i):Kr(e)?this.runInterpolationOnDict(e,i):this.parser.interpolate(e,i)}runInterpolationOnArray(e,i){return e.map(o=>this.runInterpolation(o,i))}runInterpolationOnDict(e,i){const o={};for(const r in e){const s=this.runInterpolation(e[r],i);void 0!==s&&(o[r]=s)}return o}getParsedResult(e,i){return e instanceof Array?this.getParsedResultForArray(e,i):this.getParsedResultForKey(e,i)}getParsedResultForArray(e,i){const o={};let r=!1;for(const a of e)o[a]=this.getParsedResultForKey(a,i),r=r||jr(o[a]);return r?zf(e.map(a=>Gf(o[a]))).pipe(Se(a=>{const l={};return a.forEach((c,f)=>{l[e[f]]=c}),l})):o}get(e,i){if(!Sa(e)||!e.length)throw new Error('Parameter "key" is required and cannot be empty');return this.pending?this.loadingTranslations.pipe(cf(()=>Gf(this.getParsedResult(e,i)))):Gf(this.getParsedResult(e,i))}getStreamOnTranslationChange(e,i){if(!Sa(e)||!e.length)throw new Error('Parameter "key" is required and cannot be empty');return Ts(ya(()=>this.get(e,i)),this.onTranslationChange.pipe(tn(()=>{const o=this.getParsedResult(e,i);return Gf(o)})))}stream(e,i){if(!Sa(e)||!e.length)throw new Error('Parameter "key" required');return Ts(ya(()=>this.get(e,i)),this.onLangChange.pipe(tn(()=>{const o=this.getParsedResult(e,i);return Gf(o)})))}instant(e,i){if(!Sa(e)||0===e.length)throw new Error('Parameter "key" is required and cannot be empty');const o=this.getParsedResult(e,i);return jr(o)?Array.isArray(e)?e.reduce((r,s)=>(r[s]=s,r),{}):e:o}set(e,i,o=this.getCurrentLang()){this.store.setTranslations(o,function Lue(t,n,e){return BS(t,function Bue(t,n){return t.split(".").reduceRight((e,i)=>({[i]:e}),n)}(n,e))}(this.store.getTranslations(o),e,Bb(i)?this.compiler.compile(i,o):this.compiler.compileTranslations(i,o)),!1)}reloadLang(e){return this.resetLang(e),this.loadAndCompileTranslations(e)}resetLang(e){delete this._translationRequests[e],this.store.deleteTranslations(e)}static getBrowserLang(){if(typeof window>"u"||!window.navigator)return;const e=this.getBrowserCultureLang();return e?e.split(/[-_]/)[0]:void 0}static getBrowserCultureLang(){if(!(typeof window>"u"||typeof window.navigator>"u"))return window.navigator.languages?window.navigator.languages[0]:window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage}getBrowserLang(){return t.getBrowserLang()}getBrowserCultureLang(){return t.getBrowserCultureLang()}get defaultLang(){return this.getFallbackLang()}get currentLang(){return this.store.getCurrentLang()}get langs(){return this.store.getLanguages()}setDefaultLang(e){return this.setFallbackLang(e)}getDefaultLang(){return this.getFallbackLang()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})(),xe=(()=>{class t{translate=D(Go);_ref=D(Jt);value="";lastKey=null;lastParams=[];onTranslationChange;onLangChange;onFallbackLangChange;updateValue(e,i,o){const r=s=>{this.value=void 0!==s?s:e,this.lastKey=e,this._ref.markForCheck()};if(o){const s=this.translate.getParsedResult(e,i);jr(s)?s.subscribe(r):r(s)}this.translate.get(e,i).subscribe(r)}transform(e,...i){if(!e||!e.length)return e;if(Lb(e,this.lastKey)&&Lb(i,this.lastParams))return this.value;let o;if(Sa(i[0])&&i.length)if(Bb(i[0])&&i[0].length){const r=i[0].replace(/(')?([a-zA-Z0-9_]+)(')?(\s)?:/g,'"$2":').replace(/:(\s)?(')(.*?)(')/g,':"$3"');try{o=JSON.parse(r)}catch(s){throw new SyntaxError(`Wrong parameter in TranslatePipe. Expected a valid Object, received: ${i[0]}`)}}else Kr(i[0])&&(o=i[0]);return this.lastKey=e,this.lastParams=i,this.updateValue(e,o),this._dispose(),this.onTranslationChange||(this.onTranslationChange=this.translate.onTranslationChange.subscribe(r=>{(this.lastKey&&r.lang===this.translate.getCurrentLang()||r.lang===this.translate.getFallbackLang())&&(this.lastKey=null,this.updateValue(e,o,r.translations))})),this.onLangChange||(this.onLangChange=this.translate.onLangChange.subscribe(r=>{this.lastKey&&(this.lastKey=null,this.updateValue(e,o,r.translations))})),this.onFallbackLangChange||(this.onFallbackLangChange=this.translate.onFallbackLangChange.subscribe(()=>{this.lastKey&&(this.lastKey=null,this.updateValue(e,o))})),this.value}_dispose(){typeof this.onTranslationChange<"u"&&(this.onTranslationChange.unsubscribe(),this.onTranslationChange=void 0),typeof this.onLangChange<"u"&&(this.onLangChange.unsubscribe(),this.onLangChange=void 0),typeof this.onFallbackLangChange<"u"&&(this.onFallbackLangChange.unsubscribe(),this.onFallbackLangChange=void 0)}ngOnDestroy(){this._dispose()}static \u0275fac=function(i){return new(i||t)};static \u0275pipe=Hi({name:"translate",type:t,pure:!1});static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();function o5(t){return{provide:$f,useClass:t}}function r5(t){return{provide:Nb,useClass:t}}function s5(t){return{provide:Hb,useClass:t}}function a5(t){return{provide:LS,useClass:t}}function jb(t={},n){const e=[];return t.loader&&e.push(t.loader),t.compiler&&e.push(t.compiler),t.parser&&e.push(t.parser),t.missingTranslationHandler&&e.push(t.missingTranslationHandler),n&&e.push(VS),(t.useDefaultLang||t.defaultLanguage)&&(console.warn("The `useDefaultLang` and `defaultLanguage` options are deprecated. Please use `fallbackLang` instead."),!0===t.useDefaultLang&&t.defaultLanguage&&(t.fallbackLang=t.defaultLanguage)),e.push({provide:HS,useValue:{fallbackLang:t.fallbackLang??null,lang:t.lang,extend:t.extend??!1}}),e.push({provide:Go,useClass:Go,deps:[VS,$f,Nb,Hb,LS,HS]}),e}let l5=(()=>{class t{static forRoot(e={}){return{ngModule:t,providers:[...jb({compiler:r5(J4),parser:s5(i5),loader:o5(e5),missingTranslationHandler:a5(Q4),...e},!0)]}}static forChild(e={}){return{ngModule:t,providers:[...jb(e,e.isolate??!1)]}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({})}return t})();function Vue(t,n){if(1&t&&(h(0,"div",0)(1,"mat-icon",5),p(2),u()()),2&t){const e=v();d(),C("inline",!0),d(),M(e.config.icon)}}function Hue(t,n){if(1&t&&(h(0,"div",2),p(1),b(2,"translate"),b(3,"translate"),u()),2&t){const e=v();d(),gt(" ",y(2,2,"common.error")," ",pe(3,4,e.config.smallText,e.config.smallTextTranslationParams)," ")}}var Ub=function(t){return t.Error="error",t.Done="done",t.Warning="warning",t}(Ub||{}),zb=function(t){return t.Red="red-background",t.Green="green-background",t.Yellow="yellow-background",t}(zb||{});let jue=(()=>{class t{constructor(e,i){this.snackbarRef=i,this.config=e}close(){this.snackbarRef.dismiss()}static{this.\u0275fac=function(i){return new(i||t)(O(OS),O(Ab))}}static{this.\u0275cmp=re({type:t,selectors:[["app-snack-bar"]],standalone:!1,decls:9,vars:8,consts:[[1,"icon-container"],[1,"text-container"],[1,"second-line"],[1,"close-button-separator"],[1,"close-button",3,"click"],[3,"inline"]],template:function(i,o){1&i&&(h(0,"div"),x(1,Vue,3,2,"div",0),h(2,"div",1),p(3),b(4,"translate"),x(5,Hue,4,7,"div",2),u(),B(6,"div",3),h(7,"mat-icon",4),F("click",function(){return o.close()}),p(8,"close"),u()()),2&i&&(Ze("main-container "+o.config.color),d(),S(o.config.icon?1:-1),d(2),E(" ",pe(4,5,o.config.text,o.config.textTranslationParams)," "),d(2),S(o.config.smallText?5:-1))},dependencies:[We,xe],styles:['.cursor-pointer[_ngcontent-%COMP%], .close-button[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media(max-width:767px),(min-width:992px)and (max-width:1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media(max-width:767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}.main-container[_ngcontent-%COMP%]{width:100%;display:flex;color:#fff;padding:15px;border-radius:5px}.red-background[_ngcontent-%COMP%]{background-color:#ea0606}.green-background[_ngcontent-%COMP%]{background-color:#1fb11f}.yellow-background[_ngcontent-%COMP%]{background-color:#f90}.icon-container[_ngcontent-%COMP%]{margin-right:10px;position:relative;top:1px}.text-container[_ngcontent-%COMP%]{flex-grow:1;margin-right:10px;font-size:1rem;word-break:break-word}.text-container[_ngcontent-%COMP%] .second-line[_ngcontent-%COMP%]{font-size:.8rem;opacity:.9}.close-button-separator[_ngcontent-%COMP%]{width:1px;margin-right:10px;background-color:#0000004d}.close-button[_ngcontent-%COMP%]{opacity:.7}.close-button[_ngcontent-%COMP%]:hover{opacity:1}mat-icon[_ngcontent-%COMP%]{position:relative;top:1px;-webkit-user-select:none;user-select:none}']})}}return t})(),ct=(()=>{class t{constructor(e){this.snackBar=e,this.lastWasTemporaryError=!1}showError(e,i=null,o=!1,r=null,s=null){e=Qe(e),r=r?Qe(r):null,this.lastWasTemporaryError=o,this.show(e.translatableErrorMsg,i,r?r.translatableErrorMsg:null,s,Ub.Error,zb.Red,15e3)}showWarning(e,i=null){this.lastWasTemporaryError=!1,this.show(e,i,null,null,Ub.Warning,zb.Yellow,15e3)}showDone(e,i=null){this.lastWasTemporaryError=!1,this.show(e,i,null,null,Ub.Done,zb.Green,5e3)}closeCurrent(){this.snackBar.dismiss()}closeCurrentIfTemporaryError(){this.lastWasTemporaryError&&this.snackBar.dismiss()}show(e,i,o,r,s,a,l){this.snackBar.openFromComponent(jue,{duration:l,panelClass:"snackbar-container",data:{text:e,textTranslationParams:i,smallText:o,smallTextTranslationParams:r,icon:s,color:a}})}static{this.\u0275fac=function(i){return new(i||t)(ce(W4))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const rt={maxShortListElements:5,maxFullListElements:40,connectionRetryDelay:5e3,languages:[{code:"en",name:"English",iconName:"en.png"},{code:"es",name:"Espa\xf1ol",iconName:"es.png"},{code:"de",name:"Deutsch",iconName:"de.png"},{code:"pt",name:"Portugu\xeas (Brazil)",iconName:"pt.png"}],defaultLanguage:"en",smallModalWidth:"480px",mediumModalWidth:"640px",largeModalWidth:"900px",vpn:{hardcodedIpWhileDeveloping:!1}};class Uue{constructor(n){Object.assign(this,n)}}let $b=(()=>{class t{constructor(e){this.translate=e,this.currentLanguage=new oo(1),this.languages=new oo(1),this.storageKey="lang",this.languagesInternal=[],this.settingsLoaded=!1}loadLanguageSettings(){if(this.settingsLoaded)return;this.settingsLoaded=!0;const e=[];rt.languages.forEach(i=>{const o=new Uue(i);this.languagesInternal.push(o),e.push(o.code)}),this.languages.next(this.languagesInternal),this.translate.addLangs(e),this.translate.setDefaultLang(rt.defaultLanguage),this.translate.onLangChange.subscribe(i=>this.onLanguageChanged(i)),this.loadCurrentLanguage()}changeLanguage(e){this.translate.use(e)}onLanguageChanged(e){this.currentLanguage.next(this.languagesInternal.find(i=>i.code===e.lang)),localStorage.setItem(this.storageKey,e.lang)}loadCurrentLanguage(){let e=localStorage.getItem(this.storageKey);e=e||rt.defaultLanguage,setTimeout(()=>this.translate.use(e),16)}static{this.\u0275fac=function(i){return new(i||t)(ce(Go))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const zue={url:"",deserializer:t=>JSON.parse(t.data),serializer:t=>JSON.stringify(t)};class jS extends ay{constructor(n,e){if(super(),this._socket=null,n instanceof Ft)this.destination=e,this.source=n;else{const i=this._config=Object.assign({},zue);if(this._output=new me,"string"==typeof n)i.url=n;else for(const o in n)n.hasOwnProperty(o)&&(i[o]=n[o]);if(!i.WebSocketCtor&&WebSocket)i.WebSocketCtor=WebSocket;else if(!i.WebSocketCtor)throw new Error("no WebSocket constructor can be found");this.destination=new oo}}lift(n){const e=new jS(this._config,this.destination);return e.operator=n,e.source=this,e}_resetState(){this._socket=null,this.source||(this.destination=new oo),this._output=new me}multiplex(n,e,i){const o=this;return new Ft(r=>{try{o.next(n())}catch(a){r.error(a)}const s=o.subscribe({next:a=>{try{i(a)&&r.next(a)}catch(l){r.error(l)}},error:a=>r.error(a),complete:()=>r.complete()});return()=>{try{o.next(e())}catch(a){r.error(a)}s.unsubscribe()}})}_connectSocket(){const{WebSocketCtor:n,protocol:e,url:i,binaryType:o}=this._config,r=this._output;let s=null;try{s=e?new n(i,e):new n(i),this._socket=s,o&&(this._socket.binaryType=o)}catch(l){return void r.error(l)}const a=new pt(()=>{this._socket=null,s&&1===s.readyState&&s.close()});s.onopen=l=>{const{_socket:c}=this;if(!c)return s.close(),void this._resetState();const{openObserver:f}=this._config;f&&f.next(l);const m=this.destination;this.destination=Bp.create(g=>{if(1===s.readyState)try{const{serializer:_}=this._config;s.send(_(g))}catch(_){this.destination.error(_)}},g=>{const{closingObserver:_}=this._config;_&&_.next(void 0),g&&g.code?s.close(g.code,g.reason):r.error(new TypeError("WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }")),this._resetState()},()=>{const{closingObserver:g}=this._config;g&&g.next(void 0),s.close(),this._resetState()}),m&&m instanceof oo&&a.add(m.subscribe(this.destination))},s.onerror=l=>{this._resetState(),r.error(l)},s.onclose=l=>{s===this._socket&&this._resetState();const{closeObserver:c}=this._config;c&&c.next(l),l.wasClean?r.complete():r.error(l)},s.onmessage=l=>{try{const{deserializer:c}=this._config;r.next(c(l))}catch(c){r.error(c)}}}_subscribe(n){const{source:e}=this;return e?e.subscribe(n):(this._socket||this._connectSocket(),this._output.subscribe(n),n.add(()=>{const{_socket:i}=this;0===this._output.observers.length&&(i&&(1===i.readyState||0===i.readyState)&&i.close(),this._resetState())}),n)}unsubscribe(){const{_socket:n}=this;n&&(1===n.readyState||0===n.readyState)&&n.close(),this._resetState(),super.unsubscribe()}}var qf=function(t){return t.Json="json",t.Text="text",t}(qf||{}),Wb=function(t){return t.Json="json",t}(Wb||{});class qo{constructor(n){this.responseType=qf.Json,this.requestType=Wb.Json,this.ignoreAuth=!1,Object.assign(this,n)}}let zi=(()=>{class t{constructor(e,i,o){this.http=e,this.router=i,this.ngZone=o,this.apiPrefix="api/",this.wsApiPrefix="api/"}get(e,i=null){return this.request("GET",e,{},i)}post(e,i={},o=null){return this.getCsrf().pipe(Ur(),It(r=>((o=o||new qo).csrfToken=r,this.request("POST",e,i,o))))}put(e,i={},o=null){return this.getCsrf().pipe(Ur(),It(r=>((o=o||new qo).csrfToken=r,this.request("PUT",e,i,o))))}delete(e,i=null){return this.getCsrf().pipe(Ur(),It(o=>((i=i||new qo).csrfToken=o,this.request("DELETE",e,{},i))))}getCsrf(){return this.get("csrf").pipe(Se(e=>e.csrf_token))}ws(e,i={}){const s=function Wue(t){return new jS(t)}((location.protocol.startsWith("https")?"wss://":"ws://")+location.host+"/"+this.wsApiPrefix+e);return s.next(i),s}request(e,i,o,r){return o=o||{},r=r||new qo,i.startsWith("/")&&(i=i.substr(1,i.length-1)),this.http.request(e,this.apiPrefix+i,{...this.getRequestOptions(r),responseType:r.responseType,withCredentials:!0,body:this.getPostBody(o,r)}).pipe(Se(s=>this.successHandler(s)),Ui(s=>this.errorHandler(s,r)))}getRequestOptions(e){const i={};return i.headers=new Uo,e.requestType===Wb.Json&&(i.headers=i.headers.append("Content-Type","application/json")),e.csrfToken&&(i.headers=i.headers.append("X-CSRF-Token",e.csrfToken)),i}getPostBody(e,i){if(i.requestType===Wb.Json)return JSON.stringify(e);const o=new FormData;return Object.keys(e).forEach(r=>o.append(r,e[r])),o}successHandler(e){if("string"==typeof e&&"manager token is null"===e)throw new Error(e);return e}errorHandler(e,i){if(!i.ignoreAuth){if(401===e.status){const o=i.vpnKeyForAuth?["vpnlogin",i.vpnKeyForAuth]:["login"];this.ngZone.run(()=>this.router.navigate(o,{replaceUrl:!0}))}if(e.error&&"string"==typeof e.error&&e.error.includes("change password")){const o=i.vpnKeyForAuth?["vpnlogin",i.vpnKeyForAuth]:["login"];this.ngZone.run(()=>this.router.navigate(o,{replaceUrl:!0}))}}return mr(Qe(e))}static{this.\u0275fac=function(i){return new(i||t)(ce(ba),ce(vt),ce(_e))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const Gue=["determinateSpinner"];function que(t,n){if(1&t&&(rl(),h(0,"svg",11),B(1,"circle",12),u()),2&t){const e=v();$e("viewBox",e._viewBox()),d(),Md("stroke-dasharray",e._strokeCircumference(),"px")("stroke-dashoffset",e._strokeCircumference()/2,"px")("stroke-width",e._circleStrokeWidth(),"%"),$e("r",e._circleRadius())}}const Kue=new Z("mat-progress-spinner-default-options",{providedIn:"root",factory:()=>({diameter:c5})}),c5=100;let so=(()=>{class t{_elementRef=D(Re);_noopAnimations;get color(){return this._color||this._defaultColor}set color(e){this._color=e}_color;_defaultColor="primary";_determinateCircle;constructor(){const e=D(Kue),i=b4(),o=this._elementRef.nativeElement;this._noopAnimations="di-disabled"===i&&!!e&&!e._forceAnimations,this.mode="mat-spinner"===o.nodeName.toLowerCase()?"indeterminate":"determinate",!this._noopAnimations&&"reduced-motion"===i&&o.classList.add("mat-progress-spinner-reduced-motion"),e&&(e.color&&(this.color=this._defaultColor=e.color),e.diameter&&(this.diameter=e.diameter),e.strokeWidth&&(this.strokeWidth=e.strokeWidth))}mode;get value(){return"determinate"===this.mode?this._value:0}set value(e){this._value=Math.max(0,Math.min(100,e||0))}_value=0;get diameter(){return this._diameter}set diameter(e){this._diameter=e||0}_diameter=c5;get strokeWidth(){return this._strokeWidth??this.diameter/10}set strokeWidth(e){this._strokeWidth=e||0}_strokeWidth;_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 \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["mat-progress-spinner"],["mat-spinner"]],viewQuery:function(i,o){if(1&i&&ot(Gue,5),2&i){let r;he(r=fe())&&(o._determinateCircle=r.first)}},hostAttrs:["role","progressbar","tabindex","-1",1,"mat-mdc-progress-spinner","mdc-circular-progress"],hostVars:18,hostBindings:function(i,o){2&i&&($e("aria-valuemin",0)("aria-valuemax",100)("aria-valuenow","determinate"===o.mode?o.value:null)("mode",o.mode),Ze("mat-"+o.color),Md("width",o.diameter,"px")("height",o.diameter,"px")("--mat-progress-spinner-size",o.diameter+"px")("--mat-progress-spinner-active-indicator-width",o.diameter+"px"),Ie("_mat-animation-noopable",o._noopAnimations)("mdc-circular-progress--indeterminate","indeterminate"===o.mode))},inputs:{color:"color",mode:"mode",value:[2,"value","value",hr],diameter:[2,"diameter","diameter",hr],strokeWidth:[2,"strokeWidth","strokeWidth",hr]},exportAs:["matProgressSpinner"],decls:14,vars:11,consts:[["circle",""],["determinateSpinner",""],["aria-hidden","true",1,"mdc-circular-progress__determinate-container"],["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&&(it(0,que,2,8,"ng-template",null,0,Rl),h(2,"div",2,1),rl(),h(4,"svg",3),B(5,"circle",4),u()(),Gy(),h(6,"div",5)(7,"div",6)(8,"div",7),dr(9,8),u(),h(10,"div",9),dr(11,8),u(),h(12,"div",10),dr(13,8),u()()()),2&i){const r=Hn(1);d(4),$e("viewBox",o._viewBox()),d(),Md("stroke-dasharray",o._strokeCircumference(),"px")("stroke-dashoffset",o._strokeDashOffset(),"px")("stroke-width",o._circleStrokeWidth(),"%"),$e("r",o._circleRadius()),d(4),C("ngTemplateOutlet",r),d(2),C("ngTemplateOutlet",r),d(2),C("ngTemplateOutlet",r)}},dependencies:[Ld],styles:[".mat-mdc-progress-spinner{--mat-progress-spinner-animation-multiplier: 1;display:block;overflow:hidden;line-height:0;position:relative;direction:ltr;transition:opacity 250ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-progress-spinner circle{stroke-width:var(--mat-progress-spinner-active-indicator-width, 4px)}.mat-mdc-progress-spinner._mat-animation-noopable,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__determinate-circle{transition:none !important}.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 !important}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container circle{stroke-dasharray:0 !important}@media(forced-colors: active){.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle{stroke:currentColor;stroke:CanvasText}}.mat-progress-spinner-reduced-motion{--mat-progress-spinner-animation-multiplier: 1.25}.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 .mdc-circular-progress__determinate-container{opacity:0}.mdc-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{opacity:1;animation:mdc-circular-progress-container-rotate calc(1568.2352941176ms*var(--mat-progress-spinner-animation-multiplier)) linear infinite}.mdc-circular-progress__determinate-circle-graphic,.mdc-circular-progress__indeterminate-circle-graphic{fill:rgba(0,0,0,0)}.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--mat-progress-spinner-active-indicator-color, var(--mat-sys-primary))}@media(forced-colors: active){.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mdc-circular-progress__determinate-circle{transition:stroke-dashoffset 500ms 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 .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__circle-left .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-left-spin calc(1333ms*var(--mat-progress-spinner-animation-multiplier)) 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 calc(1333ms*var(--mat-progress-spinner-animation-multiplier)) cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.mdc-circular-progress--indeterminate .mdc-circular-progress__spinner-layer{animation:mdc-circular-progress-spinner-layer-rotate calc(5332ms*var(--mat-progress-spinner-animation-multiplier)) cubic-bezier(0.4, 0, 0.2, 1) infinite both}@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-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)}}\n"],encapsulation:2,changeDetection:0})}return t})(),Xue=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({imports:[ii]})}return t})();const Zue=t=>({"white-theme":t});let Yr=(()=>{class t{constructor(){this.showWhite=!0}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=re({type:t,selectors:[["app-loading-indicator"]],inputs:{showWhite:"showWhite"},standalone:!1,decls:2,vars:4,consts:[[1,"container",3,"ngClass"],[3,"diameter"]],template:function(i,o){1&i&&(h(0,"div",0),B(1,"mat-spinner",1),u()),2&i&&(C("ngClass",se(2,Zue,o.showWhite)),d(),C("diameter",50))},dependencies:[$t,so],styles:["[_nghost-%COMP%]{width:100%;height:100%;display:flex}.container[_ngcontent-%COMP%]{width:100%;align-self:center;display:flex;flex-direction:column;align-items:center}.container[_ngcontent-%COMP%] > mat-spinner[_ngcontent-%COMP%]{opacity:.5}"]})}}return t})();const Que=t=>({background:t});function Jue(t,n){1&t&&(h(0,"div",0)(1,"div"),B(2,"img",5),h(3,"div"),p(4),b(5,"translate"),u()()()),2&t&&(d(4),M(y(5,1,"common.window-size-error")))}function ehe(t,n){1&t&&B(0,"router-outlet")}function the(t,n){1&t&&B(0,"app-loading-indicator",3)}function nhe(t,n){1&t&&(h(0,"div",4)(1,"span",6)(2,"mat-icon",7),p(3,"error_outline"),u(),p(4),b(5,"translate"),u()()),2&t&&(d(2),C("inline",!0),d(2),E(" ",y(5,2,"common.data-update-problems")," "))}let Xr=(()=>{class t{constructor(e,i,o,r,s,a){this.storage=e,this.snackbarService=r,this.languageService=s,this.apiService=a,this.inVpnClient=!1,this.inLoginPage=!1,this.hypervisorPkObtained=!1,this.pkErrorShown=!1,this.pkErrorsFound=0,this.showingDataProblemMsg=!1,t.currentInstance=this,o.afterOpened.subscribe(()=>r.closeCurrent()),history.scrollRestoration&&(history.scrollRestoration="manual"),i.events.subscribe(l=>{l instanceof Wr&&(r.closeCurrent(),o.closeAll())}),o.afterAllClosed.subscribe(()=>r.closeCurrentIfTemporaryError()),i.events.subscribe(l=>{if(this.inVpnClient=i.url.includes("/vpn/")||i.url.includes("vpnlogin"),l.url){const c=this.inLoginPage;this.inLoginPage=l.url.includes("login"),c&&!this.inLoginPage&&!this.hypervisorPkObtained&&this.checkHypervisorPk(0)}i.url.length>2&&(document.title=this.inVpnClient?"Skywire VPN":"Skywire Hypervisor")}),this.languageService.loadLanguageSettings(),this.checkHypervisorPk(0)}processLoginDone(){this.inLoginPage=!1,this.hypervisorPkObtained||this.checkHypervisorPk(0)}showDataProblemMsg(){this.showingDataProblemMsg=!0}hideDataProblemMsg(){this.showingDataProblemMsg=!1}checkHypervisorPk(e){this.obtainPkSubscription&&this.obtainPkSubscription.unsubscribe(),this.obtainPkSubscription=ae(1).pipe(li(e),It(()=>this.apiService.get("about"))).subscribe(i=>{i.public_key?(this.finishStartup(i.public_key),this.hypervisorPkObtained=!0):(this.pkErrorShown||(this.snackbarService.showError("start.loading-error",null,!0),this.pkErrorShown=!0),this.checkHypervisorPk(1e3))},i=>{if(this.pkErrorsFound+=1,this.pkErrorsFound>4&&!this.pkErrorShown){const o=Qe(i);this.snackbarService.showError("start.loading-error",null,!0,o),this.pkErrorShown=!0}!this.inLoginPage&&this.pkErrorsFound<30&&this.checkHypervisorPk(Math.min(1e3*this.pkErrorsFound,1e4))})}finishStartup(e){this.storage.initialize(e)}static{this.\u0275fac=function(i){return new(i||t)(O(ti),O(vt),O(Ot),O(ct),O($b),O(zi))}}static{this.\u0275cmp=re({type:t,selectors:[["app-root"]],standalone:!1,decls:6,vars:7,consts:[[1,"size-alert","d-md-none"],[1,"flex-1","content","container-fluid"],[3,"ngClass"],[1,"h-100"],[1,"connection-problem-container"],["src","assets/img/size-alert.png"],[1,"blinking"],[3,"inline"]],template:function(i,o){1&i&&(x(0,Jue,6,3,"div",0),h(1,"div",1),B(2,"div",2),x(3,ehe,1,0,"router-outlet"),x(4,the,1,0,"app-loading-indicator",3),u(),x(5,nhe,6,4,"div",4)),2&i&&(S(o.inVpnClient?0:-1),d(2),C("ngClass",se(5,Que,o.inVpnClient)),d(),S(o.hypervisorPkObtained||o.inLoginPage?3:-1),d(),S(o.hypervisorPkObtained||o.inLoginPage?-1:4),d(),S(o.showingDataProblemMsg?5:-1))},dependencies:[$t,eb,We,Yr,xe],styles:[".size-alert[_ngcontent-%COMP%]{background-color:#000000d9;position:fixed;top:0;left:0;width:100%;height:100%;z-index:10000;display:inline-flex;align-items:center;justify-content:center;text-align:center;color:#fff}.size-alert[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{margin:0 40px;max-width:400px}[_nghost-%COMP%]{display:flex;flex-direction:column;justify-content:space-between;min-height:100%;height:100%}.content[_ngcontent-%COMP%]{padding:20px!important}.background[_ngcontent-%COMP%]{background-image:url(/assets/img/map.png);background-size:cover;background-position:center;opacity:.1;width:100%;height:100%;top:0;left:0;position:fixed}.connection-problem-container[_ngcontent-%COMP%]{position:fixed;bottom:0;right:0;background-color:red;padding:0 10px 5px;font-size:10px;opacity:.75}.connection-problem-container[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:4px}"]})}}return t})(),mhe=(()=>{class t{router=D(vt);stateManager=D(eS);fragment=yt("");queryParams=yt({});path=yt("");serializer=D(jd);constructor(){this.updateState(),this.router.events?.subscribe(e=>{e instanceof Wr&&this.updateState()})}updateState(){const{fragment:e,root:i,queryParams:o}=this.stateManager.getCurrentUrlTree();this.fragment.set(e),this.queryParams.set(o),this.path.set(this.serializer.serialize(new gr(i)))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Is=(()=>{class t{router;route;tabIndexAttribute;renderer;el;locationStrategy;hrefAttributeValue=D(new Yh("href"),{optional:!0});reactiveHref=function lw(t,n){return yF("function"==typeof t?_F(t,xte,n?.equal):_F(t.source,t.computation,t.equal))}(()=>this.isAnchorElement?this.computeHref(this._urlTree()):this.hrefAttributeValue);get href(){return nt(this.reactiveHref)}set href(e){this.reactiveHref.set(e)}set target(e){this._target.set(e)}get target(){return nt(this._target)}_target=yt(void 0);set queryParams(e){this._queryParams.set(e)}get queryParams(){return nt(this._queryParams)}_queryParams=yt(void 0,{equal:()=>!1});set fragment(e){this._fragment.set(e)}get fragment(){return nt(this._fragment)}_fragment=yt(void 0);set queryParamsHandling(e){this._queryParamsHandling.set(e)}get queryParamsHandling(){return nt(this._queryParamsHandling)}_queryParamsHandling=yt(void 0);set state(e){this._state.set(e)}get state(){return nt(this._state)}_state=yt(void 0,{equal:()=>!1});set info(e){this._info.set(e)}get info(){return nt(this._info)}_info=yt(void 0,{equal:()=>!1});set relativeTo(e){this._relativeTo.set(e)}get relativeTo(){return nt(this._relativeTo)}_relativeTo=yt(void 0);set preserveFragment(e){this._preserveFragment.set(e)}get preserveFragment(){return nt(this._preserveFragment)}_preserveFragment=yt(!1);set skipLocationChange(e){this._skipLocationChange.set(e)}get skipLocationChange(){return nt(this._skipLocationChange)}_skipLocationChange=yt(!1);set replaceUrl(e){this._replaceUrl.set(e)}get replaceUrl(){return nt(this._replaceUrl)}_replaceUrl=yt(!1);isAnchorElement;onChanges=new me;applicationErrorHandler=D(Or);options=D(Gd,{optional:!0});reactiveRouterState=D(mhe);constructor(e,i,o,r,s,a){this.router=e,this.route=i,this.tabIndexAttribute=o,this.renderer=r,this.el=s,this.locationStrategy=a;const l=s.nativeElement.tagName?.toLowerCase();this.isAnchorElement="a"===l||"area"===l||!("object"!=typeof customElements||!customElements.get(l)?.observedAttributes?.includes?.("href"))}setTabIndexIfNotOnNativeEl(e){null!=this.tabIndexAttribute||this.isAnchorElement||this.applyAttributeValue("tabindex",e)}ngOnChanges(e){this.onChanges.next(this)}routerLinkInput=yt(null);set routerLink(e){null==e?(this.routerLinkInput.set(null),this.setTabIndexIfNotOnNativeEl(null)):(ql(e)?this.routerLinkInput.set(e):this.routerLinkInput.set(Array.isArray(e)?e:[e]),this.setTabIndexIfNotOnNativeEl("0"))}onClick(e,i,o,r,s){const a=this._urlTree();if(null===a||this.isAnchorElement&&(0!==e||i||o||r||s||"string"==typeof this.target&&"_self"!=this.target))return!0;const l={skipLocationChange:this.skipLocationChange,replaceUrl:this.replaceUrl,state:this.state,info:this.info};return this.router.navigateByUrl(a,l)?.catch(c=>{this.applicationErrorHandler(c)}),!this.isAnchorElement}ngOnDestroy(){}applyAttributeValue(e,i){const o=this.renderer,r=this.el.nativeElement;null!==i?o.setAttribute(r,e,i):o.removeAttribute(r,e)}_urlTree=Ii(()=>{this.reactiveRouterState.path(),this._preserveFragment()&&this.reactiveRouterState.fragment();const e=o=>"preserve"===o||"merge"===o;(e(this._queryParamsHandling())||e(this.options?.defaultQueryParamsHandling))&&this.reactiveRouterState.queryParams();const i=this.routerLinkInput();return null!==i&&this.router.createUrlTree?ql(i)?i:this.router.createUrlTree(i,{relativeTo:void 0!==this._relativeTo()?this._relativeTo():this.route,queryParams:this._queryParams(),fragment:this._fragment(),queryParamsHandling:this._queryParamsHandling(),preserveFragment:this._preserveFragment()}):null},{equal:(e,i)=>this.computeHref(e)===this.computeHref(i)});get urlTree(){return nt(this._urlTree)}computeHref(e){return null!==e&&this.locationStrategy?this.locationStrategy?.prepareExternalUrl(this.router.serializeUrl(e))??"":null}static \u0275fac=function(i){return new(i||t)(O(vt),O(Ai),nh("tabindex"),O(Qn),O(Re),O(Bl))};static \u0275dir=de({type:t,selectors:[["","routerLink",""]],hostVars:2,hostBindings:function(i,o){1&i&&F("click",function(s){return o.onClick(s.button,s.ctrlKey,s.shiftKey,s.altKey,s.metaKey)}),2&i&&$e("href",o.reactiveHref(),lE)("target",o._target())},inputs:{target:"target",queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",state:"state",info:"info",relativeTo:"relativeTo",preserveFragment:[2,"preserveFragment","preserveFragment",De],skipLocationChange:[2,"skipLocationChange","skipLocationChange",De],replaceUrl:[2,"replaceUrl","replaceUrl",De],routerLink:"routerLink"},features:[_i]})}return t})();class h5{}let bhe=(()=>{class t{router;injector;preloadingStrategy;loader;subscription;constructor(e,i,o,r){this.router=e,this.injector=i,this.preloadingStrategy=o,this.loader=r}setUpPreloading(){this.subscription=this.router.events.pipe(Tn(e=>e instanceof Wr),cf(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription?.unsubscribe()}processRoutes(e,i){const o=[];for(const r of i){r.providers&&!r._injector&&(r._injector=Mg(r.providers,e,""));const s=r._injector??e;r._loadedNgModuleFactory&&!r._loadedInjector&&(r._loadedInjector=r._loadedNgModuleFactory.create(s).injector);const a=r._loadedInjector??s;(r.loadChildren&&!r._loadedRoutes&&void 0===r.canLoad||r.loadComponent&&!r._loadedComponent)&&o.push(this.preloadConfig(s,r)),(r.children||r._loadedRoutes)&&o.push(this.processRoutes(a,r.children??r._loadedRoutes))}return Kn(o).pipe(Vd())}preloadConfig(e,i){return this.preloadingStrategy.preload(i,()=>{if(e.destroyed)return ae(null);let o;o=i.loadChildren&&void 0===i.canLoad?Kn(this.loader.loadChildren(e,i)):ae(null);const r=o.pipe(It(s=>null===s?ae(void 0):(i._loadedRoutes=s.routes,i._loadedInjector=s.injector,i._loadedNgModuleFactory=s.factory,this.processRoutes(s.injector??e,s.routes))));return i.loadComponent&&!i._loadedComponent?Kn([r,this.loader.loadComponent(e,i)]).pipe(Vd()):r})}static \u0275fac=function(i){return new(i||t)(ce(vt),ce(zn),ce(h5),ce(Kx))};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const US=new Z("");let f5=(()=>{class t{options;routerEventsSubscription;scrollEventsSubscription;lastId=0;lastSource=wf;restoredId=0;store={};urlSerializer=D(jd);zone=D(_e);viewportScroller=D(ZM);transitions=D(Qx);constructor(e){this.options=e,this.options.scrollPositionRestoration||="disabled",this.options.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 Z_?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=e.navigationTrigger,this.restoredId=e.restoredState?e.restoredState.navigationId:0):e instanceof Wr?(this.lastId=e.id,this.scheduleScrollEvent(e,this.urlSerializer.parse(e.urlAfterRedirects).fragment)):e instanceof Ud&&e.code===Q_.IgnoredSameUrlNavigation&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(e,this.urlSerializer.parse(e.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(e=>{if(!(e instanceof t3)||"manual"===e.scrollBehavior)return;const i={behavior:"instant"};e.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0],i):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(e.position,i):e.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(e.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0])})}scheduleScrollEvent(e,i){var o=this;const r=nt(this.transitions.currentNavigation)?.extras.scroll;this.zone.runOutsideAngular(Et(function*(){yield new Promise(s=>{setTimeout(s),typeof requestAnimationFrame<"u"&&requestAnimationFrame(s)}),o.zone.run(()=>{o.transitions.events.next(new t3(e,"popstate"===o.lastSource?o.store[o.restoredId]:null,i,r))})}))}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static \u0275fac=function(i){B1()};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();function Ko(t,n){return{\u0275kind:t,\u0275providers:n}}function m5(){const t=D(He);return n=>{const e=t.get(lr);if(n!==e.components[0])return;const i=t.get(vt),o=t.get(g5);1===t.get(zS)&&i.initialNavigation(),t.get(_5,null,{optional:!0})?.setUpPreloading(),t.get(US,null,{optional:!0})?.init(),i.resetRootComponentType(e.componentTypes[0]),o.closed||(o.next(),o.complete(),o.unsubscribe())}}const g5=new Z("",{factory:()=>new me}),zS=new Z("",{factory:()=>1}),_5=new Z("");function xhe(t){return Ko(0,[{provide:_5,useExisting:bhe},{provide:h5,useExisting:t}])}function khe(t){return vi("NgRouterViewTransitions"),Ko(9,[{provide:T3,useValue:Qle},{provide:E3,useValue:{skipNextTransition:!!t?.skipInitialTransition,...t}}])}const Dhe=[Fd,{provide:jd,useClass:bf},vt,xf,{provide:Ai,useFactory:function p5(){return D(vt).routerState.root}},Kx,[]];let b5=(()=>{class t{constructor(){}static forRoot(e,i){return{ngModule:t,providers:[Dhe,[],{provide:sb,multi:!0,useValue:e},[],i?.errorHandler?{provide:P3,useValue:i.errorHandler}:[],{provide:Gd,useValue:i||{}},i?.useHash?{provide:Bl,useClass:Nte}:{provide:Bl,useClass:kF},{provide:US,useFactory:()=>{const t=D(ZM),n=D(Gd);return n.scrollOffset&&t.setOffset(n.scrollOffset),new f5(n)}},i?.preloadingStrategy?xhe(i.preloadingStrategy).\u0275providers:[],i?.initialNavigation?Phe(i):[],i?.bindToComponentInputs?Ko(8,[c3,{provide:tb,useExisting:c3}]).\u0275providers:[],i?.enableViewTransitions?khe().\u0275providers:[],[{provide:v5,useFactory:m5},{provide:nO,multi:!0,useExisting:v5}]]}}static forChild(e){return{ngModule:t,providers:[{provide:sb,multi:!0,useValue:e}]}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({})}return t})();function Phe(t){return["disabled"===t.initialNavigation?Ko(3,[eO(()=>{D(vt).setUpLocationChangeListener()}),{provide:zS,useValue:2}]).\u0275providers:[],"enabledBlocking"===t.initialNavigation?Ko(2,[{provide:W7,useValue:!0},{provide:zS,useValue:0},eO(()=>{const n=D(He);return n.get(_U,Promise.resolve()).then(()=>new Promise(i=>{const o=n.get(vt),r=n.get(g5);A3(o,()=>{i(!0)}),n.get(Qx).afterPreactivation=()=>(i(!0),r.closed?ae(void 0):r),o.initialNavigation()}))})]).\u0275providers:[]]}const v5=new Z("");let Kf=(()=>{class t{set forceFail(e){this.forceFailInternal=e}constructor(e){this.router=e,this.forceFailInternal=!1}canActivate(e,i){return this.checkIfCanActivate()}canActivateChild(e,i){return this.checkIfCanActivate()}checkIfCanActivate(){return this.forceFailInternal?(this.router.navigate(["login"],{replaceUrl:!0}),ae(!1)):ae(!0)}static{this.\u0275fac=function(i){return new(i||t)(ce(vt))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();var ka=function(t){return t[t.AuthDisabled=0]="AuthDisabled",t[t.Logged=1]="Logged",t[t.NotLogged=2]="NotLogged",t}(ka||{});let Yf=(()=>{class t{constructor(e,i,o){this.apiService=e,this.translateService=i,this.authGuardService=o}login(e){return this.apiService.post("login",{username:"admin",password:e},new qo({ignoreAuth:!0})).pipe(ai(i=>{if(!0!==i)throw new Error;this.authGuardService.forceFail=!1}))}checkLogin(){return this.apiService.get("user",new qo({ignoreAuth:!0})).pipe(Se(e=>e.username?ka.Logged:ka.AuthDisabled),Ui(e=>(e=Qe(e)).originalError&&401===e.originalError.status?(this.authGuardService.forceFail=!0,ae(ka.NotLogged)):mr(e)))}logout(){return this.apiService.post("logout",{}).pipe(ai(e=>{if(!0!==e)throw new Error;this.authGuardService.forceFail=!0}))}changePassword(e,i){return this.apiService.post("change-password",{old_password:e,new_password:i},new qo({responseType:qf.Text,ignoreAuth:!0})).pipe(Se(o=>{if("string"==typeof o&&"true"===o.trim())return!0;throw"Please do not change the default password."===o?new Error(this.translateService.instant("settings.password.errors.default-password")):new Error(this.translateService.instant("common.operation-error"))}),Ui(o=>((o=Qe(o)).originalError&&401===o.originalError.status&&(o.translatableErrorMsg="settings.password.errors.bad-old-password"),mr(o))))}initialConfig(e){return this.apiService.post("create-account",{username:"admin",password:e},new qo({responseType:qf.Text,ignoreAuth:!0})).pipe(Se(i=>{if("string"==typeof i&&"true"===i.trim())return!0;throw new Error(i)}),Ui(i=>((i=Qe(i)).originalError&&500===i.originalError.status&&(i.translatableErrorMsg="settings.password.initial-config.error"),mr(i))))}userExists(){return this.apiService.get("user-exists",new qo({ignoreAuth:!0})).pipe(Se(e=>!0===e.exists),Ui(()=>ae(!0)))}static{this.\u0275fac=function(i){return new(i||t)(ce(zi),ce(Go),ce(Kf))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();class Ohe{}class pn{constructor(){this.persistentScrollPosKey="scroll-pos"}static{this.mustCallNgOnInitSuper=Symbol("You must call super.ngOnInit.")}ngOnInit(){let n=this.getLocalValue(this.persistentScrollPosKey);n=n?n.value:"0",window.scrollTo(0,Number(n)),setTimeout(()=>window.scrollTo(0,Number(n)),1)}saveScrollPosition(n){this.saveLocalValue(this.persistentScrollPosKey,window.scrollY+"")}saveLocalValue(n,e){const i=window.history.state;i[n]=e,i[n+"_time"]=(new Date).getTime(),window.history.replaceState(i,"",window.location.pathname+window.location.hash)}getLocalValue(n){if(!window.history.state||void 0===window.history.state[n])return null;const e=new Ohe;return e.value=window.history.state[n],e.date=window.history.state[n+"_time"],e}static{this.\u0275fac=function(e){return new(e||pn)}}static{this.\u0275cmp=re({type:pn,selectors:[["app-page-base"]],hostBindings:function(e,i){1&e&&F("scroll",function(r){return i.saveScrollPosition(r)},XC)},standalone:!1,decls:0,vars:0,template:function(e,i){},encapsulation:2})}}let Ahe=(()=>{class t extends pn{constructor(e,i){super(),this.authService=e,this.router=i}ngOnInit(){return this.verificationSubscription=this.authService.checkLogin().subscribe(e=>{this.router.navigate(e!==ka.NotLogged?["nodes"]:["login"],{replaceUrl:!0})},()=>{this.router.navigate(["nodes"],{replaceUrl:!0})}),super.ngOnInit()}ngOnDestroy(){this.verificationSubscription.unsubscribe()}static{this.\u0275fac=function(i){return new(i||t)(O(Yf),O(vt))}}static{this.\u0275cmp=re({type:t,selectors:[["app-start"]],standalone:!1,features:[be],decls:2,vars:0,consts:[[1,"h-100","w-100"]],template:function(i,o){1&i&&(h(0,"div",0),B(1,"app-loading-indicator"),u())},dependencies:[Yr],encapsulation:2})}}return t})(),y5=(()=>{class t{_renderer;_elementRef;onChange=e=>{};onTouched=()=>{};constructor(e,i){this._renderer=e,this._elementRef=i}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 \u0275fac=function(i){return new(i||t)(O(Qn),O(Re))};static \u0275dir=de({type:t})}return t})(),ic=(()=>{class t extends y5{static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275dir=de({type:t,features:[be]})}return t})();const Yo=new Z(""),Fhe={provide:Yo,useExisting:Nt(()=>Gt),multi:!0},Lhe=new Z("");let Gt=(()=>{class t extends y5{_compositionMode;_composing=!1;constructor(e,i,o){super(e,i),this._compositionMode=o,null==this._compositionMode&&(this._compositionMode=!function Nhe(){const t=Xs()?Xs().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 \u0275fac=function(i){return new(i||t)(O(Qn),O(Re),O(Lhe,8))};static \u0275dir=de({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&&F("input",function(s){return o._handleInput(s.target.value)})("blur",function(){return o.onTouched()})("compositionstart",function(){return o._compositionStart()})("compositionend",function(s){return o._compositionEnd(s.target.value)})},standalone:!1,features:[lt([Fhe]),be]})}return t})();function $S(t){return null==t||0===WS(t)}function WS(t){return null==t?null:Array.isArray(t)||"string"==typeof t?t.length:t instanceof Set?t.size:null}const Ci=new Z(""),Da=new Z(""),Bhe=/^(?=.{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 Ne{static min(n){return w5(n)}static max(n){return x5(n)}static required(n){return function S5(t){return $S(t.value)?{required:!0}:null}(n)}static requiredTrue(n){return function k5(t){return!0===t.value?null:{required:!0}}(n)}static email(n){return function D5(t){return $S(t.value)||Bhe.test(t.value)?null:{email:!0}}(n)}static minLength(n){return function M5(t){return n=>{const e=n.value?.length??WS(n.value);return null===e||0===e?null:e{if($S(i.value))return null;const o=i.value;return n.test(o)?null:{pattern:{requiredPattern:e,actualValue:o}}}}(n)}static nullValidator(n){return null}static compose(n){return F5(n)}static composeAsync(n){return N5(n)}}function w5(t){return n=>{if(null==n.value||null==t)return null;const e=parseFloat(n.value);return!isNaN(e)&&e{if(null==n.value||null==t)return null;const e=parseFloat(n.value);return!isNaN(e)&&e>t?{max:{max:t,actual:n.value}}:null}}function T5(t){return n=>{const e=n.value?.length??WS(n.value);return null!==e&&e>t?{maxlength:{requiredLength:t,actualLength:e}}:null}}function Gb(t){return null}function P5(t){return null!=t}function I5(t){return Rh(t)?Kn(t):t}function O5(t){let n={};return t.forEach(e=>{n=null!=e?{...n,...e}:n}),0===Object.keys(n).length?null:n}function A5(t,n){return n.map(e=>e(t))}function R5(t){return t.map(n=>function Vhe(t){return!t.validate}(n)?n:e=>n.validate(e))}function F5(t){if(!t)return null;const n=t.filter(P5);return 0==n.length?null:function(e){return O5(A5(e,n))}}function GS(t){return null!=t?F5(R5(t)):null}function N5(t){if(!t)return null;const n=t.filter(P5);return 0==n.length?null:function(e){return zf(A5(e,n).map(I5)).pipe(Se(O5))}}function qS(t){return null!=t?N5(R5(t)):null}function L5(t,n){return null===t?[n]:Array.isArray(t)?[...t,n]:[t,n]}function B5(t){return t._rawValidators}function V5(t){return t._rawAsyncValidators}function KS(t){return t?Array.isArray(t)?t:[t]:[]}function qb(t,n){return Array.isArray(t)?t.includes(n):t===n}function H5(t,n){const e=KS(n);return KS(t).forEach(o=>{qb(e,o)||e.push(o)}),e}function j5(t,n){return KS(n).filter(e=>!qb(t,e))}class U5{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}_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators=[];_rawAsyncValidators=[];_setValidators(n){this._rawValidators=n||[],this._composedValidatorFn=GS(this._rawValidators)}_setAsyncValidators(n){this._rawAsyncValidators=n||[],this._composedAsyncValidatorFn=qS(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_onDestroyCallbacks=[];_registerOnDestroy(n){this._onDestroyCallbacks.push(n)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(n=>n()),this._onDestroyCallbacks=[]}reset(n=void 0){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 $i extends U5{name;get formDirective(){return null}get path(){return null}}class Zr extends U5{_parent=null;name=null;valueAccessor=null}class z5{_cd;constructor(n){this._cd=n}get isTouched(){return this._cd?.control?._touched?.(),!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return this._cd?.control?._pristine?.(),!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return this._cd?.control?._status?.(),!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return this._cd?._submitted?.(),!!this._cd?.submitted}}let qt=(()=>{class t extends z5{constructor(e){super(e)}static \u0275fac=function(i){return new(i||t)(O(Zr,2))};static \u0275dir=de({type:t,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,o){2&i&&Ie("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)},standalone:!1,features:[be]})}return t})(),wn=(()=>{class t extends z5{constructor(e){super(e)}static \u0275fac=function(i){return new(i||t)(O($i,10))};static \u0275dir=de({type:t,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["","formArray",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(i,o){2&i&&Ie("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)},standalone:!1,features:[be]})}return t})();const Xf="VALID",Yb="INVALID",iu="PENDING",Zf="DISABLED";class ou{}class G5 extends ou{value;source;constructor(n,e){super(),this.value=n,this.source=e}}class ZS extends ou{pristine;source;constructor(n,e){super(),this.pristine=n,this.source=e}}class QS extends ou{touched;source;constructor(n,e){super(),this.touched=n,this.source=e}}class Xb extends ou{status;source;constructor(n,e){super(),this.status=n,this.source=e}}class q5 extends ou{source;constructor(n){super(),this.source=n}}class JS extends ou{source;constructor(n){super(),this.source=n}}function ek(t){return(Zb(t)?t.validators:t)||null}function tk(t,n){return(Zb(n)?n.asyncValidators:t)||null}function Zb(t){return null!=t&&!Array.isArray(t)&&"object"==typeof t}function K5(t,n,e){const i=t.controls;if(!(n?Object.keys(i):i).length)throw new X(1e3,"");if(!i[e])throw new X(1001,"")}function Y5(t,n,e){t._forEachChild((i,o)=>{if(void 0===e[o])throw new X(1002,"")})}class Qb{_pendingDirty=!1;_hasOwnPendingAsyncValidator=null;_pendingTouched=!1;_onCollectionChange=()=>{};_updateOn;_parent=null;_asyncValidationSubscription;_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators;_rawAsyncValidators;value;constructor(n,e){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 status(){return nt(this.statusReactive)}set status(n){nt(()=>this.statusReactive.set(n))}_status=Ii(()=>this.statusReactive());statusReactive=yt(void 0);get valid(){return this.status===Xf}get invalid(){return this.status===Yb}get pending(){return this.status==iu}get disabled(){return this.status===Zf}get enabled(){return this.status!==Zf}errors;get pristine(){return nt(this.pristineReactive)}set pristine(n){nt(()=>this.pristineReactive.set(n))}_pristine=Ii(()=>this.pristineReactive());pristineReactive=yt(!0);get dirty(){return!this.pristine}get touched(){return nt(this.touchedReactive)}set touched(n){nt(()=>this.touchedReactive.set(n))}_touched=Ii(()=>this.touchedReactive());touchedReactive=yt(!1);get untouched(){return!this.touched}_events=new me;events=this._events.asObservable();valueChanges;statusChanges;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(H5(n,this._rawValidators))}addAsyncValidators(n){this.setAsyncValidators(H5(n,this._rawAsyncValidators))}removeValidators(n){this.setValidators(j5(n,this._rawValidators))}removeAsyncValidators(n){this.setAsyncValidators(j5(n,this._rawAsyncValidators))}hasValidator(n){return qb(this._rawValidators,n)}hasAsyncValidator(n){return qb(this._rawAsyncValidators,n)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(n={}){const e=!1===this.touched;this.touched=!0;const i=n.sourceControl??this;n.onlySelf||this._parent?.markAsTouched({...n,sourceControl:i}),e&&!1!==n.emitEvent&&this._events.next(new QS(!0,i))}markAllAsDirty(n={}){this.markAsDirty({onlySelf:!0,emitEvent:n.emitEvent,sourceControl:this}),this._forEachChild(e=>e.markAllAsDirty(n))}markAllAsTouched(n={}){this.markAsTouched({onlySelf:!0,emitEvent:n.emitEvent,sourceControl:this}),this._forEachChild(e=>e.markAllAsTouched(n))}markAsUntouched(n={}){const e=!0===this.touched;this.touched=!1,this._pendingTouched=!1;const i=n.sourceControl??this;this._forEachChild(o=>{o.markAsUntouched({onlySelf:!0,emitEvent:n.emitEvent,sourceControl:i})}),n.onlySelf||this._parent?._updateTouched(n,i),e&&!1!==n.emitEvent&&this._events.next(new QS(!1,i))}markAsDirty(n={}){const e=!0===this.pristine;this.pristine=!1;const i=n.sourceControl??this;n.onlySelf||this._parent?.markAsDirty({...n,sourceControl:i}),e&&!1!==n.emitEvent&&this._events.next(new ZS(!1,i))}markAsPristine(n={}){const e=!1===this.pristine;this.pristine=!0,this._pendingDirty=!1;const i=n.sourceControl??this;this._forEachChild(o=>{o.markAsPristine({onlySelf:!0,emitEvent:n.emitEvent})}),n.onlySelf||this._parent?._updatePristine(n,i),e&&!1!==n.emitEvent&&this._events.next(new ZS(!0,i))}markAsPending(n={}){this.status=iu;const e=n.sourceControl??this;!1!==n.emitEvent&&(this._events.next(new Xb(this.status,e)),this.statusChanges.emit(this.status)),n.onlySelf||this._parent?.markAsPending({...n,sourceControl:e})}disable(n={}){const e=this._parentMarkedDirty(n.onlySelf);this.status=Zf,this.errors=null,this._forEachChild(o=>{o.disable({...n,onlySelf:!0})}),this._updateValue();const i=n.sourceControl??this;!1!==n.emitEvent&&(this._events.next(new G5(this.value,i)),this._events.next(new Xb(this.status,i)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...n,skipPristineCheck:e},this),this._onDisabledChange.forEach(o=>o(!0))}enable(n={}){const e=this._parentMarkedDirty(n.onlySelf);this.status=Xf,this._forEachChild(i=>{i.enable({...n,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent}),this._updateAncestors({...n,skipPristineCheck:e},this),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(n,e){n.onlySelf||(this._parent?.updateValueAndValidity(n),n.skipPristineCheck||this._parent?._updatePristine({},e),this._parent?._updateTouched({},e))}setParent(n){this._parent=n}getRawValue(){return this.value}updateValueAndValidity(n={}){if(this._setInitialStatus(),this._updateValue(),this.enabled){const i=this._cancelExistingSubscription();this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===Xf||this.status===iu)&&this._runAsyncValidator(i,n.emitEvent)}const e=n.sourceControl??this;!1!==n.emitEvent&&(this._events.next(new G5(this.value,e)),this._events.next(new Xb(this.status,e)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),n.onlySelf||this._parent?.updateValueAndValidity({...n,sourceControl:e})}_updateTreeValidity(n={emitEvent:!0}){this._forEachChild(e=>e._updateTreeValidity(n)),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?Zf:Xf}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(n,e){if(this.asyncValidator){this.status=iu,this._hasOwnPendingAsyncValidator={emitEvent:!1!==e,shouldHaveEmitted:!1!==n};const i=I5(this.asyncValidator(this));this._asyncValidationSubscription=i.subscribe(o=>{this._hasOwnPendingAsyncValidator=null,this.setErrors(o,{emitEvent:e,shouldHaveEmitted:n})})}}_cancelExistingSubscription(){if(this._asyncValidationSubscription){this._asyncValidationSubscription.unsubscribe();const n=(this._hasOwnPendingAsyncValidator?.emitEvent||this._hasOwnPendingAsyncValidator?.shouldHaveEmitted)??!1;return this._hasOwnPendingAsyncValidator=null,n}return!1}setErrors(n,e={}){this.errors=n,this._updateControlsErrors(!1!==e.emitEvent,this,e.shouldHaveEmitted)}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?.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,e,i){this.status=this._calculateStatus(),n&&this.statusChanges.emit(this.status),(n||i)&&this._events.next(new Xb(this.status,e)),this._parent&&this._parent._updateControlsErrors(n,e,i)}_initObservables(){this.valueChanges=new we,this.statusChanges=new we}_calculateStatus(){return this._allControlsDisabled()?Zf:this.errors?Yb:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(iu)?iu:this._anyControlsHaveStatus(Yb)?Yb:Xf}_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,e){const i=!this._anyControlsDirty(),o=this.pristine!==i;this.pristine=i,n.onlySelf||this._parent?._updatePristine(n,e),o&&this._events.next(new ZS(this.pristine,e))}_updateTouched(n={},e){this.touched=this._anyControlsTouched(),this._events.next(new QS(this.touched,e)),n.onlySelf||this._parent?._updateTouched(n,e)}_onDisabledChange=[];_registerOnCollectionChange(n){this._onCollectionChange=n}_setUpdateStrategy(n){Zb(n)&&null!=n.updateOn&&(this._updateOn=n.updateOn)}_parentMarkedDirty(n){return!n&&!!this._parent?.dirty&&!this._parent._anyControlsDirty()}_find(n){return null}_assignValidators(n){this._rawValidators=Array.isArray(n)?n.slice():n,this._composedValidatorFn=function Ghe(t){return Array.isArray(t)?GS(t):t||null}(this._rawValidators)}_assignAsyncValidators(n){this._rawAsyncValidators=Array.isArray(n)?n.slice():n,this._composedAsyncValidatorFn=function qhe(t){return Array.isArray(t)?qS(t):t||null}(this._rawAsyncValidators)}}class ru extends Qb{constructor(n,e,i){super(ek(e),tk(i,e)),this.controls=n,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;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={}){Y5(this,0,n),Object.keys(n).forEach(i=>{K5(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,{...e,onlySelf:!0})}),this._updatePristine(e,this),this._updateTouched(e,this),this.updateValueAndValidity(e),!1!==e?.emitEvent&&this._events.next(new JS(this))}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}}const nk=ru;class X5 extends ru{}const oc=new Z("",{factory:()=>Qf}),Qf="always";function Jb(t,n){return[...n.path,t]}function Jf(t,n,e=Qf){ik(t,n),n.valueAccessor.writeValue(t.value),(t.disabled||"always"===e)&&n.valueAccessor.setDisabledState?.(t.disabled),function Yhe(t,n){n.valueAccessor.registerOnChange(e=>{t._pendingValue=e,t._pendingChange=!0,t._pendingDirty=!0,"change"===t.updateOn&&Z5(t,n)})}(t,n),function Zhe(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 Xhe(t,n){n.valueAccessor.registerOnTouched(()=>{t._pendingTouched=!0,"blur"===t.updateOn&&t._pendingChange&&Z5(t,n),"submit"!==t.updateOn&&t.markAsTouched()})}(t,n),function Khe(t,n){if(n.valueAccessor.setDisabledState){const e=i=>{n.valueAccessor.setDisabledState(i)};t.registerOnDisabledChange(e),n._registerOnDestroy(()=>{t._unregisterOnDisabledChange(e)})}}(t,n)}function ev(t,n,e=!0){const i=()=>{};n?.valueAccessor?.registerOnChange(i),n?.valueAccessor?.registerOnTouched(i),nv(t,n),t&&(n._invokeOnDestroyCallbacks(),t._registerOnCollectionChange(()=>{}))}function tv(t,n){t.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(n)})}function ik(t,n){const e=B5(t);null!==n.validator?t.setValidators(L5(e,n.validator)):"function"==typeof e&&t.setValidators([e]);const i=V5(t);null!==n.asyncValidator?t.setAsyncValidators(L5(i,n.asyncValidator)):"function"==typeof i&&t.setAsyncValidators([i]);const o=()=>t.updateValueAndValidity();tv(n._rawValidators,o),tv(n._rawAsyncValidators,o)}function nv(t,n){let e=!1;if(null!==t){if(null!==n.validator){const o=B5(t);if(Array.isArray(o)&&o.length>0){const r=o.filter(s=>s!==n.validator);r.length!==o.length&&(e=!0,t.setValidators(r))}}if(null!==n.asyncValidator){const o=V5(t);if(Array.isArray(o)&&o.length>0){const r=o.filter(s=>s!==n.asyncValidator);r.length!==o.length&&(e=!0,t.setAsyncValidators(r))}}}const i=()=>{};return tv(n._rawValidators,i),tv(n._rawAsyncValidators,i),e}function Z5(t,n){t._pendingDirty&&t.markAsDirty(),t.setValue(t._pendingValue,{emitModelToViewChange:!1}),n.viewToModelUpdate(t._pendingValue),t._pendingChange=!1}function Q5(t,n){ik(t,n)}function rk(t,n){if(!t.hasOwnProperty("model"))return!1;const e=t.model;return!!e.isFirstChange()||!Object.is(n,e.currentValue)}function J5(t,n){t._syncPendingControls(),n.forEach(e=>{const i=e.control;"submit"===i.updateOn&&i._pendingChange&&(e.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}function sk(t,n){if(!n)return null;let e,i,o;return Array.isArray(n),n.forEach(r=>{r.constructor===Gt?e=r:function efe(t){return Object.getPrototypeOf(t.constructor)===ic}(r)?i=r:o=r}),o||i||e||null}const nfe={provide:$i,useExisting:Nt(()=>su)},ep=Promise.resolve();let su=(()=>{class t extends $i{callSetDisabledState;get submitted(){return nt(this.submittedReactive)}_submitted=Ii(()=>this.submittedReactive());submittedReactive=yt(!1);_directives=new Set;form;ngSubmit=new we;options;constructor(e,i,o){super(),this.callSetDisabledState=o,this.form=new ru({},GS(e),qS(i))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(e){ep.then(()=>{const i=this._findContainer(e.path);e.control=i.registerControl(e.name,e.control),Jf(e.control,e,this.callSetDisabledState),e.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(e)})}getControl(e){return this.form.get(e.path)}removeControl(e){ep.then(()=>{this._findContainer(e.path)?.removeControl(e.name),this._directives.delete(e)})}addFormGroup(e){ep.then(()=>{const i=this._findContainer(e.path),o=new ru({});Q5(o,e),i.registerControl(e.name,o),o.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(e){ep.then(()=>{this._findContainer(e.path)?.removeControl?.(e.name)})}getFormGroup(e){return this.form.get(e.path)}updateModel(e,i){ep.then(()=>{this.form.get(e.path).setValue(i)})}setValue(e){this.control.setValue(e)}onSubmit(e){return this.submittedReactive.set(!0),J5(this.form,this._directives),this.ngSubmit.emit(e),this.form._events.next(new q5(this.control)),"dialog"===e?.target?.method}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this.submittedReactive.set(!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 \u0275fac=function(i){return new(i||t)(O(Ci,10),O(Da,10),O(oc,8))};static \u0275dir=de({type:t,selectors:[["form",3,"ngNoForm","",3,"formGroup","",3,"formArray",""],["ng-form"],["","ngForm",""]],hostBindings:function(i,o){1&i&&F("submit",function(s){return o.onSubmit(s)})("reset",function(){return o.onReset()})},inputs:{options:[0,"ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[lt([nfe]),be]})}return t})();function eB(t,n){const e=t.indexOf(n);e>-1&&t.splice(e,1)}function tB(t){return"object"==typeof t&&null!==t&&2===Object.keys(t).length&&"value"in t&&"disabled"in t}const au=class extends Qb{defaultValue=null;_onChange=[];_pendingValue;_pendingChange=!1;constructor(n=null,e,i){super(ek(e),tk(i,e)),this._applyFormState(n),this._setUpdateStrategy(e),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),Zb(e)&&(e.nonNullable||e.initialValueIsDefault)&&(this.defaultValue=tB(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),e.overwriteDefaultValue&&(this.defaultValue=this.value),this._pendingChange=!1,!1!==e?.emitEvent&&this._events.next(new JS(this))}_updateValue(){}_anyControls(n){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(n){this._onChange.push(n)}_unregisterOnChange(n){eB(this._onChange,n)}registerOnDisabledChange(n){this._onDisabledChange.push(n)}_unregisterOnDisabledChange(n){eB(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){tB(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}},lu=au;let iv=(()=>{class t extends $i{_parent;ngOnInit(){this._checkParentType(),this.formDirective.addFormGroup(this)}ngOnDestroy(){this.formDirective?.removeFormGroup(this)}get control(){return this.formDirective.getFormGroup(this)}get path(){return Jb(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275dir=de({type:t,standalone:!1,features:[be]})}return t})();const afe={provide:Zr,useExisting:Nt(()=>cu)},nB=Promise.resolve();let cu=(()=>{class t extends Zr{_changeDetectorRef;callSetDisabledState;control=new au;static ngAcceptInputType_isDisabled;_registered=!1;viewModel;name="";isDisabled;model;options;update=new we;constructor(e,i,o,r,s,a){super(),this._changeDetectorRef=s,this.callSetDisabledState=a,this._parent=e,this._setValidators(i),this._setAsyncValidators(o),this.valueAccessor=sk(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),rk(e,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){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(){Jf(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._checkName()}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(e){nB.then(()=>{this.control.setValue(e,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(e){const i=e.isDisabled.currentValue,o=0!==i&&De(i);nB.then(()=>{o&&!this.control.disabled?this.control.disable():!o&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(e){return this._parent?Jb(e,this._parent):[e]}static \u0275fac=function(i){return new(i||t)(O($i,9),O(Ci,10),O(Da,10),O(Yo,10),O(Jt,8),O(oc,8))};static \u0275dir=de({type:t,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"],options:[0,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],standalone:!1,features:[lt([afe]),be,_i]})}return t})(),xn=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""],standalone:!1})}return t})();const lfe={provide:Yo,useExisting:Nt(()=>rc),multi:!0};let rc=(()=>{class t extends ic{writeValue(e){this.setProperty("value",e??"")}registerOnChange(e){this.onChange=i=>{e(""==i?null:parseFloat(i))}}static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275dir=de({type:t,selectors:[["input","type","number","formControlName",""],["input","type","number","formControl",""],["input","type","number","ngModel",""]],hostBindings:function(i,o){1&i&&F("input",function(s){return o.onChange(s.target.value)})("blur",function(){return o.onTouched()})},standalone:!1,features:[lt([lfe]),be]})}return t})();class rB extends Qb{constructor(n,e,i){super(ek(e),tk(i,e)),this.controls=n,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;at(n){return this.controls[this._adjustIndex(n)]}push(n,e={}){Array.isArray(n)?n.forEach(i=>{this.controls.push(i),this._registerControl(i)}):(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={}){Y5(this,0,n),n.forEach((i,o)=>{K5(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],{...e,onlySelf:!0})}),this._updatePristine(e,this),this._updateTouched(e,this),this.updateValueAndValidity(e),!1!==e?.emitEvent&&this._events.next(new JS(this))}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}}let rv=(()=>{class t extends $i{callSetDisabledState;get submitted(){return nt(this._submittedReactive)}set submitted(e){this._submittedReactive.set(e)}_submitted=Ii(()=>this._submittedReactive());_submittedReactive=yt(!1);_oldForm;_onCollectionChange=()=>this._updateDomValue();directives=[];constructor(e,i,o){super(),this.callSetDisabledState=o,this._setValidators(e),this._setAsyncValidators(i)}ngOnChanges(e){this.onChanges(e)}ngOnDestroy(){this.onDestroy()}onChanges(e){this._checkFormPresent(),e.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}onDestroy(){this.form&&(nv(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get path(){return[]}addControl(e){const i=this.form.get(e.path);return Jf(i,e,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(e),i}getControl(e){return this.form.get(e.path)}removeControl(e){ev(e.control||null,e,!1),function tfe(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)}getFormArray(e){return this.form.get(e.path)}addFormArray(e){this._setUpFormContainer(e)}removeFormArray(e){this._cleanUpFormContainer(e)}updateModel(e,i){this.form.get(e.path).setValue(i)}onReset(){this.resetForm()}resetForm(e=void 0,i={}){this.form.reset(e,i),this._submittedReactive.set(!1)}onSubmit(e){return this.submitted=!0,J5(this.form,this.directives),this.ngSubmit.emit(e),this.form._events.next(new q5(this.control)),"dialog"===e?.target?.method}_updateDomValue(){this.directives.forEach(e=>{const i=e.control,o=this.form.get(e.path);i!==o&&(ev(i||null,e),(t=>t instanceof au)(o)&&(Jf(o,e,this.callSetDisabledState),e.control=o))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(e){const i=this.form.get(e.path);Q5(i,e),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(e){const i=this.form?.get(e.path);i&&function Qhe(t,n){return nv(t,n)}(i,e)&&i.updateValueAndValidity({emitEvent:!1})}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm?._registerOnCollectionChange(()=>{})}_updateValidators(){ik(this.form,this),this._oldForm&&nv(this._oldForm,this)}_checkFormPresent(){}static \u0275fac=function(i){return new(i||t)(O(Ci,10),O(Da,10),O(oc,8))};static \u0275dir=de({type:t,features:[be,_i]})}return t})();const ak=new Z(""),pfe={provide:$i,useExisting:Nt(()=>sc)};let sc=(()=>{class t extends iv{name=null;constructor(e,i,o){super(),this._parent=e,this._setValidators(i),this._setAsyncValidators(o)}_checkParentType(){lB(this._parent)}static \u0275fac=function(i){return new(i||t)(O($i,13),O(Ci,10),O(Da,10))};static \u0275dir=de({type:t,selectors:[["","formGroupName",""]],inputs:{name:[0,"formGroupName","name"]},standalone:!1,features:[lt([pfe]),be]})}return t})();const mfe={provide:$i,useExisting:Nt(()=>du)};let du=(()=>{class t extends $i{_parent;name=null;constructor(e,i,o){super(),this._parent=e,this._setValidators(i),this._setAsyncValidators(o)}ngOnInit(){lB(this._parent),this.formDirective.addFormArray(this)}ngOnDestroy(){this.formDirective?.removeFormArray(this)}get control(){return this.formDirective.getFormArray(this)}get formDirective(){return this._parent?this._parent.formDirective:null}get path(){return Jb(null==this.name?this.name:this.name.toString(),this._parent)}static \u0275fac=function(i){return new(i||t)(O($i,13),O(Ci,10),O(Da,10))};static \u0275dir=de({type:t,selectors:[["","formArrayName",""]],inputs:{name:[0,"formArrayName","name"]},standalone:!1,features:[lt([mfe]),be]})}return t})();function lB(t){return!(t instanceof sc||t instanceof rv||t instanceof du)}const gfe={provide:Zr,useExisting:Nt(()=>mn)};let mn=(()=>{class t extends Zr{_ngModelWarningConfig;_added=!1;viewModel;control;name=null;set isDisabled(e){}model;update=new we;static _ngModelWarningSentOnce=!1;_ngModelWarningSent=!1;constructor(e,i,o,r,s){super(),this._ngModelWarningConfig=s,this._parent=e,this._setValidators(i),this._setAsyncValidators(o),this.valueAccessor=sk(0,r)}ngOnChanges(e){this._added||this._setUpControl(),rk(e,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective?.removeControl(this)}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}get path(){return Jb(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_setUpControl(){this.control=this.formDirective.addControl(this),this._added=!0}static \u0275fac=function(i){return new(i||t)(O($i,13),O(Ci,10),O(Da,10),O(Yo,10),O(ak,8))};static \u0275dir=de({type:t,selectors:[["","formControlName",""]],inputs:{name:[0,"formControlName","name"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},standalone:!1,features:[lt([gfe]),be,_i]})}return t})();const _fe={provide:$i,useExisting:Nt(()=>on)};let on=(()=>{class t extends rv{form=null;ngSubmit=new we;get control(){return this.form}static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275dir=de({type:t,selectors:[["","formGroup",""]],hostBindings:function(i,o){1&i&&F("submit",function(s){return o.onSubmit(s)})("reset",function(){return o.onReset()})},inputs:{form:[0,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[lt([_fe]),be]})}return t})();function hB(t){return"number"==typeof t?t:parseFloat(t)}let ac=(()=>{class t{_validator=Gb;_onChange;_enabled;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):Gb,this._onChange?.()}}validate(e){return this._validator(e)}registerOnValidatorChange(e){this._onChange=e}enabled(e){return null!=e}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,features:[_i]})}return t})();const Sfe={provide:Ci,useExisting:Nt(()=>sv),multi:!0};let sv=(()=>{class t extends ac{max;inputName="max";normalizeInput=e=>hB(e);createValidator=e=>x5(e);static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275dir=de({type:t,selectors:[["input","type","number","max","","formControlName",""],["input","type","number","max","","formControl",""],["input","type","number","max","","ngModel",""]],hostVars:1,hostBindings:function(i,o){2&i&&$e("max",o._enabled?o.max:null)},inputs:{max:"max"},standalone:!1,features:[lt([Sfe]),be]})}return t})();const kfe={provide:Ci,useExisting:Nt(()=>tp),multi:!0};let tp=(()=>{class t extends ac{min;inputName="min";normalizeInput=e=>hB(e);createValidator=e=>w5(e);static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275dir=de({type:t,selectors:[["input","type","number","min","","formControlName",""],["input","type","number","min","","formControl",""],["input","type","number","min","","ngModel",""]],hostVars:1,hostBindings:function(i,o){2&i&&$e("min",o._enabled?o.min:null)},inputs:{min:"min"},standalone:!1,features:[lt([kfe]),be]})}return t})();const Pfe={provide:Ci,useExisting:Nt(()=>wi),multi:!0};let wi=(()=>{class t extends ac{maxlength;inputName="maxlength";normalizeInput=e=>function uB(t){return"number"==typeof t?t:parseInt(t,10)}(e);createValidator=e=>T5(e);static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275dir=de({type:t,selectors:[["","maxlength","","formControlName",""],["","maxlength","","formControl",""],["","maxlength","","ngModel",""]],hostVars:1,hostBindings:function(i,o){2&i&&$e("maxlength",o._enabled?o.maxlength:null)},inputs:{maxlength:"maxlength"},standalone:!1,features:[lt([Pfe]),be]})}return t})(),_B=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({})}return t})();function bB(t){return!!t&&(void 0!==t.asyncValidators||void 0!==t.validators||void 0!==t.updateOn)}let vB=(()=>{class t{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 bB(i)?r=i:null!==i&&(r.validators=i.validator,r.asyncValidators=i.asyncValidator),new ru(o,r)}record(e,i=null){const o=this._reduceControls(e);return new X5(o,i)}control(e,i,o){let r={};return this.useNonNullable?(bB(i)?r=i:(r.validators=i,r.asyncValidators=o),new au(e,{...r,nonNullable:!0})):new au(e,i,o)}array(e,i,o){const r=e.map(s=>this._createControl(s));return new rB(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 au||e instanceof Qb?e:Array.isArray(e)?this.control(e[0],e.length>1?e[1]:null,e.length>2?e[2]:null):this.control(e)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),di=(()=>{class t extends vB{group(e,i=null){return super.group(e,i)}control(e,i,o){return super.control(e,i,o)}array(e,i,o){return super.array(e,i,o)}static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Ofe=(()=>{class t{static withConfig(e){return{ngModule:t,providers:[{provide:oc,useValue:e.callSetDisabledState??Qf}]}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({imports:[_B]})}return t})(),Afe=(()=>{class t{static withConfig(e){return{ngModule:t,providers:[{provide:ak,useValue:e.warnOnNgModelWithFormControl??"always"},{provide:oc,useValue:e.callSetDisabledState??Qf}]}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({imports:[_B]})}return t})();function uu(t){return null!=t&&"false"!=`${t}`}class Ffe{_box;_destroyed=new me;_resizeSubject=new me;_resizeObserver;_elementObservables=new Map;constructor(n){this._box=n,typeof ResizeObserver<"u"&&(this._resizeObserver=new ResizeObserver(e=>this._resizeSubject.next(e)))}observe(n){return this._elementObservables.has(n)||this._elementObservables.set(n,new Ft(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(Tn(e=>e.some(i=>i.target===n)),NS({bufferSize:1,refCount:!0}),fn(this._destroyed))),this._elementObservables.get(n)}destroy(){this._destroyed.next(),this._destroyed.complete(),this._resizeSubject.complete(),this._elementObservables.clear()}}let yB=(()=>{class t{_cleanupErrorListener;_observers=new Map;_ngZone=D(_e);constructor(){}ngOnDestroy(){for(const[,e]of this._observers)e.destroy();this._observers.clear(),this._cleanupErrorListener?.()}observe(e,i){const o=i?.box||"content-box";return this._observers.has(o)||this._observers.set(o,new Ffe(o)),this._observers.get(o).observe(e)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Nfe=["notch"],Lfe=["matFormFieldNotchedOutline",""],Bfe=["*"],CB=["iconPrefixContainer"],wB=["textPrefixContainer"],xB=["iconSuffixContainer"],SB=["textSuffixContainer"],Vfe=["textField"],Hfe=["*",[["mat-label"]],[["","matPrefix",""],["","matIconPrefix",""]],[["","matTextPrefix",""]],[["","matTextSuffix",""]],[["","matSuffix",""],["","matIconSuffix",""]],[["mat-error"],["","matError",""]],[["mat-hint",3,"align","end"]],[["mat-hint","align","end"]]],jfe=["*","mat-label","[matPrefix], [matIconPrefix]","[matTextPrefix]","[matTextSuffix]","[matSuffix], [matIconSuffix]","mat-error, [matError]","mat-hint:not([align='end'])","mat-hint[align='end']"];function Ufe(t,n){1&t&&B(0,"span",21)}function zfe(t,n){if(1&t&&(h(0,"label",20),Pt(1,1),x(2,Ufe,1,0,"span",21),u()),2&t){const e=v(2);C("floating",e._shouldLabelFloat())("monitorResize",e._hasOutline())("id",e._labelId),$e("for",e._control.disableAutomaticLabeling?null:e._control.id),d(2),S(!e.hideRequiredMarker&&e._control.required?2:-1)}}function $fe(t,n){1&t&&x(0,zfe,3,5,"label",20),2&t&&S(v()._hasFloatingLabel()?0:-1)}function Wfe(t,n){1&t&&B(0,"div",7)}function Gfe(t,n){}function qfe(t,n){1&t&&it(0,Gfe,0,0,"ng-template",13),2&t&&(v(2),C("ngTemplateOutlet",Hn(1)))}function Kfe(t,n){if(1&t&&(h(0,"div",9),x(1,qfe,1,1,null,13),u()),2&t){const e=v();C("matFormFieldNotchedOutlineOpen",e._shouldLabelFloat()),d(),S(e._forceDisplayInfixLabel()?-1:1)}}function Yfe(t,n){1&t&&(h(0,"div",10,2),Pt(2,2),u())}function Xfe(t,n){1&t&&(h(0,"div",11,3),Pt(2,3),u())}function Zfe(t,n){}function Qfe(t,n){1&t&&it(0,Zfe,0,0,"ng-template",13),2&t&&(v(),C("ngTemplateOutlet",Hn(1)))}function Jfe(t,n){1&t&&(h(0,"div",14,4),Pt(2,4),u())}function epe(t,n){1&t&&(h(0,"div",15,5),Pt(2,5),u())}function tpe(t,n){1&t&&B(0,"div",16)}function npe(t,n){1&t&&(h(0,"div",18),Pt(1,6),u())}function ipe(t,n){if(1&t&&(h(0,"mat-hint",22),p(1),u()),2&t){const e=v(2);C("id",e._hintLabelId),d(),M(e.hintLabel)}}function ope(t,n){if(1&t&&(h(0,"div",19),x(1,ipe,2,2,"mat-hint",22),Pt(2,7),B(3,"div",23),Pt(4,8),u()),2&t){const e=v();d(),S(e.hintLabel?1:-1)}}let Os=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["mat-label"]]})}return t})();const kB=new Z("MatError");let Ma=(()=>{class t{id=D(ni).getId("mat-mdc-error-");constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["mat-error"],["","matError",""]],hostAttrs:[1,"mat-mdc-form-field-error","mat-mdc-form-field-bottom-align"],hostVars:1,hostBindings:function(i,o){2&i&&ur("id",o.id)},inputs:{id:"id"},features:[lt([{provide:kB,useExisting:t}])]})}return t})(),uk=(()=>{class t{align="start";id=D(ni).getId("mat-mdc-hint-");static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({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&&(ur("id",o.id),$e("align",null),Ie("mat-mdc-form-field-hint-end","end"===o.align))},inputs:{align:"align",id:"id"}})}return t})();const rpe=new Z("MatPrefix"),spe=new Z("MatSuffix"),DB=new Z("FloatingLabelParent");let MB=(()=>{class t{_elementRef=D(Re);get floating(){return this._floating}set floating(e){this._floating=e,this.monitorResize&&this._handleResize()}_floating=!1;get monitorResize(){return this._monitorResize}set monitorResize(e){this._monitorResize=e,this._monitorResize?this._subscribeToResize():this._resizeSubscription.unsubscribe()}_monitorResize=!1;_resizeObserver=D(yB);_ngZone=D(_e);_parent=D(DB);_resizeSubscription=new pt;constructor(){}ngOnDestroy(){this._resizeSubscription.unsubscribe()}getWidth(){return function ape(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 \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["label","matFormFieldFloatingLabel",""]],hostAttrs:[1,"mdc-floating-label","mat-mdc-floating-label"],hostVars:2,hostBindings:function(i,o){2&i&&Ie("mdc-floating-label--float-above",o.floating)},inputs:{floating:"floating",monitorResize:"monitorResize"}})}return t})();const TB="mdc-line-ripple--active",av="mdc-line-ripple--deactivating";let EB=(()=>{class t{_elementRef=D(Re);_cleanupTransitionEnd;constructor(){const e=D(_e),i=D(Qn);e.runOutsideAngular(()=>{this._cleanupTransitionEnd=i.listen(this._elementRef.nativeElement,"transitionend",this._handleTransitionEnd)})}activate(){const e=this._elementRef.nativeElement.classList;e.remove(av),e.add(TB)}deactivate(){this._elementRef.nativeElement.classList.add(av)}_handleTransitionEnd=e=>{const i=this._elementRef.nativeElement.classList,o=i.contains(av);"opacity"===e.propertyName&&o&&i.remove(TB,av)};ngOnDestroy(){this._cleanupTransitionEnd()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["div","matFormFieldLineRipple",""]],hostAttrs:[1,"mdc-line-ripple"]})}return t})(),PB=(()=>{class t{_elementRef=D(Re);_ngZone=D(_e);open=!1;_notch;ngAfterViewInit(){const e=this._elementRef.nativeElement,i=e.querySelector(".mdc-floating-label");i?(e.classList.add("mdc-notched-outline--upgraded"),"function"==typeof requestAnimationFrame&&(i.style.transitionDuration="0s",this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>i.style.transitionDuration="")}))):e.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)`:""}_setMaxWidth(e){this._notch.nativeElement.style.setProperty("--mat-form-field-notch-max-width",`calc(100% - ${e}px)`)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["div","matFormFieldNotchedOutline",""]],viewQuery:function(i,o){if(1&i&&ot(Nfe,5),2&i){let r;he(r=fe())&&(o._notch=r.first)}},hostAttrs:[1,"mdc-notched-outline"],hostVars:2,hostBindings:function(i,o){2&i&&Ie("mdc-notched-outline--notched",o.open)},inputs:{open:[0,"matFormFieldNotchedOutlineOpen","open"]},attrs:Lfe,ngContentSelectors:Bfe,decls:5,vars:0,consts:[["notch",""],[1,"mat-mdc-notch-piece","mdc-notched-outline__leading"],[1,"mat-mdc-notch-piece","mdc-notched-outline__notch"],[1,"mat-mdc-notch-piece","mdc-notched-outline__trailing"]],template:function(i,o){1&i&&(yi(),ca(0,"div",1),vs(1,"div",2,0),Pt(3),Ol(),ca(4,"div",3))},encapsulation:2,changeDetection:0})}return t})(),hk=(()=>{class t{value=null;stateChanges;id;placeholder;ngControl=null;focused=!1;empty=!1;shouldLabelFloat=!1;required=!1;disabled=!1;errorState=!1;controlType;autofilled;userAriaDescribedBy;disableAutomaticLabeling;describedByIds;static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t})}return t})();const fk=new Z("MatFormField"),lpe=new Z("MAT_FORM_FIELD_DEFAULT_OPTIONS");let hu,sn=(()=>{class t{_elementRef=D(Re);_changeDetectorRef=D(Jt);_platform=D(Yn);_idGenerator=D(ni);_ngZone=D(_e);_defaults=D(lpe,{optional:!0});_currentDirection;_textField;_iconPrefixContainer;_textPrefixContainer;_iconSuffixContainer;_textSuffixContainer;_floatingLabel;_notchedOutline;_lineRipple;_iconPrefixContainerSignal=l_("iconPrefixContainer");_textPrefixContainerSignal=l_("textPrefixContainer");_iconSuffixContainerSignal=l_("iconSuffixContainer");_textSuffixContainerSignal=l_("textSuffixContainer");_prefixSuffixContainers=Ii(()=>[this._iconPrefixContainerSignal(),this._textPrefixContainerSignal(),this._iconSuffixContainerSignal(),this._textSuffixContainerSignal()].map(e=>e?.nativeElement).filter(e=>void 0!==e));_formFieldControl;_prefixChildren;_suffixChildren;_errorChildren;_hintChildren;_labelChild=lee(Os);get hideRequiredMarker(){return this._hideRequiredMarker}set hideRequiredMarker(e){this._hideRequiredMarker=uu(e)}_hideRequiredMarker=!1;color="primary";get floatLabel(){return this._floatLabel||this._defaults?.floatLabel||"auto"}set floatLabel(e){e!==this._floatLabel&&(this._floatLabel=e,this._changeDetectorRef.markForCheck())}_floatLabel;get appearance(){return this._appearanceSignal()}set appearance(e){this._appearanceSignal.set(e||this._defaults?.appearance||"fill")}_appearanceSignal=yt("fill");get subscriptSizing(){return this._subscriptSizing||this._defaults?.subscriptSizing||"fixed"}set subscriptSizing(e){this._subscriptSizing=e||this._defaults?.subscriptSizing||"fixed"}_subscriptSizing=null;get hintLabel(){return this._hintLabel}set hintLabel(e){this._hintLabel=e,this._processHints()}_hintLabel="";_hasIconPrefix=!1;_hasTextPrefix=!1;_hasIconSuffix=!1;_hasTextSuffix=!1;_labelId=this._idGenerator.getId("mat-mdc-form-field-label-");_hintLabelId=this._idGenerator.getId("mat-mdc-hint-");_describedByIds;get _control(){return this._explicitFormFieldControl||this._formFieldControl}set _control(e){this._explicitFormFieldControl=e}_destroyed=new me;_isFocused=null;_explicitFormFieldControl;_previousControl=null;_previousControlValidatorFn=null;_stateChanges;_valueChanges;_describedByChanges;_outlineLabelOffsetResizeObserver=null;_animationsDisabled=ci();constructor(){const e=this._defaults,i=D(br);e&&(e.appearance&&(this.appearance=e.appearance),this._hideRequiredMarker=!!e?.hideRequiredMarker,e.color&&(this.color=e.color)),fm(()=>this._currentDirection=i.valueSignal()),this._syncOutlineLabelOffset()}ngAfterViewInit(){this._updateFocusState(),this._animationsDisabled||this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{this._elementRef.nativeElement.classList.add("mat-form-field-animations-enabled")},300)}),this._changeDetectorRef.detectChanges()}ngAfterContentInit(){this._assertFormFieldControl(),this._initializeSubscript(),this._initializePrefixAndSuffix()}ngAfterContentChecked(){this._assertFormFieldControl(),this._control!==this._previousControl&&(this._initializeControl(this._previousControl),this._control.ngControl&&this._control.ngControl.control&&(this._previousControlValidatorFn=this._control.ngControl.control.validator),this._previousControl=this._control),this._control.ngControl&&this._control.ngControl.control&&this._control.ngControl.control.validator!==this._previousControlValidatorFn&&this._changeDetectorRef.markForCheck()}ngOnDestroy(){this._outlineLabelOffsetResizeObserver?.disconnect(),this._stateChanges?.unsubscribe(),this._valueChanges?.unsubscribe(),this._describedByChanges?.unsubscribe(),this._destroyed.next(),this._destroyed.complete()}getLabelId=Ii(()=>this._hasFloatingLabel()?this._labelId:null);getConnectedOverlayOrigin(){return this._textField||this._elementRef}_animateAndLockLabel(){this._hasFloatingLabel()&&(this.floatLabel="always")}_initializeControl(e){const i=this._control,o="mat-mdc-form-field-type-";e&&this._elementRef.nativeElement.classList.remove(o+e.controlType),i.controlType&&this._elementRef.nativeElement.classList.add(o+i.controlType),this._stateChanges?.unsubscribe(),this._stateChanges=i.stateChanges.subscribe(()=>{this._updateFocusState(),this._changeDetectorRef.markForCheck()}),this._describedByChanges?.unsubscribe(),this._describedByChanges=i.stateChanges.pipe(si([void 0,void 0]),Se(()=>[i.errorState,i.userAriaDescribedBy]),function Rfe(){return Mn((t,n)=>{let e,i=!1;t.subscribe(dn(n,o=>{const r=e;e=o,i&&n.next([r,o]),i=!0}))})}(),Tn(([[r,s],[a,l]])=>r!==a||s!==l)).subscribe(()=>this._syncDescribedByIds()),this._valueChanges?.unsubscribe(),i.ngControl&&i.ngControl.valueChanges&&(this._valueChanges=i.ngControl.valueChanges.pipe(fn(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(),Cr(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(){const e=this._control.focused;e&&!this._isFocused?(this._isFocused=!0,this._lineRipple?.activate()):!e&&(this._isFocused||null===this._isFocused)&&(this._isFocused=!1,this._lineRipple?.deactivate()),this._elementRef.nativeElement.classList.toggle("mat-focused",e),this._textField?.nativeElement.classList.toggle("mdc-text-field--focused",e)}_syncOutlineLabelOffset(){!function cte(t,n){const e=n?.injector??D(He),i=e.get(al),o=e.get(u1),r=e.get(oa,null,{optional:!0});o.impl??=e.get(SE);let s=t;"function"==typeof s&&(s={mixedReadWrite:t});const a=e.get(dm,null,{optional:!0}),l=new lte(o.impl,[s.earlyRead,s.write,s.mixedReadWrite,s.read],a?.view,i,e,r?.snapshot(null));o.impl.register(l)}({earlyRead:()=>{if("outline"!==this._appearanceSignal())return this._outlineLabelOffsetResizeObserver?.disconnect(),null;if(globalThis.ResizeObserver){this._outlineLabelOffsetResizeObserver||=new globalThis.ResizeObserver(()=>{this._writeOutlinedLabelStyles(this._getOutlinedLabelOffset())});for(const e of this._prefixSuffixContainers())this._outlineLabelOffsetResizeObserver.observe(e,{box:"border-box"})}return this._getOutlinedLabelOffset()},write:e=>this._writeOutlinedLabelStyles(e())})}_shouldAlwaysFloat(){return"always"===this.floatLabel}_hasOutline(){return"outline"===this.appearance}_forceDisplayInfixLabel(){return!this._platform.isBrowser&&this._prefixChildren.length&&!this._shouldLabelFloat()}_hasFloatingLabel=Ii(()=>!!this._labelChild());_shouldLabelFloat(){return!!this._hasFloatingLabel()&&(this._control.shouldLabelFloat||this._shouldAlwaysFloat())}_shouldForward(e){const i=this._control?this._control.ngControl:null;return i&&i[e]}_getSubscriptMessageType(){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._getSubscriptMessageType()){const r=this._hintChildren?this._hintChildren.find(a=>"start"===a.align):null,s=this._hintChildren?this._hintChildren.find(a=>"end"===a.align):null;r?e.push(r.id):this._hintLabel&&e.push(this._hintLabelId),s&&e.push(s.id)}else this._errorChildren&&e.push(...this._errorChildren.map(r=>r.id));const i=this._control.describedByIds;let o;if(i){const r=this._describedByIds||e;o=e.concat(i.filter(s=>s&&!r.includes(s)))}else o=e;this._control.setDescribedByIds(o),this._describedByIds=e}}_getOutlinedLabelOffset(){if(!this._hasOutline()||!this._floatingLabel)return null;if(!this._iconPrefixContainer&&!this._textPrefixContainer)return["",null];if(!this._isAttachedToDom())return null;const e=this._iconPrefixContainer?.nativeElement,i=this._textPrefixContainer?.nativeElement,o=this._iconSuffixContainer?.nativeElement,r=this._textSuffixContainer?.nativeElement,s=e?.getBoundingClientRect().width??0,a=i?.getBoundingClientRect().width??0,l=o?.getBoundingClientRect().width??0,c=r?.getBoundingClientRect().width??0;return[`var(--mat-mdc-form-field-label-transform, translateY(-50%) translateX(calc(${"rtl"===this._currentDirection?"-1":"1"} * (${s+a}px + var(--mat-mdc-form-field-label-offset-x, 0px)))))`,s+a+l+c]}_writeOutlinedLabelStyles(e){if(null!==e){const[i,o]=e;this._floatingLabel&&(this._floatingLabel.element.style.transform=i),null!==o&&this._notchedOutline?._setMaxWidth(o)}}_isAttachedToDom(){const e=this._elementRef.nativeElement;if(e.getRootNode){const i=e.getRootNode();return i&&i!==e}return document.documentElement.contains(e)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["mat-form-field"]],contentQueries:function(i,o,r){if(1&i&&(A0(r,o._labelChild,Os,5),ys(r,hk,5)(r,rpe,5)(r,spe,5)(r,kB,5)(r,uk,5)),2&i){let s;F0(),he(s=fe())&&(o._formFieldControl=s.first),he(s=fe())&&(o._prefixChildren=s),he(s=fe())&&(o._suffixChildren=s),he(s=fe())&&(o._errorChildren=s),he(s=fe())&&(o._hintChildren=s)}},viewQuery:function(i,o){if(1&i&&(R0(o._iconPrefixContainerSignal,CB,5)(o._textPrefixContainerSignal,wB,5)(o._iconSuffixContainerSignal,xB,5)(o._textSuffixContainerSignal,SB,5),ot(Vfe,5)(CB,5)(wB,5)(xB,5)(SB,5)(MB,5)(PB,5)(EB,5)),2&i){let r;F0(4),he(r=fe())&&(o._textField=r.first),he(r=fe())&&(o._iconPrefixContainer=r.first),he(r=fe())&&(o._textPrefixContainer=r.first),he(r=fe())&&(o._iconSuffixContainer=r.first),he(r=fe())&&(o._textSuffixContainer=r.first),he(r=fe())&&(o._floatingLabel=r.first),he(r=fe())&&(o._notchedOutline=r.first),he(r=fe())&&(o._lineRipple=r.first)}},hostAttrs:[1,"mat-mdc-form-field"],hostVars:38,hostBindings:function(i,o){2&i&&Ie("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-appearance-fill","fill"==o.appearance)("mat-form-field-appearance-outline","outline"==o.appearance)("mat-form-field-hide-placeholder",o._hasFloatingLabel()&&!o._shouldLabelFloat())("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:[lt([{provide:fk,useExisting:t},{provide:DB,useExisting:t}])],ngContentSelectors:jfe,decls:18,vars:21,consts:[["labelTemplate",""],["textField",""],["iconPrefixContainer",""],["textPrefixContainer",""],["textSuffixContainer",""],["iconSuffixContainer",""],[1,"mat-mdc-text-field-wrapper","mdc-text-field",3,"click"],[1,"mat-mdc-form-field-focus-overlay"],[1,"mat-mdc-form-field-flex"],["matFormFieldNotchedOutline","",3,"matFormFieldNotchedOutlineOpen"],[1,"mat-mdc-form-field-icon-prefix"],[1,"mat-mdc-form-field-text-prefix"],[1,"mat-mdc-form-field-infix"],[3,"ngTemplateOutlet"],[1,"mat-mdc-form-field-text-suffix"],[1,"mat-mdc-form-field-icon-suffix"],["matFormFieldLineRipple",""],["aria-atomic","true","aria-live","polite",1,"mat-mdc-form-field-subscript-wrapper","mat-mdc-form-field-bottom-align"],[1,"mat-mdc-form-field-error-wrapper"],[1,"mat-mdc-form-field-hint-wrapper"],["matFormFieldFloatingLabel","",3,"floating","monitorResize","id"],["aria-hidden","true",1,"mat-mdc-form-field-required-marker","mdc-floating-label--required"],[3,"id"],[1,"mat-mdc-form-field-hint-spacer"]],template:function(i,o){if(1&i&&(yi(Hfe),it(0,$fe,1,1,"ng-template",null,0,Rl),h(2,"div",6,1),F("click",function(s){return o._control.onContainerClick(s)}),x(4,Wfe,1,0,"div",7),h(5,"div",8),x(6,Kfe,2,2,"div",9),x(7,Yfe,3,0,"div",10),x(8,Xfe,3,0,"div",11),h(9,"div",12),x(10,Qfe,1,1,null,13),Pt(11),u(),x(12,Jfe,3,0,"div",14),x(13,epe,3,0,"div",15),u(),x(14,tpe,1,0,"div",16),u(),h(15,"div",17),x(16,npe,2,0,"div",18)(17,ope,5,1,"div",19),u()),2&i){let r;d(2),Ie("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),d(2),S(o._hasOutline()||o._control.disabled?-1:4),d(2),S(o._hasOutline()?6:-1),d(),S(o._hasIconPrefix?7:-1),d(),S(o._hasTextPrefix?8:-1),d(2),S(!o._hasOutline()||o._forceDisplayInfixLabel()?10:-1),d(2),S(o._hasTextSuffix?12:-1),d(),S(o._hasIconSuffix?13:-1),d(),S(o._hasOutline()?-1:14),d(),Ie("mat-mdc-form-field-subscript-dynamic-size","dynamic"===o.subscriptSizing);const s=o._getSubscriptMessageType();d(),S("error"===(r=s)?16:"hint"===r?17:-1)}},dependencies:[MB,PB,Ld,EB,uk],styles:['.mdc-text-field{display:inline-flex;align-items:baseline;padding:0 16px;position:relative;box-sizing:border-box;overflow:hidden;will-change:opacity,transform,color;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.mdc-text-field__input{width:100%;min-width:0;border:none;border-radius:0;background:none;padding:0;-moz-appearance:none;-webkit-appearance:none;height:28px}.mdc-text-field__input::-webkit-calendar-picker-indicator,.mdc-text-field__input::-webkit-search-cancel-button{display:none}.mdc-text-field__input::-ms-clear{display:none}.mdc-text-field__input:focus{outline:none}.mdc-text-field__input:invalid{box-shadow:none}.mdc-text-field__input::placeholder{opacity:0}.mdc-text-field__input::-moz-placeholder{opacity:0}.mdc-text-field__input::-webkit-input-placeholder{opacity:0}.mdc-text-field__input:-ms-input-placeholder{opacity:0}.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mdc-text-field--focused .mdc-text-field__input::placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{opacity:1}.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--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::-moz-placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::-webkit-input-placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive:-ms-input-placeholder{opacity:0}.mdc-text-field--outlined .mdc-text-field__input,.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{height:100%}.mdc-text-field--outlined .mdc-text-field__input{display:flex;border:none !important;background-color:rgba(0,0,0,0)}.mdc-text-field--disabled .mdc-text-field__input{pointer-events:auto}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mat-form-field-filled-input-text-color, var(--mat-sys-on-surface));caret-color:var(--mat-form-field-filled-caret-color, var(--mat-sys-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mat-form-field-filled-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-filled-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-filled-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-filled-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mat-form-field-outlined-input-text-color, var(--mat-sys-on-surface));caret-color:var(--mat-form-field-outlined-caret-color, var(--mat-sys-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mat-form-field-outlined-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-outlined-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-outlined-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-outlined-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mat-form-field-filled-error-caret-color, var(--mat-sys-error))}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mat-form-field-outlined-error-caret-color, var(--mat-sys-error))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-text-field__input{color:var(--mat-form-field-filled-disabled-input-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--mat-form-field-outlined-disabled-input-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}@media(forced-colors: active){.mdc-text-field--disabled .mdc-text-field__input{background-color:Window}}.mdc-text-field--filled{height:56px;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:var(--mat-form-field-filled-container-shape, var(--mat-sys-corner-extra-small));border-top-right-radius:var(--mat-form-field-filled-container-shape, var(--mat-sys-corner-extra-small))}.mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:var(--mat-form-field-filled-container-color, var(--mat-sys-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled{background-color:var(--mat-form-field-filled-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 4%, transparent))}.mdc-text-field--outlined{height:56px;overflow:visible;padding-right:max(16px,var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small)));padding-left:max(16px,var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small)) + 4px)}[dir=rtl] .mdc-text-field--outlined{padding-right:max(16px,var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small)) + 4px);padding-left:max(16px,var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small)))}.mdc-floating-label{position:absolute;left:0;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{right:0;left:auto;transform-origin:right top;text-align:right}.mdc-text-field .mdc-floating-label{top:50%;transform:translateY(-50%);pointer-events:none}.mdc-notched-outline .mdc-floating-label{display:inline-block;position:relative;max-width:100%}.mdc-text-field--outlined .mdc-floating-label{left:4px;right:auto}[dir=rtl] .mdc-text-field--outlined .mdc-floating-label{left:auto;right:4px}.mdc-text-field--filled .mdc-floating-label{left:16px;right:auto}[dir=rtl] .mdc-text-field--filled .mdc-floating-label{left:auto;right:16px}.mdc-text-field--disabled .mdc-floating-label{cursor:default}@media(forced-colors: active){.mdc-text-field--disabled .mdc-floating-label{z-index:1}}.mdc-text-field--filled.mdc-text-field--no-label .mdc-floating-label{display:none}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mat-form-field-filled-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mat-form-field-filled-focus-label-text-color, var(--mat-sys-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mat-form-field-filled-hover-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label{color:var(--mat-form-field-filled-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mat-form-field-filled-error-label-text-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mat-form-field-filled-error-focus-label-text-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mat-form-field-filled-error-hover-label-text-color, var(--mat-sys-on-error-container))}.mdc-text-field--filled .mdc-floating-label{font-family:var(--mat-form-field-filled-label-text-font, var(--mat-sys-body-large-font));font-size:var(--mat-form-field-filled-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-form-field-filled-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mat-form-field-filled-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mat-form-field-outlined-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mat-form-field-outlined-focus-label-text-color, var(--mat-sys-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mat-form-field-outlined-hover-label-text-color, var(--mat-sys-on-surface))}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label{color:var(--mat-form-field-outlined-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mat-form-field-outlined-error-label-text-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mat-form-field-outlined-error-focus-label-text-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mat-form-field-outlined-error-hover-label-text-color, var(--mat-sys-on-error-container))}.mdc-text-field--outlined .mdc-floating-label{font-family:var(--mat-form-field-outlined-label-text-font, var(--mat-sys-body-large-font));font-size:var(--mat-form-field-outlined-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-form-field-outlined-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mat-form-field-outlined-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-floating-label--float-above{cursor:auto;transform:translateY(-106%) scale(0.75)}.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) scale(1);font-size:.75rem}.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-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-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:1px;margin-right:0;content:"*"}[dir=rtl] .mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::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{text-align:right}.mdc-text-field--outlined .mdc-notched-outline{z-index:1}.mat-mdc-notch-piece{box-sizing:border-box;height:100%;pointer-events:none;border:none;border-top:1px solid;border-bottom:1px solid}.mdc-text-field--focused .mat-mdc-notch-piece{border-width:2px}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mat-mdc-notch-piece{border-color:var(--mat-form-field-outlined-outline-color, var(--mat-sys-outline));border-width:var(--mat-form-field-outlined-outline-width, 1px)}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mat-mdc-notch-piece{border-color:var(--mat-form-field-outlined-hover-outline-color, var(--mat-sys-on-surface))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mat-form-field-outlined-focus-outline-color, var(--mat-sys-primary))}.mdc-text-field--outlined.mdc-text-field--disabled .mat-mdc-notch-piece{border-color:var(--mat-form-field-outlined-disabled-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--mat-form-field-outlined-error-outline-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-notched-outline .mat-mdc-notch-piece{border-color:var(--mat-form-field-outlined-error-hover-outline-color, var(--mat-sys-on-error-container))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mat-form-field-outlined-error-focus-outline-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mat-mdc-notch-piece{border-width:var(--mat-form-field-outlined-focus-outline-width, 2px)}.mdc-notched-outline__leading{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small));border-bottom-left-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small))}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px,var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small)))}[dir=rtl] .mdc-notched-outline__leading{border-left:none;border-right:1px solid;border-bottom-left-radius:0;border-top-left-radius:0;border-top-right-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small));border-bottom-right-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small))}.mdc-notched-outline__trailing{flex-grow:1;border-left:none;border-right:1px solid;border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small));border-bottom-right-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small))}[dir=rtl] .mdc-notched-outline__trailing{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small));border-bottom-left-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small))}.mdc-notched-outline__notch{flex:0 0 auto;width:auto}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:min(var(--mat-form-field-notch-max-width, 100%),calc(100% - max(12px, var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small))) * 2))}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{max-width:min(100%,calc(100% - max(12px, var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small))) * 2))}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:1px}.mdc-text-field--focused.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:2px}.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{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;border-bottom-width:var(--mat-form-field-filled-active-indicator-height, 1px)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mat-form-field-filled-active-indicator-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mat-form-field-filled-hover-active-indicator-color, var(--mat-sys-on-surface))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-line-ripple::before{border-bottom-color:var(--mat-form-field-filled-disabled-active-indicator-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-line-ripple::before{border-bottom-color:var(--mat-form-field-filled-error-active-indicator-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mat-form-field-filled-error-hover-active-indicator-color, var(--mat-sys-on-error-container))}.mdc-line-ripple::after{transform:scaleX(0);opacity:0;z-index:2}.mdc-text-field--filled .mdc-line-ripple::after{border-bottom-width:var(--mat-form-field-filled-focus-active-indicator-height, 2px)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mat-form-field-filled-focus-active-indicator-color, var(--mat-sys-primary))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mat-form-field-filled-error-focus-active-indicator-color, var(--mat-sys-error))}.mdc-line-ripple--active::after{transform:scaleX(1);opacity:1}.mdc-line-ripple--deactivating::after{opacity:0}.mdc-text-field--disabled{pointer-events:none}.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;will-change:auto}.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;will-change: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, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.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-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:1px solid rgba(0,0,0,0)}[dir=rtl] .mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:none;border-right:1px solid rgba(0,0,0,0)}.mat-mdc-form-field-infix{min-height:var(--mat-form-field-container-height, 56px);padding-top:var(--mat-form-field-filled-with-label-container-padding-top, 24px);padding-bottom:var(--mat-form-field-filled-with-label-container-padding-bottom, 8px)}.mdc-text-field--outlined .mat-mdc-form-field-infix,.mdc-text-field--no-label .mat-mdc-form-field-infix{padding-top:var(--mat-form-field-container-vertical-padding, 16px);padding-bottom:var(--mat-form-field-container-vertical-padding, 16px)}.mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-floating-label{top:calc(var(--mat-form-field-container-height, 56px)/2)}.mdc-text-field--filled .mat-mdc-floating-label{display:var(--mat-form-field-filled-label-display, block)}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{--mat-mdc-form-field-label-transform: translateY(calc(calc(6.75px + var(--mat-form-field-container-height, 56px) / 2) * -1)) scale(var(--mat-mdc-form-field-floating-label-scale, 0.75));transform:var(--mat-mdc-form-field-label-transform)}@keyframes _mat-form-field-subscript-animation{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.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;opacity:1;transform:translateY(0);animation:_mat-form-field-subscript-animation 0ms cubic-bezier(0.55, 0, 0.55, 0.2)}.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;color:var(--mat-form-field-error-text-color, var(--mat-sys-error))}.mat-mdc-form-field-subscript-wrapper,.mat-mdc-form-field-bottom-align::before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-subscript-text-font, var(--mat-sys-body-small-font));line-height:var(--mat-form-field-subscript-text-line-height, var(--mat-sys-body-small-line-height));font-size:var(--mat-form-field-subscript-text-size, var(--mat-sys-body-small-size));letter-spacing:var(--mat-form-field-subscript-text-tracking, var(--mat-sys-body-small-tracking));font-weight:var(--mat-form-field-subscript-text-weight, var(--mat-sys-body-small-weight))}.mat-mdc-form-field-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;opacity:0;pointer-events:none;background-color:var(--mat-form-field-state-layer-color, var(--mat-sys-on-surface))}.mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-form-field.mat-focused .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-focus-state-layer-opacity, 0)}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}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option{color:var(--mat-form-field-select-option-text-color, var(--mat-sys-neutral10))}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option:disabled{color:var(--mat-form-field-select-disabled-option-text-color, color-mix(in srgb, var(--mat-sys-neutral10) 38%, transparent))}.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;color:var(--mat-form-field-enabled-select-arrow-color, var(--mat-sys-on-surface-variant))}[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-focused .mat-mdc-form-field-infix::after{color:var(--mat-form-field-focus-select-arrow-color, var(--mat-sys-primary))}.mat-mdc-form-field-type-mat-native-select.mat-form-field-disabled .mat-mdc-form-field-infix::after{color:var(--mat-form-field-disabled-select-arrow-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.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}@media(forced-colors: active){.mat-form-field-appearance-fill .mat-mdc-text-field-wrapper{outline:solid 1px}}@media(forced-colors: active){.mat-form-field-appearance-fill.mat-form-field-disabled .mat-mdc-text-field-wrapper{outline-color:GrayText}}@media(forced-colors: active){.mat-form-field-appearance-fill.mat-focused .mat-mdc-text-field-wrapper{outline:dashed 3px}}@media(forced-colors: 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, var(--mat-sys-body-large-font));line-height:var(--mat-form-field-container-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mat-form-field-container-text-size, var(--mat-sys-body-large-size));letter-spacing:var(--mat-form-field-container-text-tracking, var(--mat-sys-body-large-tracking));font-weight:var(--mat-form-field-container-text-weight, var(--mat-sys-body-large-weight))}.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)}[dir=rtl] .mat-mdc-form-field{text-align:right}.mat-mdc-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-mdc-text-field-wrapper{width:100%;z-index:0}.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>.mat-icon,.mat-mdc-form-field-icon-suffix>.mat-icon{padding:0 12px;box-sizing:content-box}.mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-leading-icon-color, var(--mat-sys-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-disabled-leading-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-trailing-icon-color, var(--mat-sys-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-disabled-trailing-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-invalid .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-trailing-icon-color, var(--mat-sys-error))}.mat-form-field-invalid:not(.mat-focused):not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-hover-trailing-icon-color, var(--mat-sys-on-error-container))}.mat-form-field-invalid.mat-focused .mat-mdc-text-field-wrapper .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-focus-trailing-icon-color, var(--mat-sys-error))}.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-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-infix:has(textarea[cols]){width:auto}.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.mat-form-field-animations-enabled .mdc-floating-label{transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1),color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field__input{transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field__input::placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field__input::-moz-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field__input::-webkit-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field__input:-ms-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--focused .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field--filled:not(.mdc-ripple-upgraded):focus .mdc-text-field__ripple::before{transition-duration:75ms}.mat-mdc-form-field.mat-form-field-animations-enabled .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)}.mat-mdc-form-field.mat-form-field-animations-enabled .mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field.mat-form-field-animations-enabled .mat-mdc-form-field-error-wrapper{animation-duration:300ms}.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)}\n'],encapsulation:2,changeDetection:0})}return t})();const AB=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"];function RB(){if(hu)return hu;if("object"!=typeof document||!document)return hu=new Set(AB),hu;let t=document.createElement("input");return hu=new Set(AB.filter(n=>(t.setAttribute("type",n),t.type===n))),hu}let upe=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["ng-component"]],hostAttrs:["cdk-text-field-style-loader",""],decls:0,vars:0,template:function(i,o){},styles:["textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}@keyframes cdk-text-field-autofill-start{/*!*/}@keyframes cdk-text-field-autofill-end{/*!*/}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}\n"],encapsulation:2,changeDetection:0})}return t})();const hpe={passive:!0};let fpe=(()=>{class t{_platform=D(Yn);_ngZone=D(_e);_renderer=D(Lo).createRenderer(null,null);_styleLoader=D(zo);_monitoredElements=new Map;constructor(){}monitor(e){if(!this._platform.isBrowser)return Oi;this._styleLoader.load(upe);const i=Ps(e),o=this._monitoredElements.get(i);if(o)return o.subject;const r=new me,s="cdk-text-field-autofilled",a=c=>{"cdk-text-field-autofill-start"!==c.animationName||i.classList.contains(s)?"cdk-text-field-autofill-end"===c.animationName&&i.classList.contains(s)&&(i.classList.remove(s),this._ngZone.run(()=>r.next({target:c.target,isAutofilled:!1}))):(i.classList.add(s),this._ngZone.run(()=>r.next({target:c.target,isAutofilled:!0})))},l=this._ngZone.runOutsideAngular(()=>(i.classList.add("cdk-text-field-autofill-monitored"),this._renderer.listen(i,"animationstart",a,hpe)));return this._monitoredElements.set(i,{subject:r,unlisten:l}),r}stopMonitoring(e){const i=Ps(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 \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),ppe=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({})}return t})();const mpe=new Z("MAT_INPUT_VALUE_ACCESSOR");let gpe=(()=>{class t{isErrorState(e,i){return!!(e&&e.invalid&&(e.dirty||i&&i.submitted))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})(),pk=(()=>{class t{isErrorState(e,i){return!!(e&&e.invalid&&(e.touched||i&&i.submitted))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();class FB{_defaultMatcher;ngControl;_parentFormGroup;_parentForm;_stateChanges;errorState=!1;matcher;constructor(n,e,i,o,r){this._defaultMatcher=n,this.ngControl=e,this._parentFormGroup=i,this._parentForm=o,this._stateChanges=r}updateErrorState(){const n=this.errorState,e=this._parentFormGroup||this._parentForm,i=this.matcher||this._defaultMatcher,o=this.ngControl?this.ngControl.control:null,r=i?.isErrorState(o,e)??!1;r!==n&&(this.errorState=r,this._stateChanges.next())}}let lv=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({imports:[r4,sn,ii]})}return t})();const _pe=["button","checkbox","file","hidden","image","radio","range","reset","submit"],bpe=new Z("MAT_INPUT_CONFIG");let In=(()=>{class t{_elementRef=D(Re);_platform=D(Yn);ngControl=D(Zr,{optional:!0,self:!0});_autofillMonitor=D(fpe);_ngZone=D(_e);_formField=D(fk,{optional:!0});_renderer=D(Qn);_uid=D(ni).getId("mat-input-");_previousNativeValue;_inputValueAccessor;_signalBasedValueAccessor;_previousPlaceholder=null;_errorStateTracker;_config=D(bpe,{optional:!0});_cleanupIosKeyup;_cleanupWebkitWheel;_isServer=!1;_isNativeSelect=!1;_isTextarea=!1;_isInFormField=!1;focused=!1;stateChanges=new me;controlType="mat-input";autofilled=!1;get disabled(){return this._disabled}set disabled(e){this._disabled=uu(e),this.focused&&(this.focused=!1,this.stateChanges.next())}_disabled=!1;get id(){return this._id}set id(e){this._id=e||this._uid}_id;placeholder;name;get required(){return this._required??this.ngControl?.control?.hasValidator(Ne.required)??!1}set required(e){this._required=uu(e)}_required;get type(){return this._type}set type(e){this._type=e||"text",this._validateType(),!this._isTextarea&&RB().has(this._type)&&(this._elementRef.nativeElement.type=this._type)}_type="text";get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(e){this._errorStateTracker.matcher=e}userAriaDescribedBy;get value(){return this._signalBasedValueAccessor?this._signalBasedValueAccessor.value():this._inputValueAccessor.value}set value(e){e!==this.value&&(this._signalBasedValueAccessor?this._signalBasedValueAccessor.value.set(e):this._inputValueAccessor.value=e,this.stateChanges.next())}get readonly(){return this._readonly}set readonly(e){this._readonly=uu(e)}_readonly=!1;disabledInteractive;get errorState(){return this._errorStateTracker.errorState}set errorState(e){this._errorStateTracker.errorState=e}_neverEmptyInputTypes=["date","datetime","datetime-local","month","time","week"].filter(e=>RB().has(e));constructor(){const e=D(su,{optional:!0}),i=D(on,{optional:!0}),o=D(pk),r=D(mpe,{optional:!0,self:!0}),s=this._elementRef.nativeElement,a=s.nodeName.toLowerCase();r?El(r.value)?this._signalBasedValueAccessor=r:this._inputValueAccessor=r:this._inputValueAccessor=s,this._previousNativeValue=this.value,this.id=this.id,this._platform.IOS&&this._ngZone.runOutsideAngular(()=>{this._cleanupIosKeyup=this._renderer.listen(s,"keyup",this._iOSKeyupListener)}),this._errorStateTracker=new FB(o,this.ngControl,i,e,this.stateChanges),this._isServer=!this._platform.isBrowser,this._isNativeSelect="select"===a,this._isTextarea="textarea"===a,this._isInFormField=!!this._formField,this.disabledInteractive=this._config?.disabledInteractive||!1,this._isNativeSelect&&(this.controlType=s.multiple?"mat-native-select-multiple":"mat-native-select"),this._signalBasedValueAccessor&&fm(()=>{this._signalBasedValueAccessor.value(),this.stateChanges.next()})}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._cleanupIosKeyup?.(),this._cleanupWebkitWheel?.()}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)}updateErrorState(){this._errorStateTracker.updateErrorState()}_focusChanged(e){if(e!==this.focused){if(!this._isNativeSelect&&e&&this.disabled&&this.disabledInteractive){const i=this._elementRef.nativeElement;"number"===i.type?(i.type="text",i.setSelectionRange(0,0),i.type="number"):i.setSelectionRange(0,0)}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(){_pe.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.disabled||!this.empty}get describedByIds(){return this._elementRef.nativeElement.getAttribute("aria-describedby")?.split(" ")||[]}setDescribedByIds(e){const i=this._elementRef.nativeElement;e.length?i.setAttribute("aria-describedby",e.join(" ")):i.removeAttribute("aria-describedby")}onContainerClick(){this.focused||this.focus()}_isInlineSelect(){const e=this._elementRef.nativeElement;return this._isNativeSelect&&(e.multiple||e.size>1)}_iOSKeyupListener=e=>{const i=e.target;!i.value&&0===i.selectionStart&&0===i.selectionEnd&&(i.setSelectionRange(1,1),i.setSelectionRange(0,0))};_getReadonlyAttribute(){return this._isNativeSelect?null:this.readonly||this.disabled&&this.disabledInteractive?"true":null}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["input","matInput",""],["textarea","matInput",""],["select","matNativeControl",""],["input","matNativeControl",""],["textarea","matNativeControl",""]],hostAttrs:[1,"mat-mdc-input-element"],hostVars:21,hostBindings:function(i,o){1&i&&F("focus",function(){return o._focusChanged(!0)})("blur",function(){return o._focusChanged(!1)})("input",function(){return o._onInput()}),2&i&&(ur("id",o.id)("disabled",o.disabled&&!o.disabledInteractive)("required",o.required),$e("name",o.name||null)("readonly",o._getReadonlyAttribute())("aria-disabled",o.disabled&&o.disabledInteractive?"true":null)("aria-invalid",o.empty&&o.required?null:o.errorState)("aria-required",o.required)("id",o.id),Ie("mat-input-server",o._isServer)("mat-mdc-form-field-textarea-control",o._isInFormField&&o._isTextarea)("mat-mdc-form-field-input-control",o._isInFormField)("mat-mdc-input-disabled-interactive",o.disabledInteractive)("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:[0,"aria-describedby","userAriaDescribedBy"],value:"value",readonly:"readonly",disabledInteractive:[2,"disabledInteractive","disabledInteractive",De]},exportAs:["matInput"],features:[lt([{provide:hk,useExisting:t}]),_i]})}return t})(),vpe=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({imports:[lv,lv,ppe,ii]})}return t})();class NB{_letterKeyStream=new me;_items=[];_selectedItemIndex=-1;_pressedLetters=[];_skipPredicateFn;_selectedItem=new me;selectedItem=this._selectedItem;constructor(n,e){const i="number"==typeof e?.debounceInterval?e.debounceInterval:200;e?.skipPredicate&&(this._skipPredicateFn=e.skipPredicate),this.setItems(n),this._setupKeyHandler(i)}destroy(){this._pressedLetters=[],this._letterKeyStream.complete(),this._selectedItem.complete()}setCurrentSelectedItemIndex(n){this._selectedItemIndex=n}setItems(n){this._items=n}handleKey(n){const e=n.keyCode;n.key&&1===n.key.length?this._letterKeyStream.next(n.key.toLocaleUpperCase()):(e>=65&&e<=90||e>=48&&e<=57)&&this._letterKeyStream.next(String.fromCharCode(e))}isTyping(){return this._pressedLetters.length>0}reset(){this._pressedLetters=[]}_setupKeyHandler(n){this._letterKeyStream.pipe(ai(e=>this._pressedLetters.push(e)),Mb(n),Tn(()=>this._pressedLetters.length>0),Se(()=>this._pressedLetters.join("").toLocaleUpperCase())).subscribe(e=>{for(let i=1;io.trim()===e)&&(i.push(e),t.setAttribute(n,i.join(" ")))}function mk(t,n,e){const i=cv(t,n);e=e.trim();const o=i.filter(r=>r!==e);o.length?t.setAttribute(n,o.join(" ")):t.removeAttribute(n)}function cv(t,n){return t.getAttribute(n)?.match(/\S+/g)??[]}const HB="cdk-describedby-message",dv="cdk-describedby-host";let gk=0,xpe=(()=>{class t{_platform=D(Yn);_document=D(et);_messageRegistry=new Map;_messagesContainer=null;_id=""+gk++;constructor(){D(zo).load(gS),this._id=D(Js)+"-"+gk++}describe(e,i,o){if(!this._canBeDescribed(e,i))return;const r=_k(i,o);"string"!=typeof i?(jB(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=_k(i,o);if(this._isElementDescribedByMessage(e,r)&&this._removeMessageReference(e,r),"string"==typeof i){const s=this._messageRegistry.get(r);s&&0===s.referenceCount&&this._deleteMessageElement(r)}0===this._messagesContainer?.childNodes.length&&(this._messagesContainer.remove(),this._messagesContainer=null)}ngOnDestroy(){const e=this._document.querySelectorAll(`[${dv}="${this._id}"]`);for(let i=0;i0!=o.indexOf(HB));e.setAttribute("aria-describedby",i.join(" "))}_addMessageReference(e,i){const o=this._messageRegistry.get(i);VB(e,"aria-describedby",o.messageElement.id),e.setAttribute(dv,this._id),o.referenceCount++}_removeMessageReference(e,i){const o=this._messageRegistry.get(i);o.referenceCount--,mk(e,"aria-describedby",o.messageElement.id),e.removeAttribute(dv)}_isElementDescribedByMessage(e,i){const o=cv(e,"aria-describedby"),r=this._messageRegistry.get(i),s=r&&r.messageElement.id;return!!s&&-1!=o.indexOf(s)}_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 \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function _k(t,n){return"string"==typeof t?`${n||""}/${t}`:t}function jB(t,n){t.id||(t.id=`${HB}-${n}-${gk++}`)}const kpe=["tooltip"],Mpe=new Z("mat-tooltip-scroll-strategy",{providedIn:"root",factory:()=>{const t=D(He);return()=>Bf(t,{scrollThrottle:20})}}),Tpe=new Z("mat-tooltip-default-options",{providedIn:"root",factory:()=>({showDelay:0,hideDelay:0,touchendHideDelay:1500})}),UB="tooltip-panel",Epe={passive:!0};let Kt=(()=>{class t{_elementRef=D(Re);_ngZone=D(_e);_platform=D(Yn);_ariaDescriber=D(xpe);_focusMonitor=D(ec);_dir=D(br);_injector=D(He);_viewContainerRef=D(Ei);_mediaMatcher=D(bS);_document=D(et);_renderer=D(Qn);_animationsDisabled=ci();_defaultOptions=D(Tpe,{optional:!0});_overlayRef=null;_tooltipInstance=null;_overlayPanelClass;_portal;_position="below";_positionAtOrigin=!1;_disabled=!1;_tooltipClass;_viewInitialized=!1;_pointerExitEventsInitialized=!1;_tooltipComponent=Rpe;_viewportMargin=8;_currentPosition;_cssClassPrefix="mat-mdc";_ariaDescriptionPending=!1;_dirSubscribed=!1;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=uu(e),this._detach(),this._overlayRef=null}get disabled(){return this._disabled}set disabled(e){const i=uu(e);this._disabled!==i&&(this._disabled=i,i?this.hide(0):this._setupPointerEnterEventsIfNeeded(),this._syncAriaDescription(this.message))}get showDelay(){return this._showDelay}set showDelay(e){this._showDelay=Of(e)}_showDelay;get hideDelay(){return this._hideDelay}set hideDelay(e){this._hideDelay=Of(e),this._tooltipInstance&&(this._tooltipInstance._mouseLeaveHideDelay=this._hideDelay)}_hideDelay;touchGestures="auto";get message(){return this._message}set message(e){const i=this._message;this._message=null!=e?String(e).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage()),this._syncAriaDescription(i)}_message="";get tooltipClass(){return this._tooltipClass}set tooltipClass(e){this._tooltipClass=e,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)}_eventCleanups=[];_touchstartTimeout=null;_destroyed=new me;_isDestroyed=!1;constructor(){const e=this._defaultOptions;e&&(this._showDelay=e.showDelay,this._hideDelay=e.hideDelay,e.position&&(this.position=e.position),e.positionAtOrigin&&(this.positionAtOrigin=e.positionAtOrigin),e.touchGestures&&(this.touchGestures=e.touchGestures),e.tooltipClass&&(this.tooltipClass=e.tooltipClass)),this._viewportMargin=8}ngAfterViewInit(){this._viewInitialized=!0,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe(fn(this._destroyed)).subscribe(e=>{e?"keyboard"===e&&this._ngZone.run(()=>this.show()):this._ngZone.run(()=>this.hide(0))})}ngOnDestroy(){const e=this._elementRef.nativeElement;this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),this._eventCleanups.forEach(i=>i()),this._eventCleanups.length=0,this._destroyed.next(),this._destroyed.complete(),this._isDestroyed=!0,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 Kd(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(fn(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 s=this._overlayRef.getConfig().positionStrategy;if((!this.positionAtOrigin||!e)&&s._origin instanceof Re)return this._overlayRef;this._detach()}const i=this._injector.get(mb).getAncestorScrollContainers(this._elementRef),o=`${this._cssClassPrefix}-${UB}`,r=xb(this._injector,this.positionAtOrigin&&e||this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(!1).withViewportMargin(this._viewportMargin).withScrollableContainers(i).withPopoverLocation("global");return r.positionChanges.pipe(fn(this._destroyed)).subscribe(s=>{this._updateCurrentPositionClass(s.connectionPair),this._tooltipInstance&&s.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run(()=>this.hide(0))}),this._overlayRef=Xd(this._injector,{direction:this._dir,positionStrategy:r,panelClass:this._overlayPanelClass?[...this._overlayPanelClass,o]:o,scrollStrategy:this._injector.get(Mpe)(),disableAnimations:this._animationsDisabled,eventPredicate:this._overlayEventPredicate}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe(fn(this._destroyed)).subscribe(()=>this._detach()),this._overlayRef.outsidePointerEvents().pipe(fn(this._destroyed)).subscribe(()=>this._tooltipInstance?._handleBodyInteraction()),this._overlayRef.keydownEvents().pipe(fn(this._destroyed)).subscribe(s=>{s.preventDefault(),s.stopPropagation(),this._ngZone.run(()=>this.hide(0))}),this._defaultOptions?.disableTooltipInteractivity&&this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`),this._dirSubscribed||(this._dirSubscribed=!0,this._dir.change.pipe(fn(this._destroyed)).subscribe(()=>{this._overlayRef&&this._updatePosition(this._overlayRef)})),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){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}_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:s}=this._invertPosition(o.originX,o.originY);return{main:o,fallback:{originX:r,originY:s}}}_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:s}=this._invertPosition(o.overlayX,o.overlayY);return{main:o,fallback:{overlayX:r,overlayY:s}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),Vi(()=>{this._tooltipInstance&&this._overlayRef.updatePosition()},{injector:this._injector}))}_setTooltipClass(e){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=e instanceof Set?Array.from(e):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 s;if(s="center"===i?this._dir&&"rtl"===this._dir.value?"end"===o?"left":"right":"start"===o?"left":"right":"bottom"===i&&"top"===r?"above":"below",s!==this._currentPosition){const a=this._overlayRef;if(a){const l=`${this._cssClassPrefix}-${UB}-`;a.removePanelClass(l+this._currentPosition),a.addPanelClass(l+s)}this._currentPosition=s}}_setupPointerEnterEventsIfNeeded(){this._disabled||!this.message||!this._viewInitialized||this._eventCleanups.length||(this._isTouchPlatform()?"off"!==this.touchGestures&&(this._disableNativeGesturesIfNecessary(),this._addListener("touchstart",e=>{const i=e.targetTouches?.[0],o=i?{x:i.clientX,y:i.clientY}:void 0;this._setupPointerExitEventsIfNeeded(),this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this._touchstartTimeout=setTimeout(()=>{this._touchstartTimeout=null,this.show(void 0,o)},this._defaultOptions?.touchLongPressShowDelay??500)})):this._addListener("mouseenter",e=>{let i;this._setupPointerExitEventsIfNeeded(),void 0!==e.x&&void 0!==e.y&&(i=e),this.show(void 0,i)}))}_setupPointerExitEventsIfNeeded(){if(!this._pointerExitEventsInitialized)if(this._pointerExitEventsInitialized=!0,this._isTouchPlatform()){if("off"!==this.touchGestures){this._disableNativeGesturesIfNecessary();const e=()=>{this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this.hide(this._defaultOptions?.touchendHideDelay)};this._addListener("touchend",e),this._addListener("touchcancel",e)}}else this._addListener("mouseleave",e=>{const i=e.relatedTarget;(!i||!this._overlayRef?.overlayElement.contains(i))&&this.hide()}),this._addListener("wheel",e=>{if(this._isTooltipVisible()){const i=this._document.elementFromPoint(e.clientX,e.clientY),o=this._elementRef.nativeElement;i!==o&&!o.contains(i)&&this.hide()}})}_addListener(e,i){this._eventCleanups.push(this._renderer.listen(this._elementRef.nativeElement,e,i,Epe))}_isTouchPlatform(){return!(!this._platform.IOS&&!this._platform.ANDROID)||!!this._platform.isBrowser&&!!this._defaultOptions?.detectHoverCapability&&this._mediaMatcher.matchMedia("(any-hover: none)").matches}_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"}}_syncAriaDescription(e){this._ariaDescriptionPending||(this._ariaDescriptionPending=!0,this._ariaDescriber.removeDescription(this._elementRef.nativeElement,e,"tooltip"),this._isDestroyed||Vi({write:()=>{this._ariaDescriptionPending=!1,this.message&&!this.disabled&&this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip")}},{injector:this._injector}))}_overlayEventPredicate=e=>"keydown"!==e.type||this._isTooltipVisible()&&27===e.keyCode&&!yr(e);static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-mdc-tooltip-trigger"],hostVars:2,hostBindings:function(i,o){2&i&&Ie("mat-mdc-tooltip-disabled",o.disabled)},inputs:{position:[0,"matTooltipPosition","position"],positionAtOrigin:[0,"matTooltipPositionAtOrigin","positionAtOrigin"],disabled:[0,"matTooltipDisabled","disabled"],showDelay:[0,"matTooltipShowDelay","showDelay"],hideDelay:[0,"matTooltipHideDelay","hideDelay"],touchGestures:[0,"matTooltipTouchGestures","touchGestures"],message:[0,"matTooltip","message"],tooltipClass:[0,"matTooltipClass","tooltipClass"]},exportAs:["matTooltip"]})}return t})(),Rpe=(()=>{class t{_changeDetectorRef=D(Jt);_elementRef=D(Re);_isMultiline=!1;message;tooltipClass;_showTimeoutId;_hideTimeoutId;_triggerElement;_mouseLeaveHideDelay;_animationsDisabled=ci();_tooltip;_closeOnInteraction=!1;_isVisible=!1;_onHide=new me;_showAnimation="mat-mdc-tooltip-show";_hideAnimation="mat-mdc-tooltip-hide";constructor(){}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(){this._isMultiline=this._isTooltipMultiline(),this._markForCheck()}_isTooltipMultiline(){const e=this._elementRef.nativeElement.getBoundingClientRect();return e.height>24&&e.width>=200}_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&&(this._isVisible=e,this._changeDetectorRef.markForCheck()),e&&!this._animationsDisabled&&"function"==typeof getComputedStyle){const s=getComputedStyle(i);("0s"===s.getPropertyValue("animation-duration")||"none"===s.getPropertyValue("animation-name"))&&(this._animationsDisabled=!0)}e&&this._onShow(),this._animationsDisabled&&(i.classList.add("_mat-animation-noopable"),this._finalizeAnimation(e))}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["mat-tooltip-component"]],viewQuery:function(i,o){if(1&i&&ot(kpe,7),2&i){let r;he(r=fe())&&(o._tooltip=r.first)}},hostAttrs:["aria-hidden","true"],hostBindings:function(i,o){1&i&&F("mouseleave",function(s){return o._handleMouseLeave(s)})},decls:4,vars:5,consts:[["tooltip",""],[1,"mdc-tooltip","mat-mdc-tooltip",3,"animationend"],[1,"mat-mdc-tooltip-surface","mdc-tooltip__surface"]],template:function(i,o){1&i&&(vs(0,"div",1,0),qg("animationend",function(s){return o._handleAnimationEnd(s)}),vs(2,"div",2),p(3),Ol()()),2&i&&(Ze(o.tooltipClass),Ie("mdc-tooltip--multiline",o._isMultiline),d(3),M(o.message))},styles:['.mat-mdc-tooltip{position:relative;transform:scale(0);display:inline-flex}.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-surface{word-break:normal;overflow-wrap:anywhere;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center;will-change:transform,opacity;background-color:var(--mat-tooltip-container-color, var(--mat-sys-inverse-surface));color:var(--mat-tooltip-supporting-text-color, var(--mat-sys-inverse-on-surface));border-radius:var(--mat-tooltip-container-shape, var(--mat-sys-corner-extra-small));font-family:var(--mat-tooltip-supporting-text-font, var(--mat-sys-body-small-font));font-size:var(--mat-tooltip-supporting-text-size, var(--mat-sys-body-small-size));font-weight:var(--mat-tooltip-supporting-text-weight, var(--mat-sys-body-small-weight));line-height:var(--mat-tooltip-supporting-text-line-height, var(--mat-sys-body-small-line-height));letter-spacing:var(--mat-tooltip-supporting-text-tracking, var(--mat-sys-body-small-tracking))}.mat-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}.mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:right}.mat-mdc-tooltip-panel{line-height:normal}.mat-mdc-tooltip-panel.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}\n'],encapsulation:2,changeDetection:0})}return t})();const Fpe=["button1"],Npe=["button2"],Lpe=["*"],Bpe=t=>({"for-dark-background":t});function Vpe(t,n){1&t&&B(0,"mat-spinner",3),2&t&&C("diameter",v().loadingSize)}function Hpe(t,n){1&t&&(h(0,"mat-icon"),p(1,"error_outline"),u())}var lc=function(t){return t[t.Normal=0]="Normal",t[t.Error=1]="Error",t[t.Loading=2]="Loading",t}(lc||{});let ui=(()=>{class t{constructor(){this.forDarkBackground=!1,this.disabled=!1,this.color="",this.loadingSize=20,this.action=new we,this.state=lc.Normal,this.buttonStates=lc}ngOnDestroy(){this.action.complete()}click(){this.disabled||(this.reset(),this.action.emit())}reset(e=!0){this.state=lc.Normal,e&&(this.disabled=!1)}focus(){this.button1&&this.button1.focus(),this.button2&&this.button2.focus()}showEnabled(){this.disabled=!1}showDisabled(){this.disabled=!0}showLoading(e=!0){this.state=lc.Loading,e&&(this.disabled=!0)}showError(e=!0){this.state=lc.Error,e&&(this.disabled=!1)}get isLoading(){return this.state===lc.Loading}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=re({type:t,selectors:[["app-button"]],viewQuery:function(i,o){if(1&i&&ot(Fpe,5)(Npe,5),2&i){let r;he(r=fe())&&(o.button1=r.first),he(r=fe())&&(o.button2=r.first)}},inputs:{forDarkBackground:"forDarkBackground",disabled:"disabled",color:"color",loadingSize:"loadingSize"},outputs:{action:"action"},standalone:!1,ngContentSelectors:Lpe,decls:6,vars:7,consts:[["button2",""],["mat-raised-button","",3,"click","disabled","color","ngClass"],[1,"d-flex"],[3,"diameter"]],template:function(i,o){1&i&&(yi(),h(0,"button",1,0),F("click",function(){return o.click()}),h(2,"div",2),x(3,Vpe,1,1,"mat-spinner",3),x(4,Hpe,2,0,"mat-icon"),Pt(5),u()()),2&i&&(C("disabled",o.disabled)("color",o.color)("ngClass",se(5,Bpe,o.forDarkBackground)),d(3),S(o.state===o.buttonStates.Loading?3:-1),d(),S(o.state===o.buttonStates.Error?4:-1))},dependencies:[$t,Pn,We,so],styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], button[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}button[_ngcontent-%COMP%]{color:#f8f9f9;border-radius:10px}button[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}mat-icon[_ngcontent-%COMP%], mat-spinner[_ngcontent-%COMP%]{display:inline-block;margin-right:15px}.for-dark-background[_ngcontent-%COMP%]:disabled{background-color:#000!important;color:#fff!important;opacity:.3}"]})}}return t})();const jpe=["button"],Upe=["firstInput"],zpe=t=>({"rounded-elevated-box":t}),zB=(t,n)=>({"white-form-field":t,"element-disabled":n}),$pe=(t,n)=>({"mt-2 app-button":t,"float-right":n}),Wpe=t=>({"element-disabled":t});function Gpe(t,n){if(1&t&&(h(0,"mat-form-field",6)(1,"div",7)(2,"label",8),p(3),b(4,"translate"),u(),B(5,"input",12),u(),h(6,"mat-error")(7,"span"),p(8),b(9,"translate"),u()()()),2&t){const e=v();C("ngClass",se(7,Wpe,e.working)),d(3),M(y(4,3,"settings.password.old-password")),d(5),M(y(9,5,"settings.password.errors.old-password-required"))}}let $B=(()=>{class t{constructor(e,i,o,r){this.authService=e,this.router=i,this.snackbarService=o,this.dialog=r,this.workingState=new we,this.forInitialConfig=!1}ngOnInit(){this.form=new nk({oldPassword:new lu("",this.forInitialConfig?null:Ne.required),newPassword:new lu("",Ne.compose([Ne.required,Ne.minLength(6),Ne.maxLength(64)])),newPasswordConfirmation:new lu("",[Ne.required,this.validatePasswords.bind(this)])}),this.formSubscription=this.form.controls.newPassword.valueChanges.subscribe(()=>this.form.controls.newPasswordConfirmation.updateValueAndValidity())}ngAfterViewInit(){this.forInitialConfig&&setTimeout(()=>this.firstInput.nativeElement.focus())}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe(),this.formSubscription.unsubscribe()}get working(){return!!this.button&&this.button.isLoading}changePassword(){this.form.valid&&!this.button.disabled&&(this.button.showLoading(),this.workingState.next(!0),this.subscription=this.forInitialConfig?this.authService.initialConfig(this.form.get("newPassword").value).subscribe(()=>{this.dialog.closeAll(),this.snackbarService.showDone("settings.password.initial-config.done"),this.workingState.next(!1)},e=>{this.button.showError(),e=Qe(e),this.snackbarService.showError(e,null,!0),this.workingState.next(!1)}):this.authService.changePassword(this.form.get("oldPassword").value,this.form.get("newPassword").value).subscribe(()=>{this.router.navigate(["nodes"]),this.snackbarService.showDone("settings.password.password-changed"),this.workingState.next(!1)},e=>{this.button.showError(),e=Qe(e),this.snackbarService.showError(e),this.workingState.next(!1)}))}validatePasswords(){return this.form&&this.form.get("newPassword").value!==this.form.get("newPasswordConfirmation").value?{invalid:!0}:null}static{this.\u0275fac=function(i){return new(i||t)(O(Yf),O(vt),O(ct),O(Ot))}}static{this.\u0275cmp=re({type:t,selectors:[["app-password"]],viewQuery:function(i,o){if(1&i&&ot(jpe,5)(Upe,5),2&i){let r;he(r=fe())&&(o.button=r.first),he(r=fe())&&(o.firstInput=r.first)}},inputs:{forInitialConfig:"forInitialConfig"},outputs:{workingState:"workingState"},standalone:!1,decls:33,vars:40,consts:[["firstInput",""],["button",""],[3,"ngClass"],[1,"box-internal-container","overflow"],[1,"help-icon",3,"inline","matTooltip"],[3,"formGroup"],[1,"white-form-field",3,"ngClass"],[1,"field-container"],["for","remoteKey",1,"field-label"],["type","password","formControlName","newPassword","maxlength","64","matInput",""],["type","password","formControlName","newPasswordConfirmation","maxlength","64","matInput",""],["color","primary",3,"action","ngClass","disabled","forDarkBackground"],["type","password","formControlName","oldPassword","maxlength","64","matInput",""]],template:function(i,o){1&i&&(h(0,"div",2)(1,"div",3)(2,"div")(3,"mat-icon",4),b(4,"translate"),p(5," help "),u()(),h(6,"form",5),x(7,Gpe,10,9,"mat-form-field",6),h(8,"mat-form-field",2)(9,"div",7)(10,"label",8),p(11),b(12,"translate"),u(),B(13,"input",9,0),u(),h(15,"mat-error")(16,"span"),p(17),b(18,"translate"),u()()(),h(19,"mat-form-field",2)(20,"div",7)(21,"label",8),p(22),b(23,"translate"),u(),B(24,"input",10),u(),h(25,"mat-error")(26,"span"),p(27),b(28,"translate"),u()()(),h(29,"app-button",11,1),F("action",function(){return o.changePassword()}),p(31),b(32,"translate"),u()()()()),2&i&&(C("ngClass",se(29,zpe,!o.forInitialConfig)),d(2),Ze((o.forInitialConfig?"":"white-")+"form-help-icon-container"),d(),C("inline",!0)("matTooltip",y(4,17,o.forInitialConfig?"settings.password.initial-config-help":"settings.password.help")),d(3),C("formGroup",o.form),d(),S(o.forInitialConfig?-1:7),d(),C("ngClass",_t(31,zB,!o.forInitialConfig,o.working)),d(3),M(y(12,19,o.forInitialConfig?"settings.password.initial-config.password":"settings.password.new-password")),d(6),M(y(18,21,"settings.password.errors.new-password-error")),d(2),C("ngClass",_t(34,zB,!o.forInitialConfig,o.working)),d(3),M(y(23,23,o.forInitialConfig?"settings.password.initial-config.repeat-password":"settings.password.repeat-password")),d(5),M(y(28,25,"settings.password.errors.passwords-not-match")),d(2),C("ngClass",_t(37,$pe,!o.forInitialConfig,o.forInitialConfig))("disabled",!o.form.valid)("forDarkBackground",!o.forInitialConfig),d(2),E(" ",y(32,27,o.forInitialConfig?"settings.password.initial-config.set-password":"settings.change-password")," "))},dependencies:[$t,xn,Gt,qt,wn,wi,on,mn,sn,Ma,In,We,Kt,ui,xe],styles:[".help-icon[_ngcontent-%COMP%]{display:inline}mat-form-field[_ngcontent-%COMP%]{margin-right:32px}app-button[_ngcontent-%COMP%]{float:right;margin-right:32px}"]})}}return t})();const qpe=["*"],WB=t=>({"content-margin":t});function Kpe(t,n){1&t&&(h(0,"button",2)(1,"mat-icon"),p(2,"close"),u()())}function Ype(t,n){1&t&&dr(0)}function Xpe(t,n){if(1&t&&(h(0,"mat-dialog-content",4),it(1,Ype,1,0,"ng-container",5),u()),2&t){const e=v(),i=Hn(8);C("ngClass",se(2,WB,e.includeVerticalMargins)),d(),C("ngTemplateOutlet",i)}}function Zpe(t,n){1&t&&dr(0)}function Qpe(t,n){if(1&t&&(h(0,"div",4),it(1,Zpe,1,0,"ng-container",5),u()),2&t){const e=v(),i=Hn(8);C("ngClass",se(2,WB,e.includeVerticalMargins)),d(),C("ngTemplateOutlet",i)}}function Jpe(t,n){1&t&&Pt(0)}let gn=(()=>{class t{set dialog(e){e.disableClose=!0,this.dialogInternal=e}constructor(e){this.matDialog=e,this.includeScrollableArea=!0,this.includeVerticalMargins=!0}onKeyUp(){this.closePopup()}closePopup(){this.disableDismiss||this.matDialog.openDialogs[this.matDialog.openDialogs.length-1].id===this.dialogInternal.id&&this.dialogInternal.close()}static{this.\u0275fac=function(i){return new(i||t)(O(Ot))}}static{this.\u0275cmp=re({type:t,selectors:[["app-dialog"]],hostBindings:function(i,o){1&i&&F("keyup.esc",function(){return o.onKeyUp()},XC)},inputs:{headline:"headline",disableDismiss:"disableDismiss",includeScrollableArea:"includeScrollableArea",includeVerticalMargins:"includeVerticalMargins",dialog:"dialog"},standalone:!1,ngContentSelectors:qpe,decls:9,vars:4,consts:[["contentTemplate",""],["mat-dialog-title","",1,"header"],["mat-dialog-close","","mat-icon-button","",1,"grey-button-background"],[1,"header-separator"],[3,"ngClass"],[4,"ngTemplateOutlet"]],template:function(i,o){1&i&&(yi(),h(0,"div",1)(1,"span"),p(2),u(),x(3,Kpe,3,0,"button",2),u(),B(4,"div",3),x(5,Xpe,2,4,"mat-dialog-content",4),x(6,Qpe,2,4,"div",4),it(7,Jpe,1,0,"ng-template",null,0,Rl)),2&i&&(d(2),M(o.headline),d(),S(o.disableDismiss?-1:3),d(2),S(o.includeScrollableArea?5:-1),d(),S(o.includeScrollableArea?-1:6))},dependencies:[$t,Ld,D4,MS,Jd,Wo,We],styles:['.cursor-pointer[_ngcontent-%COMP%], .header[_ngcontent-%COMP%] .mat-mdc-icon-button[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%], .header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media(max-width:767px),(min-width:992px)and (max-width:1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media(max-width:767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}[_nghost-%COMP%]{color:#202226}.header[_ngcontent-%COMP%]{margin:-24px -24px 0;color:#215f9e;padding:0 14px 0 24px;font-size:1rem;text-transform:uppercase;font-weight:700;display:flex;align-items:center}.header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{flex-grow:1}@media(max-width:767px){.header[_ngcontent-%COMP%]{padding:0 2px 0 24px}}.header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{line-height:1rem;margin:18px 0}.header[_ngcontent-%COMP%] .mat-mdc-icon-button[_ngcontent-%COMP%]{color:#a6b2b2;width:32px;height:32px;line-height:20px;margin-left:10px;padding:0}@media(max-width:767px){.header[_ngcontent-%COMP%] .mat-mdc-icon-button[_ngcontent-%COMP%]{width:46px;height:46px}}.header-separator[_ngcontent-%COMP%]{height:1px;background-color:#215f9e33;margin-left:-12px;margin-right:-12px}.content-margin[_ngcontent-%COMP%]{padding-top:18px;padding-bottom:24px!important}']})}}return t})(),eme=(()=>{class t{static openDialog(e){const i=new nn;return i.autoFocus=!1,i.width=rt.smallModalWidth,e.open(t,i)}constructor(e){this.dialogRef=e,this.disableDismiss=!1}static{this.\u0275fac=function(i){return new(i||t)(O(Bt))}}static{this.\u0275cmp=re({type:t,selectors:[["app-initial-setup"]],standalone:!1,decls:3,vars:6,consts:[[3,"headline","dialog","disableDismiss"],[3,"workingState","forInitialConfig"]],template:function(i,o){1&i&&(h(0,"app-dialog",0),b(1,"translate"),h(2,"app-password",1),F("workingState",function(s){return o.disableDismiss=s}),u()()),2&i&&(C("headline",y(1,4,"settings.password.initial-config.title"))("dialog",o.dialogRef)("disableDismiss",o.disableDismiss),d(2),C("forInitialConfig",!0))},dependencies:[$B,gn,xe],encapsulation:2})}}return t})();var bk=function qB(t){var n,e,i,P,A,o=I.prototype={constructor:I,toString:null,valueOf:null},r=new I(1),s=20,a=4,l=-7,c=21,f=-1e7,m=1e7,g=!1,_=1,w=0,k={prefix:"",groupSize:3,secondaryGroupSize:0,groupSeparator:",",decimalSeparator:".",fractionGroupSize:0,fractionGroupSeparator:"\xa0",suffix:""},T="0123456789abcdefghijklmnopqrstuvwxyz";function I(P,A){var L,$,H,G,J,V,N,q,z=this;if(!(z instanceof I))return new I(P,A);if(q=typeof P,null==A){if(W(P))return z.s=P.s,void(!P.c||P.e>m?z.c=z.e=null:P.e=10;J/=10,G++);return void(G>m?z.c=z.e=null:(z.e=G,z.c=[P]))}N=String(P)}else{if("string"==q){if(!tme.test(N=P))return i(z,N)}else{if("bigint"!=q)throw Error(yo+"Invalid argument: "+P);N=String(P)}z.s=45==N.charCodeAt(0)?(N=N.slice(1),-1):1}(G=N.indexOf("."))>-1&&(N=N.replace(".","")),(J=N.search(/e/i))>0?(G<0&&(G=J),G+=+N.slice(J+1),N=N.substring(0,J)):G<0&&(G=N.length)}else{if("string"!=q)throw Error(yo+"String expected: "+P);for(On(A,2,T.length,"Base"),z.s=45===(N=P).charCodeAt(0)?(N=N.slice(1),-1):1,L=T.slice(0,A),G=J=0,V=N.length;JG){G=V;continue}}else if(!H&&(N==N.toUpperCase()&&(N=N.toLowerCase())||N==N.toLowerCase()&&(N=N.toUpperCase()))){H=!0,J=-1,G=0;continue}return i(z,P,A)}(G=(N=e(N,A,10,z.s)).indexOf("."))>-1?N=N.replace(".",""):G=N.length}for(J=0;48===N.charCodeAt(J);J++);for(V=N.length;48===N.charCodeAt(--V););if(N=N.slice(J,++V))if(V-=J,(G=G-J-1)>m)z.c=z.e=null;else if(G=c)?hv(N,J):Ea(N,J,"0");else if(G=(P=ee(new I(P),A,L)).e,V=(N=Sr(P.c)).length,1==$||2==$&&(A<=G||G<=l)){for(;VJ),N=Ea(N,G,"0"),G+1>V){if(--A>0)for(N+=".";A--;N+="0");}else if((A+=G-V)>0)for(G+1==V&&(N+=".");A--;N+="0");return P.s<0&&H?"-"+N:N}function W(P){return P instanceof I||!!P&&!0===P._isBigNumber}function Y(P,A){for(var L,$,H=1,G=new I(P[0]);H=10;H/=10,$++);return(L=$+14*L-1)>m?P.c=P.e=null:L=10;V/=10,H++);if((G=A-H)<0)G+=14,N=Q[q=0],z=wr(N/ue[H-(J=A)-1]%10);else if((q=vk((G+1)/14))>=Q.length){if(!$)break e;for(;Q.length<=q;Q.push(0));N=z=0,H=1,J=(G%=14)-14+1}else{for(N=V=Q[q],H=1;V>=10;V/=10,H++);z=(J=(G%=14)-14+H)<0?0:wr(N/ue[H-J-1]%10)}if($=$||A<0||null!=Q[q+1]||(J<0?N:N%ue[H-J-1]),$=L<4?(z||$)&&(0==L||L==(P.s<0?3:2)):z>5||5==z&&(4==L||$||6==L&&(G>0?J>0?N/ue[H-J]:0:Q[q-1])%10&1||L==(P.s<0?8:7)),A<1||!Q[0])return Q.length=0,$?(Q[0]=ue[(14-(A-=P.e+1)%14)%14],P.e=-A||0):Q[0]=P.e=0,P;if(0==G?(Q.length=q,V=1,q--):(Q.length=q+1,V=ue[14-G],Q[q]=J>0?wr(N/ue[H-J]%ue[J])*V:0),$)for(;;){if(0==q){for(G=1,J=Q[0];J>=10;J/=10,G++);for(J=Q[0]+=V,V=1;J>=10;J/=10,V++);G!=V&&(P.e++,Q[0]==xr&&(Q[0]=1));break}if(Q[q]+=V,Q[q]!=xr)break;Q[q--]=0,V=1}for(G=Q.length;0===Q[--G];Q.pop());}P.e>m?P.c=P.e=null:P.e=c?hv(A,L):Ea(A,L,"0"),P.s<0?"-"+A:A)}return I.clone=qB,I.ROUND_UP=0,I.ROUND_DOWN=1,I.ROUND_CEIL=2,I.ROUND_FLOOR=3,I.ROUND_HALF_UP=4,I.ROUND_HALF_DOWN=5,I.ROUND_HALF_EVEN=6,I.ROUND_HALF_CEIL=7,I.ROUND_HALF_FLOOR=8,I.EUCLID=9,I.config=I.set=function(P){var A,L;if(null!=P){if("object"!=typeof P)throw Error(yo+"Object expected: "+P);if(P.hasOwnProperty(A="DECIMAL_PLACES")&&(On(L=P[A],0,xi,A),s=L),P.hasOwnProperty(A="ROUNDING_MODE")&&(On(L=P[A],0,8,A),a=L),P.hasOwnProperty(A="EXPONENTIAL_AT")&&((L=P[A])&&L.pop?(On(L[0],-xi,0,A),On(L[1],0,xi,A),l=L[0],c=L[1]):(On(L,-xi,xi,A),l=-(c=L<0?-L:L))),P.hasOwnProperty(A="RANGE"))if((L=P[A])&&L.pop)On(L[0],-xi,-1,A),On(L[1],1,xi,A),f=L[0],m=L[1];else{if(On(L,-xi,xi,A),!L)throw Error(yo+A+" cannot be zero: "+L);f=-(m=L<0?-L:L)}if(P.hasOwnProperty(A="CRYPTO")){if((L=P[A])!==!!L)throw Error(yo+A+" not true or false: "+L);if(L){if(!(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes)))throw g=!L,Error(yo+"crypto unavailable");g=L}else g=L}if(P.hasOwnProperty(A="MODULO_MODE")&&(On(L=P[A],0,9,A),_=L),P.hasOwnProperty(A="POW_PRECISION")&&(On(L=P[A],0,xi,A),w=L),P.hasOwnProperty(A="FORMAT")){if("object"!=typeof(L=P[A]))throw Error(yo+A+" not an object: "+L);k=L}if(P.hasOwnProperty(A="ALPHABET")){if("string"!=typeof(L=P[A])||/^.?$|[+\-.\s]|(.).*\1/.test(L))throw Error(yo+A+" invalid: "+L);T=L}}return{DECIMAL_PLACES:s,ROUNDING_MODE:a,EXPONENTIAL_AT:[l,c],RANGE:[f,m],CRYPTO:g,MODULO_MODE:_,POW_PRECISION:w,FORMAT:k,ALPHABET:T}},I.isBigNumber=function(P){if(!W(P))return!1;var A,L,$=P.c,H=P.e,G=P.s;if("[object Array]"!={}.toString.call($))return null===$&&null===H&&(null===G||1===G||-1===G);if(1!==G&&-1!==G||H<-xi||H>xi||H!==wr(H))return!1;if(0===$[0])return 0===H&&1===$.length;if((A=(H+1)%14)<1&&(A+=14),String($[0]).length!==A)return!1;for(A=0;A<$.length;A++)if((L=$[A])<0||L>=xr||L!==wr(L))return!1;return 0!==L},I.maximum=I.max=function(){return Y(arguments,-1)},I.minimum=I.min=function(){return Y(arguments,1)},I.random=(P=9007199254740992,A=Math.random()*P&2097151?function(){return wr(Math.random()*P)}:function(){return 8388608*(1073741824*Math.random()|0)+(8388608*Math.random()|0)},function(L){var $,H,G,J,V,N=0,q=[],z=new I(r);if(null==L?L=s:On(L,0,xi),J=vk(L/14),g)if(crypto.getRandomValues){for($=crypto.getRandomValues(new Uint32Array(J*=2));N>>11))>=9e15?(H=crypto.getRandomValues(new Uint32Array(2)),$[N]=H[0],$[N+1]=H[1]):(q.push(V%1e14),N+=2);N=J/2}else{if(!crypto.randomBytes)throw g=!1,Error(yo+"crypto unavailable");for($=crypto.randomBytes(J*=7);N=9e15?crypto.randomBytes(7).copy($,N):(q.push(V%1e14),N+=7);N=J/7}if(!g)for(;N=10;V/=10,N++);N<14&&(G-=14-N)}return z.e=G,z.c=q,z}),I.sum=function(){for(var P=1,A=arguments,L=new I(A[0]);PH-1&&(null==V[J+1]&&(V[J+1]=0),V[J+1]+=V[J]/H|0,V[J]%=H)}return V.reverse()}return function(L,$,H,G,J){var V,N,q,z,Q,ue,Ce,Ee,ut=L.indexOf("."),Oe=s,Xe=a;for(ut>=0&&(z=w,w=0,L=L.replace(".",""),ue=(Ee=new I($)).pow(L.length-ut),w=z,Ee.c=A(Ea(Sr(ue.c),ue.e,"0"),10,H,P),Ee.e=Ee.c.length),q=z=(Ce=A(L,$,H,J?(V=T,P):(V=P,T))).length;0==Ce[--z];Ce.pop());if(!Ce[0])return V.charAt(0);if(ut<0?--q:(ue.c=Ce,ue.e=q,ue.s=G,Ce=(ue=n(ue,Ee,Oe,Xe,H)).c,Q=ue.r,q=ue.e),ut=Ce[N=q+Oe+1],z=H/2,Q=Q||N<0||null!=Ce[N+1],Q=Xe<4?(null!=ut||Q)&&(0==Xe||Xe==(ue.s<0?3:2)):ut>z||ut==z&&(4==Xe||Q||6==Xe&&1&Ce[N-1]||Xe==(ue.s<0?8:7)),N<1||!Ce[0])L=Q?Ea(V.charAt(1),-Oe,V.charAt(0)):V.charAt(0);else{if(Ce.length=N,Q)for(--H;++Ce[--N]>H;)Ce[N]=0,N||(++q,Ce=[1].concat(Ce));for(z=Ce.length;!Ce[--z];);for(ut=0,L="";ut<=z;L+=V.charAt(Ce[ut++]));L=Ea(L,q,V.charAt(0))}return L}}(),n=function(){function P($,H,G){var J,V,N,q,z=0,Q=$.length,ue=H%Ta,Ce=H/Ta|0;for($=$.slice();Q--;)z=((V=ue*(N=$[Q]%Ta)+(J=Ce*N+(q=$[Q]/Ta|0)*ue)%Ta*Ta+z)/G|0)+(J/Ta|0)+Ce*q,$[Q]=V%G;return z&&($=[z].concat($)),$}function A($,H,G,J){var V,N;if(G!=J)N=G>J?1:-1;else for(V=N=0;VH[V]?1:-1;break}return N}function L($,H,G,J){for(var V=0;G--;)$[G]-=V,$[G]=(V=$[G]1;$.splice(0,1));}return function($,H,G,J,V){var N,q,z,Q,ue,Ce,Ee,ut,Oe,Xe,at,wt,Jo,Xi,ja,xo,Ep,er=$.s==H.s?1:-1,lo=$.c,Un=H.c;if(!(lo&&lo[0]&&Un&&Un[0]))return new I($.s&&H.s&&(lo?!Un||lo[0]!=Un[0]:Un)?lo&&0==lo[0]||!Un?0*er:er/0:NaN);for(Oe=(ut=new I(er)).c=[],er=G+(q=$.e-H.e)+1,V||(V=xr,q=Xo($.e/14)-Xo(H.e/14),er=er/14|0),z=0;Un[z]==(lo[z]||0);z++);if(Un[z]>(lo[z]||0)&&q--,er<0)Oe.push(1),Q=!0;else{for(Xi=lo.length,xo=Un.length,z=0,er+=2,(ue=wr(V/(Un[0]+1)))>1&&(Un=P(Un,ue,V),lo=P(lo,ue,V),xo=Un.length,Xi=lo.length),Jo=xo,at=(Xe=lo.slice(0,xo)).length;at=V/2&&ja++;do{if(ue=0,(N=A(Un,Xe,xo,at))<0){if(wt=Xe[0],xo!=at&&(wt=wt*V+(Xe[1]||0)),(ue=wr(wt/ja))>1)for(ue>=V&&(ue=V-1),Ee=(Ce=P(Un,ue,V)).length,at=Xe.length;1==A(Ce,Xe,Ee,at);)ue--,L(Ce,xo=10;er/=10,z++);ee(ut,G+(ut.e=z+14*q-1)+1,J,Q)}else ut.e=q,ut.r=+Q;return ut}}(),i=function(){var P=/^(-?)0([xbo])(?=\w[\w.]*$)/i,A=/^([^.]+)\.$/,L=/^\.([^.]+)$/,$=/^-?(Infinity|NaN)$/,H=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(G,J,V){var N,q=J.replace(H,"");if($.test(q))return G.s=isNaN(q)?null:q<0?-1:1,void(G.c=G.e=null);if(q=q.replace(P,function(z,Q,ue){return N="x"==(ue=ue.toLowerCase())?16:"b"==ue?2:8,V&&V!=N?z:Q}),V&&(N=V,q=q.replace(A,"$1").replace(L,"0.$1")),J!=q)return new I(q,N);throw Error(yo+"Not a"+(V?" base "+V:"")+" number: "+J)}}(),o.absoluteValue=o.abs=function(){var P=new I(this);return P.s<0&&(P.s=1),P},o.comparedTo=function(P,A){return cc(this,new I(P,A))},o.decimalPlaces=o.dp=function(P,A){var L,$,H,G=this;if(null!=P)return On(P,0,xi),null==A?A=a:On(A,0,8),ee(new I(G),P+G.e+1,A);if(!(L=G.c))return null;if($=14*((H=L.length-1)-Xo(this.e/14)),H=L[H])for(;H%10==0;H/=10,$--);return $<0&&($=0),$},o.dividedBy=o.div=function(P,A){return n(this,new I(P,A),s,a)},o.dividedToIntegerBy=o.idiv=function(P,A){return n(this,new I(P,A),0,1)},o.exponentiatedBy=o.pow=function(P,A){var L,$,H,G,V,N,q,z,Q=this;if((P=new I(P)).c&&!P.isInteger())throw Error(yo+"Exponent not an integer: "+ie(P));if(null!=A&&(A=new I(A)),V=P.e>14,!Q.c||!Q.c[0]||1==Q.c[0]&&!Q.e&&1==Q.c.length||!P.c||!P.c[0])return z=new I(Math.pow(+ie(Q),V?P.s*(2-uv(P)):+ie(P))),A?z.mod(A):z;if(N=P.s<0,A){if(A.c?!A.c[0]:!A.s)return new I(NaN);($=!N&&Q.isInteger()&&A.isInteger())&&(Q=Q.mod(A))}else{if(P.e>9&&(Q.e>0||Q.e<-1||(0==Q.e?Q.c[0]>1||V&&Q.c[1]>=24e7:Q.c[0]<8e13||V&&Q.c[0]<=9999975e7)))return G=Q.s<0&&uv(P)?-0:0,Q.e>-1&&(G=1/G),new I(N?1/G:G);w&&(G=vk(w/14+2))}for(V?(L=new I(.5),N&&(P.s=1),q=uv(P)):q=(H=Math.abs(+ie(P)))%2,z=new I(r);;){if(q){if(!(z=z.times(Q)).c)break;G?z.c.length>G&&(z.c.length=G):$&&(z=z.mod(A))}if(H){if(0===(H=wr(H/2)))break;q=H%2}else if(ee(P=P.times(L),P.e+1,1),P.e>14)q=uv(P);else{if(0===(H=+ie(P)))break;q=H%2}Q=Q.times(Q),G?Q.c&&Q.c.length>G&&(Q.c.length=G):$&&(Q=Q.mod(A))}return $?z:(N&&(z=r.div(z)),A?z.mod(A):G?ee(z,w,a,void 0):z)},o.integerValue=function(P){var A=new I(this);return null==P?P=a:On(P,0,8),ee(A,A.e+1,P)},o.isEqualTo=o.eq=function(P,A){return 0===cc(this,new I(P,A))},o.isFinite=function(){return!!this.c},o.isGreaterThan=o.gt=function(P,A){return cc(this,new I(P,A))>0},o.isGreaterThanOrEqualTo=o.gte=function(P,A){return 1===(A=cc(this,new I(P,A)))||0===A},o.isInteger=function(){return!!this.c&&Xo(this.e/14)>this.c.length-2},o.isLessThan=o.lt=function(P,A){return cc(this,new I(P,A))<0},o.isLessThanOrEqualTo=o.lte=function(P,A){return-1===(A=cc(this,new I(P,A)))||0===A},o.isNaN=function(){return!this.s},o.isNegative=function(){return this.s<0},o.isPositive=function(){return this.s>0},o.isZero=function(){return!!this.c&&0==this.c[0]},o.minus=function(P,A){var L,$,H,G,J=this,V=J.s;if(A=(P=new I(P,A)).s,!V||!A)return new I(NaN);if(V!=A)return P.s=-A,J.plus(P);var N=J.e/14,q=P.e/14,z=J.c,Q=P.c;if(!N||!q){if(!z||!Q)return z?(P.s=-A,P):new I(Q?J:NaN);if(!z[0]||!Q[0])return Q[0]?(P.s=-A,P):new I(z[0]?J:3==a?-0:0)}if(N=Xo(N),q=Xo(q),z=z.slice(),V=N-q){for((G=V<0)?(V=-V,H=z):(q=N,H=Q),H.reverse(),A=V;A--;H.push(0));H.reverse()}else for($=(G=(V=z.length)<(A=Q.length))?V:A,V=A=0;A<$;A++)if(z[A]!=Q[A]){G=z[A]0)for(;A--;z[L++]=0);for(A=xr-1;$>V;){if(z[--$]=0;){for(L=0,ue=wt[H]%Oe,Ce=wt[H]/Oe|0,G=H+(J=N);G>H;)L=((q=ue*(q=at[--J]%Oe)+(V=Ce*q+(z=at[J]/Oe|0)*ue)%Oe*Oe+Ee[G]+L)/ut|0)+(V/Oe|0)+Ce*z,Ee[G--]=q%ut;Ee[G]=L}return L?++$:Ee.splice(0,1),K(P,Ee,$)},o.negated=function(){var P=new I(this);return P.s=-P.s||null,P},o.plus=function(P,A){var L,$=this,H=$.s;if(A=(P=new I(P,A)).s,!H||!A)return new I(NaN);if(H!=A)return P.s=-A,$.minus(P);var G=$.e/14,J=P.e/14,V=$.c,N=P.c;if(!G||!J){if(!V||!N)return new I(H/0);if(!V[0]||!N[0])return N[0]?P:new I(V[0]?$:0*H)}if(G=Xo(G),J=Xo(J),V=V.slice(),H=G-J){for(H>0?(J=G,L=N):(H=-H,L=V),L.reverse();H--;L.push(0));L.reverse()}for((H=V.length)-(A=N.length)<0&&(L=N,N=V,V=L,A=H),H=0;A;)H=(V[--A]=V[A]+N[A]+H)/xr|0,V[A]=xr===V[A]?0:V[A]%xr;return H&&(V=[H].concat(V),++J),K(P,V,J)},o.precision=o.sd=function(P,A){var L,$,H,G=this;if(null!=P&&P!==!!P)return On(P,1,xi),null==A?A=a:On(A,0,8),ee(new I(G),P,A);if(!(L=G.c))return null;if($=14*(H=L.length-1)+1,H=L[H]){for(;H%10==0;H/=10,$--);for(H=L[0];H>=10;H/=10,$++);}return P&&G.e+1>$&&($=G.e+1),$},o.shiftedBy=function(P){return On(P,-GB,GB),this.times("1e"+P)},o.squareRoot=o.sqrt=function(){var P,A,L,$,H,G=this,J=G.c,V=G.s,N=G.e,q=s+4,z=new I("0.5");if(1!==V||!J||!J[0])return new I(!V||V<0&&(!J||J[0])?NaN:J?G:1/0);if(0==(V=Math.sqrt(+ie(G)))||V==1/0?(((A=Sr(J)).length+N)%2==0&&(A+="0"),V=Math.sqrt(+A),N=Xo((N+1)/2)-(N<0||N%2),L=new I(A=V==1/0?"5e"+N:(A=V.toExponential()).slice(0,A.indexOf("e")+1)+N)):L=new I(V+""),L.c[0])for((V=(N=L.e)+q)<3&&(V=0);;)if(L=z.times((H=L).plus(n(G,H,q,1))),Sr(H.c).slice(0,V)===(A=Sr(L.c)).slice(0,V)){if(L.e0&&Ee>0){for(z=Ce.substr(0,G=Ee%V||V);G0&&(z+=q+Ce.slice(G)),ue&&(z="-"+z)}$=Q?z+(L.decimalSeparator||"")+((N=+L.fractionGroupSize)?Q.replace(new RegExp("\\d{"+N+"}\\B","g"),"$&"+(L.fractionGroupSeparator||"")):Q):z}return(L.prefix||"")+$+(L.suffix||"")},o.toFraction=function(P){var A,L,$,H,G,J,V,N,q,z,Q,ue,Ce=this,Ee=Ce.c;if(null!=P&&(!(V=new I(P)).isInteger()&&(V.c||1!==V.s)||V.lt(r)))throw Error(yo+"Argument "+(V.isInteger()?"out of range: ":"not an integer: ")+ie(V));if(!Ee)return new I(Ce);for(A=new I(r),q=L=new I(r),$=N=new I(r),ue=Sr(Ee),G=A.e=ue.length-Ce.e-1,A.c[0]=yk[(J=G%14)<0?14+J:J],P=!P||V.comparedTo(A)>0?G>0?A:q:V,J=m,m=1/0,V=new I(ue),N.c[0]=0;z=n(V,A,0,1),1!=(H=L.plus(z.times($))).comparedTo(P);)L=$,$=H,q=N.plus(z.times(H=q)),N=H,A=V.minus(z.times(H=A)),V=H;return H=n(P.minus(L),$,0,1),N=N.plus(H.times(q)),L=L.plus(H.times($)),N.s=q.s=Ce.s,Q=n(q,$,G*=2,a).minus(Ce).abs().comparedTo(n(N,L,G,a).minus(Ce).abs())<1?[q,$]:[N,L],m=J,Q},o.toNumber=function(){return+ie(this)},o.toObject=function(){var P=this;return{c:P.c?P.c.slice():null,e:P.e,s:P.s}},o.toPrecision=function(P,A){return null!=P&&On(P,1,xi),R(this,P,A,2)},o.toString=function(P){var A,L=this,$=L.s,H=L.e;return null===H?$?(A="Infinity",$<0&&(A="-"+A)):A="NaN":(null==P?A=H<=l||H>=c?hv(Sr(L.c),H):Ea(Sr(L.c),H,"0"):(On(P,2,T.length,"Base"),A=e(Ea(Sr(L.c),H,"0"),10,P,$,!0)),$<0&&L.c[0]&&(A="-"+A)),A},o.valueOf=o.toJSON=function(){return ie(this)},o._isBigNumber=!0,null!=t&&I.set(t),I}(),tme=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,vk=Math.ceil,wr=Math.floor,yo="[BigNumber Error] ",xr=1e14,GB=9007199254740991,yk=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],Ta=1e7,xi=1e9;function Xo(t){var n=0|t;return t>0||t===n?n:n-1}function Sr(t){for(var n,e,i=1,o=t.length,r=t[0]+"";ic^e?1:-1;for(a=(l=o.length)<(c=r.length)?l:c,s=0;sr[s]^e?1:-1;return l==c?0:l>c^e?1:-1}function On(t,n,e,i){if(te||t!==wr(t))throw Error(yo+(i||"Argument")+("number"==typeof t?te?" out of range: ":" not an integer: ":" not a primitive number: ")+String(t))}function uv(t){var n=t.c.length-1;return Xo(t.e/14)==n&&t.c[n]%2!=0}function hv(t,n){return(t.length>1?t.charAt(0)+"."+t.slice(1):t)+(n<0?"e":"e+")+n}function Ea(t,n,e){var i,o;if(n<0){for(o=e+".";++n;o+=e);t=o+t}else if(++n>(i=t.length)){for(o=e,n-=i;--n;o+=e);t+=o}else n{class t{constructor(e,i){this.apiService=e,this.storageService=i}getNodes(){let e=[];return this.apiService.get("visors-summary").pipe(Se(i=>{i&&i.forEach(l=>{const c=new Ck;c.online=l.online,c.localPk=l.overview.local_pk,c.version=l.overview.build_info.version,c.configVersion=l.config_version,c.os=l.overview.build_info.os,c.arch=l.overview.build_info.arch,c.autoconnectTransports=l.public_autoconnect,c.isPublic=l.is_public,c.buildTag=l.build_tag?l.build_tag:"",c.rewardsAddress=l.reward_address,c.ip=l.overview&&l.overview.local_ip&&l.overview.local_ip.trim()?l.overview.local_ip:null,c.publicIp=l.overview&&l.overview.public_ip&&l.overview.public_ip.trim()?l.overview.public_ip:null,c.isSymmeticNat=l.overview.is_symmetic_nat,l.overview.country_code&&(c.countryCode=l.overview.country_code),l.overview.region_name&&(c.regionName=l.overview.region_name),l.overview.city_name&&(c.cityName=l.overview.city_name),l.overview.latitude&&(c.latitude=l.overview.latitude),l.overview.longitude&&(c.longitude=l.overview.longitude);const f=this.storageService.getLabelInfo(c.localPk);if(c.label=f&&f.label?f.label:this.storageService.getDefaultLabel(c),!c.online)return c.dmsgServerPk="",c.roundTripPing="",void e.push(c);c.health={servicesHealth:l.health.services_health,uptimeTrackerHealth:l.health.uptime_tracker_health,autoconnectHealth:l.health.autoconnect_health,transportabilityHealth:l.health.transportability_health},c.dmsgServerPk=l.dmsg_stats.server_public_key,c.connectedDmsgServers=l.connected_dmsg_servers||[],c.roundTripPing=this.nsToMs(l.dmsg_stats.round_trip),l.dmsg_servers&&Array.isArray(l.dmsg_servers)&&(c.dmsgServers=l.dmsg_servers.map(m=>({pk:m.pk,latency:m.latency||0}))),c.transports=[],l.overview.transports&&l.overview.transports.forEach(m=>{c.transports.push({id:m.id,localPk:m.local_pk,remotePk:m.remote_pk,type:m.type,recv:m.log?m.log.recv:0,sent:m.log?m.log.sent:0,latencyMs:m.latency_ms||0})}),c.apps=[],l.overview.apps&&l.overview.apps.forEach(m=>{c.apps.push({name:m.name,autostart:m.auto_start,port:m.port,status:m.status,detailedStatus:m.detailed_status,args:m.args})}),c.isHypervisor=l.is_hypervisor,e.push(c)});const o=new Map,r=[],s=[];e.forEach(l=>{o.set(l.localPk,l),l.online&&(r.push(l.localPk),s.push(l.ip))}),this.storageService.includeVisibleLocalNodes(r,s);const a=[];return this.storageService.getSavedLocalNodes().forEach(l=>{if(!o.has(l.publicKey)&&!l.hidden){const c=new Ck;c.localPk=l.publicKey;const f=this.storageService.getLabelInfo(l.publicKey);c.label=f&&f.label?f.label:this.storageService.getDefaultLabel(c),c.online=!1,c.dmsgServerPk="",c.roundTripPing="",a.push(c)}o.has(l.publicKey)&&!o.get(l.publicKey).online&&l.hidden&&o.delete(l.publicKey)}),e=[],o.forEach(l=>e.push(l)),e=e.concat(a),e}))}nsToMs(e){let i=new fv(e).dividedBy(1e6);return i=i.isLessThan(10)?i.decimalPlaces(2):i.decimalPlaces(0),i.toString(10)}getNode(e){return this.apiService.get(`visors/${e}/summary`).pipe(Se(i=>{const o=new Ck;o.localPk=i.overview.local_pk,o.version=i.overview.build_info.version,o.configVersion=i.config_version,o.os=i.overview.build_info.os,o.arch=i.overview.build_info.arch,o.secondsOnline=Math.floor(Number.parseFloat(i.uptime)),o.minHops=i.min_hops,o.buildTag=i.build_tag,o.skybianBuildVersion=i.skybian_build_version,o.connectedDmsgServers=i.connected_dmsg_servers||[],o.isSymmeticNat=i.overview.is_symmetic_nat,o.publicIp=i.overview.public_ip,o.autoconnectTransports=i.public_autoconnect,o.isPublic=i.is_public,o.rewardsAddress=i.reward_address,i.overview.country_code&&(o.countryCode=i.overview.country_code),i.overview.region_name&&(o.regionName=i.overview.region_name),i.overview.city_name&&(o.cityName=i.overview.city_name),i.overview.latitude&&(o.latitude=i.overview.latitude),i.overview.longitude&&(o.longitude=i.overview.longitude),o.ip=i.overview.local_ip&&i.overview.local_ip.trim()?i.overview.local_ip:null;const r=this.storageService.getLabelInfo(o.localPk);o.label=r&&r.label?r.label:this.storageService.getDefaultLabel(o),o.health={servicesHealth:i.health.services_health,uptimeTrackerHealth:i.health.uptime_tracker_health,autoconnectHealth:i.health.autoconnect_health,transportabilityHealth:i.health.transportability_health},o.transports=[],i.overview.transports&&i.overview.transports.forEach(a=>{o.transports.push({id:a.id,localPk:a.local_pk,remotePk:a.remote_pk,type:a.type,recv:a.log.recv,sent:a.log.sent,latencyMs:a.latency_ms||0})}),o.persistentTransports=[],i.persistent_transports&&i.persistent_transports.forEach(a=>{o.persistentTransports.push({pk:a.pk,type:a.type})}),o.routes=[],i.routes&&i.routes.forEach(a=>{o.routes.push({key:a.key,rule:a.rule}),a.rule_summary&&(o.routes[o.routes.length-1].ruleSummary={keepAlive:a.rule_summary.keep_alive,ruleType:a.rule_summary.rule_type,keyRouteId:a.rule_summary.key_route_id},a.rule_summary.app_fields&&a.rule_summary.app_fields.route_descriptor&&(o.routes[o.routes.length-1].appFields={routeDescriptor:{dstPk:a.rule_summary.app_fields.route_descriptor.dst_pk,dstPort:a.rule_summary.app_fields.route_descriptor.dst_port,srcPk:a.rule_summary.app_fields.route_descriptor.src_pk,srcPort:a.rule_summary.app_fields.route_descriptor.src_port}}),a.rule_summary.forward_fields&&(o.routes[o.routes.length-1].forwardFields={nextRid:a.rule_summary.forward_fields.next_rid,nextTid:a.rule_summary.forward_fields.next_tid},a.rule_summary.forward_fields.route_descriptor&&(o.routes[o.routes.length-1].forwardFields.routeDescriptor={dstPk:a.rule_summary.forward_fields.route_descriptor.dst_pk,dstPort:a.rule_summary.forward_fields.route_descriptor.dst_port,srcPk:a.rule_summary.forward_fields.route_descriptor.src_pk,srcPort:a.rule_summary.forward_fields.route_descriptor.src_port})),a.rule_summary.intermediary_forward_fields&&(o.routes[o.routes.length-1].intermediaryForwardFields={nextRid:a.rule_summary.intermediary_forward_fields.next_rid,nextTid:a.rule_summary.intermediary_forward_fields.next_tid}))}),o.apps=[],i.overview.apps&&i.overview.apps.forEach(a=>{o.apps.push({name:a.name,status:a.status,port:a.port,autostart:a.auto_start,detailedStatus:a.detailed_status,args:a.args})});let s=!1;return i.dmsg_stats&&(o.dmsgServerPk=i.dmsg_stats.server_public_key,o.roundTripPing=this.nsToMs(i.dmsg_stats.round_trip),s=!0),s||(o.dmsgServerPk="-",o.roundTripPing="-1"),i.dmsg_servers&&Array.isArray(i.dmsg_servers)&&(o.dmsgServers=i.dmsg_servers.map(a=>({pk:a.pk,latency:a.latency||0}))),o.isHypervisor=i.is_hypervisor,o}))}setRewardsAddress(e,i){return this.apiService.put(`visors/${e}/reward`,{reward_address:i})}getRewardsAddress(e){return this.apiService.get(`visors/${e}/reward`)}getRuntimeLogs(e){return this.apiService.get(`visors/${e}/runtime-logs`)}getRuntimeLogsSince(e,i){return this.apiService.get(`visors/${e}/runtime-logs?since=${i}`)}getRuntimeStats(e){return this.apiService.get(`visors/${e}/runtime-stats`)}getHostStats(e){return this.apiService.get(`visors/${e}/host-stats`)}getNetworkView(e=!1){return this.apiService.get("network-view"+(e?"?refresh=true":""))}getRewardRules(){return this.apiService.get("reward-rules",new qo({responseType:qf.Text}))}deleteRewardsAddress(e){return this.apiService.delete(`visors/${e}/reward`)}getProxies(e){return this.apiService.get(`visors/${e}/proxies`)}setProxyEnabled(e,i,o){return this.apiService.post(`visors/${e}/proxies/set`,{kind:i,enable:o})}setProxyUpstream(e,i,o){return this.apiService.post(`visors/${e}/proxies/upstream`,{kind:i,addr:o})}getSkynetPorts(e){return this.apiService.get(`visors/${e}/skynet-ports`)}registerSkynetPort(e,i){return this.apiService.post(`visors/${e}/skynet-ports/register`,{port:i})}deregisterSkynetPort(e,i){return this.apiService.post(`visors/${e}/skynet-ports/deregister`,{port:i})}getForwardedPorts(e){return this.apiService.get(`visors/${e}/forwarded-ports`)}registerForwardedPort(e,i){return this.apiService.post(`visors/${e}/forwarded-ports/register`,i)}updateForwardedPort(e,i){return this.apiService.post(`visors/${e}/forwarded-ports/update`,i)}getSkynetForwards(e){return this.apiService.get(`visors/${e}/skynet-forwards`)}skynetConnect(e,i,o,r,s){return this.apiService.post(`visors/${e}/skynet-forwards/connect`,{network:i,remote_pk:o,remote_port:r,local_port:s})}skynetDisconnect(e,i){return this.apiService.post(`visors/${e}/skynet-forwards/disconnect`,{id:i})}shutdown(e){return this.apiService.post(`visors/${e}/shutdown`)}checkIfUpdating(e){return this.apiService.get(`visors/${e}/update/ws/running`)}checkUpdate(e){let i="stable";return i=localStorage.getItem(dc.Channel)||i,this.apiService.get(`visors/${e}/update/available/${i}`)}update(e){const i={channel:"stable"};if(localStorage.getItem(dc.UseCustomSettings)){const r=localStorage.getItem(dc.Channel);r&&(i.channel=r);const s=localStorage.getItem(dc.Version);s&&(i.version=s);const a=localStorage.getItem(dc.ArchiveURL);a&&(i.archive_url=a);const l=localStorage.getItem(dc.ChecksumsURL);l&&(i.checksums_url=l)}return this.apiService.ws(`visors/${e}/update/ws`,i)}static{this.\u0275fac=function(i){return new(i||t)(ce(zi),ce(ti))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();class ime{}let KB=(()=>{class t{constructor(e,i){this.storageService=e,this.nodeService=i,this.dataSubject=new ki(null),this.lastEmitedData=new ime,this.firstCallToGetDataMade=!1,this.storageService.getRefreshTimeObservable().subscribe(o=>{this.dataRefreshDelay=1e3*o,this.forceRefresh()})}startRequestingData(){return this.firstCallToGetDataMade||this.getData(0),this.dataSubject.asObservable()}stopRequestingData(){this.updateSubscription&&(this.updateSubscription.unsubscribe(),this.firstCallToGetDataMade=!1)}getData(e){this.firstCallToGetDataMade=!0,this.updateSubscription&&this.updateSubscription.unsubscribe(),this.updateSubscription=ae(1).pipe(li(e),ai(()=>{this.lastEmitedData.updating=!0,this.dataSubject.next(this.lastEmitedData)}),li(120),It(()=>this.nodeService.getNodes())).subscribe(i=>{this.lastEmitedData={data:i,error:null,momentOfLastCorrectUpdate:Date.now(),updating:!1},this.dataSubject.next(this.lastEmitedData),this.getData(this.dataRefreshDelay)},i=>{i=Qe(i),this.lastEmitedData={data:this.lastEmitedData.data,error:i,momentOfLastCorrectUpdate:this.lastEmitedData.momentOfLastCorrectUpdate,updating:!1},this.dataSubject.next(this.lastEmitedData),this.getData(rt.connectionRetryDelay)})}forceRefresh(){this.getData(0)}static{this.\u0275fac=function(i){return new(i||t)(ce(ti),ce(Io))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();function ome(t,n){if(1&t){const e=oe();h(0,"button",3),F("click",function(){const o=j(e).$implicit;return U(v().closePopup(o))}),B(1,"img",4),h(2,"div",5),p(3),u()()}if(2&t){const e=n.$implicit;d(),C("src","assets/img/lang/"+e.iconName,mo),d(2),M(e.name)}}let YB=(()=>{class t{static openDialog(e){const i=new nn;return i.autoFocus=!1,i.width=rt.mediumModalWidth,e.open(t,i)}constructor(e,i){this.dialogRef=e,this.languageService=i,this.languages=[]}ngOnInit(){this.subscription=this.languageService.languages.subscribe(e=>{this.languages=e})}ngOnDestroy(){this.subscription.unsubscribe()}closePopup(e=null){e&&this.languageService.changeLanguage(e.code),this.dialogRef.close()}static{this.\u0275fac=function(i){return new(i||t)(O(Bt),O($b))}}static{this.\u0275cmp=re({type:t,selectors:[["app-select-language"]],standalone:!1,decls:5,vars:4,consts:[[3,"headline","dialog"],[1,"options-container"],["mat-button","","color","accent",1,"grey-button-background"],["mat-button","","color","accent",1,"grey-button-background",3,"click"],[3,"src"],[1,"label"]],template:function(i,o){1&i&&(h(0,"app-dialog",0),b(1,"translate"),h(2,"div",1),ve(3,ome,4,2,"button",2,Fe),u()()),2&i&&(C("headline",y(1,2,"language.title"))("dialog",o.dialogRef),d(3),ye(o.languages))},dependencies:[Pn,gn,xe],styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}.options-container[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:118px;height:auto!important;margin:20px;font-size:.7rem;line-height:unset;padding:0!important;color:unset}.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] .mdc-button__label{width:100%}@media(max-width:767px){.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:90px;font-size:.6rem;margin:6px}}.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:64px;height:64px;margin:10px 0}@media(max-width:767px){.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:48px;height:48px;margin:7px 0}}.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{color:#202226!important;background-color:#ffffff40;padding:4px 10px}@media(max-width:767px){.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{padding:4px 5px}}"]})}}return t})();function rme(t,n){1&t&&B(0,"img",1),2&t&&C("src","assets/img/lang/"+v().language.iconName,mo)}let sme=(()=>{class t{constructor(e,i){this.languageService=e,this.dialog=i}ngOnInit(){this.subscription=this.languageService.currentLanguage.subscribe(e=>{this.language=e})}ngOnDestroy(){this.subscription.unsubscribe()}openLanguageWindow(){YB.openDialog(this.dialog)}static{this.\u0275fac=function(i){return new(i||t)(O($b),O(Ot))}}static{this.\u0275cmp=re({type:t,selectors:[["app-lang-button"]],standalone:!1,decls:3,vars:4,consts:[["mat-button","",1,"lang-button","subtle-transparent-button",3,"click","matTooltip"],[1,"flag",3,"src"]],template:function(i,o){1&i&&(h(0,"button",0),b(1,"translate"),F("click",function(){return o.openLanguageWindow()}),x(2,rme,1,1,"img",1),u()),2&i&&(C("matTooltip",y(1,2,"language.title")),d(2),S(o.language?2:-1))},dependencies:[Pn,Kt,xe],styles:[".lang-button[_ngcontent-%COMP%]{height:40px;background-color:#f8f9f9;border-radius:100%;padding:0;line-height:1;padding:0!important}.lang-button[_ngcontent-%COMP%] .flag[_ngcontent-%COMP%]{width:20px;height:20px}"]})}}return t})();const ame=t=>({"element-disabled":t});function lme(t,n){if(1&t){const e=oe();h(0,"div",8),F("click",function(){return j(e),U(v().configure())}),p(1),b(2,"translate"),u()}2&t&&(d(),M(y(2,1,"login.initial-config")))}let XB=(()=>{class t extends pn{constructor(e,i,o,r,s,a){super(),this.authService=e,this.router=i,this.snackbarService=o,this.dialog=r,this.route=s,this.multipleNodeDataService=a,this.loading=!1,this.isForVpn=!1,this.vpnKey="",this.userExists=!0}ngOnInit(){return this.multipleNodeDataService.stopRequestingData(),this.routeSubscription=this.route.paramMap.subscribe(e=>{this.vpnKey=e.get("key"),this.isForVpn=-1!==window.location.href.indexOf("vpnlogin"),this.verificationSubscription=this.authService.checkLogin().subscribe(i=>{i!==ka.NotLogged&&(Xr.currentInstance.processLoginDone(),setTimeout(()=>{this.router.navigate(this.isForVpn?["vpn",this.vpnKey,"status"]:["nodes"],{replaceUrl:!0})},5))})}),this.form=new nk({password:new lu("",Ne.required)}),this.authService.userExists().subscribe(e=>this.userExists=e,()=>this.userExists=!0),super.ngOnInit()}ngOnDestroy(){this.loginSubscription&&this.loginSubscription.unsubscribe(),this.verificationSubscription.unsubscribe(),this.routeSubscription.unsubscribe()}login(){!this.form.valid||this.loading||(this.loading=!0,this.loginSubscription=this.authService.login(this.form.get("password").value).subscribe(()=>this.onLoginSuccess(),e=>this.onLoginError(e)))}configure(){eme.openDialog(this.dialog)}onLoginSuccess(){Xr.currentInstance.processLoginDone(),setTimeout(()=>{this.router.navigate(this.isForVpn?["vpn",this.vpnKey,"status"]:["nodes"],{replaceUrl:!0})})}onLoginError(e){e=Qe(e),this.loading=!1,this.snackbarService.showError(e.originalError&&401===e.originalError.status?"login.incorrect-password":e.translatableErrorMsg)}static{this.\u0275fac=function(i){return new(i||t)(O(Yf),O(vt),O(ct),O(Ot),O(Ai),O(KB))}}static{this.\u0275cmp=re({type:t,selectors:[["app-login"]],standalone:!1,features:[be],decls:12,vars:9,consts:[[1,"w-100","h-100","d-flex","justify-content-center"],[1,"row","main-container"],["src","/assets/img/logo-v.png",1,"logo"],[1,"mt-5",3,"formGroup"],[1,"login-input",3,"ngClass"],["type","password","formControlName","password","autocomplete","off",3,"keydown.enter","placeholder"],[3,"click","disabled"],["class","config-link",3,"click",4,"ngIf"],[1,"config-link",3,"click"]],template:function(i,o){1&i&&(h(0,"div",0),B(1,"app-lang-button"),h(2,"div",1),B(3,"img",2),h(4,"form",3)(5,"div",4)(6,"input",5),b(7,"translate"),F("keydown.enter",function(){return o.login()}),u(),h(8,"button",6),F("click",function(){return o.login()}),h(9,"mat-icon"),p(10,"chevron_right"),u()()()(),it(11,lme,3,3,"div",7),u()()),2&i&&(d(4),C("formGroup",o.form),d(),C("ngClass",se(7,ame,o.loading)),d(),C("placeholder",y(7,5,"login.password")),d(2),C("disabled",!o.form.valid||o.loading),d(3),C("ngIf",!o.userExists))},dependencies:[$t,tf,xn,Gt,qt,wn,on,mn,We,sme,xe],styles:['.cursor-pointer[_ngcontent-%COMP%], .config-link[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media(max-width:767px),(min-width:992px)and (max-width:1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media(max-width:767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}app-lang-button[_ngcontent-%COMP%]{position:fixed;right:10px;top:10px;z-index:10}.main-container[_ngcontent-%COMP%]{z-index:1;height:100%;flex-direction:column;align-items:center;justify-content:center}.logo[_ngcontent-%COMP%]{width:170px}.login-input[_ngcontent-%COMP%]{height:35px;width:300px;overflow:hidden;border-radius:10px;box-shadow:0 3px 8px #0000001a,0 6px 20px #0000001a;display:flex}.login-input[_ngcontent-%COMP%] input[type=password][_ngcontent-%COMP%]{background:#fff;width:calc(100% - 35px);height:100%;font-size:.875rem;border:none;padding-left:10px;padding-right:10px}.login-input[_ngcontent-%COMP%] input[type=password][_ngcontent-%COMP%]:focus{outline:none}.login-input[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{background:#fff;color:#202226;width:35px;height:35px;line-height:35px;border:none;display:flex;cursor:pointer;align-items:center}.login-input[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:disabled{color:#777}.config-link[_ngcontent-%COMP%]{color:#f8f9f9;font-size:.7rem;margin-top:20px}']})}}return t})();const cme=["firstInput"];let wk=(()=>{class t{static openDialog(e,i){const o=new nn;return o.data=i,o.autoFocus=!1,o.width=rt.smallModalWidth,e.open(t,o)}constructor(e,i,o,r,s){this.dialogRef=e,this.data=i,this.formBuilder=o,this.storageService=r,this.snackbarService=s}ngOnInit(){this.form=this.formBuilder.group({label:[this.data.label]})}ngAfterViewInit(){setTimeout(()=>this.firstInput.nativeElement.focus())}save(){const e=this.form.get("label").value.trim();e!==this.data.label?(this.storageService.saveLabel(this.data.id,e,this.data.identifiedElementType),e?this.snackbarService.showDone("edit-label.done"):this.snackbarService.showWarning("edit-label.label-removed-warning"),this.dialogRef.close(!0)):this.dialogRef.close()}static{this.\u0275fac=function(i){return new(i||t)(O(Bt),O(En),O(di),O(ti),O(ct))}}static{this.\u0275cmp=re({type:t,selectors:[["app-edit-label"]],viewQuery:function(i,o){if(1&i&&ot(cme,5),2&i){let r;he(r=fe())&&(o.firstInput=r.first)}},standalone:!1,decls:13,vars:11,consts:[["firstInput",""],[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","label","maxlength","66","matInput",""],["color","primary",1,"float-right",3,"action"]],template:function(i,o){1&i&&(h(0,"app-dialog",1),b(1,"translate"),h(2,"form",2)(3,"mat-form-field")(4,"div",3)(5,"label",4),p(6),b(7,"translate"),u(),B(8,"input",5,0),u()()(),h(10,"app-button",6),F("action",function(){return o.save()}),p(11),b(12,"translate"),u()()),2&i&&(C("headline",y(1,5,"labeled-element.edit-label"))("dialog",o.dialogRef),d(2),C("formGroup",o.form),d(4),M(y(7,7,"edit-label.label")),d(5),M(y(12,9,"common.save")))},dependencies:[xn,Gt,qt,wn,wi,on,mn,sn,In,ui,gn,xe],encapsulation:2})}}return t})();const dme=["cancelButton"],ume=["confirmButton"];function hme(t,n){if(1&t&&(h(0,"div"),p(1),b(2,"translate"),u()),2&t){const e=n.$implicit;d(),E(" - ",y(2,1,e)," ")}}function fme(t,n){if(1&t&&(h(0,"div",4),ve(1,hme,3,3,"div",null,Fe),u()),2&t){const e=v();d(),ye(e.state!==e.confirmationStates.Done?e.data.list:e.doneList)}}function pme(t,n){if(1&t&&(h(0,"div",3),p(1),b(2,"translate"),u()),2&t){const e=v();d(),E(" ",y(2,1,e.data.lowerText)," ")}}function mme(t,n){if(1&t){const e=oe();h(0,"app-button",8,1),F("action",function(){return j(e),U(v().closeModal())}),p(2),b(3,"translate"),u()}if(2&t){const e=v();d(2),E(" ",y(3,1,e.data.cancelButtonText)," ")}}var mu=function(t){return t.Asking="Asking",t.Processing="Processing",t.Done="Done",t}(mu||{});let gme=(()=>{class t{constructor(e,i){this.dialogRef=e,this.data=i,this.disableDismiss=!1,this.state=mu.Asking,this.confirmationStates=mu,this.operationAccepted=new we,this.disableDismiss=!!i.disableDismiss,this.dialogRef.disableClose=this.disableDismiss}ngAfterViewInit(){this.data.cancelButtonText?setTimeout(()=>this.cancelButton.focus()):setTimeout(()=>this.confirmButton.focus())}ngOnDestroy(){this.operationAccepted.complete()}closeModal(){this.dialogRef.close()}sendOperationAcceptedEvent(){this.operationAccepted.emit()}showAsking(e){e&&(this.data=e),this.state=mu.Asking,this.confirmButton.reset(),this.disableDismiss=!1,this.dialogRef.disableClose=this.disableDismiss,this.cancelButton&&this.cancelButton.showEnabled()}showProcessing(){this.state=mu.Processing,this.disableDismiss=!0,this.confirmButton.showLoading(),this.cancelButton&&this.cancelButton.showDisabled()}showDone(e,i,o=null){this.doneTitle=e||this.data.headerText,this.doneText=i,this.doneList=o,this.confirmButton.reset(),setTimeout(()=>this.confirmButton.focus()),this.state=mu.Done,this.dialogRef.disableClose=!1,this.disableDismiss=!1}static{this.\u0275fac=function(i){return new(i||t)(O(Bt),O(En))}}static{this.\u0275cmp=re({type:t,selectors:[["app-confirmation"]],viewQuery:function(i,o){if(1&i&&ot(dme,5)(ume,5),2&i){let r;he(r=fe())&&(o.cancelButton=r.first),he(r=fe())&&(o.confirmButton=r.first)}},outputs:{operationAccepted:"operationAccepted"},standalone:!1,decls:13,vars:14,consts:[["confirmButton",""],["cancelButton",""],[3,"headline","dialog","disableDismiss"],[1,"text-container"],[1,"list-container"],[1,"buttons"],["color","accent"],["color","primary",3,"action"],["color","accent",3,"action"]],template:function(i,o){1&i&&(h(0,"app-dialog",2),b(1,"translate"),h(2,"div",3),p(3),b(4,"translate"),u(),x(5,fme,3,0,"div",4),x(6,pme,3,3,"div",3),h(7,"div",5),x(8,mme,4,3,"app-button",6),h(9,"app-button",7,0),F("action",function(){return o.state===o.confirmationStates.Asking?o.sendOperationAcceptedEvent():o.closeModal()}),p(11),b(12,"translate"),u()()()),2&i&&(C("headline",y(1,8,o.state!==o.confirmationStates.Done?o.data.headerText:o.doneTitle))("dialog",o.dialogRef)("disableDismiss",o.disableDismiss),d(3),E(" ",y(4,10,o.state!==o.confirmationStates.Done?o.data.text:o.doneText)," "),d(2),S(o.data.list&&o.state!==o.confirmationStates.Done||o.doneList&&o.state===o.confirmationStates.Done?5:-1),d(),S(o.data.lowerText&&o.state!==o.confirmationStates.Done?6:-1),d(2),S(o.data.cancelButtonText&&o.state!==o.confirmationStates.Done?8:-1),d(3),E(" ",y(12,12,o.state!==o.confirmationStates.Done?o.data.confirmButtonText:"confirmation.close")," "))},dependencies:[ui,gn,xe],styles:[".text-container[_ngcontent-%COMP%]{word-break:break-word}.list-container[_ngcontent-%COMP%]{font-size:14px;margin:10px;color:#215f9e;word-break:break-word}.buttons[_ngcontent-%COMP%]{margin-top:15px;text-align:right}.buttons[_ngcontent-%COMP%] app-button[_ngcontent-%COMP%]{margin-left:5px}"]})}}return t})();class Rt{static createConfirmationDialog(n,e){const i={text:e,headerText:"confirmation.header-text",confirmButtonText:"confirmation.confirm-button",cancelButtonText:"confirmation.cancel-button",disableDismiss:!1},o=new nn;return o.data=i,o.autoFocus=!1,o.width=rt.smallModalWidth,n.open(gme,o)}static checkIfTagIsUpdatable(n){return!(null==n||n.toUpperCase()==="Windows".toUpperCase()||n.toUpperCase()==="Win".toUpperCase()||n.toUpperCase()==="Mac".toUpperCase()||n.toUpperCase()==="Macos".toUpperCase()||n.toUpperCase()==="Mac OS".toUpperCase()||n.toUpperCase()==="Darwin".toUpperCase())}static checkIfTagCanOpenterminal(n){return!(null==n||n.toUpperCase()==="Windows".toUpperCase()||n.toUpperCase()==="Win".toUpperCase())}static checkIfIpValidOrEmpty(n){if(!n)return!0;const e=n.split(".");if(4!==e.length)return!1;for(const i of e){const o=Number.parseInt(i,10);if(isNaN(o)||o+""!==i||o<0||o>255)return!1}return!0}}function _me(t,n){if(1&t&&(h(0,"mat-icon",4),p(1),u()),2&t){const e=v().$implicit;C("inline",!0),d(),M(e.icon)}}function bme(t,n){if(1&t){const e=oe();h(0,"div",1)(1,"button",2),F("click",function(){const o=j(e).$index;return U(v().closePopup(o+1))}),h(2,"div",3),x(3,_me,2,2,"mat-icon",4),h(4,"span"),p(5),b(6,"translate"),u()()()()}if(2&t){const e=n.$implicit;d(3),S(e.icon?3:-1),d(2),M(y(6,2,e.label))}}let ao=(()=>{class t{static openDialog(e,i,o){const r=new nn;return r.data={options:i,title:o},r.autoFocus=!1,r.width=rt.smallModalWidth,e.open(t,r)}constructor(e,i){this.data=e,this.dialogRef=i}closePopup(e){this.dialogRef.close(e)}static{this.\u0275fac=function(i){return new(i||t)(O(En),O(Bt))}}static{this.\u0275cmp=re({type:t,selectors:[["app-select-option"]],standalone:!1,decls:4,vars:5,consts:[[3,"headline","dialog","includeVerticalMargins"],[1,"options-list-button-container"],["mat-button","",1,"grey-button-background",3,"click"],[1,"internal-container"],[1,"icon",3,"inline"]],template:function(i,o){1&i&&(h(0,"app-dialog",0),b(1,"translate"),ve(2,bme,7,4,"div",1,Fe),u()),2&i&&(C("headline",y(1,3,o.data.title))("dialog",o.dialogRef)("includeVerticalMargins",!1),d(2),ye(o.data.options))},dependencies:[Pn,We,gn,xe],styles:[".icon[_ngcontent-%COMP%]{font-size:14px;width:14px;line-height:1}.grey-button-background[_ngcontent-%COMP%]{justify-content:left!important;min-height:45px}"]})}}return t})();var Sn=function(t){return t.TextInput="TextInput",t.Select="Select",t}(Sn||{});class Dt{constructor(n,e,i,o){this.properties=n,this.label=e,this.sortingMode=i,this.labelProperties=o}get id(){return this.properties.join("")}}var st=function(t){return t.Text="Text",t.Number="Number",t.NumberReversed="NumberReversed",t.Boolean="Boolean",t}(st||{});class gu{get sortingArrow(){return this.sortReverse?"keyboard_arrow_up":"keyboard_arrow_down"}get currentSortingColumn(){return this.sortBy}get sortingInReverseOrder(){return this.sortReverse}get dataSorted(){return this.dataUpdatedSubject.asObservable()}get currentlySortingByLabel(){return this.sortByLabel}constructor(n,e,i,o,r,s){this.dialog=n,this.translateService=e,this.storageService=i,this.sortReverse=!1,this.sortByLabel=!1,this.tieBreakerColumnIndex=null,this.columnStorageKeyPrefix="col_",this.orderStorageKeyPrefix="order_",this.labelStorageKeyPrefix="label_",this.dataUpdatedSubject=new me,this.sortableColumns=o,this.id=s,this.defaultColumnIndex=r,this.sortBy=o[r];const a=this.storageService.getDataForHv(this.columnStorageKeyPrefix+s);if(a){const l=o.find(c=>c.id===a);l&&(this.sortBy=l)}this.sortReverse="true"===this.storageService.getDataForHv(this.orderStorageKeyPrefix+s),this.sortByLabel="true"===this.storageService.getDataForHv(this.labelStorageKeyPrefix+s)}dispose(){this.dataUpdatedSubject.complete()}setTieBreakerColumnIndex(n){this.tieBreakerColumnIndex=n}setData(n){this.data=n,this.sortData()}changeSortingOrder(n){if(this.sortBy===n||n.labelProperties)if(n.labelProperties){const e=[{label:this.translateService.instant("tables.sort-by-value")},{label:this.translateService.instant("tables.sort-by-value")+" "+this.translateService.instant("tables.inverted-order")},{label:this.translateService.instant("tables.sort-by-label")},{label:this.translateService.instant("tables.sort-by-label")+" "+this.translateService.instant("tables.inverted-order")}];ao.openDialog(this.dialog,e,"tables.title").afterClosed().subscribe(i=>{i&&this.changeSortingParams(n,i>2,i%2==0)})}else this.sortReverse=!this.sortReverse,this.storageService.setDataForHv(this.orderStorageKeyPrefix+this.id,String(this.sortReverse)),this.sortData();else this.changeSortingParams(n,!1,!1)}changeSortingParams(n,e,i){this.sortBy=n,this.sortByLabel=e,this.sortReverse=i,this.storageService.setDataForHv(this.columnStorageKeyPrefix+this.id,n.id),this.storageService.setDataForHv(this.orderStorageKeyPrefix+this.id,String(this.sortReverse)),this.storageService.setDataForHv(this.labelStorageKeyPrefix+this.id,String(this.sortByLabel)),this.sortData()}openSortingOrderModal(){const n=[],e=[];this.sortableColumns.forEach(i=>{const o=this.translateService.instant(i.label);n.push({label:o}),e.push({sortBy:i,sortReverse:!1,sortByLabel:!1}),n.push({label:o+" "+this.translateService.instant("tables.inverted-order")}),e.push({sortBy:i,sortReverse:!0,sortByLabel:!1}),i.labelProperties&&(n.push({label:o+" "+this.translateService.instant("tables.label")}),e.push({sortBy:i,sortReverse:!1,sortByLabel:!0}),n.push({label:o+" "+this.translateService.instant("tables.label")+" "+this.translateService.instant("tables.inverted-order")}),e.push({sortBy:i,sortReverse:!0,sortByLabel:!0}))}),ao.openDialog(this.dialog,n,"tables.title").afterClosed().subscribe(i=>{i&&this.changeSortingParams(e[i-1].sortBy,e[i-1].sortByLabel,e[i-1].sortReverse)})}sortData(){this.data&&(this.data.sort((n,e)=>{let i=this.getSortResponse(this.sortBy,n,e,!0);return 0===i&&null!==this.tieBreakerColumnIndex&&this.sortableColumns[this.tieBreakerColumnIndex]!==this.sortBy&&(i=this.getSortResponse(this.sortableColumns[this.tieBreakerColumnIndex],n,e,!1)),0===i&&this.sortableColumns[this.defaultColumnIndex]!==this.sortBy&&(i=this.getSortResponse(this.sortableColumns[this.defaultColumnIndex],n,e,!1)),i}),this.dataUpdatedSubject.next())}getSortResponse(n,e,i,o){let s=e,a=i;(this.sortByLabel&&o&&n.labelProperties?n.labelProperties:n.properties).forEach(f=>{s=s[f],a=a[f]});const l=this.sortByLabel&&o?st.Text:n.sortingMode;let c=0;return l===st.Text?c=this.sortReverse?a.localeCompare(s):s.localeCompare(a):l===st.NumberReversed?c=this.sortReverse?s-a:a-s:l===st.Number?c=this.sortReverse?a-s:s-a:l===st.Boolean&&(s&&!a?c=-1:!s&&a&&(c=1),c*=this.sortReverse?-1:1),c}}let Cme=(()=>{class t{_animationsDisabled=ci();state="unchecked";disabled=!1;appearance="full";constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["mat-pseudo-checkbox"]],hostAttrs:[1,"mat-pseudo-checkbox"],hostVars:12,hostBindings:function(i,o){2&i&&Ie("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",o._animationsDisabled)},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-minimal.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-pseudo-checkbox-minimal-selected-checkmark-color, var(--mat-sys-primary))}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full{border-color:var(--mat-pseudo-checkbox-full-unselected-icon-color, var(--mat-sys-on-surface-variant));border-width:2px;border-style:solid}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-disabled{border-color:var(--mat-pseudo-checkbox-full-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate{background-color:var(--mat-pseudo-checkbox-full-selected-icon-color, var(--mat-sys-primary));border-color:rgba(0,0,0,0)}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-pseudo-checkbox-full-selected-checkmark-color, var(--mat-sys-on-primary))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background-color:var(--mat-pseudo-checkbox-full-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-pseudo-checkbox-full-disabled-selected-checkmark-color, var(--mat-sys-surface))}.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}\n'],encapsulation:2,changeDetection:0})}return t})();const wme=["text"],xme=[[["mat-icon"]],"*"],Sme=["mat-icon","*"];function kme(t,n){if(1&t&&B(0,"mat-pseudo-checkbox",1),2&t){const e=v();C("disabled",e.disabled)("state",e.selected?"checked":"unchecked")}}function Dme(t,n){1&t&&B(0,"mat-pseudo-checkbox",3),2&t&&C("disabled",v().disabled)}function Mme(t,n){if(1&t&&(h(0,"span",4),p(1),u()),2&t){const e=v();d(),E("(",e.group.label,")")}}const ZB=new Z("MAT_OPTION_PARENT_COMPONENT"),QB=new Z("MatOptgroup");class Tme{source;isUserInput;constructor(n,e=!1){this.source=n,this.isUserInput=e}}let Qr=(()=>{class t{_element=D(Re);_changeDetectorRef=D(Jt);_parent=D(ZB,{optional:!0});group=D(QB,{optional:!0});_signalDisableRipple=!1;_selected=!1;_active=!1;_mostRecentViewValue="";get multiple(){return this._parent&&this._parent.multiple}get selected(){return this._selected}value;id=D(ni).getId("mat-option-");get disabled(){return this.group&&this.group.disabled||this._disabled()}set disabled(e){this._disabled.set(e)}_disabled=yt(!1);get disableRipple(){return this._signalDisableRipple?this._parent.disableRipple():!!this._parent?.disableRipple}get hideSingleSelectionIndicator(){return!(!this._parent||!this._parent.hideSingleSelectionIndicator)}onSelectionChange=new we;_text;_stateChanges=new me;constructor(){const e=D(zo);e.load(tu),e.load(gS),this._signalDisableRipple=!!this._parent&&El(this._parent.disableRipple)}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)&&!yr(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 Tme(this,e))}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["mat-option"]],viewQuery:function(i,o){if(1&i&&ot(wme,7),2&i){let r;he(r=fe())&&(o._text=r.first)}},hostAttrs:["role","option",1,"mat-mdc-option","mdc-list-item"],hostVars:11,hostBindings:function(i,o){1&i&&F("click",function(){return o._selectViaInteraction()})("keydown",function(s){return o._handleKeydown(s)}),2&i&&(ur("id",o.id),$e("aria-selected",o.selected)("aria-disabled",o.disabled.toString()),Ie("mdc-list-item--selected",o.selected)("mat-mdc-option-multiple",o.multiple)("mat-mdc-option-active",o.active)("mdc-list-item--disabled",o.disabled))},inputs:{value:"value",id:"id",disabled:[2,"disabled","disabled",De]},outputs:{onSelectionChange:"onSelectionChange"},exportAs:["matOption"],ngContentSelectors:Sme,decls:8,vars:5,consts:[["text",""],["aria-hidden","true",1,"mat-mdc-option-pseudo-checkbox",3,"disabled","state"],[1,"mdc-list-item__primary-text"],["state","checked","aria-hidden","true","appearance","minimal",1,"mat-mdc-option-pseudo-checkbox",3,"disabled"],[1,"cdk-visually-hidden"],["aria-hidden","true","mat-ripple","",1,"mat-mdc-option-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled"]],template:function(i,o){1&i&&(yi(xme),x(0,kme,1,2,"mat-pseudo-checkbox",1),Pt(1),h(2,"span",2,0),Pt(4,1),u(),x(5,Dme,1,1,"mat-pseudo-checkbox",3),x(6,Mme,2,1,"span",4),B(7,"div",5)),2&i&&(S(o.multiple?0:-1),d(5),S(o.multiple||!o.selected||o.hideSingleSelectionIndicator?-1:5),d(),S(o.group&&o.group._inert?6:-1),d(),C("matRippleTrigger",o._getHostElement())("matRippleDisabled",o.disabled||o.disableRipple))},dependencies:[Cme,eu],styles:['.mat-mdc-option{-webkit-user-select:none;user-select:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;min-height:48px;padding:0 16px;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);color:var(--mat-option-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-option-label-text-font, var(--mat-sys-label-large-font));line-height:var(--mat-option-label-text-line-height, var(--mat-sys-label-large-line-height));font-size:var(--mat-option-label-text-size, var(--mat-sys-body-large-size));letter-spacing:var(--mat-option-label-text-tracking, var(--mat-sys-label-large-tracking));font-weight:var(--mat-option-label-text-weight, var(--mat-sys-body-large-weight))}.mat-mdc-option:hover:not(.mdc-list-item--disabled){background-color:var(--mat-option-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}.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, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent));outline:0}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled):not(.mat-mdc-option-active,.mat-mdc-option-multiple,:focus,:hover){background-color:var(--mat-option-selected-state-layer-color, var(--mat-sys-secondary-container))}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled):not(.mat-mdc-option-active,.mat-mdc-option-multiple,:focus,:hover) .mdc-list-item__primary-text{color:var(--mat-option-selected-state-label-text-color, var(--mat-sys-on-secondary-container))}.mat-mdc-option .mat-pseudo-checkbox{--mat-pseudo-checkbox-minimal-selected-checkmark-color: var(--mat-option-selected-state-label-text-color, var(--mat-sys-on-secondary-container))}.mat-mdc-option.mdc-list-item{align-items:center;background:rgba(0,0,0,0)}.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}@media(forced-colors: active){.mat-mdc-option.mdc-list-item--selected:not(:has(.mat-mdc-option-pseudo-checkbox))::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}[dir=rtl] .mat-mdc-option.mdc-list-item--selected:not(:has(.mat-mdc-option-pseudo-checkbox))::after{right:auto;left:16px}}.mat-mdc-option-multiple{--mat-list-list-item-selected-container-color: var(--mat-list-list-item-container-color, transparent)}.mat-mdc-option-active .mat-focus-indicator::before{content:""}\n'],encapsulation:2,changeDetection:0})}return t})();class JB{_items;_activeItemIndex=yt(-1);_activeItem=yt(null);_wrap=!1;_typeaheadSubscription=pt.EMPTY;_itemChangesSubscription;_vertical=!0;_horizontal=null;_allowedModifierKeys=[];_homeAndEnd=!1;_pageUpAndDown={enabled:!1,delta:10};_effectRef;_typeahead;_skipPredicateFn=n=>n.disabled;constructor(n,e){this._items=n,n instanceof id?this._itemChangesSubscription=n.changes.subscribe(i=>this._itemsChanged(i.toArray())):El(n)&&(this._effectRef=fm(()=>this._itemsChanged(n()),{injector:e}))}tabOut=new me;change=new me;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){this._typeaheadSubscription.unsubscribe();const e=this._getItemsArray();return this._typeahead=new NB(e,{debounceInterval:"number"==typeof n?n:void 0,skipPredicate:i=>this._skipPredicateFn(i)}),this._typeaheadSubscription=this._typeahead.selectedItem.subscribe(i=>{this.setActiveItem(i)}),this}cancelTypeahead(){return this._typeahead?.reset(),this}withHomeAndEnd(n=!0){return this._homeAndEnd=n,this}withPageUpDown(n=!0,e=10){return this._pageUpAndDown={enabled:n,delta:e},this}setActiveItem(n){const e=this._activeItem();this.updateActiveItem(n),this._activeItem()!==e&&this.change.next(this._activeItemIndex())}onKeydown(n){const e=n.keyCode,o=["altKey","ctrlKey","metaKey","shiftKey"].every(r=>!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,s=this._getItemsArray().length;this._setActiveItemByIndex(r-1&&i!==this._activeItemIndex()&&(this._activeItemIndex.set(i),this._typeahead?.setCurrentSelectedItemIndex(i))}}}class Ime extends JB{setActiveItem(n){this.activeItem&&this.activeItem.setInactiveStyles(),super.setActiveItem(n),this.activeItem&&this.activeItem.setActiveStyles()}}class Ome{_multiple;_emitChanges;compareWith;_selection=new Set;_deselectedToEmit=[];_selectedToEmit=[];_selected=null;get selected(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected}changed=new me;constructor(n=!1,e,i=!0,o){this._multiple=n,this._emitChanges=i,this.compareWith=o,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.map(r=>this._getConcreteValue(r)));n.forEach(r=>this._markSelected(r)),e.filter(r=>!i.has(this._getConcreteValue(r,i))).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,e){if(this.compareWith){e=e??this._selection;for(let i of e)if(this.compareWith(n,i))return i;return n}return n}}let Ame=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({imports:[ii]})}return t})(),eV=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({imports:[IS,Ame,Qr,ii]})}return t})();const Rme=["trigger"],Fme=["panel"],Nme=[[["mat-select-trigger"]],"*"],Lme=["mat-select-trigger","*"];function Bme(t,n){if(1&t&&(h(0,"span",4),p(1),u()),2&t){const e=v();d(),M(e.placeholder)}}function Vme(t,n){1&t&&Pt(0)}function Hme(t,n){if(1&t&&(h(0,"span",11),p(1),u()),2&t){const e=v(2);d(),M(e.triggerValue)}}function jme(t,n){if(1&t&&(h(0,"span",5),x(1,Vme,1,0)(2,Hme,2,1,"span",11),u()),2&t){const e=v();d(),S(e.customTrigger?1:2)}}function Ume(t,n){if(1&t){const e=oe();h(0,"div",12,1),F("keydown",function(o){return j(e),U(v()._handleKeydown(o))}),Pt(2,1),u()}if(2&t){const e=v();Ze(e.panelClass),Ie("mat-select-panel-animations-enabled",!e._animationsDisabled)("mat-primary","primary"===(null==e._parentFormField?null:e._parentFormField.color))("mat-accent","accent"===(null==e._parentFormField?null:e._parentFormField.color))("mat-warn","warn"===(null==e._parentFormField?null:e._parentFormField.color))("mat-undefined",!(null!=e._parentFormField&&e._parentFormField.color)),$e("id",e.id+"-panel")("aria-multiselectable",e.multiple)("aria-label",e.ariaLabel||null)("aria-labelledby",e._getPanelAriaLabelledby())}}const zme=new Z("mat-select-scroll-strategy",{providedIn:"root",factory:()=>{const t=D(He);return()=>Bf(t)}}),$me=new Z("MAT_SELECT_CONFIG"),tV=new Z("MatSelectTrigger");class Wme{source;value;constructor(n,e){this.source=n,this.value=e}}let Pa=(()=>{class t{_viewportRuler=D(qd);_changeDetectorRef=D(Jt);_elementRef=D(Re);_dir=D(br,{optional:!0});_idGenerator=D(ni);_renderer=D(Qn);_parentFormField=D(fk,{optional:!0});ngControl=D(Zr,{self:!0,optional:!0});_liveAnnouncer=D(d4);_defaultOptions=D($me,{optional:!0});_animationsDisabled=ci();_popoverLocation;_initialized=new me;_cleanupDetach;options;optionGroups;customTrigger;_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"}];_scrollOptionIntoView(e){const i=this.options.toArray()[e];if(i){const o=this.panel.nativeElement,r=function Eme(t,n,e){if(e.length){let i=n.toArray(),o=e.toArray(),r=0;for(let s=0;se+i?Math.max(0,t-i+n):e}(s.offsetTop,s.offsetHeight,o.scrollTop,o.offsetHeight)}}_positioningSettled(){this._scrollOptionIntoView(this._keyManager.activeItemIndex||0)}_getChangeEvent(e){return new Wme(this,e)}_scrollStrategyFactory=D(zme);_panelOpen=!1;_compareWith=(e,i)=>e===i;_uid=this._idGenerator.getId("mat-select-");_triggerAriaLabelledBy=null;_previousControl;_destroy=new me;_errorStateTracker;stateChanges=new me;disableAutomaticLabeling=!0;userAriaDescribedBy;_selectionModel;_keyManager;_preferredOverlayOrigin;_overlayWidth;_onChange=()=>{};_onTouched=()=>{};_valueId=this._idGenerator.getId("mat-select-value-");_scrollStrategy;_overlayPanelClass=this._defaultOptions?.overlayPanelClass||"";get focused(){return this._focused||this._panelOpen}_focused=!1;controlType="mat-select";trigger;panel;_overlayDir;panelClass;disabled=!1;get disableRipple(){return this._disableRipple()}set disableRipple(e){this._disableRipple.set(e)}_disableRipple=yt(!1);tabIndex=0;get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(e){this._hideSingleSelectionIndicator=e,this._syncParentProperties()}_hideSingleSelectionIndicator=this._defaultOptions?.hideSingleSelectionIndicator??!1;get placeholder(){return this._placeholder}set placeholder(e){this._placeholder=e,this.stateChanges.next()}_placeholder;get required(){return this._required??this.ngControl?.control?.hasValidator(Ne.required)??!1}set required(e){this._required=e,this.stateChanges.next()}_required;get multiple(){return this._multiple}set multiple(e){this._multiple=e}_multiple=!1;disableOptionCentering=this._defaultOptions?.disableOptionCentering??!1;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)}_value;ariaLabel="";ariaLabelledby;get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(e){this._errorStateTracker.matcher=e}typeaheadDebounceInterval;sortComparator;get id(){return this._id}set id(e){this._id=e||this._uid,this.stateChanges.next()}_id;get errorState(){return this._errorStateTracker.errorState}set errorState(e){this._errorStateTracker.errorState=e}panelWidth=this._defaultOptions&&typeof this._defaultOptions.panelWidth<"u"?this._defaultOptions.panelWidth:"auto";canSelectNullableOptions=this._defaultOptions?.canSelectNullableOptions??!1;optionSelectionChanges=ya(()=>{const e=this.options;return e?e.changes.pipe(si(e),tn(()=>Cr(...e.map(i=>i.onSelectionChange)))):this._initialized.pipe(tn(()=>this.optionSelectionChanges))});openedChange=new we;_openedStream=this.openedChange.pipe(Tn(e=>e),Se(()=>{}));_closedStream=this.openedChange.pipe(Tn(e=>!e),Se(()=>{}));selectionChange=new we;valueChange=new we;constructor(){const e=D(pk),i=D(su,{optional:!0}),o=D(on,{optional:!0}),r=D(new Yh("tabindex"),{optional:!0}),s=D(mS,{optional:!0});this.ngControl&&(this.ngControl.valueAccessor=this),null!=this._defaultOptions?.typeaheadDebounceInterval&&(this.typeaheadDebounceInterval=this._defaultOptions.typeaheadDebounceInterval),this._errorStateTracker=new FB(e,this.ngControl,o,i,this.stateChanges),this._scrollStrategy=this._scrollStrategyFactory(),this.tabIndex=null==r?0:parseInt(r)||0,this._popoverLocation=!1===s?.usePopover?null:"inline",this.id=this.id}ngOnInit(){this._selectionModel=new Ome(this.multiple),this.stateChanges.next(),this._viewportRuler.change().pipe(fn(this._destroy)).subscribe(()=>{this.panelOpen&&(this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._changeDetectorRef.detectChanges())})}ngAfterContentInit(){this._initialized.next(),this._initialized.complete(),this._initKeyManager(),this._selectionModel.changed.pipe(fn(this._destroy)).subscribe(e=>{e.added.forEach(i=>i.select()),e.removed.forEach(i=>i.deselect())}),this.options.changes.pipe(si(null),fn(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),e.panelClass&&this.panelClass instanceof Set&&(this.panelClass=Array.from(this.panelClass))}ngOnDestroy(){this._cleanupDetach?.(),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._parentFormField&&(this._preferredOverlayOrigin=this._parentFormField.getConnectedOverlayOrigin()),this._cleanupDetach?.(),this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._applyModalPanelOwnership(),this._panelOpen=!0,this._overlayDir.positionChange.pipe(Cn(1)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this._positioningSettled()}),this._overlayDir.attachOverlay(),this._keyManager.withHorizontalOrientation(null),this._highlightCorrectOption(),this._changeDetectorRef.markForCheck(),this.stateChanges.next(),Promise.resolve().then(()=>this.openedChange.emit(!0)))}_trackedModal=null;_applyModalPanelOwnership(){const e=this._elementRef.nativeElement.closest('body > .cdk-overlay-container [aria-modal="true"]');if(!e)return;const i=`${this.id}-panel`;this._trackedModal&&mk(this._trackedModal,"aria-owns",i),VB(e,"aria-owns",i),this._trackedModal=e}_clearFromModal(){this._trackedModal&&(mk(this._trackedModal,"aria-owns",`${this.id}-panel`),this._trackedModal=null)}close(){this._panelOpen&&(this._panelOpen=!1,this._exitAndDetach(),this._keyManager.withHorizontalOrientation(this._isRtl()?"rtl":"ltr"),this._changeDetectorRef.markForCheck(),this._onTouched(),this.stateChanges.next(),Promise.resolve().then(()=>this.openedChange.emit(!1)))}_exitAndDetach(){if(this._animationsDisabled||!this.panel)return void this._detachOverlay();this._cleanupDetach?.(),this._cleanupDetach=()=>{i(),clearTimeout(o),this._cleanupDetach=void 0};const e=this.panel.nativeElement,i=this._renderer.listen(e,"animationend",r=>{"_mat-select-exit"===r.animationName&&(this._cleanupDetach?.(),this._detachOverlay())}),o=setTimeout(()=>{this._cleanupDetach?.(),this._detachOverlay()},200);e.classList.add("mat-select-panel-exit")}_detachOverlay(){this._overlayDir.detachOverlay(),this._changeDetectorRef.markForCheck()}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}updateErrorState(){this._errorStateTracker.updateErrorState()}_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,s=this._keyManager;if(!s.isTyping()&&r&&!yr(e)||(this.multiple||e.altKey)&&o)e.preventDefault(),this.open();else if(!this.multiple){const a=this.selected;s.onKeydown(e);const l=this.selected;l&&a!==l&&this._liveAnnouncer.announce(l.viewValue,1e4)}}_handleOpenKeydown(e){const i=this._keyManager,o=e.keyCode,r=40===o||38===o,s=i.isTyping();if(r&&e.altKey)e.preventDefault(),this.close();else if(s||13!==o&&32!==o||!i.activeItem||yr(e))if(!s&&this._multiple&&65===o&&e.ctrlKey){e.preventDefault();const a=this.options.some(l=>!l.disabled&&!l.selected);this.options.forEach(l=>{l.disabled||(a?l.select():l.deselect())})}else{const a=i.activeItemIndex;i.onKeydown(e),this._multiple&&r&&e.shiftKey&&i.activeItem&&i.activeItemIndex!==a&&i.activeItem._selectViaInteraction()}else e.preventDefault(),i.activeItem._selectViaInteraction()}_handleOverlayKeydown(e){27===e.keyCode&&!yr(e)&&(e.preventDefault(),this.close())}_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())}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.canSelectNullableOptions)&&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=>!this.panelOpen&&e.disabled;_getOverlayWidth(e){return"auto"===this.panelWidth?(e instanceof kb?e.elementRef:e||this._elementRef).nativeElement.getBoundingClientRect().width:null===this.panelWidth?"":this.panelWidth}_syncParentProperties(){if(this.options)for(const e of this.options)e._changeDetectorRef.markForCheck()}_initKeyManager(){this._keyManager=new Ime(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=Cr(this.options.changes,this._destroy);this.optionSelectionChanges.pipe(fn(e)).subscribe(i=>{this._onSelect(i.source,i.isUserInput),i.isUserInput&&!this.multiple&&this._panelOpen&&(this.close(),this.focus())}),Cr(...this.options.map(i=>i._stateChanges)).pipe(fn(e)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this.stateChanges.next()})}_onSelect(e,i){const o=this._selectionModel.isSelected(e);this.canSelectNullableOptions||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;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&&!!this._overlayDir}focus(e){this._elementRef.nativeElement.focus(e)}_getPanelAriaLabelledby(){if(this.ariaLabel)return null;const e=this._parentFormField?.getLabelId()||null;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;let e=this._parentFormField?.getLabelId()||"";return this.ariaLabelledby&&(e+=" "+this.ariaLabelledby),e||(e=this._valueId),e}get describedByIds(){return this._elementRef.nativeElement.getAttribute("aria-describedby")?.split(" ")||[]}setDescribedByIds(e){const i=this._elementRef.nativeElement;e.length?i.setAttribute("aria-describedby",e.join(" ")):i.removeAttribute("aria-describedby")}onContainerClick(e){const i=vr(e);i&&("MAT-OPTION"===i.tagName||i.classList.contains("cdk-overlay-backdrop")||i.closest(".mat-mdc-select-panel"))||(this.focus(),this.open())}get shouldLabelFloat(){return this.panelOpen||!this.empty||this.focused&&!!this.placeholder}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["mat-select"]],contentQueries:function(i,o,r){if(1&i&&ys(r,tV,5)(r,Qr,5)(r,QB,5),2&i){let s;he(s=fe())&&(o.customTrigger=s.first),he(s=fe())&&(o.options=s),he(s=fe())&&(o.optionGroups=s)}},viewQuery:function(i,o){if(1&i&&ot(Rme,5)(Fme,5)(e4,5),2&i){let r;he(r=fe())&&(o.trigger=r.first),he(r=fe())&&(o.panel=r.first),he(r=fe())&&(o._overlayDir=r.first)}},hostAttrs:["role","combobox","aria-haspopup","listbox",1,"mat-mdc-select"],hostVars:21,hostBindings:function(i,o){1&i&&F("keydown",function(s){return o._handleKeydown(s)})("focus",function(){return o._onFocus()})("blur",function(){return o._onBlur()}),2&i&&($e("id",o.id)("tabindex",o.disabled?-1: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()),Ie("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)("mat-select-open",o.panelOpen))},inputs:{userAriaDescribedBy:[0,"aria-describedby","userAriaDescribedBy"],panelClass:"panelClass",disabled:[2,"disabled","disabled",De],disableRipple:[2,"disableRipple","disableRipple",De],tabIndex:[2,"tabIndex","tabIndex",e=>null==e?0:hr(e)],hideSingleSelectionIndicator:[2,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",De],placeholder:"placeholder",required:[2,"required","required",De],multiple:[2,"multiple","multiple",De],disableOptionCentering:[2,"disableOptionCentering","disableOptionCentering",De],compareWith:"compareWith",value:"value",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],errorStateMatcher:"errorStateMatcher",typeaheadDebounceInterval:[2,"typeaheadDebounceInterval","typeaheadDebounceInterval",hr],sortComparator:"sortComparator",id:"id",panelWidth:"panelWidth",canSelectNullableOptions:[2,"canSelectNullableOptions","canSelectNullableOptions",De]},outputs:{openedChange:"openedChange",_openedStream:"opened",_closedStream:"closed",selectionChange:"selectionChange",valueChange:"valueChange"},exportAs:["matSelect"],features:[lt([{provide:hk,useExisting:t},{provide:ZB,useExisting:t}]),_i],ngContentSelectors:Lme,decls:11,vars:10,consts:[["fallbackOverlayOrigin","cdkOverlayOrigin","trigger",""],["panel",""],["cdk-overlay-origin","",1,"mat-mdc-select-trigger",3,"click"],[1,"mat-mdc-select-value"],[1,"mat-mdc-select-placeholder","mat-mdc-select-min-line"],[1,"mat-mdc-select-value-text"],[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","","cdkConnectedOverlayHasBackdrop","","cdkConnectedOverlayBackdropClass","cdk-overlay-transparent-backdrop",3,"detach","backdropClick","overlayKeydown","cdkConnectedOverlayDisableClose","cdkConnectedOverlayPanelClass","cdkConnectedOverlayScrollStrategy","cdkConnectedOverlayOrigin","cdkConnectedOverlayPositions","cdkConnectedOverlayWidth","cdkConnectedOverlayFlexibleDimensions","cdkConnectedOverlayUsePopover"],[1,"mat-mdc-select-min-line"],["role","listbox","tabindex","-1",1,"mat-mdc-select-panel","mdc-menu-surface","mdc-menu-surface--open",3,"keydown"]],template:function(i,o){if(1&i&&(yi(Nme),h(0,"div",2,0),F("click",function(){return o.open()}),h(3,"div",3),x(4,Bme,2,1,"span",4)(5,jme,3,1,"span",5),u(),h(6,"div",6)(7,"div",7),rl(),h(8,"svg",8),B(9,"path",9),u()()()(),it(10,Ume,3,16,"ng-template",10),F("detach",function(){return o.close()})("backdropClick",function(){return o.close()})("overlayKeydown",function(s){return o._handleOverlayKeydown(s)})),2&i){const r=Hn(1);d(3),$e("id",o._valueId),d(),S(o.empty?4:5),d(6),C("cdkConnectedOverlayDisableClose",!0)("cdkConnectedOverlayPanelClass",o._overlayPanelClass)("cdkConnectedOverlayScrollStrategy",o._scrollStrategy)("cdkConnectedOverlayOrigin",o._preferredOverlayOrigin||r)("cdkConnectedOverlayPositions",o._positions)("cdkConnectedOverlayWidth",o._overlayWidth)("cdkConnectedOverlayFlexibleDimensions",!0)("cdkConnectedOverlayUsePopover",o._popoverLocation)}},dependencies:[kb,e4],styles:['@keyframes _mat-select-enter{from{opacity:0;transform:scaleY(0.8)}to{opacity:1;transform:none}}@keyframes _mat-select-exit{from{opacity:1}to{opacity:0}}.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, var(--mat-sys-on-surface));font-family:var(--mat-select-trigger-text-font, var(--mat-sys-body-large-font));line-height:var(--mat-select-trigger-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mat-select-trigger-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-select-trigger-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mat-select-trigger-text-tracking, var(--mat-sys-body-large-tracking))}div.mat-mdc-select-panel{box-shadow:var(--mat-select-container-elevation-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-mdc-select-disabled{color:var(--mat-select-disabled-trigger-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-select-disabled .mat-mdc-select-placeholder{color:var(--mat-select-disabled-trigger-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.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 .mdc-text-field--no-label .mat-mdc-select-arrow-wrapper{transform:none}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-invalid .mat-mdc-select-arrow,.mat-form-field-invalid:not(.mat-form-field-disabled) .mat-mdc-form-field-infix::after{color:var(--mat-select-invalid-arrow-color, var(--mat-sys-error))}.mat-mdc-select-arrow{width:10px;height:5px;position:relative;color:var(--mat-select-enabled-arrow-color, var(--mat-sys-on-surface-variant))}.mat-mdc-form-field.mat-focused .mat-mdc-select-arrow{color:var(--mat-select-focused-arrow-color, var(--mat-sys-primary))}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-disabled .mat-mdc-select-arrow{color:var(--mat-select-disabled-arrow-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-select-open .mat-mdc-select-arrow{transform:rotate(180deg)}.mat-form-field-animations-enabled .mat-mdc-select-arrow{transition:transform 80ms linear}.mat-mdc-select-arrow svg{fill:currentColor;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}@media(forced-colors: active){.mat-mdc-select-arrow svg{fill:CanvasText}.mat-mdc-select-disabled .mat-mdc-select-arrow svg{fill:GrayText}}div.mat-mdc-select-panel{width:100%;max-height:275px;outline:0;overflow:auto;padding:8px 0;border-radius:4px;box-sizing:border-box;position:relative;background-color:var(--mat-select-panel-background-color, var(--mat-sys-surface-container))}@media(forced-colors: 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-select-panel-animations-enabled{animation:_mat-select-enter 120ms cubic-bezier(0, 0, 0.2, 1)}.mat-select-panel-animations-enabled.mat-select-panel-exit{animation:_mat-select-exit 100ms linear}.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, var(--mat-sys-on-surface-variant))}.mat-mdc-form-field:not(.mat-form-field-animations-enabled) .mat-mdc-select-placeholder,._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}.mat-form-field-appearance-fill .mat-mdc-select-arrow-wrapper{transform:var(--mat-select-arrow-transform, translateY(-8px))}\n'],encapsulation:2,changeDetection:0})}return t})(),Gme=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["mat-select-trigger"]],features:[lt([{provide:tV,useExisting:t}])]})}return t})(),qme=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({imports:[Zd,eV,ii,Rf,lv,eV]})}return t})();function Kme(t,n){if(1&t&&B(0,"input",6),2&t){const e=v().$implicit;C("formControlName",e.keyNameInFiltersObject)("maxlength",e.maxlength)}}function Yme(t,n){if(1&t&&(h(0,"div",10),B(1,"div",11),u()),2&t){const e=v().$implicit,i=v(2).$implicit;no("background-image: url('"+i.printableLabelGeneralSettings.defaultImage+"'); width: "+i.printableLabelGeneralSettings.imageWidth+"px; height: "+i.printableLabelGeneralSettings.imageHeight+"px;"),d(),no("background-image: url('"+e.image+"');")}}function Xme(t,n){if(1&t&&(h(0,"mat-option",8),x(1,Yme,2,4,"div",9),p(2),b(3,"translate"),u()),2&t){const e=n.$implicit,i=v(2).$implicit;C("value",e.value),d(),S(i.printableLabelGeneralSettings&&e.image?1:-1),d(),E(" ",y(3,3,e.label)," ")}}function Zme(t,n){if(1&t&&(h(0,"mat-select",7),ve(1,Xme,4,5,"mat-option",8,Fe),u()),2&t){const e=v().$implicit;C("formControlName",e.keyNameInFiltersObject),d(),ye(e.printableLabelsForValues)}}function Qme(t,n){if(1&t&&(h(0,"mat-form-field")(1,"div",4)(2,"label",5),p(3),b(4,"translate"),u(),x(5,Kme,1,2,"input",6),x(6,Zme,3,1,"mat-select",7),u()()),2&t){const e=n.$implicit,i=v();d(3),M(y(4,3,e.filterName)),d(2),S(e.type===i.filterFieldTypes.TextInput?5:-1),d(),S(e.type===i.filterFieldTypes.Select?6:-1)}}let Jme=(()=>{class t{static openDialog(e,i){const o=new nn;return o.data=i,o.autoFocus=!1,o.width=rt.smallModalWidth,e.open(t,o)}constructor(e,i,o){this.data=e,this.dialogRef=i,this.formBuilder=o,this.filterFieldTypes=Sn}ngOnInit(){const e={};this.data.filterPropertiesList.forEach(i=>{e[i.keyNameInFiltersObject]=[this.data.currentFilters[i.keyNameInFiltersObject]]}),this.form=this.formBuilder.group(e)}apply(){const e={};this.data.filterPropertiesList.forEach(i=>{e[i.keyNameInFiltersObject]=this.form.get(i.keyNameInFiltersObject).value.trim()}),this.dialogRef.close(e)}static{this.\u0275fac=function(i){return new(i||t)(O(En),O(Bt),O(di))}}static{this.\u0275cmp=re({type:t,selectors:[["app-filters-selection"]],standalone:!1,decls:9,vars:8,consts:[["button",""],[3,"headline","dialog"],[3,"formGroup"],["color","primary",1,"float-right",3,"action"],[1,"field-container"],["for","remoteKey",1,"field-label"],["matInput","",3,"formControlName","maxlength"],[3,"formControlName"],[3,"value"],[1,"image-container",3,"style"],[1,"image-container"],[1,"image"]],template:function(i,o){1&i&&(h(0,"app-dialog",1),b(1,"translate"),h(2,"form",2),ve(3,Qme,7,5,"mat-form-field",null,Fe),u(),h(5,"app-button",3,0),F("action",function(){return o.apply()}),p(7),b(8,"translate"),u()()),2&i&&(C("headline",y(1,4,"filters.filter-action"))("dialog",o.dialogRef),d(2),C("formGroup",o.form),d(),ye(o.data.filterPropertiesList),d(4),E(" ",y(8,6,"common.ok")," "))},dependencies:[xn,Gt,qt,wn,wi,on,mn,sn,In,Pa,Qr,ui,gn,xe],styles:[".image-container[_ngcontent-%COMP%]{display:inline-block;background-size:contain;margin-right:5px}.image-container[_ngcontent-%COMP%] .image[_ngcontent-%COMP%]{background-size:contain;width:100%;height:100%}"]})}}return t})();class _u{get currentFiltersTexts(){return this.currentFiltersTextsInternal}get currentUrlQueryParams(){return this.currentUrlQueryParamsInternal}get dataFiltered(){return this.dataUpdatedSubject.asObservable()}constructor(n,e,i,o,r){this.dialog=n,this.route=e,this.router=i,this.currentFiltersTextsInternal=[],this.dataUpdatedSubject=new me,this.filterPropertiesList=o,this.currentFilters={},this.filterPropertiesList.forEach(s=>{s.keyNameInFiltersObject=r+"_"+s.keyNameInElementsArray,this.currentFilters[s.keyNameInFiltersObject]=""}),this.navigationsSubscription=this.route.queryParamMap.subscribe(s=>{Object.keys(this.currentFilters).forEach(a=>{s.has(a)&&(this.currentFilters[a]=s.get(a))}),this.currentUrlQueryParamsInternal={},s.keys.forEach(a=>{this.currentUrlQueryParamsInternal[a]=s.get(a)}),this.filter()})}dispose(){this.dataUpdatedSubject.complete(),this.navigationsSubscription.unsubscribe()}setData(n){this.data=n,this.filter()}removeFilters(){const n=Rt.createConfirmationDialog(this.dialog,"filters.remove-confirmation");n.componentInstance.operationAccepted.subscribe(()=>{n.componentInstance.closeModal(),this.router.navigate([],{queryParams:{}})})}changeFilters(){Jme.openDialog(this.dialog,{filterPropertiesList:this.filterPropertiesList,currentFilters:this.currentFilters}).afterClosed().subscribe(e=>{e&&this.router.navigate([],{queryParams:e})})}filter(){if(this.data){let n,e=!1;Object.keys(this.currentFilters).forEach(i=>{this.currentFilters[i]&&(e=!0)}),e?(n=function vme(t,n,e){if(t){const i=[];return Object.keys(n).forEach(r=>{if(n[r])for(const s of e)if(s.keyNameInFiltersObject===r){i.push(s);break}}),t.filter(r=>{let s=!0;return i.forEach(a=>{const l=String(r[a.keyNameInElementsArray]).toLowerCase().includes(n[a.keyNameInFiltersObject].toLowerCase()),c=a.secondaryKeyNameInElementsArray&&String(r[a.secondaryKeyNameInElementsArray]).toLowerCase().includes(n[a.keyNameInFiltersObject].toLowerCase());!l&&!c&&(s=!1)}),s})}return null}(this.data,this.currentFilters,this.filterPropertiesList),this.updateCurrentFilters()):(n=this.data,this.updateCurrentFilters()),this.dataUpdatedSubject.next(n)}}updateCurrentFilters(){this.currentFiltersTextsInternal=function yme(t,n){const e=[];return n.forEach(i=>{if(t[i.keyNameInFiltersObject]){let o,r;i.printableLabelsForValues&&i.printableLabelsForValues.forEach(s=>{s.value===t[i.keyNameInFiltersObject]&&(r=s.label)}),r||(o=t[i.keyNameInFiltersObject]),e.push({filterName:i.filterName,translatableValue:r,value:o})}}),e}(this.currentFilters,this.filterPropertiesList)}}function ege(t,n){if(1&t){const e=oe();h(0,"div",3)(1,"div",4)(2,"div",5),p(3),u(),h(4,"div",6),p(5),u()(),h(6,"div",7)(7,"app-button",8),F("click",function(){const o=j(e).$implicit;return U(v(2).openTerminal(o.key))}),p(8),b(9,"translate"),u()()()}if(2&t){const e=n.$implicit;d(3),M(e.label),d(2),M(e.version),d(3),E(" ",y(9,3,"update-all.update-button")," ")}}function tge(t,n){if(1&t&&(h(0,"div",1),p(1),b(2,"translate"),u(),h(3,"div",2),ve(4,ege,10,5,"div",3,Fe),u()),2&t){const e=v();d(),E(" ",y(2,1,"update-all.updatable-list-text")," "),d(3),ye(e.updatableNodes)}}function nge(t,n){if(1&t&&(h(0,"div",6),p(1),u()),2&t){const e=v().$implicit;d(),M(e.tag)}}function ige(t,n){if(1&t&&(h(0,"div",3)(1,"div",4)(2,"div",5),p(3),u(),h(4,"div",6),p(5),u(),x(6,nge,2,1,"div",6),u()()),2&t){const e=n.$implicit;d(3),M(e.label),d(2),M(e.version),d(),S(e.tag?6:-1)}}function oge(t,n){if(1&t&&(h(0,"div",1),p(1),b(2,"translate"),u(),h(3,"div",2),ve(4,ige,7,3,"div",3,Fe),u()),2&t){const e=v();d(),E(" ",y(2,1,"update-all.non-updatable-list-text")," "),d(3),ye(e.nonUpdatableNodes)}}let rge=(()=>{class t{static openDialog(e,i,o){const r=new nn;return r.data=[i,o],r.autoFocus=!1,r.width=rt.smallModalWidth,e.open(t,r)}constructor(e,i){this.dialogRef=e,this.updatableNodes=i[0],this.nonUpdatableNodes=i[1]}openTerminal(e){const i=window.location.protocol,o=window.location.host.replace("localhost:4200","127.0.0.1:8000");window.open(i+"//"+o+"/pty/"+e+"?commands=update","_blank","noopener noreferrer")}static{this.\u0275fac=function(i){return new(i||t)(O(Bt),O(En))}}static{this.\u0275cmp=re({type:t,selectors:[["app-update-all"]],standalone:!1,decls:4,vars:6,consts:[[3,"headline","dialog"],[1,"text-container"],[1,"list-container"],[1,"list-element"],[1,"left-part"],[1,"name"],[1,"version"],[1,"right-part"],["color","primary",3,"click"]],template:function(i,o){1&i&&(h(0,"app-dialog",0),b(1,"translate"),x(2,tge,6,3),x(3,oge,6,3),u()),2&i&&(C("headline",y(1,4,"update-all.title"))("dialog",o.dialogRef),d(2),S(o.updatableNodes&&o.updatableNodes.length>0?2:-1),d(),S(o.nonUpdatableNodes&&o.nonUpdatableNodes.length>0?3:-1))},dependencies:[ui,gn,xe],styles:[".text-container[_ngcontent-%COMP%]{word-break:break-word}.list-container[_ngcontent-%COMP%]{font-size:14px;margin:10px;color:#215f9e;word-break:break-word;line-height:1.2}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%]{display:flex;margin-bottom:10px}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-part[_ngcontent-%COMP%]{flex-grow:1;flex-shrink:1;align-self:center;margin-right:10px;min-width:0}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-part[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:575px){.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-part[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{font-size:.7rem}}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-part[_ngcontent-%COMP%] .version[_ngcontent-%COMP%]{font-size:.7rem;color:#777;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .right-part[_ngcontent-%COMP%]{flex-basis:0;flex-shrink:0}.list-container[_ngcontent-%COMP%] .details[_ngcontent-%COMP%]{color:#777}"]})}}return t})();const sge=["mat-internal-form-field",""],age=["*"];let nV=(()=>{class t{labelPosition="after";static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["div","mat-internal-form-field",""]],hostAttrs:[1,"mdc-form-field","mat-internal-form-field"],hostVars:2,hostBindings:function(i,o){2&i&&Ie("mdc-form-field--align-end","before"===o.labelPosition)},inputs:{labelPosition:"labelPosition"},attrs:sge,ngContentSelectors:age,decls:1,vars:0,template:function(i,o){1&i&&(yi(),Pt(0))},styles:[".mat-internal-form-field{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-flex;align-items:center;vertical-align:middle}.mat-internal-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mat-internal-form-field>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px}.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 .mdc-form-field--align-end label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0}\n"],encapsulation:2,changeDetection:0})}return t})();const lge=["input"],cge=["label"],dge=["*"],xk={color:"accent",clickAction:"check-indeterminate",disabledInteractive:!1},uge=new Z("mat-checkbox-default-options",{providedIn:"root",factory:()=>xk});var Wi=function(t){return t[t.Init=0]="Init",t[t.Checked=1]="Checked",t[t.Unchecked=2]="Unchecked",t[t.Indeterminate=3]="Indeterminate",t}(Wi||{});class hge{source;checked}let kr=(()=>{class t{_elementRef=D(Re);_changeDetectorRef=D(Jt);_ngZone=D(_e);_animationsDisabled=ci();_options=D(uge,{optional:!0});focus(){this._inputElement.nativeElement.focus()}_createChangeEvent(e){const i=new hge;return i.source=this,i.checked=e,i}_getAnimationTargetElement(){return this._inputElement?.nativeElement}_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"};ariaLabel="";ariaLabelledby=null;ariaDescribedby;ariaExpanded;ariaControls;ariaOwns;_uniqueId;id;get inputId(){return`${this.id||this._uniqueId}-input`}required=!1;labelPosition="after";name=null;change=new we;indeterminateChange=new we;value;disableRipple=!1;_inputElement;_labelElement;tabIndex;color;disabledInteractive;_onTouched=()=>{};_currentAnimationClass="";_currentCheckState=Wi.Init;_controlValueAccessorChangeFn=()=>{};_validatorChangeFn=()=>{};constructor(){D(zo).load(tu);const e=D(new Yh("tabindex"),{optional:!0});this._options=this._options||xk,this.color=this._options.color||xk.color,this.tabIndex=null==e?0:parseInt(e)||0,this.id=this._uniqueId=D(ni).getId("mat-mdc-checkbox-"),this.disabledInteractive=this._options?.disabledInteractive??!1}ngOnChanges(e){e.required&&this._validatorChangeFn()}ngAfterViewInit(){this._syncIndeterminate(this.indeterminate)}get checked(){return this._checked}set checked(e){e!=this.checked&&(this._checked=e,this._changeDetectorRef.markForCheck())}_checked=!1;get disabled(){return this._disabled}set disabled(e){e!==this.disabled&&(this._disabled=e,this._changeDetectorRef.markForCheck())}_disabled=!1;get indeterminate(){return this._indeterminate()}set indeterminate(e){const i=e!=this._indeterminate();this._indeterminate.set(e),i&&(this._transitionCheckState(e?Wi.Indeterminate:this.checked?Wi.Checked:Wi.Unchecked),this.indeterminateChange.emit(e)),this._syncIndeterminate(e)}_indeterminate=yt(!1);_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}validate(e){return this.required&&!0!==e.value?{required:!0}:null}registerOnValidatorChange(e){this._validatorChangeFn=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&&this.disabledInteractive||!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.set(!1),this.indeterminateChange.emit(!1)}),this._checked=!this._checked,this._transitionCheckState(this._checked?Wi.Checked:Wi.Unchecked),this._emitChangeEvent())}_onInteractionEvent(e){e.stopPropagation()}_onBlur(){Promise.resolve().then(()=>{this._onTouched(),this._changeDetectorRef.markForCheck()})}_getAnimationClassForCheckStateTransition(e,i){if(this._animationsDisabled)return"";switch(e){case Wi.Init:if(i===Wi.Checked)return this._animationClasses.uncheckedToChecked;if(i==Wi.Indeterminate)return this._checked?this._animationClasses.checkedToIndeterminate:this._animationClasses.uncheckedToIndeterminate;break;case Wi.Unchecked:return i===Wi.Checked?this._animationClasses.uncheckedToChecked:this._animationClasses.uncheckedToIndeterminate;case Wi.Checked:return i===Wi.Unchecked?this._animationClasses.checkedToUnchecked:this._animationClasses.checkedToIndeterminate;case Wi.Indeterminate:return i===Wi.Checked?this._animationClasses.indeterminateToChecked:this._animationClasses.indeterminateToUnchecked}return""}_syncIndeterminate(e){const i=this._inputElement;i&&(i.nativeElement.indeterminate=e)}_onInputClick(){this._handleInputClick()}_onTouchTargetClick(){this._handleInputClick(),this.disabled||this._inputElement.nativeElement.focus()}_preventBubblingFromLabel(e){e.target&&this._labelElement.nativeElement.contains(e.target)&&e.stopPropagation()}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["mat-checkbox"]],viewQuery:function(i,o){if(1&i&&ot(lge,5)(cge,5),2&i){let r;he(r=fe())&&(o._inputElement=r.first),he(r=fe())&&(o._labelElement=r.first)}},hostAttrs:[1,"mat-mdc-checkbox"],hostVars:16,hostBindings:function(i,o){2&i&&(ur("id",o.id),$e("tabindex",null)("aria-label",null)("aria-labelledby",null),Ze(o.color?"mat-"+o.color:"mat-accent"),Ie("_mat-animation-noopable",o._animationsDisabled)("mdc-checkbox--disabled",o.disabled)("mat-mdc-checkbox-disabled",o.disabled)("mat-mdc-checkbox-checked",o.checked)("mat-mdc-checkbox-disabled-interactive",o.disabledInteractive))},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],ariaExpanded:[2,"aria-expanded","ariaExpanded",De],ariaControls:[0,"aria-controls","ariaControls"],ariaOwns:[0,"aria-owns","ariaOwns"],id:"id",required:[2,"required","required",De],labelPosition:"labelPosition",name:"name",value:"value",disableRipple:[2,"disableRipple","disableRipple",De],tabIndex:[2,"tabIndex","tabIndex",e=>null==e?void 0:hr(e)],color:"color",disabledInteractive:[2,"disabledInteractive","disabledInteractive",De],checked:[2,"checked","checked",De],disabled:[2,"disabled","disabled",De],indeterminate:[2,"indeterminate","indeterminate",De]},outputs:{change:"change",indeterminateChange:"indeterminateChange"},exportAs:["matCheckbox"],features:[lt([{provide:Yo,useExisting:Nt(()=>t),multi:!0},{provide:Ci,useExisting:t,multi:!0}]),_i],ngContentSelectors:dge,decls:15,vars:23,consts:[["checkbox",""],["input",""],["label",""],["mat-internal-form-field","",3,"click","labelPosition"],[1,"mdc-checkbox"],["aria-hidden","true",1,"mat-mdc-checkbox-touch-target",3,"click"],["type","checkbox",1,"mdc-checkbox__native-control",3,"blur","click","change","checked","indeterminate","disabled","id","required","tabIndex"],["aria-hidden","true",1,"mdc-checkbox__ripple"],["aria-hidden","true",1,"mdc-checkbox__background"],["focusable","false","viewBox","0 0 24 24",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","","aria-hidden","true",1,"mat-mdc-checkbox-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-label",3,"for"]],template:function(i,o){if(1&i&&(yi(),h(0,"div",3),F("click",function(s){return o._preventBubblingFromLabel(s)}),h(1,"div",4,0)(3,"div",5),F("click",function(){return o._onTouchTargetClick()}),u(),h(4,"input",6,1),F("blur",function(){return o._onBlur()})("click",function(){return o._onInputClick()})("change",function(s){return o._onInteractionEvent(s)}),u(),B(6,"div",7),h(7,"div",8),rl(),h(8,"svg",9),B(9,"path",10),u(),Gy(),B(10,"div",11),u(),B(11,"div",12),u(),h(12,"label",13,2),Pt(14),u()()),2&i){const r=Hn(2);C("labelPosition",o.labelPosition),d(4),Ie("mdc-checkbox--selected",o.checked),C("checked",o.checked)("indeterminate",o.indeterminate)("disabled",o.disabled&&!o.disabledInteractive)("id",o.inputId)("required",o.required)("tabIndex",o.disabled&&!o.disabledInteractive?-1:o.tabIndex),$e("aria-label",o.ariaLabel||null)("aria-labelledby",o.ariaLabelledby)("aria-describedby",o.ariaDescribedby)("aria-checked",o.indeterminate?"mixed":null)("aria-controls",o.ariaControls)("aria-disabled",!(!o.disabled||!o.disabledInteractive)||null)("aria-expanded",o.ariaExpanded)("aria-owns",o.ariaOwns)("name",o.name)("value",o.value),d(7),C("matRippleTrigger",r)("matRippleDisabled",o.disableRipple||o.disabled)("matRippleCentered",!0),d(),C("for",o.inputId)}},dependencies:[eu,nV],styles:['.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;padding:calc((var(--mat-checkbox-state-layer-size, 40px) - 18px)/2);margin:calc((var(--mat-checkbox-state-layer-size, 40px) - var(--mat-checkbox-state-layer-size, 40px))/2)}.mdc-checkbox:hover>.mdc-checkbox__ripple{opacity:var(--mat-checkbox-unselected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));background-color:var(--mat-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:hover>.mat-mdc-checkbox-ripple>.mat-ripple-element{background-color:var(--mat-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus+.mdc-checkbox__ripple{opacity:var(--mat-checkbox-unselected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));background-color:var(--mat-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mat-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:active>.mdc-checkbox__native-control+.mdc-checkbox__ripple{opacity:var(--mat-checkbox-unselected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));background-color:var(--mat-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:active>.mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mat-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:hover>.mdc-checkbox__native-control:checked+.mdc-checkbox__ripple{opacity:var(--mat-checkbox-selected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));background-color:var(--mat-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:hover>.mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mat-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox .mdc-checkbox__native-control:focus:checked+.mdc-checkbox__ripple{opacity:var(--mat-checkbox-selected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));background-color:var(--mat-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mat-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:active>.mdc-checkbox__native-control:checked+.mdc-checkbox__ripple{opacity:var(--mat-checkbox-selected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));background-color:var(--mat-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:active>.mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mat-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control+.mdc-checkbox__ripple{background-color:var(--mat-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit;z-index:1;width:var(--mat-checkbox-state-layer-size, 40px);height:var(--mat-checkbox-state-layer-size, 40px);top:calc((var(--mat-checkbox-state-layer-size, 40px) - var(--mat-checkbox-state-layer-size, 40px))/2);right:calc((var(--mat-checkbox-state-layer-size, 40px) - var(--mat-checkbox-state-layer-size, 40px))/2);left:calc((var(--mat-checkbox-state-layer-size, 40px) - var(--mat-checkbox-state-layer-size, 40px))/2)}.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 cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms cubic-bezier(0.4, 0, 0.6, 1);-webkit-print-color-adjust:exact;color-adjust:exact;border-color:var(--mat-checkbox-unselected-icon-color, var(--mat-sys-on-surface-variant));top:calc((var(--mat-checkbox-state-layer-size, 40px) - 18px)/2);left:calc((var(--mat-checkbox-state-layer-size, 40px) - 18px)/2)}.mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background{border-color:var(--mat-checkbox-selected-icon-color, var(--mat-sys-primary));background-color:var(--mat-checkbox-selected-icon-color, var(--mat-sys-primary))}.mdc-checkbox--disabled .mdc-checkbox__background{border-color:var(--mat-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}@media(forced-colors: active){.mdc-checkbox--disabled .mdc-checkbox__background{border-color:GrayText}}.mdc-checkbox__native-control:disabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:disabled:indeterminate~.mdc-checkbox__background{background-color:var(--mat-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:rgba(0,0,0,0)}@media(forced-colors: active){.mdc-checkbox__native-control:disabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:disabled:indeterminate~.mdc-checkbox__background{border-color:GrayText}}.mdc-checkbox:hover>.mdc-checkbox__native-control:not(:checked)~.mdc-checkbox__background,.mdc-checkbox:hover>.mdc-checkbox__native-control:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mat-checkbox-unselected-hover-icon-color, var(--mat-sys-on-surface));background-color:rgba(0,0,0,0)}.mdc-checkbox:hover>.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox:hover>.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{border-color:var(--mat-checkbox-selected-hover-icon-color, var(--mat-sys-primary));background-color:var(--mat-checkbox-selected-hover-icon-color, var(--mat-sys-primary))}.mdc-checkbox__native-control:focus:focus:not(:checked)~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mat-checkbox-unselected-focus-icon-color, var(--mat-sys-on-surface))}.mdc-checkbox__native-control:focus:focus:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:indeterminate~.mdc-checkbox__background{border-color:var(--mat-checkbox-selected-focus-icon-color, var(--mat-sys-primary));background-color:var(--mat-checkbox-selected-focus-icon-color, var(--mat-sys-primary))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox:hover>.mdc-checkbox__native-control~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__background{border-color:var(--mat-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}@media(forced-colors: active){.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox:hover>.mdc-checkbox__native-control~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__background{border-color:GrayText}}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{background-color:var(--mat-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:rgba(0,0,0,0)}.mdc-checkbox__checkmark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;transition:opacity 180ms cubic-bezier(0.4, 0, 0.6, 1);color:var(--mat-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}@media(forced-colors: active){.mdc-checkbox__checkmark{color:CanvasText}}.mdc-checkbox--disabled .mdc-checkbox__checkmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:var(--mat-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}@media(forced-colors: active){.mdc-checkbox--disabled .mdc-checkbox__checkmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:GrayText}}.mdc-checkbox__checkmark-path{transition:stroke-dashoffset 180ms 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 cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1);border-color:var(--mat-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}@media(forced-colors: active){.mdc-checkbox__mixedmark{margin:0 1px}}.mdc-checkbox--disabled .mdc-checkbox__mixedmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__mixedmark{border-color:var(--mat-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}@media(forced-colors: active){.mdc-checkbox--disabled .mdc-checkbox__mixedmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__mixedmark{border-color:GrayText}}.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;transition:none}.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark{animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark{animation:mdc-checkbox-indeterminate-checked-checkmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-checked-mixedmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear;transition:none}.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{transition:border-color 90ms cubic-bezier(0, 0, 0.2, 1),background-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path{stroke-dashoffset:0}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__checkmark{transition:opacity 180ms cubic-bezier(0, 0, 0.2, 1),transform 180ms 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{transform:rotate(45deg);opacity:0;transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__mixedmark{transform:scaleX(1) rotate(0deg);opacity:1}@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:cubic-bezier(0, 0, 0.2, 1);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}}.mat-mdc-checkbox{display:inline-block;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mat-mdc-checkbox-touch-target,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__native-control,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__ripple,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mat-mdc-checkbox-ripple::before,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__checkmark,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__mixedmark{transition:none !important;animation:none !important}.mat-mdc-checkbox label{cursor:pointer}.mat-mdc-checkbox .mat-internal-form-field{color:var(--mat-checkbox-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-checkbox-label-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-checkbox-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-checkbox-label-text-size, var(--mat-sys-body-medium-size));letter-spacing:var(--mat-checkbox-label-text-tracking, var(--mat-sys-body-medium-tracking));font-weight:var(--mat-checkbox-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive{pointer-events:auto}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive input{cursor:default}.mat-mdc-checkbox.mat-mdc-checkbox-disabled label{cursor:default;color:var(--mat-checkbox-disabled-label-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}@media(forced-colors: active){.mat-mdc-checkbox.mat-mdc-checkbox-disabled label{color:GrayText}}.mat-mdc-checkbox label:empty{display:none}.mat-mdc-checkbox .mdc-checkbox__ripple{opacity:0}.mat-mdc-checkbox .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 .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%;left:50%;height:var(--mat-checkbox-touch-target-size, 48px);width:var(--mat-checkbox-touch-target-size, 48px);transform:translate(-50%, -50%);display:var(--mat-checkbox-touch-target-display, block)}.mat-mdc-checkbox .mat-mdc-checkbox-ripple::before{border-radius:50%}.mdc-checkbox__native-control:focus-visible~.mat-focus-indicator::before{content:""}\n'],encapsulation:2,changeDetection:0})}return t})(),fge=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({imports:[kr,ii]})}return t})();const pge=["button"],mge=t=>({"element-disabled":t}),gge=t=>({"element-margin":t});function _ge(t,n){1&t&&(h(0,"span",17),p(1),b(2,"translate"),u()),2&t&&(d(),E(" ",y(2,1,"bulk-rewards.checking")))}function bge(t,n){if(1&t&&(h(0,"span",18)(1,"span"),p(2),b(3,"translate"),u(),h(4,"span"),p(5),b(6,"translate"),u()()),2&t){const e=v(2).$implicit;d(2),E(" ",y(3,2,"bulk-rewards.error-checking")),d(3),E(" ",y(6,4,e.operationError))}}function vge(t,n){if(1&t&&(h(0,"span"),p(1),u()),2&t){const e=v(2).$implicit;d(),E(" ",e.currentAddress)}}function yge(t,n){1&t&&(h(0,"span"),p(1),b(2,"translate"),u()),2&t&&(d(),E(" ",y(2,1,"bulk-rewards.not-registered")))}function Cge(t,n){if(1&t&&(Vr(0,12),h(1,"mat-checkbox",13)(2,"div")(3,"div",14),p(4),u(),h(5,"div",15)(6,"span",16),p(7),b(8,"translate"),u(),x(9,_ge,3,3,"span",17),x(10,bge,7,6,"span",18),x(11,vge,2,1,"span"),x(12,yge,3,3,"span"),u()()(),cr()),2&t){const e=v(),i=e.$implicit;C("formGroupName",e.$index),d(4),E(" ",i.label," "),d(3),M(y(8,7,"bulk-rewards.current-address")),d(2),S(null!==i.currentAddress||i.operationError?-1:9),d(),S(i.operationError?10:-1),d(),S(i.currentAddress&&!i.operationError?11:-1),d(),S(""!==i.currentAddress||i.operationError?-1:12)}}function wge(t,n){1&t&&(h(0,"span",17),p(1),b(2,"translate"),u()),2&t&&(d(),E(" ",y(2,1,"bulk-rewards.processing")))}function xge(t,n){if(1&t&&(h(0,"span",18)(1,"span"),p(2),b(3,"translate"),u(),h(4,"span"),p(5),b(6,"translate"),u()()),2&t){const e=v(2).$implicit;d(2),E(" ",y(3,2,"bulk-rewards.error-processing")),d(3),E(" ",y(6,4,e.operationError))}}function Sge(t,n){1&t&&(h(0,"span",22),p(1),b(2,"translate"),u()),2&t&&(d(),E(" ",y(2,1,"bulk-rewards.done")))}function kge(t,n){if(1&t&&(h(0,"div",19),p(1,"-"),u(),h(2,"div",20),p(3),h(4,"div",21),x(5,wge,3,3,"span",17),x(6,xge,7,6,"span",18),x(7,Sge,3,3,"span",22),u()()),2&t){const e=v().$implicit;d(3),E(" ",e.label," "),d(2),S(e.processing&&!e.operationError?5:-1),d(),S(e.operationError?6:-1),d(),S(e.processing||e.operationError?-1:7)}}function Dge(t,n){if(1&t&&(h(0,"div",9),x(1,Cge,13,9,"ng-container",12),x(2,kge,8,4),u()),2&t){const e=v();C("ngClass",se(3,gge,e.processingStarted)),d(),S(e.processingStarted?-1:1),d(),S(e.processingStarted?2:-1)}}function Mge(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"bulk-rewards.perform-changes")," ")}function Tge(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"common.close")," ")}let Ege=(()=>{class t{static openDialog(e,i){const o=new nn;return o.data=i,o.autoFocus=!1,o.width=rt.smallModalWidth,e.open(t,o)}constructor(e,i,o,r,s){this.dialogRef=e,this.data=i,this.nodeService=o,this.formBuilder=r,this.dialog=s,this.processingStarted=!1,this.processingFinished=!1,this.currentlyProcessed=0,this.form=r.group({address:["",Ne.compose([Ne.minLength(20),Ne.maxLength(112)])],nodes:r.array([])}),i.nodes.forEach(a=>{const l=this.formBuilder.group({selected:[!0]});this.form.get("nodes").push(l)}),this.startChecking()}formValid(){if(!this.processingStarted){if(!this.form.valid)return!1;let e=0;return this.form.get("nodes").controls.forEach((i,o)=>{i.get("selected")?.value&&(e+=1)}),e>0}return!0}get disableDismiss(){return this.processingStarted&&!this.processingFinished}startChecking(){this.nodesToEdit=[],this.data.nodes.forEach(e=>{this.nodesToEdit.push({key:e.key,label:e.label,currentAddress:null,operationError:"",processing:!1})}),this.operationSubscriptions=[],this.nodesToEdit.forEach((e,i)=>{this.operationSubscriptions.push(this.nodeService.getRewardsAddress(e.key).subscribe(o=>{this.nodesToEdit[i].currentAddress=o},o=>{this.nodesToEdit[i].operationError=o.translatableErrorMsg?o.translatableErrorMsg:o.originalServerErrorMsg}))})}checkBeforeProcessing(){if(this.form.valid)if(this.form.get("address").value)this.startProcessing();else{const i=Rt.createConfirmationDialog(this.dialog,"bulk-rewards.empty-warning");i.componentInstance.operationAccepted.subscribe(()=>{i.componentInstance.closeModal(),this.startProcessing()})}}startProcessing(){this.processingStarted=!0,this.button.showLoading(),this.closeoperationSubscriptions();const e=[];this.form.get("nodes").controls.forEach((o,r)=>{o.get("selected")?.value&&(this.nodesToEdit[r].operationError="",this.nodesToEdit[r].processing=!0,e.push(this.nodesToEdit[r]))}),this.nodesToEdit=e;const i=this.form.get("address").value;this.form.get("address").disable(),this.currentlyProcessed=0,this.operationSubscriptions=[],this.nodesToEdit.forEach((o,r)=>{let s=this.nodeService.setRewardsAddress(o.key,i);i||(s=this.nodeService.deleteRewardsAddress(o.key)),this.operationSubscriptions.push(ae(0).pipe(li(100),It(()=>s)).subscribe(a=>{this.nodesToEdit[r].processing=!1,this.currentlyProcessed+=1,this.currentlyProcessed===this.nodesToEdit.length&&(this.processingFinished=!0,this.button.reset())},a=>{this.nodesToEdit[r].processing=!1,this.nodesToEdit[r].operationError=a.translatableErrorMsg?a.translatableErrorMsg:a.originalServerErrorMsg,this.currentlyProcessed+=1,this.currentlyProcessed===this.nodesToEdit.length&&(this.processingFinished=!0,this.button.reset())}))})}ngOnDestroy(){this.closeoperationSubscriptions()}closeoperationSubscriptions(){this.operationSubscriptions&&this.operationSubscriptions.forEach(e=>e.unsubscribe())}closeModal(){this.dialogRef.close()}static{this.\u0275fac=function(i){return new(i||t)(O(Bt),O(En),O(Io),O(di),O(Ot))}}static{this.\u0275cmp=re({type:t,selectors:[["app-bulk-reward-address-changer"]],viewQuery:function(i,o){if(1&i&&ot(pge,5),2&i){let r;he(r=fe())&&(o.button=r.first)}},standalone:!1,decls:31,vars:27,consts:[["button",""],[3,"headline","dialog","disableDismiss"],[3,"formGroup"],[1,"text-container"],["href","https://github.com/skycoin/skywire/blob/develop/rewards/mainnet_rules.md","target","_blank","rel","noreferrer nofollow noopener"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","address","maxlength","112","matInput","",3,"ngClass"],["formArrayName","nodes",1,"list-container"],[1,"list-element",3,"ngClass"],[1,"buttons"],["type","mat-raised-button","color","primary",3,"action","disabled"],[3,"formGroupName"],["color","primary","formControlName","selected"],[1,"contents"],[1,"address","contents"],[1,"address-label"],[1,"blinking"],[1,"red-text"],[1,"left-area"],[1,"right-area","contents"],[1,"address"],[1,"green-text"]],template:function(i,o){1&i&&(h(0,"app-dialog",1),b(1,"translate"),h(2,"form",2)(3,"div",3)(4,"span"),p(5),b(6,"translate"),u(),h(7,"a",4),p(8),b(9,"translate"),u()(),h(10,"mat-form-field")(11,"div",5)(12,"label",6),p(13),b(14,"translate"),u(),B(15,"input",7),u(),h(16,"mat-error")(17,"span"),p(18),b(19,"translate"),u()()(),h(20,"div",3),p(21),b(22,"translate"),u(),h(23,"div",8),ve(24,Dge,3,5,"div",9,Fe),u()(),h(26,"div",10)(27,"app-button",11,0),F("action",function(){return o.processingStarted?o.closeModal():o.checkBeforeProcessing()}),x(29,Mge,2,3),x(30,Tge,2,3),u()()()),2&i&&(C("headline",y(1,13,"bulk-rewards.title"))("dialog",o.dialogRef)("disableDismiss",o.disableDismiss),d(2),C("formGroup",o.form),d(3),E("",y(6,15,"bulk-rewards.info")," "),d(3),E(" ",y(9,17,"bulk-rewards.more-info-link")," "),d(5),M(y(14,19,"rewards-address-config.address")),d(2),C("ngClass",se(25,mge,o.processingStarted)),d(3),M(y(19,21,"rewards-address-config.address-error")),d(3),E(" ",y(22,23,"bulk-rewards.select-visors")," "),d(3),ye(o.nodesToEdit),d(3),C("disabled",!o.formValid()),d(2),S(o.processingStarted?-1:29),d(),S(o.processingStarted?30:-1))},dependencies:[$t,xn,Gt,qt,wn,wi,on,mn,sc,du,sn,Ma,In,kr,ui,gn,xe],styles:[".text-container[_ngcontent-%COMP%]{word-break:break-word}mat-form-field[_ngcontent-%COMP%]{margin-top:10px}.list-container[_ngcontent-%COMP%]{font-size:14px;margin:10px;color:#215f9e;word-break:break-word}.list-container[_ngcontent-%COMP%] .element-margin[_ngcontent-%COMP%]{margin:15px 0}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%]{display:flex}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-area[_ngcontent-%COMP%]{width:12px;flex-grow:0;flex-shrink:0}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .right-area[_ngcontent-%COMP%]{flex-grow:1}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .contents[_ngcontent-%COMP%]{white-space:normal;line-height:1.2}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .address[_ngcontent-%COMP%]{font-size:.7rem;color:#777}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .address[_ngcontent-%COMP%] .address-label[_ngcontent-%COMP%]{opacity:.7}.buttons[_ngcontent-%COMP%]{margin-top:15px;text-align:right}.buttons[_ngcontent-%COMP%] app-button[_ngcontent-%COMP%]{margin-left:5px}"]})}}return t})(),np=(()=>{class t{constructor(e){this.dom=e}copy(e){let i=null;try{return i=this.dom.createElement("textarea"),i.style.height="0px",i.style.left="-100px",i.style.opacity="0",i.style.position="fixed",i.style.top="-100px",i.style.width="0px",this.dom.body.appendChild(i),i.value=e,i.select(),this.dom.execCommand("copy"),!0}catch{return!1}finally{i&&i.parentNode&&i.parentNode.removeChild(i)}}static{this.\u0275fac=function(i){return new(i||t)(ce(et))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac})}}return t})(),Pge=(()=>{class t{constructor(e){this.http=e,this.rewardSystemUrl="/api/rewards",this.rewardDataCache=new Map,this.cachedDates=[],this.fetching=!1}getLastNDays(e){const i=[];for(let o=0;o0}fetchRewardData(e){return this.hasCache()?ae(this.rewardDataCache):(this.fetching=!0,zf(e.map(o=>this.http.get(`${this.rewardSystemUrl}/skycoin-rewards/visor/${o}?days=7`).pipe(Se(r=>({pk:o,history:r&&r.history?r.history:[]})),Ui(()=>ae({pk:o,history:[]}))))).pipe(Se(o=>{const r=new Map;for(const{pk:s,history:a}of o){const l={pk:s,rewardAddress:"",dailyAmounts:{},dailySent:{},weekTotal:0};for(const c of a)c.date&&(l.dailyAmounts[c.date]=c.amount||0,l.dailySent[c.date]=c.sent||!1,l.weekTotal+=c.amount||0);r.set(s,l)}return this.rewardDataCache=r,this.cachedDates=this.getLastNDays(7),this.fetching=!1,r}),Ui(o=>(this.fetching=!1,ae(new Map)))))}clearCache(){this.rewardDataCache=new Map,this.cachedDates=[]}static{this.\u0275fac=function(i){return new(i||t)(ce(ba))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();class iV extends JB{_origin="program";setFocusOrigin(n){return this._origin=n,this}setActiveItem(n){super.setActiveItem(n),this.activeItem&&this.activeItem.focus(this._origin)}}const Ige=["mat-menu-item",""],Oge=[[["mat-icon"],["","matMenuItemIcon",""]],"*"],Age=["mat-icon, [matMenuItemIcon]","*"];function Rge(t,n){1&t&&(rl(),h(0,"svg",2),B(1,"polygon",3),u())}const Fge=["*"];function Nge(t,n){if(1&t){const e=oe();vs(0,"div",0),qg("click",function(){return j(e),U(v().closed.emit("click"))})("animationstart",function(o){return j(e),U(v()._onAnimationStart(o.animationName))})("animationend",function(o){return j(e),U(v()._onAnimationDone(o.animationName))})("animationcancel",function(o){return j(e),U(v()._onAnimationDone(o.animationName))}),vs(1,"div",1),Pt(2),Ol()()}if(2&t){const e=v();Ze(e._classList),Ie("mat-menu-panel-animations-disabled",e._animationsDisabled)("mat-menu-panel-exit-animation","void"===e._panelAnimationState)("mat-menu-panel-animating",e._isAnimating()),ur("id",e.panelId),$e("aria-label",e.ariaLabel||null)("aria-labelledby",e.ariaLabelledby||null)("aria-describedby",e.ariaDescribedby||null)}}const Sk=new Z("MAT_MENU_PANEL");let As=(()=>{class t{_elementRef=D(Re);_document=D(et);_focusMonitor=D(ec);_parentMenu=D(Sk,{optional:!0});_changeDetectorRef=D(Jt);role="menuitem";disabled=!1;disableRipple=!1;_hovered=new me;_focused=new me;_highlighted=!1;_triggersSubmenu=!1;constructor(){D(zo).load(tu),this._parentMenu?.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({overlapTrigger:!1,xPosition:"after",yPosition:"below",backdropClass:"cdk-overlay-transparent-backdrop"})}),kk="_mat-menu-enter",pv="_mat-menu-exit";let Jr=(()=>{class t{_elementRef=D(Re);_changeDetectorRef=D(Jt);_injector=D(He);_keyManager;_xPosition;_yPosition;_firstItemFocusRef;_exitFallbackTimeout;_animationsDisabled=ci();_allItems;_directDescendantItems=new id;_classList={};_panelAnimationState="void";_animationDone=new me;_isAnimating=yt(!1);parentMenu;direction;overlayPanelClass;backdropClass;ariaLabel;ariaLabelledby;ariaDescribedby;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()}templateRef;items;lazyContent;overlapTrigger=!1;hasBackdrop;set panelClass(e){const i=this._previousPanelClass,o={...this._classList};i&&i.length&&i.split(" ").forEach(r=>{o[r]=!1}),this._previousPanelClass=e,e&&e.length&&(e.split(" ").forEach(r=>{o[r]=!0}),this._elementRef.nativeElement.className=""),this._classList=o}_previousPanelClass;get classList(){return this.panelClass}set classList(e){this.panelClass=e}closed=new we;close=this.closed;panelId=D(ni).getId("mat-menu-panel-");constructor(){const e=D(Bge);this.overlayPanelClass=e.overlayPanelClass||"",this._xPosition=e.xPosition,this._yPosition=e.yPosition,this.backdropClass=e.backdropClass,this.overlapTrigger=e.overlapTrigger,this.hasBackdrop=e.hasBackdrop}ngOnInit(){this.setPositionClasses()}ngAfterContentInit(){this._updateDirectDescendants(),this._keyManager=new iV(this._directDescendantItems).withWrap().withTypeAhead().withHomeAndEnd(),this._keyManager.tabOut.subscribe(()=>this.closed.emit("tab")),this._directDescendantItems.changes.pipe(si(this._directDescendantItems),tn(e=>Cr(...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._firstItemFocusRef?.destroy(),clearTimeout(this._exitFallbackTimeout)}_hovered(){return this._directDescendantItems.changes.pipe(si(this._directDescendantItems),tn(i=>Cr(...i.map(o=>o._hovered))))}addItem(e){}removeItem(e){}_handleKeydown(e){const i=e.keyCode,o=this._keyManager;switch(i){case 27:yr(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)}}focusFirstItem(e="program"){this._firstItemFocusRef?.destroy(),this._firstItemFocusRef=Vi(()=>{const i=this._resolvePanel();if(!i||!i.contains(document.activeElement)){const o=this._keyManager;o.setFocusOrigin(e).setFirstItemActive(),!o.activeItem&&i&&i.focus()}},{injector:this._injector})}resetActiveItem(){this._keyManager.setActiveItem(-1)}setElevation(e){}setPositionClasses(e=this.xPosition,i=this.yPosition){this._classList={...this._classList,"mat-menu-before":"before"===e,"mat-menu-after":"after"===e,"mat-menu-above":"above"===i,"mat-menu-below":"below"===i},this._changeDetectorRef.markForCheck()}_onAnimationDone(e){const i=e===pv;(i||e===kk)&&(i&&(clearTimeout(this._exitFallbackTimeout),this._exitFallbackTimeout=void 0),this._animationDone.next(i?"void":"enter"),this._isAnimating.set(!1))}_onAnimationStart(e){(e===kk||e===pv)&&this._isAnimating.set(!0)}_setIsOpen(e){if(this._panelAnimationState=e?"enter":"void",e){if(0===this._keyManager.activeItemIndex){const i=this._resolvePanel();i&&(i.scrollTop=0)}}else this._animationsDisabled||(this._exitFallbackTimeout=setTimeout(()=>this._onAnimationDone(pv),200));this._animationsDisabled&&setTimeout(()=>{this._onAnimationDone(e?kk:pv)}),this._changeDetectorRef.markForCheck()}_updateDirectDescendants(){this._allItems.changes.pipe(si(this._allItems)).subscribe(e=>{this._directDescendantItems.reset(e.filter(i=>i._parentMenu===this)),this._directDescendantItems.notifyOnChanges()})}_resolvePanel(){let e=null;return this._directDescendantItems.length&&(e=this._directDescendantItems.first._getHostElement().closest('[role="menu"]')),e}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["mat-menu"]],contentQueries:function(i,o,r){if(1&i&&ys(r,Lge,5)(r,As,5)(r,As,4),2&i){let s;he(s=fe())&&(o.lazyContent=s.first),he(s=fe())&&(o._allItems=s),he(s=fe())&&(o.items=s)}},viewQuery:function(i,o){if(1&i&&ot(Ti,5),2&i){let r;he(r=fe())&&(o.templateRef=r.first)}},hostVars:3,hostBindings:function(i,o){2&i&&$e("aria-label",null)("aria-labelledby",null)("aria-describedby",null)},inputs:{backdropClass:"backdropClass",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],xPosition:"xPosition",yPosition:"yPosition",overlapTrigger:[2,"overlapTrigger","overlapTrigger",De],hasBackdrop:[2,"hasBackdrop","hasBackdrop",e=>null==e?null:De(e)],panelClass:[0,"class","panelClass"],classList:"classList"},outputs:{closed:"closed",close:"close"},exportAs:["matMenu"],features:[lt([{provide:Sk,useExisting:t}])],ngContentSelectors:Fge,decls:1,vars:0,consts:[["tabindex","-1","role","menu",1,"mat-mdc-menu-panel",3,"click","animationstart","animationend","animationcancel","id"],[1,"mat-mdc-menu-content"]],template:function(i,o){1&i&&(yi(),Eg(0,Nge,3,12,"ng-template"))},styles:['mat-menu{display:none}.mat-mdc-menu-content{margin:0;padding:8px 0;outline:0}.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;flex:1;white-space:normal;font-family:var(--mat-menu-item-label-text-font, var(--mat-sys-label-large-font));line-height:var(--mat-menu-item-label-text-line-height, var(--mat-sys-label-large-line-height));font-size:var(--mat-menu-item-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mat-menu-item-label-text-tracking, var(--mat-sys-label-large-tracking));font-weight:var(--mat-menu-item-label-text-weight, var(--mat-sys-label-large-weight))}@keyframes _mat-menu-enter{from{opacity:0;transform:scale(0.8)}to{opacity:1;transform:none}}@keyframes _mat-menu-exit{from{opacity:1}to{opacity:0}}.mat-mdc-menu-panel{min-width:112px;max-width:280px;overflow:auto;box-sizing:border-box;outline:0;animation:_mat-menu-enter 120ms cubic-bezier(0, 0, 0.2, 1);border-radius:var(--mat-menu-container-shape, var(--mat-sys-corner-extra-small));background-color:var(--mat-menu-container-color, var(--mat-sys-surface-container));box-shadow:var(--mat-menu-container-elevation-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));will-change:transform,opacity}.mat-mdc-menu-panel.mat-menu-panel-exit-animation{animation:_mat-menu-exit 100ms 25ms linear forwards}.mat-mdc-menu-panel.mat-menu-panel-animations-disabled{animation:none}.mat-mdc-menu-panel.mat-menu-panel-animating{pointer-events:none}.mat-mdc-menu-panel.mat-menu-panel-animating:has(.mat-mdc-menu-content:empty){display:none}@media(forced-colors: active){.mat-mdc-menu-panel{outline:solid 1px}}.mat-mdc-menu-panel .mat-divider{border-top-color:var(--mat-menu-divider-color, var(--mat-sys-surface-variant));margin-bottom:var(--mat-menu-divider-bottom-spacing, 8px);margin-top:var(--mat-menu-divider-top-spacing, 8px)}.mat-mdc-menu-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;cursor:pointer;width:100%;text-align:left;box-sizing:border-box;color:inherit;font-size:inherit;background:none;text-decoration:none;margin:0;min-height:48px;padding-left:var(--mat-menu-item-leading-spacing, 12px);padding-right:var(--mat-menu-item-trailing-spacing, 12px);-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-menu-item::-moz-focus-inner{border:0}[dir=rtl] .mat-mdc-menu-item{padding-left:var(--mat-menu-item-trailing-spacing, 12px);padding-right:var(--mat-menu-item-leading-spacing, 12px)}.mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]){padding-left:var(--mat-menu-item-with-icon-leading-spacing, 12px);padding-right:var(--mat-menu-item-with-icon-trailing-spacing, 12px)}[dir=rtl] .mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]){padding-left:var(--mat-menu-item-with-icon-trailing-spacing, 12px);padding-right:var(--mat-menu-item-with-icon-leading-spacing, 12px)}.mat-mdc-menu-item,.mat-mdc-menu-item:visited,.mat-mdc-menu-item:link{color:var(--mat-menu-item-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-menu-item .mat-icon-no-color,.mat-mdc-menu-item .mat-mdc-menu-submenu-icon{color:var(--mat-menu-item-icon-color, var(--mat-sys-on-surface-variant))}.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:focus{outline:0}.mat-mdc-menu-item .mat-icon{flex-shrink:0;margin-right:var(--mat-menu-item-spacing, 12px);height:var(--mat-menu-item-icon-size, 24px);width:var(--mat-menu-item-icon-size, 24px)}[dir=rtl] .mat-mdc-menu-item{text-align:right}[dir=rtl] .mat-mdc-menu-item .mat-icon{margin-right:0;margin-left:var(--mat-menu-item-spacing, 12px)}.mat-mdc-menu-item:not([disabled]):hover{background-color:var(--mat-menu-item-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}.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, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent))}@media(forced-colors: active){.mat-mdc-menu-item{margin-top:1px}}.mat-mdc-menu-submenu-icon{width:var(--mat-menu-item-icon-size, 24px);height:10px;fill:currentColor;padding-left:var(--mat-menu-item-spacing, 12px)}[dir=rtl] .mat-mdc-menu-submenu-icon{padding-right:var(--mat-menu-item-spacing, 12px);padding-left:0}[dir=rtl] .mat-mdc-menu-submenu-icon polygon{transform:scaleX(-1);transform-origin:center}@media(forced-colors: 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}\n'],encapsulation:2,changeDetection:0})}return t})();const Vge=new Z("mat-menu-scroll-strategy",{providedIn:"root",factory:()=>{const t=D(He);return()=>Bf(t)}}),bu=new WeakMap;let Hge=(()=>{class t{_canHaveBackdrop;_element=D(Re);_viewContainerRef=D(Ei);_menuItemInstance=D(As,{optional:!0,self:!0});_dir=D(br,{optional:!0});_focusMonitor=D(ec);_ngZone=D(_e);_injector=D(He);_scrollStrategy=D(Vge);_changeDetectorRef=D(Jt);_animationsDisabled=ci();_portal;_overlayRef=null;_menuOpen=!1;_closingActionsSubscription=pt.EMPTY;_menuCloseSubscription=pt.EMPTY;_pendingRemoval;_parentMaterialMenu;_parentInnerPadding;_openedBy=void 0;get _menu(){return this._menuInternal}set _menu(e){e!==this._menuInternal&&(this._menuInternal=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()))}_menuInternal=null;constructor(e){this._canHaveBackdrop=e;const i=D(Sk,{optional:!0});this._parentMaterialMenu=i instanceof Jr?i:void 0}ngOnDestroy(){this._menu&&this._ownsMenu(this._menu)&&bu.delete(this._menu),this._pendingRemoval?.unsubscribe(),this._menuCloseSubscription.unsubscribe(),this._closingActionsSubscription.unsubscribe(),this._overlayRef&&(this._overlayRef.dispose(),this._overlayRef=null)}get menuOpen(){return this._menuOpen}get dir(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}_triggersSubmenu(){return!!(this._menuItemInstance&&this._parentMaterialMenu&&this._menu)}_closeMenu(){this._menu?.close.emit()}_openMenu(e){if(this._triggerIsAriaDisabled())return;const i=this._menu;if(this._menuOpen||!i)return;this._pendingRemoval?.unsubscribe();const o=bu.get(i);bu.set(i,this),o&&o!==this&&o._closeMenu();const r=this._createOverlay(i),s=r.getConfig(),a=s.positionStrategy;this._setPosition(i,a),s.hasBackdrop=this._canHaveBackdrop?null==i.hasBackdrop?!this._triggersSubmenu():i.hasBackdrop:i.hasBackdrop??!1,r.hasAttached()||(r.attach(this._getPortal(i)),i.lazyContent?.attach(this.menuData)),this._closingActionsSubscription=this._menuClosingActions().subscribe(()=>this._closeMenu()),i.parentMenu=this._triggersSubmenu()?this._parentMaterialMenu:void 0,i.direction=this.dir,e&&i.focusFirstItem(this._openedBy||"program"),this._setIsMenuOpen(!0),i instanceof Jr&&(i._setIsOpen(!0),i._directDescendantItems.changes.pipe(fn(i.close)).subscribe(()=>{a.withLockedPosition(!1).reapplyLastPosition(),a.withLockedPosition(!0)}))}focus(e,i){this._focusMonitor&&e?this._focusMonitor.focusVia(this._element,e,i):this._element.nativeElement.focus(i)}_destroyMenu(e){const i=this._overlayRef,o=this._menu;!i||!this.menuOpen||(this._closingActionsSubscription.unsubscribe(),this._pendingRemoval?.unsubscribe(),o instanceof Jr&&this._ownsMenu(o)?(this._pendingRemoval=o._animationDone.pipe(Cn(1)).subscribe(()=>{i.detach(),bu.has(o)||o.lazyContent?.detach()}),o._setIsOpen(!1)):(i.detach(),o?.lazyContent?.detach()),o&&this._ownsMenu(o)&&bu.delete(o),this.restoreFocus&&("keydown"===e||!this._openedBy||!this._triggersSubmenu())&&this.focus(this._openedBy),this._openedBy=void 0,this._setIsMenuOpen(!1))}_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=Xd(this._injector,i),this._overlayRef.keydownEvents().subscribe(o=>{this._menu instanceof Jr&&this._menu._handleKeydown(o)})}return this._overlayRef}_getOverlayConfig(e){return new Vf({positionStrategy:xb(this._injector,this._getOverlayOrigin()).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||"ltr",disableAnimations:this._animationsDisabled})}_subscribeToPositions(e,i){e.setPositionClasses&&i.positionChanges.subscribe(o=>{this._ngZone.run(()=>{e.setPositionClasses("start"===o.connectionPair.overlayX?"after":"before","top"===o.connectionPair.overlayY?"below":"above")})})}_setPosition(e,i){let[o,r]="before"===e.xPosition?["end","start"]:["start","end"],[s,a]="above"===e.yPosition?["bottom","top"]:["top","bottom"],[l,c]=[s,a],[f,m]=[o,r],g=0;if(this._triggersSubmenu()){if(m=o="before"===e.xPosition?"start":"end",r=f="end"===o?"start":"end",this._parentMaterialMenu){if(null==this._parentInnerPadding){const _=this._parentMaterialMenu.items.first;this._parentInnerPadding=_?_._getHostElement().offsetTop:0}g="bottom"===s?this._parentInnerPadding:-this._parentInnerPadding}}else e.overlapTrigger||(l="top"===s?"bottom":"top",c="top"===a?"bottom":"top");i.withPositions([{originX:o,originY:l,overlayX:f,overlayY:s,offsetY:g},{originX:r,originY:l,overlayX:m,overlayY:s,offsetY:g},{originX:o,originY:c,overlayX:f,overlayY:a,offsetY:-g},{originX:r,originY:c,overlayX:m,overlayY:a,offsetY:-g}])}_menuClosingActions(){const e=this._getOutsideClickStream(this._overlayRef),i=this._overlayRef.detachments();return Cr(e,this._parentMaterialMenu?this._parentMaterialMenu.closed:ae(),this._parentMaterialMenu?this._parentMaterialMenu._hovered().pipe(Tn(s=>this._menuOpen&&s!==this._menuItemInstance)):ae(),i)}_getPortal(e){return(!this._portal||this._portal.templateRef!==e.templateRef)&&(this._portal=new Yl(e.templateRef,this._viewContainerRef)),this._portal}_ownsMenu(e){return bu.get(e)===this}_triggerIsAriaDisabled(){return De(this._element.nativeElement.getAttribute("aria-disabled"))}static \u0275fac=function(i){B1()};static \u0275dir=de({type:t})}return t})(),vu=(()=>{class t extends Hge{_cleanupTouchstart;_hoverSubscription=pt.EMPTY;get _deprecatedMatMenuTriggerFor(){return this.menu}set _deprecatedMatMenuTriggerFor(e){this.menu=e}get menu(){return this._menu}set menu(e){this._menu=e}menuData;restoreFocus=!0;menuOpened=new we;onMenuOpen=this.menuOpened;menuClosed=new we;onMenuClose=this.menuClosed;constructor(){super(!0);const e=D(Qn);this._cleanupTouchstart=e.listen(this._element.nativeElement,"touchstart",i=>{CS(i)||(this._openedBy="touch")},{passive:!0})}triggersSubmenu(){return super._triggersSubmenu()}toggleMenu(){return this.menuOpen?this.closeMenu():this.openMenu()}openMenu(){this._openMenu(!0)}closeMenu(){this._closeMenu()}updatePosition(){this._overlayRef?.updatePosition()}ngAfterContentInit(){this._handleHover()}ngOnDestroy(){super.ngOnDestroy(),this._cleanupTouchstart(),this._hoverSubscription.unsubscribe()}_getOverlayOrigin(){return this._element}_getOutsideClickStream(e){return e.backdropClick()}_handleMousedown(e){yS(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().subscribe(e=>{e===this._menuItemInstance&&!e.disabled&&"void"!==this._parentMaterialMenu?._panelAnimationState&&(this._openedBy="mouse",this._openMenu(!1))}))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","mat-menu-trigger-for",""],["","matMenuTriggerFor",""]],hostAttrs:[1,"mat-mdc-menu-trigger"],hostVars:3,hostBindings:function(i,o){1&i&&F("click",function(s){return o._handleClick(s)})("mousedown",function(s){return o._handleMousedown(s)})("keydown",function(s){return o._handleKeydown(s)}),2&i&&$e("aria-haspopup",o.menu?"menu":null)("aria-expanded",o.menuOpen)("aria-controls",o.menuOpen?null==o.menu?null:o.menu.panelId:null)},inputs:{_deprecatedMatMenuTriggerFor:[0,"mat-menu-trigger-for","_deprecatedMatMenuTriggerFor"],menu:[0,"matMenuTriggerFor","menu"],menuData:[0,"matMenuTriggerData","menuData"],restoreFocus:[0,"matMenuTriggerRestoreFocus","restoreFocus"]},outputs:{menuOpened:"menuOpened",onMenuOpen:"onMenuOpen",menuClosed:"menuClosed",onMenuClose:"onMenuClose"},exportAs:["matMenuTrigger"],features:[be]})}return t})(),jge=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({imports:[IS,Zd,ii,Rf]})}return t})();const oV=()=>["1"],Ia=t=>[t],rV=t=>({number:t});function Uge(t,n){if(1&t&&(h(0,"a",4)(1,"mat-icon",10),p(2,"chevron_left"),u(),p(3),b(4,"translate"),u()),2&t){const e=v();C("routerLink",e.linkParts.concat(Ct(6,oV)))("queryParams",e.queryParams),d(),C("inline",!0),d(2),E(" ",y(4,4,"paginator.first")," ")}}function zge(t,n){if(1&t&&(h(0,"a",5)(1,"mat-icon",10),p(2,"chevron_left"),u(),h(3,"span",11),p(4),b(5,"translate"),u()()),2&t){const e=v();C("routerLink",e.linkParts.concat(Ct(6,oV)))("queryParams",e.queryParams),d(),C("inline",!0),d(3),M(y(5,4,"paginator.first"))}}function $ge(t,n){if(1&t&&(h(0,"a",4)(1,"div")(2,"mat-icon",10),p(3,"chevron_left"),u()()()),2&t){const e=v();C("routerLink",e.linkParts.concat(se(3,Ia,(e.currentPage-1).toString())))("queryParams",e.queryParams),d(2),C("inline",!0)}}function Wge(t,n){if(1&t&&(h(0,"a",4),p(1),u()),2&t){const e=v();C("routerLink",e.linkParts.concat(se(3,Ia,(e.currentPage-2).toString())))("queryParams",e.queryParams),d(),M(e.currentPage-2)}}function Gge(t,n){if(1&t&&(h(0,"a",6),p(1),u()),2&t){const e=v();C("routerLink",e.linkParts.concat(se(3,Ia,(e.currentPage-1).toString())))("queryParams",e.queryParams),d(),M(e.currentPage-1)}}function qge(t,n){if(1&t&&(h(0,"a",6),p(1),u()),2&t){const e=v();C("routerLink",e.linkParts.concat(se(3,Ia,(e.currentPage+1).toString())))("queryParams",e.queryParams),d(),M(e.currentPage+1)}}function Kge(t,n){if(1&t&&(h(0,"a",4),p(1),u()),2&t){const e=v();C("routerLink",e.linkParts.concat(se(3,Ia,(e.currentPage+2).toString())))("queryParams",e.queryParams),d(),M(e.currentPage+2)}}function Yge(t,n){if(1&t&&(h(0,"a",4)(1,"div")(2,"mat-icon",10),p(3,"chevron_right"),u()()()),2&t){const e=v();C("routerLink",e.linkParts.concat(se(3,Ia,(e.currentPage+1).toString())))("queryParams",e.queryParams),d(2),C("inline",!0)}}function Xge(t,n){if(1&t&&(h(0,"a",4),p(1),b(2,"translate"),h(3,"mat-icon",10),p(4,"chevron_right"),u()()),2&t){const e=v();C("routerLink",e.linkParts.concat(se(6,Ia,e.numberOfPages.toString())))("queryParams",e.queryParams),d(),E(" ",y(2,4,"paginator.last")," "),d(2),C("inline",!0)}}function Zge(t,n){if(1&t&&(h(0,"a",5)(1,"mat-icon",10),p(2,"chevron_right"),u(),h(3,"span",11),p(4),b(5,"translate"),u()()),2&t){const e=v();C("routerLink",e.linkParts.concat(se(6,Ia,e.numberOfPages.toString())))("queryParams",e.queryParams),d(),C("inline",!0),d(3),M(y(5,4,"paginator.last"))}}function Qge(t,n){if(1&t&&(h(0,"div",8),p(1),b(2,"translate"),u()),2&t){const e=v();d(),M(pe(2,1,"paginator.total",se(4,rV,e.numberOfPages)))}}function Jge(t,n){if(1&t&&(h(0,"div",9),p(1),b(2,"translate"),u()),2&t){const e=v();d(),M(pe(2,1,"paginator.total",se(4,rV,e.numberOfPages)))}}let mv=(()=>{class t{constructor(e,i){this.dialog=e,this.router=i,this.linkParts=[""],this.queryParams={}}openSelectionDialog(){const e=[];for(let i=1;i<=this.numberOfPages;i++)e.push({label:i.toString()});ao.openDialog(this.dialog,e,"paginator.select-page-title").afterClosed().subscribe(i=>{i&&this.router.navigate(this.linkParts.concat([i.toString()]),{queryParams:this.queryParams})})}static{this.\u0275fac=function(i){return new(i||t)(O(Ot),O(vt))}}static{this.\u0275cmp=re({type:t,selectors:[["app-paginator"]],inputs:{currentPage:"currentPage",numberOfPages:"numberOfPages",linkParts:"linkParts",queryParams:"queryParams"},standalone:!1,decls:21,vars:13,consts:[[1,"main-container"],[1,"d-inline-block","small-rounded-elevated-box","mt-3"],[1,"d-flex"],[1,"responsive-height","d-md-none"],[1,"d-none","d-md-flex",3,"routerLink","queryParams"],[1,"d-flex","d-md-none","flex-column",3,"routerLink","queryParams"],[3,"routerLink","queryParams"],[1,"selected",3,"click"],[1,"d-none","d-md-block","total-pages"],[1,"d-block","d-md-none","total-pages"],[3,"inline"],[1,"label"]],template:function(i,o){1&i&&(h(0,"div",0)(1,"div",1)(2,"div",2)(3,"div",3),p(4,"\xa0"),B(5,"br"),p(6,"\xa0"),u(),x(7,Uge,5,7,"a",4),x(8,zge,6,7,"a",5),x(9,$ge,4,5,"a",4),x(10,Wge,2,5,"a",4),x(11,Gge,2,5,"a",6),h(12,"a",7),F("click",function(){return o.openSelectionDialog()}),p(13),u(),x(14,qge,2,5,"a",6),x(15,Kge,2,5,"a",4),x(16,Yge,4,5,"a",4),x(17,Xge,5,8,"a",4),x(18,Zge,6,8,"a",5),u()(),x(19,Qge,3,6,"div",8),x(20,Jge,3,6,"div",9),u()),2&i&&(d(7),S(o.currentPage>3?7:-1),d(),S(o.currentPage>2?8:-1),d(),S(o.currentPage>1?9:-1),d(),S(o.currentPage>2?10:-1),d(),S(o.currentPage>1?11:-1),d(2),M(o.currentPage),d(),S(o.currentPage3?19:-1),d(),S(o.numberOfPages>2?20:-1))},dependencies:[Is,We,xe],styles:[".main-container[_ngcontent-%COMP%]{text-align:right}.main-container[_ngcontent-%COMP%] .responsive-height[_ngcontent-%COMP%]{padding:10px 0;width:0px}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{padding:10px;border-right:rgba(255,255,255,.15) solid 1px;border-left:rgba(255,255,255,.15) solid 1px;min-width:40px;text-align:center;color:#f8f9f980;text-decoration:none;display:flex;align-items:center;justify-content:center}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{background:#0003}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:2px}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{font-size:.7rem}.main-container[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%]{color:#f8f9f9;background:#0000005c;padding:10px 20px;cursor:pointer}.main-container[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%]:hover{background:#0009}.main-container[_ngcontent-%COMP%] .total-pages[_ngcontent-%COMP%]{font-size:.6rem;margin-top:-3px;margin-right:4px}"]})}}return t})();function ip(t){return Mn((n,e)=>{let i,r,o=!1;const s=()=>{i=n.subscribe(dn(e,void 0,void 0,a=>{r||(r=new me,ji(t(r)).subscribe(dn(e,()=>i?s():o=!0))),r&&r.next(a)})),o&&(i.unsubscribe(),i=null,o=!1,s())};s()})}const es={AF:"Afghanistan",AX:"Aland Islands",AL:"Albania",DZ:"Algeria",AS:"American Samoa",AD:"Andorra",AO:"Angola",AI:"Anguilla",AQ:"Antarctica",AG:"Antigua and Barbuda",AR:"Argentina",AM:"Armenia",AW:"Aruba",AU:"Australia",AT:"Austria",AZ:"Azerbaijan",BS:"Bahamas",BH:"Bahrain",BD:"Bangladesh",BB:"Barbados",BY:"Belarus",BE:"Belgium",BZ:"Belize",BJ:"Benin",BM:"Bermuda",BT:"Bhutan",BO:"Bolivia",BA:"Bosnia and Herzegovina",BW:"Botswana",BV:"Bouvet Island",BR:"Brazil",IO:"British Indian Ocean Territory",BN:"Brunei Darussalam",BG:"Bulgaria",BF:"Burkina Faso",BI:"Burundi",KH:"Cambodia",CM:"Cameroon",CA:"Canada",CV:"Cape Verde",KY:"Cayman Islands",CF:"Central African Republic",TD:"Chad",CL:"Chile",CN:"China",CX:"Christmas Island",CC:"Cocos (Keeling) Islands",CO:"Colombia",KM:"Comoros",CG:"Congo",CD:"Congo, Democratic Republic",CK:"Cook Islands",CR:"Costa Rica",CI:"Cote D'Ivoire",HR:"Croatia",CU:"Cuba",CY:"Cyprus",CZ:"Czech Republic",DK:"Denmark",DJ:"Djibouti",DM:"Dominica",DO:"Dominican Republic",EC:"Ecuador",EG:"Egypt",SV:"El Salvador",GQ:"Equatorial Guinea",ER:"Eritrea",EE:"Estonia",ET:"Ethiopia",FK:"Falkland Islands (Malvinas)",FO:"Faroe Islands",FJ:"Fiji",FI:"Finland",FR:"France",GF:"French Guiana",PF:"French Polynesia",TF:"French Southern Territories",GA:"Gabon",GM:"Gambia",GE:"Georgia",DE:"Germany",GH:"Ghana",GI:"Gibraltar",GR:"Greece",GL:"Greenland",GD:"Grenada",GP:"Guadeloupe",GU:"Guam",GT:"Guatemala",GG:"Guernsey",GN:"Guinea",GW:"Guinea-Bissau",GY:"Guyana",HT:"Haiti",HM:"Heard Island and Mcdonald Islands",VA:"Holy See (Vatican City State)",HN:"Honduras",HK:"Hong Kong",HU:"Hungary",IS:"Iceland",IN:"India",ID:"Indonesia",IR:"Iran",IQ:"Iraq",IE:"Ireland",IM:"Isle of Man",IL:"Israel",IT:"Italy",JM:"Jamaica",JP:"Japan",JE:"Jersey",JO:"Jordan",KZ:"Kazakhstan",KE:"Kenya",KI:"Kiribati",KP:"Korea (North)",KR:"Korea (South)",XK:"Kosovo",KW:"Kuwait",KG:"Kyrgyzstan",LA:"Laos",LV:"Latvia",LB:"Lebanon",LS:"Lesotho",LR:"Liberia",LY:"Libyan Arab Jamahiriya",LI:"Liechtenstein",LT:"Lithuania",LU:"Luxembourg",MO:"Macao",MK:"Macedonia",MG:"Madagascar",MW:"Malawi",MY:"Malaysia",MV:"Maldives",ML:"Mali",MT:"Malta",MH:"Marshall Islands",MQ:"Martinique",MR:"Mauritania",MU:"Mauritius",YT:"Mayotte",MX:"Mexico",FM:"Micronesia",MD:"Moldova",MC:"Monaco",MN:"Mongolia",MS:"Montserrat",MA:"Morocco",MZ:"Mozambique",MM:"Myanmar",NA:"Namibia",NR:"Nauru",NP:"Nepal",NL:"Netherlands",AN:"Netherlands Antilles",NC:"New Caledonia",NZ:"New Zealand",NI:"Nicaragua",NE:"Niger",NG:"Nigeria",NU:"Niue",NF:"Norfolk Island",MP:"Northern Mariana Islands",NO:"Norway",OM:"Oman",PK:"Pakistan",PW:"Palau",PS:"Palestinian Territory, Occupied",PA:"Panama",PG:"Papua New Guinea",PY:"Paraguay",PE:"Peru",PH:"Philippines",PN:"Pitcairn",PL:"Poland",PT:"Portugal",PR:"Puerto Rico",QA:"Qatar",RE:"Reunion",RO:"Romania",RU:"Russian Federation",RW:"Rwanda",SH:"Saint Helena",KN:"Saint Kitts and Nevis",LC:"Saint Lucia",PM:"Saint Pierre and Miquelon",VC:"Saint Vincent and the Grenadines",WS:"Samoa",SM:"San Marino",ST:"Sao Tome and Principe",SA:"Saudi Arabia",SN:"Senegal",RS:"Serbia",ME:"Montenegro",SC:"Seychelles",SL:"Sierra Leone",SG:"Singapore",SK:"Slovakia",SI:"Slovenia",SB:"Solomon Islands",SO:"Somalia",ZA:"South Africa",GS:"South Georgia and the South Sandwich Islands",ES:"Spain",LK:"Sri Lanka",SD:"Sudan",SR:"Suriname",SJ:"Svalbard and Jan Mayen",SZ:"Swaziland",SE:"Sweden",CH:"Switzerland",SY:"Syrian Arab Republic",TW:"Taiwan, Province of China",TJ:"Tajikistan",TZ:"Tanzania",TH:"Thailand",TL:"Timor-Leste",TG:"Togo",TK:"Tokelau",TO:"Tonga",TT:"Trinidad and Tobago",TN:"Tunisia",TR:"Turkey",TM:"Turkmenistan",TC:"Turks and Caicos Islands",TV:"Tuvalu",UG:"Uganda",UA:"Ukraine",AE:"United Arab Emirates",GB:"United Kingdom",US:"United States",UM:"United States Minor Outlying Islands",UY:"Uruguay",UZ:"Uzbekistan",VU:"Vanuatu",VE:"Venezuela",VN:"Viet Nam",VG:"Virgin Islands, British",VI:"Virgin Islands, U.S.",WF:"Wallis and Futuna",EH:"Western Sahara",YE:"Yemen",ZM:"Zambia",ZW:"Zimbabwe",ZZ:"Unknown"};let Rs=(()=>{class t{constructor(e){this.apiService=e}changeAppState(e,i,o){return this.apiService.put(`visors/${e}/apps/${encodeURIComponent(i)}`,{status:o?1:0})}changeAppAutostart(e,i,o){return this.changeAppSettings(e,i,{autostart:o})}changeAppSettings(e,i,o){return this.apiService.put(`visors/${e}/apps/${encodeURIComponent(i)}`,o)}getLogMessages(e,i,o){const s=EF(-1!==o?Date.now()-864e5*o:0,"yyyy-MM-ddTHH:mm:ssZZZZZ","en-US");return this.apiService.get(this.getLogMessagesUrl(e,i)+`?since=${s}`).pipe(Se(a=>a.logs))}getLogMessagesUrl(e,i){return`visors/${e}/apps/${encodeURIComponent(i)}/logs`}static{this.\u0275fac=function(i){return new(i||t)(ce(zi))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();var _n=function(t){return t.None="None",t.Favorite="Favorite",t.Blocked="Blocked",t}(_n||{}),Zo=function(t){return t.BitsSpeedAndBytesVolume="BitsSpeedAndBytesVolume",t.OnlyBytes="OnlyBytes",t.OnlyBits="OnlyBits",t}(Zo||{});let uc=(()=>{class t{constructor(e,i){this.router=e,this.storageService=i,this.maxHistoryElements=30,this.savedServersStorageKey="VpnServers",this.checkIpSettingStorageKey="VpnGetIp",this.dataUnitsSettingStorageKey="VpnDataUnits",this.serversMap=new Map,this.savedDataVersion=0,this.currentServerSubject=new oo(1),this.historySubject=new oo(1),this.favoritesSubject=new oo(1),this.blockedSubject=new oo(1)}initialize(){this.migrateDataToHvStorage(),this.serversMap=new Map;const e=this.storageService.getDataForHv(this.savedServersStorageKey);if(e){const i=JSON.parse(e);i.serverList.forEach(o=>{this.serversMap.set(o.pk,o)}),this.savedDataVersion=i.version,i.selectedServerPk&&this.updateCurrentServerPk(i.selectedServerPk)}this.launchListEvents()}migrateDataToHvStorage(){const e=localStorage.getItem(this.savedServersStorageKey);e&&(this.storageService.setDataForHv(this.savedServersStorageKey,e),localStorage.removeItem(this.savedServersStorageKey));const i=localStorage.getItem(this.checkIpSettingStorageKey);i&&(this.storageService.setDataForHv(this.checkIpSettingStorageKey,i),localStorage.removeItem(this.checkIpSettingStorageKey));const o=localStorage.getItem(this.dataUnitsSettingStorageKey);o&&(this.storageService.setDataForHv(this.dataUnitsSettingStorageKey,o),localStorage.removeItem(this.dataUnitsSettingStorageKey))}get currentServer(){return this.serversMap.get(this.currentServerPk)}get currentServerObservable(){return this.currentServerSubject.asObservable()}get history(){return this.historySubject.asObservable()}get favorites(){return this.favoritesSubject.asObservable()}get blocked(){return this.blockedSubject.asObservable()}getSavedVersion(e,i){return i&&this.checkIfDataWasChanged(),this.serversMap.get(e)}getCheckIpSetting(){const e=this.storageService.getDataForHv(this.checkIpSettingStorageKey);return null==e||"false"!==e}setCheckIpSetting(e){this.storageService.setDataForHv(this.checkIpSettingStorageKey,e?"true":"false")}getDataUnitsSetting(){return this.storageService.getDataForHv(this.dataUnitsSettingStorageKey)??Zo.BitsSpeedAndBytesVolume}setDataUnitsSetting(e){this.storageService.setDataForHv(this.dataUnitsSettingStorageKey,e)}updateFromDiscovery(e){this.checkIfDataWasChanged(),e.forEach(i=>{if(this.serversMap.has(i.pk)){const o=this.serversMap.get(i.pk);o.countryCode=i.countryCode,o.name=i.name,o.location=i.location,o.note=i.note}}),this.saveData()}updateServer(e){this.serversMap.set(e.pk,e),this.cleanServers(),this.saveData()}processFromDiscovery(e){this.checkIfDataWasChanged();const i=this.serversMap.get(e.pk);return i?(i.countryCode=e.countryCode,i.name=e.name,i.location=e.location,i.note=e.note,this.saveData(),i):{countryCode:e.countryCode,name:e.name,customName:null,pk:e.pk,lastUsed:0,inHistory:!1,flag:_n.None,location:e.location,personalNote:null,note:e.note,enteredManually:!1,usedWithPassword:!1}}processFromManual(e){this.checkIfDataWasChanged();const i=this.serversMap.get(e.pk);return i?(i.customName=e.name,i.personalNote=e.note,i.enteredManually=!0,this.saveData(),i):{countryCode:"zz",name:"",customName:e.name,pk:e.pk,lastUsed:0,inHistory:!1,flag:_n.None,location:"",personalNote:e.note,note:"",enteredManually:!0,usedWithPassword:!1}}changeFlag(e,i){this.checkIfDataWasChanged();const o=this.serversMap.get(e.pk);o&&(e=o),e.flag!==i&&(e.flag=i,this.serversMap.has(e.pk)||this.serversMap.set(e.pk,e),this.cleanServers(),this.saveData())}removeFromHistory(e){this.checkIfDataWasChanged();const i=this.serversMap.get(e);!i||!i.inHistory||(i.inHistory=!1,this.cleanServers(),this.saveData())}modifyCurrentServer(e){this.checkIfDataWasChanged(),e.pk!==this.currentServerPk&&(this.serversMap.has(e.pk)||this.serversMap.set(e.pk,e),this.updateCurrentServerPk(e.pk),this.cleanServers(),this.saveData())}compareCurrentServer(e){if(this.checkIfDataWasChanged(),e){if(!this.currentServerPk||this.currentServerPk!==e){if(this.currentServerPk=e,!this.serversMap.get(e)){const o=this.processFromManual({pk:e});this.serversMap.set(o.pk,o),this.cleanServers()}this.saveData(),this.currentServerSubject.next(this.currentServer)}}else this.currentServerPk&&(this.currentServerPk=null,this.saveData(),this.currentServerSubject.next(this.currentServer))}updateHistory(){this.checkIfDataWasChanged(),this.currentServer.lastUsed=Date.now(),this.currentServer.inHistory=!0;let e=[];this.serversMap.forEach(o=>{o.inHistory&&e.push(o)}),e=e.sort((o,r)=>r.lastUsed-o.lastUsed);let i=0;e.forEach(o=>{i{!i.inHistory&&i.flag===_n.None&&i.pk!==this.currentServerPk&&!i.customName&&!i.personalNote&&e.push(i.pk)}),e.forEach(i=>{this.serversMap.delete(i)})}saveData(){let e=0;const i=this.storageService.getDataForHv(this.savedServersStorageKey);if(i&&(e=JSON.parse(i).version),e!==this.savedDataVersion)return void this.router.navigate(["vpn","unavailable"],{queryParams:{problem:"storage"}});this.savedDataVersion+=1;const o={version:this.savedDataVersion,serverList:Array.from(this.serversMap.values()),selectedServerPk:this.currentServerPk},r=JSON.stringify(o);this.storageService.setDataForHv(this.savedServersStorageKey,r),this.launchListEvents()}checkIfDataWasChanged(){let e=0;const i=this.storageService.getDataForHv(this.savedServersStorageKey);i&&(e=JSON.parse(i).version),e!==this.savedDataVersion&&this.initialize()}launchListEvents(){const e=[],i=[],o=[];this.serversMap.forEach(r=>{r.inHistory&&e.push(r),r.flag===_n.Favorite&&i.push(r),r.flag===_n.Blocked&&o.push(r)}),this.historySubject.next(e),this.favoritesSubject.next(i),this.blockedSubject.next(o)}updateCurrentServerPk(e){this.currentServerPk=e,this.currentServerSubject.next(this.currentServer)}static{this.\u0275fac=function(i){return new(i||t)(ce(vt),ce(ti))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();var an=function(t){return t.Stopped="stopped",t.Connecting="Connecting",t.Running="Running",t.ShuttingDown="Shutting down",t.Reconnecting="Connection failed, reconnecting",t}(an||{});class e_e{constructor(){this.updateDate=Date.now()}}class t_e{}class n_e{constructor(){this.latency=0,this.uploadSpeed=0,this.downloadSpeed=0,this.totalUploaded=0,this.totalDownloaded=0,this.connectionDuration=0,this.error=""}}var Ri=function(t){return t[t.PerformingInitialCheck=1]="PerformingInitialCheck",t[t.Off=10]="Off",t[t.Starting=20]="Starting",t[t.Running=100]="Running",t[t.Disconnecting=200]="Disconnecting",t}(Ri||{}),Dr=function(t){return t[t.Busy=1]="Busy",t[t.Ok=2]="Ok",t[t.MustStop=3]="MustStop",t[t.SamePkRunning=4]="SamePkRunning",t[t.SamePkStopped=5]="SamePkStopped",t}(Dr||{});let hc=(()=>{class t{constructor(e,i,o,r,s,a,l){this.apiService=e,this.appsService=i,this.router=o,this.vpnSavedDataService=r,this.http=s,this.snackbarService=a,this.translateService=l,this.vpnClientAppName="vpn-client",this.standardWaitTime=2e3,this.stateSubject=new ki(null),this.errorSubject=new ki(!1),this.working=!0,this.requestedServer=null,this.requestedPassword=null,this.updatesStopped=!1,this.currentEventData=new e_e,this.currentEventData.busy=!0,this.lastServiceState=Ri.PerformingInitialCheck}initialize(e){e&&(this.nodeKey?e!==this.nodeKey?this.router.navigate(["vpn","unavailable"],{queryParams:{problem:"pkChange"}}):this.updatesStopped&&(this.updatesStopped=!1,this.updateData()):(this.nodeKey=e,this.vpnSavedDataService.initialize(),this.updateData()))}get backendState(){return this.stateSubject.asObservable()}get errorsConnecting(){return this.errorSubject.asObservable()}updateData(){this.continuallyUpdateData(0)}start(){return!this.working&&this.lastServiceState<20&&(this.changeAppState(!0),!0)}stop(){return!this.working&&this.lastServiceState>=20&&this.lastServiceState<200&&(this.changeAppState(!1),!0)}getIpData(){return this.http.request("GET",window.location.protocol+"//ip.skycoin.com/").pipe(ip(e=>Ts(e.pipe(li(this.standardWaitTime),Cn(4)),mr(""))),Se(e=>[e&&e.ip_address?e.ip_address:this.translateService.instant("common.unknown"),e&&e.country_name?e.country_name:this.translateService.instant("common.unknown")]))}changeServerUsingHistory(e,i){return this.requestedServer=e,this.requestedPassword=i,this.updateRequestedServerPasswordSetting(),this.changeServer()}changeServerUsingDiscovery(e,i){return this.requestedServer=this.vpnSavedDataService.processFromDiscovery(e),this.requestedPassword=i,this.updateRequestedServerPasswordSetting(),this.changeServer()}changeServerManually(e,i){return this.requestedServer=this.vpnSavedDataService.processFromManual(e),this.requestedPassword=i,this.updateRequestedServerPasswordSetting(),this.changeServer()}updateRequestedServerPasswordSetting(){this.requestedServer.usedWithPassword=!!this.requestedPassword&&""!==this.requestedPassword;const e=this.vpnSavedDataService.getSavedVersion(this.requestedServer.pk,!0);e&&(e.usedWithPassword=this.requestedServer.usedWithPassword,this.vpnSavedDataService.updateServer(e))}changeServer(){return!this.working&&(this.stop()||this.processServerChange(),!0)}checkNewPk(e){return this.working?Dr.Busy:this.lastServiceState!==Ri.Off?e===this.vpnSavedDataService.currentServer.pk?Dr.SamePkRunning:Dr.MustStop:this.vpnSavedDataService.currentServer&&e===this.vpnSavedDataService.currentServer.pk?Dr.SamePkStopped:Dr.Ok}processServerChange(){this.dataSubscription&&this.dataSubscription.unsubscribe();const e={pk:this.requestedServer.pk};e.passcode=this.requestedPassword?this.requestedPassword:"",this.stopContinuallyUpdatingData(),this.working=!0,this.sendUpdate(),this.dataSubscription=this.appsService.changeAppSettings(this.nodeKey,this.vpnClientAppName,e).subscribe(()=>{this.vpnSavedDataService.modifyCurrentServer(this.requestedServer),this.requestedServer=null,this.requestedPassword=null,this.working=!1,this.start()},i=>{i=Qe(i),this.snackbarService.showError("vpn.server-change.backend-error",null,!1,i.originalServerErrorMsg),this.working=!1,this.requestedServer=null,this.requestedPassword=null,this.sendUpdate(),this.updateData()})}changeAppState(e){if(this.working)return;this.stopContinuallyUpdatingData(),this.working=!0,this.sendUpdate();const i={status:1};e?(this.lastServiceState=Ri.Starting,this.connectionHistoryPk=null):(this.lastServiceState=Ri.Disconnecting,i.status=0),this.dataSubscription&&this.dataSubscription.unsubscribe(),this.dataSubscription=this.appsService.changeAppSettings(this.nodeKey,this.vpnClientAppName,i).pipe(Ui(o=>this.getVpnClientState().pipe(It(r=>{if(r){if(e&&r.running)return ae(!0);if(!e&&!r.running)return ae(!0)}return mr(o)}))),ip(o=>Ts(o.pipe(li(this.standardWaitTime),Cn(3)),o.pipe(It(r=>mr(r)))))).subscribe(o=>{this.working=!1;const r=this.processAppData(o);this.lastServiceState=r.running?Ri.Running:Ri.Off,this.currentEventData.vpnClientAppData=r,this.currentEventData.updateDate=Date.now(),this.sendUpdate(),this.updateData(),!e&&this.requestedServer&&this.processServerChange()},o=>{o=Qe(o),this.snackbarService.showError(this.lastServiceState===Ri.Starting?"vpn.status-page.problem-starting-error":this.lastServiceState===Ri.Disconnecting?"vpn.status-page.problem-stopping-error":"vpn.status-page.generic-problem-error",null,!1,o.originalServerErrorMsg),this.working=!1,this.sendUpdate(),this.updateData()})}continuallyUpdateData(e){if(this.working&&this.lastServiceState!==Ri.PerformingInitialCheck)return;this.continuousUpdateSubscription&&this.continuousUpdateSubscription.unsubscribe();let i=0;this.continuousUpdateSubscription=ae(0).pipe(li(e),It(()=>this.getVpnClientState()),ip(o=>o.pipe(It(r=>(this.errorSubject.next(!0),Xr.currentInstance.showDataProblemMsg(),(r=Qe(r)).originalError&&r.originalError.status&&401===r.originalError.status?mr(r):this.lastServiceState!==Ri.PerformingInitialCheck||i<4?(i+=1,ae(r).pipe(li(this.standardWaitTime))):mr(r)))))).subscribe(o=>{o?(this.errorSubject.next(!1),Xr.currentInstance.hideDataProblemMsg(),this.lastServiceState===Ri.PerformingInitialCheck&&(this.working=!1),this.vpnSavedDataService.compareCurrentServer(o.serverPk),this.lastServiceState=o.running?Ri.Running:Ri.Off,this.currentEventData.vpnClientAppData=o,this.currentEventData.updateDate=Date.now(),this.sendUpdate()):this.lastServiceState===Ri.PerformingInitialCheck&&(this.router.navigate(["vpn","unavailable"]),this.nodeKey=null,this.updatesStopped=!0),this.continuallyUpdateData(this.standardWaitTime)},o=>{(o=Qe(o)).originalError&&o.originalError.status&&401===o.originalError.status||(this.router.navigate(["vpn","unavailable"]),this.nodeKey=null),this.updatesStopped=!0})}stopContinuallyUpdatingData(){this.continuousUpdateSubscription&&this.continuousUpdateSubscription.unsubscribe()}getVpnClientState(){let e;const i=new qo;return i.vpnKeyForAuth=this.nodeKey,this.apiService.get(`visors/${this.nodeKey}/summary`,i).pipe(It(o=>{let r;if(o&&o.overview)if(this.visorPublicIp=o.overview.public_ip&&o.overview.public_ip.trim()?o.overview.public_ip:null,o.overview.country_code){this.visorCountryCode=o.overview.country_code;const s=es[o.overview.country_code.toUpperCase()];this.visorCountryName=s||o.overview.country_code}else this.visorCountryCode=null,this.visorCountryName=null;if(o&&o.overview&&o.overview.apps&&o.overview.apps.length>0&&o.overview.apps.forEach(s=>{s.name===this.vpnClientAppName&&(r=s)}),r&&(e=this.processAppData(r)),e.minHops=o.min_hops?o.min_hops:0,e&&e.running){const s=new qo;return s.vpnKeyForAuth=this.nodeKey,this.apiService.get(`visors/${this.nodeKey}/apps/${this.vpnClientAppName}/connections`,s)}return ae(null)}),Se(o=>{if(o&&o.length>0){const r=new n_e;o.forEach(s=>{r.latency+=s.latency/o.length,r.uploadSpeed+=s.upload_speed/o.length,r.downloadSpeed+=s.download_speed/o.length,r.totalUploaded+=s.bandwidth_sent,r.totalDownloaded+=s.bandwidth_received,s.error&&(r.error=s.error),s.connection_duration>r.connectionDuration&&(r.connectionDuration=s.connection_duration)}),(!this.connectionHistoryPk||this.connectionHistoryPk!==e.serverPk)&&(this.connectionHistoryPk=e.serverPk,this.uploadSpeedHistory=[0,0,0,0,0,0,0,0,0,0],this.downloadSpeedHistory=[0,0,0,0,0,0,0,0,0,0],this.latencyHistory=[0,0,0,0,0,0,0,0,0,0]),r.latency=Math.round(r.latency),r.uploadSpeed=Math.round(r.uploadSpeed),r.downloadSpeed=Math.round(r.downloadSpeed),r.totalUploaded=Math.round(r.totalUploaded),r.totalDownloaded=Math.round(r.totalDownloaded),this.uploadSpeedHistory.splice(0,1),this.uploadSpeedHistory.push(r.uploadSpeed),r.uploadSpeedHistory=this.uploadSpeedHistory,this.downloadSpeedHistory.splice(0,1),this.downloadSpeedHistory.push(r.downloadSpeed),r.downloadSpeedHistory=this.downloadSpeedHistory,this.latencyHistory.splice(0,1),this.latencyHistory.push(r.latency),r.latencyHistory=this.latencyHistory,e.connectionData=r}return e}))}processAppData(e){const i=new t_e;if(i.running=0!==e.status&&2!==e.status,i.connectionDuration=e.connection_duration,i.appState=an.Stopped,i.running?e.detailed_status===an.Connecting||3===e.status?i.appState=an.Connecting:e.detailed_status===an.Running?i.appState=an.Running:e.detailed_status===an.ShuttingDown?i.appState=an.ShuttingDown:e.detailed_status===an.Reconnecting&&(i.appState=an.Reconnecting):2===e.status&&(i.lastErrorMsg=e.detailed_status,i.lastErrorMsg||(i.lastErrorMsg=this.translateService.instant("vpn.status-page.unknown-error"))),i.killswitch=!1,e.args&&e.args.length>0)for(let o=0;o{class t{static openDialog(e,i){const o=new nn;return o.data=i,o.autoFocus=!1,o.width=rt.mediumModalWidth,e.open(t,o)}constructor(e,i,o,r,s){this.dialogRef=e,this.data=i,this.formBuilder=o,this.snackbarService=r,this.vpnSavedDataService=s}ngOnInit(){this.form=this.formBuilder.group({value:[(this.data.editName?this.data.server.customName:this.data.server.personalNote)||""]}),setTimeout(()=>this.firstInput.nativeElement.focus())}process(){let e=this.vpnSavedDataService.getSavedVersion(this.data.server.pk,!0);e=e||this.data.server;const i=this.form.get("value").value;i!==(this.data.editName?this.data.server.customName:this.data.server.personalNote)?(this.data.editName?e.customName=i:e.personalNote=i,this.vpnSavedDataService.updateServer(e),this.snackbarService.showDone("vpn.server-options.edit-value.changes-made-confirmation"),this.dialogRef.close(!0)):this.dialogRef.close()}static{this.\u0275fac=function(i){return new(i||t)(O(Bt),O(En),O(di),O(ct),O(uc))}}static{this.\u0275cmp=re({type:t,selectors:[["app-edit-vpn-server-value"]],viewQuery:function(i,o){if(1&i&&ot(i_e,5),2&i){let r;he(r=fe())&&(o.firstInput=r.first)}},standalone:!1,decls:13,vars:11,consts:[["firstInput",""],[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","value","maxlength","100","matInput",""],["color","primary",1,"float-right",3,"action"]],template:function(i,o){1&i&&(h(0,"app-dialog",1),b(1,"translate"),h(2,"form",2)(3,"mat-form-field")(4,"div",3)(5,"label",4),p(6),b(7,"translate"),u(),B(8,"input",5,0),u()()(),h(10,"app-button",6),F("action",function(){return o.process()}),p(11),b(12,"translate"),u()()),2&i&&(C("headline",y(1,5,"vpn.server-options.edit-value."+(o.data.editName?"name":"note")+"-title"))("dialog",o.dialogRef),d(2),C("formGroup",o.form),d(4),M(y(7,7,"vpn.server-options.edit-value."+(o.data.editName?"name":"note")+"-label")),d(5),E(" ",y(12,9,"vpn.server-options.edit-value.apply-button")," "))},dependencies:[xn,Gt,qt,wn,wi,on,mn,sn,In,ui,gn,xe],encapsulation:2})}}return t})();const r_e=["firstInput"];let sV=(()=>{class t{static openDialog(e,i){const o=new nn;return o.data=i,o.autoFocus=!1,o.width=rt.mediumModalWidth,e.open(t,o)}constructor(e,i,o){this.dialogRef=e,this.data=i,this.formBuilder=o}ngOnInit(){this.form=this.formBuilder.group({password:["",this.data?void 0:Ne.required]}),setTimeout(()=>this.firstInput.nativeElement.focus())}process(){this.dialogRef.close("-"+this.form.get("password").value)}static{this.\u0275fac=function(i){return new(i||t)(O(Bt),O(En),O(di))}}static{this.\u0275cmp=re({type:t,selectors:[["app-enter-vpn-server-password"]],viewQuery:function(i,o){if(1&i&&ot(r_e,5),2&i){let r;he(r=fe())&&(o.firstInput=r.first)}},standalone:!1,decls:13,vars:12,consts:[["firstInput",""],[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","password","type","password","matInput",""],["color","primary",1,"float-right",3,"action","disabled"]],template:function(i,o){1&i&&(h(0,"app-dialog",1),b(1,"translate"),h(2,"form",2)(3,"mat-form-field")(4,"div",3)(5,"label",4),p(6),b(7,"translate"),u(),B(8,"input",5,0),u()()(),h(10,"app-button",6),F("action",function(){return o.process()}),p(11),b(12,"translate"),u()()),2&i&&(C("headline",y(1,6,"vpn.server-list.password-dialog.title"))("dialog",o.dialogRef),d(2),C("formGroup",o.form),d(4),M(y(7,8,"vpn.server-list.password-dialog.password"+(o.data?"-if-any":"")+"-label")),d(4),C("disabled",!o.form.valid),d(),E(" ",y(12,10,"vpn.server-list.password-dialog.continue-button")," "))},dependencies:[xn,Gt,qt,wn,on,mn,sn,In,ui,gn,xe],encapsulation:2})}}return t})(),hi=(()=>{class t{static{this.serverListTabStorageKey="ServerListTab"}static{this.currentPk=""}static changeCurrentPk(e){this.currentPk=e}static setDefaultTabForServerList(e){sessionStorage.setItem(t.serverListTabStorageKey,e)}static get vpnTabsData(){const e=sessionStorage.getItem(t.serverListTabStorageKey);return[{icon:"power_settings_new",label:"vpn.start",linkParts:["/vpn",this.currentPk,"status"]},{icon:"list",label:"vpn.servers",linkParts:e?["/vpn",this.currentPk,"servers",e,"1"]:["/vpn",this.currentPk,"servers"]},{icon:"settings",label:"vpn.settings",linkParts:["/vpn",this.currentPk,"settings"]}]}static getLatencyValueString(e){return e<1e3?"time-in-ms":"time-in-segs"}static getPrintableLatency(e){return e<1e3?e+"":(e/1e3).toFixed(1)}static processServerChange(e,i,o,r,s,a,l,c,f,m,g){let _;if(c&&(f||m)||f&&(c||m)||m&&(c||f))throw new Error("Invalid call");if(c)_=c.pk;else if(f)_=f.pk;else{if(!m)throw new Error("Invalid call");_=m.pk}const w=o.getSavedVersion(_,!0),k=w&&(g||w.usedWithPassword),T=i.checkNewPk(_);if(T!==Dr.Busy)if(T!==Dr.SamePkRunning||k){if(T===Dr.MustStop||T===Dr.SamePkRunning&&k){const I=Rt.createConfirmationDialog(s,"vpn.server-change.change-server-while-connected-confirmation");return void I.componentInstance.operationAccepted.subscribe(()=>{I.componentInstance.closeModal(),c?i.changeServerUsingHistory(c,g):f?i.changeServerUsingDiscovery(f,g):m&&i.changeServerManually(m,g),t.redirectAfterServerChange(e,a,l)})}if(T===Dr.SamePkStopped&&!k){const I=Rt.createConfirmationDialog(s,"vpn.server-change.start-same-server-confirmation");return void I.componentInstance.operationAccepted.subscribe(()=>{I.componentInstance.closeModal(),m&&w&&o.processFromManual(m),i.start(),t.redirectAfterServerChange(e,a,l)})}c?i.changeServerUsingHistory(c,g):f?i.changeServerUsingDiscovery(f,g):m&&i.changeServerManually(m,g),t.redirectAfterServerChange(e,a,l)}else r.showWarning("vpn.server-change.already-selected-warning");else r.showError("vpn.server-change.busy-error")}static redirectAfterServerChange(e,i,o){i&&i.close(),e.navigate(["vpn",o,"status"])}static openServerOptions(e,i,o,r,s,a){const l=[],c=[];return e.usedWithPassword?(l.push({icon:"lock_open",label:"vpn.server-options.connect-without-password"}),c.push(201),l.push({icon:"lock_outlined",label:"vpn.server-options.connect-using-another-password"}),c.push(202)):e.enteredManually&&(l.push({icon:"lock_outlined",label:"vpn.server-options.connect-using-password"}),c.push(202)),l.push({icon:"edit",label:"vpn.server-options.edit-name"}),c.push(101),l.push({icon:"subject",label:"vpn.server-options.edit-label"}),c.push(102),(!e||e.flag!==_n.Favorite)&&(l.push({icon:"star",label:"vpn.server-options.make-favorite"}),c.push(1)),e&&e.flag===_n.Favorite&&(l.push({icon:"star_outline",label:"vpn.server-options.remove-from-favorites"}),c.push(-1)),(!e||e.flag!==_n.Blocked)&&(l.push({icon:"pan_tool",label:"vpn.server-options.block"}),c.push(2)),e&&e.flag===_n.Blocked&&(l.push({icon:"thumb_up",label:"vpn.server-options.unblock"}),c.push(-2)),e&&e.inHistory&&(l.push({icon:"delete",label:"vpn.server-options.remove-from-history"}),c.push(-3)),ao.openDialog(a,l,"common.options").afterClosed().pipe(It(f=>{if(f){const m=o.getSavedVersion(e.pk,!0);if(e=m||e,c[f-=1]>200){if(201===c[f]){let g=!1;const _=Rt.createConfirmationDialog(a,"vpn.server-options.connect-without-password-confirmation");return _.componentInstance.operationAccepted.subscribe(()=>{g=!0,t.processServerChange(i,r,o,s,a,null,t.currentPk,e,null,null,null),_.componentInstance.closeModal()}),_.afterClosed().pipe(Se(()=>g))}return sV.openDialog(a,!1).afterClosed().pipe(Se(g=>!(!g||"-"===g||(t.processServerChange(i,r,o,s,a,null,t.currentPk,e,null,null,g.substr(1)),0))))}if(c[f]>100)return o_e.openDialog(a,{editName:101===c[f],server:e}).afterClosed();if(1===c[f])return t.makeFavorite(e,o,s,a);if(-1===c[f])return o.changeFlag(e,_n.None),s.showDone("vpn.server-options.remove-from-favorites-done"),ae(!0);if(2===c[f])return t.blockServer(e,o,r,s,a);if(-2===c[f])return o.changeFlag(e,_n.None),s.showDone("vpn.server-options.unblock-done"),ae(!0);if(-3===c[f])return t.removeFromHistory(e,o,s,a)}return ae(!1)}))}static removeFromHistory(e,i,o,r){let s=!1;const a=Rt.createConfirmationDialog(r,"vpn.server-options.remove-from-history-confirmation");return a.componentInstance.operationAccepted.subscribe(()=>{s=!0,i.removeFromHistory(e.pk),o.showDone("vpn.server-options.remove-from-history-done"),a.componentInstance.closeModal()}),a.afterClosed().pipe(Se(()=>s))}static makeFavorite(e,i,o,r){if(e.flag!==_n.Blocked)return i.changeFlag(e,_n.Favorite),o.showDone("vpn.server-options.make-favorite-done"),ae(!0);let s=!1;const a=Rt.createConfirmationDialog(r,"vpn.server-options.make-favorite-confirmation");return a.componentInstance.operationAccepted.subscribe(()=>{s=!0,i.changeFlag(e,_n.Favorite),o.showDone("vpn.server-options.make-favorite-done"),a.componentInstance.closeModal()}),a.afterClosed().pipe(Se(()=>s))}static blockServer(e,i,o,r,s){if(e.flag!==_n.Favorite&&(!i.currentServer||i.currentServer.pk!==e.pk))return i.changeFlag(e,_n.Blocked),r.showDone("vpn.server-options.block-done"),ae(!0);let a=!1;const l=i.currentServer&&i.currentServer.pk===e.pk;let c;c=e.flag!==_n.Favorite?"vpn.server-options.block-selected-confirmation":l?"vpn.server-options.block-selected-favorite-confirmation":"vpn.server-options.block-confirmation";const f=Rt.createConfirmationDialog(s,c);return f.componentInstance.operationAccepted.subscribe(()=>{a=!0,i.changeFlag(e,_n.Blocked),r.showDone("vpn.server-options.block-done"),l&&o.stop(),f.componentInstance.closeModal()}),f.afterClosed().pipe(Se(()=>a))}}return t})(),s_e=(()=>{class t{constructor(e){this.clipboardService=e,this.copyEvent=new we,this.errorEvent=new we,this.value=""}ngOnDestroy(){this.copyEvent.complete(),this.errorEvent.complete()}copyToClipboard(){this.clipboardService.copy(this.value)?this.copyEvent.emit(this.value):this.errorEvent.emit()}static{this.\u0275fac=function(i){return new(i||t)(O(np))}}static{this.\u0275dir=de({type:t,selectors:[["","clipboard",""]],hostBindings:function(i,o){1&i&&F("click",function(){return o.copyToClipboard()})},inputs:{value:[0,"clipboard","value"]},outputs:{copyEvent:"copyEvent",errorEvent:"errorEvent"},standalone:!1})}}return t})();const a_e=()=>({"tooltip-word-break":!0});function l_e(t,n){if(1&t&&(h(0,"span",1),p(1),u()),2&t){const e=v();d(),M(e.shortText)}}function c_e(t,n){if(1&t&&(h(0,"span"),p(1),u()),2&t){const e=v();d(),M(e.text)}}let aV=(()=>{class t{constructor(){this.short=!1,this.showTooltip=!0,this.shortTextLength=5}get shortText(){if(this.text.length>2*this.shortTextLength){const e=this.text.length;return`${this.text.slice(0,this.shortTextLength)}...${this.text.slice(e-this.shortTextLength,e)}`}return this.text}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=re({type:t,selectors:[["app-truncated-text"]],inputs:{short:"short",showTooltip:"showTooltip",text:"text",shortTextLength:"shortTextLength"},standalone:!1,decls:3,vars:5,consts:[[1,"wrapper",3,"matTooltip","matTooltipClass"],[1,"nowrap"]],template:function(i,o){1&i&&(h(0,"div",0),x(1,l_e,2,1,"span",1),x(2,c_e,2,1,"span"),u()),2&i&&(C("matTooltip",o.short&&o.showTooltip?o.text:"")("matTooltipClass",Ct(4,a_e)),d(),S(o.short?1:-1),d(),S(o.short?-1:2))},dependencies:[Kt],styles:['.cursor-pointer[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%], .wrapper[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media(max-width:767px),(min-width:992px)and (max-width:1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media(max-width:767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}.nowrap[_ngcontent-%COMP%]{white-space:nowrap}.wrapper[_ngcontent-%COMP%]{display:inline}']})}}return t})();const d_e=t=>({text:t}),u_e=()=>({"tooltip-word-break":!0});function h_e(t,n){if(1&t&&(B(0,"app-truncated-text",2),h(1,"mat-icon",3),p(2,"filter_none"),u()),2&t){const e=v();C("short",e.short)("showTooltip",!1)("shortTextLength",e.shortTextLength)("text",e.text),d(),C("inline",!0)}}function f_e(t,n){if(1&t&&(h(0,"div",1)(1,"div",4),p(2),u(),h(3,"mat-icon",3),p(4,"filter_none"),u()()),2&t){const e=v();d(2),M(e.text),d(),C("inline",!0)}}let op=(()=>{class t{constructor(e){this.snackbarService=e,this.short=!1,this.shortSimple=!1,this.shortTextLength=5}onCopyToClipboardClicked(){this.snackbarService.showDone("copy.copied")}static{this.\u0275fac=function(i){return new(i||t)(O(ct))}}static{this.\u0275cmp=re({type:t,selectors:[["app-copy-to-clipboard-text"]],inputs:{text:"text",short:"short",shortSimple:"shortSimple",shortTextLength:"shortTextLength"},standalone:!1,decls:4,vars:11,consts:[[1,"wrapper","highlight-internal-icon",3,"copyEvent","clipboard","matTooltip","matTooltipClass"],[1,"d-flex"],[1,"text-margin",3,"short","showTooltip","shortTextLength","text"],[3,"inline"],[1,"single-line","text-margin"]],template:function(i,o){1&i&&(h(0,"div",0),b(1,"translate"),F("copyEvent",function(){return o.onCopyToClipboardClicked()}),x(2,h_e,3,5),x(3,f_e,5,2,"div",1),u()),2&i&&(C("clipboard",o.text)("matTooltip",pe(1,5,o.short||o.shortSimple?"copy.tooltip-with-text":"copy.tooltip",se(8,d_e,o.text)))("matTooltipClass",Ct(10,u_e)),d(2),S(o.shortSimple?-1:2),d(),S(o.shortSimple?3:-1))},dependencies:[We,Kt,s_e,aV,xe],styles:['.cursor-pointer[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%], .wrapper[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media(max-width:767px),(min-width:992px)and (max-width:1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media(max-width:767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}.wrapper[_ngcontent-%COMP%]{display:inline}.wrapper[_ngcontent-%COMP%] .text-margin[_ngcontent-%COMP%]{margin-right:5px}.wrapper[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:.6rem;-webkit-user-select:none;user-select:none;flex-shrink:0;display:inline!important}']})}}return t})();var fc=function(t){return t[t.Seconds=0]="Seconds",t[t.Minutes=1]="Minutes",t[t.Hours=2]="Hours",t[t.Days=3]="Days",t[t.Weeks=4]="Weeks",t}(fc||{});class p_e{}class gv{static getElapsedTime(n){const e=new p_e;e.timeRepresentation=fc.Seconds,e.totalMinutes=Math.floor(n/60).toString(),e.translationVarName="second";let i=1;n>=60&&n<3600?(e.timeRepresentation=fc.Minutes,i=60,e.translationVarName="minute"):n>=3600&&n<86400?(e.timeRepresentation=fc.Hours,i=3600,e.translationVarName="hour"):n>=86400&&n<604800?(e.timeRepresentation=fc.Days,i=86400,e.translationVarName="day"):n>=604800&&(e.timeRepresentation=fc.Weeks,i=604800,e.translationVarName="week");const o=Math.floor(n/i);return e.elapsedTime=o.toString(),(e.timeRepresentation===fc.Seconds||o>1)&&(e.translationVarName=e.translationVarName+"s"),e}}const m_e=t=>({"grey-button-background":t}),lV=t=>({time:t});function g_e(t,n){1&t&&B(0,"mat-spinner",2),2&t&&C("diameter",14)}function __e(t,n){1&t&&B(0,"mat-spinner",3),2&t&&C("diameter",18)}function b_e(t,n){1&t&&(h(0,"mat-icon",5),p(1,"refresh"),u()),2&t&&C("inline",!0)}function v_e(t,n){1&t&&(h(0,"mat-icon",6),p(1,"warning"),u()),2&t&&C("inline",!0)}function y_e(t,n){if(1&t&&(x(0,b_e,2,1,"mat-icon",5),x(1,v_e,2,1,"mat-icon",6)),2&t){const e=v();S(e.showAlert?-1:0),d(),S(e.showAlert?1:-1)}}function C_e(t,n){if(1&t&&(h(0,"span",4),p(1),b(2,"translate"),u()),2&t){const e=v();d(),M(pe(2,1,"refresh-button."+e.elapsedTime.translationVarName,se(4,lV,e.elapsedTime.elapsedTime)))}}let w_e=(()=>{class t{constructor(){this.refeshRate=-1}set secondsSinceLastUpdate(e){this.elapsedTime=gv.getElapsedTime(e)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=re({type:t,selectors:[["app-refresh-button"]],inputs:{secondsSinceLastUpdate:"secondsSinceLastUpdate",showLoading:"showLoading",showAlert:"showAlert",refeshRate:"refeshRate"},standalone:!1,decls:7,vars:14,consts:[["mat-button","",1,"time-button","subtle-transparent-button","white-theme",3,"disabled","ngClass","matTooltip"],[1,"internal-container"],[1,"icon","d-none","d-md-inline-block",3,"diameter"],[1,"icon","d-md-none",3,"diameter"],[1,"d-none","d-md-inline"],[1,"icon",3,"inline"],[1,"icon","alert",3,"inline"]],template:function(i,o){1&i&&(h(0,"button",0),b(1,"translate"),h(2,"div",1),x(3,g_e,1,1,"mat-spinner",2),x(4,__e,1,1,"mat-spinner",3),x(5,y_e,2,2),x(6,C_e,3,6,"span",4),u()()),2&i&&(C("disabled",o.showLoading)("ngClass",se(10,m_e,!o.showLoading))("matTooltip",o.showAlert?pe(1,7,"refresh-button.error-tooltip",se(12,lV,o.refeshRate)):""),d(3),S(o.showLoading?3:-1),d(),S(o.showLoading?4:-1),d(),S(o.showLoading?-1:5),d(),S(o.elapsedTime?6:-1))},dependencies:[$t,Pn,We,Kt,so,xe],styles:[".time-button[_ngcontent-%COMP%]{color:#f8f9f9;border-radius:10px;height:40px}.time-button[disabled][_ngcontent-%COMP%]{opacity:.7!important;color:#f8f9f9}.time-button[disabled][_ngcontent-%COMP%] span[_ngcontent-%COMP%]{opacity:.7}.time-button[_ngcontent-%COMP%] .internal-container[_ngcontent-%COMP%]{display:flex;align-items:center}.time-button[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{font-size:16px;margin-right:5px;opacity:.5;display:inline-block}@media(max-width:767px){.time-button[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{font-size:22px;margin-right:0;opacity:.75}}.time-button[_ngcontent-%COMP%] .alert[_ngcontent-%COMP%]{color:orange;opacity:1}.time-button[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:.6rem}"]})}}return t})(),rp=(()=>{class t{static{this.accumulatedMeasurements=["B","KB","MB","GB","TB","PB","EB","ZB","YB"]}static{this.measurementsPerSec=["B/s","KB/s","MB/s","GB/s","TB/s","PB/s","EB/s","ZB/s","YB/s"]}static{this.accumulatedMeasurementsInBits=["b","Kb","Mb","Gb","Tb","Pb","Eb","Zb","Yb"]}static{this.measurementsPerSecInBits=["b/s","Kb/s","Mb/s","Gb/s","Tb/s","Pb/s","Eb/s","Zb/s","Yb/s"]}transform(e,i){let r,o=!0;i?i.showPerSecond?i.useBits?(r=t.measurementsPerSecInBits,o=!1):r=t.measurementsPerSec:i.useBits?(r=t.accumulatedMeasurementsInBits,o=!1):r=t.accumulatedMeasurements:r=t.accumulatedMeasurements;let s=new bk(e);o||(s=s.multipliedBy(8));let a=r[0],l=0;for(;s.dividedBy(1024).isGreaterThan(1);)s=s.dividedBy(1024),l+=1,a=r[l];let c="";return(!i||i.showValue)&&(c=i&&i.limitDecimals?new bk(s).decimalPlaces(1).toString():s.toFixed(2)),(!i||i.showValue&&i.showUnit)&&(c+=" "),(!i||i.showUnit)&&(c+=a),c}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275pipe=Hi({name:"autoScale",type:t,pure:!0,standalone:!1})}}return t})();const cV=(t,n)=>({"d-lg-none":t,"d-none":n}),x_e=t=>({"normal-height":t}),S_e=(t,n)=>({"d-none d-lg-flex":t,"d-flex":n}),k_e=t=>({transparent:t}),D_e=(t,n)=>({"d-lg-none":t,"d-none d-md-inline-block":n}),Dk=(t,n)=>({"mouse-disabled":t,"grey-button-background":n}),M_e=t=>({"d-none":t}),T_e=(t,n)=>({"animation-container":t,"d-none":n}),E_e=t=>({time:t}),dV=t=>({showValue:!0,showUnit:!0,showPerSecond:!0,useBits:t});function P_e(t,n){if(1&t){const e=oe();h(0,"button",21),F("click",function(){return j(e),U(v().requestAction(null))}),h(1,"mat-icon"),p(2,"chevron_left"),u()()}}function I_e(t,n){if(1&t&&(h(0,"span",5),p(1),u()),2&t){const e=v();d(),M(e.pageHeaderLabel)}}function O_e(t,n){if(1&t&&(p(0),b(1,"translate")),2&t){const e=v();E(" ",y(1,1,e.titleParts[e.titleParts.length-1])," ")}}function A_e(t,n){1&t&&B(0,"img",6)}function R_e(t,n){if(1&t){const e=oe();h(0,"div",23),F("click",function(){const o=j(e).$implicit;return U(v(2).requestAction(o.actionName))}),h(1,"mat-icon",24),p(2),u(),p(3),b(4,"translate"),u()}if(2&t){const e=n.$implicit;C("disabled",e.disabled),d(),C("ngClass",se(6,k_e,e.disabled)),d(),M(e.icon),d(),E(" ",y(4,4,e.name)," ")}}function F_e(t,n){1&t&&B(0,"div",10)}function N_e(t,n){if(1&t&&(ve(0,R_e,5,8,"div",22,Fe),x(2,F_e,1,0,"div",10)),2&t){const e=v();ye(e.optionsData),d(2),S(e.returnText?2:-1)}}function L_e(t,n){1&t&&B(0,"div",10)}function B_e(t,n){1&t&&B(0,"img",26),2&t&&C("src","assets/img/lang/"+v(2).language.iconName,mo)}function V_e(t,n){if(1&t){const e=oe();h(0,"div",25),F("click",function(){return j(e),U(v().openLanguageWindow())}),x(1,B_e,1,1,"img",26),p(2),b(3,"translate"),u()}if(2&t){const e=v();d(),S(e.language?1:-1),d(),E(" ",y(3,2,e.language?e.language.name:"")," ")}}function H_e(t,n){if(1&t){const e=oe();h(0,"div",15)(1,"a",27),b(2,"translate"),F("click",function(){return j(e),U(v().requestAction(null))}),h(3,"mat-icon",28),p(4,"chevron_left"),u()()()}if(2&t){const e=v();d(),C("matTooltip",y(2,2,e.returnText)),d(2),C("inline",!0)}}function j_e(t,n){if(1&t&&(h(0,"span",31),p(1),u()),2&t){const e=v(3);d(),M(e.pageHeaderLabel)}}function U_e(t,n){1&t&&B(0,"app-copy-to-clipboard-text",32),2&t&&C("text",Qt(v(3).pageHeaderIdentifier))("short",!1)}function z_e(t,n){if(1&t&&(h(0,"span",29),x(1,j_e,2,1,"span",31),x(2,U_e,1,3,"app-copy-to-clipboard-text",32),u()),2&t){const e=v(2);d(),S(e.pageHeaderLabel?1:-1),d(),S(e.pageHeaderIdentifier?2:-1)}}function $_e(t,n){if(1&t&&(h(0,"span",30),p(1),b(2,"translate"),u()),2&t){const e=v(2);d(),E(" ",y(2,1,e.titleParts[e.titleParts.length-1])," ")}}function W_e(t,n){if(1&t&&x(0,z_e,3,2,"span",29)(1,$_e,3,3,"span",30),2&t){const e=v();S(e.pageHeaderLabel||e.pageHeaderIdentifier?0:1)}}function G_e(t,n){1&t&&B(0,"img",16)}function q_e(t,n){1&t&&B(0,"span",33)}function K_e(t,n){if(1&t&&(h(0,"a",34)(1,"mat-icon",28),p(2),u(),h(3,"span"),p(4),b(5,"translate"),u()()),2&t){const e=v().$implicit,i=v();C("href",e.externalUrl,mo)("ngClass",_t(7,Dk,i.disableMouse,!i.disableMouse)),d(),C("inline",!0),d(),M(e.icon),d(2),M(y(5,5,e.label))}}function Y_e(t,n){if(1&t&&(h(0,"a",35)(1,"mat-icon",28),p(2),u(),h(3,"span"),p(4),b(5,"translate"),u()()),2&t){const e=v(),i=e.$implicit,o=e.$index,r=v();C("disabled",o===r.selectedTabIndex)("routerLink",i.linkParts)("ngClass",_t(8,Dk,r.disableMouse,!r.disableMouse&&o!==r.selectedTabIndex)),d(),C("inline",!0),d(),M(i.icon),d(2),M(y(5,6,i.label))}}function X_e(t,n){if(1&t&&(x(0,q_e,1,0,"span",33),h(1,"div",24),x(2,K_e,6,10,"a",34),x(3,Y_e,6,11,"a",35),u()),2&t){const e=n.$implicit,i=n.$index,o=v();S(i>0&&o.tabsData[i-1].group!==e.group?0:-1),d(),C("ngClass",_t(4,D_e,e.onlyIfLessThanLg,1!==o.tabsData.length)),d(),S(e.externalUrl?2:-1),d(),S(e.externalUrl?-1:3)}}function Z_e(t,n){if(1&t){const e=oe();h(0,"div",18)(1,"button",36),F("click",function(){return j(e),U(v().openTabSelector())}),h(2,"div",37)(3,"mat-icon",28),p(4),u(),h(5,"span"),p(6),b(7,"translate"),u(),h(8,"mat-icon",28),p(9,"keyboard_arrow_down"),u()()()()}if(2&t){const e=v();C("ngClass",se(8,M_e,1===e.tabsData.length)),d(),C("ngClass",_t(10,Dk,e.disableMouse,!e.disableMouse)),d(2),C("inline",!0),d(),M(e.tabsData[e.selectedTabIndex].icon),d(2),M(y(7,6,e.tabsData[e.selectedTabIndex].label)),d(2),C("inline",!0)}}function Q_e(t,n){if(1&t){const e=oe();h(0,"app-refresh-button",41),F("click",function(){return j(e),U(v(2).sendRefreshEvent())}),u()}if(2&t){const e=v(2);C("secondsSinceLastUpdate",e.secondsSinceLastUpdate)("showLoading",e.showLoading)("showAlert",e.showAlert)("refeshRate",e.refeshRate)}}function J_e(t,n){if(1&t&&(h(0,"div",19),x(1,Q_e,1,4,"app-refresh-button",38),h(2,"button",39)(3,"div",40)(4,"mat-icon",28),p(5,"menu"),u()()()()),2&t){const e=v(),i=Hn(13);d(),S(e.showUpdateButton?1:-1),d(),C("matMenuTriggerFor",i),d(2),C("inline",!0)}}function ebe(t,n){if(1&t){const e=oe();h(0,"div",43)(1,"div",49),F("click",function(){return j(e),U(v(2).openLanguageWindow())}),B(2,"img",50),p(3),b(4,"translate"),u()()}if(2&t){const e=v(2);d(2),C("src","assets/img/lang/"+e.language.iconName,mo),d(),E(" ",y(4,2,e.language?e.language.name:"")," ")}}function tbe(t,n){1&t&&(h(0,"div",45),b(1,"translate"),h(2,"mat-icon",28),p(3,"warning"),u(),p(4),b(5,"translate"),u()),2&t&&(C("matTooltip",y(1,3,"vpn.connection-error.info")),d(2),C("inline",!0),d(2),E(" ",y(5,5,"vpn.connection-error.text")," "))}function nbe(t,n){1&t&&(h(0,"div",55)(1,"mat-icon",54),p(2,"brightness_1"),u()()),2&t&&(d(),C("inline",!0))}function ibe(t,n){if(1&t&&(h(0,"table",47)(1,"tr")(2,"td",51),b(3,"translate"),h(4,"div",24)(5,"div",52)(6,"div",53)(7,"mat-icon",54),p(8,"brightness_1"),u(),p(9),b(10,"translate"),u()()(),x(11,nbe,3,1,"div",55),h(12,"mat-icon",54),p(13,"brightness_1"),u(),p(14),b(15,"translate"),u(),h(16,"td",51),b(17,"translate"),h(18,"mat-icon",28),p(19,"swap_horiz"),u(),p(20),b(21,"translate"),u()(),h(22,"tr")(23,"td",51),b(24,"translate"),h(25,"mat-icon",28),p(26,"arrow_upward"),u(),p(27),b(28,"autoScale"),u(),h(29,"td",51),b(30,"translate"),h(31,"mat-icon",28),p(32,"arrow_downward"),u(),p(33),b(34,"autoScale"),u()()()),2&t){const e=v(2);d(2),Ze(e.vpnData.stateClass+" state-td"),C("matTooltip",y(3,18,e.vpnData.state+"-info")),d(2),C("ngClass",_t(39,T_e,e.showVpnStateAnimation,!e.showVpnStateAnimation)),d(3),C("inline",!0),d(2),E(" ",y(10,20,e.vpnData.state)," "),d(2),S(e.showVpnStateAnimatedDot?11:-1),d(),C("inline",!0),d(2),E(" ",y(15,22,e.vpnData.state)," "),d(2),C("matTooltip",y(17,24,"vpn.connection-info.latency-info")),d(2),C("inline",!0),d(2),E(" ",pe(21,26,"common."+e.getLatencyValueString(e.vpnData.latency),se(42,E_e,e.getPrintableLatency(e.vpnData.latency)))," "),d(3),C("matTooltip",y(24,29,"vpn.connection-info.upload-info")),d(2),C("inline",!0),d(2),E(" ",pe(28,31,e.vpnData.uploadSpeed,se(44,dV,e.showVpnDataStatsInBits))," "),d(2),C("matTooltip",y(30,34,"vpn.connection-info.download-info")),d(2),C("inline",!0),d(2),E(" ",pe(34,36,e.vpnData.downloadSpeed,se(46,dV,e.showVpnDataStatsInBits))," ")}}function obe(t,n){1&t&&B(0,"mat-spinner",48),2&t&&C("diameter",20)}function rbe(t,n){if(1&t&&(h(0,"div")(1,"div",42),x(2,ebe,5,4,"div",43),B(3,"div",44),x(4,tbe,6,7,"div",45),u(),h(5,"div",46),x(6,ibe,35,48,"table",47),x(7,obe,1,1,"mat-spinner",48),u()()),2&t){const e=v();d(2),S(!e.hideLanguageButton&&e.language?2:-1),d(2),S(e.errorsConnectingToVpn?4:-1),d(2),S(e.vpnData?6:-1),d(),S(e.vpnData?-1:7)}}function sbe(t,n){1&t&&(h(0,"div",20)(1,"div",56)(2,"mat-icon",28),p(3,"error_outline"),u(),p(4),b(5,"translate"),u(),h(6,"div",57),p(7),b(8,"translate"),u()()),2&t&&(d(2),C("inline",!0),d(2),E(" ",y(5,3,"vpn.remote-access-title")," "),d(3),E(" ",y(8,5,"vpn.remote-access-text")," "))}let Mr=(()=>{class t{set localVpnKey(e){this.localVpnKeyInternal=e,e?this.startGettingVpnInfo():this.stopGettingVpnInfo()}constructor(e,i,o,r,s){this.languageService=e,this.dialog=i,this.router=o,this.vpnClientService=r,this.vpnSavedDataService=s,this.disableMouse=!1,this.selectedTabIndex=0,this.refeshRate=-1,this.showUpdateButton=!0,this.localVpnKeyInternal="",this.refreshRequested=new we,this.optionSelected=new we,this.hideLanguageButton=!0,this.showVpnInfo=!1,this.initialVpnStateObtained=!1,this.lastVpnState="",this.showVpnStateAnimation=!1,this.showVpnStateAnimatedDot=!0,this.showVpnDataStatsInBits=!0,this.remoteAccess=!1,this.errorsConnectingToVpn=!1,this.langSubscriptionsGroup=[]}ngOnInit(){this.langSubscriptionsGroup.push(this.languageService.currentLanguage.subscribe(i=>{this.language=i})),this.langSubscriptionsGroup.push(this.languageService.languages.subscribe(i=>{this.hideLanguageButton=!(i.length>1)}));const e=window.location.hostname;!e.toLowerCase().includes("localhost")&&!e.toLowerCase().includes("127.0.0.1")&&(this.remoteAccess=!0)}ngOnDestroy(){this.langSubscriptionsGroup.forEach(e=>e.unsubscribe()),this.refreshRequested.complete(),this.optionSelected.complete(),this.stopGettingVpnInfo()}startGettingVpnInfo(){this.showVpnInfo=!0,this.vpnClientService.initialize(this.localVpnKeyInternal),this.updateVpnDataStatsUnit(),this.vpnDataSubscription=this.vpnClientService.backendState.subscribe(e=>{e&&(this.vpnData={state:"",stateClass:"",latency:e.vpnClientAppData.connectionData?e.vpnClientAppData.connectionData.latency:0,downloadSpeed:e.vpnClientAppData.connectionData?e.vpnClientAppData.connectionData.downloadSpeed:0,uploadSpeed:e.vpnClientAppData.connectionData?e.vpnClientAppData.connectionData.uploadSpeed:0},e.vpnClientAppData.appState===an.Stopped?(this.vpnData.state="vpn.connection-info.state-disconnected",this.vpnData.stateClass="red-clear-text"):e.vpnClientAppData.appState===an.Connecting?(this.vpnData.state="vpn.connection-info.state-connecting",this.vpnData.stateClass="yellow-clear-text"):e.vpnClientAppData.appState===an.Running?(this.vpnData.state="vpn.connection-info.state-connected",this.vpnData.stateClass="green-clear-text"):e.vpnClientAppData.appState===an.ShuttingDown?(this.vpnData.state="vpn.connection-info.state-disconnecting",this.vpnData.stateClass="yellow-clear-text"):e.vpnClientAppData.appState===an.Reconnecting&&(this.vpnData.state="vpn.connection-info.state-reconnecting",this.vpnData.stateClass="yellow-clear-text"),this.initialVpnStateObtained?this.lastVpnState!==this.vpnData.state&&(this.lastVpnState=this.vpnData.state,this.showVpnStateAnimation=!1,this.showVpnStateChangeAnimationSubscription&&this.showVpnStateChangeAnimationSubscription.unsubscribe(),this.showVpnStateChangeAnimationSubscription=ae(0).pipe(li(1)).subscribe(()=>this.showVpnStateAnimation=!0)):(this.initialVpnStateObtained=!0,this.lastVpnState=this.vpnData.state),this.showVpnStateAnimatedDot=!1,this.showVpnStateAnimatedDotSubscription&&this.showVpnStateAnimatedDotSubscription.unsubscribe(),this.showVpnStateAnimatedDotSubscription=ae(0).pipe(li(1)).subscribe(()=>this.showVpnStateAnimatedDot=!0))}),this.errorsConnectingToVpnSubscription=this.vpnClientService.errorsConnecting.subscribe(e=>{this.errorsConnectingToVpn=e})}stopGettingVpnInfo(){this.showVpnInfo=!1,this.vpnDataSubscription&&this.vpnDataSubscription.unsubscribe(),this.errorsConnectingToVpnSubscription&&this.errorsConnectingToVpnSubscription.unsubscribe()}getLatencyValueString(e){return hi.getLatencyValueString(e)}getPrintableLatency(e){return hi.getPrintableLatency(e)}requestAction(e){this.optionSelected.emit(e)}openLanguageWindow(){YB.openDialog(this.dialog)}sendRefreshEvent(){this.refreshRequested.emit()}openTabSelector(){const e=[];this.tabsData.forEach(i=>{e.push({label:i.label,icon:i.icon})}),ao.openDialog(this.dialog,e,"tabs-window.title").afterClosed().subscribe(i=>{i&&(i-=1)!==this.selectedTabIndex&&this.router.navigate(this.tabsData[i].linkParts)})}updateVpnDataStatsUnit(){const e=this.vpnSavedDataService.getDataUnitsSetting();this.showVpnDataStatsInBits=e===Zo.BitsSpeedAndBytesVolume||e===Zo.OnlyBits}static{this.\u0275fac=function(i){return new(i||t)(O($b),O(Ot),O(vt),O(hc),O(uc))}}static{this.\u0275cmp=re({type:t,selectors:[["app-top-bar"]],inputs:{disableMouse:"disableMouse",titleParts:"titleParts",pageHeaderLabel:"pageHeaderLabel",pageHeaderIdentifier:"pageHeaderIdentifier",tabsData:"tabsData",selectedTabIndex:"selectedTabIndex",optionsData:"optionsData",returnText:"returnText",secondsSinceLastUpdate:"secondsSinceLastUpdate",showLoading:"showLoading",showAlert:"showAlert",refeshRate:"refeshRate",showUpdateButton:"showUpdateButton",localVpnKey:"localVpnKey"},outputs:{refreshRequested:"refreshRequested",optionSelected:"optionSelected"},standalone:!1,decls:30,vars:29,consts:[["menu","matMenu"],[1,"top-bar",3,"ngClass"],[1,"button-container"],["mat-icon-button","",1,"transparent-button"],[1,"logo-container"],[1,"page-header-label-mobile"],["src","/assets/img/logo-s.png"],["mat-icon-button","",1,"transparent-button",3,"matMenuTriggerFor"],[1,"top-bar-margin",3,"ngClass"],[3,"overlapTrigger"],[1,"menu-separator"],["mat-menu-item",""],[1,"main-container",3,"ngClass"],[1,"main-area"],[1,"title",3,"ngClass"],[1,"return-container"],["src","./assets/img/logo-vpn.png",1,"title-image"],[1,"lower-container"],[1,"d-md-none",3,"ngClass"],[1,"right-container"],[1,"remote-vpn-alert-container"],["mat-icon-button","",1,"transparent-button",3,"click"],["mat-menu-item","",3,"disabled"],["mat-menu-item","",3,"click","disabled"],[3,"ngClass"],["mat-menu-item","",3,"click"],[1,"flag",3,"src"],[1,"return-button","transparent-button",3,"click","matTooltip"],[3,"inline"],[1,"page-header"],[1,"title-text"],[1,"page-header-label"],[1,"page-header-id",3,"text","short"],["aria-hidden","true",1,"tab-group-separator","d-none","d-md-inline-block"],["mat-button","","target","_blank","rel","noreferrer nofollow noopener",1,"tab-button","white-theme",3,"href","ngClass"],["mat-button","",1,"tab-button","white-theme",3,"disabled","routerLink","ngClass"],["mat-button","",1,"tab-button","select-tab-button","white-theme",3,"click","ngClass"],[1,"d-flex"],[3,"secondsSinceLastUpdate","showLoading","showAlert","refeshRate"],["mat-button","",1,"menu-button","subtle-transparent-button","d-none","d-lg-block",3,"matMenuTriggerFor"],[1,"icon-container"],[3,"click","secondsSinceLastUpdate","showLoading","showAlert","refeshRate"],[1,"top-text-vpn-container"],[1,"languaje-button-vpn"],[1,"elements-separator"],[1,"connection-error-msg-vpn","blinking",3,"matTooltip"],[1,"vpn-info","vpn-dark-box-radius"],["cellspacing","0","cellpadding","0"],[3,"diameter"],[1,"text-container",3,"click"],[1,"language-flag",3,"src"],[3,"matTooltip"],[1,"internal-animation-container"],[1,"animation-area"],[1,"state-icon",3,"inline"],[1,"aminated-state-icon-container"],[1,"top-line"],[1,"bottom-line"]],template:function(i,o){if(1&i&&(h(0,"div",1)(1,"div",2),x(2,P_e,3,0,"button",3),u(),h(3,"div",4),x(4,I_e,2,1,"span",5)(5,O_e,2,3)(6,A_e,1,0,"img",6),u(),h(7,"div",2)(8,"button",7)(9,"mat-icon"),p(10,"menu"),u()()()(),B(11,"div",8),h(12,"mat-menu",9,0),x(14,N_e,3,1),x(15,L_e,1,0,"div",10),x(16,V_e,4,4,"div",11),u(),h(17,"div",12)(18,"div",13)(19,"div",14),x(20,H_e,5,4,"div",15),x(21,W_e,2,1),x(22,G_e,1,0,"img",16),u(),h(23,"div",17),ve(24,X_e,4,7,null,null,Fe),x(26,Z_e,10,13,"div",18),x(27,J_e,6,3,"div",19),u()(),x(28,rbe,8,4,"div"),u(),x(29,sbe,9,7,"div",20)),2&i){const r=Hn(13);C("ngClass",_t(18,cV,!o.showVpnInfo,o.showVpnInfo)),d(2),S(o.returnText?2:-1),d(2),S(o.pageHeaderLabel?4:o.titleParts&&o.titleParts.length>=2?5:6),d(4),C("matMenuTriggerFor",r),d(3),C("ngClass",_t(21,cV,!o.showVpnInfo,o.showVpnInfo)),d(),C("overlapTrigger",!1),d(2),S(o.optionsData&&o.optionsData.length>=1?14:-1),d(),S(!o.hideLanguageButton&&o.optionsData&&o.optionsData.length>=1?15:-1),d(),S(o.hideLanguageButton?-1:16),d(),C("ngClass",se(24,x_e,!o.showVpnInfo)),d(2),C("ngClass",_t(26,S_e,!o.showVpnInfo,o.showVpnInfo)),d(),S(o.returnText?20:-1),d(),S(o.showVpnInfo?-1:21),d(),S(o.showVpnInfo?22:-1),d(2),ye(o.tabsData),d(2),S(o.tabsData&&o.tabsData[o.selectedTabIndex]?26:-1),d(),S(o.showVpnInfo?-1:27),d(),S(o.showVpnInfo?28:-1),d(),S(o.showVpnInfo&&o.remoteAccess?29:-1)}},dependencies:[$t,Is,Pn,Wo,We,Kt,Jr,As,vu,so,op,w_e,xe,rp],styles:["@media(max-width:991px){.normal-height[_ngcontent-%COMP%]{height:55px!important}}.main-container[_ngcontent-%COMP%]{border-bottom:1px solid rgba(255,255,255,.15);padding-bottom:10px;margin-bottom:-5px;height:100px;display:flex}.main-container[_ngcontent-%COMP%] .main-area[_ngcontent-%COMP%]{flex-grow:1}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-size:.875rem;margin-bottom:15px;margin-left:5px;flex-direction:row;align-items:center}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] .title-text[_ngcontent-%COMP%]{z-index:1}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] .title-image[_ngcontent-%COMP%]{width:124px;height:21px}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] .return-container[_ngcontent-%COMP%]{width:30px;position:relative;top:2px}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] .return-container[_ngcontent-%COMP%] .return-button[_ngcontent-%COMP%]{line-height:1;font-size:25px;position:relative;top:2px;width:100%;margin-right:4px;cursor:pointer}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%]{display:flex;flex-wrap:nowrap;align-items:center;gap:2px}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-group-separator[_ngcontent-%COMP%]{width:1px;height:20px;background:#fff3;margin:0 8px;align-self:center}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{flex:0 0 auto;min-width:0}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[_ngcontent-%COMP%]{color:#f8f9f9;border-radius:10px;opacity:.5;margin-right:0;text-decoration:none;height:40px;display:flex;align-items:center}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[_ngcontent-%COMP%]:hover{opacity:.75}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[disabled][_ngcontent-%COMP%]{opacity:1!important;color:#f8f9f9;background:#000000b3!important}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[_ngcontent-%COMP%] .mat-icon[_ngcontent-%COMP%]{margin-right:2px;opacity:.75;font-size:18px}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:1rem;margin:0 4px;position:relative;top:-1px}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .select-tab-button[_ngcontent-%COMP%]{opacity:.75!important}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .select-tab-button[_ngcontent-%COMP%]:hover{opacity:1!important}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .right-container[_ngcontent-%COMP%]{display:flex;align-items:center;margin-left:auto}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .right-container[_ngcontent-%COMP%] app-refresh-button[_ngcontent-%COMP%]{align-self:flex-end}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .right-container[_ngcontent-%COMP%] .menu-button[_ngcontent-%COMP%]{height:32px;width:32px;min-width:0px!important;background-color:#f8f9f9;border-radius:100%;padding:0!important;line-height:normal;color:#929292;font-size:20px}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .right-container[_ngcontent-%COMP%] .menu-button[_ngcontent-%COMP%] .icon-container[_ngcontent-%COMP%]{display:flex;place-content:center}.menu-separator[_ngcontent-%COMP%]{width:100%;height:1px;background-color:#0000001f}.flag[_ngcontent-%COMP%]{width:24px;margin-right:16px}.transparent[_ngcontent-%COMP%]{opacity:.5}.top-bar[_ngcontent-%COMP%]{position:fixed;z-index:10;width:100%;height:56px;background-color:#f8f9f9;top:0;left:0;right:0;color:#202226;display:flex}.top-bar[_ngcontent-%COMP%] .logo-container[_ngcontent-%COMP%]{flex-grow:1;display:flex;justify-content:center;align-items:center}.top-bar[_ngcontent-%COMP%] .logo-container[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{height:28px}.top-bar[_ngcontent-%COMP%] .button-container[_ngcontent-%COMP%]{flex-shrink:0;width:56px}.top-bar[_ngcontent-%COMP%] .button-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:56px;height:56px}.top-bar-margin[_ngcontent-%COMP%]{margin-top:56px;flex-shrink:0}.vpn-info[_ngcontent-%COMP%]{font-size:.7rem;background:#000000b3;padding:15px 20px;align-self:center}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] .state-td[_ngcontent-%COMP%]{font-weight:700}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:2px 0;min-width:90px}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:3px;font-size:12px;position:relative;top:1px;-webkit-user-select:none;user-select:none;width:auto;line-height:1}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .state-icon[_ngcontent-%COMP%]{transform:scale(.75)}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .aminated-state-icon-container[_ngcontent-%COMP%]{width:0px;height:0px}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .aminated-state-icon-container[_ngcontent-%COMP%] .state-icon[_ngcontent-%COMP%]{height:auto;animation:_ngcontent-%COMP%_state-icon-animation 1s linear 1}@keyframes _ngcontent-%COMP%_state-icon-animation{0%{transform:perspective(1px) scale(1);opacity:.8}to{transform:scale(2);opacity:0}}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .animation-container[_ngcontent-%COMP%]{width:0px;height:0px}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .animation-container[_ngcontent-%COMP%] .internal-animation-container[_ngcontent-%COMP%]{width:200px}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .animation-container[_ngcontent-%COMP%] .internal-animation-container[_ngcontent-%COMP%] .animation-area[_ngcontent-%COMP%]{display:inline-block;animation:_ngcontent-%COMP%_state-animation 1s linear 1;opacity:0}@keyframes _ngcontent-%COMP%_state-animation{0%{transform:scale(1);opacity:1}to{transform:scale(2.5);opacity:0}}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:first-of-type{padding-right:30px}.vpn-info[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}.top-text-vpn-container[_ngcontent-%COMP%]{display:flex;flex-direction:row-reverse;font-size:.6rem}.top-text-vpn-container[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:3px}.top-text-vpn-container[_ngcontent-%COMP%] .connection-error-msg-vpn[_ngcontent-%COMP%]{margin:-5px 5px 5px 10px;color:orange}.top-text-vpn-container[_ngcontent-%COMP%] .elements-separator[_ngcontent-%COMP%]{flex-grow:1}.top-text-vpn-container[_ngcontent-%COMP%] .languaje-button-vpn[_ngcontent-%COMP%]{margin:-5px 10px 5px 0}.top-text-vpn-container[_ngcontent-%COMP%] .languaje-button-vpn[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]{cursor:pointer;display:inline;opacity:.8}.top-text-vpn-container[_ngcontent-%COMP%] .languaje-button-vpn[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]:hover{opacity:1}.top-text-vpn-container[_ngcontent-%COMP%] .languaje-button-vpn[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .language-flag[_ngcontent-%COMP%]{width:11px;height:11px;margin-right:2px}.remote-vpn-alert-container[_ngcontent-%COMP%]{background-color:#da3439;margin:0 -21px;padding:10px 20px 15px;text-align:center}.remote-vpn-alert-container[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:14px}.remote-vpn-alert-container[_ngcontent-%COMP%] .top-line[_ngcontent-%COMP%]{font-size:1.25rem}.remote-vpn-alert-container[_ngcontent-%COMP%] .bottom-line[_ngcontent-%COMP%]{font-size:.8rem}.page-header[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;line-height:1.1;gap:2px;min-width:0}.page-header-label[_ngcontent-%COMP%]{font-size:18px;font-weight:500;letter-spacing:.2px}.page-header-id[_ngcontent-%COMP%]{display:inline-block;font-size:12px;opacity:.65;font-family:monospace;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page-header-label-mobile[_ngcontent-%COMP%]{font-weight:500;font-size:14px}"]})}}return t})();const uV=()=>["start.title"],abe=t=>({"paginator-icons-fixer":t}),hV=()=>["/nodes","rewards"],fV=()=>["/nodes","list"],lbe=()=>({"click-effect":!0}),cbe=t=>["/nodes",t,"rewards"],dbe=(t,n)=>({"click-effect":t,"non-selectable":n}),pV=t=>["/nodes",t],ube=t=>({"selectable click-effect":t}),hbe=(t,n)=>n.type;function fbe(t,n){if(1&t&&(h(0,"div",1)(1,"div"),B(2,"app-top-bar",3),u(),B(3,"app-loading-indicator",4),u()),2&t){const e=v();d(2),C("titleParts",Ct(4,uV))("tabsData",e.tabsData)("selectedTabIndex",e.showRewardsInfo?1:0)("showUpdateButton",!1)}}function pbe(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,v().$implicit.translatableValue)," ")}function mbe(t,n){1&t&&p(0),2&t&&E(" ",v().$implicit.value," ")}function gbe(t,n){if(1&t&&(h(0,"div",19)(1,"span"),p(2),b(3,"translate"),u(),x(4,pbe,2,3),x(5,mbe,1,1),u()),2&t){const e=n.$implicit;d(2),E("",y(3,3,e.filterName),": "),d(2),S(e.translatableValue?4:-1),d(),S(e.value?5:-1)}}function _be(t,n){if(1&t){const e=oe();h(0,"div",18),F("click",function(){return j(e),U(v(2).dataFilterer.removeFilters())}),ve(1,gbe,6,5,"div",19,Fe),h(3,"div",20),p(4),b(5,"translate"),u()()}if(2&t){const e=v(2);d(),ye(e.dataFilterer.currentFiltersTexts),d(3),M(y(5,1,"filters.press-to-remove"))}}function bbe(t,n){if(1&t){const e=oe();h(0,"mat-icon",21),b(1,"translate"),F("click",function(){return j(e),U(v(2).dataFilterer.changeFilters())}),p(2,"filter_list"),u()}2&t&&C("inline",!0)("matTooltip",y(1,2,"filters.filter-action"))}function vbe(t,n){1&t&&(h(0,"mat-icon",13),p(1,"more_horiz"),u()),2&t&&(v(),C("matMenuTriggerFor",Hn(12)))}function ybe(t,n){if(1&t&&B(0,"app-paginator",16),2&t){const e=v(2);C("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",e.showRewardsInfo?Ct(4,hV):Ct(5,fV))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function Cbe(t,n){if(1&t&&(h(0,"mat-icon",27),p(1),u()),2&t){const e=v(4);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function wbe(t,n){if(1&t&&(h(0,"mat-icon",27),p(1),u()),2&t){const e=v(4);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function xbe(t,n){if(1&t&&(h(0,"mat-icon",27),p(1),u()),2&t){const e=v(4);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function Sbe(t,n){if(1&t&&(h(0,"mat-icon",27),p(1),u()),2&t){const e=v(4);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function kbe(t,n){if(1&t&&(h(0,"th",33),p(1),u()),2&t){const e=n.$implicit;d(),E(" ",e," ")}}function Dbe(t,n){1&t&&(ve(0,kbe,2,1,"th",33,Fe),h(2,"th",34),p(3),b(4,"translate"),u()),2&t&&(ye(v(4).rewardDateHeaders),d(3),E(" ",y(4,1,"nodes.reward-total")," "))}function Mbe(t,n){1&t&&(h(0,"th"),p(1),b(2,"translate"),u()),2&t&&(d(),E(" ",y(2,1,"nodes.rewards-loading")," "))}function Tbe(t,n){1&t&&(h(0,"mat-icon",35),b(1,"translate"),p(2,"star"),u()),2&t&&C("inline",!0)("matTooltip",y(1,2,"nodes.hypervisor-info"))}function Ebe(t,n){if(1&t&&(h(0,"td",33)(1,"span",37),p(2),u()()),2&t){const e=n.$implicit,i=v(2).$implicit,o=v(4);d(),Ze(o.getRewardClass(i.localPk,e)),d(),M(o.getRewardAmount(i.localPk,e))}}function Pbe(t,n){if(1&t&&(ve(0,Ebe,3,3,"td",33,Fe),h(2,"td",34)(3,"span",40),p(4),u()()),2&t){const e=v().$implicit,i=v(4);ye(i.rewardDates),d(4),M(i.getWeekTotal(e.localPk))}}function Ibe(t,n){1&t&&(h(0,"td")(1,"span",37),p(2,"..."),u()())}function Obe(t,n){1&t&&(h(0,"button",39),b(1,"translate"),h(2,"mat-icon",27),p(3,"chevron_right"),u()()),2&t&&(C("matTooltip",y(1,2,"nodes.view-node")),d(2),C("inline",!0))}function Abe(t,n){if(1&t){const e=oe();h(0,"button",38),b(1,"translate"),F("click",function(o){j(e);const r=v().$implicit,s=v(4);return o.stopPropagation(),o.preventDefault(),U(s.deleteNode(r))}),h(2,"mat-icon"),p(3,"close"),u()()}2&t&&C("matTooltip",y(1,1,"nodes.delete-node"))}function Rbe(t,n){if(1&t){const e=oe();h(0,"a",32)(1,"td"),x(2,Tbe,3,4,"mat-icon",35),u(),h(3,"td"),B(4,"span",36),b(5,"translate"),u(),h(6,"td"),p(7),u(),h(8,"td"),p(9),u(),h(10,"td")(11,"span",37),p(12),u()(),x(13,Pbe,5,1),x(14,Ibe,3,0,"td"),h(15,"td",31)(16,"button",38),b(17,"translate"),F("click",function(o){const r=j(e).$implicit,s=v(4);return o.stopPropagation(),o.preventDefault(),U(s.copyToClipboard(r))}),h(18,"mat-icon",27),p(19,"filter_none"),u()(),h(20,"button",38),b(21,"translate"),F("click",function(o){const r=j(e).$implicit,s=v(4);return o.stopPropagation(),o.preventDefault(),U(s.showEditLabelDialog(r))}),h(22,"mat-icon",27),p(23,"short_text"),u()(),x(24,Obe,4,4,"button",39),x(25,Abe,4,3,"button",39),u()()}if(2&t){const e=n.$implicit,i=v(4);C("ngClass",Ct(23,lbe))("routerLink",se(24,cbe,e.localPk)),d(2),S(e.isHypervisor?2:-1),d(2),Ze(i.nodeStatusClass(e,!0)),C("matTooltip",y(5,17,i.nodeStatusText(e,!0))),d(3),E(" ",e.label," "),d(2),E(" ",e.localPk," "),d(3),M(i.getRewardAddress(e.localPk)),d(),S(i.rewardDataLoaded?13:-1),d(),S(i.rewardDataLoading?14:-1),d(2),C("matTooltip",y(17,19,"nodes.copy-key")),d(2),C("inline",!0),d(2),C("matTooltip",y(21,21,"labeled-element.edit-label")),d(2),C("inline",!0),d(2),S(e.online?24:-1),d(),S(e.online?-1:25)}}function Fbe(t,n){if(1&t){const e=oe();h(0,"table",23)(1,"tr")(2,"th",25),b(3,"translate"),F("click",function(){j(e);const o=v(3);return U(o.dataSorter.changeSortingOrder(o.hypervisorSortData))}),h(4,"mat-icon",26),p(5,"star_outline"),u(),x(6,Cbe,2,2,"mat-icon",27),u(),h(7,"th",25),b(8,"translate"),F("click",function(){j(e);const o=v(3);return U(o.dataSorter.changeSortingOrder(o.stateSortData))}),B(9,"span",28),x(10,wbe,2,2,"mat-icon",27),u(),h(11,"th",29),F("click",function(){j(e);const o=v(3);return U(o.dataSorter.changeSortingOrder(o.labelSortData))}),p(12),b(13,"translate"),x(14,xbe,2,2,"mat-icon",27),u(),h(15,"th",30),F("click",function(){j(e);const o=v(3);return U(o.dataSorter.changeSortingOrder(o.keySortData))}),p(16),b(17,"translate"),x(18,Sbe,2,2,"mat-icon",27),u(),h(19,"th"),p(20),b(21,"translate"),u(),x(22,Dbe,5,3),x(23,Mbe,3,3,"th"),B(24,"th",31),u(),ve(25,Rbe,26,26,"a",32,Fe),u()}if(2&t){const e=v(3);d(2),C("matTooltip",y(3,11,"nodes.hypervisor")),d(4),S(e.dataSorter.currentSortingColumn===e.hypervisorSortData?6:-1),d(),C("matTooltip",y(8,13,"nodes.state-tooltip")),d(3),S(e.dataSorter.currentSortingColumn===e.stateSortData?10:-1),d(2),E(" ",y(13,15,"nodes.label")," "),d(2),S(e.dataSorter.currentSortingColumn===e.labelSortData?14:-1),d(2),E(" ",y(17,17,"nodes.key")," "),d(2),S(e.dataSorter.currentSortingColumn===e.keySortData?18:-1),d(2),E(" ",y(21,19,"nodes.reward-address")," "),d(2),S(e.rewardDataLoaded?22:-1),d(),S(e.rewardDataLoading?23:-1),d(2),ye(e.dataSource)}}function Nbe(t,n){if(1&t&&(h(0,"mat-icon",27),p(1),u()),2&t){const e=v(4);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function Lbe(t,n){if(1&t&&(h(0,"mat-icon",27),p(1),u()),2&t){const e=v(4);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function Bbe(t,n){if(1&t&&(h(0,"mat-icon",27),p(1),u()),2&t){const e=v(4);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function Vbe(t,n){if(1&t&&(h(0,"mat-icon",27),p(1),u()),2&t){const e=v(4);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function Hbe(t,n){if(1&t&&(h(0,"mat-icon",27),p(1),u()),2&t){const e=v(4);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function jbe(t,n){1&t&&(h(0,"mat-icon",35),b(1,"translate"),p(2,"star"),u()),2&t&&C("inline",!0)("matTooltip",y(1,2,"nodes.hypervisor-info"))}function Ube(t,n){if(1&t&&(h(0,"div",37),p(1),u(),h(2,"div",37),p(3),u()),2&t){const e=v(2).$implicit;d(),M(e.ip),d(2),M(e.publicIp)}}function zbe(t,n){if(1&t&&(h(0,"div",37),p(1),u()),2&t){const e=v(2).$implicit;d(),M(e.publicIp)}}function $be(t,n){if(1&t&&(h(0,"div",37),p(1),u()),2&t){const e=v(2).$implicit;d(),M(e.ip)}}function Wbe(t,n){if(1&t&&(h(0,"div",37),p(1),u()),2&t){const e=v(2).$implicit;d(),Uh("",e.cityName?e.cityName+", ":"","",e.regionName?e.regionName+", ":"","",e.countryCode)}}function Gbe(t,n){if(1&t&&(x(0,Ube,4,2)(1,zbe,2,1,"div",37)(2,$be,2,1,"div",37),x(3,Wbe,2,3,"div",37)),2&t){const e=v().$implicit;S(e.ip&&e.publicIp&&e.ip!==e.publicIp?0:e.publicIp?1:e.ip?2:-1),d(3),S(e.countryCode?3:-1)}}function qbe(t,n){1&t&&(h(0,"span"),p(1,"-"),u())}function Kbe(t,n){if(1&t&&(h(0,"div",37),p(1),u()),2&t){const e=n.$implicit;d(),gt("",e.type,": ",e.count)}}function Ybe(t,n){if(1&t&&(ve(0,Kbe,2,2,"div",37,hbe),h(2,"div",37),p(3),u()),2&t){const e=v().$implicit;ye(v(4).getTransportCounts(e)),d(3),E("Total: ",e.transports.length)}}function Xbe(t,n){1&t&&(h(0,"span",37),p(1,"Total: 0"),u())}function Zbe(t,n){1&t&&(h(0,"span"),p(1,"-"),u())}function Qbe(t,n){if(1&t&&(h(0,"div",37),p(1),u()),2&t){const e=v().$implicit;d(),M(e.version)}}function Jbe(t,n){if(1&t&&(h(0,"div",37),p(1),b(2,"translate"),u(),h(3,"div",37),p(4),b(5,"translate"),u()),2&t){const e=v().$implicit;d(),gt("",y(2,4,"nodes.visor-version"),": ",e.version||"-"),d(3),gt("",y(5,6,"nodes.config-label"),": ",e.configVersion||"-")}}function eve(t,n){if(1&t&&(h(0,"div",37),p(1),u()),2&t){const e=n.$implicit;d(),M(e)}}function tve(t,n){if(1&t&&ve(0,eve,2,1,"div",37,Fe),2&t){const e=v().$implicit;ye(v(4).getNodeServices(e))}}function nve(t,n){1&t&&(h(0,"span"),p(1,"-"),u())}function ive(t,n){1&t&&(h(0,"mat-icon",41),p(1,"check_circle"),u()),2&t&&C("matTooltip",v().$implicit.rewardsAddress)}function ove(t,n){1&t&&(h(0,"mat-icon",42),b(1,"translate"),p(2,"cancel"),u()),2&t&&C("matTooltip",y(1,1,"nodes.reward-not-set"))}function rve(t,n){1&t&&(h(0,"button",39),b(1,"translate"),h(2,"mat-icon",27),p(3,"chevron_right"),u()()),2&t&&(C("matTooltip",y(1,2,"nodes.view-node")),d(2),C("inline",!0))}function sve(t,n){if(1&t){const e=oe();h(0,"button",38),b(1,"translate"),F("click",function(o){j(e);const r=v().$implicit,s=v(4);return o.stopPropagation(),o.preventDefault(),U(s.deleteNode(r))}),h(2,"mat-icon"),p(3,"close"),u()()}2&t&&C("matTooltip",y(1,1,"nodes.delete-node"))}function ave(t,n){if(1&t){const e=oe();h(0,"a",32)(1,"td"),x(2,jbe,3,4,"mat-icon",35),u(),h(3,"td"),B(4,"span",36),b(5,"translate"),u(),h(6,"td"),p(7),u(),h(8,"td"),x(9,Gbe,4,2),x(10,qbe,2,0,"span"),u(),h(11,"td"),x(12,Ybe,4,1),x(13,Xbe,2,0,"span",37),x(14,Zbe,2,0,"span"),u(),h(15,"td"),p(16),u(),h(17,"td"),x(18,Qbe,2,1,"div",37)(19,Jbe,6,8),u(),h(20,"td"),x(21,tve,2,0),x(22,nve,2,0,"span"),u(),h(23,"td"),x(24,ive,2,1,"mat-icon",41),x(25,ove,3,3,"mat-icon",42),u(),h(26,"td",31)(27,"button",38),b(28,"translate"),F("click",function(o){const r=j(e).$implicit,s=v(4);return o.stopPropagation(),o.preventDefault(),U(s.copyToClipboard(r))}),h(29,"mat-icon",27),p(30,"filter_none"),u()(),h(31,"button",38),b(32,"translate"),F("click",function(o){const r=j(e).$implicit,s=v(4);return o.stopPropagation(),o.preventDefault(),U(s.showEditLabelDialog(r))}),h(33,"mat-icon",27),p(34,"short_text"),u()(),x(35,rve,4,4,"button",39),x(36,sve,4,3,"button",39),u()()}if(2&t){const e=n.$implicit,i=v(4);C("ngClass",_t(30,dbe,e.online,!e.online))("routerLink",e.online?se(33,pV,e.localPk):null),d(2),S(e.isHypervisor?2:-1),d(2),Ze(i.nodeStatusClass(e,!0)),C("matTooltip",y(5,24,i.nodeStatusText(e,!0))),d(3),E(" ",e.label," "),d(2),S(e.ip||e.publicIp||e.countryCode?9:-1),d(),S(e.ip||e.publicIp||e.countryCode?-1:10),d(2),S(e.transports&&e.transports.length>0?12:-1),d(),S(e.transports&&0===e.transports.length?13:-1),d(),S(e.transports?-1:14),d(2),E(" ",e.localPk," "),d(2),S(e.version&&e.configVersion&&e.version===e.configVersion?18:19),d(3),S(i.getNodeServices(e).length>0?21:-1),d(),S(0===i.getNodeServices(e).length?22:-1),d(2),S(e.rewardsAddress?24:-1),d(),S(e.rewardsAddress?-1:25),d(2),C("matTooltip",y(28,26,"nodes.copy-key")),d(2),C("inline",!0),d(2),C("matTooltip",y(32,28,"labeled-element.edit-label")),d(2),C("inline",!0),d(2),S(e.online?35:-1),d(),S(e.online?-1:36)}}function lve(t,n){if(1&t){const e=oe();h(0,"table",23)(1,"tr")(2,"th",25),b(3,"translate"),F("click",function(){j(e);const o=v(3);return U(o.dataSorter.changeSortingOrder(o.hypervisorSortData))}),h(4,"mat-icon",26),p(5,"star_outline"),u(),x(6,Nbe,2,2,"mat-icon",27),u(),h(7,"th",25),b(8,"translate"),F("click",function(){j(e);const o=v(3);return U(o.dataSorter.changeSortingOrder(o.stateSortData))}),B(9,"span",28),x(10,Lbe,2,2,"mat-icon",27),u(),h(11,"th",29),F("click",function(){j(e);const o=v(3);return U(o.dataSorter.changeSortingOrder(o.labelSortData))}),p(12),b(13,"translate"),x(14,Bbe,2,2,"mat-icon",27),u(),h(15,"th"),p(16),b(17,"translate"),u(),h(18,"th"),p(19),b(20,"translate"),u(),h(21,"th",30),F("click",function(){j(e);const o=v(3);return U(o.dataSorter.changeSortingOrder(o.keySortData))}),p(22),b(23,"translate"),x(24,Vbe,2,2,"mat-icon",27),u(),h(25,"th",30),F("click",function(){j(e);const o=v(3);return U(o.dataSorter.changeSortingOrder(o.versionSortData))}),p(26),b(27,"translate"),x(28,Hbe,2,2,"mat-icon",27),u(),h(29,"th"),p(30),b(31,"translate"),u(),h(32,"th"),p(33),b(34,"translate"),u(),B(35,"th",31),u(),ve(36,ave,37,35,"a",32,Fe),u()}if(2&t){const e=v(3);d(2),C("matTooltip",y(3,14,"nodes.hypervisor")),d(4),S(e.dataSorter.currentSortingColumn===e.hypervisorSortData?6:-1),d(),C("matTooltip",y(8,16,"nodes.state-tooltip")),d(3),S(e.dataSorter.currentSortingColumn===e.stateSortData?10:-1),d(2),E(" ",y(13,18,"nodes.label")," "),d(2),S(e.dataSorter.currentSortingColumn===e.labelSortData?14:-1),d(2),E(" ",y(17,20,"nodes.ip-location")," "),d(3),E(" ",y(20,22,"nodes.transports")," "),d(3),E(" ",y(23,24,"nodes.key")," "),d(2),S(e.dataSorter.currentSortingColumn===e.keySortData?24:-1),d(2),E(" ",y(27,26,"nodes.version")," "),d(2),S(e.dataSorter.currentSortingColumn===e.versionSortData?28:-1),d(2),E(" ",y(31,28,"nodes.services")," "),d(3),E(" ",y(34,30,"nodes.reward")," "),d(3),ye(e.dataSource)}}function cve(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"tables.label")," ")}function dve(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"tables.inverted-order")," ")}function uve(t,n){1&t&&(h(0,"div",49)(1,"mat-icon",53),p(2,"star"),u(),p(3,"\xa0 "),h(4,"span",54),p(5),b(6,"translate"),u()()),2&t&&(d(),C("inline",!0),d(4),M(y(6,2,"nodes.hypervisor")))}function hve(t,n){if(1&t&&(h(0,"span"),p(1),u()),2&t){const e=v(2).$implicit;d(),M(e.ip)}}function fve(t,n){1&t&&(h(0,"span"),p(1," / "),u())}function pve(t,n){if(1&t&&(h(0,"span"),p(1),u()),2&t){const e=v(2).$implicit;d(),M(e.publicIp)}}function mve(t,n){if(1&t&&(h(0,"div",49)(1,"span",8),p(2),b(3,"translate"),u(),p(4,": "),x(5,hve,2,1,"span"),x(6,fve,2,0,"span"),x(7,pve,2,1,"span"),u()),2&t){const e=v().$implicit;d(2),M(y(3,4,"nodes.ip")),d(3),S(e.ip?5:-1),d(),S(e.ip&&e.publicIp?6:-1),d(),S(e.publicIp?7:-1)}}function gve(t,n){if(1&t&&(h(0,"span"),p(1),u()),2&t){const e=v(2).$implicit;d(),E("",e.cityName,", ")}}function _ve(t,n){if(1&t&&(h(0,"span"),p(1),u()),2&t){const e=v(2).$implicit;d(),E("",e.regionName,", ")}}function bve(t,n){if(1&t&&(h(0,"div",49)(1,"span",8),p(2),b(3,"translate"),u(),p(4,": "),x(5,gve,2,1,"span"),x(6,_ve,2,1,"span"),p(7),u()),2&t){const e=v().$implicit;d(2),M(y(3,4,"nodes.location")),d(3),S(e.cityName?5:-1),d(),S(e.regionName?6:-1),d(),E("",e.countryCode," ")}}function vve(t,n){if(1&t&&(h(0,"div",49)(1,"span",8),p(2),b(3,"translate"),u(),p(4),u()),2&t){const e=v().$implicit;d(2),M(y(3,2,"nodes.version")),d(2),E(": ",e.version," ")}}function yve(t,n){if(1&t&&(h(0,"div",49)(1,"span",8),p(2),b(3,"translate"),u(),p(4),u()),2&t){const e=v().$implicit;d(2),M(y(3,2,"nodes.config-version")),d(2),E(": ",e.configVersion," ")}}function Cve(t,n){if(1&t){const e=oe();h(0,"a",47)(1,"tr",48)(2,"td",48)(3,"div",44)(4,"div",45),x(5,uve,7,4,"div",49),h(6,"div",49)(7,"span",8),p(8),b(9,"translate"),u(),p(10,": "),h(11,"span"),p(12),b(13,"translate"),u()(),h(14,"div",49)(15,"span",8),p(16),b(17,"translate"),u(),p(18),u(),x(19,mve,8,6,"div",49),x(20,bve,8,6,"div",49),h(21,"div",50)(22,"span",8),p(23),b(24,"translate"),u(),p(25),u(),x(26,vve,5,4,"div",49),x(27,yve,5,4,"div",49),u(),B(28,"div",51),h(29,"div",46)(30,"button",52),b(31,"translate"),F("click",function(o){const r=j(e).$implicit,s=v(4);return o.stopPropagation(),o.preventDefault(),U(s.showOptionsDialog(r))}),h(32,"mat-icon"),p(33),u()()()()()()()}if(2&t){const e=n.$implicit,i=v(4);C("ngClass",se(27,ube,e.online))("routerLink",e.online?se(29,pV,e.localPk):null),d(5),S(e.isHypervisor?5:-1),d(3),M(y(9,17,"nodes.state")),d(3),Ze(i.nodeStatusClass(e,!1)+" title"),d(),M(y(13,19,i.nodeStatusText(e,!1))),d(4),M(y(17,21,"nodes.label")),d(2),E(": ",e.label," "),d(),S(e.ip||e.publicIp?19:-1),d(),S(e.countryCode?20:-1),d(3),M(y(24,23,"nodes.key")),d(2),E(": ",e.localPk," "),d(),S(e.version?26:-1),d(),S(e.configVersion?27:-1),d(3),C("matTooltip",y(31,25,"common.options")),d(3),M("add")}}function wve(t,n){if(1&t){const e=oe();h(0,"table",24)(1,"tr",43),F("click",function(){return j(e),U(v(3).dataSorter.openSortingOrderModal())}),h(2,"td")(3,"div",44)(4,"div",45)(5,"div",8),p(6),b(7,"translate"),u(),h(8,"div"),p(9),b(10,"translate"),x(11,cve,2,3),x(12,dve,2,3),u()(),h(13,"div",46)(14,"mat-icon",27),p(15,"keyboard_arrow_down"),u()()()()(),ve(16,Cve,34,31,"a",47,Fe),u()}if(2&t){const e=v(3);d(6),M(y(7,5,"tables.sorting-title")),d(3),E("",y(10,7,e.dataSorter.currentSortingColumn.label)," "),d(2),S(e.dataSorter.currentlySortingByLabel?11:-1),d(),S(e.dataSorter.sortingInReverseOrder?12:-1),d(2),C("inline",!0),d(2),ye(e.dataSource)}}function xve(t,n){if(1&t&&(h(0,"div",17)(1,"div",22),x(2,Fbe,27,21,"table",23),x(3,lve,38,32,"table",23),x(4,wve,18,9,"table",24),u()()),2&t){const e=v(2);d(2),S(e.showRewardsInfo&&e.dataSource.length>0?2:-1),d(),S(!e.showRewardsInfo&&e.dataSource.length>0?3:-1),d(),S(e.dataSource.length>0?4:-1)}}function Sve(t,n){if(1&t&&B(0,"app-paginator",16),2&t){const e=v(2);C("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",e.showRewardsInfo?Ct(4,hV):Ct(5,fV))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function kve(t,n){1&t&&(h(0,"span",57),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"nodes.empty")))}function Dve(t,n){1&t&&(h(0,"span",57),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"nodes.empty-with-filter")))}function Mve(t,n){if(1&t&&(h(0,"div",17)(1,"div",55)(2,"mat-icon",56),p(3,"warning"),u(),x(4,kve,3,3,"span",57),x(5,Dve,3,3,"span",57),u()()),2&t){const e=v(2);d(2),C("inline",!0),d(2),S(0===e.allNodes.length?4:-1),d(),S(0!==e.allNodes.length?5:-1)}}function Tve(t,n){if(1&t){const e=oe();h(0,"div",2)(1,"div",5)(2,"app-top-bar",6),F("refreshRequested",function(){return j(e),U(v().forceDataRefresh(!0))})("optionSelected",function(o){return j(e),U(v().performAction(o))}),u()(),h(3,"div",5)(4,"div",7)(5,"div",8),x(6,_be,6,3,"div",9),u(),h(7,"div",10)(8,"div",11),x(9,bbe,3,4,"mat-icon",12),x(10,vbe,2,1,"mat-icon",13),h(11,"mat-menu",14,0)(13,"div",15),F("click",function(){return j(e),U(v().removeOffline())}),p(14),b(15,"translate"),u()()(),x(16,ybe,1,6,"app-paginator",16),u()(),x(17,xve,5,3,"div",17),x(18,Sve,1,6,"app-paginator",16),x(19,Mve,6,3,"div",17),u()()}if(2&t){const e=v();d(2),C("titleParts",Ct(22,uV))("tabsData",e.tabsData)("selectedTabIndex",e.showRewardsInfo?1:0)("secondsSinceLastUpdate",e.secondsSinceLastUpdate)("showLoading",e.updating)("showAlert",e.errorsUpdating)("refeshRate",e.storageService.getRefreshTime())("optionsData",e.options),d(2),C("ngClass",se(23,abe,e.numberOfPages>1)),d(2),S(e.dataFilterer.currentFiltersTexts&&e.dataFilterer.currentFiltersTexts.length>0?6:-1),d(3),S(e.allNodes&&e.allNodes.length>0?9:-1),d(),S(e.dataSource.length>0?10:-1),d(),C("overlapTrigger",!1),d(2),C("disabled",Qt(!e.hasOfflineNodes)),d(),E(" ",y(15,20,"nodes.delete-all-offline")," "),d(2),S(e.numberOfPages>1?16:-1),d(),S(0!==e.dataSource.length?17:-1),d(),S(e.numberOfPages>1?18:-1),d(),S(0===e.dataSource.length?19:-1)}}let mV=(()=>{class t extends pn{constructor(e,i,o,r,s,a,l,c,f,m,g,_){super(),this.nodeService=e,this.multipleNodeDataService=i,this.router=o,this.dialog=r,this.authService=s,this.storageService=a,this.ngZone=l,this.snackbarService=c,this.clipboardService=f,this.translateService=m,this.rewardService=g,this.persistentServerDataResponseKey="serv-dat-response",this.nodesListId="nl",this.dmsgListId="dl",this.hypervisorSortData=new Dt(["isHypervisor"],"nodes.hypervisor",st.Boolean),this.stateSortData=new Dt(["online"],"nodes.state",st.Boolean),this.labelSortData=new Dt(["label"],"nodes.label",st.Text),this.keySortData=new Dt(["localPk"],"nodes.key",st.Text),this.versionSortData=new Dt(["version"],"nodes.version",st.Text),this.configVersionSortData=new Dt(["configVersion"],"nodes.config-version",st.Text),this.dmsgServerSortData=new Dt(["dmsgServerPk"],"nodes.dmsg-server",st.Text,["dmsgServerPk_label"]),this.pingSortData=new Dt(["roundTripPing"],"nodes.ping",st.Number),this.loading=!0,this.dataSource=[],this.tabsData=[],this.options=[],this.showDmsgInfo=!1,this.showRewardsInfo=!1,this.canLogOut=!0,this.rewardDataMap=new Map,this.rewardDates=[],this.rewardDateHeaders=[],this.rewardDataLoading=!1,this.rewardDataLoaded=!1,this.hasOfflineNodes=!1,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.filterProperties=[{filterName:"nodes.filter-dialog.online",keyNameInElementsArray:"online",type:Sn.Select,printableLabelsForValues:[{value:"",label:"nodes.filter-dialog.online-options.any"},{value:"true",label:"nodes.filter-dialog.online-options.online"},{value:"false",label:"nodes.filter-dialog.online-options.offline"}]},{filterName:"nodes.filter-dialog.label",keyNameInElementsArray:"label",type:Sn.TextInput,maxlength:100},{filterName:"nodes.filter-dialog.key",keyNameInElementsArray:"localPk",type:Sn.TextInput,maxlength:66},{filterName:"nodes.filter-dialog.dmsg",keyNameInElementsArray:"dmsgServerPk",secondaryKeyNameInElementsArray:"dmsgServerPk_label",type:Sn.TextInput,maxlength:66}],this.secondsSinceLastUpdate=0,this.lastUpdate=Date.now(),this.updating=!1,this.errorsUpdating=!1,this.lastUpdateRequestedManually=!1,this.labeledElementTypes=ro,this.updateOptionsMenu(),this.authVerificationSubscription=this.authService.checkLogin().subscribe(T=>{this.canLogOut=T!==ka.AuthDisabled,this.updateOptionsMenu()}),this.showRewardsInfo=-1!==this.router.url.indexOf("rewards"),this.showDmsgInfo=!1,this.filterProperties.splice(this.filterProperties.length-1);const k=this.showRewardsInfo?"rl":this.nodesListId;this.dataSorter=new gu(this.dialog,this.translateService,this.storageService,[this.hypervisorSortData,this.stateSortData,this.labelSortData,this.keySortData,this.versionSortData,this.configVersionSortData],3,k),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataFilterer=new _u(this.dialog,_,this.router,this.filterProperties,k),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(T=>{this.filteredNodes=T,this.hasOfflineNodes=!1,this.filteredNodes.forEach(I=>{I.online||(this.hasOfflineNodes=!0)}),this.dataSorter.setData(this.filteredNodes)}),this.navigationsSubscription=_.paramMap.subscribe(T=>{if(T.has("page")){let I=Number.parseInt(T.get("page"),10);(isNaN(I)||I<1)&&(I=1),this.currentPageInUrl=I,this.recalculateElementsToShow()}}),this.tabsData=[{icon:"view_headline",label:"nodes.title",linkParts:["/nodes"],group:"local"},{icon:"monetization_on",label:"nodes.rewards-title",linkParts:["/nodes","rewards"],group:"local"},{icon:"memory",label:"nodes.resources-title",linkParts:["/nodes","resources"],group:"local"},{icon:"swap_horiz",label:"nodes.transports-title",linkParts:["/nodes","transports"],group:"network"},{icon:"public",label:"nodes.network-title",linkParts:["/nodes","network"],group:"network"},{icon:"bubble_chart",label:"node.details.tpviz.title",linkParts:[],externalUrl:"/tp-viz/",group:"network"},{icon:"check_circle",label:"nodes.services-health-title",linkParts:["/nodes","services-health"],group:"network"},{icon:"settings",label:"settings.title",linkParts:["/settings"]}],this.languageSubscription=this.translateService.onLangChange.subscribe(()=>{this.multipleNodeDataService.forceRefresh()})}updateOptionsMenu(){this.options=[],this.options.push({name:"nodes.modify-rewards-all",actionName:"modifyRewardsAll",icon:"edit"}),this.canLogOut&&this.options.push({name:"common.logout",actionName:"logout",icon:"power_settings_new"})}ngOnInit(){return this.startGettingData(!0),this.ngZone.runOutsideAngular(()=>{this.updateTimeSubscription=xa(5e3,5e3).subscribe(()=>this.ngZone.run(()=>{this.secondsSinceLastUpdate=Math.floor((Date.now()-this.lastUpdate)/1e3)}))}),super.ngOnInit()}ngOnDestroy(){this.authVerificationSubscription.unsubscribe(),this.dataSubscription.unsubscribe(),this.updateTimeSubscription.unsubscribe(),this.navigationsSubscription.unsubscribe(),this.languageSubscription.unsubscribe(),this.updateSubscription&&this.updateSubscription.unsubscribe(),this.dataSortedSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFiltererSubscription.unsubscribe(),this.dataFilterer.dispose()}performAction(e){"logout"===e?this.logout():"updateAll"===e?this.updateAll():"modifyRewardsAll"===e&&this.changeRewardsToAll()}nodeStatusClass(e,i){return e.online?e.health&&e.health.servicesHealth===fu.Unhealthy?i?"dot-yellow blinking":"yellow-text":e.health&&e.health.servicesHealth===fu.Healthy?i?"dot-green":"green-text":i?"dot-outline-gray":"":i?"dot-red":"red-text"}nodeStatusText(e,i){return e.online?e.health&&e.health.servicesHealth===fu.Healthy?"node.statuses.online"+(i?"-tooltip":""):e.health&&e.health.servicesHealth===fu.Unhealthy?"node.statuses.partially-online"+(i?"-tooltip":""):e.health&&e.health.servicesHealth===fu.Connecting?"node.statuses.connecting"+(i?"-tooltip":""):"node.statuses.unknown"+(i?"-tooltip":""):"node.statuses.offline"+(i?"-tooltip":"")}forceDataRefresh(e=!1){e&&(this.lastUpdateRequestedManually=!0),this.multipleNodeDataService.forceRefresh()}startGettingData(e){const i=e?this.getLocalValue(this.persistentServerDataResponseKey):null;let o=this.multipleNodeDataService.startRequestingData();i&&(o=ae(JSON.parse(i.value))),this.dataSubscription=o.subscribe(r=>{i||this.saveLocalValue(this.persistentServerDataResponseKey,JSON.stringify(r)),this.updating=!r||r.updating,r&&!r.updating&&(r.data&&!r.error?(this.allNodes=r.data,this.dataFilterer.setData(this.allNodes),this.showRewardsInfo&&!this.rewardDataLoaded&&!this.rewardDataLoading&&this.loadRewardData(),this.loading=!1,this.snackbarService.closeCurrentIfTemporaryError(),this.lastUpdate=r.momentOfLastCorrectUpdate,this.secondsSinceLastUpdate=Math.floor((Date.now()-r.momentOfLastCorrectUpdate)/1e3),this.errorsUpdating=!1,Xr.currentInstance.hideDataProblemMsg(),this.lastUpdateRequestedManually&&(this.snackbarService.showDone("common.refreshed",null),this.lastUpdateRequestedManually=!1)):r.error&&(this.errorsUpdating||this.snackbarService.showError(this.loading?"common.loading-error":"nodes.error-load",null,!0,r.error),this.loading=!1,this.errorsUpdating=!0,Xr.currentInstance.showDataProblemMsg())),i&&this.startGettingData(!1)})}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredNodes){const e=rt.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredNodes.length/e),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const i=e*(this.currentPage-1);this.nodesToShow=this.filteredNodes.slice(i,i+e)}else this.nodesToShow=null;this.nodesToShow&&(this.dataSource=this.nodesToShow)}logout(){const e=Rt.createConfirmationDialog(this.dialog,"common.logout-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.closeModal(),this.authService.logout().subscribe(()=>this.router.navigate(["login"]),()=>this.snackbarService.showError("common.logout-error"))})}updateAll(){if(!this.dataSource||0===this.dataSource.length)return void this.snackbarService.showError("nodes.no-visors-to-update");const e=[],i=[];this.dataSource.forEach(o=>{if(o.online){const r={key:o.localPk,label:o.label,version:o.version,tag:o.buildTag};Rt.checkIfTagIsUpdatable(o.buildTag)?e.push(r):i.push(r)}}),rge.openDialog(this.dialog,e,i)}changeRewardsToAll(){if(!this.dataSource||0===this.dataSource.length)return void this.snackbarService.showError("nodes.no-visors-to-modify");const e=[];this.dataSource.forEach(o=>{o.online&&e.push({key:o.localPk,label:o.label})}),Ege.openDialog(this.dialog,{nodes:e})}recursivelyUpdateWallets(e,i,o=0){return this.nodeService.update(e[e.length-1]).pipe(Ui(()=>ae(null)),It(r=>(r&&r.updated&&!r.error?this.snackbarService.showDone(this.translateService.instant("nodes.update.done",{name:i[i.length-1]})):(this.snackbarService.showError(this.translateService.instant("nodes.update.update-error",{name:i[i.length-1]})),o+=1),e.pop(),i.pop(),e.length>=1?this.recursivelyUpdateWallets(e,i,o):ae(o))))}showOptionsDialog(e){const i=[{icon:"filter_none",label:"nodes.copy-key"}];i.push({icon:"short_text",label:"labeled-element.edit-label"}),e.online||i.push({icon:"close",label:"nodes.delete-node"}),ao.openDialog(this.dialog,i,"common.options").afterClosed().subscribe(o=>{1===o?this.copySpecificTextToClipboard(e.localPk):2===o?this.showEditLabelDialog(e):3===o&&this.deleteNode(e)})}copyToClipboard(e){this.copySpecificTextToClipboard(e.localPk)}copySpecificTextToClipboard(e){this.clipboardService.copy(e)&&this.snackbarService.showDone("copy.copied")}showEditLabelDialog(e){let i=this.storageService.getLabelInfo(e.localPk);i||(i={id:e.localPk,label:"",identifiedElementType:ro.Node}),wk.openDialog(this.dialog,i).afterClosed().subscribe(o=>{o&&this.forceDataRefresh()})}deleteNode(e){const i=Rt.createConfirmationDialog(this.dialog,"nodes.delete-node-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.close(),this.storageService.setLocalNodesAsHidden([e.localPk],[e.ip]),this.forceDataRefresh(),this.snackbarService.showDone("nodes.deleted")})}getTransportCounts(e){if(!e.transports||0===e.transports.length)return[];const i={};return e.transports.forEach(o=>{const r=(o.type||"unknown").toUpperCase();i[r]=(i[r]||0)+1}),Object.keys(i).sort().map(o=>({type:o,count:i[o]}))}getNodeServices(e){const i=[];return e.apps&&e.apps.forEach(o=>{1===o.status&&("skysocks"===o.name?i.push("Proxy Server"):"vpn-server"===o.name&&i.push("VPN Server"))}),e.isPublic&&i.push("Public Visor"),e.autoconnectTransports&&i.push("Autoconnect"),i}loadRewardData(){if(!this.allNodes||0===this.allNodes.length)return;this.rewardDataLoading=!0;const e=this.allNodes.map(i=>i.localPk);this.rewardService.fetchRewardData(e).subscribe(i=>{this.rewardDataMap=i,this.rewardDates=this.rewardService.getCachedDates(),this.rewardDateHeaders=this.rewardDates.map(o=>this.rewardService.formatDateShort(o)),this.rewardDataLoading=!1,this.rewardDataLoaded=!0})}getRewardData(e){return this.rewardDataMap.get(e)||null}getRewardAmount(e,i){const o=this.rewardDataMap.get(e);return o&&o.dailyAmounts[i]&&0!==o.dailyAmounts[i]?o.dailyAmounts[i].toFixed(2):"-"}getRewardClass(e,i){const o=this.rewardDataMap.get(e);return o&&o.dailyAmounts[i]&&0!==o.dailyAmounts[i]?o.dailySent[i]?"reward-sent":"reward-pending":""}getWeekTotal(e){const i=this.rewardDataMap.get(e);return i&&0!==i.weekTotal?i.weekTotal.toFixed(2):"-"}getRewardAddress(e){const i=this.allNodes?.find(r=>r.localPk===e);if(i?.rewardsAddress)return i.rewardsAddress;const o=this.rewardDataMap.get(e);return o?.rewardAddress?o.rewardAddress:"-"}removeOffline(){let e="nodes.delete-all-offline-confirmation";this.dataFilterer.currentFiltersTexts&&this.dataFilterer.currentFiltersTexts.length>0&&(e="nodes.delete-all-filtered-offline-confirmation");const i=Rt.createConfirmationDialog(this.dialog,e);i.componentInstance.operationAccepted.subscribe(()=>{i.close();const o=[],r=[];this.filteredNodes.forEach(s=>{s.online||(o.push(s.localPk),r.push(s.ip))}),o.length>0&&(this.storageService.setLocalNodesAsHidden(o,r),this.forceDataRefresh(),1===o.length?this.snackbarService.showDone("nodes.deleted-singular"):this.snackbarService.showDone("nodes.deleted-plural",{number:o.length}))})}static{this.\u0275fac=function(i){return new(i||t)(O(Io),O(KB),O(vt),O(Ot),O(Yf),O(ti),O(_e),O(ct),O(np),O(Go),O(Pge),O(Ai))}}static{this.\u0275cmp=re({type:t,selectors:[["app-node-list"]],standalone:!1,features:[be],decls:2,vars:2,consts:[["selectionMenu","matMenu"],[1,"d-flex","flex-column","h-100","w-100"],[1,"row"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton"],[1,"h-100"],[1,"col-12"],[3,"refreshRequested","optionSelected","titleParts","tabsData","selectedTabIndex","secondsSinceLastUpdate","showLoading","showAlert","refeshRate","optionsData"],[1,"generic-title-container","mt-4.5","d-flex",3,"ngClass"],[1,"title"],[1,"filter-label","subtle-transparent-button","cursor-pointer"],[1,"options"],[1,"options-container"],[1,"small-icon",3,"inline","matTooltip"],[3,"matMenuTriggerFor"],[3,"overlapTrigger"],["mat-menu-item","",3,"click","disabled"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"rounded-elevated-box","mt-3"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],[1,"item"],[1,"transparent-50"],[1,"small-icon",3,"click","inline","matTooltip"],[1,"box-internal-container","overflow","full-node-list-margins"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none","nowrap"],[1,"sortable-column","small-column",3,"click","matTooltip"],[1,"hypervisor-icon","grey-text"],[3,"inline"],[1,"dot-outline-gray"],[1,"sortable-column","labels",3,"click"],[1,"sortable-column",3,"click"],[1,"actions"],[1,"selectable","link-row",3,"ngClass","routerLink"],[1,"reward-day-column"],[1,"reward-total-column"],[1,"hypervisor-icon",3,"inline","matTooltip"],[3,"matTooltip"],[2,"font-size","0.85em"],["mat-button","",1,"big-action-button","transparent-button",3,"click","matTooltip"],["mat-button","",1,"big-action-button","transparent-button",3,"matTooltip"],[2,"font-size","0.85em","font-weight","bold"],[2,"color","#4caf50","font-size","20px",3,"matTooltip"],[2,"color","#f44336","font-size","20px",3,"matTooltip"],[1,"selectable","click-effect",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],[1,"link-row",3,"ngClass","routerLink"],[1,"d-block"],[1,"list-row"],[1,"list-row","long-content"],[1,"margin-part"],["mat-icon-button","",1,"transparent-button",3,"click","matTooltip"],[1,"hypervisor-icon",3,"inline"],[1,"yellow-clear-text","title"],[1,"box-internal-container","font-sm"],[1,"alert-icon",3,"inline"],[1,"font-sm"]],template:function(i,o){1&i&&(x(0,fbe,4,5,"div",1),x(1,Tve,20,25,"div",2)),2&i&&(S(o.loading?0:-1),d(),S(o.loading?-1:1))},dependencies:[$t,Is,Pn,Wo,We,Kt,Jr,As,vu,Yr,mv,Mr,xe],styles:[".labels[_ngcontent-%COMP%]{width:15%}.actions[_ngcontent-%COMP%]{text-align:right;width:120px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}.hypervisor-icon[_ngcontent-%COMP%]{font-size:14px!important;line-height:14px!important;position:relative;top:2px;margin-left:2px;color:#d48b05}.small-column[_ngcontent-%COMP%]{width:1px}.non-selectable[_ngcontent-%COMP%]{cursor:not-allowed}.reward-day-column[_ngcontent-%COMP%]{text-align:center;white-space:nowrap;min-width:60px}.reward-total-column[_ngcontent-%COMP%]{text-align:center;white-space:nowrap;min-width:70px}.reward-sent[_ngcontent-%COMP%]{color:#4caf50}.reward-pending[_ngcontent-%COMP%]{color:#ff9800}"]})}}return t})();function Eve(t,n){1&t&&(h(0,"div",6),B(1,"mat-spinner",7),u())}function Pve(t,n){if(1&t&&(h(0,"tr")(1,"td"),p(2,".dmsg"),u(),h(3,"td"),p(4),u(),h(5,"td"),p(6),u(),h(7,"td"),p(8),u()()),2&t){const e=v(4);d(3),Ze(e.proxyStatus.dmsg_web.running?"status-ok":"status-off"),d(),E(" ",e.proxyStatus.dmsg_web.running?"Yes":"No"," "),d(2),M(e.proxyStatus.dmsg_web.socks_addr||"-"),d(2),M(e.proxyStatus.dmsg_web.upstream_socks||"direct")}}function Ive(t,n){if(1&t&&(h(0,"tr")(1,"td"),p(2,".skynet"),u(),h(3,"td"),p(4),u(),h(5,"td"),p(6),u(),h(7,"td"),p(8),u()()),2&t){const e=v(4);d(3),Ze(e.proxyStatus.skynet_web.running?"status-ok":"status-off"),d(),E(" ",e.proxyStatus.skynet_web.running?"Yes":"No"," "),d(2),M(e.proxyStatus.skynet_web.socks_addr||"-"),d(2),M(e.proxyStatus.skynet_web.upstream_socks||"direct")}}function Ove(t,n){if(1&t&&(h(0,"table",21)(1,"tr")(2,"th"),p(3,"Resolver"),u(),h(4,"th"),p(5,"Running"),u(),h(6,"th"),p(7,"SOCKS"),u(),h(8,"th"),p(9,"Upstream"),u()(),it(10,Pve,9,5,"tr",3)(11,Ive,9,5,"tr",3),u()),2&t){const e=v(3);d(10),C("ngIf",e.proxyStatus.dmsg_web),d(),C("ngIf",e.proxyStatus.skynet_web)}}function Ave(t,n){if(1&t&&(h(0,"div",19),it(1,Ove,12,2,"table",20),u()),2&t){const e=v(2);d(),C("ngIf",e.proxyStatus.dmsg_web||e.proxyStatus.skynet_web)}}function Rve(t,n){if(1&t){const e=oe();h(0,"div")(1,"h3",8),p(2,"Resolving Proxy"),u(),h(3,"p",9),p(4," Browse "),h(5,"strong"),p(6,".skynet"),u(),p(7," and "),h(8,"strong"),p(9,".dmsg"),u(),p(10," domains. Set an upstream SOCKS5 proxy to route all other traffic through skysocks. "),u(),it(11,Ave,2,1,"div",10),h(12,"div",11)(13,"div",12)(14,"mat-checkbox",13),F("change",function(o){j(e);const r=v();return r.form.get("skynetEnabled").setValue(o.checked),U(r.toggleProxy())}),p(15," Enable resolving proxy (.skynet + .dmsg) "),u()(),h(16,"form",14)(17,"div",15)(18,"mat-form-field",16)(19,"mat-label"),p(20,"Upstream SOCKS5 (e.g. 127.0.0.1:1080)"),u(),B(21,"input",17),u(),h(22,"button",18),F("click",function(){return j(e),U(v().setUpstream())}),p(23," Set "),u()()()()()}if(2&t){const e=v();d(11),C("ngIf",e.proxyStatus),d(3),C("checked",e.form.get("skynetEnabled").value)("disabled",e.loading),d(2),C("formGroup",e.form),d(6),C("disabled",e.loading)}}let Fve=(()=>{class t{constructor(e,i,o,r){this.dialogRef=e,this.data=i,this.nodeService=o,this.snackbarService=r,this.loading=!1,this.proxyStatus=null,this.skynetPorts=[],this.newPort="",this.form=new nk({skynetEnabled:new lu(!1),upstream:new lu("")}),this.loadStatus(),this.loadPorts()}loadStatus(){this.loading=!0,this.nodeService.getProxies(this.data.nodeKey).subscribe(e=>{this.proxyStatus=e,this.loading=!1;const i=e?.skynet_web?.running||!1,o=e?.skynet_web?.upstream_socks||"";this.form.get("skynetEnabled").setValue(i),this.form.get("upstream").setValue(o)},()=>{this.loading=!1})}loadPorts(){this.nodeService.getSkynetPorts(this.data.nodeKey).subscribe(e=>{this.skynetPorts=(e||[]).sort((i,o)=>i-o)},()=>{})}toggleProxy(){const e=this.form.get("skynetEnabled").value;this.loading=!0,this.nodeService.setProxyEnabled(this.data.nodeKey,"skynet",e).subscribe(()=>{this.nodeService.setProxyEnabled(this.data.nodeKey,"dmsg",e).subscribe(()=>{this.loading=!1,this.snackbarService.showDone(e?"Resolving proxy enabled":"Resolving proxy disabled"),this.loadStatus()},()=>{this.loading=!1})},()=>{this.loading=!1,this.snackbarService.showError("Failed to toggle proxy")})}setUpstream(){const e=this.form.get("upstream").value.trim();this.loading=!0,this.nodeService.setProxyUpstream(this.data.nodeKey,"skynet",e).subscribe(()=>{this.loading=!1,this.snackbarService.showDone(e?`Upstream set to ${e}`:"Upstream cleared"),this.loadStatus()},()=>{this.loading=!1,this.snackbarService.showError("Failed to set upstream")})}addPort(){const e=parseInt(this.newPort,10);isNaN(e)||e<1||e>65535?this.snackbarService.showError("Invalid port number"):this.nodeService.registerSkynetPort(this.data.nodeKey,e).subscribe(()=>{this.newPort="",this.snackbarService.showDone(`Port ${e} forwarded`),this.loadPorts()},i=>{this.snackbarService.showError(i?.error?.error||"Failed to register port")})}removePort(e){this.nodeService.deregisterSkynetPort(this.data.nodeKey,e).subscribe(()=>{this.snackbarService.showDone(`Port ${e} removed`),this.loadPorts()},()=>{this.snackbarService.showError("Failed to deregister port")})}close(){this.dialogRef.close()}static{this.\u0275fac=function(i){return new(i||t)(O(Bt),O(En),O(Io),O(ct))}}static{this.\u0275cmp=re({type:t,selectors:[["app-proxy-settings"]],standalone:!1,decls:9,vars:2,consts:[[1,"generic-dialog-container"],["mat-dialog-title",""],["class","text-center py-3",4,"ngIf"],[4,"ngIf"],["align","end"],["mat-button","",3,"click"],[1,"text-center","py-3"],["diameter","30",1,"mx-auto"],[1,"section-title"],[1,"help-text"],["class","proxy-status",4,"ngIf"],[1,"proxy-form"],[1,"form-row","toggle-row"],[3,"change","checked","disabled"],[3,"formGroup"],[1,"form-row","upstream-row"],["appearance","outline",1,"upstream-field"],["matInput","","formControlName","upstream","placeholder","127.0.0.1:1080"],["mat-raised-button","","color","primary",3,"click","disabled"],[1,"proxy-status"],["class","status-table",4,"ngIf"],[1,"status-table"]],template:function(i,o){1&i&&(h(0,"div",0)(1,"h2",1),p(2,"Skynet Settings"),u(),h(3,"mat-dialog-content"),it(4,Eve,2,0,"div",2)(5,Rve,24,5,"div",3),u(),h(6,"mat-dialog-actions",4)(7,"button",5),F("click",function(){return o.close()}),p(8,"Close"),u()()()),2&i&&(d(4),C("ngIf",o.loading),d(),C("ngIf",!o.loading))},dependencies:[tf,xn,Gt,qt,wn,on,mn,MS,T4,Jd,sn,Os,In,Pn,so,kr],styles:[".section-title[_ngcontent-%COMP%]{font-size:15px;font-weight:500;margin:16px 0 4px;color:#000000de}.section-title[_ngcontent-%COMP%]:first-of-type{margin-top:0}.help-text[_ngcontent-%COMP%]{color:#0009;font-size:13px;margin-bottom:12px}.help-text[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{background:#0000000f;padding:1px 4px;border-radius:3px;font-size:12px}.status-table[_ngcontent-%COMP%]{width:100%;margin-bottom:12px;border-collapse:collapse}.status-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%], .status-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:5px 8px;text-align:left;border-bottom:1px solid rgba(0,0,0,.08);font-size:13px}.status-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{color:#00000080;font-weight:500}.status-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{color:#000000de}.status-table[_ngcontent-%COMP%] .status-ok[_ngcontent-%COMP%]{color:#4caf50;font-weight:500}.status-table[_ngcontent-%COMP%] .status-off[_ngcontent-%COMP%]{color:#00000061}.proxy-form[_ngcontent-%COMP%]{margin-top:8px;margin-bottom:8px}.form-row[_ngcontent-%COMP%]{margin-bottom:12px}.upstream-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.upstream-row[_ngcontent-%COMP%] .upstream-field[_ngcontent-%COMP%]{flex:1}.no-ports[_ngcontent-%COMP%]{color:#00000061;font-style:italic;font-size:13px}.port-list[_ngcontent-%COMP%]{margin-bottom:8px}.port-item[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;border-bottom:1px solid rgba(0,0,0,.06)}.port-item[_ngcontent-%COMP%] .port-number[_ngcontent-%COMP%]{font-family:monospace;font-size:14px;font-weight:500}.add-port-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.add-port-row[_ngcontent-%COMP%] .port-field[_ngcontent-%COMP%]{width:120px}"]})}}return t})();const Nve=["content"],Mk=t=>({number:t}),Lve=t=>({count:t}),Bve=t=>({time:t});function Vve(t,n){if(1&t&&(h(0,"div",15),p(1),b(2,"translate"),u()),2&t){const e=v(2);d(),E(" ",pe(2,1,"node.logs.filter-ignored",se(4,Mk,e.logEntries.length-e.filteredLogEntries.length))," ")}}function Hve(t,n){if(1&t){const e=oe();h(0,"div",12),F("click",function(){return j(e),U(v().showFilters())}),h(1,"div",13)(2,"div")(3,"span"),p(4),b(5,"translate"),u(),h(6,"span",14),p(7),b(8,"translate"),u()(),x(9,Vve,3,6,"div",15),u(),B(10,"div",16),u()}if(2&t){const e=v();d(4),E("",y(5,3,"node.logs.selected-filter")," "),d(3),M(y(8,5,"node.logs."+e.levelDetails.get(e.currentMinimumLevel).levelFilterName)),d(2),S(e.logEntries.length>e.filteredLogEntries.length?9:-1)}}function jve(t,n){if(1&t&&(h(0,"div",3)(1,"mat-icon",17),p(2,"history"),u(),p(3),b(4,"translate"),u()),2&t){const e=v();d(),C("inline",!0),d(2),E(" ",pe(4,2,"node.logs.dropped",se(5,Lve,e.totalDropped))," ")}}function Uve(t,n){if(1&t&&(h(0,"div",4)(1,"a",18),p(2),b(3,"translate"),u()()),2&t){const e=v();d(),C("href",e.getFullLogsUrl(),mo),d(),E(" ",pe(3,2,"node.logs.view-rest",se(5,Mk,e.totalLogs))," ")}}function zve(t,n){1&t&&p(0," : ")}function $ve(t,n){if(1&t&&(h(0,"span"),p(1),u()),2&t){const e=v().$implicit;d(),E(" ",e.msg," ")}}function Wve(t,n){if(1&t&&(h(0,"span",21),p(1),u(),h(2,"span"),p(3),u()),2&t){const e=n.$implicit;d(),E(" ",e.name," "),d(2),E(' ="',e.value,'" ')}}function Gve(t,n){if(1&t&&(h(0,"div",4)(1,"span",19),p(2),u(),h(3,"span"),p(4),u(),p(5," [ "),h(6,"span",19),p(7),u(),h(8,"span",20),p(9),u(),p(10," ]"),x(11,zve,1,0),x(12,$ve,2,1,"span"),ve(13,Wve,4,2,null,null,Fe),u()),2&t){const e=n.$implicit,i=v(2);d(2),E(" ",e.time," "),d(),Ze(i.levelDetails.get(e.level).colorClass),d(),E(" ",i.levelDetails.get(e.level).name," "),d(3),E(" ",e.func," "),d(2),E(" ",e._module," "),d(2),S(e.msg?11:-1),d(),S(e.msg?12:-1),d(),ye(e.extra)}}function qve(t,n){1&t&&ve(0,Gve,15,8,"div",4,Fe),2&t&&ye(v().filteredLogEntries)}function Kve(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"node.logs.view-all")," ")}function Yve(t,n){if(1&t&&(p(0),b(1,"translate")),2&t){const e=v(2);E(" ",pe(1,1,"node.logs.view-rest",se(4,Mk,e.totalLogs))," ")}}function Xve(t,n){if(1&t&&(h(0,"div",4)(1,"a",18),x(2,Kve,2,3),x(3,Yve,2,6),u()()),2&t){const e=v();d(),C("href",e.getFullLogsUrl(),mo),d(),S(e.hasMoreLogMessages?-1:2),d(),S(e.hasMoreLogMessages?3:-1)}}function Zve(t,n){1&t&&(h(0,"div",5),p(1),b(2,"translate"),u()),2&t&&(d(),E(" ",y(2,1,"node.logs.no-logs")," "))}function Qve(t,n){1&t&&(h(0,"div",5),p(1),b(2,"translate"),u()),2&t&&(d(),E(" ",y(2,1,"node.logs.no-logs-for-filter")," "))}function Jve(t,n){1&t&&B(0,"app-loading-indicator",6),2&t&&C("showWhite",!1)}function eye(t,n){if(1&t&&(h(0,"div",11)(1,"mat-icon",9),p(2,"refresh"),u(),h(3,"span"),p(4),b(5,"translate"),u()()),2&t){const e=v();d(),C("inline",!0),d(3),M(pe(5,2,"refresh-button."+e.elapsedTime.translationVarName,se(5,Bve,e.elapsedTime.elapsedTime)))}}var bn=function(t){return t[t.PanicLevel=0]="PanicLevel",t[t.FatalLevel=1]="FatalLevel",t[t.ErrorLevel=2]="ErrorLevel",t[t.WarnLevel=3]="WarnLevel",t[t.InfoLevel=4]="InfoLevel",t[t.DebugLevel=5]="DebugLevel",t[t.TraceLevel=6]="TraceLevel",t[t.Unknown=7]="Unknown",t}(bn||{});class tye{constructor(){this.extra=[]}}let nye=(()=>{class t{static openDialog(e){const i=new nn;return i.autoFocus=!1,i.width=rt.largeModalWidth,e.open(t,i)}constructor(e,i,o,r,s){this.dialogRef=e,this.nodeService=i,this.snackbarService=o,this.ngZone=r,this.dialog=s,this.levelDetails=new Map([[bn.PanicLevel,{name:"PANIC",colorClass:"panic-level-color",levelFilterName:"filter-panic",importance:8}],[bn.FatalLevel,{name:"FATAL",colorClass:"fatal-level-color",levelFilterName:"filter-faltal",importance:7}],[bn.ErrorLevel,{name:"ERROR",colorClass:"error-level-color",levelFilterName:"filter-error",importance:6}],[bn.WarnLevel,{name:"WARNING",colorClass:"warning-level-color",levelFilterName:"filter-warning",importance:5}],[bn.InfoLevel,{name:"INFO",colorClass:"info-level-color",levelFilterName:"filter-info",importance:4}],[bn.DebugLevel,{name:"DEBUG",colorClass:"debug-level-color",levelFilterName:"filter-debug",importance:3}],[bn.TraceLevel,{name:"TRACE",colorClass:"trace-level-color",levelFilterName:"filter-all",importance:2}],[bn.Unknown,{name:"UNKNOWN LOG",colorClass:"unknown-level-color",levelFilterName:"filter-all",importance:1}]]),this.currentMinimumLevel=bn.Unknown,this.loading=!0,this.LoadingMoment=0,this.liveTail=!0,this.livePollMs=2e3,this.logCursor=0,this.totalDropped=0,this.wasAtBottom=!0,this.maxElementsPerPage=1e3,this.logEntries=[],this.filteredLogEntries=[],this.hasMoreLogMessages=!1,this.totalLogs=0,this.shouldShowError=!0}ngOnInit(){this.loadData(0)}ngOnDestroy(){this.removeSubscription(),this.removeTimeSubscription()}showFilters(){const e=[{icon:"",label:"node.logs.filter-all"},{icon:"",label:"node.logs.filter-debug"},{icon:"",label:"node.logs.filter-info"},{icon:"",label:"node.logs.filter-warning"},{icon:"",label:"node.logs.filter-error"},{icon:"",label:"node.logs.filter-faltal"},{icon:"",label:"node.logs.filter-panic"}],i=[bn.Unknown,bn.DebugLevel,bn.InfoLevel,bn.WarnLevel,bn.ErrorLevel,bn.FatalLevel,bn.PanicLevel];for(let o=0;o<=i.length;o++)this.currentMinimumLevel===i[o]&&(e[o].icon="check");ao.openDialog(this.dialog,e,"node.logs.filter-title").afterClosed().subscribe(o=>{this.currentMinimumLevel=i[o-1],this.filter()})}loadData(e){this.removeSubscription(),this.captureScrollTailState(),this.loading=0===this.logEntries.length;const i=this.logCursor;this.subscription=ae(1).pipe(li(e),It(()=>this.nodeService.getRuntimeLogsSince(ke.getCurrentNodeKey(),i))).subscribe(o=>this.onLogsDeltaReceived(o),o=>this.onLogsError(o))}toggleLiveTail(){this.liveTail=!this.liveTail,this.liveTail?this.loadData(0):this.removeSubscription()}captureScrollTailState(){if(!this.content)return void(this.wasAtBottom=!0);const e=this.content.nativeElement;this.wasAtBottom=e.scrollHeight-e.scrollTop-e.clientHeight<40}removeSubscription(){this.subscription&&this.subscription.unsubscribe()}removeTimeSubscription(){this.timeUpdateSubscription&&this.timeUpdateSubscription.unsubscribe()}onLogsDeltaReceived(e){if(!e)return this.loading=!1,void this.scheduleNextPoll();const i=0===this.logCursor;this.logCursor="number"==typeof e.latest?e.latest:this.logCursor,"number"==typeof e.dropped&&e.dropped>0&&(this.totalDropped+=e.dropped);const o=Array.isArray(e.entries)?e.entries:[];if(0===o.length)return this.loading=!1,this.LoadingMoment=Date.now(),this.shouldShowError=!0,this.startUpdatingTime(),void this.scheduleNextPoll();const r=[];for(const s of o)try{r.push(JSON.parse(s))}catch{}i&&(this.logEntries=[]),this.appendParsedEntries(r),this.logEntries.length>this.maxElementsPerPage&&(this.logEntries=this.logEntries.slice(this.logEntries.length-this.maxElementsPerPage),this.hasMoreLogMessages=!0),this.totalLogs=this.logCursor,this.loading=!1,this.LoadingMoment=Date.now(),this.shouldShowError=!0,this.startUpdatingTime(),this.filter(),this.scheduleNextPoll()}scheduleNextPoll(){this.liveTail&&this.loadData(this.livePollMs)}appendParsedEntries(e){e.forEach(i=>{const o=new tye;o.time=i.time,o._module=i._module,o.msg=i.msg,o.func=i.func;const r=i.level?i.level.toLowerCase():"";if(o.level=r.includes("panic")?bn.PanicLevel:r.includes("fatal")?bn.FatalLevel:r.includes("error")?bn.ErrorLevel:r.includes("warn")?bn.WarnLevel:r.includes("info")?bn.InfoLevel:r.includes("debug")?bn.DebugLevel:r.includes("trace")?bn.TraceLevel:bn.Unknown,i.current_backoff){const a=Math.floor(i.current_backoff/1e9),l=Math.floor(a/60),c=Math.floor(a%60);o.extra.push(l?{name:"current_backoff",value:l+"m"+c+"s"}:{name:"current_backoff",value:c+"s"})}i.error&&o.extra.push({name:"error",value:i.error});const s=new Set;s.add("time"),s.add("_module"),s.add("msg"),s.add("func"),s.add("level"),s.add("current_backoff"),s.add("error"),s.add("log_line");for(const a in i)s.has(a)||o.extra.push({name:a,value:i[a]});this.logEntries.push(o)})}filter(){this.filteredLogEntries=[];const e=this.levelDetails.get(this.currentMinimumLevel).importance;this.logEntries.forEach(i=>{const o=this.levelDetails.get(i.level).importance;e<=o&&this.filteredLogEntries.push(i)}),this.wasAtBottom&&setTimeout(()=>{this.content&&(this.content.nativeElement.scrollTop=this.content.nativeElement.scrollHeight)})}startUpdatingTime(){this.elapsedTime=gv.getElapsedTime(Math.floor((Date.now()-this.LoadingMoment)/1e3)),this.removeTimeSubscription(),this.timeUpdateSubscription=xa(5e3,5e3).subscribe(()=>this.ngZone.run(()=>{this.elapsedTime=gv.getElapsedTime(Math.floor((Date.now()-this.LoadingMoment)/1e3))}))}getFullLogsUrl(){return window.location.origin+"/api/visors/"+ke.getCurrentNodeKey()+"/runtime-logs"}onLogsError(e){e=Qe(e),this.shouldShowError&&(this.snackbarService.showError("common.loading-error",null,!0,e),this.shouldShowError=!1),this.loadData(rt.connectionRetryDelay)}static{this.\u0275fac=function(i){return new(i||t)(O(Bt),O(Io),O(ct),O(_e),O(Ot))}}static{this.\u0275cmp=re({type:t,selectors:[["app-node-logs"]],viewQuery:function(i,o){if(1&i&&ot(Nve,5),2&i){let r;he(r=fe())&&(o.content=r.first)}},standalone:!1,decls:21,vars:20,consts:[["content",""],[3,"headline","includeVerticalMargins","includeScrollableArea","dialog"],[1,"top-dialog-button"],[1,"logs-dropped-banner"],[1,"log-entry"],[1,"log-empty-msg"],[3,"showWhite"],[1,"logs-footer"],[1,"live-tail-toggle","subtle-transparent-button",3,"click"],[1,"icon",3,"inline"],[1,"update-button","subtle-transparent-button",3,"click"],[1,"update-time"],[1,"top-dialog-button",3,"click"],[1,"top-dialog-button-content"],[1,"actual-value"],[1,"small"],[1,"top-dialog-button-margin"],[3,"inline"],["target","_blank",1,"view-raw-link",3,"href"],[1,"transparent"],[1,"module-color"],[1,"extra-data-color"]],template:function(i,o){1&i&&(h(0,"app-dialog",1),b(1,"translate"),x(2,Hve,11,7,"div",2),x(3,jve,5,7,"div",3),h(4,"mat-dialog-content",null,0),x(6,Uve,4,7,"div",4),x(7,qve,2,0),x(8,Xve,4,3,"div",4),x(9,Zve,3,3,"div",5),x(10,Qve,3,3,"div",5),x(11,Jve,1,1,"app-loading-indicator",6),h(12,"div",7)(13,"div",8),F("click",function(){return o.toggleLiveTail()}),h(14,"mat-icon",9),p(15),u(),h(16,"span"),p(17),b(18,"translate"),u()(),h(19,"div",10),F("click",function(){return o.loadData(0)}),x(20,eye,6,7,"div",11),u()()()()),2&i&&(C("headline",y(1,16,"node.logs.title"))("includeVerticalMargins",!1)("includeScrollableArea",!1)("dialog",o.dialogRef),d(2),S(!o.loading&&o.logEntries&&o.logEntries.length>0?2:-1),d(),S(o.totalDropped>0?3:-1),d(3),S(!o.loading&&o.hasMoreLogMessages?6:-1),d(),S(o.loading?-1:7),d(),S(!o.loading&&o.logEntries&&o.logEntries.length>0?8:-1),d(),S(o.loading||o.logEntries&&0!==o.logEntries.length?-1:9),d(),S(!o.loading&&o.logEntries&&o.logEntries.length>0&&o.filteredLogEntries.length<1?10:-1),d(),S(o.loading?11:-1),d(3),C("inline",!0),d(),M(o.liveTail?"pause":"play_arrow"),d(2),M(y(18,18,o.liveTail?"node.logs.live-on":"node.logs.live-off")),d(3),S(o.loading?-1:20))},dependencies:[Jd,We,gn,Yr,xe],styles:[".top-dialog-button[_ngcontent-%COMP%]{color:#777!important}.top-dialog-button[_ngcontent-%COMP%] .top-dialog-button-content[_ngcontent-%COMP%]{text-align:center}.top-dialog-button[_ngcontent-%COMP%] .top-dialog-button-content[_ngcontent-%COMP%] .actual-value[_ngcontent-%COMP%]{color:#202226}.top-dialog-button[_ngcontent-%COMP%] .top-dialog-button-content[_ngcontent-%COMP%] .small[_ngcontent-%COMP%]{font-size:.6rem}.log-entry[_ngcontent-%COMP%]{margin-top:15px;word-break:break-word}.log-entry[_ngcontent-%COMP%] .transparent[_ngcontent-%COMP%]{color:#999}.log-entry[_ngcontent-%COMP%]:first-of-type{margin-top:0}.log-entry[_ngcontent-%COMP%]:last-of-type{margin-bottom:24px}.log-empty-msg[_ngcontent-%COMP%]{text-align:center}.view-raw-link[_ngcontent-%COMP%]{color:#215f9e}.update-button[_ngcontent-%COMP%]{display:flex;justify-content:center;cursor:pointer}.update-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:5px;margin-right:5px}.update-button[_ngcontent-%COMP%] .update-time[_ngcontent-%COMP%]{text-align:center;font-size:.7rem;color:#202226;margin:0 5px}.panic-level-color[_ngcontent-%COMP%], .fatal-level-color[_ngcontent-%COMP%]{color:red}.error-level-color[_ngcontent-%COMP%]{color:#d10000}.warning-level-color[_ngcontent-%COMP%]{color:#e27505}.info-level-color[_ngcontent-%COMP%]{color:#0d9519}.debug-level-color[_ngcontent-%COMP%]{color:#0065ff}.trace-level-color[_ngcontent-%COMP%]{color:#468cf5}.unknown-level-color[_ngcontent-%COMP%]{color:#e27505}.module-color[_ngcontent-%COMP%]{color:#a119fc}.extra-data-color[_ngcontent-%COMP%]{color:#ad8021}.logs-footer[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;border-top:1px solid rgba(255,255,255,.08)}.live-tail-toggle[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:4px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:13px}.live-tail-toggle[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{font-size:18px}.logs-dropped-banner[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;padding:6px 10px;background:#ffc80014;border-bottom:1px solid rgba(255,200,0,.2);font-size:12px;opacity:.9}.logs-dropped-banner[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:16px}"]})}}return t})();class gV{constructor(n,e){this.canBeUpdated=!1,this.canOpenTerminal=!1,this.options=[],this.dialog=n.get(Ot),this.router=n.get(vt),this.snackbarService=n.get(ct),this.nodeService=n.get(Io),this.storageService=n.get(ti),this.showingFullList=e,this.returnButtonText=e?"node.title":"nodes.title",this.updateOptions()}updateOptions(){this.options=[],this.canOpenTerminal&&this.options.push({name:"actions.menu.terminal",actionName:"terminal",icon:"laptop"}),this.options.push({name:"actions.menu.logs",actionName:"logs",icon:"subject"}),this.options.push({name:"actions.menu.proxy",actionName:"proxy",icon:"vpn_lock"}),this.options.push({name:"actions.menu.turn-off",actionName:"shutdown",icon:"power_settings_new"})}setCurrentNode(n){this.currentNode=n,this.canBeUpdated=!!Rt.checkIfTagIsUpdatable(n.buildTag),this.canOpenTerminal=Rt.checkIfTagCanOpenterminal(n.buildTag),this.updateOptions()}setCurrentNodeKey(n){this.currentNodeKey=n}performAction(n,e){"terminal"===n?this.terminal():"update"===n?this.update():"logs"===n?this.runtimeLogs():"proxy"===n?this.openProxySettings():"shutdown"===n?this.shutdown():null===n&&this.back()}dispose(){this.updateSubscription&&this.updateSubscription.unsubscribe(),this.shutdownSubscription&&this.shutdownSubscription.unsubscribe()}shutdown(){const n=Rt.createConfirmationDialog(this.dialog,"actions.turn-off.confirmation");n.componentInstance.operationAccepted.subscribe(()=>{n.componentInstance.showProcessing(),this.shutdownSubscription=this.nodeService.shutdown(this.currentNodeKey).subscribe(()=>{this.snackbarService.showDone("actions.turn-off.done"),n.close(),this.router.navigate(["nodes"])},e=>{e=Qe(e),n.componentInstance.showDone("confirmation.error-header-text",e.translatableErrorMsg)})})}update(){const n=Rt.createConfirmationDialog(this.dialog,"actions.update.confirmation");n.componentInstance.operationAccepted.subscribe(()=>{const e=window.location.protocol,i=window.location.host.replace("localhost:4200","127.0.0.1:8000");window.open(e+"//"+i+"/pty/"+this.currentNodeKey+"?commands=update","_blank","noopener noreferrer"),n.close()})}terminal(){const n=window.location.protocol,e=window.location.host.replace("localhost:4200","127.0.0.1:8000");window.open(n+"//"+e+"/pty/"+this.currentNodeKey,"_blank","noopener noreferrer")}runtimeLogs(){nye.openDialog(this.dialog)}openProxySettings(){this.dialog.open(Fve,{width:"550px",data:{nodeKey:this.currentNodeKey}})}back(){this.router.navigate(this.showingFullList?["nodes",this.currentNodeKey]:["nodes"])}}class iye{constructor(){this.trafficData=new oye}}class oye{constructor(){this.totalSent=0,this.totalReceived=0,this.sentHistory=[],this.receivedHistory=[]}}class rye{constructor(){this.lastEmitedData=new iye,this.dataSubject=new ki(null),this.whenUpdateWasScheduled=0,this.stopRequestedDate=-1,this.consecutiveErrors=0}}let sye=(()=>{class t{constructor(e,i){this.storageService=e,this.nodeService=i,this.maxTrafficHistorySlots=10,this.expirationTime=6e4,this.nodesMap=new Map,this.storageService.getRefreshTimeObservable().subscribe(o=>{this.dataRefreshDelay=1e3*o,this.nodesMap.forEach(r=>{this.forceSpecificNodeRefresh(r.pk)})}),this.checkForExpired()}checkForExpired(){setInterval(()=>{try{this.nodesMap.forEach(e=>{this.finishIfExpired(e)})}catch{}},5e3)}startRequestingData(e){let i=this.nodesMap.get(e);return i?i.stopRequestedDate=-1:(i=new rye,i.pk=e,this.nodesMap.set(e,i),this.startDataSubscription(0,i)),i.dataSubject.asObservable()}stopRequestingSpecificNode(e){const i=this.nodesMap.get(e);i&&(i.stopRequestedDate=Date.now())}startDataSubscription(e,i){i.updateSubscription&&i.updateSubscription.unsubscribe();let o=0;i.updateSubscription=ae(1).pipe(li(e),ai(()=>{i.lastEmitedData.updating=!0,i.dataSubject.next(i.lastEmitedData)}),li(120),ai(()=>{o=performance.now(),console.log("[HV-DIAG] fetching node data for",i.pk.substring(0,8)+"...")}),It(()=>this.nodeService.getNode(i.pk))).subscribe(r=>{console.log("[HV-DIAG] fetch completed in",(performance.now()-o).toFixed(0),"ms for",i.pk.substring(0,8)+"..."),i.consecutiveErrors=0,this.updateTrafficData(r.transports,i.lastEmitedData.trafficData,i.whenUpdateWasScheduled);let s=this.calculateRemainingTime(i.whenUpdateWasScheduled);s<1e3&&(i.whenUpdateWasScheduled=Date.now(),s=this.dataRefreshDelay),i.lastEmitedData={data:r,error:null,momentOfLastCorrectUpdate:Date.now(),updating:!1,trafficData:i.lastEmitedData.trafficData},i.dataSubject.next(i.lastEmitedData),this.startDataSubscription(s,i)},r=>{if(r=Qe(r),i.consecutiveErrors=(i.consecutiveErrors||0)+1,i.lastEmitedData={data:i.lastEmitedData.data,error:r,momentOfLastCorrectUpdate:i.lastEmitedData.momentOfLastCorrectUpdate,updating:!1,trafficData:i.lastEmitedData.trafficData},i.dataSubject.next(i.lastEmitedData),r.originalError&&400===r.originalError.status)i.dataSubject.complete(),i.updateSubscription.unsubscribe(),this.nodesMap.delete(i.pk);else{const a=Math.min(rt.connectionRetryDelay*Math.pow(2,i.consecutiveErrors-1),3e4);this.startDataSubscription(a,i)}})}calculateRemainingTime(e){if(e<1)return 0;let i=this.dataRefreshDelay-(Date.now()-e);return i<0&&(i=0),i}updateTrafficData(e,i,o){if(i.totalSent=0,i.totalReceived=0,e&&e.length>0&&(i.totalSent=e.reduce((r,s)=>r+s.sent,0),i.totalReceived=e.reduce((r,s)=>r+s.recv,0)),0===i.sentHistory.length)for(let r=0;rthis.maxTrafficHistorySlots&&(s=this.maxTrafficHistorySlots),0===s)i.sentHistory[i.sentHistory.length-1]=i.totalSent,i.receivedHistory[i.receivedHistory.length-1]=i.totalReceived;else for(let a=0;athis.maxTrafficHistorySlots&&(i.sentHistory.splice(0,i.sentHistory.length-this.maxTrafficHistorySlots),i.receivedHistory.splice(0,i.receivedHistory.length-this.maxTrafficHistorySlots))}}forceSpecificNodeRefresh(e){const i=this.nodesMap.get(e);i&&this.startDataSubscription(0,i)}finishIfExpired(e){e.stopRequestedDate>0&&Date.now()-e.stopRequestedDate>this.expirationTime&&(e.dataSubject.complete(),e.updateSubscription.unsubscribe(),this.nodesMap.delete(e.pk))}static{this.\u0275fac=function(i){return new(i||t)(ce(ti),ce(Io))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();function aye(t,n){if(1&t){const e=oe();Vr(0),h(1,"div",2)(2,"div",3)(3,"app-top-bar",4),F("optionSelected",function(o){return j(e),U(v().performAction(o))})("refreshRequested",function(){return j(e),U(v().forceDataRefresh(!0))}),u()(),h(4,"div",3)(5,"div",5)(6,"div",6),B(7,"router-outlet"),u()()()(),cr()}if(2&t){const e=v();d(3),C("titleParts",e.titleParts)("pageHeaderLabel",e.headerLabel)("pageHeaderIdentifier",e.headerIdentifier)("tabsData",e.tabsData)("selectedTabIndex",e.selectedTabIndex)("secondsSinceLastUpdate",e.secondsSinceLastUpdate)("showLoading",e.updating)("showAlert",e.errorsUpdating)("refeshRate",e.storageService.getRefreshTime())("optionsData",e.nodeActionsHelper?e.nodeActionsHelper.options:null)("returnText",e.nodeActionsHelper?e.nodeActionsHelper.returnButtonText:"")}}function lye(t,n){1&t&&(Vr(0),B(1,"app-loading-indicator"),cr())}function cye(t,n){1&t&&(Vr(0),h(1,"div",10)(2,"div")(3,"mat-icon",11),p(4,"error"),u(),p(5),b(6,"translate"),u()(),cr()),2&t&&(d(3),C("inline",!0),d(2),E(" ",y(6,2,"node.not-found")," "))}function dye(t,n){if(1&t){const e=oe();Vr(0),h(1,"div",10)(2,"div")(3,"mat-icon",11),p(4,"error"),u(),p(5),b(6,"translate"),B(7,"br"),h(8,"button",12),F("click",function(){return j(e),U(v(2).retryLoading())}),p(9),b(10,"translate"),u()()(),cr()}2&t&&(d(3),C("inline",!0),d(2),E(" ",y(6,3,"node.error-load")," "),d(4),E(" ",y(10,5,"common.refresh")," "))}function uye(t,n){if(1&t){const e=oe();h(0,"div",7)(1,"div")(2,"app-top-bar",8),F("optionSelected",function(o){return j(e),U(v().performAction(o))}),u()(),it(3,lye,2,0,"ng-container",9)(4,cye,7,4,"ng-container",9)(5,dye,11,7,"ng-container",9),u()}if(2&t){const e=v();d(2),C("titleParts",e.titleParts)("pageHeaderLabel",e.headerLabel)("pageHeaderIdentifier",e.headerIdentifier)("tabsData",e.tabsData)("selectedTabIndex",e.selectedTabIndex)("showUpdateButton",!1)("optionsData",e.nodeActionsHelper?e.nodeActionsHelper.options:null)("returnText",e.nodeActionsHelper?e.nodeActionsHelper.returnButtonText:""),d(),C("ngIf",!e.notFound&&!e.loadFailed),d(),C("ngIf",e.notFound),d(),C("ngIf",e.loadFailed)}}let ke=(()=>{class t extends pn{static refreshCurrentDisplayedData(){t.currentInstanceInternal&&t.currentInstanceInternal.forceDataRefresh(!1)}static getCurrentNodeKey(){return t.currentNodeKey}static get currentNode(){return t.nodeSubject.asObservable()}static get currentTrafficData(){return t.trafficDataSubject.asObservable()}constructor(e,i,o,r,s,a,l,c){super(),this.storageService=e,this.singleNodeDataService=i,this.route=o,this.ngZone=r,this.snackbarService=s,this.injector=a,this.cdr=l,this.persistentDataResponseKey="serv-dat-response",this.nodeLoaded=!1,this.notFound=!1,this.titleParts=[],this.tabsData=[],this.selectedTabIndex=-1,this.headerLabel="",this.headerIdentifier="",this.showingFullList=!1,this.initialRouteEventFired=!1,this.secondsSinceLastUpdate=0,this.lastUpdate=Date.now(),this.updating=!1,this.errorsUpdating=!1,this.lastUpdateRequestedManually=!1,this.loadFailed=!1,this.consecutiveLoadErrors=0,this.instanceId="",t.nodeSubject=new oo(1),t.trafficDataSubject=new oo(1),t.currentInstanceInternal=this,this.instanceId=Math.random().toString(36).substring(7),console.log("[HV-DIAG] NodeComponent constructor, instance:",this.instanceId),this.navigationsSubscription=c.events.subscribe(f=>{f.urlAfterRedirects&&(this.lastUrl=f.urlAfterRedirects,this.processRouteUpdate(),this.initialRouteEventFired=!0)})}ngOnInit(){return this.ngZone.runOutsideAngular(()=>{this.updateTimeSubscription=xa(5e3,5e3).subscribe(()=>this.ngZone.run(()=>{this.secondsSinceLastUpdate=Math.floor((Date.now()-this.lastUpdate)/1e3)}))}),this.initSubscription=ae(0).pipe(li(500)).subscribe(()=>{this.initialRouteEventFired||(this.lastUrl=window.location.href,this.processRouteUpdate())}),super.ngOnInit()}processRouteUpdate(){console.log("[HV-DIAG] processRouteUpdate called, instance id:",this.instanceId),t.currentNodeKey=this.route.snapshot.params.key,this.nodeActionsHelper&&this.nodeActionsHelper.setCurrentNodeKey(t.currentNodeKey),this.updateTabBar(),this.navigationsSubscription.unsubscribe(),this.startGettingData(!0)}refreshHeader(){if(!this.node)return this.headerLabel="",void(this.headerIdentifier="");const e=this.storageService.getLabelInfo(this.node.localPk);this.headerLabel=e&&e.label?e.label:this.node.label||(this.node.localPk?this.node.localPk.slice(0,8)+"\u2026":""),this.headerIdentifier=this.node.localPk||""}updateTabBar(){if(this.lastUrl&&(this.lastUrl.includes("/info")||this.lastUrl.includes("/routing")||this.lastUrl.includes("/transports")||this.lastUrl.includes("/rewards")||this.lastUrl.includes("/skynet")||this.lastUrl.includes("/resources")||this.lastUrl.includes("/chat")||this.lastUrl.includes("/dmsg")||this.lastUrl.includes("/apps")&&!this.lastUrl.includes("/apps-list")))this.titleParts=["nodes.title","node.title"],this.tabsData=[{icon:"info",label:"node.tabs.info",linkParts:t.currentNodeKey?["/nodes",t.currentNodeKey,"info"]:null},{icon:"shuffle",label:"node.tabs.routing",linkParts:t.currentNodeKey?["/nodes",t.currentNodeKey,"routing"]:null},{icon:"swap_horiz",label:"node.tabs.transports",linkParts:t.currentNodeKey?["/nodes",t.currentNodeKey,"transports"]:null},{icon:"apps",label:"node.tabs.apps",linkParts:t.currentNodeKey?["/nodes",t.currentNodeKey,"apps"]:null},{icon:"monetization_on",label:"node.tabs.rewards",linkParts:t.currentNodeKey?["/nodes",t.currentNodeKey,"rewards"]:null},{icon:"public",label:"node.tabs.skynet",linkParts:t.currentNodeKey?["/nodes",t.currentNodeKey,"skynet"]:null},{icon:"memory",label:"node.tabs.resources",linkParts:t.currentNodeKey?["/nodes",t.currentNodeKey,"resources"]:null},{icon:"forum",label:"node.tabs.chat",linkParts:t.currentNodeKey?["/nodes",t.currentNodeKey,"chat"]:null},{icon:"device_hub",label:"node.tabs.dmsg",linkParts:t.currentNodeKey?["/nodes",t.currentNodeKey,"dmsg"]:null}],this.selectedTabIndex=0,this.lastUrl.includes("/routing")&&(this.selectedTabIndex=1),this.lastUrl.includes("/transports")&&(this.selectedTabIndex=2),this.lastUrl.includes("/apps")&&!this.lastUrl.includes("/apps-list")&&(this.selectedTabIndex=3),this.lastUrl.includes("/rewards")&&(this.selectedTabIndex=4),this.lastUrl.includes("/skynet")&&(this.selectedTabIndex=5),this.lastUrl.includes("/resources")&&(this.selectedTabIndex=6),this.lastUrl.includes("/chat")&&(this.selectedTabIndex=7),this.lastUrl.includes("/dmsg")&&(this.selectedTabIndex=8),this.showingFullList=!1,this.nodeActionsHelper=new gV(this.injector,this.showingFullList),this.nodeActionsHelper.setCurrentNodeKey(t.currentNodeKey),this.node&&this.nodeActionsHelper.setCurrentNode(this.node);else if(this.lastUrl&&this.lastUrl.includes("/apps-list")){this.showingFullList=!0,this.nodeActionsHelper=new gV(this.injector,this.showingFullList),this.nodeActionsHelper.setCurrentNodeKey(t.currentNodeKey),this.node&&this.nodeActionsHelper.setCurrentNode(this.node);const e="apps.apps-list";this.titleParts=["nodes.title","node.title",e+".title"],this.tabsData=[{icon:"view_headline",label:e+".list-title",linkParts:[]}],this.selectedTabIndex=0}else this.titleParts=[],this.tabsData=[]}performAction(e){this.nodeActionsHelper.performAction(e,t.currentNodeKey)}forceDataRefresh(e=!1){e&&(this.lastUpdateRequestedManually=!0),this.singleNodeDataService.forceSpecificNodeRefresh(t.currentNodeKey)}retryLoading(){this.loadFailed=!1,this.consecutiveLoadErrors=0,this.startGettingData(!1)}startGettingData(e){const i=e?this.getLocalValue(this.persistentDataResponseKey):null;let o=this.singleNodeDataService.startRequestingData(t.currentNodeKey);i&&(o=ae(JSON.parse(i.value))),this.dataSubscription=o.subscribe(r=>{if(performance.now(),console.log("[HV-DIAG] data event received",{updating:r?.updating,hasData:!!r?.data,hasError:!!r?.error,transports:r?.data?.transports?.length??"n/a",routes:r?.data?.routes?.length??"n/a",apps:r?.data?.apps?.length??"n/a"}),!i){const a=performance.now();this.saveLocalValue(this.persistentDataResponseKey,JSON.stringify(r)),console.log("[HV-DIAG] saveLocalValue took",(performance.now()-a).toFixed(1),"ms")}if(this.updating=!r||r.updating,console.log("[HV-DIAG] updating:",this.updating,"node set:",!!this.node,"notFound:",this.notFound,"loadFailed:",this.loadFailed),r&&!r.updating)if(r.data&&!r.error){const a=performance.now();this.ngZone.run(()=>{this.node=r.data,this.trafficData=r.trafficData,this.nodeLoaded=!0,this.refreshHeader()}),console.log("[HV-DIAG] node assigned, instance:",this.instanceId,"nodeLoaded:",this.nodeLoaded,"node.localPk:",this.node?.localPk?.substring(0,8),"transports:",this.node?.transports?.length,"routes:",this.node?.routes?.length);try{t.nodeSubject.next(this.node)}catch(l){console.error("[HV-DIAG] ERROR in nodeSubject.next:",l)}t.trafficDataSubject.next(this.trafficData),this.nodeActionsHelper&&this.nodeActionsHelper.setCurrentNode(this.node),this.snackbarService.closeCurrentIfTemporaryError(),this.lastUpdate=r.momentOfLastCorrectUpdate,this.secondsSinceLastUpdate=Math.floor((Date.now()-r.momentOfLastCorrectUpdate)/1e3),this.errorsUpdating=!1,this.consecutiveLoadErrors=0,this.loadFailed=!1,Xr.currentInstance.hideDataProblemMsg(),console.log("[HV-DIAG] data processing took",(performance.now()-a).toFixed(1),"ms"),console.log("[HV-DIAG] AFTER ASSIGNMENT: this.node is",this.node?"SET":"NULL","this.notFound:",this.notFound,"this.loadFailed:",this.loadFailed),this.cdr.detectChanges(),this.lastUpdateRequestedManually&&(this.snackbarService.showDone("common.refreshed",null),this.lastUpdateRequestedManually=!1)}else if(r.error){if(r.error.originalError&&400===r.error.originalError.status)return void(this.notFound=!0);if(this.consecutiveLoadErrors++,!this.node&&this.consecutiveLoadErrors>=3)return this.loadFailed=!0,this.singleNodeDataService.stopRequestingSpecificNode(t.currentNodeKey),this.snackbarService.showError("common.loading-error",null,!0,r.error),void Xr.currentInstance.showDataProblemMsg();this.errorsUpdating||this.snackbarService.showError(this.node?"node.error-load":"common.loading-error",null,!0,r.error),this.errorsUpdating=!0,Xr.currentInstance.showDataProblemMsg()}i&&this.startGettingData(!1)})}ngOnDestroy(){console.log("[HV-DIAG] ngOnDestroy, instance:",this.instanceId),this.singleNodeDataService.stopRequestingSpecificNode(t.currentNodeKey),this.dataSubscription.unsubscribe(),this.updateTimeSubscription.unsubscribe(),this.navigationsSubscription.unsubscribe(),this.initSubscription.unsubscribe(),t.currentInstanceInternal=void 0,t.currentNodeKey=void 0,t.nodeSubject.complete(),t.nodeSubject=void 0,t.trafficDataSubject.complete(),t.trafficDataSubject=void 0,this.nodeActionsHelper.dispose()}static{this.\u0275fac=function(i){return new(i||t)(O(ti),O(sye),O(Ai),O(_e),O(ct),O(He),O(Jt),O(vt))}}static{this.\u0275cmp=re({type:t,selectors:[["app-node"]],standalone:!1,features:[be],decls:3,vars:2,consts:[["loadingBlock",""],[4,"ngIf","ngIfElse"],[1,"row"],[1,"col-12"],[3,"optionSelected","refreshRequested","titleParts","pageHeaderLabel","pageHeaderIdentifier","tabsData","selectedTabIndex","secondsSinceLastUpdate","showLoading","showAlert","refeshRate","optionsData","returnText"],[1,"full-size-main-area"],[1,"d-flex","flex-column","h-100"],[1,"d-flex","flex-column","h-100","w-100"],[3,"optionSelected","titleParts","pageHeaderLabel","pageHeaderIdentifier","tabsData","selectedTabIndex","showUpdateButton","optionsData","returnText"],[4,"ngIf"],[1,"w-100","h-100","d-flex","not-found-label"],[3,"inline"],["mat-raised-button","","color","primary",2,"margin-top","16px",3,"click"]],template:function(i,o){if(1&i&&it(0,aye,8,11,"ng-container",1)(1,uye,6,11,"ng-template",null,0,Rl),2&i){const r=Hn(2);C("ngIf",o.nodeLoaded)("ngIfElse",r)}},dependencies:[tf,eb,Pn,We,Yr,Mr,xe],styles:[".not-found-label[_ngcontent-%COMP%]{align-items:center;justify-content:center;font-size:1rem;position:relative}.not-found-label[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:5px;font-size:22px;opacity:.5;margin-right:3px}.full-size-main-area[_ngcontent-%COMP%], .main-area[_ngcontent-%COMP%]{width:100%}@media(min-width:992px){.main-area[_ngcontent-%COMP%]{width:73%;padding-right:20px;float:left}}.right-bar[_ngcontent-%COMP%]{width:27%;float:right;display:none}@media(min-width:992px){.right-bar[_ngcontent-%COMP%]{display:block;width:27%;float:right}}"]})}}return t})();function hye(t,n){if(1&t&&(h(0,"mat-option",9),p(1),b(2,"translate"),u()),2&t){const e=n.$implicit;C("value",Qt(e)),d(),gt(" ",e," ",y(2,4,"settings.seconds")," ")}}let fye=(()=>{class t{constructor(e,i,o){this.formBuilder=e,this.storageService=i,this.snackbarService=o,this.timesList=["3","5","10","15","30","60","90","150","300"]}ngOnInit(){this.form=this.formBuilder.group({refreshRate:[this.storageService.getRefreshTime().toString()]}),this.subscription=this.form.get("refreshRate").valueChanges.subscribe(e=>{this.storageService.setRefreshTime(e),this.snackbarService.showDone("settings.refresh-rate-confirmation")})}ngOnDestroy(){this.subscription.unsubscribe()}static{this.\u0275fac=function(i){return new(i||t)(O(di),O(ti),O(ct))}}static{this.\u0275cmp=re({type:t,selectors:[["app-refresh-rate"]],standalone:!1,decls:15,vars:8,consts:[[1,"rounded-elevated-box"],[1,"box-internal-container","overflow"],[1,"white-form-help-icon-container"],[1,"help-icon",3,"inline","matTooltip"],[3,"formGroup"],[1,"white-form-field"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","refreshRate"],[3,"value"]],template:function(i,o){1&i&&(h(0,"div",0)(1,"div",1)(2,"div",2)(3,"mat-icon",3),b(4,"translate"),p(5," help "),u()(),h(6,"form",4)(7,"mat-form-field",5)(8,"div",6)(9,"label",7),p(10),b(11,"translate"),u(),h(12,"mat-select",8),ve(13,hye,3,6,"mat-option",9,Fe),u()()()()()()),2&i&&(d(3),C("inline",!0)("matTooltip",y(4,4,"settings.refresh-rate-help")),d(3),C("formGroup",o.form),d(4),M(y(11,6,"settings.refresh-rate")),d(3),ye(o.timesList))},dependencies:[xn,qt,wn,on,mn,sn,We,Kt,Pa,Qr,xe],styles:[".help-icon[_ngcontent-%COMP%]{display:inline}mat-form-field[_ngcontent-%COMP%]{margin-right:32px}mat-form-field[_ngcontent-%COMP%] .mat-mdc-form-field-bottom-align{margin-bottom:0!important}"]})}}return t})();const pye=t=>({number:t});let _V=(()=>{class t{constructor(){this.numberOfElements=0,this.linkParts=[""],this.queryParams={}}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=re({type:t,selectors:[["app-view-all-link"]],inputs:{numberOfElements:"numberOfElements",linkParts:"linkParts",queryParams:"queryParams"},standalone:!1,decls:6,vars:9,consts:[[1,"main-container"],[3,"routerLink","queryParams"],[3,"inline"]],template:function(i,o){1&i&&(h(0,"div",0)(1,"a",1),p(2),b(3,"translate"),h(4,"mat-icon",2),p(5,"chevron_right"),u()()()),2&i&&(d(),C("routerLink",o.linkParts)("queryParams",o.queryParams),d(),E(" ",pe(3,4,"view-all-link.label",se(7,pye,o.numberOfElements))," "),d(2),C("inline",!0))},dependencies:[Is,We,xe],styles:[".main-container[_ngcontent-%COMP%]{padding-top:20px;margin-bottom:4px;text-align:right;font-size:.875rem}@media(max-width:767px),(min-width:992px)and (max-width:1299px){.main-container[_ngcontent-%COMP%]{margin:0;padding:16px}}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:#f8f9f9;text-decoration:none}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:7px}"]})}}return t})();const mye=t=>({"paginator-icons-fixer":t}),Tk=()=>["/settings","labels"],gye=(t,n)=>({"small-node-list-margins":t,"full-node-list-margins":n}),_ye=t=>({"d-lg-none d-xl-table":t}),bye=t=>({"d-lg-table d-xl-none":t});function vye(t,n){1&t&&(h(0,"span",3),p(1),b(2,"translate"),h(3,"mat-icon",14),b(4,"translate"),p(5,"help"),u()()),2&t&&(d(),E(" ",y(2,3,"labels.title")," "),d(2),C("inline",!0)("matTooltip",y(4,5,"labels.info")))}function yye(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,v().$implicit.translatableValue)," ")}function Cye(t,n){1&t&&p(0),2&t&&E(" ",v().$implicit.value," ")}function wye(t,n){if(1&t&&(h(0,"div",16)(1,"span"),p(2),b(3,"translate"),u(),x(4,yye,2,3),x(5,Cye,1,1),u()),2&t){const e=n.$implicit;d(2),E("",y(3,3,e.filterName),": "),d(2),S(e.translatableValue?4:-1),d(),S(e.value?5:-1)}}function xye(t,n){if(1&t){const e=oe();h(0,"div",15),F("click",function(){return j(e),U(v().dataFilterer.removeFilters())}),ve(1,wye,6,5,"div",16,Fe),h(3,"div",17),p(4),b(5,"translate"),u()()}if(2&t){const e=v();d(),ye(e.dataFilterer.currentFiltersTexts),d(3),M(y(5,1,"filters.press-to-remove"))}}function Sye(t,n){if(1&t){const e=oe();h(0,"mat-icon",18),b(1,"translate"),F("click",function(){return j(e),U(v().dataFilterer.changeFilters())}),p(2,"filter_list"),u()}2&t&&C("inline",!0)("matTooltip",y(1,2,"filters.filter-action"))}function kye(t,n){if(1&t&&(h(0,"mat-icon",8),p(1,"more_horiz"),u()),2&t){v();const e=Hn(9);C("inline",!0)("matMenuTriggerFor",e)}}function Dye(t,n){if(1&t&&B(0,"app-paginator",12),2&t){const e=v();C("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",Ct(4,Tk))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function Mye(t,n){if(1&t&&(h(0,"mat-icon",22),p(1),u()),2&t){const e=v(2);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function Tye(t,n){if(1&t&&(h(0,"mat-icon",22),p(1),u()),2&t){const e=v(2);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function Eye(t,n){if(1&t&&(h(0,"mat-icon",22),p(1),u()),2&t){const e=v(2);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function Pye(t,n){if(1&t){const e=oe();h(0,"tr")(1,"td",30)(2,"mat-checkbox",31),F("change",function(){const o=j(e).$implicit;return U(v(2).changeSelection(o))}),u()(),h(3,"td"),p(4),u(),h(5,"td"),p(6),u(),h(7,"td"),p(8),b(9,"translate"),u(),h(10,"td",23)(11,"button",32),b(12,"translate"),F("click",function(){const o=j(e).$implicit;return U(v(2).delete(o.id))}),h(13,"mat-icon",22),p(14,"close"),u()()()()}if(2&t){const e=n.$implicit,i=v(2);d(2),C("checked",i.selections.get(e.id)),d(2),E(" ",e.label," "),d(2),E(" ",e.id," "),d(2),gt(" ",i.getLabelTypeIdentification(e)[0]," - ",y(9,7,i.getLabelTypeIdentification(e)[1])," "),d(3),C("matTooltip",y(12,9,"labels.delete")),d(2),C("inline",!0)}}function Iye(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"tables.label")," ")}function Oye(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"tables.inverted-order")," ")}function Aye(t,n){if(1&t){const e=oe();h(0,"tr")(1,"td")(2,"div",26)(3,"div",33)(4,"mat-checkbox",31),F("change",function(){const o=j(e).$implicit;return U(v(2).changeSelection(o))}),u()(),h(5,"div",27)(6,"div",34)(7,"span",2),p(8),b(9,"translate"),u(),p(10),u(),h(11,"div",35)(12,"span",2),p(13),b(14,"translate"),u(),p(15),u(),h(16,"div",34)(17,"span",2),p(18),b(19,"translate"),u(),p(20),b(21,"translate"),u()(),B(22,"div",36),h(23,"div",28)(24,"button",37),b(25,"translate"),F("click",function(o){const r=j(e).$implicit,s=v(2);return o.stopPropagation(),U(s.showOptionsDialog(r))}),h(26,"mat-icon"),p(27),u()()()()()()}if(2&t){const e=n.$implicit,i=v(2);d(4),C("checked",i.selections.get(e.id)),d(4),M(y(9,10,"labels.label")),d(2),E(": ",e.label," "),d(3),M(y(14,12,"labels.id")),d(2),E(": ",e.id," "),d(3),M(y(19,14,"labels.type")),d(2),gt(": ",i.getLabelTypeIdentification(e)[0]," - ",y(21,16,i.getLabelTypeIdentification(e)[1])," "),d(4),C("matTooltip",y(25,18,"common.options")),d(3),M("add")}}function Rye(t,n){if(1&t&&B(0,"app-view-all-link",29),2&t){const e=v(2);C("numberOfElements",e.filteredLabels.length)("linkParts",Ct(3,Tk))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function Fye(t,n){if(1&t){const e=oe();h(0,"div",13)(1,"div",19)(2,"table",20)(3,"tr"),B(4,"th"),h(5,"th",21),F("click",function(){j(e);const o=v();return U(o.dataSorter.changeSortingOrder(o.labelSortData))}),p(6),b(7,"translate"),x(8,Mye,2,2,"mat-icon",22),u(),h(9,"th",21),F("click",function(){j(e);const o=v();return U(o.dataSorter.changeSortingOrder(o.idSortData))}),p(10),b(11,"translate"),x(12,Tye,2,2,"mat-icon",22),u(),h(13,"th",21),F("click",function(){j(e);const o=v();return U(o.dataSorter.changeSortingOrder(o.typeSortData))}),p(14),b(15,"translate"),x(16,Eye,2,2,"mat-icon",22),u(),B(17,"th",23),u(),ve(18,Pye,15,11,"tr",null,Fe),u(),h(20,"table",24)(21,"tr",25),F("click",function(){return j(e),U(v().dataSorter.openSortingOrderModal())}),h(22,"td")(23,"div",26)(24,"div",27)(25,"div",2),p(26),b(27,"translate"),u(),h(28,"div"),p(29),b(30,"translate"),x(31,Iye,2,3),x(32,Oye,2,3),u()(),h(33,"div",28)(34,"mat-icon",22),p(35,"keyboard_arrow_down"),u()()()()(),ve(36,Aye,28,20,"tr",null,Fe),u(),x(38,Rye,1,4,"app-view-all-link",29),u()()}if(2&t){const e=v();d(),C("ngClass",_t(25,gye,e.showShortList_,!e.showShortList_)),d(),C("ngClass",se(28,_ye,e.showShortList_)),d(4),E(" ",y(7,15,"labels.label")," "),d(2),S(e.dataSorter.currentSortingColumn===e.labelSortData?8:-1),d(2),E(" ",y(11,17,"labels.id")," "),d(2),S(e.dataSorter.currentSortingColumn===e.idSortData?12:-1),d(2),E(" ",y(15,19,"labels.type")," "),d(2),S(e.dataSorter.currentSortingColumn===e.typeSortData?16:-1),d(2),ye(e.dataSource),d(2),C("ngClass",se(30,bye,e.showShortList_)),d(6),M(y(27,21,"tables.sorting-title")),d(3),E("",y(30,23,e.dataSorter.currentSortingColumn.label)," "),d(2),S(e.dataSorter.currentlySortingByLabel?31:-1),d(),S(e.dataSorter.sortingInReverseOrder?32:-1),d(2),C("inline",!0),d(2),ye(e.dataSource),d(2),S(e.showShortList_&&e.numberOfPages>1?38:-1)}}function Nye(t,n){1&t&&(h(0,"span",40),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"labels.empty")))}function Lye(t,n){1&t&&(h(0,"span",40),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"labels.empty-with-filter")))}function Bye(t,n){if(1&t&&(h(0,"div",13)(1,"div",38)(2,"mat-icon",39),p(3,"warning"),u(),x(4,Nye,3,3,"span",40),x(5,Lye,3,3,"span",40),u()()),2&t){const e=v();d(2),C("inline",!0),d(2),S(0===e.allLabels.length?4:-1),d(),S(0!==e.allLabels.length?5:-1)}}function Vye(t,n){if(1&t&&B(0,"app-paginator",12),2&t){const e=v();C("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",Ct(4,Tk))("queryParams",e.dataFilterer.currentUrlQueryParams)}}let bV=(()=>{class t{set showShortList(e){this.showShortList_=e,this.dataSorter.setData(this.filteredLabels)}constructor(e,i,o,r,s,a){this.dialog=e,this.route=i,this.router=o,this.snackbarService=r,this.translateService=s,this.storageService=a,this.listId="ll",this.labelSortData=new Dt(["label"],"labels.label",st.Text),this.idSortData=new Dt(["id"],"labels.id",st.Text),this.typeSortData=new Dt(["identifiedElementType_sort"],"labels.type",st.Text),this.selections=new Map,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.filterProperties=[{filterName:"labels.filter-dialog.label",keyNameInElementsArray:"label",type:Sn.TextInput,maxlength:100},{filterName:"labels.filter-dialog.id",keyNameInElementsArray:"id",type:Sn.TextInput,maxlength:66},{filterName:"labels.filter-dialog.type",keyNameInElementsArray:"identifiedElementType",type:Sn.Select,printableLabelsForValues:[{value:"",label:"labels.filter-dialog.type-options.any"},{value:ro.Node,label:"labels.filter-dialog.type-options.visor"},{value:ro.DmsgServer,label:"labels.filter-dialog.type-options.dmsg-server"},{value:ro.Transport,label:"labels.filter-dialog.type-options.transport"}]}],this.dataSorter=new gu(this.dialog,this.translateService,this.storageService,[this.labelSortData,this.idSortData,this.typeSortData],0,this.listId),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataFilterer=new _u(this.dialog,this.route,this.router,this.filterProperties,this.listId),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(c=>{this.filteredLabels=c,this.dataSorter.setData(this.filteredLabels)}),this.loadData(),this.navigationsSubscription=this.route.paramMap.subscribe(c=>{if(c.has("page")){let f=Number.parseInt(c.get("page"),10);(isNaN(f)||f<1)&&(f=1),this.currentPageInUrl=f,this.recalculateElementsToShow()}})}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.dataSortedSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFiltererSubscription.unsubscribe(),this.dataFilterer.dispose()}loadData(){this.allLabels=this.storageService.getSavedLabels(),this.allLabels.forEach(e=>{e.identifiedElementType_sort=this.getLabelTypeIdentification(e)[0]}),this.dataFilterer.setData(this.allLabels)}getLabelTypeIdentification(e){return e.identifiedElementType===ro.Node?["1","labels.filter-dialog.type-options.visor"]:e.identifiedElementType===ro.DmsgServer?["2","labels.filter-dialog.type-options.dmsg-server"]:e.identifiedElementType===ro.Transport?["3","labels.filter-dialog.type-options.transport"]:void 0}changeSelection(e){this.selections.get(e.id)?this.selections.set(e.id,!1):this.selections.set(e.id,!0)}hasSelectedElements(){if(!this.selections)return!1;let e=!1;return this.selections.forEach(i=>{i&&(e=!0)}),e}changeAllSelections(e){this.selections.forEach((i,o)=>{this.selections.set(o,e)})}deleteSelected(){const e=Rt.createConfirmationDialog(this.dialog,"labels.delete-selected-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.close(),this.selections.forEach((i,o)=>{i&&this.storageService.saveLabel(o,"",null)}),this.snackbarService.showDone("labels.deleted"),this.loadData()})}showOptionsDialog(e){ao.openDialog(this.dialog,[{icon:"close",label:"labels.delete"}],"common.options").afterClosed().subscribe(o=>{1===o&&this.delete(e.id)})}delete(e){const i=Rt.createConfirmationDialog(this.dialog,"labels.delete-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.close(),this.storageService.saveLabel(e,"",null),this.snackbarService.showDone("labels.deleted"),this.loadData()})}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredLabels){const e=this.showShortList_?rt.maxShortListElements:rt.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredLabels.length/e),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const i=e*(this.currentPage-1);this.labelsToShow=this.filteredLabels.slice(i,i+e);const r=new Map;this.labelsToShow.forEach(a=>{r.set(a.id,!0),this.selections.has(a.id)||this.selections.set(a.id,!1)});const s=[];this.selections.forEach((a,l)=>{r.has(l)||s.push(l)}),s.forEach(a=>{this.selections.delete(a)})}else this.labelsToShow=null,this.selections=new Map;this.dataSource=this.labelsToShow}static{this.\u0275fac=function(i){return new(i||t)(O(Ot),O(Ai),O(vt),O(ct),O(Go),O(ti))}}static{this.\u0275cmp=re({type:t,selectors:[["app-label-list"]],inputs:{showShortList:"showShortList"},standalone:!1,decls:23,vars:23,consts:[["selectionMenu","matMenu"],[1,"generic-title-container","mt-4.5","d-flex",3,"ngClass"],[1,"title"],[1,"uppercase"],[1,"filter-label","subtle-transparent-button","cursor-pointer"],[1,"options"],[1,"options-container"],[1,"small-icon",3,"inline","matTooltip"],[3,"inline","matMenuTriggerFor"],[3,"overlapTrigger"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"click","disabled"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"rounded-elevated-box","mt-3"],[1,"help","d-none","d-md-inline",3,"inline","matTooltip"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],[1,"item"],[1,"transparent-50"],[1,"small-icon",3,"click","inline","matTooltip"],[1,"box-internal-container","overflow",3,"ngClass"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table",3,"ngClass"],[1,"sortable-column",3,"click"],[3,"inline"],[1,"actions"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none",3,"ngClass"],[1,"selectable",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],[3,"numberOfElements","linkParts","queryParams"],[1,"selection-col"],[3,"change","checked"],["mat-button","",1,"action-button","transparent-button",3,"click","matTooltip"],[1,"check-part"],[1,"list-row"],[1,"list-row","long-content"],[1,"margin-part"],["mat-icon-button","",1,"transparent-button",3,"click","matTooltip"],[1,"box-internal-container"],[1,"alert-icon",3,"inline"],[1,"font-sm"]],template:function(i,o){1&i&&(h(0,"div",1)(1,"div",2),x(2,vye,6,7,"span",3),x(3,xye,6,3,"div",4),u(),h(4,"div",5)(5,"div",6),x(6,Sye,3,4,"mat-icon",7),x(7,kye,2,2,"mat-icon",8),h(8,"mat-menu",9,0)(10,"div",10),F("click",function(){return o.changeAllSelections(!0)}),p(11),b(12,"translate"),u(),h(13,"div",10),F("click",function(){return o.changeAllSelections(!1)}),p(14),b(15,"translate"),u(),h(16,"div",11),F("click",function(){return o.deleteSelected()}),p(17),b(18,"translate"),u()()(),x(19,Dye,1,5,"app-paginator",12),u()(),x(20,Fye,39,32,"div",13),x(21,Bye,6,3,"div",13),x(22,Vye,1,5,"app-paginator",12)),2&i&&(C("ngClass",se(21,mye,!o.showShortList_&&o.numberOfPages>1&&o.dataSource)),d(2),S(o.showShortList_?2:-1),d(),S(o.dataFilterer.currentFiltersTexts&&o.dataFilterer.currentFiltersTexts.length>0?3:-1),d(3),S(o.allLabels&&o.allLabels.length>0?6:-1),d(),S(o.dataSource&&o.dataSource.length>0?7:-1),d(),C("overlapTrigger",!1),d(3),E(" ",y(12,15,"selection.select-all")," "),d(3),E(" ",y(15,17,"selection.unselect-all")," "),d(2),C("disabled",Qt(!o.hasSelectedElements())),d(),E(" ",y(18,19,"selection.delete-all")," "),d(2),S(!o.showShortList_&&o.numberOfPages>1&&o.dataSource?19:-1),d(),S(o.dataSource&&o.dataSource.length>0?20:-1),d(),S(o.dataSource&&0!==o.dataSource.length?-1:21),d(),S(!o.showShortList_&&o.numberOfPages>1&&o.dataSource?22:-1))},dependencies:[$t,Pn,Wo,We,Kt,Jr,As,vu,kr,_V,mv,xe],styles:[".overflow[_ngcontent-%COMP%]{display:block;width:100%;overflow-x:auto}.overflow[_ngcontent-%COMP%] table[_ngcontent-%COMP%]{width:100%}.actions[_ngcontent-%COMP%]{text-align:right;width:90px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}"]})}}return t})();const Hye=()=>["start.title"];function jye(t,n){1&t&&B(0,"app-password")}function Uye(t,n){1&t&&(h(0,"div",5),B(1,"mat-spinner",7),p(2),b(3,"translate"),u()),2&t&&(d(),C("diameter",11),d(),E(" ",y(3,2,"settings.checking-auth")," "))}let zye=(()=>{class t extends pn{constructor(e,i,o,r){super(),this.authService=e,this.router=i,this.snackbarService=o,this.dialog=r,this.persistentAuthDataResponseKey="serv-aut-response",this.tabsData=[],this.options=[],this.waitBeforeShowingLoading=!0,this.authChecked=!1,this.authActive=!1,this.tabsData=[{icon:"view_headline",label:"nodes.title",linkParts:["/nodes"],group:"local"},{icon:"monetization_on",label:"nodes.rewards-title",linkParts:["/nodes","rewards"],group:"local"},{icon:"memory",label:"nodes.resources-title",linkParts:["/nodes","resources"],group:"local"},{icon:"swap_horiz",label:"nodes.transports-title",linkParts:["/nodes","transports"],group:"network"},{icon:"public",label:"nodes.network-title",linkParts:["/nodes","network"],group:"network"},{icon:"bubble_chart",label:"node.details.tpviz.title",linkParts:[],externalUrl:"/tp-viz/",group:"network"},{icon:"check_circle",label:"nodes.services-health-title",linkParts:["/nodes","services-health"],group:"network"},{icon:"settings",label:"settings.title",linkParts:["/settings"]}],this.updateOptionsMenu()}ngOnInit(){return setTimeout(()=>{this.waitBeforeShowingLoading=!1},500),this.checkAuth(0,!0),super.ngOnInit()}checkAuth(e,i){const o=i?this.getLocalValue(this.persistentAuthDataResponseKey):null;let r=this.authService.checkLogin();o&&(r=ae(JSON.parse(o.value))),this.authSubscription=ae(1).pipe(li(e),It(()=>r)).subscribe(s=>{o||this.saveLocalValue(this.persistentAuthDataResponseKey,JSON.stringify(s)),this.authChecked=!0,this.authActive=s===ka.Logged,this.updateOptionsMenu(),o&&this.checkAuth(0,!1)},()=>{this.checkAuth(15e3,!1)})}ngOnDestroy(){this.authSubscription.unsubscribe()}updateOptionsMenu(){this.options=[],this.authActive&&(this.options=[{name:"common.logout",actionName:"logout",icon:"power_settings_new"}])}performAction(e){"logout"===e&&this.logout()}logout(){const e=Rt.createConfirmationDialog(this.dialog,"common.logout-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.closeModal(),this.authService.logout().subscribe(()=>this.router.navigate(["login"]),()=>this.snackbarService.showError("common.logout-error"))})}static{this.\u0275fac=function(i){return new(i||t)(O(Yf),O(vt),O(ct),O(Ot))}}static{this.\u0275cmp=re({type:t,selectors:[["app-settings"]],standalone:!1,features:[be],decls:8,vars:9,consts:[[1,"row"],[1,"col-12"],[3,"optionSelected","titleParts","tabsData","selectedTabIndex","showUpdateButton","optionsData"],[1,"content","col-12","mt-4.5"],[1,"d-block","mb-4"],[1,"white-theme","checking-container"],[3,"showShortList"],[3,"diameter"]],template:function(i,o){1&i&&(h(0,"div",0)(1,"div",1)(2,"app-top-bar",2),F("optionSelected",function(s){return o.performAction(s)}),u()(),h(3,"div",3),B(4,"app-refresh-rate",4),x(5,jye,1,0,"app-password"),x(6,Uye,4,4,"div",5),B(7,"app-label-list",6),u()()),2&i&&(d(2),C("titleParts",Ct(8,Hye))("tabsData",o.tabsData)("selectedTabIndex",7)("showUpdateButton",!1)("optionsData",o.options),d(3),S(o.authChecked&&o.authActive?5:-1),d(),S(o.authChecked||o.waitBeforeShowingLoading?-1:6),d(),C("showShortList",!0))},dependencies:[so,$B,fye,Mr,bV,xe],styles:[".checking-container[_ngcontent-%COMP%]{font-size:10px;opacity:.5}.checking-container[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%]{display:inline-block}.show-link[_ngcontent-%COMP%]{cursor:pointer;font-size:.8rem}"]})}}return t})(),Ek=(()=>{class t{constructor(e){this.apiService=e}get(e,i){return this.apiService.get(`visors/${e}/routes/${i}`)}delete(e,i){return this.apiService.delete(`visors/${e}/routes/${i}`)}setMinHops(e,i){return this.apiService.post(`visors/${e}/min-hops`,{min_hops:i})}static{this.\u0275fac=function(i){return new(i||t)(ce(zi))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();function yu(t){return t+.5|0}const Fs=(t,n,e)=>Math.max(Math.min(t,e),n);function sp(t){return Fs(yu(2.55*t),0,255)}function Oa(t){return Fs(yu(255*t),0,255)}function Ns(t){return Fs(yu(t/2.55)/100,0,1)}function vV(t){return Fs(yu(100*t),0,100)}const Qo={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},Pk=[..."0123456789ABCDEF"],$ye=t=>Pk[15&t],Wye=t=>Pk[(240&t)>>4]+Pk[15&t],_v=t=>(240&t)>>4==(15&t);const Xye=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function yV(t,n,e){const i=n*Math.min(e,1-e),o=(r,s=(r+t/30)%12)=>e-i*Math.max(Math.min(s-3,9-s,1),-1);return[o(0),o(8),o(4)]}function Zye(t,n,e){const i=(o,r=(o+t/60)%6)=>e-e*n*Math.max(Math.min(r,4-r,1),0);return[i(5),i(3),i(1)]}function Qye(t,n,e){const i=yV(t,1,.5);let o;for(n+e>1&&(o=1/(n+e),n*=o,e*=o),o=0;o<3;o++)i[o]*=1-n-e,i[o]+=n;return i}function Ik(t){const e=t.r/255,i=t.g/255,o=t.b/255,r=Math.max(e,i,o),s=Math.min(e,i,o),a=(r+s)/2;let l,c,f;return r!==s&&(f=r-s,c=a>.5?f/(2-r-s):f/(r+s),l=function Jye(t,n,e,i,o){return t===o?(n-e)/i+(nt<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055,Cu=t=>t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4);function vv(t,n,e){if(t){let i=Ik(t);i[n]=Math.max(0,Math.min(i[n]+i[n]*e,0===n?360:1)),i=Ak(i),t.r=i[0],t.g=i[1],t.b=i[2]}}function SV(t,n){return t&&Object.assign(n||{},t)}function kV(t){var n={r:0,g:0,b:0,a:255};return Array.isArray(t)?t.length>=3&&(n={r:t[0],g:t[1],b:t[2],a:255},t.length>3&&(n.a=Oa(t[3]))):(n=SV(t,{r:0,g:0,b:0,a:1})).a=Oa(n.a),n}function uCe(t){return"r"===t.charAt(0)?function lCe(t){const n=aCe.exec(t);let i,o,r,e=255;if(n){if(n[7]!==i){const s=+n[7];e=n[8]?sp(s):Fs(255*s,0,255)}return i=+n[1],o=+n[3],r=+n[5],i=255&(n[2]?sp(i):Fs(i,0,255)),o=255&(n[4]?sp(o):Fs(o,0,255)),r=255&(n[6]?sp(r):Fs(r,0,255)),{r:i,g:o,b:r,a:e}}}(t):function nCe(t){const n=Xye.exec(t);let i,e=255;if(!n)return;n[5]!==i&&(e=n[6]?sp(+n[5]):Oa(+n[5]));const o=CV(+n[2]),r=+n[3]/100,s=+n[4]/100;return i="hwb"===n[1]?function eCe(t,n,e){return Ok(Qye,t,n,e)}(o,r,s):"hsv"===n[1]?function tCe(t,n,e){return Ok(Zye,t,n,e)}(o,r,s):Ak(o,r,s),{r:i[0],g:i[1],b:i[2],a:e}}(t)}class wu{constructor(n){if(n instanceof wu)return n;const e=typeof n;let i;"object"===e?i=kV(n):"string"===e&&(i=function qye(t){var e,n=t.length;return"#"===t[0]&&(4===n||5===n?e={r:255&17*Qo[t[1]],g:255&17*Qo[t[2]],b:255&17*Qo[t[3]],a:5===n?17*Qo[t[4]]:255}:(7===n||9===n)&&(e={r:Qo[t[1]]<<4|Qo[t[2]],g:Qo[t[3]]<<4|Qo[t[4]],b:Qo[t[5]]<<4|Qo[t[6]],a:9===n?Qo[t[7]]<<4|Qo[t[8]]:255})),e}(n)||function sCe(t){bv||(bv=function rCe(){const t={},n=Object.keys(xV),e=Object.keys(wV);let i,o,r,s,a;for(i=0;i>16&255,r>>8&255,255&r]}return t}(),bv.transparent=[0,0,0,0]);const n=bv[t.toLowerCase()];return n&&{r:n[0],g:n[1],b:n[2],a:4===n.length?n[3]:255}}(n)||uCe(n)),this._rgb=i,this._valid=!!i}get valid(){return this._valid}get rgb(){var n=SV(this._rgb);return n&&(n.a=Ns(n.a)),n}set rgb(n){this._rgb=kV(n)}rgbString(){return this._valid?function cCe(t){return t&&(t.a<255?`rgba(${t.r}, ${t.g}, ${t.b}, ${Ns(t.a)})`:`rgb(${t.r}, ${t.g}, ${t.b})`)}(this._rgb):void 0}hexString(){return this._valid?function Yye(t){var n=(t=>_v(t.r)&&_v(t.g)&&_v(t.b)&&_v(t.a))(t)?$ye:Wye;return t?"#"+n(t.r)+n(t.g)+n(t.b)+((t,n)=>t<255?n(t):"")(t.a,n):void 0}(this._rgb):void 0}hslString(){return this._valid?function oCe(t){if(!t)return;const n=Ik(t),e=n[0],i=vV(n[1]),o=vV(n[2]);return t.a<255?`hsla(${e}, ${i}%, ${o}%, ${Ns(t.a)})`:`hsl(${e}, ${i}%, ${o}%)`}(this._rgb):void 0}mix(n,e){if(n){const i=this.rgb,o=n.rgb;let r;const s=e===r?.5:e,a=2*s-1,l=i.a-o.a,c=((a*l===-1?a:(a+l)/(1+a*l))+1)/2;r=1-c,i.r=255&c*i.r+r*o.r+.5,i.g=255&c*i.g+r*o.g+.5,i.b=255&c*i.b+r*o.b+.5,i.a=s*i.a+(1-s)*o.a,this.rgb=i}return this}interpolate(n,e){return n&&(this._rgb=function dCe(t,n,e){const i=Cu(Ns(t.r)),o=Cu(Ns(t.g)),r=Cu(Ns(t.b));return{r:Oa(Rk(i+e*(Cu(Ns(n.r))-i))),g:Oa(Rk(o+e*(Cu(Ns(n.g))-o))),b:Oa(Rk(r+e*(Cu(Ns(n.b))-r))),a:t.a+e*(n.a-t.a)}}(this._rgb,n._rgb,e)),this}clone(){return new wu(this.rgb)}alpha(n){return this._rgb.a=Oa(n),this}clearer(n){return this._rgb.a*=1-n,this}greyscale(){const n=this._rgb,e=yu(.3*n.r+.59*n.g+.11*n.b);return n.r=n.g=n.b=e,this}opaquer(n){return this._rgb.a*=1+n,this}negate(){const n=this._rgb;return n.r=255-n.r,n.g=255-n.g,n.b=255-n.b,this}lighten(n){return vv(this._rgb,2,n),this}darken(n){return vv(this._rgb,2,-n),this}saturate(n){return vv(this._rgb,1,n),this}desaturate(n){return vv(this._rgb,1,-n),this}rotate(n){return function iCe(t,n){var e=Ik(t);e[0]=CV(e[0]+n),e=Ak(e),t.r=e[0],t.g=e[1],t.b=e[2]}(this._rgb,n),this}}const hCe=(()=>{let t=0;return()=>t++})();function dt(t){return null==t}function vn(t){if(Array.isArray&&Array.isArray(t))return!0;const n=Object.prototype.toString.call(t);return"[object"===n.slice(0,7)&&"Array]"===n.slice(-6)}function ft(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)}function jn(t){return("number"==typeof t||t instanceof Number)&&isFinite(+t)}function Oo(t,n){return jn(t)?t:n}function Ge(t,n){return typeof t>"u"?n:t}function ln(t,n,e){if(t&&"function"==typeof t.call)return t.apply(e,n)}function Vt(t,n,e,i){let o,r,s;if(vn(t))if(r=t.length,i)for(o=r-1;o>=0;o--)n.call(e,t[o],o);else for(o=0;ot,x:t=>t.x,y:t=>t.y};function Aa(t,n){return(TV[n]||(TV[n]=function _Ce(t){const n=function gCe(t){const n=t.split("."),e=[];let i="";for(const o of n)i+=o,i.endsWith("\\")?i=i.slice(0,-1)+".":(e.push(i),i="");return e}(t);return e=>{for(const i of n){if(""===i)break;e=e&&e[i]}return e}}(n)))(t)}function Fk(t){return t.charAt(0).toUpperCase()+t.slice(1)}const cp=t=>typeof t<"u",Ra=t=>"function"==typeof t,EV=(t,n)=>{if(t.size!==n.size)return!1;for(const e of t)if(!n.has(e))return!1;return!0},Mt=Math.PI,yn=2*Mt,vCe=yn+Mt,wv=Number.POSITIVE_INFINITY,yCe=Mt/180,Xn=Mt/2,pc=Mt/4,PV=2*Mt/3,Fa=Math.log10,ts=Math.sign;function dp(t,n,e){return Math.abs(t-n)l&&c=Math.min(n,e)-i&&t<=Math.max(n,e)+i}function Bk(t,n,e){e=e||(s=>t[s]1;)r=o+i>>1,e(r)?o=r:i=r;return{lo:o,hi:i}}const Vs=(t,n,e,i)=>Bk(t,e,i?o=>{const r=t[o][n];return rt[o][n]Bk(t,e,i=>t[i][n]>=e),FV=["push","pop","shift","splice","unshift"];function NV(t,n){const e=t._chartjs;if(!e)return;const i=e.listeners,o=i.indexOf(n);-1!==o&&i.splice(o,1),!(i.length>0)&&(FV.forEach(r=>{delete t[r]}),delete t._chartjs)}const BV=typeof window>"u"?function(t){return t()}:window.requestAnimationFrame;function VV(t,n){let e=[],i=!1;return function(...o){e=o,i||(i=!0,BV.call(window,()=>{i=!1,t.apply(n,e)}))}}const qi=(t,n,e)=>"start"===t?n:"end"===t?e:(n+e)/2;const xv=t=>0===t||1===t,UV=(t,n,e)=>-Math.pow(2,10*(t-=1))*Math.sin((t-n)*yn/e),zV=(t,n,e)=>Math.pow(2,-10*t)*Math.sin((t-n)*yn/e)+1,hp={linear:t=>t,easeInQuad:t=>t*t,easeOutQuad:t=>-t*(t-2),easeInOutQuad:t=>(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1),easeInCubic:t=>t*t*t,easeOutCubic:t=>(t-=1)*t*t+1,easeInOutCubic:t=>(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2),easeInQuart:t=>t*t*t*t,easeOutQuart:t=>-((t-=1)*t*t*t-1),easeInOutQuart:t=>(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2),easeInQuint:t=>t*t*t*t*t,easeOutQuint:t=>(t-=1)*t*t*t*t+1,easeInOutQuint:t=>(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2),easeInSine:t=>1-Math.cos(t*Xn),easeOutSine:t=>Math.sin(t*Xn),easeInOutSine:t=>-.5*(Math.cos(Mt*t)-1),easeInExpo:t=>0===t?0:Math.pow(2,10*(t-1)),easeOutExpo:t=>1===t?1:1-Math.pow(2,-10*t),easeInOutExpo:t=>xv(t)?t:t<.5?.5*Math.pow(2,10*(2*t-1)):.5*(2-Math.pow(2,-10*(2*t-1))),easeInCirc:t=>t>=1?t:-(Math.sqrt(1-t*t)-1),easeOutCirc:t=>Math.sqrt(1-(t-=1)*t),easeInOutCirc:t=>(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1),easeInElastic:t=>xv(t)?t:UV(t,.075,.3),easeOutElastic:t=>xv(t)?t:zV(t,.075,.3),easeInOutElastic:t=>xv(t)?t:t<.5?.5*UV(2*t,.1125,.45):.5+.5*zV(2*t-1,.1125,.45),easeInBack:t=>t*t*(2.70158*t-1.70158),easeOutBack:t=>(t-=1)*t*(2.70158*t+1.70158)+1,easeInOutBack(t){let n=1.70158;return(t/=.5)<1?t*t*((1+(n*=1.525))*t-n)*.5:.5*((t-=2)*t*((1+(n*=1.525))*t+n)+2)},easeInBounce:t=>1-hp.easeOutBounce(1-t),easeOutBounce:t=>t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375,easeInOutBounce:t=>t<.5?.5*hp.easeInBounce(2*t):.5*hp.easeOutBounce(2*t-1)+.5};function Hk(t){if(t&&"object"==typeof t){const n=t.toString();return"[object CanvasPattern]"===n||"[object CanvasGradient]"===n}return!1}function $V(t){return Hk(t)?t:new wu(t)}function jk(t){return Hk(t)?t:new wu(t).saturate(.5).darken(.1).hexString()}const ICe=["x","y","borderWidth","radius","tension"],OCe=["color","borderColor","backgroundColor"],WV=new Map;function fp(t,n,e){return function FCe(t,n){n=n||{};const e=t+JSON.stringify(n);let i=WV.get(e);return i||(i=new Intl.NumberFormat(t,n),WV.set(e,i)),i}(n,e).format(t)}const GV={values:t=>vn(t)?t:""+t,numeric(t,n,e){if(0===t)return"0";const i=this.chart.options.locale;let o,r=t;if(e.length>1){const c=Math.max(Math.abs(e[0].value),Math.abs(e[e.length-1].value));(c<1e-4||c>1e15)&&(o="scientific"),r=function NCe(t,n){let e=n.length>3?n[2].value-n[1].value:n[1].value-n[0].value;return Math.abs(e)>=1&&t!==Math.floor(t)&&(e=t-Math.floor(t)),e}(t,e)}const s=Fa(Math.abs(r)),a=isNaN(s)?1:Math.max(Math.min(-1*Math.floor(s),20),0),l={notation:o,minimumFractionDigits:a,maximumFractionDigits:a};return Object.assign(l,this.options.ticks.format),fp(t,i,l)},logarithmic(t,n,e){if(0===t)return"0";const i=e[n].significand||t/Math.pow(10,Math.floor(Fa(t)));return[1,2,3,5,10,15].includes(i)||n>.8*e.length?GV.numeric.call(this,t,n,e):""}};var Sv={formatters:GV};const mc=Object.create(null),Uk=Object.create(null);function pp(t,n){if(!n)return t;const e=n.split(".");for(let i=0,o=e.length;ii.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(i,o)=>jk(o.backgroundColor),this.hoverBorderColor=(i,o)=>jk(o.borderColor),this.hoverColor=(i,o)=>jk(o.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(n),this.apply(e)}set(n,e){return zk(this,n,e)}get(n){return pp(this,n)}describe(n,e){return zk(Uk,n,e)}override(n,e){return zk(mc,n,e)}route(n,e,i,o){const r=pp(this,n),s=pp(this,i),a="_"+e;Object.defineProperties(r,{[a]:{value:r[e],writable:!0},[e]:{enumerable:!0,get(){const l=this[a],c=s[o];return ft(l)?Object.assign({},c,l):Ge(l,c)},set(l){this[a]=l}}})}apply(n){n.forEach(e=>e(this))}}var kn=new BCe({_scriptable:t=>!t.startsWith("on"),_indexable:t=>"events"!==t,hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}},[function ACe(t){t.set("animation",{delay:void 0,duration:1e3,easing:"easeOutQuart",fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),t.describe("animation",{_fallback:!1,_indexable:!1,_scriptable:n=>"onProgress"!==n&&"onComplete"!==n&&"fn"!==n}),t.set("animations",{colors:{type:"color",properties:OCe},numbers:{type:"number",properties:ICe}}),t.describe("animations",{_fallback:"animation"}),t.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:n=>0|n}}}})},function RCe(t){t.set("layout",{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})},function LCe(t){t.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:"ticks",clip:!0,grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(n,e)=>e.lineWidth,tickColor:(n,e)=>e.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:Sv.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}}),t.route("scale.ticks","color","","color"),t.route("scale.grid","color","","borderColor"),t.route("scale.border","color","","borderColor"),t.route("scale.title","color","","color"),t.describe("scale",{_fallback:!1,_scriptable:n=>!n.startsWith("before")&&!n.startsWith("after")&&"callback"!==n&&"parser"!==n,_indexable:n=>"borderDash"!==n&&"tickBorderDash"!==n&&"dash"!==n}),t.describe("scales",{_fallback:"scale"}),t.describe("scale.ticks",{_scriptable:n=>"backdropPadding"!==n&&"callback"!==n,_indexable:n=>"backdropPadding"!==n})}]);function kv(t,n,e,i,o){let r=n[o];return r||(r=n[o]=t.measureText(o).width,e.push(o)),r>i&&(i=r),i}function gc(t,n,e){const i=t.currentDevicePixelRatio,o=0!==e?Math.max(e/2,.5):0;return Math.round((n-o)*i)/i+o}function qV(t,n){!n&&!t||((n=n||t.getContext("2d")).save(),n.resetTransform(),n.clearRect(0,0,t.width,t.height),n.restore())}function $k(t,n,e,i){!function KV(t,n,e,i,o){let r,s,a,l,c,f,m,g;const _=n.pointStyle,w=n.rotation,k=n.radius;let T=(w||0)*yCe;if(_&&"object"==typeof _&&(r=_.toString(),"[object HTMLImageElement]"===r||"[object HTMLCanvasElement]"===r))return t.save(),t.translate(e,i),t.rotate(T),t.drawImage(_,-_.width/2,-_.height/2,_.width,_.height),void t.restore();if(!(isNaN(k)||k<=0)){switch(t.beginPath(),_){default:o?t.ellipse(e,i,o/2,k,0,0,yn):t.arc(e,i,k,0,yn),t.closePath();break;case"triangle":f=o?o/2:k,t.moveTo(e+Math.sin(T)*f,i-Math.cos(T)*k),T+=PV,t.lineTo(e+Math.sin(T)*f,i-Math.cos(T)*k),T+=PV,t.lineTo(e+Math.sin(T)*f,i-Math.cos(T)*k),t.closePath();break;case"rectRounded":c=.516*k,l=k-c,s=Math.cos(T+pc)*l,m=Math.cos(T+pc)*(o?o/2-c:l),a=Math.sin(T+pc)*l,g=Math.sin(T+pc)*(o?o/2-c:l),t.arc(e-m,i-a,c,T-Mt,T-Xn),t.arc(e+g,i-s,c,T-Xn,T),t.arc(e+m,i+a,c,T,T+Xn),t.arc(e-g,i+s,c,T+Xn,T+Mt),t.closePath();break;case"rect":if(!w){l=Math.SQRT1_2*k,f=o?o/2:l,t.rect(e-f,i-l,2*f,2*l);break}T+=pc;case"rectRot":m=Math.cos(T)*(o?o/2:k),s=Math.cos(T)*k,a=Math.sin(T)*k,g=Math.sin(T)*(o?o/2:k),t.moveTo(e-m,i-a),t.lineTo(e+g,i-s),t.lineTo(e+m,i+a),t.lineTo(e-g,i+s),t.closePath();break;case"crossRot":T+=pc;case"cross":m=Math.cos(T)*(o?o/2:k),s=Math.cos(T)*k,a=Math.sin(T)*k,g=Math.sin(T)*(o?o/2:k),t.moveTo(e-m,i-a),t.lineTo(e+m,i+a),t.moveTo(e+g,i-s),t.lineTo(e-g,i+s);break;case"star":m=Math.cos(T)*(o?o/2:k),s=Math.cos(T)*k,a=Math.sin(T)*k,g=Math.sin(T)*(o?o/2:k),t.moveTo(e-m,i-a),t.lineTo(e+m,i+a),t.moveTo(e+g,i-s),t.lineTo(e-g,i+s),T+=pc,m=Math.cos(T)*(o?o/2:k),s=Math.cos(T)*k,a=Math.sin(T)*k,g=Math.sin(T)*(o?o/2:k),t.moveTo(e-m,i-a),t.lineTo(e+m,i+a),t.moveTo(e+g,i-s),t.lineTo(e-g,i+s);break;case"line":s=o?o/2:Math.cos(T)*k,a=Math.sin(T)*k,t.moveTo(e-s,i-a),t.lineTo(e+s,i+a);break;case"dash":t.moveTo(e,i),t.lineTo(e+Math.cos(T)*(o?o/2:k),i+Math.sin(T)*k);break;case!1:t.closePath()}t.fill(),n.borderWidth>0&&t.stroke()}}(t,n,e,i,null)}function Hs(t,n,e){return e=e||.5,!n||t&&t.x>n.left-e&&t.xn.top-e&&t.y0&&""!==r.strokeColor;let l,c;for(t.save(),t.font=o.string,function zCe(t,n){n.translation&&t.translate(n.translation[0],n.translation[1]),dt(n.rotation)||t.rotate(n.rotation),n.color&&(t.fillStyle=n.color),n.textAlign&&(t.textAlign=n.textAlign),n.textBaseline&&(t.textBaseline=n.textBaseline)}(t,r),l=0;l+t||0;function YV(t){return function Wk(t,n){const e={},i=ft(n),o=i?Object.keys(n):n,r=ft(t)?i?s=>Ge(t[s],t[n[s]]):s=>t[s]:()=>t;for(const s of o)e[s]=YCe(r(s));return e}(t,{top:"y",right:"x",bottom:"y",left:"x"})}function Ki(t){const n=YV(t);return n.width=n.left+n.right,n.height=n.top+n.bottom,n}function fi(t,n){let e=Ge((t=t||{}).size,(n=n||kn.font).size);"string"==typeof e&&(e=parseInt(e,10));let i=Ge(t.style,n.style);i&&!(""+i).match(qCe)&&(console.warn('Invalid font style specified: "'+i+'"'),i=void 0);const o={family:Ge(t.family,n.family),lineHeight:KCe(Ge(t.lineHeight,n.lineHeight),e),size:e,style:i,weight:Ge(t.weight,n.weight),string:""};return o.string=function VCe(t){return!t||dt(t.size)||dt(t.family)?null:(t.style?t.style+" ":"")+(t.weight?t.weight+" ":"")+t.size+"px "+t.family}(o),o}function gp(t,n,e,i){let r,s,a,o=!0;for(r=0,s=t.length;rt[0]){const r=e||t;typeof i>"u"&&(i=e8("_fallback",t));const s={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:t,_rootScopes:r,_fallback:i,_getTarget:o,override:a=>Gk([a,...t],n,r,i)};return new Proxy(s,{deleteProperty:(a,l)=>(delete a[l],delete a._keys,delete t[0][l],!0),get:(a,l)=>ZV(a,l,()=>function o1e(t,n,e,i){let o;for(const r of n)if(o=e8(ZCe(r,t),e),typeof o<"u")return qk(t,o)?Kk(e,i,t,o):o}(l,n,t,a)),getOwnPropertyDescriptor:(a,l)=>Reflect.getOwnPropertyDescriptor(a._scopes[0],l),getPrototypeOf:()=>Reflect.getPrototypeOf(t[0]),has:(a,l)=>t8(a).includes(l),ownKeys:a=>t8(a),set(a,l,c){const f=a._storage||(a._storage=o());return a[l]=f[l]=c,delete a._keys,!0}})}function Su(t,n,e,i){const o={_cacheable:!1,_proxy:t,_context:n,_subProxy:e,_stack:new Set,_descriptors:XV(t,i),setContext:r=>Su(t,r,e,i),override:r=>Su(t.override(r),n,e,i)};return new Proxy(o,{deleteProperty:(r,s)=>(delete r[s],delete t[s],!0),get:(r,s,a)=>ZV(r,s,()=>function QCe(t,n,e){const{_proxy:i,_context:o,_subProxy:r,_descriptors:s}=t;let a=i[n];return Ra(a)&&s.isScriptable(n)&&(a=function JCe(t,n,e,i){const{_proxy:o,_context:r,_subProxy:s,_stack:a}=e;if(a.has(t))throw new Error("Recursion detected: "+Array.from(a).join("->")+"->"+t);a.add(t);let l=n(r,s||i);return a.delete(t),qk(t,l)&&(l=Kk(o._scopes,o,t,l)),l}(n,a,t,e)),vn(a)&&a.length&&(a=function e1e(t,n,e,i){const{_proxy:o,_context:r,_subProxy:s,_descriptors:a}=e;if(typeof r.index<"u"&&i(t))return n[r.index%n.length];if(ft(n[0])){const l=n,c=o._scopes.filter(f=>f!==l);n=[];for(const f of l){const m=Kk(c,o,t,f);n.push(Su(m,r,s&&s[t],a))}}return n}(n,a,t,s.isIndexable)),qk(n,a)&&(a=Su(a,o,r&&r[n],s)),a}(r,s,a)),getOwnPropertyDescriptor:(r,s)=>r._descriptors.allKeys?Reflect.has(t,s)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(t,s),getPrototypeOf:()=>Reflect.getPrototypeOf(t),has:(r,s)=>Reflect.has(t,s),ownKeys:()=>Reflect.ownKeys(t),set:(r,s,a)=>(t[s]=a,delete r[s],!0)})}function XV(t,n={scriptable:!0,indexable:!0}){const{_scriptable:e=n.scriptable,_indexable:i=n.indexable,_allKeys:o=n.allKeys}=t;return{allKeys:o,scriptable:e,indexable:i,isScriptable:Ra(e)?e:()=>e,isIndexable:Ra(i)?i:()=>i}}const ZCe=(t,n)=>t?t+Fk(n):n,qk=(t,n)=>ft(n)&&"adapters"!==t&&(null===Object.getPrototypeOf(n)||n.constructor===Object);function ZV(t,n,e){if(Object.prototype.hasOwnProperty.call(t,n)||"constructor"===n)return t[n];const i=e();return t[n]=i,i}function QV(t,n,e){return Ra(t)?t(n,e):t}const t1e=(t,n)=>!0===t?n:"string"==typeof t?Aa(n,t):void 0;function n1e(t,n,e,i,o){for(const r of n){const s=t1e(e,r);if(s){t.add(s);const a=QV(s._fallback,e,o);if(typeof a<"u"&&a!==e&&a!==i)return a}else if(!1===s&&typeof i<"u"&&e!==i)return null}return!1}function Kk(t,n,e,i){const o=n._rootScopes,r=QV(n._fallback,e,i),s=[...t,...o],a=new Set;a.add(i);let l=JV(a,s,e,r||e,i);return!(null===l||typeof r<"u"&&r!==e&&(l=JV(a,s,r,l,i),null===l))&&Gk(Array.from(a),[""],o,r,()=>function i1e(t,n,e){const i=t._getTarget();n in i||(i[n]={});const o=i[n];return vn(o)&&ft(e)?e:o||{}}(n,e,i))}function JV(t,n,e,i,o){for(;e;)e=n1e(t,n,e,i,o);return e}function e8(t,n){for(const e of n){if(!e)continue;const i=e[t];if(typeof i<"u")return i}}function t8(t){let n=t._keys;return n||(n=t._keys=function r1e(t){const n=new Set;for(const e of t)for(const i of Object.keys(e).filter(o=>!o.startsWith("_")))n.add(i);return Array.from(n)}(t._scopes)),n}const s1e=Number.EPSILON||1e-14,ku=(t,n)=>n"x"===t?"y":"x";function a1e(t,n,e,i){const o=t.skip?n:t,r=n,s=e.skip?n:e,a=Lk(r,o),l=Lk(s,r);let c=a/(a+l),f=l/(a+l);c=isNaN(c)?0:c,f=isNaN(f)?0:f;const m=i*c,g=i*f;return{previous:{x:r.x-m*(s.x-o.x),y:r.y-m*(s.y-o.y)},next:{x:r.x+g*(s.x-o.x),y:r.y+g*(s.y-o.y)}}}function Tv(t,n,e){return Math.max(Math.min(t,e),n)}function h1e(t,n,e,i,o){let r,s,a,l;if(n.spanGaps&&(t=t.filter(c=>!c.skip)),"monotone"===n.cubicInterpolationMode)!function d1e(t,n="x"){const e=i8(n),i=t.length,o=Array(i).fill(0),r=Array(i);let s,a,l,c=ku(t,0);for(s=0;st.ownerDocument.defaultView.getComputedStyle(t,null),p1e=["top","right","bottom","left"];function vc(t,n,e){const i={};e=e?"-"+e:"";for(let o=0;o<4;o++){const r=p1e[o];i[r]=parseFloat(t[n+"-"+r+e])||0}return i.width=i.left+i.right,i.height=i.top+i.bottom,i}function yc(t,n){if("native"in t)return t;const{canvas:e,currentDevicePixelRatio:i}=n,o=Pv(e),r="border-box"===o.boxSizing,s=vc(o,"padding"),a=vc(o,"border","width"),{x:l,y:c,box:f}=function g1e(t,n){const e=t.touches,i=e&&e.length?e[0]:t,{offsetX:o,offsetY:r}=i;let a,l,s=!1;if(((t,n,e)=>(t>0||n>0)&&(!e||!e.shadowRoot))(o,r,t.target))a=o,l=r;else{const c=n.getBoundingClientRect();a=i.clientX-c.left,l=i.clientY-c.top,s=!0}return{x:a,y:l,box:s}}(t,e),m=s.left+(f&&a.left),g=s.top+(f&&a.top);let{width:_,height:w}=n;return r&&(_-=s.width+a.width,w-=s.height+a.height),{x:Math.round((l-m)/_*e.width/i),y:Math.round((c-g)/w*e.height/i)}}const La=t=>Math.round(10*t)/10;function o8(t,n,e){const i=n||1,o=La(t.height*i),r=La(t.width*i);t.height=La(t.height),t.width=La(t.width);const s=t.canvas;return s.style&&(e||!s.style.height&&!s.style.width)&&(s.style.height=`${t.height}px`,s.style.width=`${t.width}px`),(t.currentDevicePixelRatio!==i||s.height!==o||s.width!==r)&&(t.currentDevicePixelRatio=i,s.height=o,s.width=r,t.ctx.setTransform(i,0,0,i,0,0),!0)}const v1e=function(){let t=!1;try{const n={get passive(){return t=!0,!1}};Yk()&&(window.addEventListener("test",null,n),window.removeEventListener("test",null,n))}catch{}return t}();function r8(t,n){const e=function f1e(t,n){return Pv(t).getPropertyValue(n)}(t,n),i=e&&e.match(/^(\d+)(\.\d+)?px$/);return i?+i[1]:void 0}function Cc(t,n,e,i){return{x:t.x+e*(n.x-t.x),y:t.y+e*(n.y-t.y)}}function y1e(t,n,e,i){return{x:t.x+e*(n.x-t.x),y:"middle"===i?e<.5?t.y:n.y:"after"===i?e<1?t.y:n.y:e>0?n.y:t.y}}function C1e(t,n,e,i){const o={x:t.cp2x,y:t.cp2y},r={x:n.cp1x,y:n.cp1y},s=Cc(t,o,e),a=Cc(o,r,e),l=Cc(r,n,e),c=Cc(s,a,e),f=Cc(a,l,e);return Cc(c,f,e)}function l8(t){return"angle"===t?{between:up,compare:SCe,normalize:Gi}:{between:Bs,compare:(n,e)=>n-e,normalize:n=>n}}function c8({start:t,end:n,count:e,loop:i,style:o}){return{start:t%e,end:n%e,loop:i&&(n-t+1)%e==0,style:o}}function d8(t,n,e){if(!e)return[t];const{property:i,start:o,end:r}=e,s=n.length,{compare:a,between:l,normalize:c}=l8(i),{start:f,end:m,loop:g,style:_}=function S1e(t,n,e){const{property:i,start:o,end:r}=e,{between:s,normalize:a}=l8(i),l=n.length;let g,_,{start:c,end:f,loop:m}=t;if(m){for(c+=l,f+=l,g=0,_=l;g<_&&s(a(n[c%l][i]),o,r);++g)c--,f--;c%=l,f%=l}return fk||l(o,W,I)&&0!==a(o,W),ie=()=>!k||0===a(r,I)||l(r,W,I);for(let P=f,A=f;P<=m;++P)R=n[P%s],!R.skip&&(I=c(R[i]),I!==W&&(k=l(I,o,r),null===T&&ee()&&(T=0===a(I,o)?P:A),null!==T&&ie()&&(w.push(c8({start:T,end:P,loop:g,count:s,style:_})),T=null),A=P,W=I));return null!==T&&w.push(c8({start:T,end:m,loop:g,count:s,style:_})),w}function u8(t,n){const e=[],i=t.segments;for(let o=0;oa({chart:n,initial:e.initial,numSteps:s,currentStep:Math.min(i-e.start,s)}))}_refresh(){this._request||(this._running=!0,this._request=BV.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(n=Date.now()){let e=0;this._charts.forEach((i,o)=>{if(!i.running||!i.items.length)return;const r=i.items;let l,s=r.length-1,a=!1;for(;s>=0;--s)l=r[s],l._active?(l._total>i.duration&&(i.duration=l._total),l.tick(n),a=!0):(r[s]=r[r.length-1],r.pop());a&&(o.draw(),this._notify(o,i,n,"progress")),r.length||(i.running=!1,this._notify(o,i,n,"complete"),i.initial=!1),e+=r.length}),this._lastDate=n,0===e&&(this._running=!1)}_getAnims(n){const e=this._charts;let i=e.get(n);return i||(i={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},e.set(n,i)),i}listen(n,e,i){this._getAnims(n).listeners[e].push(i)}add(n,e){!e||!e.length||this._getAnims(n).items.push(...e)}has(n){return this._getAnims(n).items.length>0}start(n){const e=this._charts.get(n);e&&(e.running=!0,e.start=Date.now(),e.duration=e.items.reduce((i,o)=>Math.max(i,o._duration),0),this._refresh())}running(n){if(!this._running)return!1;const e=this._charts.get(n);return!(!e||!e.running||!e.items.length)}stop(n){const e=this._charts.get(n);if(!e||!e.items.length)return;const i=e.items;let o=i.length-1;for(;o>=0;--o)i[o].cancel();e.items=[],this._notify(n,e,Date.now(),"complete")}remove(n){return this._charts.delete(n)}}var js=new I1e;const m8="transparent",O1e={boolean:(t,n,e)=>e>.5?n:t,color(t,n,e){const i=$V(t||m8),o=i.valid&&$V(n||m8);return o&&o.valid?o.mix(i,e).hexString():n},number:(t,n,e)=>t+(n-t)*e};class A1e{constructor(n,e,i,o){const r=e[i];o=gp([n.to,o,r,n.from]);const s=gp([n.from,r,o]);this._active=!0,this._fn=n.fn||O1e[n.type||typeof s],this._easing=hp[n.easing]||hp.linear,this._start=Math.floor(Date.now()+(n.delay||0)),this._duration=this._total=Math.floor(n.duration),this._loop=!!n.loop,this._target=e,this._prop=i,this._from=s,this._to=o,this._promises=void 0}active(){return this._active}update(n,e,i){if(this._active){this._notify(!1);const o=this._target[this._prop],r=i-this._start,s=this._duration-r;this._start=i,this._duration=Math.floor(Math.max(s,n.duration)),this._total+=r,this._loop=!!n.loop,this._to=gp([n.to,e,o,n.from]),this._from=gp([n.from,o,e])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(n){const e=n-this._start,i=this._duration,o=this._prop,r=this._from,s=this._loop,a=this._to;let l;if(this._active=r!==a&&(s||e1?2-l:l,l=this._easing(Math.min(1,Math.max(0,l))),this._target[o]=this._fn(r,a,l))}wait(){const n=this._promises||(this._promises=[]);return new Promise((e,i)=>{n.push({res:e,rej:i})})}_notify(n){const e=n?"res":"rej",i=this._promises||[];for(let o=0;o{const r=n[o];if(!ft(r))return;const s={};for(const a of e)s[a]=r[a];(vn(r.properties)&&r.properties||[o]).forEach(a=>{(a===o||!i.has(a))&&i.set(a,s)})})}_animateOptions(n,e){const i=e.options,o=function F1e(t,n){if(!n)return;let e=t.options;if(e)return e.$shared&&(t.options=e=Object.assign({},e,{$shared:!1,$animations:{}})),e;t.options=n}(n,i);if(!o)return[];const r=this._createAnimations(o,i);return i.$shared&&function R1e(t,n){const e=[],i=Object.keys(n);for(let o=0;o{n.options=i},()=>{}),r}_createAnimations(n,e){const i=this._properties,o=[],r=n.$animations||(n.$animations={}),s=Object.keys(e),a=Date.now();let l;for(l=s.length-1;l>=0;--l){const c=s[l];if("$"===c.charAt(0))continue;if("options"===c){o.push(...this._animateOptions(n,e));continue}const f=e[c];let m=r[c];const g=i.get(c);if(m){if(g&&m.active()){m.update(g,f,a);continue}m.cancel()}g&&g.duration?(r[c]=m=new A1e(g,n,c,f),o.push(m)):n[c]=f}return o}update(n,e){if(0===this._properties.size)return void Object.assign(n,e);const i=this._createAnimations(n,e);return i.length?(js.add(this._chart,i),!0):void 0}}function _8(t,n){const e=t&&t.options||{},i=e.reverse,o=void 0===e.min?n:0,r=void 0===e.max?n:0;return{start:i?r:o,end:i?o:r}}function b8(t,n){const e=[],i=t._getSortedDatasetMetas(n);let o,r;for(o=0,r=i.length;o0||!e&&r<0)return o.index}return null}function C8(t,n){const{chart:e,_cachedMeta:i}=t,o=e._stacks||(e._stacks={}),{iScale:r,vScale:s,index:a}=i,l=r.axis,c=s.axis,f=function V1e(t,n,e){return`${t.id}.${n.id}.${e.stack||e.type}`}(r,s,i),m=n.length;let g;for(let _=0;_e[i].axis===n).shift()}function _p(t,n){const e=t.controller.index,i=t.vScale&&t.vScale.axis;if(i){n=n||t._parsed;for(const o of n){const r=o._stacks;if(!r||void 0===r[i]||void 0===r[i][e])return;delete r[i][e],void 0!==r[i]._visualValues&&void 0!==r[i]._visualValues[e]&&delete r[i]._visualValues[e]}}}const Jk=t=>"reset"===t||"none"===t,w8=(t,n)=>n?t:Object.assign({},t);let Ba=(()=>class t{static defaults={};static datasetElementType=null;static dataElementType=null;constructor(e,i){this.chart=e,this._ctx=e.ctx,this.index=i,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const e=this._cachedMeta;this.configure(),this.linkScales(),e._stacked=Zk(e.vScale,e),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(e){this.index!==e&&_p(this._cachedMeta),this.index=e}linkScales(){const e=this.chart,i=this._cachedMeta,o=this.getDataset(),r=(g,_,w,k)=>"x"===g?_:"r"===g?k:w,s=i.xAxisID=Ge(o.xAxisID,Qk(e,"x")),a=i.yAxisID=Ge(o.yAxisID,Qk(e,"y")),l=i.rAxisID=Ge(o.rAxisID,Qk(e,"r")),c=i.indexAxis,f=i.iAxisID=r(c,s,a,l),m=i.vAxisID=r(c,a,s,l);i.xScale=this.getScaleForId(s),i.yScale=this.getScaleForId(a),i.rScale=this.getScaleForId(l),i.iScale=this.getScaleForId(f),i.vScale=this.getScaleForId(m)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(e){return this.chart.scales[e]}_getOtherScale(e){const i=this._cachedMeta;return e===i.iScale?i.vScale:i.iScale}reset(){this._update("reset")}_destroy(){const e=this._cachedMeta;this._data&&NV(this._data,this),e._stacked&&_p(e)}_dataCheck(){const e=this.getDataset(),i=e.data||(e.data=[]),o=this._data;if(ft(i))this._data=function B1e(t,n){const{iScale:e,vScale:i}=n,o="x"===e.axis?"x":"y",r="x"===i.axis?"x":"y",s=Object.keys(t),a=new Array(s.length);let l,c,f;for(l=0,c=s.length;l{const i="_onData"+Fk(e),o=t[e];Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value(...r){const s=o.apply(this,r);return t._chartjs.listeners.forEach(a=>{"function"==typeof a[i]&&a[i](...r)}),s}})}))}(i,this),this._syncList=[],this._data=i}}addElements(){const e=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(e.dataset=new this.datasetElementType)}buildOrUpdateElements(e){const i=this._cachedMeta,o=this.getDataset();let r=!1;this._dataCheck();const s=i._stacked;i._stacked=Zk(i.vScale,i),i.stack!==o.stack&&(r=!0,_p(i),i.stack=o.stack),this._resyncElements(e),(r||s!==i._stacked)&&(C8(this,i._parsed),i._stacked=Zk(i.vScale,i))}configure(){const e=this.chart.config,i=e.datasetScopeKeys(this._type),o=e.getOptionScopes(this.getDataset(),i,!0);this.options=e.createResolver(o,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(e,i){const{_cachedMeta:o,_data:r}=this,{iScale:s,_stacked:a}=o,l=s.axis;let m,g,_,c=0===e&&i===r.length||o._sorted,f=e>0&&o._parsed[e-1];if(!1===this._parsing)o._parsed=r,o._sorted=!0,_=r;else{_=vn(r[e])?this.parseArrayData(o,r,e,i):ft(r[e])?this.parseObjectData(o,r,e,i):this.parsePrimitiveData(o,r,e,i);const w=()=>null===g[l]||f&&g[l]t&&!n.hidden&&n._stacked&&{keys:b8(this.chart,!0),values:null})(i,o),f={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY},{min:m,max:g}=function H1e(t){const{min:n,max:e,minDefined:i,maxDefined:o}=t.getUserBounds();return{min:i?n:Number.NEGATIVE_INFINITY,max:o?e:Number.POSITIVE_INFINITY}}(l);let _,w;function k(){w=r[_];const T=w[l.axis];return!jn(w[e.axis])||m>T||g=0;--_)if(!k()){this.updateRangeFromParsed(f,e,w,c);break}return f}getAllParsedValues(e){const i=this._cachedMeta._parsed,o=[];let r,s,a;for(r=0,s=i.length;r=0&&ethis.getContext(o,r,i),g);return T.$shared&&(T.$shared=c,s[a]=Object.freeze(w8(T,c))),T}_resolveAnimations(e,i,o){const r=this.chart,s=this._cachedDataOpts,a=`animation-${i}`,l=s[a];if(l)return l;let c;if(!1!==r.options.animation){const m=this.chart.config,g=m.datasetAnimationScopeKeys(this._type,i),_=m.getOptionScopes(this.getDataset(),g);c=m.createResolver(_,this.getContext(e,o,i))}const f=new g8(r,c&&c.animations);return c&&c._cacheable&&(s[a]=Object.freeze(f)),f}getSharedOptions(e){if(e.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},e))}includeOptions(e,i){return!i||Jk(e)||this.chart._animationsDisabled}_getSharedOptions(e,i){const o=this.resolveDataElementOptions(e,i),r=this._sharedOptions,s=this.getSharedOptions(o),a=this.includeOptions(i,s)||s!==r;return this.updateSharedOptions(s,i,o),{sharedOptions:s,includeOptions:a}}updateElement(e,i,o,r){Jk(r)?Object.assign(e,o):this._resolveAnimations(i,r).update(e,o)}updateSharedOptions(e,i,o){e&&!Jk(i)&&this._resolveAnimations(void 0,i).update(e,o)}_setStyle(e,i,o,r){e.active=r;const s=this.getStyle(i,r);this._resolveAnimations(i,o,r).update(e,{options:!r&&this.getSharedOptions(s)||s})}removeHoverStyle(e,i,o){this._setStyle(e,o,"active",!1)}setHoverStyle(e,i,o){this._setStyle(e,o,"active",!0)}_removeDatasetHoverStyle(){const e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!1)}_setDatasetHoverStyle(){const e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!0)}_resyncElements(e){const i=this._data,o=this._cachedMeta.data;for(const[l,c,f]of this._syncList)this[l](c,f);this._syncList=[];const r=o.length,s=i.length,a=Math.min(s,r);a&&this.parse(0,a),s>r?this._insertElements(r,s-r,e):s{for(f.length+=i,l=f.length-1;l>=a;l--)f[l]=f[l-i]};for(c(s),l=e;lclass t extends Ba{static id="line";static defaults={datasetElementType:"line",dataElementType:"point",showLine:!0,spanGaps:!1};static overrides={scales:{_index_:{type:"category"},_value_:{type:"linear"}}};initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(e){const i=this._cachedMeta,{dataset:o,data:r=[],_dataset:s}=i,a=this.chart._animationsDisabled;let{start:l,count:c}=function HV(t,n,e){const i=n.length;let o=0,r=i;if(t._sorted){const{iScale:s,vScale:a,_parsed:l}=t,c=t.dataset&&t.dataset.options?t.dataset.options.spanGaps:null,f=s.axis,{min:m,max:g,minDefined:_,maxDefined:w}=s.getUserBounds();if(_){if(o=Math.min(Vs(l,f,m).lo,e?i:Vs(n,f,s.getPixelForValue(m)).lo),c){const k=l.slice(0,o+1).reverse().findIndex(T=>!dt(T[a.axis]));o-=Math.max(0,k)}o=Si(o,0,i-1)}if(w){let k=Math.max(Vs(l,s.axis,g,!0).hi+1,e?0:Vs(n,f,s.getPixelForValue(g),!0).hi+1);if(c){const T=l.slice(k-1).findIndex(I=>!dt(I[a.axis]));k+=Math.max(0,T)}r=Si(k,o,i)-o}else r=i-o}return{start:o,count:r}}(i,r,a);this._drawStart=l,this._drawCount=c,function jV(t){const{xScale:n,yScale:e,_scaleRanges:i}=t,o={xmin:n.min,xmax:n.max,ymin:e.min,ymax:e.max};if(!i)return t._scaleRanges=o,!0;const r=i.xmin!==n.min||i.xmax!==n.max||i.ymin!==e.min||i.ymax!==e.max;return Object.assign(i,o),r}(i)&&(l=0,c=r.length),o._chart=this.chart,o._datasetIndex=this.index,o._decimated=!!s._decimated,o.points=r;const f=this.resolveDatasetElementOptions(e);this.options.showLine||(f.borderWidth=0),f.segment=this.options.segment,this.updateElement(o,void 0,{animated:!a,options:f},e),this.updateElements(r,l,c,e)}updateElements(e,i,o,r){const s="reset"===r,{iScale:a,vScale:l,_stacked:c,_dataset:f}=this._cachedMeta,{sharedOptions:m,includeOptions:g}=this._getSharedOptions(i,r),_=a.axis,w=l.axis,{spanGaps:k,segment:T}=this.options,I=xu(k)?k:Number.POSITIVE_INFINITY,R=this.chart._animationsDisabled||s||"none"===r,W=i+o,Y=e.length;let K=i>0&&this.getParsed(i-1);for(let ee=0;ee=W){P.skip=!0;continue}const A=this.getParsed(ee),L=dt(A[w]),$=P[_]=a.getPixelForValue(A[_],ee),H=P[w]=s||L?l.getBasePixel():l.getPixelForValue(c?this.applyStack(l,A,c):A[w],ee);P.skip=isNaN($)||isNaN(H)||L,P.stop=ee>0&&Math.abs(A[_]-K[_])>I,T&&(P.parsed=A,P.raw=f.data[ee]),g&&(P.options=m||this.resolveDataElementOptions(ee,ie.active?"active":r)),R||this.updateElement(ie,ee,P,r),K=A}}getMaxOverflow(){const e=this._cachedMeta,i=e.dataset,o=i.options&&i.options.borderWidth||0,r=e.data||[];if(!r.length)return o;const s=r[0].size(this.resolveDataElementOptions(0)),a=r[r.length-1].size(this.resolveDataElementOptions(r.length-1));return Math.max(o,s,a)/2}draw(){const e=this._cachedMeta;e.dataset.updateControlPoints(this.chart.chartArea,e.iScale.axis),super.draw()}})();function s0e(t,n,e,i){const{controller:o,data:r,_sorted:s}=t,a=o._cachedMeta.iScale,l=t.dataset&&t.dataset.options?t.dataset.options.spanGaps:null;if(a&&n===a.axis&&"r"!==n&&s&&r.length){const c=a._reversePixels?DCe:Vs;if(!i){const f=c(r,n,e);if(l){const{vScale:m}=o._cachedMeta,{_parsed:g}=t,_=g.slice(0,f.lo+1).reverse().findIndex(k=>!dt(k[m.axis]));f.lo-=Math.max(0,_);const w=g.slice(f.hi).findIndex(k=>!dt(k[m.axis]));f.hi+=Math.max(0,w)}return f}if(o._sharedOptions){const f=r[0],m="function"==typeof f.getRange&&f.getRange(n);if(m){const g=c(r,n,e-m),_=c(r,n,e+m);return{lo:g.lo,hi:_.hi}}}}return{lo:0,hi:r.length-1}}function bp(t,n,e,i,o){const r=t.getSortedVisibleDatasetMetas(),s=e[n];for(let a=0,l=r.length;a{l[s]&&l[s](n[e],o)&&(r.push({element:l,datasetIndex:c,index:f}),a=a||l.inRange(n.x,n.y,o))}),i&&!a?[]:r}var d0e={evaluateInteractionItems:bp,modes:{index(t,n,e,i){const o=yc(n,t),r=e.axis||"x",s=e.includeInvisible||!1,a=e.intersect?iD(t,o,r,i,s):oD(t,o,r,!1,i,s),l=[];return a.length?(t.getSortedVisibleDatasetMetas().forEach(c=>{const f=a[0].index,m=c.data[f];m&&!m.skip&&l.push({element:m,datasetIndex:c.index,index:f})}),l):[]},dataset(t,n,e,i){const o=yc(n,t),r=e.axis||"xy",s=e.includeInvisible||!1;let a=e.intersect?iD(t,o,r,i,s):oD(t,o,r,!1,i,s);if(a.length>0){const l=a[0].datasetIndex,c=t.getDatasetMeta(l).data;a=[];for(let f=0;fiD(t,yc(n,t),e.axis||"xy",i,e.includeInvisible||!1),nearest:(t,n,e,i)=>oD(t,yc(n,t),e.axis||"xy",e.intersect,i,e.includeInvisible||!1),x:(t,n,e,i)=>E8(t,yc(n,t),"x",e.intersect,i),y:(t,n,e,i)=>E8(t,yc(n,t),"y",e.intersect,i)}};const P8=["left","top","right","bottom"];function vp(t,n){return t.filter(e=>e.pos===n)}function I8(t,n){return t.filter(e=>-1===P8.indexOf(e.pos)&&e.box.axis===n)}function yp(t,n){return t.sort((e,i)=>{const o=n?i:e,r=n?e:i;return o.weight===r.weight?o.index-r.index:o.weight-r.weight})}function O8(t,n,e,i){return Math.max(t[e],n[e])+Math.max(t[i],n[i])}function A8(t,n){t.top=Math.max(t.top,n.top),t.left=Math.max(t.left,n.left),t.bottom=Math.max(t.bottom,n.bottom),t.right=Math.max(t.right,n.right)}function m0e(t,n,e,i){const{pos:o,box:r}=e,s=t.maxPadding;if(!ft(o)){e.size&&(t[o]-=e.size);const m=i[e.stack]||{size:0,count:1};m.size=Math.max(m.size,e.horizontal?r.height:r.width),e.size=m.size/m.count,t[o]+=e.size}r.getPadding&&A8(s,r.getPadding());const a=Math.max(0,n.outerWidth-O8(s,t,"left","right")),l=Math.max(0,n.outerHeight-O8(s,t,"top","bottom")),c=a!==t.w,f=l!==t.h;return t.w=a,t.h=l,e.horizontal?{same:c,other:f}:{same:f,other:c}}function _0e(t,n){const e=n.maxPadding;return function i(o){const r={left:0,top:0,right:0,bottom:0};return o.forEach(s=>{r[s]=Math.max(n[s],e[s])}),r}(t?["left","right"]:["top","bottom"])}function Cp(t,n,e,i){const o=[];let r,s,a,l,c,f;for(r=0,s=t.length,c=0;rc.box.fullSize),!0),i=yp(vp(n,"left"),!0),o=yp(vp(n,"right")),r=yp(vp(n,"top"),!0),s=yp(vp(n,"bottom")),a=I8(n,"x"),l=I8(n,"y");return{fullSize:e,leftAndTop:i.concat(r),rightAndBottom:o.concat(l).concat(s).concat(a),chartArea:vp(n,"chartArea"),vertical:i.concat(o).concat(l),horizontal:r.concat(s).concat(a)}}(t.boxes),l=a.vertical,c=a.horizontal;Vt(t.boxes,k=>{"function"==typeof k.beforeLayout&&k.beforeLayout()});const f=l.reduce((k,T)=>T.box.options&&!1===T.box.options.display?k:k+1,0)||1,m=Object.freeze({outerWidth:n,outerHeight:e,padding:o,availableWidth:r,availableHeight:s,vBoxMaxWidth:r/2/f,hBoxMaxHeight:s/2}),g=Object.assign({},o);A8(g,Ki(i));const _=Object.assign({maxPadding:g,w:r,h:s,x:o.left,y:o.top},o),w=function f0e(t,n){const e=function h0e(t){const n={};for(const e of t){const{stack:i,pos:o,stackWeight:r}=e;if(!i||!P8.includes(o))continue;const s=n[i]||(n[i]={count:0,placed:0,weight:0,size:0});s.count++,s.weight+=r}return n}(t),{vBoxMaxWidth:i,hBoxMaxHeight:o}=n;let r,s,a;for(r=0,s=t.length;r{const T=k.box;Object.assign(T,t.chartArea),T.update(_.w,_.h,{left:0,top:0,right:0,bottom:0})})}};class F8{acquireContext(n,e){}releaseContext(n){return!1}addEventListener(n,e,i){}removeEventListener(n,e,i){}getDevicePixelRatio(){return 1}getMaximumSize(n,e,i,o){return e=Math.max(0,e||n.width),i=i||n.height,{width:e,height:Math.max(0,o?Math.floor(e/o):i)}}isAttached(n){return!0}updateConfig(n){}}class b0e extends F8{acquireContext(n){return n&&n.getContext&&n.getContext("2d")||null}updateConfig(n){n.options.animation=!1}}const Av="$chartjs",v0e={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},N8=t=>null===t||""===t,L8=!!v1e&&{passive:!0};function w0e(t,n,e){t&&t.canvas&&t.canvas.removeEventListener(n,e,L8)}function Rv(t,n){for(const e of t)if(e===n||e.contains(n))return!0}function S0e(t,n,e){const i=t.canvas,o=new MutationObserver(r=>{let s=!1;for(const a of r)s=s||Rv(a.addedNodes,i),s=s&&!Rv(a.removedNodes,i);s&&e()});return o.observe(document,{childList:!0,subtree:!0}),o}function k0e(t,n,e){const i=t.canvas,o=new MutationObserver(r=>{let s=!1;for(const a of r)s=s||Rv(a.removedNodes,i),s=s&&!Rv(a.addedNodes,i);s&&e()});return o.observe(document,{childList:!0,subtree:!0}),o}const wp=new Map;let B8=0;function V8(){const t=window.devicePixelRatio;t!==B8&&(B8=t,wp.forEach((n,e)=>{e.currentDevicePixelRatio!==t&&n()}))}function T0e(t,n,e){const i=t.canvas,o=i&&Xk(i);if(!o)return;const r=VV((a,l)=>{const c=o.clientWidth;e(a,l),c{const l=a[0],c=l.contentRect.width,f=l.contentRect.height;0===c&&0===f||r(c,f)});return s.observe(o),function D0e(t,n){wp.size||window.addEventListener("resize",V8),wp.set(t,n)}(t,r),s}function rD(t,n,e){e&&e.disconnect(),"resize"===n&&function M0e(t){wp.delete(t),wp.size||window.removeEventListener("resize",V8)}(t)}function E0e(t,n,e){const i=t.canvas,o=VV(r=>{null!==t.ctx&&e(function x0e(t,n){const e=v0e[t.type]||t.type,{x:i,y:o}=yc(t,n);return{type:e,chart:n,native:t,x:void 0!==i?i:null,y:void 0!==o?o:null}}(r,t))},t);return function C0e(t,n,e){t&&t.addEventListener(n,e,L8)}(i,n,o),o}class P0e extends F8{acquireContext(n,e){const i=n&&n.getContext&&n.getContext("2d");return i&&i.canvas===n?(function y0e(t,n){const e=t.style,i=t.getAttribute("height"),o=t.getAttribute("width");if(t[Av]={initial:{height:i,width:o,style:{display:e.display,height:e.height,width:e.width}}},e.display=e.display||"block",e.boxSizing=e.boxSizing||"border-box",N8(o)){const r=r8(t,"width");void 0!==r&&(t.width=r)}if(N8(i))if(""===t.style.height)t.height=t.width/(n||2);else{const r=r8(t,"height");void 0!==r&&(t.height=r)}}(n,e),i):null}releaseContext(n){const e=n.canvas;if(!e[Av])return!1;const i=e[Av].initial;["height","width"].forEach(r=>{const s=i[r];dt(s)?e.removeAttribute(r):e.setAttribute(r,s)});const o=i.style||{};return Object.keys(o).forEach(r=>{e.style[r]=o[r]}),e.width=e.width,delete e[Av],!0}addEventListener(n,e,i){this.removeEventListener(n,e),(n.$proxies||(n.$proxies={}))[e]=({attach:S0e,detach:k0e,resize:T0e}[e]||E0e)(n,e,i)}removeEventListener(n,e){const i=n.$proxies||(n.$proxies={}),o=i[e];o&&(({attach:rD,detach:rD,resize:rD}[e]||w0e)(n,e,o),i[e]=void 0)}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(n,e,i,o){return function b1e(t,n,e,i){const o=Pv(t),r=vc(o,"margin"),s=Ev(o.maxWidth,t,"clientWidth")||wv,a=Ev(o.maxHeight,t,"clientHeight")||wv,l=function _1e(t,n,e){let i,o;if(void 0===n||void 0===e){const r=t&&Xk(t);if(r){const s=r.getBoundingClientRect(),a=Pv(r),l=vc(a,"border","width"),c=vc(a,"padding");n=s.width-c.width-l.width,e=s.height-c.height-l.height,i=Ev(a.maxWidth,r,"clientWidth"),o=Ev(a.maxHeight,r,"clientHeight")}else n=t.clientWidth,e=t.clientHeight}return{width:n,height:e,maxWidth:i||wv,maxHeight:o||wv}}(t,n,e);let{width:c,height:f}=l;if("content-box"===o.boxSizing){const g=vc(o,"border","width"),_=vc(o,"padding");c-=_.width+g.width,f-=_.height+g.height}return c=Math.max(0,c-r.width),f=Math.max(0,i?c/i:f-r.height),c=La(Math.min(c,s,l.maxWidth)),f=La(Math.min(f,a,l.maxHeight)),c&&!f&&(f=La(c/2)),(void 0!==n||void 0!==e)&&i&&l.height&&f>l.height&&(f=l.height,c=La(Math.floor(f*i))),{width:c,height:f}}(n,e,i,o)}isAttached(n){const e=n&&Xk(n);return!(!e||!e.isConnected)}}class Us{static defaults={};static defaultRoutes=void 0;x;y;active=!1;options;$animations;tooltipPosition(n){const{x:e,y:i}=this.getProps(["x","y"],n);return{x:e,y:i}}hasValue(){return xu(this.x)&&xu(this.y)}getProps(n,e){const i=this.$animations;if(!e||!i)return this;const o={};return n.forEach(r=>{o[r]=i[r]&&i[r].active()?i[r]._to:this[r]}),o}}function Fv(t,n,e,i,o){const r=Ge(i,0),s=Math.min(Ge(o,t.length),t.length);let l,c,f,a=0;for(e=Math.ceil(e),o&&(l=o-i,e=l/Math.floor(l/e)),f=r;f<0;)a++,f=Math.round(r+a*e);for(c=Math.max(r,0);c"top"===n||"left"===n?t[n]+e:t[n]-e,j8=(t,n)=>Math.min(n||t,t);function U8(t,n){const e=[],i=t.length/n,o=t.length;let r=0;for(;rs+a)))return l}function xp(t){return t.drawTicks?t.tickLength:0}function z8(t,n){if(!t.display)return 0;const e=fi(t.font,n),i=Ki(t.padding);return(vn(t.text)?t.text.length:1)*e.lineHeight+i.height}function z0e(t,n,e){let i=(t=>"start"===t?"left":"end"===t?"right":"center")(t);return(e&&"right"!==n||!e&&"right"===n)&&(i=(t=>"left"===t?"right":"right"===t?"left":t)(i)),i}class xc extends Us{constructor(n){super(),this.id=n.id,this.type=n.type,this.options=void 0,this.ctx=n.ctx,this.chart=n.chart,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this._margins={left:0,right:0,top:0,bottom:0},this.maxWidth=void 0,this.maxHeight=void 0,this.paddingTop=void 0,this.paddingBottom=void 0,this.paddingLeft=void 0,this.paddingRight=void 0,this.axis=void 0,this.labelRotation=void 0,this.min=void 0,this.max=void 0,this._range=void 0,this.ticks=[],this._gridLineItems=null,this._labelItems=null,this._labelSizes=null,this._length=0,this._maxLength=0,this._longestTextCache={},this._startPixel=void 0,this._endPixel=void 0,this._reversePixels=!1,this._userMax=void 0,this._userMin=void 0,this._suggestedMax=void 0,this._suggestedMin=void 0,this._ticksLength=0,this._borderValue=0,this._cache={},this._dataLimitsCached=!1,this.$context=void 0}init(n){this.options=n.setContext(this.getContext()),this.axis=n.axis,this._userMin=this.parse(n.min),this._userMax=this.parse(n.max),this._suggestedMin=this.parse(n.suggestedMin),this._suggestedMax=this.parse(n.suggestedMax)}parse(n,e){return n}getUserBounds(){let{_userMin:n,_userMax:e,_suggestedMin:i,_suggestedMax:o}=this;return n=Oo(n,Number.POSITIVE_INFINITY),e=Oo(e,Number.NEGATIVE_INFINITY),i=Oo(i,Number.POSITIVE_INFINITY),o=Oo(o,Number.NEGATIVE_INFINITY),{min:Oo(n,i),max:Oo(e,o),minDefined:jn(n),maxDefined:jn(e)}}getMinMax(n){let s,{min:e,max:i,minDefined:o,maxDefined:r}=this.getUserBounds();if(o&&r)return{min:e,max:i};const a=this.getMatchingVisibleMetas();for(let l=0,c=a.length;li?i:e,i=o&&e>i?e:i,{min:Oo(e,Oo(i,e)),max:Oo(i,Oo(e,i))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const n=this.chart.data;return this.options.labels||(this.isHorizontal()?n.xLabels:n.yLabels)||n.labels||[]}getLabelItems(n=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(n))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){ln(this.options.beforeUpdate,[this])}update(n,e,i){const{beginAtZero:o,grace:r,ticks:s}=this.options,a=s.sampleSize;this.beforeUpdate(),this.maxWidth=n,this.maxHeight=e,this._margins=i=Object.assign({left:0,right:0,top:0,bottom:0},i),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+i.left+i.right:this.height+i.top+i.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=function XCe(t,n,e){const{min:i,max:o}=t,r=((t,n)=>"string"==typeof t&&t.endsWith("%")?parseFloat(t)/100*n:+t)(n,(o-i)/2),s=(a,l)=>e&&0===a?0:a+l;return{min:s(i,-Math.abs(r)),max:s(o,r)}}(this,r,o),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const l=ao)return function N0e(t,n,e,i){let s,o=0,r=e[0];for(i=Math.ceil(i),s=0;so-r).pop(),n}(i);for(let s=0,a=r.length-1;so)return l}return Math.max(o,1)}(r,n,o);if(s>0){let m,g;const _=s>1?Math.round((l-a)/(s-1)):null;for(Fv(n,c,f,dt(_)?0:a-_,a),m=0,g=s-1;m=r||i<=1||!this.isHorizontal())return void(this.labelRotation=o);const f=this._getLabelSizes(),m=f.widest.width,g=f.highest.height,_=Si(this.chart.width-m,0,this.maxWidth);a=n.offset?this.maxWidth/i:_/(i-1),m+6>a&&(a=_/(i-(n.offset?.5:1)),l=this.maxHeight-xp(n.grid)-e.padding-z8(n.title,this.chart.options.font),c=Math.sqrt(m*m+g*g),s=function Nk(t){return t*(180/Mt)}(Math.min(Math.asin(Si((f.highest.height+6)/a,-1,1)),Math.asin(Si(l/c,-1,1))-Math.asin(Si(g/c,-1,1)))),s=Math.max(o,Math.min(r,s))),this.labelRotation=s}afterCalculateLabelRotation(){ln(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){ln(this.options.beforeFit,[this])}fit(){const n={width:0,height:0},{chart:e,options:{ticks:i,title:o,grid:r}}=this,s=this._isVisible(),a=this.isHorizontal();if(s){const l=z8(o,e.options.font);if(a?(n.width=this.maxWidth,n.height=xp(r)+l):(n.height=this.maxHeight,n.width=xp(r)+l),i.display&&this.ticks.length){const{first:c,last:f,widest:m,highest:g}=this._getLabelSizes(),_=2*i.padding,w=Tr(this.labelRotation),k=Math.cos(w),T=Math.sin(w);a?n.height=Math.min(this.maxHeight,n.height+(i.mirror?0:T*m.width+k*g.height)+_):n.width=Math.min(this.maxWidth,n.width+(i.mirror?0:k*m.width+T*g.height)+_),this._calculatePadding(c,f,T,k)}}this._handleMargins(),a?(this.width=this._length=e.width-this._margins.left-this._margins.right,this.height=n.height):(this.width=n.width,this.height=this._length=e.height-this._margins.top-this._margins.bottom)}_calculatePadding(n,e,i,o){const{ticks:{align:r,padding:s},position:a}=this.options,l=0!==this.labelRotation,c="top"!==a&&"x"===this.axis;if(this.isHorizontal()){const f=this.getPixelForTick(0)-this.left,m=this.right-this.getPixelForTick(this.ticks.length-1);let g=0,_=0;l?c?(g=o*n.width,_=i*e.height):(g=i*n.height,_=o*e.width):"start"===r?_=e.width:"end"===r?g=n.width:"inner"!==r&&(g=n.width/2,_=e.width/2),this.paddingLeft=Math.max((g-f+s)*this.width/(this.width-f),0),this.paddingRight=Math.max((_-m+s)*this.width/(this.width-m),0)}else{let f=e.height/2,m=n.height/2;"start"===r?(f=0,m=n.height):"end"===r&&(f=e.height,m=0),this.paddingTop=f+s,this.paddingBottom=m+s}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){ln(this.options.afterFit,[this])}isHorizontal(){const{axis:n,position:e}=this.options;return"top"===e||"bottom"===e||"x"===n}isFullSize(){return this.options.fullSize}_convertTicksToLabels(n){let e,i;for(this.beforeTickToLabelConversion(),this.generateTickLabels(n),e=0,i=n.length;e{const i=e.gc,o=i.length/2;let r;if(o>n){for(r=0;r({width:s[A]||0,height:a[A]||0});return{first:P(0),last:P(e-1),widest:P(ee),highest:P(ie),widths:s,heights:a}}getLabelForValue(n){return n}getPixelForValue(n,e){return NaN}getValueForPixel(n){}getPixelForTick(n){const e=this.ticks;return n<0||n>e.length-1?null:this.getPixelForValue(e[n].value)}getPixelForDecimal(n){this._reversePixels&&(n=1-n);const e=this._startPixel+n*this._length;return function kCe(t){return Si(t,-32768,32767)}(this._alignToPixels?gc(this.chart,e,0):e)}getDecimalForPixel(n){const e=(n-this._startPixel)/this._length;return this._reversePixels?1-e:e}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:n,max:e}=this;return n<0&&e<0?e:n>0&&e>0?n:0}getContext(n){const e=this.ticks||[];if(n>=0&&na*o?a/i:l/o:l*o0}_computeGridLineItems(n){const e=this.axis,i=this.chart,o=this.options,{grid:r,position:s,border:a}=o,l=r.offset,c=this.isHorizontal(),m=this.ticks.length+(l?1:0),g=xp(r),_=[],w=a.setContext(this.getContext()),k=w.display?w.width:0,T=k/2,I=function(N){return gc(i,N,k)};let R,W,Y,K,ee,ie,P,A,L,$,H,G;if("top"===s)R=I(this.bottom),ie=this.bottom-g,A=R-T,$=I(n.top)+T,G=n.bottom;else if("bottom"===s)R=I(this.top),$=n.top,G=I(n.bottom)-T,ie=R+T,A=this.top+g;else if("left"===s)R=I(this.right),ee=this.right-g,P=R-T,L=I(n.left)+T,H=n.right;else if("right"===s)R=I(this.left),L=n.left,H=I(n.right)-T,ee=R+T,P=this.left+g;else if("x"===e){if("center"===s)R=I((n.top+n.bottom)/2+.5);else if(ft(s)){const N=Object.keys(s)[0];R=I(this.chart.scales[N].getPixelForValue(s[N]))}$=n.top,G=n.bottom,ie=R+T,A=ie+g}else if("y"===e){if("center"===s)R=I((n.left+n.right)/2);else if(ft(s)){const N=Object.keys(s)[0];R=I(this.chart.scales[N].getPixelForValue(s[N]))}ee=R-T,P=ee-g,L=n.left,H=n.right}const J=Ge(o.ticks.maxTicksLimit,m),V=Math.max(1,Math.ceil(m/J));for(W=0;W0&&(at-=Oe/2)}Ce={left:at,top:Xe,width:Oe+Ee.width,height:ut+Ee.height,color:V.backdropColor}}T.push({label:Y,font:A,textOffset:H,options:{rotation:k,color:q,strokeColor:z,strokeWidth:Q,textAlign:ue,textBaseline:G,translation:[K,ee],backdrop:Ce}})}return T}_getXAxisLabelAlignment(){const{position:n,ticks:e}=this.options;if(-Tr(this.labelRotation))return"top"===n?"left":"right";let o="center";return"start"===e.align?o="left":"end"===e.align?o="right":"inner"===e.align&&(o="inner"),o}_getYAxisLabelAlignment(n){const{position:e,ticks:{crossAlign:i,mirror:o,padding:r}}=this.options,a=n+r,l=this._getLabelSizes().widest.width;let c,f;return"left"===e?o?(f=this.right+r,"near"===i?c="left":"center"===i?(c="center",f+=l/2):(c="right",f+=l)):(f=this.right-a,"near"===i?c="right":"center"===i?(c="center",f-=l/2):(c="left",f=this.left)):"right"===e?o?(f=this.left+r,"near"===i?c="right":"center"===i?(c="center",f-=l/2):(c="left",f-=l)):(f=this.left+a,"near"===i?c="left":"center"===i?(c="center",f+=l/2):(c="right",f=this.right)):c="right",{textAlign:c,x:f}}_computeLabelArea(){if(this.options.ticks.mirror)return;const n=this.chart,e=this.options.position;return"left"===e||"right"===e?{top:0,left:this.left,bottom:n.height,right:this.right}:"top"===e||"bottom"===e?{top:this.top,left:0,bottom:this.bottom,right:n.width}:void 0}drawBackground(){const{ctx:n,options:{backgroundColor:e},left:i,top:o,width:r,height:s}=this;e&&(n.save(),n.fillStyle=e,n.fillRect(i,o,r,s),n.restore())}getLineWidthForValue(n){const e=this.options.grid;if(!this._isVisible()||!e.display)return 0;const o=this.ticks.findIndex(r=>r.value===n);return o>=0?e.setContext(this.getContext(o)).lineWidth:0}drawGrid(n){const e=this.options.grid,i=this.ctx,o=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(n));let r,s;const a=(l,c,f)=>{!f.width||!f.color||(i.save(),i.lineWidth=f.width,i.strokeStyle=f.color,i.setLineDash(f.borderDash||[]),i.lineDashOffset=f.borderDashOffset,i.beginPath(),i.moveTo(l.x,l.y),i.lineTo(c.x,c.y),i.stroke(),i.restore())};if(e.display)for(r=0,s=o.length;r{this.drawBackground(),this.drawGrid(r),this.drawTitle()}},{z:o,draw:()=>{this.drawBorder()}},{z:e,draw:r=>{this.drawLabels(r)}}]:[{z:e,draw:r=>{this.draw(r)}}]}getMatchingVisibleMetas(n){const e=this.chart.getSortedVisibleDatasetMetas(),i=this.axis+"AxisID",o=[];let r,s;for(r=0,s=e.length;r{const i=e.split("."),o=i.pop(),r=[t].concat(i).join("."),s=n[e].split("."),a=s.pop(),l=s.join(".");kn.route(r,o,l,a)})}(n,t.defaultRoutes),t.descriptors&&kn.describe(n,t.descriptors)}(n,s,i),this.override&&kn.override(n.id,n.overrides)),s}get(n){return this.items[n]}unregister(n){const e=this.items,i=n.id,o=this.scope;i in e&&delete e[i],o&&i in kn[o]&&(delete kn[o][i],this.override&&delete mc[i])}}class K0e{constructor(){this.controllers=new Nv(Ba,"datasets",!0),this.elements=new Nv(Us,"elements"),this.plugins=new Nv(Object,"plugins"),this.scales=new Nv(xc,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...n){this._each("register",n)}remove(...n){this._each("unregister",n)}addControllers(...n){this._each("register",n,this.controllers)}addElements(...n){this._each("register",n,this.elements)}addPlugins(...n){this._each("register",n,this.plugins)}addScales(...n){this._each("register",n,this.scales)}getController(n){return this._get(n,this.controllers,"controller")}getElement(n){return this._get(n,this.elements,"element")}getPlugin(n){return this._get(n,this.plugins,"plugin")}getScale(n){return this._get(n,this.scales,"scale")}removeControllers(...n){this._each("unregister",n,this.controllers)}removeElements(...n){this._each("unregister",n,this.elements)}removePlugins(...n){this._each("unregister",n,this.plugins)}removeScales(...n){this._each("unregister",n,this.scales)}_each(n,e,i){[...e].forEach(o=>{const r=i||this._getRegistryForType(o);i||r.isForType(o)||r===this.plugins&&o.id?this._exec(n,r,o):Vt(o,s=>{const a=i||this._getRegistryForType(s);this._exec(n,a,s)})})}_exec(n,e,i){const o=Fk(n);ln(i["before"+o],[],i),e[n](i),ln(i["after"+o],[],i)}_getRegistryForType(n){for(let e=0;er.filter(a=>!s.some(l=>a.plugin.id===l.plugin.id));this._notify(o(e,i),n,"stop"),this._notify(o(i,e),n,"start")}}function Z0e(t,n){return n||!1!==t?!0===t?{}:t:null}function J0e(t,{plugin:n,local:e},i,o){const r=t.pluginScopeKeys(n),s=t.getOptionScopes(i,r);return e&&n.defaults&&s.push(n.defaults),t.createResolver(s,o,[""],{scriptable:!1,indexable:!1,allKeys:!0})}function sD(t,n){return((n.datasets||{})[t]||{}).indexAxis||n.indexAxis||(kn.datasets[t]||{}).indexAxis||"x"}function $8(t){if("x"===t||"y"===t||"r"===t)return t}function nwe(t){return"top"===t||"bottom"===t?"x":"left"===t||"right"===t?"y":void 0}function aD(t,...n){if($8(t))return t;for(const e of n){const i=e.axis||nwe(e.position)||t.length>1&&$8(t[0].toLowerCase());if(i)return i}throw new Error(`Cannot determine type of '${t}' axis. Please provide 'axis' or 'position' option.`)}function W8(t,n,e){if(e[n+"AxisID"]===t)return{axis:n}}function G8(t){const n=t.options||(t.options={});n.plugins=Ge(n.plugins,{}),n.scales=function owe(t,n){const e=mc[t.type]||{scales:{}},i=n.scales||{},o=sD(t.type,n),r=Object.create(null);return Object.keys(i).forEach(s=>{const a=i[s];if(!ft(a))return console.error(`Invalid scale configuration for scale: ${s}`);if(a._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${s}`);const l=aD(s,a,function iwe(t,n){if(n.data&&n.data.datasets){const e=n.data.datasets.filter(i=>i.xAxisID===t||i.yAxisID===t);if(e.length)return W8(t,"x",e[0])||W8(t,"y",e[0])}return{}}(s,t),kn.scales[a.type]),c=function twe(t,n){return t===n?"_index_":"_value_"}(l,o),f=e.scales||{};r[s]=lp(Object.create(null),[{axis:l},a,f[l],f[c]])}),t.data.datasets.forEach(s=>{const a=s.type||t.type,l=s.indexAxis||sD(a,n),f=(mc[a]||{}).scales||{};Object.keys(f).forEach(m=>{const g=function ewe(t,n){let e=t;return"_index_"===t?e=n:"_value_"===t&&(e="x"===n?"y":"x"),e}(m,l),_=s[g+"AxisID"]||g;r[_]=r[_]||Object.create(null),lp(r[_],[{axis:g},i[_],f[m]])})}),Object.keys(r).forEach(s=>{const a=r[s];lp(a,[kn.scales[a.type],kn.scale])}),r}(t,n)}function q8(t){return(t=t||{}).datasets=t.datasets||[],t.labels=t.labels||[],t}const K8=new Map,Y8=new Set;function Lv(t,n){let e=K8.get(t);return e||(e=n(),K8.set(t,e),Y8.add(e)),e}const Sp=(t,n,e)=>{const i=Aa(n,e);void 0!==i&&t.add(i)};class swe{constructor(n){this._config=function rwe(t){return(t=t||{}).data=q8(t.data),G8(t),t}(n),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(n){this._config.type=n}get data(){return this._config.data}set data(n){this._config.data=q8(n)}get options(){return this._config.options}set options(n){this._config.options=n}get plugins(){return this._config.plugins}update(){const n=this._config;this.clearCache(),G8(n)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(n){return Lv(n,()=>[[`datasets.${n}`,""]])}datasetAnimationScopeKeys(n,e){return Lv(`${n}.transition.${e}`,()=>[[`datasets.${n}.transitions.${e}`,`transitions.${e}`],[`datasets.${n}`,""]])}datasetElementScopeKeys(n,e){return Lv(`${n}-${e}`,()=>[[`datasets.${n}.elements.${e}`,`datasets.${n}`,`elements.${e}`,""]])}pluginScopeKeys(n){const e=n.id;return Lv(`${this.type}-plugin-${e}`,()=>[[`plugins.${e}`,...n.additionalOptionScopes||[]]])}_cachedScopes(n,e){const i=this._scopeCache;let o=i.get(n);return(!o||e)&&(o=new Map,i.set(n,o)),o}getOptionScopes(n,e,i){const{options:o,type:r}=this,s=this._cachedScopes(n,i),a=s.get(e);if(a)return a;const l=new Set;e.forEach(f=>{n&&(l.add(n),f.forEach(m=>Sp(l,n,m))),f.forEach(m=>Sp(l,o,m)),f.forEach(m=>Sp(l,mc[r]||{},m)),f.forEach(m=>Sp(l,kn,m)),f.forEach(m=>Sp(l,Uk,m))});const c=Array.from(l);return 0===c.length&&c.push(Object.create(null)),Y8.has(e)&&s.set(e,c),c}chartOptionScopes(){const{options:n,type:e}=this;return[n,mc[e]||{},kn.datasets[e]||{},{type:e},kn,Uk]}resolveNamedOptions(n,e,i,o=[""]){const r={$shared:!0},{resolver:s,subPrefixes:a}=X8(this._resolverCache,n,o);let l=s;(function lwe(t,n){const{isScriptable:e,isIndexable:i}=XV(t);for(const o of n){const r=e(o),s=i(o),a=(s||r)&&t[o];if(r&&(Ra(a)||awe(a))||s&&vn(a))return!0}return!1})(s,e)&&(r.$shared=!1,l=Su(s,i=Ra(i)?i():i,this.createResolver(n,i,a)));for(const c of e)r[c]=l[c];return r}createResolver(n,e,i=[""],o){const{resolver:r}=X8(this._resolverCache,n,i);return ft(e)?Su(r,e,void 0,o):r}}function X8(t,n,e){let i=t.get(n);i||(i=new Map,t.set(n,i));const o=e.join();let r=i.get(o);return r||(r={resolver:Gk(n,e),subPrefixes:e.filter(a=>!a.toLowerCase().includes("hover"))},i.set(o,r)),r}const awe=t=>ft(t)&&Object.getOwnPropertyNames(t).some(n=>Ra(t[n])),dwe=["top","bottom","left","right","chartArea"];function Z8(t,n){return"top"===t||"bottom"===t||-1===dwe.indexOf(t)&&"x"===n}function Q8(t,n){return function(e,i){return e[t]===i[t]?e[n]-i[n]:e[t]-i[t]}}function J8(t){const n=t.chart,e=n.options.animation;n.notifyPlugins("afterRender"),ln(e&&e.onComplete,[t],n)}function uwe(t){const n=t.chart,e=n.options.animation;ln(e&&e.onProgress,[t],n)}function eH(t){return Yk()&&"string"==typeof t?t=document.getElementById(t):t&&t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas),t}const Bv={},tH=t=>{const n=eH(t);return Object.values(Bv).filter(e=>e.canvas===n).pop()};function hwe(t,n,e){const i=Object.keys(t);for(const o of i){const r=+o;if(r>=n){const s=t[o];delete t[o],(e>0||r>n)&&(t[r+e]=s)}}}let lD=(()=>class t{static defaults=kn;static instances=Bv;static overrides=mc;static registry=ns;static version="4.5.1";static getChart=tH;static register(...e){ns.add(...e),nH()}static unregister(...e){ns.remove(...e),nH()}constructor(e,i){const o=this.config=new swe(i),r=eH(e),s=tH(r);if(s)throw new Error("Canvas is already in use. Chart with ID '"+s.id+"' must be destroyed before the canvas with ID '"+s.canvas.id+"' can be reused.");const a=o.createResolver(o.chartOptionScopes(),this.getContext());this.platform=new(o.platform||function I0e(t){return!Yk()||typeof OffscreenCanvas<"u"&&t instanceof OffscreenCanvas?b0e:P0e}(r)),this.platform.updateConfig(o);const l=this.platform.acquireContext(r,a.aspectRatio),c=l&&l.canvas,f=c&&c.height,m=c&&c.width;this.id=hCe(),this.ctx=l,this.canvas=c,this.width=m,this.height=f,this._options=a,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new Y0e,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=function ECe(t,n){let e;return function(...i){return n?(clearTimeout(e),e=setTimeout(t,n,i)):t.apply(this,i),n}}(g=>this.update(g),a.resizeDelay||0),this._dataChanges=[],Bv[this.id]=this,l&&c?(js.listen(this,"complete",J8),js.listen(this,"progress",uwe),this._initialize(),this.attached&&this.update()):console.error("Failed to create chart: can't acquire context from the given item")}get aspectRatio(){const{options:{aspectRatio:e,maintainAspectRatio:i},width:o,height:r,_aspectRatio:s}=this;return dt(e)?i&&s?s:r?o/r:null:e}get data(){return this.config.data}set data(e){this.config.data=e}get options(){return this._options}set options(e){this.config.options=e}get registry(){return ns}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():o8(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return qV(this.canvas,this.ctx),this}stop(){return js.stop(this),this}resize(e,i){js.running(this)?this._resizeBeforeDraw={width:e,height:i}:this._resize(e,i)}_resize(e,i){const o=this.options,a=this.platform.getMaximumSize(this.canvas,e,i,o.maintainAspectRatio&&this.aspectRatio),l=o.devicePixelRatio||this.platform.getDevicePixelRatio(),c=this.width?"resize":"attach";this.width=a.width,this.height=a.height,this._aspectRatio=this.aspectRatio,o8(this,l,!0)&&(this.notifyPlugins("resize",{size:a}),ln(o.onResize,[this,a],this),this.attached&&this._doResize(c)&&this.render())}ensureScalesHaveIDs(){Vt(this.options.scales||{},(o,r)=>{o.id=r})}buildOrUpdateScales(){const e=this.options,i=e.scales,o=this.scales,r=Object.keys(o).reduce((a,l)=>(a[l]=!1,a),{});let s=[];i&&(s=s.concat(Object.keys(i).map(a=>{const l=i[a],c=aD(a,l),f="r"===c,m="x"===c;return{options:l,dposition:f?"chartArea":m?"bottom":"left",dtype:f?"radialLinear":m?"category":"linear"}}))),Vt(s,a=>{const l=a.options,c=l.id,f=aD(c,l),m=Ge(l.type,a.dtype);(void 0===l.position||Z8(l.position,f)!==Z8(a.dposition))&&(l.position=a.dposition),r[c]=!0;let g=null;c in o&&o[c].type===m?g=o[c]:(g=new(ns.getScale(m))({id:c,type:m,ctx:this.ctx,chart:this}),o[g.id]=g),g.init(l,e)}),Vt(r,(a,l)=>{a||delete o[l]}),Vt(o,a=>{Yi.configure(this,a,a.options),Yi.addBox(this,a)})}_updateMetasets(){const e=this._metasets,i=this.data.datasets.length,o=e.length;if(e.sort((r,s)=>r.index-s.index),o>i){for(let r=i;ri.length&&delete this._stacks,e.forEach((o,r)=>{0===i.filter(s=>s===o._dataset).length&&this._destroyDatasetMeta(r)})}buildOrUpdateControllers(){const e=[],i=this.data.datasets;let o,r;for(this._removeUnreferencedMetasets(),o=0,r=i.length;o{this.getDatasetMeta(i).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(e){const i=this.config;i.update();const o=this._options=i.createResolver(i.chartOptionScopes(),this.getContext()),r=this._animationsDisabled=!o.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),!1===this.notifyPlugins("beforeUpdate",{mode:e,cancelable:!0}))return;const s=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let a=0;for(let f=0,m=this.data.datasets.length;f{f.reset()}),this._updateDatasets(e),this.notifyPlugins("afterUpdate",{mode:e}),this._layers.sort(Q8("z","_idx"));const{_active:l,_lastEvent:c}=this;c?this._eventHandler(c,!0):l.length&&this._updateHoverStyles(l,l,!0),this.render()}_updateScales(){Vt(this.scales,e=>{Yi.removeBox(this,e)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const e=this.options,i=new Set(Object.keys(this._listeners)),o=new Set(e.events);(!EV(i,o)||!!this._responsiveListeners!==e.responsive)&&(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:e}=this,i=this._getUniformDataChanges()||[];for(const{method:o,start:r,count:s}of i)hwe(e,r,"_removeElements"===o?-s:s)}_getUniformDataChanges(){const e=this._dataChanges;if(!e||!e.length)return;this._dataChanges=[];const i=this.data.datasets.length,o=s=>new Set(e.filter(a=>a[0]===s).map((a,l)=>l+","+a.splice(1).join(","))),r=o(0);for(let s=1;ss.split(",")).map(s=>({method:s[1],start:+s[2],count:+s[3]}))}_updateLayout(e){if(!1===this.notifyPlugins("beforeLayout",{cancelable:!0}))return;Yi.update(this,this.width,this.height,e);const i=this.chartArea,o=i.width<=0||i.height<=0;this._layers=[],Vt(this.boxes,r=>{o&&"chartArea"===r.position||(r.configure&&r.configure(),this._layers.push(...r._layers()))},this),this._layers.forEach((r,s)=>{r._idx=s}),this.notifyPlugins("afterLayout")}_updateDatasets(e){if(!1!==this.notifyPlugins("beforeDatasetsUpdate",{mode:e,cancelable:!0})){for(let i=0,o=this.data.datasets.length;i=0;--i)this._drawDataset(e[i]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(e){const i=this.ctx,o={meta:e,index:e.index,cancelable:!0},r=p8(this,e);!1!==this.notifyPlugins("beforeDatasetDraw",o)&&(r&&Dv(i,r),e.controller.draw(),r&&Mv(i),o.cancelable=!1,this.notifyPlugins("afterDatasetDraw",o))}isPointInArea(e){return Hs(e,this.chartArea,this._minPadding)}getElementsAtEventForMode(e,i,o,r){const s=d0e.modes[i];return"function"==typeof s?s(this,e,o,r):[]}getDatasetMeta(e){const i=this.data.datasets[e],o=this._metasets;let r=o.filter(s=>s&&s._dataset===i).pop();return r||(r={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:i&&i.order||0,index:e,_dataset:i,_parsed:[],_sorted:!1},o.push(r)),r}getContext(){return this.$context||(this.$context=Na(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(e){const i=this.data.datasets[e];if(!i)return!1;const o=this.getDatasetMeta(e);return"boolean"==typeof o.hidden?!o.hidden:!i.hidden}setDatasetVisibility(e,i){this.getDatasetMeta(e).hidden=!i}toggleDataVisibility(e){this._hiddenIndices[e]=!this._hiddenIndices[e]}getDataVisibility(e){return!this._hiddenIndices[e]}_updateVisibility(e,i,o){const r=o?"show":"hide",s=this.getDatasetMeta(e),a=s.controller._resolveAnimations(void 0,r);cp(i)?(s.data[i].hidden=!o,this.update()):(this.setDatasetVisibility(e,o),a.update(s,{visible:o}),this.update(l=>l.datasetIndex===e?r:void 0))}hide(e,i){this._updateVisibility(e,i,!1)}show(e,i){this._updateVisibility(e,i,!0)}_destroyDatasetMeta(e){const i=this._metasets[e];i&&i.controller&&i.controller._destroy(),delete this._metasets[e]}_stop(){let e,i;for(this.stop(),js.remove(this),e=0,i=this.data.datasets.length;e{i.addEventListener(this,s,a),e[s]=a},r=(s,a,l)=>{s.offsetX=a,s.offsetY=l,this._eventHandler(s)};Vt(this.options.events,s=>o(s,r))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const e=this._responsiveListeners,i=this.platform,o=(c,f)=>{i.addEventListener(this,c,f),e[c]=f},r=(c,f)=>{e[c]&&(i.removeEventListener(this,c,f),delete e[c])},s=(c,f)=>{this.canvas&&this.resize(c,f)};let a;const l=()=>{r("attach",l),this.attached=!0,this.resize(),o("resize",s),o("detach",a)};a=()=>{this.attached=!1,r("resize",s),this._stop(),this._resize(0,0),o("attach",l)},i.isAttached(this.canvas)?l():a()}unbindEvents(){Vt(this._listeners,(e,i)=>{this.platform.removeEventListener(this,i,e)}),this._listeners={},Vt(this._responsiveListeners,(e,i)=>{this.platform.removeEventListener(this,i,e)}),this._responsiveListeners=void 0}updateHoverStyle(e,i,o){const r=o?"set":"remove";let s,a,l,c;for("dataset"===i&&(s=this.getDatasetMeta(e[0].datasetIndex),s.controller["_"+r+"DatasetHoverStyle"]()),l=0,c=e.length;l{const l=this.getDatasetMeta(s);if(!l)throw new Error("No dataset found at index "+s);return{datasetIndex:s,element:l.data[a],index:a}});!yv(o,i)&&(this._active=o,this._lastEvent=null,this._updateHoverStyles(o,i))}notifyPlugins(e,i,o){return this._plugins.notify(this,e,i,o)}isPluginEnabled(e){return 1===this._plugins._cache.filter(i=>i.plugin.id===e).length}_updateHoverStyles(e,i,o){const r=this.options.hover,s=(c,f)=>c.filter(m=>!f.some(g=>m.datasetIndex===g.datasetIndex&&m.index===g.index)),a=s(i,e),l=o?e:s(e,i);a.length&&this.updateHoverStyle(a,r.mode,!1),l.length&&r.mode&&this.updateHoverStyle(l,r.mode,!0)}_eventHandler(e,i){const o={event:e,replay:i,cancelable:!0,inChartArea:this.isPointInArea(e)},r=a=>(a.options.events||this.options.events).includes(e.native.type);if(!1===this.notifyPlugins("beforeEvent",o,r))return;const s=this._handleEvent(e,i,o.inChartArea);return o.cancelable=!1,this.notifyPlugins("afterEvent",o,r),(s||o.changed)&&this.render(),this}_handleEvent(e,i,o){const{_active:r=[],options:s}=this,l=this._getActiveElements(e,r,o,i),c=function bCe(t){return"mouseup"===t.type||"click"===t.type||"contextmenu"===t.type}(e),f=function fwe(t,n,e,i){return e&&"mouseout"!==t.type?i?n:t:null}(e,this._lastEvent,o,c);o&&(this._lastEvent=null,ln(s.onHover,[e,l,this],this),c&&ln(s.onClick,[e,l,this],this));const m=!yv(l,r);return(m||i)&&(this._active=l,this._updateHoverStyles(l,r,i)),this._lastEvent=f,m}_getActiveElements(e,i,o,r){if("mouseout"===e.type)return[];if(!o)return i;const s=this.options.hover;return this.getElementsAtEventForMode(e,s.mode,s,r)}})();function nH(){return Vt(lD.instances,t=>t._plugins.invalidate())}function iH(t,n,e=n){t.lineCap=Ge(e.borderCapStyle,n.borderCapStyle),t.setLineDash(Ge(e.borderDash,n.borderDash)),t.lineDashOffset=Ge(e.borderDashOffset,n.borderDashOffset),t.lineJoin=Ge(e.borderJoinStyle,n.borderJoinStyle),t.lineWidth=Ge(e.borderWidth,n.borderWidth),t.strokeStyle=Ge(e.borderColor,n.borderColor)}function Cwe(t,n,e){t.lineTo(e.x,e.y)}function oH(t,n,e={}){const i=t.length,{start:o=0,end:r=i-1}=e,{start:s,end:a}=n,l=Math.max(o,s),c=Math.min(r,a);return{count:i,start:l,loop:n.loop,ilen:ca&&r>a)?i+c-l:c-l}}function xwe(t,n,e,i){const{points:o,options:r}=n,{count:s,start:a,loop:l,ilen:c}=oH(o,e,i),f=function wwe(t){return t.stepped?jCe:t.tension||"monotone"===t.cubicInterpolationMode?UCe:Cwe}(r);let _,w,k,{move:m=!0,reverse:g}=i||{};for(_=0;_<=c;++_)w=o[(a+(g?c-_:_))%s],!w.skip&&(m?(t.moveTo(w.x,w.y),m=!1):f(t,k,w,g,r.stepped),k=w);return l&&(w=o[(a+(g?c:0))%s],f(t,k,w,g,r.stepped)),!!l}function Swe(t,n,e,i){const o=n.points,{count:r,start:s,ilen:a}=oH(o,e,i),{move:l=!0,reverse:c}=i||{};let g,_,w,k,T,I,f=0,m=0;const R=Y=>(s+(c?a-Y:Y))%r,W=()=>{k!==T&&(t.lineTo(f,T),t.lineTo(f,k),t.lineTo(f,I))};for(l&&(_=o[R(0)],t.moveTo(_.x,_.y)),g=0;g<=a;++g){if(_=o[R(g)],_.skip)continue;const Y=_.x,K=_.y,ee=0|Y;ee===w?(KT&&(T=K),f=(m*f+Y)/++m):(W(),t.lineTo(Y,K),w=ee,m=0,k=T=K),I=K}W()}function cD(t){const n=t.options;return t._decimated||t._loop||n.tension||"monotone"===n.cubicInterpolationMode||n.stepped||n.borderDash&&n.borderDash.length?xwe:Swe}const Twe="function"==typeof Path2D;let kp=(()=>class t extends Us{static id="line";static defaults={borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:3,capBezierPoints:!0,cubicInterpolationMode:"default",fill:!1,spanGaps:!1,stepped:!1,tension:0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};static descriptors={_scriptable:!0,_indexable:e=>"borderDash"!==e&&"fill"!==e};constructor(e){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,e&&Object.assign(this,e)}updateControlPoints(e,i){const o=this.options;!o.tension&&"monotone"!==o.cubicInterpolationMode||o.stepped||this._pointsUpdated||(h1e(this._points,o,e,o.spanGaps?this._loop:this._fullLoop,i),this._pointsUpdated=!0)}set points(e){this._points=e,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=function M1e(t,n){const e=t.points,i=t.options.spanGaps,o=e.length;if(!o)return[];const r=!!t._loop,{start:s,end:a}=function k1e(t,n,e,i){let o=0,r=n-1;if(e&&!i)for(;oo&&t[r%n].skip;)r--;return r%=n,{start:o,end:r}}(e,o,r,i);return function h8(t,n,e,i){return i&&i.setContext&&e?function T1e(t,n,e,i){const o=t._chart.getContext(),r=f8(t.options),{_datasetIndex:s,options:{spanGaps:a}}=t,l=e.length,c=[];let f=r,m=n[0].start,g=m;function _(w,k,T,I){const R=a?-1:1;if(w!==k){for(w+=l;e[w%l].skip;)w-=R;for(;e[k%l].skip;)k+=R;w%l!==k%l&&(c.push({start:w%l,end:k%l,loop:T,style:I}),f=I,m=k%l)}}for(const w of n){m=a?m:w.start;let T,k=e[m%l];for(g=m+1;g<=w.end;g++){const I=e[g%l];T=f8(i.setContext(Na(o,{type:"segment",p0:k,p1:I,p0DataIndex:(g-1)%l,p1DataIndex:g%l,datasetIndex:s}))),E1e(T,f)&&_(m,g-1,w.loop,f),k=I,f=T}mclass t extends Us{static id="point";parsed;skip;stop;static defaults={borderWidth:1,hitRadius:1,hoverBorderWidth:1,hoverRadius:4,pointStyle:"circle",radius:3,rotation:0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};constructor(e){super(),this.options=void 0,this.parsed=void 0,this.skip=void 0,this.stop=void 0,e&&Object.assign(this,e)}inRange(e,i,o){const r=this.options,{x:s,y:a}=this.getProps(["x","y"],o);return Math.pow(e-s,2)+Math.pow(i-a,2)t;n--){const i=e[n];if(!isNaN(i.x)&&!isNaN(i.y))break}return n}function pH(t,n,e,i){return t&&n?i(t[e],n[e]):t?t[e]:n?n[e]:0}function mH(t,n){let e=[],i=!1;return vn(t)?(i=!0,e=t):e=function Ywe(t,n){const{x:e=null,y:i=null}=t||{},o=n.points,r=[];return n.segments.forEach(({start:s,end:a})=>{a=Hv(s,a,o);const l=o[s],c=o[a];null!==i?(r.push({x:l.x,y:i}),r.push({x:c.x,y:i})):null!==e&&(r.push({x:e,y:l.y}),r.push({x:e,y:c.y}))}),r}(t,n),e.length?new kp({points:e,options:{tension:0},_loop:i,_fullLoop:i}):null}function gH(t){return t&&!1!==t.fill}function Xwe(t,n,e){let o=t[n].fill;const r=[n];let s;if(!e)return o;for(;!1!==o&&-1===r.indexOf(o);){if(!jn(o))return o;if(s=t[o],!s)return!1;if(s.visible)return o;r.push(o),o=s.fill}return!1}function Zwe(t,n,e){const i=function txe(t){const n=t.options,e=n.fill;let i=Ge(e&&e.target,e);return void 0===i&&(i=!!n.backgroundColor),!1!==i&&null!==i&&(!0===i?"origin":i)}(t);if(ft(i))return!isNaN(i.value)&&i;let o=parseFloat(i);return jn(o)&&Math.floor(o)===o?function Qwe(t,n,e,i){return("-"===t||"+"===t)&&(e=n+e),!(e===n||e<0||e>=i)&&e}(i[0],n,o,e):["origin","start","end","stack","shape"].indexOf(i)>=0&&i}function oxe(t,n,e){const i=[];for(let o=0;o=0;--s){const a=o[s].$filler;a&&(a.line.updateControlPoints(r,a.axis),i&&a.fill&&pD(t.ctx,a,r))}},beforeDatasetsDraw(t,n,e){if("beforeDatasetsDraw"!==e.drawTime)return;const i=t.getSortedVisibleDatasetMetas();for(let o=i.length-1;o>=0;--o){const r=i[o].$filler;gH(r)&&pD(t.ctx,r,t.chartArea)}},beforeDatasetDraw(t,n,e){const i=n.meta.$filler;!gH(i)||"beforeDatasetDraw"!==e.drawTime||pD(t.ctx,i,t.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};function OH(t){const n=this.getLabels();return t>=0&&tclass t extends xc{static id="category";static defaults={ticks:{callback:OH}};constructor(e){super(e),this._startValue=void 0,this._valueRange=0,this._addedLabels=[]}init(e){const i=this._addedLabels;if(i.length){const o=this.getLabels();for(const{index:r,label:s}of i)o[r]===s&&o.splice(r,1);this._addedLabels=[]}super.init(e)}parse(e,i){if(dt(e))return null;const o=this.getLabels();return((t,n)=>null===t?null:Si(Math.round(t),0,n))(i=isFinite(i)&&o[i]===e?i:function Oxe(t,n,e,i){const o=t.indexOf(n);return-1===o?((t,n,e,i)=>("string"==typeof n?(e=t.push(n)-1,i.unshift({index:e,label:n})):isNaN(n)&&(e=null),e))(t,n,e,i):o!==t.lastIndexOf(n)?e:o}(o,e,Ge(i,e),this._addedLabels),o.length-1)}determineDataLimits(){const{minDefined:e,maxDefined:i}=this.getUserBounds();let{min:o,max:r}=this.getMinMax(!0);"ticks"===this.options.bounds&&(e||(o=0),i||(r=this.getLabels().length-1)),this.min=o,this.max=r}buildTicks(){const e=this.min,i=this.max,o=this.options.offset,r=[];let s=this.getLabels();s=0===e&&i===s.length-1?s:s.slice(e,i+1),this._valueRange=Math.max(s.length-(o?0:1),1),this._startValue=this.min-(o?.5:0);for(let a=e;a<=i;a++)r.push({value:a});return r}getLabelForValue(e){return OH.call(this,e)}configure(){super.configure(),this.isHorizontal()||(this._reversePixels=!this._reversePixels)}getPixelForValue(e){return"number"!=typeof e&&(e=this.parse(e)),null===e?NaN:this.getPixelForDecimal((e-this._startValue)/this._valueRange)}getPixelForTick(e){const i=this.ticks;return e<0||e>i.length-1?null:this.getPixelForValue(i[e].value)}getValueForPixel(e){return Math.round(this._startValue+this.getDecimalForPixel(e)*this._valueRange)}getBasePixel(){return this.bottom}})();function RH(t,n,{horizontal:e,minRotation:i}){const o=Tr(i),r=(e?Math.sin(o):Math.cos(o))||.001;return Math.min(n/r,.75*n*(""+t).length)}class zv extends xc{constructor(n){super(n),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(n,e){return dt(n)||("number"==typeof n||n instanceof Number)&&!isFinite(+n)?null:+n}handleTickRangeOptions(){const{beginAtZero:n}=this.options,{minDefined:e,maxDefined:i}=this.getUserBounds();let{min:o,max:r}=this;const s=l=>o=e?o:l,a=l=>r=i?r:l;if(n){const l=ts(o),c=ts(r);l<0&&c<0?a(0):l>0&&c>0&&s(0)}if(o===r){let l=0===r?1:Math.abs(.05*r);a(r+l),n||s(o-l)}this.min=o,this.max=r}getTickLimit(){const n=this.options.ticks;let o,{maxTicksLimit:e,stepSize:i}=n;return i?(o=Math.ceil(this.max/i)-Math.floor(this.min/i)+1,o>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${i} would result generating up to ${o} ticks. Limiting to 1000.`),o=1e3)):(o=this.computeTickLimit(),e=e||11),e&&(o=Math.min(e,o)),o}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const n=this.options,e=n.ticks;let i=this.getTickLimit();i=Math.max(2,i);const s=function Rxe(t,n){const e=[],{bounds:o,step:r,min:s,max:a,precision:l,count:c,maxTicks:f,maxDigits:m,includeBounds:g}=t,_=r||1,w=f-1,{min:k,max:T}=n,I=!dt(s),R=!dt(a),W=!dt(c),Y=(T-k)/(m+1);let ee,ie,P,A,K=IV((T-k)/w/_)*_;if(K<1e-14&&!I&&!R)return[{value:k},{value:T}];A=Math.ceil(T/K)-Math.floor(k/K),A>w&&(K=IV(A*K/w/_)*_),dt(l)||(ee=Math.pow(10,l),K=Math.ceil(K*ee)/ee),"ticks"===o?(ie=Math.floor(k/K)*K,P=Math.ceil(T/K)*K):(ie=k,P=T),I&&R&&r&&function xCe(t,n){const e=Math.round(t);return e-n<=t&&e+n>=t}((a-s)/r,K/1e3)?(A=Math.round(Math.min((a-s)/K,f)),K=(a-s)/A,ie=s,P=a):W?(ie=I?s:ie,P=R?a:P,A=c-1,K=(P-ie)/A):(A=(P-ie)/K,A=dp(A,Math.round(A),K/1e3)?Math.round(A):Math.ceil(A));const L=Math.max(AV(K),AV(ie));ee=Math.pow(10,dt(l)?L:l),ie=Math.round(ie*ee)/ee,P=Math.round(P*ee)/ee;let $=0;for(I&&(g&&ie!==s?(e.push({value:s}),iea)break;e.push({value:H})}return R&&g&&P!==a?e.length&&dp(e[e.length-1].value,a,RH(a,Y,t))?e[e.length-1].value=a:e.push({value:a}):(!R||P===a)&&e.push({value:P}),e}({maxTicks:i,bounds:n.bounds,min:n.min,max:n.max,precision:e.precision,step:e.stepSize,count:e.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:e.minRotation||0,includeBounds:!1!==e.includeBounds},this._range||this);return"ticks"===n.bounds&&function OV(t,n,e){let i,o,r;for(i=0,o=t.length;i{class t{static{this.topInternalMargin=5}constructor(e){this.height=100,this.animated=!1,this.min=void 0,this.max=void 0,this.differ=e.find([]).create(null)}ngAfterViewInit(){this.chart=new lD(this.chartElement.nativeElement,{type:"line",data:{labels:Array.from(Array(this.data.length).keys()),datasets:[{data:this.data,backgroundColor:"rgba(10, 15, 22, 0.4)",borderColor:"rgba(10, 15, 22, 0.4)",borderWidth:1}]},options:{maintainAspectRatio:!1,events:[],plugins:{legend:{display:!1},tooltip:{enabled:!1}},scales:{y:{display:!1,suggestedMin:0},x:{display:!1}},elements:{point:{radius:0}},layout:{padding:{left:0,right:0,top:t.topInternalMargin,bottom:0}},animation:!!this.animated&&void 0}}),void 0!==this.min&&void 0!==this.max&&(this.updateMinAndMax(),this.chart.update())}ngDoCheck(){this.differ.diff(this.data)&&this.chart&&(void 0!==this.min&&void 0!==this.max&&this.updateMinAndMax(),this.animated?this.chart.update():this.chart.update("none"))}ngOnDestroy(){this.chart&&this.chart.destroy()}updateMinAndMax(){this.chart.options.scales.y.min=this.min,this.chart.options.scales.y.max=this.max}static{this.\u0275fac=function(i){return new(i||t)(O(h_))}}static{this.\u0275cmp=re({type:t,selectors:[["app-line-chart"]],viewQuery:function(i,o){if(1&i&&ot(iSe,5),2&i){let r;he(r=fe())&&(o.chartElement=r.first)}},inputs:{data:"data",height:"height",animated:"animated",min:"min",max:"max"},standalone:!1,decls:3,vars:2,consts:[["chart",""],[1,"chart-container"]],template:function(i,o){1&i&&(h(0,"div",1),B(1,"canvas",null,0),u()),2&i&&no("height: "+o.height+"px;")},styles:[".chart-container[_ngcontent-%COMP%]{position:relative;width:100%;overflow:hidden;border-radius:10px}"]})}}return t})();const WH=()=>({showValue:!0}),GH=()=>({showUnit:!0});function oSe(t,n){if(1&t&&(h(0,"div",0),B(1,"app-line-chart",1),h(2,"div",2)(3,"span",3),p(4),b(5,"translate"),u(),h(6,"span",4)(7,"span",5),p(8),b(9,"autoScale"),u(),h(10,"span",6),p(11),b(12,"autoScale"),u()()()()),2&t){const e=v();d(),C("data",e.trafficData.sentHistory),d(3),M(y(5,4,"common.uploaded")),d(4),M(pe(9,6,e.trafficData.totalSent,Ct(12,WH))),d(3),M(pe(12,9,e.trafficData.totalSent,Ct(13,GH)))}}function rSe(t,n){if(1&t&&(h(0,"div",0),B(1,"app-line-chart",1),h(2,"div",2)(3,"span",3),p(4),b(5,"translate"),u(),h(6,"span",4)(7,"span",5),p(8),b(9,"autoScale"),u(),h(10,"span",6),p(11),b(12,"autoScale"),u()()()()),2&t){const e=v();d(),C("data",e.trafficData.receivedHistory),d(3),M(y(5,4,"common.downloaded")),d(4),M(pe(9,6,e.trafficData.totalReceived,Ct(12,WH))),d(3),M(pe(12,9,e.trafficData.totalReceived,Ct(13,GH)))}}let sSe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=re({type:t,selectors:[["app-charts"]],inputs:{trafficData:"trafficData"},standalone:!1,decls:2,vars:2,consts:[[1,"small-rounded-elevated-box","chart"],[3,"data"],[1,"info"],[1,"text"],[1,"rate"],[1,"value"],[1,"unit"]],template:function(i,o){1&i&&(x(0,oSe,13,14,"div",0),x(1,rSe,13,14,"div",0)),2&i&&(S(o.trafficData?0:-1),d(),S(o.trafficData?1:-1))},dependencies:[Gv,xe,rp],styles:[".chart[_ngcontent-%COMP%]{position:relative;margin-bottom:20px}.chart[_ngcontent-%COMP%]:last-child{margin-bottom:10px}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%]{position:absolute;bottom:0;left:0;display:flex;justify-content:space-between;align-items:flex-end;padding:10px;width:100%}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:#f8f9f9}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] span.text[_ngcontent-%COMP%]{font-size:.8rem;text-transform:uppercase;font-weight:700}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] span.rate[_ngcontent-%COMP%] .value[_ngcontent-%COMP%]{font-size:1.25rem;font-weight:700}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] span.rate[_ngcontent-%COMP%] .unit[_ngcontent-%COMP%]{font-size:.8rem;padding-left:5px}"]})}}return t})();function aSe(t,n){1&t&&(h(0,"div",4)(1,"mat-icon",2),p(2,"settings"),u(),p(3),b(4,"translate"),u()),2&t&&(d(),C("inline",!0),d(2),E("",y(4,2,"routes.details.specific-fields-titles.app")," "))}function lSe(t,n){1&t&&(h(0,"div",4)(1,"mat-icon",2),p(2,"swap_horiz"),u(),p(3),b(4,"translate"),u()),2&t&&(d(),C("inline",!0),d(2),E("",y(4,2,"routes.details.specific-fields-titles.forward")," "))}function cSe(t,n){1&t&&(h(0,"div",4)(1,"mat-icon",2),p(2,"arrow_forward"),u(),p(3),b(4,"translate"),u()),2&t&&(d(),C("inline",!0),d(2),E("",y(4,2,"routes.details.specific-fields-titles.intermediary-forward")," "))}function dSe(t,n){if(1&t&&(h(0,"div")(1,"div",3)(2,"span"),p(3),b(4,"translate"),u(),p(5),u(),h(6,"div",3)(7,"span"),p(8),b(9,"translate"),u(),p(10),u()()),2&t){const e=v(2);d(3),M(y(4,5,"routes.details.specific-fields.route-id")),d(2),E(" ",e.routeRule.forwardFields?e.routeRule.forwardFields.nextRid:e.routeRule.intermediaryForwardFields.nextRid," "),d(3),M(y(9,7,"routes.details.specific-fields.transport-id")),d(2),gt(" ",e.routeRule.forwardFields?e.routeRule.forwardFields.nextTid:e.routeRule.intermediaryForwardFields.nextTid," ",e.getLabel(e.routeRule.forwardFields?e.routeRule.forwardFields.nextTid:e.routeRule.intermediaryForwardFields.nextTid)," ")}}function uSe(t,n){if(1&t&&(h(0,"div")(1,"div",3)(2,"span"),p(3),b(4,"translate"),u(),p(5),u(),h(6,"div",3)(7,"span"),p(8),b(9,"translate"),u(),p(10),u(),h(11,"div",3)(12,"span"),p(13),b(14,"translate"),u(),p(15),u(),h(16,"div",3)(17,"span"),p(18),b(19,"translate"),u(),p(20),u()()),2&t){const e=v(2);d(3),M(y(4,10,"routes.details.specific-fields.destination-pk")),d(2),gt(" ",e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.dstPk:e.routeRule.forwardFields.routeDescriptor.dstPk," ",e.getLabel(e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.dstPk:e.routeRule.forwardFields.routeDescriptor.dstPk)," "),d(3),M(y(9,12,"routes.details.specific-fields.source-pk")),d(2),gt(" ",e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.srcPk:e.routeRule.forwardFields.routeDescriptor.srcPk," ",e.getLabel(e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.srcPk:e.routeRule.forwardFields.routeDescriptor.srcPk)," "),d(3),M(y(14,14,"routes.details.specific-fields.destination-port")),d(2),E(" ",e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.dstPort:e.routeRule.forwardFields.routeDescriptor.dstPort," "),d(3),M(y(19,16,"routes.details.specific-fields.source-port")),d(2),E(" ",e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.srcPort:e.routeRule.forwardFields.routeDescriptor.srcPort," ")}}function hSe(t,n){if(1&t&&(h(0,"div")(1,"div",4)(2,"mat-icon",2),p(3,"list"),u(),p(4),b(5,"translate"),u(),h(6,"div",3)(7,"span"),p(8),b(9,"translate"),u(),p(10),u(),h(11,"div",3)(12,"span"),p(13),b(14,"translate"),u(),p(15),u(),h(16,"div",3)(17,"span"),p(18),b(19,"translate"),u(),p(20),u(),x(21,aSe,5,4,"div",4),x(22,lSe,5,4,"div",4),x(23,cSe,5,4,"div",4),x(24,dSe,11,9,"div"),x(25,uSe,21,18,"div"),u()),2&t){const e=v();d(2),C("inline",!0),d(2),E("",y(5,13,"routes.details.summary.title")," "),d(4),M(y(9,15,"routes.details.summary.keep-alive")),d(2),E(" ",e.routeRule.ruleSummary.keepAlive," "),d(3),M(y(14,17,"routes.details.summary.type")),d(2),E(" ",e.getRuleTypeName(e.routeRule.ruleSummary.ruleType)," "),d(3),M(y(19,19,"routes.details.summary.key-route-id")),d(2),E(" ",e.routeRule.ruleSummary.keyRouteId," "),d(),S(e.routeRule.appFields?21:-1),d(),S(e.routeRule.forwardFields?22:-1),d(),S(e.routeRule.intermediaryForwardFields?23:-1),d(),S(e.routeRule.forwardFields||e.routeRule.intermediaryForwardFields?24:-1),d(),S(e.routeRule.appFields&&e.routeRule.appFields.routeDescriptor||e.routeRule.forwardFields&&e.routeRule.forwardFields.routeDescriptor?25:-1)}}let fSe=(()=>{class t{static openDialog(e,i){const o=new nn;return o.data=i,o.autoFocus=!1,o.width=rt.largeModalWidth,e.open(t,o)}constructor(e,i,o){this.dialogRef=i,this.storageService=o,this.ruleTypes=new Map([[0,"App"],[1,"Forward"],[2,"Intermediary forward"]]),this.routeRule=e}getRuleTypeName(e){return this.ruleTypes.has(e)?this.ruleTypes.get(e):e.toString()}closePopup(){this.dialogRef.close()}getLabel(e){const i=this.storageService.getLabelInfo(e);return i?" ("+i.label+")":""}static{this.\u0275fac=function(i){return new(i||t)(O(En),O(Bt),O(ti))}}static{this.\u0275cmp=re({type:t,selectors:[["app-route-details"]],standalone:!1,decls:19,vars:17,consts:[[1,"info-dialog",3,"headline","dialog"],[1,"title","mt-0"],[3,"inline"],[1,"item"],[1,"title"]],template:function(i,o){1&i&&(h(0,"app-dialog",0),b(1,"translate"),h(2,"div")(3,"div",1)(4,"mat-icon",2),p(5,"list"),u(),p(6),b(7,"translate"),u(),h(8,"div",3)(9,"span"),p(10),b(11,"translate"),u(),p(12),u(),h(13,"div",3)(14,"span"),p(15),b(16,"translate"),u(),p(17),u(),x(18,hSe,26,21,"div"),u()()),2&i&&(C("headline",y(1,9,"routes.details.title"))("dialog",o.dialogRef),d(4),C("inline",!0),d(2),E("",y(7,11,"routes.details.basic.title")," "),d(4),M(y(11,13,"routes.details.basic.key")),d(2),E(" ",o.routeRule.key," "),d(3),M(y(16,15,"routes.details.basic.rule")),d(2),E(" ",o.routeRule.rule," "),d(),S(o.routeRule.ruleSummary?18:-1))},dependencies:[We,gn,xe],encapsulation:2})}}return t})();const pSe=t=>({text:t}),mSe=()=>({"tooltip-word-break":!0});function gSe(t,n){if(1&t&&(h(0,"span"),p(1),b(2,"translate"),u()),2&t){const e=v();d(),E(" ",y(2,1,e.labelComponents.prefix)," ")}}function _Se(t,n){if(1&t&&(h(0,"span"),p(1),u()),2&t){const e=v();d(),E(" ",e.labelComponents.prefixSeparator," ")}}function bSe(t,n){if(1&t&&(h(0,"span"),p(1),u()),2&t){const e=v();d(),E(" ",e.labelComponents.label," ")}}function vSe(t,n){if(1&t&&(h(0,"span"),p(1),b(2,"translate"),u()),2&t){const e=v();d(),E(" ",y(2,1,e.labelComponents.translatableLabel)," ")}}class ySe{constructor(){this.prefix="",this.prefixSeparator="",this.label="",this.translatableLabel=""}}let kc=(()=>{class t{set id(e){this.idInternal=e,this.labelComponents=t.getLabelComponents(this.storageService,this.id)}get id(){return this.idInternal?this.idInternal:""}static getLabelComponents(e,i){let o;o=!!e.getSavedVisibleLocalNodes().has(i);const r=new ySe;return r.labelInfo=e.getLabelInfo(i),r.labelInfo&&r.labelInfo.label?(o&&(r.prefix="labeled-element.local-element",r.prefixSeparator=" - "),r.label=r.labelInfo.label):e.getSavedVisibleLocalNodes().has(i)?r.prefix="labeled-element.unnamed-local-visor":r.translatableLabel="labeled-element.unnamed-element",r}static getCompleteLabel(e,i,o){const r=t.getLabelComponents(e,o);return(r.prefix?i.instant(r.prefix):"")+r.prefixSeparator+r.label+(r.translatableLabel?i.instant(r.translatableLabel):"")}constructor(e,i,o,r,s){this.dialog=e,this.storageService=i,this.clipboardService=o,this.snackbarService=r,this.router=s,this.short=!1,this.shortTextLength=5,this.elementType=ro.Node,this.labelEdited=new we}ngOnDestroy(){this.labelEdited.complete()}processClick(){const e=[{icon:"filter_none",label:"labeled-element.copy"},{icon:"edit",label:"labeled-element.edit-label"}];this.labelComponents.labelInfo&&e.push({icon:"close",label:"labeled-element.remove-label"}),e.push({icon:"list",label:"labeled-element.view-all-labels"}),ao.openDialog(this.dialog,e,"common.options").afterClosed().subscribe(i=>{if(1===i)this.clipboardService.copy(this.id)&&this.snackbarService.showDone("copy.copied");else if(i>2)if(3===i&&this.labelComponents.labelInfo){const o=Rt.createConfirmationDialog(this.dialog,"labeled-element.remove-label-confirmation");o.componentInstance.operationAccepted.subscribe(()=>{o.componentInstance.closeModal(),this.storageService.saveLabel(this.id,null,this.elementType),this.snackbarService.showDone("edit-label.label-removed-warning"),this.labelEdited.emit()})}else this.router.navigate(["/settings","labels"]);else if(2===i){let o=this.labelComponents.labelInfo;o||(o={id:this.id,label:"",identifiedElementType:this.elementType}),wk.openDialog(this.dialog,o).afterClosed().subscribe(r=>{r&&this.labelEdited.emit()})}})}static{this.\u0275fac=function(i){return new(i||t)(O(Ot),O(ti),O(np),O(ct),O(vt))}}static{this.\u0275cmp=re({type:t,selectors:[["app-labeled-element-text"]],inputs:{id:"id",short:"short",shortTextLength:"shortTextLength",elementType:"elementType"},outputs:{labelEdited:"labelEdited"},standalone:!1,decls:12,vars:17,consts:[[1,"wrapper","highlight-internal-icon",3,"click","matTooltip","matTooltipClass"],[1,"label"],[3,"short","showTooltip","shortTextLength","text"],[3,"inline"]],template:function(i,o){1&i&&(h(0,"div",0),b(1,"translate"),F("click",function(s){return s.stopPropagation(),s.preventDefault(),o.processClick()}),h(2,"span",1),x(3,gSe,3,3,"span"),x(4,_Se,2,1,"span"),x(5,bSe,2,1,"span"),x(6,vSe,3,3,"span"),u(),B(7,"br")(8,"app-truncated-text",2),p(9," \xa0"),h(10,"mat-icon",3),p(11,"settings"),u()()),2&i&&(C("matTooltip",pe(1,11,o.short?"labeled-element.tooltip-with-text":"labeled-element.tooltip",se(14,pSe,o.id)))("matTooltipClass",Ct(16,mSe)),d(3),S(o.labelComponents&&o.labelComponents.prefix?3:-1),d(),S(o.labelComponents&&o.labelComponents.prefixSeparator?4:-1),d(),S(o.labelComponents&&o.labelComponents.label?5:-1),d(),S(o.labelComponents&&o.labelComponents.translatableLabel?6:-1),d(2),C("short",o.short)("showTooltip",!1)("shortTextLength",o.shortTextLength)("text",o.id),d(2),C("inline",!0))},dependencies:[We,Kt,aV,xe],styles:['.cursor-pointer[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%], .wrapper[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media(max-width:767px),(min-width:992px)and (max-width:1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media(max-width:767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}.wrapper[_ngcontent-%COMP%]{display:inline}.wrapper[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:.8rem;-webkit-user-select:none;user-select:none}.label[_ngcontent-%COMP%]{opacity:.7;font-size:.8rem}']})}}return t})();const CSe=(t,n)=>({"small-node-list-margins":t,"full-node-list-margins":n}),wSe=t=>({"d-lg-none d-xl-table":t}),xSe=t=>({"d-lg-table d-xl-none":t});function SSe(t,n){1&t&&(h(0,"span",3),p(1),b(2,"translate"),h(3,"mat-icon",13),b(4,"translate"),p(5,"help"),u()()),2&t&&(d(),E(" ",y(2,3,"routes.title")," "),d(2),C("inline",!0)("matTooltip",y(4,5,"routes.info")))}function kSe(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,v().$implicit.translatableValue)," ")}function DSe(t,n){1&t&&p(0),2&t&&E(" ",v().$implicit.value," ")}function MSe(t,n){if(1&t&&(h(0,"div",15)(1,"span"),p(2),b(3,"translate"),u(),x(4,kSe,2,3),x(5,DSe,1,1),u()),2&t){const e=n.$implicit;d(2),E("",y(3,3,e.filterName),": "),d(2),S(e.translatableValue?4:-1),d(),S(e.value?5:-1)}}function TSe(t,n){if(1&t){const e=oe();h(0,"div",14),F("click",function(){return j(e),U(v().dataFilterer.removeFilters())}),ve(1,MSe,6,5,"div",15,Fe),h(3,"div",16),p(4),b(5,"translate"),u()()}if(2&t){const e=v();d(),ye(e.dataFilterer.currentFiltersTexts),d(3),M(y(5,1,"filters.press-to-remove"))}}function ESe(t,n){if(1&t){const e=oe();h(0,"mat-icon",17),b(1,"translate"),F("click",function(){return j(e),U(v().dataFilterer.changeFilters())}),p(2,"filter_list"),u()}2&t&&C("inline",!0)("matTooltip",y(1,2,"filters.filter-action"))}function PSe(t,n){1&t&&(h(0,"mat-icon",8),p(1,"more_horiz"),u()),2&t&&(v(),C("matMenuTriggerFor",Hn(9)))}function ISe(t,n){if(1&t&&(h(0,"mat-icon",21),p(1),u()),2&t){const e=v(2);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function OSe(t,n){if(1&t&&(h(0,"mat-icon",21),p(1),u()),2&t){const e=v(2);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function ASe(t,n){if(1&t&&(h(0,"mat-icon",21),p(1),u()),2&t){const e=v(2);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function RSe(t,n){1&t&&p(0),2&t&&E(" ",v().$implicit.appFields.routeDescriptor.srcPort," ")}function FSe(t,n){1&t&&p(0),2&t&&E(" ",v().$implicit.forwardFields.routeDescriptor.srcPort," ")}function NSe(t,n){1&t&&(h(0,"span",16),p(1,"-"),u())}function LSe(t,n){1&t&&p(0),2&t&&E(" ",v().$implicit.appFields.routeDescriptor.dstPort," ")}function BSe(t,n){1&t&&p(0),2&t&&E(" ",v().$implicit.forwardFields.routeDescriptor.dstPort," ")}function VSe(t,n){1&t&&(h(0,"span",16),p(1,"-"),u())}function HSe(t,n){if(1&t){const e=oe();h(0,"app-labeled-element-text",33),F("labelEdited",function(){return j(e),U(v(3).refreshData())}),u()}if(2&t){const e=v().$implicit,i=v(2);C("id",Qt(e.dst))("elementType",i.labeledElementTypes.Node)}}function jSe(t,n){1&t&&(h(0,"span",16),p(1,"-"),u())}function USe(t,n){1&t&&p(0),2&t&&E(" ",v().$implicit.forwardFields.nextRid," ")}function zSe(t,n){1&t&&p(0),2&t&&E(" ",v().$implicit.intermediaryForwardFields.nextRid," ")}function $Se(t,n){1&t&&(h(0,"span",16),p(1,"-"),u())}function WSe(t,n){if(1&t){const e=oe();h(0,"app-labeled-element-text",33),F("labelEdited",function(){return j(e),U(v(3).refreshData())}),u()}if(2&t){const e=v().$implicit,i=v(2);C("id",Qt(e.forwardFields.nextTid))("elementType",i.labeledElementTypes.Transport)}}function GSe(t,n){if(1&t){const e=oe();h(0,"app-labeled-element-text",33),F("labelEdited",function(){return j(e),U(v(3).refreshData())}),u()}if(2&t){const e=v().$implicit,i=v(2);C("id",Qt(e.intermediaryForwardFields.nextTid))("elementType",i.labeledElementTypes.Transport)}}function qSe(t,n){1&t&&(h(0,"span",16),p(1,"-"),u())}function KSe(t,n){1&t&&(p(0),b(1,"number")),2&t&&E(" ",pe(1,1,v().$implicit.ruleSummary.keepAlive/1e9,"1.0-1"),"s ")}function YSe(t,n){1&t&&(h(0,"span",16),p(1,"-"),u())}function XSe(t,n){if(1&t){const e=oe();h(0,"tr")(1,"td",28)(2,"mat-checkbox",29),F("change",function(){const o=j(e).$implicit;return U(v(2).changeSelection(o))}),u()(),h(3,"td",30),p(4),u(),h(5,"td"),p(6),u(),h(7,"td",30),x(8,RSe,1,1)(9,FSe,1,1)(10,NSe,2,0,"span",16),u(),h(11,"td",30),x(12,LSe,1,1)(13,BSe,1,1)(14,VSe,2,0,"span",16),u(),h(15,"td"),x(16,HSe,1,3,"app-labeled-element-text",31)(17,jSe,2,0,"span",16),u(),h(18,"td",30),x(19,USe,1,1)(20,zSe,1,1)(21,$Se,2,0,"span",16),u(),h(22,"td"),x(23,WSe,1,3,"app-labeled-element-text",31)(24,GSe,1,3,"app-labeled-element-text",31)(25,qSe,2,0,"span",16),u(),h(26,"td",30),x(27,KSe,2,4)(28,YSe,2,0,"span",16),u(),h(29,"td",22)(30,"button",32),b(31,"translate"),F("click",function(){const o=j(e).$implicit;return U(v(2).details(o))}),h(32,"mat-icon",21),p(33,"visibility"),u()(),h(34,"button",32),b(35,"translate"),F("click",function(){const o=j(e).$implicit;return U(v(2).delete(o.key))}),h(36,"mat-icon",21),p(37,"close"),u()()()()}if(2&t){const e=n.$implicit,i=v(2);d(2),C("checked",i.selections.get(e.key)),d(2),M(e.key),d(2),M(i.getTypeName(e.type)),d(2),S(null!=e.appFields&&e.appFields.routeDescriptor?8:null!=e.forwardFields&&e.forwardFields.routeDescriptor?9:10),d(4),S(null!=e.appFields&&e.appFields.routeDescriptor?12:null!=e.forwardFields&&e.forwardFields.routeDescriptor?13:14),d(4),S(e.appFields||e.forwardFields?16:17),d(3),S(null!=e.forwardFields&&e.forwardFields.nextRid||0===(null==e.forwardFields?null:e.forwardFields.nextRid)?19:null!=e.intermediaryForwardFields&&e.intermediaryForwardFields.nextRid||0===(null==e.intermediaryForwardFields?null:e.intermediaryForwardFields.nextRid)?20:21),d(4),S(null!=e.forwardFields&&e.forwardFields.nextTid?23:null!=e.intermediaryForwardFields&&e.intermediaryForwardFields.nextTid?24:25),d(4),S(null!=e.ruleSummary&&e.ruleSummary.keepAlive?27:28),d(3),C("matTooltip",y(31,13,"routes.details.title")),d(2),C("inline",!0),d(2),C("matTooltip",y(35,15,"routes.delete")),d(2),C("inline",!0)}}function ZSe(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"tables.label")," ")}function QSe(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"tables.inverted-order")," ")}function JSe(t,n){if(1&t){const e=oe();h(0,"div",35)(1,"span",2),p(2),b(3,"translate"),u(),p(4),u(),h(5,"div",35)(6,"span",2),p(7),b(8,"translate"),u(),p(9),u(),h(10,"div",35)(11,"span",2),p(12),b(13,"translate"),u(),p(14,": "),h(15,"app-labeled-element-text",33),F("labelEdited",function(){return j(e),U(v(3).refreshData())}),u()()}if(2&t){const e=v().$implicit,i=v(2);d(2),M(y(3,8,"routes.local-port")),d(2),E(": ",null==((null==e.appFields?null:e.appFields.routeDescriptor)||(null==e.forwardFields?null:e.forwardFields.routeDescriptor))?null:((null==e.appFields?null:e.appFields.routeDescriptor)||(null==e.forwardFields?null:e.forwardFields.routeDescriptor)).srcPort," "),d(3),M(y(8,10,"routes.remote-port")),d(2),E(": ",null==((null==e.appFields?null:e.appFields.routeDescriptor)||(null==e.forwardFields?null:e.forwardFields.routeDescriptor))?null:((null==e.appFields?null:e.appFields.routeDescriptor)||(null==e.forwardFields?null:e.forwardFields.routeDescriptor)).dstPort," "),d(3),M(y(13,12,"routes.remote-pk")),d(3),C("id",Qt(e.dst))("elementType",i.labeledElementTypes.Node)}}function eke(t,n){if(1&t){const e=oe();h(0,"div",35)(1,"span",2),p(2),b(3,"translate"),u(),p(4),u(),h(5,"div",35)(6,"span",2),p(7),b(8,"translate"),u(),p(9,": "),h(10,"app-labeled-element-text",33),F("labelEdited",function(){return j(e),U(v(3).refreshData())}),u()()}if(2&t){const e=v().$implicit,i=v(2);d(2),M(y(3,6,"routes.next-rid")),d(2),E(": ",(null==e.forwardFields?null:e.forwardFields.nextRid)??(null==e.intermediaryForwardFields?null:e.intermediaryForwardFields.nextRid)," "),d(3),M(y(8,8,"routes.next-tp")),d(3),C("id",Qt((null==e.forwardFields?null:e.forwardFields.nextTid)||(null==e.intermediaryForwardFields?null:e.intermediaryForwardFields.nextTid)))("elementType",i.labeledElementTypes.Transport)}}function tke(t,n){if(1&t&&(h(0,"div",35)(1,"span",2),p(2),b(3,"translate"),u(),p(4),b(5,"number"),u()),2&t){const e=v().$implicit;d(2),M(y(3,2,"routes.keep-alive")),d(2),E(": ",pe(5,4,e.ruleSummary.keepAlive/1e9,"1.0-1"),"s ")}}function nke(t,n){if(1&t){const e=oe();h(0,"tr")(1,"td")(2,"div",25)(3,"div",34)(4,"mat-checkbox",29),F("change",function(){const o=j(e).$implicit;return U(v(2).changeSelection(o))}),u()(),h(5,"div",26)(6,"div",35)(7,"span",2),p(8),b(9,"translate"),u(),p(10),u(),h(11,"div",35)(12,"span",2),p(13),b(14,"translate"),u(),p(15),u(),x(16,JSe,16,14),x(17,eke,11,10),x(18,tke,6,7,"div",35),u(),B(19,"div",36),h(20,"div",27)(21,"button",37),b(22,"translate"),F("click",function(o){const r=j(e).$implicit,s=v(2);return o.stopPropagation(),U(s.showOptionsDialog(r))}),h(23,"mat-icon"),p(24),u()()()()()()}if(2&t){const e=n.$implicit,i=v(2);d(4),C("checked",i.selections.get(e.key)),d(4),M(y(9,10,"routes.key")),d(2),E(": ",e.key," "),d(3),M(y(14,12,"routes.type")),d(2),E(": ",i.getTypeName(e.type)," "),d(),S(null!=e.appFields&&e.appFields.routeDescriptor||null!=e.forwardFields&&e.forwardFields.routeDescriptor?16:-1),d(),S(null!=e.forwardFields&&e.forwardFields.nextTid||null!=e.intermediaryForwardFields&&e.intermediaryForwardFields.nextTid?17:-1),d(),S(null!=e.ruleSummary&&e.ruleSummary.keepAlive?18:-1),d(3),C("matTooltip",y(22,14,"common.options")),d(3),M("add")}}function ike(t,n){if(1&t){const e=oe();h(0,"div",12)(1,"div",18)(2,"table",19)(3,"tr"),B(4,"th"),h(5,"th",20),F("click",function(){j(e);const o=v();return U(o.dataSorter.changeSortingOrder(o.keySortData))}),p(6),b(7,"translate"),x(8,ISe,2,2,"mat-icon",21),u(),h(9,"th",20),F("click",function(){j(e);const o=v();return U(o.dataSorter.changeSortingOrder(o.typeSortData))}),p(10),b(11,"translate"),x(12,OSe,2,2,"mat-icon",21),u(),h(13,"th"),p(14),b(15,"translate"),u(),h(16,"th"),p(17),b(18,"translate"),u(),h(19,"th",20),F("click",function(){j(e);const o=v();return U(o.dataSorter.changeSortingOrder(o.destinationSortData))}),p(20),b(21,"translate"),x(22,ASe,2,2,"mat-icon",21),u(),h(23,"th"),p(24),b(25,"translate"),u(),h(26,"th"),p(27),b(28,"translate"),u(),h(29,"th"),p(30),b(31,"translate"),u(),B(32,"th",22),u(),ve(33,XSe,38,17,"tr",null,Fe),u(),h(35,"table",23)(36,"tr",24),F("click",function(){return j(e),U(v().dataSorter.openSortingOrderModal())}),h(37,"td")(38,"div",25)(39,"div",26)(40,"div",2),p(41),b(42,"translate"),u(),h(43,"div"),p(44),b(45,"translate"),x(46,ZSe,2,3),x(47,QSe,2,3),u()(),h(48,"div",27)(49,"mat-icon",21),p(50,"keyboard_arrow_down"),u()()()()(),ve(51,nke,25,16,"tr",null,Fe),u()()()}if(2&t){const e=v();d(),C("ngClass",_t(39,CSe,e.showShortList_,!e.showShortList_)),d(),C("ngClass",se(42,wSe,e.showShortList_)),d(4),E(" ",y(7,19,"routes.key")," "),d(2),S(e.dataSorter.currentSortingColumn===e.keySortData?8:-1),d(2),E(" ",y(11,21,"routes.type")," "),d(2),S(e.dataSorter.currentSortingColumn===e.typeSortData?12:-1),d(2),M(y(15,23,"routes.local-port")),d(3),M(y(18,25,"routes.remote-port")),d(3),E(" ",y(21,27,"routes.remote-pk")," "),d(2),S(e.dataSorter.currentSortingColumn===e.destinationSortData?22:-1),d(2),M(y(25,29,"routes.next-rid")),d(3),M(y(28,31,"routes.next-tp")),d(3),M(y(31,33,"routes.keep-alive")),d(3),ye(e.dataSource),d(2),C("ngClass",se(44,xSe,e.showShortList_)),d(6),M(y(42,35,"tables.sorting-title")),d(3),E("",y(45,37,e.dataSorter.currentSortingColumn.label)," "),d(2),S(e.dataSorter.currentlySortingByLabel?46:-1),d(),S(e.dataSorter.sortingInReverseOrder?47:-1),d(2),C("inline",!0),d(2),ye(e.dataSource)}}function oke(t,n){1&t&&(h(0,"span",40),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"routes.empty")))}function rke(t,n){1&t&&(h(0,"span",40),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"routes.empty-with-filter")))}function ske(t,n){if(1&t&&(h(0,"div",12)(1,"div",38)(2,"mat-icon",39),p(3,"warning"),u(),x(4,oke,3,3,"span",40),x(5,rke,3,3,"span",40),u()()),2&t){const e=v();d(2),C("inline",!0),d(2),S(0===e.allRoutes.length?4:-1),d(),S(0!==e.allRoutes.length?5:-1)}}let ake=(()=>{class t{set showShortList(e){this.showShortList_=e,this.dataSorter.setData(this.filteredRoutes)}set routes(e){if(!e)return;const i=performance.now();console.log("[HV-DIAG] route-list setter called, routes:",e.length);const o=e.map(r=>r.key).sort().join(",");if(o===this.lastRouteKeys&&e.length===this.lastRouteCount)return this.cdr.markForCheck(),void console.log("[HV-DIAG] route-list skip (unchanged) took",(performance.now()-i).toFixed(1),"ms");console.log("[HV-DIAG] route-list FULL reprocessing",e.length,"routes"),this.lastRouteCount=e.length,this.lastRouteKeys=o,this.allRoutes=e,this.allRoutes.forEach(r=>{if(r.type=r.ruleSummary.ruleType||0===r.ruleSummary.ruleType?r.ruleSummary.ruleType:"",r.appFields||r.forwardFields){const s=r.appFields?r.appFields.routeDescriptor:r.forwardFields.routeDescriptor;r.src=s.srcPk,r.src_label=kc.getCompleteLabel(this.storageService,this.translateService,r.src),r.dst=s.dstPk,r.dst_label=kc.getCompleteLabel(this.storageService,this.translateService,r.dst)}else r.intermediaryForwardFields?(r.src="",r.src_label="",r.dst=r.intermediaryForwardFields.nextTid,r.dst_label=kc.getCompleteLabel(this.storageService,this.translateService,r.dst)):(r.src="",r.src_label="",r.dst="",r.dst_label="")}),this.dataFilterer.setData(this.allRoutes)}constructor(e,i,o,r,s,a,l,c){this.routeService=e,this.dialog=i,this.route=o,this.router=r,this.snackbarService=s,this.translateService=a,this.storageService=l,this.cdr=c,this.listId="rl",this.keySortData=new Dt(["key"],"routes.key",st.Number),this.typeSortData=new Dt(["type"],"routes.type",st.Number),this.sourceSortData=new Dt(["src"],"routes.source",st.Text,["src_label"]),this.destinationSortData=new Dt(["dst"],"routes.destination",st.Text,["dst_label"]),this.labeledElementTypes=ro,this.selections=new Map,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.lastRouteCount=-1,this.lastRouteKeys="",this.filterProperties=[{filterName:"routes.filter-dialog.key",keyNameInElementsArray:"key",type:Sn.TextInput,maxlength:8},{filterName:"routes.filter-dialog.source",keyNameInElementsArray:"src",secondaryKeyNameInElementsArray:"src_label",type:Sn.TextInput,maxlength:66},{filterName:"routes.filter-dialog.destination",keyNameInElementsArray:"dst",secondaryKeyNameInElementsArray:"dst_label",type:Sn.TextInput,maxlength:66}],this.ruleTypes=new Map([[0,"App"],[1,"Forward"],[2,"Int. forward"]]),this.operationSubscriptionsGroup=[],this.dataSorter=new gu(this.dialog,this.translateService,this.storageService,[this.keySortData,this.typeSortData,this.sourceSortData,this.destinationSortData],0,this.listId),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()});const m={filterName:"routes.filter-dialog.type",keyNameInElementsArray:"type",type:Sn.Select,printableLabelsForValues:[{value:"",label:"routes.filter-dialog.any-type-option"}]};this.ruleTypes.forEach((g,_)=>{m.printableLabelsForValues.push({value:_+"",label:g})}),this.filterProperties=[m].concat(this.filterProperties),this.dataFilterer=new _u(this.dialog,this.route,this.router,this.filterProperties,this.listId),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(g=>{this.filteredRoutes=g,this.dataSorter.setData(this.filteredRoutes)}),this.navigationsSubscription=this.route.paramMap.subscribe(g=>{if(g.has("page")){let _=Number.parseInt(g.get("page"),10);(isNaN(_)||_<1)&&(_=1),this.currentPageInUrl=_,this.recalculateElementsToShow()}})}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.operationSubscriptionsGroup.forEach(e=>e.unsubscribe()),this.dataSortedSubscription.unsubscribe(),this.dataFiltererSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFilterer.dispose()}refreshData(){ke.refreshCurrentDisplayedData()}getTypeName(e){return this.ruleTypes.has(e)?this.ruleTypes.get(e):"Unknown"}changeSelection(e){this.selections.get(e.key)?this.selections.set(e.key,!1):this.selections.set(e.key,!0)}hasSelectedElements(){if(!this.selections)return!1;let e=!1;return this.selections.forEach(i=>{i&&(e=!0)}),e}changeAllSelections(e){this.selections.forEach((i,o)=>{this.selections.set(o,e)})}deleteSelected(){const e=[];this.selections.forEach((i,o)=>{i&&e.push(o)}),0!==e.length&&this.deleteRecursively(e,null)}showOptionsDialog(e){ao.openDialog(this.dialog,[{icon:"visibility",label:"routes.details.title"},{icon:"close",label:"routes.delete"}],"common.options").afterClosed().subscribe(o=>{1===o?this.details(e):2===o&&this.delete(e.key)})}details(e){fSe.openDialog(this.dialog,e)}delete(e){this.operationSubscriptionsGroup.push(this.startDeleting(e).subscribe(()=>{ke.refreshCurrentDisplayedData(),this.snackbarService.showDone("routes.deleted")},i=>{i=Qe(i),this.snackbarService.showError(i)}))}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredRoutes){this.numberOfPages=1,this.currentPage=1,this.routesToShow=this.filteredRoutes.slice();const e=new Map;this.routesToShow.forEach(o=>{e.set(o.key,!0),this.selections.has(o.key)||this.selections.set(o.key,!1)});const i=[];this.selections.forEach((o,r)=>{e.has(r)||i.push(r)}),i.forEach(o=>{this.selections.delete(o)})}else this.routesToShow=null,this.selections=new Map;this.dataSource=this.routesToShow,this.cdr.markForCheck()}startDeleting(e){return this.routeService.delete(ke.getCurrentNodeKey(),e.toString())}deleteRecursively(e,i){this.operationSubscriptionsGroup.push(this.startDeleting(e[e.length-1]).subscribe(()=>{e.pop(),0===e.length?(i&&i.close(),ke.refreshCurrentDisplayedData(),this.snackbarService.showDone("routes.deleted")):this.deleteRecursively(e,i)},o=>{ke.refreshCurrentDisplayedData(),o=Qe(o),i?i.componentInstance.showDone("confirmation.error-header-text",o.translatableErrorMsg):this.snackbarService.showError(o)}))}static{this.\u0275fac=function(i){return new(i||t)(O(Ek),O(Ot),O(Ai),O(vt),O(ct),O(Go),O(ti),O(Jt))}}static{this.\u0275cmp=re({type:t,selectors:[["app-route-list"]],inputs:{nodePK:"nodePK",showShortList:"showShortList",routes:"routes"},standalone:!1,decls:21,vars:18,consts:[["selectionMenu","matMenu"],[1,"generic-title-container","mt-4.5","d-flex"],[1,"title"],[1,"uppercase"],[1,"filter-label","subtle-transparent-button","cursor-pointer"],[1,"options"],[1,"options-container"],[1,"small-icon",3,"inline","matTooltip"],[3,"matMenuTriggerFor"],[3,"overlapTrigger"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"click","disabled"],[1,"rounded-elevated-box","mt-3"],[1,"help","d-none","d-md-inline",3,"inline","matTooltip"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],[1,"item"],[1,"transparent-50"],[1,"small-icon",3,"click","inline","matTooltip"],[1,"box-internal-container","overflow",3,"ngClass"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table",3,"ngClass"],[1,"sortable-column",3,"click"],[3,"inline"],[1,"actions"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none",3,"ngClass"],[1,"selectable",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],[1,"selection-col"],[3,"change","checked"],[1,"mono"],[3,"id","elementType"],["mat-button","",1,"action-button","transparent-button",3,"click","matTooltip"],[3,"labelEdited","id","elementType"],[1,"check-part"],[1,"list-row","long-content"],[1,"margin-part"],["mat-icon-button","",1,"transparent-button",3,"click","matTooltip"],[1,"box-internal-container"],[1,"alert-icon",3,"inline"],[1,"font-sm"]],template:function(i,o){1&i&&(h(0,"div",1)(1,"div",2),x(2,SSe,6,7,"span",3),x(3,TSe,6,3,"div",4),u(),h(4,"div",5)(5,"div",6),x(6,ESe,3,4,"mat-icon",7),x(7,PSe,2,1,"mat-icon",8),h(8,"mat-menu",9,0)(10,"div",10),F("click",function(){return o.changeAllSelections(!0)}),p(11),b(12,"translate"),u(),h(13,"div",10),F("click",function(){return o.changeAllSelections(!1)}),p(14),b(15,"translate"),u(),h(16,"div",11),F("click",function(){return o.deleteSelected()}),p(17),b(18,"translate"),u()()()()(),x(19,ike,53,46,"div",12),x(20,ske,6,3,"div",12)),2&i&&(d(2),S(o.showShortList_?2:-1),d(),S(o.dataFilterer.currentFiltersTexts&&o.dataFilterer.currentFiltersTexts.length>0?3:-1),d(3),S(o.allRoutes&&o.allRoutes.length>0?6:-1),d(),S(o.dataSource&&o.dataSource.length>0?7:-1),d(),C("overlapTrigger",!1),d(3),E(" ",y(12,12,"selection.select-all")," "),d(3),E(" ",y(15,14,"selection.unselect-all")," "),d(2),C("disabled",Qt(!o.hasSelectedElements())),d(),E(" ",y(18,16,"selection.delete-all")," "),d(2),S(o.dataSource&&o.dataSource.length>0?19:-1),d(),S(o.dataSource&&0!==o.dataSource.length?-1:20))},dependencies:[$t,Pn,Wo,We,Kt,Jr,As,vu,kr,kc,Vl,xe],styles:[".actions[_ngcontent-%COMP%]{text-align:right;width:90px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}"],changeDetection:0})}}return t})();function lke(t,n){if(1&t){const e=oe();h(0,"form",12),F("ngSubmit",function(){return j(e),U(v(2).submitRouterConfig())}),h(1,"mat-form-field",13)(2,"mat-label"),p(3),b(4,"translate"),u(),B(5,"input",14),u(),h(6,"div",15)(7,"button",16),p(8),b(9,"translate"),u(),h(10,"button",17),F("click",function(){return j(e),U(v(2).toggleRouterForm())}),p(11),b(12,"translate"),u()()()}if(2&t){const e=v(2);C("formGroup",e.routerForm),d(3),M(y(4,5,"node.details.router-info.min-hops")),d(4),C("disabled",!e.routerForm.valid),d(),E(" ",y(9,7,"common.save")," "),d(3),E(" ",y(12,9,"common.cancel")," ")}}function cke(t,n){if(1&t){const e=oe();h(0,"div",0)(1,"div",6)(2,"span",4),p(3),b(4,"translate"),u(),h(5,"span",7)(6,"span",8),p(7),b(8,"translate"),u(),p(9),h(10,"button",9),F("click",function(){return j(e),U(v().toggleRouterForm())}),h(11,"mat-icon",10),p(12),u()()(),x(13,lke,13,11,"form",11),u()()}if(2&t){const e=v();d(3),M(y(4,6,"node.details.router-info.title")),d(4),E("",y(8,8,"node.details.router-info.min-hops")," "),d(2),E(" ",e.node.minHops," "),d(2),C("inline",!0),d(),M(e.showRouterForm?"close":"edit"),d(),S(e.showRouterForm?13:-1)}}let dke=(()=>{class t extends pn{constructor(e,i,o){super(),this.formBuilder=e,this.routeService=i,this.snackbarService=o,this.showRouterForm=!1,this.routerForm=this.formBuilder.group({min:[1,Ne.compose([Ne.required,Ne.maxLength(3),Ne.pattern("^[0-9]+$")])]})}ngOnInit(){return this.dataSubscription=ke.currentNode.subscribe(e=>{this.nodePK=e.localPk,this.node=e,this.routes=e.routes}),this.trafficSubscription=ke.currentTrafficData.subscribe(e=>{this.trafficData=e}),super.ngOnInit()}ngOnDestroy(){this.dataSubscription.unsubscribe(),this.trafficSubscription?.unsubscribe(),this.saveRouterSubscription?.unsubscribe()}toggleRouterForm(){this.showRouterForm=!this.showRouterForm,this.showRouterForm&&this.node&&this.routerForm.get("min").setValue(this.node.minHops)}submitRouterConfig(){if(!this.routerForm.valid||!this.node)return;const e=parseInt(this.routerForm.get("min").value,10);this.saveRouterSubscription=this.routeService.setMinHops(this.node.localPk,e).subscribe({next:()=>{this.snackbarService.showDone("router-config.done"),this.showRouterForm=!1,ke.refreshCurrentDisplayedData()},error:i=>{i=Qe(i),this.snackbarService.showError(i)}})}static{this.\u0275fac=function(i){return new(i||t)(O(di),O(Ek),O(ct))}}static{this.\u0275cmp=re({type:t,selectors:[["app-routing"]],standalone:!1,features:[be],decls:8,vars:8,consts:[[1,"rounded-elevated-box","mt-3"],[3,"routes","showShortList","nodePK"],[1,"rounded-elevated-box","mt-3","traffic-box"],[1,"box-internal-container"],[1,"section-title"],[1,"d-flex","flex-column","justify-content-end","mt-3",3,"trafficData"],[1,"box-internal-container","overflow","font-smaller"],[1,"info-line"],[1,"title"],["mat-icon-button","",1,"inline-edit-btn",3,"click"],[3,"inline"],[1,"inline-form",3,"formGroup"],[1,"inline-form",3,"ngSubmit","formGroup"],["appearance","outline",1,"inline-form-field-sm"],["matInput","","type","number","formControlName","min","min","0","max","999"],[1,"inline-form-actions"],["mat-raised-button","","color","primary","type","submit",3,"disabled"],["mat-button","","type","button",3,"click"]],template:function(i,o){1&i&&(x(0,cke,14,10,"div",0),B(1,"app-route-list",1),h(2,"div",2)(3,"div",3)(4,"span",4),p(5),b(6,"translate"),u(),B(7,"app-charts",5),u()()),2&i&&(S(o.node?0:-1),d(),C("routes",o.routes)("showShortList",!0)("nodePK",o.nodePK),d(4),M(y(6,6,"node.details.node-traffic-data")),d(2),C("trafficData",o.trafficData))},dependencies:[xn,Gt,rc,qt,wn,tp,sv,on,mn,sn,Os,In,Pn,Wo,We,sSe,ake,xe],encapsulation:2})}}return t})();function uke(t,n){if(1&t&&(h(0,"mat-option",5),p(1),b(2,"translate"),u()),2&t){const e=n.$implicit;C("value",e.days),d(),M(y(2,2,e.text))}}let hke=(()=>{class t{static openDialog(e,i){const o=new nn;return o.data=i,o.autoFocus=!1,o.width=rt.smallModalWidth,e.open(t,o)}constructor(e,i,o){this.data=e,this.dialogRef=i,this.formBuilder=o}ngOnInit(){this.filters=[{text:"apps.log.filter.7-days",days:7},{text:"apps.log.filter.1-month",days:30},{text:"apps.log.filter.3-months",days:90},{text:"apps.log.filter.6-months",days:180},{text:"apps.log.filter.1-year",days:365},{text:"apps.log.filter.all",days:-1}],this.form=this.formBuilder.group({filter:[this.data.days]}),this.formSubscription=this.form.get("filter").valueChanges.subscribe(e=>{this.dialogRef.close(this.filters.find(i=>i.days===e))})}ngOnDestroy(){this.formSubscription.unsubscribe()}static{this.\u0275fac=function(i){return new(i||t)(O(En),O(Bt),O(di))}}static{this.\u0275cmp=re({type:t,selectors:[["app-log-filter"]],standalone:!1,decls:11,vars:8,consts:[[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","filter"],[3,"value"]],template:function(i,o){1&i&&(h(0,"app-dialog",0),b(1,"translate"),h(2,"form",1)(3,"mat-form-field")(4,"div",2)(5,"label",3),p(6),b(7,"translate"),u(),h(8,"mat-select",4),ve(9,uke,3,4,"mat-option",5,Fe),u()()()()()),2&i&&(C("headline",y(1,4,"apps.log.filter.title"))("dialog",o.dialogRef),d(2),C("formGroup",o.form),d(4),M(y(7,6,"apps.log.filter.filter")),d(3),ye(o.filters))},dependencies:[xn,qt,wn,on,mn,sn,Pa,Qr,gn,xe],styles:["mat-form-field[_ngcontent-%COMP%]{margin-bottom:-24px}"]})}}return t})();const fke=["content"],pke=t=>({totalLogs:t});function mke(t,n){if(1&t&&(h(0,"app-button",7)(1,"div",11),p(2),b(3,"translate"),u()()),2&t){const e=v();d(2),E(" ",pe(3,1,"apps.log.view-all",se(4,pke,e.totalLogs))," ")}}function gke(t,n){if(1&t&&(h(0,"div",8)(1,"span",12),p(2),u(),p(3),u()),2&t){const e=n.$implicit;d(2),E(" ",e.time," "),d(),E(" ",e.msg," ")}}function _ke(t,n){1&t&&(h(0,"div",9),p(1),b(2,"translate"),u()),2&t&&(d(),E(" ",y(2,1,"apps.log.empty")," "))}function bke(t,n){1&t&&B(0,"app-loading-indicator",10),2&t&&C("showWhite",!1)}let vke=(()=>{class t{static openDialog(e,i){const o=new nn;return o.data=i,o.autoFocus=!1,o.width=rt.largeModalWidth,e.open(t,o)}constructor(e,i,o,r,s,a){this.data=e,this.dialogRef=i,this.appsService=o,this.dialog=r,this.snackbarService=s,this.apiService=a,this.logMessages=[],this.hasMoreLogMessages=!1,this.totalLogs=0,this.loading=!1,this.currentFilter={text:"apps.log.filter.7-days",days:7},this.shouldShowError=!0}ngOnInit(){this.loadData(0)}ngOnDestroy(){this.removeSubscription()}filter(){hke.openDialog(this.dialog,this.currentFilter).afterClosed().subscribe(e=>{e&&(this.currentFilter=e,this.logMessages=[],this.loadData(0))})}getLogsUrl(){return"/"+this.apiService.apiPrefix+this.appsService.getLogMessagesUrl(ke.getCurrentNodeKey(),this.data.name)}loadData(e){this.removeSubscription(),this.loading=!0,this.subscription=ae(1).pipe(li(e),It(()=>this.appsService.getLogMessages(ke.getCurrentNodeKey(),this.data.name,this.currentFilter.days))).subscribe(i=>this.onLogsReceived(i),i=>this.onLogsError(i))}removeSubscription(){this.subscription&&this.subscription.unsubscribe()}onLogsReceived(e=[]){this.loading=!1,this.shouldShowError=!0,this.snackbarService.closeCurrentIfTemporaryError();let i=0;this.hasMoreLogMessages=!1,this.totalLogs=e.length,e.forEach(o=>{if(i<5e3){const r=o.startsWith("[")?0:-1,s=-1!==r?o.indexOf("]"):-1;this.logMessages.push(-1!==r&&-1!==s?{time:o.substr(r,s+1),msg:o.substr(s+1)}:{time:"",msg:o})}else this.hasMoreLogMessages=!0;i+=1}),setTimeout(()=>{this.content.nativeElement.scrollTop=this.content.nativeElement.scrollHeight})}onLogsError(e){e=Qe(e),this.shouldShowError&&(this.snackbarService.showError("common.loading-error",null,!0,e),this.shouldShowError=!1),this.loadData(rt.connectionRetryDelay)}static{this.\u0275fac=function(i){return new(i||t)(O(En),O(Bt),O(Rs),O(Ot),O(ct),O(zi))}}static{this.\u0275cmp=re({type:t,selectors:[["app-log"]],viewQuery:function(i,o){if(1&i&&ot(fke,5),2&i){let r;he(r=fe())&&(o.content=r.first)}},standalone:!1,decls:20,vars:16,consts:[["content",""],[3,"headline","includeVerticalMargins","includeScrollableArea","dialog"],[1,"top-dialog-button",3,"click"],[1,"top-dialog-button-content"],[1,"actual-value"],[1,"top-dialog-button-margin"],["target","_blank",3,"href"],["color","primary",1,"full-logs-button"],[1,"app-log-message"],[1,"app-log-empty","mt-3"],[3,"showWhite"],[1,"text-container"],[1,"transparent"]],template:function(i,o){1&i&&(h(0,"app-dialog",1),b(1,"translate"),h(2,"div",2),F("click",function(){return o.filter()}),h(3,"div",3)(4,"div")(5,"span"),p(6),b(7,"translate"),u(),h(8,"span",4),p(9),b(10,"translate"),u()()(),B(11,"div",5),u(),h(12,"mat-dialog-content",null,0)(14,"a",6),x(15,mke,4,6,"app-button",7),u(),ve(16,gke,4,2,"div",8,Fe),x(18,_ke,3,3,"div",9),x(19,bke,1,1,"app-loading-indicator",10),u()()),2&i&&(C("headline",y(1,10,"apps.log.title"))("includeVerticalMargins",!1)("includeScrollableArea",!1)("dialog",o.dialogRef),d(6),E("",y(7,12,"apps.log.filter-button")," "),d(3),M(y(10,14,o.currentFilter.text)),d(5),C("href",o.getLogsUrl(),mo),d(),S(o.hasMoreLogMessages?15:-1),d(),ye(o.logMessages),d(2),S(o.loading||o.logMessages&&0!==o.logMessages.length?-1:18),d(),S(o.loading?19:-1))},dependencies:[Jd,ui,gn,Yr,xe],styles:[".mat-mdc-dialog-content[_ngcontent-%COMP%]{font-size:.875rem}.app-log-message[_ngcontent-%COMP%]{margin-top:15px;word-break:break-word}.app-log-message[_ngcontent-%COMP%] .transparent[_ngcontent-%COMP%]{color:#999}.app-log-message[_ngcontent-%COMP%]:first-of-type{margin-top:0}.app-log-message[_ngcontent-%COMP%]:last-of-type{margin-bottom:24px}.top-dialog-button[_ngcontent-%COMP%]{color:#777!important}.top-dialog-button[_ngcontent-%COMP%] .top-dialog-button-content[_ngcontent-%COMP%]{text-align:center}.top-dialog-button[_ngcontent-%COMP%] .top-dialog-button-content[_ngcontent-%COMP%] .actual-value[_ngcontent-%COMP%]{color:#202226}.full-logs-button[_ngcontent-%COMP%] button{width:100%!important;display:block;text-align:center;margin-bottom:15px}.full-logs-button[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]{width:100%}"]})}}return t})();const yke=["button"],Cke=["firstInput"],vD=t=>({"element-disabled":t});function wke(t,n){if(1&t&&(h(0,"mat-form-field",4)(1,"div",5)(2,"label",10),p(3),b(4,"translate"),u(),B(5,"input",11),u()()),2&t){const e=v();C("ngClass",se(4,vD,e.disableDismiss)),d(3),M(y(4,2,"apps.vpn-socks-server-settings.netifc"))}}function xke(t,n){if(1&t){const e=oe();h(0,"div",8)(1,"mat-checkbox",12),F("change",function(o){return j(e),U(v().setSecureMode(o))}),p(2),b(3,"translate"),h(4,"mat-icon",13),b(5,"translate"),p(6,"help"),u()()()}if(2&t){const e=v();d(),C("checked",e.secureMode)("ngClass",se(9,vD,e.disableDismiss)),d(),E(" ",y(3,5,"apps.vpn-socks-server-settings.secure-mode-check")," "),d(2),C("inline",!0)("matTooltip",y(5,7,"apps.vpn-socks-server-settings.secure-mode-info"))}}let Ske=(()=>{class t{static openDialog(e,i){const o=new nn;return o.data=i,o.autoFocus=!1,o.width=rt.mediumModalWidth,e.open(t,o)}constructor(e,i,o,r,s,a){this.data=e,this.appsService=i,this.formBuilder=o,this.dialogRef=r,this.snackbarService=s,this.dialog=a,this.configuringVpn=!1,this.secureMode=!1,-1!==e.name.toLocaleLowerCase().indexOf("vpn")&&(this.configuringVpn=!0)}ngOnInit(){if(this.form=this.formBuilder.group({whitelist:["",this.validateWhitelist.bind(this)],netifc:[""]}),this.data.args&&this.data.args.length>0)for(let e=0;ethis.firstInput.nativeElement.focus())}ngOnDestroy(){this.formSubscription&&this.formSubscription.unsubscribe(),this.operationSubscription&&this.operationSubscription.unsubscribe()}get disableDismiss(){return!!this.button&&this.button.isLoading}setSecureMode(e){this.button.disabled||(this.secureMode=!!e.checked)}saveChanges(){if(!this.form.valid||this.button.disabled)return;const i=this.normalizedWhitelist()?"apps.vpn-socks-server-settings.set-whitelist-confirmation":"apps.vpn-socks-server-settings.clear-whitelist-confirmation",o=Rt.createConfirmationDialog(this.dialog,i);o.componentInstance.operationAccepted.subscribe(()=>{o.close(),this.continueSavingChanges()})}continueSavingChanges(){this.button.showLoading();const e={whitelist:this.normalizedWhitelist()};this.configuringVpn&&(e.secure=this.secureMode,e.netifc=this.form.get("netifc").value),this.operationSubscription=this.appsService.changeAppSettings(ke.getCurrentNodeKey(),this.data.name,e).subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)})}normalizedWhitelist(){const e=(this.form.get("whitelist").value||"").trim();return""===e?"":e.split(/[\s,]+/).filter(i=>i.length>0).join(",")}onSuccess(){ke.refreshCurrentDisplayedData(),this.snackbarService.showDone("apps.vpn-socks-server-settings.changes-made"),this.dialogRef.close()}onError(e){this.button.showError(),e=Qe(e),this.snackbarService.showError(e)}validateWhitelist(e){const i=(e&&(e.value||"")).trim();if(""===i)return null;for(const o of i.split(/[\s,]+/))if(""!==o&&(66!==o.length||!/^[0-9a-fA-F]+$/.test(o)))return{invalid:!0};return null}static{this.\u0275fac=function(i){return new(i||t)(O(En),O(Rs),O(di),O(Bt),O(ct),O(Ot))}}static{this.\u0275cmp=re({type:t,selectors:[["app-skysocks-settings"]],viewQuery:function(i,o){if(1&i&&ot(yke,5)(Cke,5),2&i){let r;he(r=fe())&&(o.button=r.first),he(r=fe())&&(o.firstInput=r.first)}},standalone:!1,decls:23,vars:24,consts:[["firstInput",""],["button",""],[3,"headline","dialog","disableDismiss"],[3,"formGroup"],[3,"ngClass"],[1,"field-container"],["for","whitelist",1,"field-label"],["id","whitelist","formControlName","whitelist","rows","3","matInput","","placeholder","02abc..., 03def..."],[1,"main-theme","settings-option"],["color","primary",1,"float-right",3,"action","disabled"],["for","remoteKey",1,"field-label"],["id","netifc","type","text","formControlName","netifc","matInput",""],["color","primary",3,"change","checked","ngClass"],[1,"help-icon",3,"inline","matTooltip"]],template:function(i,o){1&i&&(h(0,"app-dialog",2),b(1,"translate"),h(2,"form",3)(3,"mat-form-field",4)(4,"div",5)(5,"label",6),p(6),b(7,"translate"),u(),B(8,"textarea",7,0),u(),h(10,"mat-hint"),p(11),b(12,"translate"),u(),h(13,"mat-error")(14,"span"),p(15),b(16,"translate"),u()()(),x(17,wke,6,6,"mat-form-field",4),x(18,xke,7,11,"div",8),u(),h(19,"app-button",9,1),F("action",function(){return o.saveChanges()}),p(21),b(22,"translate"),u()()),2&i&&(C("headline",y(1,12,"apps.vpn-socks-server-settings."+(o.configuringVpn?"vpn-title":"socks-title")))("dialog",o.dialogRef)("disableDismiss",o.disableDismiss),d(2),C("formGroup",o.form),d(),C("ngClass",se(22,vD,o.disableDismiss)),d(3),M(y(7,14,"apps.vpn-socks-server-settings.whitelist")),d(5),M(y(12,16,"apps.vpn-socks-server-settings.whitelist-help")),d(4),M(y(16,18,"apps.vpn-socks-server-settings.whitelist-invalid-pk")),d(2),S(o.configuringVpn?17:-1),d(),S(o.configuringVpn?18:-1),d(),C("disabled",!o.form.valid),d(2),E(" ",y(22,20,"apps.vpn-socks-server-settings.save")," "))},dependencies:[$t,xn,Gt,qt,wn,on,mn,sn,uk,Ma,In,We,Kt,kr,ui,gn,xe],styles:["mat-checkbox[_ngcontent-%COMP%]{margin-bottom:15px}"]})}}return t})();const kke=["firstInput"];let Dke=(()=>{class t{static openDialog(e,i){const o=new nn;return o.data=i||"",o.autoFocus=!1,o.width=rt.smallModalWidth,e.open(t,o)}constructor(e,i,o){this.dialogRef=e,this.data=i,this.formBuilder=o}ngOnInit(){this.form=this.formBuilder.group({note:[this.data]}),setTimeout(()=>this.firstInput.nativeElement.focus())}finish(){const e=this.form.get("note").value.trim();this.dialogRef.close("-"+e)}static{this.\u0275fac=function(i){return new(i||t)(O(Bt),O(En),O(di))}}static{this.\u0275cmp=re({type:t,selectors:[["app-edit-skysocks-client-note"]],viewQuery:function(i,o){if(1&i&&ot(kke,5),2&i){let r;he(r=fe())&&(o.firstInput=r.first)}},standalone:!1,decls:13,vars:11,consts:[["firstInput",""],[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","note","maxlength","100","matInput",""],["color","primary","type","mat-raised-button",1,"float-right",3,"action"]],template:function(i,o){1&i&&(h(0,"app-dialog",1),b(1,"translate"),h(2,"form",2)(3,"mat-form-field")(4,"div",3)(5,"label",4),p(6),b(7,"translate"),u(),B(8,"input",5,0),u()()(),h(10,"app-button",6),F("action",function(){return o.finish()}),p(11),b(12,"translate"),u()()),2&i&&(C("headline",y(1,5,"apps.vpn-socks-client-settings.change-note-dialog.title"))("dialog",o.dialogRef),d(2),C("formGroup",o.form),d(4),M(y(7,7,"apps.vpn-socks-client-settings.change-note-dialog.note")),d(5),M(y(12,9,"common.save")))},dependencies:[xn,Gt,qt,wn,wi,on,mn,sn,In,ui,gn,xe],encapsulation:2})}}return t})();function Mke(t,n){if(1&t&&p(0),2&t){const e=v().$implicit;E(" ",v(2).completeCountriesList[e.toUpperCase()]," ")}}function Tke(t,n){1&t&&p(0),2&t&&E(" ",v().$implicit.toUpperCase()," ")}function Eke(t,n){if(1&t&&(h(0,"mat-option",9)(1,"div",10),B(2,"div"),u(),x(3,Mke,1,1),x(4,Tke,1,1),u()),2&t){const e=n.$implicit,i=v(2);C("value",e.toUpperCase()),d(2),no("background-image: url('assets/img/flags/"+e.toLocaleLowerCase()+".png');"),d(),S(i.completeCountriesList[e.toUpperCase()]?3:-1),d(),S(i.completeCountriesList[e.toUpperCase()]?-1:4)}}function Pke(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"apps.vpn-socks-client-settings.filter-dialog.any-country")," ")}function Ike(t,n){if(1&t&&p(0),2&t){const e=v(3);E(" ",e.completeCountriesList[e.form.get("country").value]," ")}}function Oke(t,n){1&t&&p(0),2&t&&E(" ",v(3).form.get("country").value," ")}function Ake(t,n){if(1&t&&(h(0,"div",10),B(1,"div"),u(),x(2,Ike,1,1),x(3,Oke,1,1)),2&t){const e=v(2);d(),no("background-image: url('assets/img/flags/"+e.form.get("country").value.toLocaleLowerCase()+".png');"),d(),S(e.completeCountriesList[e.form.get("country").value]?2:-1),d(),S(e.completeCountriesList[e.form.get("country").value]?-1:3)}}function Rke(t,n){if(1&t&&(h(0,"mat-form-field")(1,"div",3)(2,"label",4),p(3),b(4,"translate"),u(),h(5,"mat-select",8)(6,"mat-option",9),p(7),b(8,"translate"),u(),ve(9,Eke,5,5,"mat-option",9,Fe),h(11,"mat-select-trigger"),x(12,Pke,2,3),x(13,Ake,4,4),u()()()()),2&t){const e=v();d(3),M(y(4,5,"apps.vpn-socks-client-settings.filter-dialog.country")),d(3),C("value","-"),d(),M(y(8,7,"apps.vpn-socks-client-settings.filter-dialog.any-country")),d(2),ye(e.data.availableCountries),d(3),S("-"===e.form.get("country").value?12:-1),d(),S("-"!==e.form.get("country").value?13:-1)}}class qH{constructor(){this.country="",this.location="",this.key=""}}let Fke=(()=>{class t{static openDialog(e,i){const o=new nn;return o.data=i,o.autoFocus=!1,o.width=rt.smallModalWidth,e.open(t,o)}constructor(e,i,o){this.data=e,this.dialogRef=i,this.formBuilder=o,this.completeCountriesList=es}ngOnInit(){this.form=this.formBuilder.group({country:[this.data.currentFilters.country?this.data.currentFilters.country:"-"],"location-text":[this.data.currentFilters.location],"key-text":[this.data.currentFilters.key]})}apply(){const e=new qH;let i=this.form.get("country").value.trim();"-"===i&&(i=""),e.country=i,e.location=this.form.get("location-text").value.trim(),e.key=this.form.get("key-text").value.trim(),this.dialogRef.close(e)}static{this.\u0275fac=function(i){return new(i||t)(O(En),O(Bt),O(di))}}static{this.\u0275cmp=re({type:t,selectors:[["app-skysocks-client-filter"]],standalone:!1,decls:20,vars:15,consts:[["button",""],[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","location-text","maxlength","100","matInput",""],["formControlName","key-text","maxlength","66","matInput",""],["type","mat-raised-button","color","primary",1,"float-right",3,"action"],["formControlName","country","id","country"],[3,"value"],[1,"flag-container"]],template:function(i,o){1&i&&(h(0,"app-dialog",1),b(1,"translate"),h(2,"form",2),x(3,Rke,14,9,"mat-form-field"),h(4,"mat-form-field")(5,"div",3)(6,"label",4),p(7),b(8,"translate"),u(),B(9,"input",5),u()(),h(10,"mat-form-field")(11,"div",3)(12,"label",4),p(13),b(14,"translate"),u(),B(15,"input",6),u()()(),h(16,"app-button",7,0),F("action",function(){return o.apply()}),p(18),b(19,"translate"),u()()),2&i&&(C("headline",y(1,7,"apps.vpn-socks-client-settings.filter-dialog.title"))("dialog",o.dialogRef),d(2),C("formGroup",o.form),d(),S(o.data.availableCountries.length>0?3:-1),d(4),M(y(8,9,"apps.vpn-socks-client-settings.filter-dialog.location")),d(6),M(y(14,11,"apps.vpn-socks-client-settings.filter-dialog.pub-key")),d(5),E(" ",y(19,13,"apps.vpn-socks-client-settings.filter-dialog.apply")," "))},dependencies:[xn,Gt,qt,wn,wi,on,mn,sn,In,Pa,Gme,Qr,ui,gn,xe],encapsulation:2})}}return t})();const Nke=["firstInput"];let Lke=(()=>{class t{static openDialog(e){const i=new nn;return i.autoFocus=!1,i.width=rt.smallModalWidth,e.open(t,i)}constructor(e,i){this.dialogRef=e,this.formBuilder=i}ngOnInit(){this.form=this.formBuilder.group({password:[""]}),setTimeout(()=>this.firstInput.nativeElement.focus())}finish(){const e=this.form.get("password").value;this.dialogRef.close("-"+e)}static{this.\u0275fac=function(i){return new(i||t)(O(Bt),O(di))}}static{this.\u0275cmp=re({type:t,selectors:[["app-skysocks-client-password"]],viewQuery:function(i,o){if(1&i&&ot(Nke,5),2&i){let r;he(r=fe())&&(o.firstInput=r.first)}},standalone:!1,decls:16,vars:14,consts:[["firstInput",""],[3,"headline","dialog"],[3,"formGroup"],[1,"info"],[1,"field-container"],["for","remoteKey",1,"field-label"],["type","password","id","password","formControlName","password","maxlength","100","matInput",""],["color","primary","type","mat-raised-button",1,"float-right",3,"action"]],template:function(i,o){1&i&&(h(0,"app-dialog",1),b(1,"translate"),h(2,"form",2)(3,"div",3),p(4),b(5,"translate"),u(),h(6,"mat-form-field")(7,"div",4)(8,"label",5),p(9),b(10,"translate"),u(),B(11,"input",6,0),u()()(),h(13,"app-button",7),F("action",function(){return o.finish()}),p(14),b(15,"translate"),u()()),2&i&&(C("headline",y(1,6,"apps.vpn-socks-client-settings.password-dialog.title"))("dialog",o.dialogRef),d(2),C("formGroup",o.form),d(2),M(y(5,8,"apps.vpn-socks-client-settings.password-dialog.info")),d(5),M(y(10,10,"apps.vpn-socks-client-settings.password-dialog.password")),d(5),E(" ",y(15,12,"apps.vpn-socks-client-settings.password-dialog.continue-button")," "))},dependencies:[xn,Gt,qt,wn,wi,on,mn,sn,In,ui,gn,xe],styles:[".info[_ngcontent-%COMP%]{font-size:.7rem;margin-bottom:15px}"]})}}return t})(),Bke=(()=>{class t{constructor(e){this.http=e,this.discoveryServiceUrl="https://sd.skycoin.com/api/services?type="}getServices(e){const i=[];return this.http.get(this.discoveryServiceUrl+(e?"proxy":"vpn")).pipe(ip(o=>o.pipe(li(4e3))),Se(o=>(o||(o=[]),o.forEach(r=>{const s=new nme,a=r.address.split(":");2===a.length&&(s.address=r.address,s.pk=a[0],s.port=a[1],s.location="",r.geo&&(r.geo.country&&(s.country=r.geo.country,s.location+=es[r.geo.country.toUpperCase()]?es[r.geo.country.toUpperCase()]:r.geo.country),r.geo.region&&r.geo.country&&(s.location+=", "),r.geo.region&&(s.region=r.geo.region,s.location+=s.region)),i.push(s))}),i)))}static{this.\u0275fac=function(i){return new(i||t)(ce(ba))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const yD=["*"];function Vke(t,n){1&t&&Pt(0)}const Hke=["tabListContainer"],jke=["tabList"],Uke=["tabListInner"],zke=["nextPaginator"],$ke=["previousPaginator"],Wke=["content"];function Gke(t,n){}const qke=["tabBodyWrapper"],Kke=["tabHeader"];function Yke(t,n){}function Xke(t,n){1&t&&it(0,Yke,0,0,"ng-template",12),2&t&&C("cdkPortalOutlet",v().$implicit.templateLabel)}function Zke(t,n){1&t&&p(0),2&t&&M(v().$implicit.textLabel)}function Qke(t,n){if(1&t){const e=oe();h(0,"div",7,2),F("click",function(){const o=j(e),r=o.$implicit,s=o.$index,a=v(),l=Hn(1);return U(a._handleClick(r,l,s))})("cdkFocusChange",function(o){const r=j(e).$index;return U(v()._tabFocusChanged(o,r))}),B(2,"span",8)(3,"div",9),h(4,"span",10)(5,"span",11),x(6,Xke,1,1,null,12)(7,Zke,1,1),u()()()}if(2&t){const e=n.$implicit,i=n.$index,o=Hn(1),r=v();Ze(e.labelClass),Ie("mdc-tab--active",r.selectedIndex===i),C("id",r._getTabLabelId(e,i))("disabled",e.disabled)("fitInkBarToContent",r.fitInkBarToContent),$e("tabIndex",r._getTabIndex(i))("aria-posinset",i+1)("aria-setsize",r._tabs.length)("aria-controls",r._getTabContentId(i))("aria-selected",r.selectedIndex===i)("aria-label",e.ariaLabel||null)("aria-labelledby",!e.ariaLabel&&e.ariaLabelledby?e.ariaLabelledby:null),d(3),C("matRippleTrigger",o)("matRippleDisabled",e.disabled||r.disableRipple),d(3),S(e.templateLabel?6:7)}}function Jke(t,n){1&t&&Pt(0)}function eDe(t,n){if(1&t){const e=oe();h(0,"mat-tab-body",13),F("_onCentered",function(){return j(e),U(v()._removeTabBodyWrapperHeight())})("_onCentering",function(o){return j(e),U(v()._setTabBodyWrapperHeight(o))})("_beforeCentering",function(o){return j(e),U(v()._bodyCentered(o))}),u()}if(2&t){const e=n.$implicit,i=n.$index,o=v();Ze(e.bodyClass),C("id",o._getTabContentId(i))("content",e.content)("position",e.position)("animationDuration",o.animationDuration)("preserveContent",o.preserveContent),$e("tabindex",null!=o.contentTabIndex&&o.selectedIndex===i?o.contentTabIndex:null)("aria-labelledby",o._getTabLabelId(e,i))("aria-hidden",o.selectedIndex!==i)}}const tDe=new Z("MatTabContent");let nDe=(()=>{class t{template=D(Ti);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","matTabContent",""]],features:[lt([{provide:tDe,useExisting:t}])]})}return t})();const iDe=new Z("MatTabLabel"),KH=new Z("MAT_TAB");let oDe=(()=>{class t extends Bce{_closestTab=D(KH,{optional:!0});static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275dir=de({type:t,selectors:[["","mat-tab-label",""],["","matTabLabel",""]],features:[lt([{provide:iDe,useExisting:t}]),be]})}return t})();const YH=new Z("MAT_TAB_GROUP");let XH=(()=>{class t{_viewContainerRef=D(Ei);_closestTabGroup=D(YH,{optional:!0});disabled=!1;get templateLabel(){return this._templateLabel}set templateLabel(e){this._setTemplateLabelInput(e)}_templateLabel;_explicitContent=void 0;_implicitContent;textLabel="";ariaLabel;ariaLabelledby;labelClass;bodyClass;id=null;_contentPortal=null;get content(){return this._contentPortal}_stateChanges=new me;position=null;origin=null;isActive=!1;constructor(){D(zo).load(tu)}ngOnChanges(e){(e.hasOwnProperty("textLabel")||e.hasOwnProperty("disabled"))&&this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}ngOnInit(){this._contentPortal=new Yl(this._explicitContent||this._implicitContent,this._viewContainerRef)}_setTemplateLabelInput(e){e&&e._closestTab===this&&(this._templateLabel=e)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["mat-tab"]],contentQueries:function(i,o,r){if(1&i&&ys(r,oDe,5)(r,nDe,7,Ti),2&i){let s;he(s=fe())&&(o.templateLabel=s.first),he(s=fe())&&(o._explicitContent=s.first)}},viewQuery:function(i,o){if(1&i&&ot(Ti,7),2&i){let r;he(r=fe())&&(o._implicitContent=r.first)}},hostAttrs:["hidden",""],hostVars:1,hostBindings:function(i,o){2&i&&$e("id",null)},inputs:{disabled:[2,"disabled","disabled",De],textLabel:[0,"label","textLabel"],ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],labelClass:"labelClass",bodyClass:"bodyClass",id:"id"},exportAs:["matTab"],features:[lt([{provide:KH,useExisting:t}]),_i],ngContentSelectors:yD,decls:1,vars:0,template:function(i,o){1&i&&(yi(),Eg(0,Vke,1,0,"ng-template"))},encapsulation:2})}return t})();const CD="mdc-tab-indicator--active",ZH="mdc-tab-indicator--no-transition";class rDe{_items;_currentItem;constructor(n){this._items=n}hide(){this._items.forEach(n=>n.deactivateInkBar()),this._currentItem=void 0}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}}}let sDe=(()=>{class t{_elementRef=D(Re);_inkBarElement=null;_inkBarContentElement=null;_fitToContent=!1;get fitInkBarToContent(){return this._fitToContent}set fitInkBarToContent(e){this._fitToContent!==e&&(this._fitToContent=e,this._inkBarElement&&this._appendInkBarElement())}activateInkBar(e){const i=this._elementRef.nativeElement;if(!e||!i.getBoundingClientRect||!this._inkBarContentElement)return void i.classList.add(CD);const o=i.getBoundingClientRect(),r=e.width/o.width,s=e.left-o.left;i.classList.add(ZH),this._inkBarContentElement.style.setProperty("transform",`translateX(${s}px) scaleX(${r})`),i.getBoundingClientRect(),i.classList.remove(ZH),i.classList.add(CD),this._inkBarContentElement.style.setProperty("transform","")}deactivateInkBar(){this._elementRef.nativeElement.classList.remove(CD)}ngOnInit(){this._createInkBarElement()}ngOnDestroy(){this._inkBarElement?.remove(),this._inkBarElement=this._inkBarContentElement=null}_createInkBarElement(){const e=this._elementRef.nativeElement.ownerDocument||document,i=this._inkBarElement=e.createElement("span"),o=this._inkBarContentElement=e.createElement("span");i.className="mdc-tab-indicator",o.className="mdc-tab-indicator__content mdc-tab-indicator__content--underline",i.appendChild(this._inkBarContentElement),this._appendInkBarElement()}_appendInkBarElement(){(this._fitToContent?this._elementRef.nativeElement.querySelector(".mdc-tab__content"):this._elementRef.nativeElement).appendChild(this._inkBarElement)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,inputs:{fitInkBarToContent:[2,"fitInkBarToContent","fitInkBarToContent",De]}})}return t})(),QH=(()=>{class t extends sDe{elementRef=D(Re);disabled=!1;focus(){this.elementRef.nativeElement.focus()}getOffsetLeft(){return this.elementRef.nativeElement.offsetLeft}getOffsetWidth(){return this.elementRef.nativeElement.offsetWidth}static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275dir=de({type:t,selectors:[["","matTabLabelWrapper",""]],hostVars:3,hostBindings:function(i,o){2&i&&($e("aria-disabled",!!o.disabled),Ie("mat-mdc-tab-disabled",o.disabled))},inputs:{disabled:[2,"disabled","disabled",De]},features:[be]})}return t})();const JH={passive:!0};let cDe=(()=>{class t{_elementRef=D(Re);_changeDetectorRef=D(Jt);_viewportRuler=D(qd);_dir=D(br,{optional:!0});_ngZone=D(_e);_platform=D(Yn);_sharedResizeObserver=D(yB);_injector=D(He);_renderer=D(Qn);_animationsDisabled=ci();_eventCleanups;_scrollDistance=0;_selectedIndexChanged=!1;_destroyed=new me;_showPaginationControls=!1;_disableScrollAfter=!0;_disableScrollBefore=!0;_tabLabelCount;_scrollDistanceChanged=!1;_keyManager;_currentTextContent;_stopScrolling=new me;disablePagination=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(e){const i=isNaN(e)?0:e;this._selectedIndex!=i&&(this._selectedIndexChanged=!0,this._selectedIndex=i,this._keyManager&&this._keyManager.updateActiveItem(i))}_selectedIndex=0;selectFocusedIndex=new we;indexFocused=new we;constructor(){this._eventCleanups=this._ngZone.runOutsideAngular(()=>[this._renderer.listen(this._elementRef.nativeElement,"mouseleave",()=>this._stopInterval())])}ngAfterViewInit(){this._eventCleanups.push(this._renderer.listen(this._previousPaginator.nativeElement,"touchstart",()=>this._handlePaginatorPress("before"),JH),this._renderer.listen(this._nextPaginator.nativeElement,"touchstart",()=>this._handlePaginatorPress("after"),JH))}ngAfterContentInit(){const e=this._dir?this._dir.change:ae("ltr"),i=this._sharedResizeObserver.observe(this._elementRef.nativeElement).pipe(Mb(32),fn(this._destroyed)),o=this._viewportRuler.change(150).pipe(fn(this._destroyed)),r=()=>{this.updatePagination(),this._alignInkBarToSelectedTab()};this._keyManager=new iV(this._items).withHorizontalOrientation(this._getLayoutDirection()).withHomeAndEnd().withWrap().skipPredicate(()=>!1),this._keyManager.updateActiveItem(Math.max(this._selectedIndex,0)),Vi(r,{injector:this._injector}),Cr(e,o,i,this._items.changes,this._itemsResized()).pipe(fn(this._destroyed)).subscribe(()=>{this._ngZone.run(()=>{Promise.resolve().then(()=>{this._scrollDistance=Math.max(0,Math.min(this._getMaxScrollDistance(),this._scrollDistance)),r()})}),this._keyManager?.withHorizontalOrientation(this._getLayoutDirection())}),this._keyManager.change.subscribe(s=>{this.indexFocused.emit(s),this._setTabFocus(s)})}_itemsResized(){return"function"!=typeof ResizeObserver?Oi:this._items.changes.pipe(si(this._items),tn(e=>new Ft(i=>this._ngZone.runOutsideAngular(()=>{const o=new ResizeObserver(r=>i.next(r));return e.forEach(r=>o.observe(r.elementRef.nativeElement)),()=>{o.disconnect()}}))),_S(1),Tn(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._eventCleanups.forEach(e=>e()),this._keyManager?.destroy(),this._destroyed.next(),this._destroyed.complete(),this._stopScrolling.complete()}_handleKeydown(e){if(!yr(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:s}=i.elementRef.nativeElement;let a,l;"ltr"==this._getLayoutDirection()?(a=r,l=a+s):(l=this._tabListInner.nativeElement.offsetWidth-r,a=l-s);const c=this.scrollDistance,f=this.scrollDistance+o;af&&(this.scrollDistance+=Math.min(l-f,a-c))}_checkPaginationEnabled(){if(this.disablePagination)this._showPaginationControls=!1;else{const o=this._tabListInner.nativeElement.scrollWidth-this._elementRef.nativeElement.offsetWidth>=5;o||(this.scrollDistance=0),o!==this._showPaginationControls&&(this._showPaginationControls=o,this._changeDetectorRef.markForCheck())}}_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(),xa(650,100).pipe(fn(Cr(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 \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,inputs:{disablePagination:[2,"disablePagination","disablePagination",De],selectedIndex:[2,"selectedIndex","selectedIndex",hr]},outputs:{selectFocusedIndex:"selectFocusedIndex",indexFocused:"indexFocused"}})}return t})(),dDe=(()=>{class t extends cDe{_items;_tabListContainer;_tabList;_tabListInner;_nextPaginator;_previousPaginator;_inkBar;ariaLabel;ariaLabelledby;disableRipple=!1;ngAfterContentInit(){this._inkBar=new rDe(this._items),super.ngAfterContentInit()}_itemSelected(e){e.preventDefault()}static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275cmp=re({type:t,selectors:[["mat-tab-header"]],contentQueries:function(i,o,r){if(1&i&&ys(r,QH,4),2&i){let s;he(s=fe())&&(o._items=s)}},viewQuery:function(i,o){if(1&i&&ot(Hke,7)(jke,7)(Uke,7)(zke,5)($ke,5),2&i){let r;he(r=fe())&&(o._tabListContainer=r.first),he(r=fe())&&(o._tabList=r.first),he(r=fe())&&(o._tabListInner=r.first),he(r=fe())&&(o._nextPaginator=r.first),he(r=fe())&&(o._previousPaginator=r.first)}},hostAttrs:[1,"mat-mdc-tab-header"],hostVars:4,hostBindings:function(i,o){2&i&&Ie("mat-mdc-tab-header-pagination-controls-enabled",o._showPaginationControls)("mat-mdc-tab-header-rtl","rtl"==o._getLayoutDirection())},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],disableRipple:[2,"disableRipple","disableRipple",De]},features:[be],ngContentSelectors:yD,decls:13,vars:10,consts:[["previousPaginator",""],["tabListContainer",""],["tabList",""],["tabListInner",""],["nextPaginator",""],["mat-ripple","",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-before",3,"click","mousedown","touchend","matRippleDisabled"],[1,"mat-mdc-tab-header-pagination-chevron"],[1,"mat-mdc-tab-label-container",3,"keydown"],["role","tablist",1,"mat-mdc-tab-list",3,"cdkObserveContent"],[1,"mat-mdc-tab-labels"],["mat-ripple","",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-after",3,"mousedown","click","touchend","matRippleDisabled"]],template:function(i,o){1&i&&(yi(),h(0,"div",5,0),F("click",function(){return o._handlePaginatorClick("before")})("mousedown",function(s){return o._handlePaginatorPress("before",s)})("touchend",function(){return o._stopInterval()}),B(2,"div",6),u(),h(3,"div",7,1),F("keydown",function(s){return o._handleKeydown(s)}),h(5,"div",8,2),F("cdkObserveContent",function(){return o._onContentChanges()}),h(7,"div",9,3),Pt(9),u()()(),h(10,"div",10,4),F("mousedown",function(s){return o._handlePaginatorPress("after",s)})("click",function(){return o._handlePaginatorClick("after")})("touchend",function(){return o._stopInterval()}),B(12,"div",6),u()),2&i&&(Ie("mat-mdc-tab-header-pagination-disabled",o._disableScrollBefore),C("matRippleDisabled",o._disableScrollBefore||o.disableRipple),d(3),Ie("_mat-animation-noopable",o._animationsDisabled),d(2),$e("aria-label",o.ariaLabel||null)("aria-labelledby",o.ariaLabelledby||null),d(5),Ie("mat-mdc-tab-header-pagination-disabled",o._disableScrollAfter),C("matRippleDisabled",o._disableScrollAfter||o.disableRipple))},dependencies:[eu,xde],styles:[".mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.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;outline: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-inactive-ripple-color, var(--mat-sys-on-surface))}.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-pagination-icon-color, var(--mat-sys-on-surface))}.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-mdc-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1;border-bottom-style:solid;border-bottom-width:var(--mat-tab-divider-height, 1px);border-bottom-color:var(--mat-tab-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-group-inverted-header .mat-mdc-tab-label-container{border-bottom:none;border-top-style:solid;border-top-width:var(--mat-tab-divider-height, 1px);border-top-color:var(--mat-tab-divider-color, var(--mat-sys-surface-variant))}.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}.cdk-drop-list .mat-mdc-tab-labels,.mat-mdc-tab-labels.cdk-drop-list{min-height:var(--mat-tab-container-height, 48px)}.mat-mdc-tab::before{margin:5px}@media(forced-colors: active){.mat-mdc-tab[aria-disabled=true]{color:GrayText}}\n"],encapsulation:2})}return t})();const uDe=new Z("MAT_TABS_CONFIG");let e6=(()=>{class t extends Xl{_host=D(wD);_ngZone=D(_e);_centeringSub=pt.EMPTY;_leavingSub=pt.EMPTY;constructor(){super()}ngOnInit(){super.ngOnInit(),this._centeringSub=this._host._beforeCentering.pipe(si(this._host._isCenterPosition())).subscribe(e=>{this._host._content&&e&&!this.hasAttached()&&this._ngZone.run(()=>{Promise.resolve().then(),this.attach(this._host._content)})}),this._leavingSub=this._host._afterLeavingCenter.subscribe(()=>{this._host.preserveContent||this._ngZone.run(()=>this.detach())})}ngOnDestroy(){super.ngOnDestroy(),this._centeringSub.unsubscribe(),this._leavingSub.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","matTabBodyHost",""]],features:[be]})}return t})(),wD=(()=>{class t{_elementRef=D(Re);_dir=D(br,{optional:!0});_ngZone=D(_e);_injector=D(He);_renderer=D(Qn);_diAnimationsDisabled=ci();_eventCleanups;_initialized=!1;_fallbackTimer;_positionIndex;_dirChangeSubscription=pt.EMPTY;_position;_previousPosition;_onCentering=new we;_beforeCentering=new we;_afterLeavingCenter=new we;_onCentered=new we(!0);_portalHost;_contentElement;_content;animationDuration="500ms";preserveContent=!1;set position(e){this._positionIndex=e,this._computePositionAnimationState()}constructor(){if(this._dir){const e=D(Jt);this._dirChangeSubscription=this._dir.change.subscribe(i=>{this._computePositionAnimationState(i),e.markForCheck()})}}ngOnInit(){this._bindTransitionEvents(),"center"===this._position&&(this._setActiveClass(!0),Vi(()=>this._onCentering.emit(this._elementRef.nativeElement.clientHeight),{injector:this._injector})),this._initialized=!0}ngOnDestroy(){clearTimeout(this._fallbackTimer),this._eventCleanups?.forEach(e=>e()),this._dirChangeSubscription.unsubscribe()}_bindTransitionEvents(){this._ngZone.runOutsideAngular(()=>{const e=this._elementRef.nativeElement,i=o=>{o.target===this._contentElement?.nativeElement&&(this._elementRef.nativeElement.classList.remove("mat-tab-body-animating"),"transitionend"===o.type&&this._transitionDone())};this._eventCleanups=[this._renderer.listen(e,"transitionstart",o=>{o.target===this._contentElement?.nativeElement&&(this._elementRef.nativeElement.classList.add("mat-tab-body-animating"),this._transitionStarted())}),this._renderer.listen(e,"transitionend",i),this._renderer.listen(e,"transitioncancel",i)]})}_transitionStarted(){clearTimeout(this._fallbackTimer);const e="center"===this._position;this._beforeCentering.emit(e),e&&this._onCentering.emit(this._elementRef.nativeElement.clientHeight)}_transitionDone(){"center"===this._position?this._onCentered.emit():"center"===this._previousPosition&&this._afterLeavingCenter.emit()}_setActiveClass(e){this._elementRef.nativeElement.classList.toggle("mat-mdc-tab-body-active",e)}_getLayoutDirection(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}_isCenterPosition(){return 0===this._positionIndex}_computePositionAnimationState(e=this._getLayoutDirection()){this._previousPosition=this._position,this._position=this._positionIndex<0?"ltr"==e?"left":"right":this._positionIndex>0?"ltr"==e?"right":"left":"center",this._animationsDisabled()?this._simulateTransitionEvents():this._initialized&&("center"===this._position||"center"===this._previousPosition)&&(clearTimeout(this._fallbackTimer),this._fallbackTimer=this._ngZone.runOutsideAngular(()=>setTimeout(()=>this._simulateTransitionEvents(),100)))}_simulateTransitionEvents(){this._transitionStarted(),Vi(()=>this._transitionDone(),{injector:this._injector})}_animationsDisabled(){return this._diAnimationsDisabled||"0ms"===this.animationDuration||"0s"===this.animationDuration}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["mat-tab-body"]],viewQuery:function(i,o){if(1&i&&ot(e6,5)(Wke,5),2&i){let r;he(r=fe())&&(o._portalHost=r.first),he(r=fe())&&(o._contentElement=r.first)}},hostAttrs:[1,"mat-mdc-tab-body"],hostVars:1,hostBindings:function(i,o){2&i&&$e("inert","center"===o._position?null:"")},inputs:{_content:[0,"content","_content"],animationDuration:"animationDuration",preserveContent:"preserveContent",position:"position"},outputs:{_onCentering:"_onCentering",_beforeCentering:"_beforeCentering",_onCentered:"_onCentered"},decls:3,vars:6,consts:[["content",""],["cdkScrollable","",1,"mat-mdc-tab-body-content"],["matTabBodyHost",""]],template:function(i,o){1&i&&(h(0,"div",1,0),it(2,Gke,0,0,"ng-template",2),u()),2&i&&Ie("mat-tab-body-content-left","left"===o._position)("mat-tab-body-content-right","right"===o._position)("mat-tab-body-content-can-animate","center"===o._position||"center"===o._previousPosition)},dependencies:[e6,H3],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;transform:none;visibility:hidden}.mat-tab-body-animating>.mat-mdc-tab-body-content,.mat-mdc-tab-body-active>.mat-mdc-tab-body-content{visibility:visible}.mat-tab-body-animating>.mat-mdc-tab-body-content{min-height:1px}.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{overflow:hidden}.mat-tab-body-content-can-animate{transition:transform var(--mat-tab-animation-duration) 1ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable .mat-tab-body-content-can-animate{transition:none}.mat-tab-body-content-left{transform:translate3d(-100%, 0, 0)}.mat-tab-body-content-right{transform:translate3d(100%, 0, 0)}\n"],encapsulation:2})}return t})(),hDe=(()=>{class t{_elementRef=D(Re);_changeDetectorRef=D(Jt);_ngZone=D(_e);_tabsSubscription=pt.EMPTY;_tabLabelSubscription=pt.EMPTY;_tabBodySubscription=pt.EMPTY;_diAnimationsDisabled=ci();_allTabs;_tabBodies;_tabBodyWrapper;_tabHeader;_tabs=new id;_indexToSelect=0;_lastFocusedTabIndex=null;_tabBodyWrapperHeight=0;color;get fitInkBarToContent(){return this._fitInkBarToContent}set fitInkBarToContent(e){this._fitInkBarToContent=e,this._changeDetectorRef.markForCheck()}_fitInkBarToContent=!1;stretchTabs=!0;alignTabs=null;dynamicHeight=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(e){this._indexToSelect=isNaN(e)?null:e}_selectedIndex=null;headerPosition="above";get animationDuration(){return this._animationDuration}set animationDuration(e){const i=e+"";this._animationDuration=/^\d+$/.test(i)?e+"ms":i}_animationDuration;get contentTabIndex(){return this._contentTabIndex}set contentTabIndex(e){this._contentTabIndex=isNaN(e)?null:e}_contentTabIndex=null;disablePagination=!1;disableRipple=!1;preserveContent=!1;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}_backgroundColor;ariaLabel;ariaLabelledby;selectedIndexChange=new we;focusChange=new we;animationDone=new we;selectedTabChange=new we(!0);_groupId;_isServer=!D(Yn).isBrowser;constructor(){const e=D(uDe,{optional:!0});this._groupId=D(ni).getId("mat-tab-group-"),this.animationDuration=e&&e.animationDuration?e.animationDuration:"500ms",this.disablePagination=!(!e||null==e.disablePagination)&&e.disablePagination,this.dynamicHeight=!(!e||null==e.dynamicHeight)&&e.dynamicHeight,null!=e?.contentTabIndex&&(this.contentTabIndex=e.contentTabIndex),this.preserveContent=!!e?.preserveContent,this.fitInkBarToContent=!(!e||null==e.fitInkBarToContent)&&e.fitInkBarToContent,this.stretchTabs=!e||null==e.stretchTabs||e.stretchTabs,this.alignTabs=e&&null!=e.alignTabs?e.alignTabs:null}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()})}ngAfterViewInit(){this._tabBodySubscription=this._tabBodies.changes.subscribe(()=>this._bodyCentered(!0))}_subscribeToAllTabChanges(){this._allTabs.changes.pipe(si(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(),this._tabBodySubscription.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 fDe;return i.index=e,this._tabs&&this._tabs.length&&(i.tab=this._tabs.toArray()[e]),i}_subscribeToTabLabels(){this._tabLabelSubscription&&this._tabLabelSubscription.unsubscribe(),this._tabLabelSubscription=Cr(...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,i){return e.id||`${this._groupId}-label-${i}`}_getTabContentId(e){return`${this._groupId}-content-${e}`}_setTabBodyWrapperHeight(e){if(!this.dynamicHeight||!this._tabBodyWrapperHeight)return void(this._tabBodyWrapperHeight=e);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._ngZone.run(()=>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)}_bodyCentered(e){e&&this._tabBodies?.forEach((i,o)=>i._setActiveClass(o===this._selectedIndex))}_animationsDisabled(){return this._diAnimationsDisabled||"0"===this.animationDuration||"0ms"===this.animationDuration}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["mat-tab-group"]],contentQueries:function(i,o,r){if(1&i&&ys(r,XH,5),2&i){let s;he(s=fe())&&(o._allTabs=s)}},viewQuery:function(i,o){if(1&i&&ot(qke,5)(Kke,5)(wD,5),2&i){let r;he(r=fe())&&(o._tabBodyWrapper=r.first),he(r=fe())&&(o._tabHeader=r.first),he(r=fe())&&(o._tabBodies=r)}},hostAttrs:[1,"mat-mdc-tab-group"],hostVars:11,hostBindings:function(i,o){2&i&&($e("mat-align-tabs",o.alignTabs),Ze("mat-"+(o.color||"primary")),Md("--mat-tab-animation-duration",o.animationDuration),Ie("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",fitInkBarToContent:[2,"fitInkBarToContent","fitInkBarToContent",De],stretchTabs:[2,"mat-stretch-tabs","stretchTabs",De],alignTabs:[0,"mat-align-tabs","alignTabs"],dynamicHeight:[2,"dynamicHeight","dynamicHeight",De],selectedIndex:[2,"selectedIndex","selectedIndex",hr],headerPosition:"headerPosition",animationDuration:"animationDuration",contentTabIndex:[2,"contentTabIndex","contentTabIndex",hr],disablePagination:[2,"disablePagination","disablePagination",De],disableRipple:[2,"disableRipple","disableRipple",De],preserveContent:[2,"preserveContent","preserveContent",De],backgroundColor:"backgroundColor",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"]},outputs:{selectedIndexChange:"selectedIndexChange",focusChange:"focusChange",animationDone:"animationDone",selectedTabChange:"selectedTabChange"},exportAs:["matTabGroup"],features:[lt([{provide:YH,useExisting:t}])],ngContentSelectors:yD,decls:9,vars:8,consts:[["tabHeader",""],["tabBodyWrapper",""],["tabNode",""],[3,"indexFocused","selectFocusedIndex","selectedIndex","disableRipple","disablePagination","aria-label","aria-labelledby"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-focus-indicator",3,"id","mdc-tab--active","class","disabled","fitInkBarToContent"],[1,"mat-mdc-tab-body-wrapper"],["role","tabpanel",3,"id","class","content","position","animationDuration","preserveContent"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-focus-indicator",3,"click","cdkFocusChange","id","disabled","fitInkBarToContent"],[1,"mdc-tab__ripple"],["mat-ripple","",1,"mat-mdc-tab-ripple",3,"matRippleTrigger","matRippleDisabled"],[1,"mdc-tab__content"],[1,"mdc-tab__text-label"],[3,"cdkPortalOutlet"],["role","tabpanel",3,"_onCentered","_onCentering","_beforeCentering","id","content","position","animationDuration","preserveContent"]],template:function(i,o){1&i&&(yi(),h(0,"mat-tab-header",3,0),F("indexFocused",function(s){return o._focusChanged(s)})("selectFocusedIndex",function(s){return o.selectedIndex=s}),ve(2,Qke,8,17,"div",4,Fe),u(),x(4,Jke,1,0),h(5,"div",5,1),ve(7,eDe,1,10,"mat-tab-body",6,Fe),u()),2&i&&(C("selectedIndex",o.selectedIndex||0)("disableRipple",o.disableRipple)("disablePagination",o.disablePagination),y0("aria-label",o.ariaLabel)("aria-labelledby",o.ariaLabelledby),d(2),ye(o._tabs),d(2),S(o._isServer?4:-1),d(),Ie("_mat-animation-noopable",o._animationsDisabled()),d(2),ye(o._tabs))},dependencies:[dDe,QH,Gde,eu,Xl,wD],styles:['.mdc-tab{min-width:90px;padding:0 24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;z-index:1;touch-action:manipulation}.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--active .mdc-tab__text-label{transition-delay:100ms}._mat-animation-noopable .mdc-tab__text-label{transition:none}.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{transition:var(--mat-tab-animation-duration, 250ms) transform cubic-bezier(0.4, 0, 0.2, 1);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--active .mdc-tab-indicator__content{opacity:1}._mat-animation-noopable .mdc-tab-indicator__content,.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mat-mdc-tab-ripple.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;height:var(--mat-tab-container-height, 48px);font-family:var(--mat-tab-label-text-font, var(--mat-sys-title-small-font));font-size:var(--mat-tab-label-text-size, var(--mat-sys-title-small-size));letter-spacing:var(--mat-tab-label-text-tracking, var(--mat-sys-title-small-tracking));line-height:var(--mat-tab-label-text-line-height, var(--mat-sys-title-small-line-height));font-weight:var(--mat-tab-label-text-weight, var(--mat-sys-title-small-weight))}.mat-mdc-tab.mdc-tab{flex-grow:0}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-active-indicator-color, var(--mat-sys-primary));border-top-width:var(--mat-tab-active-indicator-height, 2px);border-radius:var(--mat-tab-active-indicator-shape, 0)}.mat-mdc-tab:hover .mdc-tab__text-label{color:var(--mat-tab-inactive-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab:focus .mdc-tab__text-label{color:var(--mat-tab-inactive-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__text-label{color:var(--mat-tab-active-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__ripple::before,.mat-mdc-tab.mdc-tab--active .mat-ripple-element{background-color:var(--mat-tab-active-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab__text-label{color:var(--mat-tab-active-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-active-hover-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab__text-label{color:var(--mat-tab-active-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-active-focus-indicator-color, var(--mat-sys-primary))}.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-disabled-ripple-color, var(--mat-sys-on-surface-variant))}.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-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-inactive-label-text-color, var(--mat-sys-on-surface));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-inactive-ripple-color, var(--mat-sys-on-surface))}.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-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-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-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-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-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-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-focus-indicator::before{border-color:var(--mat-tab-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-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-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}\n'],encapsulation:2})}return t})();class fDe{index;tab}let pDe=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({imports:[ii]})}return t})(),mDe=(()=>{class t{constructor(e){this.dialog=e,this.tabNames=[""],this.selectedTab=0,this.tabChanged=new we}ngOnDestroy(){this.tabChanged.complete()}showTabSelector(){const e=[];this.tabNames.forEach((i,o)=>{e.push({icon:o===this.selectedTab?"check":"",label:i})}),ao.openDialog(this.dialog,e,"node.logs.filter-title").afterClosed().subscribe(i=>{this.tabChanged.emit(i-1)})}static{this.\u0275fac=function(i){return new(i||t)(O(Ot))}}static{this.\u0275cmp=re({type:t,selectors:[["app-tab-selector"]],inputs:{tabNames:"tabNames",selectedTab:"selectedTab"},outputs:{tabChanged:"tabChanged"},standalone:!1,decls:9,vars:4,consts:[[1,"top-dialog-button",3,"click"],[1,"top-dialog-button-content"],[1,"tab-name"],[1,"icon",3,"inline"],[1,"top-dialog-button-margin"]],template:function(i,o){1&i&&(h(0,"div",0),F("click",function(){return o.showTabSelector()}),h(1,"div",1)(2,"div",2)(3,"span"),p(4),b(5,"translate"),u()(),h(6,"mat-icon",3),p(7,"expand_more"),u()(),B(8,"div",4),u()),2&i&&(d(4),M(y(5,2,o.tabNames[o.selectedTab])),d(2),C("inline",!0))},dependencies:[We,xe],styles:[".top-dialog-button[_ngcontent-%COMP%] .top-dialog-button-content[_ngcontent-%COMP%]{display:flex}.top-dialog-button[_ngcontent-%COMP%] .top-dialog-button-content[_ngcontent-%COMP%] .tab-name[_ngcontent-%COMP%]{flex-grow:1;margin-right:10px;align-self:center}.top-dialog-button[_ngcontent-%COMP%] .top-dialog-button-content[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{font-size:20px;flex-shrink:0;align-self:center}"]})}}return t})();const gDe=["button"],_De=["settingsButton"],bDe=["firstInput"],vDe=["tabGroup"],Dc=t=>({"element-disabled":t}),t6=t=>({highlighted:t}),yDe=(t,n)=>({currentElementsRange:t,totalElements:n}),CDe=t=>({number:t});function wDe(t,n){1&t&&(h(0,"span"),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"apps.vpn-socks-client-settings.remote-key-length-error")))}function xDe(t,n){1&t&&(h(0,"span"),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"apps.vpn-socks-client-settings.remote-key-chars-error")))}function SDe(t,n){if(1&t&&(h(0,"mat-form-field",10)(1,"div",11)(2,"label",12),p(3),b(4,"translate"),u(),B(5,"input",20),u()()),2&t){const e=v();C("ngClass",se(4,Dc,e.disableDismiss)),d(3),M(y(4,2,"apps.vpn-socks-client-settings.password"))}}function kDe(t,n){1&t&&(h(0,"div",14)(1,"mat-icon",21),p(2,"warning"),u(),p(3),b(4,"translate"),u()),2&t&&(d(),C("inline",!0),d(2),E(" ",y(4,2,"apps.vpn-socks-client-settings.password-history-warning")," "))}function DDe(t,n){1&t&&B(0,"app-loading-indicator",16),2&t&&C("showWhite",!1)}function MDe(t,n){1&t&&(h(0,"div",17)(1,"mat-icon",21),p(2,"error"),u(),p(3),b(4,"translate"),u()),2&t&&(d(),C("inline",!0),d(2),E(" ",y(4,2,"apps.vpn-socks-client-settings.no-elements")," "))}function TDe(t,n){1&t&&(h(0,"div",25),p(1),b(2,"translate"),u()),2&t&&(d(),E(" ",y(2,1,"apps.vpn-socks-client-settings.no-filter")," "))}function EDe(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,v().$implicit[1])," ")}function PDe(t,n){1&t&&p(0),2&t&&E(" ",v().$implicit[2]," ")}function IDe(t,n){if(1&t&&(h(0,"div",25)(1,"span"),p(2),b(3,"translate"),u(),x(4,EDe,2,3),x(5,PDe,1,1),u()),2&t){const e=n.$implicit;d(2),E("",y(3,3,e[0])," "),d(2),S(e[1]?4:-1),d(),S(e[2]?5:-1)}}function ODe(t,n){1&t&&(h(0,"div",17)(1,"mat-icon",21),p(2,"error"),u(),p(3),b(4,"translate"),u()),2&t&&(d(),C("inline",!0),d(2),E(" ",y(4,2,"apps.vpn-socks-client-settings.no-elements-for-filters")," "))}function ADe(t,n){if(1&t&&(h(0,"span",10),p(1),u()),2&t){const e=n.$implicit;C("ngClass",se(2,t6,n.$index%2!=0)),d(),M(e)}}function RDe(t,n){if(1&t&&(h(0,"div",31),B(1,"div"),u()),2&t){const e=v(2).$implicit;d(),no("background-image: url('assets/img/flags/"+e.country.toLocaleLowerCase()+".png');")}}function FDe(t,n){if(1&t&&(h(0,"span",10),p(1),u()),2&t){const e=n.$implicit;C("ngClass",se(2,t6,n.$index%2!=0)),d(),M(e)}}function NDe(t,n){if(1&t&&(h(0,"div",25)(1,"span"),p(2),b(3,"translate"),u(),h(4,"span"),p(5,"\xa0 "),x(6,RDe,2,2,"div",31),ve(7,FDe,2,4,"span",10,Fe),u()()),2&t){const e=v().$implicit,i=v(2);d(2),M(y(3,2,"apps.vpn-socks-client-settings.location")),d(4),S(e.country?6:-1),d(),ye(i.getHighlightedTextParts(e.location,i.currentFilters.location))}}function LDe(t,n){if(1&t){const e=oe();h(0,"div",19)(1,"button",27),F("click",function(){const o=j(e).$implicit;return U(v(2).saveChanges(o.pk,null,!1,o.location))}),h(2,"div",28)(3,"div",25)(4,"span"),p(5),b(6,"translate"),u(),h(7,"span"),p(8,"\xa0"),ve(9,ADe,2,4,"span",10,Fe),u()(),x(11,NDe,9,4,"div",25),u()(),h(12,"button",29),b(13,"translate"),F("click",function(){const o=j(e).$implicit;return U(v(2).copyPk(o.pk))}),h(14,"mat-icon",30),p(15,"filter_none"),u()()()}if(2&t){const e=n.$implicit,i=v(2);d(),C("ngClass",se(9,Dc,i.disableDismiss)),d(4),M(y(6,5,"apps.vpn-socks-client-settings.key")),d(4),ye(i.getHighlightedTextParts(e.pk,i.currentFilters.key)),d(2),S(e.location?11:-1),d(),C("matTooltip",y(13,7,"apps.vpn-socks-client-settings.copy-pk-info")),d(2),C("inline",!0)}}function BDe(t,n){if(1&t){const e=oe();h(0,"button",22),F("click",function(){return j(e),U(v().changeFilters())}),h(1,"div",23)(2,"div",24)(3,"mat-icon",21),p(4,"filter_list"),u()(),h(5,"div"),x(6,TDe,3,3,"div",25),ve(7,IDe,6,5,"div",25,Fe),h(9,"div",26),p(10),b(11,"translate"),u()()()(),x(12,ODe,5,4,"div",17),ve(13,LDe,16,11,"div",19,Fe)}if(2&t){const e=v();d(3),C("inline",!0),d(3),S(0===e.currentFiltersTexts.length?6:-1),d(),ye(e.currentFiltersTexts),d(3),M(y(11,4,"apps.vpn-socks-client-settings.click-to-change")),d(2),S(0===e.filteredProxiesFromDiscovery.length?12:-1),d(),ye(e.proxiesFromDiscoveryToShow)}}function VDe(t,n){if(1&t){const e=oe();h(0,"div",18)(1,"span"),p(2),b(3,"translate"),u(),h(4,"button",32),F("click",function(){return j(e),U(v().goToPreviousPage())}),h(5,"mat-icon"),p(6,"chevron_left"),u()(),h(7,"button",32),F("click",function(){return j(e),U(v().goToNextPage())}),h(8,"mat-icon"),p(9,"chevron_right"),u()()()}if(2&t){const e=v();d(2),M(pe(3,1,"apps.vpn-socks-client-settings.pagination-info",_t(4,yDe,e.currentRange,e.filteredProxiesFromDiscovery.length)))}}function HDe(t,n){if(1&t&&(h(0,"div")(1,"div",17)(2,"mat-icon",21),p(3,"error"),u(),p(4),b(5,"translate"),u()()),2&t){const e=v();d(2),C("inline",!0),d(2),E(" ",pe(5,2,"apps.vpn-socks-client-settings.no-history",se(5,CDe,e.maxHistoryElements))," ")}}function jDe(t,n){1&t&&dr(0)}function UDe(t,n){1&t&&dr(0)}function zDe(t,n){if(1&t&&(h(0,"span"),p(1),u()),2&t){const e=v(2).$implicit;d(),E(" ",e.note)}}function $De(t,n){1&t&&(h(0,"span"),p(1),b(2,"translate"),u()),2&t&&(d(),E(" ",y(2,1,"apps.vpn-socks-client-settings.note-entered-manually")))}function WDe(t,n){if(1&t&&(h(0,"span"),p(1),u()),2&t){const e=v(4).$implicit;d(),E(" (",e.location,")")}}function GDe(t,n){if(1&t&&(h(0,"span"),p(1),b(2,"translate"),u(),x(3,WDe,2,1,"span")),2&t){const e=v(3).$implicit;d(),E(" ",y(2,2,"apps.vpn-socks-client-settings.note-obtained")),d(2),S(e.location?3:-1)}}function qDe(t,n){if(1&t&&(x(0,$De,3,3,"span"),x(1,GDe,4,4)),2&t){const e=v(2).$implicit;S(e.enteredManually?0:-1),d(),S(e.enteredManually?-1:1)}}function KDe(t,n){if(1&t&&(h(0,"div",37)(1,"div",38)(2,"div",25)(3,"span"),p(4),b(5,"translate"),u(),h(6,"span"),p(7),u()(),h(8,"div",25)(9,"span"),p(10),b(11,"translate"),u(),x(12,zDe,2,1,"span"),x(13,qDe,2,2),u()(),h(14,"div",39)(15,"div",40)(16,"mat-icon",21),p(17,"add"),u()()()()),2&t){const e=v().$implicit;d(4),M(y(5,6,"apps.vpn-socks-client-settings.key")),d(3),E(" ",e.key),d(3),M(y(11,8,"apps.vpn-socks-client-settings.note")),d(2),S(e.note?12:-1),d(),S(e.note?-1:13),d(3),C("inline",!0)}}function YDe(t,n){if(1&t){const e=oe();h(0,"div",19)(1,"button",33),F("click",function(){const o=j(e).$implicit;return U(v().useFromHistory(o))}),it(2,jDe,1,0,"ng-container",34),u(),h(3,"button",35),b(4,"translate"),F("click",function(){const o=j(e).$implicit;return U(v().changeNote(o))}),h(5,"mat-icon",30),p(6,"edit"),u()(),h(7,"button",35),b(8,"translate"),F("click",function(){const o=j(e).$implicit;return U(v().removeFromHistory(o.key))}),h(9,"mat-icon",30),p(10,"close"),u()(),h(11,"button",36),F("click",function(){const o=j(e).$implicit;return U(v().openHistoryOptions(o))}),it(12,UDe,1,0,"ng-container",34),u(),it(13,KDe,18,10,"ng-template",null,0,Rl),u()}if(2&t){const e=Hn(14),i=v();d(),C("ngClass",se(12,Dc,i.disableDismiss)),d(),C("ngTemplateOutlet",e),d(),C("matTooltip",y(4,8,"apps.vpn-socks-client-settings.change-note")),d(2),C("inline",!0),d(2),C("matTooltip",y(8,10,"apps.vpn-socks-client-settings.remove-entry")),d(2),C("inline",!0),d(2),C("ngClass",se(14,Dc,i.disableDismiss)),d(),C("ngTemplateOutlet",e)}}function XDe(t,n){1&t&&(h(0,"span"),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"apps.vpn-socks-client-settings.dns-error")))}function ZDe(t,n){1&t&&(h(0,"div",45)(1,"mat-icon",21),p(2,"warning"),u(),p(3),b(4,"translate"),u()),2&t&&(d(),C("inline",!0),d(2),E(" ",y(4,2,"apps.vpn-socks-client-settings.settings-changed-alert")," "))}function QDe(t,n){if(1&t){const e=oe();h(0,"mat-tab",8),b(1,"translate"),h(2,"form",9)(3,"mat-form-field",10)(4,"div",11)(5,"label",12),p(6),b(7,"translate"),u(),B(8,"input",41),u(),h(9,"mat-error"),x(10,XDe,3,3,"span"),u()(),h(11,"div",42)(12,"mat-checkbox",43),p(13),b(14,"translate"),h(15,"mat-icon",44),b(16,"translate"),p(17,"help"),u()()(),x(18,ZDe,5,4,"div",45),h(19,"app-button",15,4),F("action",function(){return j(e),U(v().saveSettings())}),p(21),b(22,"translate"),u()()()}if(2&t){const e=v();C("label",y(1,12,e.tabLabels[3])),d(2),C("formGroup",e.settingsForm),d(),C("ngClass",se(22,Dc,e.disableDismiss)),d(3),M(y(7,14,"apps.vpn-socks-client-settings.dns")),d(4),S(e.settingsForm.get("dns").valid?-1:10),d(2),C("ngClass",se(24,Dc,e.disableDismiss)),d(),E(" ",y(14,16,"apps.vpn-socks-client-settings.killswitch-check")," "),d(2),C("inline",!0)("matTooltip",y(16,18,"apps.vpn-socks-client-settings.killswitch-info")),d(3),S(e.settingsChanged?18:-1),d(),C("disabled",!e.settingsForm.valid||!e.settingsChanged||e.working),d(2),E(" ",y(22,20,"apps.vpn-socks-client-settings.save-settings")," ")}}let JDe=(()=>{class t{static openDialog(e,i){const o=new nn;return o.data=i,o.autoFocus=!1,o.width=rt.largeModalWidth,e.open(t,o)}constructor(e,i,o,r,s,a,l,c,f){this.data=e,this.dialogRef=i,this.appsService=o,this.formBuilder=r,this.snackbarService=s,this.dialog=a,this.proxyDiscoveryService=l,this.clipboardService=c,this.storageService=f,this.socksHistoryStorageKey="SkysocksClientHistory_",this.vpnHistoryStorageKey="VpnClientHistory_",this.maxHistoryElements=10,this.maxElementsPerPage=10,this.tabLabels=[],this.currentTab=0,this.countriesFromDiscovery=new Set,this.loadingFromDiscovery=!0,this.numberOfPages=1,this.currentPage=1,this.currentRange="1 - 1",this.currentFilters=new qH,this.currentFiltersTexts=[],this.configuringVpn=!1,this.initialKillswitchSetting=!1,this.initialDnsSetting="",this.working=!1,-1!==e.name.toLocaleLowerCase().indexOf("vpn")?(this.configuringVpn=!0,this.tabLabels=["apps.vpn-socks-client-settings.remote-visor-tab","apps.vpn-socks-client-settings.discovery-tab","apps.vpn-socks-client-settings.history-tab","apps.vpn-socks-client-settings.settings-tab"]):this.tabLabels=["apps.vpn-socks-client-settings.remote-visor-tab","apps.vpn-socks-client-settings.discovery-tab","apps.vpn-socks-client-settings.history-tab"]}ngOnInit(){this.migrateDataToHvStorage(),this.discoverySubscription=this.proxyDiscoveryService.getServices(!this.configuringVpn).subscribe(o=>{this.proxiesFromDiscovery=o,this.proxiesFromDiscovery.forEach(r=>{r.country&&this.countriesFromDiscovery.add(r.country.toUpperCase())}),this.filterProxies(),this.loadingFromDiscovery=!1});const e=this.storageService.getDataForHv(this.configuringVpn?this.vpnHistoryStorageKey:this.socksHistoryStorageKey);this.history=e?JSON.parse(e):[];let i="";if(this.data.args&&this.data.args.length>0)for(let o=0;othis.firstInput.nativeElement.focus())}ngOnDestroy(){this.discoverySubscription.unsubscribe(),this.operationSubscription&&this.operationSubscription.unsubscribe()}migrateDataToHvStorage(){const e=localStorage.getItem(this.socksHistoryStorageKey);e&&(this.storageService.setDataForHv(this.socksHistoryStorageKey,e),localStorage.removeItem(this.socksHistoryStorageKey));const i=localStorage.getItem(this.vpnHistoryStorageKey);i&&(this.storageService.setDataForHv(this.vpnHistoryStorageKey,i),localStorage.removeItem(this.vpnHistoryStorageKey))}get disableDismiss(){return this.button&&this.button.isLoading||this.settingsButton&&this.settingsButton.isLoading}tabChangeRequested(e){this.tabGroup.selectedIndex=e}tabIdexChanged(){this.currentTab=this.tabGroup.selectedIndex}validateIp(){if(this.settingsForm){const e=this.settingsForm.get("dns").value;return Rt.checkIfIpValidOrEmpty(e)?null:{invalid:!0}}return null}get settingsChanged(){return this.initialKillswitchSetting!==this.settingsForm.get("killswitch").value||this.initialDnsSetting!==this.settingsForm.get("dns").value}changeFilters(){const e=[];this.countriesFromDiscovery.forEach(o=>e.push(o)),Fke.openDialog(this.dialog,{currentFilters:this.currentFilters,availableCountries:e}).afterClosed().subscribe(o=>{o&&(this.currentFilters=o,this.filterProxies())})}getHighlightedTextParts(e,i){if(!i)return[e];const o=e.toLowerCase(),r=i.toLowerCase();let s=!0,a=0;const l=[];for(;s;){const c=o.indexOf(r,a);-1===c?s=!1:(l.push(e.substring(a,c)),l.push(e.substring(c,c+i.length)),a=c+i.length)}return l.push(e.substring(a)),l}filterProxies(){this.filteredProxiesFromDiscovery=this.currentFilters.country||this.currentFilters.location||this.currentFilters.key?this.proxiesFromDiscovery.filter(e=>!(this.currentFilters.country&&(!e.country||!e.country.toUpperCase().includes(this.currentFilters.country.toUpperCase()))||this.currentFilters.location&&!e.location.toLowerCase().includes(this.currentFilters.location.toLowerCase())||this.currentFilters.key&&!e.address.toLowerCase().includes(this.currentFilters.key.toLowerCase()))):this.proxiesFromDiscovery,this.updateCurrentFilters(),this.updatePagination()}updateCurrentFilters(){if(this.currentFiltersTexts=[],this.currentFilters.country){const e=es[this.currentFilters.country.toUpperCase()]?es[this.currentFilters.country.toUpperCase()]:this.currentFilters.country.toUpperCase();this.currentFiltersTexts.push(["apps.vpn-socks-client-settings.filter-dialog.country","",e])}this.currentFilters.location&&this.currentFiltersTexts.push(["apps.vpn-socks-client-settings.filter-dialog.location","",this.currentFilters.location]),this.currentFilters.key&&this.currentFiltersTexts.push(["apps.vpn-socks-client-settings.filter-dialog.pub-key","",this.currentFilters.key])}updatePagination(){this.currentPage=1,this.numberOfPages=Math.ceil(this.filteredProxiesFromDiscovery.length/this.maxElementsPerPage),this.showCurrentPage()}goToNextPage(){this.currentPage>=this.numberOfPages||(this.currentPage+=1,this.showCurrentPage())}goToPreviousPage(){this.currentPage<=1||(this.currentPage-=1,this.showCurrentPage())}showCurrentPage(){this.proxiesFromDiscoveryToShow=this.filteredProxiesFromDiscovery.slice((this.currentPage-1)*this.maxElementsPerPage,this.currentPage*this.maxElementsPerPage),this.currentRange=(this.currentPage-1)*this.maxElementsPerPage+1+" - ",this.currentRange+=this.currentPage{1===o?this.useFromHistory(e):2===o?this.changeNote(e):3===o&&this.removeFromHistory(e.key)})}removeFromHistory(e){const o=Rt.createConfirmationDialog(this.dialog,"apps.vpn-socks-client-settings.remove-from-history-confirmation");o.componentInstance.operationAccepted.subscribe(()=>{this.history=this.history.filter(s=>s.key!==e);const r=JSON.stringify(this.history);this.storageService.setDataForHv(this.configuringVpn?this.vpnHistoryStorageKey:this.socksHistoryStorageKey,r),o.close()})}changeNote(e){Dke.openDialog(this.dialog,e.note).afterClosed().subscribe(i=>{if(i){i=i.substr(1,i.length-1),this.history.forEach(r=>{r.key===e.key&&(r.note=i)});const o=JSON.stringify(this.history);this.storageService.setDataForHv(this.configuringVpn?this.vpnHistoryStorageKey:this.socksHistoryStorageKey,o),i?this.snackbarService.showDone("apps.vpn-socks-client-settings.changes-made"):this.snackbarService.showWarning("apps.vpn-socks-client-settings.default-note-warning")}})}useFromHistory(e){e.hasPassword?Lke.openDialog(this.dialog).afterClosed().subscribe(i=>{i&&(i=i.substr(1,i.length-1),this.saveChanges(e.key,i,e.enteredManually,e.location,e.note))}):this.saveChanges(e.key,null,e.enteredManually,e.location,e.note)}saveChanges(e=null,i=null,o=null,r=null,s=null){if(!this.form.valid&&!e||this.working)return;o=!e||o,i=e?i:this.form.get("password").value,e=e||this.form.get("pk").value;const l=Rt.createConfirmationDialog(this.dialog,"apps.vpn-socks-client-settings.change-key-confirmation");l.componentInstance.operationAccepted.subscribe(()=>{l.close(),this.continueSavingChanges(e,i,o,r,s)})}saveSettings(){if(this.working)return;const e={killswitch:this.settingsForm.get("killswitch").value,dns:this.settingsForm.get("dns").value};this.settingsButton.showLoading(!1),this.button.showLoading(!1),this.working=!0,this.operationSubscription=this.appsService.changeAppSettings(ke.getCurrentNodeKey(),this.data.name,e).subscribe(()=>{this.initialKillswitchSetting=e.killswitch,this.initialDnsSetting=e.dns,this.snackbarService.showDone("apps.vpn-socks-client-settings.changes-made"),this.working=!1,this.settingsButton.reset(!1),this.button.reset(!1),ke.refreshCurrentDisplayedData()},i=>{this.working=!1,this.settingsButton.showError(!1),this.button.reset(!1),i=Qe(i),this.snackbarService.showError(i)})}copyPk(e){this.clipboardService.copy(e)?this.snackbarService.showDone("apps.vpn-socks-client-settings.copied-pk-info"):this.snackbarService.showError("apps.vpn-socks-client-settings.copy-pk-error")}continueSavingChanges(e,i,o,r,s){if(this.working)return;this.button.showLoading(!1),this.settingsButton&&this.settingsButton.showLoading(!1),this.working=!0;const a={pk:e};this.configuringVpn&&(a.passcode=i||""),this.operationSubscription=this.appsService.changeAppSettings(ke.getCurrentNodeKey(),this.data.name,a).subscribe(()=>this.onServerDataChangeSuccess(e,!!i,o,r,s),l=>this.onServerDataChangeError(l))}onServerDataChangeSuccess(e,i,o,r,s){this.history=this.history.filter(c=>c.key!==e);const a={key:e,enteredManually:o};if(i&&(a.hasPassword=i),r&&(a.location=r),s&&(a.note=s),this.history=[a].concat(this.history),this.history.length>this.maxHistoryElements){const c=this.history.length-this.maxHistoryElements;this.history.splice(this.history.length-c,c)}this.form.get("pk").setValue(e);const l=JSON.stringify(this.history);this.storageService.setDataForHv(this.configuringVpn?this.vpnHistoryStorageKey:this.socksHistoryStorageKey,l),ke.refreshCurrentDisplayedData(),this.snackbarService.showDone("apps.vpn-socks-client-settings.changes-made"),this.working=!1,this.button.reset(!1),this.settingsButton&&this.settingsButton.reset(!1)}onServerDataChangeError(e){this.working=!1,this.button.showError(!1),this.settingsButton&&this.settingsButton.reset(!1),e=Qe(e),this.snackbarService.showError(e)}static{this.\u0275fac=function(i){return new(i||t)(O(En),O(Bt),O(Rs),O(di),O(ct),O(Ot),O(Bke),O(np),O(ti))}}static{this.\u0275cmp=re({type:t,selectors:[["app-skysocks-client-settings"]],viewQuery:function(i,o){if(1&i&&ot(gDe,5)(_De,5)(bDe,5)(vDe,5),2&i){let r;he(r=fe())&&(o.button=r.first),he(r=fe())&&(o.settingsButton=r.first),he(r=fe())&&(o.firstInput=r.first),he(r=fe())&&(o.tabGroup=r.first)}},standalone:!1,decls:38,vars:38,consts:[["content",""],["tabGroup",""],["firstInput",""],["button",""],["settingsButton",""],[3,"headline","dialog","disableDismiss","includeVerticalMargins","includeScrollableArea"],[3,"tabChanged","tabNames","selectedTab"],[3,"selectedIndexChange"],[3,"label"],[3,"formGroup"],[3,"ngClass"],[1,"field-container"],["for","remoteKey",1,"field-label"],["id","pk","formControlName","pk","maxlength","66","matInput",""],[1,"password-history-warning"],["color","primary",1,"float-right",3,"action","disabled"],[1,"loading-indicator",3,"showWhite"],[1,"info-text"],[1,"paginator"],[1,"d-flex"],["id","password","type","password","formControlName","password","maxlength","100","matInput",""],[3,"inline"],["mat-button","",1,"list-button","grey-button-background","w-100",3,"click"],[1,"filter-button-content"],[1,"icon-area"],[1,"item"],[1,"blue-part"],["mat-button","",1,"list-button","grey-button-background","w-100",3,"click","ngClass"],[1,"button-content"],["mat-button","",1,"list-button","grey-button-background",3,"click","matTooltip"],[1,"option-button-icon",3,"inline"],[1,"flag-container"],["mat-icon-button","",1,"hard-grey-button-background",3,"click"],["mat-button","",1,"list-button","grey-button-background","w-100","d-none","d-md-inline",3,"click","ngClass"],[4,"ngTemplateOutlet"],["mat-button","",1,"list-button","grey-button-background","d-none","d-md-inline",3,"click","matTooltip"],["mat-button","",1,"list-button","grey-button-background","w-100","d-md-none",3,"click","ngClass"],[1,"button-content","d-flex"],[1,"full-size-area"],[1,"options-container"],[1,"small-button","d-md-none"],["formControlName","dns","maxlength","15","matInput",""],[1,"main-theme","settings-option"],["color","primary","formControlName","killswitch",3,"ngClass"],[1,"help-icon",3,"inline","matTooltip"],[1,"settings-changed-warning"]],template:function(i,o){1&i&&(h(0,"app-dialog",5),b(1,"translate"),h(2,"app-tab-selector",6),F("tabChanged",function(s){return o.tabChangeRequested(s)}),u(),h(3,"mat-dialog-content",null,0)(5,"mat-tab-group",7,1),F("selectedIndexChange",function(){return o.tabIdexChanged()}),h(7,"mat-tab",8),b(8,"translate"),h(9,"form",9)(10,"mat-form-field",10)(11,"div",11)(12,"label",12),p(13),b(14,"translate"),u(),B(15,"input",13,2),u(),h(17,"mat-error"),x(18,wDe,3,3,"span")(19,xDe,3,3,"span"),u()(),x(20,SDe,6,6,"mat-form-field",10),x(21,kDe,5,4,"div",14),h(22,"app-button",15,3),F("action",function(){return o.saveChanges()}),p(24),b(25,"translate"),u()()(),h(26,"mat-tab",8),b(27,"translate"),x(28,DDe,1,1,"app-loading-indicator",16),x(29,MDe,5,4,"div",17),x(30,BDe,15,6),x(31,VDe,10,7,"div",18),u(),h(32,"mat-tab",8),b(33,"translate"),x(34,HDe,6,7,"div"),ve(35,YDe,15,16,"div",19,Fe),u(),x(37,QDe,23,26,"mat-tab",8),u()()()),2&i&&(C("headline",y(1,24,"apps.vpn-socks-client-settings."+(o.configuringVpn?"vpn-title":"socks-title")))("dialog",o.dialogRef)("disableDismiss",o.disableDismiss)("includeVerticalMargins",!1)("includeScrollableArea",!1),d(2),C("tabNames",o.tabLabels)("selectedTab",o.currentTab),d(5),C("label",y(8,26,o.tabLabels[0])),d(2),C("formGroup",o.form),d(),C("ngClass",se(36,Dc,o.disableDismiss)),d(3),M(y(14,28,"apps.vpn-socks-client-settings.public-key")),d(5),S(o.form.get("pk").hasError("pattern")?19:18),d(2),S(o.configuringVpn?20:-1),d(),S(o.form&&o.form.get("password").value?21:-1),d(),C("disabled",!o.form.valid||o.working),d(2),E(" ",y(25,30,"apps.vpn-socks-client-settings.save")," "),d(2),C("label",y(27,32,o.tabLabels[1])),d(2),S(o.loadingFromDiscovery?28:-1),d(),S(o.loadingFromDiscovery||0!==o.proxiesFromDiscovery.length?-1:29),d(),S(!o.loadingFromDiscovery&&o.proxiesFromDiscovery.length>0?30:-1),d(),S(o.numberOfPages>1?31:-1),d(),C("label",y(33,34,o.tabLabels[2])),d(2),S(0===o.history.length?34:-1),d(),ye(o.history),d(2),S(o.configuringVpn?37:-1))},dependencies:[$t,Ld,xn,Gt,qt,wn,wi,on,mn,Jd,sn,Ma,In,XH,hDe,Pn,Wo,We,Kt,kr,ui,gn,Yr,mDe,xe],styles:["mat-tab-header{border-bottom:solid 1px rgba(0,0,0,.12)}@media(max-width:767px){ mat-tab-header{display:none!important}}app-tab-selector[_ngcontent-%COMP%]{display:none}@media(max-width:767px){app-tab-selector[_ngcontent-%COMP%]{display:block!important}}form[_ngcontent-%COMP%]{margin-top:15px}.info-text[_ngcontent-%COMP%]{margin-top:20px;margin-bottom:2px;text-align:center;color:#202226}.info-text[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:5px}.loading-indicator[_ngcontent-%COMP%]{height:100px}.password-history-warning[_ngcontent-%COMP%]{font-size:.7rem;opacity:.7;position:relative;top:-5px}.list-button[_ngcontent-%COMP%]{border-bottom:solid 1px rgba(0,0,0,.12);height:auto;justify-content:left}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%]{padding:15px 0;white-space:normal;line-height:1.3;color:#202226;text-align:left;display:flex;font-size:.8rem;word-break:break-word}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%] .icon-area[_ngcontent-%COMP%]{font-size:20px;margin-right:15px;color:#999;opacity:.4;align-self:center}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]{margin:4px 0}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:first-of-type{color:#999}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%] .blue-part[_ngcontent-%COMP%]{color:#215f9e}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%]{text-align:left;padding:15px 0;white-space:normal}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .full-size-area[_ngcontent-%COMP%]{flex-grow:1}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]{line-height:1.3;margin:4px 0;font-size:.8rem;color:#202226;word-break:break-all}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]:first-of-type{color:#999}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .highlighted[_ngcontent-%COMP%]{background-color:#ff0}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .options-container[_ngcontent-%COMP%]{flex-shrink:0;margin-left:5px;text-align:right;line-height:1}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .options-container[_ngcontent-%COMP%] .small-button[_ngcontent-%COMP%]{width:24px;height:24px;line-height:14px;font-size:14px;margin-left:5px}.list-button[_ngcontent-%COMP%] .option-button-icon[_ngcontent-%COMP%]{font-size:14px;margin:0!important;overflow:visible!important}.paginator[_ngcontent-%COMP%]{float:right;margin-top:15px;display:flex;align-items:center}@media(max-width:767px){.paginator[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{font-size:.7rem}}.paginator[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-left:5px;display:flex}.settings-option[_ngcontent-%COMP%]{margin-top:20px}.settings-option[_ngcontent-%COMP%] mat-checkbox[_ngcontent-%COMP%]{margin-bottom:15px}.settings-changed-warning[_ngcontent-%COMP%]{font-size:.7rem;opacity:.7;position:relative}"]})}}return t})();const eMe=["button"],tMe=t=>({name:t}),n6=t=>({"element-disabled":t}),i6=t=>({number:t});function nMe(t,n){if(1&t){const e=oe();Vr(0,4),h(1,"div",7)(2,"mat-form-field",8)(3,"div",9)(4,"label",10),p(5),b(6,"translate"),u(),B(7,"input",11),u()(),h(8,"mat-form-field",8)(9,"div",9)(10,"label",12),p(11),b(12,"translate"),u(),B(13,"input",13),u()(),h(14,"button",14),b(15,"translate"),F("click",function(){const o=j(e).$index;return U(v().removeSetting(o))}),h(16,"mat-icon",15),p(17,"close"),u()()(),cr()}if(2&t){const e=n.$index,i=v();d(),C("formGroupName",e),d(),C("ngClass",se(15,n6,i.disableDismiss)),d(3),M(pe(6,7,"apps.user-app-settings.name",se(17,i6,e+1))),d(3),C("ngClass",se(19,n6,i.disableDismiss)),d(3),M(pe(12,10,"apps.user-app-settings.value",se(21,i6,e+1))),d(3),C("matTooltip",y(15,13,"apps.user-app-settings.remove")),d(2),C("inline",!0)}}let iMe=(()=>{class t{static openDialog(e,i){const o=new nn;return o.data=i,o.autoFocus=!1,o.width=rt.mediumModalWidth,e.open(t,o)}constructor(e,i,o,r,s,a){this.data=e,this.appsService=i,this.formBuilder=o,this.dialogRef=r,this.snackbarService=s,this.dialog=a,this.appName="",this.appName=e.name}ngOnInit(){if(this.form=this.formBuilder.group({settings:this.formBuilder.array([])}),this.data.args&&this.data.args.length>0)for(let e=0;e{let s=r.get("name").value,a=r.get("value").value;s=s&&s.trim(),a=a&&a.trim(),s?(o[s]=a,i+=1):e=!0}),e||0===i){const s=Rt.createConfirmationDialog(this.dialog,"apps.user-app-settings."+(0===i?"empty-confirmation":"invalid-confirmation"));s.componentInstance.operationAccepted.subscribe(()=>{s.close(),this.continueSavingChanges(o)})}else this.continueSavingChanges(o)}continueSavingChanges(e){this.button.showLoading();const i={custom_setting:e};this.operationSubscription=this.appsService.changeAppSettings(ke.getCurrentNodeKey(),this.data.name,i).subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)})}onSuccess(){ke.refreshCurrentDisplayedData(),this.snackbarService.showDone("apps.user-app-settings.changes-made"),this.dialogRef.close()}onError(e){this.button.showError(),e=Qe(e),this.snackbarService.showError(e)}static{this.\u0275fac=function(i){return new(i||t)(O(En),O(Rs),O(di),O(Bt),O(ct),O(Ot))}}static{this.\u0275cmp=re({type:t,selectors:[["app-user-app-settings"]],viewQuery:function(i,o){if(1&i&&ot(eMe,5),2&i){let r;he(r=fe())&&(o.button=r.first)}},standalone:!1,decls:16,vars:19,consts:[["button",""],[3,"headline","dialog","disableDismiss"],[1,"info-container"],[3,"formGroup"],["formArrayName","settings"],[1,"add-setting",3,"click"],["color","primary",1,"float-right",3,"action","disabled"],[1,"settings-row",3,"formGroupName"],[3,"ngClass"],[1,"field-container"],["for","name",1,"field-label"],["id","name","formControlName","name","matInput",""],["for","value",1,"field-label"],["id","value","formControlName","value","matInput",""],["mat-button","",1,"transparent-button",3,"click","matTooltip"],[3,"inline"]],template:function(i,o){1&i&&(h(0,"app-dialog",1),b(1,"translate"),h(2,"div",2),p(3),b(4,"translate"),u(),h(5,"form",3),ve(6,nMe,18,23,"ng-container",4,Fe),u(),h(8,"div")(9,"a",5),F("click",function(){return o.addSetting()}),p(10),b(11,"translate"),u()(),h(12,"app-button",6,0),F("action",function(){return o.saveChanges()}),p(14),b(15,"translate"),u()()),2&i&&(C("headline",pe(1,8,"apps.user-app-settings.title",se(17,tMe,o.appName)))("dialog",o.dialogRef)("disableDismiss",o.disableDismiss),d(3),M(y(4,11,"apps.user-app-settings.info")),d(2),C("formGroup",o.form),d(),ye(o.settingsControls),d(4),E("+ ",y(11,13,"apps.user-app-settings.add")),d(2),C("disabled",!o.form.valid),d(2),E(" ",y(15,15,"apps.user-app-settings.save")," "))},dependencies:[$t,xn,Gt,qt,wn,on,mn,sc,du,sn,In,Pn,We,Kt,ui,gn,xe],styles:[".info-container[_ngcontent-%COMP%]{margin-bottom:10px}.settings-row[_ngcontent-%COMP%]{display:flex}mat-form-field[_ngcontent-%COMP%]{flex-grow:1;margin-right:10px}button[_ngcontent-%COMP%]{flex-shrink:0;width:50px;padding:0!important;align-self:center;border-radius:10px}button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin:0!important}.add-setting[_ngcontent-%COMP%]{color:#215f9e!important;cursor:pointer}"]})}}return t})();const oMe=["button"],o6=t=>({"element-disabled":t});let rMe=(()=>{class t{static openDialog(e,i){const o=new nn;return o.data=i,o.autoFocus=!1,o.width=rt.mediumModalWidth,e.open(t,o)}constructor(e,i,o,r,s,a){this.data=e,this.appsService=i,this.formBuilder=o,this.dialogRef=r,this.snackbarService=s,this.dialog=a}ngOnInit(){if(this.form=this.formBuilder.group({localhostOnly:[!0],port:["",Ne.compose([Ne.required,Ne.min(1025),Ne.max(65536)])]}),this.formSubscription=this.form.get("localhostOnly").valueChanges.subscribe(e=>{if(!e){this.form.get("localhostOnly").setValue(!0);const i=Rt.createConfirmationDialog(this.dialog,"apps.skychat-settings.non-localhost-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.componentInstance.closeModal(),this.form.get("localhostOnly").setValue(!1,{emitEvent:!1})})}}),this.data.args&&this.data.args.length>0)for(let e=0;e({"paginator-icons-fixer":t}),r6=(t,n)=>["/nodes",t,"apps-list",n],aMe=(t,n)=>({"small-node-list-margins":t,"full-node-list-margins":n}),lMe=t=>({"d-lg-none d-xl-table":t}),cMe=t=>({"d-lg-table d-xl-none":t}),s6=t=>({error:t}),dMe=(t,n)=>["/nodes",t,"apps-list",n,"1"];function uMe(t,n){1&t&&(h(0,"span",3),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"apps.apps-list.title-official")))}function hMe(t,n){1&t&&(h(0,"span",3),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"apps.apps-list.title-user")))}function fMe(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,v().$implicit.translatableValue)," ")}function pMe(t,n){1&t&&p(0),2&t&&E(" ",v().$implicit.value," ")}function mMe(t,n){if(1&t&&(h(0,"div",15)(1,"span"),p(2),b(3,"translate"),u(),x(4,fMe,2,3),x(5,pMe,1,1),u()),2&t){const e=n.$implicit;d(2),E("",y(3,3,e.filterName),": "),d(2),S(e.translatableValue?4:-1),d(),S(e.value?5:-1)}}function gMe(t,n){if(1&t){const e=oe();h(0,"div",14),F("click",function(){return j(e),U(v().dataFilterer.removeFilters())}),ve(1,mMe,6,5,"div",15,Fe),h(3,"div",16),p(4),b(5,"translate"),u()()}if(2&t){const e=v();d(),ye(e.dataFilterer.currentFiltersTexts),d(3),M(y(5,1,"filters.press-to-remove"))}}function _Me(t,n){if(1&t){const e=oe();h(0,"mat-icon",17),b(1,"translate"),F("click",function(){return j(e),U(v().dataFilterer.changeFilters())}),p(2,"filter_list"),u()}2&t&&C("inline",!0)("matTooltip",y(1,2,"filters.filter-action"))}function bMe(t,n){1&t&&(h(0,"mat-icon",8),p(1,"more_horiz"),u()),2&t&&(v(),C("matMenuTriggerFor",Hn(10)))}function vMe(t,n){if(1&t&&B(0,"app-paginator",12),2&t){const e=v();C("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",_t(4,r6,e.nodePK,e.showOfficialApps))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function yMe(t,n){if(1&t&&(h(0,"mat-icon",22),p(1),u()),2&t){const e=v(2);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function CMe(t,n){if(1&t&&(h(0,"mat-icon",22),p(1),u()),2&t){const e=v(2);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function wMe(t,n){if(1&t&&(h(0,"mat-icon",22),p(1),u()),2&t){const e=v(2);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function xMe(t,n){if(1&t&&(h(0,"mat-icon",22),p(1),u()),2&t){const e=v(2);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function SMe(t,n){if(1&t&&(B(0,"i",38),b(1,"translate")),2&t){const e=v().$implicit,i=v(2);Ze(i.getStateClass(e)),C("matTooltip",y(1,3,i.getStateTooltip(e)))}}function kMe(t,n){if(1&t&&(h(0,"mat-icon",34),b(1,"translate"),p(2,"warning"),u()),2&t){const e=v().$implicit;C("inline",!0)("matTooltip",pe(1,2,"apps.status-failed-tooltip",se(5,s6,e.detailedStatus?e.detailedStatus:"")))}}function DMe(t,n){if(1&t&&(h(0,"a",36)(1,"button",37),b(2,"translate"),h(3,"mat-icon",22),p(4,"open_in_browser"),u()()()),2&t){const e=v().$implicit;C("href",v(2).getLink(e),mo),d(),C("matTooltip",y(2,3,"apps.open")),d(2),C("inline",!0)}}function MMe(t,n){if(1&t){const e=oe();h(0,"button",35),b(1,"translate"),F("click",function(){j(e);const o=v().$implicit;return U(v(2).config(o))}),h(2,"mat-icon",22),p(3,"settings"),u()()}2&t&&(C("matTooltip",y(1,2,"apps.settings")),d(2),C("inline",!0))}function TMe(t,n){if(1&t){const e=oe();h(0,"tr")(1,"td",31)(2,"mat-checkbox",32),F("change",function(){const o=j(e).$implicit;return U(v(2).changeSelection(o))}),u()(),h(3,"td"),x(4,SMe,2,5,"i",33),x(5,kMe,3,7,"mat-icon",34),u(),h(6,"td"),p(7),u(),h(8,"td"),p(9),u(),h(10,"td")(11,"button",35),b(12,"translate"),F("click",function(){const o=j(e).$implicit;return U(v(2).changeAppAutostart(o))}),h(13,"mat-icon",22),p(14),u()()(),h(15,"td",24),x(16,DMe,5,5,"a",36),x(17,MMe,4,4,"button",37),h(18,"button",35),b(19,"translate"),F("click",function(){const o=j(e).$implicit;return U(v(2).viewLogs(o))}),h(20,"mat-icon",22),p(21,"list"),u()(),h(22,"button",35),b(23,"translate"),F("click",function(){const o=j(e).$implicit;return U(v(2).changeAppState(o))}),h(24,"mat-icon",22),p(25),u()()()()}if(2&t){const e=n.$implicit,i=v(2);d(2),C("checked",i.selections.get(e.name)),d(2),S(2!==e.status?4:-1),d(),S(2===e.status?5:-1),d(2),E(" ",e.name," "),d(2),E(" ",e.port," "),d(2),C("matTooltip",y(12,15,e.autostart?"apps.apps-list.disable-autostart":"apps.apps-list.enable-autostart")),d(2),C("inline",!0),d(),M(e.autostart?"done":"close"),d(2),S(i.getLink(e)?16:-1),d(),S(i.appsWithoutConfig.has(e.name)?-1:17),d(),C("matTooltip",y(19,17,"apps.view-logs")),d(2),C("inline",!0),d(2),C("matTooltip",y(23,19,"apps."+(0===e.status||2===e.status?"start-app":"stop-app"))),d(2),C("inline",!0),d(),M(0===e.status||2===e.status?"play_arrow":"stop")}}function EMe(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"tables.label")," ")}function PMe(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"tables.inverted-order")," ")}function IMe(t,n){if(1&t&&(h(0,"a",43),F("click",function(i){return i.stopPropagation()}),h(1,"button",44),b(2,"translate"),h(3,"mat-icon"),p(4,"open_in_browser"),u()()()),2&t){const e=v().$implicit;C("href",v(2).getLink(e),mo),d(),C("matTooltip",y(2,2,"apps.open"))}}function OMe(t,n){if(1&t){const e=oe();h(0,"tr")(1,"td")(2,"div",27)(3,"div",39)(4,"mat-checkbox",32),F("change",function(){const o=j(e).$implicit;return U(v(2).changeSelection(o))}),u()(),h(5,"div",28)(6,"div",40)(7,"span",2),p(8),b(9,"translate"),u(),p(10),u(),h(11,"div",40)(12,"span",2),p(13),b(14,"translate"),u(),p(15),u(),h(16,"div",40)(17,"span",2),p(18),b(19,"translate"),u(),p(20,": "),h(21,"span"),p(22),b(23,"translate"),u()(),h(24,"div",40)(25,"span",2),p(26),b(27,"translate"),u(),p(28,": "),h(29,"span"),p(30),b(31,"translate"),u()()(),B(32,"div",41),h(33,"div",29),x(34,IMe,5,4,"a",36),h(35,"button",42),b(36,"translate"),F("click",function(o){const r=j(e).$implicit,s=v(2);return o.stopPropagation(),U(s.showOptionsDialog(r))}),h(37,"mat-icon"),p(38),u()()()()()()}if(2&t){const e=n.$implicit,i=v(2);d(4),C("checked",i.selections.get(e.name)),d(4),M(y(9,16,"apps.apps-list.app-name")),d(2),E(": ",e.name," "),d(3),M(y(14,18,"apps.apps-list.port")),d(2),E(": ",e.port," "),d(3),M(y(19,20,"apps.apps-list.state")),d(3),Ze(i.getSmallScreenStateClass(e)+" title"),d(),E(" ",pe(23,22,i.getSmallScreenStateTextVar(e),se(31,s6,e.detailedStatus?e.detailedStatus:""))," "),d(4),M(y(27,25,"apps.apps-list.auto-start")),d(3),Ze((e.autostart?"green-clear-text":"red-clear-text")+" title"),d(),E(" ",y(31,27,e.autostart?"apps.apps-list.autostart-enabled":"apps.apps-list.autostart-disabled")," "),d(4),S(i.getLink(e)?34:-1),d(),C("matTooltip",y(36,29,"common.options")),d(3),M("add")}}function AMe(t,n){if(1&t&&B(0,"app-view-all-link",30),2&t){const e=v(2);C("numberOfElements",e.filteredApps.length)("linkParts",_t(3,dMe,e.nodePK,e.showOfficialApps))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function RMe(t,n){if(1&t){const e=oe();h(0,"div",13)(1,"div",18)(2,"table",19)(3,"tr"),B(4,"th"),h(5,"th",20),b(6,"translate"),F("click",function(){j(e);const o=v();return U(o.dataSorter.changeSortingOrder(o.stateSortData))}),B(7,"span",21),x(8,yMe,2,2,"mat-icon",22),u(),h(9,"th",23),F("click",function(){j(e);const o=v();return U(o.dataSorter.changeSortingOrder(o.nameSortData))}),p(10),b(11,"translate"),x(12,CMe,2,2,"mat-icon",22),u(),h(13,"th",23),F("click",function(){j(e);const o=v();return U(o.dataSorter.changeSortingOrder(o.portSortData))}),p(14),b(15,"translate"),x(16,wMe,2,2,"mat-icon",22),u(),h(17,"th",23),F("click",function(){j(e);const o=v();return U(o.dataSorter.changeSortingOrder(o.autoStartSortData))}),p(18),b(19,"translate"),x(20,xMe,2,2,"mat-icon",22),u(),B(21,"th",24),u(),ve(22,TMe,26,21,"tr",null,Fe),u(),h(24,"table",25)(25,"tr",26),F("click",function(){return j(e),U(v().dataSorter.openSortingOrderModal())}),h(26,"td")(27,"div",27)(28,"div",28)(29,"div",2),p(30),b(31,"translate"),u(),h(32,"div"),p(33),b(34,"translate"),x(35,EMe,2,3),x(36,PMe,2,3),u()(),h(37,"div",29)(38,"mat-icon",22),p(39,"keyboard_arrow_down"),u()()()()(),ve(40,OMe,39,33,"tr",null,Fe),u(),x(42,AMe,1,6,"app-view-all-link",30),u()()}if(2&t){const e=v();d(),C("ngClass",_t(29,aMe,e.showShortList_,!e.showShortList_)),d(),C("ngClass",se(32,lMe,e.showShortList_)),d(3),C("matTooltip",y(6,17,"apps.apps-list.state-tooltip")),d(3),S(e.dataSorter.currentSortingColumn===e.stateSortData?8:-1),d(2),E(" ",y(11,19,"apps.apps-list.app-name")," "),d(2),S(e.dataSorter.currentSortingColumn===e.nameSortData?12:-1),d(2),E(" ",y(15,21,"apps.apps-list.port")," "),d(2),S(e.dataSorter.currentSortingColumn===e.portSortData?16:-1),d(2),E(" ",y(19,23,"apps.apps-list.auto-start")," "),d(2),S(e.dataSorter.currentSortingColumn===e.autoStartSortData?20:-1),d(2),ye(e.dataSource),d(2),C("ngClass",se(34,cMe,e.showShortList_)),d(6),M(y(31,25,"tables.sorting-title")),d(3),E("",y(34,27,e.dataSorter.currentSortingColumn.label)," "),d(2),S(e.dataSorter.currentlySortingByLabel?35:-1),d(),S(e.dataSorter.sortingInReverseOrder?36:-1),d(2),C("inline",!0),d(2),ye(e.dataSource),d(2),S(e.showShortList_&&e.numberOfPages>1?42:-1)}}function FMe(t,n){1&t&&(h(0,"span",47),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"apps.apps-list.empty-official")))}function NMe(t,n){1&t&&(h(0,"span",47),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"apps.apps-list.empty-user")))}function LMe(t,n){1&t&&(h(0,"span",47),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"apps.apps-list.empty-with-filter")))}function BMe(t,n){if(1&t&&(h(0,"div",13)(1,"div",45)(2,"mat-icon",46),p(3,"warning"),u(),x(4,FMe,3,3,"span",47),x(5,NMe,3,3,"span",47),x(6,LMe,3,3,"span",47),u()()),2&t){const e=v();d(2),C("inline",!0),d(2),S(0===e.allAppsForType.length&&e.showOfficialApps?4:-1),d(),S(0!==e.allAppsForType.length||e.showOfficialApps?-1:5),d(),S(0!==e.allAppsForType.length?6:-1)}}function VMe(t,n){if(1&t&&B(0,"app-paginator",12),2&t){const e=v();C("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",_t(4,r6,e.nodePK,e.showOfficialApps))("queryParams",e.dataFilterer.currentUrlQueryParams)}}let a6=(()=>{class t{set showShortList(e){this.showShortList_=e,this.dataSorter&&this.dataSorter.setData(this.filteredApps)}set apps(e){this.allApps=e||[],this.allApps&&(this.allAppsForType=[],this.allApps.forEach(i=>{(this.showOfficialApps&&this.officialAppsList.has(i.name)||!this.showOfficialApps&&!this.officialAppsList.has(i.name))&&this.allAppsForType.push(i)}),this.dataFilterer&&this.dataFilterer.setData(this.allAppsForType))}constructor(e,i,o,r,s,a,l){this.appsService=e,this.dialog=i,this.route=o,this.router=r,this.snackbarService=s,this.translateService=a,this.storageService=l,this.listIdForOfficialApps="op",this.listIdForUserApps="up",this.officialAppsList=new Set(["skychat","skysocks","skysocks-client","vpn-client","vpn-server"]),this.showOfficialApps=!0,this.stateSortData=new Dt(["status"],"apps.apps-list.state",st.NumberReversed),this.nameSortData=new Dt(["name"],"apps.apps-list.app-name",st.Text),this.portSortData=new Dt(["port"],"apps.apps-list.port",st.Number),this.autoStartSortData=new Dt(["autostart"],"apps.apps-list.auto-start",st.Boolean),this.selections=new Map,this.appsWithoutConfig=new Set,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.filterProperties=[{filterName:"apps.apps-list.filter-dialog.state",keyNameInElementsArray:"status",type:Sn.Select,printableLabelsForValues:[{value:"",label:"apps.apps-list.filter-dialog.state-options.any"},{value:"1",label:"apps.apps-list.filter-dialog.state-options.running"},{value:"0",label:"apps.apps-list.filter-dialog.state-options.stopped"}]},{filterName:"apps.apps-list.filter-dialog.name",keyNameInElementsArray:"name",type:Sn.TextInput,maxlength:50},{filterName:"apps.apps-list.filter-dialog.port",keyNameInElementsArray:"port",type:Sn.TextInput,maxlength:8},{filterName:"apps.apps-list.filter-dialog.autostart",keyNameInElementsArray:"autostart",type:Sn.Select,printableLabelsForValues:[{value:"",label:"apps.apps-list.filter-dialog.autostart-options.any"},{value:"true",label:"apps.apps-list.filter-dialog.autostart-options.enabled"},{value:"false",label:"apps.apps-list.filter-dialog.autostart-options.disabled"}]}],this.refreshAgain=!1,this.operationSubscriptionsGroup=[],this.navigationsSubscription=this.route.paramMap.subscribe(c=>{if(c.has("showOfficialApps")&&(this.showOfficialApps=c.get("showOfficialApps").toUpperCase()==="true".toUpperCase()),c.has("page")){let f=Number.parseInt(c.get("page"),10);(isNaN(f)||f<1)&&(f=1),this.currentPageInUrl=f,this.recalculateElementsToShow()}})}ngOnInit(){const e=this.showOfficialApps?this.listIdForOfficialApps:this.listIdForUserApps;this.dataSorter=new gu(this.dialog,this.translateService,this.storageService,[this.stateSortData,this.nameSortData,this.portSortData,this.autoStartSortData],1,e),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataSorter&&this.dataSorter.setData(this.filteredApps),this.dataFilterer=new _u(this.dialog,this.route,this.router,this.filterProperties,e),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(o=>{this.filteredApps=o,this.dataSorter.setData(this.filteredApps)}),this.allAppsForType&&this.dataFilterer.setData(this.allAppsForType)}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.operationSubscriptionsGroup.forEach(e=>e.unsubscribe()),this.dataSortedSubscription.unsubscribe(),this.dataFiltererSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFilterer.dispose()}getLink(e){if("skychat"===e.name.toLocaleLowerCase()&&this.nodeIp&&0!==e.status&&2!==e.status){let i="8001",o="127.0.0.1";if(e.args)for(let r=0;r{i&&(e=!0)}),e}changeAllSelections(e){this.selections.forEach((i,o)=>{this.selections.set(o,e)})}changeStateOfSelected(e){const i=[];this.selections.forEach((o,r)=>{o&&(e&&(0===this.appsMap.get(r).status||2===this.appsMap.get(r).status)||!e&&0!==this.appsMap.get(r).status&&2!==this.appsMap.get(r).status)&&i.push(r)}),this.changeAppsValRecursively(i,!1,e)}changeAutostartOfSelected(e){const i=[];this.selections.forEach((o,r)=>{o&&(e&&!this.appsMap.get(r).autostart||!e&&this.appsMap.get(r).autostart)&&i.push(r)}),0!==i.length&&this.changeAppsValRecursively(i,!0,e,null)}showOptionsDialog(e){const i=[{icon:"list",label:"apps.view-logs"},{icon:0===e.status||2===e.status?"play_arrow":"stop",label:"apps."+(0===e.status||2===e.status?"start-app":"stop-app")},{icon:e.autostart?"close":"done",label:e.autostart?"apps.apps-list.disable-autostart":"apps.apps-list.enable-autostart"}];this.appsWithoutConfig.has(e.name)||i.push({icon:"settings",label:"apps.settings"}),ao.openDialog(this.dialog,i,"common.options").afterClosed().subscribe(o=>{1===o?this.viewLogs(e):2===o?this.changeAppState(e):3===o?this.changeAppAutostart(e):4===o&&this.config(e)})}changeAppState(e){this.changeSingleAppVal(this.startChangingAppState(e.name,0===e.status||2===e.status))}changeAppAutostart(e){this.changeSingleAppVal(this.startChangingAppAutostart(e.name,!e.autostart))}changeSingleAppVal(e,i=null){this.operationSubscriptionsGroup.push(e.subscribe(()=>{i&&i.close(),setTimeout(()=>{this.refreshAgain=!0,ke.refreshCurrentDisplayedData()},50),this.snackbarService.showDone("apps.operation-completed")},o=>{o=Qe(o),setTimeout(()=>{this.refreshAgain=!0,ke.refreshCurrentDisplayedData()},50),i?i.componentInstance.showDone("confirmation.error-header-text",o.translatableErrorMsg):this.snackbarService.showError(o)}))}viewLogs(e){0!==e.status&&2!==e.status?vke.openDialog(this.dialog,e):this.snackbarService.showError("apps.apps-list.unavailable-logs-error")}config(e){"skychat"===e.name?rMe.openDialog(this.dialog,e):"skysocks"===e.name||"vpn-server"===e.name?Ske.openDialog(this.dialog,e):"skysocks-client"===e.name||"vpn-client"===e.name?JDe.openDialog(this.dialog,e):iMe.openDialog(this.dialog,e)}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredApps){const e=this.showShortList_?rt.maxShortListElements:rt.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredApps.length/e),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const i=e*(this.currentPage-1);this.appsToShow=this.filteredApps.slice(i,i+e),this.appsMap=new Map,this.appsToShow.forEach(s=>{this.appsMap.set(s.name,s),this.selections.has(s.name)||this.selections.set(s.name,!1)});const r=[];this.selections.forEach((s,a)=>{this.appsMap.has(a)||r.push(a)}),r.forEach(s=>{this.selections.delete(s)})}else this.appsToShow=null,this.selections=new Map;this.dataSource=this.appsToShow,this.refreshAgain&&(this.refreshAgain=!1,setTimeout(()=>ke.refreshCurrentDisplayedData(),2e3))}startChangingAppState(e,i){return this.appsService.changeAppState(ke.getCurrentNodeKey(),e,i).pipe(Se(o=>(null!=o.status&&this.dataSource.forEach(r=>{r.name===e&&(r.status=o.status,r.detailedStatus=o.detailed_status)}),o)))}startChangingAppAutostart(e,i){return this.appsService.changeAppAutostart(ke.getCurrentNodeKey(),e,i)}changeAppsValRecursively(e,i,o,r=null){if(!e||0===e.length)return setTimeout(()=>ke.refreshCurrentDisplayedData(),50),this.snackbarService.showWarning("apps.operation-unnecessary"),void(r&&r.close());let s;s=i?this.startChangingAppAutostart(e[e.length-1],o):this.startChangingAppState(e[e.length-1],o),this.operationSubscriptionsGroup.push(s.subscribe(()=>{e.pop(),0===e.length?(r&&r.close(),setTimeout(()=>{this.refreshAgain=!0,ke.refreshCurrentDisplayedData()},50),this.snackbarService.showDone("apps.operation-completed")):this.changeAppsValRecursively(e,i,o,r)},a=>{a=Qe(a),setTimeout(()=>{this.refreshAgain=!0,ke.refreshCurrentDisplayedData()},50),r?r.componentInstance.showDone("confirmation.error-header-text",a.translatableErrorMsg):this.snackbarService.showError(a)}))}static{this.\u0275fac=function(i){return new(i||t)(O(Rs),O(Ot),O(Ai),O(vt),O(ct),O(Go),O(ti))}}static{this.\u0275cmp=re({type:t,selectors:[["app-node-app-list"]],inputs:{nodePK:"nodePK",nodeIp:"nodeIp",showOfficialApps:"showOfficialApps",showShortList:"showShortList",apps:"apps"},standalone:!1,decls:33,vars:39,consts:[["selectionMenu","matMenu"],[1,"generic-title-container","mt-4.5","d-flex",3,"ngClass"],[1,"title"],[1,"uppercase"],[1,"filter-label","subtle-transparent-button","cursor-pointer"],[1,"options"],[1,"options-container"],[1,"small-icon",3,"inline","matTooltip"],[3,"matMenuTriggerFor"],[3,"overlapTrigger"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"click","disabled"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"rounded-elevated-box","mt-3"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],[1,"item"],[1,"transparent-50"],[1,"small-icon",3,"click","inline","matTooltip"],[1,"box-internal-container","overflow",3,"ngClass"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table",3,"ngClass"],[1,"sortable-column",3,"click","matTooltip"],[1,"dot-outline-white"],[3,"inline"],[1,"sortable-column",3,"click"],[1,"actions"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none",3,"ngClass"],[1,"selectable",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],[3,"numberOfElements","linkParts","queryParams"],[1,"selection-col"],[3,"change","checked"],[3,"class","matTooltip"],[1,"red-text",3,"inline","matTooltip"],["mat-button","",1,"big-action-button","transparent-button",3,"click","matTooltip"],["target","_blank","rel","noreferrer nofollow noopener",1,"skychat-link",3,"href"],["mat-button","",1,"big-action-button","transparent-button",3,"matTooltip"],[3,"matTooltip"],[1,"check-part"],[1,"list-row"],[1,"margin-part"],["mat-icon-button","",1,"transparent-button",3,"click","matTooltip"],["target","_blank","rel","noreferrer nofollow noopener",1,"skychat-link",3,"click","href"],["mat-icon-button","",1,"transparent-button",3,"matTooltip"],[1,"box-internal-container"],[1,"alert-icon",3,"inline"],[1,"font-sm"]],template:function(i,o){1&i&&(h(0,"div",1)(1,"div",2),x(2,uMe,3,3,"span",3),x(3,hMe,3,3,"span",3),x(4,gMe,6,3,"div",4),u(),h(5,"div",5)(6,"div",6),x(7,_Me,3,4,"mat-icon",7),x(8,bMe,2,1,"mat-icon",8),h(9,"mat-menu",9,0)(11,"div",10),F("click",function(){return o.changeAllSelections(!0)}),p(12),b(13,"translate"),u(),h(14,"div",10),F("click",function(){return o.changeAllSelections(!1)}),p(15),b(16,"translate"),u(),h(17,"div",11),F("click",function(){return o.changeStateOfSelected(!0)}),p(18),b(19,"translate"),u(),h(20,"div",11),F("click",function(){return o.changeStateOfSelected(!1)}),p(21),b(22,"translate"),u(),h(23,"div",11),F("click",function(){return o.changeAutostartOfSelected(!0)}),p(24),b(25,"translate"),u(),h(26,"div",11),F("click",function(){return o.changeAutostartOfSelected(!1)}),p(27),b(28,"translate"),u()()(),x(29,vMe,1,7,"app-paginator",12),u()(),x(30,RMe,43,36,"div",13),x(31,BMe,7,4,"div",13),x(32,VMe,1,7,"app-paginator",12)),2&i&&(C("ngClass",se(37,sMe,!o.showShortList_&&o.numberOfPages>1&&o.dataSource)),d(2),S(o.showShortList_&&o.showOfficialApps?2:-1),d(),S(o.showShortList_&&!o.showOfficialApps?3:-1),d(),S(o.dataFilterer.currentFiltersTexts&&o.dataFilterer.currentFiltersTexts.length>0?4:-1),d(3),S(o.allAppsForType&&o.allAppsForType.length>0?7:-1),d(),S(o.dataSource&&o.dataSource.length>0?8:-1),d(),C("overlapTrigger",!1),d(3),E(" ",y(13,25,"selection.select-all")," "),d(3),E(" ",y(16,27,"selection.unselect-all")," "),d(2),C("disabled",Qt(!o.hasSelectedElements())),d(),E(" ",y(19,29,"selection.start-all")," "),d(2),C("disabled",Qt(!o.hasSelectedElements())),d(),E(" ",y(22,31,"selection.stop-all")," "),d(2),C("disabled",Qt(!o.hasSelectedElements())),d(),E(" ",y(25,33,"selection.enable-autostart-all")," "),d(2),C("disabled",Qt(!o.hasSelectedElements())),d(),E(" ",y(28,35,"selection.disable-autostart-all")," "),d(2),S(!o.showShortList_&&o.numberOfPages>1&&o.dataSource?29:-1),d(),S(o.dataSource&&o.dataSource.length>0?30:-1),d(),S(o.dataSource&&0!==o.dataSource.length?-1:31),d(),S(!o.showShortList_&&o.numberOfPages>1&&o.dataSource?32:-1))},dependencies:[$t,Pn,Wo,We,Kt,Jr,As,vu,kr,_V,mv,xe],styles:[".actions[_ngcontent-%COMP%]{text-align:right;width:150px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}.skychat-link[_ngcontent-%COMP%]{color:#f8f9f9;text-decoration:none}.skychat-link[_ngcontent-%COMP%] .big-action-button[_ngcontent-%COMP%]{margin-right:5px}"]})}}return t})(),HMe=(()=>{class t extends pn{ngOnInit(){return this.dataSubscription=ke.currentNode.subscribe(e=>{this.nodePK=e.localPk,this.apps=e.apps,this.nodeIp=e.ip}),super.ngOnInit()}ngOnDestroy(){this.dataSubscription.unsubscribe()}static{this.\u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})()}static{this.\u0275cmp=re({type:t,selectors:[["app-apps"]],standalone:!1,features:[be],decls:2,vars:10,consts:[[3,"showOfficialApps","apps","showShortList","nodePK","nodeIp"]],template:function(i,o){1&i&&B(0,"app-node-app-list",0)(1,"app-node-app-list",0),2&i&&(C("showOfficialApps",!0)("apps",o.apps)("showShortList",!0)("nodePK",o.nodePK)("nodeIp",o.nodeIp),d(),C("showOfficialApps",!1)("apps",o.apps)("showShortList",!0)("nodePK",o.nodePK)("nodeIp",o.nodeIp))},dependencies:[a6],encapsulation:2})}}return t})();function jMe(t,n){if(1&t&&(h(0,"span",4),p(1),u()),2&t){const e=v();d(),Xg(" ",e.host.hostname," \xb7 ",e.host.platform||e.host.os," ",e.host.arch," \xb7 uptime ",e.fmtUptime(e.host.uptime_seconds)," ")}}function UMe(t,n){if(1&t&&(h(0,"div",13),p(1),b(2,"number"),u()),2&t){const e=v(3);d(),gt("",e.host.cpu_logical_count," cores \xb7 visor ",pe(2,2,e.procCPUPercent,"1.0-1"),"%")}}function zMe(t,n){if(1&t&&(h(0,"div",13),p(1),b(2,"number"),u()),2&t){const e=v(3);d(),Uh(" ",e.fmtBytes(e.host.mem_used)," / ",e.fmtBytes(e.host.mem_total)," \xb7 visor RSS ",pe(2,3,e.procMemRssMB,"1.0-0"),"M ")}}function $Me(t,n){if(1&t&&(h(0,"div",13),p(1),u()),2&t){const e=v(3);d(),gt("",e.fmtBytes(e.host.disk_used)," / ",e.fmtBytes(e.host.disk_total)," on /")}}function WMe(t,n){if(1&t&&(h(0,"div",13),p(1),u()),2&t){const e=v(3);d(),gt(" fds ",e.host.process.num_fds||"-"," \xb7 conns ",e.host.process.open_conns||0," ")}}function GMe(t,n){if(1&t&&(h(0,"div",7)(1,"div",8)(2,"div",9)(3,"span",10),p(4),b(5,"translate"),u(),h(6,"span",11),p(7),b(8,"number"),u()(),B(9,"app-line-chart",12),x(10,UMe,3,5,"div",13),u(),h(11,"div",8)(12,"div",9)(13,"span",10),p(14),b(15,"translate"),u(),h(16,"span",11),p(17),b(18,"number"),u()(),B(19,"app-line-chart",12),x(20,zMe,3,6,"div",13),u(),h(21,"div",8)(22,"div",9)(23,"span",10),p(24),b(25,"translate"),u(),h(26,"span",11),p(27),b(28,"number"),u()(),B(29,"app-line-chart",12),x(30,$Me,2,2,"div",13),u(),h(31,"div",8)(32,"div",9)(33,"span",10),p(34),b(35,"translate"),u(),h(36,"span",11),p(37),u()(),B(38,"app-line-chart",14),h(39,"div",13),p(40),u()(),h(41,"div",8)(42,"div",9)(43,"span",10),p(44),b(45,"translate"),u(),h(46,"span",11),p(47),u()(),B(48,"app-line-chart",14),h(49,"div",13),p(50),u()(),h(51,"div",8)(52,"div",9)(53,"span",10),p(54),b(55,"translate"),u(),h(56,"span",11),p(57),u()(),B(58,"app-line-chart",14),x(59,WMe,2,2,"div",13),u()()),2&t){const e=v(2);d(4),M(y(5,36,"node.resource-monitor.cpu")),d(3),E("",e.host?pe(8,38,e.host.cpu_percent,"1.0-1"):"-","%"),d(2),C("data",e.cpuPctSeries)("min",0)("max",100)("height",60),d(),S(e.host?10:-1),d(4),M(y(15,41,"node.resource-monitor.memory")),d(3),E("",e.host?pe(18,43,e.host.mem_percent,"1.0-1"):"-","%"),d(2),C("data",e.memPctSeries)("min",0)("max",100)("height",60),d(),S(e.host?20:-1),d(4),M(y(25,46,"node.resource-monitor.disk")),d(3),E("",e.host&&e.host.disk_percent?pe(28,48,e.host.disk_percent,"1.0-1"):"-","%"),d(2),C("data",e.diskPctSeries)("min",0)("max",100)("height",60),d(),S(e.host&&e.host.disk_total?30:-1),d(4),M(y(35,51,"node.resource-monitor.net-rx")),d(3),M(e.fmtBps(e.netRxBpsSeries[e.netRxBpsSeries.length-1])),d(),C("data",e.netRxBpsSeries)("height",60),d(2),E("",e.host?e.fmtBytes(e.host.net_bytes_recv):"-"," total"),d(4),M(y(45,53,"node.resource-monitor.net-tx")),d(3),M(e.fmtBps(e.netTxBpsSeries[e.netTxBpsSeries.length-1])),d(),C("data",e.netTxBpsSeries)("height",60),d(2),E("",e.host?e.fmtBytes(e.host.net_bytes_sent):"-"," total"),d(4),M(y(55,55,"node.resource-monitor.threads")),d(3),M(e.host&&e.host.process?e.host.process.num_threads:"-"),d(),C("data",e.threadsSeries)("height",60),d(),S(e.host&&e.host.process?59:-1)}}function qMe(t,n){if(1&t&&(h(0,"div",13),p(1),u()),2&t){const e=v(3);d(),gt("heap_sys ",e.fmtBytes(e.proc.mem_heap_sys)," \xb7 sys ",e.fmtBytes(e.proc.mem_sys))}}function KMe(t,n){if(1&t&&(h(0,"div",13),p(1),u()),2&t){const e=v(3);d(),gt("GOMAXPROCS ",e.proc.gomaxprocs," \xb7 ",e.proc.go_version)}}function YMe(t,n){if(1&t&&(h(0,"div",13),p(1),u()),2&t){const e=v(3);d(),gt("total ",e.proc.num_gc," GCs \xb7 alloc ",e.fmtBytes(e.proc.mem_total_alloc)," since start")}}function XMe(t,n){if(1&t&&(h(0,"div",7)(1,"div",8)(2,"div",9)(3,"span",10),p(4),b(5,"translate"),u(),h(6,"span",11),p(7),b(8,"number"),u()(),B(9,"app-line-chart",14),x(10,qMe,2,2,"div",13),u(),h(11,"div",8)(12,"div",9)(13,"span",10),p(14),b(15,"translate"),u(),h(16,"span",11),p(17),u()(),B(18,"app-line-chart",14),x(19,KMe,2,2,"div",13),u(),h(20,"div",8)(21,"div",9)(22,"span",10),p(23),b(24,"translate"),u(),h(25,"span",11),p(26),u()(),B(27,"app-line-chart",14),x(28,YMe,2,2,"div",13),u()()),2&t){const e=v(2);d(4),M(y(5,15,"node.resource-monitor.heap")),d(3),E("",e.proc?pe(8,17,e.proc.mem_heap_alloc/1024/1024,"1.0-1"):"-","M"),d(2),C("data",e.heapMbSeries)("height",60),d(),S(e.proc?10:-1),d(4),M(y(15,20,"node.resource-monitor.goroutines")),d(3),M(e.proc?e.proc.num_goroutine:"-"),d(),C("data",e.goroutinesSeries)("height",60),d(),S(e.proc?19:-1),d(4),M(y(24,22,"node.resource-monitor.gc")),d(3),E("",e.gcSeries[e.gcSeries.length-1]||0,"/s"),d(),C("data",e.gcSeries)("height",60),d(),S(e.proc?28:-1)}}function ZMe(t,n){if(1&t){const e=oe();h(0,"div",5)(1,"span",6),F("click",function(){return j(e),U(v().setTab("host"))}),p(2),b(3,"translate"),u(),h(4,"span",6),F("click",function(){return j(e),U(v().setTab("process"))}),p(5),b(6,"translate"),u()(),x(7,GMe,60,57,"div",7),x(8,XMe,29,24,"div",7)}if(2&t){const e=v();d(),Ie("active","host"===e.activeTab),d(),E(" ",y(3,8,"node.resource-monitor.tab-host")," "),d(2),Ie("active","process"===e.activeTab),d(),E(" ",y(6,10,"node.resource-monitor.tab-process")," "),d(2),S("host"===e.activeTab?7:-1),d(),S("process"===e.activeTab?8:-1)}}let JMe=(()=>{class t{constructor(e,i){this.nodeService=e,this.cdr=i,this.openByDefault=!1,this.expanded=!1,this.activeTab="host",this.host=null,this.proc=null,this.procCPUPercent=0,this.procMemRssMB=0,this.cpuPctSeries=[],this.memPctSeries=[],this.diskPctSeries=[],this.netRxBpsSeries=[],this.netTxBpsSeries=[],this.goroutinesSeries=[],this.heapMbSeries=[],this.gcSeries=[],this.threadsSeries=[],this.prevNetRx=0,this.prevNetTx=0,this.prevGc=0,this.prevSampleAtMs=0,this.firstHostSample=!0,this.firstProcSample=!0}ngOnInit(){this.openByDefault&&(this.expanded=!0,this.startPolling())}ngOnDestroy(){this.stopPolling()}toggleExpanded(){this.expanded=!this.expanded,this.expanded?this.startPolling():this.stopPolling()}setTab(e){this.activeTab=e}fmtBytes(e){return null==e||isNaN(e)?"-":e>=1e9?(e/1e9).toFixed(1)+"G":e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":e.toFixed(0)+"B"}fmtBps(e){return null==e||isNaN(e)||e<0?"0B/s":this.fmtBytes(e)+"/s"}fmtUptime(e){if(!e)return"-";const i=Math.floor(e/86400),o=Math.floor(e%86400/3600),r=Math.floor(e%3600/60);return i>0?`${i}d ${o}h`:o>0?`${o}h ${r}m`:`${r}m`}startPolling(){this.stopPolling(),this.firstHostSample=!0,this.firstProcSample=!0,this.prevSampleAtMs=0,this.pollSub=xa(0,1e3).subscribe(()=>{this.pollHost(),this.pollProc()})}stopPolling(){this.pollSub&&(this.pollSub.unsubscribe(),this.pollSub=null),this.hostSub&&(this.hostSub.unsubscribe(),this.hostSub=null),this.procSub&&(this.procSub.unsubscribe(),this.procSub=null)}pollHost(){this.nodeKey&&(this.hostSub&&this.hostSub.unsubscribe(),this.hostSub=this.nodeService.getHostStats(this.nodeKey).subscribe(e=>this.onHostStats(e),()=>{}))}pollProc(){this.nodeKey&&(this.procSub&&this.procSub.unsubscribe(),this.procSub=this.nodeService.getRuntimeStats(this.nodeKey).subscribe(e=>this.onRuntimeStats(e),()=>{}))}onHostStats(e){this.host=e,this.procCPUPercent=e.process?e.process.cpu_percent:0,this.procMemRssMB=e.process?e.process.mem_rss/1024/1024:0;const i=Date.now();let o=(i-this.prevSampleAtMs)/1e3;if((o<=0||o>5)&&(o=1),this.prevSampleAtMs=i,this.push(this.cpuPctSeries,e.cpu_percent),this.push(this.memPctSeries,e.mem_percent),this.push(this.diskPctSeries,e.disk_percent||0),this.push(this.threadsSeries,e.process&&e.process.num_threads||0),this.firstHostSample)this.firstHostSample=!1;else{const r=Math.max(0,e.net_bytes_recv-this.prevNetRx)/o,s=Math.max(0,e.net_bytes_sent-this.prevNetTx)/o;this.push(this.netRxBpsSeries,r),this.push(this.netTxBpsSeries,s)}this.prevNetRx=e.net_bytes_recv,this.prevNetTx=e.net_bytes_sent,this.cdr.markForCheck()}onRuntimeStats(e){this.proc=e,this.push(this.goroutinesSeries,e.num_goroutine),this.push(this.heapMbSeries,e.mem_heap_alloc/1024/1024),this.firstProcSample?this.firstProcSample=!1:this.push(this.gcSeries,Math.max(0,e.num_gc-this.prevGc)),this.prevGc=e.num_gc,this.cdr.markForCheck()}push(e,i){e.push(i),e.length>60&&e.shift()}static{this.\u0275fac=function(i){return new(i||t)(O(Io),O(Jt))}}static{this.\u0275cmp=re({type:t,selectors:[["app-resource-monitor"]],inputs:{nodeKey:"nodeKey",openByDefault:"openByDefault"},standalone:!1,decls:9,vars:7,consts:[[1,"resource-monitor","mt-3"],[1,"rm-header",3,"click"],[1,"rm-toggle-icon",3,"inline"],[1,"section-title"],[1,"rm-host-summary"],[1,"rm-tabs"],[1,"rm-tab",3,"click"],[1,"rm-grid"],[1,"rm-cell"],[1,"rm-cell-header"],[1,"rm-cell-label"],[1,"rm-cell-value"],[3,"data","min","max","height"],[1,"rm-cell-foot"],[3,"data","height"]],template:function(i,o){1&i&&(h(0,"div",0)(1,"div",1),F("click",function(){return o.toggleExpanded()}),h(2,"mat-icon",2),p(3),u(),h(4,"span",3),p(5),b(6,"translate"),u(),x(7,jMe,2,4,"span",4),u(),x(8,ZMe,9,12),u()),2&i&&(d(2),C("inline",!0),d(),M(o.expanded?"expand_less":"expand_more"),d(2),M(y(6,5,"node.resource-monitor.title")),d(2),S(o.host?7:-1),d(),S(o.expanded?8:-1))},dependencies:[We,Gv,Vl,xe],styles:[".resource-monitor[_ngcontent-%COMP%]{border-top:1px solid rgba(255,255,255,.08);padding-top:12px}.rm-header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;padding:4px 0}.rm-toggle-icon[_ngcontent-%COMP%]{font-size:22px}.rm-host-summary[_ngcontent-%COMP%]{margin-left:auto;opacity:.6;font-size:12px}.rm-tabs[_ngcontent-%COMP%]{display:flex;gap:16px;margin:8px 0 12px;font-size:13px}.rm-tab[_ngcontent-%COMP%]{cursor:pointer;padding:4px 8px;border-radius:4px;opacity:.6}.rm-tab.active[_ngcontent-%COMP%]{opacity:1;background:#ffffff0f}.rm-tab[_ngcontent-%COMP%]:hover{opacity:.9}.rm-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.rm-cell[_ngcontent-%COMP%]{background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:6px;padding:8px 10px;min-height:110px;display:flex;flex-direction:column}.rm-cell-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:2px}.rm-cell-label[_ngcontent-%COMP%]{font-size:11px;text-transform:uppercase;opacity:.7;letter-spacing:.5px}.rm-cell-value[_ngcontent-%COMP%]{font-size:14px;font-weight:500;font-variant-numeric:tabular-nums}.rm-cell-foot[_ngcontent-%COMP%]{margin-top:2px;font-size:11px;opacity:.5;font-variant-numeric:tabular-nums}"]})}}return t})();function eTe(t,n){1&t&&B(0,"app-resource-monitor",0),2&t&&C("nodeKey",v().node.localPk)("openByDefault",!0)}let tTe=(()=>{class t extends pn{ngOnInit(){return this.dataSubscription=ke.currentNode.subscribe(e=>{this.node=e}),super.ngOnInit()}ngOnDestroy(){this.dataSubscription&&this.dataSubscription.unsubscribe()}static{this.\u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})()}static{this.\u0275cmp=re({type:t,selectors:[["app-node-resources"]],standalone:!1,features:[be],decls:1,vars:1,consts:[[3,"nodeKey","openByDefault"]],template:function(i,o){1&i&&x(0,eTe,1,2,"app-resource-monitor",0),2&i&&S(o.node?0:-1)},dependencies:[JMe],encapsulation:2})}}return t})();const nTe=["logEl"],iTe=t=>({active:t});function oTe(t,n){if(1&t&&(h(0,"span",8),p(1),u()),2&t){const e=v(2);d(),E("\xb7 ",e.errorText)}}function rTe(t,n){1&t&&(h(0,"span",9),p(1),b(2,"translate"),u()),2&t&&(d(),E("\xb7 ",y(2,1,"skychat.no-history")))}function sTe(t,n){if(1&t){const e=oe();h(0,"mat-form-field",34)(1,"mat-label"),p(2),b(3,"translate"),u(),h(4,"input",35),zt("ngModelChange",function(o){j(e);const r=v(3);return Zt(r.pwOld,o)||(r.pwOld=o),U(o)}),u()()}if(2&t){const e=v(3);d(2),M(y(3,2,"skychat.password.old")),d(2),Ut("ngModel",e.pwOld)}}function aTe(t,n){if(1&t){const e=oe();h(0,"button",39),F("click",function(){return j(e),U(v(3).clearPassword())}),p(1),b(2,"translate"),u()}if(2&t){const e=v(3);C("disabled",e.pwBusy||!e.pwOld),d(),E(" ",y(2,2,"skychat.password.clear")," ")}}function lTe(t,n){if(1&t){const e=oe();h(0,"div",13)(1,"div",33),p(2),b(3,"translate"),u(),x(4,sTe,5,4,"mat-form-field",34),h(5,"mat-form-field",34)(6,"mat-label"),p(7),b(8,"translate"),u(),h(9,"input",35),zt("ngModelChange",function(o){j(e);const r=v(2);return Zt(r.pwNew,o)||(r.pwNew=o),U(o)}),u()(),h(10,"mat-form-field",34)(11,"mat-label"),p(12),b(13,"translate"),u(),h(14,"input",35),zt("ngModelChange",function(o){j(e);const r=v(2);return Zt(r.pwConfirm,o)||(r.pwConfirm=o),U(o)}),u()(),h(15,"div",36)(16,"button",37),F("click",function(){return j(e),U(v(2).applyPassword())}),p(17),b(18,"translate"),u(),x(19,aTe,3,4,"button",38),u()()}if(2&t){const e=v(2);d(2),E(" ",y(3,9,e.pwIsSet?"skychat.password.help-set":"skychat.password.help-unset")," "),d(2),S(e.pwIsSet?4:-1),d(3),M(y(8,11,"skychat.password.new")),d(2),Ut("ngModel",e.pwNew),d(3),M(y(13,13,"skychat.password.confirm")),d(2),Ut("ngModel",e.pwConfirm),d(2),C("disabled",e.pwBusy||!e.pwNew),d(),E(" ",y(18,15,e.pwIsSet?"skychat.password.change":"skychat.password.set")," "),d(2),S(e.pwIsSet?19:-1)}}function cTe(t,n){1&t&&(h(0,"div",17),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"skychat.peers-empty")))}function dTe(t,n){if(1&t){const e=oe();h(0,"div",40),F("click",function(){const o=j(e).$implicit;return U(v(2).pickRecipient(o))}),h(1,"span",41),p(2),u()()}if(2&t){const e=n.$implicit,i=v(2);C("ngClass",se(3,iTe,i.toPK===e))("matTooltip",e),d(2),M(e)}}function uTe(t,n){1&t&&(h(0,"div",21),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"skychat.empty")))}function hTe(t,n){if(1&t){const e=oe();h(0,"div",22)(1,"div",42)(2,"span",43),F("click",function(){const o=j(e).$implicit;return U(v(2).pickRecipient(o.peer))}),p(3),u(),h(4,"span",44),p(5),b(6,"date"),u()(),h(7,"div",45),p(8),u()()}if(2&t){const e=n.$implicit;C("ngClass",e.direction),d(2),C("matTooltip",e.peer),d(),gt(" ","out"===e.direction?"\u2192":"\u2190"," ",e.peer," "),d(2),M(pe(6,6,e.ts,"mediumTime")),d(3),M(e.text)}}function fTe(t,n){if(1&t){const e=oe();h(0,"div",1)(1,"div",2)(2,"div",3),B(3,"span",4),h(4,"span",5),p(5),b(6,"translate"),u(),h(7,"span",6),p(8,"\xb7"),u(),h(9,"span",7),p(10),b(11,"translate"),b(12,"translate"),u(),x(13,oTe,2,1,"span",8),x(14,rTe,3,3,"span",9),B(15,"span",10),h(16,"button",11),F("click",function(){return j(e),U(v().togglePassword())}),h(17,"mat-icon",12),p(18),u(),p(19),b(20,"translate"),u()(),x(21,lTe,20,17,"div",13),h(22,"div",14)(23,"aside",15)(24,"div",16),p(25),b(26,"translate"),u(),x(27,cTe,3,3,"div",17),ve(28,dTe,3,5,"div",18,Fe),u(),h(30,"section",19)(31,"div",20,0),x(33,uTe,3,3,"div",21),ve(34,hTe,9,9,"div",22,mO),u(),h(36,"div",23)(37,"mat-form-field",24)(38,"mat-label"),p(39),b(40,"translate"),u(),h(41,"input",25),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.toPK,o)||(r.toPK=o),U(o)}),u()(),h(42,"mat-form-field",26)(43,"mat-label"),p(44),b(45,"translate"),u(),h(46,"mat-select",27),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.network,o)||(r.network=o),U(o)}),h(47,"mat-option",28),p(48,"skynet"),u(),h(49,"mat-option",29),p(50,"dmsg"),u()()()(),h(51,"div",23)(52,"mat-form-field",30)(53,"mat-label"),p(54),b(55,"translate"),u(),h(56,"textarea",31),b(57,"translate"),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.message,o)||(r.message=o),U(o)}),F("keydown.enter",function(o){j(e);const r=v();return U(o.ctrlKey&&r.send())}),u()(),h(58,"button",32),F("click",function(){return j(e),U(v().send())}),h(59,"mat-icon"),p(60,"send"),u(),p(61),b(62,"translate"),u()()()()()()}if(2&t){const e=v();d(3),C("ngClass",e.connected?"dot-green":"dot-outline-gray"),d(2),M(y(6,21,"skychat.title")),d(5),M(e.connected?y(11,23,"skychat.connected"):y(12,25,"skychat.disconnected")),d(3),S(e.errorText?13:-1),d(),S(e.historyAvailable?-1:14),d(3),C("inline",!0),d(),M(e.pwIsSet?"lock":"lock_open"),d(),E(" ",y(20,27,e.pwOpen?"skychat.password.hide":e.pwIsSet?"skychat.password.change":"skychat.password.set")," "),d(2),S(e.pwOpen?21:-1),d(4),M(y(26,29,"skychat.peers")),d(2),S(0===e.peers.length?27:-1),d(),ye(e.peers),d(5),S(0===e.messages.length?33:-1),d(),ye(e.messages),d(5),M(y(40,31,"skychat.to")),d(2),Ut("ngModel",e.toPK),d(3),M(y(45,33,"skychat.network")),d(2),Ut("ngModel",e.network),d(8),M(y(55,35,"skychat.message")),d(2),Ut("ngModel",e.message),C("placeholder",y(57,37,"skychat.placeholder")),d(2),C("disabled",e.sending||!e.message.trim()||!e.toPK.trim()),d(3),E(" ",y(62,39,"skychat.send")," ")}}let pTe=(()=>{class t extends pn{get peers(){const e=[],i=new Set;for(let o=this.messages.length-1;o>=0;o--){const r=this.messages[o].peer;!r||i.has(r)||(i.add(r),e.push(r))}return e}constructor(e,i,o){super(),this.api=e,this.snackbar=i,this.cdr=o,this.toPK="",this.message="",this.network="skynet",this.sending=!1,this.messages=[],this.connected=!1,this.errorText="",this.historyAvailable=!0,this.wasAtBottom=!0,this.es=null,this.pwOpen=!1,this.pwIsSet=!1,this.pwOld="",this.pwNew="",this.pwConfirm="",this.pwBusy=!1}ngOnInit(){return this.nodeSub=ke.currentNode.subscribe(e=>{const i=!this.node;this.node=e,i&&(this.connectSSE(),this.tryLoadPeers(),this.refreshPasswordState())}),super.ngOnInit()}ngOnDestroy(){this.nodeSub&&this.nodeSub.unsubscribe(),this.disconnectSSE()}ngAfterViewChecked(){if(this.wasAtBottom&&this.logEl){const e=this.logEl.nativeElement;e.scrollTop=e.scrollHeight}}proxyUrl(e){return`/api/visors/${this.node.localPk}/skychat/proxy/${e.replace(/^\/+/,"")}`}connectSSE(){if(this.node&&!this.es)try{this.es=new EventSource(this.proxyUrl("sse")),this.es.onopen=()=>{this.connected=!0,this.errorText="",this.cdr.markForCheck()},this.es.onerror=()=>{this.connected=!1,this.errorText="Disconnected \u2014 retrying\u2026",this.cdr.markForCheck()},this.es.onmessage=e=>this.handleSSE(e.data)}catch(e){this.errorText=`SSE setup failed: ${e?.message||e}`}}disconnectSSE(){this.es&&(this.es.close(),this.es=null)}handleSSE(e){let i=null;try{i=JSON.parse(e)}catch{}if(!i||"object"!=typeof i)return;const o={peer:i.sender||i.from||"",direction:"in",text:"string"==typeof i.message?i.message:i.text||"",ts:Date.now()};!o.peer||!o.text||(this.captureScroll(),this.messages.push(o),this.messages.length>500&&this.messages.shift(),this.cdr.markForCheck())}send(){var e=this;if(this.sending)return;const i=this.toPK.trim(),o=this.message.trim();if(i&&o){if(66!==i.length||!/^[0-9a-fA-F]+$/.test(i))return void this.snackbar.showError("Recipient must be a 66-char hex public key");this.sending=!0,fetch(this.proxyUrl("message"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({recipient:i,message:o,network:this.network})}).then(function(){var r=Et(function*(s){if(!s.ok){const a=yield s.text();throw new Error(a||`HTTP ${s.status}`)}e.captureScroll(),e.messages.push({peer:i,direction:"out",text:o,ts:Date.now()}),e.messages.length>500&&e.messages.shift(),e.message="",e.cdr.markForCheck()});return function(s){return r.apply(this,arguments)}}()).catch(r=>{this.snackbar.showError(r?.message||String(r))}).finally(()=>{this.sending=!1,this.cdr.markForCheck()})}}tryLoadPeers(){var e=this;!this.node||!this.historyAvailable||fetch(this.proxyUrl("history?limit=100")).then(function(){var i=Et(function*(o){if(503===o.status)return e.historyAvailable=!1,null;if(!o.ok)throw new Error(`HTTP ${o.status}`);return o.json()});return function(o){return i.apply(this,arguments)}}()).then(i=>{if(!Array.isArray(i))return;const o=i.map(r=>({peer:r.peer||r.sender||"",direction:"out"===r.direction?"out":"in",text:r.message||r.text||"",ts:r.timestamp||r.ts||Date.now()})).filter(r=>r.peer&&r.text);this.messages=o.concat(this.messages),this.cdr.markForCheck()}).catch(()=>{})}pickRecipient(e){this.toPK=e}captureScroll(){if(!this.logEl)return void(this.wasAtBottom=!0);const e=this.logEl.nativeElement;this.wasAtBottom=e.scrollHeight-e.scrollTop-e.clientHeight<40}togglePassword(){this.pwOpen=!this.pwOpen,this.pwOpen?this.refreshPasswordState():this.resetPasswordForm()}refreshPasswordState(){this.node&&this.api.get(`visors/${this.node.localPk}/skychat/password`).subscribe(e=>{this.pwIsSet=!(!e||!e.set),this.cdr.markForCheck()},()=>{})}resetPasswordForm(){this.pwOld="",this.pwNew="",this.pwConfirm=""}validateNewPassword(){return this.pwNew.length<6||this.pwNew.length>64?"skychat.password.errors.length":this.pwNew!==this.pwConfirm?"skychat.password.errors.mismatch":null}applyPassword(){if(!this.node||this.pwBusy)return;const e=this.validateNewPassword();e?this.snackbar.showError(e):(this.pwBusy=!0,this.api.put(`visors/${this.node.localPk}/skychat/password`,{old_password:this.pwIsSet?this.pwOld:"",new_password:this.pwNew}).subscribe(()=>{this.pwBusy=!1,this.pwIsSet=!0,this.resetPasswordForm(),this.snackbar.showDone("skychat.password.saved"),this.cdr.markForCheck()},i=>{this.pwBusy=!1,this.snackbar.showError(i?.originalError?.error?.error||i?.message||String(i)),this.cdr.markForCheck()}))}clearPassword(){if(this.node&&!this.pwBusy&&this.pwIsSet){if(!this.pwOld)return void this.snackbar.showError("skychat.password.errors.old-required");this.pwBusy=!0,this.api.delete(`visors/${this.node.localPk}/skychat/password?old_password=${encodeURIComponent(this.pwOld)}`).subscribe(()=>{this.pwBusy=!1,this.pwIsSet=!1,this.resetPasswordForm(),this.snackbar.showDone("skychat.password.cleared"),this.cdr.markForCheck()},e=>{this.pwBusy=!1,this.snackbar.showError(e?.originalError?.error?.error||e?.message||String(e)),this.cdr.markForCheck()})}}static{this.\u0275fac=function(i){return new(i||t)(O(zi),O(ct),O(Jt))}}static{this.\u0275cmp=re({type:t,selectors:[["app-skychat"]],viewQuery:function(i,o){if(1&i&&ot(nTe,5),2&i){let r;he(r=fe())&&(o.logEl=r.first)}},standalone:!1,features:[be],decls:1,vars:1,consts:[["logEl",""],[1,"rounded-elevated-box","mt-3","skychat-box"],[1,"box-internal-container","sc-shell"],[1,"sc-status"],[1,"dot",3,"ngClass"],[1,"status-text"],[1,"status-sep"],[1,"status-conn"],[1,"error"],[1,"hint"],[1,"sc-status-spacer"],["mat-button","","type","button",1,"sc-password-toggle",3,"click"],[1,"lock-icon",3,"inline"],[1,"sc-password"],[1,"sc-body"],[1,"sc-sidebar"],[1,"sc-sidebar-title"],[1,"sc-sidebar-empty"],[1,"sc-peer",3,"ngClass","matTooltip"],[1,"sc-chat"],[1,"sc-log"],[1,"sc-empty"],[1,"sc-msg",3,"ngClass"],[1,"sc-composer"],["appearance","outline",1,"field-pk"],["matInput","","placeholder","02abc\u2026",3,"ngModelChange","ngModel"],["appearance","outline",1,"field-sm"],["panelClass","skynet-select-panel",3,"ngModelChange","ngModel"],["value","skynet"],["value","dmsg"],["appearance","outline",1,"field-msg"],["matInput","","rows","2",3,"ngModelChange","keydown.enter","ngModel","placeholder"],["mat-raised-button","","color","primary",1,"send-btn",3,"click","disabled"],[1,"sc-password-help"],["appearance","outline",1,"field-pw"],["matInput","","type","password","maxlength","64",3,"ngModelChange","ngModel"],[1,"sc-password-actions"],["mat-raised-button","","color","primary",3,"click","disabled"],["mat-stroked-button","","color","warn",3,"disabled"],["mat-stroked-button","","color","warn",3,"click","disabled"],[1,"sc-peer",3,"click","ngClass","matTooltip"],[1,"peer-pk","mono","small"],[1,"sc-msg-meta"],[1,"peer","mono","small",3,"click","matTooltip"],[1,"ts"],[1,"sc-msg-text"]],template:function(i,o){1&i&&x(0,fTe,63,41,"div",1),2&i&&S(o.node?0:-1)},dependencies:[$t,Gt,qt,wi,sn,Os,In,Pn,We,Kt,cu,Pa,Qr,fa,xe],styles:[".skychat-box[_ngcontent-%COMP%]{display:flex;flex-direction:column}.sc-shell[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px}.sc-status[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;font-size:13px;padding:6px 4px}.sc-status[_ngcontent-%COMP%] .status-text[_ngcontent-%COMP%]{font-weight:600;font-size:14px}.sc-status[_ngcontent-%COMP%] .status-sep[_ngcontent-%COMP%]{opacity:.5}.sc-status[_ngcontent-%COMP%] .status-conn[_ngcontent-%COMP%]{font-weight:500}.sc-status[_ngcontent-%COMP%] .error[_ngcontent-%COMP%]{opacity:.85;color:#e53935e6}.sc-status[_ngcontent-%COMP%] .hint[_ngcontent-%COMP%]{opacity:.6}.sc-status[_ngcontent-%COMP%] .dot[_ngcontent-%COMP%]{display:inline-block;width:8px;height:8px;border-radius:50%}.sc-status[_ngcontent-%COMP%] .dot-green[_ngcontent-%COMP%]{background:#4caf50}.sc-status[_ngcontent-%COMP%] .dot-outline-gray[_ngcontent-%COMP%]{border:1px solid rgba(255,255,255,.4)}.sc-status[_ngcontent-%COMP%] .sc-status-spacer[_ngcontent-%COMP%]{flex:1 1 auto}.sc-status[_ngcontent-%COMP%] .sc-password-toggle[_ngcontent-%COMP%]{font-size:12px;line-height:1.2}.sc-status[_ngcontent-%COMP%] .sc-password-toggle[_ngcontent-%COMP%] .lock-icon[_ngcontent-%COMP%]{font-size:16px;vertical-align:middle;margin-right:4px}.sc-password[_ngcontent-%COMP%]{margin:8px 0 4px;padding:12px;background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:6px;display:flex;flex-wrap:wrap;gap:12px 16px;align-items:flex-end}.sc-password[_ngcontent-%COMP%] .sc-password-help[_ngcontent-%COMP%]{flex:1 1 100%;font-size:12px;opacity:.75;margin-bottom:4px}.sc-password[_ngcontent-%COMP%] .field-pw[_ngcontent-%COMP%]{flex:1 1 200px;min-width:180px}.sc-password[_ngcontent-%COMP%] .sc-password-actions[_ngcontent-%COMP%]{flex:1 1 100%;display:flex;gap:8px;justify-content:flex-end}.sc-body[_ngcontent-%COMP%]{display:flex;gap:12px;align-items:stretch}.sc-sidebar[_ngcontent-%COMP%]{flex:0 0 220px;max-width:240px;display:flex;flex-direction:column;gap:4px;padding:8px;background:#0000002e;border:1px solid rgba(255,255,255,.06);border-radius:6px;overflow-y:auto;max-height:60vh}.sc-sidebar[_ngcontent-%COMP%] .sc-sidebar-title[_ngcontent-%COMP%]{font-size:11px;text-transform:uppercase;letter-spacing:.5px;opacity:.6;padding:2px 4px 6px}.sc-sidebar[_ngcontent-%COMP%] .sc-sidebar-empty[_ngcontent-%COMP%]{padding:8px 4px;font-size:12px;opacity:.5}.sc-sidebar[_ngcontent-%COMP%] .sc-peer[_ngcontent-%COMP%]{cursor:pointer;padding:6px 8px;border-radius:4px;border:1px solid transparent;background:#ffffff08}.sc-sidebar[_ngcontent-%COMP%] .sc-peer[_ngcontent-%COMP%]:hover{background:#ffffff0f}.sc-sidebar[_ngcontent-%COMP%] .sc-peer.active[_ngcontent-%COMP%]{background:#2196f32e;border-color:#2196f373}.sc-sidebar[_ngcontent-%COMP%] .sc-peer[_ngcontent-%COMP%] .peer-pk[_ngcontent-%COMP%]{display:block;word-break:break-all;line-height:1.25;font-size:10px}@media(max-width:720px){.sc-body[_ngcontent-%COMP%]{flex-direction:column}.sc-sidebar[_ngcontent-%COMP%]{flex:0 0 auto;max-width:none;max-height:140px}}.sc-chat[_ngcontent-%COMP%]{flex:1 1 auto;display:flex;flex-direction:column;min-width:0}.sc-log[_ngcontent-%COMP%]{background:#0000002e;border:1px solid rgba(255,255,255,.06);border-radius:6px;padding:8px;height:50vh;min-height:320px;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.sc-empty[_ngcontent-%COMP%]{margin:auto;opacity:.5;font-size:13px}.sc-msg[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2px;padding:6px 10px;border-radius:6px;background:#ffffff08;max-width:80%}.sc-msg.in[_ngcontent-%COMP%]{align-self:flex-start}.sc-msg.out[_ngcontent-%COMP%]{align-self:flex-end;background:#2196f32e}.sc-msg-meta[_ngcontent-%COMP%]{display:flex;gap:8px;align-items:center;font-size:11px;opacity:.7;flex-wrap:wrap}.sc-msg-meta[_ngcontent-%COMP%] .peer[_ngcontent-%COMP%]{cursor:pointer;-webkit-text-decoration:underline dotted transparent;text-decoration:underline dotted transparent;word-break:break-all}.sc-msg-meta[_ngcontent-%COMP%] .peer[_ngcontent-%COMP%]:hover{text-decoration-color:currentColor}.sc-msg-text[_ngcontent-%COMP%]{white-space:pre-wrap;word-break:break-word;font-size:13px}.sc-composer[_ngcontent-%COMP%]{display:flex;gap:12px;align-items:flex-start;margin-top:8px}.sc-composer[_ngcontent-%COMP%] .field-pk[_ngcontent-%COMP%]{flex:1 1 360px}.sc-composer[_ngcontent-%COMP%] .field-sm[_ngcontent-%COMP%]{flex:0 1 130px}.sc-composer[_ngcontent-%COMP%] .field-msg[_ngcontent-%COMP%]{flex:1 1 auto;min-width:0}.sc-composer[_ngcontent-%COMP%] .send-btn[_ngcontent-%COMP%]{flex:0 0 auto;align-self:center;height:56px;white-space:nowrap}"]})}}return t})(),l6=(()=>{class t{constructor(e){this.apiService=e}create(e,i,o){const r={remote_pk:i};return o&&(r.transport_type=o),this.apiService.post(`visors/${e}/transports`,r)}delete(e,i){return this.apiService.delete(`visors/${e}/transports/${i}`)}savePersistentTransportsData(e,i){return this.apiService.put(`visors/${e}/persistent-transports`,i)}getPersistentTransports(e){return this.apiService.get(`visors/${e}/persistent-transports`)}types(e){return this.apiService.get(`visors/${e}/transport-types`)}changeAutoconnectSetting(e,i){const o={};return o.public_autoconnect=i,this.apiService.put(`visors/${e}/public-autoconnect`,o)}static{this.\u0275fac=function(i){return new(i||t)(ce(zi))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const mTe=["switch"],gTe=["*"];function _Te(t,n){1&t&&(h(0,"span",11),rl(),h(1,"svg",13),B(2,"path",14),u(),h(3,"svg",15),B(4,"path",16),u()())}const bTe=new Z("mat-slide-toggle-default-options",{providedIn:"root",factory:()=>({disableToggleValue:!1,hideIcon:!1,disabledInteractive:!1})});class c6{source;checked;constructor(n,e){this.source=n,this.checked=e}}let d6=(()=>{class t{_elementRef=D(Re);_focusMonitor=D(ec);_changeDetectorRef=D(Jt);defaults=D(bTe);_onChange=e=>{};_onTouched=()=>{};_validatorOnChange=()=>{};_uniqueId;_checked=!1;_createChangeEvent(e){return new c6(this,e)}_labelId;get buttonId(){return`${this.id||this._uniqueId}-button`}_switchElement;focus(){this._switchElement.nativeElement.focus()}_noopAnimations=ci();_focused=!1;name=null;id;labelPosition="after";ariaLabel=null;ariaLabelledby=null;ariaDescribedby;required=!1;color;disabled=!1;disableRipple=!1;tabIndex=0;get checked(){return this._checked}set checked(e){this._checked=e,this._changeDetectorRef.markForCheck()}hideIcon;disabledInteractive;change=new we;toggleChange=new we;get inputId(){return`${this.id||this._uniqueId}-input`}constructor(){D(zo).load(tu);const e=D(new Yh("tabindex"),{optional:!0}),i=this.defaults;this.tabIndex=null==e?0:parseInt(e)||0,this.color=i.color||"accent",this.id=this._uniqueId=D(ni).getId("mat-mdc-slide-toggle-"),this.hideIcon=i.hideIcon??!1,this.disabledInteractive=i.disabledInteractive??!1,this._labelId=this._uniqueId+"-label"}ngAfterContentInit(){this._focusMonitor.monitor(this._elementRef,!0).subscribe(e=>{"keyboard"===e||"program"===e?(this._focused=!0,this._changeDetectorRef.markForCheck()):e||Promise.resolve().then(()=>{this._focused=!1,this._onTouched(),this._changeDetectorRef.markForCheck()})})}ngOnChanges(e){e.required&&this._validatorOnChange()}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef)}writeValue(e){this.checked=!!e}registerOnChange(e){this._onChange=e}registerOnTouched(e){this._onTouched=e}validate(e){return this.required&&!0!==e.value?{required:!0}:null}registerOnValidatorChange(e){this._validatorOnChange=e}setDisabledState(e){this.disabled=e,this._changeDetectorRef.markForCheck()}toggle(){this.checked=!this.checked,this._onChange(this.checked)}_emitChangeEvent(){this._onChange(this.checked),this.change.emit(this._createChangeEvent(this.checked))}_handleClick(){this.disabled||(this.toggleChange.emit(),this.defaults.disableToggleValue||(this.checked=!this.checked,this._onChange(this.checked),this.change.emit(new c6(this,this.checked))))}_getAriaLabelledBy(){return this.ariaLabelledby?this.ariaLabelledby:this.ariaLabel?null:this._labelId}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["mat-slide-toggle"]],viewQuery:function(i,o){if(1&i&&ot(mTe,5),2&i){let r;he(r=fe())&&(o._switchElement=r.first)}},hostAttrs:[1,"mat-mdc-slide-toggle"],hostVars:13,hostBindings:function(i,o){2&i&&(ur("id",o.id),$e("tabindex",null)("aria-label",null)("name",null)("aria-labelledby",null),Ze(o.color?"mat-"+o.color:""),Ie("mat-mdc-slide-toggle-focused",o._focused)("mat-mdc-slide-toggle-checked",o.checked)("_mat-animation-noopable",o._noopAnimations))},inputs:{name:"name",id:"id",labelPosition:"labelPosition",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],required:[2,"required","required",De],color:"color",disabled:[2,"disabled","disabled",De],disableRipple:[2,"disableRipple","disableRipple",De],tabIndex:[2,"tabIndex","tabIndex",e=>null==e?0:hr(e)],checked:[2,"checked","checked",De],hideIcon:[2,"hideIcon","hideIcon",De],disabledInteractive:[2,"disabledInteractive","disabledInteractive",De]},outputs:{change:"change",toggleChange:"toggleChange"},exportAs:["matSlideToggle"],features:[lt([{provide:Yo,useExisting:Nt(()=>t),multi:!0},{provide:Ci,useExisting:t,multi:!0}]),_i],ngContentSelectors:gTe,decls:14,vars:27,consts:[["switch",""],["mat-internal-form-field","",3,"labelPosition"],["role","switch","type","button",1,"mdc-switch",3,"click","tabIndex","disabled"],[1,"mat-mdc-slide-toggle-touch-target"],[1,"mdc-switch__track"],[1,"mdc-switch__handle-track"],[1,"mdc-switch__handle"],[1,"mdc-switch__shadow"],[1,"mdc-elevation-overlay"],[1,"mdc-switch__ripple"],["mat-ripple","",1,"mat-mdc-slide-toggle-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-switch__icons"],[1,"mdc-label",3,"click","for"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--on"],["d","M19.69,5.23L8.96,15.96l-4.23-4.23L2.96,13.5l6,6L21.46,7L19.69,5.23z"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--off"],["d","M20 13H4v-2h16v2z"]],template:function(i,o){if(1&i&&(yi(),h(0,"div",1)(1,"button",2,0),F("click",function(){return o._handleClick()}),B(3,"div",3)(4,"span",4),h(5,"span",5)(6,"span",6)(7,"span",7),B(8,"span",8),u(),h(9,"span",9),B(10,"span",10),u(),x(11,_Te,5,0,"span",11),u()()(),h(12,"label",12),F("click",function(s){return s.stopPropagation()}),Pt(13),u()()),2&i){const r=Hn(2);C("labelPosition",o.labelPosition),d(),Ie("mdc-switch--selected",o.checked)("mdc-switch--unselected",!o.checked)("mdc-switch--checked",o.checked)("mdc-switch--disabled",o.disabled)("mat-mdc-slide-toggle-disabled-interactive",o.disabledInteractive),C("tabIndex",o.disabled&&!o.disabledInteractive?-1:o.tabIndex)("disabled",o.disabled&&!o.disabledInteractive),$e("id",o.buttonId)("name",o.name)("aria-label",o.ariaLabel)("aria-labelledby",o._getAriaLabelledBy())("aria-describedby",o.ariaDescribedby)("aria-required",o.required||null)("aria-checked",o.checked)("aria-disabled",o.disabled&&o.disabledInteractive?"true":null),d(9),C("matRippleTrigger",r)("matRippleDisabled",o.disableRipple||o.disabled)("matRippleCentered",!0),d(),S(o.hideIcon?-1:11),d(),C("for",o.buttonId),$e("id",o._labelId)}},dependencies:[eu,nV],styles:['.mdc-switch{align-items:center;background:none;border:none;cursor:pointer;display:inline-flex;flex-shrink:0;margin:0;outline:none;overflow:visible;padding:0;position:relative;width:var(--mat-slide-toggle-track-width, 52px)}.mdc-switch.mdc-switch--disabled{cursor:default;pointer-events:none}.mdc-switch.mat-mdc-slide-toggle-disabled-interactive{pointer-events:auto}.mdc-switch__track{overflow:hidden;position:relative;width:100%;height:var(--mat-slide-toggle-track-height, 32px);border-radius:var(--mat-slide-toggle-track-shape, var(--mat-sys-corner-full))}.mdc-switch--disabled.mdc-switch .mdc-switch__track{opacity:var(--mat-slide-toggle-disabled-track-opacity, 0.12)}.mdc-switch__track::before,.mdc-switch__track::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";height:100%;left:0;position:absolute;width:100%;border-width:var(--mat-slide-toggle-track-outline-width, 2px);border-color:var(--mat-slide-toggle-track-outline-color, var(--mat-sys-outline))}.mdc-switch--selected .mdc-switch__track::before,.mdc-switch--selected .mdc-switch__track::after{border-width:var(--mat-slide-toggle-selected-track-outline-width, 2px);border-color:var(--mat-slide-toggle-selected-track-outline-color, transparent)}.mdc-switch--disabled .mdc-switch__track::before,.mdc-switch--disabled .mdc-switch__track::after{border-width:var(--mat-slide-toggle-disabled-unselected-track-outline-width, 2px);border-color:var(--mat-slide-toggle-disabled-unselected-track-outline-color, var(--mat-sys-on-surface))}@media(forced-colors: active){.mdc-switch__track{border-color:currentColor}}.mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1);transform:translateX(0);background:var(--mat-slide-toggle-unselected-track-color, var(--mat-sys-surface-variant))}.mdc-switch--selected .mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.6, 1);transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch--selected .mdc-switch__track::before{transform:translateX(-100%)}.mdc-switch--selected .mdc-switch__track::before{opacity:var(--mat-slide-toggle-hidden-track-opacity, 0);transition:var(--mat-slide-toggle-hidden-track-transition, opacity 75ms)}.mdc-switch--unselected .mdc-switch__track::before{opacity:var(--mat-slide-toggle-visible-track-opacity, 1);transition:var(--mat-slide-toggle-visible-track-transition, opacity 75ms)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::before{background:var(--mat-slide-toggle-unselected-hover-track-color, var(--mat-sys-surface-variant))}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::before{background:var(--mat-slide-toggle-unselected-focus-track-color, var(--mat-sys-surface-variant))}.mdc-switch:enabled:active .mdc-switch__track::before{background:var(--mat-slide-toggle-unselected-pressed-track-color, var(--mat-sys-surface-variant))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__track::before,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__track::before,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__track::before,.mdc-switch.mdc-switch--disabled .mdc-switch__track::before{background:var(--mat-slide-toggle-disabled-unselected-track-color, var(--mat-sys-surface-variant))}.mdc-switch__track::after{transform:translateX(-100%);background:var(--mat-slide-toggle-selected-track-color, var(--mat-sys-primary))}[dir=rtl] .mdc-switch__track::after{transform:translateX(100%)}.mdc-switch--selected .mdc-switch__track::after{transform:translateX(0)}.mdc-switch--selected .mdc-switch__track::after{opacity:var(--mat-slide-toggle-visible-track-opacity, 1);transition:var(--mat-slide-toggle-visible-track-transition, opacity 75ms)}.mdc-switch--unselected .mdc-switch__track::after{opacity:var(--mat-slide-toggle-hidden-track-opacity, 0);transition:var(--mat-slide-toggle-hidden-track-transition, opacity 75ms)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::after{background:var(--mat-slide-toggle-selected-hover-track-color, var(--mat-sys-primary))}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::after{background:var(--mat-slide-toggle-selected-focus-track-color, var(--mat-sys-primary))}.mdc-switch:enabled:active .mdc-switch__track::after{background:var(--mat-slide-toggle-selected-pressed-track-color, var(--mat-sys-primary))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__track::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__track::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__track::after,.mdc-switch.mdc-switch--disabled .mdc-switch__track::after{background:var(--mat-slide-toggle-disabled-selected-track-color, var(--mat-sys-on-surface))}.mdc-switch__handle-track{height:100%;pointer-events:none;position:absolute;top:0;transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);left:0;right:auto;transform:translateX(0);width:calc(100% - var(--mat-slide-toggle-handle-width))}[dir=rtl] .mdc-switch__handle-track{left:auto;right:0}.mdc-switch--selected .mdc-switch__handle-track{transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch__handle-track{transform:translateX(-100%)}.mdc-switch__handle{display:flex;pointer-events:auto;position:absolute;top:50%;transform:translateY(-50%);left:0;right:auto;transition:width 75ms cubic-bezier(0.4, 0, 0.2, 1),height 75ms cubic-bezier(0.4, 0, 0.2, 1),margin 75ms cubic-bezier(0.4, 0, 0.2, 1);width:var(--mat-slide-toggle-handle-width);height:var(--mat-slide-toggle-handle-height);border-radius:var(--mat-slide-toggle-handle-shape, var(--mat-sys-corner-full))}[dir=rtl] .mdc-switch__handle{left:auto;right:0}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle{width:var(--mat-slide-toggle-unselected-handle-size, 16px);height:var(--mat-slide-toggle-unselected-handle-size, 16px);margin:var(--mat-slide-toggle-unselected-handle-horizontal-margin, 0 8px)}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-slide-toggle-unselected-with-icon-handle-horizontal-margin, 0 4px)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle{width:var(--mat-slide-toggle-selected-handle-size, 24px);height:var(--mat-slide-toggle-selected-handle-size, 24px);margin:var(--mat-slide-toggle-selected-handle-horizontal-margin, 0 24px)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-slide-toggle-selected-with-icon-handle-horizontal-margin, 0 24px)}.mat-mdc-slide-toggle .mdc-switch__handle:has(.mdc-switch__icons){width:var(--mat-slide-toggle-with-icon-handle-size, 24px);height:var(--mat-slide-toggle-with-icon-handle-size, 24px)}.mat-mdc-slide-toggle .mdc-switch:active:not(.mdc-switch--disabled) .mdc-switch__handle{width:var(--mat-slide-toggle-pressed-handle-size, 28px);height:var(--mat-slide-toggle-pressed-handle-size, 28px)}.mat-mdc-slide-toggle .mdc-switch--selected:active:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-slide-toggle-selected-pressed-handle-horizontal-margin, 0 22px)}.mat-mdc-slide-toggle .mdc-switch--unselected:active:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-slide-toggle-unselected-pressed-handle-horizontal-margin, 0 2px)}.mdc-switch--disabled.mdc-switch--selected .mdc-switch__handle::after{opacity:var(--mat-slide-toggle-disabled-selected-handle-opacity, 1)}.mdc-switch--disabled.mdc-switch--unselected .mdc-switch__handle::after{opacity:var(--mat-slide-toggle-disabled-unselected-handle-opacity, 0.38)}.mdc-switch__handle::before,.mdc-switch__handle::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";width:100%;height:100%;left:0;position:absolute;top:0;transition:background-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1),border-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);z-index:-1}@media(forced-colors: active){.mdc-switch__handle::before,.mdc-switch__handle::after{border-color:currentColor}}.mdc-switch--selected:enabled .mdc-switch__handle::after{background:var(--mat-slide-toggle-selected-handle-color, var(--mat-sys-on-primary))}.mdc-switch--selected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mat-slide-toggle-selected-hover-handle-color, var(--mat-sys-primary-container))}.mdc-switch--selected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mat-slide-toggle-selected-focus-handle-color, var(--mat-sys-primary-container))}.mdc-switch--selected:enabled:active .mdc-switch__handle::after{background:var(--mat-slide-toggle-selected-pressed-handle-color, var(--mat-sys-primary-container))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:hover:not(:focus):not(:active) .mdc-switch__handle::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:focus:not(:active) .mdc-switch__handle::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:active .mdc-switch__handle::after,.mdc-switch--selected.mdc-switch--disabled .mdc-switch__handle::after{background:var(--mat-slide-toggle-disabled-selected-handle-color, var(--mat-sys-surface))}.mdc-switch--unselected:enabled .mdc-switch__handle::after{background:var(--mat-slide-toggle-unselected-handle-color, var(--mat-sys-outline))}.mdc-switch--unselected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mat-slide-toggle-unselected-hover-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mat-slide-toggle-unselected-focus-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected:enabled:active .mdc-switch__handle::after{background:var(--mat-slide-toggle-unselected-pressed-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected.mdc-switch--disabled .mdc-switch__handle::after{background:var(--mat-slide-toggle-disabled-unselected-handle-color, var(--mat-sys-on-surface))}.mdc-switch__handle::before{background:var(--mat-slide-toggle-handle-surface-color)}.mdc-switch__shadow{border-radius:inherit;bottom:0;left:0;position:absolute;right:0;top:0}.mdc-switch:enabled .mdc-switch__shadow{box-shadow:var(--mat-slide-toggle-handle-elevation-shadow)}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__shadow,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__shadow,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__shadow,.mdc-switch.mdc-switch--disabled .mdc-switch__shadow{box-shadow:var(--mat-slide-toggle-disabled-handle-elevation-shadow)}.mdc-switch__ripple{left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);z-index:-1;width:var(--mat-slide-toggle-state-layer-size, 40px);height:var(--mat-slide-toggle-state-layer-size, 40px)}.mdc-switch__ripple::after{content:"";opacity:0}.mdc-switch--disabled .mdc-switch__ripple::after{display:none}.mat-mdc-slide-toggle-disabled-interactive .mdc-switch__ripple::after{display:block}.mdc-switch:hover .mdc-switch__ripple::after{transition:75ms opacity cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:focus .mdc-switch__ripple::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:active .mdc-switch__ripple::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:hover:not(:focus) .mdc-switch__ripple::after,.mdc-switch--unselected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background:var(--mat-slide-toggle-unselected-hover-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mat-slide-toggle-unselected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mdc-switch--unselected:enabled:focus .mdc-switch__ripple::after{background:var(--mat-slide-toggle-unselected-focus-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mat-slide-toggle-unselected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mdc-switch--unselected:enabled:active .mdc-switch__ripple::after{background:var(--mat-slide-toggle-unselected-pressed-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mat-slide-toggle-unselected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));transition:opacity 75ms linear}.mdc-switch--selected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background:var(--mat-slide-toggle-selected-hover-state-layer-color, var(--mat-sys-primary));opacity:var(--mat-slide-toggle-selected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mdc-switch--selected:enabled:focus .mdc-switch__ripple::after{background:var(--mat-slide-toggle-selected-focus-state-layer-color, var(--mat-sys-primary));opacity:var(--mat-slide-toggle-selected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mdc-switch--selected:enabled:active .mdc-switch__ripple::after{background:var(--mat-slide-toggle-selected-pressed-state-layer-color, var(--mat-sys-primary));opacity:var(--mat-slide-toggle-selected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));transition:opacity 75ms linear}.mdc-switch__icons{position:relative;height:100%;width:100%;z-index:1;transform:translateZ(0)}.mdc-switch--disabled.mdc-switch--unselected .mdc-switch__icons{opacity:var(--mat-slide-toggle-disabled-unselected-icon-opacity, 0.38)}.mdc-switch--disabled.mdc-switch--selected .mdc-switch__icons{opacity:var(--mat-slide-toggle-disabled-selected-icon-opacity, 0.38)}.mdc-switch__icon{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;opacity:0;transition:opacity 30ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-switch--unselected .mdc-switch__icon{width:var(--mat-slide-toggle-unselected-icon-size, 16px);height:var(--mat-slide-toggle-unselected-icon-size, 16px);fill:var(--mat-slide-toggle-unselected-icon-color, var(--mat-sys-surface-variant))}.mdc-switch--unselected.mdc-switch--disabled .mdc-switch__icon{fill:var(--mat-slide-toggle-disabled-unselected-icon-color, var(--mat-sys-surface-variant))}.mdc-switch--selected .mdc-switch__icon{width:var(--mat-slide-toggle-selected-icon-size, 16px);height:var(--mat-slide-toggle-selected-icon-size, 16px);fill:var(--mat-slide-toggle-selected-icon-color, var(--mat-sys-on-primary-container))}.mdc-switch--selected.mdc-switch--disabled .mdc-switch__icon{fill:var(--mat-slide-toggle-disabled-selected-icon-color, var(--mat-sys-on-surface))}.mdc-switch--selected .mdc-switch__icon--on,.mdc-switch--unselected .mdc-switch__icon--off{opacity:1;transition:opacity 45ms 30ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle{-webkit-user-select:none;user-select:none;display:inline-block;-webkit-tap-highlight-color:rgba(0,0,0,0);outline:0}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple,.mat-mdc-slide-toggle .mdc-switch__ripple::after{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple:not(:empty),.mat-mdc-slide-toggle .mdc-switch__ripple::after:not(:empty){transform:translateZ(0)}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mat-focus-indicator::before{content:""}.mat-mdc-slide-toggle .mat-internal-form-field{color:var(--mat-slide-toggle-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-slide-toggle-label-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-slide-toggle-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-slide-toggle-label-text-size, var(--mat-sys-body-medium-size));letter-spacing:var(--mat-slide-toggle-label-text-tracking, var(--mat-sys-body-medium-tracking));font-weight:var(--mat-slide-toggle-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-slide-toggle .mat-ripple-element{opacity:.12}.mat-mdc-slide-toggle .mat-focus-indicator::before{border-radius:50%}.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle-track,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__icon,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::after,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::after{transition:none}.mat-mdc-slide-toggle .mdc-switch:enabled+.mdc-label{cursor:pointer}.mat-mdc-slide-toggle .mdc-switch--disabled+label{color:var(--mat-slide-toggle-disabled-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-slide-toggle label:empty{display:none}.mat-mdc-slide-toggle-touch-target{position:absolute;top:50%;left:50%;height:var(--mat-slide-toggle-touch-target-size, 48px);width:100%;transform:translate(-50%, -50%);display:var(--mat-slide-toggle-touch-target-display, block)}[dir=rtl] .mat-mdc-slide-toggle-touch-target{left:auto;right:50%;transform:translate(50%, -50%)}\n'],encapsulation:2,changeDetection:0})}return t})(),vTe=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({imports:[d6,ii]})}return t})();function yTe(t,n){1&t&&(p(0),b(1,"translate"),h(2,"mat-icon",5),b(3,"translate"),p(4,"help"),u()),2&t&&(E(" ",y(1,3,"common.yes")," "),d(2),C("inline",!0)("matTooltip",y(3,5,"transports.persistent-transport-tooltip")))}function CTe(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"common.no")," ")}function wTe(t,n){1&t&&(p(0),b(1,"number")),2&t&&E(" ",pe(1,1,v().data.latencyMs,"1.0-0")," ms ")}function xTe(t,n){1&t&&p(0," - ")}let STe=(()=>{class t{static openDialog(e,i){const o=new nn;return o.data=i,o.autoFocus=!1,o.width=rt.largeModalWidth,e.open(t,o)}constructor(e,i){this.data=e,this.dialogRef=i}static{this.\u0275fac=function(i){return new(i||t)(O(En),O(Bt))}}static{this.\u0275cmp=re({type:t,selectors:[["app-transport-details"]],standalone:!1,decls:57,vars:50,consts:[[1,"info-dialog",3,"headline","dialog"],[1,"title","mt-0"],[3,"inline"],[1,"item"],[1,"title"],[1,"help-icon","d-none","d-md-inline",3,"inline","matTooltip"]],template:function(i,o){1&i&&(h(0,"app-dialog",0),b(1,"translate"),h(2,"div")(3,"div",1)(4,"mat-icon",2),p(5,"list"),u(),p(6),b(7,"translate"),u(),h(8,"div",3)(9,"span"),p(10),b(11,"translate"),u(),x(12,yTe,5,7),x(13,CTe,2,3),u(),h(14,"div",3)(15,"span"),p(16),b(17,"translate"),u(),p(18),u(),h(19,"div",3)(20,"span"),p(21),b(22,"translate"),u(),p(23),u(),h(24,"div",3)(25,"span"),p(26),b(27,"translate"),u(),p(28),u(),h(29,"div",3)(30,"span"),p(31),b(32,"translate"),u(),p(33),u(),h(34,"div",4)(35,"mat-icon",2),p(36,"import_export"),u(),p(37),b(38,"translate"),u(),h(39,"div",3)(40,"span"),p(41),b(42,"translate"),u(),p(43),b(44,"autoScale"),u(),h(45,"div",3)(46,"span"),p(47),b(48,"translate"),u(),p(49),b(50,"autoScale"),u(),h(51,"div",3)(52,"span"),p(53),b(54,"translate"),u(),x(55,wTe,2,4),x(56,xTe,1,0),u()()()),2&i&&(C("headline",y(1,24,"transports.details.title"))("dialog",o.dialogRef),d(4),C("inline",!0),d(2),E("",y(7,26,"transports.details.basic.title")," "),d(4),M(y(11,28,"transports.details.basic.persistent")),d(2),S(o.data.isPersistent?12:-1),d(),S(o.data.isPersistent?-1:13),d(3),M(y(17,30,"transports.details.basic.id")),d(2),E(" ",o.data.id," "),d(3),M(y(22,32,"transports.details.basic.local-pk")),d(2),E(" ",o.data.localPk," "),d(3),M(y(27,34,"transports.details.basic.remote-pk")),d(2),E(" ",o.data.remotePk," "),d(3),M(y(32,36,"transports.details.basic.type")),d(2),E(" ",o.data.type," "),d(2),C("inline",!0),d(2),E("",y(38,38,"transports.details.data.title")," "),d(4),M(y(42,40,"transports.details.data.uploaded")),d(2),E(" ",y(44,42,o.data.sent)," "),d(4),M(y(48,44,"transports.details.data.downloaded")),d(2),E(" ",y(50,46,o.data.recv)," "),d(4),M(y(54,48,"transports.latency")),d(2),S(o.data.latencyMs&&o.data.latencyMs>0?55:-1),d(),S(o.data.latencyMs&&0!==o.data.latencyMs?-1:56))},dependencies:[We,Kt,gn,Vl,xe,rp],styles:[".help-icon[_ngcontent-%COMP%]{opacity:.5;font-size:14px;cursor:default}"]})}}return t})();const kTe=(t,n)=>({"small-node-list-margins":t,"full-node-list-margins":n}),DTe=t=>({"d-lg-none d-xl-table":t}),MTe=t=>({"d-lg-table d-xl-none":t}),u6=t=>({offline:t});function TTe(t,n){1&t&&(h(0,"span",3),p(1),b(2,"translate"),h(3,"mat-icon",14),b(4,"translate"),p(5,"help"),u()()),2&t&&(d(),E(" ",y(2,3,"transports.title")," "),d(2),C("inline",!0)("matTooltip",y(4,5,"transports.info")))}function ETe(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,v().$implicit.translatableValue)," ")}function PTe(t,n){1&t&&p(0),2&t&&E(" ",v().$implicit.value," ")}function ITe(t,n){if(1&t&&(h(0,"div",16)(1,"span"),p(2),b(3,"translate"),u(),x(4,ETe,2,3),x(5,PTe,1,1),u()),2&t){const e=n.$implicit;d(2),E("",y(3,3,e.filterName),": "),d(2),S(e.translatableValue?4:-1),d(),S(e.value?5:-1)}}function OTe(t,n){if(1&t){const e=oe();h(0,"div",15),F("click",function(){return j(e),U(v().dataFilterer.removeFilters())}),ve(1,ITe,6,5,"div",16,Fe),h(3,"div",17),p(4),b(5,"translate"),u()()}if(2&t){const e=v();d(),ye(e.dataFilterer.currentFiltersTexts),d(3),M(y(5,1,"filters.press-to-remove"))}}function ATe(t,n){if(1&t){const e=oe();h(0,"mat-icon",18),F("click",function(){return j(e),U(v().dataFilterer.changeFilters())}),p(1,"filter_list"),u()}2&t&&C("inline",!0)}function RTe(t,n){if(1&t&&(h(0,"mat-icon",9),p(1,"more_horiz"),u()),2&t){v();const e=Hn(12);C("inline",!0)("matMenuTriggerFor",e)}}function FTe(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"transports.dialog.errors.remote-key-length-error")," ")}function NTe(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"transports.dialog.errors.remote-key-chars-error")," ")}function LTe(t,n){if(1&t&&(h(0,"mat-option",32),p(1),u()),2&t){const e=n.$implicit;C("value",e),d(),M(e)}}function BTe(t,n){1&t&&ve(0,LTe,2,2,"mat-option",32,Fe),2&t&&ye(v(2).addAvailableTypes)}function VTe(t,n){if(1&t){const e=oe();h(0,"div",13)(1,"div",19)(2,"form",20),F("ngSubmit",function(){return j(e),U(v().submitAddForm())}),h(3,"div",21)(4,"mat-form-field",22)(5,"mat-label"),p(6),b(7,"translate"),u(),B(8,"input",23),h(9,"mat-error"),x(10,FTe,2,3)(11,NTe,2,3),u()(),h(12,"mat-form-field",24)(13,"mat-label"),p(14),b(15,"translate"),u(),B(16,"input",25),u(),h(17,"mat-form-field",26)(18,"mat-label"),p(19),b(20,"translate"),u(),h(21,"mat-select",27),x(22,BTe,2,0),u()()(),h(23,"div",21)(24,"mat-checkbox",28),F("change",function(o){return j(e),U(v().setAddPersistent(o))}),p(25),b(26,"translate"),h(27,"mat-icon",29),b(28,"translate"),p(29,"help"),u()(),h(30,"button",30)(31,"mat-icon"),p(32,"add"),u(),p(33),b(34,"translate"),u(),h(35,"button",31),F("click",function(){return j(e),U(v().cancelAddForm())}),p(36),b(37,"translate"),u()()()()()}if(2&t){const e=v();d(2),C("formGroup",e.addForm),d(4),M(y(7,14,"transports.dialog.remote-key")),d(4),S(e.addForm.get("remoteKey").hasError("pattern")?11:10),d(4),M(y(15,16,"transports.dialog.label")),d(5),M(y(20,18,"transports.dialog.transport-type")),d(3),S(e.addAvailableTypes?22:-1),d(2),C("checked",e.addingPersistent),d(),E(" ",y(26,20,"transports.dialog.make-persistent")," "),d(2),C("inline",!0)("matTooltip",y(28,22,"transports.dialog.persistent-tooltip")),d(3),C("disabled",!e.addForm.valid||e.addBusy),d(3),E(" ",y(34,24,"transports.create")," "),d(2),C("disabled",e.addBusy),d(),E(" ",y(37,26,"common.cancel")," ")}}function HTe(t,n){if(1&t&&(h(0,"mat-icon",37),p(1),u()),2&t){const e=v(2);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function jTe(t,n){1&t&&p(0," * ")}function UTe(t,n){if(1&t&&(h(0,"mat-icon",37),p(1),u(),x(2,jTe,1,0)),2&t){const e=v(2);C("inline",!0),d(),M(e.dataSorter.sortingArrow),d(),S(e.dataSorter.currentlySortingByLabel?2:-1)}}function zTe(t,n){1&t&&p(0," * ")}function $Te(t,n){if(1&t&&(h(0,"mat-icon",37),p(1),u(),x(2,zTe,1,0)),2&t){const e=v(2);C("inline",!0),d(),M(e.dataSorter.sortingArrow),d(),S(e.dataSorter.currentlySortingByLabel?2:-1)}}function WTe(t,n){if(1&t&&(h(0,"mat-icon",37),p(1),u()),2&t){const e=v(2);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function GTe(t,n){if(1&t&&(h(0,"mat-icon",37),p(1),u()),2&t){const e=v(2);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function qTe(t,n){if(1&t&&(h(0,"mat-icon",37),p(1),u()),2&t){const e=v(2);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function KTe(t,n){if(1&t&&(h(0,"mat-icon",37),p(1),u()),2&t){const e=v(2);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function YTe(t,n){if(1&t){const e=oe();h(0,"button",51),b(1,"translate"),F("click",function(){j(e);const o=v().$implicit;return U(v(2).changeIfPersistent([o],!1))}),h(2,"mat-icon",52),p(3,"star"),u()()}2&t&&(C("matTooltip",y(1,2,"transports.persistent-transport-button-tooltip")),d(2),C("inline",!0))}function XTe(t,n){if(1&t){const e=oe();h(0,"button",51),b(1,"translate"),F("click",function(){j(e);const o=v().$implicit;return U(v(2).changeIfPersistent([o],!0))}),h(2,"mat-icon",53),p(3,"star_outline"),u()()}2&t&&(C("matTooltip",y(1,2,"transports.non-persistent-transport-button-tooltip")),d(2),C("inline",!0))}function ZTe(t,n){1&t&&(h(0,"span"),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"transports.offline")))}function QTe(t,n){if(1&t){const e=oe();h(0,"td")(1,"app-labeled-element-text",54),F("labelEdited",function(){return j(e),U(v(3).refreshData())}),u(),x(2,ZTe,3,3,"span"),u()}if(2&t){const e=v().$implicit,i=v(2);d(),C("id",Qt(e.id))("elementType",i.labeledElementTypes.Transport),d(),S(e.notFound?2:-1)}}function JTe(t,n){1&t&&(h(0,"td"),p(1),b(2,"translate"),u()),2&t&&(d(),E(" ",y(2,1,"transports.offline")," "))}function e2e(t,n){if(1&t&&(h(0,"td"),p(1),b(2,"autoScale"),u()),2&t){const e=v().$implicit;d(),E(" ",y(2,1,e.sent)," ")}}function t2e(t,n){if(1&t&&(h(0,"td"),p(1),b(2,"autoScale"),u()),2&t){const e=v().$implicit;d(),E(" ",y(2,1,e.recv)," ")}}function n2e(t,n){1&t&&(h(0,"td"),p(1),b(2,"translate"),u()),2&t&&(d(),E(" ",y(2,1,"transports.offline")," "))}function i2e(t,n){1&t&&(h(0,"td"),p(1),b(2,"translate"),u()),2&t&&(d(),E(" ",y(2,1,"transports.offline")," "))}function o2e(t,n){1&t&&(p(0),b(1,"number")),2&t&&E(" ",pe(1,1,v(2).$implicit.latencyMs,"1.0-0")," ms ")}function r2e(t,n){1&t&&(h(0,"span",17),p(1,"-"),u())}function s2e(t,n){if(1&t&&(h(0,"td"),x(1,o2e,2,4),x(2,r2e,2,0,"span",17),u()),2&t){const e=v().$implicit;d(),S(e.latencyMs&&e.latencyMs>0?1:-1),d(),S(e.latencyMs&&0!==e.latencyMs?-1:2)}}function a2e(t,n){1&t&&(h(0,"td"),p(1),b(2,"translate"),u()),2&t&&(d(),E(" ",y(2,1,"transports.offline")," "))}function l2e(t,n){if(1&t){const e=oe();h(0,"button",55),b(1,"translate"),F("click",function(){j(e);const o=v().$implicit;return U(v(2).details(o))}),h(2,"mat-icon",37),p(3,"visibility"),u()()}2&t&&(C("matTooltip",y(1,2,"transports.details.title")),d(2),C("inline",!0))}function c2e(t,n){if(1&t){const e=oe();h(0,"button",55),b(1,"translate"),F("click",function(){j(e);const o=v().$implicit;return U(v(2).delete(o))}),h(2,"mat-icon",37),p(3,"close"),u()()}2&t&&(C("matTooltip",y(1,2,"transports.delete")),d(2),C("inline",!0))}function d2e(t,n){if(1&t){const e=oe();h(0,"tr",40)(1,"td",46)(2,"mat-checkbox",47),F("change",function(){const o=j(e).$implicit;return U(v(2).changeSelection(o))}),u()(),h(3,"td"),x(4,YTe,4,4,"button",48),x(5,XTe,4,4,"button",48),u(),x(6,QTe,3,4,"td"),x(7,JTe,3,3,"td"),h(8,"td")(9,"app-labeled-element-text",49),F("labelEdited",function(){return j(e),U(v(2).refreshData())}),u()(),h(10,"td"),p(11),u(),x(12,e2e,3,3,"td"),x(13,t2e,3,3,"td"),x(14,n2e,3,3,"td"),x(15,i2e,3,3,"td"),x(16,s2e,3,2,"td"),x(17,a2e,3,3,"td"),h(18,"td",39),x(19,l2e,4,4,"button",50),x(20,c2e,4,4,"button",50),u()()}if(2&t){const e=n.$implicit,i=v(2);C("ngClass",se(17,u6,e.notFound)),d(2),C("checked",i.selections.get(e.id)),d(2),S(e.isPersistent?4:-1),d(),S(e.isPersistent?-1:5),d(),S(e.notFound?-1:6),d(),S(e.notFound?7:-1),d(2),C("id",Qt(e.remotePk)),d(2),E(" ",e.type," "),d(),S(e.notFound?-1:12),d(),S(e.notFound?-1:13),d(),S(e.notFound?14:-1),d(),S(e.notFound?15:-1),d(),S(e.notFound?-1:16),d(),S(e.notFound?17:-1),d(2),S(e.notFound?-1:19),d(),S(e.notFound?-1:20)}}function u2e(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"tables.label")," ")}function h2e(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"tables.inverted-order")," ")}function f2e(t,n){1&t&&(h(0,"div",58)(1,"div",58)(2,"mat-icon",63),p(3,"star"),u(),p(4,"\xa0 "),h(5,"span",64),p(6),b(7,"translate"),u()()()),2&t&&(d(2),C("inline",!0),d(4),M(y(7,2,"transports.persistent")))}function p2e(t,n){if(1&t){const e=oe();h(0,"app-labeled-element-text",54),F("labelEdited",function(){return j(e),U(v(3).refreshData())}),u()}if(2&t){const e=v().$implicit,i=v(2);C("id",Qt(e.id))("elementType",i.labeledElementTypes.Transport)}}function m2e(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"transports.offline")," ")}function g2e(t,n){1&t&&(p(0),b(1,"autoScale")),2&t&&E(" ",y(1,1,v().$implicit.sent)," ")}function _2e(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"transports.offline")," ")}function b2e(t,n){1&t&&(p(0),b(1,"autoScale")),2&t&&E(" ",y(1,1,v().$implicit.recv)," ")}function v2e(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"transports.offline")," ")}function y2e(t,n){1&t&&(p(0),b(1,"number")),2&t&&E(" ",pe(1,1,v(2).$implicit.latencyMs,"1.0-0")," ms ")}function C2e(t,n){1&t&&p(0," - ")}function w2e(t,n){if(1&t&&(x(0,y2e,2,4),x(1,C2e,1,0)),2&t){const e=v().$implicit;S(e.latencyMs&&e.latencyMs>0?0:-1),d(),S(e.latencyMs&&0!==e.latencyMs?-1:1)}}function x2e(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"transports.offline")," ")}function S2e(t,n){if(1&t){const e=oe();h(0,"tr")(1,"td")(2,"div",56)(3,"div",57)(4,"mat-checkbox",47),F("change",function(){const o=j(e).$implicit;return U(v(2).changeSelection(o))}),u()(),h(5,"div",44),x(6,f2e,8,4,"div",58),h(7,"div",59)(8,"span",2),p(9),b(10,"translate"),u(),p(11,": "),x(12,p2e,1,3,"app-labeled-element-text",60),x(13,m2e,2,3),u(),h(14,"div",59)(15,"span",2),p(16),b(17,"translate"),u(),p(18,": "),h(19,"app-labeled-element-text",49),F("labelEdited",function(){return j(e),U(v(2).refreshData())}),u()(),h(20,"div",58)(21,"span",2),p(22),b(23,"translate"),u(),p(24),u(),h(25,"div",58)(26,"span",2),p(27),b(28,"translate"),u(),p(29,": "),x(30,g2e,2,3),x(31,_2e,2,3),u(),h(32,"div",58)(33,"span",2),p(34),b(35,"translate"),u(),p(36,": "),x(37,b2e,2,3),x(38,v2e,2,3),u(),h(39,"div",58)(40,"span",2),p(41),b(42,"translate"),u(),p(43,": "),x(44,w2e,2,2),x(45,x2e,2,3),u()(),B(46,"div",61),h(47,"div",45)(48,"button",62),b(49,"translate"),F("click",function(o){const r=j(e).$implicit,s=v(2);return o.stopPropagation(),U(s.showOptionsDialog(r))}),h(50,"mat-icon"),p(51),u()()()()()()}if(2&t){const e=n.$implicit,i=v(2);d(2),C("ngClass",se(36,u6,e.notFound)),d(2),C("checked",i.selections.get(e.id)),d(2),S(e.isPersistent?6:-1),d(3),M(y(10,22,"transports.id")),d(3),S(e.notFound?-1:12),d(),S(e.notFound?13:-1),d(3),M(y(17,24,"transports.remote-node")),d(3),C("id",Qt(e.remotePk)),d(3),M(y(23,26,"transports.type")),d(2),E(": ",e.type," "),d(3),M(y(28,28,"common.uploaded")),d(3),S(e.notFound?-1:30),d(),S(e.notFound?31:-1),d(3),M(y(35,30,"common.downloaded")),d(3),S(e.notFound?-1:37),d(),S(e.notFound?38:-1),d(3),M(y(42,32,"transports.latency")),d(3),S(e.notFound?-1:44),d(),S(e.notFound?45:-1),d(3),C("matTooltip",y(49,34,"common.options")),d(3),M("add")}}function k2e(t,n){if(1&t){const e=oe();h(0,"div",13)(1,"div",33)(2,"table",34)(3,"tr"),B(4,"th"),h(5,"th",35),b(6,"translate"),F("click",function(){j(e);const o=v();return U(o.dataSorter.changeSortingOrder(o.persistentSortData))}),h(7,"mat-icon",36),p(8,"star_outline"),u(),x(9,HTe,2,2,"mat-icon",37),u(),h(10,"th",38),F("click",function(){j(e);const o=v();return U(o.dataSorter.changeSortingOrder(o.idSortData))}),p(11),b(12,"translate"),x(13,UTe,3,3),u(),h(14,"th",38),F("click",function(){j(e);const o=v();return U(o.dataSorter.changeSortingOrder(o.remotePkSortData))}),p(15),b(16,"translate"),x(17,$Te,3,3),u(),h(18,"th",38),F("click",function(){j(e);const o=v();return U(o.dataSorter.changeSortingOrder(o.typeSortData))}),p(19),b(20,"translate"),x(21,WTe,2,2,"mat-icon",37),u(),h(22,"th",38),F("click",function(){j(e);const o=v();return U(o.dataSorter.changeSortingOrder(o.uploadedSortData))}),p(23),b(24,"translate"),x(25,GTe,2,2,"mat-icon",37),u(),h(26,"th",38),F("click",function(){j(e);const o=v();return U(o.dataSorter.changeSortingOrder(o.downloadedSortData))}),p(27),b(28,"translate"),x(29,qTe,2,2,"mat-icon",37),u(),h(30,"th",38),F("click",function(){j(e);const o=v();return U(o.dataSorter.changeSortingOrder(o.latencySortData))}),p(31),b(32,"translate"),x(33,KTe,2,2,"mat-icon",37),u(),B(34,"th",39),u(),ve(35,d2e,21,19,"tr",40,Fe),u(),h(37,"table",41)(38,"tr",42),F("click",function(){return j(e),U(v().dataSorter.openSortingOrderModal())}),h(39,"td")(40,"div",43)(41,"div",44)(42,"div",2),p(43),b(44,"translate"),u(),h(45,"div"),p(46),b(47,"translate"),x(48,u2e,2,3),x(49,h2e,2,3),u()(),h(50,"div",45)(51,"mat-icon",37),p(52,"keyboard_arrow_down"),u()()()()(),ve(53,S2e,52,38,"tr",null,Fe),u()()()}if(2&t){const e=v();d(),C("ngClass",_t(40,kTe,e.showShortList_,!e.showShortList_)),d(),C("ngClass",se(43,DTe,e.showShortList_)),d(3),C("matTooltip",y(6,22,"transports.persistent-tooltip")),d(4),S(e.dataSorter.currentSortingColumn===e.persistentSortData?9:-1),d(2),E(" ",y(12,24,"transports.id")," "),d(2),S(e.dataSorter.currentSortingColumn===e.idSortData?13:-1),d(2),E(" ",y(16,26,"transports.remote-node")," "),d(2),S(e.dataSorter.currentSortingColumn===e.remotePkSortData?17:-1),d(2),E(" ",y(20,28,"transports.type")," "),d(2),S(e.dataSorter.currentSortingColumn===e.typeSortData?21:-1),d(2),E(" ",y(24,30,"common.uploaded")," "),d(2),S(e.dataSorter.currentSortingColumn===e.uploadedSortData?25:-1),d(2),E(" ",y(28,32,"common.downloaded")," "),d(2),S(e.dataSorter.currentSortingColumn===e.downloadedSortData?29:-1),d(2),E(" ",y(32,34,"transports.latency")," "),d(2),S(e.dataSorter.currentSortingColumn===e.latencySortData?33:-1),d(2),ye(e.dataSource),d(2),C("ngClass",se(45,MTe,e.showShortList_)),d(6),M(y(44,36,"tables.sorting-title")),d(3),E("",y(47,38,e.dataSorter.currentSortingColumn.label)," "),d(2),S(e.dataSorter.currentlySortingByLabel?48:-1),d(),S(e.dataSorter.sortingInReverseOrder?49:-1),d(2),C("inline",!0),d(2),ye(e.dataSource)}}function D2e(t,n){1&t&&(h(0,"span",67),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"transports.empty")))}function M2e(t,n){1&t&&(h(0,"span",67),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"transports.empty-with-filter")))}function T2e(t,n){if(1&t&&(h(0,"div",13)(1,"div",65)(2,"mat-icon",66),p(3,"warning"),u(),x(4,D2e,3,3,"span",67),x(5,M2e,3,3,"span",67),u()()),2&t){const e=v();d(2),C("inline",!0),d(2),S(0===e.allTransports.length?4:-1),d(),S(0!==e.allTransports.length?5:-1)}}let E2e=(()=>{class t{set showShortList(e){this.showShortList_=e,this.dataSorter.setData(this.filteredTransports)}set node(e){const i=performance.now();console.log("[HV-DIAG] transport-list setter called, transports:",e.transports?.length,"persistentTransports:",e.persistentTransports?.length);const o=e.transports.map(s=>s.id).sort().join(",");if(o===this.lastTransportIds&&e.transports.length===this.lastTransportCount)return this.allTransports&&(e.transports.forEach(s=>{const a=this.allTransports.find(l=>l.id===s.id);a&&(a.sent=s.sent,a.recv=s.recv)}),this.cdr.markForCheck()),void console.log("[HV-DIAG] transport-list stats-only update took",(performance.now()-i).toFixed(1),"ms");console.log("[HV-DIAG] transport-list FULL reprocessing",e.transports.length,"transports"),this.lastTransportCount=e.transports.length,this.lastTransportIds=o,this.currentNode=e,this.allTransports=e.transports,this.nodePK=e.localPk;const r=new Map;e.persistentTransports.forEach(s=>r.set(this.getPersistentTransportID(s.pk,s.type),s)),this.allTransports.forEach(s=>{r.has(this.getPersistentTransportID(s.remotePk,s.type))?(s.isPersistent=!0,r.delete(this.getPersistentTransportID(s.remotePk,s.type))):s.isPersistent=!1}),r.forEach((s,a)=>{this.allTransports.push({id:this.getPersistentTransportID(s.pk,s.type),localPk:e.localPk,remotePk:s.pk,type:s.type,recv:0,sent:0,isPersistent:!0,notFound:!0})}),this.allTransports.forEach(s=>{s.id_label=kc.getCompleteLabel(this.storageService,this.translateService,s.id),s.remote_pk_label=kc.getCompleteLabel(this.storageService,this.translateService,s.remotePk)}),this.dataFilterer.setData(this.allTransports),this.cdr.markForCheck()}constructor(e,i,o,r,s,a,l,c,f,m){this.dialog=e,this.transportService=i,this.route=o,this.router=r,this.snackbarService=s,this.translateService=a,this.storageService=l,this.nodeService=c,this.cdr=f,this.formBuilder=m,this.listId="tr",this.persistentSortData=new Dt(["isPersistent"],"transports.persistent",st.Boolean),this.idSortData=new Dt(["id"],"transports.id",st.Text,["id_label"]),this.remotePkSortData=new Dt(["remotePk"],"transports.remote-node",st.Text,["remote_pk_label"]),this.typeSortData=new Dt(["type"],"transports.type",st.Text),this.uploadedSortData=new Dt(["sent"],"common.uploaded",st.NumberReversed),this.downloadedSortData=new Dt(["recv"],"common.downloaded",st.NumberReversed),this.latencySortData=new Dt(["latencyMs"],"transports.latency",st.Number),this.selections=new Map,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.lastTransportCount=-1,this.lastTransportIds="",this.filterProperties=[{filterName:"transports.filter-dialog.persistent",keyNameInElementsArray:"isPersistent",type:Sn.Select,printableLabelsForValues:[{value:"",label:"transports.filter-dialog.persistent-options.any"},{value:"true",label:"transports.filter-dialog.persistent-options.persistent"},{value:"false",label:"transports.filter-dialog.persistent-options.non-persistent"}]},{filterName:"transports.filter-dialog.id",keyNameInElementsArray:"id",secondaryKeyNameInElementsArray:"id_label",type:Sn.TextInput,maxlength:36},{filterName:"transports.filter-dialog.remote-node",keyNameInElementsArray:"remotePk",secondaryKeyNameInElementsArray:"remote_pk_label",type:Sn.TextInput,maxlength:66}],this.labeledElementTypes=ro,this.showAddForm=!1,this.addingPersistent=!1,this.addAvailableTypes=null,this.addBusy=!1,this.operationSubscriptionsGroup=[],this.addForm=this.formBuilder.group({remoteKey:["",Ne.compose([Ne.required,Ne.minLength(66),Ne.maxLength(66),Ne.pattern("^[0-9a-fA-F]+$")])],label:[""],type:["",Ne.required]}),this.dataSorter=new gu(this.dialog,this.translateService,this.storageService,[this.persistentSortData,this.idSortData,this.remotePkSortData,this.typeSortData,this.uploadedSortData,this.downloadedSortData,this.latencySortData],1,this.listId),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataFilterer=new _u(this.dialog,this.route,this.router,this.filterProperties,this.listId),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(_=>{this.filteredTransports=_,this.dataSorter.setData(this.filteredTransports)}),this.navigationsSubscription=this.route.paramMap.subscribe(_=>{if(_.has("page")){let w=Number.parseInt(_.get("page"),10);(isNaN(w)||w<1)&&(w=1),this.currentPageInUrl=w,this.recalculateElementsToShow()}}),this.languageSubscription=this.translateService.onLangChange.subscribe(()=>{this.node=this.currentNode})}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.operationSubscriptionsGroup.forEach(e=>e.unsubscribe()),this.languageSubscription.unsubscribe(),this.dataSortedSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFiltererSubscription.unsubscribe(),this.dataFilterer.dispose(),this.persistentTransportSubscription&&this.persistentTransportSubscription.unsubscribe(),this.addOperationSubscription&&this.addOperationSubscription.unsubscribe(),this.addTypesSubscription&&this.addTypesSubscription.unsubscribe()}changeSelection(e){this.selections.get(e.id)?this.selections.set(e.id,!1):this.selections.set(e.id,!0)}hasSelectedElements(){if(!this.selections)return!1;let e=!1;return this.selections.forEach(i=>{i&&(e=!0)}),e}changeAllSelections(e){this.selections.forEach((i,o)=>{this.selections.set(o,e)})}deleteSelected(){const e=[];this.selections.forEach((i,o)=>{i&&e.push(o)}),0!==e.length&&this.deleteRecursively(e,null)}toggleAddForm(){this.showAddForm=!this.showAddForm,this.showAddForm&&null===this.addAvailableTypes&&this.loadAddTypes(),this.showAddForm||this.resetAddForm()}cancelAddForm(){this.showAddForm=!1,this.resetAddForm()}setAddPersistent(e){this.addingPersistent=!!e.checked}submitAddForm(){if(!this.addForm.valid||this.addBusy)return;const e=this.addForm.get("remoteKey").value,i=this.addForm.get("type").value,o=this.addForm.get("label").value;this.addBusy=!0,this.addingPersistent?this.addOperationSubscription=this.transportService.getPersistentTransports(ke.getCurrentNodeKey()).subscribe(r=>{const s=r||[];s.some(l=>l.pk.toUpperCase()===e.toUpperCase()&&l.type.toUpperCase()===i.toUpperCase())?this.doCreateTransport(e,i,o,!0):(s.push({pk:e,type:i}),this.addOperationSubscription=this.transportService.savePersistentTransportsData(ke.getCurrentNodeKey(),s).subscribe(()=>{this.doCreateTransport(e,i,o,!0)},l=>this.onAddError(l)))},r=>this.onAddError(r)):this.doCreateTransport(e,i,o,!1)}doCreateTransport(e,i,o,r){this.addOperationSubscription=this.transportService.create(ke.getCurrentNodeKey(),e,i).subscribe(s=>{let a=!1;o&&(s&&s.id?this.storageService.saveLabel(s.id,o,ro.Transport):a=!0),this.addBusy=!1,this.cancelAddForm(),ke.refreshCurrentDisplayedData(),a?this.snackbarService.showWarning("transports.dialog.success-without-label"):this.snackbarService.showDone("transports.dialog.success")},s=>{r?(this.addBusy=!1,this.cancelAddForm(),ke.refreshCurrentDisplayedData(),this.snackbarService.showWarning("transports.dialog.only-persistent-created")):this.onAddError(s)})}onAddError(e){this.addBusy=!1,e=Qe(e),this.snackbarService.showError(e)}resetAddForm(){this.addForm.reset({remoteKey:"",label:"",type:this.addAvailableTypes&&this.addAvailableTypes[0]||""}),this.addingPersistent=!1,this.addBusy=!1}loadAddTypes(){this.addTypesSubscription=ae(1).pipe(li(0),It(()=>this.transportService.types(ke.getCurrentNodeKey()))).subscribe(e=>{e.sort((o,r)=>"stcp"===o.toLowerCase()?1:"stcp"===r.toLowerCase()?-1:o.localeCompare(r));let i=e.findIndex(o=>"dmsg"===o.toLowerCase());i=-1!==i?i:0,this.addAvailableTypes=e,this.addForm.get("type").setValue(e[i]||""),this.cdr.markForCheck()},e=>{e=Qe(e),this.snackbarService.showError(e),this.addAvailableTypes=[],this.cdr.markForCheck()})}showOptionsDialog(e){const i=[];i.push(e.isPersistent?{icon:"star_outline",label:"transports.make-non-persistent"}:{icon:"star",label:"transports.make-persistent"}),e.notFound||(i.push({icon:"visibility",label:"transports.details.title"}),i.push({icon:"close",label:"transports.delete"})),ao.openDialog(this.dialog,i,"common.options").afterClosed().subscribe(o=>{1===o?this.changeIfPersistent([e],!e.isPersistent):2===o?this.details(e):3===o&&this.delete(e)})}changeIfPersistentOfSelected(e){const i=[];this.allTransports.forEach(o=>{this.selections.has(o.id)&&this.selections.get(o.id)&&i.push(o)}),this.changeIfPersistent(i,e)}changeIfPersistent(e,i){e.length<1||(this.persistentTransportSubscription=this.transportService.getPersistentTransports(this.nodePK).subscribe(o=>{const r=o||[];let s;const a=new Map;if(e.forEach(l=>a.set(this.getPersistentTransportID(l.remotePk,l.type),l)),i)r.forEach(l=>{a.has(this.getPersistentTransportID(l.pk,l.type))&&a.delete(this.getPersistentTransportID(l.pk,l.type))}),s=0===a.size,s||a.forEach(l=>r.push({pk:l.remotePk,type:l.type}));else{s=!0;for(let l=0;l{ke.refreshCurrentDisplayedData(),this.snackbarService.showDone("transports.changes-made")},l=>{l=Qe(l),this.snackbarService.showError(l)})},o=>{o=Qe(o),this.snackbarService.showError(o)}))}details(e){STe.openDialog(this.dialog,e)}delete(e){this.operationSubscriptionsGroup.push(this.startDeleting(e.id).subscribe(()=>{ke.refreshCurrentDisplayedData(),this.snackbarService.showDone("transports.deleted")},i=>{i=Qe(i),this.snackbarService.showError(i)}))}refreshData(){ke.refreshCurrentDisplayedData()}getPersistentTransportID(e,i){return e.toUpperCase()+i.toUpperCase()}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredTransports){this.numberOfPages=1,this.currentPage=1,this.transportsToShow=this.filteredTransports.slice();const e=new Map;this.transportsToShow.forEach(o=>{e.set(o.id,!0),this.selections.has(o.id)||this.selections.set(o.id,!1)});const i=[];this.selections.forEach((o,r)=>{e.has(r)||i.push(r)}),i.forEach(o=>{this.selections.delete(o)})}else this.transportsToShow=null,this.selections=new Map;this.dataSource=this.transportsToShow,this.cdr.markForCheck()}startDeleting(e){return this.transportService.delete(ke.getCurrentNodeKey(),e)}deleteRecursively(e,i){this.operationSubscriptionsGroup.push(this.startDeleting(e[e.length-1]).subscribe(()=>{e.pop(),0===e.length?(i&&i.close(),ke.refreshCurrentDisplayedData(),this.snackbarService.showDone("transports.deleted")):this.deleteRecursively(e,i)},o=>{ke.refreshCurrentDisplayedData(),o=Qe(o),i?i.componentInstance.showDone("confirmation.error-header-text",o.translatableErrorMsg):this.snackbarService.showError(o)}))}static{this.\u0275fac=function(i){return new(i||t)(O(Ot),O(l6),O(Ai),O(vt),O(ct),O(Go),O(ti),O(Io),O(Jt),O(di))}}static{this.\u0275cmp=re({type:t,selectors:[["app-transport-list"]],inputs:{showShortList:"showShortList",node:"node"},standalone:!1,decls:31,vars:34,consts:[["selectionMenu","matMenu"],[1,"generic-title-container","mt-4.5","d-flex"],[1,"title"],[1,"uppercase"],[1,"filter-label","subtle-transparent-button","cursor-pointer"],[1,"options"],[1,"options-container"],[3,"click","inline","matTooltip"],[1,"small-icon",3,"inline"],[3,"inline","matMenuTriggerFor"],[3,"overlapTrigger"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"click","disabled"],[1,"rounded-elevated-box","mt-3"],[1,"help","d-none","d-md-inline",3,"inline","matTooltip"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],[1,"item"],[1,"transparent-50"],[1,"small-icon",3,"click","inline"],[1,"box-internal-container","small-node-list-margins"],[1,"inline-add-transport",3,"ngSubmit","formGroup"],[1,"add-row"],["appearance","outline",1,"field-pk"],["matInput","","formControlName","remoteKey","maxlength","66","placeholder","02abc..."],["appearance","outline",1,"field-md"],["matInput","","formControlName","label","maxlength","66"],["appearance","outline",1,"field-sm"],["formControlName","type","panelClass","skynet-select-panel"],["color","primary",3,"change","checked"],[1,"help-icon",3,"inline","matTooltip"],["mat-raised-button","","color","primary","type","submit",3,"disabled"],["mat-button","","type","button",3,"click","disabled"],[3,"value"],[1,"box-internal-container","overflow",3,"ngClass"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table",3,"ngClass"],[1,"sortable-column","small-column",3,"click","matTooltip"],[1,"persistent-icon","grey-text"],[3,"inline"],[1,"sortable-column",3,"click"],[1,"actions"],[3,"ngClass"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none",3,"ngClass"],[1,"selectable",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],[1,"selection-col"],[3,"change","checked"],["mat-button","",1,"action-button","subtle-transparent-button",3,"matTooltip"],[3,"labelEdited","id"],["mat-button","",1,"action-button","transparent-button",3,"matTooltip"],["mat-button","",1,"action-button","subtle-transparent-button",3,"click","matTooltip"],[1,"persistent-icon","default-cursor",3,"inline"],[1,"persistent-icon","grey-text",3,"inline"],[3,"labelEdited","id","elementType"],["mat-button","",1,"action-button","transparent-button",3,"click","matTooltip"],[1,"list-item-container",3,"ngClass"],[1,"check-part"],[1,"list-row"],[1,"list-row","long-content"],[3,"id","elementType"],[1,"margin-part"],["mat-icon-button","",1,"transparent-button",3,"click","matTooltip"],[1,"persistent-icon",3,"inline"],[1,"yellow-clear-text","title"],[1,"box-internal-container"],[1,"alert-icon",3,"inline"],[1,"font-sm"]],template:function(i,o){1&i&&(h(0,"div",1)(1,"div",2),x(2,TTe,6,7,"span",3),x(3,OTe,6,3,"div",4),u(),h(4,"div",5)(5,"div",6)(6,"mat-icon",7),b(7,"translate"),F("click",function(){return o.toggleAddForm()}),p(8),u(),x(9,ATe,2,1,"mat-icon",8),x(10,RTe,2,2,"mat-icon",9),h(11,"mat-menu",10,0)(13,"div",11),F("click",function(){return o.changeAllSelections(!0)}),p(14),b(15,"translate"),u(),h(16,"div",11),F("click",function(){return o.changeAllSelections(!1)}),p(17),b(18,"translate"),u(),h(19,"div",12),F("click",function(){return o.changeIfPersistentOfSelected(!0)}),p(20),b(21,"translate"),u(),h(22,"div",12),F("click",function(){return o.changeIfPersistentOfSelected(!1)}),p(23),b(24,"translate"),u(),h(25,"div",12),F("click",function(){return o.deleteSelected()}),p(26),b(27,"translate"),u()()()()(),x(28,VTe,38,28,"div",13),x(29,k2e,55,47,"div",13),x(30,T2e,6,3,"div",13)),2&i&&(d(2),S(o.showShortList_?2:-1),d(),S(o.dataFilterer.currentFiltersTexts&&o.dataFilterer.currentFiltersTexts.length>0?3:-1),d(3),C("inline",!0)("matTooltip",y(7,22,o.showAddForm?"common.cancel":"transports.create")),d(2),M(o.showAddForm?"remove":"add"),d(),S(o.allTransports&&o.allTransports.length>0?9:-1),d(),S(o.dataSource&&o.dataSource.length>0?10:-1),d(),C("overlapTrigger",!1),d(3),E(" ",y(15,24,"selection.select-all")," "),d(3),E(" ",y(18,26,"selection.unselect-all")," "),d(2),C("disabled",Qt(!o.hasSelectedElements())),d(),E(" ",y(21,28,"transports.make-selected-persistent")," "),d(2),C("disabled",Qt(!o.hasSelectedElements())),d(),E(" ",y(24,30,"transports.make-selected-non-persistent")," "),d(2),C("disabled",Qt(!o.hasSelectedElements())),d(),E(" ",y(27,32,"selection.delete-all")," "),d(2),S(o.showAddForm?28:-1),d(),S(o.dataSource&&o.dataSource.length>0?29:-1),d(),S(o.dataSource&&0!==o.dataSource.length?-1:30))},dependencies:[$t,xn,Gt,qt,wn,wi,on,mn,sn,Os,Ma,In,Pn,Wo,We,Kt,Jr,As,vu,Pa,Qr,kr,kc,Vl,xe,rp],styles:[".overflow[_ngcontent-%COMP%]{display:block;width:100%;overflow-x:auto}.overflow[_ngcontent-%COMP%] table[_ngcontent-%COMP%]{width:100%}.actions[_ngcontent-%COMP%]{text-align:right;width:90px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}.small-column[_ngcontent-%COMP%]{width:1px;text-align:center}.persistent-icon[_ngcontent-%COMP%]{font-size:14px!important;color:#d48b05}.offline[_ngcontent-%COMP%]{opacity:.35}.inline-add-transport[_ngcontent-%COMP%] .add-row[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:8px}.inline-add-transport[_ngcontent-%COMP%] .add-row[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{flex:1 1 220px}.inline-add-transport[_ngcontent-%COMP%] .add-row[_ngcontent-%COMP%] .field-pk[_ngcontent-%COMP%]{flex:2 1 360px}.inline-add-transport[_ngcontent-%COMP%] .add-row[_ngcontent-%COMP%] .field-md[_ngcontent-%COMP%]{flex:1 1 180px}.inline-add-transport[_ngcontent-%COMP%] .add-row[_ngcontent-%COMP%] .field-sm[_ngcontent-%COMP%]{flex:0 1 140px}.inline-add-transport[_ngcontent-%COMP%] .add-row[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-left:auto}.inline-add-transport[_ngcontent-%COMP%] .help-icon[_ngcontent-%COMP%]{margin-left:4px;opacity:.6;cursor:help}"],changeDetection:0})}}return t})();function P2e(t,n){1&t&&(h(0,"span"),p(1,", "),u())}function I2e(t,n){if(1&t&&(h(0,"span")(1,"span",11),p(2),u(),p(3,": "),h(4,"span",6),p(5),u(),x(6,P2e,2,0,"span"),u()),2&t){const e=n.$implicit,i=n.$index,o=n.$count;d(2),M(e.type),d(3),M(e.count),d(),S(i!==o-1?6:-1)}}function O2e(t,n){if(1&t&&(p(0," ("),ve(1,I2e,7,3,"span",null,Fe),p(3,") ")),2&t){const e=v(2);d(),ye(e.transportStats.byType)}}function A2e(t,n){if(1&t){const e=oe();h(0,"div",0)(1,"div",1)(2,"span",2),p(3),b(4,"translate"),u(),h(5,"span",3)(6,"span",4),p(7),b(8,"translate"),u(),h(9,"span",5)(10,"span",6),p(11),u(),x(12,O2e,4,0),u()(),h(13,"span",7)(14,"span",4),p(15),b(16,"translate"),u(),h(17,"mat-slide-toggle",8),F("change",function(){return j(e),U(v().changeTransportsConfig())}),u(),h(18,"mat-icon",9),b(19,"translate"),p(20,"info"),u()(),h(21,"span",7)(22,"span",4),p(23),b(24,"translate"),u(),h(25,"mat-slide-toggle",8),F("change",function(){return j(e),U(v().changePublicConfig())}),u(),h(26,"mat-icon",9),b(27,"translate"),p(28,"info"),u()()()(),B(29,"app-transport-list",10)}if(2&t){const e=v();d(3),M(y(4,14,"node.details.transports-info.title")),d(4),E("",y(8,16,"node.details.transports-info.total")," "),d(4),M(e.transportStats.total),d(),S(e.transportStats.byType.length>0?12:-1),d(3),M(y(16,18,"node.details.transports-info.autoconnect")),d(2),C("checked",!!e.node.autoconnectTransports),d(),C("inline",!0)("matTooltip",y(19,20,"node.details.transports-info.autoconnect-info")),d(5),M(y(24,22,"node.details.transports-info.is-public")),d(2),C("checked",!!e.isPublic),d(),C("inline",!0)("matTooltip",y(27,24,"node.details.transports-info.is-public-info")),d(3),C("node",e.node)("showShortList",!1)}}let R2e=(()=>{class t extends pn{constructor(e,i,o){super(),this.apiService=e,this.transportService=i,this.snackbarService=o,this.transportStats={total:0,byType:[]},this.isPublic=!1}ngOnInit(){return this.dataSubscription=ke.currentNode.subscribe(e=>{this.node=e,this.transportStats=this.computeTransportStats(e),e&&this.fetchPublicStatus(e.localPk)}),super.ngOnInit()}ngOnDestroy(){this.dataSubscription?.unsubscribe(),this.autoconnectSubscription?.unsubscribe(),this.publicToggleSubscription?.unsubscribe()}computeTransportStats(e){if(!e||!e.transports)return{total:0,byType:[]};const i={};for(const r of e.transports)i[r.type]=(i[r.type]||0)+1;const o=Object.entries(i).map(([r,s])=>({type:r,count:s})).sort((r,s)=>s.count-r.count);return{total:e.transports.length,byType:o}}fetchPublicStatus(e){this.apiService.get(`visors/${e}/public`).subscribe(i=>{this.isPublic=!(!i||!0!==i.is_public)},()=>{this.isPublic=!1})}changeTransportsConfig(){if(!this.node)return;const e=!this.node.autoconnectTransports;this.autoconnectSubscription=this.transportService.changeAutoconnectSetting(this.node.localPk,e).subscribe(()=>{this.snackbarService.showDone(e?"node.details.transports-info.enable-done":"node.details.transports-info.disable-done"),ke.refreshCurrentDisplayedData()},i=>{i=Qe(i),this.snackbarService.showError(i)})}changePublicConfig(){if(!this.node)return;const e=!this.isPublic;this.publicToggleSubscription=this.apiService.put(`visors/${this.node.localPk}/public`,{is_public:e}).subscribe(()=>{this.isPublic=e,this.snackbarService.showDone(e?"node.details.transports-info.public-enable-done":"node.details.transports-info.public-disable-done")},i=>{i=Qe(i),this.snackbarService.showError(i)})}static{this.\u0275fac=function(i){return new(i||t)(O(zi),O(l6),O(ct))}}static{this.\u0275cmp=re({type:t,selectors:[["app-all-transports"]],standalone:!1,features:[be],decls:1,vars:1,consts:[[1,"rounded-elevated-box","mt-3"],[1,"box-internal-container","overflow","font-smaller"],[1,"section-title"],[1,"info-line"],[1,"title"],[1,"transport-stats"],[1,"transport-count"],[1,"info-line","toggle-line"],["color","primary",3,"change","checked"],[1,"info-tip",3,"inline","matTooltip"],[3,"node","showShortList"],[1,"transport-type"]],template:function(i,o){1&i&&x(0,A2e,30,26),2&i&&S(o.node?0:-1)},dependencies:[We,Kt,d6,E2e,xe],encapsulation:2})}}return t})();const F2e=(t,n)=>n.date;function N2e(t,n){1&t&&(h(0,"a",23)(1,"mat-icon",24),b(2,"translate"),p(3," open_in_browser "),u()()),2&t&&(C("href","https://explorer.skycoin.com/app/address/"+v(2).rewardsAddress,mo),d(),C("inline",!0)("matTooltip",y(2,3,"node.details.rewards-info.open-in-explorer")))}function L2e(t,n){if(1&t&&(B(0,"app-copy-to-clipboard-text",22),x(1,N2e,4,5,"a",23)),2&t){const e=v();C("text",Qt(e.rewardsAddress)),d(),S(e.rewardsAddressIsXpub?-1:1)}}function B2e(t,n){1&t&&(p(0),b(1,"translate"),h(2,"mat-icon",25),b(3,"translate"),p(4,"info"),u()),2&t&&(E(" ",y(1,3,"node.details.rewards-info.not-registered")," "),d(2),C("inline",!0)("matTooltip",y(3,5,"node.details.rewards-info.not-registered-info")))}function V2e(t,n){if(1&t){const e=oe();h(0,"form",26),F("ngSubmit",function(){return j(e),U(v().submitRewardAddress())}),h(1,"mat-form-field",27)(2,"mat-label"),p(3),b(4,"translate"),u(),B(5,"input",28),u(),h(6,"div",29)(7,"button",30),p(8),b(9,"translate"),u(),h(10,"button",31),F("click",function(){return j(e),U(v().toggleRewardForm())}),p(11),b(12,"translate"),u()()()}if(2&t){const e=v();C("formGroup",e.rewardForm),d(3),M(y(4,5,"node.details.rewards-info.rewards-address")),d(4),C("disabled",!e.rewardForm.valid),d(),E(" ",y(9,7,"common.save")," "),d(3),E(" ",y(12,9,"common.cancel")," ")}}function H2e(t,n){if(1&t&&(h(0,"pre",9),p(1),b(2,"translate"),u()),2&t){const e=v();d(),M(e.rewardRules||y(2,1,"common.loading"))}}function j2e(t,n){if(1&t&&(h(0,"span",11),p(1),u()),2&t){const e=v();d(),E("(",e.label,")")}}function U2e(t,n){if(1&t&&(h(0,"div",17)(1,"span",32),p(2),u(),h(3,"span",33),p(4),u()()),2&t){const e=v();d(2),E(" Total: ",e.total.toFixed(2)," SKY "),d(2),E(" (",e.days," days) ")}}function z2e(t,n){1&t&&(h(0,"div",18),B(1,"mat-spinner",34),u())}function $2e(t,n){if(1&t&&(h(0,"div",19),p(1),u()),2&t){const e=v();d(),M(e.errorMsg)}}function W2e(t,n){1&t&&p(0),2&t&&E(" ",v().$implicit.amount.toFixed(6)," ")}function G2e(t,n){1&t&&(h(0,"span",36),p(1,"-"),u())}function q2e(t,n){1&t&&p(0),2&t&&E(" ",v().$implicit.share.toFixed(4),"% ")}function K2e(t,n){1&t&&(h(0,"span",36),p(1,"-"),u())}function Y2e(t,n){if(1&t&&(h(0,"a",37),p(1),u()),2&t){const e=v().$implicit;C("href","https://explorer.skycoin.com/app/transaction/"+e.txid,mo),d(),E(" ",e.txid.substring(0,12),"... ")}}function X2e(t,n){1&t&&(h(0,"span",36),p(1,"-"),u())}function Z2e(t,n){if(1&t&&(h(0,"tr")(1,"td"),p(2),u(),h(3,"td"),x(4,W2e,1,1)(5,G2e,2,0,"span",36),u(),h(6,"td"),x(7,q2e,1,1)(8,K2e,2,0,"span",36),u(),h(9,"td")(10,"span"),p(11),u()(),h(12,"td"),x(13,Y2e,2,2,"a",37)(14,X2e,2,0,"span",36),u()()),2&t){const e=n.$implicit,i=v(2);Ze(i.statusClass(e)),d(2),M(i.formatDate(e.date)),d(2),S(e.amount>0?4:5),d(3),S(e.share>0?7:8),d(3),Ze("status-badge "+i.statusClass(e)),d(),M(i.statusText(e)),d(2),S(e.txid?13:14)}}function Q2e(t,n){if(1&t&&(h(0,"table",20)(1,"tr")(2,"th"),p(3,"Date"),u(),h(4,"th"),p(5,"Amount (SKY)"),u(),h(6,"th"),p(7,"Share (%)"),u(),h(8,"th"),p(9,"Status"),u(),h(10,"th"),p(11,"Transaction"),u()(),ve(12,Z2e,15,9,"tr",35,F2e),u()),2&t){const e=v();d(12),ye(e.history)}}function J2e(t,n){1&t&&(h(0,"div",21),p(1," No reward data available for this visor. "),u())}let eEe=(()=>{class t{constructor(e,i,o,r,s,a,l){this.http=e,this.route=i,this.nodeComponent=o,this.storageService=r,this.nodeService=s,this.snackbarService=a,this.formBuilder=l,this.pk="",this.label="",this.rewardsAddress="",this.history=[],this.loading=!1,this.days=30,this.total=0,this.errorMsg="",this.showRewardForm=!1,this.showRewardRules=!1,this.rewardRules=null,this.rewardForm=this.formBuilder.group({address:["",Ne.compose([Ne.minLength(20),Ne.maxLength(112)])]})}ngOnInit(){this.pk=this.nodeComponent.node?.localPk||this.route.snapshot.parent?.paramMap.get("key")||"";const e=this.storageService.getLabelInfo(this.pk);this.label=e?.label||"",this.nodeSub=ke.currentNode.subscribe(i=>{this.rewardsAddress=i?.rewardsAddress||""}),this.loadHistory()}ngOnDestroy(){this.nodeSub?.unsubscribe(),this.dataSub?.unsubscribe(),this.saveRewardsSubscription?.unsubscribe(),this.rewardRulesSubscription?.unsubscribe()}loadHistory(){this.pk&&(this.loading=!0,this.errorMsg="",this.dataSub=this.http.get(`/api/rewards/skycoin-rewards/visor/${this.pk}?days=${this.days}`).pipe(Ui(e=>(this.errorMsg="Failed to load reward data",ae({history:[]})))).subscribe(e=>{this.history=e?.history||[],this.total=this.history.reduce((i,o)=>i+(o.amount||0),0),this.loading=!1}))}changeDays(e){this.days=e,this.loadHistory()}formatDate(e){return new Date(e+"T00:00:00").toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}statusClass(e){return e.amount&&0!==e.amount?e.sent?"sent":"pending":"no-reward"}statusText(e){return e.amount&&0!==e.amount?e.sent?"Sent":"Pending":"No reward"}get rewardsAddressIsXpub(){return!!this.rewardsAddress&&this.rewardsAddress.startsWith("xpub")}toggleRewardForm(){this.showRewardForm=!this.showRewardForm,this.showRewardForm&&this.rewardForm.get("address").setValue(this.rewardsAddress||"")}submitRewardAddress(){if(!this.rewardForm.valid)return;const e=(this.rewardForm.get("address").value||"").trim(),i=e?this.nodeService.setRewardsAddress(this.pk,e):this.nodeService.deleteRewardsAddress(this.pk);this.saveRewardsSubscription=i.subscribe({next:()=>{this.snackbarService.showDone("rewards-address-config.done"),this.showRewardForm=!1,ke.refreshCurrentDisplayedData()},error:o=>{o=Qe(o),this.snackbarService.showError(o)}})}toggleRewardRules(){this.showRewardRules=!this.showRewardRules,this.showRewardRules&&null===this.rewardRules&&(this.rewardRulesSubscription=this.nodeService.getRewardRules().subscribe(e=>{this.rewardRules=e||""},()=>{this.rewardRules="",this.snackbarService.showError("common.loading-error")}))}static{this.\u0275fac=function(i){return new(i||t)(O(ba),O(Ai),O(ke),O(ti),O(Io),O(ct),O(di))}}static{this.\u0275cmp=re({type:t,selectors:[["app-node-rewards"]],standalone:!1,decls:46,vars:33,consts:[[1,"rounded-elevated-box","mt-3"],[1,"box-internal-container","overflow"],[1,"section-title"],[1,"info-line"],[1,"title"],["mat-icon-button","",1,"inline-edit-btn",3,"click","matTooltip"],[3,"inline"],[1,"inline-form",3,"formGroup"],[1,"info-line","collapsible-link",3,"click"],[1,"reward-rules"],[1,"d-flex","justify-content-between","align-items-center","mb-3"],[1,"label-text","ml-2"],[1,"d-flex","align-items-center"],[1,"mr-2",2,"font-size","0.85em","color","#ccc"],["mat-button","",3,"click"],[1,"pk-row","mb-3"],[2,"font-size","0.75em","color","#999"],[1,"total-row","mb-3"],[1,"d-flex","justify-content-center","py-4"],[1,"error-msg","py-2"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid"],[1,"py-4","text-center",2,"color","#999"],[1,"text-with-right-margin",3,"text"],["target","_blank","rel","noreferrer nofollow noopener",3,"href"],[1,"link-icon","transparent-button",3,"inline","matTooltip"],[3,"inline","matTooltip"],[1,"inline-form",3,"ngSubmit","formGroup"],["appearance","outline",1,"inline-form-field"],["matInput","","formControlName","address","maxlength","112","placeholder","2\u2026"],[1,"inline-form-actions"],["mat-raised-button","","color","primary","type","submit",3,"disabled"],["mat-button","","type","button",3,"click"],[2,"font-size","1.1em","font-weight","bold","color","#4caf50"],[2,"font-size","0.85em","color","#999","margin-left","12px"],["diameter","30"],[3,"class"],[2,"color","#666"],["target","_blank","rel","noopener",2,"font-size","0.8em","color","#3399ff",3,"href"]],template:function(i,o){1&i&&(h(0,"div",0)(1,"div",1)(2,"span",2),p(3),b(4,"translate"),u(),h(5,"span",3)(6,"span",4),p(7),b(8,"translate"),u(),x(9,L2e,2,3),x(10,B2e,5,7),h(11,"button",5),b(12,"translate"),F("click",function(){return o.toggleRewardForm()}),h(13,"mat-icon",6),p(14),u()()(),x(15,V2e,13,11,"form",7),h(16,"span",8),F("click",function(){return o.toggleRewardRules()}),h(17,"mat-icon",6),p(18),u(),p(19),b(20,"translate"),u(),x(21,H2e,3,3,"pre",9),u()(),h(22,"div",0)(23,"div",1)(24,"div",10)(25,"div")(26,"span",4),p(27,"Reward History"),u(),x(28,j2e,2,1,"span",11),u(),h(29,"div",12)(30,"span",13),p(31,"Show:"),u(),h(32,"button",14),F("click",function(){return o.changeDays(7)}),p(33,"7d"),u(),h(34,"button",14),F("click",function(){return o.changeDays(30)}),p(35,"30d"),u(),h(36,"button",14),F("click",function(){return o.changeDays(90)}),p(37,"90d"),u()()(),h(38,"div",15)(39,"span",16),p(40),u()(),x(41,U2e,5,2,"div",17),x(42,z2e,2,0,"div",18),x(43,$2e,2,1,"div",19),x(44,Q2e,14,0,"table",20),x(45,J2e,2,0,"div",21),u()()),2&i&&(d(3),M(y(4,25,"node.details.rewards-info.title")),d(4),E("",y(8,27,"node.details.rewards-info.rewards-address")," "),d(2),S(o.rewardsAddress?9:-1),d(),S(o.rewardsAddress?-1:10),d(),C("matTooltip",y(12,29,o.rewardsAddress?"node.details.rewards-info.change-address-button":"node.details.rewards-info.set-address-button")),d(2),C("inline",!0),d(),M(o.showRewardForm?"close":"edit"),d(),S(o.showRewardForm?15:-1),d(2),C("inline",!0),d(),M(o.showRewardRules?"expand_more":"chevron_right"),d(),E(" ",y(20,31,"node.details.rewards-info.show-rules")," "),d(2),S(o.showRewardRules?21:-1),d(7),S(o.label?28:-1),d(4),Ie("active-days",7===o.days),d(2),Ie("active-days",30===o.days),d(2),Ie("active-days",90===o.days),d(4),M(o.pk),d(),S(!o.loading&&o.history.length>0?41:-1),d(),S(o.loading?42:-1),d(),S(o.errorMsg?43:-1),d(),S(!o.loading&&o.history.length>0?44:-1),d(),S(o.loading||0!==o.history.length||o.errorMsg?-1:45))},dependencies:[xn,Gt,qt,wn,wi,on,mn,sn,Os,In,Pn,Wo,We,Kt,so,op,xe],styles:[".title[_ngcontent-%COMP%]{font-size:1.1em;font-weight:700;color:#f8f9f9}.label-text[_ngcontent-%COMP%]{font-size:.9em;color:#aaa}.active-days[_ngcontent-%COMP%]{color:#4caf50!important;font-weight:700}.total-row[_ngcontent-%COMP%]{padding:8px 0;border-bottom:1px solid rgba(255,255,255,.1)}.error-msg[_ngcontent-%COMP%]{color:#f44336;text-align:center}.status-badge[_ngcontent-%COMP%]{padding:2px 8px;border-radius:4px;font-size:.8em}.status-badge.sent[_ngcontent-%COMP%]{background:#4caf5033;color:#4caf50}.status-badge.pending[_ngcontent-%COMP%]{background:#ffc10733;color:#ffc107}.status-badge.no-reward[_ngcontent-%COMP%]{color:#666}tr.sent[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border-left:2px solid rgba(76,175,80,.3)}tr.pending[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border-left:2px solid rgba(255,193,7,.3)}"]})}}return t})();function Mc(t=0,n=Pf){return t<0&&(t=0),xa(t,t,n)}let tEe=(()=>{class t{constructor(e){this.apiService=e}get(){return this.apiService.get("service-health")}static{this.\u0275fac=function(i){return new(i||t)(ce(zi))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const nEe=()=>["nodes.services-health-title"],iEe=(t,n)=>n.reason;function oEe(t,n){1&t&&(h(0,"div",4),B(1,"mat-spinner",10),h(2,"span",11),p(3),b(4,"translate"),u()()),2&t&&(d(),C("diameter",16),d(2),M(y(4,2,"services-health.loading")))}function rEe(t,n){if(1&t&&(h(0,"div",5)(1,"mat-icon"),p(2,"error_outline"),u(),h(3,"span",11),p(4),u()()),2&t){const e=v();d(4),M(e.error)}}function sEe(t,n){1&t&&(h(0,"mat-icon",18),p(1,"warning"),u(),h(2,"span"),p(3),b(4,"translate"),u()),2&t&&(d(3),M(y(4,1,"services-health.degraded")))}function aEe(t,n){1&t&&(h(0,"mat-icon",19),p(1,"check_circle"),u(),h(2,"span"),p(3),b(4,"translate"),u()),2&t&&(d(3),M(y(4,1,"services-health.all-ok")))}function lEe(t,n){if(1&t&&(h(0,"span",13),p(1),b(2,"translate"),b(3,"date"),u()),2&t){const e=v(2);d(),gt(" \u2014 ",y(2,2,"services-health.last-updated"),": ",pe(3,4,e.lastUpdated,"HH:mm:ss")," ")}}function cEe(t,n){if(1&t&&(h(0,"code"),p(1),u()),2&t){const e=v().$implicit;d(),M(e.version)}}function dEe(t,n){1&t&&(h(0,"span",8),p(1,"\u2014"),u())}function uEe(t,n){if(1&t&&(h(0,"tr")(1,"td"),B(2,"span"),u(),h(3,"td")(4,"strong"),p(5),u()(),h(6,"td"),p(7),u(),h(8,"td"),p(9),u(),h(10,"td"),x(11,cEe,2,1,"code")(12,dEe,2,0,"span",8),u(),h(13,"td")(14,"code",8),p(15),u()()()),2&t){const e=n.$implicit,i=v(2);d(2),Ze(i.statusClass(e)),d(3),M(e.name),d(2),E(" ",e.status," "),d(),Ze(i.latencyClass(e)),d(),E(" ",e.latency_ms,"\xa0ms "),d(2),S(e.version?11:12),d(4),M(i.shortUrl(e.url))}}function hEe(t,n){if(1&t&&(h(0,"div",22)(1,"span",8),p(2),b(3,"translate"),u(),h(4,"code"),p(5),u()()),2&t){const e=v().$implicit;d(2),E("",y(3,2,"services-health.version"),":"),d(3),M(e.version)}}function fEe(t,n){if(1&t&&(h(0,"div",23),p(1),u()),2&t){const e=v().$implicit;d(),M(e.error)}}function pEe(t,n){if(1&t&&(h(0,"div",17)(1,"div",20),B(2,"span"),h(3,"strong",11),p(4),u(),h(5,"span",21),p(6),u()(),h(7,"div",22)(8,"span",8),p(9),b(10,"translate"),u(),p(11),u(),x(12,hEe,6,4,"div",22),h(13,"div",22)(14,"span",8),p(15),b(16,"translate"),u(),h(17,"code",8),p(18),u()(),x(19,fEe,2,1,"div",23),u()),2&t){const e=n.$implicit,i=v(2);d(2),Ze(i.statusClass(e)),d(2),M(e.name),d(),Ze(i.latencyClass(e)),d(),E("",e.latency_ms,"\xa0ms"),d(3),E("",y(10,12,"services-health.status"),":"),d(2),E(" ",e.status," "),d(),S(e.version?12:-1),d(3),E("",y(16,14,"services-health.endpoint"),":"),d(3),M(i.shortUrl(e.url)),d(),S(e.error?19:-1)}}function mEe(t,n){if(1&t&&(h(0,"div",12),x(1,sEe,5,3)(2,aEe,5,3),x(3,lEe,4,7,"span",13),u(),h(4,"table",14)(5,"tr"),B(6,"th",15),h(7,"th"),p(8),b(9,"translate"),u(),h(10,"th"),p(11),b(12,"translate"),u(),h(13,"th"),p(14),b(15,"translate"),u(),h(16,"th"),p(17),b(18,"translate"),u(),h(19,"th"),p(20),b(21,"translate"),u()(),ve(22,uEe,16,9,"tr",null,Br().trackByName,!0),u(),h(24,"div",16),ve(25,pEe,20,16,"div",17,Br().trackByName,!0),u()),2&t){const e=v();d(),S(e.anyDown()?1:2),d(2),S(e.lastUpdated?3:-1),d(5),M(y(9,7,"services-health.service")),d(3),M(y(12,9,"services-health.status")),d(3),M(y(15,11,"services-health.latency")),d(3),M(y(18,13,"services-health.version")),d(3),M(y(21,15,"services-health.endpoint")),d(2),ye(e.entries),d(3),ye(e.entries)}}function gEe(t,n){1&t&&(h(0,"div",4),B(1,"mat-spinner",10),h(2,"span",11),p(3,"\u2026"),u()()),2&t&&(d(),C("diameter",14))}function _Ee(t,n){1&t&&(h(0,"div",8),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"services-health.rsn-empty")))}function bEe(t,n){if(1&t&&(h(0,"span",28),p(1),b(2,"number"),u()),2&t){const e=v().$implicit;Ze(v().successClass(e.snapshot)),d(),E(" ",pe(2,3,e.snapshot.success_rate_pct,"1.0-1"),"% ")}}function vEe(t,n){if(1&t&&(h(0,"div",23),p(1),b(2,"translate"),u()),2&t){const e=v().$implicit;d(),gt("",y(2,2,"services-health.rsn-error"),": ",e.error)}}function yEe(t,n){if(1&t&&(h(0,"div")(1,"span",8),p(2),b(3,"translate"),u(),h(4,"span"),p(5),b(6,"date"),u()()),2&t){const e=v(2).$implicit;d(2),E("",y(3,2,"services-health.rsn-last-success"),":"),d(3),M(pe(6,4,e.snapshot.last_success_at,"HH:mm:ss"))}}function CEe(t,n){if(1&t&&(h(0,"div")(1,"span",8),p(2),b(3,"translate"),u(),h(4,"span"),p(5),b(6,"date"),u()()),2&t){const e=v(2).$implicit;d(2),E("",y(3,2,"services-health.rsn-last-failure"),":"),d(3),M(pe(6,4,e.snapshot.last_failure_at,"HH:mm:ss"))}}function wEe(t,n){if(1&t&&(h(0,"span",31),p(1),u()),2&t){const e=n.$implicit;d(),gt("",e.reason," (",e.count,")")}}function xEe(t,n){if(1&t&&(h(0,"div",30)(1,"span",8),p(2),b(3,"translate"),u(),ve(4,wEe,2,2,"span",31,iEe),u()),2&t){const e=v(2).$implicit,i=v();d(2),E("",y(3,1,"services-health.rsn-failure-reasons"),":"),d(2),ye(i.topFailureReasons(e.snapshot))}}function SEe(t,n){if(1&t&&(h(0,"div",29)(1,"div")(2,"span",8),p(3),b(4,"translate"),u(),h(5,"strong"),p(6),u()(),h(7,"div")(8,"span",8),p(9),b(10,"translate"),u(),h(11,"strong"),p(12),u()(),h(13,"div")(14,"span",8),p(15),b(16,"translate"),u(),h(17,"strong"),p(18),u()(),h(19,"div")(20,"span",8),p(21),b(22,"translate"),u(),h(23,"strong"),p(24),u()(),h(25,"div")(26,"span",8),p(27),b(28,"translate"),u(),h(29,"strong"),p(30),u()(),h(31,"div")(32,"span",8),p(33),b(34,"translate"),u(),h(35,"strong"),p(36),u()(),x(37,yEe,7,7,"div"),x(38,CEe,7,7,"div"),u(),x(39,xEe,6,3,"div",30)),2&t){const e=v().$implicit,i=v();d(3),E("",y(4,15,"services-health.rsn-success"),":"),d(3),M(e.snapshot.successful||0),d(3),E("",y(10,17,"services-health.rsn-failed"),":"),d(3),M(e.snapshot.failed||0),d(3),E("",y(16,19,"services-health.rsn-active"),":"),d(3),M(e.snapshot.active_requests||0),d(3),E("",y(22,21,"services-health.rsn-latency-p50"),":"),d(3),E("",(null==e.snapshot.latency_ms?null:e.snapshot.latency_ms.p50_ms)||0," ms"),d(3),E("",y(28,23,"services-health.rsn-latency-p95"),":"),d(3),E("",(null==e.snapshot.latency_ms?null:e.snapshot.latency_ms.p95_ms)||0," ms"),d(3),E("",y(34,25,"services-health.rsn-latency-p99"),":"),d(3),E("",(null==e.snapshot.latency_ms?null:e.snapshot.latency_ms.p99_ms)||0," ms"),d(),S(e.snapshot.last_success_at?37:-1),d(),S(e.snapshot.last_failure_at?38:-1),d(),S(i.topFailureReasons(e.snapshot).length>0?39:-1)}}function kEe(t,n){if(1&t&&(h(0,"div",9)(1,"div",24),B(2,"span",25),h(3,"code",26),p(4),u(),x(5,bEe,3,6,"span",27),u(),x(6,vEe,3,4,"div",23),x(7,SEe,40,27),u()),2&t){const e=n.$implicit;d(2),C("ngClass",e.snapshot?"dot-green":"dot-red"),d(2),M(e.pk),d(),S(e.snapshot?5:-1),d(),S(e.error?6:-1),d(),S(e.snapshot?7:-1)}}let DEe=(()=>{class t extends pn{constructor(e,i){super(),this.healthSvc=e,this.api=i,this.tabsData=[],this.entries=[],this.loading=!0,this.error=null,this.lastUpdated=null,this.rsnStats=[],this.rsnLoading=!0,this.tabsData=[{icon:"view_headline",label:"nodes.title",linkParts:["/nodes"],group:"local"},{icon:"monetization_on",label:"nodes.rewards-title",linkParts:["/nodes","rewards"],group:"local"},{icon:"memory",label:"nodes.resources-title",linkParts:["/nodes","resources"],group:"local"},{icon:"swap_horiz",label:"nodes.transports-title",linkParts:["/nodes","transports"],group:"network"},{icon:"public",label:"nodes.network-title",linkParts:["/nodes","network"],group:"network"},{icon:"bubble_chart",label:"node.details.tpviz.title",linkParts:[],externalUrl:"/tp-viz/",group:"network"},{icon:"check_circle",label:"nodes.services-health-title",linkParts:["/nodes","services-health"],group:"network"},{icon:"settings",label:"settings.title",linkParts:["/settings"]}]}ngOnInit(){return this.sub=Mc(15e3).pipe(si(0),tn(()=>this.healthSvc.get())).subscribe({next:e=>{this.entries=e||[],this.loading=!1,this.error=null,this.lastUpdated=new Date},error:e=>{this.loading=!1,this.error=e?.message||"Failed to fetch services health"}}),this.rsnSub=Mc(3e4).pipe(si(0),tn(()=>this.api.get("route-setup-nodes/stats"))).subscribe({next:e=>{this.rsnStats=Array.isArray(e)?e:[],this.rsnLoading=!1},error:()=>{this.rsnLoading=!1}}),super.ngOnInit()}ngOnDestroy(){this.sub?.unsubscribe(),this.rsnSub?.unsubscribe()}topFailureReasons(e){return e?.failures_by_reason?Object.entries(e.failures_by_reason).map(([i,o])=>({reason:i,count:o})).filter(i=>i.count>0).sort((i,o)=>o.count-i.count).slice(0,3):[]}successClass(e){const i=e?.success_rate_pct??0;return i>=90?"latency-fast":i>=70?"latency-medium":"latency-slow"}trackRSN(e,i){return i.pk}statusClass(e){const i=(e?.status||"").toUpperCase();return"OK"===i?"dot-green":"DOWN"===i?"dot-red":"dot-outline-gray"}anyDown(){return this.entries.some(e=>"OK"!==(e?.status||"").toUpperCase())}latencyClass(e){const i=e?.latency_ms??0;return i<500?"latency-fast":i<2e3?"latency-medium":"latency-slow"}shortUrl(e){if(!e)return"";try{return new URL(e).host}catch{return e}}trackByName(e,i){return i.name}static{this.\u0275fac=function(i){return new(i||t)(O(tEe),O(zi))}}static{this.\u0275cmp=re({type:t,selectors:[["app-services-health"]],standalone:!1,features:[be],decls:15,vars:13,consts:[[1,"row"],[1,"col-12"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton"],[1,"content","col-12","mt-4.5"],[1,"loading-row"],[1,"error-row"],[1,"rsn-section","mt-4"],[1,"rsn-title"],[1,"dim"],[1,"rsn-card"],[3,"diameter"],[1,"ml-2"],[1,"summary-line"],[1,"last-updated"],[1,"responsive-table-translucid","d-none","d-md-table","mt-3"],[1,"small-column"],[1,"d-md-none","mt-3"],[1,"mobile-card"],[1,"warn"],[1,"ok"],[1,"mobile-header"],[1,"ml-auto"],[1,"mobile-row"],[1,"error-detail"],[1,"rsn-card-header"],[1,"dot",3,"ngClass"],[1,"rsn-pk","mono","small"],[1,"rsn-rate",3,"class"],[1,"rsn-rate"],[1,"rsn-grid"],[1,"rsn-failures"],[1,"rsn-fail-pill"]],template:function(i,o){1&i&&(h(0,"div",0)(1,"div",1),B(2,"app-top-bar",2),u(),h(3,"div",3),x(4,oEe,5,4,"div",4),x(5,rEe,5,1,"div",5),x(6,mEe,27,17),h(7,"div",6)(8,"h3",7),p(9),b(10,"translate"),u(),x(11,gEe,4,1,"div",4),x(12,_Ee,3,3,"div",8),ve(13,kEe,8,5,"div",9,o.trackRSN,!0),u()()()),2&i&&(d(2),C("titleParts",Ct(12,nEe))("tabsData",o.tabsData)("selectedTabIndex",6)("showUpdateButton",!1),d(2),S(o.loading&&0===o.entries.length?4:-1),d(),S(o.error&&0===o.entries.length?5:-1),d(),S(o.entries.length>0?6:-1),d(3),M(y(10,10,"services-health.rsn-section")),d(2),S(o.rsnLoading&&0===o.rsnStats.length?11:-1),d(),S(o.rsnLoading||0!==o.rsnStats.length?-1:12),d(),ye(o.rsnStats))},dependencies:[$t,We,so,Mr,Vl,fa,xe],styles:[".loading-row[_ngcontent-%COMP%]{display:flex;align-items:center;color:#ffffffbf;padding:24px 0}.error-row[_ngcontent-%COMP%]{display:flex;align-items:center;color:#f87171;padding:24px 0}.summary-line[_ngcontent-%COMP%]{display:flex;align-items:center;color:#ffffffe6;font-size:.95em}.summary-line[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:20px;width:20px;height:20px;margin-right:6px}.summary-line[_ngcontent-%COMP%] mat-icon.ok[_ngcontent-%COMP%]{color:#4ade80}.summary-line[_ngcontent-%COMP%] mat-icon.warn[_ngcontent-%COMP%]{color:#fbbf24}.summary-line[_ngcontent-%COMP%] .last-updated[_ngcontent-%COMP%]{color:#ffffff8c;font-size:.85em;margin-left:8px}.small-column[_ngcontent-%COMP%]{width:24px}.dim[_ngcontent-%COMP%]{color:#ffffff8c}.latency-fast[_ngcontent-%COMP%]{color:#4ade80}.latency-medium[_ngcontent-%COMP%]{color:#fbbf24}.latency-slow[_ngcontent-%COMP%]{color:#f87171}.error-detail[_ngcontent-%COMP%]{color:#f87171;font-size:.8em;margin-top:4px}.mobile-card[_ngcontent-%COMP%]{background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:6px;padding:12px;margin-bottom:10px}.mobile-card[_ngcontent-%COMP%] .mobile-header[_ngcontent-%COMP%]{display:flex;align-items:center;margin-bottom:8px;font-size:1em}.mobile-card[_ngcontent-%COMP%] .mobile-row[_ngcontent-%COMP%]{font-size:.85em;color:#ffffffd9;padding:2px 0}.mobile-card[_ngcontent-%COMP%] .mobile-row[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{color:#ffffffd9}code[_ngcontent-%COMP%]{font-family:monospace;font-size:.9em}.rsn-section[_ngcontent-%COMP%] .rsn-title[_ngcontent-%COMP%]{font-size:1em;font-weight:600;color:#fffffff2;margin:0 0 10px}.rsn-section[_ngcontent-%COMP%] .rsn-card[_ngcontent-%COMP%]{background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:6px;padding:10px 14px;margin-bottom:10px}.rsn-section[_ngcontent-%COMP%] .rsn-card-header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}.rsn-section[_ngcontent-%COMP%] .rsn-card-header[_ngcontent-%COMP%] .dot[_ngcontent-%COMP%]{width:8px;height:8px;border-radius:50%;display:inline-block}.rsn-section[_ngcontent-%COMP%] .rsn-card-header[_ngcontent-%COMP%] .dot-green[_ngcontent-%COMP%]{background:#4caf50}.rsn-section[_ngcontent-%COMP%] .rsn-card-header[_ngcontent-%COMP%] .dot-red[_ngcontent-%COMP%]{background:#f44336}.rsn-section[_ngcontent-%COMP%] .rsn-card-header[_ngcontent-%COMP%] .rsn-pk[_ngcontent-%COMP%]{font-family:monospace;font-size:11px;color:#ffffffb3;word-break:break-all;flex:1 1 auto;min-width:0}.rsn-section[_ngcontent-%COMP%] .rsn-card-header[_ngcontent-%COMP%] .rsn-rate[_ngcontent-%COMP%]{font-weight:600;font-size:13px}.rsn-section[_ngcontent-%COMP%] .rsn-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:6px 16px;font-size:12px}.rsn-section[_ngcontent-%COMP%] .rsn-grid[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{margin-left:6px;color:#fffffff2}.rsn-section[_ngcontent-%COMP%] .rsn-failures[_ngcontent-%COMP%]{margin-top:8px;font-size:11px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.rsn-section[_ngcontent-%COMP%] .rsn-failures[_ngcontent-%COMP%] .rsn-fail-pill[_ngcontent-%COMP%]{background:#e5393526;border:1px solid rgba(229,57,53,.35);color:#ffc8c8f2;padding:1px 6px;border-radius:3px}"]})}}return t})();const MEe=()=>["nodes.network-title"],h6=(t,n)=>n.pk;function TEe(t,n){1&t&&(h(0,"div",4),B(1,"mat-spinner",7),h(2,"span",8),p(3),b(4,"translate"),u()()),2&t&&(d(),C("diameter",16),d(2),M(y(4,2,"network-view.loading")))}function EEe(t,n){if(1&t&&(h(0,"div",5)(1,"mat-icon"),p(2,"error_outline"),u(),h(3,"span",8),p(4),u()()),2&t){const e=v();d(4),M(e.error)}}function PEe(t,n){if(1&t&&(h(0,"div",15),p(1),b(2,"translate"),b(3,"date"),u()),2&t){const e=v(2);d(),gt(" ",y(2,2,"network-view.last-updated"),": ",pe(3,4,e.lastUpdated,"mediumTime")," ")}}function IEe(t,n){if(1&t&&(h(0,"tr",32)(1,"td",36),p(2),u(),h(3,"td"),p(4),u(),h(5,"td"),p(6),u(),h(7,"td"),p(8),u(),h(9,"td",31),p(10),u(),h(11,"td",31),p(12),u(),h(13,"td",31),p(14),u(),h(15,"td",31),p(16),u(),h(17,"td",31)(18,"strong"),p(19),u()(),h(20,"td"),p(21),u()()),2&t){const e=n.$implicit;C("ngClass",v(2).rowClass(e)),d(),C("matTooltip",e.pk),d(),M(e.pk),d(2),M(e.country||"-"),d(2),M(e.version||"-"),d(2),M(e.services||"-"),d(2),M(e.stcpr),d(2),M(e.sudph),d(2),M(e.dmsg),d(2),M(e.stcp),d(3),M(e.total),d(2),M(e.ut_status||"-")}}function OEe(t,n){if(1&t&&(h(0,"div",34)(1,"div",37),p(2),u(),h(3,"div",38),p(4),u(),h(5,"div",39),p(6),h(7,"strong"),p(8),u(),p(9),u()()),2&t){const e=n.$implicit;C("ngClass",v(2).rowClass(e)),d(),C("matTooltip",e.pk),d(),M(e.pk),d(2),Uh(" ",e.country||"-"," \xb7 ",e.version||"-"," \xb7 ",e.services||"-"," "),d(2),Xg(" stcpr ",e.stcpr," \xb7 sudph ",e.sudph," \xb7 dmsg ",e.dmsg," \xb7 stcp ",e.stcp," \xb7 "),d(2),E("total ",e.total),d(),E(" \xb7 ",e.ut_status||"-"," ")}}function AEe(t,n){1&t&&(h(0,"p",35),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"network-view.empty")))}function REe(t,n){if(1&t){const e=oe();h(0,"div",6)(1,"div",9)(2,"div",10)(3,"div",11)(4,"span")(5,"strong"),p(6),u(),p(7," visors"),u(),B(8,"span",12),h(9,"span"),p(10),u(),B(11,"span",13),h(12,"span"),p(13),u(),B(14,"span",14),h(15,"span"),p(16),u()(),x(17,PEe,4,7,"div",15),h(18,"button",16),b(19,"translate"),F("click",function(){return j(e),U(v().refreshNow())}),h(20,"mat-icon",17),p(21,"refresh"),u()()(),h(22,"div",18)(23,"mat-form-field",19)(24,"mat-label"),p(25),b(26,"translate"),u(),h(27,"input",20),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.searchTerm,o)||(r.searchTerm=o),U(o)}),F("ngModelChange",function(){return j(e),U(v().applyFilters())}),u()(),h(28,"mat-form-field",21)(29,"mat-label"),p(30),b(31,"translate"),u(),h(32,"input",22),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.filterCountry,o)||(r.filterCountry=o),U(o)}),F("ngModelChange",function(){return j(e),U(v().applyFilters())}),u()(),h(33,"mat-form-field",21)(34,"mat-label"),p(35),b(36,"translate"),u(),h(37,"input",23),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.filterVersion,o)||(r.filterVersion=o),U(o)}),F("ngModelChange",function(){return j(e),U(v().applyFilters())}),u()(),h(38,"mat-form-field",21)(39,"mat-label"),p(40),b(41,"translate"),u(),h(42,"input",24),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.filterMinTransports,o)||(r.filterMinTransports=o),U(o)}),F("ngModelChange",function(){return j(e),U(v().applyFilters())}),u()(),h(43,"mat-checkbox",25),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.showOnlineOnly,o)||(r.showOnlineOnly=o),U(o)}),F("ngModelChange",function(){return j(e),U(v().applyFilters())}),p(44),b(45,"translate"),u()(),h(46,"div",26),B(47,"span",27),h(48,"span"),p(49),b(50,"translate"),u(),B(51,"span",28),h(52,"span"),p(53),b(54,"translate"),u(),B(55,"span",29),h(56,"span"),p(57),b(58,"translate"),u()(),h(59,"table",30)(60,"tr")(61,"th"),p(62),b(63,"translate"),u(),h(64,"th"),p(65),b(66,"translate"),u(),h(67,"th"),p(68),b(69,"translate"),u(),h(70,"th"),p(71),b(72,"translate"),u(),h(73,"th",31),p(74,"stcpr"),u(),h(75,"th",31),p(76,"sudph"),u(),h(77,"th",31),p(78,"dmsg"),u(),h(79,"th",31),p(80,"stcp"),u(),h(81,"th",31),p(82),b(83,"translate"),u(),h(84,"th"),p(85),b(86,"translate"),u()(),ve(87,IEe,22,12,"tr",32,h6),u(),h(89,"div",33),ve(90,OEe,10,12,"div",34,h6),u(),x(92,AEe,3,3,"p",35),u()()}if(2&t){const e=v();d(6),M(e.totals.all),d(4),E("",e.totals.online," online"),d(3),E("",e.totals.offline," offline"),d(3),E("",e.totals.notInUT," not in UT"),d(),S(e.lastUpdated?17:-1),d(),C("matTooltip",y(19,27,"network-view.refresh")),d(2),C("inline",!0),d(5),M(y(26,29,"network-view.search")),d(2),Ut("ngModel",e.searchTerm),d(3),M(y(31,31,"network-view.country")),d(2),Ut("ngModel",e.filterCountry),d(3),M(y(36,33,"network-view.version")),d(2),Ut("ngModel",e.filterVersion),d(3),M(y(41,35,"network-view.min-transports")),d(2),Ut("ngModel",e.filterMinTransports),d(),Ut("ngModel",e.showOnlineOnly),d(),E(" ",y(45,37,"network-view.online-only")," "),d(5),M(y(50,39,"network-view.legend.offline")),d(4),M(y(54,41,"network-view.legend.not-in-ut")),d(4),M(y(58,43,"network-view.legend.low-transports")),d(5),M(y(63,45,"network-view.col.pk")),d(3),M(y(66,47,"network-view.col.country")),d(3),M(y(69,49,"network-view.col.version")),d(3),M(y(72,51,"network-view.col.services")),d(11),M(y(83,53,"network-view.col.total")),d(3),M(y(86,55,"network-view.col.status")),d(2),ye(e.filteredEntries),d(3),ye(e.filteredEntries),d(2),S(0===e.filteredEntries.length?92:-1)}}let FEe=(()=>{class t extends pn{constructor(e){super(),this.nodeService=e,this.tabsData=[],this.entries=[],this.filteredEntries=[],this.loading=!0,this.error=null,this.lastUpdated=null,this.filterCountry="",this.filterVersion="",this.filterMinTransports=null,this.showOnlineOnly=!0,this.searchTerm="",this.tabsData=[{icon:"view_headline",label:"nodes.title",linkParts:["/nodes"],group:"local"},{icon:"monetization_on",label:"nodes.rewards-title",linkParts:["/nodes","rewards"],group:"local"},{icon:"memory",label:"nodes.resources-title",linkParts:["/nodes","resources"],group:"local"},{icon:"swap_horiz",label:"nodes.transports-title",linkParts:["/nodes","transports"],group:"network"},{icon:"public",label:"nodes.network-title",linkParts:["/nodes","network"],group:"network"},{icon:"bubble_chart",label:"node.details.tpviz.title",linkParts:[],externalUrl:"/tp-viz/",group:"network"},{icon:"check_circle",label:"nodes.services-health-title",linkParts:["/nodes","services-health"],group:"network"},{icon:"settings",label:"settings.title",linkParts:["/settings"]}]}ngOnInit(){return this.sub=Mc(3e5).pipe(si(0),tn(()=>this.nodeService.getNetworkView())).subscribe({next:e=>this.onResponse(e),error:e=>{this.loading=!1,this.error=e?.message||"Failed to fetch network view"}}),super.ngOnInit()}refreshNow(){this.loading=0===this.entries.length,this.nodeService.getNetworkView(!0).subscribe({next:e=>this.onResponse(e),error:e=>{this.loading=!1,this.error=e?.message||"Failed to fetch network view"}})}onResponse(e){this.entries=e?.entries||[],this.loading=!1,this.error=null,this.lastUpdated=new Date,this.applyFilters()}ngOnDestroy(){this.sub&&this.sub.unsubscribe()}applyFilters(){const e=(this.searchTerm||"").trim().toLowerCase(),i=(this.filterCountry||"").trim().toUpperCase(),o=(this.filterVersion||"").trim(),r=this.filterMinTransports||0;this.filteredEntries=this.entries.filter(s=>!(this.showOnlineOnly&&"online"!==(s.ut_status||"")||i&&(s.country||"").toUpperCase()!==i||o&&(s.version||"")!==o||r>0&&(s.total||0)0?6:-1))},dependencies:[$t,Gt,rc,qt,wi,tp,sn,Os,In,Wo,We,Kt,cu,so,kr,Mr,fa,xe],styles:[".nv-header[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;gap:16px;padding:8px 4px 4px}.nv-header[_ngcontent-%COMP%] .nv-totals[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;font-size:13px}.nv-header[_ngcontent-%COMP%] .nv-fetched[_ngcontent-%COMP%]{margin-left:auto;font-size:12px;opacity:.6}.nv-header[_ngcontent-%COMP%] .dot[_ngcontent-%COMP%]{display:inline-block;width:8px;height:8px;border-radius:50%;margin-left:8px}.nv-header[_ngcontent-%COMP%] .dot-green[_ngcontent-%COMP%]{background:#4caf50}.nv-header[_ngcontent-%COMP%] .dot-red[_ngcontent-%COMP%]{background:#e53935}.nv-header[_ngcontent-%COMP%] .dot-outline-gray[_ngcontent-%COMP%]{border:1px solid rgba(255,255,255,.4)}.nv-filters[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:12px;align-items:center;padding:8px 4px;border-bottom:1px solid rgba(255,255,255,.06)}.nv-filters[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{flex:0 1 200px}.nv-filters[_ngcontent-%COMP%] .field-sm[_ngcontent-%COMP%]{flex:0 1 130px}.nv-filters[_ngcontent-%COMP%] .field-md[_ngcontent-%COMP%]{flex:1 1 280px}.nv-legend[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:12px;padding:8px 4px;opacity:.8}.nv-legend[_ngcontent-%COMP%] .row-marker[_ngcontent-%COMP%]{display:inline-block;width:16px;height:12px;border-radius:2px;margin-left:6px}.responsive-table-translucid[_ngcontent-%COMP%] th.num[_ngcontent-%COMP%], .responsive-table-translucid[_ngcontent-%COMP%] td.num[_ngcontent-%COMP%]{text-align:right;font-variant-numeric:tabular-nums}.row-offline[_ngcontent-%COMP%]{color:#e53935d9!important}.row-not-in-ut[_ngcontent-%COMP%]{background:#e539351f!important;color:#ffffffe6!important}.row-low-transports[_ngcontent-%COMP%]{background:#ffa7261f!important;color:#ffdc96f2!important}.row-marker.row-offline[_ngcontent-%COMP%]{background:#e5393580}.row-marker.row-not-in-ut[_ngcontent-%COMP%]{background:#e5393540}.row-marker.row-low-transports[_ngcontent-%COMP%]{background:#ffa7264d}.nv-cards[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:8px;padding:8px 0}.nv-card[_ngcontent-%COMP%]{border:1px solid rgba(255,255,255,.08);border-radius:6px;padding:8px 10px}.nv-card[_ngcontent-%COMP%] .nv-card-pk[_ngcontent-%COMP%]{font-weight:600}.nv-card[_ngcontent-%COMP%] .nv-card-meta[_ngcontent-%COMP%]{opacity:.7;font-size:12px}.nv-card[_ngcontent-%COMP%] .nv-card-tps[_ngcontent-%COMP%]{font-size:12px;margin-top:2px;font-variant-numeric:tabular-nums}.nv-empty[_ngcontent-%COMP%]{text-align:center;opacity:.6;padding:24px}"]})}}return t})();const NEe=()=>["nodes.resources-title"],LEe=t=>({count:t}),f6=t=>["/nodes",t,"resources"];function BEe(t,n){1&t&&(h(0,"div",4),B(1,"mat-spinner",6),h(2,"span",7),p(3),b(4,"translate"),u()()),2&t&&(d(),C("diameter",16),d(2),M(y(4,2,"multi-resources.loading")))}function VEe(t,n){if(1&t&&(h(0,"div",5)(1,"mat-icon"),p(2,"error_outline"),u(),h(3,"span",7),p(4),u()()),2&t){const e=v();d(4),M(e.error)}}function HEe(t,n){if(1&t&&(h(0,"span",10),p(1),b(2,"translate"),b(3,"date"),u()),2&t){const e=v(2);d(),gt(" \u2014 ",y(2,2,"multi-resources.last-updated"),": ",pe(3,4,e.lastUpdated,"HH:mm:ss")," ")}}function jEe(t,n){if(1&t&&(h(0,"div",17),p(1),u()),2&t){const e=v().$implicit;d(),M(e.error)}}function UEe(t,n){1&t&&(p(0),b(1,"number")),2&t&&E(" ",pe(1,1,v().$implicit.stats.cpu_percent,"1.0-1"),"% ")}function zEe(t,n){1&t&&(h(0,"span",18),p(1,"-"),u())}function $Ee(t,n){if(1&t&&(p(0),b(1,"number"),h(2,"span",19),p(3),u()),2&t){const e=v().$implicit,i=v(2);E(" ",pe(1,3,e.stats.mem_percent,"1.0-1"),"% "),d(3),gt("(",i.formatBytes(e.stats.mem_used)," / ",i.formatBytes(e.stats.mem_total),")")}}function WEe(t,n){1&t&&(h(0,"span",18),p(1,"-"),u())}function GEe(t,n){1&t&&(p(0),b(1,"number")),2&t&&E(" ",pe(1,1,v().$implicit.stats.disk_percent,"1.0-1"),"% ")}function qEe(t,n){1&t&&(h(0,"span",18),p(1,"-"),u())}function KEe(t,n){if(1&t&&(h(0,"tr")(1,"td"),B(2,"span",14),u(),h(3,"td")(4,"a",15)(5,"strong"),p(6),u()(),h(7,"div",16),p(8),u(),x(9,jEe,2,1,"div",17),u(),h(10,"td"),x(11,UEe,2,4)(12,zEe,2,0,"span",18),u(),h(13,"td"),x(14,$Ee,4,6)(15,WEe,2,0,"span",18),u(),h(16,"td"),x(17,GEe,2,4)(18,qEe,2,0,"span",18),u(),h(19,"td"),p(20),u(),h(21,"td"),p(22),u(),h(23,"td"),p(24),u()()),2&t){const e=n.$implicit,i=v(2);d(2),C("ngClass",e.node.online?"dot-green":"dot-red"),d(2),C("routerLink",se(17,f6,e.node.localPk)),d(2),M(e.node.label||e.node.localPk),d(2),M(e.node.localPk),d(),S(e.error?9:-1),d(),Ze(i.pctClass(null==e.stats?null:e.stats.cpu_percent)),d(),S(void 0!==(null==e.stats?null:e.stats.cpu_percent)?11:12),d(2),Ze(i.pctClass(null==e.stats?null:e.stats.mem_percent)),d(),S(void 0!==(null==e.stats?null:e.stats.mem_percent)?14:15),d(2),Ze(i.pctClass(null==e.stats?null:e.stats.disk_percent)),d(),S(void 0!==(null==e.stats?null:e.stats.disk_percent)?17:18),d(3),M(i.formatRate(e.txRate)),d(2),M(i.formatRate(e.rxRate)),d(2),M(i.formatBytes(null==e.stats||null==e.stats.process?null:e.stats.process.mem_rss))}}function YEe(t,n){if(1&t&&(h(0,"div",17),p(1),u()),2&t){const e=v().$implicit;d(),M(e.error)}}function XEe(t,n){if(1&t&&(h(0,"div",23)(1,"div")(2,"span",18),p(3),b(4,"translate"),u(),h(5,"strong"),p(6),b(7,"number"),u()(),h(8,"div")(9,"span",18),p(10),b(11,"translate"),u(),h(12,"strong"),p(13),b(14,"number"),u()(),h(15,"div")(16,"span",18),p(17),b(18,"translate"),u(),h(19,"strong"),p(20),b(21,"number"),u()(),h(22,"div")(23,"span",18),p(24),b(25,"translate"),u(),h(26,"strong"),p(27),u()(),h(28,"div")(29,"span",18),p(30),b(31,"translate"),u(),h(32,"strong"),p(33),u()(),h(34,"div")(35,"span",18),p(36),b(37,"translate"),u(),h(38,"strong"),p(39),u()()()),2&t){const e=v().$implicit,i=v(2);d(3),E("",y(4,18,"multi-resources.cpu"),":"),d(2),Ze(i.pctClass(e.stats.cpu_percent)),d(),E("",pe(7,20,e.stats.cpu_percent,"1.0-1"),"%"),d(4),E("",y(11,23,"multi-resources.mem"),":"),d(2),Ze(i.pctClass(e.stats.mem_percent)),d(),E("",pe(14,25,e.stats.mem_percent,"1.0-1"),"%"),d(4),E("",y(18,28,"multi-resources.disk"),":"),d(2),Ze(i.pctClass(e.stats.disk_percent)),d(),E("",pe(21,30,e.stats.disk_percent,"1.0-1"),"%"),d(4),E("",y(25,33,"multi-resources.tx"),":"),d(3),M(i.formatRate(e.txRate)),d(3),E("",y(31,35,"multi-resources.rx"),":"),d(3),M(i.formatRate(e.rxRate)),d(3),E("",y(37,37,"multi-resources.proc-rss"),":"),d(3),M(i.formatBytes(null==e.stats.process?null:e.stats.process.mem_rss))}}function ZEe(t,n){if(1&t&&(h(0,"div",13)(1,"div",20),B(2,"span",14),h(3,"a",21)(4,"strong"),p(5),u()()(),h(6,"div",22),p(7),u(),x(8,YEe,2,1,"div",17),x(9,XEe,40,39,"div",23),u()),2&t){const e=n.$implicit;d(2),C("ngClass",e.node.online?"dot-green":"dot-red"),d(),C("routerLink",se(6,f6,e.node.localPk)),d(2),M(e.node.label||e.node.localPk),d(2),M(e.node.localPk),d(),S(e.error?8:-1),d(),S(e.stats?9:-1)}}function QEe(t,n){if(1&t&&(h(0,"div",8)(1,"mat-icon"),p(2,"memory"),u(),h(3,"span",9),p(4),b(5,"translate"),u(),x(6,HEe,4,7,"span",10),u(),h(7,"table",11)(8,"tr"),B(9,"th"),h(10,"th"),p(11),b(12,"translate"),u(),h(13,"th"),p(14),b(15,"translate"),u(),h(16,"th"),p(17),b(18,"translate"),u(),h(19,"th"),p(20),b(21,"translate"),u(),h(22,"th"),p(23),b(24,"translate"),u(),h(25,"th"),p(26),b(27,"translate"),u(),h(28,"th"),p(29),b(30,"translate"),u()(),ve(31,KEe,25,19,"tr",null,Br().trackRow,!0),u(),h(33,"div",12),ve(34,ZEe,10,8,"div",13,Br().trackRow,!0),u()),2&t){const e=v();d(4),M(pe(5,9,"multi-resources.summary",se(26,LEe,e.rows.length))),d(2),S(e.lastUpdated?6:-1),d(5),M(y(12,12,"multi-resources.visor")),d(3),M(y(15,14,"multi-resources.cpu")),d(3),M(y(18,16,"multi-resources.mem")),d(3),M(y(21,18,"multi-resources.disk")),d(3),M(y(24,20,"multi-resources.tx")),d(3),M(y(27,22,"multi-resources.rx")),d(3),M(y(30,24,"multi-resources.proc-rss")),d(2),ye(e.rows),d(3),ye(e.rows)}}let JEe=(()=>{class t extends pn{constructor(e,i,o){super(),this.nodeService=e,this.api=i,this.cdr=o,this.tabsData=[],this.rows=[],this.loading=!0,this.error=null,this.lastUpdated=null,this.tabsData=[{icon:"view_headline",label:"nodes.title",linkParts:["/nodes"],group:"local"},{icon:"monetization_on",label:"nodes.rewards-title",linkParts:["/nodes","rewards"],group:"local"},{icon:"memory",label:"nodes.resources-title",linkParts:["/nodes","resources"],group:"local"},{icon:"swap_horiz",label:"nodes.transports-title",linkParts:["/nodes","transports"],group:"network"},{icon:"public",label:"nodes.network-title",linkParts:["/nodes","network"],group:"network"},{icon:"bubble_chart",label:"node.details.tpviz.title",linkParts:[],externalUrl:"/tp-viz/",group:"network"},{icon:"check_circle",label:"nodes.services-health-title",linkParts:["/nodes","services-health"],group:"network"},{icon:"settings",label:"settings.title",linkParts:["/settings"]}]}ngOnInit(){return this.sub=Mc(5e3).pipe(si(0),tn(()=>this.nodeService.getNodes()),tn(e=>{const i=(e||[]).filter(r=>r.online);return 0===i.length?ae({nodes:e||[],stats:[]}):zf(i.map(r=>this.api.get(`visors/${r.localPk}/host-stats`).pipe(Ui(s=>ae({__error:s?.message||"failed"}))))).pipe(tn(r=>ae({nodes:e||[],stats:r.map((s,a)=>({pk:i[a].localPk,stats:s&&!s.__error?s:void 0,error:s&&s.__error?s.__error:void 0}))})))})).subscribe({next:({nodes:e,stats:i})=>{this.mergeStats(e,i),this.loading=!1,this.error=null,this.lastUpdated=new Date,this.cdr.markForCheck()},error:e=>{this.loading=!1,this.error=e?.message||"Failed to fetch resources"}}),super.ngOnInit()}ngOnDestroy(){this.sub?.unsubscribe()}mergeStats(e,i){const o=new Map;i.forEach(a=>o.set(a.pk,{stats:a.stats,error:a.error}));const r=new Map;this.rows.forEach(a=>r.set(a.node.localPk,a));const s=Date.now();this.rows=e.map(a=>{const l=o.get(a.localPk),c=r.get(a.localPk),f={node:a,...l};if(l?.stats){const m=l.stats.net_bytes_sent||0,g=l.stats.net_bytes_recv||0;if(c?.lastSampleAt&&void 0!==c.prevSent&&void 0!==c.prevRecv){const _=(s-c.lastSampleAt)/1e3;if(_>0){const w=Math.max(0,(m-c.prevSent)/_),k=Math.max(0,(g-c.prevRecv)/_);f.txRate=w,f.rxRate=k}}f.prevSent=m,f.prevRecv=g,f.lastSampleAt=s}return f})}pctClass(e){return null==e?"pct-na":e>=90?"pct-bad":e>=70?"pct-warn":"pct-ok"}formatRate(e){if(null==e||e<0)return"-";const i=["B/s","KB/s","MB/s","GB/s"];let o=0,r=e;for(;r>=1024&&o=1024&&o0?6:-1))},dependencies:[$t,Is,We,so,Mr,Vl,fa,xe],styles:[".loading-row[_ngcontent-%COMP%]{display:flex;align-items:center;color:#ffffffbf;padding:24px 0}.error-row[_ngcontent-%COMP%]{display:flex;align-items:center;color:#f87171;padding:24px 0}.summary-line[_ngcontent-%COMP%]{display:flex;align-items:center;color:#ffffffe6;font-size:.95em}.summary-line[_ngcontent-%COMP%] .last-updated[_ngcontent-%COMP%]{color:#ffffff8c;font-size:.85em;margin-left:8px}.dot[_ngcontent-%COMP%]{width:8px;height:8px;border-radius:50%;display:inline-block}.dot-green[_ngcontent-%COMP%]{background:#4caf50}.dot-red[_ngcontent-%COMP%]{background:#f44336}.visor-link[_ngcontent-%COMP%]{color:#fffffff2;text-decoration:none}.visor-link[_ngcontent-%COMP%]:hover{text-decoration:underline}.visor-pk[_ngcontent-%COMP%]{color:#ffffff8c;font-size:11px;word-break:break-all;font-family:monospace}.visor-err[_ngcontent-%COMP%]{color:#f87171;font-size:12px;margin-top:2px}.dim[_ngcontent-%COMP%]{color:#fff9}.small[_ngcontent-%COMP%]{font-size:.85em}.pct-ok[_ngcontent-%COMP%]{color:#4caf50;font-weight:500}.pct-warn[_ngcontent-%COMP%]{color:#ff9800;font-weight:500}.pct-bad[_ngcontent-%COMP%]{color:#f44336;font-weight:600}.pct-na[_ngcontent-%COMP%]{color:#ffffff80}.mobile-card[_ngcontent-%COMP%]{background:#ffffff0a;border-radius:4px;padding:12px;margin-bottom:10px}.mobile-card[_ngcontent-%COMP%] .mobile-header[_ngcontent-%COMP%]{display:flex;align-items:center}.mobile-card[_ngcontent-%COMP%] .mobile-pk[_ngcontent-%COMP%]{color:#ffffff8c;font-size:11px;word-break:break-all;font-family:monospace;margin:4px 0 6px}.mobile-card[_ngcontent-%COMP%] .mobile-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;font-size:12px}"]})}}return t})();const ePe=()=>["nodes.transports-title"],tPe=(t,n,e)=>({transports:t,bandwidth:n,days:e});function nPe(t,n){1&t&&(h(0,"div",10),B(1,"mat-spinner",12),h(2,"span",13),p(3),b(4,"translate"),u()()),2&t&&(d(),C("diameter",16),d(2),M(y(4,2,"network-transports.loading")))}function iPe(t,n){if(1&t&&(h(0,"div",11)(1,"mat-icon"),p(2,"error_outline"),u(),h(3,"span",13),p(4),u()()),2&t){const e=v();d(4),M(e.error)}}function oPe(t,n){if(1&t&&(h(0,"span",16),p(1),b(2,"translate"),b(3,"date"),u()),2&t){const e=v(2);d(),gt(" \u2014 ",y(2,2,"network-transports.last-updated"),": ",pe(3,4,e.lastUpdated,"HH:mm:ss")," ")}}function rPe(t,n){if(1&t&&(h(0,"tr")(1,"td",20),p(2),u(),h(3,"td"),p(4),u(),h(5,"td",20),p(6),u(),h(7,"td",20),p(8),u(),h(9,"td",19),p(10),u(),h(11,"td",19),p(12),u(),h(13,"td",19)(14,"strong"),p(15),u()(),h(16,"td",21),p(17),u()()),2&t){const e=n.$implicit,i=v(3);d(2),M(e.id),d(2),M(e.type),d(2),M(e.edge_a),d(2),M(e.edge_b),d(2),M(i.fmtBytes(e.sent)),d(2),M(i.fmtBytes(e.recv)),d(3),M(i.fmtBytes(e.bandwidth)),d(),C("matTooltip",i.fmtLatencyFull(e.latency)),d(),M(i.fmtLatency(e.latency))}}function sPe(t,n){if(1&t&&(h(0,"table",17)(1,"tr")(2,"th"),p(3),b(4,"translate"),u(),h(5,"th"),p(6),b(7,"translate"),u(),h(8,"th"),p(9),b(10,"translate"),u(),h(11,"th"),p(12),b(13,"translate"),u(),h(14,"th",19),p(15),b(16,"translate"),u(),h(17,"th",19),p(18),b(19,"translate"),u(),h(20,"th",19),p(21),b(22,"translate"),u(),h(23,"th",19),p(24),b(25,"translate"),u()(),ve(26,rPe,18,9,"tr",null,Br().trackTpId,!0),u()),2&t){const e=v(2);d(3),M(y(4,8,"network-transports.tp-id")),d(3),M(y(7,10,"network-transports.type")),d(3),M(y(10,12,"network-transports.edge-a")),d(3),M(y(13,14,"network-transports.edge-b")),d(3),M(y(16,16,"network-transports.sent")),d(3),M(y(19,18,"network-transports.recv")),d(3),M(y(22,20,"network-transports.total")),d(3),M(y(25,22,"network-transports.latency")),d(2),ye(e.byTransport)}}function aPe(t,n){if(1&t&&(h(0,"span",35),p(1),u()),2&t){const e=v().$implicit,i=v(5);C("matTooltip",i.fmtLatencyFull(e.latency)),d(),M(i.fmtLatency(e.latency))}}function lPe(t,n){if(1&t&&(h(0,"div",29)(1,"span",30),p(2),u(),h(3,"span",31),p(4),u(),h(5,"span",32),p(6),u(),h(7,"span",33),p(8,"\u2192"),u(),h(9,"span",34),p(10),u(),h(11,"span",27),p(12),u(),h(13,"span",27),p(14),u(),h(15,"span")(16,"strong"),p(17),u()(),x(18,aPe,2,2,"span",35),u()),2&t){const e=n.$implicit,i=n.$index,o=n.$count,r=v(5);d(2),M(i===o-1?"\u2514\u2500\u2500":"\u251c\u2500\u2500"),d(2),M(e.id),d(2),M(e.type),d(4),M(e.remote),d(2),E("\u2191 ",r.fmtBytes(e.sent)),d(2),E("\u2193 ",r.fmtBytes(e.recv)),d(3),M(r.fmtBytes(e.bandwidth)),d(),S(e.latency&&e.latency.avg?18:-1)}}function cPe(t,n){if(1&t&&(h(0,"div",28),ve(1,lPe,19,8,"div",29,Br().trackChildId,!0),u()),2&t){const e=v().$implicit;d(),ye(e.transports)}}function dPe(t,n){if(1&t){const e=oe();h(0,"div",22)(1,"div",23),F("click",function(){const o=j(e).$implicit;return U(v(3).toggleVisor(o))}),h(2,"mat-icon",24),p(3),u(),h(4,"span",25),p(5),u(),h(6,"span",26)(7,"strong"),p(8),u()(),h(9,"span",27),p(10),u(),h(11,"span",27),p(12),u()(),x(13,cPe,3,0,"div",28),u()}if(2&t){const e=n.$implicit,i=v(3);d(2),C("inline",!0),d(),M(e.expanded?"expand_more":"chevron_right"),d(2),M(e.pk),d(3),M(i.fmtBytes(e.bandwidth)),d(2),gt("\u2191 ",i.fmtBytes(e.sent)," \u2193 ",i.fmtBytes(e.recv)),d(2),E("\xb7 ",e.transports.length," tp"),d(),S(e.expanded?13:-1)}}function uPe(t,n){if(1&t&&(h(0,"div",18),ve(1,dPe,14,8,"div",22,Br().trackVisorPk,!0),u()),2&t){const e=v(2);d(),ye(e.byVisor)}}function hPe(t,n){if(1&t&&(h(0,"div",14)(1,"mat-icon"),p(2,"swap_horiz"),u(),h(3,"span",15),p(4),b(5,"translate"),u(),x(6,oPe,4,7,"span",16),u(),x(7,sPe,28,24,"table",17),x(8,uPe,3,0,"div",18)),2&t){const e=v();d(4),E(" ",pe(5,4,"network-transports.summary",SA(7,tPe,e.rawCount,e.fmtBytes(e.networkBandwidth),e.days))," "),d(2),S(e.lastUpdated?6:-1),d(),S("compact"===e.viewMode?7:-1),d(),S("tree"===e.viewMode?8:-1)}}let fPe=(()=>{class t extends pn{constructor(e,i){super(),this.api=e,this.cdr=i,this.tabsData=[],this.loading=!0,this.error=null,this.lastUpdated=null,this.days=1,this.viewMode="compact",this.rawCount=0,this.networkBandwidth=0,this.byTransport=[],this.byVisor=[],this.tabsData=[{icon:"view_headline",label:"nodes.title",linkParts:["/nodes"],group:"local"},{icon:"monetization_on",label:"nodes.rewards-title",linkParts:["/nodes","rewards"],group:"local"},{icon:"memory",label:"nodes.resources-title",linkParts:["/nodes","resources"],group:"local"},{icon:"swap_horiz",label:"nodes.transports-title",linkParts:["/nodes","transports"],group:"network"},{icon:"public",label:"nodes.network-title",linkParts:["/nodes","network"],group:"network"},{icon:"bubble_chart",label:"node.details.tpviz.title",linkParts:[],externalUrl:"/tp-viz/",group:"network"},{icon:"check_circle",label:"nodes.services-health-title",linkParts:["/nodes","services-health"],group:"network"},{icon:"settings",label:"settings.title",linkParts:["/settings"]}]}ngOnInit(){return this.sub=Mc(3e5).pipe(si(0),tn(()=>this.fetch())).subscribe(),super.ngOnInit()}ngOnDestroy(){this.sub?.unsubscribe()}refreshNow(){this.fetch().subscribe()}setDays(e){e!==this.days&&(this.days=e,this.fetch().subscribe())}setViewMode(e){this.viewMode=e}toggleVisor(e){e.expanded=!e.expanded}fetch(){return this.loading=0===this.byTransport.length&&0===this.byVisor.length,this.api.get(`network/transports?days=${this.days}`).pipe(Ui(e=>(this.error=e?.message||"Failed to fetch transports",this.loading=!1,this.cdr.markForCheck(),ae(null))),tn(e=>null===e?ae(null):(this.consume(Array.isArray(e)?e:[]),ae(e))))}consume(e){this.rawCount=e.length;let i=0;const o=[],r=new Map;for(const a of e){if(!a.edges||a.edges.length<2)continue;const[l,c]=this.verifiedBandwidth(a),f=l+c;if(i+=f,0===f&&!a.latency)continue;o.push({id:a.id,type:a.type,edge_a:a.edges[0],edge_b:a.edges[1],sent:l,recv:c,bandwidth:f,latency:a.latency});const m=r.get(a.edges[0])||this.newVisorNode(a.edges[0]);m.sent+=l,m.recv+=c,m.bandwidth+=f,m.transports.push({id:a.id,type:a.type,remote:a.edges[1],sent:l,recv:c,bandwidth:f,latency:a.latency}),r.set(a.edges[0],m);const g=r.get(a.edges[1])||this.newVisorNode(a.edges[1]);g.sent+=c,g.recv+=l,g.bandwidth+=f,g.transports.push({id:a.id,type:a.type,remote:a.edges[0],sent:c,recv:l,bandwidth:f,latency:a.latency}),r.set(a.edges[1],g)}o.sort((a,l)=>l.bandwidth-a.bandwidth);const s=Array.from(r.values()).sort((a,l)=>l.bandwidth-a.bandwidth);s.forEach(a=>a.transports.sort((l,c)=>c.bandwidth-l.bandwidth)),this.byTransport=o,this.byVisor=s,this.networkBandwidth=i,this.loading=!1,this.error=null,this.lastUpdated=new Date,this.cdr.markForCheck()}newVisorNode(e){return{pk:e,sent:0,recv:0,bandwidth:0,transports:[],expanded:!1}}verifiedBandwidth(e){let i=0,o=0;for(const r of e.daily||[]){const s=!!r.a&&((r.a.sent||0)>0||(r.a.recv||0)>0),a=!!r.b&&((r.b.sent||0)>0||(r.b.recv||0)>0);s&&a?(i+=Math.min(r.a.sent||0,r.b.recv||0),o+=Math.min(r.a.recv||0,r.b.sent||0)):s?(i+=r.a.sent||0,o+=r.a.recv||0):a&&(i+=r.b.recv||0,o+=r.b.sent||0)}return[i,o]}fmtBytes(e){if(!e||e<0)return"-";const i=["B","KB","MB","GB","TB"];let o=0,r=e;for(;r>=1024&&o0||o.byVisor.length>0?36:-1))},dependencies:[Pn,We,Kt,so,Mr,fa,xe],styles:[".controls[_ngcontent-%COMP%]{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:12px;padding:10px 14px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:6px}.controls[_ngcontent-%COMP%] .control-group[_ngcontent-%COMP%]{display:flex;align-items:center;gap:4px}.controls[_ngcontent-%COMP%] .control-group[_ngcontent-%COMP%] .control-label[_ngcontent-%COMP%]{font-size:.85em;color:#ffffffa6;margin-right:4px}.controls[_ngcontent-%COMP%] .control-group[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{min-width:0;padding:0 12px!important;opacity:.6}.controls[_ngcontent-%COMP%] .control-group[_ngcontent-%COMP%] button.active[_ngcontent-%COMP%]{opacity:1;background:#2196f32e!important;color:#fff}.controls[_ngcontent-%COMP%] .refresh-btn[_ngcontent-%COMP%]{margin-left:auto}.loading-row[_ngcontent-%COMP%], .error-row[_ngcontent-%COMP%]{display:flex;align-items:center;padding:24px 0}.error-row[_ngcontent-%COMP%]{color:#f87171}.summary-line[_ngcontent-%COMP%]{display:flex;align-items:center;color:#ffffffe6;font-size:.95em}.summary-line[_ngcontent-%COMP%] .last-updated[_ngcontent-%COMP%]{color:#ffffff8c;font-size:.85em;margin-left:8px}.dim[_ngcontent-%COMP%]{color:#fff9}.small[_ngcontent-%COMP%]{font-size:.85em}.mono[_ngcontent-%COMP%]{font-family:monospace;word-break:break-all}.num[_ngcontent-%COMP%]{text-align:right}.nt-compact[_ngcontent-%COMP%]{table-layout:auto}.nt-compact[_ngcontent-%COMP%] td.mono[_ngcontent-%COMP%]{font-size:11px}.nt-compact[_ngcontent-%COMP%] th.num[_ngcontent-%COMP%], .nt-compact[_ngcontent-%COMP%] td.num[_ngcontent-%COMP%]{white-space:nowrap}.nt-tree[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2px}.nt-visor[_ngcontent-%COMP%]{background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:4px}.nt-visor[_ngcontent-%COMP%] .nt-visor-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;padding:6px 10px;cursor:pointer;flex-wrap:wrap}.nt-visor[_ngcontent-%COMP%] .nt-visor-row[_ngcontent-%COMP%]:hover{background:#ffffff0a}.nt-visor[_ngcontent-%COMP%] .nt-visor-row[_ngcontent-%COMP%] .exp[_ngcontent-%COMP%]{color:#fff9}.nt-visor[_ngcontent-%COMP%] .nt-visor-row[_ngcontent-%COMP%] .nt-pk[_ngcontent-%COMP%]{flex:1 1 320px;min-width:0;font-size:11px;color:#ffffffd9}.nt-visor[_ngcontent-%COMP%] .nt-visor-row[_ngcontent-%COMP%] .nt-bw[_ngcontent-%COMP%]{font-size:13px}.nt-visor[_ngcontent-%COMP%] .nt-visor-row[_ngcontent-%COMP%] .dim[_ngcontent-%COMP%]{font-size:12px}.nt-visor[_ngcontent-%COMP%] .nt-children[_ngcontent-%COMP%]{padding:4px 12px 8px 36px;display:flex;flex-direction:column;gap:4px}.nt-visor[_ngcontent-%COMP%] .nt-children[_ngcontent-%COMP%] .nt-child[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;padding:2px 0}.nt-visor[_ngcontent-%COMP%] .nt-children[_ngcontent-%COMP%] .nt-child[_ngcontent-%COMP%] .nt-prefix[_ngcontent-%COMP%]{font-family:monospace;color:#ffffff73}.nt-visor[_ngcontent-%COMP%] .nt-children[_ngcontent-%COMP%] .nt-child[_ngcontent-%COMP%] .nt-tp-id[_ngcontent-%COMP%]{font-size:11px;color:#ffffffd9}.nt-visor[_ngcontent-%COMP%] .nt-children[_ngcontent-%COMP%] .nt-child[_ngcontent-%COMP%] .nt-tp-type[_ngcontent-%COMP%]{background:#2196f32e;border:1px solid rgba(33,150,243,.35);padding:0 6px;border-radius:3px;font-size:10px;text-transform:lowercase}.nt-visor[_ngcontent-%COMP%] .nt-children[_ngcontent-%COMP%] .nt-child[_ngcontent-%COMP%] .nt-arrow[_ngcontent-%COMP%]{color:#ffffff73}.nt-visor[_ngcontent-%COMP%] .nt-children[_ngcontent-%COMP%] .nt-child[_ngcontent-%COMP%] .nt-tp-remote[_ngcontent-%COMP%]{font-size:11px;color:#ffffffb3}"]})}}return t})(),pPe=(()=>{class t{constructor(e){this.apiService=e}getSessions(e){return this.apiService.get(`visors/${e}/dmsg/sessions`)}connectAll(e){return this.apiService.post(`visors/${e}/dmsg/connect-all`)}setSessionsCount(e,i){return this.apiService.put(`visors/${e}/dmsg/sessions-count`,{count:i})}static{this.\u0275fac=function(i){return new(i||t)(ce(zi))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();function mPe(t,n){1&t&&(h(0,"div",1),B(1,"mat-spinner",3),h(2,"span",4),p(3),b(4,"translate"),u()()),2&t&&(d(),C("diameter",16),d(2),M(y(4,2,"dmsg-settings.loading")))}function gPe(t,n){if(1&t&&(h(0,"div",2)(1,"mat-icon"),p(2,"error_outline"),u(),h(3,"span",4),p(4),u()()),2&t){const e=v();d(4),M(e.error)}}function _Pe(t,n){if(1&t&&(h(0,"span",7),p(1),b(2,"translate"),b(3,"date"),u()),2&t){const e=v(2);d(),gt(" \u2014 ",y(2,2,"dmsg-settings.last-updated"),": ",pe(3,4,e.lastUpdated,"HH:mm:ss")," ")}}function bPe(t,n){1&t&&B(0,"mat-spinner",11),2&t&&C("diameter",14)}function vPe(t,n){1&t&&B(0,"mat-spinner",11),2&t&&C("diameter",14)}function yPe(t,n){if(1&t&&(h(0,"div",19),p(1),b(2,"translate"),u()),2&t){const e=v(3);d(),gt(" ",y(2,2,"dmsg-settings.result-failed"),": ",e.objectKeys(e.lastActionResult.failed).length," ")}}function CPe(t,n){if(1&t&&(h(0,"div",15)(1,"span",18),p(2),u(),p(3),b(4,"translate"),b(5,"translate"),b(6,"translate"),x(7,yPe,3,4,"div",19),u()),2&t){const e=v(2);d(2),E("",e.lastActionLabel,":"),d(),H0(" ",y(4,8,"dmsg-settings.result-total")," ",e.lastActionResult.total,", ",y(5,10,"dmsg-settings.result-already")," ",e.lastActionResult.already_connected,", ",y(6,12,"dmsg-settings.result-new")," ",e.lastActionResult.newly_connected," "),d(4),S(e.lastActionResult.failed&&e.objectKeys(e.lastActionResult.failed).length>0?7:-1)}}function wPe(t,n){if(1&t&&(h(0,"div",26),p(1),u()),2&t){const e=n.$implicit;d(),M(e)}}function xPe(t,n){if(1&t&&(h(0,"div",24),ve(1,wPe,2,1,"div",26,Br().trackByPk,!0),u()),2&t){const e=v().$implicit;d(),ye(e.servers)}}function SPe(t,n){1&t&&(h(0,"div",25),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"dmsg-settings.no-sessions")))}function kPe(t,n){if(1&t&&(h(0,"div",16)(1,"div",20)(2,"span",21),p(3),u(),h(4,"span",22),p(5),b(6,"translate"),u()(),h(7,"div",23),p(8),u(),x(9,xPe,3,0,"div",24)(10,SPe,3,3,"div",25),u()),2&t){const e=n.$implicit,i=v(2);d(3),M(i.roleLabel(e.role)),d(2),gt("",e.count," ",y(6,5,"dmsg-settings.sessions")),d(3),M(e.pk),d(),S(e.servers&&e.servers.length>0?9:10)}}function DPe(t,n){1&t&&(h(0,"div",17)(1,"div",25),p(2),b(3,"translate"),u()()),2&t&&(d(2),M(y(3,1,"dmsg-settings.no-clients")))}function MPe(t,n){if(1&t){const e=oe();h(0,"div",5)(1,"mat-icon"),p(2,"hub"),u(),h(3,"span",6),p(4),b(5,"translate"),u(),x(6,_Pe,4,7,"span",7),u(),h(7,"div",8)(8,"div",9)(9,"button",10),F("click",function(){return j(e),U(v().connectAll())}),x(10,bPe,1,1,"mat-spinner",11),p(11),b(12,"translate"),u()(),h(13,"span",12),p(14,"|"),u(),h(15,"div",9)(16,"label",13),p(17),b(18,"translate"),u(),h(19,"input",14),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.sessionsCountInput,o)||(r.sessionsCountInput=o),U(o)}),u(),h(20,"button",10),F("click",function(){return j(e),U(v().applySessionsCount())}),x(21,vPe,1,1,"mat-spinner",11),p(22),b(23,"translate"),u()()(),x(24,CPe,8,14,"div",15),ve(25,kPe,11,7,"div",16,Br().trackByRole,!0),x(27,DPe,4,3,"div",17)}if(2&t){const e=v();d(4),M(y(5,13,"dmsg-settings.summary")),d(2),S(e.lastUpdated?6:-1),d(3),C("disabled",e.connectAllInFlight||e.setCountInFlight),d(),S(e.connectAllInFlight?10:-1),d(),E(" ",y(12,15,"dmsg-settings.connect-all")," "),d(6),E("",y(18,17,"dmsg-settings.sessions-count-label"),":"),d(2),Ut("ngModel",e.sessionsCountInput),C("disabled",e.setCountInFlight||e.connectAllInFlight),d(),C("disabled",e.setCountInFlight||e.connectAllInFlight),d(),S(e.setCountInFlight?21:-1),d(),E(" ",y(23,19,"dmsg-settings.apply-count")," "),d(2),S(e.lastActionResult?24:-1),d(),ye(e.clientList()),d(2),S(0===e.clientList().length?27:-1)}}let TPe=(()=>{class t extends pn{constructor(e,i){super(),this.dmsgSvc=e,this.snackbar=i,this.pk="",this.sessions=null,this.loading=!0,this.error=null,this.lastUpdated=null,this.sessionsCountInput=0,this.connectAllInFlight=!1,this.setCountInFlight=!1,this.lastActionResult=null,this.lastActionLabel=""}ngOnInit(){return this.nodeSub=ke.currentNode.subscribe(e=>{const i=!this.pk;this.pk=e?.localPk||"",i&&this.pk&&this.startPolling()}),super.ngOnInit()}ngOnDestroy(){this.nodeSub?.unsubscribe(),this.pollSub?.unsubscribe()}startPolling(){this.pollSub=Mc(2e4).pipe(si(0),tn(()=>this.dmsgSvc.getSessions(this.pk))).subscribe({next:e=>{this.sessions=e||{},this.loading=!1,this.error=null,this.lastUpdated=new Date},error:e=>{this.loading=!1,this.error=e?.message||"Failed to fetch dmsg sessions"}})}refresh(){this.pk&&this.dmsgSvc.getSessions(this.pk).subscribe({next:e=>{this.sessions=e||{},this.lastUpdated=new Date},error:()=>{}})}connectAll(){this.connectAllInFlight||!this.pk||(this.connectAllInFlight=!0,this.lastActionResult=null,this.dmsgSvc.connectAll(this.pk).subscribe({next:e=>{this.connectAllInFlight=!1,this.lastActionResult=e,this.lastActionLabel="Connect to all",this.snackbar.showDone(`Opened ${e.newly_connected} new session(s); already had ${e.already_connected}.`),this.refresh()},error:e=>{this.connectAllInFlight=!1,this.snackbar.showError(`connect-all failed: ${e?.message||"unknown error"}`)}}))}applySessionsCount(){if(!this.setCountInFlight&&this.pk){if(this.sessionsCountInput<0)return void this.snackbar.showError("Sessions count must be >= 0");this.setCountInFlight=!0,this.lastActionResult=null,this.dmsgSvc.setSessionsCount(this.pk,this.sessionsCountInput).subscribe({next:e=>{this.setCountInFlight=!1,this.lastActionResult=e,this.lastActionLabel=`Set sessions_count = ${this.sessionsCountInput}`,this.snackbar.showDone(`Persisted sessions_count=${this.sessionsCountInput}; opened ${e.newly_connected} new session(s).`),this.refresh()},error:e=>{this.setCountInFlight=!1,this.snackbar.showError(`set-sessions failed: ${e?.message||"unknown error"}`)}})}}clientList(){const e=[];return this.sessions&&(this.sessions.main&&e.push(this.sessions.main),this.sessions.route_setup&&e.push(this.sessions.route_setup),this.sessions.transport_setup&&e.push(this.sessions.transport_setup)),e}roleLabel(e){switch(e){case"main":return"Main visor";case"route_setup":return"Route Setup Node";case"transport_setup":return"Transport Setup Node";default:return e}}trackByRole(e,i){return i.role}trackByPk(e,i){return i}objectKeys(e){return e?Object.keys(e):[]}static{this.\u0275fac=function(i){return new(i||t)(O(pPe),O(ct))}}static{this.\u0275cmp=re({type:t,selectors:[["app-dmsg-settings"]],standalone:!1,features:[be],decls:4,vars:3,consts:[[1,"dmsg-tab-body"],[1,"loading-row"],[1,"error-row"],[3,"diameter"],[1,"ml-2"],[1,"summary-line"],[1,"ml-1"],[1,"last-updated"],[1,"actions","mt-3"],[1,"action-group"],["mat-raised-button","","color","primary",3,"click","disabled"],[1,"d-inline-block","mr-2",3,"diameter"],[1,"divider"],["for","sessions-count"],["id","sessions-count","type","number","min","0","max","99",3,"ngModelChange","ngModel","disabled"],[1,"action-result"],[1,"client-card"],[1,"client-card","missing"],[1,"result-label"],[1,"result-failed"],[1,"client-header"],[1,"role"],[1,"count"],[1,"client-pk"],[1,"server-list"],[1,"empty"],[1,"server"]],template:function(i,o){1&i&&(h(0,"div",0),x(1,mPe,5,4,"div",1),x(2,gPe,5,1,"div",2),x(3,MPe,28,21),u()),2&i&&(d(),S(o.loading&&!o.sessions?1:-1),d(),S(o.error&&!o.sessions?2:-1),d(),S(o.sessions?3:-1))},dependencies:[Gt,rc,qt,tp,sv,Pn,We,cu,so,fa,xe],styles:['@charset "UTF-8";.dmsg-tab-body[_ngcontent-%COMP%]{margin-top:1.5rem}.loading-row[_ngcontent-%COMP%]{display:flex;align-items:center;color:#ffffffbf;padding:24px 0}.error-row[_ngcontent-%COMP%]{display:flex;align-items:center;color:#f87171;padding:24px 0}.summary-line[_ngcontent-%COMP%]{display:flex;align-items:center;color:#ffffffe6;font-size:.95em}.summary-line[_ngcontent-%COMP%] .last-updated[_ngcontent-%COMP%]{color:#ffffff8c;font-size:.85em;margin-left:8px}.actions[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:16px 0 24px;padding:14px 16px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:6px}.actions[_ngcontent-%COMP%] .action-group[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.actions[_ngcontent-%COMP%] .action-group[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{color:#ffffffbf;font-size:.9em}.actions[_ngcontent-%COMP%] .action-group[_ngcontent-%COMP%] input[type=number][_ngcontent-%COMP%]{width:72px;background:#ffffff14;border:1px solid rgba(255,255,255,.15);color:#fff;padding:4px 8px;border-radius:4px;font-size:.95em}.actions[_ngcontent-%COMP%] .divider[_ngcontent-%COMP%]{color:#ffffff40;padding:0 6px}.action-result[_ngcontent-%COMP%]{margin:8px 0 20px;padding:10px 14px;background:#4ade8014;border-left:3px solid #4ade80;border-radius:4px;font-size:.9em;color:#ffffffe6}.action-result[_ngcontent-%COMP%] .result-label[_ngcontent-%COMP%]{font-weight:600;margin-right:8px}.action-result[_ngcontent-%COMP%] .result-failed[_ngcontent-%COMP%]{color:#f87171;margin-top:4px;font-size:.85em}.client-card[_ngcontent-%COMP%]{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:6px;padding:14px 16px;margin-bottom:14px}.client-card[_ngcontent-%COMP%] .client-header[_ngcontent-%COMP%]{display:flex;align-items:baseline;margin-bottom:10px;gap:10px}.client-card[_ngcontent-%COMP%] .client-header[_ngcontent-%COMP%] .role[_ngcontent-%COMP%]{font-size:1.1em;font-weight:600;color:#fff}.client-card[_ngcontent-%COMP%] .client-header[_ngcontent-%COMP%] .count[_ngcontent-%COMP%]{color:#ffffffa6;font-size:.85em}.client-card[_ngcontent-%COMP%] .client-pk[_ngcontent-%COMP%]{font-family:monospace;font-size:.8em;color:#ffffff8c;margin-bottom:10px;word-break:break-all}.client-card[_ngcontent-%COMP%] .server-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:3px}.client-card[_ngcontent-%COMP%] .server-list[_ngcontent-%COMP%] .server[_ngcontent-%COMP%]{font-family:monospace;font-size:.82em;color:#ffffffd9;padding:2px 0}.client-card[_ngcontent-%COMP%] .server-list[_ngcontent-%COMP%] .server[_ngcontent-%COMP%]:before{content:"\\2022";margin-right:8px;color:#4ade80}.client-card[_ngcontent-%COMP%] .empty[_ngcontent-%COMP%]{color:#ffffff80;font-size:.9em;font-style:italic}.client-card.missing[_ngcontent-%COMP%]{opacity:.55}']})}}return t})();function EPe(t,n){if(1&t&&B(0,"app-node-app-list",0),2&t){const e=v();C("apps",e.apps)("showShortList",!1)("nodePK",e.nodePK)}}let PPe=(()=>{class t extends pn{ngOnInit(){return this.dataSubscription=ke.currentNode.subscribe(e=>{this.nodePK=e.localPk,this.apps=e.apps}),super.ngOnInit()}ngOnDestroy(){this.dataSubscription.unsubscribe()}static{this.\u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})()}static{this.\u0275cmp=re({type:t,selectors:[["app-all-apps"]],standalone:!1,features:[be],decls:1,vars:1,consts:[[3,"apps","showShortList","nodePK"]],template:function(i,o){1&i&&x(0,EPe,1,3,"app-node-app-list",0),2&i&&S(o.apps?0:-1)},dependencies:[a6],encapsulation:2})}}return t})();const xD=t=>({time:t}),IPe=(t,n)=>({"latency-high":t,"latency-very-high":n}),OPe=(t,n)=>n.name;function APe(t,n){if(1&t&&(h(0,"span",3)(1,"span",4),p(2),b(3,"translate"),u(),B(4,"app-copy-to-clipboard-text",8),u()),2&t){const e=v(2);d(2),E("",y(3,3,"node.details.node-info.public-ip")," "),d(2),C("text",Qt(e.node.publicIp))}}function RPe(t,n){if(1&t&&(h(0,"span",3)(1,"span",4),p(2),b(3,"translate"),u(),B(4,"app-copy-to-clipboard-text",8),u()),2&t){const e=v(2);d(2),E("",y(3,3,"node.details.node-info.ip")," "),d(2),C("text",Qt(e.node.ip))}}function FPe(t,n){1&t&&(p(0),b(1,"translate")),2&t&>(" ",v(2).node.dmsgServers.length," ",y(1,2,"node.details.node-info.connected")," ")}function NPe(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"node.details.node-info.no-dmsg-server")," ")}function LPe(t,n){if(1&t&&(h(0,"span",16),p(1),u()),2&t){const e=v().$implicit,i=v(3);C("ngClass",_t(2,IPe,e.latency>3e8,e.latency>8e8)),d(),E(" ",i.formatLatency(e.latency)," ")}}function BPe(t,n){if(1&t&&(h(0,"div",15),B(1,"app-copy-to-clipboard-text",8),x(2,LPe,2,5,"span",16),u()),2&t){const e=n.$implicit;d(),C("text",Qt(e.pk)),d(),S(e.latency>0?2:-1)}}function VPe(t,n){if(1&t&&(h(0,"div",9),ve(1,BPe,3,3,"div",15,Fe),u()),2&t){const e=v(2);d(),ye(e.node.dmsgServers)}}function HPe(t,n){if(1&t&&(h(0,"span",3)(1,"span",4),p(2),b(3,"translate"),u(),p(4),u()),2&t){const e=v(2);d(2),E("",y(3,2,"node.details.node-info.skybian-version")," "),d(2),E(" ",e.node.skybianBuildVersion," ")}}function jPe(t,n){if(1&t&&(h(0,"mat-icon",10),b(1,"translate"),p(2," info "),u()),2&t){const e=v(2);C("inline",!0)("matTooltip",pe(1,2,"node.details.node-info.time.minutes",se(5,xD,e.timeOnline.totalMinutes)))}}function UPe(t,n){if(1&t&&(h(0,"span",3)(1,"span",4),p(2),u(),p(3),u()),2&t){const e=n.$implicit;d(2),E("",e.name,": "),d(),E(" ",e.value," ")}}function zPe(t,n){1&t&&ve(0,UPe,4,2,"span",3,OPe),2&t&&ye(v(3).ports)}function $Pe(t,n){if(1&t){const e=oe();B(0,"div",11),h(1,"div",1)(2,"span",12),F("click",function(){j(e);const o=v(2);return U(o.showPorts=!o.showPorts)}),h(3,"mat-icon",13),p(4),u(),p(5),b(6,"translate"),h(7,"span",17),p(8),u()(),x(9,zPe,2,0),u()}if(2&t){const e=v(2);d(3),C("inline",!0),d(),M(e.showPorts?"expand_more":"chevron_right"),d(),E(" ",y(6,5,"node.details.ports.title")," "),d(3),E("(",e.ports.length,")"),d(),S(e.showPorts?9:-1)}}function WPe(t,n){if(1&t&&(h(0,"pre",14),p(1),u()),2&t){const e=v(2);d(),M(e.rawConfig)}}function GPe(t,n){if(1&t){const e=oe();h(0,"div",0)(1,"div",1)(2,"span",2),p(3),b(4,"translate"),u(),h(5,"span",3)(6,"span",4),p(7),b(8,"translate"),u(),h(9,"span",5),F("click",function(){return j(e),U(v().showEditLabelDialog())}),h(10,"span",6),p(11),u(),h(12,"mat-icon",7),p(13,"edit"),u()()(),h(14,"span",3)(15,"span",4),p(16),b(17,"translate"),u(),B(18,"app-copy-to-clipboard-text",8),u(),h(19,"span",3)(20,"span",4),p(21),b(22,"translate"),u(),p(23),b(24,"translate"),u(),x(25,APe,5,5,"span",3),x(26,RPe,5,5,"span",3),h(27,"span",3)(28,"span",4),p(29),b(30,"translate"),u(),x(31,FPe,2,4),x(32,NPe,2,3),u(),x(33,VPe,3,0,"div",9),h(34,"span",3)(35,"span",4),p(36),b(37,"translate"),u(),p(38),b(39,"translate"),u(),h(40,"span",3)(41,"span",4),p(42),b(43,"translate"),u(),p(44),b(45,"translate"),u(),h(46,"span",3)(47,"span",4),p(48),b(49,"translate"),u(),p(50),b(51,"translate"),u(),h(52,"span",3)(53,"span",4),p(54),b(55,"translate"),u(),p(56),b(57,"translate"),u(),h(58,"span",3)(59,"span",4),p(60),b(61,"translate"),u(),p(62),b(63,"translate"),u(),x(64,HPe,5,4,"span",3),h(65,"span",3)(66,"span",4),p(67),b(68,"translate"),u(),p(69),b(70,"translate"),x(71,jPe,3,7,"mat-icon",10),u()(),x(72,$Pe,10,7),B(73,"div",11),h(74,"div",1)(75,"span",12),F("click",function(){return j(e),U(v().onConfigToggle())}),h(76,"mat-icon",13),p(77),u(),p(78),b(79,"translate"),u(),x(80,WPe,2,1,"pre",14),u()()}if(2&t){const e=v();d(3),M(y(4,34,e.node.isHypervisor?"node.details.node-info.title-local":"node.details.node-info.title")),d(4),E("",y(8,36,"node.details.node-info.label")," "),d(4),M(e.node.label),d(),C("inline",!0),d(4),E("",y(17,38,"node.details.node-info.public-key")," "),d(2),C("text",Qt(e.node.localPk)),d(3),E("",y(22,40,"node.details.node-info.symmetic-nat")," "),d(2),E(" ",y(24,42,e.node.isSymmeticNat?"common.yes":"common.no")," "),d(2),S(e.node.isSymmeticNat?-1:25),d(),S(e.node.ip?26:-1),d(3),E("",y(30,44,"node.details.node-info.dmsg-servers")," "),d(2),S(e.node.dmsgServers&&e.node.dmsgServers.length>0?31:-1),d(),S(e.node.dmsgServers&&0!==e.node.dmsgServers.length?-1:32),d(),S(e.node.dmsgServers&&e.node.dmsgServers.length>0?33:-1),d(3),E("",y(37,46,"node.details.node-info.ping")," "),d(2),E(" ",pe(39,48,"common.time-in-ms",se(74,xD,e.node.roundTripPing))," "),d(4),E("",y(43,51,"node.details.node-info.node-version")," "),d(2),E(" ",e.node.version?e.node.version:y(45,53,"common.unknown")," "),d(4),E("",y(49,55,"node.details.node-info.config-version")," "),d(2),E(" ",e.node.configVersion?e.node.configVersion:y(51,57,"common.unknown")," "),d(4),E("",y(55,59,"node.details.node-info.os")," "),d(2),E(" ",e.node.os?e.node.os:y(57,61,"common.unknown")," "),d(4),E("",y(61,63,"node.details.node-info.arch")," "),d(2),E(" ",e.node.arch?e.node.arch:y(63,65,"common.unknown")," "),d(2),S(e.node.skybianBuildVersion?64:-1),d(3),E("",y(68,67,"node.details.node-info.time.title")," "),d(2),E(" ",pe(70,69,"node.details.node-info.time."+e.timeOnline.translationVarName,se(76,xD,e.timeOnline.elapsedTime))," "),d(2),S(e.timeOnline.totalMinutes>60?71:-1),d(),S(e.ports.length>0?72:-1),d(4),C("inline",!0),d(),M(e.showConfigSection?"expand_more":"chevron_right"),d(),E(" ",y(79,72,"node.details.config.title")," "),d(2),S(e.showConfigSection&&e.rawConfig?80:-1)}}let qPe=(()=>{class t{set nodeInfo(e){this.node=e,this.timeOnline=gv.getElapsedTime(e.secondsOnline),this.fetchPorts(e.localPk)}constructor(e,i,o,r){this.dialog=e,this.storageService=i,this.snackbarService=o,this.apiService=r,this.ports=[],this.showPorts=!1,this.rawConfig="",this.showConfigSection=!1}ngOnDestroy(){}showEditLabelDialog(){let e=this.storageService.getLabelInfo(this.node.localPk);e||(e={id:this.node.localPk,label:"",identifiedElementType:ro.Node}),wk.openDialog(this.dialog,e).afterClosed().subscribe(i=>{i&&ke.refreshCurrentDisplayedData()})}hasDmsgServer(){return!(!this.node||0===this.node.dmsgServerPk.replace(/0/g,"").length)}formatLatency(e){const i=e/1e6;return i<10?i.toFixed(2)+"ms":Math.round(i)+"ms"}fetchPorts(e){this.apiService.get(`visors/${e}/ports`).subscribe(i=>{this.ports=i&&"object"==typeof i?Object.entries(i).map(([o,r])=>({name:o,value:JSON.stringify(r)})):[]},()=>{this.ports=[]})}onConfigToggle(){this.showConfigSection=!this.showConfigSection,this.showConfigSection&&!this.rawConfig&&this.apiService.get(`visors/${this.node.localPk}/runtime-config`).subscribe(e=>{this.rawConfig=JSON.stringify(e,null,2)},()=>{this.snackbarService.showError("common.loading-error")})}static{this.\u0275fac=function(i){return new(i||t)(O(Ot),O(ti),O(ct),O(zi))}}static{this.\u0275cmp=re({type:t,selectors:[["app-node-info-content"]],inputs:{nodeInfo:"nodeInfo"},standalone:!1,decls:1,vars:1,consts:[[1,"font-smaller","d-flex","flex-column","mt-4.5"],[1,"d-flex","flex-column"],[1,"section-title"],[1,"info-line"],[1,"title"],[1,"highlight-internal-icon",3,"click"],[1,"text-with-small-right-margin"],[1,"edit-icon",3,"inline"],[3,"text"],[1,"dmsg-servers-list"],[3,"inline","matTooltip"],[1,"separator"],[1,"section-title","collapsible-header",2,"cursor","pointer",3,"click"],[3,"inline"],[1,"raw-config"],[1,"dmsg-server-item"],[1,"dmsg-latency",3,"ngClass"],[1,"count-badge"]],template:function(i,o){1&i&&x(0,GPe,81,78,"div",0),2&i&&S(o.node?0:-1)},dependencies:[$t,We,Kt,op,xe],styles:[".section-title[_ngcontent-%COMP%]{font-size:1rem;font-weight:700;text-transform:uppercase;color:#00d4ff;text-shadow:0 0 10px rgba(0,212,255,.5),0 0 20px rgba(0,212,255,.3);letter-spacing:1px;margin-bottom:8px}.info-table[_ngcontent-%COMP%]{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;align-items:baseline;margin-top:8px}.info-table[_ngcontent-%COMP%] .info-label[_ngcontent-%COMP%]{opacity:.7;white-space:nowrap;font-size:.9em}.info-table[_ngcontent-%COMP%] .info-value[_ngcontent-%COMP%]{word-break:break-word}.info-line[_ngcontent-%COMP%]{word-break:break-word;margin-top:7px;display:flex;align-items:baseline;gap:6px}.info-line[_ngcontent-%COMP%] .text-with-right-margin[_ngcontent-%COMP%]{margin-right:5px}.info-line[_ngcontent-%COMP%] .text-with-small-right-margin[_ngcontent-%COMP%]{margin-right:3px}.info-line[_ngcontent-%COMP%] .link-icon[_ngcontent-%COMP%]{font-size:20px;line-height:1;color:#fff!important;cursor:pointer}.info-line[_ngcontent-%COMP%] .edit-icon[_ngcontent-%COMP%]{display:inline!important}.info-line[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:3px;-webkit-user-select:none;user-select:none}.info-line[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{margin-left:7px}.info-line[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{opacity:.7;white-space:nowrap;min-width:120px;font-size:.9em}.separator[_ngcontent-%COMP%]{width:100%;height:0px;margin:1rem 0;border-top:1px solid rgba(255,255,255,.15);opacity:.5}.config-button-container[_ngcontent-%COMP%]{margin-top:10px;margin-left:-4px}.dmsg-servers-list[_ngcontent-%COMP%]{margin-left:0;margin-top:8px;display:flex;flex-direction:column;gap:4px;padding:10px 12px;background:#00d4ff0d;border-radius:6px;border-left:2px solid rgba(0,212,255,.3)}.dmsg-servers-list[_ngcontent-%COMP%] .dmsg-server-item[_ngcontent-%COMP%]{font-family:Consolas,Monaco,Courier New,monospace;font-size:.82em;display:flex;align-items:center;gap:10px;padding:4px 0;color:#fffffff2;transition:all .2s ease}.dmsg-servers-list[_ngcontent-%COMP%] .dmsg-server-item[_ngcontent-%COMP%]:hover{color:#00d4ff;text-shadow:0 0 8px rgba(0,212,255,.4)}.dmsg-servers-list[_ngcontent-%COMP%] .dmsg-server-item[_ngcontent-%COMP%] .dmsg-latency[_ngcontent-%COMP%]{color:#4ade80;font-weight:500;font-size:.95em;text-shadow:0 0 6px rgba(74,222,128,.3)}.dmsg-servers-list[_ngcontent-%COMP%] .dmsg-server-item[_ngcontent-%COMP%] .dmsg-latency.latency-high[_ngcontent-%COMP%]{color:#fbbf24;text-shadow:0 0 6px rgba(251,191,36,.3)}.dmsg-servers-list[_ngcontent-%COMP%] .dmsg-server-item[_ngcontent-%COMP%] .dmsg-latency.latency-very-high[_ngcontent-%COMP%]{color:#f87171;text-shadow:0 0 6px rgba(248,113,113,.3)}.glow-value[_ngcontent-%COMP%]{color:#e0f2fe;text-shadow:0 0 4px rgba(224,242,254,.2)}.status-online[_ngcontent-%COMP%]{color:#4ade80;text-shadow:0 0 8px rgba(74,222,128,.5)}.status-offline[_ngcontent-%COMP%]{color:#f87171;text-shadow:0 0 8px rgba(248,113,113,.5)}.raw-config[_ngcontent-%COMP%]{margin-top:10px;padding:12px;background:#0000004d;border:1px solid rgba(0,212,255,.2);border-radius:6px;font-family:Consolas,Monaco,Courier New,monospace;font-size:.8em;color:#ffffffe6;overflow-x:auto;max-height:400px;overflow-y:auto;white-space:pre-wrap;word-break:break-all}.sub-health[_ngcontent-%COMP%]{padding-left:12px;font-size:.9em;color:#ffffffd9}.collapsible-header[_ngcontent-%COMP%]{display:flex;align-items:center;-webkit-user-select:none;user-select:none}.collapsible-header[_ngcontent-%COMP%]:hover{color:#a5b4fc}.collapsible-header[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:4px;font-size:18px;width:18px;height:18px}.collapsible-header[_ngcontent-%COMP%] .count-badge[_ngcontent-%COMP%]{margin-left:6px;color:#ffffff8c;font-weight:400;font-size:.85em}.transport-stats[_ngcontent-%COMP%]{color:#ffffffd9}.transport-stats[_ngcontent-%COMP%] .transport-type[_ngcontent-%COMP%]{color:#a5b4fc;font-weight:500}.transport-stats[_ngcontent-%COMP%] .transport-count[_ngcontent-%COMP%]{color:#4ade80;font-weight:600}.inline-edit-btn[_ngcontent-%COMP%]{margin-left:4px;height:24px;width:24px;line-height:24px;opacity:.7}.inline-edit-btn[_ngcontent-%COMP%]:hover{opacity:1}.toggle-line[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.toggle-line[_ngcontent-%COMP%] .info-tip[_ngcontent-%COMP%]{opacity:.5;font-size:16px;cursor:help}.inline-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:8px;margin-top:6px;margin-bottom:6px}.inline-form[_ngcontent-%COMP%] .inline-form-field[_ngcontent-%COMP%]{width:100%}.inline-form[_ngcontent-%COMP%] .inline-form-field-sm[_ngcontent-%COMP%]{width:120px}.inline-form[_ngcontent-%COMP%] .inline-form-actions[_ngcontent-%COMP%]{display:flex;gap:8px}.collapsible-link[_ngcontent-%COMP%]{cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:4px;margin-top:6px;opacity:.8}.collapsible-link[_ngcontent-%COMP%]:hover{opacity:1}.reward-rules[_ngcontent-%COMP%]{background:#00000040;padding:8px 10px;margin:6px 0;font-size:12px;max-height:360px;overflow:auto;white-space:pre-wrap;word-break:break-word}"]})}}return t})(),KPe=(()=>{class t extends pn{ngOnInit(){return this.nodeSubscription=ke.currentNode.subscribe(e=>{this.node=e}),super.ngOnInit()}ngOnDestroy(){this.nodeSubscription.unsubscribe()}static{this.\u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})()}static{this.\u0275cmp=re({type:t,selectors:[["app-node-info"]],standalone:!1,features:[be],decls:1,vars:1,consts:[[3,"nodeInfo"]],template:function(i,o){1&i&&B(0,"app-node-info-content",0),2&i&&C("nodeInfo",o.node)},dependencies:[qPe],encapsulation:2})}}return t})();const YPe=()=>[];function XPe(t,n){1&t&&(h(0,"div",6),B(1,"mat-spinner",7),u())}function ZPe(t,n){1&t&&(h(0,"span"),p(1,"open"),u())}function QPe(t,n){1&t&&(h(0,"span"),p(1,"s"),u())}function JPe(t,n){if(1&t&&(h(0,"span"),p(1),it(2,QPe,2,0,"span",5),u()),2&t){const e=v().$implicit;d(),E(" ",e.whitelist.length," PK"),d(),C("ngIf",1!==e.whitelist.length)}}function eIe(t,n){if(1&t){const e=oe();h(0,"button",41),F("click",function(){j(e);const o=v(2).$implicit;return U(v(3).clearWhitelist(o))}),p(1," Clear "),u()}}function tIe(t,n){if(1&t){const e=oe();h(0,"tr",32)(1,"td",33)(2,"div",34)(3,"p",35),p(4," Comma- or whitespace-separated public keys. Empty = accessible to all authenticated peers. "),u(),h(5,"mat-form-field",36)(6,"mat-label"),p(7),u(),h(8,"textarea",37),zt("ngModelChange",function(o){j(e);const r=v(4);return Zt(r.whitelistInput,o)||(r.whitelistInput=o),U(o)}),u()(),h(9,"div",38)(10,"button",22),F("click",function(){j(e);const o=v().$implicit;return U(v(3).saveWhitelist(o))}),h(11,"mat-icon"),p(12,"save"),u(),p(13," Save "),u(),it(14,eIe,2,0,"button",39),h(15,"button",40),F("click",function(){return j(e),U(v(4).cancelEditWhitelist())}),p(16,"Cancel"),u()()()()()}if(2&t){const e=v().$implicit,i=v(3);d(7),E("Allowed PKs for port ",e.port),d(),Ut("ngModel",i.whitelistInput),d(6),C("ngIf",e.whitelist&&e.whitelist.length>0)}}function nIe(t,n){if(1&t){const e=oe();Vr(0),h(1,"tr")(2,"td",25),p(3),u(),h(4,"td",25),p(5),u(),h(6,"td"),p(7),u(),h(8,"td")(9,"mat-checkbox",26),F("change",function(){const o=j(e).$implicit;return U(v(3).toggleSkynet(o))}),u()(),h(10,"td")(11,"mat-checkbox",26),F("change",function(){const o=j(e).$implicit;return U(v(3).toggleDmsg(o))}),u()(),h(12,"td")(13,"mat-checkbox",26),F("change",function(){const o=j(e).$implicit;return U(v(3).toggleLanding(o))}),u()(),h(14,"td")(15,"button",27),F("click",function(){const o=j(e).$implicit;return U(v(3).startEditWhitelist(o))}),it(16,ZPe,2,0,"span",5)(17,JPe,3,2,"span",5),h(18,"mat-icon",28),p(19,"edit"),u()()(),h(20,"td",29)(21,"button",30),F("click",function(){const o=j(e).$implicit;return U(v(3).removePort(o.port))}),h(22,"mat-icon"),p(23,"close"),u()()()(),it(24,tIe,17,3,"tr",31),cr()}if(2&t){const e=n.$implicit,i=v(3);d(3),M(e.port),d(2),M(e.proxy_addr||"localhost:"+(e.local_port||e.port)),d(2),M(e.label||"-"),d(2),C("checked",e.skynet),d(2),C("checked",e.dmsg),d(2),C("checked",e.show_on_landing),d(2),C("matTooltip",(e.whitelist||Ct(10,YPe)).join(", ")||"Open to all peers"),d(),C("ngIf",!e.whitelist||0===e.whitelist.length),d(),C("ngIf",e.whitelist&&e.whitelist.length>0),d(7),C("ngIf",i.editingWhitelistPort===e.port)}}function iIe(t,n){if(1&t&&(h(0,"table",23)(1,"tr")(2,"th"),p(3,"Port"),u(),h(4,"th"),p(5,"Target"),u(),h(6,"th"),p(7,"Label"),u(),h(8,"th"),p(9,"Skynet"),u(),h(10,"th"),p(11,"DMSG"),u(),h(12,"th"),p(13,"Landing"),u(),h(14,"th"),p(15,"Whitelist"),u(),B(16,"th"),u(),it(17,nIe,25,11,"ng-container",24),u()),2&t){const e=v(2);d(17),C("ngForOf",e.ports)}}function oIe(t,n){1&t&&(h(0,"p",42),p(1,"No ports forwarded."),u())}function rIe(t,n){if(1&t){const e=oe();h(0,"div"),it(1,iIe,18,1,"table",8)(2,oIe,2,0,"p",9),h(3,"div",10)(4,"div",11)(5,"mat-form-field",12)(6,"mat-label"),p(7,"Skynet Port"),u(),h(8,"input",13),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.newPort,o)||(r.newPort=o),U(o)}),u()(),h(9,"mat-form-field",12)(10,"mat-label"),p(11,"Local Port"),u(),h(12,"input",14),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.newLocalPort,o)||(r.newLocalPort=o),U(o)}),u()(),h(13,"mat-form-field",15)(14,"mat-label"),p(15,"Target Address"),u(),h(16,"input",16),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.newProxyAddr,o)||(r.newProxyAddr=o),U(o)}),u()(),h(17,"mat-form-field",15)(18,"mat-label"),p(19,"Label"),u(),h(20,"input",17),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.newLabel,o)||(r.newLabel=o),U(o)}),u()()(),h(21,"div",11)(22,"mat-form-field",18)(23,"mat-label"),p(24,"Description"),u(),h(25,"input",19),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.newDesc,o)||(r.newDesc=o),U(o)}),u()(),h(26,"mat-form-field",18)(27,"mat-label"),p(28,"Whitelist (optional)"),u(),h(29,"textarea",20),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.newWhitelist,o)||(r.newWhitelist=o),U(o)}),u()()(),h(30,"div",11)(31,"mat-checkbox",21),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.newSkynet,o)||(r.newSkynet=o),U(o)}),p(32,"Skynet"),u(),h(33,"mat-checkbox",21),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.newDmsg,o)||(r.newDmsg=o),U(o)}),p(34,"DMSG"),u(),h(35,"mat-checkbox",21),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.newShowLanding,o)||(r.newShowLanding=o),U(o)}),p(36,"Show on landing page"),u(),h(37,"button",22),F("click",function(){return j(e),U(v().addPort())}),h(38,"mat-icon"),p(39,"add"),u(),p(40," Forward "),u()(),h(41,"p",3),p(42," Target Address overrides Local Port \u2014 set it to forward to a host:port elsewhere on the LAN (e.g. "),h(43,"code"),p(44,"192.168.1.20:5432"),u(),p(45,") instead of localhost. Whitelist accepts comma- or whitespace-separated 66-char hex public keys; leave empty to allow all authenticated peers (you can edit the whitelist per-row later, on the table above). "),u()()()}if(2&t){const e=v();d(),C("ngIf",e.ports.length>0),d(),C("ngIf",0===e.ports.length),d(6),Ut("ngModel",e.newPort),d(4),Ut("ngModel",e.newLocalPort),d(4),Ut("ngModel",e.newProxyAddr),d(4),Ut("ngModel",e.newLabel),d(5),Ut("ngModel",e.newDesc),d(4),Ut("ngModel",e.newWhitelist),d(2),Ut("ngModel",e.newSkynet),d(2),Ut("ngModel",e.newDmsg),d(2),Ut("ngModel",e.newShowLanding)}}function sIe(t,n){1&t&&(h(0,"div",6),B(1,"mat-spinner",7),u())}function aIe(t,n){if(1&t){const e=oe();h(0,"tr")(1,"td",25),p(2),u(),h(3,"td",49),p(4),u(),h(5,"td",25),p(6),u(),h(7,"td",25),p(8),u(),h(9,"td",29)(10,"button",50),F("click",function(){const o=j(e).$implicit;return U(v(3).disconnect(o.id))}),h(11,"mat-icon"),p(12,"close"),u()()()()}if(2&t){const e=n.$implicit;d(2),M(e.network||"skynet"),d(2),M(e.remotePK),d(2),M(e.remotePort),d(2),M(e.localPort)}}function lIe(t,n){if(1&t&&(h(0,"table",23)(1,"tr")(2,"th"),p(3,"Network"),u(),h(4,"th"),p(5,"Remote PK"),u(),h(6,"th"),p(7,"Remote Port"),u(),h(8,"th"),p(9,"Local Port"),u(),B(10,"th"),u(),it(11,aIe,13,4,"tr",24),u()),2&t){const e=v(2);d(11),C("ngForOf",e.forwards)}}function cIe(t,n){1&t&&(h(0,"p",42),p(1,"No active reverse proxies."),u())}function dIe(t,n){if(1&t){const e=oe();h(0,"div"),it(1,lIe,12,1,"table",8)(2,cIe,2,0,"p",9),h(3,"div",11)(4,"mat-form-field",12)(5,"mat-label"),p(6,"Network"),u(),h(7,"mat-select",43),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.connectNetwork,o)||(r.connectNetwork=o),U(o)}),h(8,"mat-option",44),p(9,"skynet"),u(),h(10,"mat-option",45),p(11,"dmsg"),u()()(),h(12,"mat-form-field",46)(13,"mat-label"),p(14,"Remote Public Key"),u(),h(15,"input",47),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.connectPK,o)||(r.connectPK=o),U(o)}),u()()(),h(16,"div",11)(17,"mat-form-field",12)(18,"mat-label"),p(19,"Remote Port"),u(),h(20,"input",13),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.connectRemotePort,o)||(r.connectRemotePort=o),U(o)}),u()(),h(21,"mat-form-field",12)(22,"mat-label"),p(23,"Local Port"),u(),h(24,"input",48),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.connectLocalPort,o)||(r.connectLocalPort=o),U(o)}),u()(),h(25,"button",22),F("click",function(){return j(e),U(v().connect())}),h(26,"mat-icon"),p(27,"link"),u(),p(28," Connect "),u()()()}if(2&t){const e=v();d(),C("ngIf",e.forwards.length>0),d(),C("ngIf",0===e.forwards.length),d(5),Ut("ngModel",e.connectNetwork),d(8),Ut("ngModel",e.connectPK),d(5),Ut("ngModel",e.connectRemotePort),d(4),Ut("ngModel",e.connectLocalPort)}}let uIe=(()=>{class t extends pn{constructor(e,i){super(),this.nodeService=e,this.snackbarService=i,this.ports=[],this.portsLoading=!0,this.newPort="",this.newLocalPort="",this.newProxyAddr="",this.newLabel="",this.newDesc="",this.newWhitelist="",this.newSkynet=!0,this.newDmsg=!0,this.newShowLanding=!0,this.editingWhitelistPort=null,this.whitelistInput="",this.forwards=[],this.forwardsLoading=!0,this.connectNetwork="skynet",this.connectPK="",this.connectRemotePort="",this.connectLocalPort="",this.nodeKey=""}ngOnInit(){return this.nodeKey=ke.getCurrentNodeKey(),this.loadPorts(),this.loadForwards(),super.ngOnInit()}ngOnDestroy(){this.portsSub&&this.portsSub.unsubscribe(),this.fwdsSub&&this.fwdsSub.unsubscribe()}loadPorts(){this.portsLoading=!0,this.portsSub=this.nodeService.getForwardedPorts(this.nodeKey).subscribe(e=>{this.ports=(e||[]).sort((i,o)=>i.port-o.port),this.portsLoading=!1},()=>{this.ports=[],this.portsLoading=!1})}addPort(){const e=parseInt(this.newPort,10);if(isNaN(e)||e<1||e>65535)return void this.snackbarService.showError("Enter a valid port (1-65535)");const i=this.newLocalPort?parseInt(this.newLocalPort,10):0,o=(this.newProxyAddr||"").trim();let r=[];const s=(this.newWhitelist||"").trim();if(""!==s){r=s.split(/[\s,]+/).map(l=>l.trim()).filter(l=>l.length>0);for(const l of r)if(66!==l.length||!/^[0-9a-fA-F]+$/.test(l))return void this.snackbarService.showError(`Invalid public key in whitelist: ${l}`)}this.nodeService.registerForwardedPort(this.nodeKey,{port:e,local_port:i||void 0,proxy_addr:o||void 0,label:this.newLabel,description:this.newDesc,show_on_landing:this.newShowLanding,skynet:this.newSkynet,dmsg:this.newDmsg,whitelist:r.length>0?r:void 0}).subscribe(()=>{this.newPort="",this.newLocalPort="",this.newProxyAddr="",this.newLabel="",this.newDesc="",this.newWhitelist="",this.snackbarService.showDone(`Port ${e} forwarded`),this.loadPorts()},l=>{this.snackbarService.showError(l?.error?.error||"Failed")})}removePort(e){this.nodeService.deregisterSkynetPort(this.nodeKey,e).subscribe(()=>{this.snackbarService.showDone(`Port ${e} removed`),this.loadPorts()},()=>{this.snackbarService.showError("Failed to remove port")})}toggleLanding(e){e.show_on_landing=!e.show_on_landing,this.nodeService.updateForwardedPort(this.nodeKey,e).subscribe(()=>{},()=>{this.snackbarService.showError("Failed to update"),this.loadPorts()})}toggleSkynet(e){e.skynet=!e.skynet,this.nodeService.updateForwardedPort(this.nodeKey,e).subscribe(()=>{},()=>{this.snackbarService.showError("Failed to update"),this.loadPorts()})}toggleDmsg(e){e.dmsg=!e.dmsg,this.nodeService.updateForwardedPort(this.nodeKey,e).subscribe(()=>{},()=>{this.snackbarService.showError("Failed to update"),this.loadPorts()})}startEditWhitelist(e){this.editingWhitelistPort=e.port,this.whitelistInput=(e.whitelist||[]).join(", ")}cancelEditWhitelist(){this.editingWhitelistPort=null,this.whitelistInput=""}saveWhitelist(e){const i=(this.whitelistInput||"").trim();let o=[];if(""!==i){o=i.split(/[\s,]+/).map(s=>s.trim()).filter(s=>s.length>0);for(const s of o)if(66!==s.length||!/^[0-9a-fA-F]+$/.test(s))return void this.snackbarService.showError(`Invalid public key: ${s}`)}const r={...e,whitelist:o};this.nodeService.updateForwardedPort(this.nodeKey,r).subscribe(()=>{this.snackbarService.showDone(0===o.length?`Whitelist cleared on port ${e.port}`:`Whitelist set on port ${e.port} (${o.length} PK${1===o.length?"":"s"})`),this.cancelEditWhitelist(),this.loadPorts()},s=>{this.snackbarService.showError(s?.error?.error||"Failed to update whitelist")})}clearWhitelist(e){const i={...e,whitelist:[]};this.nodeService.updateForwardedPort(this.nodeKey,i).subscribe(()=>{this.snackbarService.showDone(`Whitelist cleared on port ${e.port}`),this.cancelEditWhitelist(),this.loadPorts()},o=>{this.snackbarService.showError(o?.error?.error||"Failed to clear whitelist")})}loadForwards(){this.forwardsLoading=!0,this.fwdsSub=this.nodeService.getSkynetForwards(this.nodeKey).subscribe(e=>{if(this.forwards=[],e)for(const[i,o]of Object.entries(e))this.forwards.push({id:i,network:o.network||"skynet",remotePK:o.remote_pk||"",remotePort:o.remote_port||0,localPort:o.local_port||0});this.forwardsLoading=!1},()=>{this.forwards=[],this.forwardsLoading=!1})}connect(){const e=parseInt(this.connectRemotePort,10),i=parseInt(this.connectLocalPort,10);this.connectPK&&66===this.connectPK.length?isNaN(e)||e<1?this.snackbarService.showError("Enter a valid remote port"):isNaN(i)||i<1?this.snackbarService.showError("Enter a valid local port"):"skynet"===this.connectNetwork||"dmsg"===this.connectNetwork?this.nodeService.skynetConnect(this.nodeKey,this.connectNetwork,this.connectPK,e,i).subscribe(()=>{this.connectPK="",this.connectRemotePort="",this.connectLocalPort="",this.snackbarService.showDone(`Connected via ${this.connectNetwork}: remote ${e} \u2192 localhost:${i}`),this.loadForwards()},o=>{this.snackbarService.showError(o?.error?.error||"Failed")}):this.snackbarService.showError("Network must be skynet or dmsg"):this.snackbarService.showError("Enter a valid public key")}disconnect(e){this.nodeService.skynetDisconnect(this.nodeKey,e).subscribe(()=>{this.snackbarService.showDone("Disconnected"),this.loadForwards()},()=>{this.snackbarService.showError("Failed")})}static{this.\u0275fac=function(i){return new(i||t)(O(Io),O(ct))}}static{this.\u0275cmp=re({type:t,selectors:[["app-skynet"]],standalone:!1,features:[be],decls:21,vars:4,consts:[[1,"container-elevated-translucid","mt-4.5","skynet-container"],[1,"section"],[1,"section-title"],[1,"section-desc"],["class","text-center py-2",4,"ngIf"],[4,"ngIf"],[1,"text-center","py-2"],["diameter","24",1,"mx-auto"],["class","data-table",4,"ngIf"],["class","empty-msg",4,"ngIf"],[1,"add-form"],[1,"add-row"],["appearance","outline",1,"field-sm"],["matInput","","placeholder","80","type","number",3,"ngModelChange","ngModel"],["matInput","","placeholder","3000","type","number",3,"ngModelChange","ngModel"],["appearance","outline",1,"field-md"],["matInput","","placeholder","192.168.1.20:5432",3,"ngModelChange","ngModel"],["matInput","","placeholder","My Service",3,"ngModelChange","ngModel"],["appearance","outline",1,"field-lg"],["matInput","","placeholder","Optional description",3,"ngModelChange","ngModel"],["matInput","","rows","2","placeholder","02abc..., 03def... (empty = open to all)",3,"ngModelChange","ngModel"],["color","primary",3,"ngModelChange","ngModel"],["mat-raised-button","","color","primary",3,"click"],[1,"data-table"],[4,"ngFor","ngForOf"],[1,"mono"],["color","primary",3,"change","checked"],["mat-button","",3,"click","matTooltip"],[1,"edit-icon"],[1,"action-col"],["mat-icon-button","","color","warn","matTooltip","Remove",3,"click"],["class","whitelist-edit-row",4,"ngIf"],[1,"whitelist-edit-row"],["colspan","8"],[1,"whitelist-edit"],[1,"whitelist-help"],["appearance","outline",1,"whitelist-input"],["matInput","","rows","3","placeholder","02abc..., 03def...",3,"ngModelChange","ngModel"],[1,"whitelist-actions"],["mat-stroked-button","",3,"click",4,"ngIf"],["mat-button","",3,"click"],["mat-stroked-button","",3,"click"],[1,"empty-msg"],["panelClass","skynet-select-panel",3,"ngModelChange","ngModel"],["value","skynet"],["value","dmsg"],["appearance","outline",1,"field-pk"],["matInput","","placeholder","02abc...",3,"ngModelChange","ngModel"],["matInput","","placeholder","9090","type","number",3,"ngModelChange","ngModel"],[1,"mono","small"],["mat-icon-button","","color","warn","matTooltip","Disconnect",3,"click"]],template:function(i,o){1&i&&(h(0,"div",0)(1,"div",1)(2,"h4",2),p(3,"Forwarded Ports"),u(),h(4,"p",3),p(5," Expose local TCP ports over skynet and/or DMSG. "),u(),it(6,XPe,2,0,"div",4)(7,rIe,46,11,"div",5),u(),h(8,"div",1)(9,"h4",2),p(10,"Reverse Proxy"),u(),h(11,"p",3),p(12," Map a remote visor's port to a local port. The Network selector picks the transport: "),h(13,"code"),p(14,"skynet"),u(),p(15," goes through the routing layer; "),h(16,"code"),p(17,"dmsg"),u(),p(18," opens a direct DMSG stream. A single forward uses one network at a time. "),u(),it(19,sIe,2,0,"div",4)(20,dIe,29,6,"div",5),u()()),2&i&&(d(6),C("ngIf",o.portsLoading),d(),C("ngIf",!o.portsLoading),d(12),C("ngIf",o.forwardsLoading),d(),C("ngIf",!o.forwardsLoading))},dependencies:[LF,tf,Gt,rc,qt,sn,Os,In,Pn,Wo,We,Kt,cu,Pa,Qr,so,kr],styles:[".skynet-container[_ngcontent-%COMP%]{padding:20px;max-width:900px}.section[_ngcontent-%COMP%]{margin-bottom:28px}.section-title[_ngcontent-%COMP%]{font-size:16px;font-weight:500;margin-bottom:4px}.section-desc[_ngcontent-%COMP%]{color:#fff9;font-size:13px;margin-bottom:16px}.section-desc[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{background:#ffffff1a;padding:1px 4px;border-radius:3px;font-size:12px}.data-table[_ngcontent-%COMP%]{width:100%;border-collapse:collapse;margin-bottom:16px}.data-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%], .data-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:8px 12px;text-align:left;border-bottom:1px solid rgba(255,255,255,.08)}.data-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{color:#ffffff80;font-weight:500;font-size:13px}.data-table[_ngcontent-%COMP%] .mono[_ngcontent-%COMP%]{font-family:monospace}.data-table[_ngcontent-%COMP%] .small[_ngcontent-%COMP%]{font-size:12px;color:#ffffffb3;word-break:break-all}.data-table[_ngcontent-%COMP%] .action-col[_ngcontent-%COMP%]{width:48px;text-align:right}.empty-msg[_ngcontent-%COMP%]{color:#ffffff61;font-style:italic;margin-bottom:16px}.add-form[_ngcontent-%COMP%]{margin-top:8px}.add-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}.field-sm[_ngcontent-%COMP%]{width:120px}.field-md[_ngcontent-%COMP%]{width:200px}.field-lg[_ngcontent-%COMP%]{width:300px}.field-pk[_ngcontent-%COMP%]{width:100%;max-width:580px}.edit-icon[_ngcontent-%COMP%]{font-size:14px;width:14px;height:14px;vertical-align:middle;margin-left:4px;opacity:.6}.whitelist-edit-row[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{background:#ffffff08;padding:12px 16px!important}.whitelist-edit[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:8px}.whitelist-help[_ngcontent-%COMP%]{margin:0;color:#fff9;font-size:12px}.whitelist-input[_ngcontent-%COMP%]{width:100%;max-width:720px}.whitelist-actions[_ngcontent-%COMP%]{display:flex;gap:8px;align-items:center}[_nghost-%COMP%] .mat-mdc-text-field-wrapper{background:#ffffff14!important}[_nghost-%COMP%] .mdc-text-field--outlined .mdc-notched-outline__leading, [_nghost-%COMP%] .mdc-text-field--outlined .mdc-notched-outline__notch, [_nghost-%COMP%] .mdc-text-field--outlined .mdc-notched-outline__trailing{border-color:#ffffff4d!important}[_nghost-%COMP%] .mat-mdc-input-element, [_nghost-%COMP%] .mdc-text-field__input{color:#fff!important;caret-color:#fff!important}[_nghost-%COMP%] .mdc-floating-label{color:#fff9!important}[_nghost-%COMP%] .mdc-label, [_nghost-%COMP%] .mdc-form-field>label, [_nghost-%COMP%] .mat-mdc-checkbox label{color:#ffffffde!important}"]})}}return t})();const hIe=()=>["settings.title","labels.title"];let fIe=(()=>{class t{constructor(e){this.router=e,this.tabsData=[],this.returnButtonText="settings.title",this.tabsData=[{icon:"view_headline",label:"labels.list-title",linkParts:[]}]}performAction(e){null===e&&this.router.navigate(["settings"])}static{this.\u0275fac=function(i){return new(i||t)(O(vt))}}static{this.\u0275cmp=re({type:t,selectors:[["app-all-labels"]],standalone:!1,decls:5,vars:6,consts:[[1,"row"],[1,"col-12"],[3,"optionSelected","titleParts","tabsData","showUpdateButton","returnText"],[1,"content","col-12"],[3,"showShortList"]],template:function(i,o){1&i&&(h(0,"div",0)(1,"div",1)(2,"app-top-bar",2),F("optionSelected",function(s){return o.performAction(s)}),u()(),h(3,"div",3),B(4,"app-label-list",4),u()()),2&i&&(d(2),C("titleParts",Ct(5,hIe))("tabsData",o.tabsData)("showUpdateButton",!1)("returnText",o.returnButtonText),d(2),C("showShortList",!1))},dependencies:[Mr,bV],encapsulation:2})}}return t})();const pIe=["firstInput"];function mIe(t,n){1&t&&(h(0,"span"),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"vpn.server-list.add-server-dialog.pk-length-error")))}function gIe(t,n){1&t&&(h(0,"span"),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"vpn.server-list.add-server-dialog.pk-chars-error")))}let _Ie=(()=>{class t{static openDialog(e,i){const o=new nn;return o.data=i,o.autoFocus=!1,o.width=rt.mediumModalWidth,e.open(t,o)}constructor(e,i,o,r,s,a,l,c){this.dialogRef=e,this.data=i,this.formBuilder=o,this.dialog=r,this.router=s,this.vpnClientService=a,this.vpnSavedDataService=l,this.snackbarService=c}ngOnInit(){this.form=this.formBuilder.group({pk:["",Ne.compose([Ne.required,Ne.minLength(66),Ne.maxLength(66),Ne.pattern("^[0-9a-fA-F]+$")])],password:[""],name:[""],note:[""]}),setTimeout(()=>this.firstInput.nativeElement.focus())}process(){if(!this.form.valid)return;const e={pk:this.form.get("pk").value,name:this.form.get("name").value,note:this.form.get("note").value};hi.processServerChange(this.router,this.vpnClientService,this.vpnSavedDataService,this.snackbarService,this.dialog,this.dialogRef,this.data,null,null,e,this.form.get("password").value)}static{this.\u0275fac=function(i){return new(i||t)(O(Bt),O(En),O(di),O(Ot),O(vt),O(hc),O(uc),O(ct))}}static{this.\u0275cmp=re({type:t,selectors:[["app-add-vpn-server"]],viewQuery:function(i,o){if(1&i&&ot(pIe,5),2&i){let r;he(r=fe())&&(o.firstInput=r.first)}},standalone:!1,decls:34,vars:22,consts:[["firstInput",""],[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","pk","maxlength","66","matInput",""],["formControlName","password","type","password","matInput",""],["formControlName","name","maxlength","100","matInput",""],["formControlName","note","maxlength","100","matInput",""],["color","primary",1,"float-right",3,"action","disabled"]],template:function(i,o){1&i&&(h(0,"app-dialog",1),b(1,"translate"),h(2,"form",2)(3,"mat-form-field")(4,"div",3)(5,"label",4),p(6),b(7,"translate"),u(),B(8,"input",5,0),u(),h(10,"mat-error"),x(11,mIe,3,3,"span")(12,gIe,3,3,"span"),u()(),h(13,"mat-form-field")(14,"div",3)(15,"label",4),p(16),b(17,"translate"),u(),B(18,"input",6),u()(),h(19,"mat-form-field")(20,"div",3)(21,"label",4),p(22),b(23,"translate"),u(),B(24,"input",7),u()(),h(25,"mat-form-field")(26,"div",3)(27,"label",4),p(28),b(29,"translate"),u(),B(30,"input",8),u()()(),h(31,"app-button",9),F("action",function(){return o.process()}),p(32),b(33,"translate"),u()()),2&i&&(C("headline",y(1,10,"vpn.server-list.add-server-dialog.title"))("dialog",o.dialogRef),d(2),C("formGroup",o.form),d(4),M(y(7,12,"vpn.server-list.add-server-dialog.pk-label")),d(5),S(o.form.get("pk").hasError("pattern")?12:11),d(5),M(y(17,14,"vpn.server-list.add-server-dialog.password-label")),d(6),M(y(23,16,"vpn.server-list.add-server-dialog.name-label")),d(6),M(y(29,18,"vpn.server-list.add-server-dialog.note-label")),d(3),C("disabled",!o.form.valid),d(),E(" ",y(33,20,"vpn.server-list.add-server-dialog.use-server-button")," "))},dependencies:[xn,Gt,qt,wn,wi,on,mn,sn,Ma,In,ui,gn,xe],encapsulation:2})}}return t})();class bIe{constructor(){this.countryCode="ZZ"}}let vIe=(()=>{class t{constructor(e){this.http=e,this.discoveryServiceUrl="https://sd.skycoin.com/api/services?type=vpn"}getServers(){return this.servers?ae(this.servers):this.http.get(this.discoveryServiceUrl).pipe(ip(e=>e.pipe(li(4e3))),Se(e=>{const i=[];return e&&e.forEach(o=>{const r=new bIe,s=o.address.split(":");2===s.length&&(r.pk=s[0],r.location="",o.geo&&(o.geo.country&&(r.countryCode=o.geo.country),o.geo.region&&(r.location=o.geo.region)),r.name=s[0],r.note="",i.push(r))}),this.servers=i,i}))}static{this.\u0275fac=function(i){return new(i||t)(ce(ba))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const p6=()=>["vpn.title"],yIe=t=>({deactivated:t}),qv=(t,n)=>["/vpn",t,"servers",n,1],CIe=t=>({"mb-3":t}),wIe=(t,n)=>({"public-pk-column":t,"history-pk-column":n}),xIe=t=>({"selectable click-effect":t}),SIe=(t,n)=>({custom:t,original:n}),kIe=(t,n)=>["/vpn",t,"servers",n];function DIe(t,n){1&t&&dr(0)}function MIe(t,n){if(1&t&&(h(0,"div",1)(1,"div",3),B(2,"app-top-bar",4),h(3,"div",5)(4,"div",6)(5,"div",7),it(6,DIe,1,0,"ng-container",8),u()()()(),B(7,"app-loading-indicator",9),u()),2&t){const e=v(),i=Hn(2);d(2),C("titleParts",Ct(6,p6))("tabsData",e.tabsData)("selectedTabIndex",1)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk),d(4),C("ngTemplateOutlet",i)}}function TIe(t,n){1&t&&(h(0,"div",14)(1,"span"),p(2),b(3,"translate"),u()()),2&t&&(d(2),M(y(3,1,"vpn.server-list.tabs.public")))}function EIe(t,n){if(1&t&&(h(0,"a",15)(1,"span"),p(2),b(3,"translate"),u()()),2&t){const e=v(2);C("routerLink",_t(4,qv,e.currentLocalPk,e.lists.Public)),d(2),M(y(3,2,"vpn.server-list.tabs.public"))}}function PIe(t,n){1&t&&(h(0,"div",14)(1,"span"),p(2),b(3,"translate"),u()()),2&t&&(d(2),M(y(3,1,"vpn.server-list.tabs.history")))}function IIe(t,n){if(1&t&&(h(0,"a",15)(1,"span"),p(2),b(3,"translate"),u()()),2&t){const e=v(2);C("routerLink",_t(4,qv,e.currentLocalPk,e.lists.History)),d(2),M(y(3,2,"vpn.server-list.tabs.history"))}}function OIe(t,n){1&t&&(h(0,"div",14)(1,"span"),p(2),b(3,"translate"),u()()),2&t&&(d(2),M(y(3,1,"vpn.server-list.tabs.favorites")))}function AIe(t,n){if(1&t&&(h(0,"a",15)(1,"span"),p(2),b(3,"translate"),u()()),2&t){const e=v(2);C("routerLink",_t(4,qv,e.currentLocalPk,e.lists.Favorites)),d(2),M(y(3,2,"vpn.server-list.tabs.favorites"))}}function RIe(t,n){1&t&&(h(0,"div",14)(1,"span"),p(2),b(3,"translate"),u()()),2&t&&(d(2),M(y(3,1,"vpn.server-list.tabs.blocked")))}function FIe(t,n){if(1&t&&(h(0,"a",15)(1,"span"),p(2),b(3,"translate"),u()()),2&t){const e=v(2);C("routerLink",_t(4,qv,e.currentLocalPk,e.lists.Blocked)),d(2),M(y(3,2,"vpn.server-list.tabs.blocked"))}}function NIe(t,n){1&t&&B(0,"br")}function LIe(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,v().$implicit.translatableValue)," ")}function BIe(t,n){1&t&&p(0),2&t&&E(" ",v().$implicit.value," ")}function VIe(t,n){if(1&t&&(h(0,"div",23)(1,"span"),p(2),b(3,"translate"),u(),x(4,LIe,2,3),x(5,BIe,1,1),u()),2&t){const e=n.$implicit;d(2),E("",y(3,3,e.filterName),": "),d(2),S(e.translatableValue?4:-1),d(),S(e.value?5:-1)}}function HIe(t,n){if(1&t){const e=oe();h(0,"div",21),F("click",function(){return j(e),U(v(3).dataFilterer.removeFilters())}),h(1,"div",22)(2,"mat-icon",18),p(3,"search"),u(),p(4),b(5,"translate"),u(),ve(6,VIe,6,5,"div",23,Fe),u()}if(2&t){const e=v(3);d(2),C("inline",!0),d(2),E(" ",y(5,2,"vpn.server-list.current-filters")),d(2),ye(e.dataFilterer.currentFiltersTexts)}}function jIe(t,n){if(1&t&&(x(0,NIe,1,0,"br"),x(1,HIe,8,4,"div",20)),2&t){const e=v(2);S(e.dataFilterer.currentFiltersTexts&&e.dataFilterer.currentFiltersTexts.length>0?0:-1),d(),S(e.dataFilterer.currentFiltersTexts&&e.dataFilterer.currentFiltersTexts.length>0?1:-1)}}function UIe(t,n){if(1&t){const e=oe();h(0,"div",10)(1,"div",11)(2,"div",12)(3,"div",13),x(4,TIe,4,3,"div",14),x(5,EIe,4,7,"a",15),x(6,PIe,4,3,"div",14),x(7,IIe,4,7,"a",15),x(8,OIe,4,3,"div",14),x(9,AIe,4,7,"a",15),x(10,RIe,4,3,"div",14),x(11,FIe,4,7,"a",15),u()()()(),h(12,"div",16)(13,"div",11)(14,"div",12)(15,"div",13)(16,"div",17),b(17,"translate"),F("click",function(){j(e);const o=v();return U(o.dataFilterer?o.dataFilterer.changeFilters():null)}),h(18,"span")(19,"mat-icon",18),p(20,"search"),u()()()()()()(),h(21,"div",19)(22,"div",11)(23,"div",12)(24,"div",13)(25,"div",17),b(26,"translate"),F("click",function(){return j(e),U(v().enterManually())}),h(27,"span")(28,"mat-icon",18),p(29,"add"),u()()()()()()(),x(30,jIe,2,2)}if(2&t){const e=v();d(4),S(e.currentList===e.lists.Public?4:-1),d(),S(e.currentList!==e.lists.Public?5:-1),d(),S(e.currentList===e.lists.History?6:-1),d(),S(e.currentList!==e.lists.History?7:-1),d(),S(e.currentList===e.lists.Favorites?8:-1),d(),S(e.currentList!==e.lists.Favorites?9:-1),d(),S(e.currentList===e.lists.Blocked?10:-1),d(),S(e.currentList!==e.lists.Blocked?11:-1),d(),C("ngClass",se(18,yIe,e.loading)),d(4),C("matTooltip",y(17,14,"filters.filter-info")),d(3),C("inline",!0),d(6),C("matTooltip",y(26,16,"vpn.server-list.add-manually-info")),d(3),C("inline",!0),d(2),S(e.dataFilterer?30:-1)}}function zIe(t,n){1&t&&dr(0)}function $Ie(t,n){if(1&t&&(h(0,"mat-icon",18),p(1),u()),2&t){const e=v(5);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function WIe(t,n){if(1&t){const e=oe();h(0,"th",41),b(1,"translate"),F("click",function(){j(e);const o=v(4);return U(o.dataSorter.changeSortingOrder(o.dateSortData))}),h(2,"div",34)(3,"div",35),p(4),b(5,"translate"),u(),x(6,$Ie,2,2,"mat-icon",18),u()()}if(2&t){const e=v(4);C("matTooltip",y(1,3,"vpn.server-list.date-info")),d(4),E(" ",y(5,5,"vpn.server-list.date-small-table-label")," "),d(2),S(e.dataSorter.currentSortingColumn===e.dateSortData?6:-1)}}function GIe(t,n){if(1&t&&(h(0,"mat-icon",18),p(1),u()),2&t){const e=v(4);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function qIe(t,n){if(1&t&&(h(0,"mat-icon",18),p(1),u()),2&t){const e=v(4);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function KIe(t,n){if(1&t&&(h(0,"mat-icon",18),p(1),u()),2&t){const e=v(4);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function YIe(t,n){if(1&t&&(h(0,"mat-icon",18),p(1),u()),2&t){const e=v(4);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function XIe(t,n){if(1&t&&(h(0,"mat-icon",18),p(1),u()),2&t){const e=v(4);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function ZIe(t,n){if(1&t&&(h(0,"td",43),p(1),b(2,"date"),u()),2&t){const e=v().$implicit;d(),E(" ",pe(2,1,e.lastUsed,"yyyy/MM/dd, H:mm a")," ")}}function QIe(t,n){1&t&&p(0),2&t&&E(" ",v().$implicit.location," ")}function JIe(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"vpn.server-list.unknown")," ")}function eOe(t,n){if(1&t&&(h(0,"mat-icon",55),b(1,"translate"),F("click",function(i){return i.stopPropagation()}),p(2,"info_outline"),u()),2&t){const e=v().$implicit,i=v(4);C("inline",!0)("matTooltip",pe(1,2,i.getNoteVar(e),_t(5,SIe,e.personalNote,e.note)))}}function tOe(t,n){if(1&t){const e=oe();h(0,"tr",42),F("click",function(){const o=j(e).$implicit,r=v(4);return U(r.currentList!==r.lists.Blocked?r.selectServer(o):null)}),x(1,ZIe,3,4,"td",43),h(2,"td",44)(3,"div",45),B(4,"div",46),u()(),h(5,"td",47),B(6,"app-vpn-server-name",48),u(),h(7,"td",49),x(8,QIe,1,1),x(9,JIe,2,3),u(),h(10,"td",50)(11,"app-copy-to-clipboard-text",51),F("click",function(o){return o.stopPropagation()}),u()(),h(12,"td",52),x(13,eOe,3,8,"mat-icon",53),u(),h(14,"td",39)(15,"button",54),b(16,"translate"),F("click",function(o){const r=j(e).$implicit,s=v(4);return o.stopPropagation(),U(s.openOptions(r))}),h(17,"mat-icon",18),p(18,"settings"),u()()()()}if(2&t){const e=n.$implicit,i=v(4);C("ngClass",se(23,xIe,i.currentList!==i.lists.Blocked)),d(),S(i.currentList===i.lists.History?1:-1),d(3),no("background-image: url('assets/img/big-flags/"+e.countryCode.toLocaleLowerCase()+".png');"),C("matTooltip",i.getCountryName(e.countryCode)),d(2),C("isCurrentServer",i.currentServer&&e.pk===i.currentServer.pk)("isFavorite",e.flag===i.serverFlags.Favorite&&i.currentList!==i.lists.Favorites)("isBlocked",e.flag===i.serverFlags.Blocked&&i.currentList!==i.lists.Blocked)("isInHistory",e.inHistory&&i.currentList!==i.lists.History)("hasPassword",e.usedWithPassword)("name",e.name)("pk",e.pk)("customName",e.customName)("defaultName","vpn.server-list.none"),d(2),S(e.location?8:-1),d(),S(e.location?-1:9),d(2),C("shortSimple",!0)("text",e.pk),d(2),S(e.note||e.personalNote?13:-1),d(2),C("matTooltip",y(16,21,"vpn.server-options.tooltip")),d(2),C("inline",!0)}}function nOe(t,n){if(1&t){const e=oe();h(0,"table",30)(1,"tr"),x(2,WIe,7,7,"th",31),h(3,"th",32),b(4,"translate"),F("click",function(){j(e);const o=v(3);return U(o.dataSorter.changeSortingOrder(o.countrySortData))}),h(5,"mat-icon",18),p(6,"flag"),u(),x(7,GIe,2,2,"mat-icon",18),u(),h(8,"th",33),F("click",function(){j(e);const o=v(3);return U(o.dataSorter.changeSortingOrder(o.nameSortData))}),h(9,"div",34)(10,"div",35),p(11),b(12,"translate"),u(),x(13,qIe,2,2,"mat-icon",18),u()(),h(14,"th",36),F("click",function(){j(e);const o=v(3);return U(o.dataSorter.changeSortingOrder(o.locationSortData))}),h(15,"div",34)(16,"div",35),p(17),b(18,"translate"),u(),x(19,KIe,2,2,"mat-icon",18),u()(),h(20,"th",37),b(21,"translate"),F("click",function(){j(e);const o=v(3);return U(o.dataSorter.changeSortingOrder(o.pkSortData))}),h(22,"div",34)(23,"div",35),p(24),b(25,"translate"),u(),x(26,YIe,2,2,"mat-icon",18),u()(),h(27,"th",38),b(28,"translate"),F("click",function(){j(e);const o=v(3);return U(o.dataSorter.changeSortingOrder(o.noteSortData))}),h(29,"div",34)(30,"mat-icon",18),p(31,"info_outline"),u(),x(32,XIe,2,2,"mat-icon",18),u()(),B(33,"th",39),u(),ve(34,tOe,19,25,"tr",40,Fe),u()}if(2&t){const e=v(3);d(2),S(e.currentList===e.lists.History?2:-1),d(),C("matTooltip",y(4,15,"vpn.server-list.country-info")),d(2),C("inline",!0),d(2),S(e.dataSorter.currentSortingColumn===e.countrySortData?7:-1),d(4),E(" ",y(12,17,"vpn.server-list.name-small-table-label")," "),d(2),S(e.dataSorter.currentSortingColumn===e.nameSortData?13:-1),d(4),E(" ",y(18,19,"vpn.server-list.location-small-table-label")," "),d(2),S(e.dataSorter.currentSortingColumn===e.locationSortData?19:-1),d(),C("ngClass",_t(27,wIe,e.currentList===e.lists.Public,e.currentList===e.lists.History))("matTooltip",y(21,21,"vpn.server-list.public-key-info")),d(4),E(" ",y(25,23,"vpn.server-list.public-key-small-table-label")," "),d(2),S(e.dataSorter.currentSortingColumn===e.pkSortData?26:-1),d(),C("matTooltip",y(28,25,"vpn.server-list.note-info")),d(3),C("inline",!0),d(2),S(e.dataSorter.currentSortingColumn===e.noteSortData?32:-1),d(2),ye(e.dataSource)}}function iOe(t,n){if(1&t&&(h(0,"div",27)(1,"div",29),x(2,nOe,36,30,"table",30),u()()),2&t){const e=v(2);d(2),S(e.dataSource.length>0?2:-1)}}function oOe(t,n){if(1&t&&B(0,"app-paginator",28),2&t){const e=v(2);C("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",_t(4,kIe,e.currentLocalPk,e.currentList))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function rOe(t,n){1&t&&(h(0,"span",58),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"vpn.server-list.empty-discovery")))}function sOe(t,n){1&t&&(h(0,"span",58),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"vpn.server-list.empty-history")))}function aOe(t,n){1&t&&(h(0,"span",58),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"vpn.server-list.empty-favorites")))}function lOe(t,n){1&t&&(h(0,"span",58),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"vpn.server-list.empty-blocked")))}function cOe(t,n){1&t&&(h(0,"span",58),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"vpn.server-list.empty-with-filter")))}function dOe(t,n){if(1&t&&(h(0,"div",27)(1,"div",56)(2,"mat-icon",57),p(3,"warning"),u(),x(4,rOe,3,3,"span",58),x(5,sOe,3,3,"span",58),x(6,aOe,3,3,"span",58),x(7,lOe,3,3,"span",58),x(8,cOe,3,3,"span",58),u()()),2&t){const e=v(2);d(2),C("inline",!0),d(2),S(0===e.allServers.length&&e.currentList===e.lists.Public?4:-1),d(),S(0===e.allServers.length&&e.currentList===e.lists.History?5:-1),d(),S(0===e.allServers.length&&e.currentList===e.lists.Favorites?6:-1),d(),S(0===e.allServers.length&&e.currentList===e.lists.Blocked?7:-1),d(),S(0!==e.allServers.length?8:-1)}}function uOe(t,n){if(1&t&&(h(0,"div",2)(1,"div",24),B(2,"app-top-bar",4),u(),h(3,"div",25)(4,"div",6)(5,"div",26),it(6,zIe,1,0,"ng-container",8),u(),x(7,iOe,3,1,"div",27),x(8,oOe,1,7,"app-paginator",28),x(9,dOe,9,6,"div",27),u()()()),2&t){const e=v(),i=Hn(2);d(2),C("titleParts",Ct(10,p6))("tabsData",e.tabsData)("selectedTabIndex",1)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk),d(3),C("ngClass",se(11,CIe,!e.dataFilterer.currentFiltersTexts||e.dataFilterer.currentFiltersTexts.length<1)),d(),C("ngTemplateOutlet",i),d(),S(0!==e.dataSource.length?7:-1),d(),S(e.numberOfPages>1?8:-1),d(),S(0===e.dataSource.length?9:-1)}}var pi=function(t){return t.Public="public",t.History="history",t.Favorites="favorites",t.Blocked="blocked",t}(pi||{});let m6=(()=>{class t extends pn{constructor(e,i,o,r,s,a,l,c,f){super(),this.dialog=e,this.router=i,this.translateService=o,this.route=r,this.vpnClientDiscoveryService=s,this.vpnClientService=a,this.vpnSavedDataService=l,this.snackbarService=c,this.storageService=f,this.persistentServerDataResponseKey="serv-dat-response",this.maxFullListElements=50,this.dateSortData=new Dt(["lastUsed"],"vpn.server-list.date-small-table-label",st.NumberReversed),this.countrySortData=new Dt(["countryName"],"vpn.server-list.country-small-table-label",st.Text),this.nameSortData=new Dt(["name"],"vpn.server-list.name-small-table-label",st.Text),this.locationSortData=new Dt(["location"],"vpn.server-list.location-small-table-label",st.Text),this.pkSortData=new Dt(["pk"],"vpn.server-list.public-key-small-table-label",st.Text),this.noteSortData=new Dt(["note"],"vpn.server-list.note-small-table-label",st.Text),this.loading=!0,this.loadingBackendData=!0,this.tabsData=hi.vpnTabsData,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.currentList=pi.Public,this.vpnRunning=!1,this.serverFlags=_n,this.lists=pi,this.initialLoadStarted=!1,this.navigationsSubscription=r.paramMap.subscribe(m=>{if(m.has("type")?m.get("type")===pi.Favorites?(this.currentList=pi.Favorites,this.listId="vfs"):m.get("type")===pi.Blocked?(this.currentList=pi.Blocked,this.listId="vbs"):m.get("type")===pi.History?(this.currentList=pi.History,this.listId="vhs"):(this.currentList=pi.Public,this.listId="vps"):(this.currentList=pi.Public,this.listId="vps"),hi.setDefaultTabForServerList(this.currentList),m.has("key")&&(this.currentLocalPk=m.get("key"),hi.changeCurrentPk(this.currentLocalPk),this.tabsData=hi.vpnTabsData),m.has("page")){let g=Number.parseInt(m.get("page"),10);(isNaN(g)||g<1)&&(g=1),this.currentPageInUrl=g,this.recalculateElementsToShow()}this.initialLoadStarted||(this.initialLoadStarted=!0,this.loadData(!0))}),this.currentServerSubscription=this.vpnSavedDataService.currentServerObservable.subscribe(m=>this.currentServer=m),this.backendDataSubscription=this.vpnClientService.backendState.subscribe(m=>{m&&(this.loadingBackendData=!1,this.vpnRunning=m.vpnClientAppData.running)})}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.currentServerSubscription.unsubscribe(),this.backendDataSubscription.unsubscribe(),this.dataSortedSubscription&&this.dataSortedSubscription.unsubscribe(),this.dataFiltererSubscription&&this.dataFiltererSubscription.unsubscribe(),this.dataSubscription&&this.dataSubscription.unsubscribe(),this.dataFilterer&&this.dataFilterer.dispose(),this.dataSorter&&this.dataSorter.dispose()}enterManually(){_Ie.openDialog(this.dialog,this.currentLocalPk)}getNoteVar(e){return e.note&&e.personalNote?"vpn.server-list.notes-info":!e.note&&e.personalNote?e.personalNote:e.note}selectServer(e){const i=this.vpnSavedDataService.getSavedVersion(e.pk,!0);if(this.snackbarService.closeCurrentIfTemporaryError(),i&&i.flag===_n.Blocked)this.snackbarService.showError("vpn.starting-blocked-server-error",{},!0);else{if(this.currentServer&&this.currentServer.pk===e.pk){if(this.vpnRunning)this.snackbarService.showWarning("vpn.server-change.already-selected-warning");else{const o=Rt.createConfirmationDialog(this.dialog,"vpn.server-change.start-same-server-confirmation");o.componentInstance.operationAccepted.subscribe(()=>{o.componentInstance.closeModal(),this.vpnClientService.start(),hi.redirectAfterServerChange(this.router,null,this.currentLocalPk)})}return}if(i&&i.usedWithPassword)return void sV.openDialog(this.dialog,!0).afterClosed().subscribe(o=>{o&&this.makeServerChange(e,"-"===o?null:o.substr(1))});this.makeServerChange(e,null)}}makeServerChange(e,i){hi.processServerChange(this.router,this.vpnClientService,this.vpnSavedDataService,this.snackbarService,this.dialog,null,this.currentLocalPk,e.originalLocalData,e.originalDiscoveryData,null,i)}openOptions(e){let i=this.vpnSavedDataService.getSavedVersion(e.pk,!0);i||(i=this.vpnSavedDataService.processFromDiscovery(e.originalDiscoveryData)),i?hi.openServerOptions(i,this.router,this.vpnSavedDataService,this.vpnClientService,this.snackbarService,this.dialog).subscribe(o=>{o&&this.processAllServers()}):this.snackbarService.showError("vpn.unexpedted-error")}loadData(e){if(this.currentList===pi.Public){const i=e?this.getLocalValue(this.persistentServerDataResponseKey):null;let o=this.vpnClientDiscoveryService.getServers();i&&(o=ae(JSON.parse(i.value))),this.dataSubscription=o.subscribe(r=>{i||this.saveLocalValue(this.persistentServerDataResponseKey,JSON.stringify(r)),this.allServers=r.map(s=>({countryCode:s.countryCode,countryName:this.getCountryName(s.countryCode),name:s.name,customName:null,location:s.location,pk:s.pk,note:s.note,personalNote:null,originalDiscoveryData:s})),this.vpnSavedDataService.updateFromDiscovery(r),this.loading=!1,this.processAllServers(),i&&this.loadData(!1)})}else{let i;i=this.currentList===pi.History?this.vpnSavedDataService.history:this.currentList===pi.Favorites?this.vpnSavedDataService.favorites:this.vpnSavedDataService.blocked,this.dataSubscription=i.subscribe(o=>{const r=[];o.forEach(s=>{r.push({countryCode:s.countryCode,countryName:this.getCountryName(s.countryCode),name:s.name,customName:null,location:s.location,pk:s.pk,note:s.note,personalNote:null,lastUsed:s.lastUsed,inHistory:s.inHistory,flag:s.flag,originalLocalData:s})}),this.allServers=r,this.loading=!1,this.processAllServers()})}}processAllServers(){this.fillFilterPropertiesArray();const e=new Set;this.allServers.forEach((c,f)=>{e.add(c.countryCode);const m=this.vpnSavedDataService.getSavedVersion(c.pk,0===f);c.customName=m?m.customName:null,c.personalNote=m?m.personalNote:null,c.inHistory=!!m&&m.inHistory,c.flag=m?m.flag:_n.None,c.enteredManually=!!m&&m.enteredManually,c.usedWithPassword=!!m&&m.usedWithPassword});let i=[];e.forEach(c=>{i.push({label:this.getCountryName(c),value:c,image:"/assets/img/big-flags/"+c.toLowerCase()+".png"})}),i.sort((c,f)=>c.label.localeCompare(f.label)),i=[{label:"vpn.server-list.filter-dialog.country-options.any",value:""}].concat(i),this.filterProperties=[{filterName:"vpn.server-list.filter-dialog.country",keyNameInElementsArray:"countryCode",type:Sn.Select,printableLabelsForValues:i,printableLabelGeneralSettings:{defaultImage:"/assets/img/big-flags/unknown.png",imageWidth:20,imageHeight:15}}].concat(this.filterProperties);const r=[];let s,a,l;this.currentList===pi.Public?(r.push(this.countrySortData),r.push(this.nameSortData),r.push(this.locationSortData),r.push(this.pkSortData),r.push(this.noteSortData),s=0,a=1):(this.currentList===pi.History&&r.push(this.dateSortData),r.push(this.countrySortData),r.push(this.nameSortData),r.push(this.locationSortData),r.push(this.pkSortData),r.push(this.noteSortData),s=this.currentList===pi.History?0:1,a=this.currentList===pi.History?2:3),this.dataSorter=new gu(this.dialog,this.translateService,this.storageService,r,s,this.listId),this.dataSorter.setTieBreakerColumnIndex(a),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataFilterer=new _u(this.dialog,this.route,this.router,this.filterProperties,this.listId),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(c=>{this.filteredServers=c,this.dataSorter.setData(this.filteredServers)}),l=this.currentList===pi.Public?this.allServers.filter(c=>c.flag!==_n.Blocked):this.allServers,this.dataFilterer.setData(l)}fillFilterPropertiesArray(){this.filterProperties=[{filterName:"vpn.server-list.filter-dialog.name",keyNameInElementsArray:"name",secondaryKeyNameInElementsArray:"customName",type:Sn.TextInput,maxlength:100},{filterName:"vpn.server-list.filter-dialog.location",keyNameInElementsArray:"location",type:Sn.TextInput,maxlength:100},{filterName:"vpn.server-list.filter-dialog.public-key",keyNameInElementsArray:"pk",type:Sn.TextInput,maxlength:100}]}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredServers){const e=this.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredServers.length/e),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const i=e*(this.currentPage-1);this.serversToShow=this.filteredServers.slice(i,i+e)}else this.serversToShow=null;this.dataSource=this.serversToShow}getCountryName(e){return es[e.toUpperCase()]?es[e.toUpperCase()]:e}static{this.\u0275fac=function(i){return new(i||t)(O(Ot),O(vt),O(Go),O(Ai),O(vIe),O(hc),O(uc),O(ct),O(ti))}}static{this.\u0275cmp=re({type:t,selectors:[["app-vpn-server-list"]],standalone:!1,features:[be],decls:4,vars:2,consts:[["topPart",""],[1,"d-flex","flex-column","h-100","w-100"],[1,"row"],[1,"loading-top-container"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton","localVpnKey"],[1,"main-container"],[1,"width-limiter"],[1,"center-container","mt-4.5"],[4,"ngTemplateOutlet"],[1,"h-100","loading-indicator"],[1,"option-bar-container"],[1,"rounded-elevated-box","mt-3"],[1,"box-internal-container","allow-overflow"],[1,"option-bar"],[1,"text-option","selected"],[1,"text-option",3,"routerLink"],[1,"option-bar-container","option-bar-margin",3,"ngClass"],[1,"icon-option",3,"click","matTooltip"],[3,"inline"],[1,"option-bar-container","option-bar-margin"],[1,"filter-label","subtle-transparent-button","cursor-pointer"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],[1,"transparent-50"],[1,"item"],[1,"col-12"],[1,"col-12","vpn-table-container"],[1,"center-container","mt-4.5",3,"ngClass"],[1,"rounded-elevated-box"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"box-internal-container"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table"],[1,"sortable-column","date-column","click-effect",3,"matTooltip"],[1,"sortable-column","flag-column","center","click-effect",3,"click","matTooltip"],[1,"sortable-column","name-column","click-effect",3,"click"],[1,"header-container"],[1,"header-text"],[1,"sortable-column","location-column","click-effect",3,"click"],[1,"sortable-column","pk-column","click-effect",3,"click","ngClass","matTooltip"],[1,"sortable-column","note-column","center","click-effect",3,"click","matTooltip"],[1,"actions"],[3,"ngClass"],[1,"sortable-column","date-column","click-effect",3,"click","matTooltip"],[3,"click","ngClass"],[1,"date-column"],[1,"flag-column","icon-fixer"],[1,"flag"],[3,"matTooltip"],[1,"name-column"],[3,"isCurrentServer","isFavorite","isBlocked","isInHistory","hasPassword","name","pk","customName","defaultName"],[1,"location-column"],[1,"pk-column","history-pk-column"],[1,"d-inline-block","w-100",3,"click","shortSimple","text"],[1,"center","note-column"],[1,"note-icon",3,"inline","matTooltip"],["mat-button","",1,"big-action-button","transparent-button","vpn-small-button",3,"click","matTooltip"],[1,"note-icon",3,"click","inline","matTooltip"],[1,"box-internal-container","font-sm"],[1,"alert-icon",3,"inline"],[1,"font-sm"]],template:function(i,o){1&i&&(x(0,MIe,8,7,"div",1),it(1,UIe,31,20,"ng-template",null,0,Rl),x(3,uOe,10,13,"div",2)),2&i&&(S(o.loading||o.loadingBackendData?0:-1),d(3),S(o.loading||o.loadingBackendData?-1:3))},styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .header-container[_ngcontent-%COMP%] .header-text[_ngcontent-%COMP%], .note-column[_ngcontent-%COMP%], .pk-column[_ngcontent-%COMP%], .location-column[_ngcontent-%COMP%], .name-column[_ngcontent-%COMP%], .date-column[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}.center-container[_ngcontent-%COMP%]{text-align:center}.center-container[_ngcontent-%COMP%] app-paginator[_ngcontent-%COMP%]{display:inline-block}.loading-top-container[_ngcontent-%COMP%]{z-index:1}.loading-indicator[_ngcontent-%COMP%]{padding-top:30px;padding-bottom:20px}.deactivated[_ngcontent-%COMP%]{opacity:.5;pointer-events:none}.option-bar-container[_ngcontent-%COMP%]{display:inline-block}.option-bar-container[_ngcontent-%COMP%] .allow-overflow[_ngcontent-%COMP%]{overflow:visible}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%]{display:flex;margin:-17px}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] > div[_ngcontent-%COMP%], .option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{height:55px;line-height:55px;cursor:pointer;color:#fff;text-decoration:none;-webkit-user-select:none;user-select:none}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:hover, .option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{background:#0003}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] > .icon-option[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] a[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:inline-block}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] > .icon-option[_ngcontent-%COMP%]:active span[_ngcontent-%COMP%], .option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:active span[_ngcontent-%COMP%]{transform:scale(.95)}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] .text-option[_ngcontent-%COMP%]{padding:0 40px;font-size:1rem}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] .icon-option[_ngcontent-%COMP%]{width:55px;font-size:24px}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%]{background:#0000005c;cursor:unset!important}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%]:hover{background:#0009}.option-bar-margin[_ngcontent-%COMP%]{margin-left:10px}.filter-label[_ngcontent-%COMP%]{font-size:.7rem;display:inline-block;padding:5px 10px;margin-bottom:7px}.filter-label[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{vertical-align:middle}table[_ngcontent-%COMP%]{width:100%}tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:2px 5px!important;font-size:12px!important;font-weight:400!important}tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{padding-left:5px!important;padding-right:5px!important}.date-column[_ngcontent-%COMP%]{width:150px}.name-column[_ngcontent-%COMP%]{max-width:0;width:20%}.location-column[_ngcontent-%COMP%]{max-width:0;min-width:72px}.pk-column[_ngcontent-%COMP%]{max-width:0;width:25%}.history-pk-column[_ngcontent-%COMP%]{width:20%!important}.icon-fixer[_ngcontent-%COMP%]{line-height:0px}.note-column[_ngcontent-%COMP%]{max-width:0;width:3%;min-width:60px}.note-column[_ngcontent-%COMP%] .note-icon[_ngcontent-%COMP%]{opacity:.55;font-size:16px!important;display:inline}.flag-column[_ngcontent-%COMP%]{width:1px;line-height:0px}.actions[_ngcontent-%COMP%]{width:1px}.header-container[_ngcontent-%COMP%]{max-width:100%;display:inline-flex}.header-container[_ngcontent-%COMP%] .header-text[_ngcontent-%COMP%]{flex-grow:1}.flag[_ngcontent-%COMP%]{width:20px;height:15px;display:inline-block;margin-right:5px;background-image:url(/assets/img/big-flags/unknown.png);background-size:contain}.flag[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{width:20px;height:15px;background-size:contain}.center[_ngcontent-%COMP%]{text-align:center}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}"]})}}return t})();const Tp=(t,n)=>({"small-text-icon":t,"big-text-icon":n});function hOe(t,n){if(1&t&&(h(0,"mat-icon",0),b(1,"translate"),p(2,"done"),u()),2&t){const e=v();C("ngClass",_t(5,Tp,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",y(1,3,"vpn.server-conditions.selected-info"))}}function fOe(t,n){if(1&t&&(h(0,"mat-icon",1),b(1,"translate"),p(2,"clear"),u()),2&t){const e=v();C("ngClass",_t(5,Tp,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",y(1,3,"vpn.server-conditions.blocked-info"))}}function pOe(t,n){if(1&t&&(h(0,"mat-icon",2),b(1,"translate"),p(2,"star"),u()),2&t){const e=v();C("ngClass",_t(5,Tp,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",y(1,3,"vpn.server-conditions.favorite-info"))}}function mOe(t,n){if(1&t&&(h(0,"mat-icon",0),b(1,"translate"),p(2,"history"),u()),2&t){const e=v();C("ngClass",_t(5,Tp,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",y(1,3,"vpn.server-conditions.history-info"))}}function gOe(t,n){if(1&t&&(h(0,"mat-icon",0),b(1,"translate"),p(2,"lock_outlined"),u()),2&t){const e=v();C("ngClass",_t(5,Tp,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",y(1,3,"vpn.server-conditions.has-password-info"))}}function _Oe(t,n){if(1&t&&(p(0),h(1,"mat-icon",3),p(2,"fiber_manual_record"),u(),p(3)),2&t){const e=v();E(" ",e.customName," "),d(),C("inline",!0),d(2),E(" ",e.name,"\n")}}function bOe(t,n){1&t&&p(0),2&t&&E(" ",v().customName,"\n")}function vOe(t,n){1&t&&p(0),2&t&&E(" ",v().name,"\n")}function yOe(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,v().defaultName),"\n")}let g6=(()=>{class t{constructor(){this.isCurrentServer=!1,this.isFavorite=!1,this.isBlocked=!1,this.isInHistory=!1,this.hasPassword=!1,this.name="",this.customName="",this.pk="",this.defaultName="",this.adjustIconsForBigText=!1}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=re({type:t,selectors:[["app-vpn-server-name"]],inputs:{isCurrentServer:"isCurrentServer",isFavorite:"isFavorite",isBlocked:"isBlocked",isInHistory:"isInHistory",hasPassword:"hasPassword",name:"name",customName:"customName",pk:"pk",defaultName:"defaultName",adjustIconsForBigText:"adjustIconsForBigText"},standalone:!1,decls:9,vars:9,consts:[[1,"server-condition-icon",3,"ngClass","inline","matTooltip"],[1,"server-condition-icon","red-clear-text",3,"ngClass","inline","matTooltip"],[1,"server-condition-icon","yellow-clear-text",3,"ngClass","inline","matTooltip"],[1,"name-separator",3,"inline"]],template:function(i,o){1&i&&(x(0,hOe,3,8,"mat-icon",0),x(1,fOe,3,8,"mat-icon",1),x(2,pOe,3,8,"mat-icon",2),x(3,mOe,3,8,"mat-icon",0),x(4,gOe,3,8,"mat-icon",0),x(5,_Oe,4,3),x(6,bOe,1,1),x(7,vOe,1,1),x(8,yOe,2,3)),2&i&&(S(o.isCurrentServer?0:-1),d(),S(o.isBlocked?1:-1),d(),S(o.isFavorite?2:-1),d(),S(o.isInHistory?3:-1),d(),S(o.hasPassword?4:-1),d(),S(!o.customName||!o.name||o.pk&&o.name===o.pk?-1:5),d(),S((!o.name||o.pk&&o.name===o.pk)&&o.customName?6:-1),d(),S(!o.name||o.pk&&o.name===o.pk||o.customName?-1:7),d(),S(o.name&&(!o.pk||o.name!==o.pk)||o.customName?-1:8))},dependencies:[$t,We,Kt,xe],styles:[".server-condition-icon[_ngcontent-%COMP%]{font-size:14px!important;line-height:14px!important;margin-right:3px;position:relative;width:14px!important;-webkit-user-select:none;user-select:none;cursor:default}.small-text-icon[_ngcontent-%COMP%]{top:2px}.big-text-icon[_ngcontent-%COMP%]{top:0}.name-separator[_ngcontent-%COMP%]{display:inline!important;font-size:8px!important;opacity:.5!important}"]})}}return t})();const _6=()=>["vpn.title"],b6=t=>({"disabled-button":t}),COe=(t,n)=>({custom:t,original:n}),Tu=t=>({showValue:!0,showUnit:!0,showPerSecond:!0,limitDecimals:!0,useBits:t}),v6=t=>({showValue:!0,showUnit:!0,showPerSecond:!0,useBits:t}),y6=t=>({showValue:!0,showUnit:!0,useBits:t}),Kv=t=>({time:t});function wOe(t,n){if(1&t&&(h(0,"div",0)(1,"div"),B(2,"app-top-bar",2),u(),B(3,"app-loading-indicator"),u()),2&t){const e=v();d(2),C("titleParts",Ct(5,_6))("tabsData",e.tabsData)("selectedTabIndex",0)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk)}}function xOe(t,n){1&t&&B(0,"mat-spinner",22),2&t&&C("diameter",40)}function SOe(t,n){1&t&&(h(0,"mat-icon",23),p(1,"power_settings_new"),u()),2&t&&C("inline",!0)}function kOe(t,n){if(1&t){const e=oe();h(0,"div",28),B(1,"div",29),u(),h(2,"div",30)(3,"div",31),B(4,"app-vpn-server-name",32),u(),h(5,"div",33),B(6,"app-copy-to-clipboard-text",34),u()(),h(7,"div",35),B(8,"div"),u(),h(9,"div",36)(10,"mat-icon",37),b(11,"translate"),F("click",function(){return j(e),U(v(3).openServerOptions())}),p(12,"settings"),u()()}if(2&t){const e=v(3);d(),no("background-image: url('assets/img/big-flags/"+e.currentRemoteServer.countryCode.toLocaleLowerCase()+".png');"),C("matTooltip",e.getCountryName(e.currentRemoteServer.countryCode)),d(3),C("isFavorite",e.currentRemoteServer.flag===e.serverFlags.Favorite)("isBlocked",e.currentRemoteServer.flag===e.serverFlags.Blocked)("hasPassword",e.currentRemoteServer.usedWithPassword)("name",e.currentRemoteServer.name)("pk",e.currentRemoteServer.pk)("customName",e.currentRemoteServer.customName),d(2),C("shortSimple",!0)("text",e.currentRemoteServer.pk),d(4),C("inline",!0)("matTooltip",y(11,13,"vpn.server-options.tooltip"))}}function DOe(t,n){1&t&&(h(0,"div",25),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"vpn.status-page.no-server")))}function MOe(t,n){if(1&t&&(h(0,"div",26)(1,"mat-icon",23),p(2,"info_outline"),u(),p(3),b(4,"translate"),u()),2&t){const e=v(3);d(),C("inline",!0),d(2),E(" ",pe(4,2,e.getNoteVar(),_t(5,COe,e.currentRemoteServer.personalNote,e.currentRemoteServer.note))," ")}}function TOe(t,n){if(1&t&&(h(0,"div",27)(1,"mat-icon",23),p(2,"cancel"),u(),p(3),b(4,"translate"),u()),2&t){const e=v(3);d(),C("inline",!0),d(2),gt(" ",y(4,3,"vpn.status-page.last-error")," ",e.backendState.vpnClientAppData.lastErrorMsg," ")}}function EOe(t,n){if(1&t){const e=oe();h(0,"div",6)(1,"div",9)(2,"div",11),p(3),b(4,"translate"),u(),h(5,"div")(6,"div",18),F("click",function(){return j(e),U(v(2).start())}),h(7,"div",19),B(8,"div",20),u(),h(9,"div",19),B(10,"div",21),u(),x(11,xOe,1,1,"mat-spinner",22),x(12,SOe,2,1,"mat-icon",23),u()(),h(13,"div",24),x(14,kOe,13,15),x(15,DOe,3,3,"div",25),u(),h(16,"div"),x(17,MOe,5,8,"div",26),u(),h(18,"div"),x(19,TOe,5,5,"div",27),u()()()}if(2&t){const e=v(2);d(3),M(y(4,8,"vpn.status-page.start-title")),d(3),C("ngClass",se(10,b6,e.showBusy)),d(5),S(e.showBusy?11:-1),d(),S(e.showBusy?-1:12),d(2),S(e.currentRemoteServer?14:-1),d(),S(e.currentRemoteServer?-1:15),d(2),S(e.currentRemoteServer&&(e.currentRemoteServer.note||e.currentRemoteServer.personalNote)?17:-1),d(2),S(e.backendState&&e.backendState.vpnClientAppData&&e.backendState.vpnClientAppData.lastErrorMsg?19:-1)}}function POe(t,n){if(1&t&&(h(0,"div",44)(1,"mat-icon",23),p(2,"cancel"),u(),p(3),b(4,"translate"),u()),2&t){const e=v(3);d(),C("inline",!0),d(2),gt(" ",y(4,3,"vpn.status-page.last-error")," ",e.backendState.vpnClientAppData.connectionData.error," ")}}function IOe(t,n){1&t&&(h(0,"div"),B(1,"mat-spinner",22),u()),2&t&&(d(),C("diameter",24))}function OOe(t,n){1&t&&(h(0,"mat-icon",23),p(1,"power_settings_new"),u()),2&t&&C("inline",!0)}function AOe(t,n){if(1&t){const e=oe();h(0,"div",7)(1,"div",9)(2,"div",38)(3,"div",39)(4,"mat-icon",23),p(5,"timer"),u(),h(6,"span"),p(7),u()()(),h(8,"div",40),p(9),b(10,"translate"),u(),h(11,"div",41)(12,"div",42),p(13),b(14,"translate"),u(),B(15,"div"),u(),h(16,"div",43),p(17),b(18,"translate"),u(),x(19,POe,5,5,"div",44),h(20,"div",45)(21,"div",46),b(22,"translate"),h(23,"div",47),B(24,"app-line-chart",48),u(),h(25,"div",49)(26,"div",50)(27,"div",51),p(28),b(29,"autoScale"),u(),B(30,"div",52),u()(),h(31,"div",49)(32,"div",53)(33,"div",51),p(34),b(35,"autoScale"),u(),B(36,"div",52),u()(),h(37,"div",49)(38,"div",54)(39,"div",51),p(40),b(41,"autoScale"),u()()(),h(42,"div",55)(43,"mat-icon",56),p(44,"keyboard_backspace"),u(),h(45,"div",57),p(46),b(47,"autoScale"),u(),h(48,"div",58),p(49),b(50,"autoScale"),b(51,"translate"),u()()(),h(52,"div",46),b(53,"translate"),h(54,"div",47),B(55,"app-line-chart",48),u(),h(56,"div",59)(57,"div",50)(58,"div",51),p(59),b(60,"autoScale"),u(),B(61,"div",52),u()(),h(62,"div",49)(63,"div",53)(64,"div",51),p(65),b(66,"autoScale"),u(),B(67,"div",52),u()(),h(68,"div",49)(69,"div",54)(70,"div",51),p(71),b(72,"autoScale"),u()()(),h(73,"div",55)(74,"mat-icon",60),p(75,"keyboard_backspace"),u(),h(76,"div",57),p(77),b(78,"autoScale"),u(),h(79,"div",58),p(80),b(81,"autoScale"),b(82,"translate"),u()()()(),h(83,"div",61)(84,"div",62),b(85,"translate"),h(86,"div",47),B(87,"app-line-chart",63),u(),h(88,"div",59)(89,"div",50)(90,"div",51),p(91),b(92,"translate"),u(),B(93,"div",52),u()(),h(94,"div",49)(95,"div",53)(96,"div",51),p(97),b(98,"translate"),u(),B(99,"div",52),u()(),h(100,"div",49)(101,"div",54)(102,"div",51),p(103),b(104,"translate"),u()()(),h(105,"div",55)(106,"mat-icon",23),p(107,"swap_horiz"),u(),h(108,"div"),p(109),b(110,"translate"),u()()()(),h(111,"div",64),F("click",function(){return j(e),U(v(2).stop())}),h(112,"div",65)(113,"div",66),x(114,IOe,2,1,"div"),x(115,OOe,2,1,"mat-icon",23),h(116,"span"),p(117),b(118,"translate"),u()()()()()()}if(2&t){const e=v(2);d(4),C("inline",!0),d(3),M(e.connectionTimeString),d(2),M(y(10,58,"vpn.connection-info.state-title")),d(4),M(y(14,60,e.currentStateText)),d(2),Ze("state-line "+e.currentStateLineClass),d(2),M(y(18,62,e.currentStateText+"-info")),d(2),S(e.backendState&&e.backendState.vpnClientAppData&&e.backendState.vpnClientAppData.connectionData&&e.backendState.vpnClientAppData.connectionData.error?19:-1),d(2),C("matTooltip",y(22,64,"vpn.status-page.upload-info")),d(3),C("animated",!1)("data",e.sentHistory)("min",e.minUploadInGraph)("max",e.maxUploadInGraph),d(4),E(" ",pe(29,66,e.maxUploadInGraph,se(118,Tu,e.showSpeedsInBits))," "),d(2),no("margin-top: "+e.graphsTopInternalMargin+"px;"),d(4),E(" ",pe(35,69,e.midUploadInGraph,se(120,Tu,e.showSpeedsInBits))," "),d(2),no("margin-top: "+e.graphsTopInternalMargin/2+"px;"),d(4),E(" ",pe(41,72,e.minUploadInGraph,se(122,Tu,e.showSpeedsInBits))," "),d(3),C("inline",!0),d(3),M(pe(47,75,e.uploadSpeed,se(124,v6,e.showSpeedsInBits))),d(3),gt(" ",pe(50,78,e.totalUploaded,se(126,y6,e.showTotalsInBits))," ",y(51,81,"vpn.status-page.total-data-label")," "),d(3),C("matTooltip",y(53,83,"vpn.status-page.download-info")),d(3),C("animated",!1)("data",e.receivedHistory)("min",e.minDownloadInGraph)("max",e.maxDownloadInGraph),d(4),E(" ",pe(60,85,e.maxDownloadInGraph,se(128,Tu,e.showSpeedsInBits))," "),d(2),no("margin-top: "+e.graphsTopInternalMargin+"px;"),d(4),E(" ",pe(66,88,e.midDownloadInGraph,se(130,Tu,e.showSpeedsInBits))," "),d(2),no("margin-top: "+e.graphsTopInternalMargin/2+"px;"),d(4),E(" ",pe(72,91,e.minDownloadInGraph,se(132,Tu,e.showSpeedsInBits))," "),d(3),C("inline",!0),d(3),M(pe(78,94,e.downloadSpeed,se(134,v6,e.showSpeedsInBits))),d(3),gt(" ",pe(81,97,e.totalDownloaded,se(136,y6,e.showTotalsInBits))," ",y(82,100,"vpn.status-page.total-data-label")," "),d(4),C("matTooltip",y(85,102,"vpn.status-page.latency-info")),d(3),C("animated",!1)("data",e.latencyHistory)("min",e.minLatencyInGraph)("max",e.maxLatencyInGraph),d(4),E(" ",pe(92,104,"common."+e.getLatencyValueString(e.maxLatencyInGraph),se(138,Kv,e.getPrintableLatency(e.maxLatencyInGraph)))," "),d(2),no("margin-top: "+e.graphsTopInternalMargin+"px;"),d(4),E(" ",pe(98,107,"common."+e.getLatencyValueString(e.midLatencyInGraph),se(140,Kv,e.getPrintableLatency(e.midLatencyInGraph)))," "),d(2),no("margin-top: "+e.graphsTopInternalMargin/2+"px;"),d(4),E(" ",pe(104,110,"common."+e.getLatencyValueString(e.minLatencyInGraph),se(142,Kv,e.getPrintableLatency(e.minLatencyInGraph)))," "),d(3),C("inline",!0),d(3),M(pe(110,113,"common."+e.getLatencyValueString(e.latency),se(144,Kv,e.getPrintableLatency(e.latency)))),d(2),C("ngClass",se(146,b6,e.showBusy)),d(3),S(e.showBusy?114:-1),d(),S(e.showBusy?-1:115),d(2),M(y(118,116,"vpn.status-page.disconnect"))}}function ROe(t,n){1&t&&p(0),2&t&&E(" ",v(3).currentIp," ")}function FOe(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"common.unknown")," ")}function NOe(t,n){1&t&&B(0,"mat-spinner",22),2&t&&C("diameter",20)}function LOe(t,n){1&t&&(h(0,"mat-icon",67),b(1,"translate"),p(2,"warning"),u()),2&t&&C("inline",!0)("matTooltip",y(1,2,"vpn.status-page.data.ip-problem-info"))}function BOe(t,n){if(1&t){const e=oe();h(0,"mat-icon",69),b(1,"translate"),F("click",function(){return j(e),U(v(3).getIp())}),p(2,"refresh"),u()}2&t&&C("inline",!0)("matTooltip",y(1,2,"vpn.status-page.data.ip-refresh-info"))}function VOe(t,n){if(1&t&&(h(0,"div",12),x(1,ROe,1,1),x(2,FOe,2,3),x(3,NOe,1,1,"mat-spinner",22),x(4,LOe,3,4,"mat-icon",67),x(5,BOe,3,4,"mat-icon",68),u()),2&t){const e=v(2);d(),S(e.currentIp?1:-1),d(),S(e.currentIp||e.loadingCurrentIp?-1:2),d(),S(e.loadingCurrentIp?3:-1),d(),S(e.problemGettingIp?4:-1),d(),S(e.loadingCurrentIp?-1:5)}}function HOe(t,n){1&t&&(h(0,"div",12),p(1),b(2,"translate"),u()),2&t&&(d(),E(" ",y(2,1,"vpn.status-page.data.unavailable")," "))}function jOe(t,n){1&t&&p(0),2&t&&E(" ",v(3).ipCountry," ")}function UOe(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"common.unknown")," ")}function zOe(t,n){1&t&&B(0,"mat-spinner",22),2&t&&C("diameter",20)}function $Oe(t,n){1&t&&(h(0,"mat-icon",67),b(1,"translate"),p(2,"warning"),u()),2&t&&C("inline",!0)("matTooltip",y(1,2,"vpn.status-page.data.ip-country-problem-info"))}function WOe(t,n){if(1&t&&(h(0,"div",12),x(1,jOe,1,1),x(2,UOe,2,3),x(3,zOe,1,1,"mat-spinner",22),x(4,$Oe,3,4,"mat-icon",67),u()),2&t){const e=v(2);d(),S(e.ipCountry?1:-1),d(),S(e.ipCountry||e.loadingCurrentIp?-1:2),d(),S(e.loadingCurrentIp?3:-1),d(),S(e.problemGettingIp?4:-1)}}function GOe(t,n){1&t&&(h(0,"div",12),p(1),b(2,"translate"),u()),2&t&&(d(),E(" ",y(2,1,"vpn.status-page.data.unavailable")," "))}function qOe(t,n){if(1&t){const e=oe();h(0,"div")(1,"div",11),p(2),b(3,"translate"),u(),h(4,"div",12),B(5,"app-vpn-server-name",70),h(6,"mat-icon",69),b(7,"translate"),F("click",function(){return j(e),U(v(2).openServerOptions())}),p(8,"settings"),u()()()}if(2&t){const e=v(2);d(2),M(y(3,10,"vpn.status-page.data.server")),d(3),C("isFavorite",e.currentRemoteServer.flag===e.serverFlags.Favorite)("isBlocked",e.currentRemoteServer.flag===e.serverFlags.Blocked)("hasPassword",e.currentRemoteServer.usedWithPassword)("adjustIconsForBigText",!0)("name",e.currentRemoteServer.name)("pk",e.currentRemoteServer.pk)("customName",e.currentRemoteServer.customName),d(),C("inline",!0)("matTooltip",y(7,12,"vpn.server-options.tooltip"))}}function KOe(t,n){1&t&&B(0,"div",13)}function YOe(t,n){if(1&t&&(h(0,"div")(1,"div",11),p(2),b(3,"translate"),u(),h(4,"div",16),p(5),u()()),2&t){const e=v(2);d(2),M(y(3,2,"vpn.status-page.data.server-note")),d(3),E(" ",e.currentRemoteServer.personalNote," ")}}function XOe(t,n){1&t&&B(0,"div",13)}function ZOe(t,n){if(1&t&&(h(0,"div")(1,"div",11),p(2),b(3,"translate"),u(),h(4,"div",16),p(5),u()()),2&t){const e=v(2);d(2),M(y(3,2,"vpn.status-page.data."+(e.currentRemoteServer.personalNote?"original-":"")+"server-note")),d(3),E(" ",e.currentRemoteServer.note," ")}}function QOe(t,n){1&t&&B(0,"div",13)}function JOe(t,n){if(1&t&&(h(0,"div")(1,"div",11),p(2),b(3,"translate"),u(),h(4,"div",16),B(5,"app-copy-to-clipboard-text",17),u()()),2&t){const e=v(2);d(2),M(y(3,2,"vpn.status-page.data.remote-pk")),d(3),C("text",e.currentRemoteServer.pk)}}function eAe(t,n){1&t&&B(0,"div",13)}function tAe(t,n){if(1&t&&(h(0,"div",1)(1,"div",3)(2,"div",4),B(3,"app-top-bar",2),u()(),h(4,"div",5),x(5,EOe,20,12,"div",6),x(6,AOe,119,148,"div",7),h(7,"div",8)(8,"div",9)(9,"div",10)(10,"div")(11,"div",11),p(12),b(13,"translate"),u(),x(14,VOe,6,5,"div",12),x(15,HOe,3,3,"div",12),u(),B(16,"div",13),h(17,"div")(18,"div",11),p(19),b(20,"translate"),u(),x(21,WOe,5,4,"div",12),x(22,GOe,3,3,"div",12),u(),B(23,"div",14)(24,"div",15)(25,"div",14),x(26,qOe,9,14,"div"),x(27,KOe,1,0,"div",13),x(28,YOe,6,4,"div"),x(29,XOe,1,0,"div",13),x(30,ZOe,6,4,"div"),x(31,QOe,1,0,"div",13),x(32,JOe,6,4,"div"),x(33,eAe,1,0,"div",13),h(34,"div")(35,"div",11),p(36),b(37,"translate"),u(),h(38,"div",16),B(39,"app-copy-to-clipboard-text",17),u()()()()()()()),2&t){const e=v();d(3),C("titleParts",Ct(29,_6))("tabsData",e.tabsData)("selectedTabIndex",0)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk),d(2),S(e.showStarted?-1:5),d(),S(e.showStarted?6:-1),d(6),M(y(13,23,"vpn.status-page.data.ip")),d(2),S(e.ipInfoAllowed?14:-1),d(),S(e.ipInfoAllowed?-1:15),d(4),M(y(20,25,"vpn.status-page.data.country")),d(2),S(e.ipInfoAllowed?21:-1),d(),S(e.ipInfoAllowed?-1:22),d(4),S(e.showStarted&&e.currentRemoteServer?26:-1),d(),S(e.showStarted&&e.currentRemoteServer?27:-1),d(),S(e.showStarted&&e.currentRemoteServer&&e.currentRemoteServer.personalNote?28:-1),d(),S(e.showStarted&&e.currentRemoteServer&&e.currentRemoteServer.personalNote?29:-1),d(),S(e.showStarted&&e.currentRemoteServer&&e.currentRemoteServer.note?30:-1),d(),S(e.showStarted&&e.currentRemoteServer&&e.currentRemoteServer.note?31:-1),d(),S(e.showStarted&&e.currentRemoteServer?32:-1),d(),S(e.showStarted&&e.currentRemoteServer?33:-1),d(3),M(y(37,27,"vpn.status-page.data.local-pk")),d(3),C("text",e.currentLocalPk)}}let nAe=(()=>{class t extends pn{constructor(e,i,o,r,s,a){super(),this.vpnClientService=e,this.vpnSavedDataService=i,this.snackbarService=o,this.route=r,this.dialog=s,this.router=a,this.persistentServerDataResponseKey="serv-dat-response",this.tabsData=hi.vpnTabsData,this.sentHistory=[0,0,0,0,0,0,0,0,0,0],this.receivedHistory=[0,0,0,0,0,0,0,0,0,0],this.latencyHistory=[0,0,0,0,0,0,0,0,0,0],this.minUploadInGraph=0,this.midUploadInGraph=0,this.maxUploadInGraph=0,this.minDownloadInGraph=0,this.midDownloadInGraph=0,this.maxDownloadInGraph=0,this.minLatencyInGraph=0,this.midLatencyInGraph=0,this.maxLatencyInGraph=0,this.graphsTopInternalMargin=Gv.topInternalMargin,this.connectionTimeString="00:00:00",this.calculatedSegs=-1,this.uploadSpeed=0,this.downloadSpeed=0,this.totalUploaded=0,this.totalDownloaded=0,this.latency=0,this.showSpeedsInBits=!0,this.showTotalsInBits=!1,this.loading=!0,this.showStartedLastValue=!1,this.showStarted=!1,this.lastAppState=null,this.showBusy=!1,this.stopRequested=!1,this.loadingCurrentIp=!0,this.problemGettingIp=!1,this.serverFlags=_n,this.ipInfoAllowed=this.vpnSavedDataService.getCheckIpSetting();const l=this.vpnSavedDataService.getDataUnitsSetting();l===Zo.OnlyBits?(this.showSpeedsInBits=!0,this.showTotalsInBits=!0):l===Zo.OnlyBytes?(this.showSpeedsInBits=!1,this.showTotalsInBits=!1):(this.showSpeedsInBits=!0,this.showTotalsInBits=!1)}ngOnInit(){return this.navigationsSubscription=this.route.paramMap.subscribe(e=>{e.has("key")&&(this.currentLocalPk=e.get("key"),hi.changeCurrentPk(this.currentLocalPk),this.tabsData=hi.vpnTabsData),setTimeout(()=>this.navigationsSubscription.unsubscribe()),this.startGettingData(!0),this.currentRemoteServerSubscription=this.vpnSavedDataService.currentServerObservable.subscribe(i=>{this.currentRemoteServer=i})}),super.ngOnInit()}startGettingData(e){const i=e?this.getLocalValue(this.persistentServerDataResponseKey):null;let o=this.vpnClientService.backendState;i&&(o=ae(JSON.parse(i.value))),this.dataSubscription=o.subscribe(r=>{if(i||this.saveLocalValue(this.persistentServerDataResponseKey,JSON.stringify(r)),r&&r.serviceState!==Ri.PerformingInitialCheck){if(this.backendState=r,r.publicIp?(this.currentIp=r.publicIp,this.problemGettingIp=!1):this.currentIp=null,this.ipCountry=r.countryName?r.countryName:null,this.loadingCurrentIp=!1,this.showStarted=r.vpnClientAppData.running||r.vpnClientAppData.appState!==an.Stopped,this.showStartedLastValue!==this.showStarted){for(let s=0;s<10;s++)this.receivedHistory[s]=0,this.sentHistory[s]=0,this.latencyHistory[s]=0;this.updateGraphLimits(),this.uploadSpeed=0,this.downloadSpeed=0,this.totalUploaded=0,this.totalDownloaded=0,this.latency=0}if(this.lastAppState=r.vpnClientAppData.appState,this.showStartedLastValue=this.showStarted,this.stopRequested?this.showStarted||(this.stopRequested=!1,this.showBusy=r.busy):this.showBusy=r.busy,r.vpnClientAppData.connectionData){for(let s=0;s<10;s++)this.receivedHistory[s]=r.vpnClientAppData.connectionData.downloadSpeedHistory[s],this.sentHistory[s]=r.vpnClientAppData.connectionData.uploadSpeedHistory[s],this.latencyHistory[s]=r.vpnClientAppData.connectionData.latencyHistory[s];this.updateGraphLimits(),this.uploadSpeed=r.vpnClientAppData.connectionData.uploadSpeed,this.downloadSpeed=r.vpnClientAppData.connectionData.downloadSpeed,this.totalUploaded=r.vpnClientAppData.connectionData.totalUploaded,this.totalDownloaded=r.vpnClientAppData.connectionData.totalDownloaded,this.latency=r.vpnClientAppData.connectionData.latency}r.vpnClientAppData.running&&r.vpnClientAppData.appState===an.Running&&r.vpnClientAppData.connectionData&&r.vpnClientAppData.connectionData.connectionDuration?(-1===this.calculatedSegs||r.vpnClientAppData.connectionData.connectionDuration>this.calculatedSegs+2||r.vpnClientAppData.connectionData.connectionDuration{this.calculatedSegs+=1,this.refreshConnectionTimeString()})):this.timeUpdateSubscription&&(this.timeUpdateSubscription.unsubscribe(),this.timeUpdateSubscription=null,this.calculatedSegs=-1,this.connectionTimeString="00:00:00"),this.loading=!1}i&&this.startGettingData(!1)})}refreshConnectionTimeString(){const e=this.calculatedSegs%60,i=Math.floor(this.calculatedSegs/60),o=i%60,r=Math.floor(i/60);this.connectionTimeString=String(r).padStart(2,"0")+":"+String(o).padStart(2,"0")+":"+String(e).padStart(2,"0")}ngOnDestroy(){this.dataSubscription.unsubscribe(),this.navigationsSubscription.unsubscribe(),this.currentRemoteServerSubscription.unsubscribe(),this.closeOperationSubscription(),this.timeUpdateSubscription&&this.timeUpdateSubscription.unsubscribe()}start(){if(!this.currentRemoteServer)return this.router.navigate(["vpn",this.currentLocalPk,"servers"]),void setTimeout(()=>this.snackbarService.showWarning("vpn.status-page.select-server-warning"),100);this.currentRemoteServer.flag!==_n.Blocked?(this.showBusy=!0,this.vpnClientService.start()):this.snackbarService.showError("vpn.starting-blocked-server-error")}stop(){if(!this.backendState.vpnClientAppData.killswitch)return void this.finishStoppingVpn();const e=Rt.createConfirmationDialog(this.dialog,"vpn.status-page.disconnect-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.closeModal(),this.finishStoppingVpn()})}finishStoppingVpn(){this.stopRequested=!0,this.showBusy=!0,this.vpnClientService.stop()}openServerOptions(){hi.openServerOptions(this.currentRemoteServer,this.router,this.vpnSavedDataService,this.vpnClientService,this.snackbarService,this.dialog).subscribe()}getCountryName(e){return es[e.toUpperCase()]?es[e.toUpperCase()]:e}getNoteVar(){return this.currentRemoteServer.note&&this.currentRemoteServer.personalNote?"vpn.server-list.notes-info":!this.currentRemoteServer.note&&this.currentRemoteServer.personalNote?this.currentRemoteServer.personalNote:this.currentRemoteServer.note}getLatencyValueString(e){return hi.getLatencyValueString(e)}getPrintableLatency(e){return hi.getPrintableLatency(e)}get currentStateText(){return this.backendState.vpnClientAppData.appState===an.Stopped?"vpn.connection-info.state-disconnected":this.backendState.vpnClientAppData.appState===an.Connecting?"vpn.connection-info.state-connecting":this.backendState.vpnClientAppData.appState===an.Running?"vpn.connection-info.state-connected":this.backendState.vpnClientAppData.appState===an.ShuttingDown?"vpn.connection-info.state-disconnecting":this.backendState.vpnClientAppData.appState===an.Reconnecting?"vpn.connection-info.state-reconnecting":void 0}get currentStateLineClass(){return this.backendState.vpnClientAppData.appState===an.Stopped?"red-line":this.backendState.vpnClientAppData.appState===an.Connecting?"yellow-line":this.backendState.vpnClientAppData.appState===an.Running?"green-line":"yellow-line"}closeOperationSubscription(){this.operationSubscription&&this.operationSubscription.unsubscribe()}updateGraphLimits(){const e=this.calculateGraphLimits(this.sentHistory);this.minUploadInGraph=e[0],this.midUploadInGraph=e[1],this.maxUploadInGraph=e[2];const i=this.calculateGraphLimits(this.receivedHistory);this.minDownloadInGraph=i[0],this.midDownloadInGraph=i[1],this.maxDownloadInGraph=i[2];const o=this.calculateGraphLimits(this.latencyHistory);this.minLatencyInGraph=o[0],this.midLatencyInGraph=o[1],this.maxLatencyInGraph=o[2]}calculateGraphLimits(e){let o=0;return e.forEach(s=>{s>o&&(o=s)}),0===o&&(o+=1),[0,new fv(o).minus(0).dividedBy(2).plus(0).decimalPlaces(1).toNumber(),o]}getIp(){this.ipInfoAllowed&&(this.vpnClientService.updateData(),this.snackbarService.showDone("common.refreshed"))}static{this.\u0275fac=function(i){return new(i||t)(O(hc),O(uc),O(ct),O(Ai),O(Ot),O(vt))}}static{this.\u0275cmp=re({type:t,selectors:[["app-vpn-status"]],standalone:!1,features:[be],decls:2,vars:2,consts:[[1,"d-flex","flex-column","h-100","w-100"],[1,"general-container"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton","localVpnKey"],[1,"row"],[1,"col-12"],[1,"row","flex-1"],[1,"col-7","column","left-area"],[1,"col-7","column","left-area-connected"],[1,"col-5","column","right-area"],[1,"column-container"],[1,"content-area"],[1,"title"],[1,"big-text"],[1,"margin"],[1,"big-margin"],[1,"separator"],[1,"small-text"],[3,"text"],[1,"start-button",3,"click","ngClass"],[1,"start-button-img-container"],[1,"start-button-img"],[1,"start-button-img","animated-button"],[3,"diameter"],[3,"inline"],[1,"current-server"],[1,"none"],[1,"lower-text","current-server-note"],[1,"lower-text","last-error"],[1,"flag"],[3,"matTooltip"],[1,"text-container"],[1,"top-line"],["defaultName","vpn.unnamed",3,"isFavorite","isBlocked","hasPassword","name","pk","customName"],[1,"bottom-line"],[3,"shortSimple","text"],[1,"icon-button-separator"],[1,"icon-button"],[1,"transparent-button","vpn-small-button",3,"click","inline","matTooltip"],[1,"time-container"],[1,"time-content"],[1,"state-title"],[1,"d-inline-block"],[1,"state-text"],[1,"state-explanation"],[1,"last-connected-error"],[1,"data-container"],[1,"rounded-elevated-box","data-box","big-box",3,"matTooltip"],[1,"chart-container"],["height","140","color","#00000080",3,"animated","data","min","max"],[1,"chart-label"],[1,"label-container","label-top"],[1,"label"],[1,"line"],[1,"label-container","label-mid"],[1,"label-container","label-bottom"],[1,"content"],[1,"upload",3,"inline"],[1,"speed"],[1,"total"],[1,"chart-label","top-chart-label"],[1,"download",3,"inline"],[1,"latency-container"],[1,"rounded-elevated-box","data-box","small-box",3,"matTooltip"],["height","50","color","#00000080",3,"animated","data","min","max"],[1,"disconnect-button",3,"click","ngClass"],[1,"disconnect-button-container"],[1,"d-inline-flex"],[1,"small-icon","blinking",3,"inline","matTooltip"],[1,"big-icon","transparent-button","vpn-small-button",3,"inline","matTooltip"],[1,"big-icon","transparent-button","vpn-small-button",3,"click","inline","matTooltip"],["defaultName","vpn.unnamed",3,"isFavorite","isBlocked","hasPassword","adjustIconsForBigText","name","pk","customName"]],template:function(i,o){1&i&&(x(0,wOe,4,6,"div",0),x(1,tAe,40,30,"div",1)),2&i&&(S(o.loading?0:-1),d(),S(o.loading?-1:1))},dependencies:[$t,We,Kt,so,op,Gv,Yr,Mr,g6,xe,rp],styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .bottom-line[_ngcontent-%COMP%], .left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .top-line[_ngcontent-%COMP%], .left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .none[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}.general-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%}.column[_ngcontent-%COMP%]{height:100%;display:flex;align-items:center;padding-top:40px;padding-bottom:20px}.column[_ngcontent-%COMP%] .column-container[_ngcontent-%COMP%]{width:100%;text-align:center}.left-area-connected[_ngcontent-%COMP%] .time-container[_ngcontent-%COMP%]{background:#000000b3;border-radius:100px;font-size:.8rem;padding:8px 15px;display:inline-block}.left-area-connected[_ngcontent-%COMP%] .time-container[_ngcontent-%COMP%] .time-content[_ngcontent-%COMP%]{color:#bbb}.left-area-connected[_ngcontent-%COMP%] .time-container[_ngcontent-%COMP%] .time-content[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:10px}.left-area-connected[_ngcontent-%COMP%] .time-container[_ngcontent-%COMP%] .time-content[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{vertical-align:top}.left-area-connected[_ngcontent-%COMP%] .state-title[_ngcontent-%COMP%]{font-size:1rem;color:#bbb}.left-area-connected[_ngcontent-%COMP%] .state-text[_ngcontent-%COMP%]{font-size:2rem;text-transform:uppercase}.left-area-connected[_ngcontent-%COMP%] .state-line[_ngcontent-%COMP%]{height:1px;width:100%;margin-bottom:5px}.left-area-connected[_ngcontent-%COMP%] .green-line[_ngcontent-%COMP%]{background-color:#2ecc54}.left-area-connected[_ngcontent-%COMP%] .yellow-line[_ngcontent-%COMP%]{background-color:#d48b05}.left-area-connected[_ngcontent-%COMP%] .red-line[_ngcontent-%COMP%]{background-color:#da3439}.left-area-connected[_ngcontent-%COMP%] .state-explanation[_ngcontent-%COMP%]{font-size:.7rem}.left-area-connected[_ngcontent-%COMP%] .last-connected-error[_ngcontent-%COMP%]{margin-top:15px;font-size:.8rem;color:#ff393f}.left-area-connected[_ngcontent-%COMP%] .last-connected-error[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:2px;display:inline;-webkit-user-select:none;user-select:none}.left-area-connected[_ngcontent-%COMP%] .data-container[_ngcontent-%COMP%]{margin-top:20px}.left-area-connected[_ngcontent-%COMP%] .latency-container[_ngcontent-%COMP%]{margin-bottom:20px}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%]{cursor:default;display:inline-block}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-container[_ngcontent-%COMP%]{height:0px;position:relative;top:-3px;left:-3px}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%]{height:0px;text-align:left}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%]{position:relative;top:-3px;left:-3px;display:flex;margin-right:-6px}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{font-size:.6rem;margin-left:5px;opacity:.2}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%] .line[_ngcontent-%COMP%]{height:1px;width:10px;background-color:#fff;flex-grow:1;opacity:.1;margin-left:10px;margin-right:5px}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-top[_ngcontent-%COMP%]{align-items:flex-start}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-mid[_ngcontent-%COMP%]{align-items:center}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-bottom[_ngcontent-%COMP%]{align-items:flex-end;position:relative;top:-6px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%]{width:170px;height:140px;margin:5px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .chart-container[_ngcontent-%COMP%]{width:170px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]{width:170px;height:140px;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;padding-bottom:20px;position:relative;top:-3px;left:-3px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:25px;transform:rotate(-90deg);width:40px;height:40px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .download[_ngcontent-%COMP%]{transform:rotate(-90deg)}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .upload[_ngcontent-%COMP%]{transform:rotate(90deg)}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .speed[_ngcontent-%COMP%]{font-size:.875rem}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .total[_ngcontent-%COMP%]{font-size:.8rem;color:#bbb}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%]{height:140px}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%]{width:352px;height:50px}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%] .chart-container[_ngcontent-%COMP%]{width:352px}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]{display:inline-flex;align-items:center;height:100%;font-size:.875rem;position:relative}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px;height:25px;margin-right:5px}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%]{height:50px}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%]{background:linear-gradient(#940000,#7b0000) no-repeat!important;box-shadow:5px 5px 7px #00000080;width:352px;font-size:24px;display:inline-block;border-radius:10px;overflow:hidden;cursor:pointer;-webkit-user-select:none;user-select:none}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%]:hover{background:linear-gradient(#a10000,#900000) no-repeat!important}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%]:active{transform:scale(.98);box-shadow:0 0 7px #00000080}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%]{background-image:url(/assets/img/background-pattern.png);padding:12px}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:10px;align-self:center}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%]{display:inline-block;position:relative;top:4px;margin-right:10px;align-self:center}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{position:relative;top:-2px;line-height:1.7}.left-area[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-size:1.25rem;font-weight:700;text-align:center;text-transform:uppercase}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%]{text-align:center;margin:10px 0;cursor:pointer;display:inline-block;width:140px;height:140px}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%]:active mat-icon[_ngcontent-%COMP%]{transform:scale(.9)}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%]:hover .start-button-img-container[_ngcontent-%COMP%]{opacity:1}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{text-shadow:0px 0px 5px white}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .start-button-img-container[_ngcontent-%COMP%]{width:0px;height:0px;opacity:.7}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .start-button-img-container[_ngcontent-%COMP%] .start-button-img[_ngcontent-%COMP%]{display:inline-block;background-image:url(/assets/img/start-button.png);background-size:contain;width:140px;height:140px}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .start-button-img-container[_ngcontent-%COMP%] .animated-button[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_button-animation 4s linear infinite;pointer-events:none}@keyframes _ngcontent-%COMP%_button-animation{0%{transform:scale(1.5);opacity:0}25%{transform:scale(1);opacity:.8}50%{transform:scale(1.5);opacity:0}to{transform:scale(1.5);opacity:0}}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{line-height:140px;font-size:50px;-webkit-user-select:none;user-select:none;text-shadow:0px 0px 2px white}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%]{display:inline-block;margin-top:50px;opacity:.5}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%]{display:inline-flex;background:#000000b3;border-radius:10px;padding:10px 15px;max-width:280px;text-align:left}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .none[_ngcontent-%COMP%]{font-size:.875rem}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .flag[_ngcontent-%COMP%]{background-image:url(/assets/img/big-flags/unknown.png);width:20px;height:15px;background-size:contain;align-self:center;flex-shrink:0;margin-right:12px}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .flag[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{width:20px;height:15px;background-size:contain}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]{overflow:hidden}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .top-line[_ngcontent-%COMP%]{font-size:.875rem}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .bottom-line[_ngcontent-%COMP%]{font-size:.7rem;color:#bbb}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .icon-button-separator[_ngcontent-%COMP%]{display:flex;align-items:center}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .icon-button-separator[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{width:1px;height:30px;background:#ffffff26;margin-left:12px}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .icon-button[_ngcontent-%COMP%]{font-size:22px;line-height:1;display:flex;align-items:center;padding-left:12px}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .icon-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{cursor:pointer}.left-area[_ngcontent-%COMP%] .lower-text[_ngcontent-%COMP%]{display:inline-block;max-width:280px;margin-top:10px}.left-area[_ngcontent-%COMP%] .lower-text[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:2px;display:inline;-webkit-user-select:none;user-select:none}.left-area[_ngcontent-%COMP%] .current-server-note[_ngcontent-%COMP%]{font-size:.8rem;color:#bbb}.left-area[_ngcontent-%COMP%] .last-error[_ngcontent-%COMP%]{font-size:.8rem;color:#ff393f}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%]{background:#3d67a226;padding:30px;text-align:left;max-width:420px;opacity:.95}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-size:.8rem;color:#bbb}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%]{font-size:1.25rem;overflow-wrap:break-word}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%]{display:inline-block;opacity:.5;margin-left:5px;position:relative;top:2px}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%] .small-icon[_ngcontent-%COMP%]{color:#d48b05;opacity:.7;font-size:.875rem;cursor:default;margin-left:5px}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%] .big-icon[_ngcontent-%COMP%]{font-size:1.125rem;margin-left:5px;position:relative;top:2px;line-height:1}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .small-text[_ngcontent-%COMP%]{font-size:.7rem;margin-top:1px;overflow-wrap:break-word}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .margin[_ngcontent-%COMP%]{height:12px}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-margin[_ngcontent-%COMP%]{height:15px}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .separator[_ngcontent-%COMP%]{height:1px;width:100%;background:#ffffff26}.disabled-button[_ngcontent-%COMP%]{opacity:.5;pointer-events:none}"]})}}return t})(),SD=(()=>{class t{set lastError(e){this.lastErrorInternal=e}constructor(e){this.router=e}canActivate(e,i){return this.checkIfCanActivate()}canActivateChild(e,i){return this.checkIfCanActivate()}checkIfCanActivate(){return this.lastErrorInternal?(this.router.navigate(["vpn","unavailable"],{queryParams:{problem:this.lastErrorInternal}}),ae(!1)):ae(!0)}static{this.\u0275fac=function(i){return new(i||t)(ce(vt))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();var Ha=function(t){return t.UnableToConnectWithTheVpnClientApp="unavailable",t.NoLocalVisorPkProvided="pk",t.InvalidStorageState="storage",t.LocalVisorPkChangedDuringUsage="pkChange",t}(Ha||{});let iAe=(()=>{class t extends pn{constructor(e,i,o){super(),this.route=e,this.vpnAuthGuardService=i,this.vpnClientService=o,this.problem=null,this.navigationsSubscription=this.route.queryParamMap.subscribe(r=>{this.problem=r.get("problem"),this.problem||(this.problem=Ha.UnableToConnectWithTheVpnClientApp),this.vpnAuthGuardService.lastError=this.problem,this.vpnClientService.stopContinuallyUpdatingData(),setTimeout(()=>this.navigationsSubscription.unsubscribe())})}getTitle(){return this.problem===Ha.NoLocalVisorPkProvided?"vpn.error-page.text-pk":this.problem===Ha.InvalidStorageState?"vpn.error-page.text-storage":this.problem===Ha.LocalVisorPkChangedDuringUsage?"vpn.error-page.text-pk-change":"vpn.error-page.text"}getInfo(){return this.problem===Ha.NoLocalVisorPkProvided?"vpn.error-page.more-info-pk":this.problem===Ha.InvalidStorageState?"vpn.error-page.more-info-storage":this.problem===Ha.LocalVisorPkChangedDuringUsage?"vpn.error-page.more-info-pk-change":"vpn.error-page.more-info"}static{this.\u0275fac=function(i){return new(i||t)(O(Ai),O(SD),O(hc))}}static{this.\u0275cmp=re({type:t,selectors:[["app-vpn-error"]],standalone:!1,features:[be],decls:12,vars:7,consts:[[1,"main-container"],[1,"text-container"],[1,"inner-container"],[1,"error-icon"],[3,"inline"],[1,"more-info"]],template:function(i,o){1&i&&(h(0,"div",0)(1,"div",1)(2,"div",2)(3,"div",3)(4,"mat-icon",4),p(5,"error_outline"),u()(),h(6,"div"),p(7),b(8,"translate"),u(),h(9,"div",5),p(10),b(11,"translate"),u()()()()),2&i&&(d(4),C("inline",!0),d(3),M(y(8,3,o.getTitle())),d(3),M(y(11,5,o.getInfo())))},dependencies:[We,xe],styles:[".main-container[_ngcontent-%COMP%]{height:100%;display:flex}.main-container[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]{width:100%;align-self:center;text-align:center}.main-container[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .inner-container[_ngcontent-%COMP%]{max-width:550px;display:inline-block;font-size:1.25rem}.main-container[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .inner-container[_ngcontent-%COMP%] .error-icon[_ngcontent-%COMP%]{font-size:80px}.main-container[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .inner-container[_ngcontent-%COMP%] .more-info[_ngcontent-%COMP%]{font-size:.8rem;opacity:.75;margin-top:10px}"]})}}return t})();const oAe=["button"],rAe=["firstInput"],sAe=t=>({"element-disabled":t});let aAe=(()=>{class t{static openDialog(e,i){const o=new nn;return o.data=i,o.autoFocus=!1,o.width=rt.smallModalWidth,e.open(t,o)}constructor(e,i,o,r,s){this.dialogRef=e,this.data=i,this.formBuilder=o,this.snackbarService=r,this.routeService=s}ngOnInit(){this.form=this.formBuilder.group({min:[this.data.minHops,Ne.compose([Ne.required,Ne.maxLength(3),Ne.pattern("^[0-9]+$")])]}),setTimeout(()=>this.firstInput.nativeElement.focus())}ngOnDestroy(){this.operationSubscription&&this.operationSubscription.unsubscribe()}get disableDismiss(){return!!this.button&&this.button.isLoading}save(){!this.form.valid||this.operationSubscription||(this.button.showLoading(),this.operationSubscription=this.routeService.setMinHops(this.data.nodePk,Number.parseInt(this.form.get("min").value,10)).subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)}))}onSuccess(e){this.dialogRef.close(!0),this.snackbarService.showDone("router-config.done")}onError(e){this.button.showError(),this.operationSubscription=null,e=Qe(e),this.snackbarService.showError(e)}static{this.\u0275fac=function(i){return new(i||t)(O(Bt),O(En),O(di),O(ct),O(Ek))}}static{this.\u0275cmp=re({type:t,selectors:[["app-router-config"]],viewQuery:function(i,o){if(1&i&&ot(oAe,5)(rAe,5),2&i){let r;he(r=fe())&&(o.button=r.first),he(r=fe())&&(o.firstInput=r.first)}},standalone:!1,decls:21,vars:22,consts:[["firstInput",""],["button",""],[3,"headline","dialog","disableDismiss"],[1,"info-container"],[3,"formGroup","ngClass"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","min","maxlength","3","matInput",""],["color","primary",1,"float-right",3,"action","disabled"]],template:function(i,o){1&i&&(h(0,"app-dialog",2),b(1,"translate"),h(2,"div",3),p(3),b(4,"translate"),u(),h(5,"form",4)(6,"mat-form-field")(7,"div",5)(8,"label",6),p(9),b(10,"translate"),u(),B(11,"input",7,0),u(),h(13,"mat-error")(14,"span"),p(15),b(16,"translate"),u()()()(),h(17,"app-button",8,1),F("action",function(){return o.save()}),p(19),b(20,"translate"),u()()),2&i&&(C("headline",y(1,10,"router-config.title"))("dialog",o.dialogRef)("disableDismiss",o.disableDismiss),d(3),M(y(4,12,"router-config.info")),d(2),C("formGroup",o.form)("ngClass",se(20,sAe,o.disableDismiss)),d(4),M(y(10,14,"router-config.min-hops")),d(6),M(y(16,16,"router-config.min-hops-error")),d(2),C("disabled",!o.form.valid),d(2),E(" ",y(20,18,"router-config.save-config-button")," "))},dependencies:[$t,xn,Gt,qt,wn,wi,on,mn,sn,Ma,In,ui,gn,xe],styles:[".info-container[_ngcontent-%COMP%]{margin-bottom:10px}"]})}}return t})();const lAe=["button"],cAe=["firstInput"];let dAe=(()=>{class t{static openDialog(e,i){const o=new nn;return o.data=i,o.autoFocus=!1,o.width=rt.smallModalWidth,e.open(t,o)}constructor(e,i,o,r,s,a){this.dialogRef=e,this.data=i,this.formBuilder=o,this.snackbarService=r,this.appsService=s,this.vpnClientService=a}ngOnInit(){this.form=this.formBuilder.group({ip:[this.data.ip,Ne.compose([Ne.maxLength(15),this.validateIp.bind(this)])]}),setTimeout(()=>this.firstInput.nativeElement.focus())}ngOnDestroy(){this.operationSubscription&&this.operationSubscription.unsubscribe()}validateIp(){if(this.form){const e=this.form.get("ip").value;return Rt.checkIfIpValidOrEmpty(e)?null:{invalid:!0}}return null}save(){!this.form.valid||this.operationSubscription||(this.button.showLoading(),this.operationSubscription=this.appsService.changeAppSettings(this.data.nodePk,this.vpnClientService.vpnClientAppName,{dns:this.form.get("ip").value}).subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)}))}onSuccess(e){this.dialogRef.close(!0),this.snackbarService.showDone("vpn.dns-config.done")}onError(e){this.button.showError(),this.operationSubscription=null,e=Qe(e),this.snackbarService.showError(e)}static{this.\u0275fac=function(i){return new(i||t)(O(Bt),O(En),O(vB),O(ct),O(Rs),O(hc))}}static{this.\u0275cmp=re({type:t,selectors:[["app-vpn-dns-config"]],viewQuery:function(i,o){if(1&i&&ot(lAe,5)(cAe,5),2&i){let r;he(r=fe())&&(o.button=r.first),he(r=fe())&&(o.firstInput=r.first)}},standalone:!1,decls:14,vars:11,consts:[["firstInput",""],["button",""],[3,"headline"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","ip","maxlength","15","matInput",""],["color","primary",1,"float-right",3,"action","disabled"]],template:function(i,o){1&i&&(h(0,"app-dialog",2),b(1,"translate"),h(2,"form",3)(3,"mat-form-field")(4,"div",4)(5,"label",5),p(6),b(7,"translate"),u(),B(8,"input",6,0),u()()(),h(10,"app-button",7,1),F("action",function(){return o.save()}),p(12),b(13,"translate"),u()()),2&i&&(C("headline",y(1,5,"vpn.dns-config.title")),d(2),C("formGroup",o.form),d(4),M(y(7,7,"vpn.dns-config.ip")),d(4),C("disabled",!o.form.valid),d(2),E(" ",y(13,9,"vpn.dns-config.save-config-button")," "))},dependencies:[xn,Gt,qt,wn,wi,on,mn,sn,In,ui,gn,xe],encapsulation:2})}}return t})();const uAe=["topBarLoading"],hAe=["topBarLoaded"],C6=()=>["vpn.title"];function fAe(t,n){if(1&t&&(h(0,"div",2)(1,"div"),B(2,"app-top-bar",4,0),u(),B(4,"app-loading-indicator",5),u()),2&t){const e=v();d(2),C("titleParts",Ct(5,C6))("tabsData",e.tabsData)("selectedTabIndex",2)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk)}}function pAe(t,n){1&t&&B(0,"mat-spinner",17),2&t&&C("diameter",12)}function mAe(t,n){if(1&t){const e=oe();h(0,"div",3)(1,"div",6),B(2,"app-top-bar",4,1),u(),h(4,"div",7)(5,"div",8)(6,"div",9)(7,"div",10)(8,"table",11)(9,"tr")(10,"th",12)(11,"div",13)(12,"div",14),p(13),b(14,"translate"),u()()(),h(15,"th",12),p(16),b(17,"translate"),u()(),h(18,"tr",15),F("click",function(){return j(e),U(v().changeKillswitchOption())}),h(19,"td",12)(20,"div"),p(21),b(22,"translate"),h(23,"mat-icon",16),b(24,"translate"),p(25,"help"),u()()(),h(26,"td",12),B(27,"span"),p(28),b(29,"translate"),x(30,pAe,1,1,"mat-spinner",17),u()(),h(31,"tr",15),F("click",function(){return j(e),U(v().changeGetIpOption())}),h(32,"td",12)(33,"div"),p(34),b(35,"translate"),h(36,"mat-icon",16),b(37,"translate"),p(38,"help"),u()()(),h(39,"td",12),B(40,"span"),p(41),b(42,"translate"),u()(),h(43,"tr",15),F("click",function(){return j(e),U(v().changeDataUnits())}),h(44,"td",12)(45,"div"),p(46),b(47,"translate"),h(48,"mat-icon",16),b(49,"translate"),p(50,"help"),u()()(),h(51,"td",12),p(52),b(53,"translate"),u()(),h(54,"tr",15),F("click",function(){return j(e),U(v().changeHops())}),h(55,"td",12)(56,"div"),p(57),b(58,"translate"),h(59,"mat-icon",16),b(60,"translate"),p(61,"help"),u()()(),h(62,"td",12),p(63),u()(),h(64,"tr",15),F("click",function(){return j(e),U(v().changeDns())}),h(65,"td",12)(66,"div"),p(67),b(68,"translate"),h(69,"mat-icon",16),b(70,"translate"),p(71,"help"),u()()(),h(72,"td",12),p(73),b(74,"translate"),u()()()()()()()()}if(2&t){const e=v();d(2),C("titleParts",Ct(64,C6))("tabsData",e.tabsData)("selectedTabIndex",2)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk),d(11),E(" ",y(14,32,"vpn.settings-page.setting-small-table-label")," "),d(3),E(" ",y(17,34,"vpn.settings-page.value-small-table-label")," "),d(5),E(" ",y(22,36,"vpn.settings-page.killswitch")," "),d(2),C("inline",!0)("matTooltip",y(24,38,"vpn.settings-page.killswitch-info")),d(4),Ze(e.getStatusClass(e.backendData.vpnClientAppData.killswitch)),d(),E(" ",y(29,40,e.getStatusText(e.backendData.vpnClientAppData.killswitch))," "),d(2),S(e.working===e.workingOptions.Killswitch?30:-1),d(4),E(" ",y(35,42,"vpn.settings-page.get-ip")," "),d(2),C("inline",!0)("matTooltip",y(37,44,"vpn.settings-page.get-ip-info")),d(4),Ze(e.getStatusClass(e.getIpOption)),d(),E(" ",y(42,46,e.getStatusText(e.getIpOption))," "),d(5),E(" ",y(47,48,"vpn.settings-page.data-units")," "),d(2),C("inline",!0)("matTooltip",y(49,50,"vpn.settings-page.data-units-info")),d(4),E(" ",y(53,52,e.getUnitsOptionText(e.dataUnitsOption))," "),d(5),E(" ",y(58,54,"vpn.settings-page.minimum-hops")," "),d(2),C("inline",!0)("matTooltip",y(60,56,"vpn.settings-page.minimum-hops-info")),d(4),E(" ",e.backendData.vpnClientAppData.minHops," "),d(4),E(" ",y(68,58,"vpn.settings-page.dns")," "),d(2),C("inline",!0)("matTooltip",y(70,60,"vpn.settings-page.dns-info")),d(4),E(" ",e.backendData.vpnClientAppData.dns?e.backendData.vpnClientAppData.dns:y(74,62,"vpn.settings-page.setting-none")," ")}}var Tc=function(t){return t[t.None=0]="None",t[t.Killswitch=1]="Killswitch",t}(Tc||{});const gAe=[{path:"",component:Ahe},{path:"login",component:XB},{path:"nodes",canActivate:[Kf],canActivateChild:[Kf],children:[{path:"",redirectTo:"list/1",pathMatch:"full"},{path:"list",redirectTo:"list/1",pathMatch:"full"},{path:"list/:page",component:mV},{path:"dmsg",redirectTo:"rewards/1",pathMatch:"full"},{path:"dmsg/:page",redirectTo:"rewards/1"},{path:"rewards",redirectTo:"rewards/1",pathMatch:"full"},{path:"rewards/:page",component:mV},{path:"services-health",component:DEe},{path:"network",component:FEe},{path:"resources",component:JEe},{path:"transports",component:fPe},{path:"dmsg-settings",redirectTo:"list/1"},{path:":key",component:ke,children:[{path:"",redirectTo:"info",pathMatch:"full"},{path:"info",component:KPe},{path:"routing",component:dke},{path:"apps",component:HMe},{path:"resources",component:tTe},{path:"chat",component:pTe},{path:"dmsg",component:TPe},{path:"transports",component:R2e},{path:"transports/:page",redirectTo:"transports"},{path:"routes",redirectTo:"routing",pathMatch:"full"},{path:"routes/:page",redirectTo:"routing"},{path:"rewards",component:eEe},{path:"skynet",component:uIe},{path:"apps-list/:showOfficialApps/:page",component:PPe}]}]},{path:"settings",canActivate:[Kf],canActivateChild:[Kf],children:[{path:"",component:zye},{path:"labels",redirectTo:"labels/1",pathMatch:"full"},{path:"labels/:page",component:fIe}]},{path:"vpnlogin/:key",component:XB},{path:"vpn",canActivate:[SD],canActivateChild:[SD],children:[{path:"unavailable",component:iAe},{path:":key",children:[{path:"status",component:nAe},{path:"servers",redirectTo:"servers/public/1",pathMatch:"full"},{path:"servers/:type/:page",component:m6},{path:"settings",component:(()=>{class t extends pn{constructor(e,i,o,r,s,a){super(),this.vpnClientService=e,this.snackbarService=i,this.appsService=o,this.vpnSavedDataService=r,this.dialog=s,this.loading=!0,this.tabsData=hi.vpnTabsData,this.working=Tc.None,this.workingOptions=Tc,this.navigationsSubscription=a.paramMap.subscribe(l=>{l.has("key")&&(this.currentLocalPk=l.get("key"),hi.changeCurrentPk(this.currentLocalPk),this.tabsData=hi.vpnTabsData)}),this.dataSubscription=this.vpnClientService.backendState.subscribe(l=>{l&&l.serviceState!==Ri.PerformingInitialCheck&&(this.backendData=l,this.loading=!1)}),this.getIpOption=this.vpnSavedDataService.getCheckIpSetting(),this.dataUnitsOption=this.vpnSavedDataService.getDataUnitsSetting()}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.dataSubscription.unsubscribe(),this.operationSubscription&&this.operationSubscription.unsubscribe()}getStatusClass(e){return!0===e?"dot-green":"dot-red"}getStatusText(e){return!0===e?"vpn.settings-page.setting-on":"vpn.settings-page.setting-off"}getUnitsOptionText(e){switch(e){case Zo.OnlyBits:return"vpn.settings-page.data-units-modal.only-bits";case Zo.OnlyBytes:return"vpn.settings-page.data-units-modal.only-bytes";default:return"vpn.settings-page.data-units-modal.bits-speed-and-bytes-volume"}}changeKillswitchOption(){if(this.working===Tc.None)if(this.backendData.vpnClientAppData.running){const e=Rt.createConfirmationDialog(this.dialog,"vpn.settings-page.change-while-connected-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.closeModal(),this.finishChangingKillswitchOption()})}else this.finishChangingKillswitchOption();else this.snackbarService.showWarning("vpn.settings-page.working-warning")}finishChangingKillswitchOption(){this.working=Tc.Killswitch,this.operationSubscription=this.appsService.changeAppSettings(this.currentLocalPk,this.vpnClientService.vpnClientAppName,{killswitch:!this.backendData.vpnClientAppData.killswitch}).subscribe(()=>{this.working=Tc.None,this.vpnClientService.updateData()},e=>{this.working=Tc.None,e=Qe(e),this.snackbarService.showError(e)})}changeGetIpOption(){this.getIpOption=!this.getIpOption,this.vpnSavedDataService.setCheckIpSetting(this.getIpOption)}changeDataUnits(){const e=[],i=[];Object.keys(Zo).forEach(o=>{const r={label:this.getUnitsOptionText(Zo[o])};this.dataUnitsOption===Zo[o]&&(r.icon="done"),e.push(r),i.push(Zo[o])}),ao.openDialog(this.dialog,e,"vpn.settings-page.data-units-modal.title").afterClosed().subscribe(o=>{o&&(this.dataUnitsOption=i[o-1],this.vpnSavedDataService.setDataUnitsSetting(this.dataUnitsOption),this.topBarLoading&&this.topBarLoading.updateVpnDataStatsUnit(),this.topBarLoaded&&this.topBarLoaded.updateVpnDataStatsUnit())})}changeHops(){aAe.openDialog(this.dialog,{nodePk:this.currentLocalPk,minHops:this.backendData.vpnClientAppData.minHops}).afterClosed().subscribe()}changeDns(){dAe.openDialog(this.dialog,{nodePk:this.currentLocalPk,ip:this.backendData.vpnClientAppData.dns}).afterClosed().subscribe()}static{this.\u0275fac=function(i){return new(i||t)(O(hc),O(ct),O(Rs),O(uc),O(Ot),O(Ai))}}static{this.\u0275cmp=re({type:t,selectors:[["app-vpn-settings-list"]],viewQuery:function(i,o){if(1&i&&ot(uAe,5)(hAe,5),2&i){let r;he(r=fe())&&(o.topBarLoading=r.first),he(r=fe())&&(o.topBarLoaded=r.first)}},standalone:!1,features:[be],decls:2,vars:2,consts:[["topBarLoading",""],["topBarLoaded",""],[1,"d-flex","flex-column","h-100","w-100"],[1,"row"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton","localVpnKey"],[1,"h-100"],[1,"col-12"],[1,"col-12","mt-4.5","vpn-table-container"],[1,"width-limiter"],[1,"rounded-elevated-box"],[1,"box-internal-container"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table"],[1,"data-column"],[1,"header-container"],[1,"header-text"],[1,"selectable",3,"click"],[1,"help-icon",3,"inline","matTooltip"],[3,"diameter"]],template:function(i,o){1&i&&(x(0,fAe,5,6,"div",2),x(1,mAe,75,65,"div",3)),2&i&&(S(o.loading?0:-1),d(),S(o.loading?-1:1))},dependencies:[We,Kt,so,Yr,Mr,xe],styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .header-container[_ngcontent-%COMP%] .header-text[_ngcontent-%COMP%], .data-column[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}table[_ngcontent-%COMP%]{width:100%}table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding-top:7px!important;padding-bottom:7px!important;font-size:12px!important;font-weight:400!important}.data-column[_ngcontent-%COMP%]{max-width:0;width:50%}.header-container[_ngcontent-%COMP%]{max-width:100%;display:inline-flex}.header-container[_ngcontent-%COMP%] .header-text[_ngcontent-%COMP%]{flex-grow:1}mat-spinner[_ngcontent-%COMP%]{display:inline-block;opacity:.5;margin-left:2px;position:relative;top:2px}mat-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}"]})}}return t})()},{path:"**",redirectTo:"status"}]},{path:"**",redirectTo:"/vpn/unavailable?problem=pk"}]},{path:"**",redirectTo:""}];let _Ae=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=tt({type:t})}static{this.\u0275inj=Je({imports:[b5.forRoot(gAe,{useHash:!0}),b5]})}}return t})(),vAe=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({imports:[ii]})}return t})(),yAe=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({imports:[f4,Zd,ii,Rf]})}return t})();class CAe{getTranslation(n){return Kn(Ec(995)(`./${n}.json`))}}let wAe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=tt({type:t})}static{this.\u0275inj=Je({imports:[l5.forRoot({loader:{provide:$f,useClass:CAe}}),l5]})}}return t})(),xAe=(()=>{class t{shouldDetach(e){return!1}store(e,i){}shouldAttach(e){return!1}retrieve(e){return null}shouldReuseRoute(e,i){return!1}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac})}}return t})();const SAe={disabled:!0};let kAe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=tt({type:t,bootstrap:[Xr]})}static{this.\u0275inj=Je({providers:[np,{provide:$4,useValue:{duration:3e3,verticalPosition:"top"}},{provide:k4,useValue:{width:"600px",hasBackdrop:!0}},{provide:pk,useClass:gpe},{provide:O3,useClass:xAe},{provide:TS,useValue:SAe},Sse($l(va.LegacyInterceptors,[{provide:xL,useFactory:mse},{provide:pf,useExisting:xL,multi:!0}]))],imports:[oN,dre,Afe,_Ae,wAe,Due,oue,lv,vpe,pDe,B4,Fue,yAe,jge,Ofe,vAe,qme,Xue,fge,vTe]})}}return t})();(function wA(t,n,e){const i=t.\u0275cmp;i.directiveDefs=Tg(n,dI),i.pipeDefs=Tg(e,tr)})(m6,[$t,Ld,Is,Pn,We,Kt,op,Yr,mv,Mr,g6],[fa,xe]),mie().bootstrapModule(kAe,{applicationProviders:[function fee(t){const n=t?.scheduleInRootZone,e=function hee({ngZoneFactory:t,scheduleInRootZone:n}){return t??=()=>new _e({...VR(),scheduleInRootZone:n}),[{provide:um,useValue:!1},{provide:_e,useFactory:t},{provide:ss,multi:!0,useFactory:()=>{const e=D(dee,{optional:!0});return()=>e.initialize()}},{provide:ss,multi:!0,useFactory:()=>{const e=D(pee);return()=>{e.initialize()}}},{provide:zM,useValue:n??BM}]}({ngZoneFactory:()=>{const i=VR(t);return i.scheduleInRootZone=n,i.shouldCoalesceEventChangeDetection&&vi("NgZone_CoalesceEvent"),new _e(i)},scheduleInRootZone:n});return Hu([{provide:uee,useValue:!0},e])}()]}).catch(t=>console.log(t))},995(Eu,Yv,Ec){var An={"./de.json":[229,[229]],"./de_base.json":[735,[735]],"./en.json":[473,[473]],"./es.json":[18,[18]],"./es_base.json":[434,[434]],"./pt.json":[750,[750]],"./pt_base.json":[718,[718]]};function os(Ua){if(!Ec.o(An,Ua))return Promise.resolve().then(()=>{var Te=new Error("Cannot find module '"+Ua+"'");throw Te.code="MODULE_NOT_FOUND",Te});var Pc=An[Ua],Rn=Pc[0];return Ec.e(Pc[1][0]).then(()=>Ec.t(Rn,19))}os.keys=()=>Object.keys(An),os.id=995,Eu.exports=os}},Eu=>{Eu(Eu.s=398)}]); \ No newline at end of file diff --git a/static/skywire-manager-src/dist/runtime.fcf9ddd63eec892b.js b/pkg/visor/static/runtime.5f5290bb093e7f9b.js similarity index 65% rename from static/skywire-manager-src/dist/runtime.fcf9ddd63eec892b.js rename to pkg/visor/static/runtime.5f5290bb093e7f9b.js index 537f1a743c..e9b59d6e88 100644 --- a/static/skywire-manager-src/dist/runtime.fcf9ddd63eec892b.js +++ b/pkg/visor/static/runtime.5f5290bb093e7f9b.js @@ -1 +1 @@ -(()=>{"use strict";var e,g={},v={};function r(e){var n=v[e];if(void 0!==n)return n.exports;var t=v[e]={exports:{}};return g[e](t,t.exports,r),t.exports}r.m=g,e=[],r.O=(n,t,f,i)=>{if(!t){var a=1/0;for(o=0;o=i)&&Object.keys(r.O).every(b=>r.O[b](t[d]))?t.splice(d--,1):(l=!1,i0&&e[o-1][2]>i;o--)e[o]=e[o-1];e[o]=[t,f,i]},r.n=e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return r.d(n,{a:n}),n},(()=>{var n,e=Object.getPrototypeOf?t=>Object.getPrototypeOf(t):t=>t.__proto__;r.t=function(t,f){if(1&f&&(t=this(t)),8&f||"object"==typeof t&&t&&(4&f&&t.__esModule||16&f&&"function"==typeof t.then))return t;var i=Object.create(null);r.r(i);var o={};n=n||[null,e({}),e([]),e(e)];for(var a=2&f&&t;("object"==typeof a||"function"==typeof a)&&!~n.indexOf(a);a=e(a))Object.getOwnPropertyNames(a).forEach(l=>o[l]=()=>t[l]);return o.default=()=>t,r.d(i,o),i}})(),r.d=(e,n)=>{for(var t in n)r.o(n,t)&&!r.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((n,t)=>(r.f[t](e,n),n),[])),r.u=e=>e+"."+{18:"b642409e5ce7396b",229:"c28b198c7e8c3360",434:"1689f9ef170dbe39",473:"9dde3f487a9cd6dc",718:"f6f4ca927aabc898",735:"1d822507e38df57b",750:"320ee2a84d46217c"}[e]+".js",r.miniCssF=e=>{},r.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),(()=>{var e={},n="skywire-manager:";r.l=(t,f,i,o)=>{if(e[t])e[t].push(f);else{var a,l;if(void 0!==i)for(var d=document.getElementsByTagName("script"),s=0;s{a.onerror=a.onload=null,clearTimeout(p);var _=e[t];if(delete e[t],a.parentNode&&a.parentNode.removeChild(a),_&&_.forEach(m=>m(b)),y)return y(b)},p=setTimeout(c.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=c.bind(null,a.onerror),a.onload=c.bind(null,a.onload),l&&document.head.appendChild(a)}}})(),r.r=e=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;r.tt=()=>(void 0===e&&(e={createScriptURL:n=>n},typeof trustedTypes<"u"&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("angular#bundler",e))),e)})(),r.tu=e=>r.tt().createScriptURL(e),r.p="",(()=>{var e={121:0};r.f.j=(f,i)=>{var o=r.o(e,f)?e[f]:void 0;if(0!==o)if(o)i.push(o[2]);else if(121!=f){var a=new Promise((u,c)=>o=e[f]=[u,c]);i.push(o[2]=a);var l=r.p+r.u(f),d=new Error;r.l(l,u=>{if(r.o(e,f)&&(0!==(o=e[f])&&(e[f]=void 0),o)){var c=u&&("load"===u.type?"missing":u.type),p=u&&u.target&&u.target.src;d.message="Loading chunk "+f+" failed.\n("+c+": "+p+")",d.name="ChunkLoadError",d.type=c,d.request=p,o[1](d)}},"chunk-"+f,f)}else e[f]=0},r.O.j=f=>0===e[f];var n=(f,i)=>{var d,s,[o,a,l]=i,u=0;if(o.some(p=>0!==e[p])){for(d in a)r.o(a,d)&&(r.m[d]=a[d]);if(l)var c=l(r)}for(f&&f(i);u{"use strict";var e,g={},v={};function r(e){var n=v[e];if(void 0!==n)return n.exports;var t=v[e]={exports:{}};return g[e](t,t.exports,r),t.exports}r.m=g,e=[],r.O=(n,t,f,i)=>{if(!t){var a=1/0;for(o=0;o=i)&&Object.keys(r.O).every(b=>r.O[b](t[d]))?t.splice(d--,1):(c=!1,i0&&e[o-1][2]>i;o--)e[o]=e[o-1];e[o]=[t,f,i]},r.n=e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return r.d(n,{a:n}),n},(()=>{var n,e=Object.getPrototypeOf?t=>Object.getPrototypeOf(t):t=>t.__proto__;r.t=function(t,f){if(1&f&&(t=this(t)),8&f||"object"==typeof t&&t&&(4&f&&t.__esModule||16&f&&"function"==typeof t.then))return t;var i=Object.create(null);r.r(i);var o={};n=n||[null,e({}),e([]),e(e)];for(var a=2&f&&t;("object"==typeof a||"function"==typeof a)&&!~n.indexOf(a);a=e(a))Object.getOwnPropertyNames(a).forEach(c=>o[c]=()=>t[c]);return o.default=()=>t,r.d(i,o),i}})(),r.d=(e,n)=>{for(var t in n)r.o(n,t)&&!r.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((n,t)=>(r.f[t](e,n),n),[])),r.u=e=>e+"."+{18:"b642409e5ce7396b",229:"c28b198c7e8c3360",434:"1689f9ef170dbe39",473:"112ef2b987479257",718:"f6f4ca927aabc898",735:"1d822507e38df57b",750:"320ee2a84d46217c"}[e]+".js",r.miniCssF=e=>{},r.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),(()=>{var e={},n="skywire-manager:";r.l=(t,f,i,o)=>{if(e[t])e[t].push(f);else{var a,c;if(void 0!==i)for(var d=document.getElementsByTagName("script"),s=0;s{a.onerror=a.onload=null,clearTimeout(p);var _=e[t];if(delete e[t],a.parentNode&&a.parentNode.removeChild(a),_&&_.forEach(m=>m(b)),y)return y(b)},p=setTimeout(l.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=l.bind(null,a.onerror),a.onload=l.bind(null,a.onload),c&&document.head.appendChild(a)}}})(),r.r=e=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;r.tt=()=>(void 0===e&&(e={createScriptURL:n=>n},typeof trustedTypes<"u"&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("angular#bundler",e))),e)})(),r.tu=e=>r.tt().createScriptURL(e),r.p="",(()=>{var e={121:0};r.f.j=(f,i)=>{var o=r.o(e,f)?e[f]:void 0;if(0!==o)if(o)i.push(o[2]);else if(121!=f){var a=new Promise((u,l)=>o=e[f]=[u,l]);i.push(o[2]=a);var c=r.p+r.u(f),d=new Error;r.l(c,u=>{if(r.o(e,f)&&(0!==(o=e[f])&&(e[f]=void 0),o)){var l=u&&("load"===u.type?"missing":u.type),p=u&&u.target&&u.target.src;d.message="Loading chunk "+f+" failed.\n("+l+": "+p+")",d.name="ChunkLoadError",d.type=l,d.request=p,o[1](d)}},"chunk-"+f,f)}else e[f]=0},r.O.j=f=>0===e[f];var n=(f,i)=>{var d,s,[o,a,c]=i,u=0;if(o.some(p=>0!==e[p])){for(d in a)r.o(a,d)&&(r.m[d]=a[d]);if(c)var l=c(r)}for(f&&f(i);umat-icon,.generic-title-container .icon-button{opacity:.85}.subtle-transparent-button:hover,.generic-title-container .options .options-container>mat-icon:hover,.generic-title-container .icon-button:hover{opacity:1}@media(max-width:767px),(min-width:992px)and (max-width:1299px){.small-node-list-margins{padding:0!important}}@media(max-width:767px){.full-node-list-margins{padding:0!important}}@font-face{font-family:Skycoin;font-style:normal;font-weight:300;src:url(/assets/fonts/skycoin/skycoin-light-webfont.woff2) format("woff2"),url(/assets/fonts/skycoin/skycoin-light-webfont.woff) format("woff")}@font-face{font-family:Skycoin;font-style:normal;font-weight:400;src:url(/assets/fonts/skycoin/skycoin-regular-webfont.woff2) format("woff2"),url(/assets/fonts/skycoin/skycoin-regular-webfont.woff) format("woff")}@font-face{font-family:Skycoin;font-style:normal;font-weight:700;src:url(/assets/fonts/skycoin/skycoin-bold-webfont.woff2) format("woff2"),url(/assets/fonts/skycoin/skycoin-bold-webfont.woff) format("woff")}span{overflow-wrap:break-word}.font-sm{font-size:.875rem!important;font-weight:lighter!important}.font-smaller{font-size:.8rem!important;font-weight:lighter!important}.uppercase{text-transform:uppercase}.single-line,.options-list-button-container button .internal-container{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text{color:#2ecc54}.green-clear-text{color:#84c826}.yellow-text{color:#d48b05}.yellow-clear-text{color:orange}.red-text{color:#da3439}.red-clear-text{color:#ff393f}.grey-text{color:#777!important}.dot-green{height:10px;width:10px;background-color:#2ecc54;border-radius:50%;display:inline-block}.dot-green.sm{height:7px;width:7px}.dot-red{height:10px;width:10px;background-color:#da3439;border-radius:50%;display:inline-block}.dot-red.sm{height:7px;width:7px}.dot-yellow{height:10px;width:10px;background-color:#d48b05;border-radius:50%;display:inline-block}.dot-yellow.sm{height:7px;width:7px}.dot-outline-white{height:10px;width:10px;border-radius:50%;border:solid 1px #F8F9F9;display:inline-block}.dot-outline-white.sm{height:7px;width:7px}.dot-outline-gray{height:10px;width:10px;border-radius:50%;border:solid 1px #777;display:inline-block}.dot-outline-gray.sm{height:7px;width:7px}.mat-mdc-menu-panel{border-radius:10px!important;max-width:none!important}.mat-mdc-menu-item{width:auto!important}.mat-mdc-menu-item mat-icon{opacity:.5}.responsive-table-translucid{background:transparent!important;margin-left:auto;margin-right:auto;border-collapse:separate!important;width:100%;word-break:break-all;color:#f8f9f9!important}.responsive-table-translucid td,.responsive-table-translucid th{color:#f8f9f9!important;padding:12px 10px;border-bottom:1px solid rgba(255,255,255,.15)}.responsive-table-translucid th{font-size:.875rem!important;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;height:48px}.responsive-table-translucid td{font-size:.8rem!important;font-weight:lighter!important}.responsive-table-translucid tr .sortable-column mat-icon{display:inline;position:relative;top:2px}.responsive-table-translucid .link-row{display:table-row;text-decoration:none}.responsive-table-translucid .link-row:hover{text-decoration:none}.responsive-table-translucid td{vertical-align:middle}.responsive-table-translucid .selection-col{width:30px;padding-top:0;padding-bottom:0}.responsive-table-translucid .selection-col .mat-mdc-checkbox{vertical-align:super}.responsive-table-translucid .action-button,.responsive-table-translucid .big-action-button{width:28px!important;height:28px!important;line-height:16px;font-size:16px;margin-right:5px;padding:0!important;color:#fff!important;min-width:0!important}.responsive-table-translucid .action-button:last-child,.responsive-table-translucid .big-action-button:last-child{margin-right:0}.responsive-table-translucid .action-button .mat-icon,.responsive-table-translucid .big-action-button .mat-icon{margin-right:0!important}.responsive-table-translucid .big-action-button{line-height:18px;font-size:18px}.responsive-table-translucid .selectable,.responsive-table-translucid tr .sortable-column{cursor:pointer}.responsive-table-translucid .selectable:hover,.responsive-table-translucid tr .sortable-column:hover{background:#0003}.responsive-table-translucid .click-effect:active{background:#0006!important}.responsive-table-translucid mat-checkbox>label{margin-bottom:0}.responsive-table-translucid mat-checkbox .mdc-checkbox__background{box-sizing:border-box;width:18px;height:18px;background:#0000004d!important;border-radius:6px;border-width:2px;border-color:#00000080}.responsive-table-translucid mat-checkbox .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background{background-color:#0000004d!important;border-color:#00000080!important}.responsive-table-translucid mat-checkbox svg{color:#fff!important}.responsive-table-translucid .list-item-container{display:flex;padding:10px 0 10px 15px}.responsive-table-translucid .list-item-container .check-part{width:50px;flex-shrink:0;margin-left:-20px}.responsive-table-translucid .list-item-container .left-part{flex-grow:1}.responsive-table-translucid .list-item-container .left-part .list-row{margin-bottom:5px;word-break:break-word}.responsive-table-translucid .list-item-container .left-part .list-row:last-of-type{margin-bottom:0}.responsive-table-translucid .list-item-container .left-part .long-content{word-break:break-all}.responsive-table-translucid .list-item-container .margin-part{width:5px;height:5px;flex-shrink:0}.responsive-table-translucid .list-item-container .right-part{width:60px;text-align:center;flex-shrink:0}.responsive-table-translucid .list-item-container .right-part button{width:60px;height:60px}.responsive-table-translucid .list-item-container .right-part mat-icon{display:inline;font-size:20px}.responsive-table-translucid .title{font-size:.875rem!important;font-weight:700}@media(min-width:768px){.generic-title-container{padding-right:5px}}@media(max-width:767px){.generic-title-container{margin-right:-15px}}.generic-title-container .title{margin-right:auto;font-size:1rem;font-weight:700}@media(min-width:768px){.generic-title-container .title{margin-left:1.25rem!important}}.generic-title-container .title .filter-label{font-size:.7rem;font-weight:lighter}.generic-title-container .title .help{opacity:.5;font-size:14px;cursor:default}.generic-title-container .icon-button{display:flex;line-height:18px!important;margin-right:15px;background:#f8f9f9;color:#154b6c;border-radius:1000px;cursor:pointer;padding:1px 7px;font-weight:400;border:0;font-size:.8rem;align-items:center}.generic-title-container .icon-button mat-icon{margin-right:2px;font-size:18px;height:auto;width:auto}@media(max-width:767px){.generic-title-container .icon-button{padding:1px 10px;line-height:24px!important;font-size:.875rem!important}.generic-title-container .icon-button mat-icon{margin-right:3px;font-size:22px}}.generic-title-container .options{text-align:right}.generic-title-container .options .options-container{text-align:right;display:inline-flex}.generic-title-container .options .options-container>mat-icon{width:18px!important;height:18px!important;line-height:18px!important;font-size:18px!important;margin-right:15px;background:#f8f9f9;color:#154b6c;border-radius:1000px;cursor:pointer}@media(max-width:767px){.generic-title-container .options .options-container>mat-icon{width:24px!important;height:24px!important;line-height:24px!important;font-size:24px!important}}.generic-title-container .options .options-container .small-icon{font-size:14px!important;text-align:center}.paginator-icons-fixer{margin-right:0!important}mat-form-field{display:block!important}.white-form-field{color:#f8f9f9}.white-form-field .mat-mdc-select-value,.white-form-field .mat-mdc-select-arrow{color:#f8f9f9!important}.white-form-field .mdc-line-ripple:before{border-bottom-color:#f8f9f980!important}.white-form-field input{color:#f8f9f9!important}.white-form-field .mat-mdc-input-element{caret-color:#f8f9f9}.form-help-icon-container,.white-form-help-icon-container{height:0px;text-align:right;color:#215f9e}.white-form-help-icon-container{color:#f8f9f9cc}.element-disabled{pointer-events:none!important;opacity:.5!important}.app-background{width:100%;height:100%;top:0;left:0;position:fixed;background:linear-gradient(#060a10,#0a1421) no-repeat fixed!important;box-shadow:inset 0 0 200px #608dcd40;z-index:-1}.no-gradient-for-elevated-box{box-shadow:5px 5px 7px #00000059!important}.elevated-box,.rounded-elevated-box,.small-rounded-elevated-box{background-image:url(/assets/img/background-pattern.png);box-shadow:inset 0 0 55px #35578666,5px 5px 7px #00000059;border:rgba(156,197,255,.33) solid 1px}.rounded-elevated-box,.small-rounded-elevated-box{width:100%;border-radius:10px;overflow:hidden;padding:3px}.rounded-elevated-box .box-internal-container,.small-rounded-elevated-box .box-internal-container{border-radius:10px;padding:12px;border:rgba(156,197,255,.1155) solid 1px;overflow:hidden}.small-rounded-elevated-box{width:unset;padding:0;box-shadow:inset 0 0 20px #35578666,5px 5px 7px #00000059}.mat-mdc-dialog-surface{border-radius:10px!important;background-image:url(/assets/img/modal-background-pattern.png)!important;box-shadow:inset 0 0 100px #ffffff80,5px 5px 15px #000!important;background-color:#e0e5ec!important;overflow:hidden;padding:24px!important}.mat-mdc-dialog-content{font-family:Skycoin!important;margin:0 -24px -24px!important;padding:24px!important;color:#202226!important;line-height:1.5!important}app-dialog app-loading-indicator{margin-top:32px;margin-bottom:24px}.options-list-button-container{margin:0 -24px}.options-list-button-container button{width:100%}.options-list-button-container button .internal-container{text-align:left;padding:5px 7px}.options-list-button-container button mat-icon{margin-right:10px;position:relative;top:2px;opacity:.5}.options-list-button-container:first-of-type{margin-top:-24px!important}.options-list-button-container:last-of-type{margin-bottom:-24px!important}.info-dialog{word-break:break-all;font-size:.875rem;color:#202226}.info-dialog .title{margin-bottom:2px;font-size:1rem;margin-top:25px;color:#215f9e;display:flex}.info-dialog .title mat-icon{margin-right:5px;position:relative;top:2px}.info-dialog .item{margin-top:2px}.info-dialog .item span{color:#999}.top-dialog-button{margin-left:-24px;margin-right:-24px;font-size:.8rem;background-color:#d9deeb;color:#202226;cursor:pointer}.top-dialog-button:hover{background-color:#cfd5e6}.top-dialog-button .top-dialog-button-content{padding:10px 24px}.top-dialog-button .top-dialog-button-margin{height:1px;background-color:#215f9e33;margin:0 12px}.vpn-small-button{cursor:pointer;-webkit-user-select:none;user-select:none}.vpn-small-button:active{transform:scale(.9)}.vpn-dark-box-radius{border-radius:10px}.vpn-table-container{text-align:center}.vpn-table-container .width-limiter{width:inherit;max-width:1250px;display:inline-block;text-align:initial}*,*:before,*:after{box-sizing:border-box}@media(prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(32,34,38,0)}hr{margin:1rem 0;color:inherit;border:0;border-top:var(--bs-border-width) solid;opacity:.25}h6,.h6,h5,.h5,h4,.h4,h3,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color)}h1,.h1{font-size:calc(1.375rem + 1.5vw)}@media(min-width:1200px){h1,.h1{font-size:2.5rem}}h2,.h2{font-size:calc(1.325rem + .9vw)}@media(min-width:1200px){h2,.h2{font-size:2rem}}h3,.h3{font-size:calc(1.3rem + .6vw)}@media(min-width:1200px){h3,.h3{font-size:1.75rem}}h4,.h4{font-size:calc(1.275rem + .3vw)}@media(min-width:1200px){h4,.h4{font-size:1.5rem}}h5,.h5{font-size:1.25rem}h6,.h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small,.small{font-size:.875em}mark,.mark{padding:.1875em;color:var(--bs-highlight-color);background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity, 1));text-decoration:underline}a:hover{--bs-link-color-rgb: var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-secondary-color);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;line-height:inherit;font-size:calc(1.275rem + .3vw)}@media(min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button{cursor:pointer;filter:grayscale(1)}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.list-group{--bs-list-group-color: var(--bs-body-color);--bs-list-group-bg: var(--bs-body-bg);--bs-list-group-border-color: var(--bs-border-color);--bs-list-group-border-width: var(--bs-border-width);--bs-list-group-border-radius: var(--bs-border-radius);--bs-list-group-item-padding-x: 1rem;--bs-list-group-item-padding-y: .5rem;--bs-list-group-action-color: var(--bs-secondary-color);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-tertiary-bg);--bs-list-group-action-active-color: var(--bs-body-color);--bs-list-group-action-active-bg: var(--bs-secondary-bg);--bs-list-group-disabled-color: var(--bs-secondary-color);--bs-list-group-disabled-bg: var(--bs-body-bg);--bs-list-group-active-color: #F8F9F9;--bs-list-group-active-bg: #0d6efd;--bs-list-group-active-border-color: #0d6efd;display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item:before{content:counters(section,".") ". ";counter-increment:section}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1 * var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:not(.active):hover,.list-group-item-action:not(.active):focus{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:not(.active):active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media(min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width:1300px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-green{--bs-list-group-color: var(--bs-green-text-emphasis);--bs-list-group-bg: var(--bs-green-bg-subtle);--bs-list-group-border-color: var(--bs-green-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-green-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-green-border-subtle);--bs-list-group-active-color: var(--bs-green-bg-subtle);--bs-list-group-active-bg: var(--bs-green-text-emphasis);--bs-list-group-active-border-color: var(--bs-green-text-emphasis)}.list-group-item-red{--bs-list-group-color: var(--bs-red-text-emphasis);--bs-list-group-bg: var(--bs-red-bg-subtle);--bs-list-group-border-color: var(--bs-red-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-red-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-red-border-subtle);--bs-list-group-active-color: var(--bs-red-bg-subtle);--bs-list-group-active-bg: var(--bs-red-text-emphasis);--bs-list-group-active-border-color: var(--bs-red-text-emphasis)}.list-group-item-yellow{--bs-list-group-color: var(--bs-yellow-text-emphasis);--bs-list-group-bg: var(--bs-yellow-bg-subtle);--bs-list-group-border-color: var(--bs-yellow-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-yellow-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-yellow-border-subtle);--bs-list-group-active-color: var(--bs-yellow-bg-subtle);--bs-list-group-active-bg: var(--bs-yellow-text-emphasis);--bs-list-group-active-border-color: var(--bs-yellow-text-emphasis)}.list-group-item-translucid-hover{--bs-list-group-color: var(--bs-translucid-hover-text-emphasis);--bs-list-group-bg: var(--bs-translucid-hover-bg-subtle);--bs-list-group-border-color: var(--bs-translucid-hover-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-translucid-hover-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-translucid-hover-border-subtle);--bs-list-group-active-color: var(--bs-translucid-hover-bg-subtle);--bs-list-group-active-bg: var(--bs-translucid-hover-text-emphasis);--bs-list-group-active-border-color: var(--bs-translucid-hover-text-emphasis)}.list-group-item-translucid-hover-hard{--bs-list-group-color: var(--bs-translucid-hover-hard-text-emphasis);--bs-list-group-bg: var(--bs-translucid-hover-hard-bg-subtle);--bs-list-group-border-color: var(--bs-translucid-hover-hard-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-translucid-hover-hard-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-translucid-hover-hard-border-subtle);--bs-list-group-active-color: var(--bs-translucid-hover-hard-bg-subtle);--bs-list-group-active-bg: var(--bs-translucid-hover-hard-text-emphasis);--bs-list-group-active-border-color: var(--bs-translucid-hover-hard-text-emphasis)}.list-group-item-white{--bs-list-group-color: var(--bs-white-text-emphasis);--bs-list-group-bg: var(--bs-white-bg-subtle);--bs-list-group-border-color: var(--bs-white-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-white-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-white-border-subtle);--bs-list-group-active-color: var(--bs-white-bg-subtle);--bs-list-group-active-bg: var(--bs-white-text-emphasis);--bs-list-group-active-border-color: var(--bs-white-text-emphasis)}.list-group-item-light-gray{--bs-list-group-color: var(--bs-light-gray-text-emphasis);--bs-list-group-bg: var(--bs-light-gray-bg-subtle);--bs-list-group-border-color: var(--bs-light-gray-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-light-gray-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-light-gray-border-subtle);--bs-list-group-active-color: var(--bs-light-gray-bg-subtle);--bs-list-group-active-bg: var(--bs-light-gray-text-emphasis);--bs-list-group-active-border-color: var(--bs-light-gray-text-emphasis)}.lead{font-size:1.25rem;font-weight:300}.display-1{font-weight:300;line-height:1.2;font-size:calc(1.625rem + 4.5vw)}@media(min-width:1200px){.display-1{font-size:5rem}}.display-2{font-weight:300;line-height:1.2;font-size:calc(1.575rem + 3.9vw)}@media(min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-weight:300;line-height:1.2;font-size:calc(1.525rem + 3.3vw)}@media(min-width:1200px){.display-3{font-size:4rem}}.display-4{font-weight:300;line-height:1.2;font-size:calc(1.475rem + 2.7vw)}@media(min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-weight:300;line-height:1.2;font-size:calc(1.425rem + 2.1vw)}@media(min-width:1200px){.display-5{font-size:3rem}}.display-6{font-weight:300;line-height:1.2;font-size:calc(1.375rem + 1.5vw)}@media(min-width:1200px){.display-6{font-size:2.5rem}}.list-unstyled,.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer:before{content:"\2014\a0"}/*! + * Bootstrap Grid v5.3.8 (https://getbootstrap.com/) + * Copyright 2011-2025 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */.container,.container-fluid,.container-xxl,.container-xl,.container-lg,.container-md,.container-sm{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media(min-width:576px){.container-sm,.container{max-width:540px}}@media(min-width:768px){.container-md,.container-sm,.container{max-width:720px}}@media(min-width:992px){.container-lg,.container-md,.container-sm,.container{max-width:960px}}@media(min-width:1300px){.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1140px}}.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1320px}:root{--bs-breakpoint-xs: 0;--bs-breakpoint-sm: 576px;--bs-breakpoint-md: 768px;--bs-breakpoint-lg: 992px;--bs-breakpoint-xl: 1300px}.row{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{box-sizing:border-box;flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.66666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x: 0}.g-0,.gy-0{--bs-gutter-y: 0}.g-1,.gx-1{--bs-gutter-x: .25rem}.g-1,.gy-1{--bs-gutter-y: .25rem}.g-2,.gx-2{--bs-gutter-x: .5rem}.g-2,.gy-2{--bs-gutter-y: .5rem}.g-3,.gx-3{--bs-gutter-x: 1rem}.g-3,.gy-3{--bs-gutter-y: 1rem}.g-4,.gx-4{--bs-gutter-x: 1.5rem}.g-4,.gy-4{--bs-gutter-y: 1.5rem}.g-5,.gx-5{--bs-gutter-x: 3rem}.g-5,.gy-5{--bs-gutter-y: 3rem}@media(min-width:576px){.col-sm{flex:1 0 0}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.66666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x: 0}.g-sm-0,.gy-sm-0{--bs-gutter-y: 0}.g-sm-1,.gx-sm-1{--bs-gutter-x: .25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y: .25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x: .5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y: .5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x: 1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y: 1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x: 1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y: 1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x: 3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y: 3rem}}@media(min-width:768px){.col-md{flex:1 0 0}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.66666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x: 0}.g-md-0,.gy-md-0{--bs-gutter-y: 0}.g-md-1,.gx-md-1{--bs-gutter-x: .25rem}.g-md-1,.gy-md-1{--bs-gutter-y: .25rem}.g-md-2,.gx-md-2{--bs-gutter-x: .5rem}.g-md-2,.gy-md-2{--bs-gutter-y: .5rem}.g-md-3,.gx-md-3{--bs-gutter-x: 1rem}.g-md-3,.gy-md-3{--bs-gutter-y: 1rem}.g-md-4,.gx-md-4{--bs-gutter-x: 1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y: 1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x: 3rem}.g-md-5,.gy-md-5{--bs-gutter-y: 3rem}}@media(min-width:992px){.col-lg{flex:1 0 0}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.66666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x: 0}.g-lg-0,.gy-lg-0{--bs-gutter-y: 0}.g-lg-1,.gx-lg-1{--bs-gutter-x: .25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y: .25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x: .5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y: .5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x: 1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y: 1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x: 1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y: 1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x: 3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y: 3rem}}@media(min-width:1300px){.col-xl{flex:1 0 0}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.66666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x: 0}.g-xl-0,.gy-xl-0{--bs-gutter-y: 0}.g-xl-1,.gx-xl-1{--bs-gutter-x: .25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y: .25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x: .5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y: .5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x: 1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y: 1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x: 1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y: 1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x: 3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y: 3rem}}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-inline-grid{display:inline-grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}@media(min-width:576px){.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-inline-grid{display:inline-grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}}@media(min-width:768px){.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-inline-grid{display:inline-grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}}@media(min-width:992px){.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-inline-grid{display:inline-grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}}@media(min-width:1300px){.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-inline-grid{display:inline-grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-inline-grid{display:inline-grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}}.navbar{--bs-navbar-padding-x: 0;--bs-navbar-padding-y: .5rem;--bs-navbar-color: rgba(var(--bs-emphasis-color-rgb), .65);--bs-navbar-hover-color: rgba(var(--bs-emphasis-color-rgb), .8);--bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), .3);--bs-navbar-active-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-padding-y: .3125rem;--bs-navbar-brand-margin-end: 1rem;--bs-navbar-brand-font-size: 1.25rem;--bs-navbar-brand-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-hover-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-nav-link-padding-x: .5rem;--bs-navbar-toggler-padding-y: .25rem;--bs-navbar-toggler-padding-x: .75rem;--bs-navbar-toggler-font-size: 1.25rem;--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), .15);--bs-navbar-toggler-border-radius: var(--bs-border-radius);--bs-navbar-toggler-focus-width: .25rem;--bs-navbar-toggler-transition: box-shadow .15s ease-in-out;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-sm,.navbar>.container-md,.navbar>.container-lg,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x: 0;--bs-nav-link-padding-y: .5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-navbar-color);--bs-nav-link-hover-color: var(--bs-navbar-hover-color);--bs-nav-link-disabled-color: var(--bs-navbar-disabled-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:hover,.navbar-text a:focus{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-grow:1;flex-basis:100%;align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@media(prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height, 75vh);overflow-y:auto}@media(min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media(min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media(min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media(min-width:1300px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-bs-theme=dark]{--bs-navbar-color: rgba(248, 249, 249, .55);--bs-navbar-hover-color: rgba(248, 249, 249, .75);--bs-navbar-disabled-color: rgba(248, 249, 249, .25);--bs-navbar-active-color: #F8F9F9;--bs-navbar-brand-color: #F8F9F9;--bs-navbar-brand-hover-color: #F8F9F9;--bs-navbar-toggler-border-color: rgba(248, 249, 249, .1);--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28248, 249, 249, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-bs-theme=dark] .navbar-toggler-icon{--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28248, 249, 249, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}html,body{height:100%;min-height:100%;font-family:Skycoin;margin:0;color:#f8f9f9!important;font-size:1rem;backface-visibility:hidden}button:focus{outline:0}.mat-mdc-button{min-width:40px!important;padding:0 16px!important}.mat-mdc-button .mat-icon{height:auto!important;width:auto!important}.mdc-snackbar__surface{background-color:transparent!important;box-shadow:none!important}.mat-mdc-form-field-infix{display:flex}.mat-mdc-form-field input.mat-mdc-input-element,.mat-mdc-form-field textarea.mat-mdc-input-element{color:#ffffffeb!important;caret-color:#ffffffeb!important}.mat-mdc-form-field input.mat-mdc-input-element::placeholder,.mat-mdc-form-field textarea.mat-mdc-input-element::placeholder{color:#ffffff73!important}.mat-mdc-form-field .mdc-floating-label,.mat-mdc-form-field .mat-mdc-floating-label{color:#ffffffb3}.mat-mdc-form-field .mdc-notched-outline__leading,.mat-mdc-form-field .mdc-notched-outline__notch,.mat-mdc-form-field .mdc-notched-outline__trailing{border-color:#ffffff40!important}.mdc-text-field--filled{background-color:transparent!important;padding:0!important}.mdc-text-field--filled .mat-mdc-form-field-focus-overlay{opacity:0!important}.mdc-text-field--filled .mat-mdc-form-field-infix{padding:0!important;min-height:45px!important}.mdc-text-field--filled .mat-mdc-form-field-infix .field-container{width:100%}.mdc-text-field--filled .mat-mdc-form-field-infix .field-container .field-label{margin:0 0 5px;font-size:.7rem;opacity:.55}.mdc-text-field--filled .mat-mdc-form-field-infix .mat-mdc-form-field-input-control{font-family:Skycoin!important;font-size:.875rem!important}.mat-mdc-form-field-bottom-align{margin-bottom:15px}.mat-mdc-form-field-bottom-align:before{display:none!important}.mat-mdc-form-field-error-wrapper{padding:0!important;position:inherit!important;line-height:1.2;margin-top:3px}.mat-mdc-select{display:flex!important;font-family:Skycoin!important;font-size:.875rem!important}.mat-mdc-select .mat-mdc-select-value{line-height:1.5}.mat-mdc-select-value,.mat-mdc-select-min-line,.mat-mdc-select-placeholder,.mat-mdc-select-arrow{color:#ffffffde!important}.cdk-overlay-pane .skynet-select-panel.mdc-menu-surface,.cdk-overlay-pane .skynet-select-panel.mat-mdc-select-panel,.mat-mdc-select-panel.skynet-select-panel{background-color:#1f2533!important;--mat-app-surface: #1f2533;--mdc-theme-surface: #1f2533;--mat-mdc-select-panel-background-color: #1f2533;--mdc-list-list-item-label-text-color: rgba(255, 255, 255, .87);--mdc-list-list-item-hover-label-text-color: #ffffff;--mdc-list-list-item-focus-label-text-color: #ffffff;--mdc-list-list-item-hover-state-layer-color: rgba(255, 255, 255, .08);--mdc-list-list-item-focus-state-layer-color: rgba(255, 255, 255, .12);--mat-option-label-text-color: rgba(255, 255, 255, .87);--mat-option-selected-state-label-text-color: #ffffff}.cdk-overlay-pane .skynet-select-panel.mdc-menu-surface .mat-mdc-option,.cdk-overlay-pane .skynet-select-panel.mdc-menu-surface .mat-mdc-option .mdc-list-item__primary-text,.cdk-overlay-pane .skynet-select-panel.mdc-menu-surface .mdc-list-item__primary-text,.cdk-overlay-pane .skynet-select-panel.mat-mdc-select-panel .mat-mdc-option,.cdk-overlay-pane .skynet-select-panel.mat-mdc-select-panel .mat-mdc-option .mdc-list-item__primary-text,.cdk-overlay-pane .skynet-select-panel.mat-mdc-select-panel .mdc-list-item__primary-text,.mat-mdc-select-panel.skynet-select-panel .mat-mdc-option,.mat-mdc-select-panel.skynet-select-panel .mat-mdc-option .mdc-list-item__primary-text,.mat-mdc-select-panel.skynet-select-panel .mdc-list-item__primary-text{color:#ffffffde!important}.cdk-overlay-pane .skynet-select-panel.mdc-menu-surface .mat-mdc-option:hover:not(.mdc-list-item--disabled),.cdk-overlay-pane .skynet-select-panel.mdc-menu-surface .mat-mdc-option.mat-mdc-option-active,.cdk-overlay-pane .skynet-select-panel.mdc-menu-surface .mat-mdc-option.mdc-list-item--selected,.cdk-overlay-pane .skynet-select-panel.mat-mdc-select-panel .mat-mdc-option:hover:not(.mdc-list-item--disabled),.cdk-overlay-pane .skynet-select-panel.mat-mdc-select-panel .mat-mdc-option.mat-mdc-option-active,.cdk-overlay-pane .skynet-select-panel.mat-mdc-select-panel .mat-mdc-option.mdc-list-item--selected,.mat-mdc-select-panel.skynet-select-panel .mat-mdc-option:hover:not(.mdc-list-item--disabled),.mat-mdc-select-panel.skynet-select-panel .mat-mdc-option.mat-mdc-option-active,.mat-mdc-select-panel.skynet-select-panel .mat-mdc-option.mdc-list-item--selected{background-color:#ffffff14!important;color:#fff!important}.grey-button-background:hover{background-color:#0000000d!important}.flex-1{flex:1}.mat-mdc-snack-bar-container{max-width:90vw!important}.transparent-50{opacity:.5}.flag-container{width:16px;height:11px;display:inline-block;margin-right:5px;background-image:url(/assets/img/flags/unknown.png)}.flag-container div{width:16px;height:11px}.help-icon{opacity:.4;font-size:14px;cursor:default;position:relative;top:1px}.blinking{animation:alert-blinking 1s linear infinite}@keyframes alert-blinking{50%{opacity:.5}}.snackbar-container{padding:0!important;background:transparent!important}.mdc-tooltip__surface{font-size:11px!important;line-height:1.8;padding:7px 14px!important}.mat-mdc-tooltip-panel{pointer-events:none!important}.tooltip-word-break{word-break:break-word}.mat-mdc-button-touch-target{height:100%!important}.mat-mdc-button:not(:disabled){color:#202226}.mat-accent .mdc-button__label{color:#fff!important}html{--mat-badge-text-font: Skycoin;--mat-badge-line-height: 22px;--mat-badge-text-size: 12px;--mat-badge-text-weight: 600;--mat-badge-small-size-text-size: 9px;--mat-badge-small-size-line-height: 16px;--mat-badge-large-size-text-size: 24px;--mat-badge-large-size-line-height: 28px}.mat-h1,.mat-headline-5,.mat-typography .mat-h1,.mat-typography .mat-headline-5,.mat-typography h1{font:400 24px/32px Skycoin;letter-spacing:normal;margin:0 0 16px}.mat-h2,.mat-headline-6,.mat-typography .mat-h2,.mat-typography .mat-headline-6,.mat-typography h2{font:500 20px/32px Skycoin;letter-spacing:.0125em;margin:0 0 16px}.mat-h3,.mat-subtitle-1,.mat-typography .mat-h3,.mat-typography .mat-subtitle-1,.mat-typography h3,.mat-h4,.mat-body-1,.mat-typography .mat-h4,.mat-typography .mat-body-1,.mat-typography h4{font:400 .875rem/1 Skycoin;letter-spacing:normal;margin:0 0 16px}.mat-h5,.mat-typography .mat-h5,.mat-typography h5{font:400 11.62px/20px Skycoin;margin:0 0 12px}.mat-h6,.mat-typography .mat-h6,.mat-typography h6{font:400 9.38px/20px Skycoin;margin:0 0 12px}.mat-body-strong,.mat-subtitle-2,.mat-typography .mat-body-strong,.mat-typography .mat-subtitle-2{font:500 14px/22px Skycoin;letter-spacing:.0071428571em}.mat-body,.mat-body-2,.mat-typography .mat-body,.mat-typography .mat-body-2,.mat-typography{font:400 14px/20px Skycoin;letter-spacing:.0178571429em}.mat-body p,.mat-body-2 p,.mat-typography .mat-body p,.mat-typography .mat-body-2 p,.mat-typography p{margin:0 0 12px}.mat-small,.mat-caption,.mat-typography .mat-small,.mat-typography .mat-caption{font:400 12px/20px Skycoin;letter-spacing:.0333333333em}.mat-headline-1,.mat-typography .mat-headline-1{font:300 96px/96px Skycoin;letter-spacing:-.015625em;margin:0 0 56px}.mat-headline-2,.mat-typography .mat-headline-2{font:300 60px/60px Skycoin;letter-spacing:-.0083333333em;margin:0 0 64px}.mat-headline-3,.mat-typography .mat-headline-3{font:400 48px/50px Skycoin;letter-spacing:normal;margin:0 0 64px}.mat-headline-4,.mat-typography .mat-headline-4{font:400 34px/40px Skycoin;letter-spacing:.0073529412em;margin:0 0 64px}html{--mat-bottom-sheet-container-text-font: Skycoin;--mat-bottom-sheet-container-text-line-height: 20px;--mat-bottom-sheet-container-text-size: 14px;--mat-bottom-sheet-container-text-tracking: .0178571429em;--mat-bottom-sheet-container-text-weight: 400}html{--mat-button-toggle-label-text-font: Skycoin;--mat-button-toggle-label-text-line-height: 1;--mat-button-toggle-label-text-size: .875rem;--mat-button-toggle-label-text-tracking: normal;--mat-button-toggle-label-text-weight: 400;--mat-button-toggle-legacy-label-text-font: Skycoin;--mat-button-toggle-legacy-label-text-line-height: 1;--mat-button-toggle-legacy-label-text-size: .875rem;--mat-button-toggle-legacy-label-text-tracking: normal;--mat-button-toggle-legacy-label-text-weight: 400}html{--mat-datepicker-calendar-text-font: Skycoin;--mat-datepicker-calendar-text-size: 13px;--mat-datepicker-calendar-body-label-text-size: .875rem;--mat-datepicker-calendar-body-label-text-weight: 400;--mat-datepicker-calendar-period-button-text-size: .875rem;--mat-datepicker-calendar-period-button-text-weight: 400;--mat-datepicker-calendar-header-text-size: 11px;--mat-datepicker-calendar-header-text-weight: 400}html{--mat-expansion-header-text-font: Skycoin;--mat-expansion-header-text-size: 14px;--mat-expansion-header-text-weight: 500;--mat-expansion-header-text-line-height: inherit;--mat-expansion-header-text-tracking: inherit;--mat-expansion-container-text-font: Skycoin;--mat-expansion-container-text-line-height: 20px;--mat-expansion-container-text-size: 14px;--mat-expansion-container-text-tracking: .0178571429em;--mat-expansion-container-text-weight: 400}html{--mat-grid-list-tile-header-primary-text-size: 14px;--mat-grid-list-tile-header-secondary-text-size: 12px;--mat-grid-list-tile-footer-primary-text-size: 14px;--mat-grid-list-tile-footer-secondary-text-size: 12px}html{--mat-stepper-container-text-font: Skycoin;--mat-stepper-header-label-text-font: Skycoin;--mat-stepper-header-label-text-size: 14px;--mat-stepper-header-label-text-weight: 400;--mat-stepper-header-error-state-label-text-size: .875rem;--mat-stepper-header-selected-state-label-text-size: .875rem;--mat-stepper-header-selected-state-label-text-weight: 400}html{--mat-toolbar-title-text-font: Skycoin;--mat-toolbar-title-text-line-height: 32px;--mat-toolbar-title-text-size: 20px;--mat-toolbar-title-text-tracking: .0125em;--mat-toolbar-title-text-weight: 500}html{--mat-tree-node-text-font: Skycoin;--mat-tree-node-text-size: 14px;--mat-tree-node-text-weight: 400}html{--mat-option-label-text-font: Skycoin;--mat-option-label-text-line-height: 1;--mat-option-label-text-size: .875rem;--mat-option-label-text-tracking: normal;--mat-option-label-text-weight: 400}html{--mat-optgroup-label-text-font: Skycoin;--mat-optgroup-label-text-line-height: 1;--mat-optgroup-label-text-size: .875rem;--mat-optgroup-label-text-tracking: normal;--mat-optgroup-label-text-weight: 400}html{--mat-card-title-text-font: Skycoin;--mat-card-title-text-line-height: 32px;--mat-card-title-text-size: 20px;--mat-card-title-text-tracking: .0125em;--mat-card-title-text-weight: 500;--mat-card-subtitle-text-font: Skycoin;--mat-card-subtitle-text-line-height: 22px;--mat-card-subtitle-text-size: 14px;--mat-card-subtitle-text-tracking: .0071428571em;--mat-card-subtitle-text-weight: 500}html{--mat-tooltip-supporting-text-font: Skycoin;--mat-tooltip-supporting-text-size: 12px;--mat-tooltip-supporting-text-weight: 400;--mat-tooltip-supporting-text-tracking: .0333333333em}html{--mat-form-field-container-text-font: Skycoin;--mat-form-field-container-text-line-height: 1;--mat-form-field-container-text-size: .875rem;--mat-form-field-container-text-tracking: normal;--mat-form-field-container-text-weight: 400;--mat-form-field-outlined-label-text-populated-size: .875rem;--mat-form-field-subscript-text-font: Skycoin;--mat-form-field-subscript-text-line-height: 20px;--mat-form-field-subscript-text-size: 12px;--mat-form-field-subscript-text-tracking: .0333333333em;--mat-form-field-subscript-text-weight: 400;--mat-form-field-filled-label-text-font: Skycoin;--mat-form-field-filled-label-text-size: .875rem;--mat-form-field-filled-label-text-tracking: normal;--mat-form-field-filled-label-text-weight: 400;--mat-form-field-outlined-label-text-font: Skycoin;--mat-form-field-outlined-label-text-size: .875rem;--mat-form-field-outlined-label-text-tracking: normal;--mat-form-field-outlined-label-text-weight: 400}html{--mat-select-trigger-text-font: Skycoin;--mat-select-trigger-text-line-height: 1;--mat-select-trigger-text-size: .875rem;--mat-select-trigger-text-tracking: normal;--mat-select-trigger-text-weight: 400}html{--mat-dialog-subhead-font: Skycoin;--mat-dialog-subhead-line-height: 32px;--mat-dialog-subhead-size: 20px;--mat-dialog-subhead-weight: 500;--mat-dialog-subhead-tracking: .0125em;--mat-dialog-supporting-text-font: Skycoin;--mat-dialog-supporting-text-line-height: 1;--mat-dialog-supporting-text-size: .875rem;--mat-dialog-supporting-text-weight: 400;--mat-dialog-supporting-text-tracking: normal}.mat-mdc-standard-chip{--mat-chip-label-text-font: Skycoin;--mat-chip-label-text-line-height: 20px;--mat-chip-label-text-size: 14px;--mat-chip-label-text-tracking: .0178571429em;--mat-chip-label-text-weight: 400}html,html .mat-mdc-slide-toggle{--mat-slide-toggle-label-text-font: Skycoin;--mat-slide-toggle-label-text-line-height: 20px;--mat-slide-toggle-label-text-size: 14px;--mat-slide-toggle-label-text-tracking: .0178571429em;--mat-slide-toggle-label-text-weight: 400}html{--mat-radio-label-text-font: Skycoin;--mat-radio-label-text-line-height: 20px;--mat-radio-label-text-size: 14px;--mat-radio-label-text-tracking: .0178571429em;--mat-radio-label-text-weight: 400}html{--mat-slider-label-label-text-font: Skycoin;--mat-slider-label-label-text-size: 14px;--mat-slider-label-label-text-line-height: 22px;--mat-slider-label-label-text-tracking: .0071428571em;--mat-slider-label-label-text-weight: 500}html{--mat-menu-item-label-text-font: Skycoin;--mat-menu-item-label-text-size: .875rem;--mat-menu-item-label-text-tracking: normal;--mat-menu-item-label-text-line-height: 1;--mat-menu-item-label-text-weight: 400}html{--mat-list-list-item-label-text-font: Skycoin;--mat-list-list-item-label-text-line-height: 1;--mat-list-list-item-label-text-size: .875rem;--mat-list-list-item-label-text-tracking: normal;--mat-list-list-item-label-text-weight: 400;--mat-list-list-item-supporting-text-font: Skycoin;--mat-list-list-item-supporting-text-line-height: 20px;--mat-list-list-item-supporting-text-size: 14px;--mat-list-list-item-supporting-text-tracking: .0178571429em;--mat-list-list-item-supporting-text-weight: 400;--mat-list-list-item-trailing-supporting-text-font: Skycoin;--mat-list-list-item-trailing-supporting-text-line-height: 20px;--mat-list-list-item-trailing-supporting-text-size: 12px;--mat-list-list-item-trailing-supporting-text-tracking: .0333333333em;--mat-list-list-item-trailing-supporting-text-weight: 400}.mdc-list-group__subheader{font:400 .875rem/1 Skycoin;letter-spacing:normal}html{--mat-paginator-container-text-font: Skycoin;--mat-paginator-container-text-line-height: 20px;--mat-paginator-container-text-size: 12px;--mat-paginator-container-text-tracking: .0333333333em;--mat-paginator-container-text-weight: 400;--mat-paginator-select-trigger-text-size: 12px}.mat-mdc-tab-header{--mat-tab-label-text-font: Skycoin;--mat-tab-label-text-size: .875rem;--mat-tab-label-text-tracking: normal;--mat-tab-label-text-line-height: .875rem;--mat-tab-label-text-weight: 400}html{--mat-checkbox-label-text-font: Skycoin;--mat-checkbox-label-text-line-height: 20px;--mat-checkbox-label-text-size: 14px;--mat-checkbox-label-text-tracking: .0178571429em;--mat-checkbox-label-text-weight: 400}html{--mat-button-filled-label-text-font: Skycoin;--mat-button-filled-label-text-size: .875rem;--mat-button-filled-label-text-tracking: normal;--mat-button-filled-label-text-transform: none;--mat-button-filled-label-text-weight: 400;--mat-button-outlined-label-text-font: Skycoin;--mat-button-outlined-label-text-size: .875rem;--mat-button-outlined-label-text-tracking: normal;--mat-button-outlined-label-text-transform: none;--mat-button-outlined-label-text-weight: 400;--mat-button-protected-label-text-font: Skycoin;--mat-button-protected-label-text-size: .875rem;--mat-button-protected-label-text-tracking: normal;--mat-button-protected-label-text-transform: none;--mat-button-protected-label-text-weight: 400;--mat-button-text-label-text-font: Skycoin;--mat-button-text-label-text-size: .875rem;--mat-button-text-label-text-tracking: normal;--mat-button-text-label-text-transform: none;--mat-button-text-label-text-weight: 400;--mat-button-tonal-label-text-font: Skycoin;--mat-button-tonal-label-text-size: .875rem;--mat-button-tonal-label-text-tracking: normal;--mat-button-tonal-label-text-transform: none;--mat-button-tonal-label-text-weight: 400}html{--mat-fab-extended-label-text-font: Skycoin;--mat-fab-extended-label-text-size: .875rem;--mat-fab-extended-label-text-tracking: normal;--mat-fab-extended-label-text-weight: 400}html{--mat-snack-bar-supporting-text-font: Skycoin;--mat-snack-bar-supporting-text-line-height: 20px;--mat-snack-bar-supporting-text-size: 14px;--mat-snack-bar-supporting-text-weight: 400}html{--mat-table-header-headline-font: Skycoin;--mat-table-header-headline-line-height: 22px;--mat-table-header-headline-size: 14px;--mat-table-header-headline-weight: 500;--mat-table-header-headline-tracking: .0071428571em;--mat-table-row-item-label-text-font: Skycoin;--mat-table-row-item-label-text-line-height: 20px;--mat-table-row-item-label-text-size: 14px;--mat-table-row-item-label-text-weight: 400;--mat-table-row-item-label-text-tracking: .0178571429em;--mat-table-footer-supporting-text-font: Skycoin;--mat-table-footer-supporting-text-line-height: 20px;--mat-table-footer-supporting-text-size: 14px;--mat-table-footer-supporting-text-weight: 400;--mat-table-footer-supporting-text-tracking: .0178571429em}.mat-elevation-z0,.mat-mdc-elevation-specific.mat-elevation-z0{box-shadow:var(--mat-app-elevation-shadow-level-0, 0px 0px 0px 0px --mat-sys-shadow, 0px 0px 0px 0px --mat-sys-shadow, 0px 0px 0px 0px --mat-sys-shadow)}.mat-elevation-z1,.mat-mdc-elevation-specific.mat-elevation-z1{box-shadow:var(--mat-app-elevation-shadow-level-1, 0px 2px 1px -1px --mat-sys-shadow, 0px 1px 1px 0px --mat-sys-shadow, 0px 1px 3px 0px --mat-sys-shadow)}.mat-elevation-z2,.mat-mdc-elevation-specific.mat-elevation-z2{box-shadow:var(--mat-app-elevation-shadow-level-2, 0px 3px 1px -2px --mat-sys-shadow, 0px 2px 2px 0px --mat-sys-shadow, 0px 1px 5px 0px --mat-sys-shadow)}.mat-elevation-z3,.mat-mdc-elevation-specific.mat-elevation-z3{box-shadow:var(--mat-app-elevation-shadow-level-3, 0px 3px 3px -2px --mat-sys-shadow, 0px 3px 4px 0px --mat-sys-shadow, 0px 1px 8px 0px --mat-sys-shadow)}.mat-elevation-z4,.mat-mdc-elevation-specific.mat-elevation-z4{box-shadow:var(--mat-app-elevation-shadow-level-4, 0px 2px 4px -1px --mat-sys-shadow, 0px 4px 5px 0px --mat-sys-shadow, 0px 1px 10px 0px --mat-sys-shadow)}.mat-elevation-z5,.mat-mdc-elevation-specific.mat-elevation-z5{box-shadow:var(--mat-app-elevation-shadow-level-5, 0px 3px 5px -1px --mat-sys-shadow, 0px 5px 8px 0px --mat-sys-shadow, 0px 1px 14px 0px --mat-sys-shadow)}.mat-elevation-z6,.mat-mdc-elevation-specific.mat-elevation-z6{box-shadow:var(--mat-app-elevation-shadow-level-6, 0px 3px 5px -1px --mat-sys-shadow, 0px 6px 10px 0px --mat-sys-shadow, 0px 1px 18px 0px --mat-sys-shadow)}.mat-elevation-z7,.mat-mdc-elevation-specific.mat-elevation-z7{box-shadow:var(--mat-app-elevation-shadow-level-7, 0px 4px 5px -2px --mat-sys-shadow, 0px 7px 10px 1px --mat-sys-shadow, 0px 2px 16px 1px --mat-sys-shadow)}.mat-elevation-z8,.mat-mdc-elevation-specific.mat-elevation-z8{box-shadow:var(--mat-app-elevation-shadow-level-8, 0px 5px 5px -3px --mat-sys-shadow, 0px 8px 10px 1px --mat-sys-shadow, 0px 3px 14px 2px --mat-sys-shadow)}.mat-elevation-z9,.mat-mdc-elevation-specific.mat-elevation-z9{box-shadow:var(--mat-app-elevation-shadow-level-9, 0px 5px 6px -3px --mat-sys-shadow, 0px 9px 12px 1px --mat-sys-shadow, 0px 3px 16px 2px --mat-sys-shadow)}.mat-elevation-z10,.mat-mdc-elevation-specific.mat-elevation-z10{box-shadow:var(--mat-app-elevation-shadow-level-10, 0px 6px 6px -3px --mat-sys-shadow, 0px 10px 14px 1px --mat-sys-shadow, 0px 4px 18px 3px --mat-sys-shadow)}.mat-elevation-z11,.mat-mdc-elevation-specific.mat-elevation-z11{box-shadow:var(--mat-app-elevation-shadow-level-11, 0px 6px 7px -4px --mat-sys-shadow, 0px 11px 15px 1px --mat-sys-shadow, 0px 4px 20px 3px --mat-sys-shadow)}.mat-elevation-z12,.mat-mdc-elevation-specific.mat-elevation-z12{box-shadow:var(--mat-app-elevation-shadow-level-12, 0px 7px 8px -4px --mat-sys-shadow, 0px 12px 17px 2px --mat-sys-shadow, 0px 5px 22px 4px --mat-sys-shadow)}.mat-elevation-z13,.mat-mdc-elevation-specific.mat-elevation-z13{box-shadow:var(--mat-app-elevation-shadow-level-13, 0px 7px 8px -4px --mat-sys-shadow, 0px 13px 19px 2px --mat-sys-shadow, 0px 5px 24px 4px --mat-sys-shadow)}.mat-elevation-z14,.mat-mdc-elevation-specific.mat-elevation-z14{box-shadow:var(--mat-app-elevation-shadow-level-14, 0px 7px 9px -4px --mat-sys-shadow, 0px 14px 21px 2px --mat-sys-shadow, 0px 5px 26px 4px --mat-sys-shadow)}.mat-elevation-z15,.mat-mdc-elevation-specific.mat-elevation-z15{box-shadow:var(--mat-app-elevation-shadow-level-15, 0px 8px 9px -5px --mat-sys-shadow, 0px 15px 22px 2px --mat-sys-shadow, 0px 6px 28px 5px --mat-sys-shadow)}.mat-elevation-z16,.mat-mdc-elevation-specific.mat-elevation-z16{box-shadow:var(--mat-app-elevation-shadow-level-16, 0px 8px 10px -5px --mat-sys-shadow, 0px 16px 24px 2px --mat-sys-shadow, 0px 6px 30px 5px --mat-sys-shadow)}.mat-elevation-z17,.mat-mdc-elevation-specific.mat-elevation-z17{box-shadow:var(--mat-app-elevation-shadow-level-17, 0px 8px 11px -5px --mat-sys-shadow, 0px 17px 26px 2px --mat-sys-shadow, 0px 6px 32px 5px --mat-sys-shadow)}.mat-elevation-z18,.mat-mdc-elevation-specific.mat-elevation-z18{box-shadow:var(--mat-app-elevation-shadow-level-18, 0px 9px 11px -5px --mat-sys-shadow, 0px 18px 28px 2px --mat-sys-shadow, 0px 7px 34px 6px --mat-sys-shadow)}.mat-elevation-z19,.mat-mdc-elevation-specific.mat-elevation-z19{box-shadow:var(--mat-app-elevation-shadow-level-19, 0px 9px 12px -6px --mat-sys-shadow, 0px 19px 29px 2px --mat-sys-shadow, 0px 7px 36px 6px --mat-sys-shadow)}.mat-elevation-z20,.mat-mdc-elevation-specific.mat-elevation-z20{box-shadow:var(--mat-app-elevation-shadow-level-20, 0px 10px 13px -6px --mat-sys-shadow, 0px 20px 31px 3px --mat-sys-shadow, 0px 8px 38px 7px --mat-sys-shadow)}.mat-elevation-z21,.mat-mdc-elevation-specific.mat-elevation-z21{box-shadow:var(--mat-app-elevation-shadow-level-21, 0px 10px 13px -6px --mat-sys-shadow, 0px 21px 33px 3px --mat-sys-shadow, 0px 8px 40px 7px --mat-sys-shadow)}.mat-elevation-z22,.mat-mdc-elevation-specific.mat-elevation-z22{box-shadow:var(--mat-app-elevation-shadow-level-22, 0px 10px 14px -6px --mat-sys-shadow, 0px 22px 35px 3px --mat-sys-shadow, 0px 8px 42px 7px --mat-sys-shadow)}.mat-elevation-z23,.mat-mdc-elevation-specific.mat-elevation-z23{box-shadow:var(--mat-app-elevation-shadow-level-23, 0px 11px 14px -7px --mat-sys-shadow, 0px 23px 36px 3px --mat-sys-shadow, 0px 9px 44px 8px --mat-sys-shadow)}.mat-elevation-z24,.mat-mdc-elevation-specific.mat-elevation-z24{box-shadow:var(--mat-app-elevation-shadow-level-24, 0px 11px 15px -7px --mat-sys-shadow, 0px 24px 38px 3px --mat-sys-shadow, 0px 9px 46px 8px --mat-sys-shadow)}html{--mat-sys-on-surface: initial}.mat-app-background{background-color:var(--mat-app-background-color, var(--mat-sys-background, transparent));color:var(--mat-app-text-color, var(--mat-sys-on-background, inherit))}html{--mat-app-background-color: #fafafa;--mat-app-text-color: rgba(0, 0, 0, .87);--mat-app-elevation-shadow-level-0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-2: 0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-3: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-4: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-5: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 5px 8px 0px rgba(0, 0, 0, .14), 0px 1px 14px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-6: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-7: 0px 4px 5px -2px rgba(0, 0, 0, .2), 0px 7px 10px 1px rgba(0, 0, 0, .14), 0px 2px 16px 1px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-8: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-9: 0px 5px 6px -3px rgba(0, 0, 0, .2), 0px 9px 12px 1px rgba(0, 0, 0, .14), 0px 3px 16px 2px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-10: 0px 6px 6px -3px rgba(0, 0, 0, .2), 0px 10px 14px 1px rgba(0, 0, 0, .14), 0px 4px 18px 3px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-11: 0px 6px 7px -4px rgba(0, 0, 0, .2), 0px 11px 15px 1px rgba(0, 0, 0, .14), 0px 4px 20px 3px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-12: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-13: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 13px 19px 2px rgba(0, 0, 0, .14), 0px 5px 24px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-14: 0px 7px 9px -4px rgba(0, 0, 0, .2), 0px 14px 21px 2px rgba(0, 0, 0, .14), 0px 5px 26px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-15: 0px 8px 9px -5px rgba(0, 0, 0, .2), 0px 15px 22px 2px rgba(0, 0, 0, .14), 0px 6px 28px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-16: 0px 8px 10px -5px rgba(0, 0, 0, .2), 0px 16px 24px 2px rgba(0, 0, 0, .14), 0px 6px 30px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-17: 0px 8px 11px -5px rgba(0, 0, 0, .2), 0px 17px 26px 2px rgba(0, 0, 0, .14), 0px 6px 32px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-18: 0px 9px 11px -5px rgba(0, 0, 0, .2), 0px 18px 28px 2px rgba(0, 0, 0, .14), 0px 7px 34px 6px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-19: 0px 9px 12px -6px rgba(0, 0, 0, .2), 0px 19px 29px 2px rgba(0, 0, 0, .14), 0px 7px 36px 6px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-20: 0px 10px 13px -6px rgba(0, 0, 0, .2), 0px 20px 31px 3px rgba(0, 0, 0, .14), 0px 8px 38px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-21: 0px 10px 13px -6px rgba(0, 0, 0, .2), 0px 21px 33px 3px rgba(0, 0, 0, .14), 0px 8px 40px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-22: 0px 10px 14px -6px rgba(0, 0, 0, .2), 0px 22px 35px 3px rgba(0, 0, 0, .14), 0px 8px 42px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-23: 0px 11px 14px -7px rgba(0, 0, 0, .2), 0px 23px 36px 3px rgba(0, 0, 0, .14), 0px 9px 44px 8px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-24: 0px 11px 15px -7px rgba(0, 0, 0, .2), 0px 24px 38px 3px rgba(0, 0, 0, .14), 0px 9px 46px 8px rgba(0, 0, 0, .12)}html{--mat-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent)}html{--mat-option-selected-state-label-text-color: #215f9e;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-option-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-option-selected-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent)}.mat-accent{--mat-option-selected-state-label-text-color: #a7a7a7;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-option-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-option-selected-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent)}.mat-warn{--mat-option-selected-state-label-text-color: #f44336;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-option-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-option-selected-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent)}html{--mat-optgroup-label-text-color: rgba(0, 0, 0, .87)}html{--mat-pseudo-checkbox-full-selected-icon-color: #a7a7a7;--mat-pseudo-checkbox-full-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-unselected-icon-color: rgba(0, 0, 0, .54);--mat-pseudo-checkbox-full-disabled-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-full-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-minimal-selected-checkmark-color: #a7a7a7;--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}.mat-primary{--mat-pseudo-checkbox-full-selected-icon-color: #215f9e;--mat-pseudo-checkbox-full-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-unselected-icon-color: rgba(0, 0, 0, .54);--mat-pseudo-checkbox-full-disabled-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-full-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-minimal-selected-checkmark-color: #215f9e;--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}.mat-accent{--mat-pseudo-checkbox-full-selected-icon-color: #a7a7a7;--mat-pseudo-checkbox-full-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-unselected-icon-color: rgba(0, 0, 0, .54);--mat-pseudo-checkbox-full-disabled-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-full-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-minimal-selected-checkmark-color: #a7a7a7;--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}.mat-warn{--mat-pseudo-checkbox-full-selected-icon-color: #f44336;--mat-pseudo-checkbox-full-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-unselected-icon-color: rgba(0, 0, 0, .54);--mat-pseudo-checkbox-full-disabled-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-full-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-minimal-selected-checkmark-color: #f44336;--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}html{--mat-card-elevated-container-shape: 4px;--mat-card-outlined-container-shape: 4px;--mat-card-filled-container-shape: 4px;--mat-card-outlined-outline-width: 1px}html{--mat-card-elevated-container-color: white;--mat-card-elevated-container-elevation: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-card-outlined-container-color: white;--mat-card-outlined-container-elevation: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-card-outlined-outline-color: rgba(0, 0, 0, .12);--mat-card-subtitle-text-color: rgba(0, 0, 0, .54);--mat-card-filled-container-color: white;--mat-card-filled-container-elevation: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12)}html{--mat-progress-bar-active-indicator-height: 4px;--mat-progress-bar-track-height: 4px;--mat-progress-bar-track-shape: 0}.mat-mdc-progress-bar{--mat-progress-bar-active-indicator-color: #215f9e;--mat-progress-bar-track-color: rgba(33, 95, 158, .25)}.mat-mdc-progress-bar.mat-accent{--mat-progress-bar-active-indicator-color: #a7a7a7;--mat-progress-bar-track-color: rgba(167, 167, 167, .25)}.mat-mdc-progress-bar.mat-warn{--mat-progress-bar-active-indicator-color: #f44336;--mat-progress-bar-track-color: rgba(244, 67, 54, .25)}html{--mat-tooltip-container-shape: 4px;--mat-tooltip-supporting-text-line-height: 16px}html{--mat-tooltip-container-color: #424242;--mat-tooltip-supporting-text-color: white}html{--mat-form-field-filled-active-indicator-height: 1px;--mat-form-field-filled-focus-active-indicator-height: 2px;--mat-form-field-filled-container-shape: 4px;--mat-form-field-outlined-outline-width: 1px;--mat-form-field-outlined-focus-outline-width: 2px;--mat-form-field-outlined-container-shape: 4px}html{--mat-form-field-focus-select-arrow-color: color-mix(in srgb, #215f9e 87%, transparent);--mat-form-field-filled-caret-color: #215f9e;--mat-form-field-filled-focus-active-indicator-color: #215f9e;--mat-form-field-filled-focus-label-text-color: color-mix(in srgb, #215f9e 87%, transparent);--mat-form-field-outlined-caret-color: #215f9e;--mat-form-field-outlined-focus-outline-color: #215f9e;--mat-form-field-outlined-focus-label-text-color: color-mix(in srgb, #215f9e 87%, transparent);--mat-form-field-disabled-input-text-placeholder-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-state-layer-color: rgba(0, 0, 0, .87);--mat-form-field-error-text-color: #f44336;--mat-form-field-select-option-text-color: inherit;--mat-form-field-select-disabled-option-text-color: GrayText;--mat-form-field-leading-icon-color: unset;--mat-form-field-disabled-leading-icon-color: unset;--mat-form-field-trailing-icon-color: unset;--mat-form-field-disabled-trailing-icon-color: unset;--mat-form-field-error-focus-trailing-icon-color: unset;--mat-form-field-error-hover-trailing-icon-color: unset;--mat-form-field-error-trailing-icon-color: unset;--mat-form-field-enabled-select-arrow-color: rgba(0, 0, 0, .54);--mat-form-field-disabled-select-arrow-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-hover-state-layer-opacity: .04;--mat-form-field-focus-state-layer-opacity: .12;--mat-form-field-filled-container-color: #f6f6f6;--mat-form-field-filled-disabled-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-form-field-filled-label-text-color: rgba(0, 0, 0, .54);--mat-form-field-filled-hover-label-text-color: rgba(0, 0, 0, .54);--mat-form-field-filled-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-filled-input-text-color: rgba(0, 0, 0, .87);--mat-form-field-filled-disabled-input-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-filled-input-text-placeholder-color: rgba(0, 0, 0, .54);--mat-form-field-filled-error-hover-label-text-color: #f44336;--mat-form-field-filled-error-focus-label-text-color: #f44336;--mat-form-field-filled-error-label-text-color: #f44336;--mat-form-field-filled-error-caret-color: #f44336;--mat-form-field-filled-active-indicator-color: rgba(0, 0, 0, .54);--mat-form-field-filled-disabled-active-indicator-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-form-field-filled-hover-active-indicator-color: rgba(0, 0, 0, .87);--mat-form-field-filled-error-active-indicator-color: #f44336;--mat-form-field-filled-error-focus-active-indicator-color: #f44336;--mat-form-field-filled-error-hover-active-indicator-color: #f44336;--mat-form-field-outlined-label-text-color: rgba(0, 0, 0, .54);--mat-form-field-outlined-hover-label-text-color: rgba(0, 0, 0, .87);--mat-form-field-outlined-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-outlined-input-text-color: rgba(0, 0, 0, .87);--mat-form-field-outlined-disabled-input-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-outlined-input-text-placeholder-color: rgba(0, 0, 0, .54);--mat-form-field-outlined-error-caret-color: #f44336;--mat-form-field-outlined-error-focus-label-text-color: #f44336;--mat-form-field-outlined-error-label-text-color: #f44336;--mat-form-field-outlined-error-hover-label-text-color: #f44336;--mat-form-field-outlined-outline-color: rgba(0, 0, 0, .38);--mat-form-field-outlined-disabled-outline-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-form-field-outlined-hover-outline-color: rgba(0, 0, 0, .87);--mat-form-field-outlined-error-focus-outline-color: #f44336;--mat-form-field-outlined-error-hover-outline-color: #f44336;--mat-form-field-outlined-error-outline-color: #f44336}.mat-mdc-form-field.mat-accent{--mat-form-field-focus-select-arrow-color: color-mix(in srgb, #a7a7a7 87%, transparent);--mat-form-field-filled-caret-color: #a7a7a7;--mat-form-field-filled-focus-active-indicator-color: #a7a7a7;--mat-form-field-filled-focus-label-text-color: color-mix(in srgb, #a7a7a7 87%, transparent);--mat-form-field-outlined-caret-color: #a7a7a7;--mat-form-field-outlined-focus-outline-color: #a7a7a7;--mat-form-field-outlined-focus-label-text-color: color-mix(in srgb, #a7a7a7 87%, transparent)}.mat-mdc-form-field.mat-warn{--mat-form-field-focus-select-arrow-color: color-mix(in srgb, #f44336 87%, transparent);--mat-form-field-filled-caret-color: #f44336;--mat-form-field-filled-focus-active-indicator-color: #f44336;--mat-form-field-filled-focus-label-text-color: color-mix(in srgb, #f44336 87%, transparent);--mat-form-field-outlined-caret-color: #f44336;--mat-form-field-outlined-focus-outline-color: #f44336;--mat-form-field-outlined-focus-label-text-color: color-mix(in srgb, #f44336 87%, transparent)}html{--mat-form-field-container-height: 56px;--mat-form-field-filled-label-display: block;--mat-form-field-container-vertical-padding: 16px;--mat-form-field-filled-with-label-container-padding-top: 24px;--mat-form-field-filled-with-label-container-padding-bottom: 8px}html{--mat-select-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-placeholder-text-color: rgba(0, 0, 0, .54);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-focused-arrow-color: #215f9e;--mat-select-invalid-arrow-color: #f44336}.mat-mdc-form-field.mat-accent{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-placeholder-text-color: rgba(0, 0, 0, .54);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-focused-arrow-color: #a7a7a7;--mat-select-invalid-arrow-color: #f44336}.mat-mdc-form-field.mat-warn{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-placeholder-text-color: rgba(0, 0, 0, .54);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-focused-arrow-color: #f44336;--mat-select-invalid-arrow-color: #f44336}html{--mat-select-arrow-transform: translateY(-8px)}html{--mat-autocomplete-container-shape: 4px;--mat-autocomplete-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-autocomplete-background-color: white}html{--mat-dialog-container-shape: 4px;--mat-dialog-container-elevation-shadow: 0px 11px 15px -7px rgba(0, 0, 0, .2), 0px 24px 38px 3px rgba(0, 0, 0, .14), 0px 9px 46px 8px rgba(0, 0, 0, .12);--mat-dialog-container-max-width: 80vw;--mat-dialog-container-small-max-width: 80vw;--mat-dialog-container-min-width: 0;--mat-dialog-actions-alignment: start;--mat-dialog-actions-padding: 8px;--mat-dialog-content-padding: 20px 24px;--mat-dialog-with-actions-content-padding: 20px 24px;--mat-dialog-headline-padding: 0 24px 9px}html{--mat-dialog-container-color: white;--mat-dialog-subhead-color: rgba(0, 0, 0, .87);--mat-dialog-supporting-text-color: rgba(0, 0, 0, .54)}.mat-mdc-standard-chip{--mat-chip-container-shape-radius: 16px;--mat-chip-disabled-container-opacity: .4;--mat-chip-disabled-outline-color: transparent;--mat-chip-flat-selected-outline-width: 0;--mat-chip-focus-outline-color: transparent;--mat-chip-hover-state-layer-opacity: .04;--mat-chip-outline-color: transparent;--mat-chip-outline-width: 0;--mat-chip-selected-hover-state-layer-opacity: .04;--mat-chip-selected-trailing-action-state-layer-color: transparent;--mat-chip-trailing-action-focus-opacity: 1;--mat-chip-trailing-action-focus-state-layer-opacity: 0;--mat-chip-trailing-action-hover-state-layer-opacity: 0;--mat-chip-trailing-action-opacity: .54;--mat-chip-trailing-action-state-layer-color: transparent;--mat-chip-with-avatar-avatar-shape-radius: 14px;--mat-chip-with-avatar-avatar-size: 28px;--mat-chip-with-avatar-disabled-avatar-opacity: 1;--mat-chip-with-icon-disabled-icon-opacity: 1;--mat-chip-with-icon-icon-size: 18px;--mat-chip-with-trailing-icon-disabled-trailing-icon-opacity: 1}.mat-mdc-standard-chip{--mat-chip-disabled-label-text-color: rgba(0, 0, 0, .87);--mat-chip-elevated-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-chip-elevated-disabled-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-chip-elevated-selected-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-chip-flat-disabled-selected-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-chip-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-focus-state-layer-opacity: .12;--mat-chip-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-label-text-color: rgba(0, 0, 0, .87);--mat-chip-selected-disabled-trailing-icon-color: rgba(0, 0, 0, .87);--mat-chip-selected-focus-state-layer-color: .12;--mat-chip-selected-focus-state-layer-opacity: .12;--mat-chip-selected-hover-state-layer-color: .04;--mat-chip-selected-label-text-color: rgba(0, 0, 0, .87);--mat-chip-selected-trailing-icon-color: rgba(0, 0, 0, .87);--mat-chip-with-icon-disabled-icon-color: rgba(0, 0, 0, .87);--mat-chip-with-icon-icon-color: rgba(0, 0, 0, .87);--mat-chip-with-icon-selected-icon-color: rgba(0, 0, 0, .87);--mat-chip-with-trailing-icon-disabled-trailing-icon-color: rgba(0, 0, 0, .87);--mat-chip-with-trailing-icon-trailing-icon-color: rgba(0, 0, 0, .87)}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-primary,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-primary{--mat-chip-disabled-label-text-color: #F8F9F9;--mat-chip-elevated-container-color: #215f9e;--mat-chip-elevated-disabled-container-color: #215f9e;--mat-chip-elevated-selected-container-color: #215f9e;--mat-chip-flat-disabled-selected-container-color: #215f9e;--mat-chip-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-focus-state-layer-opacity: .12;--mat-chip-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-label-text-color: #F8F9F9;--mat-chip-selected-disabled-trailing-icon-color: #F8F9F9;--mat-chip-selected-focus-state-layer-color: .12;--mat-chip-selected-focus-state-layer-opacity: .12;--mat-chip-selected-hover-state-layer-color: .04;--mat-chip-selected-label-text-color: #F8F9F9;--mat-chip-selected-trailing-icon-color: #F8F9F9;--mat-chip-with-icon-disabled-icon-color: #F8F9F9;--mat-chip-with-icon-icon-color: #F8F9F9;--mat-chip-with-icon-selected-icon-color: #F8F9F9;--mat-chip-with-trailing-icon-disabled-trailing-icon-color: #F8F9F9;--mat-chip-with-trailing-icon-trailing-icon-color: #F8F9F9}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-accent,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-accent{--mat-chip-disabled-label-text-color: #F8F9F9;--mat-chip-elevated-container-color: #a7a7a7;--mat-chip-elevated-disabled-container-color: #a7a7a7;--mat-chip-elevated-selected-container-color: #a7a7a7;--mat-chip-flat-disabled-selected-container-color: #a7a7a7;--mat-chip-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-focus-state-layer-opacity: .12;--mat-chip-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-label-text-color: #F8F9F9;--mat-chip-selected-disabled-trailing-icon-color: #F8F9F9;--mat-chip-selected-focus-state-layer-color: .12;--mat-chip-selected-focus-state-layer-opacity: .12;--mat-chip-selected-hover-state-layer-color: .04;--mat-chip-selected-label-text-color: #F8F9F9;--mat-chip-selected-trailing-icon-color: #F8F9F9;--mat-chip-with-icon-disabled-icon-color: #F8F9F9;--mat-chip-with-icon-icon-color: #F8F9F9;--mat-chip-with-icon-selected-icon-color: #F8F9F9;--mat-chip-with-trailing-icon-disabled-trailing-icon-color: #F8F9F9;--mat-chip-with-trailing-icon-trailing-icon-color: #F8F9F9}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-warn,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-warn{--mat-chip-disabled-label-text-color: white;--mat-chip-elevated-container-color: #f44336;--mat-chip-elevated-disabled-container-color: #f44336;--mat-chip-elevated-selected-container-color: #f44336;--mat-chip-flat-disabled-selected-container-color: #f44336;--mat-chip-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-focus-state-layer-opacity: .12;--mat-chip-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-label-text-color: white;--mat-chip-selected-disabled-trailing-icon-color: white;--mat-chip-selected-focus-state-layer-color: .12;--mat-chip-selected-focus-state-layer-opacity: .12;--mat-chip-selected-hover-state-layer-color: .04;--mat-chip-selected-label-text-color: white;--mat-chip-selected-trailing-icon-color: white;--mat-chip-with-icon-disabled-icon-color: white;--mat-chip-with-icon-icon-color: white;--mat-chip-with-icon-selected-icon-color: white;--mat-chip-with-trailing-icon-disabled-trailing-icon-color: white;--mat-chip-with-trailing-icon-trailing-icon-color: white}.mat-mdc-chip.mat-mdc-standard-chip{--mat-chip-container-height: 32px}html{--mat-slide-toggle-disabled-handle-opacity: .38;--mat-slide-toggle-disabled-selected-handle-opacity: .38;--mat-slide-toggle-disabled-selected-icon-opacity: .38;--mat-slide-toggle-disabled-track-opacity: .12;--mat-slide-toggle-disabled-unselected-handle-opacity: .38;--mat-slide-toggle-disabled-unselected-icon-opacity: .38;--mat-slide-toggle-disabled-unselected-track-outline-color: transparent;--mat-slide-toggle-disabled-unselected-track-outline-width: 1px;--mat-slide-toggle-handle-height: 20px;--mat-slide-toggle-handle-shape: 10px;--mat-slide-toggle-handle-width: 20px;--mat-slide-toggle-hidden-track-opacity: 1;--mat-slide-toggle-hidden-track-transition: transform 75ms 0ms cubic-bezier(.4, 0, .6, 1);--mat-slide-toggle-pressed-handle-size: 20px;--mat-slide-toggle-selected-focus-state-layer-opacity: .12;--mat-slide-toggle-selected-handle-horizontal-margin: 0;--mat-slide-toggle-selected-handle-size: 20px;--mat-slide-toggle-selected-hover-state-layer-opacity: .04;--mat-slide-toggle-selected-icon-size: 18px;--mat-slide-toggle-selected-pressed-handle-horizontal-margin: 0;--mat-slide-toggle-selected-pressed-state-layer-opacity: .12;--mat-slide-toggle-selected-track-outline-color: transparent;--mat-slide-toggle-selected-track-outline-width: 1px;--mat-slide-toggle-selected-with-icon-handle-horizontal-margin: 0;--mat-slide-toggle-track-height: 14px;--mat-slide-toggle-track-outline-color: transparent;--mat-slide-toggle-track-outline-width: 1px;--mat-slide-toggle-track-shape: 7px;--mat-slide-toggle-track-width: 36px;--mat-slide-toggle-unselected-focus-state-layer-opacity: .12;--mat-slide-toggle-unselected-handle-horizontal-margin: 0;--mat-slide-toggle-unselected-handle-size: 20px;--mat-slide-toggle-unselected-hover-state-layer-opacity: .12;--mat-slide-toggle-unselected-icon-size: 18px;--mat-slide-toggle-unselected-pressed-handle-horizontal-margin: 0;--mat-slide-toggle-unselected-pressed-state-layer-opacity: .1;--mat-slide-toggle-unselected-with-icon-handle-horizontal-margin: 0;--mat-slide-toggle-visible-track-opacity: 1;--mat-slide-toggle-visible-track-transition: transform 75ms 0ms cubic-bezier(0, 0, .2, 1);--mat-slide-toggle-with-icon-handle-size: 20px;--mat-slide-toggle-touch-target-size: 48px}html{--mat-slide-toggle-selected-icon-color: #F8F9F9;--mat-slide-toggle-disabled-selected-icon-color: #F8F9F9;--mat-slide-toggle-selected-focus-state-layer-color: #215f9e;--mat-slide-toggle-selected-handle-color: #215f9e;--mat-slide-toggle-selected-hover-state-layer-color: #215f9e;--mat-slide-toggle-selected-pressed-state-layer-color: #215f9e;--mat-slide-toggle-selected-focus-handle-color: #215f9e;--mat-slide-toggle-selected-hover-handle-color: #215f9e;--mat-slide-toggle-selected-pressed-handle-color: #215f9e;--mat-slide-toggle-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-slide-toggle-disabled-handle-elevation-shadow: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-slide-toggle-disabled-selected-handle-color: rgba(0, 0, 0, .87);--mat-slide-toggle-disabled-selected-track-color: rgba(0, 0, 0, .87);--mat-slide-toggle-disabled-unselected-handle-color: rgba(0, 0, 0, .87);--mat-slide-toggle-disabled-unselected-icon-color: #f6f6f6;--mat-slide-toggle-disabled-unselected-track-color: rgba(0, 0, 0, .87);--mat-slide-toggle-handle-elevation-shadow: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-slide-toggle-handle-surface-color: white;--mat-slide-toggle-label-text-color: rgba(0, 0, 0, .87);--mat-slide-toggle-unselected-hover-handle-color: #424242;--mat-slide-toggle-unselected-focus-handle-color: #424242;--mat-slide-toggle-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-slide-toggle-unselected-focus-track-color: rgba(0, 0, 0, .12);--mat-slide-toggle-unselected-icon-color: #f6f6f6;--mat-slide-toggle-unselected-handle-color: rgba(0, 0, 0, .54);--mat-slide-toggle-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-slide-toggle-unselected-hover-track-color: rgba(0, 0, 0, .12);--mat-slide-toggle-unselected-pressed-handle-color: #424242;--mat-slide-toggle-unselected-pressed-track-color: rgba(0, 0, 0, .12);--mat-slide-toggle-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87);--mat-slide-toggle-unselected-track-color: rgba(0, 0, 0, .12)}.mat-mdc-slide-toggle.mat-accent{--mat-slide-toggle-selected-icon-color: #F8F9F9;--mat-slide-toggle-disabled-selected-icon-color: #F8F9F9;--mat-slide-toggle-selected-focus-state-layer-color: #a7a7a7;--mat-slide-toggle-selected-handle-color: #a7a7a7;--mat-slide-toggle-selected-hover-state-layer-color: #a7a7a7;--mat-slide-toggle-selected-pressed-state-layer-color: #a7a7a7;--mat-slide-toggle-selected-focus-handle-color: #a7a7a7;--mat-slide-toggle-selected-hover-handle-color: #a7a7a7;--mat-slide-toggle-selected-pressed-handle-color: #a7a7a7}.mat-mdc-slide-toggle.mat-warn{--mat-slide-toggle-selected-icon-color: white;--mat-slide-toggle-disabled-selected-icon-color: white;--mat-slide-toggle-selected-focus-state-layer-color: #f44336;--mat-slide-toggle-selected-handle-color: #f44336;--mat-slide-toggle-selected-hover-state-layer-color: #f44336;--mat-slide-toggle-selected-pressed-state-layer-color: #f44336;--mat-slide-toggle-selected-focus-handle-color: #f44336;--mat-slide-toggle-selected-hover-handle-color: #f44336;--mat-slide-toggle-selected-pressed-handle-color: #f44336;--mat-slide-toggle-selected-focus-track-color: #e57373;--mat-slide-toggle-selected-hover-track-color: #e57373;--mat-slide-toggle-selected-pressed-track-color: #e57373;--mat-slide-toggle-selected-track-color: #e57373}html{--mat-slide-toggle-state-layer-size: 40px;--mat-slide-toggle-touch-target-display: block}html{--mat-radio-disabled-selected-icon-opacity: .38;--mat-radio-disabled-unselected-icon-opacity: .38;--mat-radio-state-layer-size: 40px;--mat-radio-touch-target-size: 48px}.mat-mdc-radio-button.mat-primary{--mat-radio-checked-ripple-color: #215f9e;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: #215f9e;--mat-radio-selected-hover-icon-color: #215f9e;--mat-radio-selected-icon-color: #215f9e;--mat-radio-selected-pressed-icon-color: #215f9e;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.mat-mdc-radio-button.mat-accent{--mat-radio-checked-ripple-color: #a7a7a7;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: #a7a7a7;--mat-radio-selected-hover-icon-color: #a7a7a7;--mat-radio-selected-icon-color: #a7a7a7;--mat-radio-selected-pressed-icon-color: #a7a7a7;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.mat-mdc-radio-button.mat-warn{--mat-radio-checked-ripple-color: #f44336;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: #f44336;--mat-radio-selected-hover-icon-color: #f44336;--mat-radio-selected-icon-color: #f44336;--mat-radio-selected-pressed-icon-color: #f44336;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}html{--mat-radio-state-layer-size: 40px;--mat-radio-touch-target-display: block}html{--mat-slider-active-track-height: 6px;--mat-slider-active-track-shape: 9999px;--mat-slider-handle-elevation: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-slider-handle-height: 20px;--mat-slider-handle-shape: 50%;--mat-slider-handle-width: 20px;--mat-slider-inactive-track-height: 4px;--mat-slider-inactive-track-shape: 9999px;--mat-slider-value-indicator-border-radius: 4px;--mat-slider-value-indicator-caret-display: block;--mat-slider-value-indicator-container-transform: translateX(-50%);--mat-slider-value-indicator-height: 32px;--mat-slider-value-indicator-padding: 0 12px;--mat-slider-value-indicator-text-transform: none;--mat-slider-value-indicator-width: auto;--mat-slider-with-overlap-handle-outline-width: 1px;--mat-slider-with-tick-marks-active-container-opacity: .6;--mat-slider-with-tick-marks-container-shape: 50%;--mat-slider-with-tick-marks-container-size: 2px;--mat-slider-with-tick-marks-inactive-container-opacity: .6;--mat-slider-value-indicator-transform-origin: bottom}html{--mat-slider-active-track-color: #215f9e;--mat-slider-focus-handle-color: #215f9e;--mat-slider-handle-color: #215f9e;--mat-slider-hover-handle-color: #215f9e;--mat-slider-focus-state-layer-color: color-mix(in srgb, #215f9e 12%, transparent);--mat-slider-hover-state-layer-color: color-mix(in srgb, #215f9e 4%, transparent);--mat-slider-inactive-track-color: #215f9e;--mat-slider-ripple-color: #215f9e;--mat-slider-with-tick-marks-active-container-color: #F8F9F9;--mat-slider-with-tick-marks-inactive-container-color: #215f9e;--mat-slider-disabled-active-track-color: rgba(0, 0, 0, .87);--mat-slider-disabled-handle-color: rgba(0, 0, 0, .87);--mat-slider-disabled-inactive-track-color: rgba(0, 0, 0, .87);--mat-slider-label-container-color: #424242;--mat-slider-label-label-text-color: white;--mat-slider-value-indicator-opacity: 1;--mat-slider-with-overlap-handle-outline-color: rgba(0, 0, 0, .87);--mat-slider-with-tick-marks-disabled-container-color: rgba(0, 0, 0, .87)}.mat-accent{--mat-slider-active-track-color: #a7a7a7;--mat-slider-focus-handle-color: #a7a7a7;--mat-slider-handle-color: #a7a7a7;--mat-slider-hover-handle-color: #a7a7a7;--mat-slider-focus-state-layer-color: color-mix(in srgb, #a7a7a7 12%, transparent);--mat-slider-hover-state-layer-color: color-mix(in srgb, #a7a7a7 4%, transparent);--mat-slider-inactive-track-color: #a7a7a7;--mat-slider-ripple-color: #a7a7a7;--mat-slider-with-tick-marks-active-container-color: #F8F9F9;--mat-slider-with-tick-marks-inactive-container-color: #a7a7a7}.mat-warn{--mat-slider-active-track-color: #f44336;--mat-slider-focus-handle-color: #f44336;--mat-slider-handle-color: #f44336;--mat-slider-hover-handle-color: #f44336;--mat-slider-focus-state-layer-color: color-mix(in srgb, #f44336 12%, transparent);--mat-slider-hover-state-layer-color: color-mix(in srgb, #f44336 4%, transparent);--mat-slider-inactive-track-color: #f44336;--mat-slider-ripple-color: #f44336;--mat-slider-with-tick-marks-active-container-color: white;--mat-slider-with-tick-marks-inactive-container-color: #f44336}html{--mat-menu-container-shape: 4px;--mat-menu-divider-bottom-spacing: 0;--mat-menu-divider-top-spacing: 0;--mat-menu-item-spacing: 16px;--mat-menu-item-icon-size: 24px;--mat-menu-item-leading-spacing: 16px;--mat-menu-item-trailing-spacing: 16px;--mat-menu-item-with-icon-leading-spacing: 16px;--mat-menu-item-with-icon-trailing-spacing: 16px;--mat-menu-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-menu-item-label-text-color: rgba(0, 0, 0, .87);--mat-menu-item-icon-color: rgba(0, 0, 0, .87);--mat-menu-item-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-menu-item-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-menu-container-color: white;--mat-menu-divider-color: rgba(0, 0, 0, .12)}html{--mat-list-active-indicator-color: transparent;--mat-list-active-indicator-shape: 4px;--mat-list-list-item-container-shape: 0;--mat-list-list-item-leading-avatar-shape: 50%;--mat-list-list-item-container-color: transparent;--mat-list-list-item-selected-container-color: transparent;--mat-list-list-item-leading-avatar-color: transparent;--mat-list-list-item-leading-icon-size: 24px;--mat-list-list-item-leading-avatar-size: 40px;--mat-list-list-item-trailing-icon-size: 24px;--mat-list-list-item-disabled-state-layer-color: transparent;--mat-list-list-item-disabled-state-layer-opacity: 0;--mat-list-list-item-disabled-label-text-opacity: .38;--mat-list-list-item-disabled-leading-icon-opacity: .38;--mat-list-list-item-disabled-trailing-icon-opacity: .38}html{--mat-list-list-item-label-text-color: rgba(0, 0, 0, .87);--mat-list-list-item-supporting-text-color: rgba(0, 0, 0, .54);--mat-list-list-item-leading-icon-color: rgba(0, 0, 0, .54);--mat-list-list-item-trailing-supporting-text-color: rgba(0, 0, 0, .54);--mat-list-list-item-trailing-icon-color: rgba(0, 0, 0, .54);--mat-list-list-item-selected-trailing-icon-color: rgba(0, 0, 0, .54);--mat-list-list-item-disabled-label-text-color: rgba(0, 0, 0, .87);--mat-list-list-item-disabled-leading-icon-color: rgba(0, 0, 0, .87);--mat-list-list-item-disabled-trailing-icon-color: rgba(0, 0, 0, .87);--mat-list-list-item-hover-label-text-color: rgba(0, 0, 0, .87);--mat-list-list-item-hover-leading-icon-color: rgba(0, 0, 0, .54);--mat-list-list-item-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-list-list-item-hover-state-layer-opacity: .04;--mat-list-list-item-hover-trailing-icon-color: rgba(0, 0, 0, .54);--mat-list-list-item-focus-label-text-color: rgba(0, 0, 0, .87);--mat-list-list-item-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-list-list-item-focus-state-layer-opacity: .12}.mdc-list-item__start,.mdc-list-item__end{--mat-radio-checked-ripple-color: #215f9e;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: #215f9e;--mat-radio-selected-hover-icon-color: #215f9e;--mat-radio-selected-icon-color: #215f9e;--mat-radio-selected-pressed-icon-color: #215f9e;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.mat-accent .mdc-list-item__start,.mat-accent .mdc-list-item__end{--mat-radio-checked-ripple-color: #a7a7a7;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: #a7a7a7;--mat-radio-selected-hover-icon-color: #a7a7a7;--mat-radio-selected-icon-color: #a7a7a7;--mat-radio-selected-pressed-icon-color: #a7a7a7;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.mat-warn .mdc-list-item__start,.mat-warn .mdc-list-item__end{--mat-radio-checked-ripple-color: #f44336;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: #f44336;--mat-radio-selected-hover-icon-color: #f44336;--mat-radio-selected-icon-color: #f44336;--mat-radio-selected-pressed-icon-color: #f44336;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.mat-mdc-list-option{--mat-checkbox-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-label-text-color: rgba(0, 0, 0, .87);--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: #F8F9F9;--mat-checkbox-selected-focus-icon-color: #215f9e;--mat-checkbox-selected-hover-icon-color: #215f9e;--mat-checkbox-selected-icon-color: #215f9e;--mat-checkbox-selected-pressed-icon-color: #215f9e;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: #215f9e;--mat-checkbox-selected-hover-state-layer-color: #215f9e;--mat-checkbox-selected-pressed-state-layer-color: #215f9e;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.mat-mdc-list-option.mat-accent{--mat-checkbox-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-label-text-color: rgba(0, 0, 0, .87);--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: #F8F9F9;--mat-checkbox-selected-focus-icon-color: #a7a7a7;--mat-checkbox-selected-hover-icon-color: #a7a7a7;--mat-checkbox-selected-icon-color: #a7a7a7;--mat-checkbox-selected-pressed-icon-color: #a7a7a7;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: #a7a7a7;--mat-checkbox-selected-hover-state-layer-color: #a7a7a7;--mat-checkbox-selected-pressed-state-layer-color: #a7a7a7;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.mat-mdc-list-option.mat-warn{--mat-checkbox-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-label-text-color: rgba(0, 0, 0, .87);--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: white;--mat-checkbox-selected-focus-icon-color: #f44336;--mat-checkbox-selected-hover-icon-color: #f44336;--mat-checkbox-selected-icon-color: #f44336;--mat-checkbox-selected-pressed-icon-color: #f44336;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: #f44336;--mat-checkbox-selected-hover-state-layer-color: #f44336;--mat-checkbox-selected-pressed-state-layer-color: #f44336;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected .mdc-list-item__primary-text,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected .mdc-list-item__start,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated .mdc-list-item__primary-text,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated .mdc-list-item__start{color:#215f9e}.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__start,.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__content,.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__end{opacity:1}html{--mat-list-list-item-leading-icon-start-space: 16px;--mat-list-list-item-leading-icon-end-space: 32px;--mat-list-list-item-one-line-container-height: 48px;--mat-list-list-item-two-line-container-height: 64px;--mat-list-list-item-three-line-container-height: 88px}.mdc-list-item__start,.mdc-list-item__end{--mat-radio-state-layer-size: 40px;--mat-radio-touch-target-display: block}.mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-one-line,.mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-one-line,.mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-one-line{height:56px}.mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines,.mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines,.mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines{height:72px}html{--mat-paginator-page-size-select-width: 84px;--mat-paginator-page-size-select-touch-target-height: 48px}html{--mat-paginator-container-text-color: rgba(0, 0, 0, .87);--mat-paginator-container-background-color: white;--mat-paginator-enabled-icon-color: rgba(0, 0, 0, .54);--mat-paginator-disabled-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}html{--mat-paginator-container-size: 56px;--mat-paginator-form-field-container-height: 40px;--mat-paginator-form-field-container-vertical-padding: 8px;--mat-paginator-touch-target-display: block}html{--mat-tab-container-height: 48px;--mat-tab-divider-color: transparent;--mat-tab-divider-height: 0;--mat-tab-active-indicator-height: 2px;--mat-tab-active-indicator-shape: 0}.mat-mdc-tab-group,.mat-mdc-tab-nav-bar{--mat-tab-disabled-ripple-color: rgba(0, 0, 0, .54);--mat-tab-pagination-icon-color: rgba(0, 0, 0, .87);--mat-tab-inactive-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-label-text-color: #215f9e;--mat-tab-active-ripple-color: #215f9e;--mat-tab-inactive-ripple-color: #215f9e;--mat-tab-inactive-focus-label-text-color: rgba(0, 0, 0, .54);--mat-tab-inactive-hover-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-focus-label-text-color: #215f9e;--mat-tab-active-hover-label-text-color: #215f9e;--mat-tab-active-focus-indicator-color: #215f9e;--mat-tab-active-hover-indicator-color: #215f9e;--mat-tab-active-indicator-color: #215f9e}.mat-mdc-tab-group.mat-accent,.mat-mdc-tab-nav-bar.mat-accent{--mat-tab-disabled-ripple-color: rgba(0, 0, 0, .54);--mat-tab-pagination-icon-color: rgba(0, 0, 0, .87);--mat-tab-inactive-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-label-text-color: #a7a7a7;--mat-tab-active-ripple-color: #a7a7a7;--mat-tab-inactive-ripple-color: #a7a7a7;--mat-tab-inactive-focus-label-text-color: rgba(0, 0, 0, .54);--mat-tab-inactive-hover-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-focus-label-text-color: #a7a7a7;--mat-tab-active-hover-label-text-color: #a7a7a7;--mat-tab-active-focus-indicator-color: #a7a7a7;--mat-tab-active-hover-indicator-color: #a7a7a7;--mat-tab-active-indicator-color: #a7a7a7}.mat-mdc-tab-group.mat-warn,.mat-mdc-tab-nav-bar.mat-warn{--mat-tab-disabled-ripple-color: rgba(0, 0, 0, .54);--mat-tab-pagination-icon-color: rgba(0, 0, 0, .87);--mat-tab-inactive-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-label-text-color: #f44336;--mat-tab-active-ripple-color: #f44336;--mat-tab-inactive-ripple-color: #f44336;--mat-tab-inactive-focus-label-text-color: rgba(0, 0, 0, .54);--mat-tab-inactive-hover-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-focus-label-text-color: #f44336;--mat-tab-active-hover-label-text-color: #f44336;--mat-tab-active-focus-indicator-color: #f44336;--mat-tab-active-hover-indicator-color: #f44336;--mat-tab-active-indicator-color: #f44336}.mat-mdc-tab-group.mat-background-primary,.mat-mdc-tab-nav-bar.mat-background-primary{--mat-tab-background-color: #215f9e;--mat-tab-foreground-color: #F8F9F9}.mat-mdc-tab-group.mat-background-accent,.mat-mdc-tab-nav-bar.mat-background-accent{--mat-tab-background-color: #a7a7a7;--mat-tab-foreground-color: #F8F9F9}.mat-mdc-tab-group.mat-background-warn,.mat-mdc-tab-nav-bar.mat-background-warn{--mat-tab-background-color: #f44336;--mat-tab-foreground-color: white}.mat-mdc-tab-header{--mat-tab-container-height: 48px}html{--mat-checkbox-disabled-selected-checkmark-color: white;--mat-checkbox-selected-focus-state-layer-opacity: .12;--mat-checkbox-selected-hover-state-layer-opacity: .04;--mat-checkbox-selected-pressed-state-layer-opacity: .12;--mat-checkbox-unselected-focus-state-layer-opacity: .12;--mat-checkbox-unselected-hover-state-layer-opacity: .04;--mat-checkbox-unselected-pressed-state-layer-opacity: .12;--mat-checkbox-touch-target-size: 48px}html{--mat-checkbox-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-label-text-color: rgba(0, 0, 0, .87);--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: #F8F9F9;--mat-checkbox-selected-focus-icon-color: #a7a7a7;--mat-checkbox-selected-hover-icon-color: #a7a7a7;--mat-checkbox-selected-icon-color: #a7a7a7;--mat-checkbox-selected-pressed-icon-color: #a7a7a7;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: #a7a7a7;--mat-checkbox-selected-hover-state-layer-color: #a7a7a7;--mat-checkbox-selected-pressed-state-layer-color: #a7a7a7;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.mat-mdc-checkbox.mat-primary{--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: #F8F9F9;--mat-checkbox-selected-focus-icon-color: #215f9e;--mat-checkbox-selected-hover-icon-color: #215f9e;--mat-checkbox-selected-icon-color: #215f9e;--mat-checkbox-selected-pressed-icon-color: #215f9e;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: #215f9e;--mat-checkbox-selected-hover-state-layer-color: #215f9e;--mat-checkbox-selected-pressed-state-layer-color: #215f9e;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.mat-mdc-checkbox.mat-warn{--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: white;--mat-checkbox-selected-focus-icon-color: #f44336;--mat-checkbox-selected-hover-icon-color: #f44336;--mat-checkbox-selected-icon-color: #f44336;--mat-checkbox-selected-pressed-icon-color: #f44336;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: #f44336;--mat-checkbox-selected-hover-state-layer-color: #f44336;--mat-checkbox-selected-pressed-state-layer-color: #f44336;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}html{--mat-checkbox-touch-target-display: block;--mat-checkbox-state-layer-size: 40px}html{--mat-button-filled-container-shape: 4px;--mat-button-filled-horizontal-padding: 16px;--mat-button-filled-icon-offset: -4px;--mat-button-filled-icon-spacing: 8px;--mat-button-filled-touch-target-size: 48px;--mat-button-outlined-container-shape: 4px;--mat-button-outlined-horizontal-padding: 15px;--mat-button-outlined-icon-offset: -4px;--mat-button-outlined-icon-spacing: 8px;--mat-button-outlined-keep-touch-target: false;--mat-button-outlined-outline-width: 1px;--mat-button-outlined-touch-target-size: 48px;--mat-button-protected-container-elevation-shadow: 0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mat-button-protected-container-shape: 4px;--mat-button-protected-disabled-container-elevation-shadow: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-button-protected-focus-container-elevation-shadow: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mat-button-protected-horizontal-padding: 16px;--mat-button-protected-hover-container-elevation-shadow: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mat-button-protected-icon-offset: -4px;--mat-button-protected-icon-spacing: 8px;--mat-button-protected-pressed-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-button-protected-touch-target-size: 48px;--mat-button-text-container-shape: 4px;--mat-button-text-horizontal-padding: 8px;--mat-button-text-icon-offset: 0;--mat-button-text-icon-spacing: 8px;--mat-button-text-with-icon-horizontal-padding: 8px;--mat-button-text-touch-target-size: 48px;--mat-button-tonal-container-shape: 4px;--mat-button-tonal-horizontal-padding: 16px;--mat-button-tonal-icon-offset: -4px;--mat-button-tonal-icon-spacing: 8px;--mat-button-tonal-touch-target-size: 48px}html{--mat-button-filled-container-color: white;--mat-button-filled-disabled-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-filled-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-filled-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-button-filled-focus-state-layer-opacity: .12;--mat-button-filled-hover-state-layer-opacity: .04;--mat-button-filled-label-text-color: rgba(0, 0, 0, .87);--mat-button-filled-pressed-state-layer-opacity: .12;--mat-button-filled-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-filled-state-layer-color: rgba(0, 0, 0, .87);--mat-button-outlined-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-outlined-disabled-outline-color: rgba(0, 0, 0, .12);--mat-button-outlined-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-button-outlined-focus-state-layer-opacity: .12;--mat-button-outlined-hover-state-layer-opacity: .04;--mat-button-outlined-label-text-color: rgba(0, 0, 0, .87);--mat-button-outlined-outline-color: rgba(0, 0, 0, .12);--mat-button-outlined-pressed-state-layer-opacity: .12;--mat-button-outlined-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-outlined-state-layer-color: rgba(0, 0, 0, .87);--mat-button-protected-container-color: white;--mat-button-protected-disabled-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-protected-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-protected-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-button-protected-focus-state-layer-opacity: .12;--mat-button-protected-hover-state-layer-opacity: .04;--mat-button-protected-label-text-color: rgba(0, 0, 0, .87);--mat-button-protected-pressed-state-layer-opacity: .12;--mat-button-protected-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-protected-state-layer-color: rgba(0, 0, 0, .87);--mat-button-text-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-text-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-button-text-focus-state-layer-opacity: .12;--mat-button-text-hover-state-layer-opacity: .04;--mat-button-text-label-text-color: rgba(0, 0, 0, .87);--mat-button-text-pressed-state-layer-opacity: .12;--mat-button-text-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-text-state-layer-color: rgba(0, 0, 0, .87);--mat-button-tonal-container-color: white;--mat-button-tonal-disabled-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-tonal-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-tonal-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-button-tonal-focus-state-layer-opacity: .12;--mat-button-tonal-hover-state-layer-opacity: .04;--mat-button-tonal-label-text-color: rgba(0, 0, 0, .87);--mat-button-tonal-pressed-state-layer-opacity: .12;--mat-button-tonal-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-tonal-state-layer-color: rgba(0, 0, 0, .87)}.mat-mdc-button.mat-primary,.mat-mdc-unelevated-button.mat-primary,.mat-mdc-raised-button.mat-primary,.mat-mdc-outlined-button.mat-primary,.mat-tonal-button.mat-primary{--mat-button-filled-container-color: #215f9e;--mat-button-filled-label-text-color: #F8F9F9;--mat-button-filled-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-button-filled-state-layer-color: #F8F9F9;--mat-button-outlined-label-text-color: #215f9e;--mat-button-outlined-outline-color: rgba(0, 0, 0, .12);--mat-button-outlined-ripple-color: color-mix(in srgb, #215f9e 12%, transparent);--mat-button-outlined-state-layer-color: #215f9e;--mat-button-protected-container-color: #215f9e;--mat-button-protected-label-text-color: #F8F9F9;--mat-button-protected-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-button-protected-state-layer-color: #F8F9F9;--mat-button-text-label-text-color: #215f9e;--mat-button-text-ripple-color: color-mix(in srgb, #215f9e 12%, transparent);--mat-button-text-state-layer-color: #215f9e;--mat-button-tonal-container-color: #215f9e;--mat-button-tonal-label-text-color: #F8F9F9;--mat-button-tonal-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-button-tonal-state-layer-color: #F8F9F9}.mat-mdc-button.mat-accent,.mat-mdc-unelevated-button.mat-accent,.mat-mdc-raised-button.mat-accent,.mat-mdc-outlined-button.mat-accent,.mat-tonal-button.mat-accent{--mat-button-filled-container-color: #a7a7a7;--mat-button-filled-label-text-color: #F8F9F9;--mat-button-filled-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-button-filled-state-layer-color: #F8F9F9;--mat-button-outlined-label-text-color: #a7a7a7;--mat-button-outlined-outline-color: rgba(0, 0, 0, .12);--mat-button-outlined-ripple-color: color-mix(in srgb, #a7a7a7 12%, transparent);--mat-button-outlined-state-layer-color: #a7a7a7;--mat-button-protected-container-color: #a7a7a7;--mat-button-protected-label-text-color: #F8F9F9;--mat-button-protected-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-button-protected-state-layer-color: #F8F9F9;--mat-button-text-label-text-color: #a7a7a7;--mat-button-text-ripple-color: color-mix(in srgb, #a7a7a7 12%, transparent);--mat-button-text-state-layer-color: #a7a7a7;--mat-button-tonal-container-color: #a7a7a7;--mat-button-tonal-label-text-color: #F8F9F9;--mat-button-tonal-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-button-tonal-state-layer-color: #F8F9F9}.mat-mdc-button.mat-warn,.mat-mdc-unelevated-button.mat-warn,.mat-mdc-raised-button.mat-warn,.mat-mdc-outlined-button.mat-warn,.mat-tonal-button.mat-warn{--mat-button-filled-container-color: #f44336;--mat-button-filled-label-text-color: white;--mat-button-filled-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-filled-state-layer-color: white;--mat-button-outlined-label-text-color: #f44336;--mat-button-outlined-outline-color: rgba(0, 0, 0, .12);--mat-button-outlined-ripple-color: color-mix(in srgb, #f44336 12%, transparent);--mat-button-outlined-state-layer-color: #f44336;--mat-button-protected-container-color: #f44336;--mat-button-protected-label-text-color: white;--mat-button-protected-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-protected-state-layer-color: white;--mat-button-text-label-text-color: #f44336;--mat-button-text-ripple-color: color-mix(in srgb, #f44336 12%, transparent);--mat-button-text-state-layer-color: #f44336;--mat-button-tonal-container-color: #f44336;--mat-button-tonal-label-text-color: white;--mat-button-tonal-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-tonal-state-layer-color: white}html{--mat-button-filled-container-height: 36px;--mat-button-filled-touch-target-display: block;--mat-button-outlined-container-height: 36px;--mat-button-outlined-touch-target-display: block;--mat-button-protected-container-height: 36px;--mat-button-protected-touch-target-display: block;--mat-button-text-container-height: 36px;--mat-button-text-touch-target-display: block;--mat-button-tonal-container-height: 36px;--mat-button-tonal-touch-target-display: block}html{--mat-icon-button-icon-size: 24px;--mat-icon-button-container-shape: 50%;--mat-icon-button-touch-target-size: 48px}html{--mat-icon-button-disabled-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-icon-button-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-icon-button-focus-state-layer-opacity: .12;--mat-icon-button-hover-state-layer-opacity: .04;--mat-icon-button-icon-color: inherit;--mat-icon-button-pressed-state-layer-opacity: .12;--mat-icon-button-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-icon-button-state-layer-color: rgba(0, 0, 0, .87)}.mat-mdc-icon-button.mat-primary{--mat-icon-button-icon-color: #215f9e;--mat-icon-button-state-layer-color: #215f9e;--mat-icon-button-ripple-color: color-mix(in srgb, #215f9e 12%, transparent)}.mat-mdc-icon-button.mat-accent{--mat-icon-button-icon-color: #a7a7a7;--mat-icon-button-state-layer-color: #a7a7a7;--mat-icon-button-ripple-color: color-mix(in srgb, #a7a7a7 12%, transparent)}.mat-mdc-icon-button.mat-warn{--mat-icon-button-icon-color: #f44336;--mat-icon-button-state-layer-color: #f44336;--mat-icon-button-ripple-color: color-mix(in srgb, #f44336 12%, transparent)}html{--mat-icon-button-touch-target-display: block}.mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size: 48px;--mat-icon-button-state-layer-size: 48px;width:var(--mat-icon-button-state-layer-size);height:var(--mat-icon-button-state-layer-size);padding:12px}html{--mat-fab-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-fab-container-shape: 50%;--mat-fab-touch-target-size: 48px;--mat-fab-extended-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-fab-extended-container-height: 48px;--mat-fab-extended-container-shape: 24px;--mat-fab-extended-focus-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-fab-extended-hover-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-fab-extended-pressed-container-elevation-shadow: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-fab-focus-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-fab-hover-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-fab-pressed-container-elevation-shadow: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-fab-small-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-fab-small-container-shape: 50%;--mat-fab-small-touch-target-size: 48px;--mat-fab-small-focus-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-fab-small-hover-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-fab-small-pressed-container-elevation-shadow: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12)}html{--mat-fab-container-color: white;--mat-fab-disabled-state-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-fab-disabled-state-foreground-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-fab-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-fab-focus-state-layer-opacity: .12;--mat-fab-foreground-color: rgba(0, 0, 0, .87);--mat-fab-hover-state-layer-opacity: .04;--mat-fab-pressed-state-layer-opacity: .12;--mat-fab-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-fab-small-container-color: white;--mat-fab-small-disabled-state-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-fab-small-disabled-state-foreground-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-fab-small-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-fab-small-focus-state-layer-opacity: .12;--mat-fab-small-foreground-color: rgba(0, 0, 0, .87);--mat-fab-small-hover-state-layer-opacity: .04;--mat-fab-small-pressed-state-layer-opacity: .12;--mat-fab-small-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-fab-small-state-layer-color: rgba(0, 0, 0, .87);--mat-fab-state-layer-color: rgba(0, 0, 0, .87)}.mat-mdc-fab.mat-primary,.mat-mdc-mini-fab.mat-primary{--mat-fab-container-color: #215f9e;--mat-fab-foreground-color: #F8F9F9;--mat-fab-ripple-color: color-mix(in srgb, #215f9e 12%, transparent);--mat-fab-small-container-color: #215f9e;--mat-fab-small-foreground-color: #F8F9F9;--mat-fab-small-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-fab-small-state-layer-color: #F8F9F9;--mat-fab-state-layer-color: #F8F9F9}.mat-mdc-fab.mat-accent,.mat-mdc-mini-fab.mat-accent{--mat-fab-container-color: #a7a7a7;--mat-fab-foreground-color: #F8F9F9;--mat-fab-ripple-color: color-mix(in srgb, #a7a7a7 12%, transparent);--mat-fab-small-container-color: #a7a7a7;--mat-fab-small-foreground-color: #F8F9F9;--mat-fab-small-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-fab-small-state-layer-color: #F8F9F9;--mat-fab-state-layer-color: #F8F9F9}.mat-mdc-fab.mat-warn,.mat-mdc-mini-fab.mat-warn{--mat-fab-container-color: #f44336;--mat-fab-foreground-color: white;--mat-fab-ripple-color: color-mix(in srgb, #f44336 12%, transparent);--mat-fab-small-container-color: #f44336;--mat-fab-small-foreground-color: white;--mat-fab-small-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-fab-small-state-layer-color: white;--mat-fab-state-layer-color: white}html{--mat-fab-small-touch-target-display: block;--mat-fab-touch-target-display: block}html{--mat-snack-bar-container-shape: 4px}html{--mat-snack-bar-container-color: #424242;--mat-snack-bar-supporting-text-color: white}html{--mat-table-row-item-outline-width: 1px}html{--mat-table-background-color: white;--mat-table-header-headline-color: rgba(0, 0, 0, .87);--mat-table-row-item-label-text-color: rgba(0, 0, 0, .87);--mat-table-row-item-outline-color: rgba(0, 0, 0, .12)}html{--mat-table-header-container-height: 56px;--mat-table-footer-container-height: 52px;--mat-table-row-item-container-height: 52px}html{--mat-progress-spinner-active-indicator-width: 4px;--mat-progress-spinner-size: 48px}html{--mat-progress-spinner-active-indicator-color: #215f9e}.mat-accent{--mat-progress-spinner-active-indicator-color: #a7a7a7}.mat-warn{--mat-progress-spinner-active-indicator-color: #f44336}html{--mat-badge-container-shape: 50%;--mat-badge-container-size: unset;--mat-badge-small-size-container-size: unset;--mat-badge-large-size-container-size: unset;--mat-badge-legacy-container-size: 22px;--mat-badge-legacy-small-size-container-size: 16px;--mat-badge-legacy-large-size-container-size: 28px;--mat-badge-container-offset: -11px 0;--mat-badge-small-size-container-offset: -8px 0;--mat-badge-large-size-container-offset: -14px 0;--mat-badge-container-overlap-offset: -11px;--mat-badge-small-size-container-overlap-offset: -8px;--mat-badge-large-size-container-overlap-offset: -14px;--mat-badge-container-padding: 0;--mat-badge-small-size-container-padding: 0;--mat-badge-large-size-container-padding: 0}html{--mat-badge-background-color: #215f9e;--mat-badge-text-color: #F8F9F9;--mat-badge-disabled-state-background-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-badge-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}.mat-badge-accent{--mat-badge-background-color: #a7a7a7;--mat-badge-text-color: #F8F9F9}.mat-badge-warn{--mat-badge-background-color: #f44336;--mat-badge-text-color: white}html{--mat-bottom-sheet-container-shape: 4px}html{--mat-bottom-sheet-container-text-color: rgba(0, 0, 0, .87);--mat-bottom-sheet-container-background-color: white}html{--mat-button-toggle-focus-state-layer-opacity: .12;--mat-button-toggle-hover-state-layer-opacity: .04;--mat-button-toggle-legacy-focus-state-layer-opacity: 1;--mat-button-toggle-legacy-height: 36px;--mat-button-toggle-legacy-shape: 2px;--mat-button-toggle-shape: 4px}html{--mat-button-toggle-background-color: white;--mat-button-toggle-disabled-selected-state-background-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-toggle-disabled-selected-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-toggle-disabled-state-background-color: white;--mat-button-toggle-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-toggle-divider-color: rgba(0, 0, 0, .12);--mat-button-toggle-legacy-disabled-selected-state-background-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-toggle-legacy-disabled-state-background-color: white;--mat-button-toggle-legacy-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-toggle-legacy-selected-state-background-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-toggle-legacy-selected-state-text-color: rgba(0, 0, 0, .87);--mat-button-toggle-legacy-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-toggle-legacy-text-color: rgba(0, 0, 0, .87);--mat-button-toggle-selected-state-background-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-toggle-selected-state-text-color: rgba(0, 0, 0, .87);--mat-button-toggle-state-layer-color: rgba(0, 0, 0, .87);--mat-button-toggle-text-color: rgba(0, 0, 0, .87)}html{--mat-button-toggle-height: 48px}html{--mat-datepicker-calendar-container-shape: 4px;--mat-datepicker-calendar-container-touch-shape: 4px;--mat-datepicker-calendar-container-elevation-shadow: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mat-datepicker-calendar-container-touch-elevation-shadow: 0px 11px 15px -7px rgba(0, 0, 0, .2), 0px 24px 38px 3px rgba(0, 0, 0, .14), 0px 9px 46px 8px rgba(0, 0, 0, .12)}html{--mat-datepicker-calendar-date-in-range-state-background-color: color-mix(in srgb, #215f9e 20%, transparent);--mat-datepicker-calendar-date-in-comparison-range-state-background-color: color-mix(in srgb, #a7a7a7 20%, transparent);--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: rgb(69.5241935484, 163.4758064516, 93.9516129032);--mat-datepicker-calendar-date-selected-state-text-color: #F8F9F9;--mat-datepicker-calendar-date-selected-state-background-color: #215f9e;--mat-datepicker-calendar-date-selected-disabled-state-background-color: color-mix(in srgb, #215f9e 38%, transparent);--mat-datepicker-calendar-date-today-selected-state-outline-color: #F8F9F9;--mat-datepicker-calendar-date-focus-state-background-color: color-mix(in srgb, #215f9e 12%, transparent);--mat-datepicker-calendar-date-hover-state-background-color: color-mix(in srgb, #215f9e 4%, transparent);--mat-datepicker-toggle-active-state-icon-color: #215f9e;--mat-datepicker-toggle-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-body-label-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-period-button-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-period-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-navigation-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-header-divider-color: rgba(0, 0, 0, .12);--mat-datepicker-calendar-header-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-disabled-state-outline-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-date-outline-color: transparent;--mat-datepicker-calendar-date-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-preview-state-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-range-input-separator-color: rgba(0, 0, 0, .87);--mat-datepicker-range-input-disabled-state-separator-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-range-input-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-container-background-color: white;--mat-datepicker-calendar-container-text-color: rgba(0, 0, 0, .87)}.mat-datepicker-content.mat-accent,.mat-datepicker-toggle-active.mat-accent{--mat-datepicker-calendar-date-in-range-state-background-color: color-mix(in srgb, #a7a7a7 20%, transparent);--mat-datepicker-calendar-date-in-comparison-range-state-background-color: color-mix(in srgb, #a7a7a7 20%, transparent);--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: rgb(69.5241935484, 163.4758064516, 93.9516129032);--mat-datepicker-calendar-date-selected-state-text-color: #F8F9F9;--mat-datepicker-calendar-date-selected-state-background-color: #a7a7a7;--mat-datepicker-calendar-date-selected-disabled-state-background-color: color-mix(in srgb, #a7a7a7 38%, transparent);--mat-datepicker-calendar-date-today-selected-state-outline-color: #F8F9F9;--mat-datepicker-calendar-date-focus-state-background-color: color-mix(in srgb, #a7a7a7 12%, transparent);--mat-datepicker-calendar-date-hover-state-background-color: color-mix(in srgb, #a7a7a7 4%, transparent);--mat-datepicker-toggle-active-state-icon-color: #a7a7a7;--mat-datepicker-toggle-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-body-label-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-period-button-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-period-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-navigation-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-header-divider-color: rgba(0, 0, 0, .12);--mat-datepicker-calendar-header-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-disabled-state-outline-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-date-outline-color: transparent;--mat-datepicker-calendar-date-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-preview-state-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-range-input-separator-color: rgba(0, 0, 0, .87);--mat-datepicker-range-input-disabled-state-separator-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-range-input-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-container-background-color: white;--mat-datepicker-calendar-container-text-color: rgba(0, 0, 0, .87)}.mat-datepicker-content.mat-warn,.mat-datepicker-toggle-active.mat-warn{--mat-datepicker-calendar-date-in-range-state-background-color: color-mix(in srgb, #f44336 20%, transparent);--mat-datepicker-calendar-date-in-comparison-range-state-background-color: color-mix(in srgb, #a7a7a7 20%, transparent);--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: rgb(69.5241935484, 163.4758064516, 93.9516129032);--mat-datepicker-calendar-date-selected-state-text-color: white;--mat-datepicker-calendar-date-selected-state-background-color: #f44336;--mat-datepicker-calendar-date-selected-disabled-state-background-color: color-mix(in srgb, #f44336 38%, transparent);--mat-datepicker-calendar-date-today-selected-state-outline-color: white;--mat-datepicker-calendar-date-focus-state-background-color: color-mix(in srgb, #f44336 12%, transparent);--mat-datepicker-calendar-date-hover-state-background-color: color-mix(in srgb, #f44336 4%, transparent);--mat-datepicker-toggle-active-state-icon-color: #f44336;--mat-datepicker-toggle-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-body-label-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-period-button-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-period-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-navigation-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-header-divider-color: rgba(0, 0, 0, .12);--mat-datepicker-calendar-header-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-disabled-state-outline-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-date-outline-color: transparent;--mat-datepicker-calendar-date-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-preview-state-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-range-input-separator-color: rgba(0, 0, 0, .87);--mat-datepicker-range-input-disabled-state-separator-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-range-input-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-container-background-color: white;--mat-datepicker-calendar-container-text-color: rgba(0, 0, 0, .87)}.mat-calendar-controls{--mat-icon-button-touch-target-display: none}.mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size: 40px;--mat-icon-button-state-layer-size: 40px;width:var(--mat-icon-button-state-layer-size);height:var(--mat-icon-button-state-layer-size);padding:8px}html{--mat-divider-width: 1px}html{--mat-divider-color: rgba(0, 0, 0, .12)}html{--mat-expansion-container-shape: 4px;--mat-expansion-container-elevation-shadow: 0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mat-expansion-legacy-header-indicator-display: inline-block;--mat-expansion-header-indicator-display: none}html{--mat-expansion-container-background-color: white;--mat-expansion-container-text-color: rgba(0, 0, 0, .87);--mat-expansion-actions-divider-color: rgba(0, 0, 0, .12);--mat-expansion-header-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-expansion-header-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-expansion-header-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-expansion-header-text-color: rgba(0, 0, 0, .87);--mat-expansion-header-description-color: rgba(0, 0, 0, .54);--mat-expansion-header-indicator-color: rgba(0, 0, 0, .54)}html{--mat-expansion-header-collapsed-state-height: 48px;--mat-expansion-header-expanded-state-height: 64px}html{--mat-icon-color: inherit}.mat-icon.mat-primary{--mat-icon-color: #215f9e}.mat-icon.mat-accent{--mat-icon-color: #a7a7a7}.mat-icon.mat-warn{--mat-icon-color: #f44336}html{--mat-sidenav-container-shape: 0;--mat-sidenav-container-elevation-shadow: 0px 8px 10px -5px rgba(0, 0, 0, .2), 0px 16px 24px 2px rgba(0, 0, 0, .14), 0px 6px 30px 5px rgba(0, 0, 0, .12);--mat-sidenav-container-width: auto}html{--mat-sidenav-container-divider-color: rgba(0, 0, 0, .12);--mat-sidenav-container-background-color: white;--mat-sidenav-container-text-color: rgba(0, 0, 0, .87);--mat-sidenav-content-background-color: #fafafa;--mat-sidenav-content-text-color: rgba(0, 0, 0, .87);--mat-sidenav-scrim-color: rgba(0, 0, 0, .6)}html{--mat-stepper-header-focus-state-layer-shape: 0;--mat-stepper-header-hover-state-layer-shape: 0}html{--mat-stepper-header-icon-foreground-color: #F8F9F9;--mat-stepper-header-selected-state-icon-background-color: #215f9e;--mat-stepper-header-selected-state-icon-foreground-color: #F8F9F9;--mat-stepper-header-done-state-icon-background-color: #215f9e;--mat-stepper-header-done-state-icon-foreground-color: #F8F9F9;--mat-stepper-header-edit-state-icon-background-color: #215f9e;--mat-stepper-header-edit-state-icon-foreground-color: #F8F9F9;--mat-stepper-container-color: white;--mat-stepper-line-color: rgba(0, 0, 0, .12);--mat-stepper-header-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-stepper-header-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-stepper-header-label-text-color: rgba(0, 0, 0, .54);--mat-stepper-header-optional-label-text-color: rgba(0, 0, 0, .54);--mat-stepper-header-selected-state-label-text-color: rgba(0, 0, 0, .87);--mat-stepper-header-error-state-label-text-color: #f44336;--mat-stepper-header-icon-background-color: rgba(0, 0, 0, .54);--mat-stepper-header-error-state-icon-foreground-color: #f44336;--mat-stepper-header-error-state-icon-background-color: transparent}.mat-step-header.mat-accent{--mat-stepper-header-icon-foreground-color: #F8F9F9;--mat-stepper-header-selected-state-icon-background-color: #a7a7a7;--mat-stepper-header-selected-state-icon-foreground-color: #F8F9F9;--mat-stepper-header-done-state-icon-background-color: #a7a7a7;--mat-stepper-header-done-state-icon-foreground-color: #F8F9F9;--mat-stepper-header-edit-state-icon-background-color: #a7a7a7;--mat-stepper-header-edit-state-icon-foreground-color: #F8F9F9}.mat-step-header.mat-warn{--mat-stepper-header-icon-foreground-color: white;--mat-stepper-header-selected-state-icon-background-color: #f44336;--mat-stepper-header-selected-state-icon-foreground-color: white;--mat-stepper-header-done-state-icon-background-color: #f44336;--mat-stepper-header-done-state-icon-foreground-color: white;--mat-stepper-header-edit-state-icon-background-color: #f44336;--mat-stepper-header-edit-state-icon-foreground-color: white}html{--mat-stepper-header-height: 72px}html{--mat-sort-arrow-color: rgba(0, 0, 0, .87)}html{--mat-toolbar-container-background-color: white;--mat-toolbar-container-text-color: rgba(0, 0, 0, .87)}.mat-toolbar.mat-primary{--mat-toolbar-container-background-color: #215f9e;--mat-toolbar-container-text-color: #F8F9F9}.mat-toolbar.mat-accent{--mat-toolbar-container-background-color: #a7a7a7;--mat-toolbar-container-text-color: #F8F9F9}.mat-toolbar.mat-warn{--mat-toolbar-container-background-color: #f44336;--mat-toolbar-container-text-color: white}html{--mat-toolbar-standard-height: 64px;--mat-toolbar-mobile-height: 56px}html{--mat-tree-container-background-color: white;--mat-tree-node-text-color: rgba(0, 0, 0, .87)}html{--mat-tree-node-min-height: 48px}html{--mat-timepicker-container-shape: 4px;--mat-timepicker-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-timepicker-container-background-color: white}.white-theme{--mat-app-background-color: #fafafa;--mat-app-text-color: rgba(0, 0, 0, .87);--mat-app-elevation-shadow-level-0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-2: 0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-3: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-4: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-5: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 5px 8px 0px rgba(0, 0, 0, .14), 0px 1px 14px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-6: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-7: 0px 4px 5px -2px rgba(0, 0, 0, .2), 0px 7px 10px 1px rgba(0, 0, 0, .14), 0px 2px 16px 1px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-8: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-9: 0px 5px 6px -3px rgba(0, 0, 0, .2), 0px 9px 12px 1px rgba(0, 0, 0, .14), 0px 3px 16px 2px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-10: 0px 6px 6px -3px rgba(0, 0, 0, .2), 0px 10px 14px 1px rgba(0, 0, 0, .14), 0px 4px 18px 3px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-11: 0px 6px 7px -4px rgba(0, 0, 0, .2), 0px 11px 15px 1px rgba(0, 0, 0, .14), 0px 4px 20px 3px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-12: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-13: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 13px 19px 2px rgba(0, 0, 0, .14), 0px 5px 24px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-14: 0px 7px 9px -4px rgba(0, 0, 0, .2), 0px 14px 21px 2px rgba(0, 0, 0, .14), 0px 5px 26px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-15: 0px 8px 9px -5px rgba(0, 0, 0, .2), 0px 15px 22px 2px rgba(0, 0, 0, .14), 0px 6px 28px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-16: 0px 8px 10px -5px rgba(0, 0, 0, .2), 0px 16px 24px 2px rgba(0, 0, 0, .14), 0px 6px 30px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-17: 0px 8px 11px -5px rgba(0, 0, 0, .2), 0px 17px 26px 2px rgba(0, 0, 0, .14), 0px 6px 32px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-18: 0px 9px 11px -5px rgba(0, 0, 0, .2), 0px 18px 28px 2px rgba(0, 0, 0, .14), 0px 7px 34px 6px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-19: 0px 9px 12px -6px rgba(0, 0, 0, .2), 0px 19px 29px 2px rgba(0, 0, 0, .14), 0px 7px 36px 6px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-20: 0px 10px 13px -6px rgba(0, 0, 0, .2), 0px 20px 31px 3px rgba(0, 0, 0, .14), 0px 8px 38px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-21: 0px 10px 13px -6px rgba(0, 0, 0, .2), 0px 21px 33px 3px rgba(0, 0, 0, .14), 0px 8px 40px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-22: 0px 10px 14px -6px rgba(0, 0, 0, .2), 0px 22px 35px 3px rgba(0, 0, 0, .14), 0px 8px 42px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-23: 0px 11px 14px -7px rgba(0, 0, 0, .2), 0px 23px 36px 3px rgba(0, 0, 0, .14), 0px 9px 44px 8px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-24: 0px 11px 15px -7px rgba(0, 0, 0, .2), 0px 24px 38px 3px rgba(0, 0, 0, .14), 0px 9px 46px 8px rgba(0, 0, 0, .12);--mat-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-option-selected-state-label-text-color: white;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-option-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-option-selected-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent)}.white-theme .mat-accent{--mat-option-selected-state-label-text-color: #a7a7a7;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-option-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-option-selected-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent)}.white-theme .mat-warn{--mat-option-selected-state-label-text-color: #f44336;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-option-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-option-selected-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent)}.white-theme{--mat-optgroup-label-text-color: rgba(0, 0, 0, .87);--mat-pseudo-checkbox-full-selected-icon-color: #a7a7a7;--mat-pseudo-checkbox-full-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-unselected-icon-color: rgba(0, 0, 0, .54);--mat-pseudo-checkbox-full-disabled-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-full-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-minimal-selected-checkmark-color: #a7a7a7;--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}.white-theme .mat-primary{--mat-pseudo-checkbox-full-selected-icon-color: white;--mat-pseudo-checkbox-full-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-unselected-icon-color: rgba(0, 0, 0, .54);--mat-pseudo-checkbox-full-disabled-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-full-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-minimal-selected-checkmark-color: white;--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}.white-theme .mat-accent{--mat-pseudo-checkbox-full-selected-icon-color: #a7a7a7;--mat-pseudo-checkbox-full-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-unselected-icon-color: rgba(0, 0, 0, .54);--mat-pseudo-checkbox-full-disabled-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-full-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-minimal-selected-checkmark-color: #a7a7a7;--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}.white-theme .mat-warn{--mat-pseudo-checkbox-full-selected-icon-color: #f44336;--mat-pseudo-checkbox-full-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-unselected-icon-color: rgba(0, 0, 0, .54);--mat-pseudo-checkbox-full-disabled-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-full-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-minimal-selected-checkmark-color: #f44336;--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}.white-theme{--mat-card-elevated-container-color: white;--mat-card-elevated-container-elevation: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-card-outlined-container-color: white;--mat-card-outlined-container-elevation: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-card-outlined-outline-color: rgba(0, 0, 0, .12);--mat-card-subtitle-text-color: rgba(0, 0, 0, .54);--mat-card-filled-container-color: white;--mat-card-filled-container-elevation: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12)}.white-theme .mat-mdc-progress-bar{--mat-progress-bar-active-indicator-color: white;--mat-progress-bar-track-color: rgba(255, 255, 255, .25)}.white-theme .mat-mdc-progress-bar.mat-accent{--mat-progress-bar-active-indicator-color: #a7a7a7;--mat-progress-bar-track-color: rgba(167, 167, 167, .25)}.white-theme .mat-mdc-progress-bar.mat-warn{--mat-progress-bar-active-indicator-color: #f44336;--mat-progress-bar-track-color: rgba(244, 67, 54, .25)}.white-theme{--mat-tooltip-container-color: #424242;--mat-tooltip-supporting-text-color: white;--mat-form-field-focus-select-arrow-color: color-mix(in srgb, white 87%, transparent);--mat-form-field-filled-caret-color: white;--mat-form-field-filled-focus-active-indicator-color: white;--mat-form-field-filled-focus-label-text-color: color-mix(in srgb, white 87%, transparent);--mat-form-field-outlined-caret-color: white;--mat-form-field-outlined-focus-outline-color: white;--mat-form-field-outlined-focus-label-text-color: color-mix(in srgb, white 87%, transparent);--mat-form-field-disabled-input-text-placeholder-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-state-layer-color: rgba(0, 0, 0, .87);--mat-form-field-error-text-color: #f44336;--mat-form-field-select-option-text-color: inherit;--mat-form-field-select-disabled-option-text-color: GrayText;--mat-form-field-leading-icon-color: unset;--mat-form-field-disabled-leading-icon-color: unset;--mat-form-field-trailing-icon-color: unset;--mat-form-field-disabled-trailing-icon-color: unset;--mat-form-field-error-focus-trailing-icon-color: unset;--mat-form-field-error-hover-trailing-icon-color: unset;--mat-form-field-error-trailing-icon-color: unset;--mat-form-field-enabled-select-arrow-color: rgba(0, 0, 0, .54);--mat-form-field-disabled-select-arrow-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-hover-state-layer-opacity: .04;--mat-form-field-focus-state-layer-opacity: .12;--mat-form-field-filled-container-color: #f6f6f6;--mat-form-field-filled-disabled-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-form-field-filled-label-text-color: rgba(0, 0, 0, .54);--mat-form-field-filled-hover-label-text-color: rgba(0, 0, 0, .54);--mat-form-field-filled-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-filled-input-text-color: rgba(0, 0, 0, .87);--mat-form-field-filled-disabled-input-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-filled-input-text-placeholder-color: rgba(0, 0, 0, .54);--mat-form-field-filled-error-hover-label-text-color: #f44336;--mat-form-field-filled-error-focus-label-text-color: #f44336;--mat-form-field-filled-error-label-text-color: #f44336;--mat-form-field-filled-error-caret-color: #f44336;--mat-form-field-filled-active-indicator-color: rgba(0, 0, 0, .54);--mat-form-field-filled-disabled-active-indicator-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-form-field-filled-hover-active-indicator-color: rgba(0, 0, 0, .87);--mat-form-field-filled-error-active-indicator-color: #f44336;--mat-form-field-filled-error-focus-active-indicator-color: #f44336;--mat-form-field-filled-error-hover-active-indicator-color: #f44336;--mat-form-field-outlined-label-text-color: rgba(0, 0, 0, .54);--mat-form-field-outlined-hover-label-text-color: rgba(0, 0, 0, .87);--mat-form-field-outlined-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-outlined-input-text-color: rgba(0, 0, 0, .87);--mat-form-field-outlined-disabled-input-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-outlined-input-text-placeholder-color: rgba(0, 0, 0, .54);--mat-form-field-outlined-error-caret-color: #f44336;--mat-form-field-outlined-error-focus-label-text-color: #f44336;--mat-form-field-outlined-error-label-text-color: #f44336;--mat-form-field-outlined-error-hover-label-text-color: #f44336;--mat-form-field-outlined-outline-color: rgba(0, 0, 0, .38);--mat-form-field-outlined-disabled-outline-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-form-field-outlined-hover-outline-color: rgba(0, 0, 0, .87);--mat-form-field-outlined-error-focus-outline-color: #f44336;--mat-form-field-outlined-error-hover-outline-color: #f44336;--mat-form-field-outlined-error-outline-color: #f44336}.white-theme .mat-mdc-form-field.mat-accent{--mat-form-field-focus-select-arrow-color: color-mix(in srgb, #a7a7a7 87%, transparent);--mat-form-field-filled-caret-color: #a7a7a7;--mat-form-field-filled-focus-active-indicator-color: #a7a7a7;--mat-form-field-filled-focus-label-text-color: color-mix(in srgb, #a7a7a7 87%, transparent);--mat-form-field-outlined-caret-color: #a7a7a7;--mat-form-field-outlined-focus-outline-color: #a7a7a7;--mat-form-field-outlined-focus-label-text-color: color-mix(in srgb, #a7a7a7 87%, transparent)}.white-theme .mat-mdc-form-field.mat-warn{--mat-form-field-focus-select-arrow-color: color-mix(in srgb, #f44336 87%, transparent);--mat-form-field-filled-caret-color: #f44336;--mat-form-field-filled-focus-active-indicator-color: #f44336;--mat-form-field-filled-focus-label-text-color: color-mix(in srgb, #f44336 87%, transparent);--mat-form-field-outlined-caret-color: #f44336;--mat-form-field-outlined-focus-outline-color: #f44336;--mat-form-field-outlined-focus-label-text-color: color-mix(in srgb, #f44336 87%, transparent)}.white-theme{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-placeholder-text-color: rgba(0, 0, 0, .54);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-focused-arrow-color: white;--mat-select-invalid-arrow-color: #f44336}.white-theme .mat-mdc-form-field.mat-accent{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-placeholder-text-color: rgba(0, 0, 0, .54);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-focused-arrow-color: #a7a7a7;--mat-select-invalid-arrow-color: #f44336}.white-theme .mat-mdc-form-field.mat-warn{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-placeholder-text-color: rgba(0, 0, 0, .54);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-focused-arrow-color: #f44336;--mat-select-invalid-arrow-color: #f44336}.white-theme{--mat-autocomplete-background-color: white;--mat-dialog-container-color: white;--mat-dialog-subhead-color: rgba(0, 0, 0, .87);--mat-dialog-supporting-text-color: rgba(0, 0, 0, .54)}.white-theme .mat-mdc-standard-chip{--mat-chip-disabled-label-text-color: rgba(0, 0, 0, .87);--mat-chip-elevated-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-chip-elevated-disabled-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-chip-elevated-selected-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-chip-flat-disabled-selected-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-chip-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-focus-state-layer-opacity: .12;--mat-chip-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-label-text-color: rgba(0, 0, 0, .87);--mat-chip-selected-disabled-trailing-icon-color: rgba(0, 0, 0, .87);--mat-chip-selected-focus-state-layer-color: .12;--mat-chip-selected-focus-state-layer-opacity: .12;--mat-chip-selected-hover-state-layer-color: .04;--mat-chip-selected-label-text-color: rgba(0, 0, 0, .87);--mat-chip-selected-trailing-icon-color: rgba(0, 0, 0, .87);--mat-chip-with-icon-disabled-icon-color: rgba(0, 0, 0, .87);--mat-chip-with-icon-icon-color: rgba(0, 0, 0, .87);--mat-chip-with-icon-selected-icon-color: rgba(0, 0, 0, .87);--mat-chip-with-trailing-icon-disabled-trailing-icon-color: rgba(0, 0, 0, .87);--mat-chip-with-trailing-icon-trailing-icon-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-standard-chip.mat-mdc-chip-selected.mat-primary,.white-theme .mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-primary{--mat-chip-disabled-label-text-color: white;--mat-chip-elevated-container-color: white;--mat-chip-elevated-disabled-container-color: white;--mat-chip-elevated-selected-container-color: white;--mat-chip-flat-disabled-selected-container-color: white;--mat-chip-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-focus-state-layer-opacity: .12;--mat-chip-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-label-text-color: white;--mat-chip-selected-disabled-trailing-icon-color: white;--mat-chip-selected-focus-state-layer-color: .12;--mat-chip-selected-focus-state-layer-opacity: .12;--mat-chip-selected-hover-state-layer-color: .04;--mat-chip-selected-label-text-color: white;--mat-chip-selected-trailing-icon-color: white;--mat-chip-with-icon-disabled-icon-color: white;--mat-chip-with-icon-icon-color: white;--mat-chip-with-icon-selected-icon-color: white;--mat-chip-with-trailing-icon-disabled-trailing-icon-color: white;--mat-chip-with-trailing-icon-trailing-icon-color: white}.white-theme .mat-mdc-standard-chip.mat-mdc-chip-selected.mat-accent,.white-theme .mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-accent{--mat-chip-disabled-label-text-color: #F8F9F9;--mat-chip-elevated-container-color: #a7a7a7;--mat-chip-elevated-disabled-container-color: #a7a7a7;--mat-chip-elevated-selected-container-color: #a7a7a7;--mat-chip-flat-disabled-selected-container-color: #a7a7a7;--mat-chip-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-focus-state-layer-opacity: .12;--mat-chip-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-label-text-color: #F8F9F9;--mat-chip-selected-disabled-trailing-icon-color: #F8F9F9;--mat-chip-selected-focus-state-layer-color: .12;--mat-chip-selected-focus-state-layer-opacity: .12;--mat-chip-selected-hover-state-layer-color: .04;--mat-chip-selected-label-text-color: #F8F9F9;--mat-chip-selected-trailing-icon-color: #F8F9F9;--mat-chip-with-icon-disabled-icon-color: #F8F9F9;--mat-chip-with-icon-icon-color: #F8F9F9;--mat-chip-with-icon-selected-icon-color: #F8F9F9;--mat-chip-with-trailing-icon-disabled-trailing-icon-color: #F8F9F9;--mat-chip-with-trailing-icon-trailing-icon-color: #F8F9F9}.white-theme .mat-mdc-standard-chip.mat-mdc-chip-selected.mat-warn,.white-theme .mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-warn{--mat-chip-disabled-label-text-color: white;--mat-chip-elevated-container-color: #f44336;--mat-chip-elevated-disabled-container-color: #f44336;--mat-chip-elevated-selected-container-color: #f44336;--mat-chip-flat-disabled-selected-container-color: #f44336;--mat-chip-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-focus-state-layer-opacity: .12;--mat-chip-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-label-text-color: white;--mat-chip-selected-disabled-trailing-icon-color: white;--mat-chip-selected-focus-state-layer-color: .12;--mat-chip-selected-focus-state-layer-opacity: .12;--mat-chip-selected-hover-state-layer-color: .04;--mat-chip-selected-label-text-color: white;--mat-chip-selected-trailing-icon-color: white;--mat-chip-with-icon-disabled-icon-color: white;--mat-chip-with-icon-icon-color: white;--mat-chip-with-icon-selected-icon-color: white;--mat-chip-with-trailing-icon-disabled-trailing-icon-color: white;--mat-chip-with-trailing-icon-trailing-icon-color: white}.white-theme{--mat-slide-toggle-selected-icon-color: white;--mat-slide-toggle-disabled-selected-icon-color: white;--mat-slide-toggle-selected-focus-state-layer-color: white;--mat-slide-toggle-selected-handle-color: white;--mat-slide-toggle-selected-hover-state-layer-color: white;--mat-slide-toggle-selected-pressed-state-layer-color: white;--mat-slide-toggle-selected-focus-handle-color: white;--mat-slide-toggle-selected-hover-handle-color: white;--mat-slide-toggle-selected-pressed-handle-color: white;--mat-slide-toggle-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-slide-toggle-disabled-handle-elevation-shadow: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-slide-toggle-disabled-selected-handle-color: rgba(0, 0, 0, .87);--mat-slide-toggle-disabled-selected-track-color: rgba(0, 0, 0, .87);--mat-slide-toggle-disabled-unselected-handle-color: rgba(0, 0, 0, .87);--mat-slide-toggle-disabled-unselected-icon-color: #f6f6f6;--mat-slide-toggle-disabled-unselected-track-color: rgba(0, 0, 0, .87);--mat-slide-toggle-handle-elevation-shadow: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-slide-toggle-handle-surface-color: white;--mat-slide-toggle-label-text-color: rgba(0, 0, 0, .87);--mat-slide-toggle-unselected-hover-handle-color: #424242;--mat-slide-toggle-unselected-focus-handle-color: #424242;--mat-slide-toggle-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-slide-toggle-unselected-focus-track-color: rgba(0, 0, 0, .12);--mat-slide-toggle-unselected-icon-color: #f6f6f6;--mat-slide-toggle-unselected-handle-color: rgba(0, 0, 0, .54);--mat-slide-toggle-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-slide-toggle-unselected-hover-track-color: rgba(0, 0, 0, .12);--mat-slide-toggle-unselected-pressed-handle-color: #424242;--mat-slide-toggle-unselected-pressed-track-color: rgba(0, 0, 0, .12);--mat-slide-toggle-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87);--mat-slide-toggle-unselected-track-color: rgba(0, 0, 0, .12)}.white-theme .mat-mdc-slide-toggle.mat-accent{--mat-slide-toggle-selected-icon-color: #F8F9F9;--mat-slide-toggle-disabled-selected-icon-color: #F8F9F9;--mat-slide-toggle-selected-focus-state-layer-color: #a7a7a7;--mat-slide-toggle-selected-handle-color: #a7a7a7;--mat-slide-toggle-selected-hover-state-layer-color: #a7a7a7;--mat-slide-toggle-selected-pressed-state-layer-color: #a7a7a7;--mat-slide-toggle-selected-focus-handle-color: #a7a7a7;--mat-slide-toggle-selected-hover-handle-color: #a7a7a7;--mat-slide-toggle-selected-pressed-handle-color: #a7a7a7}.white-theme .mat-mdc-slide-toggle.mat-warn{--mat-slide-toggle-selected-icon-color: white;--mat-slide-toggle-disabled-selected-icon-color: white;--mat-slide-toggle-selected-focus-state-layer-color: #f44336;--mat-slide-toggle-selected-handle-color: #f44336;--mat-slide-toggle-selected-hover-state-layer-color: #f44336;--mat-slide-toggle-selected-pressed-state-layer-color: #f44336;--mat-slide-toggle-selected-focus-handle-color: #f44336;--mat-slide-toggle-selected-hover-handle-color: #f44336;--mat-slide-toggle-selected-pressed-handle-color: #f44336;--mat-slide-toggle-selected-focus-track-color: #e57373;--mat-slide-toggle-selected-hover-track-color: #e57373;--mat-slide-toggle-selected-pressed-track-color: #e57373;--mat-slide-toggle-selected-track-color: #e57373}.white-theme .mat-mdc-radio-button.mat-primary{--mat-radio-checked-ripple-color: white;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: white;--mat-radio-selected-hover-icon-color: white;--mat-radio-selected-icon-color: white;--mat-radio-selected-pressed-icon-color: white;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-radio-button.mat-accent{--mat-radio-checked-ripple-color: #a7a7a7;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: #a7a7a7;--mat-radio-selected-hover-icon-color: #a7a7a7;--mat-radio-selected-icon-color: #a7a7a7;--mat-radio-selected-pressed-icon-color: #a7a7a7;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-radio-button.mat-warn{--mat-radio-checked-ripple-color: #f44336;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: #f44336;--mat-radio-selected-hover-icon-color: #f44336;--mat-radio-selected-icon-color: #f44336;--mat-radio-selected-pressed-icon-color: #f44336;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.white-theme{--mat-slider-active-track-color: white;--mat-slider-focus-handle-color: white;--mat-slider-handle-color: white;--mat-slider-hover-handle-color: white;--mat-slider-focus-state-layer-color: color-mix(in srgb, white 12%, transparent);--mat-slider-hover-state-layer-color: color-mix(in srgb, white 4%, transparent);--mat-slider-inactive-track-color: white;--mat-slider-ripple-color: white;--mat-slider-with-tick-marks-active-container-color: white;--mat-slider-with-tick-marks-inactive-container-color: white;--mat-slider-disabled-active-track-color: rgba(0, 0, 0, .87);--mat-slider-disabled-handle-color: rgba(0, 0, 0, .87);--mat-slider-disabled-inactive-track-color: rgba(0, 0, 0, .87);--mat-slider-label-container-color: #424242;--mat-slider-label-label-text-color: white;--mat-slider-value-indicator-opacity: 1;--mat-slider-with-overlap-handle-outline-color: rgba(0, 0, 0, .87);--mat-slider-with-tick-marks-disabled-container-color: rgba(0, 0, 0, .87)}.white-theme .mat-accent{--mat-slider-active-track-color: #a7a7a7;--mat-slider-focus-handle-color: #a7a7a7;--mat-slider-handle-color: #a7a7a7;--mat-slider-hover-handle-color: #a7a7a7;--mat-slider-focus-state-layer-color: color-mix(in srgb, #a7a7a7 12%, transparent);--mat-slider-hover-state-layer-color: color-mix(in srgb, #a7a7a7 4%, transparent);--mat-slider-inactive-track-color: #a7a7a7;--mat-slider-ripple-color: #a7a7a7;--mat-slider-with-tick-marks-active-container-color: #F8F9F9;--mat-slider-with-tick-marks-inactive-container-color: #a7a7a7}.white-theme .mat-warn{--mat-slider-active-track-color: #f44336;--mat-slider-focus-handle-color: #f44336;--mat-slider-handle-color: #f44336;--mat-slider-hover-handle-color: #f44336;--mat-slider-focus-state-layer-color: color-mix(in srgb, #f44336 12%, transparent);--mat-slider-hover-state-layer-color: color-mix(in srgb, #f44336 4%, transparent);--mat-slider-inactive-track-color: #f44336;--mat-slider-ripple-color: #f44336;--mat-slider-with-tick-marks-active-container-color: white;--mat-slider-with-tick-marks-inactive-container-color: #f44336}.white-theme{--mat-menu-item-label-text-color: rgba(0, 0, 0, .87);--mat-menu-item-icon-color: rgba(0, 0, 0, .87);--mat-menu-item-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-menu-item-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-menu-container-color: white;--mat-menu-divider-color: rgba(0, 0, 0, .12);--mat-list-list-item-label-text-color: rgba(0, 0, 0, .87);--mat-list-list-item-supporting-text-color: rgba(0, 0, 0, .54);--mat-list-list-item-leading-icon-color: rgba(0, 0, 0, .54);--mat-list-list-item-trailing-supporting-text-color: rgba(0, 0, 0, .54);--mat-list-list-item-trailing-icon-color: rgba(0, 0, 0, .54);--mat-list-list-item-selected-trailing-icon-color: rgba(0, 0, 0, .54);--mat-list-list-item-disabled-label-text-color: rgba(0, 0, 0, .87);--mat-list-list-item-disabled-leading-icon-color: rgba(0, 0, 0, .87);--mat-list-list-item-disabled-trailing-icon-color: rgba(0, 0, 0, .87);--mat-list-list-item-hover-label-text-color: rgba(0, 0, 0, .87);--mat-list-list-item-hover-leading-icon-color: rgba(0, 0, 0, .54);--mat-list-list-item-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-list-list-item-hover-state-layer-opacity: .04;--mat-list-list-item-hover-trailing-icon-color: rgba(0, 0, 0, .54);--mat-list-list-item-focus-label-text-color: rgba(0, 0, 0, .87);--mat-list-list-item-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-list-list-item-focus-state-layer-opacity: .12}.white-theme .mdc-list-item__start,.white-theme .mdc-list-item__end{--mat-radio-checked-ripple-color: white;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: white;--mat-radio-selected-hover-icon-color: white;--mat-radio-selected-icon-color: white;--mat-radio-selected-pressed-icon-color: white;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.white-theme .mat-accent .mdc-list-item__start,.white-theme .mat-accent .mdc-list-item__end{--mat-radio-checked-ripple-color: #a7a7a7;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: #a7a7a7;--mat-radio-selected-hover-icon-color: #a7a7a7;--mat-radio-selected-icon-color: #a7a7a7;--mat-radio-selected-pressed-icon-color: #a7a7a7;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.white-theme .mat-warn .mdc-list-item__start,.white-theme .mat-warn .mdc-list-item__end{--mat-radio-checked-ripple-color: #f44336;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: #f44336;--mat-radio-selected-hover-icon-color: #f44336;--mat-radio-selected-icon-color: #f44336;--mat-radio-selected-pressed-icon-color: #f44336;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-list-option{--mat-checkbox-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-label-text-color: rgba(0, 0, 0, .87);--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: white;--mat-checkbox-selected-focus-icon-color: white;--mat-checkbox-selected-hover-icon-color: white;--mat-checkbox-selected-icon-color: white;--mat-checkbox-selected-pressed-icon-color: white;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: white;--mat-checkbox-selected-hover-state-layer-color: white;--mat-checkbox-selected-pressed-state-layer-color: white;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-list-option.mat-accent{--mat-checkbox-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-label-text-color: rgba(0, 0, 0, .87);--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: #F8F9F9;--mat-checkbox-selected-focus-icon-color: #a7a7a7;--mat-checkbox-selected-hover-icon-color: #a7a7a7;--mat-checkbox-selected-icon-color: #a7a7a7;--mat-checkbox-selected-pressed-icon-color: #a7a7a7;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: #a7a7a7;--mat-checkbox-selected-hover-state-layer-color: #a7a7a7;--mat-checkbox-selected-pressed-state-layer-color: #a7a7a7;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-list-option.mat-warn{--mat-checkbox-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-label-text-color: rgba(0, 0, 0, .87);--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: white;--mat-checkbox-selected-focus-icon-color: #f44336;--mat-checkbox-selected-hover-icon-color: #f44336;--mat-checkbox-selected-icon-color: #f44336;--mat-checkbox-selected-pressed-icon-color: #f44336;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: #f44336;--mat-checkbox-selected-hover-state-layer-color: #f44336;--mat-checkbox-selected-pressed-state-layer-color: #f44336;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected .mdc-list-item__primary-text,.white-theme .mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected .mdc-list-item__start,.white-theme .mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated .mdc-list-item__primary-text,.white-theme .mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated .mdc-list-item__start{color:#fff}.white-theme .mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__start,.white-theme .mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__content,.white-theme .mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__end{opacity:1}.white-theme{--mat-paginator-container-text-color: rgba(0, 0, 0, .87);--mat-paginator-container-background-color: white;--mat-paginator-enabled-icon-color: rgba(0, 0, 0, .54);--mat-paginator-disabled-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}.white-theme .mat-mdc-tab-group,.white-theme .mat-mdc-tab-nav-bar{--mat-tab-disabled-ripple-color: rgba(0, 0, 0, .54);--mat-tab-pagination-icon-color: rgba(0, 0, 0, .87);--mat-tab-inactive-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-label-text-color: white;--mat-tab-active-ripple-color: white;--mat-tab-inactive-ripple-color: white;--mat-tab-inactive-focus-label-text-color: rgba(0, 0, 0, .54);--mat-tab-inactive-hover-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-focus-label-text-color: white;--mat-tab-active-hover-label-text-color: white;--mat-tab-active-focus-indicator-color: white;--mat-tab-active-hover-indicator-color: white;--mat-tab-active-indicator-color: white}.white-theme .mat-mdc-tab-group.mat-accent,.white-theme .mat-mdc-tab-nav-bar.mat-accent{--mat-tab-disabled-ripple-color: rgba(0, 0, 0, .54);--mat-tab-pagination-icon-color: rgba(0, 0, 0, .87);--mat-tab-inactive-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-label-text-color: #a7a7a7;--mat-tab-active-ripple-color: #a7a7a7;--mat-tab-inactive-ripple-color: #a7a7a7;--mat-tab-inactive-focus-label-text-color: rgba(0, 0, 0, .54);--mat-tab-inactive-hover-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-focus-label-text-color: #a7a7a7;--mat-tab-active-hover-label-text-color: #a7a7a7;--mat-tab-active-focus-indicator-color: #a7a7a7;--mat-tab-active-hover-indicator-color: #a7a7a7;--mat-tab-active-indicator-color: #a7a7a7}.white-theme .mat-mdc-tab-group.mat-warn,.white-theme .mat-mdc-tab-nav-bar.mat-warn{--mat-tab-disabled-ripple-color: rgba(0, 0, 0, .54);--mat-tab-pagination-icon-color: rgba(0, 0, 0, .87);--mat-tab-inactive-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-label-text-color: #f44336;--mat-tab-active-ripple-color: #f44336;--mat-tab-inactive-ripple-color: #f44336;--mat-tab-inactive-focus-label-text-color: rgba(0, 0, 0, .54);--mat-tab-inactive-hover-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-focus-label-text-color: #f44336;--mat-tab-active-hover-label-text-color: #f44336;--mat-tab-active-focus-indicator-color: #f44336;--mat-tab-active-hover-indicator-color: #f44336;--mat-tab-active-indicator-color: #f44336}.white-theme .mat-mdc-tab-group.mat-background-primary,.white-theme .mat-mdc-tab-nav-bar.mat-background-primary{--mat-tab-background-color: white;--mat-tab-foreground-color: white}.white-theme .mat-mdc-tab-group.mat-background-accent,.white-theme .mat-mdc-tab-nav-bar.mat-background-accent{--mat-tab-background-color: #a7a7a7;--mat-tab-foreground-color: #F8F9F9}.white-theme .mat-mdc-tab-group.mat-background-warn,.white-theme .mat-mdc-tab-nav-bar.mat-background-warn{--mat-tab-background-color: #f44336;--mat-tab-foreground-color: white}.white-theme{--mat-checkbox-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-label-text-color: rgba(0, 0, 0, .87);--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: #F8F9F9;--mat-checkbox-selected-focus-icon-color: #a7a7a7;--mat-checkbox-selected-hover-icon-color: #a7a7a7;--mat-checkbox-selected-icon-color: #a7a7a7;--mat-checkbox-selected-pressed-icon-color: #a7a7a7;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: #a7a7a7;--mat-checkbox-selected-hover-state-layer-color: #a7a7a7;--mat-checkbox-selected-pressed-state-layer-color: #a7a7a7;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-checkbox.mat-primary{--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: white;--mat-checkbox-selected-focus-icon-color: white;--mat-checkbox-selected-hover-icon-color: white;--mat-checkbox-selected-icon-color: white;--mat-checkbox-selected-pressed-icon-color: white;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: white;--mat-checkbox-selected-hover-state-layer-color: white;--mat-checkbox-selected-pressed-state-layer-color: white;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-checkbox.mat-warn{--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: white;--mat-checkbox-selected-focus-icon-color: #f44336;--mat-checkbox-selected-hover-icon-color: #f44336;--mat-checkbox-selected-icon-color: #f44336;--mat-checkbox-selected-pressed-icon-color: #f44336;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: #f44336;--mat-checkbox-selected-hover-state-layer-color: #f44336;--mat-checkbox-selected-pressed-state-layer-color: #f44336;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.white-theme{--mat-button-filled-container-color: white;--mat-button-filled-disabled-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-filled-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-filled-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-button-filled-focus-state-layer-opacity: .12;--mat-button-filled-hover-state-layer-opacity: .04;--mat-button-filled-label-text-color: rgba(0, 0, 0, .87);--mat-button-filled-pressed-state-layer-opacity: .12;--mat-button-filled-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-filled-state-layer-color: rgba(0, 0, 0, .87);--mat-button-outlined-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-outlined-disabled-outline-color: rgba(0, 0, 0, .12);--mat-button-outlined-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-button-outlined-focus-state-layer-opacity: .12;--mat-button-outlined-hover-state-layer-opacity: .04;--mat-button-outlined-label-text-color: rgba(0, 0, 0, .87);--mat-button-outlined-outline-color: rgba(0, 0, 0, .12);--mat-button-outlined-pressed-state-layer-opacity: .12;--mat-button-outlined-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-outlined-state-layer-color: rgba(0, 0, 0, .87);--mat-button-protected-container-color: white;--mat-button-protected-disabled-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-protected-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-protected-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-button-protected-focus-state-layer-opacity: .12;--mat-button-protected-hover-state-layer-opacity: .04;--mat-button-protected-label-text-color: rgba(0, 0, 0, .87);--mat-button-protected-pressed-state-layer-opacity: .12;--mat-button-protected-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-protected-state-layer-color: rgba(0, 0, 0, .87);--mat-button-text-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-text-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-button-text-focus-state-layer-opacity: .12;--mat-button-text-hover-state-layer-opacity: .04;--mat-button-text-label-text-color: rgba(0, 0, 0, .87);--mat-button-text-pressed-state-layer-opacity: .12;--mat-button-text-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-text-state-layer-color: rgba(0, 0, 0, .87);--mat-button-tonal-container-color: white;--mat-button-tonal-disabled-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-tonal-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-tonal-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-button-tonal-focus-state-layer-opacity: .12;--mat-button-tonal-hover-state-layer-opacity: .04;--mat-button-tonal-label-text-color: rgba(0, 0, 0, .87);--mat-button-tonal-pressed-state-layer-opacity: .12;--mat-button-tonal-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-tonal-state-layer-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-button.mat-primary,.white-theme .mat-mdc-unelevated-button.mat-primary,.white-theme .mat-mdc-raised-button.mat-primary,.white-theme .mat-mdc-outlined-button.mat-primary,.white-theme .mat-tonal-button.mat-primary{--mat-button-filled-container-color: white;--mat-button-filled-label-text-color: white;--mat-button-filled-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-filled-state-layer-color: white;--mat-button-outlined-label-text-color: white;--mat-button-outlined-outline-color: rgba(0, 0, 0, .12);--mat-button-outlined-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-outlined-state-layer-color: white;--mat-button-protected-container-color: white;--mat-button-protected-label-text-color: white;--mat-button-protected-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-protected-state-layer-color: white;--mat-button-text-label-text-color: white;--mat-button-text-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-text-state-layer-color: white;--mat-button-tonal-container-color: white;--mat-button-tonal-label-text-color: white;--mat-button-tonal-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-tonal-state-layer-color: white}.white-theme .mat-mdc-button.mat-accent,.white-theme .mat-mdc-unelevated-button.mat-accent,.white-theme .mat-mdc-raised-button.mat-accent,.white-theme .mat-mdc-outlined-button.mat-accent,.white-theme .mat-tonal-button.mat-accent{--mat-button-filled-container-color: #a7a7a7;--mat-button-filled-label-text-color: #F8F9F9;--mat-button-filled-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-button-filled-state-layer-color: #F8F9F9;--mat-button-outlined-label-text-color: #a7a7a7;--mat-button-outlined-outline-color: rgba(0, 0, 0, .12);--mat-button-outlined-ripple-color: color-mix(in srgb, #a7a7a7 12%, transparent);--mat-button-outlined-state-layer-color: #a7a7a7;--mat-button-protected-container-color: #a7a7a7;--mat-button-protected-label-text-color: #F8F9F9;--mat-button-protected-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-button-protected-state-layer-color: #F8F9F9;--mat-button-text-label-text-color: #a7a7a7;--mat-button-text-ripple-color: color-mix(in srgb, #a7a7a7 12%, transparent);--mat-button-text-state-layer-color: #a7a7a7;--mat-button-tonal-container-color: #a7a7a7;--mat-button-tonal-label-text-color: #F8F9F9;--mat-button-tonal-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-button-tonal-state-layer-color: #F8F9F9}.white-theme .mat-mdc-button.mat-warn,.white-theme .mat-mdc-unelevated-button.mat-warn,.white-theme .mat-mdc-raised-button.mat-warn,.white-theme .mat-mdc-outlined-button.mat-warn,.white-theme .mat-tonal-button.mat-warn{--mat-button-filled-container-color: #f44336;--mat-button-filled-label-text-color: white;--mat-button-filled-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-filled-state-layer-color: white;--mat-button-outlined-label-text-color: #f44336;--mat-button-outlined-outline-color: rgba(0, 0, 0, .12);--mat-button-outlined-ripple-color: color-mix(in srgb, #f44336 12%, transparent);--mat-button-outlined-state-layer-color: #f44336;--mat-button-protected-container-color: #f44336;--mat-button-protected-label-text-color: white;--mat-button-protected-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-protected-state-layer-color: white;--mat-button-text-label-text-color: #f44336;--mat-button-text-ripple-color: color-mix(in srgb, #f44336 12%, transparent);--mat-button-text-state-layer-color: #f44336;--mat-button-tonal-container-color: #f44336;--mat-button-tonal-label-text-color: white;--mat-button-tonal-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-tonal-state-layer-color: white}.white-theme{--mat-icon-button-disabled-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-icon-button-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-icon-button-focus-state-layer-opacity: .12;--mat-icon-button-hover-state-layer-opacity: .04;--mat-icon-button-icon-color: inherit;--mat-icon-button-pressed-state-layer-opacity: .12;--mat-icon-button-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-icon-button-state-layer-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-icon-button.mat-primary{--mat-icon-button-icon-color: white;--mat-icon-button-state-layer-color: white;--mat-icon-button-ripple-color: color-mix(in srgb, white 12%, transparent)}.white-theme .mat-mdc-icon-button.mat-accent{--mat-icon-button-icon-color: #a7a7a7;--mat-icon-button-state-layer-color: #a7a7a7;--mat-icon-button-ripple-color: color-mix(in srgb, #a7a7a7 12%, transparent)}.white-theme .mat-mdc-icon-button.mat-warn{--mat-icon-button-icon-color: #f44336;--mat-icon-button-state-layer-color: #f44336;--mat-icon-button-ripple-color: color-mix(in srgb, #f44336 12%, transparent)}.white-theme{--mat-fab-container-color: white;--mat-fab-disabled-state-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-fab-disabled-state-foreground-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-fab-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-fab-focus-state-layer-opacity: .12;--mat-fab-foreground-color: rgba(0, 0, 0, .87);--mat-fab-hover-state-layer-opacity: .04;--mat-fab-pressed-state-layer-opacity: .12;--mat-fab-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-fab-small-container-color: white;--mat-fab-small-disabled-state-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-fab-small-disabled-state-foreground-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-fab-small-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-fab-small-focus-state-layer-opacity: .12;--mat-fab-small-foreground-color: rgba(0, 0, 0, .87);--mat-fab-small-hover-state-layer-opacity: .04;--mat-fab-small-pressed-state-layer-opacity: .12;--mat-fab-small-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-fab-small-state-layer-color: rgba(0, 0, 0, .87);--mat-fab-state-layer-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-fab.mat-primary,.white-theme .mat-mdc-mini-fab.mat-primary{--mat-fab-container-color: white;--mat-fab-foreground-color: white;--mat-fab-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-fab-small-container-color: white;--mat-fab-small-foreground-color: white;--mat-fab-small-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-fab-small-state-layer-color: white;--mat-fab-state-layer-color: white}.white-theme .mat-mdc-fab.mat-accent,.white-theme .mat-mdc-mini-fab.mat-accent{--mat-fab-container-color: #a7a7a7;--mat-fab-foreground-color: #F8F9F9;--mat-fab-ripple-color: color-mix(in srgb, #a7a7a7 12%, transparent);--mat-fab-small-container-color: #a7a7a7;--mat-fab-small-foreground-color: #F8F9F9;--mat-fab-small-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-fab-small-state-layer-color: #F8F9F9;--mat-fab-state-layer-color: #F8F9F9}.white-theme .mat-mdc-fab.mat-warn,.white-theme .mat-mdc-mini-fab.mat-warn{--mat-fab-container-color: #f44336;--mat-fab-foreground-color: white;--mat-fab-ripple-color: color-mix(in srgb, #f44336 12%, transparent);--mat-fab-small-container-color: #f44336;--mat-fab-small-foreground-color: white;--mat-fab-small-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-fab-small-state-layer-color: white;--mat-fab-state-layer-color: white}.white-theme{--mat-snack-bar-container-color: #424242;--mat-snack-bar-supporting-text-color: white;--mat-table-background-color: white;--mat-table-header-headline-color: rgba(0, 0, 0, .87);--mat-table-row-item-label-text-color: rgba(0, 0, 0, .87);--mat-table-row-item-outline-color: rgba(0, 0, 0, .12);--mat-progress-spinner-active-indicator-color: white}.white-theme .mat-accent{--mat-progress-spinner-active-indicator-color: #a7a7a7}.white-theme .mat-warn{--mat-progress-spinner-active-indicator-color: #f44336}.white-theme{--mat-badge-background-color: white;--mat-badge-text-color: white;--mat-badge-disabled-state-background-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-badge-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}.white-theme .mat-badge-accent{--mat-badge-background-color: #a7a7a7;--mat-badge-text-color: #F8F9F9}.white-theme .mat-badge-warn{--mat-badge-background-color: #f44336;--mat-badge-text-color: white}.white-theme{--mat-bottom-sheet-container-text-color: rgba(0, 0, 0, .87);--mat-bottom-sheet-container-background-color: white;--mat-button-toggle-background-color: white;--mat-button-toggle-disabled-selected-state-background-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-toggle-disabled-selected-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-toggle-disabled-state-background-color: white;--mat-button-toggle-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-toggle-divider-color: rgba(0, 0, 0, .12);--mat-button-toggle-legacy-disabled-selected-state-background-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-toggle-legacy-disabled-state-background-color: white;--mat-button-toggle-legacy-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-toggle-legacy-selected-state-background-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-toggle-legacy-selected-state-text-color: rgba(0, 0, 0, .87);--mat-button-toggle-legacy-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-toggle-legacy-text-color: rgba(0, 0, 0, .87);--mat-button-toggle-selected-state-background-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-toggle-selected-state-text-color: rgba(0, 0, 0, .87);--mat-button-toggle-state-layer-color: rgba(0, 0, 0, .87);--mat-button-toggle-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-date-in-range-state-background-color: color-mix(in srgb, white 20%, transparent);--mat-datepicker-calendar-date-in-comparison-range-state-background-color: color-mix(in srgb, #a7a7a7 20%, transparent);--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: rgb(69.5241935484, 163.4758064516, 93.9516129032);--mat-datepicker-calendar-date-selected-state-text-color: white;--mat-datepicker-calendar-date-selected-state-background-color: white;--mat-datepicker-calendar-date-selected-disabled-state-background-color: color-mix(in srgb, white 38%, transparent);--mat-datepicker-calendar-date-today-selected-state-outline-color: white;--mat-datepicker-calendar-date-focus-state-background-color: color-mix(in srgb, white 12%, transparent);--mat-datepicker-calendar-date-hover-state-background-color: color-mix(in srgb, white 4%, transparent);--mat-datepicker-toggle-active-state-icon-color: white;--mat-datepicker-toggle-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-body-label-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-period-button-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-period-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-navigation-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-header-divider-color: rgba(0, 0, 0, .12);--mat-datepicker-calendar-header-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-disabled-state-outline-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-date-outline-color: transparent;--mat-datepicker-calendar-date-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-preview-state-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-range-input-separator-color: rgba(0, 0, 0, .87);--mat-datepicker-range-input-disabled-state-separator-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-range-input-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-container-background-color: white;--mat-datepicker-calendar-container-text-color: rgba(0, 0, 0, .87)}.white-theme .mat-datepicker-content.mat-accent,.white-theme .mat-datepicker-toggle-active.mat-accent{--mat-datepicker-calendar-date-in-range-state-background-color: color-mix(in srgb, #a7a7a7 20%, transparent);--mat-datepicker-calendar-date-in-comparison-range-state-background-color: color-mix(in srgb, #a7a7a7 20%, transparent);--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: rgb(69.5241935484, 163.4758064516, 93.9516129032);--mat-datepicker-calendar-date-selected-state-text-color: #F8F9F9;--mat-datepicker-calendar-date-selected-state-background-color: #a7a7a7;--mat-datepicker-calendar-date-selected-disabled-state-background-color: color-mix(in srgb, #a7a7a7 38%, transparent);--mat-datepicker-calendar-date-today-selected-state-outline-color: #F8F9F9;--mat-datepicker-calendar-date-focus-state-background-color: color-mix(in srgb, #a7a7a7 12%, transparent);--mat-datepicker-calendar-date-hover-state-background-color: color-mix(in srgb, #a7a7a7 4%, transparent);--mat-datepicker-toggle-active-state-icon-color: #a7a7a7;--mat-datepicker-toggle-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-body-label-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-period-button-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-period-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-navigation-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-header-divider-color: rgba(0, 0, 0, .12);--mat-datepicker-calendar-header-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-disabled-state-outline-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-date-outline-color: transparent;--mat-datepicker-calendar-date-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-preview-state-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-range-input-separator-color: rgba(0, 0, 0, .87);--mat-datepicker-range-input-disabled-state-separator-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-range-input-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-container-background-color: white;--mat-datepicker-calendar-container-text-color: rgba(0, 0, 0, .87)}.white-theme .mat-datepicker-content.mat-warn,.white-theme .mat-datepicker-toggle-active.mat-warn{--mat-datepicker-calendar-date-in-range-state-background-color: color-mix(in srgb, #f44336 20%, transparent);--mat-datepicker-calendar-date-in-comparison-range-state-background-color: color-mix(in srgb, #a7a7a7 20%, transparent);--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: rgb(69.5241935484, 163.4758064516, 93.9516129032);--mat-datepicker-calendar-date-selected-state-text-color: white;--mat-datepicker-calendar-date-selected-state-background-color: #f44336;--mat-datepicker-calendar-date-selected-disabled-state-background-color: color-mix(in srgb, #f44336 38%, transparent);--mat-datepicker-calendar-date-today-selected-state-outline-color: white;--mat-datepicker-calendar-date-focus-state-background-color: color-mix(in srgb, #f44336 12%, transparent);--mat-datepicker-calendar-date-hover-state-background-color: color-mix(in srgb, #f44336 4%, transparent);--mat-datepicker-toggle-active-state-icon-color: #f44336;--mat-datepicker-toggle-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-body-label-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-period-button-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-period-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-navigation-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-header-divider-color: rgba(0, 0, 0, .12);--mat-datepicker-calendar-header-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-disabled-state-outline-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-date-outline-color: transparent;--mat-datepicker-calendar-date-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-preview-state-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-range-input-separator-color: rgba(0, 0, 0, .87);--mat-datepicker-range-input-disabled-state-separator-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-range-input-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-container-background-color: white;--mat-datepicker-calendar-container-text-color: rgba(0, 0, 0, .87)}.white-theme{--mat-divider-color: rgba(0, 0, 0, .12);--mat-expansion-container-background-color: white;--mat-expansion-container-text-color: rgba(0, 0, 0, .87);--mat-expansion-actions-divider-color: rgba(0, 0, 0, .12);--mat-expansion-header-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-expansion-header-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-expansion-header-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-expansion-header-text-color: rgba(0, 0, 0, .87);--mat-expansion-header-description-color: rgba(0, 0, 0, .54);--mat-expansion-header-indicator-color: rgba(0, 0, 0, .54);--mat-icon-color: inherit}.white-theme .mat-icon.mat-primary{--mat-icon-color: white}.white-theme .mat-icon.mat-accent{--mat-icon-color: #a7a7a7}.white-theme .mat-icon.mat-warn{--mat-icon-color: #f44336}.white-theme{--mat-sidenav-container-divider-color: rgba(0, 0, 0, .12);--mat-sidenav-container-background-color: white;--mat-sidenav-container-text-color: rgba(0, 0, 0, .87);--mat-sidenav-content-background-color: #fafafa;--mat-sidenav-content-text-color: rgba(0, 0, 0, .87);--mat-sidenav-scrim-color: rgba(0, 0, 0, .6);--mat-stepper-header-icon-foreground-color: white;--mat-stepper-header-selected-state-icon-background-color: white;--mat-stepper-header-selected-state-icon-foreground-color: white;--mat-stepper-header-done-state-icon-background-color: white;--mat-stepper-header-done-state-icon-foreground-color: white;--mat-stepper-header-edit-state-icon-background-color: white;--mat-stepper-header-edit-state-icon-foreground-color: white;--mat-stepper-container-color: white;--mat-stepper-line-color: rgba(0, 0, 0, .12);--mat-stepper-header-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-stepper-header-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-stepper-header-label-text-color: rgba(0, 0, 0, .54);--mat-stepper-header-optional-label-text-color: rgba(0, 0, 0, .54);--mat-stepper-header-selected-state-label-text-color: rgba(0, 0, 0, .87);--mat-stepper-header-error-state-label-text-color: #f44336;--mat-stepper-header-icon-background-color: rgba(0, 0, 0, .54);--mat-stepper-header-error-state-icon-foreground-color: #f44336;--mat-stepper-header-error-state-icon-background-color: transparent}.white-theme .mat-step-header.mat-accent{--mat-stepper-header-icon-foreground-color: #F8F9F9;--mat-stepper-header-selected-state-icon-background-color: #a7a7a7;--mat-stepper-header-selected-state-icon-foreground-color: #F8F9F9;--mat-stepper-header-done-state-icon-background-color: #a7a7a7;--mat-stepper-header-done-state-icon-foreground-color: #F8F9F9;--mat-stepper-header-edit-state-icon-background-color: #a7a7a7;--mat-stepper-header-edit-state-icon-foreground-color: #F8F9F9}.white-theme .mat-step-header.mat-warn{--mat-stepper-header-icon-foreground-color: white;--mat-stepper-header-selected-state-icon-background-color: #f44336;--mat-stepper-header-selected-state-icon-foreground-color: white;--mat-stepper-header-done-state-icon-background-color: #f44336;--mat-stepper-header-done-state-icon-foreground-color: white;--mat-stepper-header-edit-state-icon-background-color: #f44336;--mat-stepper-header-edit-state-icon-foreground-color: white}.white-theme{--mat-sort-arrow-color: rgba(0, 0, 0, .87);--mat-toolbar-container-background-color: white;--mat-toolbar-container-text-color: rgba(0, 0, 0, .87)}.white-theme .mat-toolbar.mat-primary{--mat-toolbar-container-background-color: white;--mat-toolbar-container-text-color: white}.white-theme .mat-toolbar.mat-accent{--mat-toolbar-container-background-color: #a7a7a7;--mat-toolbar-container-text-color: #F8F9F9}.white-theme .mat-toolbar.mat-warn{--mat-toolbar-container-background-color: #f44336;--mat-toolbar-container-text-color: white}.white-theme{--mat-tree-container-background-color: white;--mat-tree-node-text-color: rgba(0, 0, 0, .87);--mat-timepicker-container-background-color: white} diff --git a/pkg/visor/static/styles.ecb746519c449178.css b/pkg/visor/static/styles.ecb746519c449178.css deleted file mode 100644 index 4acd71b3ce..0000000000 --- a/pkg/visor/static/styles.ecb746519c449178.css +++ /dev/null @@ -1,5 +0,0 @@ -@font-face{font-family:Material Icons;font-style:normal;font-weight:400;src:url(MaterialIcons-Regular.1e50f5c2ffa6aba4.eot);src:local("Material Icons"),local("MaterialIcons-Regular"),url(MaterialIcons-Regular.7ea2023eeca07427.woff2) format("woff2"),url(MaterialIcons-Regular.db852539204b1a34.woff) format("woff"),url(MaterialIcons-Regular.196fa4a92dd6fa73.ttf) format("truetype")}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga"}@charset "UTF-8";.cursor-pointer,.highlight-internal-icon{cursor:pointer}.reactivate-mouse{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled{pointer-events:none}.clearfix:after{content:"";display:block;clear:both}.mt-4\.5{margin-top:2rem!important}.highlight-internal-icon mat-icon{opacity:.5}.highlight-internal-icon:hover mat-icon{opacity:.8}.transparent-button{opacity:.5}.transparent-button:hover{opacity:1}.subtle-transparent-button,.generic-title-container .options .options-container>mat-icon,.generic-title-container .icon-button{opacity:.85}.subtle-transparent-button:hover,.generic-title-container .options .options-container>mat-icon:hover,.generic-title-container .icon-button:hover{opacity:1}@media(max-width:767px),(min-width:992px)and (max-width:1299px){.small-node-list-margins{padding:0!important}}@media(max-width:767px){.full-node-list-margins{padding:0!important}}@font-face{font-family:Skycoin;font-style:normal;font-weight:300;src:url(/assets/fonts/skycoin/skycoin-light-webfont.woff2) format("woff2"),url(/assets/fonts/skycoin/skycoin-light-webfont.woff) format("woff")}@font-face{font-family:Skycoin;font-style:normal;font-weight:400;src:url(/assets/fonts/skycoin/skycoin-regular-webfont.woff2) format("woff2"),url(/assets/fonts/skycoin/skycoin-regular-webfont.woff) format("woff")}@font-face{font-family:Skycoin;font-style:normal;font-weight:700;src:url(/assets/fonts/skycoin/skycoin-bold-webfont.woff2) format("woff2"),url(/assets/fonts/skycoin/skycoin-bold-webfont.woff) format("woff")}span{overflow-wrap:break-word}.font-sm{font-size:.875rem!important;font-weight:lighter!important}.font-smaller{font-size:.8rem!important;font-weight:lighter!important}.uppercase{text-transform:uppercase}.single-line,.options-list-button-container button .internal-container{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text{color:#2ecc54}.green-clear-text{color:#84c826}.yellow-text{color:#d48b05}.yellow-clear-text{color:orange}.red-text{color:#da3439}.red-clear-text{color:#ff393f}.grey-text{color:#777!important}.dot-green{height:10px;width:10px;background-color:#2ecc54;border-radius:50%;display:inline-block}.dot-green.sm{height:7px;width:7px}.dot-red{height:10px;width:10px;background-color:#da3439;border-radius:50%;display:inline-block}.dot-red.sm{height:7px;width:7px}.dot-yellow{height:10px;width:10px;background-color:#d48b05;border-radius:50%;display:inline-block}.dot-yellow.sm{height:7px;width:7px}.dot-outline-white{height:10px;width:10px;border-radius:50%;border:solid 1px #F8F9F9;display:inline-block}.dot-outline-white.sm{height:7px;width:7px}.dot-outline-gray{height:10px;width:10px;border-radius:50%;border:solid 1px #777;display:inline-block}.dot-outline-gray.sm{height:7px;width:7px}.mat-mdc-menu-panel{border-radius:10px!important;max-width:none!important}.mat-mdc-menu-item{width:auto!important}.mat-mdc-menu-item mat-icon{opacity:.5}.responsive-table-translucid{background:transparent!important;margin-left:auto;margin-right:auto;border-collapse:separate!important;width:100%;word-break:break-all;color:#f8f9f9!important}.responsive-table-translucid td,.responsive-table-translucid th{color:#f8f9f9!important;padding:12px 10px;border-bottom:1px solid rgba(255,255,255,.15)}.responsive-table-translucid th{font-size:.875rem!important;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;height:48px}.responsive-table-translucid td{font-size:.8rem!important;font-weight:lighter!important}.responsive-table-translucid tr .sortable-column mat-icon{display:inline;position:relative;top:2px}.responsive-table-translucid .link-row{display:table-row;text-decoration:none}.responsive-table-translucid .link-row:hover{text-decoration:none}.responsive-table-translucid td{vertical-align:middle}.responsive-table-translucid .selection-col{width:30px;padding-top:0;padding-bottom:0}.responsive-table-translucid .selection-col .mat-mdc-checkbox{vertical-align:super}.responsive-table-translucid .action-button,.responsive-table-translucid .big-action-button{width:28px!important;height:28px!important;line-height:16px;font-size:16px;margin-right:5px;padding:0!important;color:#fff!important;min-width:0!important}.responsive-table-translucid .action-button:last-child,.responsive-table-translucid .big-action-button:last-child{margin-right:0}.responsive-table-translucid .action-button .mat-icon,.responsive-table-translucid .big-action-button .mat-icon{margin-right:0!important}.responsive-table-translucid .big-action-button{line-height:18px;font-size:18px}.responsive-table-translucid .selectable,.responsive-table-translucid tr .sortable-column{cursor:pointer}.responsive-table-translucid .selectable:hover,.responsive-table-translucid tr .sortable-column:hover{background:#0003}.responsive-table-translucid .click-effect:active{background:#0006!important}.responsive-table-translucid mat-checkbox>label{margin-bottom:0}.responsive-table-translucid mat-checkbox .mdc-checkbox__background{box-sizing:border-box;width:18px;height:18px;background:#0000004d!important;border-radius:6px;border-width:2px;border-color:#00000080}.responsive-table-translucid mat-checkbox .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background{background-color:#0000004d!important;border-color:#00000080!important}.responsive-table-translucid mat-checkbox svg{color:#fff!important}.responsive-table-translucid .list-item-container{display:flex;padding:10px 0 10px 15px}.responsive-table-translucid .list-item-container .check-part{width:50px;flex-shrink:0;margin-left:-20px}.responsive-table-translucid .list-item-container .left-part{flex-grow:1}.responsive-table-translucid .list-item-container .left-part .list-row{margin-bottom:5px;word-break:break-word}.responsive-table-translucid .list-item-container .left-part .list-row:last-of-type{margin-bottom:0}.responsive-table-translucid .list-item-container .left-part .long-content{word-break:break-all}.responsive-table-translucid .list-item-container .margin-part{width:5px;height:5px;flex-shrink:0}.responsive-table-translucid .list-item-container .right-part{width:60px;text-align:center;flex-shrink:0}.responsive-table-translucid .list-item-container .right-part button{width:60px;height:60px}.responsive-table-translucid .list-item-container .right-part mat-icon{display:inline;font-size:20px}.responsive-table-translucid .title{font-size:.875rem!important;font-weight:700}@media(min-width:768px){.generic-title-container{padding-right:5px}}@media(max-width:767px){.generic-title-container{margin-right:-15px}}.generic-title-container .title{margin-right:auto;font-size:1rem;font-weight:700}@media(min-width:768px){.generic-title-container .title{margin-left:1.25rem!important}}.generic-title-container .title .filter-label{font-size:.7rem;font-weight:lighter}.generic-title-container .title .help{opacity:.5;font-size:14px;cursor:default}.generic-title-container .icon-button{display:flex;line-height:18px!important;margin-right:15px;background:#f8f9f9;color:#154b6c;border-radius:1000px;cursor:pointer;padding:1px 7px;font-weight:400;border:0;font-size:.8rem;align-items:center}.generic-title-container .icon-button mat-icon{margin-right:2px;font-size:18px;height:auto;width:auto}@media(max-width:767px){.generic-title-container .icon-button{padding:1px 10px;line-height:24px!important;font-size:.875rem!important}.generic-title-container .icon-button mat-icon{margin-right:3px;font-size:22px}}.generic-title-container .options{text-align:right}.generic-title-container .options .options-container{text-align:right;display:inline-flex}.generic-title-container .options .options-container>mat-icon{width:18px!important;height:18px!important;line-height:18px!important;font-size:18px!important;margin-right:15px;background:#f8f9f9;color:#154b6c;border-radius:1000px;cursor:pointer}@media(max-width:767px){.generic-title-container .options .options-container>mat-icon{width:24px!important;height:24px!important;line-height:24px!important;font-size:24px!important}}.generic-title-container .options .options-container .small-icon{font-size:14px!important;text-align:center}.paginator-icons-fixer{margin-right:0!important}mat-form-field{display:block!important}.white-form-field{color:#f8f9f9}.white-form-field .mat-mdc-select-value,.white-form-field .mat-mdc-select-arrow{color:#f8f9f9!important}.white-form-field .mdc-line-ripple:before{border-bottom-color:#f8f9f980!important}.white-form-field input{color:#f8f9f9!important}.white-form-field .mat-mdc-input-element{caret-color:#f8f9f9}.form-help-icon-container,.white-form-help-icon-container{height:0px;text-align:right;color:#215f9e}.white-form-help-icon-container{color:#f8f9f9cc}.element-disabled{pointer-events:none!important;opacity:.5!important}.app-background{width:100%;height:100%;top:0;left:0;position:fixed;background:linear-gradient(#060a10,#0a1421) no-repeat fixed!important;box-shadow:inset 0 0 200px #608dcd40;z-index:-1}.no-gradient-for-elevated-box{box-shadow:5px 5px 7px #00000059!important}.elevated-box,.rounded-elevated-box,.small-rounded-elevated-box{background-image:url(/assets/img/background-pattern.png);box-shadow:inset 0 0 55px #35578666,5px 5px 7px #00000059;border:rgba(156,197,255,.33) solid 1px}.rounded-elevated-box,.small-rounded-elevated-box{width:100%;border-radius:10px;overflow:hidden;padding:3px}.rounded-elevated-box .box-internal-container,.small-rounded-elevated-box .box-internal-container{border-radius:10px;padding:12px;border:rgba(156,197,255,.1155) solid 1px;overflow:hidden}.small-rounded-elevated-box{width:unset;padding:0;box-shadow:inset 0 0 20px #35578666,5px 5px 7px #00000059}.mat-mdc-dialog-surface{border-radius:10px!important;background-image:url(/assets/img/modal-background-pattern.png)!important;box-shadow:inset 0 0 100px #ffffff80,5px 5px 15px #000!important;background-color:#e0e5ec!important;overflow:hidden;padding:24px!important}.mat-mdc-dialog-content{font-family:Skycoin!important;margin:0 -24px -24px!important;padding:24px!important;color:#202226!important;line-height:1.5!important}app-dialog app-loading-indicator{margin-top:32px;margin-bottom:24px}.options-list-button-container{margin:0 -24px}.options-list-button-container button{width:100%}.options-list-button-container button .internal-container{text-align:left;padding:5px 7px}.options-list-button-container button mat-icon{margin-right:10px;position:relative;top:2px;opacity:.5}.options-list-button-container:first-of-type{margin-top:-24px!important}.options-list-button-container:last-of-type{margin-bottom:-24px!important}.info-dialog{word-break:break-all;font-size:.875rem;color:#202226}.info-dialog .title{margin-bottom:2px;font-size:1rem;margin-top:25px;color:#215f9e;display:flex}.info-dialog .title mat-icon{margin-right:5px;position:relative;top:2px}.info-dialog .item{margin-top:2px}.info-dialog .item span{color:#999}.top-dialog-button{margin-left:-24px;margin-right:-24px;font-size:.8rem;background-color:#d9deeb;color:#202226;cursor:pointer}.top-dialog-button:hover{background-color:#cfd5e6}.top-dialog-button .top-dialog-button-content{padding:10px 24px}.top-dialog-button .top-dialog-button-margin{height:1px;background-color:#215f9e33;margin:0 12px}.vpn-small-button{cursor:pointer;-webkit-user-select:none;user-select:none}.vpn-small-button:active{transform:scale(.9)}.vpn-dark-box-radius{border-radius:10px}.vpn-table-container{text-align:center}.vpn-table-container .width-limiter{width:inherit;max-width:1250px;display:inline-block;text-align:initial}*,*:before,*:after{box-sizing:border-box}@media(prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(32,34,38,0)}hr{margin:1rem 0;color:inherit;border:0;border-top:var(--bs-border-width) solid;opacity:.25}h6,.h6,h5,.h5,h4,.h4,h3,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color)}h1,.h1{font-size:calc(1.375rem + 1.5vw)}@media(min-width:1200px){h1,.h1{font-size:2.5rem}}h2,.h2{font-size:calc(1.325rem + .9vw)}@media(min-width:1200px){h2,.h2{font-size:2rem}}h3,.h3{font-size:calc(1.3rem + .6vw)}@media(min-width:1200px){h3,.h3{font-size:1.75rem}}h4,.h4{font-size:calc(1.275rem + .3vw)}@media(min-width:1200px){h4,.h4{font-size:1.5rem}}h5,.h5{font-size:1.25rem}h6,.h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small,.small{font-size:.875em}mark,.mark{padding:.1875em;color:var(--bs-highlight-color);background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity, 1));text-decoration:underline}a:hover{--bs-link-color-rgb: var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-secondary-color);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;line-height:inherit;font-size:calc(1.275rem + .3vw)}@media(min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button{cursor:pointer;filter:grayscale(1)}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.list-group{--bs-list-group-color: var(--bs-body-color);--bs-list-group-bg: var(--bs-body-bg);--bs-list-group-border-color: var(--bs-border-color);--bs-list-group-border-width: var(--bs-border-width);--bs-list-group-border-radius: var(--bs-border-radius);--bs-list-group-item-padding-x: 1rem;--bs-list-group-item-padding-y: .5rem;--bs-list-group-action-color: var(--bs-secondary-color);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-tertiary-bg);--bs-list-group-action-active-color: var(--bs-body-color);--bs-list-group-action-active-bg: var(--bs-secondary-bg);--bs-list-group-disabled-color: var(--bs-secondary-color);--bs-list-group-disabled-bg: var(--bs-body-bg);--bs-list-group-active-color: #F8F9F9;--bs-list-group-active-bg: #0d6efd;--bs-list-group-active-border-color: #0d6efd;display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item:before{content:counters(section,".") ". ";counter-increment:section}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1 * var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:not(.active):hover,.list-group-item-action:not(.active):focus{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:not(.active):active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media(min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width:1300px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-green{--bs-list-group-color: var(--bs-green-text-emphasis);--bs-list-group-bg: var(--bs-green-bg-subtle);--bs-list-group-border-color: var(--bs-green-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-green-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-green-border-subtle);--bs-list-group-active-color: var(--bs-green-bg-subtle);--bs-list-group-active-bg: var(--bs-green-text-emphasis);--bs-list-group-active-border-color: var(--bs-green-text-emphasis)}.list-group-item-red{--bs-list-group-color: var(--bs-red-text-emphasis);--bs-list-group-bg: var(--bs-red-bg-subtle);--bs-list-group-border-color: var(--bs-red-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-red-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-red-border-subtle);--bs-list-group-active-color: var(--bs-red-bg-subtle);--bs-list-group-active-bg: var(--bs-red-text-emphasis);--bs-list-group-active-border-color: var(--bs-red-text-emphasis)}.list-group-item-yellow{--bs-list-group-color: var(--bs-yellow-text-emphasis);--bs-list-group-bg: var(--bs-yellow-bg-subtle);--bs-list-group-border-color: var(--bs-yellow-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-yellow-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-yellow-border-subtle);--bs-list-group-active-color: var(--bs-yellow-bg-subtle);--bs-list-group-active-bg: var(--bs-yellow-text-emphasis);--bs-list-group-active-border-color: var(--bs-yellow-text-emphasis)}.list-group-item-translucid-hover{--bs-list-group-color: var(--bs-translucid-hover-text-emphasis);--bs-list-group-bg: var(--bs-translucid-hover-bg-subtle);--bs-list-group-border-color: var(--bs-translucid-hover-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-translucid-hover-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-translucid-hover-border-subtle);--bs-list-group-active-color: var(--bs-translucid-hover-bg-subtle);--bs-list-group-active-bg: var(--bs-translucid-hover-text-emphasis);--bs-list-group-active-border-color: var(--bs-translucid-hover-text-emphasis)}.list-group-item-translucid-hover-hard{--bs-list-group-color: var(--bs-translucid-hover-hard-text-emphasis);--bs-list-group-bg: var(--bs-translucid-hover-hard-bg-subtle);--bs-list-group-border-color: var(--bs-translucid-hover-hard-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-translucid-hover-hard-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-translucid-hover-hard-border-subtle);--bs-list-group-active-color: var(--bs-translucid-hover-hard-bg-subtle);--bs-list-group-active-bg: var(--bs-translucid-hover-hard-text-emphasis);--bs-list-group-active-border-color: var(--bs-translucid-hover-hard-text-emphasis)}.list-group-item-white{--bs-list-group-color: var(--bs-white-text-emphasis);--bs-list-group-bg: var(--bs-white-bg-subtle);--bs-list-group-border-color: var(--bs-white-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-white-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-white-border-subtle);--bs-list-group-active-color: var(--bs-white-bg-subtle);--bs-list-group-active-bg: var(--bs-white-text-emphasis);--bs-list-group-active-border-color: var(--bs-white-text-emphasis)}.list-group-item-light-gray{--bs-list-group-color: var(--bs-light-gray-text-emphasis);--bs-list-group-bg: var(--bs-light-gray-bg-subtle);--bs-list-group-border-color: var(--bs-light-gray-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-light-gray-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-light-gray-border-subtle);--bs-list-group-active-color: var(--bs-light-gray-bg-subtle);--bs-list-group-active-bg: var(--bs-light-gray-text-emphasis);--bs-list-group-active-border-color: var(--bs-light-gray-text-emphasis)}.lead{font-size:1.25rem;font-weight:300}.display-1{font-weight:300;line-height:1.2;font-size:calc(1.625rem + 4.5vw)}@media(min-width:1200px){.display-1{font-size:5rem}}.display-2{font-weight:300;line-height:1.2;font-size:calc(1.575rem + 3.9vw)}@media(min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-weight:300;line-height:1.2;font-size:calc(1.525rem + 3.3vw)}@media(min-width:1200px){.display-3{font-size:4rem}}.display-4{font-weight:300;line-height:1.2;font-size:calc(1.475rem + 2.7vw)}@media(min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-weight:300;line-height:1.2;font-size:calc(1.425rem + 2.1vw)}@media(min-width:1200px){.display-5{font-size:3rem}}.display-6{font-weight:300;line-height:1.2;font-size:calc(1.375rem + 1.5vw)}@media(min-width:1200px){.display-6{font-size:2.5rem}}.list-unstyled,.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer:before{content:"\2014\a0"}/*! - * Bootstrap Grid v5.3.8 (https://getbootstrap.com/) - * Copyright 2011-2025 The Bootstrap Authors - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */.container,.container-fluid,.container-xxl,.container-xl,.container-lg,.container-md,.container-sm{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media(min-width:576px){.container-sm,.container{max-width:540px}}@media(min-width:768px){.container-md,.container-sm,.container{max-width:720px}}@media(min-width:992px){.container-lg,.container-md,.container-sm,.container{max-width:960px}}@media(min-width:1300px){.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1140px}}.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1320px}:root{--bs-breakpoint-xs: 0;--bs-breakpoint-sm: 576px;--bs-breakpoint-md: 768px;--bs-breakpoint-lg: 992px;--bs-breakpoint-xl: 1300px}.row{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{box-sizing:border-box;flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.66666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x: 0}.g-0,.gy-0{--bs-gutter-y: 0}.g-1,.gx-1{--bs-gutter-x: .25rem}.g-1,.gy-1{--bs-gutter-y: .25rem}.g-2,.gx-2{--bs-gutter-x: .5rem}.g-2,.gy-2{--bs-gutter-y: .5rem}.g-3,.gx-3{--bs-gutter-x: 1rem}.g-3,.gy-3{--bs-gutter-y: 1rem}.g-4,.gx-4{--bs-gutter-x: 1.5rem}.g-4,.gy-4{--bs-gutter-y: 1.5rem}.g-5,.gx-5{--bs-gutter-x: 3rem}.g-5,.gy-5{--bs-gutter-y: 3rem}@media(min-width:576px){.col-sm{flex:1 0 0}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.66666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x: 0}.g-sm-0,.gy-sm-0{--bs-gutter-y: 0}.g-sm-1,.gx-sm-1{--bs-gutter-x: .25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y: .25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x: .5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y: .5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x: 1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y: 1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x: 1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y: 1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x: 3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y: 3rem}}@media(min-width:768px){.col-md{flex:1 0 0}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.66666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x: 0}.g-md-0,.gy-md-0{--bs-gutter-y: 0}.g-md-1,.gx-md-1{--bs-gutter-x: .25rem}.g-md-1,.gy-md-1{--bs-gutter-y: .25rem}.g-md-2,.gx-md-2{--bs-gutter-x: .5rem}.g-md-2,.gy-md-2{--bs-gutter-y: .5rem}.g-md-3,.gx-md-3{--bs-gutter-x: 1rem}.g-md-3,.gy-md-3{--bs-gutter-y: 1rem}.g-md-4,.gx-md-4{--bs-gutter-x: 1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y: 1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x: 3rem}.g-md-5,.gy-md-5{--bs-gutter-y: 3rem}}@media(min-width:992px){.col-lg{flex:1 0 0}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.66666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x: 0}.g-lg-0,.gy-lg-0{--bs-gutter-y: 0}.g-lg-1,.gx-lg-1{--bs-gutter-x: .25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y: .25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x: .5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y: .5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x: 1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y: 1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x: 1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y: 1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x: 3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y: 3rem}}@media(min-width:1300px){.col-xl{flex:1 0 0}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.66666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x: 0}.g-xl-0,.gy-xl-0{--bs-gutter-y: 0}.g-xl-1,.gx-xl-1{--bs-gutter-x: .25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y: .25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x: .5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y: .5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x: 1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y: 1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x: 1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y: 1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x: 3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y: 3rem}}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-inline-grid{display:inline-grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}@media(min-width:576px){.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-inline-grid{display:inline-grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}}@media(min-width:768px){.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-inline-grid{display:inline-grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}}@media(min-width:992px){.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-inline-grid{display:inline-grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}}@media(min-width:1300px){.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-inline-grid{display:inline-grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-inline-grid{display:inline-grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}}.navbar{--bs-navbar-padding-x: 0;--bs-navbar-padding-y: .5rem;--bs-navbar-color: rgba(var(--bs-emphasis-color-rgb), .65);--bs-navbar-hover-color: rgba(var(--bs-emphasis-color-rgb), .8);--bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), .3);--bs-navbar-active-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-padding-y: .3125rem;--bs-navbar-brand-margin-end: 1rem;--bs-navbar-brand-font-size: 1.25rem;--bs-navbar-brand-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-hover-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-nav-link-padding-x: .5rem;--bs-navbar-toggler-padding-y: .25rem;--bs-navbar-toggler-padding-x: .75rem;--bs-navbar-toggler-font-size: 1.25rem;--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), .15);--bs-navbar-toggler-border-radius: var(--bs-border-radius);--bs-navbar-toggler-focus-width: .25rem;--bs-navbar-toggler-transition: box-shadow .15s ease-in-out;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-sm,.navbar>.container-md,.navbar>.container-lg,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x: 0;--bs-nav-link-padding-y: .5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-navbar-color);--bs-nav-link-hover-color: var(--bs-navbar-hover-color);--bs-nav-link-disabled-color: var(--bs-navbar-disabled-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:hover,.navbar-text a:focus{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-grow:1;flex-basis:100%;align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@media(prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height, 75vh);overflow-y:auto}@media(min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media(min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media(min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media(min-width:1300px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-bs-theme=dark]{--bs-navbar-color: rgba(248, 249, 249, .55);--bs-navbar-hover-color: rgba(248, 249, 249, .75);--bs-navbar-disabled-color: rgba(248, 249, 249, .25);--bs-navbar-active-color: #F8F9F9;--bs-navbar-brand-color: #F8F9F9;--bs-navbar-brand-hover-color: #F8F9F9;--bs-navbar-toggler-border-color: rgba(248, 249, 249, .1);--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28248, 249, 249, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-bs-theme=dark] .navbar-toggler-icon{--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28248, 249, 249, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}html,body{height:100%;min-height:100%;font-family:Skycoin;margin:0;color:#f8f9f9!important;font-size:1rem;backface-visibility:hidden}button:focus{outline:0}.mat-mdc-button{min-width:40px!important;padding:0 16px!important}.mat-mdc-button .mat-icon{height:auto!important;width:auto!important}.mdc-snackbar__surface{background-color:transparent!important;box-shadow:none!important}.mat-mdc-form-field-infix{display:flex}.mdc-text-field--filled{background-color:transparent!important;padding:0!important}.mdc-text-field--filled .mat-mdc-form-field-focus-overlay{opacity:0!important}.mdc-text-field--filled .mat-mdc-form-field-infix{padding:0!important;min-height:45px!important}.mdc-text-field--filled .mat-mdc-form-field-infix .field-container{width:100%}.mdc-text-field--filled .mat-mdc-form-field-infix .field-container .field-label{margin:0 0 5px;font-size:.7rem;opacity:.55}.mdc-text-field--filled .mat-mdc-form-field-infix .mat-mdc-form-field-input-control{font-family:Skycoin!important;font-size:.875rem!important}.mat-mdc-form-field-bottom-align{margin-bottom:15px}.mat-mdc-form-field-bottom-align:before{display:none!important}.mat-mdc-form-field-error-wrapper{padding:0!important;position:inherit!important;line-height:1.2;margin-top:3px}.mat-mdc-select{display:flex!important;font-family:Skycoin!important;font-size:.875rem!important}.mat-mdc-select .mat-mdc-select-value{line-height:1.5}.mat-mdc-select-value,.mat-mdc-select-min-line,.mat-mdc-select-placeholder,.mat-mdc-select-arrow{color:#ffffffde!important}.cdk-overlay-pane .skynet-select-panel.mdc-menu-surface,.cdk-overlay-pane .skynet-select-panel.mat-mdc-select-panel,.mat-mdc-select-panel.skynet-select-panel{background-color:#1f2533!important;--mat-app-surface: #1f2533;--mdc-theme-surface: #1f2533;--mat-mdc-select-panel-background-color: #1f2533;--mdc-list-list-item-label-text-color: rgba(255, 255, 255, .87);--mdc-list-list-item-hover-label-text-color: #ffffff;--mdc-list-list-item-focus-label-text-color: #ffffff;--mdc-list-list-item-hover-state-layer-color: rgba(255, 255, 255, .08);--mdc-list-list-item-focus-state-layer-color: rgba(255, 255, 255, .12);--mat-option-label-text-color: rgba(255, 255, 255, .87);--mat-option-selected-state-label-text-color: #ffffff}.cdk-overlay-pane .skynet-select-panel.mdc-menu-surface .mat-mdc-option,.cdk-overlay-pane .skynet-select-panel.mdc-menu-surface .mat-mdc-option .mdc-list-item__primary-text,.cdk-overlay-pane .skynet-select-panel.mdc-menu-surface .mdc-list-item__primary-text,.cdk-overlay-pane .skynet-select-panel.mat-mdc-select-panel .mat-mdc-option,.cdk-overlay-pane .skynet-select-panel.mat-mdc-select-panel .mat-mdc-option .mdc-list-item__primary-text,.cdk-overlay-pane .skynet-select-panel.mat-mdc-select-panel .mdc-list-item__primary-text,.mat-mdc-select-panel.skynet-select-panel .mat-mdc-option,.mat-mdc-select-panel.skynet-select-panel .mat-mdc-option .mdc-list-item__primary-text,.mat-mdc-select-panel.skynet-select-panel .mdc-list-item__primary-text{color:#ffffffde!important}.cdk-overlay-pane .skynet-select-panel.mdc-menu-surface .mat-mdc-option:hover:not(.mdc-list-item--disabled),.cdk-overlay-pane .skynet-select-panel.mdc-menu-surface .mat-mdc-option.mat-mdc-option-active,.cdk-overlay-pane .skynet-select-panel.mdc-menu-surface .mat-mdc-option.mdc-list-item--selected,.cdk-overlay-pane .skynet-select-panel.mat-mdc-select-panel .mat-mdc-option:hover:not(.mdc-list-item--disabled),.cdk-overlay-pane .skynet-select-panel.mat-mdc-select-panel .mat-mdc-option.mat-mdc-option-active,.cdk-overlay-pane .skynet-select-panel.mat-mdc-select-panel .mat-mdc-option.mdc-list-item--selected,.mat-mdc-select-panel.skynet-select-panel .mat-mdc-option:hover:not(.mdc-list-item--disabled),.mat-mdc-select-panel.skynet-select-panel .mat-mdc-option.mat-mdc-option-active,.mat-mdc-select-panel.skynet-select-panel .mat-mdc-option.mdc-list-item--selected{background-color:#ffffff14!important;color:#fff!important}.grey-button-background:hover{background-color:#0000000d!important}.flex-1{flex:1}.mat-mdc-snack-bar-container{max-width:90vw!important}.transparent-50{opacity:.5}.flag-container{width:16px;height:11px;display:inline-block;margin-right:5px;background-image:url(/assets/img/flags/unknown.png)}.flag-container div{width:16px;height:11px}.help-icon{opacity:.4;font-size:14px;cursor:default;position:relative;top:1px}.blinking{animation:alert-blinking 1s linear infinite}@keyframes alert-blinking{50%{opacity:.5}}.snackbar-container{padding:0!important;background:transparent!important}.mdc-tooltip__surface{font-size:11px!important;line-height:1.8;padding:7px 14px!important}.mat-mdc-tooltip-panel{pointer-events:none!important}.tooltip-word-break{word-break:break-word}.mat-mdc-button-touch-target{height:100%!important}.mat-mdc-button:not(:disabled){color:#202226}.mat-accent .mdc-button__label{color:#fff!important}html{--mat-badge-text-font: Skycoin;--mat-badge-line-height: 22px;--mat-badge-text-size: 12px;--mat-badge-text-weight: 600;--mat-badge-small-size-text-size: 9px;--mat-badge-small-size-line-height: 16px;--mat-badge-large-size-text-size: 24px;--mat-badge-large-size-line-height: 28px}.mat-h1,.mat-headline-5,.mat-typography .mat-h1,.mat-typography .mat-headline-5,.mat-typography h1{font:400 24px/32px Skycoin;letter-spacing:normal;margin:0 0 16px}.mat-h2,.mat-headline-6,.mat-typography .mat-h2,.mat-typography .mat-headline-6,.mat-typography h2{font:500 20px/32px Skycoin;letter-spacing:.0125em;margin:0 0 16px}.mat-h3,.mat-subtitle-1,.mat-typography .mat-h3,.mat-typography .mat-subtitle-1,.mat-typography h3,.mat-h4,.mat-body-1,.mat-typography .mat-h4,.mat-typography .mat-body-1,.mat-typography h4{font:400 .875rem/1 Skycoin;letter-spacing:normal;margin:0 0 16px}.mat-h5,.mat-typography .mat-h5,.mat-typography h5{font:400 11.62px/20px Skycoin;margin:0 0 12px}.mat-h6,.mat-typography .mat-h6,.mat-typography h6{font:400 9.38px/20px Skycoin;margin:0 0 12px}.mat-body-strong,.mat-subtitle-2,.mat-typography .mat-body-strong,.mat-typography .mat-subtitle-2{font:500 14px/22px Skycoin;letter-spacing:.0071428571em}.mat-body,.mat-body-2,.mat-typography .mat-body,.mat-typography .mat-body-2,.mat-typography{font:400 14px/20px Skycoin;letter-spacing:.0178571429em}.mat-body p,.mat-body-2 p,.mat-typography .mat-body p,.mat-typography .mat-body-2 p,.mat-typography p{margin:0 0 12px}.mat-small,.mat-caption,.mat-typography .mat-small,.mat-typography .mat-caption{font:400 12px/20px Skycoin;letter-spacing:.0333333333em}.mat-headline-1,.mat-typography .mat-headline-1{font:300 96px/96px Skycoin;letter-spacing:-.015625em;margin:0 0 56px}.mat-headline-2,.mat-typography .mat-headline-2{font:300 60px/60px Skycoin;letter-spacing:-.0083333333em;margin:0 0 64px}.mat-headline-3,.mat-typography .mat-headline-3{font:400 48px/50px Skycoin;letter-spacing:normal;margin:0 0 64px}.mat-headline-4,.mat-typography .mat-headline-4{font:400 34px/40px Skycoin;letter-spacing:.0073529412em;margin:0 0 64px}html{--mat-bottom-sheet-container-text-font: Skycoin;--mat-bottom-sheet-container-text-line-height: 20px;--mat-bottom-sheet-container-text-size: 14px;--mat-bottom-sheet-container-text-tracking: .0178571429em;--mat-bottom-sheet-container-text-weight: 400}html{--mat-button-toggle-label-text-font: Skycoin;--mat-button-toggle-label-text-line-height: 1;--mat-button-toggle-label-text-size: .875rem;--mat-button-toggle-label-text-tracking: normal;--mat-button-toggle-label-text-weight: 400;--mat-button-toggle-legacy-label-text-font: Skycoin;--mat-button-toggle-legacy-label-text-line-height: 1;--mat-button-toggle-legacy-label-text-size: .875rem;--mat-button-toggle-legacy-label-text-tracking: normal;--mat-button-toggle-legacy-label-text-weight: 400}html{--mat-datepicker-calendar-text-font: Skycoin;--mat-datepicker-calendar-text-size: 13px;--mat-datepicker-calendar-body-label-text-size: .875rem;--mat-datepicker-calendar-body-label-text-weight: 400;--mat-datepicker-calendar-period-button-text-size: .875rem;--mat-datepicker-calendar-period-button-text-weight: 400;--mat-datepicker-calendar-header-text-size: 11px;--mat-datepicker-calendar-header-text-weight: 400}html{--mat-expansion-header-text-font: Skycoin;--mat-expansion-header-text-size: 14px;--mat-expansion-header-text-weight: 500;--mat-expansion-header-text-line-height: inherit;--mat-expansion-header-text-tracking: inherit;--mat-expansion-container-text-font: Skycoin;--mat-expansion-container-text-line-height: 20px;--mat-expansion-container-text-size: 14px;--mat-expansion-container-text-tracking: .0178571429em;--mat-expansion-container-text-weight: 400}html{--mat-grid-list-tile-header-primary-text-size: 14px;--mat-grid-list-tile-header-secondary-text-size: 12px;--mat-grid-list-tile-footer-primary-text-size: 14px;--mat-grid-list-tile-footer-secondary-text-size: 12px}html{--mat-stepper-container-text-font: Skycoin;--mat-stepper-header-label-text-font: Skycoin;--mat-stepper-header-label-text-size: 14px;--mat-stepper-header-label-text-weight: 400;--mat-stepper-header-error-state-label-text-size: .875rem;--mat-stepper-header-selected-state-label-text-size: .875rem;--mat-stepper-header-selected-state-label-text-weight: 400}html{--mat-toolbar-title-text-font: Skycoin;--mat-toolbar-title-text-line-height: 32px;--mat-toolbar-title-text-size: 20px;--mat-toolbar-title-text-tracking: .0125em;--mat-toolbar-title-text-weight: 500}html{--mat-tree-node-text-font: Skycoin;--mat-tree-node-text-size: 14px;--mat-tree-node-text-weight: 400}html{--mat-option-label-text-font: Skycoin;--mat-option-label-text-line-height: 1;--mat-option-label-text-size: .875rem;--mat-option-label-text-tracking: normal;--mat-option-label-text-weight: 400}html{--mat-optgroup-label-text-font: Skycoin;--mat-optgroup-label-text-line-height: 1;--mat-optgroup-label-text-size: .875rem;--mat-optgroup-label-text-tracking: normal;--mat-optgroup-label-text-weight: 400}html{--mat-card-title-text-font: Skycoin;--mat-card-title-text-line-height: 32px;--mat-card-title-text-size: 20px;--mat-card-title-text-tracking: .0125em;--mat-card-title-text-weight: 500;--mat-card-subtitle-text-font: Skycoin;--mat-card-subtitle-text-line-height: 22px;--mat-card-subtitle-text-size: 14px;--mat-card-subtitle-text-tracking: .0071428571em;--mat-card-subtitle-text-weight: 500}html{--mat-tooltip-supporting-text-font: Skycoin;--mat-tooltip-supporting-text-size: 12px;--mat-tooltip-supporting-text-weight: 400;--mat-tooltip-supporting-text-tracking: .0333333333em}html{--mat-form-field-container-text-font: Skycoin;--mat-form-field-container-text-line-height: 1;--mat-form-field-container-text-size: .875rem;--mat-form-field-container-text-tracking: normal;--mat-form-field-container-text-weight: 400;--mat-form-field-outlined-label-text-populated-size: .875rem;--mat-form-field-subscript-text-font: Skycoin;--mat-form-field-subscript-text-line-height: 20px;--mat-form-field-subscript-text-size: 12px;--mat-form-field-subscript-text-tracking: .0333333333em;--mat-form-field-subscript-text-weight: 400;--mat-form-field-filled-label-text-font: Skycoin;--mat-form-field-filled-label-text-size: .875rem;--mat-form-field-filled-label-text-tracking: normal;--mat-form-field-filled-label-text-weight: 400;--mat-form-field-outlined-label-text-font: Skycoin;--mat-form-field-outlined-label-text-size: .875rem;--mat-form-field-outlined-label-text-tracking: normal;--mat-form-field-outlined-label-text-weight: 400}html{--mat-select-trigger-text-font: Skycoin;--mat-select-trigger-text-line-height: 1;--mat-select-trigger-text-size: .875rem;--mat-select-trigger-text-tracking: normal;--mat-select-trigger-text-weight: 400}html{--mat-dialog-subhead-font: Skycoin;--mat-dialog-subhead-line-height: 32px;--mat-dialog-subhead-size: 20px;--mat-dialog-subhead-weight: 500;--mat-dialog-subhead-tracking: .0125em;--mat-dialog-supporting-text-font: Skycoin;--mat-dialog-supporting-text-line-height: 1;--mat-dialog-supporting-text-size: .875rem;--mat-dialog-supporting-text-weight: 400;--mat-dialog-supporting-text-tracking: normal}.mat-mdc-standard-chip{--mat-chip-label-text-font: Skycoin;--mat-chip-label-text-line-height: 20px;--mat-chip-label-text-size: 14px;--mat-chip-label-text-tracking: .0178571429em;--mat-chip-label-text-weight: 400}html,html .mat-mdc-slide-toggle{--mat-slide-toggle-label-text-font: Skycoin;--mat-slide-toggle-label-text-line-height: 20px;--mat-slide-toggle-label-text-size: 14px;--mat-slide-toggle-label-text-tracking: .0178571429em;--mat-slide-toggle-label-text-weight: 400}html{--mat-radio-label-text-font: Skycoin;--mat-radio-label-text-line-height: 20px;--mat-radio-label-text-size: 14px;--mat-radio-label-text-tracking: .0178571429em;--mat-radio-label-text-weight: 400}html{--mat-slider-label-label-text-font: Skycoin;--mat-slider-label-label-text-size: 14px;--mat-slider-label-label-text-line-height: 22px;--mat-slider-label-label-text-tracking: .0071428571em;--mat-slider-label-label-text-weight: 500}html{--mat-menu-item-label-text-font: Skycoin;--mat-menu-item-label-text-size: .875rem;--mat-menu-item-label-text-tracking: normal;--mat-menu-item-label-text-line-height: 1;--mat-menu-item-label-text-weight: 400}html{--mat-list-list-item-label-text-font: Skycoin;--mat-list-list-item-label-text-line-height: 1;--mat-list-list-item-label-text-size: .875rem;--mat-list-list-item-label-text-tracking: normal;--mat-list-list-item-label-text-weight: 400;--mat-list-list-item-supporting-text-font: Skycoin;--mat-list-list-item-supporting-text-line-height: 20px;--mat-list-list-item-supporting-text-size: 14px;--mat-list-list-item-supporting-text-tracking: .0178571429em;--mat-list-list-item-supporting-text-weight: 400;--mat-list-list-item-trailing-supporting-text-font: Skycoin;--mat-list-list-item-trailing-supporting-text-line-height: 20px;--mat-list-list-item-trailing-supporting-text-size: 12px;--mat-list-list-item-trailing-supporting-text-tracking: .0333333333em;--mat-list-list-item-trailing-supporting-text-weight: 400}.mdc-list-group__subheader{font:400 .875rem/1 Skycoin;letter-spacing:normal}html{--mat-paginator-container-text-font: Skycoin;--mat-paginator-container-text-line-height: 20px;--mat-paginator-container-text-size: 12px;--mat-paginator-container-text-tracking: .0333333333em;--mat-paginator-container-text-weight: 400;--mat-paginator-select-trigger-text-size: 12px}.mat-mdc-tab-header{--mat-tab-label-text-font: Skycoin;--mat-tab-label-text-size: .875rem;--mat-tab-label-text-tracking: normal;--mat-tab-label-text-line-height: .875rem;--mat-tab-label-text-weight: 400}html{--mat-checkbox-label-text-font: Skycoin;--mat-checkbox-label-text-line-height: 20px;--mat-checkbox-label-text-size: 14px;--mat-checkbox-label-text-tracking: .0178571429em;--mat-checkbox-label-text-weight: 400}html{--mat-button-filled-label-text-font: Skycoin;--mat-button-filled-label-text-size: .875rem;--mat-button-filled-label-text-tracking: normal;--mat-button-filled-label-text-transform: none;--mat-button-filled-label-text-weight: 400;--mat-button-outlined-label-text-font: Skycoin;--mat-button-outlined-label-text-size: .875rem;--mat-button-outlined-label-text-tracking: normal;--mat-button-outlined-label-text-transform: none;--mat-button-outlined-label-text-weight: 400;--mat-button-protected-label-text-font: Skycoin;--mat-button-protected-label-text-size: .875rem;--mat-button-protected-label-text-tracking: normal;--mat-button-protected-label-text-transform: none;--mat-button-protected-label-text-weight: 400;--mat-button-text-label-text-font: Skycoin;--mat-button-text-label-text-size: .875rem;--mat-button-text-label-text-tracking: normal;--mat-button-text-label-text-transform: none;--mat-button-text-label-text-weight: 400;--mat-button-tonal-label-text-font: Skycoin;--mat-button-tonal-label-text-size: .875rem;--mat-button-tonal-label-text-tracking: normal;--mat-button-tonal-label-text-transform: none;--mat-button-tonal-label-text-weight: 400}html{--mat-fab-extended-label-text-font: Skycoin;--mat-fab-extended-label-text-size: .875rem;--mat-fab-extended-label-text-tracking: normal;--mat-fab-extended-label-text-weight: 400}html{--mat-snack-bar-supporting-text-font: Skycoin;--mat-snack-bar-supporting-text-line-height: 20px;--mat-snack-bar-supporting-text-size: 14px;--mat-snack-bar-supporting-text-weight: 400}html{--mat-table-header-headline-font: Skycoin;--mat-table-header-headline-line-height: 22px;--mat-table-header-headline-size: 14px;--mat-table-header-headline-weight: 500;--mat-table-header-headline-tracking: .0071428571em;--mat-table-row-item-label-text-font: Skycoin;--mat-table-row-item-label-text-line-height: 20px;--mat-table-row-item-label-text-size: 14px;--mat-table-row-item-label-text-weight: 400;--mat-table-row-item-label-text-tracking: .0178571429em;--mat-table-footer-supporting-text-font: Skycoin;--mat-table-footer-supporting-text-line-height: 20px;--mat-table-footer-supporting-text-size: 14px;--mat-table-footer-supporting-text-weight: 400;--mat-table-footer-supporting-text-tracking: .0178571429em}.mat-elevation-z0,.mat-mdc-elevation-specific.mat-elevation-z0{box-shadow:var(--mat-app-elevation-shadow-level-0, 0px 0px 0px 0px --mat-sys-shadow, 0px 0px 0px 0px --mat-sys-shadow, 0px 0px 0px 0px --mat-sys-shadow)}.mat-elevation-z1,.mat-mdc-elevation-specific.mat-elevation-z1{box-shadow:var(--mat-app-elevation-shadow-level-1, 0px 2px 1px -1px --mat-sys-shadow, 0px 1px 1px 0px --mat-sys-shadow, 0px 1px 3px 0px --mat-sys-shadow)}.mat-elevation-z2,.mat-mdc-elevation-specific.mat-elevation-z2{box-shadow:var(--mat-app-elevation-shadow-level-2, 0px 3px 1px -2px --mat-sys-shadow, 0px 2px 2px 0px --mat-sys-shadow, 0px 1px 5px 0px --mat-sys-shadow)}.mat-elevation-z3,.mat-mdc-elevation-specific.mat-elevation-z3{box-shadow:var(--mat-app-elevation-shadow-level-3, 0px 3px 3px -2px --mat-sys-shadow, 0px 3px 4px 0px --mat-sys-shadow, 0px 1px 8px 0px --mat-sys-shadow)}.mat-elevation-z4,.mat-mdc-elevation-specific.mat-elevation-z4{box-shadow:var(--mat-app-elevation-shadow-level-4, 0px 2px 4px -1px --mat-sys-shadow, 0px 4px 5px 0px --mat-sys-shadow, 0px 1px 10px 0px --mat-sys-shadow)}.mat-elevation-z5,.mat-mdc-elevation-specific.mat-elevation-z5{box-shadow:var(--mat-app-elevation-shadow-level-5, 0px 3px 5px -1px --mat-sys-shadow, 0px 5px 8px 0px --mat-sys-shadow, 0px 1px 14px 0px --mat-sys-shadow)}.mat-elevation-z6,.mat-mdc-elevation-specific.mat-elevation-z6{box-shadow:var(--mat-app-elevation-shadow-level-6, 0px 3px 5px -1px --mat-sys-shadow, 0px 6px 10px 0px --mat-sys-shadow, 0px 1px 18px 0px --mat-sys-shadow)}.mat-elevation-z7,.mat-mdc-elevation-specific.mat-elevation-z7{box-shadow:var(--mat-app-elevation-shadow-level-7, 0px 4px 5px -2px --mat-sys-shadow, 0px 7px 10px 1px --mat-sys-shadow, 0px 2px 16px 1px --mat-sys-shadow)}.mat-elevation-z8,.mat-mdc-elevation-specific.mat-elevation-z8{box-shadow:var(--mat-app-elevation-shadow-level-8, 0px 5px 5px -3px --mat-sys-shadow, 0px 8px 10px 1px --mat-sys-shadow, 0px 3px 14px 2px --mat-sys-shadow)}.mat-elevation-z9,.mat-mdc-elevation-specific.mat-elevation-z9{box-shadow:var(--mat-app-elevation-shadow-level-9, 0px 5px 6px -3px --mat-sys-shadow, 0px 9px 12px 1px --mat-sys-shadow, 0px 3px 16px 2px --mat-sys-shadow)}.mat-elevation-z10,.mat-mdc-elevation-specific.mat-elevation-z10{box-shadow:var(--mat-app-elevation-shadow-level-10, 0px 6px 6px -3px --mat-sys-shadow, 0px 10px 14px 1px --mat-sys-shadow, 0px 4px 18px 3px --mat-sys-shadow)}.mat-elevation-z11,.mat-mdc-elevation-specific.mat-elevation-z11{box-shadow:var(--mat-app-elevation-shadow-level-11, 0px 6px 7px -4px --mat-sys-shadow, 0px 11px 15px 1px --mat-sys-shadow, 0px 4px 20px 3px --mat-sys-shadow)}.mat-elevation-z12,.mat-mdc-elevation-specific.mat-elevation-z12{box-shadow:var(--mat-app-elevation-shadow-level-12, 0px 7px 8px -4px --mat-sys-shadow, 0px 12px 17px 2px --mat-sys-shadow, 0px 5px 22px 4px --mat-sys-shadow)}.mat-elevation-z13,.mat-mdc-elevation-specific.mat-elevation-z13{box-shadow:var(--mat-app-elevation-shadow-level-13, 0px 7px 8px -4px --mat-sys-shadow, 0px 13px 19px 2px --mat-sys-shadow, 0px 5px 24px 4px --mat-sys-shadow)}.mat-elevation-z14,.mat-mdc-elevation-specific.mat-elevation-z14{box-shadow:var(--mat-app-elevation-shadow-level-14, 0px 7px 9px -4px --mat-sys-shadow, 0px 14px 21px 2px --mat-sys-shadow, 0px 5px 26px 4px --mat-sys-shadow)}.mat-elevation-z15,.mat-mdc-elevation-specific.mat-elevation-z15{box-shadow:var(--mat-app-elevation-shadow-level-15, 0px 8px 9px -5px --mat-sys-shadow, 0px 15px 22px 2px --mat-sys-shadow, 0px 6px 28px 5px --mat-sys-shadow)}.mat-elevation-z16,.mat-mdc-elevation-specific.mat-elevation-z16{box-shadow:var(--mat-app-elevation-shadow-level-16, 0px 8px 10px -5px --mat-sys-shadow, 0px 16px 24px 2px --mat-sys-shadow, 0px 6px 30px 5px --mat-sys-shadow)}.mat-elevation-z17,.mat-mdc-elevation-specific.mat-elevation-z17{box-shadow:var(--mat-app-elevation-shadow-level-17, 0px 8px 11px -5px --mat-sys-shadow, 0px 17px 26px 2px --mat-sys-shadow, 0px 6px 32px 5px --mat-sys-shadow)}.mat-elevation-z18,.mat-mdc-elevation-specific.mat-elevation-z18{box-shadow:var(--mat-app-elevation-shadow-level-18, 0px 9px 11px -5px --mat-sys-shadow, 0px 18px 28px 2px --mat-sys-shadow, 0px 7px 34px 6px --mat-sys-shadow)}.mat-elevation-z19,.mat-mdc-elevation-specific.mat-elevation-z19{box-shadow:var(--mat-app-elevation-shadow-level-19, 0px 9px 12px -6px --mat-sys-shadow, 0px 19px 29px 2px --mat-sys-shadow, 0px 7px 36px 6px --mat-sys-shadow)}.mat-elevation-z20,.mat-mdc-elevation-specific.mat-elevation-z20{box-shadow:var(--mat-app-elevation-shadow-level-20, 0px 10px 13px -6px --mat-sys-shadow, 0px 20px 31px 3px --mat-sys-shadow, 0px 8px 38px 7px --mat-sys-shadow)}.mat-elevation-z21,.mat-mdc-elevation-specific.mat-elevation-z21{box-shadow:var(--mat-app-elevation-shadow-level-21, 0px 10px 13px -6px --mat-sys-shadow, 0px 21px 33px 3px --mat-sys-shadow, 0px 8px 40px 7px --mat-sys-shadow)}.mat-elevation-z22,.mat-mdc-elevation-specific.mat-elevation-z22{box-shadow:var(--mat-app-elevation-shadow-level-22, 0px 10px 14px -6px --mat-sys-shadow, 0px 22px 35px 3px --mat-sys-shadow, 0px 8px 42px 7px --mat-sys-shadow)}.mat-elevation-z23,.mat-mdc-elevation-specific.mat-elevation-z23{box-shadow:var(--mat-app-elevation-shadow-level-23, 0px 11px 14px -7px --mat-sys-shadow, 0px 23px 36px 3px --mat-sys-shadow, 0px 9px 44px 8px --mat-sys-shadow)}.mat-elevation-z24,.mat-mdc-elevation-specific.mat-elevation-z24{box-shadow:var(--mat-app-elevation-shadow-level-24, 0px 11px 15px -7px --mat-sys-shadow, 0px 24px 38px 3px --mat-sys-shadow, 0px 9px 46px 8px --mat-sys-shadow)}html{--mat-sys-on-surface: initial}.mat-app-background{background-color:var(--mat-app-background-color, var(--mat-sys-background, transparent));color:var(--mat-app-text-color, var(--mat-sys-on-background, inherit))}html{--mat-app-background-color: #fafafa;--mat-app-text-color: rgba(0, 0, 0, .87);--mat-app-elevation-shadow-level-0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-2: 0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-3: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-4: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-5: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 5px 8px 0px rgba(0, 0, 0, .14), 0px 1px 14px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-6: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-7: 0px 4px 5px -2px rgba(0, 0, 0, .2), 0px 7px 10px 1px rgba(0, 0, 0, .14), 0px 2px 16px 1px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-8: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-9: 0px 5px 6px -3px rgba(0, 0, 0, .2), 0px 9px 12px 1px rgba(0, 0, 0, .14), 0px 3px 16px 2px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-10: 0px 6px 6px -3px rgba(0, 0, 0, .2), 0px 10px 14px 1px rgba(0, 0, 0, .14), 0px 4px 18px 3px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-11: 0px 6px 7px -4px rgba(0, 0, 0, .2), 0px 11px 15px 1px rgba(0, 0, 0, .14), 0px 4px 20px 3px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-12: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-13: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 13px 19px 2px rgba(0, 0, 0, .14), 0px 5px 24px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-14: 0px 7px 9px -4px rgba(0, 0, 0, .2), 0px 14px 21px 2px rgba(0, 0, 0, .14), 0px 5px 26px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-15: 0px 8px 9px -5px rgba(0, 0, 0, .2), 0px 15px 22px 2px rgba(0, 0, 0, .14), 0px 6px 28px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-16: 0px 8px 10px -5px rgba(0, 0, 0, .2), 0px 16px 24px 2px rgba(0, 0, 0, .14), 0px 6px 30px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-17: 0px 8px 11px -5px rgba(0, 0, 0, .2), 0px 17px 26px 2px rgba(0, 0, 0, .14), 0px 6px 32px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-18: 0px 9px 11px -5px rgba(0, 0, 0, .2), 0px 18px 28px 2px rgba(0, 0, 0, .14), 0px 7px 34px 6px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-19: 0px 9px 12px -6px rgba(0, 0, 0, .2), 0px 19px 29px 2px rgba(0, 0, 0, .14), 0px 7px 36px 6px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-20: 0px 10px 13px -6px rgba(0, 0, 0, .2), 0px 20px 31px 3px rgba(0, 0, 0, .14), 0px 8px 38px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-21: 0px 10px 13px -6px rgba(0, 0, 0, .2), 0px 21px 33px 3px rgba(0, 0, 0, .14), 0px 8px 40px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-22: 0px 10px 14px -6px rgba(0, 0, 0, .2), 0px 22px 35px 3px rgba(0, 0, 0, .14), 0px 8px 42px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-23: 0px 11px 14px -7px rgba(0, 0, 0, .2), 0px 23px 36px 3px rgba(0, 0, 0, .14), 0px 9px 44px 8px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-24: 0px 11px 15px -7px rgba(0, 0, 0, .2), 0px 24px 38px 3px rgba(0, 0, 0, .14), 0px 9px 46px 8px rgba(0, 0, 0, .12)}html{--mat-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent)}html{--mat-option-selected-state-label-text-color: #215f9e;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-option-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-option-selected-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent)}.mat-accent{--mat-option-selected-state-label-text-color: #a7a7a7;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-option-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-option-selected-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent)}.mat-warn{--mat-option-selected-state-label-text-color: #f44336;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-option-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-option-selected-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent)}html{--mat-optgroup-label-text-color: rgba(0, 0, 0, .87)}html{--mat-pseudo-checkbox-full-selected-icon-color: #a7a7a7;--mat-pseudo-checkbox-full-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-unselected-icon-color: rgba(0, 0, 0, .54);--mat-pseudo-checkbox-full-disabled-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-full-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-minimal-selected-checkmark-color: #a7a7a7;--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}.mat-primary{--mat-pseudo-checkbox-full-selected-icon-color: #215f9e;--mat-pseudo-checkbox-full-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-unselected-icon-color: rgba(0, 0, 0, .54);--mat-pseudo-checkbox-full-disabled-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-full-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-minimal-selected-checkmark-color: #215f9e;--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}.mat-accent{--mat-pseudo-checkbox-full-selected-icon-color: #a7a7a7;--mat-pseudo-checkbox-full-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-unselected-icon-color: rgba(0, 0, 0, .54);--mat-pseudo-checkbox-full-disabled-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-full-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-minimal-selected-checkmark-color: #a7a7a7;--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}.mat-warn{--mat-pseudo-checkbox-full-selected-icon-color: #f44336;--mat-pseudo-checkbox-full-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-unselected-icon-color: rgba(0, 0, 0, .54);--mat-pseudo-checkbox-full-disabled-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-full-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-minimal-selected-checkmark-color: #f44336;--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}html{--mat-card-elevated-container-shape: 4px;--mat-card-outlined-container-shape: 4px;--mat-card-filled-container-shape: 4px;--mat-card-outlined-outline-width: 1px}html{--mat-card-elevated-container-color: white;--mat-card-elevated-container-elevation: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-card-outlined-container-color: white;--mat-card-outlined-container-elevation: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-card-outlined-outline-color: rgba(0, 0, 0, .12);--mat-card-subtitle-text-color: rgba(0, 0, 0, .54);--mat-card-filled-container-color: white;--mat-card-filled-container-elevation: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12)}html{--mat-progress-bar-active-indicator-height: 4px;--mat-progress-bar-track-height: 4px;--mat-progress-bar-track-shape: 0}.mat-mdc-progress-bar{--mat-progress-bar-active-indicator-color: #215f9e;--mat-progress-bar-track-color: rgba(33, 95, 158, .25)}.mat-mdc-progress-bar.mat-accent{--mat-progress-bar-active-indicator-color: #a7a7a7;--mat-progress-bar-track-color: rgba(167, 167, 167, .25)}.mat-mdc-progress-bar.mat-warn{--mat-progress-bar-active-indicator-color: #f44336;--mat-progress-bar-track-color: rgba(244, 67, 54, .25)}html{--mat-tooltip-container-shape: 4px;--mat-tooltip-supporting-text-line-height: 16px}html{--mat-tooltip-container-color: #424242;--mat-tooltip-supporting-text-color: white}html{--mat-form-field-filled-active-indicator-height: 1px;--mat-form-field-filled-focus-active-indicator-height: 2px;--mat-form-field-filled-container-shape: 4px;--mat-form-field-outlined-outline-width: 1px;--mat-form-field-outlined-focus-outline-width: 2px;--mat-form-field-outlined-container-shape: 4px}html{--mat-form-field-focus-select-arrow-color: color-mix(in srgb, #215f9e 87%, transparent);--mat-form-field-filled-caret-color: #215f9e;--mat-form-field-filled-focus-active-indicator-color: #215f9e;--mat-form-field-filled-focus-label-text-color: color-mix(in srgb, #215f9e 87%, transparent);--mat-form-field-outlined-caret-color: #215f9e;--mat-form-field-outlined-focus-outline-color: #215f9e;--mat-form-field-outlined-focus-label-text-color: color-mix(in srgb, #215f9e 87%, transparent);--mat-form-field-disabled-input-text-placeholder-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-state-layer-color: rgba(0, 0, 0, .87);--mat-form-field-error-text-color: #f44336;--mat-form-field-select-option-text-color: inherit;--mat-form-field-select-disabled-option-text-color: GrayText;--mat-form-field-leading-icon-color: unset;--mat-form-field-disabled-leading-icon-color: unset;--mat-form-field-trailing-icon-color: unset;--mat-form-field-disabled-trailing-icon-color: unset;--mat-form-field-error-focus-trailing-icon-color: unset;--mat-form-field-error-hover-trailing-icon-color: unset;--mat-form-field-error-trailing-icon-color: unset;--mat-form-field-enabled-select-arrow-color: rgba(0, 0, 0, .54);--mat-form-field-disabled-select-arrow-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-hover-state-layer-opacity: .04;--mat-form-field-focus-state-layer-opacity: .12;--mat-form-field-filled-container-color: #f6f6f6;--mat-form-field-filled-disabled-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-form-field-filled-label-text-color: rgba(0, 0, 0, .54);--mat-form-field-filled-hover-label-text-color: rgba(0, 0, 0, .54);--mat-form-field-filled-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-filled-input-text-color: rgba(0, 0, 0, .87);--mat-form-field-filled-disabled-input-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-filled-input-text-placeholder-color: rgba(0, 0, 0, .54);--mat-form-field-filled-error-hover-label-text-color: #f44336;--mat-form-field-filled-error-focus-label-text-color: #f44336;--mat-form-field-filled-error-label-text-color: #f44336;--mat-form-field-filled-error-caret-color: #f44336;--mat-form-field-filled-active-indicator-color: rgba(0, 0, 0, .54);--mat-form-field-filled-disabled-active-indicator-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-form-field-filled-hover-active-indicator-color: rgba(0, 0, 0, .87);--mat-form-field-filled-error-active-indicator-color: #f44336;--mat-form-field-filled-error-focus-active-indicator-color: #f44336;--mat-form-field-filled-error-hover-active-indicator-color: #f44336;--mat-form-field-outlined-label-text-color: rgba(0, 0, 0, .54);--mat-form-field-outlined-hover-label-text-color: rgba(0, 0, 0, .87);--mat-form-field-outlined-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-outlined-input-text-color: rgba(0, 0, 0, .87);--mat-form-field-outlined-disabled-input-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-outlined-input-text-placeholder-color: rgba(0, 0, 0, .54);--mat-form-field-outlined-error-caret-color: #f44336;--mat-form-field-outlined-error-focus-label-text-color: #f44336;--mat-form-field-outlined-error-label-text-color: #f44336;--mat-form-field-outlined-error-hover-label-text-color: #f44336;--mat-form-field-outlined-outline-color: rgba(0, 0, 0, .38);--mat-form-field-outlined-disabled-outline-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-form-field-outlined-hover-outline-color: rgba(0, 0, 0, .87);--mat-form-field-outlined-error-focus-outline-color: #f44336;--mat-form-field-outlined-error-hover-outline-color: #f44336;--mat-form-field-outlined-error-outline-color: #f44336}.mat-mdc-form-field.mat-accent{--mat-form-field-focus-select-arrow-color: color-mix(in srgb, #a7a7a7 87%, transparent);--mat-form-field-filled-caret-color: #a7a7a7;--mat-form-field-filled-focus-active-indicator-color: #a7a7a7;--mat-form-field-filled-focus-label-text-color: color-mix(in srgb, #a7a7a7 87%, transparent);--mat-form-field-outlined-caret-color: #a7a7a7;--mat-form-field-outlined-focus-outline-color: #a7a7a7;--mat-form-field-outlined-focus-label-text-color: color-mix(in srgb, #a7a7a7 87%, transparent)}.mat-mdc-form-field.mat-warn{--mat-form-field-focus-select-arrow-color: color-mix(in srgb, #f44336 87%, transparent);--mat-form-field-filled-caret-color: #f44336;--mat-form-field-filled-focus-active-indicator-color: #f44336;--mat-form-field-filled-focus-label-text-color: color-mix(in srgb, #f44336 87%, transparent);--mat-form-field-outlined-caret-color: #f44336;--mat-form-field-outlined-focus-outline-color: #f44336;--mat-form-field-outlined-focus-label-text-color: color-mix(in srgb, #f44336 87%, transparent)}html{--mat-form-field-container-height: 56px;--mat-form-field-filled-label-display: block;--mat-form-field-container-vertical-padding: 16px;--mat-form-field-filled-with-label-container-padding-top: 24px;--mat-form-field-filled-with-label-container-padding-bottom: 8px}html{--mat-select-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-placeholder-text-color: rgba(0, 0, 0, .54);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-focused-arrow-color: #215f9e;--mat-select-invalid-arrow-color: #f44336}.mat-mdc-form-field.mat-accent{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-placeholder-text-color: rgba(0, 0, 0, .54);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-focused-arrow-color: #a7a7a7;--mat-select-invalid-arrow-color: #f44336}.mat-mdc-form-field.mat-warn{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-placeholder-text-color: rgba(0, 0, 0, .54);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-focused-arrow-color: #f44336;--mat-select-invalid-arrow-color: #f44336}html{--mat-select-arrow-transform: translateY(-8px)}html{--mat-autocomplete-container-shape: 4px;--mat-autocomplete-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-autocomplete-background-color: white}html{--mat-dialog-container-shape: 4px;--mat-dialog-container-elevation-shadow: 0px 11px 15px -7px rgba(0, 0, 0, .2), 0px 24px 38px 3px rgba(0, 0, 0, .14), 0px 9px 46px 8px rgba(0, 0, 0, .12);--mat-dialog-container-max-width: 80vw;--mat-dialog-container-small-max-width: 80vw;--mat-dialog-container-min-width: 0;--mat-dialog-actions-alignment: start;--mat-dialog-actions-padding: 8px;--mat-dialog-content-padding: 20px 24px;--mat-dialog-with-actions-content-padding: 20px 24px;--mat-dialog-headline-padding: 0 24px 9px}html{--mat-dialog-container-color: white;--mat-dialog-subhead-color: rgba(0, 0, 0, .87);--mat-dialog-supporting-text-color: rgba(0, 0, 0, .54)}.mat-mdc-standard-chip{--mat-chip-container-shape-radius: 16px;--mat-chip-disabled-container-opacity: .4;--mat-chip-disabled-outline-color: transparent;--mat-chip-flat-selected-outline-width: 0;--mat-chip-focus-outline-color: transparent;--mat-chip-hover-state-layer-opacity: .04;--mat-chip-outline-color: transparent;--mat-chip-outline-width: 0;--mat-chip-selected-hover-state-layer-opacity: .04;--mat-chip-selected-trailing-action-state-layer-color: transparent;--mat-chip-trailing-action-focus-opacity: 1;--mat-chip-trailing-action-focus-state-layer-opacity: 0;--mat-chip-trailing-action-hover-state-layer-opacity: 0;--mat-chip-trailing-action-opacity: .54;--mat-chip-trailing-action-state-layer-color: transparent;--mat-chip-with-avatar-avatar-shape-radius: 14px;--mat-chip-with-avatar-avatar-size: 28px;--mat-chip-with-avatar-disabled-avatar-opacity: 1;--mat-chip-with-icon-disabled-icon-opacity: 1;--mat-chip-with-icon-icon-size: 18px;--mat-chip-with-trailing-icon-disabled-trailing-icon-opacity: 1}.mat-mdc-standard-chip{--mat-chip-disabled-label-text-color: rgba(0, 0, 0, .87);--mat-chip-elevated-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-chip-elevated-disabled-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-chip-elevated-selected-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-chip-flat-disabled-selected-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-chip-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-focus-state-layer-opacity: .12;--mat-chip-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-label-text-color: rgba(0, 0, 0, .87);--mat-chip-selected-disabled-trailing-icon-color: rgba(0, 0, 0, .87);--mat-chip-selected-focus-state-layer-color: .12;--mat-chip-selected-focus-state-layer-opacity: .12;--mat-chip-selected-hover-state-layer-color: .04;--mat-chip-selected-label-text-color: rgba(0, 0, 0, .87);--mat-chip-selected-trailing-icon-color: rgba(0, 0, 0, .87);--mat-chip-with-icon-disabled-icon-color: rgba(0, 0, 0, .87);--mat-chip-with-icon-icon-color: rgba(0, 0, 0, .87);--mat-chip-with-icon-selected-icon-color: rgba(0, 0, 0, .87);--mat-chip-with-trailing-icon-disabled-trailing-icon-color: rgba(0, 0, 0, .87);--mat-chip-with-trailing-icon-trailing-icon-color: rgba(0, 0, 0, .87)}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-primary,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-primary{--mat-chip-disabled-label-text-color: #F8F9F9;--mat-chip-elevated-container-color: #215f9e;--mat-chip-elevated-disabled-container-color: #215f9e;--mat-chip-elevated-selected-container-color: #215f9e;--mat-chip-flat-disabled-selected-container-color: #215f9e;--mat-chip-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-focus-state-layer-opacity: .12;--mat-chip-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-label-text-color: #F8F9F9;--mat-chip-selected-disabled-trailing-icon-color: #F8F9F9;--mat-chip-selected-focus-state-layer-color: .12;--mat-chip-selected-focus-state-layer-opacity: .12;--mat-chip-selected-hover-state-layer-color: .04;--mat-chip-selected-label-text-color: #F8F9F9;--mat-chip-selected-trailing-icon-color: #F8F9F9;--mat-chip-with-icon-disabled-icon-color: #F8F9F9;--mat-chip-with-icon-icon-color: #F8F9F9;--mat-chip-with-icon-selected-icon-color: #F8F9F9;--mat-chip-with-trailing-icon-disabled-trailing-icon-color: #F8F9F9;--mat-chip-with-trailing-icon-trailing-icon-color: #F8F9F9}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-accent,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-accent{--mat-chip-disabled-label-text-color: #F8F9F9;--mat-chip-elevated-container-color: #a7a7a7;--mat-chip-elevated-disabled-container-color: #a7a7a7;--mat-chip-elevated-selected-container-color: #a7a7a7;--mat-chip-flat-disabled-selected-container-color: #a7a7a7;--mat-chip-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-focus-state-layer-opacity: .12;--mat-chip-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-label-text-color: #F8F9F9;--mat-chip-selected-disabled-trailing-icon-color: #F8F9F9;--mat-chip-selected-focus-state-layer-color: .12;--mat-chip-selected-focus-state-layer-opacity: .12;--mat-chip-selected-hover-state-layer-color: .04;--mat-chip-selected-label-text-color: #F8F9F9;--mat-chip-selected-trailing-icon-color: #F8F9F9;--mat-chip-with-icon-disabled-icon-color: #F8F9F9;--mat-chip-with-icon-icon-color: #F8F9F9;--mat-chip-with-icon-selected-icon-color: #F8F9F9;--mat-chip-with-trailing-icon-disabled-trailing-icon-color: #F8F9F9;--mat-chip-with-trailing-icon-trailing-icon-color: #F8F9F9}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-warn,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-warn{--mat-chip-disabled-label-text-color: white;--mat-chip-elevated-container-color: #f44336;--mat-chip-elevated-disabled-container-color: #f44336;--mat-chip-elevated-selected-container-color: #f44336;--mat-chip-flat-disabled-selected-container-color: #f44336;--mat-chip-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-focus-state-layer-opacity: .12;--mat-chip-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-label-text-color: white;--mat-chip-selected-disabled-trailing-icon-color: white;--mat-chip-selected-focus-state-layer-color: .12;--mat-chip-selected-focus-state-layer-opacity: .12;--mat-chip-selected-hover-state-layer-color: .04;--mat-chip-selected-label-text-color: white;--mat-chip-selected-trailing-icon-color: white;--mat-chip-with-icon-disabled-icon-color: white;--mat-chip-with-icon-icon-color: white;--mat-chip-with-icon-selected-icon-color: white;--mat-chip-with-trailing-icon-disabled-trailing-icon-color: white;--mat-chip-with-trailing-icon-trailing-icon-color: white}.mat-mdc-chip.mat-mdc-standard-chip{--mat-chip-container-height: 32px}html{--mat-slide-toggle-disabled-handle-opacity: .38;--mat-slide-toggle-disabled-selected-handle-opacity: .38;--mat-slide-toggle-disabled-selected-icon-opacity: .38;--mat-slide-toggle-disabled-track-opacity: .12;--mat-slide-toggle-disabled-unselected-handle-opacity: .38;--mat-slide-toggle-disabled-unselected-icon-opacity: .38;--mat-slide-toggle-disabled-unselected-track-outline-color: transparent;--mat-slide-toggle-disabled-unselected-track-outline-width: 1px;--mat-slide-toggle-handle-height: 20px;--mat-slide-toggle-handle-shape: 10px;--mat-slide-toggle-handle-width: 20px;--mat-slide-toggle-hidden-track-opacity: 1;--mat-slide-toggle-hidden-track-transition: transform 75ms 0ms cubic-bezier(.4, 0, .6, 1);--mat-slide-toggle-pressed-handle-size: 20px;--mat-slide-toggle-selected-focus-state-layer-opacity: .12;--mat-slide-toggle-selected-handle-horizontal-margin: 0;--mat-slide-toggle-selected-handle-size: 20px;--mat-slide-toggle-selected-hover-state-layer-opacity: .04;--mat-slide-toggle-selected-icon-size: 18px;--mat-slide-toggle-selected-pressed-handle-horizontal-margin: 0;--mat-slide-toggle-selected-pressed-state-layer-opacity: .12;--mat-slide-toggle-selected-track-outline-color: transparent;--mat-slide-toggle-selected-track-outline-width: 1px;--mat-slide-toggle-selected-with-icon-handle-horizontal-margin: 0;--mat-slide-toggle-track-height: 14px;--mat-slide-toggle-track-outline-color: transparent;--mat-slide-toggle-track-outline-width: 1px;--mat-slide-toggle-track-shape: 7px;--mat-slide-toggle-track-width: 36px;--mat-slide-toggle-unselected-focus-state-layer-opacity: .12;--mat-slide-toggle-unselected-handle-horizontal-margin: 0;--mat-slide-toggle-unselected-handle-size: 20px;--mat-slide-toggle-unselected-hover-state-layer-opacity: .12;--mat-slide-toggle-unselected-icon-size: 18px;--mat-slide-toggle-unselected-pressed-handle-horizontal-margin: 0;--mat-slide-toggle-unselected-pressed-state-layer-opacity: .1;--mat-slide-toggle-unselected-with-icon-handle-horizontal-margin: 0;--mat-slide-toggle-visible-track-opacity: 1;--mat-slide-toggle-visible-track-transition: transform 75ms 0ms cubic-bezier(0, 0, .2, 1);--mat-slide-toggle-with-icon-handle-size: 20px;--mat-slide-toggle-touch-target-size: 48px}html{--mat-slide-toggle-selected-icon-color: #F8F9F9;--mat-slide-toggle-disabled-selected-icon-color: #F8F9F9;--mat-slide-toggle-selected-focus-state-layer-color: #215f9e;--mat-slide-toggle-selected-handle-color: #215f9e;--mat-slide-toggle-selected-hover-state-layer-color: #215f9e;--mat-slide-toggle-selected-pressed-state-layer-color: #215f9e;--mat-slide-toggle-selected-focus-handle-color: #215f9e;--mat-slide-toggle-selected-hover-handle-color: #215f9e;--mat-slide-toggle-selected-pressed-handle-color: #215f9e;--mat-slide-toggle-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-slide-toggle-disabled-handle-elevation-shadow: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-slide-toggle-disabled-selected-handle-color: rgba(0, 0, 0, .87);--mat-slide-toggle-disabled-selected-track-color: rgba(0, 0, 0, .87);--mat-slide-toggle-disabled-unselected-handle-color: rgba(0, 0, 0, .87);--mat-slide-toggle-disabled-unselected-icon-color: #f6f6f6;--mat-slide-toggle-disabled-unselected-track-color: rgba(0, 0, 0, .87);--mat-slide-toggle-handle-elevation-shadow: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-slide-toggle-handle-surface-color: white;--mat-slide-toggle-label-text-color: rgba(0, 0, 0, .87);--mat-slide-toggle-unselected-hover-handle-color: #424242;--mat-slide-toggle-unselected-focus-handle-color: #424242;--mat-slide-toggle-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-slide-toggle-unselected-focus-track-color: rgba(0, 0, 0, .12);--mat-slide-toggle-unselected-icon-color: #f6f6f6;--mat-slide-toggle-unselected-handle-color: rgba(0, 0, 0, .54);--mat-slide-toggle-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-slide-toggle-unselected-hover-track-color: rgba(0, 0, 0, .12);--mat-slide-toggle-unselected-pressed-handle-color: #424242;--mat-slide-toggle-unselected-pressed-track-color: rgba(0, 0, 0, .12);--mat-slide-toggle-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87);--mat-slide-toggle-unselected-track-color: rgba(0, 0, 0, .12)}.mat-mdc-slide-toggle.mat-accent{--mat-slide-toggle-selected-icon-color: #F8F9F9;--mat-slide-toggle-disabled-selected-icon-color: #F8F9F9;--mat-slide-toggle-selected-focus-state-layer-color: #a7a7a7;--mat-slide-toggle-selected-handle-color: #a7a7a7;--mat-slide-toggle-selected-hover-state-layer-color: #a7a7a7;--mat-slide-toggle-selected-pressed-state-layer-color: #a7a7a7;--mat-slide-toggle-selected-focus-handle-color: #a7a7a7;--mat-slide-toggle-selected-hover-handle-color: #a7a7a7;--mat-slide-toggle-selected-pressed-handle-color: #a7a7a7}.mat-mdc-slide-toggle.mat-warn{--mat-slide-toggle-selected-icon-color: white;--mat-slide-toggle-disabled-selected-icon-color: white;--mat-slide-toggle-selected-focus-state-layer-color: #f44336;--mat-slide-toggle-selected-handle-color: #f44336;--mat-slide-toggle-selected-hover-state-layer-color: #f44336;--mat-slide-toggle-selected-pressed-state-layer-color: #f44336;--mat-slide-toggle-selected-focus-handle-color: #f44336;--mat-slide-toggle-selected-hover-handle-color: #f44336;--mat-slide-toggle-selected-pressed-handle-color: #f44336;--mat-slide-toggle-selected-focus-track-color: #e57373;--mat-slide-toggle-selected-hover-track-color: #e57373;--mat-slide-toggle-selected-pressed-track-color: #e57373;--mat-slide-toggle-selected-track-color: #e57373}html{--mat-slide-toggle-state-layer-size: 40px;--mat-slide-toggle-touch-target-display: block}html{--mat-radio-disabled-selected-icon-opacity: .38;--mat-radio-disabled-unselected-icon-opacity: .38;--mat-radio-state-layer-size: 40px;--mat-radio-touch-target-size: 48px}.mat-mdc-radio-button.mat-primary{--mat-radio-checked-ripple-color: #215f9e;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: #215f9e;--mat-radio-selected-hover-icon-color: #215f9e;--mat-radio-selected-icon-color: #215f9e;--mat-radio-selected-pressed-icon-color: #215f9e;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.mat-mdc-radio-button.mat-accent{--mat-radio-checked-ripple-color: #a7a7a7;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: #a7a7a7;--mat-radio-selected-hover-icon-color: #a7a7a7;--mat-radio-selected-icon-color: #a7a7a7;--mat-radio-selected-pressed-icon-color: #a7a7a7;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.mat-mdc-radio-button.mat-warn{--mat-radio-checked-ripple-color: #f44336;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: #f44336;--mat-radio-selected-hover-icon-color: #f44336;--mat-radio-selected-icon-color: #f44336;--mat-radio-selected-pressed-icon-color: #f44336;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}html{--mat-radio-state-layer-size: 40px;--mat-radio-touch-target-display: block}html{--mat-slider-active-track-height: 6px;--mat-slider-active-track-shape: 9999px;--mat-slider-handle-elevation: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-slider-handle-height: 20px;--mat-slider-handle-shape: 50%;--mat-slider-handle-width: 20px;--mat-slider-inactive-track-height: 4px;--mat-slider-inactive-track-shape: 9999px;--mat-slider-value-indicator-border-radius: 4px;--mat-slider-value-indicator-caret-display: block;--mat-slider-value-indicator-container-transform: translateX(-50%);--mat-slider-value-indicator-height: 32px;--mat-slider-value-indicator-padding: 0 12px;--mat-slider-value-indicator-text-transform: none;--mat-slider-value-indicator-width: auto;--mat-slider-with-overlap-handle-outline-width: 1px;--mat-slider-with-tick-marks-active-container-opacity: .6;--mat-slider-with-tick-marks-container-shape: 50%;--mat-slider-with-tick-marks-container-size: 2px;--mat-slider-with-tick-marks-inactive-container-opacity: .6;--mat-slider-value-indicator-transform-origin: bottom}html{--mat-slider-active-track-color: #215f9e;--mat-slider-focus-handle-color: #215f9e;--mat-slider-handle-color: #215f9e;--mat-slider-hover-handle-color: #215f9e;--mat-slider-focus-state-layer-color: color-mix(in srgb, #215f9e 12%, transparent);--mat-slider-hover-state-layer-color: color-mix(in srgb, #215f9e 4%, transparent);--mat-slider-inactive-track-color: #215f9e;--mat-slider-ripple-color: #215f9e;--mat-slider-with-tick-marks-active-container-color: #F8F9F9;--mat-slider-with-tick-marks-inactive-container-color: #215f9e;--mat-slider-disabled-active-track-color: rgba(0, 0, 0, .87);--mat-slider-disabled-handle-color: rgba(0, 0, 0, .87);--mat-slider-disabled-inactive-track-color: rgba(0, 0, 0, .87);--mat-slider-label-container-color: #424242;--mat-slider-label-label-text-color: white;--mat-slider-value-indicator-opacity: 1;--mat-slider-with-overlap-handle-outline-color: rgba(0, 0, 0, .87);--mat-slider-with-tick-marks-disabled-container-color: rgba(0, 0, 0, .87)}.mat-accent{--mat-slider-active-track-color: #a7a7a7;--mat-slider-focus-handle-color: #a7a7a7;--mat-slider-handle-color: #a7a7a7;--mat-slider-hover-handle-color: #a7a7a7;--mat-slider-focus-state-layer-color: color-mix(in srgb, #a7a7a7 12%, transparent);--mat-slider-hover-state-layer-color: color-mix(in srgb, #a7a7a7 4%, transparent);--mat-slider-inactive-track-color: #a7a7a7;--mat-slider-ripple-color: #a7a7a7;--mat-slider-with-tick-marks-active-container-color: #F8F9F9;--mat-slider-with-tick-marks-inactive-container-color: #a7a7a7}.mat-warn{--mat-slider-active-track-color: #f44336;--mat-slider-focus-handle-color: #f44336;--mat-slider-handle-color: #f44336;--mat-slider-hover-handle-color: #f44336;--mat-slider-focus-state-layer-color: color-mix(in srgb, #f44336 12%, transparent);--mat-slider-hover-state-layer-color: color-mix(in srgb, #f44336 4%, transparent);--mat-slider-inactive-track-color: #f44336;--mat-slider-ripple-color: #f44336;--mat-slider-with-tick-marks-active-container-color: white;--mat-slider-with-tick-marks-inactive-container-color: #f44336}html{--mat-menu-container-shape: 4px;--mat-menu-divider-bottom-spacing: 0;--mat-menu-divider-top-spacing: 0;--mat-menu-item-spacing: 16px;--mat-menu-item-icon-size: 24px;--mat-menu-item-leading-spacing: 16px;--mat-menu-item-trailing-spacing: 16px;--mat-menu-item-with-icon-leading-spacing: 16px;--mat-menu-item-with-icon-trailing-spacing: 16px;--mat-menu-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-menu-item-label-text-color: rgba(0, 0, 0, .87);--mat-menu-item-icon-color: rgba(0, 0, 0, .87);--mat-menu-item-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-menu-item-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-menu-container-color: white;--mat-menu-divider-color: rgba(0, 0, 0, .12)}html{--mat-list-active-indicator-color: transparent;--mat-list-active-indicator-shape: 4px;--mat-list-list-item-container-shape: 0;--mat-list-list-item-leading-avatar-shape: 50%;--mat-list-list-item-container-color: transparent;--mat-list-list-item-selected-container-color: transparent;--mat-list-list-item-leading-avatar-color: transparent;--mat-list-list-item-leading-icon-size: 24px;--mat-list-list-item-leading-avatar-size: 40px;--mat-list-list-item-trailing-icon-size: 24px;--mat-list-list-item-disabled-state-layer-color: transparent;--mat-list-list-item-disabled-state-layer-opacity: 0;--mat-list-list-item-disabled-label-text-opacity: .38;--mat-list-list-item-disabled-leading-icon-opacity: .38;--mat-list-list-item-disabled-trailing-icon-opacity: .38}html{--mat-list-list-item-label-text-color: rgba(0, 0, 0, .87);--mat-list-list-item-supporting-text-color: rgba(0, 0, 0, .54);--mat-list-list-item-leading-icon-color: rgba(0, 0, 0, .54);--mat-list-list-item-trailing-supporting-text-color: rgba(0, 0, 0, .54);--mat-list-list-item-trailing-icon-color: rgba(0, 0, 0, .54);--mat-list-list-item-selected-trailing-icon-color: rgba(0, 0, 0, .54);--mat-list-list-item-disabled-label-text-color: rgba(0, 0, 0, .87);--mat-list-list-item-disabled-leading-icon-color: rgba(0, 0, 0, .87);--mat-list-list-item-disabled-trailing-icon-color: rgba(0, 0, 0, .87);--mat-list-list-item-hover-label-text-color: rgba(0, 0, 0, .87);--mat-list-list-item-hover-leading-icon-color: rgba(0, 0, 0, .54);--mat-list-list-item-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-list-list-item-hover-state-layer-opacity: .04;--mat-list-list-item-hover-trailing-icon-color: rgba(0, 0, 0, .54);--mat-list-list-item-focus-label-text-color: rgba(0, 0, 0, .87);--mat-list-list-item-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-list-list-item-focus-state-layer-opacity: .12}.mdc-list-item__start,.mdc-list-item__end{--mat-radio-checked-ripple-color: #215f9e;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: #215f9e;--mat-radio-selected-hover-icon-color: #215f9e;--mat-radio-selected-icon-color: #215f9e;--mat-radio-selected-pressed-icon-color: #215f9e;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.mat-accent .mdc-list-item__start,.mat-accent .mdc-list-item__end{--mat-radio-checked-ripple-color: #a7a7a7;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: #a7a7a7;--mat-radio-selected-hover-icon-color: #a7a7a7;--mat-radio-selected-icon-color: #a7a7a7;--mat-radio-selected-pressed-icon-color: #a7a7a7;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.mat-warn .mdc-list-item__start,.mat-warn .mdc-list-item__end{--mat-radio-checked-ripple-color: #f44336;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: #f44336;--mat-radio-selected-hover-icon-color: #f44336;--mat-radio-selected-icon-color: #f44336;--mat-radio-selected-pressed-icon-color: #f44336;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.mat-mdc-list-option{--mat-checkbox-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-label-text-color: rgba(0, 0, 0, .87);--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: #F8F9F9;--mat-checkbox-selected-focus-icon-color: #215f9e;--mat-checkbox-selected-hover-icon-color: #215f9e;--mat-checkbox-selected-icon-color: #215f9e;--mat-checkbox-selected-pressed-icon-color: #215f9e;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: #215f9e;--mat-checkbox-selected-hover-state-layer-color: #215f9e;--mat-checkbox-selected-pressed-state-layer-color: #215f9e;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.mat-mdc-list-option.mat-accent{--mat-checkbox-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-label-text-color: rgba(0, 0, 0, .87);--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: #F8F9F9;--mat-checkbox-selected-focus-icon-color: #a7a7a7;--mat-checkbox-selected-hover-icon-color: #a7a7a7;--mat-checkbox-selected-icon-color: #a7a7a7;--mat-checkbox-selected-pressed-icon-color: #a7a7a7;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: #a7a7a7;--mat-checkbox-selected-hover-state-layer-color: #a7a7a7;--mat-checkbox-selected-pressed-state-layer-color: #a7a7a7;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.mat-mdc-list-option.mat-warn{--mat-checkbox-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-label-text-color: rgba(0, 0, 0, .87);--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: white;--mat-checkbox-selected-focus-icon-color: #f44336;--mat-checkbox-selected-hover-icon-color: #f44336;--mat-checkbox-selected-icon-color: #f44336;--mat-checkbox-selected-pressed-icon-color: #f44336;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: #f44336;--mat-checkbox-selected-hover-state-layer-color: #f44336;--mat-checkbox-selected-pressed-state-layer-color: #f44336;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected .mdc-list-item__primary-text,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected .mdc-list-item__start,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated .mdc-list-item__primary-text,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated .mdc-list-item__start{color:#215f9e}.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__start,.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__content,.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__end{opacity:1}html{--mat-list-list-item-leading-icon-start-space: 16px;--mat-list-list-item-leading-icon-end-space: 32px;--mat-list-list-item-one-line-container-height: 48px;--mat-list-list-item-two-line-container-height: 64px;--mat-list-list-item-three-line-container-height: 88px}.mdc-list-item__start,.mdc-list-item__end{--mat-radio-state-layer-size: 40px;--mat-radio-touch-target-display: block}.mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-one-line,.mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-one-line,.mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-one-line{height:56px}.mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines,.mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines,.mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines{height:72px}html{--mat-paginator-page-size-select-width: 84px;--mat-paginator-page-size-select-touch-target-height: 48px}html{--mat-paginator-container-text-color: rgba(0, 0, 0, .87);--mat-paginator-container-background-color: white;--mat-paginator-enabled-icon-color: rgba(0, 0, 0, .54);--mat-paginator-disabled-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}html{--mat-paginator-container-size: 56px;--mat-paginator-form-field-container-height: 40px;--mat-paginator-form-field-container-vertical-padding: 8px;--mat-paginator-touch-target-display: block}html{--mat-tab-container-height: 48px;--mat-tab-divider-color: transparent;--mat-tab-divider-height: 0;--mat-tab-active-indicator-height: 2px;--mat-tab-active-indicator-shape: 0}.mat-mdc-tab-group,.mat-mdc-tab-nav-bar{--mat-tab-disabled-ripple-color: rgba(0, 0, 0, .54);--mat-tab-pagination-icon-color: rgba(0, 0, 0, .87);--mat-tab-inactive-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-label-text-color: #215f9e;--mat-tab-active-ripple-color: #215f9e;--mat-tab-inactive-ripple-color: #215f9e;--mat-tab-inactive-focus-label-text-color: rgba(0, 0, 0, .54);--mat-tab-inactive-hover-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-focus-label-text-color: #215f9e;--mat-tab-active-hover-label-text-color: #215f9e;--mat-tab-active-focus-indicator-color: #215f9e;--mat-tab-active-hover-indicator-color: #215f9e;--mat-tab-active-indicator-color: #215f9e}.mat-mdc-tab-group.mat-accent,.mat-mdc-tab-nav-bar.mat-accent{--mat-tab-disabled-ripple-color: rgba(0, 0, 0, .54);--mat-tab-pagination-icon-color: rgba(0, 0, 0, .87);--mat-tab-inactive-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-label-text-color: #a7a7a7;--mat-tab-active-ripple-color: #a7a7a7;--mat-tab-inactive-ripple-color: #a7a7a7;--mat-tab-inactive-focus-label-text-color: rgba(0, 0, 0, .54);--mat-tab-inactive-hover-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-focus-label-text-color: #a7a7a7;--mat-tab-active-hover-label-text-color: #a7a7a7;--mat-tab-active-focus-indicator-color: #a7a7a7;--mat-tab-active-hover-indicator-color: #a7a7a7;--mat-tab-active-indicator-color: #a7a7a7}.mat-mdc-tab-group.mat-warn,.mat-mdc-tab-nav-bar.mat-warn{--mat-tab-disabled-ripple-color: rgba(0, 0, 0, .54);--mat-tab-pagination-icon-color: rgba(0, 0, 0, .87);--mat-tab-inactive-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-label-text-color: #f44336;--mat-tab-active-ripple-color: #f44336;--mat-tab-inactive-ripple-color: #f44336;--mat-tab-inactive-focus-label-text-color: rgba(0, 0, 0, .54);--mat-tab-inactive-hover-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-focus-label-text-color: #f44336;--mat-tab-active-hover-label-text-color: #f44336;--mat-tab-active-focus-indicator-color: #f44336;--mat-tab-active-hover-indicator-color: #f44336;--mat-tab-active-indicator-color: #f44336}.mat-mdc-tab-group.mat-background-primary,.mat-mdc-tab-nav-bar.mat-background-primary{--mat-tab-background-color: #215f9e;--mat-tab-foreground-color: #F8F9F9}.mat-mdc-tab-group.mat-background-accent,.mat-mdc-tab-nav-bar.mat-background-accent{--mat-tab-background-color: #a7a7a7;--mat-tab-foreground-color: #F8F9F9}.mat-mdc-tab-group.mat-background-warn,.mat-mdc-tab-nav-bar.mat-background-warn{--mat-tab-background-color: #f44336;--mat-tab-foreground-color: white}.mat-mdc-tab-header{--mat-tab-container-height: 48px}html{--mat-checkbox-disabled-selected-checkmark-color: white;--mat-checkbox-selected-focus-state-layer-opacity: .12;--mat-checkbox-selected-hover-state-layer-opacity: .04;--mat-checkbox-selected-pressed-state-layer-opacity: .12;--mat-checkbox-unselected-focus-state-layer-opacity: .12;--mat-checkbox-unselected-hover-state-layer-opacity: .04;--mat-checkbox-unselected-pressed-state-layer-opacity: .12;--mat-checkbox-touch-target-size: 48px}html{--mat-checkbox-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-label-text-color: rgba(0, 0, 0, .87);--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: #F8F9F9;--mat-checkbox-selected-focus-icon-color: #a7a7a7;--mat-checkbox-selected-hover-icon-color: #a7a7a7;--mat-checkbox-selected-icon-color: #a7a7a7;--mat-checkbox-selected-pressed-icon-color: #a7a7a7;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: #a7a7a7;--mat-checkbox-selected-hover-state-layer-color: #a7a7a7;--mat-checkbox-selected-pressed-state-layer-color: #a7a7a7;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.mat-mdc-checkbox.mat-primary{--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: #F8F9F9;--mat-checkbox-selected-focus-icon-color: #215f9e;--mat-checkbox-selected-hover-icon-color: #215f9e;--mat-checkbox-selected-icon-color: #215f9e;--mat-checkbox-selected-pressed-icon-color: #215f9e;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: #215f9e;--mat-checkbox-selected-hover-state-layer-color: #215f9e;--mat-checkbox-selected-pressed-state-layer-color: #215f9e;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.mat-mdc-checkbox.mat-warn{--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: white;--mat-checkbox-selected-focus-icon-color: #f44336;--mat-checkbox-selected-hover-icon-color: #f44336;--mat-checkbox-selected-icon-color: #f44336;--mat-checkbox-selected-pressed-icon-color: #f44336;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: #f44336;--mat-checkbox-selected-hover-state-layer-color: #f44336;--mat-checkbox-selected-pressed-state-layer-color: #f44336;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}html{--mat-checkbox-touch-target-display: block;--mat-checkbox-state-layer-size: 40px}html{--mat-button-filled-container-shape: 4px;--mat-button-filled-horizontal-padding: 16px;--mat-button-filled-icon-offset: -4px;--mat-button-filled-icon-spacing: 8px;--mat-button-filled-touch-target-size: 48px;--mat-button-outlined-container-shape: 4px;--mat-button-outlined-horizontal-padding: 15px;--mat-button-outlined-icon-offset: -4px;--mat-button-outlined-icon-spacing: 8px;--mat-button-outlined-keep-touch-target: false;--mat-button-outlined-outline-width: 1px;--mat-button-outlined-touch-target-size: 48px;--mat-button-protected-container-elevation-shadow: 0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mat-button-protected-container-shape: 4px;--mat-button-protected-disabled-container-elevation-shadow: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-button-protected-focus-container-elevation-shadow: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mat-button-protected-horizontal-padding: 16px;--mat-button-protected-hover-container-elevation-shadow: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mat-button-protected-icon-offset: -4px;--mat-button-protected-icon-spacing: 8px;--mat-button-protected-pressed-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-button-protected-touch-target-size: 48px;--mat-button-text-container-shape: 4px;--mat-button-text-horizontal-padding: 8px;--mat-button-text-icon-offset: 0;--mat-button-text-icon-spacing: 8px;--mat-button-text-with-icon-horizontal-padding: 8px;--mat-button-text-touch-target-size: 48px;--mat-button-tonal-container-shape: 4px;--mat-button-tonal-horizontal-padding: 16px;--mat-button-tonal-icon-offset: -4px;--mat-button-tonal-icon-spacing: 8px;--mat-button-tonal-touch-target-size: 48px}html{--mat-button-filled-container-color: white;--mat-button-filled-disabled-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-filled-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-filled-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-button-filled-focus-state-layer-opacity: .12;--mat-button-filled-hover-state-layer-opacity: .04;--mat-button-filled-label-text-color: rgba(0, 0, 0, .87);--mat-button-filled-pressed-state-layer-opacity: .12;--mat-button-filled-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-filled-state-layer-color: rgba(0, 0, 0, .87);--mat-button-outlined-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-outlined-disabled-outline-color: rgba(0, 0, 0, .12);--mat-button-outlined-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-button-outlined-focus-state-layer-opacity: .12;--mat-button-outlined-hover-state-layer-opacity: .04;--mat-button-outlined-label-text-color: rgba(0, 0, 0, .87);--mat-button-outlined-outline-color: rgba(0, 0, 0, .12);--mat-button-outlined-pressed-state-layer-opacity: .12;--mat-button-outlined-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-outlined-state-layer-color: rgba(0, 0, 0, .87);--mat-button-protected-container-color: white;--mat-button-protected-disabled-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-protected-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-protected-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-button-protected-focus-state-layer-opacity: .12;--mat-button-protected-hover-state-layer-opacity: .04;--mat-button-protected-label-text-color: rgba(0, 0, 0, .87);--mat-button-protected-pressed-state-layer-opacity: .12;--mat-button-protected-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-protected-state-layer-color: rgba(0, 0, 0, .87);--mat-button-text-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-text-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-button-text-focus-state-layer-opacity: .12;--mat-button-text-hover-state-layer-opacity: .04;--mat-button-text-label-text-color: rgba(0, 0, 0, .87);--mat-button-text-pressed-state-layer-opacity: .12;--mat-button-text-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-text-state-layer-color: rgba(0, 0, 0, .87);--mat-button-tonal-container-color: white;--mat-button-tonal-disabled-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-tonal-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-tonal-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-button-tonal-focus-state-layer-opacity: .12;--mat-button-tonal-hover-state-layer-opacity: .04;--mat-button-tonal-label-text-color: rgba(0, 0, 0, .87);--mat-button-tonal-pressed-state-layer-opacity: .12;--mat-button-tonal-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-tonal-state-layer-color: rgba(0, 0, 0, .87)}.mat-mdc-button.mat-primary,.mat-mdc-unelevated-button.mat-primary,.mat-mdc-raised-button.mat-primary,.mat-mdc-outlined-button.mat-primary,.mat-tonal-button.mat-primary{--mat-button-filled-container-color: #215f9e;--mat-button-filled-label-text-color: #F8F9F9;--mat-button-filled-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-button-filled-state-layer-color: #F8F9F9;--mat-button-outlined-label-text-color: #215f9e;--mat-button-outlined-outline-color: rgba(0, 0, 0, .12);--mat-button-outlined-ripple-color: color-mix(in srgb, #215f9e 12%, transparent);--mat-button-outlined-state-layer-color: #215f9e;--mat-button-protected-container-color: #215f9e;--mat-button-protected-label-text-color: #F8F9F9;--mat-button-protected-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-button-protected-state-layer-color: #F8F9F9;--mat-button-text-label-text-color: #215f9e;--mat-button-text-ripple-color: color-mix(in srgb, #215f9e 12%, transparent);--mat-button-text-state-layer-color: #215f9e;--mat-button-tonal-container-color: #215f9e;--mat-button-tonal-label-text-color: #F8F9F9;--mat-button-tonal-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-button-tonal-state-layer-color: #F8F9F9}.mat-mdc-button.mat-accent,.mat-mdc-unelevated-button.mat-accent,.mat-mdc-raised-button.mat-accent,.mat-mdc-outlined-button.mat-accent,.mat-tonal-button.mat-accent{--mat-button-filled-container-color: #a7a7a7;--mat-button-filled-label-text-color: #F8F9F9;--mat-button-filled-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-button-filled-state-layer-color: #F8F9F9;--mat-button-outlined-label-text-color: #a7a7a7;--mat-button-outlined-outline-color: rgba(0, 0, 0, .12);--mat-button-outlined-ripple-color: color-mix(in srgb, #a7a7a7 12%, transparent);--mat-button-outlined-state-layer-color: #a7a7a7;--mat-button-protected-container-color: #a7a7a7;--mat-button-protected-label-text-color: #F8F9F9;--mat-button-protected-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-button-protected-state-layer-color: #F8F9F9;--mat-button-text-label-text-color: #a7a7a7;--mat-button-text-ripple-color: color-mix(in srgb, #a7a7a7 12%, transparent);--mat-button-text-state-layer-color: #a7a7a7;--mat-button-tonal-container-color: #a7a7a7;--mat-button-tonal-label-text-color: #F8F9F9;--mat-button-tonal-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-button-tonal-state-layer-color: #F8F9F9}.mat-mdc-button.mat-warn,.mat-mdc-unelevated-button.mat-warn,.mat-mdc-raised-button.mat-warn,.mat-mdc-outlined-button.mat-warn,.mat-tonal-button.mat-warn{--mat-button-filled-container-color: #f44336;--mat-button-filled-label-text-color: white;--mat-button-filled-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-filled-state-layer-color: white;--mat-button-outlined-label-text-color: #f44336;--mat-button-outlined-outline-color: rgba(0, 0, 0, .12);--mat-button-outlined-ripple-color: color-mix(in srgb, #f44336 12%, transparent);--mat-button-outlined-state-layer-color: #f44336;--mat-button-protected-container-color: #f44336;--mat-button-protected-label-text-color: white;--mat-button-protected-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-protected-state-layer-color: white;--mat-button-text-label-text-color: #f44336;--mat-button-text-ripple-color: color-mix(in srgb, #f44336 12%, transparent);--mat-button-text-state-layer-color: #f44336;--mat-button-tonal-container-color: #f44336;--mat-button-tonal-label-text-color: white;--mat-button-tonal-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-tonal-state-layer-color: white}html{--mat-button-filled-container-height: 36px;--mat-button-filled-touch-target-display: block;--mat-button-outlined-container-height: 36px;--mat-button-outlined-touch-target-display: block;--mat-button-protected-container-height: 36px;--mat-button-protected-touch-target-display: block;--mat-button-text-container-height: 36px;--mat-button-text-touch-target-display: block;--mat-button-tonal-container-height: 36px;--mat-button-tonal-touch-target-display: block}html{--mat-icon-button-icon-size: 24px;--mat-icon-button-container-shape: 50%;--mat-icon-button-touch-target-size: 48px}html{--mat-icon-button-disabled-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-icon-button-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-icon-button-focus-state-layer-opacity: .12;--mat-icon-button-hover-state-layer-opacity: .04;--mat-icon-button-icon-color: inherit;--mat-icon-button-pressed-state-layer-opacity: .12;--mat-icon-button-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-icon-button-state-layer-color: rgba(0, 0, 0, .87)}.mat-mdc-icon-button.mat-primary{--mat-icon-button-icon-color: #215f9e;--mat-icon-button-state-layer-color: #215f9e;--mat-icon-button-ripple-color: color-mix(in srgb, #215f9e 12%, transparent)}.mat-mdc-icon-button.mat-accent{--mat-icon-button-icon-color: #a7a7a7;--mat-icon-button-state-layer-color: #a7a7a7;--mat-icon-button-ripple-color: color-mix(in srgb, #a7a7a7 12%, transparent)}.mat-mdc-icon-button.mat-warn{--mat-icon-button-icon-color: #f44336;--mat-icon-button-state-layer-color: #f44336;--mat-icon-button-ripple-color: color-mix(in srgb, #f44336 12%, transparent)}html{--mat-icon-button-touch-target-display: block}.mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size: 48px;--mat-icon-button-state-layer-size: 48px;width:var(--mat-icon-button-state-layer-size);height:var(--mat-icon-button-state-layer-size);padding:12px}html{--mat-fab-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-fab-container-shape: 50%;--mat-fab-touch-target-size: 48px;--mat-fab-extended-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-fab-extended-container-height: 48px;--mat-fab-extended-container-shape: 24px;--mat-fab-extended-focus-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-fab-extended-hover-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-fab-extended-pressed-container-elevation-shadow: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-fab-focus-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-fab-hover-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-fab-pressed-container-elevation-shadow: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-fab-small-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-fab-small-container-shape: 50%;--mat-fab-small-touch-target-size: 48px;--mat-fab-small-focus-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-fab-small-hover-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-fab-small-pressed-container-elevation-shadow: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12)}html{--mat-fab-container-color: white;--mat-fab-disabled-state-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-fab-disabled-state-foreground-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-fab-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-fab-focus-state-layer-opacity: .12;--mat-fab-foreground-color: rgba(0, 0, 0, .87);--mat-fab-hover-state-layer-opacity: .04;--mat-fab-pressed-state-layer-opacity: .12;--mat-fab-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-fab-small-container-color: white;--mat-fab-small-disabled-state-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-fab-small-disabled-state-foreground-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-fab-small-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-fab-small-focus-state-layer-opacity: .12;--mat-fab-small-foreground-color: rgba(0, 0, 0, .87);--mat-fab-small-hover-state-layer-opacity: .04;--mat-fab-small-pressed-state-layer-opacity: .12;--mat-fab-small-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-fab-small-state-layer-color: rgba(0, 0, 0, .87);--mat-fab-state-layer-color: rgba(0, 0, 0, .87)}.mat-mdc-fab.mat-primary,.mat-mdc-mini-fab.mat-primary{--mat-fab-container-color: #215f9e;--mat-fab-foreground-color: #F8F9F9;--mat-fab-ripple-color: color-mix(in srgb, #215f9e 12%, transparent);--mat-fab-small-container-color: #215f9e;--mat-fab-small-foreground-color: #F8F9F9;--mat-fab-small-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-fab-small-state-layer-color: #F8F9F9;--mat-fab-state-layer-color: #F8F9F9}.mat-mdc-fab.mat-accent,.mat-mdc-mini-fab.mat-accent{--mat-fab-container-color: #a7a7a7;--mat-fab-foreground-color: #F8F9F9;--mat-fab-ripple-color: color-mix(in srgb, #a7a7a7 12%, transparent);--mat-fab-small-container-color: #a7a7a7;--mat-fab-small-foreground-color: #F8F9F9;--mat-fab-small-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-fab-small-state-layer-color: #F8F9F9;--mat-fab-state-layer-color: #F8F9F9}.mat-mdc-fab.mat-warn,.mat-mdc-mini-fab.mat-warn{--mat-fab-container-color: #f44336;--mat-fab-foreground-color: white;--mat-fab-ripple-color: color-mix(in srgb, #f44336 12%, transparent);--mat-fab-small-container-color: #f44336;--mat-fab-small-foreground-color: white;--mat-fab-small-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-fab-small-state-layer-color: white;--mat-fab-state-layer-color: white}html{--mat-fab-small-touch-target-display: block;--mat-fab-touch-target-display: block}html{--mat-snack-bar-container-shape: 4px}html{--mat-snack-bar-container-color: #424242;--mat-snack-bar-supporting-text-color: white}html{--mat-table-row-item-outline-width: 1px}html{--mat-table-background-color: white;--mat-table-header-headline-color: rgba(0, 0, 0, .87);--mat-table-row-item-label-text-color: rgba(0, 0, 0, .87);--mat-table-row-item-outline-color: rgba(0, 0, 0, .12)}html{--mat-table-header-container-height: 56px;--mat-table-footer-container-height: 52px;--mat-table-row-item-container-height: 52px}html{--mat-progress-spinner-active-indicator-width: 4px;--mat-progress-spinner-size: 48px}html{--mat-progress-spinner-active-indicator-color: #215f9e}.mat-accent{--mat-progress-spinner-active-indicator-color: #a7a7a7}.mat-warn{--mat-progress-spinner-active-indicator-color: #f44336}html{--mat-badge-container-shape: 50%;--mat-badge-container-size: unset;--mat-badge-small-size-container-size: unset;--mat-badge-large-size-container-size: unset;--mat-badge-legacy-container-size: 22px;--mat-badge-legacy-small-size-container-size: 16px;--mat-badge-legacy-large-size-container-size: 28px;--mat-badge-container-offset: -11px 0;--mat-badge-small-size-container-offset: -8px 0;--mat-badge-large-size-container-offset: -14px 0;--mat-badge-container-overlap-offset: -11px;--mat-badge-small-size-container-overlap-offset: -8px;--mat-badge-large-size-container-overlap-offset: -14px;--mat-badge-container-padding: 0;--mat-badge-small-size-container-padding: 0;--mat-badge-large-size-container-padding: 0}html{--mat-badge-background-color: #215f9e;--mat-badge-text-color: #F8F9F9;--mat-badge-disabled-state-background-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-badge-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}.mat-badge-accent{--mat-badge-background-color: #a7a7a7;--mat-badge-text-color: #F8F9F9}.mat-badge-warn{--mat-badge-background-color: #f44336;--mat-badge-text-color: white}html{--mat-bottom-sheet-container-shape: 4px}html{--mat-bottom-sheet-container-text-color: rgba(0, 0, 0, .87);--mat-bottom-sheet-container-background-color: white}html{--mat-button-toggle-focus-state-layer-opacity: .12;--mat-button-toggle-hover-state-layer-opacity: .04;--mat-button-toggle-legacy-focus-state-layer-opacity: 1;--mat-button-toggle-legacy-height: 36px;--mat-button-toggle-legacy-shape: 2px;--mat-button-toggle-shape: 4px}html{--mat-button-toggle-background-color: white;--mat-button-toggle-disabled-selected-state-background-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-toggle-disabled-selected-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-toggle-disabled-state-background-color: white;--mat-button-toggle-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-toggle-divider-color: rgba(0, 0, 0, .12);--mat-button-toggle-legacy-disabled-selected-state-background-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-toggle-legacy-disabled-state-background-color: white;--mat-button-toggle-legacy-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-toggle-legacy-selected-state-background-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-toggle-legacy-selected-state-text-color: rgba(0, 0, 0, .87);--mat-button-toggle-legacy-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-toggle-legacy-text-color: rgba(0, 0, 0, .87);--mat-button-toggle-selected-state-background-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-toggle-selected-state-text-color: rgba(0, 0, 0, .87);--mat-button-toggle-state-layer-color: rgba(0, 0, 0, .87);--mat-button-toggle-text-color: rgba(0, 0, 0, .87)}html{--mat-button-toggle-height: 48px}html{--mat-datepicker-calendar-container-shape: 4px;--mat-datepicker-calendar-container-touch-shape: 4px;--mat-datepicker-calendar-container-elevation-shadow: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mat-datepicker-calendar-container-touch-elevation-shadow: 0px 11px 15px -7px rgba(0, 0, 0, .2), 0px 24px 38px 3px rgba(0, 0, 0, .14), 0px 9px 46px 8px rgba(0, 0, 0, .12)}html{--mat-datepicker-calendar-date-in-range-state-background-color: color-mix(in srgb, #215f9e 20%, transparent);--mat-datepicker-calendar-date-in-comparison-range-state-background-color: color-mix(in srgb, #a7a7a7 20%, transparent);--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: rgb(69.5241935484, 163.4758064516, 93.9516129032);--mat-datepicker-calendar-date-selected-state-text-color: #F8F9F9;--mat-datepicker-calendar-date-selected-state-background-color: #215f9e;--mat-datepicker-calendar-date-selected-disabled-state-background-color: color-mix(in srgb, #215f9e 38%, transparent);--mat-datepicker-calendar-date-today-selected-state-outline-color: #F8F9F9;--mat-datepicker-calendar-date-focus-state-background-color: color-mix(in srgb, #215f9e 12%, transparent);--mat-datepicker-calendar-date-hover-state-background-color: color-mix(in srgb, #215f9e 4%, transparent);--mat-datepicker-toggle-active-state-icon-color: #215f9e;--mat-datepicker-toggle-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-body-label-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-period-button-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-period-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-navigation-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-header-divider-color: rgba(0, 0, 0, .12);--mat-datepicker-calendar-header-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-disabled-state-outline-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-date-outline-color: transparent;--mat-datepicker-calendar-date-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-preview-state-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-range-input-separator-color: rgba(0, 0, 0, .87);--mat-datepicker-range-input-disabled-state-separator-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-range-input-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-container-background-color: white;--mat-datepicker-calendar-container-text-color: rgba(0, 0, 0, .87)}.mat-datepicker-content.mat-accent,.mat-datepicker-toggle-active.mat-accent{--mat-datepicker-calendar-date-in-range-state-background-color: color-mix(in srgb, #a7a7a7 20%, transparent);--mat-datepicker-calendar-date-in-comparison-range-state-background-color: color-mix(in srgb, #a7a7a7 20%, transparent);--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: rgb(69.5241935484, 163.4758064516, 93.9516129032);--mat-datepicker-calendar-date-selected-state-text-color: #F8F9F9;--mat-datepicker-calendar-date-selected-state-background-color: #a7a7a7;--mat-datepicker-calendar-date-selected-disabled-state-background-color: color-mix(in srgb, #a7a7a7 38%, transparent);--mat-datepicker-calendar-date-today-selected-state-outline-color: #F8F9F9;--mat-datepicker-calendar-date-focus-state-background-color: color-mix(in srgb, #a7a7a7 12%, transparent);--mat-datepicker-calendar-date-hover-state-background-color: color-mix(in srgb, #a7a7a7 4%, transparent);--mat-datepicker-toggle-active-state-icon-color: #a7a7a7;--mat-datepicker-toggle-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-body-label-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-period-button-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-period-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-navigation-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-header-divider-color: rgba(0, 0, 0, .12);--mat-datepicker-calendar-header-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-disabled-state-outline-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-date-outline-color: transparent;--mat-datepicker-calendar-date-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-preview-state-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-range-input-separator-color: rgba(0, 0, 0, .87);--mat-datepicker-range-input-disabled-state-separator-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-range-input-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-container-background-color: white;--mat-datepicker-calendar-container-text-color: rgba(0, 0, 0, .87)}.mat-datepicker-content.mat-warn,.mat-datepicker-toggle-active.mat-warn{--mat-datepicker-calendar-date-in-range-state-background-color: color-mix(in srgb, #f44336 20%, transparent);--mat-datepicker-calendar-date-in-comparison-range-state-background-color: color-mix(in srgb, #a7a7a7 20%, transparent);--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: rgb(69.5241935484, 163.4758064516, 93.9516129032);--mat-datepicker-calendar-date-selected-state-text-color: white;--mat-datepicker-calendar-date-selected-state-background-color: #f44336;--mat-datepicker-calendar-date-selected-disabled-state-background-color: color-mix(in srgb, #f44336 38%, transparent);--mat-datepicker-calendar-date-today-selected-state-outline-color: white;--mat-datepicker-calendar-date-focus-state-background-color: color-mix(in srgb, #f44336 12%, transparent);--mat-datepicker-calendar-date-hover-state-background-color: color-mix(in srgb, #f44336 4%, transparent);--mat-datepicker-toggle-active-state-icon-color: #f44336;--mat-datepicker-toggle-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-body-label-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-period-button-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-period-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-navigation-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-header-divider-color: rgba(0, 0, 0, .12);--mat-datepicker-calendar-header-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-disabled-state-outline-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-date-outline-color: transparent;--mat-datepicker-calendar-date-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-preview-state-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-range-input-separator-color: rgba(0, 0, 0, .87);--mat-datepicker-range-input-disabled-state-separator-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-range-input-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-container-background-color: white;--mat-datepicker-calendar-container-text-color: rgba(0, 0, 0, .87)}.mat-calendar-controls{--mat-icon-button-touch-target-display: none}.mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size: 40px;--mat-icon-button-state-layer-size: 40px;width:var(--mat-icon-button-state-layer-size);height:var(--mat-icon-button-state-layer-size);padding:8px}html{--mat-divider-width: 1px}html{--mat-divider-color: rgba(0, 0, 0, .12)}html{--mat-expansion-container-shape: 4px;--mat-expansion-container-elevation-shadow: 0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mat-expansion-legacy-header-indicator-display: inline-block;--mat-expansion-header-indicator-display: none}html{--mat-expansion-container-background-color: white;--mat-expansion-container-text-color: rgba(0, 0, 0, .87);--mat-expansion-actions-divider-color: rgba(0, 0, 0, .12);--mat-expansion-header-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-expansion-header-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-expansion-header-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-expansion-header-text-color: rgba(0, 0, 0, .87);--mat-expansion-header-description-color: rgba(0, 0, 0, .54);--mat-expansion-header-indicator-color: rgba(0, 0, 0, .54)}html{--mat-expansion-header-collapsed-state-height: 48px;--mat-expansion-header-expanded-state-height: 64px}html{--mat-icon-color: inherit}.mat-icon.mat-primary{--mat-icon-color: #215f9e}.mat-icon.mat-accent{--mat-icon-color: #a7a7a7}.mat-icon.mat-warn{--mat-icon-color: #f44336}html{--mat-sidenav-container-shape: 0;--mat-sidenav-container-elevation-shadow: 0px 8px 10px -5px rgba(0, 0, 0, .2), 0px 16px 24px 2px rgba(0, 0, 0, .14), 0px 6px 30px 5px rgba(0, 0, 0, .12);--mat-sidenav-container-width: auto}html{--mat-sidenav-container-divider-color: rgba(0, 0, 0, .12);--mat-sidenav-container-background-color: white;--mat-sidenav-container-text-color: rgba(0, 0, 0, .87);--mat-sidenav-content-background-color: #fafafa;--mat-sidenav-content-text-color: rgba(0, 0, 0, .87);--mat-sidenav-scrim-color: rgba(0, 0, 0, .6)}html{--mat-stepper-header-focus-state-layer-shape: 0;--mat-stepper-header-hover-state-layer-shape: 0}html{--mat-stepper-header-icon-foreground-color: #F8F9F9;--mat-stepper-header-selected-state-icon-background-color: #215f9e;--mat-stepper-header-selected-state-icon-foreground-color: #F8F9F9;--mat-stepper-header-done-state-icon-background-color: #215f9e;--mat-stepper-header-done-state-icon-foreground-color: #F8F9F9;--mat-stepper-header-edit-state-icon-background-color: #215f9e;--mat-stepper-header-edit-state-icon-foreground-color: #F8F9F9;--mat-stepper-container-color: white;--mat-stepper-line-color: rgba(0, 0, 0, .12);--mat-stepper-header-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-stepper-header-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-stepper-header-label-text-color: rgba(0, 0, 0, .54);--mat-stepper-header-optional-label-text-color: rgba(0, 0, 0, .54);--mat-stepper-header-selected-state-label-text-color: rgba(0, 0, 0, .87);--mat-stepper-header-error-state-label-text-color: #f44336;--mat-stepper-header-icon-background-color: rgba(0, 0, 0, .54);--mat-stepper-header-error-state-icon-foreground-color: #f44336;--mat-stepper-header-error-state-icon-background-color: transparent}.mat-step-header.mat-accent{--mat-stepper-header-icon-foreground-color: #F8F9F9;--mat-stepper-header-selected-state-icon-background-color: #a7a7a7;--mat-stepper-header-selected-state-icon-foreground-color: #F8F9F9;--mat-stepper-header-done-state-icon-background-color: #a7a7a7;--mat-stepper-header-done-state-icon-foreground-color: #F8F9F9;--mat-stepper-header-edit-state-icon-background-color: #a7a7a7;--mat-stepper-header-edit-state-icon-foreground-color: #F8F9F9}.mat-step-header.mat-warn{--mat-stepper-header-icon-foreground-color: white;--mat-stepper-header-selected-state-icon-background-color: #f44336;--mat-stepper-header-selected-state-icon-foreground-color: white;--mat-stepper-header-done-state-icon-background-color: #f44336;--mat-stepper-header-done-state-icon-foreground-color: white;--mat-stepper-header-edit-state-icon-background-color: #f44336;--mat-stepper-header-edit-state-icon-foreground-color: white}html{--mat-stepper-header-height: 72px}html{--mat-sort-arrow-color: rgba(0, 0, 0, .87)}html{--mat-toolbar-container-background-color: white;--mat-toolbar-container-text-color: rgba(0, 0, 0, .87)}.mat-toolbar.mat-primary{--mat-toolbar-container-background-color: #215f9e;--mat-toolbar-container-text-color: #F8F9F9}.mat-toolbar.mat-accent{--mat-toolbar-container-background-color: #a7a7a7;--mat-toolbar-container-text-color: #F8F9F9}.mat-toolbar.mat-warn{--mat-toolbar-container-background-color: #f44336;--mat-toolbar-container-text-color: white}html{--mat-toolbar-standard-height: 64px;--mat-toolbar-mobile-height: 56px}html{--mat-tree-container-background-color: white;--mat-tree-node-text-color: rgba(0, 0, 0, .87)}html{--mat-tree-node-min-height: 48px}html{--mat-timepicker-container-shape: 4px;--mat-timepicker-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-timepicker-container-background-color: white}.white-theme{--mat-app-background-color: #fafafa;--mat-app-text-color: rgba(0, 0, 0, .87);--mat-app-elevation-shadow-level-0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-2: 0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-3: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-4: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-5: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 5px 8px 0px rgba(0, 0, 0, .14), 0px 1px 14px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-6: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-7: 0px 4px 5px -2px rgba(0, 0, 0, .2), 0px 7px 10px 1px rgba(0, 0, 0, .14), 0px 2px 16px 1px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-8: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-9: 0px 5px 6px -3px rgba(0, 0, 0, .2), 0px 9px 12px 1px rgba(0, 0, 0, .14), 0px 3px 16px 2px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-10: 0px 6px 6px -3px rgba(0, 0, 0, .2), 0px 10px 14px 1px rgba(0, 0, 0, .14), 0px 4px 18px 3px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-11: 0px 6px 7px -4px rgba(0, 0, 0, .2), 0px 11px 15px 1px rgba(0, 0, 0, .14), 0px 4px 20px 3px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-12: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-13: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 13px 19px 2px rgba(0, 0, 0, .14), 0px 5px 24px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-14: 0px 7px 9px -4px rgba(0, 0, 0, .2), 0px 14px 21px 2px rgba(0, 0, 0, .14), 0px 5px 26px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-15: 0px 8px 9px -5px rgba(0, 0, 0, .2), 0px 15px 22px 2px rgba(0, 0, 0, .14), 0px 6px 28px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-16: 0px 8px 10px -5px rgba(0, 0, 0, .2), 0px 16px 24px 2px rgba(0, 0, 0, .14), 0px 6px 30px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-17: 0px 8px 11px -5px rgba(0, 0, 0, .2), 0px 17px 26px 2px rgba(0, 0, 0, .14), 0px 6px 32px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-18: 0px 9px 11px -5px rgba(0, 0, 0, .2), 0px 18px 28px 2px rgba(0, 0, 0, .14), 0px 7px 34px 6px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-19: 0px 9px 12px -6px rgba(0, 0, 0, .2), 0px 19px 29px 2px rgba(0, 0, 0, .14), 0px 7px 36px 6px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-20: 0px 10px 13px -6px rgba(0, 0, 0, .2), 0px 20px 31px 3px rgba(0, 0, 0, .14), 0px 8px 38px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-21: 0px 10px 13px -6px rgba(0, 0, 0, .2), 0px 21px 33px 3px rgba(0, 0, 0, .14), 0px 8px 40px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-22: 0px 10px 14px -6px rgba(0, 0, 0, .2), 0px 22px 35px 3px rgba(0, 0, 0, .14), 0px 8px 42px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-23: 0px 11px 14px -7px rgba(0, 0, 0, .2), 0px 23px 36px 3px rgba(0, 0, 0, .14), 0px 9px 44px 8px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-24: 0px 11px 15px -7px rgba(0, 0, 0, .2), 0px 24px 38px 3px rgba(0, 0, 0, .14), 0px 9px 46px 8px rgba(0, 0, 0, .12);--mat-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-option-selected-state-label-text-color: white;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-option-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-option-selected-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent)}.white-theme .mat-accent{--mat-option-selected-state-label-text-color: #a7a7a7;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-option-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-option-selected-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent)}.white-theme .mat-warn{--mat-option-selected-state-label-text-color: #f44336;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-option-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-option-selected-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent)}.white-theme{--mat-optgroup-label-text-color: rgba(0, 0, 0, .87);--mat-pseudo-checkbox-full-selected-icon-color: #a7a7a7;--mat-pseudo-checkbox-full-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-unselected-icon-color: rgba(0, 0, 0, .54);--mat-pseudo-checkbox-full-disabled-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-full-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-minimal-selected-checkmark-color: #a7a7a7;--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}.white-theme .mat-primary{--mat-pseudo-checkbox-full-selected-icon-color: white;--mat-pseudo-checkbox-full-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-unselected-icon-color: rgba(0, 0, 0, .54);--mat-pseudo-checkbox-full-disabled-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-full-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-minimal-selected-checkmark-color: white;--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}.white-theme .mat-accent{--mat-pseudo-checkbox-full-selected-icon-color: #a7a7a7;--mat-pseudo-checkbox-full-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-unselected-icon-color: rgba(0, 0, 0, .54);--mat-pseudo-checkbox-full-disabled-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-full-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-minimal-selected-checkmark-color: #a7a7a7;--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}.white-theme .mat-warn{--mat-pseudo-checkbox-full-selected-icon-color: #f44336;--mat-pseudo-checkbox-full-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-unselected-icon-color: rgba(0, 0, 0, .54);--mat-pseudo-checkbox-full-disabled-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-full-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-minimal-selected-checkmark-color: #f44336;--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}.white-theme{--mat-card-elevated-container-color: white;--mat-card-elevated-container-elevation: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-card-outlined-container-color: white;--mat-card-outlined-container-elevation: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-card-outlined-outline-color: rgba(0, 0, 0, .12);--mat-card-subtitle-text-color: rgba(0, 0, 0, .54);--mat-card-filled-container-color: white;--mat-card-filled-container-elevation: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12)}.white-theme .mat-mdc-progress-bar{--mat-progress-bar-active-indicator-color: white;--mat-progress-bar-track-color: rgba(255, 255, 255, .25)}.white-theme .mat-mdc-progress-bar.mat-accent{--mat-progress-bar-active-indicator-color: #a7a7a7;--mat-progress-bar-track-color: rgba(167, 167, 167, .25)}.white-theme .mat-mdc-progress-bar.mat-warn{--mat-progress-bar-active-indicator-color: #f44336;--mat-progress-bar-track-color: rgba(244, 67, 54, .25)}.white-theme{--mat-tooltip-container-color: #424242;--mat-tooltip-supporting-text-color: white;--mat-form-field-focus-select-arrow-color: color-mix(in srgb, white 87%, transparent);--mat-form-field-filled-caret-color: white;--mat-form-field-filled-focus-active-indicator-color: white;--mat-form-field-filled-focus-label-text-color: color-mix(in srgb, white 87%, transparent);--mat-form-field-outlined-caret-color: white;--mat-form-field-outlined-focus-outline-color: white;--mat-form-field-outlined-focus-label-text-color: color-mix(in srgb, white 87%, transparent);--mat-form-field-disabled-input-text-placeholder-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-state-layer-color: rgba(0, 0, 0, .87);--mat-form-field-error-text-color: #f44336;--mat-form-field-select-option-text-color: inherit;--mat-form-field-select-disabled-option-text-color: GrayText;--mat-form-field-leading-icon-color: unset;--mat-form-field-disabled-leading-icon-color: unset;--mat-form-field-trailing-icon-color: unset;--mat-form-field-disabled-trailing-icon-color: unset;--mat-form-field-error-focus-trailing-icon-color: unset;--mat-form-field-error-hover-trailing-icon-color: unset;--mat-form-field-error-trailing-icon-color: unset;--mat-form-field-enabled-select-arrow-color: rgba(0, 0, 0, .54);--mat-form-field-disabled-select-arrow-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-hover-state-layer-opacity: .04;--mat-form-field-focus-state-layer-opacity: .12;--mat-form-field-filled-container-color: #f6f6f6;--mat-form-field-filled-disabled-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-form-field-filled-label-text-color: rgba(0, 0, 0, .54);--mat-form-field-filled-hover-label-text-color: rgba(0, 0, 0, .54);--mat-form-field-filled-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-filled-input-text-color: rgba(0, 0, 0, .87);--mat-form-field-filled-disabled-input-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-filled-input-text-placeholder-color: rgba(0, 0, 0, .54);--mat-form-field-filled-error-hover-label-text-color: #f44336;--mat-form-field-filled-error-focus-label-text-color: #f44336;--mat-form-field-filled-error-label-text-color: #f44336;--mat-form-field-filled-error-caret-color: #f44336;--mat-form-field-filled-active-indicator-color: rgba(0, 0, 0, .54);--mat-form-field-filled-disabled-active-indicator-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-form-field-filled-hover-active-indicator-color: rgba(0, 0, 0, .87);--mat-form-field-filled-error-active-indicator-color: #f44336;--mat-form-field-filled-error-focus-active-indicator-color: #f44336;--mat-form-field-filled-error-hover-active-indicator-color: #f44336;--mat-form-field-outlined-label-text-color: rgba(0, 0, 0, .54);--mat-form-field-outlined-hover-label-text-color: rgba(0, 0, 0, .87);--mat-form-field-outlined-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-outlined-input-text-color: rgba(0, 0, 0, .87);--mat-form-field-outlined-disabled-input-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-outlined-input-text-placeholder-color: rgba(0, 0, 0, .54);--mat-form-field-outlined-error-caret-color: #f44336;--mat-form-field-outlined-error-focus-label-text-color: #f44336;--mat-form-field-outlined-error-label-text-color: #f44336;--mat-form-field-outlined-error-hover-label-text-color: #f44336;--mat-form-field-outlined-outline-color: rgba(0, 0, 0, .38);--mat-form-field-outlined-disabled-outline-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-form-field-outlined-hover-outline-color: rgba(0, 0, 0, .87);--mat-form-field-outlined-error-focus-outline-color: #f44336;--mat-form-field-outlined-error-hover-outline-color: #f44336;--mat-form-field-outlined-error-outline-color: #f44336}.white-theme .mat-mdc-form-field.mat-accent{--mat-form-field-focus-select-arrow-color: color-mix(in srgb, #a7a7a7 87%, transparent);--mat-form-field-filled-caret-color: #a7a7a7;--mat-form-field-filled-focus-active-indicator-color: #a7a7a7;--mat-form-field-filled-focus-label-text-color: color-mix(in srgb, #a7a7a7 87%, transparent);--mat-form-field-outlined-caret-color: #a7a7a7;--mat-form-field-outlined-focus-outline-color: #a7a7a7;--mat-form-field-outlined-focus-label-text-color: color-mix(in srgb, #a7a7a7 87%, transparent)}.white-theme .mat-mdc-form-field.mat-warn{--mat-form-field-focus-select-arrow-color: color-mix(in srgb, #f44336 87%, transparent);--mat-form-field-filled-caret-color: #f44336;--mat-form-field-filled-focus-active-indicator-color: #f44336;--mat-form-field-filled-focus-label-text-color: color-mix(in srgb, #f44336 87%, transparent);--mat-form-field-outlined-caret-color: #f44336;--mat-form-field-outlined-focus-outline-color: #f44336;--mat-form-field-outlined-focus-label-text-color: color-mix(in srgb, #f44336 87%, transparent)}.white-theme{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-placeholder-text-color: rgba(0, 0, 0, .54);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-focused-arrow-color: white;--mat-select-invalid-arrow-color: #f44336}.white-theme .mat-mdc-form-field.mat-accent{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-placeholder-text-color: rgba(0, 0, 0, .54);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-focused-arrow-color: #a7a7a7;--mat-select-invalid-arrow-color: #f44336}.white-theme .mat-mdc-form-field.mat-warn{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-placeholder-text-color: rgba(0, 0, 0, .54);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-focused-arrow-color: #f44336;--mat-select-invalid-arrow-color: #f44336}.white-theme{--mat-autocomplete-background-color: white;--mat-dialog-container-color: white;--mat-dialog-subhead-color: rgba(0, 0, 0, .87);--mat-dialog-supporting-text-color: rgba(0, 0, 0, .54)}.white-theme .mat-mdc-standard-chip{--mat-chip-disabled-label-text-color: rgba(0, 0, 0, .87);--mat-chip-elevated-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-chip-elevated-disabled-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-chip-elevated-selected-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-chip-flat-disabled-selected-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-chip-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-focus-state-layer-opacity: .12;--mat-chip-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-label-text-color: rgba(0, 0, 0, .87);--mat-chip-selected-disabled-trailing-icon-color: rgba(0, 0, 0, .87);--mat-chip-selected-focus-state-layer-color: .12;--mat-chip-selected-focus-state-layer-opacity: .12;--mat-chip-selected-hover-state-layer-color: .04;--mat-chip-selected-label-text-color: rgba(0, 0, 0, .87);--mat-chip-selected-trailing-icon-color: rgba(0, 0, 0, .87);--mat-chip-with-icon-disabled-icon-color: rgba(0, 0, 0, .87);--mat-chip-with-icon-icon-color: rgba(0, 0, 0, .87);--mat-chip-with-icon-selected-icon-color: rgba(0, 0, 0, .87);--mat-chip-with-trailing-icon-disabled-trailing-icon-color: rgba(0, 0, 0, .87);--mat-chip-with-trailing-icon-trailing-icon-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-standard-chip.mat-mdc-chip-selected.mat-primary,.white-theme .mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-primary{--mat-chip-disabled-label-text-color: white;--mat-chip-elevated-container-color: white;--mat-chip-elevated-disabled-container-color: white;--mat-chip-elevated-selected-container-color: white;--mat-chip-flat-disabled-selected-container-color: white;--mat-chip-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-focus-state-layer-opacity: .12;--mat-chip-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-label-text-color: white;--mat-chip-selected-disabled-trailing-icon-color: white;--mat-chip-selected-focus-state-layer-color: .12;--mat-chip-selected-focus-state-layer-opacity: .12;--mat-chip-selected-hover-state-layer-color: .04;--mat-chip-selected-label-text-color: white;--mat-chip-selected-trailing-icon-color: white;--mat-chip-with-icon-disabled-icon-color: white;--mat-chip-with-icon-icon-color: white;--mat-chip-with-icon-selected-icon-color: white;--mat-chip-with-trailing-icon-disabled-trailing-icon-color: white;--mat-chip-with-trailing-icon-trailing-icon-color: white}.white-theme .mat-mdc-standard-chip.mat-mdc-chip-selected.mat-accent,.white-theme .mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-accent{--mat-chip-disabled-label-text-color: #F8F9F9;--mat-chip-elevated-container-color: #a7a7a7;--mat-chip-elevated-disabled-container-color: #a7a7a7;--mat-chip-elevated-selected-container-color: #a7a7a7;--mat-chip-flat-disabled-selected-container-color: #a7a7a7;--mat-chip-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-focus-state-layer-opacity: .12;--mat-chip-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-label-text-color: #F8F9F9;--mat-chip-selected-disabled-trailing-icon-color: #F8F9F9;--mat-chip-selected-focus-state-layer-color: .12;--mat-chip-selected-focus-state-layer-opacity: .12;--mat-chip-selected-hover-state-layer-color: .04;--mat-chip-selected-label-text-color: #F8F9F9;--mat-chip-selected-trailing-icon-color: #F8F9F9;--mat-chip-with-icon-disabled-icon-color: #F8F9F9;--mat-chip-with-icon-icon-color: #F8F9F9;--mat-chip-with-icon-selected-icon-color: #F8F9F9;--mat-chip-with-trailing-icon-disabled-trailing-icon-color: #F8F9F9;--mat-chip-with-trailing-icon-trailing-icon-color: #F8F9F9}.white-theme .mat-mdc-standard-chip.mat-mdc-chip-selected.mat-warn,.white-theme .mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-warn{--mat-chip-disabled-label-text-color: white;--mat-chip-elevated-container-color: #f44336;--mat-chip-elevated-disabled-container-color: #f44336;--mat-chip-elevated-selected-container-color: #f44336;--mat-chip-flat-disabled-selected-container-color: #f44336;--mat-chip-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-focus-state-layer-opacity: .12;--mat-chip-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-label-text-color: white;--mat-chip-selected-disabled-trailing-icon-color: white;--mat-chip-selected-focus-state-layer-color: .12;--mat-chip-selected-focus-state-layer-opacity: .12;--mat-chip-selected-hover-state-layer-color: .04;--mat-chip-selected-label-text-color: white;--mat-chip-selected-trailing-icon-color: white;--mat-chip-with-icon-disabled-icon-color: white;--mat-chip-with-icon-icon-color: white;--mat-chip-with-icon-selected-icon-color: white;--mat-chip-with-trailing-icon-disabled-trailing-icon-color: white;--mat-chip-with-trailing-icon-trailing-icon-color: white}.white-theme{--mat-slide-toggle-selected-icon-color: white;--mat-slide-toggle-disabled-selected-icon-color: white;--mat-slide-toggle-selected-focus-state-layer-color: white;--mat-slide-toggle-selected-handle-color: white;--mat-slide-toggle-selected-hover-state-layer-color: white;--mat-slide-toggle-selected-pressed-state-layer-color: white;--mat-slide-toggle-selected-focus-handle-color: white;--mat-slide-toggle-selected-hover-handle-color: white;--mat-slide-toggle-selected-pressed-handle-color: white;--mat-slide-toggle-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-slide-toggle-disabled-handle-elevation-shadow: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-slide-toggle-disabled-selected-handle-color: rgba(0, 0, 0, .87);--mat-slide-toggle-disabled-selected-track-color: rgba(0, 0, 0, .87);--mat-slide-toggle-disabled-unselected-handle-color: rgba(0, 0, 0, .87);--mat-slide-toggle-disabled-unselected-icon-color: #f6f6f6;--mat-slide-toggle-disabled-unselected-track-color: rgba(0, 0, 0, .87);--mat-slide-toggle-handle-elevation-shadow: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-slide-toggle-handle-surface-color: white;--mat-slide-toggle-label-text-color: rgba(0, 0, 0, .87);--mat-slide-toggle-unselected-hover-handle-color: #424242;--mat-slide-toggle-unselected-focus-handle-color: #424242;--mat-slide-toggle-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-slide-toggle-unselected-focus-track-color: rgba(0, 0, 0, .12);--mat-slide-toggle-unselected-icon-color: #f6f6f6;--mat-slide-toggle-unselected-handle-color: rgba(0, 0, 0, .54);--mat-slide-toggle-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-slide-toggle-unselected-hover-track-color: rgba(0, 0, 0, .12);--mat-slide-toggle-unselected-pressed-handle-color: #424242;--mat-slide-toggle-unselected-pressed-track-color: rgba(0, 0, 0, .12);--mat-slide-toggle-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87);--mat-slide-toggle-unselected-track-color: rgba(0, 0, 0, .12)}.white-theme .mat-mdc-slide-toggle.mat-accent{--mat-slide-toggle-selected-icon-color: #F8F9F9;--mat-slide-toggle-disabled-selected-icon-color: #F8F9F9;--mat-slide-toggle-selected-focus-state-layer-color: #a7a7a7;--mat-slide-toggle-selected-handle-color: #a7a7a7;--mat-slide-toggle-selected-hover-state-layer-color: #a7a7a7;--mat-slide-toggle-selected-pressed-state-layer-color: #a7a7a7;--mat-slide-toggle-selected-focus-handle-color: #a7a7a7;--mat-slide-toggle-selected-hover-handle-color: #a7a7a7;--mat-slide-toggle-selected-pressed-handle-color: #a7a7a7}.white-theme .mat-mdc-slide-toggle.mat-warn{--mat-slide-toggle-selected-icon-color: white;--mat-slide-toggle-disabled-selected-icon-color: white;--mat-slide-toggle-selected-focus-state-layer-color: #f44336;--mat-slide-toggle-selected-handle-color: #f44336;--mat-slide-toggle-selected-hover-state-layer-color: #f44336;--mat-slide-toggle-selected-pressed-state-layer-color: #f44336;--mat-slide-toggle-selected-focus-handle-color: #f44336;--mat-slide-toggle-selected-hover-handle-color: #f44336;--mat-slide-toggle-selected-pressed-handle-color: #f44336;--mat-slide-toggle-selected-focus-track-color: #e57373;--mat-slide-toggle-selected-hover-track-color: #e57373;--mat-slide-toggle-selected-pressed-track-color: #e57373;--mat-slide-toggle-selected-track-color: #e57373}.white-theme .mat-mdc-radio-button.mat-primary{--mat-radio-checked-ripple-color: white;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: white;--mat-radio-selected-hover-icon-color: white;--mat-radio-selected-icon-color: white;--mat-radio-selected-pressed-icon-color: white;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-radio-button.mat-accent{--mat-radio-checked-ripple-color: #a7a7a7;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: #a7a7a7;--mat-radio-selected-hover-icon-color: #a7a7a7;--mat-radio-selected-icon-color: #a7a7a7;--mat-radio-selected-pressed-icon-color: #a7a7a7;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-radio-button.mat-warn{--mat-radio-checked-ripple-color: #f44336;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: #f44336;--mat-radio-selected-hover-icon-color: #f44336;--mat-radio-selected-icon-color: #f44336;--mat-radio-selected-pressed-icon-color: #f44336;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.white-theme{--mat-slider-active-track-color: white;--mat-slider-focus-handle-color: white;--mat-slider-handle-color: white;--mat-slider-hover-handle-color: white;--mat-slider-focus-state-layer-color: color-mix(in srgb, white 12%, transparent);--mat-slider-hover-state-layer-color: color-mix(in srgb, white 4%, transparent);--mat-slider-inactive-track-color: white;--mat-slider-ripple-color: white;--mat-slider-with-tick-marks-active-container-color: white;--mat-slider-with-tick-marks-inactive-container-color: white;--mat-slider-disabled-active-track-color: rgba(0, 0, 0, .87);--mat-slider-disabled-handle-color: rgba(0, 0, 0, .87);--mat-slider-disabled-inactive-track-color: rgba(0, 0, 0, .87);--mat-slider-label-container-color: #424242;--mat-slider-label-label-text-color: white;--mat-slider-value-indicator-opacity: 1;--mat-slider-with-overlap-handle-outline-color: rgba(0, 0, 0, .87);--mat-slider-with-tick-marks-disabled-container-color: rgba(0, 0, 0, .87)}.white-theme .mat-accent{--mat-slider-active-track-color: #a7a7a7;--mat-slider-focus-handle-color: #a7a7a7;--mat-slider-handle-color: #a7a7a7;--mat-slider-hover-handle-color: #a7a7a7;--mat-slider-focus-state-layer-color: color-mix(in srgb, #a7a7a7 12%, transparent);--mat-slider-hover-state-layer-color: color-mix(in srgb, #a7a7a7 4%, transparent);--mat-slider-inactive-track-color: #a7a7a7;--mat-slider-ripple-color: #a7a7a7;--mat-slider-with-tick-marks-active-container-color: #F8F9F9;--mat-slider-with-tick-marks-inactive-container-color: #a7a7a7}.white-theme .mat-warn{--mat-slider-active-track-color: #f44336;--mat-slider-focus-handle-color: #f44336;--mat-slider-handle-color: #f44336;--mat-slider-hover-handle-color: #f44336;--mat-slider-focus-state-layer-color: color-mix(in srgb, #f44336 12%, transparent);--mat-slider-hover-state-layer-color: color-mix(in srgb, #f44336 4%, transparent);--mat-slider-inactive-track-color: #f44336;--mat-slider-ripple-color: #f44336;--mat-slider-with-tick-marks-active-container-color: white;--mat-slider-with-tick-marks-inactive-container-color: #f44336}.white-theme{--mat-menu-item-label-text-color: rgba(0, 0, 0, .87);--mat-menu-item-icon-color: rgba(0, 0, 0, .87);--mat-menu-item-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-menu-item-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-menu-container-color: white;--mat-menu-divider-color: rgba(0, 0, 0, .12);--mat-list-list-item-label-text-color: rgba(0, 0, 0, .87);--mat-list-list-item-supporting-text-color: rgba(0, 0, 0, .54);--mat-list-list-item-leading-icon-color: rgba(0, 0, 0, .54);--mat-list-list-item-trailing-supporting-text-color: rgba(0, 0, 0, .54);--mat-list-list-item-trailing-icon-color: rgba(0, 0, 0, .54);--mat-list-list-item-selected-trailing-icon-color: rgba(0, 0, 0, .54);--mat-list-list-item-disabled-label-text-color: rgba(0, 0, 0, .87);--mat-list-list-item-disabled-leading-icon-color: rgba(0, 0, 0, .87);--mat-list-list-item-disabled-trailing-icon-color: rgba(0, 0, 0, .87);--mat-list-list-item-hover-label-text-color: rgba(0, 0, 0, .87);--mat-list-list-item-hover-leading-icon-color: rgba(0, 0, 0, .54);--mat-list-list-item-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-list-list-item-hover-state-layer-opacity: .04;--mat-list-list-item-hover-trailing-icon-color: rgba(0, 0, 0, .54);--mat-list-list-item-focus-label-text-color: rgba(0, 0, 0, .87);--mat-list-list-item-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-list-list-item-focus-state-layer-opacity: .12}.white-theme .mdc-list-item__start,.white-theme .mdc-list-item__end{--mat-radio-checked-ripple-color: white;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: white;--mat-radio-selected-hover-icon-color: white;--mat-radio-selected-icon-color: white;--mat-radio-selected-pressed-icon-color: white;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.white-theme .mat-accent .mdc-list-item__start,.white-theme .mat-accent .mdc-list-item__end{--mat-radio-checked-ripple-color: #a7a7a7;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: #a7a7a7;--mat-radio-selected-hover-icon-color: #a7a7a7;--mat-radio-selected-icon-color: #a7a7a7;--mat-radio-selected-pressed-icon-color: #a7a7a7;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.white-theme .mat-warn .mdc-list-item__start,.white-theme .mat-warn .mdc-list-item__end{--mat-radio-checked-ripple-color: #f44336;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: #f44336;--mat-radio-selected-hover-icon-color: #f44336;--mat-radio-selected-icon-color: #f44336;--mat-radio-selected-pressed-icon-color: #f44336;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-list-option{--mat-checkbox-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-label-text-color: rgba(0, 0, 0, .87);--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: white;--mat-checkbox-selected-focus-icon-color: white;--mat-checkbox-selected-hover-icon-color: white;--mat-checkbox-selected-icon-color: white;--mat-checkbox-selected-pressed-icon-color: white;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: white;--mat-checkbox-selected-hover-state-layer-color: white;--mat-checkbox-selected-pressed-state-layer-color: white;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-list-option.mat-accent{--mat-checkbox-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-label-text-color: rgba(0, 0, 0, .87);--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: #F8F9F9;--mat-checkbox-selected-focus-icon-color: #a7a7a7;--mat-checkbox-selected-hover-icon-color: #a7a7a7;--mat-checkbox-selected-icon-color: #a7a7a7;--mat-checkbox-selected-pressed-icon-color: #a7a7a7;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: #a7a7a7;--mat-checkbox-selected-hover-state-layer-color: #a7a7a7;--mat-checkbox-selected-pressed-state-layer-color: #a7a7a7;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-list-option.mat-warn{--mat-checkbox-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-label-text-color: rgba(0, 0, 0, .87);--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: white;--mat-checkbox-selected-focus-icon-color: #f44336;--mat-checkbox-selected-hover-icon-color: #f44336;--mat-checkbox-selected-icon-color: #f44336;--mat-checkbox-selected-pressed-icon-color: #f44336;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: #f44336;--mat-checkbox-selected-hover-state-layer-color: #f44336;--mat-checkbox-selected-pressed-state-layer-color: #f44336;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected .mdc-list-item__primary-text,.white-theme .mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected .mdc-list-item__start,.white-theme .mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated .mdc-list-item__primary-text,.white-theme .mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated .mdc-list-item__start{color:#fff}.white-theme .mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__start,.white-theme .mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__content,.white-theme .mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__end{opacity:1}.white-theme{--mat-paginator-container-text-color: rgba(0, 0, 0, .87);--mat-paginator-container-background-color: white;--mat-paginator-enabled-icon-color: rgba(0, 0, 0, .54);--mat-paginator-disabled-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}.white-theme .mat-mdc-tab-group,.white-theme .mat-mdc-tab-nav-bar{--mat-tab-disabled-ripple-color: rgba(0, 0, 0, .54);--mat-tab-pagination-icon-color: rgba(0, 0, 0, .87);--mat-tab-inactive-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-label-text-color: white;--mat-tab-active-ripple-color: white;--mat-tab-inactive-ripple-color: white;--mat-tab-inactive-focus-label-text-color: rgba(0, 0, 0, .54);--mat-tab-inactive-hover-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-focus-label-text-color: white;--mat-tab-active-hover-label-text-color: white;--mat-tab-active-focus-indicator-color: white;--mat-tab-active-hover-indicator-color: white;--mat-tab-active-indicator-color: white}.white-theme .mat-mdc-tab-group.mat-accent,.white-theme .mat-mdc-tab-nav-bar.mat-accent{--mat-tab-disabled-ripple-color: rgba(0, 0, 0, .54);--mat-tab-pagination-icon-color: rgba(0, 0, 0, .87);--mat-tab-inactive-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-label-text-color: #a7a7a7;--mat-tab-active-ripple-color: #a7a7a7;--mat-tab-inactive-ripple-color: #a7a7a7;--mat-tab-inactive-focus-label-text-color: rgba(0, 0, 0, .54);--mat-tab-inactive-hover-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-focus-label-text-color: #a7a7a7;--mat-tab-active-hover-label-text-color: #a7a7a7;--mat-tab-active-focus-indicator-color: #a7a7a7;--mat-tab-active-hover-indicator-color: #a7a7a7;--mat-tab-active-indicator-color: #a7a7a7}.white-theme .mat-mdc-tab-group.mat-warn,.white-theme .mat-mdc-tab-nav-bar.mat-warn{--mat-tab-disabled-ripple-color: rgba(0, 0, 0, .54);--mat-tab-pagination-icon-color: rgba(0, 0, 0, .87);--mat-tab-inactive-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-label-text-color: #f44336;--mat-tab-active-ripple-color: #f44336;--mat-tab-inactive-ripple-color: #f44336;--mat-tab-inactive-focus-label-text-color: rgba(0, 0, 0, .54);--mat-tab-inactive-hover-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-focus-label-text-color: #f44336;--mat-tab-active-hover-label-text-color: #f44336;--mat-tab-active-focus-indicator-color: #f44336;--mat-tab-active-hover-indicator-color: #f44336;--mat-tab-active-indicator-color: #f44336}.white-theme .mat-mdc-tab-group.mat-background-primary,.white-theme .mat-mdc-tab-nav-bar.mat-background-primary{--mat-tab-background-color: white;--mat-tab-foreground-color: white}.white-theme .mat-mdc-tab-group.mat-background-accent,.white-theme .mat-mdc-tab-nav-bar.mat-background-accent{--mat-tab-background-color: #a7a7a7;--mat-tab-foreground-color: #F8F9F9}.white-theme .mat-mdc-tab-group.mat-background-warn,.white-theme .mat-mdc-tab-nav-bar.mat-background-warn{--mat-tab-background-color: #f44336;--mat-tab-foreground-color: white}.white-theme{--mat-checkbox-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-label-text-color: rgba(0, 0, 0, .87);--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: #F8F9F9;--mat-checkbox-selected-focus-icon-color: #a7a7a7;--mat-checkbox-selected-hover-icon-color: #a7a7a7;--mat-checkbox-selected-icon-color: #a7a7a7;--mat-checkbox-selected-pressed-icon-color: #a7a7a7;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: #a7a7a7;--mat-checkbox-selected-hover-state-layer-color: #a7a7a7;--mat-checkbox-selected-pressed-state-layer-color: #a7a7a7;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-checkbox.mat-primary{--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: white;--mat-checkbox-selected-focus-icon-color: white;--mat-checkbox-selected-hover-icon-color: white;--mat-checkbox-selected-icon-color: white;--mat-checkbox-selected-pressed-icon-color: white;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: white;--mat-checkbox-selected-hover-state-layer-color: white;--mat-checkbox-selected-pressed-state-layer-color: white;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-checkbox.mat-warn{--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: white;--mat-checkbox-selected-focus-icon-color: #f44336;--mat-checkbox-selected-hover-icon-color: #f44336;--mat-checkbox-selected-icon-color: #f44336;--mat-checkbox-selected-pressed-icon-color: #f44336;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: #f44336;--mat-checkbox-selected-hover-state-layer-color: #f44336;--mat-checkbox-selected-pressed-state-layer-color: #f44336;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.white-theme{--mat-button-filled-container-color: white;--mat-button-filled-disabled-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-filled-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-filled-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-button-filled-focus-state-layer-opacity: .12;--mat-button-filled-hover-state-layer-opacity: .04;--mat-button-filled-label-text-color: rgba(0, 0, 0, .87);--mat-button-filled-pressed-state-layer-opacity: .12;--mat-button-filled-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-filled-state-layer-color: rgba(0, 0, 0, .87);--mat-button-outlined-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-outlined-disabled-outline-color: rgba(0, 0, 0, .12);--mat-button-outlined-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-button-outlined-focus-state-layer-opacity: .12;--mat-button-outlined-hover-state-layer-opacity: .04;--mat-button-outlined-label-text-color: rgba(0, 0, 0, .87);--mat-button-outlined-outline-color: rgba(0, 0, 0, .12);--mat-button-outlined-pressed-state-layer-opacity: .12;--mat-button-outlined-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-outlined-state-layer-color: rgba(0, 0, 0, .87);--mat-button-protected-container-color: white;--mat-button-protected-disabled-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-protected-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-protected-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-button-protected-focus-state-layer-opacity: .12;--mat-button-protected-hover-state-layer-opacity: .04;--mat-button-protected-label-text-color: rgba(0, 0, 0, .87);--mat-button-protected-pressed-state-layer-opacity: .12;--mat-button-protected-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-protected-state-layer-color: rgba(0, 0, 0, .87);--mat-button-text-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-text-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-button-text-focus-state-layer-opacity: .12;--mat-button-text-hover-state-layer-opacity: .04;--mat-button-text-label-text-color: rgba(0, 0, 0, .87);--mat-button-text-pressed-state-layer-opacity: .12;--mat-button-text-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-text-state-layer-color: rgba(0, 0, 0, .87);--mat-button-tonal-container-color: white;--mat-button-tonal-disabled-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-tonal-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-tonal-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-button-tonal-focus-state-layer-opacity: .12;--mat-button-tonal-hover-state-layer-opacity: .04;--mat-button-tonal-label-text-color: rgba(0, 0, 0, .87);--mat-button-tonal-pressed-state-layer-opacity: .12;--mat-button-tonal-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-tonal-state-layer-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-button.mat-primary,.white-theme .mat-mdc-unelevated-button.mat-primary,.white-theme .mat-mdc-raised-button.mat-primary,.white-theme .mat-mdc-outlined-button.mat-primary,.white-theme .mat-tonal-button.mat-primary{--mat-button-filled-container-color: white;--mat-button-filled-label-text-color: white;--mat-button-filled-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-filled-state-layer-color: white;--mat-button-outlined-label-text-color: white;--mat-button-outlined-outline-color: rgba(0, 0, 0, .12);--mat-button-outlined-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-outlined-state-layer-color: white;--mat-button-protected-container-color: white;--mat-button-protected-label-text-color: white;--mat-button-protected-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-protected-state-layer-color: white;--mat-button-text-label-text-color: white;--mat-button-text-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-text-state-layer-color: white;--mat-button-tonal-container-color: white;--mat-button-tonal-label-text-color: white;--mat-button-tonal-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-tonal-state-layer-color: white}.white-theme .mat-mdc-button.mat-accent,.white-theme .mat-mdc-unelevated-button.mat-accent,.white-theme .mat-mdc-raised-button.mat-accent,.white-theme .mat-mdc-outlined-button.mat-accent,.white-theme .mat-tonal-button.mat-accent{--mat-button-filled-container-color: #a7a7a7;--mat-button-filled-label-text-color: #F8F9F9;--mat-button-filled-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-button-filled-state-layer-color: #F8F9F9;--mat-button-outlined-label-text-color: #a7a7a7;--mat-button-outlined-outline-color: rgba(0, 0, 0, .12);--mat-button-outlined-ripple-color: color-mix(in srgb, #a7a7a7 12%, transparent);--mat-button-outlined-state-layer-color: #a7a7a7;--mat-button-protected-container-color: #a7a7a7;--mat-button-protected-label-text-color: #F8F9F9;--mat-button-protected-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-button-protected-state-layer-color: #F8F9F9;--mat-button-text-label-text-color: #a7a7a7;--mat-button-text-ripple-color: color-mix(in srgb, #a7a7a7 12%, transparent);--mat-button-text-state-layer-color: #a7a7a7;--mat-button-tonal-container-color: #a7a7a7;--mat-button-tonal-label-text-color: #F8F9F9;--mat-button-tonal-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-button-tonal-state-layer-color: #F8F9F9}.white-theme .mat-mdc-button.mat-warn,.white-theme .mat-mdc-unelevated-button.mat-warn,.white-theme .mat-mdc-raised-button.mat-warn,.white-theme .mat-mdc-outlined-button.mat-warn,.white-theme .mat-tonal-button.mat-warn{--mat-button-filled-container-color: #f44336;--mat-button-filled-label-text-color: white;--mat-button-filled-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-filled-state-layer-color: white;--mat-button-outlined-label-text-color: #f44336;--mat-button-outlined-outline-color: rgba(0, 0, 0, .12);--mat-button-outlined-ripple-color: color-mix(in srgb, #f44336 12%, transparent);--mat-button-outlined-state-layer-color: #f44336;--mat-button-protected-container-color: #f44336;--mat-button-protected-label-text-color: white;--mat-button-protected-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-protected-state-layer-color: white;--mat-button-text-label-text-color: #f44336;--mat-button-text-ripple-color: color-mix(in srgb, #f44336 12%, transparent);--mat-button-text-state-layer-color: #f44336;--mat-button-tonal-container-color: #f44336;--mat-button-tonal-label-text-color: white;--mat-button-tonal-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-tonal-state-layer-color: white}.white-theme{--mat-icon-button-disabled-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-icon-button-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-icon-button-focus-state-layer-opacity: .12;--mat-icon-button-hover-state-layer-opacity: .04;--mat-icon-button-icon-color: inherit;--mat-icon-button-pressed-state-layer-opacity: .12;--mat-icon-button-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-icon-button-state-layer-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-icon-button.mat-primary{--mat-icon-button-icon-color: white;--mat-icon-button-state-layer-color: white;--mat-icon-button-ripple-color: color-mix(in srgb, white 12%, transparent)}.white-theme .mat-mdc-icon-button.mat-accent{--mat-icon-button-icon-color: #a7a7a7;--mat-icon-button-state-layer-color: #a7a7a7;--mat-icon-button-ripple-color: color-mix(in srgb, #a7a7a7 12%, transparent)}.white-theme .mat-mdc-icon-button.mat-warn{--mat-icon-button-icon-color: #f44336;--mat-icon-button-state-layer-color: #f44336;--mat-icon-button-ripple-color: color-mix(in srgb, #f44336 12%, transparent)}.white-theme{--mat-fab-container-color: white;--mat-fab-disabled-state-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-fab-disabled-state-foreground-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-fab-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-fab-focus-state-layer-opacity: .12;--mat-fab-foreground-color: rgba(0, 0, 0, .87);--mat-fab-hover-state-layer-opacity: .04;--mat-fab-pressed-state-layer-opacity: .12;--mat-fab-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-fab-small-container-color: white;--mat-fab-small-disabled-state-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-fab-small-disabled-state-foreground-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-fab-small-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-fab-small-focus-state-layer-opacity: .12;--mat-fab-small-foreground-color: rgba(0, 0, 0, .87);--mat-fab-small-hover-state-layer-opacity: .04;--mat-fab-small-pressed-state-layer-opacity: .12;--mat-fab-small-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-fab-small-state-layer-color: rgba(0, 0, 0, .87);--mat-fab-state-layer-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-fab.mat-primary,.white-theme .mat-mdc-mini-fab.mat-primary{--mat-fab-container-color: white;--mat-fab-foreground-color: white;--mat-fab-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-fab-small-container-color: white;--mat-fab-small-foreground-color: white;--mat-fab-small-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-fab-small-state-layer-color: white;--mat-fab-state-layer-color: white}.white-theme .mat-mdc-fab.mat-accent,.white-theme .mat-mdc-mini-fab.mat-accent{--mat-fab-container-color: #a7a7a7;--mat-fab-foreground-color: #F8F9F9;--mat-fab-ripple-color: color-mix(in srgb, #a7a7a7 12%, transparent);--mat-fab-small-container-color: #a7a7a7;--mat-fab-small-foreground-color: #F8F9F9;--mat-fab-small-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-fab-small-state-layer-color: #F8F9F9;--mat-fab-state-layer-color: #F8F9F9}.white-theme .mat-mdc-fab.mat-warn,.white-theme .mat-mdc-mini-fab.mat-warn{--mat-fab-container-color: #f44336;--mat-fab-foreground-color: white;--mat-fab-ripple-color: color-mix(in srgb, #f44336 12%, transparent);--mat-fab-small-container-color: #f44336;--mat-fab-small-foreground-color: white;--mat-fab-small-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-fab-small-state-layer-color: white;--mat-fab-state-layer-color: white}.white-theme{--mat-snack-bar-container-color: #424242;--mat-snack-bar-supporting-text-color: white;--mat-table-background-color: white;--mat-table-header-headline-color: rgba(0, 0, 0, .87);--mat-table-row-item-label-text-color: rgba(0, 0, 0, .87);--mat-table-row-item-outline-color: rgba(0, 0, 0, .12);--mat-progress-spinner-active-indicator-color: white}.white-theme .mat-accent{--mat-progress-spinner-active-indicator-color: #a7a7a7}.white-theme .mat-warn{--mat-progress-spinner-active-indicator-color: #f44336}.white-theme{--mat-badge-background-color: white;--mat-badge-text-color: white;--mat-badge-disabled-state-background-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-badge-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}.white-theme .mat-badge-accent{--mat-badge-background-color: #a7a7a7;--mat-badge-text-color: #F8F9F9}.white-theme .mat-badge-warn{--mat-badge-background-color: #f44336;--mat-badge-text-color: white}.white-theme{--mat-bottom-sheet-container-text-color: rgba(0, 0, 0, .87);--mat-bottom-sheet-container-background-color: white;--mat-button-toggle-background-color: white;--mat-button-toggle-disabled-selected-state-background-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-toggle-disabled-selected-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-toggle-disabled-state-background-color: white;--mat-button-toggle-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-toggle-divider-color: rgba(0, 0, 0, .12);--mat-button-toggle-legacy-disabled-selected-state-background-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-toggle-legacy-disabled-state-background-color: white;--mat-button-toggle-legacy-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-toggle-legacy-selected-state-background-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-toggle-legacy-selected-state-text-color: rgba(0, 0, 0, .87);--mat-button-toggle-legacy-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-toggle-legacy-text-color: rgba(0, 0, 0, .87);--mat-button-toggle-selected-state-background-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-toggle-selected-state-text-color: rgba(0, 0, 0, .87);--mat-button-toggle-state-layer-color: rgba(0, 0, 0, .87);--mat-button-toggle-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-date-in-range-state-background-color: color-mix(in srgb, white 20%, transparent);--mat-datepicker-calendar-date-in-comparison-range-state-background-color: color-mix(in srgb, #a7a7a7 20%, transparent);--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: rgb(69.5241935484, 163.4758064516, 93.9516129032);--mat-datepicker-calendar-date-selected-state-text-color: white;--mat-datepicker-calendar-date-selected-state-background-color: white;--mat-datepicker-calendar-date-selected-disabled-state-background-color: color-mix(in srgb, white 38%, transparent);--mat-datepicker-calendar-date-today-selected-state-outline-color: white;--mat-datepicker-calendar-date-focus-state-background-color: color-mix(in srgb, white 12%, transparent);--mat-datepicker-calendar-date-hover-state-background-color: color-mix(in srgb, white 4%, transparent);--mat-datepicker-toggle-active-state-icon-color: white;--mat-datepicker-toggle-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-body-label-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-period-button-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-period-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-navigation-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-header-divider-color: rgba(0, 0, 0, .12);--mat-datepicker-calendar-header-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-disabled-state-outline-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-date-outline-color: transparent;--mat-datepicker-calendar-date-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-preview-state-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-range-input-separator-color: rgba(0, 0, 0, .87);--mat-datepicker-range-input-disabled-state-separator-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-range-input-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-container-background-color: white;--mat-datepicker-calendar-container-text-color: rgba(0, 0, 0, .87)}.white-theme .mat-datepicker-content.mat-accent,.white-theme .mat-datepicker-toggle-active.mat-accent{--mat-datepicker-calendar-date-in-range-state-background-color: color-mix(in srgb, #a7a7a7 20%, transparent);--mat-datepicker-calendar-date-in-comparison-range-state-background-color: color-mix(in srgb, #a7a7a7 20%, transparent);--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: rgb(69.5241935484, 163.4758064516, 93.9516129032);--mat-datepicker-calendar-date-selected-state-text-color: #F8F9F9;--mat-datepicker-calendar-date-selected-state-background-color: #a7a7a7;--mat-datepicker-calendar-date-selected-disabled-state-background-color: color-mix(in srgb, #a7a7a7 38%, transparent);--mat-datepicker-calendar-date-today-selected-state-outline-color: #F8F9F9;--mat-datepicker-calendar-date-focus-state-background-color: color-mix(in srgb, #a7a7a7 12%, transparent);--mat-datepicker-calendar-date-hover-state-background-color: color-mix(in srgb, #a7a7a7 4%, transparent);--mat-datepicker-toggle-active-state-icon-color: #a7a7a7;--mat-datepicker-toggle-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-body-label-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-period-button-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-period-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-navigation-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-header-divider-color: rgba(0, 0, 0, .12);--mat-datepicker-calendar-header-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-disabled-state-outline-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-date-outline-color: transparent;--mat-datepicker-calendar-date-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-preview-state-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-range-input-separator-color: rgba(0, 0, 0, .87);--mat-datepicker-range-input-disabled-state-separator-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-range-input-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-container-background-color: white;--mat-datepicker-calendar-container-text-color: rgba(0, 0, 0, .87)}.white-theme .mat-datepicker-content.mat-warn,.white-theme .mat-datepicker-toggle-active.mat-warn{--mat-datepicker-calendar-date-in-range-state-background-color: color-mix(in srgb, #f44336 20%, transparent);--mat-datepicker-calendar-date-in-comparison-range-state-background-color: color-mix(in srgb, #a7a7a7 20%, transparent);--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: rgb(69.5241935484, 163.4758064516, 93.9516129032);--mat-datepicker-calendar-date-selected-state-text-color: white;--mat-datepicker-calendar-date-selected-state-background-color: #f44336;--mat-datepicker-calendar-date-selected-disabled-state-background-color: color-mix(in srgb, #f44336 38%, transparent);--mat-datepicker-calendar-date-today-selected-state-outline-color: white;--mat-datepicker-calendar-date-focus-state-background-color: color-mix(in srgb, #f44336 12%, transparent);--mat-datepicker-calendar-date-hover-state-background-color: color-mix(in srgb, #f44336 4%, transparent);--mat-datepicker-toggle-active-state-icon-color: #f44336;--mat-datepicker-toggle-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-body-label-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-period-button-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-period-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-navigation-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-header-divider-color: rgba(0, 0, 0, .12);--mat-datepicker-calendar-header-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-disabled-state-outline-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-date-outline-color: transparent;--mat-datepicker-calendar-date-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-preview-state-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-range-input-separator-color: rgba(0, 0, 0, .87);--mat-datepicker-range-input-disabled-state-separator-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-range-input-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-container-background-color: white;--mat-datepicker-calendar-container-text-color: rgba(0, 0, 0, .87)}.white-theme{--mat-divider-color: rgba(0, 0, 0, .12);--mat-expansion-container-background-color: white;--mat-expansion-container-text-color: rgba(0, 0, 0, .87);--mat-expansion-actions-divider-color: rgba(0, 0, 0, .12);--mat-expansion-header-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-expansion-header-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-expansion-header-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-expansion-header-text-color: rgba(0, 0, 0, .87);--mat-expansion-header-description-color: rgba(0, 0, 0, .54);--mat-expansion-header-indicator-color: rgba(0, 0, 0, .54);--mat-icon-color: inherit}.white-theme .mat-icon.mat-primary{--mat-icon-color: white}.white-theme .mat-icon.mat-accent{--mat-icon-color: #a7a7a7}.white-theme .mat-icon.mat-warn{--mat-icon-color: #f44336}.white-theme{--mat-sidenav-container-divider-color: rgba(0, 0, 0, .12);--mat-sidenav-container-background-color: white;--mat-sidenav-container-text-color: rgba(0, 0, 0, .87);--mat-sidenav-content-background-color: #fafafa;--mat-sidenav-content-text-color: rgba(0, 0, 0, .87);--mat-sidenav-scrim-color: rgba(0, 0, 0, .6);--mat-stepper-header-icon-foreground-color: white;--mat-stepper-header-selected-state-icon-background-color: white;--mat-stepper-header-selected-state-icon-foreground-color: white;--mat-stepper-header-done-state-icon-background-color: white;--mat-stepper-header-done-state-icon-foreground-color: white;--mat-stepper-header-edit-state-icon-background-color: white;--mat-stepper-header-edit-state-icon-foreground-color: white;--mat-stepper-container-color: white;--mat-stepper-line-color: rgba(0, 0, 0, .12);--mat-stepper-header-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-stepper-header-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-stepper-header-label-text-color: rgba(0, 0, 0, .54);--mat-stepper-header-optional-label-text-color: rgba(0, 0, 0, .54);--mat-stepper-header-selected-state-label-text-color: rgba(0, 0, 0, .87);--mat-stepper-header-error-state-label-text-color: #f44336;--mat-stepper-header-icon-background-color: rgba(0, 0, 0, .54);--mat-stepper-header-error-state-icon-foreground-color: #f44336;--mat-stepper-header-error-state-icon-background-color: transparent}.white-theme .mat-step-header.mat-accent{--mat-stepper-header-icon-foreground-color: #F8F9F9;--mat-stepper-header-selected-state-icon-background-color: #a7a7a7;--mat-stepper-header-selected-state-icon-foreground-color: #F8F9F9;--mat-stepper-header-done-state-icon-background-color: #a7a7a7;--mat-stepper-header-done-state-icon-foreground-color: #F8F9F9;--mat-stepper-header-edit-state-icon-background-color: #a7a7a7;--mat-stepper-header-edit-state-icon-foreground-color: #F8F9F9}.white-theme .mat-step-header.mat-warn{--mat-stepper-header-icon-foreground-color: white;--mat-stepper-header-selected-state-icon-background-color: #f44336;--mat-stepper-header-selected-state-icon-foreground-color: white;--mat-stepper-header-done-state-icon-background-color: #f44336;--mat-stepper-header-done-state-icon-foreground-color: white;--mat-stepper-header-edit-state-icon-background-color: #f44336;--mat-stepper-header-edit-state-icon-foreground-color: white}.white-theme{--mat-sort-arrow-color: rgba(0, 0, 0, .87);--mat-toolbar-container-background-color: white;--mat-toolbar-container-text-color: rgba(0, 0, 0, .87)}.white-theme .mat-toolbar.mat-primary{--mat-toolbar-container-background-color: white;--mat-toolbar-container-text-color: white}.white-theme .mat-toolbar.mat-accent{--mat-toolbar-container-background-color: #a7a7a7;--mat-toolbar-container-text-color: #F8F9F9}.white-theme .mat-toolbar.mat-warn{--mat-toolbar-container-background-color: #f44336;--mat-toolbar-container-text-color: white}.white-theme{--mat-tree-container-background-color: white;--mat-tree-node-text-color: rgba(0, 0, 0, .87);--mat-timepicker-container-background-color: white} diff --git a/pkg/visor/visor.go b/pkg/visor/visor.go index 363d5f99d2..89279a6ba5 100644 --- a/pkg/visor/visor.go +++ b/pkg/visor/visor.go @@ -231,6 +231,14 @@ type Visor struct { // STCP PK table for runtime address injection (tp add -t stcp --addr) stcpTable stcp.PKTable + + // Lazy-initialized CXO subscriber for TPD's network-wide + // transport-metrics feed. Created on the first hvui-driven + // FetchTransportMetricsCXO call and kept alive thereafter; the + // hvui handler reads cached values via Subscriber.Get and falls + // back to HTTP /metrics when a path hasn't been published yet. + tpdMetricsSub *tpdMetricsSubscriber + tpdMetricsSubMu sync.RWMutex } // pingState manages Skywire transport ping connections. @@ -647,6 +655,11 @@ func (v *Visor) Close() error { log := v.MasterLogger().PackageLogger("visor:shutdown") log.Info("Begin shutdown.") + // Tear down lazy CXO subscribers (TPD metrics) before the + // closeStack runs, since they hold dmsg conns that closeStack + // also touches via the dmsg client shutdown. + v.closeTPDMetricsSubscriber() + // Cleanly close ongoing raw TCP forward conns for _, forwardConn := range appnet.GetAllRawTCPForwardConns() { err := forwardConn.Close() diff --git a/static/skywire-manager-src/dist/473.112ef2b987479257.js b/static/skywire-manager-src/dist/473.112ef2b987479257.js new file mode 100644 index 0000000000..df45a8caa2 --- /dev/null +++ b/static/skywire-manager-src/dist/473.112ef2b987479257.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkskywire_manager=self.webpackChunkskywire_manager||[]).push([[473],{473(e){e.exports=JSON.parse('{"common":{"save":"Save","cancel":"Cancel","loading":"Loading\u2026","downloaded":"Downloaded","uploaded":"Uploaded","loading-error":"There was an error getting the data. Retrying...","operation-error":"There was an error trying to complete the operation.","no-connection-error":"There is no internet connection or connection to the Hypervisor.","error":"Error:","refreshed":"Data refreshed.","options":"Options","logout":"Logout","logout-error":"Error logging out.","logout-confirmation":"Are you sure you want to log out?","time-in-ms":"{{ time }}ms.","time-in-segs":"{{ time }}s.","ok":"Ok","yes":"Yes","no":"No","unknown":"Unknown","close":"Close","window-size-error":"The window is too narrow for the content.","data-update-problems":"Problem updating the data."},"labeled-element":{"edit-label":"Edit label","remove-label":"Remove label","go-to-settings":"Go to settings","view-all-labels":"View all labels","copy":"Copy","remove-label-confirmation":"Do you really want to remove the label?","unnamed-element":"Unnamed","unnamed-local-visor":"Local visor","local-element":"Local","tooltip":"Click to copy the entry or change the label","tooltip-with-text":"{{ text }} (Click to copy the entry or change the label)"},"labels":{"title":"Labels","info":"Labels you have entered to easily identify visors, transports and other elements, instead of having to read machine generated identifiers.","list-title":"Label list","label":"Label","id":"Element ID","type":"Type","delete-confirmation":"Are you sure you want to delete the label?","delete-selected-confirmation":"Are you sure you want to delete the selected labels?","delete":"Delete label","deleted":"Delete operation completed.","empty":"There aren\'t any saved labels.","empty-with-filter":"No label matches the selected filtering criteria.","filter-dialog":{"label":"The label must contain","id":"The id must contain","type":"The type must be","type-options":{"any":"Any","visor":"Visor","dmsg-server":"DMSG server","transport":"Transport"}}},"filters":{"filter-action":"Filter","filter-info":"Filter list.","press-to-remove":"(Press to remove the filters)","remove-confirmation":"Are you sure you want to remove the filters?"},"tables":{"title":"Order by","sorting-title":"Ordered by:","sort-by-value":"Value","sort-by-label":"Label","label":"(label)","inverted-order":"(inverted)"},"start":{"title":"Start","loading-error":"An error occurred while getting the initial data. Retrying..."},"node":{"title":"Visor details","not-found":"Visor not found.","resource-monitor":{"title":"Resource monitor","tab-host":"Host","tab-process":"Process","cpu":"CPU","memory":"Memory","disk":"Disk","net-rx":"Net rx","net-tx":"Net tx","threads":"Threads","heap":"Heap","goroutines":"Goroutines","gc":"GC rate"},"logs":{"title":"Runtime Logs","no-logs":"No runtime logs were found for this visor.","no-logs-for-filter":"No runtime logs matches the selected filter.","view-all":"View all logs in raw format >","view-rest":"View all {{ number }} elements in raw format >","selected-filter":"Showing:","filter-ignored":"The filter excluded {{ number }} entries","filter-title":"Filter","filter-all":"All logs","filter-debug":"Debug or more important","filter-info":"Info or more important","filter-warning":"Warning or more important","filter-error":"Error or more important","filter-faltal":"Faltal or more important","filter-panic":"Panic","live-on":"Live (pause)","live-off":"Paused (live)","dropped":"Skipped {{ count }} older entries that aged out of the visor\'s runtime buffer."},"statuses":{"online":"Online","online-tooltip":"The visor is online.","connecting":"Connecting","connecting-tooltip":"The visor is online, but still connecting to the uptime tracker.","unknown":"Unknown","unknown-tooltip":"The visor is online, but it has not been possible to determine if it is connected to the uptime tracker.","partially-online":"Online with problems","partially-online-tooltip":"The visor is online, but disconnected from the uptime tracker.","offline":"Offline","offline-tooltip":"The visor is offline."},"details":{"node-info":{"title":"Visor","title-local":"Local Visor","label":"Label:","public-key":"Public key:","symmetic-nat":"Symmetic NAT:","public-ip":"Public IP:","ip":"IP:","dmsg-servers":"DMSG servers:","connected":"connected","no-dmsg-server":"Not connected","ping":"Ping:","node-version":"Visor version:","config-version":"Config version:","os":"OS:","arch":"Architecture:","skybian-version":"Skybian version:","time":{"title":"Time online:","seconds":"a few seconds","minute":"1 minute","minutes":"{{ time }} minutes","hour":"1 hour","hours":"{{ time }} hours","day":"1 day","days":"{{ time }} days","week":"1 week","weeks":"{{ time }} weeks"}},"rewards-info":{"title":"Rewards","rewards-address":"Reward address:","not-registered":"Not registered","not-registered-info":"You have not specified a Skycoin address for receiving rewards for this visor. If you want to register the visor for receiving rewards, press the \\"Set address\\" button and set a Skycoin address.","open-in-explorer":"Open in blockchain explorer","set-address-button":"Set address","change-address-button":"Change address","show-rules":"Reward rules (embedded mainnet_rules.md)"},"transports-info":{"title":"Transport","total":"Total:","autoconnect":"Autoconnect:","autoconnect-info":"When enabled, the visor will automatically create the transports needed when a connection to a public visor is requested. If disabled, the transports will have to be created before being able to make the connection.","enabled":"Enabled","disabled":"Disabled","enable-button":"Enable","disable-button":"Disable","enable-confirmation":"Are you sure you want to enable the autoconnect feature?","disable-confirmation":"Are you sure you want to disable the autoconnect feature?","enable-done":"The autoconnect feature has been enabled.","disable-done":"The autoconnect feature has been disabled.","is-public":"Public Visor:","is-public-info":"When enabled, this visor registers as a public relay for other visors","public-enabled":"Enabled","public-disabled":"Disabled","public-enable-button":"Enable","public-disable-button":"Disable","public-enable-confirmation":"Are you sure you want to make this visor public?","public-disable-confirmation":"Are you sure you want to make this visor private?","public-enable-done":"This visor is now public.","public-disable-done":"This visor is now private."},"router-info":{"title":"Router","min-hops":"Min hops:","max-hops":"Max hops:","change-config-button":"Change configuration"},"node-health":{"title":"Health","services":"Services:","uptime-tracker":"Uptime tracker:","autoconnect":"Autoconnect:","transportability":"Transportability:","connected":"Connected","disconnected":"Disconnected"},"ports":{"title":"Ports"},"config":{"view-button":"View Config","title":"Runtime Configuration"},"tpviz":{"title":"Network Visualizer","open":"Open Transport Visualizer"},"node-traffic-data":"Traffic data"},"tabs":{"info":"Info","apps":"Apps","routing":"Routing","transports":"Transports","rewards":"Rewards","skynet":"Skynet","resources":"Resources","chat":"Skychat","dmsg":"DMSG"},"error-load":"An error occurred while refreshing the data. Retrying..."},"rewards-address-config":{"title":"Reward Address Configuration","info":"Here you can set to which Skycoin address you want the rewards to be sent. If you leave the address empty, the registration will be deleted and the visor will not receive rewards.","more-info-link":"(More info about the reward system)","address":"Address","address-error":"Please enter a valid Skycoin address.","save-config-button":"Save configuration","done":"Changes saved.","empty-warning":"The address in empty, so the registration will be deleted and no rewards will be received. Do you really want to continue?"},"router-config":{"title":"Router Configuration","info":"Here you can configure how many hops the connections must pass through other Skywire visors before reaching the final destination. NOTE: the changes will not affect the existing routes.","min-hops":"Min hops","min-hops-error":"Please enter a valid number.","save-config-button":"Save configuration","done":"Changes saved."},"nodes":{"title":"Visor list","dmsg-title":"DMSG","rewards-title":"Rewards","services-health-title":"Deployment","network-title":"Network","resources-title":"Resources","transports-title":"Transports","dmsg-settings-title":"DMSG settings","reward-address":"Reward Address","reward-total":"Week Total","reward-distributed":"Distributed","reward-pending":"Pending","rewards-loading":"Loading rewards...","modify-rewards-all":"Change rewards address","update-all":"Update all online visors","hypervisor":"Hypervisor","state":"State","state-tooltip":"Current state","label":"Label","key":"Key","ip":"IP","lan-ip":"LAN IP","public-ip":"Public IP","location":"Location","dmsg-server":"DMSG server","ping":"Ping","version":"Version","config-version":"Config","hypervisor-info":"This visor is the current Hypervisor.","copy-key":"Copy key","copy-dmsg":"Copy DMSG server key","copy-data":"Copy data","view-node":"View visor","delete-node":"Remove visor","delete-all-offline":"Remove all offline visors","error-load":"An error occurred while refreshing the list. Retrying...","empty":"There aren\'t any visors connected to this hypervisor.","empty-with-filter":"No visor matches the selected filtering criteria.","delete-node-confirmation":"Are you sure you want to remove the visor from the list?","delete-all-offline-confirmation":"Are you sure you want to remove all offline visors from the list?","delete-all-filtered-offline-confirmation":"All offline visors satisfying the current filtering criteria will be removed from the list. Are you sure you want to continue?","deleted":"Visor removed.","deleted-singular":"1 offline visor removed.","deleted-plural":"{{ number }} offline visors removed.","no-visors-to-update":"There are no visors to update.","no-visors-to-modify":"There are no visors to modify.","transports":"Transports","services":"Services","reward":"Reward","reward-set":"Reward address set","reward-not-set":"No reward address","ip-location":"IP / Location","visor-version":"Visor","config-label":"Config","filter-dialog":{"online":"The visor must be","label":"The label must contain","key":"The public key must contain","dmsg":"The DMSG server key must contain","online-options":{"any":"Online or offline","online":"Online","offline":"Offline"}}},"network-transports":{"loading":"Fetching transport metrics from TPD\u2026","summary":"{{transports}} transports \xb7 {{bandwidth}} network bandwidth ({{days}} days)","last-updated":"last fetched","days":"Window","view":"View","view-compact":"Compact","view-tree":"Tree","refresh":"Refresh","tp-id":"Transport ID","type":"Type","edge-a":"Edge A","edge-b":"Edge B","sent":"Sent","recv":"Recv","total":"Total","latency":"Latency"},"multi-resources":{"loading":"Polling visor host stats\u2026","summary":"{{count}} visors","last-updated":"last sample","visor":"Visor","cpu":"CPU","mem":"Memory","disk":"Disk","tx":"TX","rx":"RX","proc-rss":"Process RSS"},"services-health":{"loading":"Checking deployment services\u2026","all-ok":"All deployment services operational","degraded":"One or more deployment services are degraded","last-updated":"last checked","service":"Service","status":"Status","latency":"Latency","version":"Version","endpoint":"Endpoint","rsn-section":"Route Setup Nodes","rsn-empty":"No route setup nodes configured.","rsn-pk":"Public Key","rsn-success":"Successful","rsn-failed":"Failed","rsn-rate":"Success rate","rsn-latency-p50":"p50","rsn-latency-p95":"p95","rsn-latency-p99":"p99","rsn-active":"In flight","rsn-last-success":"Last success","rsn-last-failure":"Last failure","rsn-uptime":"Uptime","rsn-failure-reasons":"Top failure reasons","rsn-error":"Unreachable"},"skychat":{"title":"Skychat","connected":"Connected","disconnected":"Disconnected","no-history":"history is disabled (--persist not set)","empty":"No messages yet \u2014 incoming chats from connected peers will appear here.","peers":"Peers","peers-empty":"No peers yet. Send a message or wait for an incoming chat.","to":"Recipient PK","network":"Network","message":"Message","placeholder":"Type a message; Ctrl+Enter to send","send":"Send","password":{"set":"Set password","change":"Change password","clear":"Remove","hide":"Hide","saved":"Skychat password updated","cleared":"Skychat password removed","old":"Current password","new":"New password","confirm":"Repeat new password","help-unset":"Skychat is currently unprotected. Set a password to require basic auth on the standalone :8001 surface; this hypervisor session always bypasses it.","help-set":"A password is set on skychat\'s standalone :8001 surface. Change or remove it here.","errors":{"length":"Skychat password must be 6-64 characters","mismatch":"Passwords do not match","old-required":"Current password is required to remove the gate"}}},"network-view":{"loading":"Aggregating service-discovery, transport-discovery and uptime-tracker\u2026","last-updated":"last fetched","empty":"No visors match the current filters.","search":"Search","country":"Country","version":"Version","min-transports":"Min tps","online-only":"Online only","refresh":"Refresh now","col":{"pk":"PK","country":"Country","version":"Version","services":"Services","total":"Total","status":"UT"},"legend":{"offline":"offline (UT)","not-in-ut":"not in UT","low-transports":"online but <2 stcpr/sudph"}},"dmsg-settings":{"loading":"Loading DMSG session state\u2026","summary":"DMSG client sessions","last-updated":"last updated","connect-all":"Connect to all servers","sessions-count-label":"sessions_count","apply-count":"Apply","sessions":"sessions","no-sessions":"No connected sessions.","no-clients":"No DMSG clients running on this visor.","result-total":"total:","result-already":"already connected:","result-new":"newly connected:","result-failed":"failed"},"bulk-rewards":{"title":"Change reward address","info":"Enter the Skycoin address where you want to receive the rewards. The address will be set on all the selected visors. If you leave the address empty, the registration will be deleted and the visors will not receive rewards. You can also set the reward address of each node individually using the option on the visor details page.","more-info-link":"(More info about the reward system)","address":"New address","select-visors":"Visors to alter:","current-address":"Current address:","not-registered":"None (not registered on the reward program).","checking":"Checking...","error-checking":"Error checking:","processing":"Processing...","error-processing":"Error making the change:","done":"Change done.","perform-changes":"Perform changes","empty-warning":"The address in empty, so the registrations will be deleted and no rewards will be received. Do you really want to continue?"},"edit-label":{"label":"Label","done":"Label saved.","label-removed-warning":"The label was removed."},"settings":{"title":"Settings","checking-auth":"Checking authentication settings.","password":{"initial-config-help":"Use this option for setting the initial password. After a password has been set, it is not possible to use this option to modify it.","help":"Options for changing your password.","old-password":"Old password","new-password":"New password","repeat-password":"Repeat password","password-changed":"Password changed.","error-changing":"Error changing password.","initial-config":{"title":"Set initial password","password":"Password","repeat-password":"Repeat password","set-password":"Set password","done":"Password set. Please use it to access the system.","error":"Error. Please make sure you have not already set the password."},"errors":{"bad-old-password":"The provided old password is not correct.","old-password-required":"Old password is required.","new-password-error":"Password must be 6-64 characters long.","passwords-not-match":"Passwords do not match.","default-password":"Don\'t use the default password (1234)."}},"updater-config":{"open-link":"Show updater settings","open-confirmation":"The updater settings are for experienced users only. Are you sure you want to continue?","help":"Use this form for overriding the settings that will be used by the updater. All empty fields will be ignored. The settings will be used for all updating operations, no mater which element is being updated, so please be careful.","channel":"Channel","version":"Version","archive-url":"Archive URL","checksum-url":"Checksum URL","not-saved":"The changes have not been saved yet.","save":"Save changes","remove-settings":"Remove the settings","saved":"The custom settings have been saved.","removed":"The custom settings have been removed.","save-confirmation":"Are you sure you want to apply the custom settings?","remove-confirmation":"Are you sure you want to remove the custom settings?"},"change-password":"Change password","refresh-rate":"Refresh rate","refresh-rate-help":"Time the system waits to update the data automatically.","refresh-rate-confirmation":"Refresh rate changed.","seconds":"seconds"},"login":{"password":"Password","incorrect-password":"Incorrect password.","initial-config":"Configure initial launch"},"actions":{"menu":{"terminal":"Terminal","config":"Configuration","update":"Update","proxy":"Resolving Proxy","turn-off":"Turn off","logs":"View logs"},"update":{"confirmation":"A terminal will be opened in a new tab and the update procedure will be started automatically. Do you want to continue?"},"turn-off":{"confirmation":"Are you sure you want to turn off the visor?","done":"The visor is shutting down."},"terminal-options":{"full":"Full terminal","simple":"Simple terminal"},"terminal":{"title":"Terminal","input-start":"Skywire terminal for {{address}}","error":"Unexpected error while trying to execute the command."}},"update":{"title":"Update","error-title":"Error","processing":"Looking for updates...","no-update":"There is no update for the visor. The currently installed version is:","no-updates":"No new updates were found.","already-updating":"Some visors are already being updated:","with-error":"It was not possible to check the following visors:","update-available":"The following updates were found:","update-available-singular":"The following updates for 1 visor were found:","update-available-plural":"The following updates for {{ number }} visors were found:","update-available-additional-singular":"The following additional updates for 1 visor were found:","update-available-additional-plural":"The following additional updates for {{ number }} visors were found:","update-instructions":"Click the \'Install updates\' button to continue.","updating":"The update operation has been started, you can open this window again for checking the progress:","version-change":"From {{ currentVersion }} to {{ newVersion }}","selected-channel":"Selected channel:","downloaded-file-name-prefix":"Downloading: ","speed-prefix":"Speed: ","time-downloading-prefix":"Time downloading: ","time-left-prefix":"Aprox. time left: ","starting":"Preparing to update","finished":"Status connection finished","install":"Install updates"},"update-all":{"title":"Update","updatable-list-text":"Please press the buttons of the visors you want to update. A terminal will be opened in a new tab for each visor and the update procedure will be started automatically.","non-updatable-list-text":"The following visors can not be updated via the terminal:","update-button":"Update"},"apps":{"log":{"title":"Log","empty":"There are no log messages for the selected time range.","filter-button":"Only showing logs generated since:","view-all":"View all {{ totalLogs }} entries","filter":{"title":"Filter","filter":"Only show logs generated since","7-days":"The last 7 days","1-month":"The last 30 days","3-months":"The last 3 months","6-months":"The last 6 months","1-year":"The last year","all":"Show all"}},"apps-list":{"title":"Applications","title-official":"Official Applications","title-user":"User Applications","list-title":"Application list","app-name":"Name","port":"Port","state":"State","state-tooltip":"Current state","auto-start":"Auto start","empty-official":"This visor doesn\'t have any official applications.","empty-user":"This visor doesn\'t have any user applications.","empty-with-filter":"No app matches the selected filtering criteria.","disable-autostart":"Disable autostart","enable-autostart":"Enable autostart","autostart-disabled":"Autostart disabled","autostart-enabled":"Autostart enabled","unavailable-logs-error":"Unable to show the logs while the app is not running.","filter-dialog":{"state":"The state must be","name":"The name must contain","port":"The port must contain","autostart":"The autostart must be","state-options":{"any":"Running or stopped","running":"Running","stopped":"Stopped"},"autostart-options":{"any":"Enabled or disabled","enabled":"Enabled","disabled":"Disabled"}}},"user-app-settings":{"title":"{{ name }} (Settings)","info":"Here you can edit the app settings as name-value pairs. Please check the application docs to see which settings and values are supported by this app.","name":"Name {{ number }}","value":"Value {{ number }}","remove":"Remove","add":"Add setting","save":"Save","invalid-confirmation":"One or more settings do not have a name and will be ignored. Do you want to continue?","empty-confirmation":"The settings list is empty. Do you really want to continue?","changes-made":"The changes have been made."},"skychat-settings":{"title":"Skychat Settings","localhost-only":"Allow access from the local machine only","port":"Port","save":"Save","changes-made":"The changes have been made.","port-error":"Must be a valid number between 1025 and 65536.","non-localhost-confirmation":"This will allow to use the app from anywhere on the internet. Are you sure you vant to continue?"},"vpn-socks-server-settings":{"socks-title":"Skysocks Settings","vpn-title":"VPN-Server Settings","whitelist":"Allowed peers (public keys)","whitelist-help":"Comma- or whitespace-separated public keys. Empty = open to all authenticated peers.","whitelist-invalid-pk":"One or more entries is not a valid 66-character hex public key.","netifc":"Default network interface (optional)","secure-mode-check":"Use secure mode","secure-mode-info":"When active, the server doesn\'t allow client/server SSH and doesn\'t allow any traffic from VPN clients to the server local network.","save":"Save","set-whitelist-confirmation":"Apply this whitelist to the server? Only the listed peers will be able to connect.","clear-whitelist-confirmation":"The whitelist is empty. The server will accept connections from any authenticated peer. Continue?","changes-made":"The changes have been made."},"vpn-socks-client-settings":{"socks-title":"Skysocks-Client Settings","vpn-title":"VPN-Client Settings","discovery-tab":"Search","remote-visor-tab":"Enter manually","history-tab":"History","settings-tab":"Settings","use":"Use this data","change-note":"Change note","remove-entry":"Remove entry","note":"Note:","note-entered-manually":"Entered manually","note-obtained":"Obtained from the discovery service","key":"Key:","port":"Port:","location":"Location:","state-available":"Available","state-offline":"Offline","public-key":"Remote visor public key","password":"Password","password-history-warning":"Note: the password will not be saved in the history.","copy-pk-info":"Copy public key.","copied-pk-info":"The public key has been copied.","copy-pk-error":"There was a problem copying the public key.","no-elements":"Currently there are no elements to show. Please try again later.","no-elements-for-filters":"There are no elements that meet the filter criteria.","no-filter":"No filter has been selected","click-to-change":"Click to change","remote-key-length-error":"The public key must be 66 characters long.","remote-key-chars-error":"The public key must only contain hexadecimal characters.","save":"Save","remove-from-history-confirmation":"Are you sure you want to remove the entry from the history?","change-key-confirmation":"Are you sure you want to change the remote visor public key?","changes-made":"The changes have been made.","no-history":"This tab will show the last {{ number }} public keys used.","default-note-warning":"The default note has been used.","pagination-info":"{{ currentElementsRange }} of {{ totalElements }}","dns":"Custom DNS server IP address","dns-error":"Invalid value.","killswitch-check":"Activate killswitch","killswitch-info":"When active, all network connections will be disabled if the app is running but the VPN protection is interrupted (for temporary errors or any other problem). This avoids data leaks.","settings-changed-alert":" The changes have not been saved yet.","save-settings":"Save settings","change-note-dialog":{"title":"Change Note","note":"Note"},"password-dialog":{"title":"Enter Password","password":"Password","info":"You are being asked for a password because a password was set when the selected entry was created, but the it was not saved for security reasons. You can leave the password empty if needed.","continue-button":"Continue"},"filter-dialog":{"title":"Filters","country":"The country must be","any-country":"Any","location":"The location must contain","pub-key":"The public key must contain","apply":"Apply"}},"stop-app":"Stop","start-app":"Start","view-logs":"View logs","settings":"Settings","open":"Open","error":"An error has occured and it was not possible to perform the operation.","stop-confirmation":"Are you sure you want to stop the app?","stop-selected-confirmation":"Are you sure you want to stop the selected apps?","disable-autostart-confirmation":"Are you sure you want to disable autostart for the app?","enable-autostart-confirmation":"Are you sure you want to enable autostart for the app?","disable-autostart-selected-confirmation":"Are you sure you want to disable autostart for the selected apps?","enable-autostart-selected-confirmation":"Are you sure you want to enable autostart for the selected apps?","operation-completed":"Operation completed.","operation-unnecessary":"The selection already has the requested setting.","status-running":"Running","status-connecting":"Connecting","status-stopped":"Stopped","status-failed":"Ended with the following error: {{ error }}","status-running-tooltip":"App is currently running","status-connecting-tooltip":"App is currently connecting","status-stopped-tooltip":"App is currently stopped","status-failed-tooltip":"The app finished with the following error: {{ error }}"},"transports":{"title":"Transports","info":"Connections you have with remote Skywire visors, to allow local Skywire apps to communicate with apps running on those remote visors.","list-title":"Transport list","offline":"Offline","persistent":"Persistent","persistent-tooltip":"Persistent transports, which are created automatically when the visor is turned on and are automatically recreated in case of disconnection.","persistent-transport-tooltip":"This transport is persistent, so it is created automatically when the visor is turned on and automatically recreated in case of disconnection.","persistent-transport-button-tooltip":"This transport is persistent, so it is created automatically when the visor is turned on and automatically recreated in case of disconnection. Press to make non-persistent.","non-persistent-transport-button-tooltip":"Press to make this transport persistent. Persistent transports are created automatically when the visor is turned on and automatically recreated in case of disconnection.","make-persistent":"Make persistent","make-non-persistent":"Make non-persistent","make-selected-persistent":"Make all selected persistent","make-selected-non-persistent":"Make all selected non-persistent","changes-made":"Changes made.","no-changes-needed":"No changes were needed.","id":"ID","remote-node":"Remote","type":"Type","latency":"Latency","create":"Create transport","make-persistent-confirmation":"Are you sure you want to make the transport persistent?","make-non-persistent-confirmation":"Are you sure you want to make the transport non-persistent?","make-selected-persistent-confirmation":"Are you sure you want to make the selected transports persistent?","make-selected-non-persistent-confirmation":"Are you sure you want to make the selected transports non-persistent?","make-offline-non-persistent-confirmation":"Are you sure you want to make the transport non-persistent? It will not be shown in the list while offline anymore.","delete-confirmation":"Are you sure you want to delete the transport?","delete-persistent-confirmation":"This transport is persistent, so it may be recreated shortly after deletion. Are you sure you want to delete it?","delete-selected-confirmation":"Are you sure you want to delete the selected transports?","delete":"Delete transport","deleted":"Delete operation completed.","empty":"Visor doesn\'t have any transports.","empty-with-filter":"No transport matches the selected filtering criteria.","details":{"title":"Details","basic":{"title":"Basic info","persistent":"Persistent:","id":"ID:","local-pk":"Local public key:","remote-pk":"Remote public key:","type":"Type:"},"data":{"title":"Data transmission","uploaded":"Uploaded data:","downloaded":"Downloaded data:"}},"dialog":{"remote-key":"Remote public key","label":"Identification name (optional)","transport-type":"Transport type","make-persistent":"Make persistent","persistent-tooltip":"Persistent transports are created automatically when the visor is turned on and automatically recreated in case of disconnection.","only-persistent-created":"The persistent transport was created, but it may have not been activated.","success":"Transport created.","success-without-label":"The transport was created, but it was not possible to save the label.","errors":{"remote-key-length-error":"The remote public key must be 66 characters long.","remote-key-chars-error":"The remote public key must only contain hexadecimal characters.","transport-type-error":"The transport type is required."}},"filter-dialog":{"persistent":"The transport must be","id":"The id must contain","remote-node":"The remote key must contain","persistent-options":{"any":"Any","persistent":"Persistent","non-persistent":"Non-persistent"}}},"routes":{"title":"Routes","info":"Paths used to reach the remote visors to which transports have been established. Routes are automatically generated as needed.","list-title":"Route list","key":"Key","type":"Type","source":"Source","destination":"Destination","local-port":"Local port","remote-port":"Remote port","remote-pk":"Remote","next-rid":"Next RID","next-tp":"Next TP","keep-alive":"Keep-alive","delete-confirmation":"Are you sure you want to delete the route?","delete-selected-confirmation":"Are you sure you want to delete the selected routes?","delete":"Delete route","deleted":"Delete operation completed.","empty":"Visor doesn\'t have any routes.","empty-with-filter":"No route matches the selected filtering criteria.","details":{"title":"Details","basic":{"title":"Basic info","key":"Key:","rule":"Rule:"},"summary":{"title":"Rule summary","keep-alive":"Keep alive:","type":"Rule type:","key-route-id":"Key route ID:"},"specific-fields-titles":{"app":"App fields","forward":"Forward fields","intermediary-forward":"Intermediary forward fields"},"specific-fields":{"route-id":"Next route ID:","transport-id":"Next transport ID:","destination-pk":"Destination public key:","source-pk":"Source public key:","destination-port":"Destination port:","source-port":"Source port:"}},"filter-dialog":{"key":"The key must contain","type":"The type must be","source":"The source must contain","destination":"The destination must contain","any-type-option":"Any"}},"copy":{"tooltip":"Click to copy","tooltip-with-text":"{{ text }} (Click to copy)","copied":"Copied!"},"selection":{"select-all":"Select all","unselect-all":"Unselect all","delete-all":"Delete all selected elements","start-all":"Start all selected apps","stop-all":"Stop all selected apps","enable-autostart-all":"Enable autostart for all selected apps","disable-autostart-all":"Disable autostart for all selected apps"},"refresh-button":{"seconds":"Updated a few seconds ago","minute":"Updated 1 minute ago","minutes":"Updated {{ time }} minutes ago","hour":"Updated 1 hour ago","hours":"Updated {{ time }} hours ago","day":"Updated 1 day ago","days":"Updated {{ time }} days ago","week":"Updated 1 week ago","weeks":"Updated {{ time }} weeks ago","error-tooltip":"There was an error updating the data. Retrying automatically every {{ time }} seconds..."},"view-all-link":{"label":"View all {{ number }} elements"},"paginator":{"first":"First","last":"Last","total":"Total: {{ number }} pages","select-page-title":"Select page"},"confirmation":{"header-text":"Confirmation","confirm-button":"Yes","cancel-button":"No","close":"Close","error-header-text":"Error","done-header-text":"Done"},"language":{"title":"Select language"},"tabs-window":{"title":"Change tab"},"vpn":{"title":"VPN Control Panel","start":"Start","servers":"Servers","settings":"Settings","unnamed":"Unnamed","starting-blocked-server-error":"Unable to connect to the selected server because it has been added to the blocked servers list.","unexpedted-error":"An unexpected error occurred and the operation could not be completed.","remote-access-title":"It appears that you are accessing the system remotely","remote-access-text":"This application only allows you to manage the VPN protection of the device on which it was installed. Changes made with it will not affect remote devices like the one you seem to be using. Also, the displayed IP data may be incorrect.","server-change":{"busy-error":"The system is busy. Please wait.","backend-error":"It was not possible to change the server. Please make sure the public key is correct and the VPN app is running.","already-selected-warning":"The selected server is already being used.","change-server-while-connected-confirmation":"The VPN protection will be interrupted while changing the server and some data may be transmitted unprotected during the process. Do you want to continue?","start-same-server-confirmation":"You had already selected that server. Do you want to connect to it?"},"error-page":{"text":"The VPN client app is not available.","more-info":"It was not possible to connect to the VPN client app. This may be due to a configuration error, an unexpected problem with the visor or because you used an invalid public key in the URL.","text-pk":"Invalid configuration.","more-info-pk":"The application cannot be started because you have not specified the visor public key.","text-storage":"Error saving data.","more-info-storage":"There has been a conflict when trying to save the data and the application has been closed to prevent errors. This could happen if you open the application in more than one tab or window.","text-pk-change":"Invalid operation.","more-info-pk-change":"Please use this application to manage only one VPN client."},"connection-info":{"state-title":"Your connection is currently:","state-connecting":"Connecting","state-connecting-info":"The VPN protection is being activated.","state-connected":"Connected","state-connected-info":"The VPN protection is on.","state-disconnecting":"Disconnecting","state-disconnecting-info":"The VPN protection is being deactivated.","state-reconnecting":"Reconnecting","state-reconnecting-info":"The VPN protection is being restored.","state-disconnected":"Disconnected","state-disconnected-info":"The VPN protection is off.","state-info":"Current connection status.","latency-info":"Current latency.","upload-info":"Upload speed.","download-info":"Download speed."},"connection-error":{"text":"Connection error","info":"Problem connecting with the vpn app. Some data being displayed could be outdated."},"status-page":{"start-title":"Start VPN","no-server":"No server selected!","disconnect":"Disconnect","last-error":"Last error:","unknown-error":"Unknown error.","disconnect-confirmation":"Are you sure you want to stop the VPN protection?","upload-info":"Uploaded data stats.","download-info":"Downloaded data stats.","latency-info":"Latency stats.","total-data-label":"total","problem-connecting-error":"It was not possible to connect to the server. The server may be invalid or temporarily down.","problem-starting-error":"It was not possible to start the VPN. Please make sure the base VPN client app is running.","problem-stopping-error":"It was not possible to stop the VPN. Please make sure the base VPN client app is running.","generic-problem-error":"It was not possible to perform the operation. Please make sure the base VPN client app is running.","select-server-warning":"Please select a server first.","data":{"ip":"IP address:","ip-problem-info":"There was a problem trying to get the IP. Please verify it using an external service.","ip-country-problem-info":"There was a problem trying to get the country. Please verify it using an external service.","ip-refresh-info":"Refresh","ip-refresh-time-warning":"Please wait {{ seconds }} second(s) before refreshing the data.","ip-refresh-loading-warning":"Please wait for the previous operation to finish.","country":"Country:","server":"Server:","server-note":"Server note:","original-server-note":"Original server note:","local-pk":"Local visor public key:","remote-pk":"Remote visor public key:","unavailable":"Unavailable"}},"server-options":{"tooltip":"Options","connect-without-password":"Connect without password","connect-without-password-confirmation":"The connection will be made without the password. Are you sure you want to continue?","connect-using-password":"Connect using a password","connect-using-another-password":"Connect using another password","edit-name":"Custom name","edit-label":"Custom note","make-favorite":"Make favorite","make-favorite-confirmation":"Are you sure you want to mark this server as favorite? It will be removed from the blocked list.","make-favorite-done":"Added to the favorites list.","remove-from-favorites":"Remove from favorites","remove-from-favorites-done":"Removed from the favorites list.","block":"Block server","block-done":"Added to the blocked list.","block-confirmation":"Are you sure you want to block this server? It will be removed from the favorites list.","block-selected-confirmation":"Are you sure you want to block the currently selected server? All connections will be closed.","block-selected-favorite-confirmation":"Are you sure you want to block the currently selected server? All connections will be closed and it will be removed from the favorites list.","unblock":"Unblock server","unblock-done":"Removed from the blocked list.","remove-from-history":"Remove from history","remove-from-history-confirmation":"Are you sure you want to remove this server from the history?","remove-from-history-done":"Removed from history.","edit-value":{"name-title":"Custom Name","note-title":"Custom Note","name-label":"Custom name","note-label":"Custom note","apply-button":"Apply","changes-made-confirmation":"The change has been made."}},"server-conditions":{"selected-info":"This is the currently selected server.","blocked-info":"This server is in the blocked list.","favorite-info":"This server is in the favorites list.","history-info":"This server is in the server history.","has-password-info":"A password was set for connecting with this server."},"server-list":{"date-small-table-label":"Date","date-info":"Last time you used this server.","country-small-table-label":"Country","country-info":"Country where the server is located.","name-small-table-label":"Name","location-small-table-label":"Location","public-key-small-table-label":"Pk","public-key-info":"Server public key.","congestion-rating-small-table-label":"Congestion rating","congestion-rating-info":"Rating of the server related to how congested it tends to be.","congestion-small-table-label":"Congestion","congestion-info":"Current server congestion.","latency-rating-small-table-label":"Latency rating","latency-rating-info":"Rating of the server related to how much latency it tends to have.","latency-small-table-label":"Latency","latency-info":"Current server latency.","hops-small-table-label":"Hops","hops-info":"How many hops are needed for connecting with the server.","note-small-table-label":"Note","note-info":"Note about the server.","gold-rating-info":"Gold","silver-rating-info":"Silver","bronze-rating-info":"Bronze","notes-info":"Custom note: {{ custom }} - Original note: {{ original }}","empty-discovery":"Currently there are no VPN servers to show. Please try again later.","empty-history":"There is no history to show.","empty-favorites":"There are no favorite servers to show.","empty-blocked":"There are no blocked servers to show.","empty-with-filter":"No VPN server matches the selected filtering criteria.","add-manually-info":"Add server manually.","current-filters":"Current filters (press to remove)","none":"None","unknown":"Unknown","tabs":{"public":"Public","history":"History","favorites":"Favorites","blocked":"Blocked"},"add-server-dialog":{"title":"Enter manually","pk-label":"Server public key","password-label":"Server password (if any)","name-label":"Server name (optional)","note-label":"Personal note (optional)","pk-length-error":"The public key must be 66 characters long.","pk-chars-error":"The public key must only contain hexadecimal characters.","use-server-button":"Use server"},"password-dialog":{"title":"Enter Password","password-if-any-label":"Server password (if any)","password-label":"Server password","continue-button":"Continue"},"filter-dialog":{"country":"The country must be","name":"The name must contain","location":"The location must contain","public-key":"The public key must contain","congestion-rating":"The congestion rating must be","latency-rating":"The latency rating must be","rating-options":{"any":"Any","gold":"Gold","silver":"Silver","bronze":"Bronze"},"country-options":{"any":"Any"}}},"settings-page":{"setting-small-table-label":"Setting","value-small-table-label":"Value","killswitch":"Killswitch","killswitch-info":"When active, all network connections will be disabled if the app is running but the VPN protection is interrupted (for temporary errors or any other problem). This avoids data leaks.","get-ip":"Get IP info","get-ip-info":"When active, the application will use external services to obtain information about the current IP.","data-units":"Data units","data-units-info":"Allows to select the units that will be used to display the data transmission statistics.","minimum-hops":"Minimum hops","minimum-hops-info":"Allows to set the minimum number of hops the connections must pass through other Skywire visors before reaching the final destination.","dns":"Custom DNS server","dns-info":"Allows to use a custom DNS server, which could improve privacy and prevent sites from being blocked by the default DNS server of your ISP.","setting-none":"None","setting-on":"On","setting-off":"Off","working-warning":"The system is busy. Please wait for the previous operation to finish.","change-while-connected-confirmation":"The VPN protection will be interrupted while changing the setting. Do you want to continue?","data-units-modal":{"title":"Data Units","only-bits":"Bits for all stats","only-bytes":"Bytes for all stats","bits-speed-and-bytes-volume":"Bits for speed and bytes for volume (default)"}},"dns-config":{"title":"Custom DNS server","ip":"Custom DNS server IP address","save-config-button":"Save configuration","done":"Changes saved."}}}')}}]); \ No newline at end of file diff --git a/static/skywire-manager-src/dist/473.9dde3f487a9cd6dc.js b/static/skywire-manager-src/dist/473.9dde3f487a9cd6dc.js deleted file mode 100644 index 9dbba97c39..0000000000 --- a/static/skywire-manager-src/dist/473.9dde3f487a9cd6dc.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkskywire_manager=self.webpackChunkskywire_manager||[]).push([[473],{473(e){e.exports=JSON.parse('{"common":{"save":"Save","cancel":"Cancel","downloaded":"Downloaded","uploaded":"Uploaded","loading-error":"There was an error getting the data. Retrying...","operation-error":"There was an error trying to complete the operation.","no-connection-error":"There is no internet connection or connection to the Hypervisor.","error":"Error:","refreshed":"Data refreshed.","options":"Options","logout":"Logout","logout-error":"Error logging out.","logout-confirmation":"Are you sure you want to log out?","time-in-ms":"{{ time }}ms.","time-in-segs":"{{ time }}s.","ok":"Ok","yes":"Yes","no":"No","unknown":"Unknown","close":"Close","window-size-error":"The window is too narrow for the content.","data-update-problems":"Problem updating the data."},"labeled-element":{"edit-label":"Edit label","remove-label":"Remove label","go-to-settings":"Go to settings","view-all-labels":"View all labels","copy":"Copy","remove-label-confirmation":"Do you really want to remove the label?","unnamed-element":"Unnamed","unnamed-local-visor":"Local visor","local-element":"Local","tooltip":"Click to copy the entry or change the label","tooltip-with-text":"{{ text }} (Click to copy the entry or change the label)"},"labels":{"title":"Labels","info":"Labels you have entered to easily identify visors, transports and other elements, instead of having to read machine generated identifiers.","list-title":"Label list","label":"Label","id":"Element ID","type":"Type","delete-confirmation":"Are you sure you want to delete the label?","delete-selected-confirmation":"Are you sure you want to delete the selected labels?","delete":"Delete label","deleted":"Delete operation completed.","empty":"There aren\'t any saved labels.","empty-with-filter":"No label matches the selected filtering criteria.","filter-dialog":{"label":"The label must contain","id":"The id must contain","type":"The type must be","type-options":{"any":"Any","visor":"Visor","dmsg-server":"DMSG server","transport":"Transport"}}},"filters":{"filter-action":"Filter","filter-info":"Filter list.","press-to-remove":"(Press to remove the filters)","remove-confirmation":"Are you sure you want to remove the filters?"},"tables":{"title":"Order by","sorting-title":"Ordered by:","sort-by-value":"Value","sort-by-label":"Label","label":"(label)","inverted-order":"(inverted)"},"start":{"title":"Start","loading-error":"An error occurred while getting the initial data. Retrying..."},"node":{"title":"Visor details","not-found":"Visor not found.","logs":{"title":"Runtime Logs","no-logs":"No runtime logs were found for this visor.","no-logs-for-filter":"No runtime logs matches the selected filter.","view-all":"View all logs in raw format >","view-rest":"View all {{ number }} elements in raw format >","selected-filter":"Showing:","filter-ignored":"The filter excluded {{ number }} entries","filter-title":"Filter","filter-all":"All logs","filter-debug":"Debug or more important","filter-info":"Info or more important","filter-warning":"Warning or more important","filter-error":"Error or more important","filter-faltal":"Faltal or more important","filter-panic":"Panic"},"statuses":{"online":"Online","online-tooltip":"The visor is online.","connecting":"Connecting","connecting-tooltip":"The visor is online, but still connecting to the uptime tracker.","unknown":"Unknown","unknown-tooltip":"The visor is online, but it has not been possible to determine if it is connected to the uptime tracker.","partially-online":"Online with problems","partially-online-tooltip":"The visor is online, but disconnected from the uptime tracker.","offline":"Offline","offline-tooltip":"The visor is offline."},"details":{"node-info":{"title":"Visor","title-local":"Local Visor","label":"Label:","public-key":"Public key:","symmetic-nat":"Symmetic NAT:","public-ip":"Public IP:","ip":"IP:","dmsg-servers":"DMSG servers:","connected":"connected","no-dmsg-server":"Not connected","ping":"Ping:","node-version":"Visor version:","config-version":"Config version:","os":"OS:","arch":"Architecture:","skybian-version":"Skybian version:","time":{"title":"Time online:","seconds":"a few seconds","minute":"1 minute","minutes":"{{ time }} minutes","hour":"1 hour","hours":"{{ time }} hours","day":"1 day","days":"{{ time }} days","week":"1 week","weeks":"{{ time }} weeks"}},"rewards-info":{"title":"Rewards","rewards-address":"Reward address:","not-registered":"Not registered","not-registered-info":"You have not specified a Skycoin address for receiving rewards for this visor. If you want to register the visor for receiving rewards, press the \\"Set address\\" button and set a Skycoin address.","open-in-explorer":"Open in blockchain explorer","set-address-button":"Set address","change-address-button":"Change address"},"transports-info":{"title":"Transport","total":"Total:","autoconnect":"Autoconnect:","autoconnect-info":"When enabled, the visor will automatically create the transports needed when a connection to a public visor is requested. If disabled, the transports will have to be created before being able to make the connection.","enabled":"Enabled","disabled":"Disabled","enable-button":"Enable","disable-button":"Disable","enable-confirmation":"Are you sure you want to enable the autoconnect feature?","disable-confirmation":"Are you sure you want to disable the autoconnect feature?","enable-done":"The autoconnect feature has been enabled.","disable-done":"The autoconnect feature has been disabled.","is-public":"Public Visor:","is-public-info":"When enabled, this visor registers as a public relay for other visors","public-enabled":"Enabled","public-disabled":"Disabled","public-enable-button":"Enable","public-disable-button":"Disable","public-enable-confirmation":"Are you sure you want to make this visor public?","public-disable-confirmation":"Are you sure you want to make this visor private?","public-enable-done":"This visor is now public.","public-disable-done":"This visor is now private."},"router-info":{"title":"Router","min-hops":"Min hops:","max-hops":"Max hops:","change-config-button":"Change configuration"},"node-health":{"title":"Health","services":"Services:","uptime-tracker":"Uptime tracker:","autoconnect":"Autoconnect:","transportability":"Transportability:","connected":"Connected","disconnected":"Disconnected"},"ports":{"title":"Ports"},"config":{"view-button":"View Config","title":"Runtime Configuration"},"tpviz":{"title":"Network Visualizer","open":"Open Transport Visualizer"},"node-traffic-data":"Traffic data"},"tabs":{"info":"Info","apps":"Apps","routing":"Routing","rewards":"Rewards","skynet":"Skynet"},"error-load":"An error occurred while refreshing the data. Retrying..."},"rewards-address-config":{"title":"Reward Address Configuration","info":"Here you can set to which Skycoin address you want the rewards to be sent. If you leave the address empty, the registration will be deleted and the visor will not receive rewards.","more-info-link":"(More info about the reward system)","address":"Address","address-error":"Please enter a valid Skycoin address.","save-config-button":"Save configuration","done":"Changes saved.","empty-warning":"The address in empty, so the registration will be deleted and no rewards will be received. Do you really want to continue?"},"router-config":{"title":"Router Configuration","info":"Here you can configure how many hops the connections must pass through other Skywire visors before reaching the final destination. NOTE: the changes will not affect the existing routes.","min-hops":"Min hops","min-hops-error":"Please enter a valid number.","save-config-button":"Save configuration","done":"Changes saved."},"nodes":{"title":"Visor list","dmsg-title":"DMSG","rewards-title":"Rewards","services-health-title":"Services health","dmsg-settings-title":"DMSG settings","reward-address":"Reward Address","reward-total":"Week Total","reward-distributed":"Distributed","reward-pending":"Pending","rewards-loading":"Loading rewards...","modify-rewards-all":"Change rewards address","update-all":"Update all online visors","hypervisor":"Hypervisor","state":"State","state-tooltip":"Current state","label":"Label","key":"Key","ip":"IP","lan-ip":"LAN IP","public-ip":"Public IP","location":"Location","dmsg-server":"DMSG server","ping":"Ping","version":"Version","config-version":"Config","hypervisor-info":"This visor is the current Hypervisor.","copy-key":"Copy key","copy-dmsg":"Copy DMSG server key","copy-data":"Copy data","view-node":"View visor","delete-node":"Remove visor","delete-all-offline":"Remove all offline visors","error-load":"An error occurred while refreshing the list. Retrying...","empty":"There aren\'t any visors connected to this hypervisor.","empty-with-filter":"No visor matches the selected filtering criteria.","delete-node-confirmation":"Are you sure you want to remove the visor from the list?","delete-all-offline-confirmation":"Are you sure you want to remove all offline visors from the list?","delete-all-filtered-offline-confirmation":"All offline visors satisfying the current filtering criteria will be removed from the list. Are you sure you want to continue?","deleted":"Visor removed.","deleted-singular":"1 offline visor removed.","deleted-plural":"{{ number }} offline visors removed.","no-visors-to-update":"There are no visors to update.","no-visors-to-modify":"There are no visors to modify.","transports":"Transports","services":"Services","reward":"Reward","reward-set":"Reward address set","reward-not-set":"No reward address","ip-location":"IP / Location","visor-version":"Visor","config-label":"Config","filter-dialog":{"online":"The visor must be","label":"The label must contain","key":"The public key must contain","dmsg":"The DMSG server key must contain","online-options":{"any":"Online or offline","online":"Online","offline":"Offline"}}},"services-health":{"loading":"Checking services\u2026","all-ok":"All services operational","degraded":"One or more services are degraded","last-updated":"last checked","service":"Service","status":"Status","latency":"Latency","version":"Version","endpoint":"Endpoint"},"dmsg-settings":{"loading":"Loading DMSG session state\u2026","summary":"DMSG client sessions","last-updated":"last updated","connect-all":"Connect to all servers","sessions-count-label":"sessions_count","apply-count":"Apply","sessions":"sessions","no-sessions":"No connected sessions.","no-clients":"No DMSG clients running on this visor.","result-total":"total:","result-already":"already connected:","result-new":"newly connected:","result-failed":"failed"},"bulk-rewards":{"title":"Change reward address","info":"Enter the Skycoin address where you want to receive the rewards. The address will be set on all the selected visors. If you leave the address empty, the registration will be deleted and the visors will not receive rewards. You can also set the reward address of each node individually using the option on the visor details page.","more-info-link":"(More info about the reward system)","address":"New address","select-visors":"Visors to alter:","current-address":"Current address:","not-registered":"None (not registered on the reward program).","checking":"Checking...","error-checking":"Error checking:","processing":"Processing...","error-processing":"Error making the change:","done":"Change done.","perform-changes":"Perform changes","empty-warning":"The address in empty, so the registrations will be deleted and no rewards will be received. Do you really want to continue?"},"edit-label":{"label":"Label","done":"Label saved.","label-removed-warning":"The label was removed."},"settings":{"title":"Settings","checking-auth":"Checking authentication settings.","password":{"initial-config-help":"Use this option for setting the initial password. After a password has been set, it is not possible to use this option to modify it.","help":"Options for changing your password.","old-password":"Old password","new-password":"New password","repeat-password":"Repeat password","password-changed":"Password changed.","error-changing":"Error changing password.","initial-config":{"title":"Set initial password","password":"Password","repeat-password":"Repeat password","set-password":"Set password","done":"Password set. Please use it to access the system.","error":"Error. Please make sure you have not already set the password."},"errors":{"bad-old-password":"The provided old password is not correct.","old-password-required":"Old password is required.","new-password-error":"Password must be 6-64 characters long.","passwords-not-match":"Passwords do not match.","default-password":"Don\'t use the default password (1234)."}},"updater-config":{"open-link":"Show updater settings","open-confirmation":"The updater settings are for experienced users only. Are you sure you want to continue?","help":"Use this form for overriding the settings that will be used by the updater. All empty fields will be ignored. The settings will be used for all updating operations, no mater which element is being updated, so please be careful.","channel":"Channel","version":"Version","archive-url":"Archive URL","checksum-url":"Checksum URL","not-saved":"The changes have not been saved yet.","save":"Save changes","remove-settings":"Remove the settings","saved":"The custom settings have been saved.","removed":"The custom settings have been removed.","save-confirmation":"Are you sure you want to apply the custom settings?","remove-confirmation":"Are you sure you want to remove the custom settings?"},"change-password":"Change password","refresh-rate":"Refresh rate","refresh-rate-help":"Time the system waits to update the data automatically.","refresh-rate-confirmation":"Refresh rate changed.","seconds":"seconds"},"login":{"password":"Password","incorrect-password":"Incorrect password.","initial-config":"Configure initial launch"},"actions":{"menu":{"terminal":"Terminal","config":"Configuration","update":"Update","proxy":"Resolving Proxy","turn-off":"Turn off","logs":"View logs"},"update":{"confirmation":"A terminal will be opened in a new tab and the update procedure will be started automatically. Do you want to continue?"},"turn-off":{"confirmation":"Are you sure you want to turn off the visor?","done":"The visor is shutting down."},"terminal-options":{"full":"Full terminal","simple":"Simple terminal"},"terminal":{"title":"Terminal","input-start":"Skywire terminal for {{address}}","error":"Unexpected error while trying to execute the command."}},"update":{"title":"Update","error-title":"Error","processing":"Looking for updates...","no-update":"There is no update for the visor. The currently installed version is:","no-updates":"No new updates were found.","already-updating":"Some visors are already being updated:","with-error":"It was not possible to check the following visors:","update-available":"The following updates were found:","update-available-singular":"The following updates for 1 visor were found:","update-available-plural":"The following updates for {{ number }} visors were found:","update-available-additional-singular":"The following additional updates for 1 visor were found:","update-available-additional-plural":"The following additional updates for {{ number }} visors were found:","update-instructions":"Click the \'Install updates\' button to continue.","updating":"The update operation has been started, you can open this window again for checking the progress:","version-change":"From {{ currentVersion }} to {{ newVersion }}","selected-channel":"Selected channel:","downloaded-file-name-prefix":"Downloading: ","speed-prefix":"Speed: ","time-downloading-prefix":"Time downloading: ","time-left-prefix":"Aprox. time left: ","starting":"Preparing to update","finished":"Status connection finished","install":"Install updates"},"update-all":{"title":"Update","updatable-list-text":"Please press the buttons of the visors you want to update. A terminal will be opened in a new tab for each visor and the update procedure will be started automatically.","non-updatable-list-text":"The following visors can not be updated via the terminal:","update-button":"Update"},"apps":{"log":{"title":"Log","empty":"There are no log messages for the selected time range.","filter-button":"Only showing logs generated since:","view-all":"View all {{ totalLogs }} entries","filter":{"title":"Filter","filter":"Only show logs generated since","7-days":"The last 7 days","1-month":"The last 30 days","3-months":"The last 3 months","6-months":"The last 6 months","1-year":"The last year","all":"Show all"}},"apps-list":{"title":"Applications","title-official":"Official Applications","title-user":"User Applications","list-title":"Application list","app-name":"Name","port":"Port","state":"State","state-tooltip":"Current state","auto-start":"Auto start","empty-official":"This visor doesn\'t have any official applications.","empty-user":"This visor doesn\'t have any user applications.","empty-with-filter":"No app matches the selected filtering criteria.","disable-autostart":"Disable autostart","enable-autostart":"Enable autostart","autostart-disabled":"Autostart disabled","autostart-enabled":"Autostart enabled","unavailable-logs-error":"Unable to show the logs while the app is not running.","filter-dialog":{"state":"The state must be","name":"The name must contain","port":"The port must contain","autostart":"The autostart must be","state-options":{"any":"Running or stopped","running":"Running","stopped":"Stopped"},"autostart-options":{"any":"Enabled or disabled","enabled":"Enabled","disabled":"Disabled"}}},"user-app-settings":{"title":"{{ name }} (Settings)","info":"Here you can edit the app settings as name-value pairs. Please check the application docs to see which settings and values are supported by this app.","name":"Name {{ number }}","value":"Value {{ number }}","remove":"Remove","add":"Add setting","save":"Save","invalid-confirmation":"One or more settings do not have a name and will be ignored. Do you want to continue?","empty-confirmation":"The settings list is empty. Do you really want to continue?","changes-made":"The changes have been made."},"skychat-settings":{"title":"Skychat Settings","localhost-only":"Allow access from the local machine only","port":"Port","save":"Save","changes-made":"The changes have been made.","port-error":"Must be a valid number between 1025 and 65536.","non-localhost-confirmation":"This will allow to use the app from anywhere on the internet. Are you sure you vant to continue?"},"vpn-socks-server-settings":{"socks-title":"Skysocks Settings","vpn-title":"VPN-Server Settings","whitelist":"Allowed peers (public keys)","whitelist-help":"Comma- or whitespace-separated public keys. Empty = open to all authenticated peers.","whitelist-invalid-pk":"One or more entries is not a valid 66-character hex public key.","netifc":"Default network interface (optional)","secure-mode-check":"Use secure mode","secure-mode-info":"When active, the server doesn\'t allow client/server SSH and doesn\'t allow any traffic from VPN clients to the server local network.","save":"Save","set-whitelist-confirmation":"Apply this whitelist to the server? Only the listed peers will be able to connect.","clear-whitelist-confirmation":"The whitelist is empty. The server will accept connections from any authenticated peer. Continue?","changes-made":"The changes have been made."},"vpn-socks-client-settings":{"socks-title":"Skysocks-Client Settings","vpn-title":"VPN-Client Settings","discovery-tab":"Search","remote-visor-tab":"Enter manually","history-tab":"History","settings-tab":"Settings","use":"Use this data","change-note":"Change note","remove-entry":"Remove entry","note":"Note:","note-entered-manually":"Entered manually","note-obtained":"Obtained from the discovery service","key":"Key:","port":"Port:","location":"Location:","state-available":"Available","state-offline":"Offline","public-key":"Remote visor public key","password":"Password","password-history-warning":"Note: the password will not be saved in the history.","copy-pk-info":"Copy public key.","copied-pk-info":"The public key has been copied.","copy-pk-error":"There was a problem copying the public key.","no-elements":"Currently there are no elements to show. Please try again later.","no-elements-for-filters":"There are no elements that meet the filter criteria.","no-filter":"No filter has been selected","click-to-change":"Click to change","remote-key-length-error":"The public key must be 66 characters long.","remote-key-chars-error":"The public key must only contain hexadecimal characters.","save":"Save","remove-from-history-confirmation":"Are you sure you want to remove the entry from the history?","change-key-confirmation":"Are you sure you want to change the remote visor public key?","changes-made":"The changes have been made.","no-history":"This tab will show the last {{ number }} public keys used.","default-note-warning":"The default note has been used.","pagination-info":"{{ currentElementsRange }} of {{ totalElements }}","dns":"Custom DNS server IP address","dns-error":"Invalid value.","killswitch-check":"Activate killswitch","killswitch-info":"When active, all network connections will be disabled if the app is running but the VPN protection is interrupted (for temporary errors or any other problem). This avoids data leaks.","settings-changed-alert":" The changes have not been saved yet.","save-settings":"Save settings","change-note-dialog":{"title":"Change Note","note":"Note"},"password-dialog":{"title":"Enter Password","password":"Password","info":"You are being asked for a password because a password was set when the selected entry was created, but the it was not saved for security reasons. You can leave the password empty if needed.","continue-button":"Continue"},"filter-dialog":{"title":"Filters","country":"The country must be","any-country":"Any","location":"The location must contain","pub-key":"The public key must contain","apply":"Apply"}},"stop-app":"Stop","start-app":"Start","view-logs":"View logs","settings":"Settings","open":"Open","error":"An error has occured and it was not possible to perform the operation.","stop-confirmation":"Are you sure you want to stop the app?","stop-selected-confirmation":"Are you sure you want to stop the selected apps?","disable-autostart-confirmation":"Are you sure you want to disable autostart for the app?","enable-autostart-confirmation":"Are you sure you want to enable autostart for the app?","disable-autostart-selected-confirmation":"Are you sure you want to disable autostart for the selected apps?","enable-autostart-selected-confirmation":"Are you sure you want to enable autostart for the selected apps?","operation-completed":"Operation completed.","operation-unnecessary":"The selection already has the requested setting.","status-running":"Running","status-connecting":"Connecting","status-stopped":"Stopped","status-failed":"Ended with the following error: {{ error }}","status-running-tooltip":"App is currently running","status-connecting-tooltip":"App is currently connecting","status-stopped-tooltip":"App is currently stopped","status-failed-tooltip":"The app finished with the following error: {{ error }}"},"transports":{"title":"Transports","info":"Connections you have with remote Skywire visors, to allow local Skywire apps to communicate with apps running on those remote visors.","list-title":"Transport list","offline":"Offline","persistent":"Persistent","persistent-tooltip":"Persistent transports, which are created automatically when the visor is turned on and are automatically recreated in case of disconnection.","persistent-transport-tooltip":"This transport is persistent, so it is created automatically when the visor is turned on and automatically recreated in case of disconnection.","persistent-transport-button-tooltip":"This transport is persistent, so it is created automatically when the visor is turned on and automatically recreated in case of disconnection. Press to make non-persistent.","non-persistent-transport-button-tooltip":"Press to make this transport persistent. Persistent transports are created automatically when the visor is turned on and automatically recreated in case of disconnection.","make-persistent":"Make persistent","make-non-persistent":"Make non-persistent","make-selected-persistent":"Make all selected persistent","make-selected-non-persistent":"Make all selected non-persistent","changes-made":"Changes made.","no-changes-needed":"No changes were needed.","id":"ID","remote-node":"Remote","type":"Type","create":"Create transport","make-persistent-confirmation":"Are you sure you want to make the transport persistent?","make-non-persistent-confirmation":"Are you sure you want to make the transport non-persistent?","make-selected-persistent-confirmation":"Are you sure you want to make the selected transports persistent?","make-selected-non-persistent-confirmation":"Are you sure you want to make the selected transports non-persistent?","make-offline-non-persistent-confirmation":"Are you sure you want to make the transport non-persistent? It will not be shown in the list while offline anymore.","delete-confirmation":"Are you sure you want to delete the transport?","delete-persistent-confirmation":"This transport is persistent, so it may be recreated shortly after deletion. Are you sure you want to delete it?","delete-selected-confirmation":"Are you sure you want to delete the selected transports?","delete":"Delete transport","deleted":"Delete operation completed.","empty":"Visor doesn\'t have any transports.","empty-with-filter":"No transport matches the selected filtering criteria.","details":{"title":"Details","basic":{"title":"Basic info","persistent":"Persistent:","id":"ID:","local-pk":"Local public key:","remote-pk":"Remote public key:","type":"Type:"},"data":{"title":"Data transmission","uploaded":"Uploaded data:","downloaded":"Downloaded data:"}},"dialog":{"remote-key":"Remote public key","label":"Identification name (optional)","transport-type":"Transport type","make-persistent":"Make persistent","persistent-tooltip":"Persistent transports are created automatically when the visor is turned on and automatically recreated in case of disconnection.","only-persistent-created":"The persistent transport was created, but it may have not been activated.","success":"Transport created.","success-without-label":"The transport was created, but it was not possible to save the label.","errors":{"remote-key-length-error":"The remote public key must be 66 characters long.","remote-key-chars-error":"The remote public key must only contain hexadecimal characters.","transport-type-error":"The transport type is required."}},"filter-dialog":{"persistent":"The transport must be","id":"The id must contain","remote-node":"The remote key must contain","persistent-options":{"any":"Any","persistent":"Persistent","non-persistent":"Non-persistent"}}},"routes":{"title":"Routes","info":"Paths used to reach the remote visors to which transports have been established. Routes are automatically generated as needed.","list-title":"Route list","key":"Key","type":"Type","source":"Source","destination":"Destination","delete-confirmation":"Are you sure you want to delete the route?","delete-selected-confirmation":"Are you sure you want to delete the selected routes?","delete":"Delete route","deleted":"Delete operation completed.","empty":"Visor doesn\'t have any routes.","empty-with-filter":"No route matches the selected filtering criteria.","details":{"title":"Details","basic":{"title":"Basic info","key":"Key:","rule":"Rule:"},"summary":{"title":"Rule summary","keep-alive":"Keep alive:","type":"Rule type:","key-route-id":"Key route ID:"},"specific-fields-titles":{"app":"App fields","forward":"Forward fields","intermediary-forward":"Intermediary forward fields"},"specific-fields":{"route-id":"Next route ID:","transport-id":"Next transport ID:","destination-pk":"Destination public key:","source-pk":"Source public key:","destination-port":"Destination port:","source-port":"Source port:"}},"filter-dialog":{"key":"The key must contain","type":"The type must be","source":"The source must contain","destination":"The destination must contain","any-type-option":"Any"}},"copy":{"tooltip":"Click to copy","tooltip-with-text":"{{ text }} (Click to copy)","copied":"Copied!"},"selection":{"select-all":"Select all","unselect-all":"Unselect all","delete-all":"Delete all selected elements","start-all":"Start all selected apps","stop-all":"Stop all selected apps","enable-autostart-all":"Enable autostart for all selected apps","disable-autostart-all":"Disable autostart for all selected apps"},"refresh-button":{"seconds":"Updated a few seconds ago","minute":"Updated 1 minute ago","minutes":"Updated {{ time }} minutes ago","hour":"Updated 1 hour ago","hours":"Updated {{ time }} hours ago","day":"Updated 1 day ago","days":"Updated {{ time }} days ago","week":"Updated 1 week ago","weeks":"Updated {{ time }} weeks ago","error-tooltip":"There was an error updating the data. Retrying automatically every {{ time }} seconds..."},"view-all-link":{"label":"View all {{ number }} elements"},"paginator":{"first":"First","last":"Last","total":"Total: {{ number }} pages","select-page-title":"Select page"},"confirmation":{"header-text":"Confirmation","confirm-button":"Yes","cancel-button":"No","close":"Close","error-header-text":"Error","done-header-text":"Done"},"language":{"title":"Select language"},"tabs-window":{"title":"Change tab"},"vpn":{"title":"VPN Control Panel","start":"Start","servers":"Servers","settings":"Settings","unnamed":"Unnamed","starting-blocked-server-error":"Unable to connect to the selected server because it has been added to the blocked servers list.","unexpedted-error":"An unexpected error occurred and the operation could not be completed.","remote-access-title":"It appears that you are accessing the system remotely","remote-access-text":"This application only allows you to manage the VPN protection of the device on which it was installed. Changes made with it will not affect remote devices like the one you seem to be using. Also, the displayed IP data may be incorrect.","server-change":{"busy-error":"The system is busy. Please wait.","backend-error":"It was not possible to change the server. Please make sure the public key is correct and the VPN app is running.","already-selected-warning":"The selected server is already being used.","change-server-while-connected-confirmation":"The VPN protection will be interrupted while changing the server and some data may be transmitted unprotected during the process. Do you want to continue?","start-same-server-confirmation":"You had already selected that server. Do you want to connect to it?"},"error-page":{"text":"The VPN client app is not available.","more-info":"It was not possible to connect to the VPN client app. This may be due to a configuration error, an unexpected problem with the visor or because you used an invalid public key in the URL.","text-pk":"Invalid configuration.","more-info-pk":"The application cannot be started because you have not specified the visor public key.","text-storage":"Error saving data.","more-info-storage":"There has been a conflict when trying to save the data and the application has been closed to prevent errors. This could happen if you open the application in more than one tab or window.","text-pk-change":"Invalid operation.","more-info-pk-change":"Please use this application to manage only one VPN client."},"connection-info":{"state-title":"Your connection is currently:","state-connecting":"Connecting","state-connecting-info":"The VPN protection is being activated.","state-connected":"Connected","state-connected-info":"The VPN protection is on.","state-disconnecting":"Disconnecting","state-disconnecting-info":"The VPN protection is being deactivated.","state-reconnecting":"Reconnecting","state-reconnecting-info":"The VPN protection is being restored.","state-disconnected":"Disconnected","state-disconnected-info":"The VPN protection is off.","state-info":"Current connection status.","latency-info":"Current latency.","upload-info":"Upload speed.","download-info":"Download speed."},"connection-error":{"text":"Connection error","info":"Problem connecting with the vpn app. Some data being displayed could be outdated."},"status-page":{"start-title":"Start VPN","no-server":"No server selected!","disconnect":"Disconnect","last-error":"Last error:","unknown-error":"Unknown error.","disconnect-confirmation":"Are you sure you want to stop the VPN protection?","upload-info":"Uploaded data stats.","download-info":"Downloaded data stats.","latency-info":"Latency stats.","total-data-label":"total","problem-connecting-error":"It was not possible to connect to the server. The server may be invalid or temporarily down.","problem-starting-error":"It was not possible to start the VPN. Please make sure the base VPN client app is running.","problem-stopping-error":"It was not possible to stop the VPN. Please make sure the base VPN client app is running.","generic-problem-error":"It was not possible to perform the operation. Please make sure the base VPN client app is running.","select-server-warning":"Please select a server first.","data":{"ip":"IP address:","ip-problem-info":"There was a problem trying to get the IP. Please verify it using an external service.","ip-country-problem-info":"There was a problem trying to get the country. Please verify it using an external service.","ip-refresh-info":"Refresh","ip-refresh-time-warning":"Please wait {{ seconds }} second(s) before refreshing the data.","ip-refresh-loading-warning":"Please wait for the previous operation to finish.","country":"Country:","server":"Server:","server-note":"Server note:","original-server-note":"Original server note:","local-pk":"Local visor public key:","remote-pk":"Remote visor public key:","unavailable":"Unavailable"}},"server-options":{"tooltip":"Options","connect-without-password":"Connect without password","connect-without-password-confirmation":"The connection will be made without the password. Are you sure you want to continue?","connect-using-password":"Connect using a password","connect-using-another-password":"Connect using another password","edit-name":"Custom name","edit-label":"Custom note","make-favorite":"Make favorite","make-favorite-confirmation":"Are you sure you want to mark this server as favorite? It will be removed from the blocked list.","make-favorite-done":"Added to the favorites list.","remove-from-favorites":"Remove from favorites","remove-from-favorites-done":"Removed from the favorites list.","block":"Block server","block-done":"Added to the blocked list.","block-confirmation":"Are you sure you want to block this server? It will be removed from the favorites list.","block-selected-confirmation":"Are you sure you want to block the currently selected server? All connections will be closed.","block-selected-favorite-confirmation":"Are you sure you want to block the currently selected server? All connections will be closed and it will be removed from the favorites list.","unblock":"Unblock server","unblock-done":"Removed from the blocked list.","remove-from-history":"Remove from history","remove-from-history-confirmation":"Are you sure you want to remove this server from the history?","remove-from-history-done":"Removed from history.","edit-value":{"name-title":"Custom Name","note-title":"Custom Note","name-label":"Custom name","note-label":"Custom note","apply-button":"Apply","changes-made-confirmation":"The change has been made."}},"server-conditions":{"selected-info":"This is the currently selected server.","blocked-info":"This server is in the blocked list.","favorite-info":"This server is in the favorites list.","history-info":"This server is in the server history.","has-password-info":"A password was set for connecting with this server."},"server-list":{"date-small-table-label":"Date","date-info":"Last time you used this server.","country-small-table-label":"Country","country-info":"Country where the server is located.","name-small-table-label":"Name","location-small-table-label":"Location","public-key-small-table-label":"Pk","public-key-info":"Server public key.","congestion-rating-small-table-label":"Congestion rating","congestion-rating-info":"Rating of the server related to how congested it tends to be.","congestion-small-table-label":"Congestion","congestion-info":"Current server congestion.","latency-rating-small-table-label":"Latency rating","latency-rating-info":"Rating of the server related to how much latency it tends to have.","latency-small-table-label":"Latency","latency-info":"Current server latency.","hops-small-table-label":"Hops","hops-info":"How many hops are needed for connecting with the server.","note-small-table-label":"Note","note-info":"Note about the server.","gold-rating-info":"Gold","silver-rating-info":"Silver","bronze-rating-info":"Bronze","notes-info":"Custom note: {{ custom }} - Original note: {{ original }}","empty-discovery":"Currently there are no VPN servers to show. Please try again later.","empty-history":"There is no history to show.","empty-favorites":"There are no favorite servers to show.","empty-blocked":"There are no blocked servers to show.","empty-with-filter":"No VPN server matches the selected filtering criteria.","add-manually-info":"Add server manually.","current-filters":"Current filters (press to remove)","none":"None","unknown":"Unknown","tabs":{"public":"Public","history":"History","favorites":"Favorites","blocked":"Blocked"},"add-server-dialog":{"title":"Enter manually","pk-label":"Server public key","password-label":"Server password (if any)","name-label":"Server name (optional)","note-label":"Personal note (optional)","pk-length-error":"The public key must be 66 characters long.","pk-chars-error":"The public key must only contain hexadecimal characters.","use-server-button":"Use server"},"password-dialog":{"title":"Enter Password","password-if-any-label":"Server password (if any)","password-label":"Server password","continue-button":"Continue"},"filter-dialog":{"country":"The country must be","name":"The name must contain","location":"The location must contain","public-key":"The public key must contain","congestion-rating":"The congestion rating must be","latency-rating":"The latency rating must be","rating-options":{"any":"Any","gold":"Gold","silver":"Silver","bronze":"Bronze"},"country-options":{"any":"Any"}}},"settings-page":{"setting-small-table-label":"Setting","value-small-table-label":"Value","killswitch":"Killswitch","killswitch-info":"When active, all network connections will be disabled if the app is running but the VPN protection is interrupted (for temporary errors or any other problem). This avoids data leaks.","get-ip":"Get IP info","get-ip-info":"When active, the application will use external services to obtain information about the current IP.","data-units":"Data units","data-units-info":"Allows to select the units that will be used to display the data transmission statistics.","minimum-hops":"Minimum hops","minimum-hops-info":"Allows to set the minimum number of hops the connections must pass through other Skywire visors before reaching the final destination.","dns":"Custom DNS server","dns-info":"Allows to use a custom DNS server, which could improve privacy and prevent sites from being blocked by the default DNS server of your ISP.","setting-none":"None","setting-on":"On","setting-off":"Off","working-warning":"The system is busy. Please wait for the previous operation to finish.","change-while-connected-confirmation":"The VPN protection will be interrupted while changing the setting. Do you want to continue?","data-units-modal":{"title":"Data Units","only-bits":"Bits for all stats","only-bytes":"Bytes for all stats","bits-speed-and-bytes-volume":"Bits for speed and bytes for volume (default)"}},"dns-config":{"title":"Custom DNS server","ip":"Custom DNS server IP address","save-config-button":"Save configuration","done":"Changes saved."}}}')}}]); \ No newline at end of file diff --git a/static/skywire-manager-src/dist/assets/i18n/en.json b/static/skywire-manager-src/dist/assets/i18n/en.json index d643ddff7a..ea49412e4f 100644 --- a/static/skywire-manager-src/dist/assets/i18n/en.json +++ b/static/skywire-manager-src/dist/assets/i18n/en.json @@ -2,6 +2,7 @@ "common": { "save": "Save", "cancel": "Cancel", + "loading": "Loading…", "downloaded": "Downloaded", "uploaded": "Uploaded", "loading-error": "There was an error getting the data. Retrying...", @@ -89,6 +90,20 @@ "node": { "title": "Visor details", "not-found": "Visor not found.", + "resource-monitor": { + "title": "Resource monitor", + "tab-host": "Host", + "tab-process": "Process", + "cpu": "CPU", + "memory": "Memory", + "disk": "Disk", + "net-rx": "Net rx", + "net-tx": "Net tx", + "threads": "Threads", + "heap": "Heap", + "goroutines": "Goroutines", + "gc": "GC rate" + }, "logs" : { "title": "Runtime Logs", "no-logs": "No runtime logs were found for this visor.", @@ -104,7 +119,10 @@ "filter-warning": "Warning or more important", "filter-error": "Error or more important", "filter-faltal": "Faltal or more important", - "filter-panic": "Panic" + "filter-panic": "Panic", + "live-on": "Live (pause)", + "live-off": "Paused (live)", + "dropped": "Skipped {{ count }} older entries that aged out of the visor's runtime buffer." }, "statuses": { "online": "Online", @@ -156,7 +174,8 @@ "not-registered-info": "You have not specified a Skycoin address for receiving rewards for this visor. If you want to register the visor for receiving rewards, press the \"Set address\" button and set a Skycoin address.", "open-in-explorer": "Open in blockchain explorer", "set-address-button": "Set address", - "change-address-button": "Change address" + "change-address-button": "Change address", + "show-rules": "Reward rules (embedded mainnet_rules.md)" }, "transports-info": { "title": "Transport", @@ -214,8 +233,12 @@ "info": "Info", "apps": "Apps", "routing": "Routing", + "transports": "Transports", "rewards": "Rewards", - "skynet": "Skynet" + "skynet": "Skynet", + "resources": "Resources", + "chat": "Skychat", + "dmsg": "DMSG" }, "error-load": "An error occurred while refreshing the data. Retrying..." }, @@ -244,7 +267,10 @@ "title": "Visor list", "dmsg-title": "DMSG", "rewards-title": "Rewards", - "services-health-title": "Services health", + "services-health-title": "Deployment", + "network-title": "Network", + "resources-title": "Resources", + "transports-title": "Transports", "dmsg-settings-title": "DMSG settings", "reward-address": "Reward Address", "reward-total": "Week Total", @@ -306,16 +332,121 @@ } }, + "network-transports": { + "loading": "Fetching transport metrics from TPD…", + "summary": "{{transports}} transports · {{bandwidth}} network bandwidth ({{days}} days)", + "last-updated": "last fetched", + "days": "Window", + "view": "View", + "view-compact": "Compact", + "view-tree": "Tree", + "refresh": "Refresh", + "tp-id": "Transport ID", + "type": "Type", + "edge-a": "Edge A", + "edge-b": "Edge B", + "sent": "Sent", + "recv": "Recv", + "total": "Total", + "latency": "Latency" + }, + + "multi-resources": { + "loading": "Polling visor host stats…", + "summary": "{{count}} visors", + "last-updated": "last sample", + "visor": "Visor", + "cpu": "CPU", + "mem": "Memory", + "disk": "Disk", + "tx": "TX", + "rx": "RX", + "proc-rss": "Process RSS" + }, + "services-health": { - "loading": "Checking services…", - "all-ok": "All services operational", - "degraded": "One or more services are degraded", + "loading": "Checking deployment services…", + "all-ok": "All deployment services operational", + "degraded": "One or more deployment services are degraded", "last-updated": "last checked", "service": "Service", "status": "Status", "latency": "Latency", "version": "Version", - "endpoint": "Endpoint" + "endpoint": "Endpoint", + "rsn-section": "Route Setup Nodes", + "rsn-empty": "No route setup nodes configured.", + "rsn-pk": "Public Key", + "rsn-success": "Successful", + "rsn-failed": "Failed", + "rsn-rate": "Success rate", + "rsn-latency-p50": "p50", + "rsn-latency-p95": "p95", + "rsn-latency-p99": "p99", + "rsn-active": "In flight", + "rsn-last-success": "Last success", + "rsn-last-failure": "Last failure", + "rsn-uptime": "Uptime", + "rsn-failure-reasons": "Top failure reasons", + "rsn-error": "Unreachable" + }, + + "skychat": { + "title": "Skychat", + "connected": "Connected", + "disconnected": "Disconnected", + "no-history": "history is disabled (--persist not set)", + "empty": "No messages yet — incoming chats from connected peers will appear here.", + "peers": "Peers", + "peers-empty": "No peers yet. Send a message or wait for an incoming chat.", + "to": "Recipient PK", + "network": "Network", + "message": "Message", + "placeholder": "Type a message; Ctrl+Enter to send", + "send": "Send", + "password": { + "set": "Set password", + "change": "Change password", + "clear": "Remove", + "hide": "Hide", + "saved": "Skychat password updated", + "cleared": "Skychat password removed", + "old": "Current password", + "new": "New password", + "confirm": "Repeat new password", + "help-unset": "Skychat is currently unprotected. Set a password to require basic auth on the standalone :8001 surface; this hypervisor session always bypasses it.", + "help-set": "A password is set on skychat's standalone :8001 surface. Change or remove it here.", + "errors": { + "length": "Skychat password must be 6-64 characters", + "mismatch": "Passwords do not match", + "old-required": "Current password is required to remove the gate" + } + } + }, + + "network-view": { + "loading": "Aggregating service-discovery, transport-discovery and uptime-tracker…", + "last-updated": "last fetched", + "empty": "No visors match the current filters.", + "search": "Search", + "country": "Country", + "version": "Version", + "min-transports": "Min tps", + "online-only": "Online only", + "refresh": "Refresh now", + "col": { + "pk": "PK", + "country": "Country", + "version": "Version", + "services": "Services", + "total": "Total", + "status": "UT" + }, + "legend": { + "offline": "offline (UT)", + "not-in-ut": "not in UT", + "low-transports": "online but <2 stcpr/sudph" + } }, "dmsg-settings": { @@ -671,6 +802,7 @@ "id": "ID", "remote-node": "Remote", "type": "Type", + "latency": "Latency", "create": "Create transport", "make-persistent-confirmation": "Are you sure you want to make the transport persistent?", "make-non-persistent-confirmation": "Are you sure you want to make the transport non-persistent?", @@ -736,6 +868,12 @@ "type": "Type", "source": "Source", "destination": "Destination", + "local-port": "Local port", + "remote-port": "Remote port", + "remote-pk": "Remote", + "next-rid": "Next RID", + "next-tp": "Next TP", + "keep-alive": "Keep-alive", "delete-confirmation": "Are you sure you want to delete the route?", "delete-selected-confirmation": "Are you sure you want to delete the selected routes?", "delete": "Delete route", diff --git a/static/skywire-manager-src/dist/index.html b/static/skywire-manager-src/dist/index.html index e31420b47b..0f7e3924ac 100644 --- a/static/skywire-manager-src/dist/index.html +++ b/static/skywire-manager-src/dist/index.html @@ -7,9 +7,9 @@ - +
- + diff --git a/static/skywire-manager-src/dist/main.24a0e2795721511f.js b/static/skywire-manager-src/dist/main.24a0e2795721511f.js deleted file mode 100644 index 063c92d7c2..0000000000 --- a/static/skywire-manager-src/dist/main.24a0e2795721511f.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkskywire_manager=self.webpackChunkskywire_manager||[]).push([[792],{256(vu,Uv,wc){"use strict";let Sn=null,ts=!1,Ba=1;const kn=Symbol("SIGNAL");function De(t){const n=Sn;return Sn=t,n}const Sc={version:0,lastCleanEpoch:0,dirty:!1,producers:void 0,producersTail:void 0,consumers:void 0,consumersTail:void 0,recomputing:!1,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,kind:"unknown",producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function yu(t){if(ts)throw new Error("");if(null===Sn)return;Sn.consumerOnSignalRead(t);const n=Sn.producersTail;if(void 0!==n&&n.producer===t)return;let e;const i=Sn.recomputing;if(i&&(e=void 0!==n?n.nextProducer:Sn.producers,void 0!==e&&e.producer===t))return Sn.producersTail=e,void(e.lastReadVersion=t.version);const o=t.consumersTail;if(void 0!==o&&o.consumer===Sn&&(!i||function Sj(t,n){const e=n.producersTail;if(void 0!==e){let i=n.producers;do{if(i===t)return!0;if(i===e)break;i=i.nextProducer}while(void 0!==i)}return!1}(o,Sn)))return;const r=Dc(Sn),s={producer:t,consumer:Sn,nextProducer:e,prevConsumer:o,lastReadVersion:t.version,nextConsumer:void 0};Sn.producersTail=s,void 0!==n?n.nextProducer=s:Sn.producers=s,r&&ED(t,s)}function Cu(t){if((!Dc(t)||t.dirty)&&(t.dirty||t.lastCleanEpoch!==Ba)){if(!t.producerMustRecompute(t)&&!yp(t))return void vp(t);t.producerRecomputeValue(t),vp(t)}}function TD(t){if(void 0===t.consumers)return;const n=ts;ts=!0;try{for(let e=t.consumers;void 0!==e;e=e.nextConsumer){const i=e.consumer;i.dirty||Cj(i)}}finally{ts=n}}function MD(){return!1!==Sn?.consumerAllowSignalWrites}function Cj(t){t.dirty=!0,TD(t),t.consumerMarkedDirty?.(t)}function vp(t){t.dirty=!1,t.lastCleanEpoch=Ba}function kc(t){return t&&function wj(t){t.producersTail=void 0,t.recomputing=!0}(t),De(t)}function wu(t,n){De(n),t&&function xj(t){t.recomputing=!1;const n=t.producersTail;let e=void 0!==n?n.nextProducer:t.producers;if(void 0!==e){if(Dc(t))do{e=$v(e)}while(void 0!==e);void 0!==n?n.nextProducer=void 0:t.producers=void 0}}(t)}function yp(t){for(let n=t.producers;void 0!==n;n=n.nextProducer){const e=n.producer,i=n.lastReadVersion;if(i!==e.version||(Cu(e),i!==e.version))return!0}return!1}function xu(t){if(Dc(t)){let n=t.producers;for(;void 0!==n;)n=$v(n)}t.producers=void 0,t.producersTail=void 0,t.consumers=void 0,t.consumersTail=void 0}function ED(t,n){const e=t.consumersTail,i=Dc(t);if(void 0!==e?(n.nextConsumer=e.nextConsumer,e.nextConsumer=n):(n.nextConsumer=void 0,t.consumers=n),n.prevConsumer=e,t.consumersTail=n,!i)for(let o=t.producers;void 0!==o;o=o.nextProducer)ED(o.producer,o)}function $v(t){const n=t.producer,e=t.nextProducer,i=t.nextConsumer,o=t.prevConsumer;if(t.nextConsumer=void 0,t.prevConsumer=void 0,void 0!==i?i.prevConsumer=o:n.consumersTail=o,void 0!==o)o.nextConsumer=i;else if(n.consumers=i,!Dc(n)){let r=n.producers;for(;void 0!==r;)r=$v(r)}return e}function Dc(t){return t.consumerIsAlwaysLive||void 0!==t.consumers}function Gv(t,n){return Object.is(t,n)}function ID(t,n){const e=Object.create(kj);e.computation=t,void 0!==n&&(e.equal=n);const i=()=>{if(Cu(e),yu(e),e.value===ns)throw e.error;return e.value};return i[kn]=e,i}const Va=Symbol("UNSET"),Tc=Symbol("COMPUTING"),ns=Symbol("ERRORED"),kj={...Sc,value:Va,dirty:!0,error:null,equal:Gv,kind:"computed",producerMustRecompute:t=>t.value===Va||t.value===Tc,producerRecomputeValue(t){if(t.value===Tc)throw new Error("");const n=t.value;t.value=Tc;const e=kc(t);let i,o=!1;try{i=t.computation(),De(null),o=n!==Va&&n!==ns&&i!==ns&&t.equal(n,i)}catch(r){i=ns,t.error=r}finally{wu(t,e)}o?t.value=n:(t.value=i,t.version++)}};let PD=function Dj(){throw new Error};function OD(t){PD(t)}function wp(t,n){MD()||OD(t),t.equal(t.value,n)||(t.value=n,function Ij(t){t.version++,function yj(){Ba++}(),TD(t)}(t))}function AD(t,n){MD()||OD(t),wp(t,n(t.value))}const qv={...Sc,equal:Gv,value:void 0,kind:"signal"},Pj={...Sc,consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!0,dirty:!0,kind:"effect"};function Jt(t){return"function"==typeof t}function Kv(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 Yv=Kv(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 xp(t,n){if(t){const e=t.indexOf(n);0<=e&&t.splice(e,1)}}class mt{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(Jt(i))try{i()}catch(r){n=r instanceof Yv?r.errors:[r]}const{_finalizers:o}=this;if(o){this._finalizers=null;for(const r of o)try{FD(r)}catch(s){n=n??[],s instanceof Yv?n=[...n,...s.errors]:n.push(s)}}if(n)throw new Yv(n)}}add(n){var e;if(n&&n!==this)if(this.closed)FD(n);else{if(n instanceof mt){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)&&xp(e,n)}remove(n){const{_finalizers:e}=this;e&&xp(e,n),n instanceof mt&&n._removeParent(this)}}mt.EMPTY=(()=>{const t=new mt;return t.closed=!0,t})();const RD=mt.EMPTY;function ND(t){return t instanceof mt||t&&"closed"in t&&Jt(t.remove)&&Jt(t.add)&&Jt(t.unsubscribe)}function FD(t){Jt(t)?t():t.unsubscribe()}const Ha={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},Sp={setTimeout(t,n,...e){const{delegate:i}=Sp;return i?.setTimeout?i.setTimeout(t,n,...e):setTimeout(t,n,...e)},clearTimeout(t){const{delegate:n}=Sp;return(n?.clearTimeout||clearTimeout)(t)},delegate:void 0};function LD(t){Sp.setTimeout(()=>{const{onUnhandledError:n}=Ha;if(!n)throw t;n(t)})}function kp(){}const Aj=Xv("C",void 0,void 0);function Xv(t,n,e){return{kind:t,value:n,error:e}}let ja=null;function Dp(t){if(Ha.useDeprecatedSynchronousErrorHandling){const n=!ja;if(n&&(ja={errorThrown:!1,error:null}),t(),n){const{errorThrown:e,error:i}=ja;if(ja=null,e)throw i}}else t()}class Tp extends mt{constructor(n){super(),this.isStopped=!1,n?(this.destination=n,ND(n)&&n.add(this)):this.destination=Hj}static create(n,e,i){return new Su(n,e,i)}next(n){this.isStopped?Qv(function Nj(t){return Xv("N",t,void 0)}(n),this):this._next(n)}error(n){this.isStopped?Qv(function Rj(t){return Xv("E",void 0,t)}(n),this):(this.isStopped=!0,this._error(n))}complete(){this.isStopped?Qv(Aj,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 Lj=Function.prototype.bind;function Zv(t,n){return Lj.call(t,n)}class Bj{constructor(n){this.partialObserver=n}next(n){const{partialObserver:e}=this;if(e.next)try{e.next(n)}catch(i){Mp(i)}}error(n){const{partialObserver:e}=this;if(e.error)try{e.error(n)}catch(i){Mp(i)}else Mp(n)}complete(){const{partialObserver:n}=this;if(n.complete)try{n.complete()}catch(e){Mp(e)}}}class Su extends Tp{constructor(n,e,i){let o;if(super(),Jt(n)||!n)o={next:n??void 0,error:e??void 0,complete:i??void 0};else{let r;this&&Ha.useDeprecatedNextContext?(r=Object.create(n),r.unsubscribe=()=>this.unsubscribe(),o={next:n.next&&Zv(n.next,r),error:n.error&&Zv(n.error,r),complete:n.complete&&Zv(n.complete,r)}):o=n}this.destination=new Bj(o)}}function Mp(t){Ha.useDeprecatedSynchronousErrorHandling?function Fj(t){Ha.useDeprecatedSynchronousErrorHandling&&ja&&(ja.errorThrown=!0,ja.error=t)}(t):LD(t)}function Qv(t,n){const{onStoppedNotification:e}=Ha;e&&Sp.setTimeout(()=>e(t,n))}const Hj={closed:!0,next:kp,error:function Vj(t){throw t},complete:kp},Jv="function"==typeof Symbol&&Symbol.observable||"@@observable";function Ua(t){return t}function BD(t){return 0===t.length?Ua:1===t.length?t[0]:function(e){return t.reduce((i,o)=>o(i),e)}}let Rt=(()=>{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 zj(t){return t&&t instanceof Tp||function Uj(t){return t&&Jt(t.next)&&Jt(t.error)&&Jt(t.complete)}(t)&&ND(t)}(e)?e:new Su(e,i,o);return Dp(()=>{const{operator:s,source:a}=this;r.add(s?s.call(r,a):a?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=VD(i))((o,r)=>{const s=new Su({next:a=>{try{e(a)}catch(l){r(l),s.unsubscribe()}},error:r,complete:o});this.subscribe(s)})}_subscribe(e){var i;return null===(i=this.source)||void 0===i?void 0:i.subscribe(e)}[Jv](){return this}pipe(...e){return BD(e)(this)}toPromise(e){return new(e=VD(e))((i,o)=>{let r;this.subscribe(s=>r=s,s=>o(s),()=>i(r))})}}return t.create=n=>new t(n),t})();function VD(t){var n;return null!==(n=t??Ha.Promise)&&void 0!==n?n:Promise}const $j=Kv(t=>function(){t(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let ty,pe=(()=>{class t extends Rt{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(e){const i=new ey(this,this);return i.operator=e,i}_throwIfClosed(){if(this.closed)throw new $j}next(e){Dp(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const i of this.currentObservers)i.next(e)}})}error(e){Dp(()=>{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(){Dp(()=>{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?RD:(this.currentObservers=null,r.push(e),new mt(()=>{this.currentObservers=null,xp(r,e)}))}_checkFinalizedStatuses(e){const{hasError:i,thrownError:o,isStopped:r}=this;i?e.error(o):r&&e.complete()}asObservable(){const e=new Rt;return e.source=this,e}}return t.create=(n,e)=>new ey(n,e),t})();class ey extends pe{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:RD}}class _i extends pe{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 ny(){return ty}function zs(t){const n=ty;return ty=t,n}const Wj=Symbol("NotFound");function iy(t){return t===Wj||"\u0275NotFound"===t?.name}Error;const UD="https://angular.dev/best-practices/security#preventing-cross-site-scripting-xss";class X extends Error{code;constructor(n,e){super(so(n,e)),this.code=n}}function so(t,n){return`${function qj(t){return`NG0${Math.abs(t)}`}(t)}${n?": "+n:""}`}const Dn=globalThis;function Tt(t){for(let n in t)if(t[n]===Tt)return n;throw Error("")}function Kj(t,n){for(const e in n)n.hasOwnProperty(e)&&!t.hasOwnProperty(e)&&(t[e]=n[e])}function $s(t){if("string"==typeof t)return t;if(Array.isArray(t))return`[${t.map($s).join(", ")}]`;if(null==t)return""+t;const n=t.overriddenName||t.name;if(n)return`${n}`;const e=t.toString();if(null==e)return""+e;const i=e.indexOf("\n");return i>=0?e.slice(0,i):e}function oy(t,n){return t?n?`${t} ${n}`:t:n||""}const Yj=Tt({__forward_ref__:Tt});function Vt(t){return t.__forward_ref__=Vt,t}function We(t){return Ip(t)?t():t}function Ip(t){return"function"==typeof t&&t.hasOwnProperty(Yj)&&t.__forward_ref__===Vt}function te(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function et(t){return{providers:t.providers||[],imports:t.imports||[]}}function Pp(t){return function nU(t,n){return t.hasOwnProperty(n)&&t[n]||null}(t,Ap)}function Op(t){return t&&t.hasOwnProperty(ry)?t[ry]:null}const Ap=Tt({\u0275prov:Tt}),ry=Tt({\u0275inj:Tt});class Z{_desc;ngMetadataName="InjectionToken";\u0275prov;constructor(n,e){this._desc=n,this.\u0275prov=void 0,"number"==typeof e?this.__NG_ELEMENT_ID__=e:void 0!==e&&(this.\u0275prov=te({token:this,providedIn:e.providedIn||"root",factory:e.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}function ay(t){return t&&!!t.\u0275providers}const zD=Tt({\u0275cmp:Tt}),lU=Tt({\u0275dir:Tt}),cU=Tt({\u0275pipe:Tt}),$D=Tt({\u0275mod:Tt}),Wa=Tt({\u0275fac:Tt}),ku=Tt({__NG_ELEMENT_ID__:Tt}),WD=Tt({__NG_ENV_ID__:Tt});function Mr(t){return Np(t),t[$D]||null}function wt(t){return Np(t),t[zD]||null}function Ki(t){return Np(t),t[lU]||null}function Zo(t){return Np(t),t[cU]||null}function Np(t,n){if(null==t)throw new X(-919,!1)}function He(t){return"string"==typeof t?t:null==t?"":String(t)}const cy=Tt({ngErrorCode:Tt}),GD=Tt({ngErrorMessage:Tt}),Du=Tt({ngTokenPath:Tt});function dy(t,n){return qD("",-200,n)}function uy(t,n){throw new X(-201,!1)}function qD(t,n,e){const i=new X(n,t);return i[cy]=n,i[GD]=t,e&&(i[Du]=e),i}let hy;function KD(){return hy}function ao(t){const n=hy;return hy=t,n}function YD(t,n,e){const i=Pp(t);return i&&"root"==i.providedIn?void 0===i.value?i.value=i.factory():i.value:8&e?null:void 0!==n?n:void uy()}const Ga={};class mU{injector;constructor(n){this.injector=n}retrieve(n,e){const i=Tu(e)||0;try{return this.injector.get(n,8&i?null:Ga,i)}catch(o){if(iy(o))return o;throw o}}}function gU(t,n=0){const e=ny();if(void 0===e)throw new X(-203,!1);if(null===e)return YD(t,void 0,n);{const i=function _U(t){return{optional:!!(8&t),host:!!(1&t),self:!!(2&t),skipSelf:!!(4&t)}}(n),o=e.retrieve(t,i);if(iy(o)){if(i.optional)return null;throw o}return o}}function le(t,n=0){return(KD()||gU)(We(t),n)}function D(t,n){return le(t,Tu(n))}function Tu(t){return typeof t>"u"||"number"==typeof t?t:0|(t.optional&&8)|(t.host&&1)|(t.self&&2)|(t.skipSelf&&4)}function py(t){const n=[];for(let e=0;eArray.isArray(e)?Pc(e,n):n(e))}function ZD(t,n,e){n>=t.length?t.push(e):t.splice(n,0,e)}function Fp(t,n){return n>=t.length-1?t.pop():t.splice(n,1)[0]}function Bp(t,n,e){let i=Eu(t,n);return i>=0?t[1|i]=e:(i=~i,function JD(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 my(t,n){const e=Eu(t,n);if(e>=0)return t[1|e]}function Eu(t,n){return function yU(t,n,e){let i=0,o=t.length>>e;for(;o!==i;){const r=i+(o-i>>1),s=t[r<n?o=r:i=r+1}return~(o<{e.push(s)};return Pc(n,s=>{const a=s;Hp(a,r,[],i)&&(o||=[],o.push(a))}),void 0!==o&&tT(o,r),e}function tT(t,n){for(let e=0;e{n(r,i)})}}function Hp(t,n,e,i){if(!(t=We(t)))return!1;let o=null,r=Op(t);const s=!r&&wt(t);if(r||s){if(s&&!s.standalone)return!1;o=t}else{const l=t.ngModule;if(r=Op(l),!r)return!1;o=l}const a=i.has(o);if(s){if(a)return!1;if(i.add(o),s.dependencies){const l="function"==typeof s.dependencies?s.dependencies():s.dependencies;for(const c of l)Hp(c,n,e,i)}}else{if(!r)return!1;{if(null!=r.imports&&!a){let c;i.add(o),Pc(r.imports,u=>{Hp(u,n,e,i)&&(c||=[],c.push(u))}),void 0!==c&&tT(c,n)}if(!a){const c=qa(o)||(()=>new o);n({provide:o,useFactory:c,deps:zt},o),n({provide:gy,useValue:o,multi:!0},o),n({provide:is,useValue:()=>le(o),multi:!0},o)}const l=r.providers;if(null!=l&&!a){const c=t;by(l,u=>{n(u,c)})}}}return o!==t&&void 0!==t.providers}function by(t,n){for(let e of t)ay(e)&&(e=e.\u0275providers),Array.isArray(e)?by(e,n):n(e)}const xU=Tt({provide:String,useValue:Tt});function vy(t){return null!==t&&"object"==typeof t&&xU in t}function os(t){return"function"==typeof t}const yy=new Z(""),jp={},rT={};let Cy;function Up(){return void 0===Cy&&(Cy=new Vp),Cy}class Nn{}class Ka extends Nn{parent;source;scopes;records=new Map;_ngOnDestroyHooks=new Set;_onDestroyHooks=[];get destroyed(){return this._destroyed}_destroyed=!1;injectorDefTypes;constructor(n,e,i,o){super(),this.parent=e,this.source=i,this.scopes=o,xy(n,s=>this.processProvider(s)),this.records.set(eT,Oc(void 0,this)),o.has("environment")&&this.records.set(Nn,Oc(void 0,this));const r=this.records.get(yy);null!=r&&"string"==typeof r.value&&this.scopes.add(r.value),this.injectorDefTypes=new Set(this.get(gy,zt,{self:!0}))}retrieve(n,e){const i=Tu(e)||0;try{return this.get(n,Ga,i)}catch(o){if(iy(o))return o;throw o}}destroy(){Pu(this),this._destroyed=!0;const n=De(null);try{for(const i of this._ngOnDestroyHooks)i.ngOnDestroy();const e=this._onDestroyHooks;this._onDestroyHooks=[];for(const i of e)i()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),De(n)}}onDestroy(n){return Pu(this),this._onDestroyHooks.push(n),()=>this.removeOnDestroy(n)}runInContext(n){Pu(this);const e=zs(this),i=ao(void 0);try{return n()}finally{zs(e),ao(i)}}get(n,e=Ga,i){if(Pu(this),n.hasOwnProperty(WD))return n[WD](this);const o=Tu(i),s=zs(this),a=ao(void 0);try{if(!(4&o)){let c=this.records.get(n);if(void 0===c){const u=function MU(t){return"function"==typeof t||"object"==typeof t&&"InjectionToken"===t.ngMetadataName}(n)&&Pp(n);c=u&&this.injectableDefInScope(u)?Oc(wy(n),jp):null,this.records.set(n,c)}if(null!=c)return this.hydrate(n,c,o)}return(2&o?Up():this.parent).get(n,e=8&o&&e===Ga?null:e)}catch(l){const c=function fU(t){return t[cy]}(l);throw-200===c||-201===c?new X(c,null):l}finally{ao(a),zs(s)}}resolveInjectorInitializers(){const n=De(null),e=zs(this),i=ao(void 0);try{const r=this.get(is,zt,{self:!0});for(const s of r)s()}finally{zs(e),ao(i),De(n)}}toString(){return"R3Injector[...]"}processProvider(n){let e=os(n=We(n))?n:We(n&&n.provide);const i=function kU(t){return vy(t)?Oc(void 0,t.useValue):Oc(sT(t),jp)}(n);if(!os(n)&&!0===n.multi){let o=this.records.get(e);o||(o=Oc(void 0,jp,!0),o.factory=()=>py(o.multi),this.records.set(e,o)),e=n,o.multi.push(n)}this.records.set(e,i)}hydrate(n,e,i){const o=De(null);try{if(e.value===rT)throw dy();return e.value===jp&&(e.value=rT,e.value=e.factory(void 0,i)),"object"==typeof e.value&&e.value&&function TU(t){return null!==t&&"object"==typeof t&&"function"==typeof t.ngOnDestroy}(e.value)&&this._ngOnDestroyHooks.add(e.value),e.value}finally{De(o)}}injectableDefInScope(n){if(!n.providedIn)return!1;const e=We(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 wy(t){const n=Pp(t),e=null!==n?n.factory:qa(t);if(null!==e)return e;if(t instanceof Z)throw new X(-204,!1);if(t instanceof Function)return function SU(t){if(t.length>0)throw new X(-204,!1);const e=function iU(t){return(t?.[Ap]??null)||null}(t);return null!==e?()=>e.factory(t):()=>new t}(t);throw new X(-204,!1)}function sT(t,n,e){let i;if(os(t)){const o=We(t);return qa(o)||wy(o)}if(vy(t))i=()=>We(t.useValue);else if(function iT(t){return!(!t||!t.useFactory)}(t))i=()=>t.useFactory(...py(t.deps||[]));else if(function nT(t){return!(!t||!t.useExisting)}(t))i=(o,r)=>le(We(t.useExisting),void 0!==r&&8&r?8:void 0);else{const o=We(t&&(t.useClass||t.provide));if(!function DU(t){return!!t.deps}(t))return qa(o)||wy(o);i=()=>new o(...py(t.deps))}return i}function Pu(t){if(t.destroyed)throw new X(-205,!1)}function Oc(t,n,e=!1){return{factory:t,value:n,multi:e?[]:void 0}}function xy(t,n){for(const e of t)Array.isArray(e)?xy(e,n):e&&ay(e)?xy(e.\u0275providers,n):n(e)}function Yi(t,n){let e;t instanceof Ka?(Pu(t),e=t):e=new mU(t);const o=zs(e),r=ao(void 0);try{return n()}finally{zs(o),ao(r)}}function Sy(){return void 0!==KD()||null!=ny()}function _n(t){return Array.isArray(t)&&"object"==typeof t[1]}function Xi(t){return Array.isArray(t)&&!0===t[1]}function lT(t){return!!(4&t.flags)}function Ir(t){return t.componentOffset>-1}function Lc(t){return!(1&~t.flags)}function Jo(t){return!!t.template}function qs(t){return!!(512&t[2])}function ls(t){return!(256&~t[2])}function di(t){for(;Array.isArray(t);)t=t[0];return t}function Bc(t,n){return di(n[t])}function qn(t,n){return di(n[t.index])}function Vc(t,n){return t.data[n]}function Ja(t,n){return t[n]}function Zi(t,n){const e=n[t];return _n(e)?e:e[0]}function My(t){return!(128&~t[2])}function Ri(t,n){return null==n?null:t[n]}function pT(t){t[17]=0}function mT(t){1024&t[2]||(t[2]|=1024,My(t)&&Hc(t))}function Gp(t){return!!(9216&t[2]||t[24]?.dirty)}function Ey(t){t[10].changeDetectionScheduler?.notify(8),64&t[2]&&(t[2]|=1024),Gp(t)&&Hc(t)}function Hc(t){t[10].changeDetectionScheduler?.notify(0);let n=cs(t);for(;null!==n&&!(8192&n[2])&&(n[2]|=8192,My(n));)n=cs(n)}function qp(t,n){if(ls(t))throw new X(911,!1);null===t[21]&&(t[21]=[]),t[21].push(n)}function cs(t){const n=t[3];return Xi(n)?n[3]:n}function _T(t){return t[7]??=[]}function bT(t){return t.cleanup??=[]}const Fe={lFrame:AT(null),bindingsEnabled:!0,skipHydrationRootTNode:null};let Oy=!1;function vT(){Fe.lFrame.elementDepthCount--}function Ay(){return Fe.bindingsEnabled}function yT(){return null!==Fe.skipHydrationRootTNode}function CT(t){return Fe.skipHydrationRootTNode===t}function wT(){Fe.skipHydrationRootTNode=null}function ne(){return Fe.lFrame.lView}function Ue(){return Fe.lFrame.tView}function z(t){return Fe.lFrame.contextLView=t,t[8]}function $(t){return Fe.lFrame.contextLView=null,t}function Le(){let t=xT();for(;null!==t&&64===t.type;)t=t.parent;return t}function xT(){return Fe.lFrame.currentTNode}function ds(t,n){const e=Fe.lFrame;e.currentTNode=t,e.isParent=n}function ST(){return Fe.lFrame.isParent}function kT(){Fe.lFrame.isParent=!1}function MT(){return Oy}function Kp(t){const n=Oy;return Oy=t,n}function Ni(){const t=Fe.lFrame;let n=t.bindingRootIndex;return-1===n&&(n=t.bindingRootIndex=t.tView.bindingStartIndex),n}function us(){return Fe.lFrame.bindingIndex}function lo(){return Fe.lFrame.bindingIndex++}function hs(t){const n=Fe.lFrame,e=n.bindingIndex;return n.bindingIndex=n.bindingIndex+t,e}function jU(t,n){const e=Fe.lFrame;e.bindingIndex=e.bindingRootIndex=t,Ry(n)}function Ry(t){Fe.lFrame.currentDirectiveIndex=t}function Fy(){return Fe.lFrame.currentQueryIndex}function Yp(t){Fe.lFrame.currentQueryIndex=t}function zU(t){const n=t[1];return 2===n.type?n.declTNode:1===n.type?t[5]:null}function PT(t,n,e){if(4&e){let o=n,r=t;for(;!(o=o.parent,null!==o||1&e||(o=zU(r),null===o||(r=r[14],10&o.type))););if(null===o)return!1;n=o,t=r}const i=Fe.lFrame=OT();return i.currentTNode=n,i.lView=t,!0}function Ly(t){const n=OT(),e=t[1];Fe.lFrame=n,n.currentTNode=e.firstChild,n.lView=t,n.tView=e,n.contextLView=t,n.bindingIndex=e.bindingStartIndex,n.inI18n=!1}function OT(){const t=Fe.lFrame,n=null===t?null:t.child;return null===n?AT(t):n}function AT(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 RT(){const t=Fe.lFrame;return Fe.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}const NT=RT;function By(){const t=RT();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 bi(){return Fe.lFrame.selectedIndex}function el(t){Fe.lFrame.selectedIndex=t}function er(){const t=Fe.lFrame;return Vc(t.tView,t.selectedIndex)}function Uc(){Fe.lFrame.currentNamespace="svg"}function Vy(){!function GU(){Fe.lFrame.currentNamespace=null}()}let FT=!0;function Xp(){return FT}function Ru(t){FT=t}function LT(t,n=null,e=null,i){const o=BT(t,n,e);return o.resolveInjectorInitializers(),o}function BT(t,n=null,e=null,i,o=new Set){const r=[e||zt,wU(t)];return new Ka(r,n||Up(),null,o)}class Be{static THROW_IF_NOT_FOUND=Ga;static NULL=new Vp;static create(n,e){if(Array.isArray(n))return LT({name:""},e,n);{const i=n.name??"";return LT({name:i},n.parent,n.providers)}}static \u0275prov=te({token:Be,providedIn:"any",factory:()=>le(eT)});static __NG_ELEMENT_ID__=-1}const Qe=new Z("");let tr=(()=>class t{static __NG_ELEMENT_ID__=KU;static __NG_ENV_ID__=e=>e})();class VT extends tr{_lView;constructor(n){super(),this._lView=n}get destroyed(){return ls(this._lView)}onDestroy(n){const e=this._lView;return qp(e,n),()=>function Iy(t,n){if(null===t[21])return;const e=t[21].indexOf(n);-1!==e&&t[21].splice(e,1)}(e,n)}}function KU(){return new VT(ne())}const HT=!1,YU=new Z("");let Ks=(()=>{class t{taskId=0;pendingTasks=new Set;destroyed=!1;pendingTask=new _i(!1);debugTaskTracker=D(YU,{optional:!0});get hasPendingTasks(){return!this.destroyed&&this.pendingTask.value}get hasPendingTasksObservable(){return this.destroyed?new Rt(e=>{e.next(!1),e.complete()}):this.pendingTask}add(){!this.hasPendingTasks&&!this.destroyed&&this.pendingTask.next(!0);const e=this.taskId++;return this.pendingTasks.add(e),this.debugTaskTracker?.add(e),e}has(e){return this.pendingTasks.has(e)}remove(e){this.pendingTasks.delete(e),this.debugTaskTracker?.remove(e),0===this.pendingTasks.size&&this.hasPendingTasks&&this.pendingTask.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this.hasPendingTasks&&this.pendingTask.next(!1),this.destroyed=!0,this.pendingTask.unsubscribe()}static \u0275prov=te({token:t,providedIn:"root",factory:()=>new t})}return t})();const ve=class XU extends pe{__isAsync;destroyRef=void 0;pendingTasks=void 0;constructor(n=!1){super(),this.__isAsync=n,Sy()&&(this.destroyRef=D(tr,{optional:!0})??void 0,this.pendingTasks=D(Ks,{optional:!0})??void 0)}emit(n){const e=De(null);try{super.next(n)}finally{De(e)}}subscribe(n,e,i){let o=n,r=e||(()=>null),s=i;if(n&&"object"==typeof n){const l=n;o=l.next?.bind(l),r=l.error?.bind(l),s=l.complete?.bind(l)}this.__isAsync&&(r=this.wrapInTimeout(r),o&&(o=this.wrapInTimeout(o)),s&&(s=this.wrapInTimeout(s)));const a=super.subscribe({next:o,error:r,complete:s});return n instanceof mt&&n.add(a),a}wrapInTimeout(n){return e=>{const i=this.pendingTasks?.add();setTimeout(()=>{try{n(e)}finally{void 0!==i&&this.pendingTasks?.remove(i)}})}}};function Zp(...t){}function jT(t){let n,e;function i(){t=Zp;try{void 0!==e&&"function"==typeof cancelAnimationFrame&&cancelAnimationFrame(e),void 0!==n&&clearTimeout(n)}catch{}}return n=setTimeout(()=>{t(),i()}),"function"==typeof requestAnimationFrame&&(e=requestAnimationFrame(()=>{t(),i()})),()=>i()}function ZU(t){return queueMicrotask(()=>t()),()=>{t=Zp}}const Hy="isAngularZone",Qp=Hy+"_ID";let QU=0;class ge{hasPendingMacrotasks=!1;hasPendingMicrotasks=!1;isStable=!0;onUnstable=new ve(!1);onMicrotaskEmpty=new ve(!1);onStable=new ve(!1);onError=new ve(!1);constructor(n){const{enableLongStackTrace:e=!1,shouldCoalesceEventChangeDetection:i=!1,shouldCoalesceRunChangeDetection:o=!1,scheduleInRootZone:r=HT}=n;if(typeof Zone>"u")throw new X(908,!1);Zone.assertZonePatched();const s=this;s._nesting=0,s._outer=s._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(s._inner=s._inner.fork(new Zone.TaskTrackingZoneSpec)),e&&Zone.longStackTraceZoneSpec&&(s._inner=s._inner.fork(Zone.longStackTraceZoneSpec)),s.shouldCoalesceEventChangeDetection=!o&&i,s.shouldCoalesceRunChangeDetection=o,s.callbackScheduled=!1,s.scheduleInRootZone=r,function tz(t){const n=()=>{!function ez(t){function n(){jT(()=>{t.callbackScheduled=!1,Uy(t),t.isCheckStableRunning=!0,jy(t),t.isCheckStableRunning=!1})}t.isCheckStableRunning||t.callbackScheduled||(t.callbackScheduled=!0,t.scheduleInRootZone?Zone.root.run(()=>{n()}):t._outer.run(()=>{n()}),Uy(t))}(t)},e=QU++;t._inner=t._inner.fork({name:"angular",properties:{[Hy]:!0,[Qp]:e,[Qp+e]:!0},onInvokeTask:(i,o,r,s,a,l)=>{if(function iz(t){return $T(t,"__ignore_ng_zone__")}(l))return i.invokeTask(r,s,a,l);try{return UT(t),i.invokeTask(r,s,a,l)}finally{(t.shouldCoalesceEventChangeDetection&&"eventTask"===s.type||t.shouldCoalesceRunChangeDetection)&&n(),zT(t)}},onInvoke:(i,o,r,s,a,l,c)=>{try{return UT(t),i.invoke(r,s,a,l,c)}finally{t.shouldCoalesceRunChangeDetection&&!t.callbackScheduled&&!function oz(t){return $T(t,"__scheduler_tick__")}(l)&&n(),zT(t)}},onHasTask:(i,o,r,s)=>{i.hasTask(r,s),o===r&&("microTask"==s.change?(t._hasPendingMicrotasks=s.microTask,Uy(t),jy(t)):"macroTask"==s.change&&(t.hasPendingMacrotasks=s.macroTask))},onHandleError:(i,o,r,s)=>(i.handleError(r,s),t.runOutsideAngular(()=>t.onError.emit(s)),!1)})}(s)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get(Hy)}static assertInAngularZone(){if(!ge.isInAngularZone())throw new X(909,!1)}static assertNotInAngularZone(){if(ge.isInAngularZone())throw new X(909,!1)}run(n,e,i){return this._inner.run(n,e,i)}runTask(n,e,i,o){const r=this._inner,s=r.scheduleEventTask("NgZoneEvent: "+o,n,JU,Zp,Zp);try{return r.runTask(s,e,i)}finally{r.cancelTask(s)}}runGuarded(n,e,i){return this._inner.runGuarded(n,e,i)}runOutsideAngular(n){return this._outer.run(n)}}const JU={};function jy(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 Uy(t){t.hasPendingMicrotasks=!!(t._hasPendingMicrotasks||(t.shouldCoalesceEventChangeDetection||t.shouldCoalesceRunChangeDetection)&&!0===t.callbackScheduled)}function UT(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function zT(t){t._nesting--,jy(t)}class nz{hasPendingMicrotasks=!1;hasPendingMacrotasks=!1;isStable=!0;onUnstable=new ve;onMicrotaskEmpty=new ve;onStable=new ve;onError=new ve;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)}}function $T(t,n){return!(!Array.isArray(t)||1!==t.length)&&!0===t[0]?.data?.[n]}class tl{_console=console;handleError(n){this._console.error("ERROR",n)}}const Pr=new Z("",{factory:()=>{const t=D(ge),n=D(Nn);let e;return i=>{t.runOutsideAngular(()=>{n.destroyed&&!e?setTimeout(()=>{throw i}):(e??=n.get(tl),e.handleError(i))})}}}),rz={provide:is,useValue:()=>{D(tl,{optional:!0})},multi:!0};function yt(t,n){const[e,i,o]=function Mj(t,n){const e=Object.create(qv);e.value=t,void 0!==n&&(e.equal=n);const i=()=>function Ej(t){return yu(t),t.value}(e);return i[kn]=e,[i,s=>wp(e,s),s=>AD(e,s)]}(t,n?.equal),r=e;return r.set=i,r.update=o,r.asReadonly=zy.bind(r),r}function zy(){const t=this[kn];if(void 0===t.readonlyFn){const n=()=>this();n[kn]=t,t.readonlyFn=n}return t.readonlyFn}let Jp=(()=>class t{view;node;constructor(e,i){this.view=e,this.node=i}static __NG_ELEMENT_ID__=az})();function az(){return new Jp(ne(),Le())}class nl{}const em=new Z("",{factory:()=>!0}),WT=new Z("");let tm=(()=>{class t{internalPendingTasks=D(Ks);scheduler=D(nl);errorHandler=D(Pr);add(){const e=this.internalPendingTasks.add();return()=>{this.internalPendingTasks.has(e)&&(this.scheduler.notify(11),this.internalPendingTasks.remove(e))}}run(e){const i=this.add();e().catch(this.errorHandler).finally(i)}static \u0275prov=te({token:t,providedIn:"root",factory:()=>new t})}return t})(),GT=(()=>{class t{static \u0275prov=te({token:t,providedIn:"root",factory:()=>new lz})}return t})();class lz{dirtyEffectCount=0;queues=new Map;add(n){this.enqueue(n),this.schedule(n)}schedule(n){n.dirty&&this.dirtyEffectCount++}remove(n){const i=this.queues.get(n.zone);i.has(n)&&(i.delete(n),n.dirty&&this.dirtyEffectCount--)}enqueue(n){const e=n.zone;this.queues.has(e)||this.queues.set(e,new Set);const i=this.queues.get(e);i.has(n)||i.add(n)}flush(){for(;this.dirtyEffectCount>0;){let n=!1;for(const[e,i]of this.queues)n||=null===e?this.flushQueue(i):e.run(()=>this.flushQueue(i));n||(this.dirtyEffectCount=0)}}flushQueue(n){let e=!1;for(const i of n)i.dirty&&(this.dirtyEffectCount--,e=!0,i.run());return e}}class $y{[kn];constructor(n){this[kn]=n}destroy(){this[kn].destroy()}}function nm(t,n){const e=n?.injector??D(Be);let o,i=!0!==n?.manualCleanup?e.get(tr):null;const r=e.get(Jp,null,{optional:!0}),s=e.get(nl);return null!==r?(o=function uz(t,n,e){const i=Object.create(dz);return i.view=t,i.zone=typeof Zone<"u"?Zone.current:null,i.notifier=n,i.fn=KT(i,e),t[23]??=new Set,t[23].add(i),i.consumerMarkedDirty(i),i}(r.view,s,t),i instanceof VT&&i._lView===r.view&&(i=null)):o=function hz(t,n,e){const i=Object.create(cz);return i.fn=KT(i,t),i.scheduler=n,i.notifier=e,i.zone=typeof Zone<"u"?Zone.current:null,i.scheduler.add(i),i.notifier.notify(12),i}(t,e.get(GT),s),o.injector=e,null!==i&&(o.onDestroyFns=[i.onDestroy(()=>o.destroy())]),new $y(o)}const qT={...Pj,cleanupFns:void 0,zone:null,onDestroyFns:null,run(){const t=Kp(!1);try{!function Oj(t){if(t.dirty=!1,t.version>0&&!yp(t))return;t.version++;const n=kc(t);try{t.cleanup(),t.fn()}finally{wu(t,n)}}(this)}finally{Kp(t)}},cleanup(){if(!this.cleanupFns?.length)return;const t=De(null);try{for(;this.cleanupFns.length;)this.cleanupFns.pop()()}finally{this.cleanupFns=[],De(t)}}},cz={...qT,consumerMarkedDirty(){this.scheduler.schedule(this),this.notifier.notify(12)},destroy(){if(xu(this),null!==this.onDestroyFns)for(const t of this.onDestroyFns)t();this.cleanup(),this.scheduler.remove(this)}},dz={...qT,consumerMarkedDirty(){this.view[2]|=8192,Hc(this.view),this.notifier.notify(13)},destroy(){if(xu(this),null!==this.onDestroyFns)for(const t of this.onDestroyFns)t();this.cleanup(),this.view[23]?.delete(this)}};function KT(t,n){return()=>{n(e=>(t.cleanupFns??=[]).push(e))}}let YT=null;function Ys(){return YT}class pz{}let im=(()=>{class t{historyGo(e){throw new Error("")}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:()=>D(gz),providedIn:"platform"})}return t})();const mz=new Z("");let gz=(()=>{class t extends im{_location;_history;_doc=D(Qe);constructor(){super(),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return Ys().getBaseHref(this._doc)}onPopState(e){const i=Ys().getGlobalEventTarget(this._doc,"window");return i.addEventListener("popstate",e,!1),()=>i.removeEventListener("popstate",e)}onHashChange(e){const i=Ys().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 \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:()=>new t,providedIn:"platform"})}return t})();function XT(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}class ZT{}const QT="browser";let JT=(()=>{class t{static \u0275prov=te({token:t,providedIn:"root",factory:()=>new Sz(D(Qe),window)})}return t})();class Sz{document;window;offset=()=>[0,0];constructor(n,e){this.document=n,this.window=e}setOffset(n){this.offset=Array.isArray(n)?()=>n:n}getScrollPosition(){return[this.window.scrollX,this.window.scrollY]}scrollToPosition(n,e){this.window.scrollTo({...e,left:n[0],top:n[1]})}scrollToAnchor(n,e){const i=function kz(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 s=r.getElementById(n)||r.querySelector(`[name="${n}"]`);if(s)return s}o=i.nextNode()}}return null}(this.document,n);i&&(this.scrollToElement(i,e),i.focus())}setHistoryScrollRestoration(n){try{this.window.history.scrollRestoration=n}catch{console.warn(so(2400,!1))}}scrollToElement(n,e){const i=n.getBoundingClientRect(),o=i.left+this.window.pageXOffset,r=i.top+this.window.pageYOffset,s=this.offset();this.window.scrollTo({...e,left:o-s[0],top:r-s[1]})}}function dM(t,n,e,i,o,r,s){try{var a=t[r](s),l=a.value}catch(c){return void e(c)}a.done?n(l):Promise.resolve(l).then(i,o)}function Nt(t){return function(){var n=this,e=arguments;return new Promise(function(i,o){var r=t.apply(n,e);function s(l){dM(r,i,o,s,a,"next",l)}function a(l){dM(r,i,o,s,a,"throw",l)}s(void 0)})}}function bn(t){return n=>{if(function Jz(t){return Jt(t?.lift)}(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 en(t,n,e,i,o){return new e6(t,n,e,i,o)}class e6 extends Tp{constructor(n,e,i,o,r,s){super(n),this.onFinalize=r,this.shouldUnsubscribe=s,this._next=e?function(a){try{e(a)}catch(l){n.error(l)}}:super._next,this._error=o?function(a){try{o(a)}catch(l){n.error(l)}finally{this.unsubscribe()}}:super._error,this._complete=i?function(){try{i()}catch(a){n.error(a)}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 ye(t,n){return bn((e,i)=>{let o=0;e.subscribe(en(i,r=>{i.next(t.call(n,r,o++))}))})}function fs(t){return{toString:t}.toString()}function xM(t,n,e,i){null!==n?n.applyValueToInputSignal(n,i):t[e]=i}class O6{previousValue;currentValue;firstChange;constructor(n,e,i){this.previousValue=n,this.currentValue=e,this.firstChange=i}isFirstChange(){return this.firstChange}}const yi=(()=>{const t=()=>SM;return t.ngInherit=!0,t})();function SM(t){return t.type.prototype.ngOnChanges&&(t.setInput=R6),A6}function A6(){const t=DM(this),n=t?.current;if(n){const e=t.previous;if(e===Er)t.previous=n;else for(let i in n)e[i]=n[i];t.current=null,this.ngOnChanges(n)}}function R6(t,n,e,i,o){const r=this.declaredInputs[i],s=DM(t)||function N6(t,n){return t[kM]=n}(t,{previous:Er,current:null}),a=s.current||(s.current={}),l=s.previous,c=l[r];a[r]=new O6(c&&c.currentValue,e,l===Er),xM(t,n,o,e)}const kM="__ngSimpleChanges__";function DM(t){return t[kM]||null}const rl=[],Ft=function(t,n=null,e){for(let i=0;i=i)break}else n[l]<0&&(t[17]+=65536),(a>14>16&&(3&t[2])===n&&(t[2]+=16384,EM(a,r)):EM(a,r)}class Uu{factory;name;injectImpl;resolving=!1;canSeeViewProviders;multi;componentProviders;index;providerFactory;constructor(n,e,i,o){this.factory=n,this.name=o,this.canSeeViewProviders=e,this.injectImpl=i}}function PM(t){return 3===t||4===t||6===t}function OM(t){return 64===t.charCodeAt(0)}function Yc(t,n){if(null!==n&&0!==n.length)if(null===t||0===t.length)t=n.slice();else{let e=-1;for(let i=0;in){s=r-1;break}}}for(;r>16}(t),i=n;for(;e>0;)i=i[14],e--;return i}let oC=!0;function mm(t){const n=oC;return oC=t,n}let W6=0;const Ar={};function gm(t,n){const e=FM(t,n);if(-1!==e)return e;const i=n[1];i.firstCreatePass&&(t.injectorIndex=n.length,rC(i.data,t),rC(n,null),rC(i.blueprint,null));const o=_m(t,n),r=t.injectorIndex;if(iC(o)){const s=zu(o),a=$u(o,n),l=a[1].data;for(let c=0;c<8;c++)n[r+c]=a[s+c]|l[s+c]}return n[r+8]=o,r}function rC(t,n){t.push(0,0,0,0,0,0,0,0,n)}function FM(t,n){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null===n[t.injectorIndex+8]?-1:t.injectorIndex}function _m(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=zM(o),null===i)return-1;if(e++,o=o[14],-1!==i.injectorIndex)return i.injectorIndex|e<<16}return-1}function sC(t,n,e){!function G6(t,n,e){let i;"string"==typeof e?i=e.charCodeAt(0)||0:e.hasOwnProperty(ku)&&(i=e[ku]),null==i&&(i=e[ku]=W6++);const o=255&i;n.data[t+(o>>5)]|=1<=0?255&n:X6:n}(e);if("function"==typeof r){if(!PT(n,t,i))return 1&i?LM(o,0,i):BM(n,e,i,o);try{let s;if(s=r(i),null!=s||8&i)return s;uy()}finally{NT()}}else if("number"==typeof r){let s=null,a=FM(t,n),l=-1,c=1&i?n[15][5]:null;for((-1===a||4&i)&&(l=-1===a?_m(t,n):n[a+8],-1!==l&&UM(i,!1)?(s=n[1],a=zu(l),n=$u(l,n)):a=-1);-1!==a;){const u=n[1];if(jM(r,a,u.data)){const p=K6(a,n,e,s,i,c);if(p!==Ar)return p}l=n[a+8],-1!==l&&UM(i,n[1].data[a+8]===c)&&jM(r,a,n)?(s=u,a=zu(l),n=$u(l,n)):a=-1}}return o}function K6(t,n,e,i,o,r){const s=n[1],a=s.data[t+8],u=bm(a,s,e,null==i?Ir(a)&&oC:i!=s&&!!(3&a.type),1&o&&r===a);return null!==u?Wu(n,s,u,a,o):Ar}function bm(t,n,e,i,o){const r=t.providerIndexes,s=n.data,a=1048575&r,l=t.directiveStart,u=r>>20,g=o?a+u:t.directiveEnd;for(let _=i?a:a+u;_=l&&w.type===e)return _}if(o){const _=s[l];if(_&&Jo(_)&&_.type===e)return l}return null}function Wu(t,n,e,i,o){let r=t[e];const s=n.data;if(r instanceof Uu){const a=r;if(a.resolving)throw dy();const l=mm(a.canSeeViewProviders);a.resolving=!0;const p=a.injectImpl?ao(a.injectImpl):null;PT(t,i,0);try{r=t[e]=a.factory(void 0,o,s,t,i),n.firstCreatePass&&e>=i.directiveStart&&function V6(t,n,e){const{ngOnChanges:i,ngOnInit:o,ngDoCheck:r}=n.type.prototype;if(i){const s=SM(n);(e.preOrderHooks??=[]).push(t,s),(e.preOrderCheckHooks??=[]).push(t,s)}o&&(e.preOrderHooks??=[]).push(0-t,o),r&&((e.preOrderHooks??=[]).push(t,r),(e.preOrderCheckHooks??=[]).push(t,r))}(e,s[e],n)}finally{null!==p&&ao(p),mm(l),a.resolving=!1,NT()}}return r}function jM(t,n,e){return!!(e[n+(t>>5)]&1<{const n=t.prototype.constructor,e=n[Wa]||aC(n),i=Object.prototype;let o=Object.getPrototypeOf(t.prototype).constructor;for(;o&&o!==i;){const r=o[Wa]||aC(o);if(r&&r!==e)return r;o=Object.getPrototypeOf(o)}return r=>new r})}function aC(t){return Ip(t)?()=>{const n=aC(We(t));return n&&n()}:qa(t)}function zM(t){const n=t[1],e=n.type;return 2===e?n.declTNode:1===e?t[5]:null}function Gu(t){return function q6(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(;oclass t{nativeElement;constructor(e){this.nativeElement=e}static __NG_ELEMENT_ID__=r7})();function KM(t){return t instanceof Ae?t.nativeElement:t}function s7(){return this._results[Symbol.iterator]()}class Zc{_emitDistinctChangesOnly;dirty=!0;_onDirty=void 0;_results=[];_changesDetected=!1;_changes=void 0;length=0;first=void 0;last=void 0;get changes(){return this._changes??=new pe}constructor(n=!1){this._emitDistinctChangesOnly=n}get(n){return this._results[n]}map(n){return this._results.map(n)}filter(n){return this._results.filter(n)}find(n){return this._results.find(n)}reduce(n,e){return this._results.reduce(n,e)}forEach(n){this._results.forEach(n)}some(n){return this._results.some(n)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(n,e){this.dirty=!1;const i=function Po(t){return t.flat(Number.POSITIVE_INFINITY)}(n);(this._changesDetected=!function vU(t,n,e){if(t.length!==n.length)return!1;for(let i=0;iO7}),O7="ng",fE=new Z(""),mC=new Z("",{providedIn:"platform",factory:()=>"unknown"}),xm=new Z(""),gC=new Z("",{factory:()=>D(Qe).body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null}),V7=new Z("",{factory:()=>!1}),z7=new Z("");function Mm(t){return!(32&~t.flags)}function jE(t,n){const e=t.contentQueries;if(null!==e){const i=De(null);try{for(let o=0;ot,createScript:t=>t,createScriptURL:t=>t})}catch{}return Nm}()?.createHTML(t)||t}function KE(t){return function NC(){if(void 0===Fm&&(Fm=null,Dn.trustedTypes))try{Fm=Dn.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return Fm}()?.createScriptURL(t)||t}class al{changingThisBreaksApplicationSecurity;constructor(n){this.changingThisBreaksApplicationSecurity=n}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${UD})`}}class v$ extends al{getTypeName(){return"HTML"}}class y$ extends al{getTypeName(){return"Style"}}class C$ extends al{getTypeName(){return"Script"}}class w$ extends al{getTypeName(){return"URL"}}class x$ extends al{getTypeName(){return"ResourceURL"}}function ko(t){return t instanceof al?t.changingThisBreaksApplicationSecurity:t}function Rr(t,n){const e=function S$(t){return t instanceof al&&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 ${UD})`)}return e===n}class I${inertDocumentHelper;constructor(n){this.inertDocumentHelper=n}getInertBodyElement(n){n=""+n;try{const e=(new window.DOMParser).parseFromString(Jc(n),"text/html").body;return null===e?this.inertDocumentHelper.getInertBodyElement(n):(e.firstChild?.remove(),e)}catch{return null}}}class P${defaultDoc;inertDocument;constructor(n){this.defaultDoc=n,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(n){const e=this.inertDocument.createElement("template");return e.innerHTML=Jc(n),e}}const A$=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function Ju(t){return(t=String(t)).match(A$)?t:"unsafe:"+t}function Nr(t){const n={};for(const e of t.split(","))n[e]=!0;return n}function ed(...t){const n={};for(const e of t)for(const i in e)e.hasOwnProperty(i)&&(n[i]=!0);return n}const XE=Nr("area,br,col,hr,img,wbr"),ZE=Nr("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),QE=Nr("rp,rt"),FC=ed(XE,ed(ZE,Nr("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")),ed(QE,Nr("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")),ed(QE,ZE)),LC=Nr("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),BC=ed(LC,Nr("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"),Nr("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")),R$=Nr("script,style,template");class N${sanitizedSomething=!1;buf=[];sanitizeChildren(n){let e=n.firstChild,i=!0,o=[];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)o.push(e),e=B$(e);else for(;e;){e.nodeType===Node.ELEMENT_NODE&&this.endElement(e);let r=L$(e);if(r){e=r;break}e=o.pop()}return this.buf.join("")}startElement(n){const e=JE(n).toLowerCase();if(!FC.hasOwnProperty(e))return this.sanitizedSomething=!0,!R$.hasOwnProperty(e);this.buf.push("<"),this.buf.push(e);const i=n.attributes;for(let o=0;o"),!0}endElement(n){const e=JE(n).toLowerCase();FC.hasOwnProperty(e)&&!XE.hasOwnProperty(e)&&(this.buf.push(""))}chars(n){this.buf.push(t2(n))}}function L$(t){const n=t.nextSibling;if(n&&t!==n.previousSibling)throw e2(n);return n}function B$(t){const n=t.firstChild;if(n&&function F$(t,n){return(t.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_CONTAINED_BY)!==Node.DOCUMENT_POSITION_CONTAINED_BY}(t,n))throw e2(n);return n}function JE(t){const n=t.nodeName;return"string"==typeof n?n:"FORM"}function e2(t){return new Error(`Failed to sanitize html because the element is clobbered: ${t.outerHTML}`)}const V$=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,H$=/([^\#-~ |!])/g;function t2(t){return t.replace(/&/g,"&").replace(V$,function(n){return"&#"+(1024*(n.charCodeAt(0)-55296)+(n.charCodeAt(1)-56320)+65536)+";"}).replace(H$,function(n){return"&#"+n.charCodeAt(0)+";"}).replace(//g,">")}let Lm;function n2(t,n){let e=null;try{Lm=Lm||function YE(t){const n=new P$(t);return function O$(){try{return!!(new window.DOMParser).parseFromString(Jc(""),"text/html")}catch{return!1}}()?new I$(n):n}(t);let i=n?String(n):"";e=Lm.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=Lm.getInertBodyElement(i)}while(i!==r);return Jc((new N$).sanitizeChildren(HC(e)||e))}finally{if(e){const i=HC(e)||e;for(;i.firstChild;)i.firstChild.remove()}}}function HC(t){return"content"in t&&function j$(t){return t.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===t.nodeName}(t)?t.content:null}const U$=/^>|^->||--!>|)/g;function UC(t,n){return t.createComment(function i2(t){return t.replace(U$,n=>n.replace(z$,"\u200b$1\u200b"))}(n))}function Bm(t,n,e){return t.createElement(n,e)}function ll(t,n,e,i,o){t.insertBefore(n,e,i,o)}function r2(t,n,e){t.appendChild(n,e)}function s2(t,n,e,i,o){null!==i?ll(t,n,e,i,o):r2(t,n,e)}function eh(t,n,e,i){t.removeChild(null,n,e,i)}function l2(t,n,e){const{mergedAttrs:i,classes:o,styles:r}=e;null!==i&&function z6(t,n,e){let i=0;for(;i-1){let r;for(;++or?"":o[u+1].toLowerCase(),2&i&&c!==p){if(nr(i))return!1;s=!0}}}}else{if(!s&&!nr(i)&&!nr(l))return!1;if(s&&nr(l))continue;s=!1,i=l|1&i}}return nr(i)||s}function nr(t){return!(1&t)}function m9(t,n,e,i){if(null===n)return-1;let o=0;if(i||!e){let r=!1;for(;o-1)for(e++;e0?'="'+a+'"':"")+"]"}else 8&i?o+="."+s:4&i&&(o+=" "+s);else""!==o&&!nr(s)&&(n+=_2(r,o),o=""),i=s,r=r||!nr(i);e++}return""!==o&&(n+=_2(r,o)),n}const Ot={};function WC(t,n,e,i,o,r,s,a,l,c,u){const p=27+i,g=p+o,_=function x9(t,n){const e=[];for(let i=0;i{class t{impl=null;execute(){this.impl?.execute()}static \u0275prov=te({token:t,providedIn:"root",factory:()=>new t})}return t})();const k2=[0,1,2,3];let D2=(()=>{class t{ngZone=D(ge);scheduler=D(nl);errorHandler=D(tl,{optional:!0});sequences=new Set;deferredRegistrations=new Set;executing=!1;constructor(){D(ia,{optional:!0})}execute(){const e=this.sequences.size>0;e&&Ft(me.AfterRenderHooksStart),this.executing=!0;for(const i of k2)for(const o of this.sequences)if(!o.erroredOrDestroyed&&o.hooks[i])try{o.pipelinedValue=this.ngZone.runOutsideAngular(()=>this.maybeTrace(()=>(0,o.hooks[i])(o.pipelinedValue),o.snapshot))}catch(r){o.erroredOrDestroyed=!0,this.errorHandler?.handleError(r)}this.executing=!1;for(const i of this.sequences)i.afterRun(),i.once&&(this.sequences.delete(i),i.destroy());for(const i of this.deferredRegistrations)this.sequences.add(i);this.deferredRegistrations.size>0&&this.scheduler.notify(7),this.deferredRegistrations.clear(),e&&Ft(me.AfterRenderHooksEnd)}register(e){const{view:i}=e;void 0!==i?((i[25]??=[]).push(e),Hc(i),i[2]|=8192):this.executing?this.deferredRegistrations.add(e):this.addSequence(e)}addSequence(e){this.sequences.add(e),this.scheduler.notify(7)}unregister(e){this.executing&&this.sequences.has(e)?(e.erroredOrDestroyed=!0,e.pipelinedValue=void 0,e.once=!0):(this.sequences.delete(e),this.deferredRegistrations.delete(e))}maybeTrace(e,i){return i?i.run(i1.AFTER_NEXT_RENDER,e):e()}static \u0275prov=te({token:t,providedIn:"root",factory:()=>new t})}return t})();class T2{impl;hooks;view;once;snapshot;erroredOrDestroyed=!1;pipelinedValue=void 0;unregisterOnDestroy;constructor(n,e,i,o,r,s=null){this.impl=n,this.hooks=e,this.view=i,this.once=o,this.snapshot=s,this.unregisterOnDestroy=r?.onDestroy(()=>this.destroy())}afterRun(){this.erroredOrDestroyed=!1,this.pipelinedValue=void 0,this.snapshot?.dispose(),this.snapshot=null}destroy(){this.impl.unregister(this),this.unregisterOnDestroy?.();const n=this.view?.[25];n&&(this.view[25]=n.filter(e=>e!==this))}}function Fi(t,n){const e=n?.injector??D(Be);return hi("NgAfterNextRender"),function M2(t,n,e,i){const o=n.get(o1);o.impl??=n.get(D2);const r=n.get(ia,null,{optional:!0}),s=!0!==e?.manualCleanup?n.get(tr):null,a=n.get(Jp,null,{optional:!0}),l=new T2(o.impl,function H9(t){return t instanceof Function?[void 0,void 0,t,void 0]:[t.earlyRead,t.write,t.mixedReadWrite,t.read]}(t),a?.view,i,s,r?.snapshot(null));return o.impl.register(l),l}(t,e,n,!0)}const qm=new Z("",{factory:()=>({queue:new Set,isScheduled:!1,scheduler:null,injector:D(Nn)})});function E2(t,n,e){const i=t.get(qm);if(Array.isArray(n))for(const o of n)i.queue.add(o),e?.detachedLeaveAnimationFns?.push(o);else i.queue.add(n),e?.detachedLeaveAnimationFns?.push(n);i.scheduler&&i.scheduler(t)}function I2(t,n,e,i){const o=t?.[26]?.enter;null!==n&&o&&o.has(e.index)&&function r1(t,n){for(const[e,i]of n)E2(t,i.animateFns)}(i,o)}function id(t,n,e,i,o,r,s,a){if(null!=o){let l,c=!1;Xi(o)?l=o:_n(o)&&(c=!0,o=o[0]);const u=di(o);0===t&&null!==i?(I2(a,i,r,e),null==s?r2(n,i,u):ll(n,i,u,s||null,!0)):1===t&&null!==i?(I2(a,i,r,e),ll(n,i,u,s||null,!0),function O9(t,n){const e=ih.get(t);if(!e||0===e.length)return;const i=n.parentNode,o=n.previousSibling;for(let r=e.length-1;r>=0;r--){const s=e[r],a=s.parentNode;s===n?(e.splice(r,1),ZC.add(s),s.dispatchEvent(new CustomEvent("animationend",{detail:{cancel:!0}}))):(o&&s===o||a&&i&&a!==i)&&(e.splice(r,1),s.dispatchEvent(new CustomEvent("animationend",{detail:{cancel:!0}})),s.parentNode?.removeChild(s))}}(r,u)):2===t?(a?.[26]?.leave?.has(r.index)&&function JC(t,n){const e=ih.get(t);e?e.includes(n)||e.push(n):ih.set(t,[n])}(r,u),A2(a,r,e,p=>{ZC.has(u)?ZC.delete(u):eh(n,u,c,p)})):3===t&&A2(a,r,e,()=>{n.destroyNode(u)}),null!=l&&function Y9(t,n,e,i,o,r,s){const a=i[7];a!==di(i)&&id(n,t,e,r,a,o,s);for(let c=10;c=0?i[a]():i[-a].unsubscribe(),s+=2}else e[s].call(i[e[s+1]]);null!==i&&(n[7]=null);const o=n[21];if(null!==o){n[21]=null;for(let s=0;s{if(o.leave&&o.leave.has(n.index)){const s=o.leave.get(n.index),a=[];if(s){for(let l=0;l{t[26].running=void 0,fl.delete(t[19]),n(!0)}):n(!1)}(t,i)}else t&&fl.delete(t[19]),i(!1)},o)}function l1(t,n,e){return function R2(t,n,e){let i=n;for(;null!==i&&168&i.type;)i=(n=i).parent;if(null===i)return e[0];if(Ir(i)){const{encapsulation:o}=t.data[i.directiveStart+i.componentOffset];if(o===Ro.None||o===Ro.Emulated)return null}return qn(i,e)}(t,n.parent,e)}function N2(t,n,e){return L2(t,n,e)}let L2=function F2(t,n,e){return 40&t.type?qn(t,e):null};function d1(t,n,e,i){const o=l1(t,i,n),r=n[11],a=N2(i.parent||n[5],i,n);if(null!=o)if(Array.isArray(e))for(let l=0;l27&&v2(t,n,27,!1),Ft(s?me.TemplateUpdateStart:me.TemplateCreateStart,o,e),e(i,o)}finally{el(r),Ft(s?me.TemplateUpdateEnd:me.TemplateCreateEnd,o,e)}}function Xm(t,n,e){(function tW(t,n,e){const i=e.directiveStart,o=e.directiveEnd;Ir(e)&&function S9(t,n,e){const i=qn(n,t),o=function b2(t){const n=t.tView;return null===n||n.incompleteFirstPass?t.tView=WC(1,null,t.template,t.decls,t.vars,t.directiveDefs,t.pipeDefs,t.viewQuery,t.schemas,t.consts,t.id):n}(e),r=t[10].rendererFactory,s=qC(t,Hm(t,o,null,GC(e),i,n,null,r.createRenderer(i,e),null,null,null));t[n.index]=s}(n,e,t.data[i+e.componentOffset]),t.firstCreatePass||gm(e,n);const r=e.initialInputs;for(let s=i;snull;function f1(t,n,e,i,o,r){eg(t,n[1],n,e,i)?Ir(t)&&z2(n,t.index):(3&t.type&&(e=function eW(t){return"class"===t?"className":"for"===t?"htmlFor":"formaction"===t?"formAction":"innerHtml"===t?"innerHTML":"readonly"===t?"readOnly":"tabindex"===t?"tabIndex":t}(e)),p1(t,n,e,i,o,r))}function p1(t,n,e,i,o,r){if(3&t.type){const s=qn(t,n);i=null!=r?r(i,t.value||"",e):i,o.setProperty(s,e,i)}}function z2(t,n){const e=Zi(n,t);16&e[2]||(e[2]|=64)}function iW(t,n){null!==t.hostBindings&&t.hostBindings(1,n)}function m1(t,n){const e=t.directiveRegistry;let i=null;if(e)for(let o=0;o{Hc(t.lView)},consumerOnSignalRead(){this.lView[24]=this}},gW={...Sc,consumerIsAlwaysLive:!0,kind:"template",consumerMarkedDirty:t=>{let n=cs(t.lView);for(;n&&!K2(n[1]);)n=cs(n);n&&mT(n)},consumerOnSignalRead(){this.lView[24]=this}};function K2(t){return 2!==t.type}function Y2(t){if(null===t[23])return;let n=!0;for(;n;){let e=!1;for(const i of t[23])i.dirty&&(e=!0,null===i.zone||Zone.current===i.zone?i.run():i.zone.run(()=>i.run()));n=e&&!!(8192&t[2])}}function ng(t,n=0){const i=t[10].rendererFactory;i.begin?.();try{!function bW(t,n){const e=MT();try{Kp(!0),_1(t,n);let i=0;for(;Gp(t);){if(100===i)throw new X(103,!1);i++,_1(t,1)}}finally{Kp(e)}}(t,n)}finally{i.end?.()}}function X2(t,n,e,i){if(ls(n))return;const o=n[2];Ly(n);let a=!0,l=null,c=null;K2(t)?(c=function uW(t){return t[24]??function hW(t){const n=q2.pop()??Object.create(pW);return n.lView=t,n}(t)}(n),l=kc(c)):null===function zv(){return Sn}()?(a=!1,c=function mW(t){const n=t[24]??Object.create(gW);return n.lView=t,n}(n),l=kc(c)):n[24]&&(xu(n[24]),n[24]=null);try{pT(n),function ET(t){return Fe.lFrame.bindingIndex=t}(t.bindingStartIndex),null!==e&&j2(t,n,e,2,i);const u=!(3&~o);if(u){const _=t.preOrderCheckHooks;null!==_&&fm(n,_,null)}else{const _=t.preOrderHooks;null!==_&&pm(n,_,0,null),tC(n,0)}if(function vW(t){for(let n=oE(t);null!==n;n=rE(n)){if(!(2&n[2]))continue;const e=n[9];for(let i=0;i0&&(e[o-1][4]=n),i0&&(t[e-1][4]=i[4]);const r=Fp(t,10+n);!function P2(t,n){O2(t,n),n[0]=null,n[5]=null}(i[1],i);const s=r[18];null!==s&&s.detachView(r[1]),i[3]=null,i[4]=null,i[2]&=-129}return i}function nI(t,n){const e=t[9],i=n[3];(_n(i)||n[15]!==i[3][15])&&(t[2]|=2),null===e?t[9]=[n]:e.push(n)}class lh{_lView;_cdRefInjectingView;_appRef=null;_attachedToViewContainer=!1;exhaustive;get rootNodes(){const n=this._lView,e=n[1];return sh(e,n,e.firstChild,[])}constructor(n,e){this._lView=n,this._cdRefInjectingView=e}get context(){return this._lView[8]}set context(n){this._lView[8]=n}get destroyed(){return ls(this._lView)}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._attachedToViewContainer){const n=this._lView[3];if(Xi(n)){const e=n[8],i=e?e.indexOf(this):-1;i>-1&&(ah(n,i),Fp(e,i))}this._attachedToViewContainer=!1}rh(this._lView[1],this._lView)}onDestroy(n){qp(this._lView,n)}markForCheck(){sd(this._cdRefInjectingView||this._lView,4)}detach(){this._lView[2]&=-129}reattach(){Ey(this._lView),this._lView[2]|=128}detectChanges(){this._lView[2]|=1024,ng(this._lView)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new X(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null;const n=qs(this._lView),e=this._lView[16];null!==e&&!n&&s1(e,this._lView),O2(this._lView[1],this._lView)}attachToAppRef(n){if(this._attachedToViewContainer)throw new X(902,!1);this._appRef=n;const e=qs(this._lView),i=this._lView[16];null!==i&&!e&&nI(i,this._lView),Ey(this._lView)}}let Ci=(()=>class t{_declarationLView;_declarationTContainer;elementRef;static __NG_ELEMENT_ID__=xW;constructor(e,i,o){this._declarationLView=e,this._declarationTContainer=i,this.elementRef=o}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(e,i){return this.createEmbeddedViewImpl(e,i)}createEmbeddedViewImpl(e,i,o){const r=rd(this._declarationLView,this._declarationTContainer,e,{embeddedViewInjector:i,dehydratedView:o});return new lh(r)}})();function xW(){return ig(Le(),ne())}function ig(t,n){return 4&t.type?new Ci(n,t,Xc(t,n)):null}function gl(t,n,e,i,o){let r=t.data[n];if(null===r)r=function w1(t,n,e,i,o){const r=xT(),s=ST(),l=t.data[n]=function OW(t,n,e,i,o,r){let s=n?n.injectorIndex:-1,a=0;return yT()&&(a|=128),{type:e,index:i,insertBeforeIndex:null,injectorIndex:s,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,componentOffset:-1,controlDirectiveIndex:-1,customControlIndex:-1,propertyBindings:null,flags:a,providerIndexes:0,value:o,attrs:r,mergedAttrs:null,localNames:null,initialInputs:null,inputs:null,hostDirectiveInputs:null,outputs:null,hostDirectiveOutputs:null,directiveToIndex:null,tView:null,next:null,prev:null,projectionNext:null,child:null,parent:n,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}(0,s?r:r&&r.parent,e,n,i,o);return function PW(t,n,e,i){null===t.firstChild&&(t.firstChild=n),null!==e&&(i?null==e.child&&null!==n.parent&&(e.child=n):null===e.next&&(e.next=n,n.prev=e))}(t,l,r,s),l}(t,n,e,i,o),function HU(){return Fe.lFrame.inI18n}()&&(r.flags|=32);else if(64&r.type){r.type=e,r.value=i,r.attrs=o;const s=function Au(){const t=Fe.lFrame,n=t.currentTNode;return t.isParent?n:n.parent}();r.injectorIndex=null===s?-1:s.injectorIndex}return ds(r,!0),r}function CI(t,n){let e=0,i=t.firstChild;if(i){const o=t.data.r;for(;eclass t{destroyNode=null;static __NG_ELEMENT_ID__=()=>function gG(){const t=ne(),e=Zi(Le().index,t);return(_n(e)?e:t)[11]}()})(),_G=(()=>{class t{static \u0275prov=te({token:t,providedIn:"root",factory:()=>null})}return t})();const I1={};class cd{injector;parentInjector;constructor(n,e){this.injector=n,this.parentInjector=e}get(n,e,i){const o=this.injector.get(n,I1,i);return o!==I1||e===I1?o:this.parentInjector.get(n,e,i)}}function fg(t,n,e){let i=e?t.styles:null,o=e?t.classes:null,r=0;if(null!==n)for(let s=0;s0&&(e.directiveToIndex=new Map);for(let g=0;g0;){const e=t[--n];if("number"==typeof e&&e<0)return e}return 0})(s)!=a&&s.push(a),s.push(e,i,r)}}(t,n,i,nh(t,e,o.hostVars,Ot),o)}function MG(t,n,e){if(e){if(n.exportAs)for(let i=0;il?a[l]:null}"string"==typeof s&&(r+=2)}return null}(n,e,r,t.index)),null!==u)(u.__ngLastListenerFn__||u).__ngNextListenerFn__=s,u.__ngLastListenerFn__=s,c=!0;else{const p=qn(t,e),g=i?i(p):p,_=o.listen(g,r,a);(function AG(t){return t.startsWith("animation")||t.startsWith("transition")})(r)||FI(i?x=>i(di(x[t.index])):t.index,n,e,r,a,_,!1)}return c}function FI(t,n,e,i,o,r,s){const a=n.firstCreatePass?bT(n):null,l=_T(e),c=l.length;l.push(o,r),a&&a.push(i,t,c,(c+1)*(s?-1:1))}function ud(t,n,e,i,o,r){const a=n[1],p=n[e][a.data[e].outputs[i]].subscribe(r);FI(t.index,a,n,o,r,p,!0)}const ps=Symbol("BINDING");function F1(t){return t.debugInfo?.className||t.type.name||null}class $I extends ug{ngModule;constructor(n){super(),this.ngModule=n}resolveComponentFactory(n){const e=wt(n);return new bh(e,this.ngModule)}}class bh extends TI{componentDef;ngModule;selector;componentType;ngContentSelectors;isBoundToModule;cachedInputs=null;cachedOutputs=null;get inputs(){return this.cachedInputs??=function WG(t){return Object.keys(t).map(n=>{const[e,i,o]=t[n],r={propName:e,templateName:n,isSignal:0!==(i&jm.SignalBased)};return o&&(r.transform=o),r})}(this.componentDef.inputs),this.cachedInputs}get outputs(){return this.cachedOutputs??=function GG(t){return Object.keys(t).map(n=>({propName:t[n],templateName:n}))}(this.componentDef.outputs),this.cachedOutputs}constructor(n,e){super(),this.componentDef=n,this.ngModule=e,this.componentType=n.type,this.selector=function C9(t){return t.map(y9).join(",")}(n.selectors),this.ngContentSelectors=n.ngContentSelectors??[],this.isBoundToModule=!!e}create(n,e,i,o,r,s){Ft(me.DynamicComponentStart);const a=De(null);try{const l=this.componentDef,c=function qG(t,n,e){let i=n instanceof Nn?n:n?.injector;return i&&null!==t.getStandaloneInjector&&(i=t.getStandaloneInjector(i)||i),i?new cd(e,i):e}(l,o||this.ngModule,n),u=function KG(t){const n=t.get(No,null);if(null===n)throw new X(407,!1);return{rendererFactory:n,sanitizer:t.get(_G,null),changeDetectionScheduler:t.get(nl,null),ngReflect:!1,tracingService:t.get(ia,null,{optional:!0})}}(c),p=u.tracingService;return p&&p.componentCreate?p.componentCreate(F1(l),()=>this.createComponentRef(u,c,e,i,r,s)):this.createComponentRef(u,c,e,i,r,s)}finally{De(a)}}createComponentRef(n,e,i,o,r,s){const a=this.componentDef,l=function ZG(t,n,e,i){const o=t?["ng-version","21.2.4"]:function w9(t){const n=[],e=[];let i=1,o=2;for(;i{if(1&e&&t)for(const i of t)i.create();if(2&e&&n)for(const i of n)i.update()}:null}(r,s),1,a,l,null,null,null,[o],null)}(o,a,s,r),c=n.rendererFactory.createRenderer(null,a),u=o?function Z9(t,n,e,i){const r=i.get(V7,!1)||e===Ro.ShadowDom||e===Ro.ExperimentalIsolatedShadowDom,s=t.selectRootElement(n,r);return function Q9(t){U2(t)}(s),s}(c,o,a.encapsulation,e):function YG(t,n){const e=function XG(t){return(t.selectors[0][0]||"div").toLowerCase()}(t);return Bm(n,e,"svg"===e?"svg":"math"===e?"math":null)}(a,c),p=s?.some(WI)||r?.some(w=>"function"!=typeof w&&w.bindings.some(WI)),g=Hm(null,l,null,512|GC(a),null,null,n,c,e,null,null);g[27]=u,Ly(g);let _=null;try{const w=O1(27,g,2,"#host",()=>l.directiveRegistry,!0,0);l2(c,u,w),uo(u,g),Xm(l,g,w),OC(l,w,g),A1(l,w),void 0!==i&&function eq(t,n,e){const i=t.projection=[];for(let o=0;oclass t{static __NG_ELEMENT_ID__=tq})();function tq(){return qI(Le(),ne())}class L1 extends wi{_lContainer;_hostTNode;_hostLView;constructor(n,e,i){super(),this._lContainer=n,this._hostTNode=e,this._hostLView=i}get element(){return Xc(this._hostTNode,this._hostLView)}get injector(){return new En(this._hostTNode,this._hostLView)}get parentInjector(){const n=_m(this._hostTNode,this._hostLView);if(iC(n)){const e=$u(n,this._hostLView),i=zu(n);return new En(e[1].data[i+8],e)}return new En(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(n){const e=GI(this._lContainer);return null!==e&&e[n]||null}get length(){return this._lContainer.length-10}createEmbeddedView(n,e,i){let o,r;"number"==typeof i?o=i:null!=i&&(o=i.index,r=i.injector);const a=n.createEmbeddedViewImpl(e||{},r,null);return this.insertImpl(a,o,ml(this._hostTNode,null)),a}createComponent(n,e,i,o,r,s,a){const l=n&&!function ju(t){return"function"==typeof t}(n);let c;if(l)c=e;else{const T=e||{};c=T.index,i=T.injector,o=T.projectableNodes,r=T.environmentInjector||T.ngModuleRef,s=T.directives,a=T.bindings}const u=l?n:new bh(wt(n)),p=i||this.parentInjector;if(!r&&null==u.ngModule){const E=(l?p:this.parentInjector).get(Nn,null);E&&(r=E)}wt(u.componentType??{});const x=u.create(p,o,null,r,s,a);return this.insertImpl(x.hostView,c,ml(this._hostTNode,null)),x}insert(n,e){return this.insertImpl(n,e,!0)}insertImpl(n,e,i){const o=n._lView;if(function RU(t){return Xi(t[3])}(o)){const a=this.indexOf(n);if(-1!==a)this.detach(a);else{const l=o[3],c=new L1(l,l[5],l[3]);c.detach(c.indexOf(n))}}const r=this._adjustIndex(e),s=this._lContainer;return ad(s,o,r,i),n.attachToViewContainerRef(),ZD(B1(s),r,n),n}move(n,e){return this.insert(n,e)}indexOf(n){const e=GI(this._lContainer);return null!==e?e.indexOf(n):-1}remove(n){const e=this._adjustIndex(n,-1),i=ah(this._lContainer,e);i&&(Fp(B1(this._lContainer),e),rh(i[1],i))}detach(n){const e=this._adjustIndex(n,-1),i=ah(this._lContainer,e);return i&&null!=Fp(B1(this._lContainer),e)?new lh(i):null}_adjustIndex(n,e=0){return n??this.length+e}}function GI(t){return t[8]}function B1(t){return t[8]||(t[8]=[])}function qI(t,n){let e;const i=n[t.index];return Xi(i)?e=i:(e=eI(i,n,null,t),n[t.index]=e,qC(n,e)),KI(e,n,t,i),new L1(e,t,n)}let KI=function XI(t,n,e,i){if(t[7])return;let o;o=8&e.type?di(i):function nq(t,n){const e=t[11],i=e.createComment(""),o=qn(n,t),r=e.parentNode(o);return ll(e,r,i,e.nextSibling(o),!1),i}(n,e),t[7]=o};class H1{queryList;matches=null;constructor(n){this.queryList=n}clone(){return new H1(this.queryList)}setDirty(){this.queryList.setDirty()}}class j1{queries;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 U1{queries;constructor(n=[]){this.queries=n}elementStart(n,e){for(let i=0;i0)i.push(s[a/2]);else{const c=r[a+1],u=n[-l];for(let p=10;p{i._dirtyCounter();const r=function hq(t,n){const e=t._lView,i=t._queryIndex;if(void 0===e||void 0===i||4&e[2])return n?void 0:zt;const o=W1(e,i),r=iP(e,i);return o.reset(r,KM),n?o.first:o._changesDetected||void 0===t._flatValue?t._flatValue=o.toArray():t._flatValue}(i,t);if(n&&void 0===r)throw new X(-951,!1);return r});return i=o[kn],i._dirtyCounter=yt(0),i._flatValue=void 0,o}function oP(t){return q1(!0,!1)}function rP(t){return q1(!0,!0)}function sP(t,n){const e=t[kn];e._lView=ne(),e._queryIndex=n,e._queryList=W1(e._lView,n),e._queryList.onDirty(()=>e._dirtyCounter.update(i=>i+1))}let ms=class{},dP=class{};class Z1 extends ms{ngModuleType;_parent;_bootstrapComponents=[];_r3Injector;instance;destroyCbs=[];componentFactoryResolver=new $I(this);constructor(n,e,i,o=!0){super(),this.ngModuleType=n,this._parent=e;const r=Mr(n);this._bootstrapComponents=Fr(r.bootstrap),this._r3Injector=BT(n,e,[{provide:ms,useValue:this},{provide:ug,useValue:this.componentFactoryResolver},...i],$s(n),new Set(["environment"])),o&&this.resolveInjectorInitializers()}resolveInjectorInitializers(){this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(this.ngModuleType)}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 uP extends dP{moduleType;constructor(n){super(),this.moduleType=n}create(n){return new Z1(this.moduleType,n,[])}}class yq extends ms{injector;componentFactoryResolver=new $I(this);instance=null;constructor(n){super();const e=new Ka([...n.providers,{provide:ms,useValue:this},{provide:ug,useValue:this.componentFactoryResolver}],n.parent||Up(),n.debugName,new Set(["environment"]));this.injector=e,n.runEnvironmentInitializers&&e.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(n){this.injector.onDestroy(n)}}function gg(t,n,e=null){return new yq({providers:t,parent:n,debugName:e,runEnvironmentInitializers:!0}).injector}let Cq=(()=>{class t{_injector;cachedInjectors=new Map;constructor(e){this._injector=e}getOrCreateStandaloneInjector(e){if(!e.standalone)return null;if(!this.cachedInjectors.has(e)){const i=_y(0,e.type),o=i.length>0?gg([i],this._injector,""):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 \u0275prov=te({token:t,providedIn:"environment",factory:()=>new t(le(Nn))})}return t})();function se(t){return fs(()=>{const n=fP(t),e={...n,decls:t.decls,vars:t.vars,template:t.template,consts:t.consts||null,ngContentSelectors:t.ngContentSelectors,onPush:t.changeDetection===ym.OnPush,directiveDefs:null,pipeDefs:null,dependencies:n.standalone&&t.dependencies||null,getStandaloneInjector:n.standalone?o=>o.get(Cq).getOrCreateStandaloneInjector(e):null,getExternalStyles:null,signals:t.signals??!1,data:t.data||{},encapsulation:t.encapsulation||Ro.Emulated,styles:t.styles||zt,_:null,schemas:t.schemas||null,tView:null,id:""};n.standalone&&hi("NgStandalone"),pP(e);const i=t.dependencies;return e.directiveDefs=_g(i,hP),e.pipeDefs=_g(i,Zo),e.id=function kq(t){let n=0;const i=[t.selectors,t.ngContentSelectors,t.hostVars,t.hostAttrs,"function"==typeof t.consts?"":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];for(const r of i.join("|"))n=Math.imul(31,n)+r.charCodeAt(0)|0;return n+=2147483648,"c"+n}(e),e})}function hP(t){return wt(t)||Ki(t)}function ot(t){return fs(()=>({type:t.type,bootstrap:t.bootstrap||zt,declarations:t.declarations||zt,imports:t.imports||zt,exports:t.exports||zt,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null}))}function wq(t,n){if(null==t)return Er;const e={};for(const i in t)if(t.hasOwnProperty(i)){const o=t[i];let r,s,a,l;Array.isArray(o)?(a=o[0],r=o[1],s=o[2]??r,l=o[3]||null):(r=o,s=o,a=jm.None,l=null),e[r]=[i,a,l],n[r]=s}return e}function xq(t){if(null==t)return Er;const n={};for(const e in t)t.hasOwnProperty(e)&&(n[t[e]]=e);return n}function de(t){return fs(()=>{const n=fP(t);return pP(n),n})}function Li(t){return{type:t.type,name:t.name,factory:null,pure:!1!==t.pure,standalone:t.standalone??!0,onDestroy:t.type.prototype.ngOnDestroy||null}}function fP(t){const n={};return{type:t.type,providersResolver:null,viewProvidersResolver:null,factory:null,hostBindings:t.hostBindings||null,hostVars:t.hostVars||0,hostAttrs:t.hostAttrs||null,contentQueries:t.contentQueries||null,declaredInputs:n,inputConfig:t.inputs||Er,exportAs:t.exportAs||null,standalone:t.standalone??!0,signals:!0===t.signals,selectors:t.selectors||zt,viewQuery:t.viewQuery||null,features:t.features||null,setInput:null,resolveHostDirectives:null,hostDirectives:null,controlDef:null,inputs:wq(t.inputs,n),outputs:xq(t.outputs),debugInfo:null}}function pP(t){t.features?.forEach(n=>n(t))}function _g(t,n){return t?()=>{const e="function"==typeof t?t():t,i=[];for(const o of e){const r=n(o);null!==r&&i.push(r)}return i}:null}function mP(t){const n=e=>{const i=Array.isArray(t);null===e.hostDirectives?(e.resolveHostDirectives=Tq,e.hostDirectives=i?t.map(Q1):[t]):i?e.hostDirectives.unshift(...t.map(Q1)):e.hostDirectives.unshift(t)};return n.ngInherit=!0,n}function Tq(t){const n=[];let e=!1,i=null,o=null;for(let r=0;r=0;i--){const o=t[i];o.hostVars=n+=o.hostVars,o.hostAttrs=Yc(o.hostAttrs,e=Yc(e,o.hostAttrs))}}(i)}function Iq(t,n){for(const e in n.inputs){if(!n.inputs.hasOwnProperty(e)||t.inputs.hasOwnProperty(e))continue;const i=n.inputs[e];void 0!==i&&(t.inputs[e]=i,t.declaredInputs[e]=n.declaredInputs[e])}}function J1(t){return t===Er?{}:t===zt?[]:t}function Oq(t,n){const e=t.viewQuery;t.viewQuery=e?(i,o)=>{n(i,o),e(i,o)}:n}function Aq(t,n){const e=t.contentQueries;t.contentQueries=e?(i,o,r)=>{n(i,o,r),e(i,o,r)}:n}function Rq(t,n){const e=t.hostBindings;t.hostBindings=e?(i,o)=>{n(i,o),e(i,o)}:n}function yP(t,n,e,i,o,r,s,a){if(e.firstCreatePass){t.mergedAttrs=Yc(t.mergedAttrs,t.attrs);const u=t.tView=WC(2,t,o,r,s,e.directiveRegistry,e.pipeRegistry,null,e.schemas,e.consts,null);null!==e.queries&&(e.queries.template(e,t),u.queries=e.queries.embeddedTView(t))}a&&(t.flags|=a),ds(t,!1);const l=CP(e,n,t,i);Xp()&&d1(e,n,l,t),uo(l,n);const c=eI(l,n,l,t);n[i+27]=c,qC(n,c)}function Cl(t,n,e,i,o,r,s,a,l,c,u){const p=e+27;let g;if(n.firstCreatePass){if(g=gl(n,p,4,s||null,a||null),null!=c){const _=Ri(n.consts,c);g.localNames=[];for(let w=0;w<_.length;w+=2)g.localNames.push(_[w],-1)}}else g=n.data[p];return yP(g,t,n,e,i,o,r,l),null!=c&&od(t,g,u),g}function tt(t,n,e,i,o,r,s,a){const l=ne(),c=Ue();return function Nq(t,n,e,i,o,r,s,a,l,c,u){const p=e+27;let g;n.firstCreatePass?(g=gl(n,p,4,s||null,a||null),Ay()&&EI(n,t,g,Ri(n.consts,c),m1),TM(n,g)):g=n.data[p],yP(g,t,n,e,i,o,r,l),Lc(g)&&Xm(n,t,g),null!=c&&od(t,g,u)}(l,c,t,n,e,i,o,Ri(c.consts,r),void 0,s,a),tt}function bg(t,n,e,i,o,r,s,a){const l=ne(),c=Ue();return Cl(l,c,t,n,e,i,o,Ri(c.consts,r),void 0,s,a),bg}let CP=function wP(t,n,e,i){return Ru(!0),n[11].createComment("")};let NP=(()=>{class t{log(e){console.log(e)}warn(e){console.warn(e)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();function Sl(t){return"function"==typeof t&&void 0!==t[kn]}function LP(t){return Sl(t)&&"function"==typeof t.set}const QP=new Z(""),JP=new Z("");let a0,s0=(()=>{class t{_ngZone;registry;_isZoneStable=!0;_callbacks=[];_taskTrackingZone=null;_destroyRef;constructor(e,i,o){this._ngZone=e,this.registry=i,Sy()&&(this._destroyRef=D(tr,{optional:!0})??void 0),a0||(function zK(t){a0=t}(o),o.addToWindow(i)),this._watchAngularEvents(),e.run(()=>{this._taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){const e=this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),i=this._ngZone.runOutsideAngular(()=>this._ngZone.onStable.subscribe({next:()=>{ge.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}}));this._destroyRef?.onDestroy(()=>{e.unsubscribe(),i.unsubscribe()})}isStable(){return this._isZoneStable&&!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(s=>s.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()}registerApplication(e){this.registry.registerApplication(e,this)}unregisterApplication(e){this.registry.unregisterApplication(e)}findProviders(e,i,o){return[]}static \u0275fac=function(i){return new(i||t)(le(ge),le(UK),le(JP))};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})(),UK=(()=>{class t{_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 a0?.findTestabilityInTree(this,e,i)??null}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();function Sh(t){return!!t&&"function"==typeof t.then}function eO(t){return!!t&&"function"==typeof t.subscribe}const tO=new Z("");function nO(t){return Iu([{provide:tO,multi:!0,useValue:t}])}let iO=(()=>{class t{resolve;reject;initialized=!1;done=!1;donePromise=new Promise((e,i)=>{this.resolve=e,this.reject=i});appInits=D(tO,{optional:!0})??[];injector=D(Be);constructor(){}runInitializers(){if(this.initialized)return;const e=[];for(const o of this.appInits){const r=Yi(this.injector,o);if(Sh(r))e.push(r);else if(eO(r)){const s=new Promise((a,l)=>{r.subscribe({complete:a,error:l})});e.push(s)}}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 \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const oO=new Z("");function rO(t,n){return Array.isArray(n)?n.reduce(rO,t):{...t,...n}}let or=(()=>{class t{_runningTick=!1;_destroyed=!1;_destroyListeners=[];_views=[];internalErrorHandler=D(Pr);afterRenderManager=D(o1);zonelessEnabled=D(em);rootEffectScheduler=D(GT);dirtyFlags=0;tracingSnapshot=null;allTestViews=new Set;autoDetectTestViews=new Set;includeAllTestViews=!1;afterTick=new pe;get allViews(){return[...(this.includeAllTestViews?this.allTestViews:this.autoDetectTestViews).keys(),...this._views]}get destroyed(){return this._destroyed}componentTypes=[];components=[];internalPendingTask=D(Ks);get isStable(){return this.internalPendingTask.hasPendingTasksObservable.pipe(ye(e=>!e))}constructor(){D(ia,{optional:!0})}whenStable(){let e;return new Promise(i=>{e=this.isStable.subscribe({next:o=>{o&&i()}})}).finally(()=>{e.unsubscribe()})}_injector=D(Nn);_rendererFactory=null;get injector(){return this._injector}bootstrap(e,i){return this.bootstrapImpl(e,i)}bootstrapImpl(e,i,o=Be.NULL){return this._injector.get(ge).run(()=>{Ft(me.BootstrapComponentStart);const s=e instanceof TI;if(!this._injector.get(iO).done)throw new X(405,"");let l;l=s?e:this._injector.get(ug).resolveComponentFactory(e),this.componentTypes.push(l.componentType);const c=function WK(t){return t.isBoundToModule}(l)?void 0:this._injector.get(ms),p=l.create(o,[],i||l.selector,c),g=p.location.nativeElement,_=p.injector.get(QP,null);return _?.registerApplication(g),p.onDestroy(()=>{this.detachView(p.hostView),Dg(this.components,p),_?.unregisterApplication(g)}),this._loadComponent(p),Ft(me.BootstrapComponentEnd,p),p})}tick(){this.zonelessEnabled||(this.dirtyFlags|=1),this._tick()}_tick(){Ft(me.ChangeDetectionStart),null!==this.tracingSnapshot?this.tracingSnapshot.run(i1.CHANGE_DETECTION,this.tickImpl):this.tickImpl()}tickImpl=()=>{if(this._runningTick)throw Ft(me.ChangeDetectionEnd),new X(101,!1);const e=De(null);try{this._runningTick=!0,this.synchronize()}finally{this._runningTick=!1,this.tracingSnapshot?.dispose(),this.tracingSnapshot=null,De(e),this.afterTick.next(),Ft(me.ChangeDetectionEnd)}};synchronize(){null===this._rendererFactory&&!this._injector.destroyed&&(this._rendererFactory=this._injector.get(No,null,{optional:!0}));let e=0;for(;0!==this.dirtyFlags&&e++<10;){Ft(me.ChangeDetectionSyncStart);try{this.synchronizeOnce()}finally{Ft(me.ChangeDetectionSyncEnd)}}}synchronizeOnce(){16&this.dirtyFlags&&(this.dirtyFlags&=-17,this.rootEffectScheduler.flush());let e=!1;if(7&this.dirtyFlags){const i=!!(1&this.dirtyFlags);this.dirtyFlags&=-8,this.dirtyFlags|=8;for(let{_lView:o}of this.allViews)(i||Gp(o))&&(ng(o,i&&!this.zonelessEnabled?0:1),e=!0);if(this.dirtyFlags&=-5,this.syncDirtyFlagsWithViews(),23&this.dirtyFlags)return}e||(this._rendererFactory?.begin?.(),this._rendererFactory?.end?.()),8&this.dirtyFlags&&(this.dirtyFlags&=-9,this.afterRenderManager.execute()),this.syncDirtyFlagsWithViews()}syncDirtyFlagsWithViews(){this.allViews.some(({_lView:e})=>Gp(e))?this.dirtyFlags|=2:this.dirtyFlags&=-8}attachView(e){const i=e;this._views.push(i),i.attachToAppRef(this)}detachView(e){const i=e;Dg(this._views,i),i.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView);try{this.tick()}catch(o){this.internalErrorHandler(o)}this.components.push(e),this._injector.get(oO,[]).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._destroyListeners=[]}}onDestroy(e){return this._destroyListeners.push(e),()=>Dg(this._destroyListeners,e)}destroy(){if(this._destroyed)throw new X(406,!1);const e=this._injector;e.destroy&&!e.destroyed&&e.destroy()}get viewCount(){return this._views.length}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Dg(t,n){const e=t.indexOf(n);e>-1&&t.splice(e,1)}function f0(t,n){const e=ne();if(tn(e,lo(),n)){const o=Ue(),r=er();if(eg(r,o,e,t,n))Ir(r)&&z2(e,r.index);else{const a=qn(r,e);Zm(e[11],a,null,r.value,t,n,null)}}return f0}function Ze(t,n,e,i){const o=ne();return tn(o,lo(),n)&&(Ue(),function oW(t,n,e,i,o,r){const s=qn(t,n);Zm(n[11],s,r,t.value,e,i,o)}(er(),o,t,n,e,i)),Ze}function Dh(){return ne()[15][8]}class AY{destroy(n){}updateValue(n,e){}swap(n,e){const i=Math.min(n,e),o=Math.max(n,e),r=this.detach(o);if(o-i>1){const s=this.detach(i);this.attach(i,r),this.attach(o,s)}else this.attach(i,r)}move(n,e){this.attach(e,this.detach(n))}}function m0(t,n,e,i,o){return t===e&&Object.is(n,i)?1:Object.is(o(t,n),o(e,i))?-1:0}function g0(t,n,e,i){return!(void 0===n||!n.has(i)||(t.attach(e,n.get(i)),n.delete(i),0))}function pO(t,n,e,i,o){if(g0(t,n,i,e(i,o)))t.updateValue(i,o);else{const r=t.create(i,o);t.attach(i,r)}}function mO(t,n,e,i){const o=new Set;for(let r=n;r<=e;r++)o.add(i(r,t.at(r)));return o}class gO{kvMap=new Map;_vMap=void 0;has(n){return this.kvMap.has(n)}delete(n){if(!this.has(n))return!1;const e=this.kvMap.get(n);return void 0!==this._vMap&&this._vMap.has(e)?(this.kvMap.set(n,this._vMap.get(e)),this._vMap.delete(e)):this.kvMap.delete(n),!0}get(n){return this.kvMap.get(n)}set(n,e){if(this.kvMap.has(n)){let i=this.kvMap.get(n);void 0===this._vMap&&(this._vMap=new Map);const o=this._vMap;for(;o.has(i);)i=o.get(i);o.set(i,e)}else this.kvMap.set(n,e)}forEach(n){for(let[e,i]of this.kvMap)if(n(i,e),void 0!==this._vMap){const o=this._vMap;for(;o.has(i);)i=o.get(i),n(i,e)}}}function S(t,n,e,i,o,r,s,a){hi("NgControlFlow");const l=ne(),c=Ue();return Cl(l,c,t,n,e,i,o,Ri(c.consts,r),256,s,a),_0}function _0(t,n,e,i,o,r,s,a){hi("NgControlFlow");const l=ne(),c=Ue();return Cl(l,c,t,n,e,i,o,Ri(c.consts,r),512,s,a),_0}function k(t,n){hi("NgControlFlow");const e=ne(),i=lo(),o=e[i]!==Ot?e[i]:-1,r=-1!==o?Ig(e,27+o):void 0;if(tn(e,i,t)){const a=De(null);try{if(void 0!==r&&b1(r,0),-1!==t){const l=27+t,c=Ig(e,l),u=b0(e[1],l),p=null;ad(c,rd(e,u,n,{dehydratedView:p}),0,ml(u,p))}}finally{De(a)}}else if(void 0!==r){const a=tI(r,0);void 0!==a&&(a[8]=n)}}class NY{lContainer;$implicit;$index;constructor(n,e,i){this.lContainer=n,this.$implicit=e,this.$index=i}get $count(){return this.lContainer.length-10}}function Re(t,n){return n}class LY{hasEmptyBlock;trackByFn;liveCollection;constructor(n,e,i){this.hasEmptyBlock=n,this.trackByFn=e,this.liveCollection=i}}function we(t,n,e,i,o,r,s,a,l,c,u,p,g){hi("NgControlFlow");const _=ne(),w=Ue(),x=void 0!==l,T=ne(),E=a?s.bind(T[15][8]):s,R=new LY(x,E);T[27+t]=R,Cl(_,w,t+1,n,e,i,o,Ri(w.consts,r),256),x&&Cl(_,w,t+2,l,c,u,p,Ri(w.consts,g),512)}class BY extends AY{lContainer;hostLView;templateTNode;operationsCounter=void 0;needsIndexUpdate=!1;constructor(n,e,i){super(),this.lContainer=n,this.hostLView=e,this.templateTNode=i}get length(){return this.lContainer.length-10}at(n){return this.getLView(n)[8].$implicit}attach(n,e){const i=e[6];this.needsIndexUpdate||=n!==this.length,ad(this.lContainer,e,n,ml(this.templateTNode,i)),function VY(t,n){if(t.length<=10)return;const i=t[10+n],o=i?i[26]:void 0;i&&o&&o.detachedLeaveAnimationFns&&o.detachedLeaveAnimationFns.length>0&&(function j9(t,n){const e=t.get(qm);if(n.detachedLeaveAnimationFns){for(const i of n.detachedLeaveAnimationFns)e.queue.delete(i);n.detachedLeaveAnimationFns=void 0}}(i[9],o),fl.delete(i[19]),o.detachedLeaveAnimationFns=void 0)}(this.lContainer,n)}detach(n){return this.needsIndexUpdate||=n!==this.length-1,function HY(t,n){if(t.length<=10)return;const i=t[10+n],o=i?i[26]:void 0;o&&o.leave&&o.leave.size>0&&(o.detachedLeaveAnimationFns=[])}(this.lContainer,n),function jY(t,n){return ah(t,n)}(this.lContainer,n)}create(n,e){return rd(this.hostLView,this.templateTNode,new NY(this.lContainer,e,n),{dehydratedView:null})}destroy(n){rh(n[1],n)}updateValue(n,e){this.getLView(n)[8].$implicit=e}reset(){this.needsIndexUpdate=!1}updateIndexes(){if(this.needsIndexUpdate)for(let n=0;n{t.destroy(c)})}(l,t,r.trackByFn,n),l.updateIndexes(),r.hasEmptyBlock){const c=lo(),u=0===l.length;if(tn(i,c,u)){const p=e+2,g=Ig(i,p);if(u){const _=b0(o,p),w=null;ad(g,rd(i,_,void 0,{dehydratedView:w}),0,ml(_,w))}else o.firstUpdatePass&&function lg(t){const n=t[6]??[],i=t[3][11],o=[];for(const r of n)void 0!==r.data.di?o.push(r):CI(r,i);t[6]=o}(g),b1(g,0)}}}finally{De(n)}}function Ig(t,n){return t[n]}function b0(t,n){return Vc(t,n)}function v(t,n,e){const i=ne();return tn(i,lo(),n)&&(Ue(),f1(er(),i,t,n,i[11],e)),v}function v0(t,n,e,i,o){eg(n,t,e,o?"class":"style",i)}function f(t,n,e,i){const o=ne(),r=o[1],s=t+27,a=r.firstCreatePass?O1(s,o,2,n,m1,Ay(),e,i):r.data[s];if(Ir(a)){const l=o[10].tracingService;if(l&&l.componentCreate)return l.componentCreate(F1(r.data[a.directiveStart+a.componentOffset]),()=>(_O(t,n,o,a,i),f))}return _O(t,n,o,a,i),f}function _O(t,n,e,i,o){if(Qm(i,e,t,n,y0),Lc(i)){const r=e[1];Xm(r,e,i),OC(r,i,e)}null!=o&&od(e,i)}function h(){const t=Ue(),e=Jm(Le());return t.firstCreatePass&&A1(t,e),CT(e)&&wT(),vT(),null!=e.classesWithoutHost&&function j6(t){return!!(8&t.flags)}(e)&&v0(t,e,ne(),e.classesWithoutHost,!0),null!=e.stylesWithoutHost&&function U6(t){return!!(16&t.flags)}(e)&&v0(t,e,ne(),e.stylesWithoutHost,!1),h}function B(t,n,e,i){return f(t,n,e,i),h(),B}function gs(t,n,e,i){const o=ne(),r=o[1],s=t+27,a=r.firstCreatePass?function RI(t,n,e,i,o,r){const s=n.consts,l=gl(n,t,e,i,Ri(s,o));if(l.mergedAttrs=Yc(l.mergedAttrs,l.attrs),null!=r){const c=Ri(s,r);l.localNames=[];for(let u=0;u(Ru(!0),Bm(n[11],i,function qU(){return Fe.lFrame.currentNamespace}()));function rr(t,n,e){const i=ne(),o=i[1],r=t+27,s=o.firstCreatePass?O1(r,i,8,"ng-container",m1,Ay(),n,e):o.data[r];if(Qm(s,i,t,"ng-container",w0),Lc(s)){const a=i[1];Xm(a,i,s),OC(a,s,i)}return null!=e&&od(i,s),rr}function Lo(){const t=Ue(),e=Jm(Le());return t.firstCreatePass&&A1(t,e),Lo}function sr(t,n,e){return rr(t,n,e),Lo(),sr}let w0=(t,n,e,i,o)=>(Ru(!0),UC(n[11],""));function ce(){return ne()}function Lr(t,n,e){const i=ne();return tn(i,lo(),n)&&(Ue(),p1(er(),i,t,n,i[11],e)),Lr}const Th=void 0;var GY=["en",[["a","p"],["AM","PM"]],[["AM","PM"]],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],Th,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],Th,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm\u202fa","h:mm:ss\u202fa","h:mm:ss\u202fa z","h:mm:ss\u202fa zzzz"],["{1}, {0}",Th,Th,Th],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function WY(t){const n=Math.floor(Math.abs(t)),e=t.toString().replace(/^[^.]*\.?/,"").length;return 1===n&&0===e?1:5}];let bd={};function Qi(t){const n=function qY(t){return t.toLowerCase().replace(/_/g,"-")}(t);let e=wO(n);if(e)return e;const i=n.split("-")[0];if(e=wO(i),e)return e;if("en"===i)return GY;throw new X(701,!1)}function wO(t){return t in bd||(bd[t]=Dn.ng&&Dn.ng.common&&Dn.ng.common.locales&&Dn.ng.common.locales[t]),bd[t]}var nn=function(t){return t[t.LocaleId=0]="LocaleId",t[t.DayPeriodsFormat=1]="DayPeriodsFormat",t[t.DayPeriodsStandalone=2]="DayPeriodsStandalone",t[t.DaysFormat=3]="DaysFormat",t[t.DaysStandalone=4]="DaysStandalone",t[t.MonthsFormat=5]="MonthsFormat",t[t.MonthsStandalone=6]="MonthsStandalone",t[t.Eras=7]="Eras",t[t.FirstDayOfWeek=8]="FirstDayOfWeek",t[t.WeekendRange=9]="WeekendRange",t[t.DateFormat=10]="DateFormat",t[t.TimeFormat=11]="TimeFormat",t[t.DateTimeFormat=12]="DateTimeFormat",t[t.NumberSymbols=13]="NumberSymbols",t[t.NumberFormats=14]="NumberFormats",t[t.CurrencyCode=15]="CurrencyCode",t[t.CurrencySymbol=16]="CurrencySymbol",t[t.CurrencyName=17]="CurrencyName",t[t.Currencies=18]="Currencies",t[t.Directionality=19]="Directionality",t[t.PluralCase=20]="PluralCase",t[t.ExtraData=21]="ExtraData",t}(nn||{});const Pg="en-US";let xO=Pg;function L(t,n,e){const i=ne(),o=Ue(),r=Le();return k0(o,i,i[11],r,t,n,e),L}function Fg(t,n,e){const i=ne(),o=Ue(),r=Le();return(3&r.type||e)&&N1(r,o,i,e,i[11],t,n,ra(r,i,n)),Fg}function k0(t,n,e,i,o,r,s){let a=!0,l=null;if((3&i.type||s)&&(l??=ra(i,n,r),N1(i,t,n,s,e,o,r,l)&&(a=!1)),a){const c=i.outputs?.[o],u=i.hostDirectiveOutputs?.[o];if(u&&u.length)for(let p=0;p0;)n=n[14],t--;return n}(t,Fe.lFrame.contextLView))[8]}(t)}function AX(t,n){let e=null;const i=function g9(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>17&32767}function E0(t){return 2|t}function vd(t){return(131068&t)>>2}function I0(t,n){return-131069&t|n<<2}function P0(t){return 1|t}function zO(t,n,e,i){const o=t[e+1],r=null===n;let s=i?Ml(o):vd(o),a=!1;for(;0!==s&&(!1===a||r);){const c=t[s+1];HX(t[s],n)&&(a=!0,t[s+1]=i?P0(c):E0(c)),s=i?Ml(c):vd(c)}a&&(t[e+1]=i?E0(o):P0(o))}function HX(t,n){return null===t||null==n||(Array.isArray(t)?t[1]:t)===n||!(!Array.isArray(t)||"string"!=typeof n)&&Eu(t,n)>=0}const ti={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function $O(t){return t.substring(ti.key,ti.keyEnd)}function jX(t){return t.substring(ti.value,ti.valueEnd)}function WO(t,n){const e=ti.textEnd;return e===n?-1:(n=ti.keyEnd=function $X(t,n,e){for(;n32;)n++;return n}(t,ti.key=n,e),yd(t,n,e))}function GO(t,n){const e=ti.textEnd;let i=ti.key=yd(t,n,e);return e===i?-1:(i=ti.keyEnd=function WX(t,n,e){let i;for(;n=65&&(-33&i)<=90||i>=48&&i<=57);)n++;return n}(t,i,e),i=KO(t,i,e),i=ti.value=yd(t,i,e),i=ti.valueEnd=function GX(t,n,e){let i=-1,o=-1,r=-1,s=n,a=s;for(;s32&&(a=s),r=o,o=i,i=-33&l}return a}(t,i,e),KO(t,i,e))}function qO(t){ti.key=0,ti.keyEnd=0,ti.value=0,ti.valueEnd=0,ti.textEnd=t.length}function yd(t,n,e){for(;n=0;e=GO(n,e))eA(t,$O(n),jX(n))}function at(t){ZO(eZ,KX,t,!0)}function KX(t,n){for(let e=function UX(t){return qO(t),WO(t,yd(t,0,ti.textEnd))}(n);e>=0;e=WO(n,e))Bp(t,$O(n),!0)}function XO(t,n,e,i){const o=ne(),r=Ue(),s=hs(2);r.firstUpdatePass&&JO(r,t,s,i),n!==Ot&&tn(o,s,n)&&tA(r,r.data[bi()],o,o[11],t,o[s+1]=function nZ(t,n){return null==t||""===t||("string"==typeof n?t+=n:"object"==typeof t&&(t=$s(ko(t)))),t}(n,e),i,s)}function ZO(t,n,e,i){const o=Ue(),r=hs(2);o.firstUpdatePass&&JO(o,null,r,i);const s=ne();if(e!==Ot&&tn(s,r,e)){const a=o.data[bi()];if(iA(a,i)&&!QO(o,r)){let l=i?a.classesWithoutHost:a.stylesWithoutHost;null!==l&&(e=oy(l,e||"")),v0(o,a,s,e,i)}else!function tZ(t,n,e,i,o,r,s,a){o===Ot&&(o=zt);let l=0,c=0,u=0=t.expandoStartIndex}function JO(t,n,e,i){const o=t.data;if(null===o[e+1]){const r=o[bi()],s=QO(t,e);iA(r,i)&&null===n&&!s&&(n=!1),n=function YX(t,n,e,i){const o=function Ny(t){const n=Fe.lFrame.currentDirectiveIndex;return-1===n?null:t[n]}(t);let r=i?n.residualClasses:n.residualStyles;if(null===o)0===(i?n.classBindings:n.styleBindings)&&(e=Oh(e=O0(null,t,n,e,i),n.attrs,i),r=null);else{const s=n.directiveStylingLast;if(-1===s||t[s]!==o)if(e=O0(o,t,n,e,i),null===r){let l=function XX(t,n,e){const i=e?n.classBindings:n.styleBindings;if(0!==vd(i))return t[Ml(i)]}(t,n,i);void 0!==l&&Array.isArray(l)&&(l=O0(null,t,n,l[1],i),l=Oh(l,n.attrs,i),function ZX(t,n,e,i){t[Ml(e?n.classBindings:n.styleBindings)]=i}(t,n,i,l))}else r=function QX(t,n,e){let i;const o=n.directiveEnd;for(let r=1+n.directiveStylingLast;r0)&&(c=!0)):u=e,o)if(0!==l){const g=Ml(t[a+1]);t[i+1]=Lg(g,a),0!==g&&(t[g+1]=I0(t[g+1],i)),t[a+1]=function FX(t,n){return 131071&t|n<<17}(t[a+1],i)}else t[i+1]=Lg(a,0),0!==a&&(t[a+1]=I0(t[a+1],i)),a=i;else t[i+1]=Lg(l,0),0===a?a=i:t[l+1]=I0(t[l+1],i),l=i;c&&(t[i+1]=E0(t[i+1])),zO(t,u,i,!0),zO(t,u,i,!1),function VX(t,n,e,i,o){const r=o?t.residualClasses:t.residualStyles;null!=r&&"string"==typeof n&&Eu(r,n)>=0&&(e[i+1]=P0(e[i+1]))}(n,u,t,i,r),s=Lg(a,l),r?n.classBindings=s:n.styleBindings=s}(o,r,n,e,s,i)}}function O0(t,n,e,i,o){let r=null;const s=e.directiveEnd;let a=e.directiveStylingLast;for(-1===a?a=e.directiveStart:a++;a0;){const l=t[o],c=Array.isArray(l),u=c?l[1]:l,p=null===u;let g=e[o+1];g===Ot&&(g=p?zt:void 0);let _=p?my(g,i):u===i?g:void 0;if(c&&!Bg(_)&&(_=my(l,i)),Bg(_)&&(a=_,s))return a;const w=t[o+1];o=s?Ml(w):vd(w)}if(null!==n){let l=r?n.residualClasses:n.residualStyles;null!=l&&(a=my(l,i))}return a}function Bg(t){return void 0!==t}function iA(t,n){return!!(t.flags&(n?8:16))}function m(t,n=""){const e=ne(),i=Ue(),o=t+27,r=i.firstCreatePass?gl(i,o,1,n,null):i.data[o],s=oA(i,e,r,n);e[o]=s,Xp()&&d1(i,e,s,r),ds(r,!1)}let oA=(t,n,e,i)=>(Ru(!0),function jC(t,n){return t.createText(n)}(n[11],i));function lA(t,n,e,i,o,r,s,a=""){const c=function mg(t,n,e,i,o){const r=vl(t,n,e,i);return tn(t,n+2,o)||r}(t,us(),e,o,s);return hs(3),c?n+He(e)+i+He(o)+r+He(s)+a:Ot}function uA(t,n,e,i,o,r,s,a,l,c,u,p,g,_=""){const w=us();let x=function Fo(t,n,e,i,o,r){const s=vl(t,n,e,i);return vl(t,n+2,o,r)||s}(t,w,e,o,s,l);return x=vl(t,w+4,u,g)||x,hs(6),x?n+He(e)+i+He(o)+r+He(s)+a+He(l)+c+He(u)+p+He(g)+_:Ot}function O(t){return I("",t),O}function I(t,n,e){const i=ne(),o=function sA(t,n,e,i=""){return tn(t,lo(),e)?n+He(e)+i:Ot}(i,t,n,e);return o!==Ot&&bs(i,bi(),o),I}function Hn(t,n,e,i,o){const r=ne(),s=function aA(t,n,e,i,o,r=""){const a=vl(t,us(),e,o);return hs(2),a?n+He(e)+i+He(o)+r:Ot}(r,t,n,e,i,o);return s!==Ot&&bs(r,bi(),s),Hn}function A0(t,n,e,i,o,r,s){const a=ne(),l=lA(a,t,n,e,i,o,r,s);return l!==Ot&&bs(a,bi(),l),A0}function R0(t,n,e,i,o,r,s,a,l,c,u,p,g){const _=ne(),w=uA(_,t,n,e,i,o,r,s,a,l,c,u,p,g);return w!==Ot&&bs(_,bi(),w),R0}function bs(t,n,e){const i=Bc(n,t);!function o2(t,n,e){t.setValue(n,e)}(t[11],i,e)}function ki(t,n,e){LP(n)&&(n=n());const i=ne();return tn(i,lo(),n)&&(Ue(),f1(er(),i,t,n,i[11],e)),ki}function Bi(t,n){const e=LP(t);return e&&t.set(n),e}function Di(t,n){const e=ne(),i=Ue(),o=Le();return k0(i,e,e[11],o,t,n),Di}function Wt(t){return tn(ne(),lo(),t)?He(t):Ot}function CA(t,n,e){const i=Ue();i.firstCreatePass&&wA(n,i.data,i.blueprint,Jo(t),e)}function wA(t,n,e,i,o){if(t=We(t),Array.isArray(t))for(let r=0;r>20;if(os(t)||!t.multi){const _=new Uu(c,o,P,null),w=F0(l,n,o?u:u+g,p);-1===w?(sC(gm(a,s),r,l),N0(r,t,n.length),n.push(l),a.directiveStart++,a.directiveEnd++,o&&(a.providerIndexes+=1048576),e.push(_),s.push(_)):(e[w]=_,s[w]=_)}else{const _=F0(l,n,u+g,p),w=F0(l,n,u,u+g),T=w>=0&&e[w];if(o&&!T||!o&&!(_>=0&&e[_])){sC(gm(a,s),r,l);const E=function vZ(t,n,e,i,o){const s=new Uu(t,e,P,null);return s.multi=[],s.index=n,s.componentProviders=0,xA(s,o,i&&!e),s}(o?bZ:_Z,e.length,o,i,c);!o&&T&&(e[w].providerFactory=E),N0(r,t,n.length,0),n.push(l),a.directiveStart++,a.directiveEnd++,o&&(a.providerIndexes+=1048576),e.push(E),s.push(E)}else N0(r,t,_>-1?_:w,xA(e[o?w:_],c,!o&&i));!o&&i&&T&&e[w].componentProviders++}}}function N0(t,n,e,i){const o=os(n),r=function oT(t){return!!t.useClass}(n);if(o||r){const l=(r?We(n.useClass):n).prototype.ngOnDestroy;if(l){const c=t.destroyHooks||(t.destroyHooks=[]);if(!o&&n.multi){const u=c.indexOf(e);-1===u?c.push(e,[i,l]):c[u+1].push(i,l)}else c.push(e,l)}}}function xA(t,n,e){return e&&t.componentProviders++,t.multi.push(n)-1}function F0(t,n,e,i){for(let o=e;o{e.providersResolver=(i,o)=>CA(i,o?o(t):t,!1),n&&(e.viewProvidersResolver=(i,o)=>CA(i,o?o(n):n,!0))}}function B0(t,n,e){const i=t.\u0275cmp;i.directiveDefs=_g(n,hP),i.pipeDefs=_g(e,Zo)}function Mt(t,n){const e=Ni()+t,i=ne();return i[e]===Ot?ir(i,e,n()):function dd(t,n){return t[n]}(i,e)}function oe(t,n,e){return kA(ne(),Ni(),t,n,e)}function ft(t,n,e,i){return DA(ne(),Ni(),t,n,e,i)}function Ah(t,n){const e=t[n];return e===Ot?void 0:e}function kA(t,n,e,i,o,r){const s=n+e;return tn(t,s,o)?ir(t,s+1,r?i.call(r,o):i(o)):Ah(t,s+1)}function DA(t,n,e,i,o,r,s){const a=n+e;return vl(t,a,o,r)?ir(t,a+2,s?i.call(s,o,r):i(o,r)):Ah(t,a+2)}function b(t,n){const e=Ue();let i;const o=t+27;e.firstCreatePass?(i=function EZ(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=qa(i.type)),a=ao(P);try{const l=mm(!1),c=r();return mm(l),function Ty(t,n,e,i){e>=t.data.length&&(t.data[e]=null,t.blueprint[e]=null),n[e]=i}(e,ne(),o,c),c}finally{ao(a)}}function y(t,n,e){const i=t+27,o=ne(),r=Ja(o,i);return Rh(o,i)?kA(o,Ni(),n,r.transform,e,r):r.transform(e)}function Ee(t,n,e,i){const o=t+27,r=ne(),s=Ja(r,o);return Rh(r,o)?DA(r,Ni(),n,s.transform,e,i,s):s.transform(e,i)}function Rh(t,n){return t[1].data[n].pure}function El(t,n){return ig(t,n)}class sQ{ngModuleFactory;componentFactories;constructor(n,e){this.ngModuleFactory=n,this.componentFactories=e}}let aQ=(()=>{class t{compileModuleSync(e){return new uP(e)}compileModuleAsync(e){return Promise.resolve(this.compileModuleSync(e))}compileModuleAndAllComponentsSync(e){const i=this.compileModuleSync(e),r=Fr(Mr(e).declarations).reduce((s,a)=>{const l=wt(a);return l&&s.push(new bh(l)),s},[]);return new sQ(i,r)}compileModuleAndAllComponentsAsync(e){return Promise.resolve(this.compileModuleAndAllComponentsSync(e))}clearCache(){}clearCacheFor(e){}getModuleId(e){}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),cQ=(()=>{class t{applicationErrorHandler=D(Pr);appRef=D(or);taskService=D(Ks);ngZone=D(ge);zonelessEnabled=D(em);tracing=D(ia,{optional:!0});zoneIsDefined=typeof Zone<"u"&&!!Zone.root.run;schedulerTickApplyArgs=[{data:{__scheduler_tick__:!0}}];subscriptions=new mt;angularZoneId=this.zoneIsDefined?this.ngZone._inner?.get(Qp):null;scheduleInRootZone=!this.zonelessEnabled&&this.zoneIsDefined&&(D(WT,{optional:!0})??!1);cancelScheduledCallback=null;useMicrotaskScheduler=!1;runningTick=!1;pendingRenderTaskId=null;constructor(){this.subscriptions.add(this.appRef.afterTick.subscribe(()=>{const e=this.taskService.add();this.runningTick||(this.cleanup(),this.zonelessEnabled&&!this.appRef.includeAllTestViews)?(this.switchToMicrotaskScheduler(),this.taskService.remove(e)):this.taskService.remove(e)})),this.subscriptions.add(this.ngZone.onUnstable.subscribe(()=>{this.runningTick||this.cleanup()}))}switchToMicrotaskScheduler(){this.ngZone.runOutsideAngular(()=>{const e=this.taskService.add();this.useMicrotaskScheduler=!0,queueMicrotask(()=>{this.useMicrotaskScheduler=!1,this.taskService.remove(e)})})}notify(e){if(!this.zonelessEnabled&&5===e)return;switch(e){case 0:case 6:case 13:this.appRef.dirtyFlags|=2;break;case 3:case 2:case 4:case 5:case 1:this.appRef.dirtyFlags|=4;break;case 12:this.appRef.dirtyFlags|=16;break;case 11:break;default:this.appRef.dirtyFlags|=8}if(this.appRef.tracingSnapshot=this.tracing?.snapshot(this.appRef.tracingSnapshot)??null,!this.shouldScheduleTick())return;const i=this.useMicrotaskScheduler?ZU:jT;this.pendingRenderTaskId=this.taskService.add(),this.cancelScheduledCallback=this.scheduleInRootZone?Zone.root.run(()=>i(()=>this.tick())):this.ngZone.runOutsideAngular(()=>i(()=>this.tick()))}shouldScheduleTick(){return!(this.appRef.destroyed||null!==this.pendingRenderTaskId||this.runningTick||this.appRef._runningTick||!this.zonelessEnabled&&this.zoneIsDefined&&Zone.current.get(Qp+this.angularZoneId))}tick(){if(this.runningTick||this.appRef.destroyed)return;if(0===this.appRef.dirtyFlags)return void this.cleanup();!this.zonelessEnabled&&7&this.appRef.dirtyFlags&&(this.appRef.dirtyFlags|=1);const e=this.taskService.add();try{this.ngZone.run(()=>{this.runningTick=!0,this.appRef._tick()},void 0,this.schedulerTickApplyArgs)}catch(i){this.applicationErrorHandler(i)}finally{this.taskService.remove(e),this.cleanup()}}ngOnDestroy(){this.subscriptions.unsubscribe(),this.cleanup()}cleanup(){if(this.runningTick=!1,this.cancelScheduledCallback?.(),this.cancelScheduledCallback=null,null!==this.pendingRenderTaskId){const e=this.pendingRenderTaskId;this.pendingRenderTaskId=null,this.taskService.remove(e)}}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const da=new Z("",{factory:()=>D(da,{optional:!0,skipSelf:!0})||function dQ(){return typeof $localize<"u"&&$localize.locale||Pg}()}),Yg=Symbol("InputSignalNode#UNSET"),PR={...qv,transformFn:void 0,applyValueToInputSignal(t,n){wp(t,n)}};function OR(t,n){const e=Object.create(PR);function i(){if(yu(e),e.value===Yg)throw new X(-950,null);return e.value}return e.value=t,e.transformFn=n?.transform,i[kn]=e,i}class Xg{attributeName;constructor(n){this.attributeName=n}__NG_ELEMENT_ID__=()=>Gu(this.attributeName);toString(){return`HostAttributeToken ${this.attributeName}`}}function AR(t,n){return OR(t,n)}const ree=(AR.required=function oee(t){return OR(Yg,t)},AR);function RR(t,n){return oP()}const Zg=(RR.required=function see(t,n){return rP()},RR);function NR(t,n){return oP()}const lee=(NR.required=function aee(t,n){return rP()},NR);let dee=(()=>{class t{zone=D(ge);changeDetectionScheduler=D(nl);applicationRef=D(or);applicationErrorHandler=D(Pr);_onMicrotaskEmptySubscription;initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.changeDetectionScheduler.runningTick||this.zone.run(()=>{try{this.applicationRef.dirtyFlags|=1,this.applicationRef._tick()}catch(e){this.applicationErrorHandler(e)}})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const uee=new Z("",{factory:()=>!1});function VR(t){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:t?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:t?.runCoalescing??!1}}let pee=(()=>{class t{subscription=new mt;initialized=!1;zone=D(ge);pendingTasks=D(Ks);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(()=>{ge.assertNotInAngularZone(),queueMicrotask(()=>{null!==e&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(e),e=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{ge.assertInAngularZone(),e??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Qg=new Z(""),bee=new Z("");function Vh(t){return!t.moduleRef}let UR;function zR(){UR=vee}function vee(t,n){const e=t.injector.get(or);if(t._bootstrapComponents.length>0)t._bootstrapComponents.forEach(i=>e.bootstrap(i));else{if(!t.instance.ngDoBootstrap)throw new X(-403,!1);t.instance.ngDoBootstrap(e)}n.push(t)}let $R=(()=>{class t{_injector;_modules=[];_destroyListeners=[];_destroyed=!1;constructor(e){this._injector=e}bootstrapModuleFactory(e,i){const o=[[{provide:nl,useExisting:cQ},{provide:ge,useClass:nz},{provide:em,useValue:!0}],...i?.applicationProviders??[],rz],r=function vq(t,n,e){return new Z1(t,n,e,!1)}(e.moduleType,this.injector,o);return zR(),function jR(t){const n=Vh(t)?t.r3Injector:t.moduleRef.injector,e=n.get(ge);return e.run(()=>{Vh(t)?t.r3Injector.resolveInjectorInitializers():t.moduleRef.resolveInjectorInitializers();const i=n.get(Pr);let o;if(e.runOutsideAngular(()=>{o=e.onError.subscribe({next:i})}),Vh(t)){const r=()=>n.destroy(),s=t.platformInjector.get(Qg);s.add(r),n.onDestroy(()=>{o.unsubscribe(),s.delete(r)})}else{const r=()=>t.moduleRef.destroy(),s=t.platformInjector.get(Qg);s.add(r),t.moduleRef.onDestroy(()=>{Dg(t.allPlatformModules,t.moduleRef),o.unsubscribe(),s.delete(r)})}return function yee(t,n,e){try{const i=e();return Sh(i)?i.catch(o=>{throw n.runOutsideAngular(()=>t(o)),o}):i}catch(i){throw n.runOutsideAngular(()=>t(i)),i}}(i,e,()=>{const r=n.get(Ks),s=r.add(),a=n.get(iO);return a.runInitializers(),a.donePromise.then(()=>{if(function ZY(t){"string"==typeof t&&(xO=t.toLowerCase().replace(/_/g,"-"))}(n.get(da,Pg)||Pg),!n.get(bee,!0))return Vh(t)?n.get(or):(t.allPlatformModules.push(t.moduleRef),t.moduleRef);if(Vh(t)){const u=n.get(or);return void 0!==t.rootComponent&&u.bootstrap(t.rootComponent),u}return UR?.(t.moduleRef,t.allPlatformModules),t.moduleRef}).finally(()=>{r.remove(s)})})})}({moduleRef:r,allPlatformModules:this._modules,platformInjector:this.injector})}bootstrapModule(e,i=[]){const o=rO({},i);return zR(),function cee(t,n,e){const i=new uP(e);return Promise.resolve(i)}(0,0,e).then(r=>this.bootstrapModuleFactory(r,o))}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new X(404,!1);this._modules.slice().forEach(i=>i.destroy()),this._destroyListeners.forEach(i=>i());const e=this._injector.get(Qg,null);e&&(e.forEach(i=>i()),e.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}static \u0275fac=function(i){return new(i||t)(le(Be))};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})(),Md=null;function WR(t,n,e=[]){const i=`Platform: ${n}`,o=new Z(i);return(r=[])=>{let s=Jg();if(!s){const a=[...e,...r,{provide:o,useValue:!0}];s=t?.(a)??function Cee(t){if(Jg())throw new X(400,!1);(function $K(){!function Tj(t){PD=t}(()=>{throw new X(600,"")})})(),Md=t;const n=t.get($R);return function qR(t){const n=t.get(fE,null);Yi(t,()=>{n?.forEach(e=>e())})}(t),n}(function GR(t=[],n){return Be.create({name:n,providers:[{provide:yy,useValue:"platform"},{provide:Qg,useValue:new Set([()=>Md=null])},...t]})}(a,i))}return function wee(){const n=Jg();if(!n)throw new X(-401,!1);return n}()}}function Jg(){return Md?.get($R)??null}let Pn=(()=>class t{static __NG_ELEMENT_ID__=Lee})();function Lee(t){return function Bee(t,n,e){if(Ir(t)&&!e){const i=Zi(t.index,n);return new lh(i,i)}return 175&t.type?new lh(n[15],n):null}(Le(),ne(),!(16&~t))}class tN{supports(n){return pg(n)}create(n){return new Hee(n)}}const Vee=(t,n)=>n;class Hee{length=0;collection;_linkedRecords=null;_unlinkedRecords=null;_previousItHead=null;_itHead=null;_itTail=null;_additionsHead=null;_additionsTail=null;_movesHead=null;_movesTail=null;_removalsHead=null;_removalsTail=null;_identityChangesHead=null;_identityChangesTail=null;_trackByFn;constructor(n){this._trackByFn=n||Vee}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 s=!i||e&&e.currentIndex{s=this._trackByFn(o,a),null!==e&&Object.is(e.trackById,s)?(i&&(e=this._verifyReinsertion(e,a,s,o)),Object.is(e.item,a)||this._addIdentityChange(e,a)):(e=this._mismatch(e,a,s,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 jee(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 nN),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 nN),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 jee{item;trackById;currentIndex=null;previousIndex=null;_nextPrevious=null;_prev=null;_next=null;_prevDup=null;_nextDup=null;_prevRemoved=null;_nextRemoved=null;_nextAdded=null;_nextMoved=null;_nextIdentityChange=null;constructor(n,e){this.item=n,this.trackById=e}}class Uee{_head=null;_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 nN{map=new Map;put(n){const e=n.trackById;let i=this.map.get(e);i||(i=new Uee,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 iN(t,n,e){const i=t.previousIndex;if(null===i)return i;let o=0;return e&&i{class t{factories;static \u0275prov=te({token:t,providedIn:"root",factory:rN});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:()=>{const i=D(t,{optional:!0,skipSelf:!0});return t.create(e,i||rN())}}}find(e){const i=this.factories.find(o=>o.supports(e));if(null!=i)return i;throw new X(901,!1)}}return t})();const qee=WR(null,"core",[]);let Kee=(()=>{class t{constructor(e){}static \u0275fac=function(i){return new(i||t)(le(or))};static \u0275mod=ot({type:t});static \u0275inj=et({})}return t})();function Ie(t){return"boolean"==typeof t?t:null!=t&&"false"!==t}function Br(t,n=NaN){return isNaN(parseFloat(t))||isNaN(Number(t))?n:Number(t)}const tw=Symbol("NOT_SET"),mN=new Set,ate={...qv,kind:"afterRenderEffectPhase",consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!0,value:tw,cleanup:null,consumerMarkedDirty(){if(this.sequence.impl.executing){if(null===this.sequence.lastPhase||this.sequence.lastPhase(yu(c),c.value),c.signal[kn]=c,c.registerCleanupFn=u=>(c.cleanup??=new Set).add(u),this.nodes[a]=c,this.hooks[a]=u=>c.phaseFn(u)}}afterRun(){super.afterRun(),this.lastPhase=null}destroy(){if(null!==this.onDestroyFns)for(const n of this.onDestroyFns)n();super.destroy();for(const n of this.nodes)if(n)try{for(const e of n.cleanup??mN)e()}finally{xu(n)}}}function gN(t,n){const e=wt(t),i=n.elementInjector||Up();return new bh(e).create(i,n.projectableNodes,n.hostElement,n.environmentInjector,n.directives,n.bindings)}function _N(t,n,e){const i=Object.create(mte);i.source=t,i.computation=n,null!=e&&(i.equal=e);const r=()=>{if(Cu(i),yu(i),i.value===ns)throw i.error;return i.value};return r[kn]=i,r}const mte={...Sc,value:Va,dirty:!0,error:null,equal:Gv,kind:"linkedSignal",producerMustRecompute:t=>t.value===Va||t.value===Tc,producerRecomputeValue(t){if(t.value===Tc)throw new Error("");const n=t.value;t.value=Tc;const e=kc(t);let i;try{const o=t.source();i=t.computation(o,n===Va||n===ns?void 0:{source:t.sourceValue,value:n}),t.sourceValue=o}catch(o){i=ns,t.error=o}finally{wu(t,e)}n!==Va&&i!==ns&&t.equal(n,i)?t.value=n:(t.value=i,t.version++)}};function nt(t){return function gte(t){const n=De(null);try{return t()}finally{De(n)}}(t)}function Ti(t,n){return ID(t,n?.equal)}const xte=t=>t;function yN(t,n){const e=t[kn],i=t;return i.set=o=>function fte(t,n){Cu(t),wp(t,n),vp(t)}(e,o),i.update=o=>function pte(t,n){if(Cu(t),t.value===ns)throw t.error;AD(t,n),vp(t)}(e,o),i.asReadonly=zy.bind(t),i}function rw(t,n){return t?n?t.endsWith("/")?n.startsWith("/")?t+n.slice(1):t+n:n.startsWith("/")?t+n:`${t}/${n}`:t:n}function xN(t){const n=t.search(/#|\?|$/);return"/"===t[n-1]?t.slice(0,n-1)+t.slice(n):t}function vs(t){return t&&"?"!==t[0]?`?${t}`:t}Error,Error;let Al=(()=>{class t{historyGo(e){throw new Error("")}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:()=>D(kN),providedIn:"root"})}return t})();const SN=new Z("");let kN=(()=>{class t extends Al{_platformLocation;_baseHref;_removeListenerFns=[];constructor(e,i){super(),this._platformLocation=e,this._baseHref=i??this._platformLocation.getBaseHrefFromDOM()??D(Qe).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 rw(this._baseHref,e)}path(e=!1){const i=this._platformLocation.pathname+vs(this._platformLocation.search),o=this._platformLocation.hash;return o&&e?`${i}${o}`:i}pushState(e,i,o,r){const s=this.prepareExternalUrl(o+vs(r));this._platformLocation.pushState(e,i,s)}replaceState(e,i,o,r){const s=this.prepareExternalUrl(o+vs(r));this._platformLocation.replaceState(e,i,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(e=0){this._platformLocation.historyGo?.(e)}static \u0275fac=function(i){return new(i||t)(le(im),le(SN,8))};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Ed=(()=>{class t{_subject=new pe;_basePath;_locationStrategy;_urlChangeListeners=[];_urlChangeSubscription=null;constructor(e){this._locationStrategy=e;const i=this._locationStrategy.getBaseHref();this._basePath=function Rte(t){if(new RegExp("^(https?:)?//").test(t)){const[,e]=t.split(/\/\/[^\/]+/);return e}return t}(xN(DN(i))),this._locationStrategy.onPopState(o=>{this._subject.next({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+vs(i))}normalize(e){return t.stripTrailingSlash(function Ate(t,n){if(!t||!n.startsWith(t))return n;const e=n.substring(t.length);return""===e||["/",";","?","#"].includes(e[0])?e:n}(this._basePath,DN(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+vs(i)),o)}replaceState(e,i="",o=null){this._locationStrategy.replaceState(o,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+vs(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??void 0,complete:o??void 0})}static normalizeQueryParams=vs;static joinWithSlash=rw;static stripTrailingSlash=xN;static \u0275fac=function(i){return new(i||t)(le(Al))};static \u0275prov=te({token:t,factory:()=>function Ote(){return new Ed(le(Al))}(),providedIn:"root"})}return t})();function DN(t){return t.replace(/\/index.html$/,"")}let Fte=(()=>{class t extends Al{_platformLocation;_baseHref="";_removeListenerFns=[];constructor(e,i){super(),this._platformLocation=e,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=rw(this._baseHref,e);return i.length>0?"#"+i:i}pushState(e,i,o,r){const s=this.prepareExternalUrl(o+vs(r))||this._platformLocation.pathname;this._platformLocation.pushState(e,i,s)}replaceState(e,i,o,r){const s=this.prepareExternalUrl(o+vs(r))||this._platformLocation.pathname;this._platformLocation.replaceState(e,i,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(e=0){this._platformLocation.historyGo?.(e)}static \u0275fac=function(i){return new(i||t)(le(im),le(SN,8))};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();var eo=function(t){return t[t.Format=0]="Format",t[t.Standalone=1]="Standalone",t}(eo||{}),Gt=function(t){return t[t.Narrow=0]="Narrow",t[t.Abbreviated=1]="Abbreviated",t[t.Wide=2]="Wide",t[t.Short=3]="Short",t}(Gt||{}),Do=function(t){return t[t.Short=0]="Short",t[t.Medium=1]="Medium",t[t.Long=2]="Long",t[t.Full=3]="Full",t}(Do||{});function s_(t,n){return Vo(Qi(t)[nn.DateFormat],n)}function a_(t,n){return Vo(Qi(t)[nn.TimeFormat],n)}function l_(t,n){return Vo(Qi(t)[nn.DateTimeFormat],n)}function Bo(t,n){const e=Qi(t),i=e[nn.NumberSymbols][n];if(typeof i>"u"){if(12===n)return e[nn.NumberSymbols][0];if(13===n)return e[nn.NumberSymbols][1]}return i}function MN(t){if(!t[nn.ExtraData])throw new X(2303,!1)}function Vo(t,n){for(let e=n;e>-1;e--)if(typeof t[e]<"u")return t[e];throw new X(2304,!1)}function aw(t){const[n,e]=t.split(":");return{hours:+n,minutes:+e}}const Xte=/^(\d{4,})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,c_={},Zte=/((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/;function EN(t,n,e,i){let o=function sne(t){if(ON(t))return t;if("number"==typeof t&&!isNaN(t))return new Date(t);if("string"==typeof t){if(t=t.trim(),/^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(t)){const[o,r=1,s=1]=t.split("-").map(a=>+a);return d_(o,r-1,s)}const e=parseFloat(t);if(!isNaN(t-e))return new Date(e);let i;if(i=t.match(Xte))return function ane(t){const n=new Date(0);let e=0,i=0;const o=t[8]?n.setUTCFullYear:n.setFullYear,r=t[8]?n.setUTCHours:n.setHours;t[9]&&(e=Number(t[9]+t[10]),i=Number(t[9]+t[11])),o.call(n,Number(t[1]),Number(t[2])-1,Number(t[3]));const s=Number(t[4]||0)-e,a=Number(t[5]||0)-i,l=Number(t[6]||0),c=Math.floor(1e3*parseFloat("0."+(t[7]||0)));return r.call(n,s,a,l,c),n}(i)}const n=new Date(t);if(!ON(n))throw new X(2311,!1);return n}(t);n=ys(e,n)||n;let a,s=[];for(;n;){if(a=Zte.exec(n),!a){s.push(n);break}{s=s.concat(a.slice(1));const u=s.pop();if(!u)break;n=u}}let l=o.getTimezoneOffset();i&&(l=PN(i,l),o=function rne(t,n){const o=t.getTimezoneOffset();return function one(t,n){return(t=new Date(t.getTime())).setMinutes(t.getMinutes()+n),t}(t,-1*(PN(n,o)-o))}(o,i));let c="";return s.forEach(u=>{const p=function ine(t){if(cw[t])return cw[t];let n;switch(t){case"G":case"GG":case"GGG":n=Yt(3,Gt.Abbreviated);break;case"GGGG":n=Yt(3,Gt.Wide);break;case"GGGGG":n=Yt(3,Gt.Narrow);break;case"y":n=Xn(0,1,0,!1,!0);break;case"yy":n=Xn(0,2,0,!0,!0);break;case"yyy":n=Xn(0,3,0,!1,!0);break;case"yyyy":n=Xn(0,4,0,!1,!0);break;case"Y":n=p_(1);break;case"YY":n=p_(2,!0);break;case"YYY":n=p_(3);break;case"YYYY":n=p_(4);break;case"M":case"L":n=Xn(1,1,1);break;case"MM":case"LL":n=Xn(1,2,1);break;case"MMM":n=Yt(2,Gt.Abbreviated);break;case"MMMM":n=Yt(2,Gt.Wide);break;case"MMMMM":n=Yt(2,Gt.Narrow);break;case"LLL":n=Yt(2,Gt.Abbreviated,eo.Standalone);break;case"LLLL":n=Yt(2,Gt.Wide,eo.Standalone);break;case"LLLLL":n=Yt(2,Gt.Narrow,eo.Standalone);break;case"w":n=lw(1);break;case"ww":n=lw(2);break;case"W":n=lw(1,!0);break;case"d":n=Xn(2,1);break;case"dd":n=Xn(2,2);break;case"c":case"cc":n=Xn(7,1);break;case"ccc":n=Yt(1,Gt.Abbreviated,eo.Standalone);break;case"cccc":n=Yt(1,Gt.Wide,eo.Standalone);break;case"ccccc":n=Yt(1,Gt.Narrow,eo.Standalone);break;case"cccccc":n=Yt(1,Gt.Short,eo.Standalone);break;case"E":case"EE":case"EEE":n=Yt(1,Gt.Abbreviated);break;case"EEEE":n=Yt(1,Gt.Wide);break;case"EEEEE":n=Yt(1,Gt.Narrow);break;case"EEEEEE":n=Yt(1,Gt.Short);break;case"a":case"aa":case"aaa":n=Yt(0,Gt.Abbreviated);break;case"aaaa":n=Yt(0,Gt.Wide);break;case"aaaaa":n=Yt(0,Gt.Narrow);break;case"b":case"bb":case"bbb":n=Yt(0,Gt.Abbreviated,eo.Standalone,!0);break;case"bbbb":n=Yt(0,Gt.Wide,eo.Standalone,!0);break;case"bbbbb":n=Yt(0,Gt.Narrow,eo.Standalone,!0);break;case"B":case"BB":case"BBB":n=Yt(0,Gt.Abbreviated,eo.Format,!0);break;case"BBBB":n=Yt(0,Gt.Wide,eo.Format,!0);break;case"BBBBB":n=Yt(0,Gt.Narrow,eo.Format,!0);break;case"h":n=Xn(3,1,-12);break;case"hh":n=Xn(3,2,-12);break;case"H":n=Xn(3,1);break;case"HH":n=Xn(3,2);break;case"m":n=Xn(4,1);break;case"mm":n=Xn(4,2);break;case"s":n=Xn(5,1);break;case"ss":n=Xn(5,2);break;case"S":n=Xn(6,1);break;case"SS":n=Xn(6,2);break;case"SSS":n=Xn(6,3);break;case"Z":case"ZZ":case"ZZZ":n=h_(0);break;case"ZZZZZ":n=h_(3);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":n=h_(1);break;case"OOOO":case"ZZZZ":case"zzzz":n=h_(2);break;default:return null}return cw[t]=n,n}(u);c+=p?p(o,e,l):"''"===u?"'":u.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),c}function d_(t,n,e){const i=new Date(0);return i.setFullYear(t,n,e),i.setHours(0,0,0),i}function ys(t,n){const e=function Bte(t){return Qi(t)[nn.LocaleId]}(t);if(c_[e]??={},c_[e][n])return c_[e][n];let i="";switch(n){case"shortDate":i=s_(t,Do.Short);break;case"mediumDate":i=s_(t,Do.Medium);break;case"longDate":i=s_(t,Do.Long);break;case"fullDate":i=s_(t,Do.Full);break;case"shortTime":i=a_(t,Do.Short);break;case"mediumTime":i=a_(t,Do.Medium);break;case"longTime":i=a_(t,Do.Long);break;case"fullTime":i=a_(t,Do.Full);break;case"short":const o=ys(t,"shortTime"),r=ys(t,"shortDate");i=u_(l_(t,Do.Short),[o,r]);break;case"medium":const s=ys(t,"mediumTime"),a=ys(t,"mediumDate");i=u_(l_(t,Do.Medium),[s,a]);break;case"long":const l=ys(t,"longTime"),c=ys(t,"longDate");i=u_(l_(t,Do.Long),[l,c]);break;case"full":const u=ys(t,"fullTime"),p=ys(t,"fullDate");i=u_(l_(t,Do.Full),[u,p])}return i&&(c_[e][n]=i),i}function u_(t,n){return n&&(t=t.replace(/\{([^}]+)}/g,function(e,i){return null!=n&&i in n?n[i]:e})),t}function ar(t,n,e="-",i,o){let r="";(t<0||o&&t<=0)&&(o?t=1-t:(t=-t,r=e));let s=String(t);for(;s.length0||a>-e)&&(a+=e),3===t)0===a&&-12===e&&(a=12);else if(6===t)return function Qte(t,n){return ar(t,3).substring(0,n)}(a,n);const l=Bo(s,5);return ar(a,n,l,i,o)}}function Yt(t,n,e=eo.Format,i=!1){return function(o,r){return function ene(t,n,e,i,o,r){switch(e){case 2:return function jte(t,n,e){const i=Qi(t),r=Vo([i[nn.MonthsFormat],i[nn.MonthsStandalone]],n);return Vo(r,e)}(n,o,i)[t.getMonth()];case 1:return function Hte(t,n,e){const i=Qi(t),r=Vo([i[nn.DaysFormat],i[nn.DaysStandalone]],n);return Vo(r,e)}(n,o,i)[t.getDay()];case 0:const s=t.getHours(),a=t.getMinutes();if(r){const c=function Wte(t){const n=Qi(t);return MN(n),(n[nn.ExtraData][2]||[]).map(i=>"string"==typeof i?aw(i):[aw(i[0]),aw(i[1])])}(n),u=function Gte(t,n,e){const i=Qi(t);MN(i);const r=Vo([i[nn.ExtraData][0],i[nn.ExtraData][1]],n)||[];return Vo(r,e)||[]}(n,o,i),p=c.findIndex(g=>{if(Array.isArray(g)){const[_,w]=g,x=s>=_.hours&&a>=_.minutes,T=s0?Math.floor(o/60):Math.ceil(o/60);switch(t){case 0:return(o>=0?"+":"")+ar(s,2,r)+ar(Math.abs(o%60),2,r);case 1:return"GMT"+(o>=0?"+":"")+ar(s,1,r);case 2:return"GMT"+(o>=0?"+":"")+ar(s,2,r)+":"+ar(Math.abs(o%60),2,r);case 3:return 0===i?"Z":(o>=0?"+":"")+ar(s,2,r)+":"+ar(Math.abs(o%60),2,r);default:throw new X(2310,!1)}}}function IN(t){const n=t.getDay(),e=0===n?-3:4-n;return d_(t.getFullYear(),t.getMonth(),t.getDate()+e)}function lw(t,n=!1){return function(e,i){let o;if(n){const r=new Date(e.getFullYear(),e.getMonth(),1).getDay()-1,s=e.getDate();o=1+Math.floor((s+r)/7)}else{const r=IN(e),s=function nne(t){const n=d_(t,0,1).getDay();return d_(t,0,1+(n<=4?4:11)-n)}(r.getFullYear()),a=r.getTime()-s.getTime();o=1+Math.round(a/6048e5)}return ar(o,t,Bo(i,5))}}function p_(t,n=!1){return function(e,i){return ar(IN(e).getFullYear(),t,Bo(i,5),n)}}const cw={};function PN(t,n){t=t.replace(/:/g,"");const e=Date.parse("Jan 01, 1970 00:00:00 "+t)/6e4;return isNaN(e)?n:e}function ON(t){return t instanceof Date&&!isNaN(t.valueOf())}const mw=/\s+/,FN=[];let qt=(()=>{class t{_ngEl;_renderer;initialClasses=FN;rawClass;stateMap=new Map;constructor(e,i){this._ngEl=e,this._renderer=i}set klass(e){this.initialClasses=null!=e?e.trim().split(mw):FN}set ngClass(e){this.rawClass="string"==typeof e?e.trim().split(mw):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(mw).forEach(o=>{i?this._renderer.addClass(this._ngEl.nativeElement,o):this._renderer.removeClass(this._ngEl.nativeElement,o)})}static \u0275fac=function(i){return new(i||t)(P(Ae),P(Kn))};static \u0275dir=de({type:t,selectors:[["","ngClass",""]],inputs:{klass:[0,"class","klass"],ngClass:"ngClass"}})}return t})();class Cne{$implicit;ngForOf;index;count;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 LN=(()=>{class t{_viewContainer;_template;_differs;set ngForOf(e){this._ngForOf=e,this._ngForOfDirty=!0}set ngForTrackBy(e){this._trackByFn=e}get ngForTrackBy(){return this._trackByFn}_ngForOf=null;_ngForOfDirty=!0;_differ=null;_trackByFn;constructor(e,i,o){this._viewContainer=e,this._template=i,this._differs=o}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,s)=>{if(null==o.previousIndex)i.createEmbeddedView(this._template,new Cne(o.item,this._ngForOf,-1,-1),null===s?void 0:s);else if(null==s)i.remove(null===r?void 0:r);else if(null!==r){const a=i.get(r);i.move(a,s),BN(a,o)}});for(let o=0,r=i.length;o{BN(i.get(o.currentIndex),o)})}static ngTemplateContextGuard(e,i){return!0}static \u0275fac=function(i){return new(i||t)(P(wi),P(Ci),P(t_))};static \u0275dir=de({type:t,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"}})}return t})();function BN(t,n){t.context.$implicit=n.item}let $h=(()=>{class t{_viewContainer;_context=new wne;_thenTemplateRef=null;_elseTemplateRef=null;_thenViewRef=null;_elseViewRef=null;constructor(e,i){this._viewContainer=e,this._thenTemplateRef=i}set ngIf(e){this._context.$implicit=this._context.ngIf=e,this._updateView()}set ngIfThen(e){VN(e),this._thenTemplateRef=e,this._thenViewRef=null,this._updateView()}set ngIfElse(e){VN(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 ngIfUseIfTypeGuard;static ngTemplateGuard_ngIf;static ngTemplateContextGuard(e,i){return!0}static \u0275fac=function(i){return new(i||t)(P(wi),P(Ci))};static \u0275dir=de({type:t,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"}})}return t})();class wne{$implicit=null;ngIf=null}function VN(t,n){if(t&&!t.createEmbeddedView)throw new X(2020,!1)}let Pd=(()=>{class t{_viewContainerRef;_viewRef=null;ngTemplateOutletContext=null;ngTemplateOutlet=null;ngTemplateOutletInjector=null;injector=D(Be);constructor(e){this._viewContainerRef=e}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._getInjector()})}}_getInjector(){return"outlet"===this.ngTemplateOutletInjector?this.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 \u0275fac=function(i){return new(i||t)(P(wi))};static \u0275dir=de({type:t,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},features:[yi]})}return t})();const Lne=new Z(""),Bne=new Z("");let g_=(()=>{class t{locale;defaultTimezone;defaultOptions;constructor(e,i,o){this.locale=e,this.defaultTimezone=i,this.defaultOptions=o}transform(e,i,o,r){if(null==e||""===e||e!=e)return null;try{return EN(e,i??this.defaultOptions?.dateFormat??"mediumDate",r||this.locale,o??this.defaultOptions?.timezone??this.defaultTimezone??void 0)}catch(s){throw function Cs(t,n){return new X(2100,!1)}()}}static \u0275fac=function(i){return new(i||t)(P(da,16),P(Lne,24),P(Bne,24))};static \u0275pipe=Li({name:"date",type:t,pure:!0})}return t})(),Kne=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({})}return t})();class UN{_doc;constructor(n){this._doc=n}manager}let Cw=(()=>{class t extends UN{constructor(e){super(e)}supports(e){return!0}addEventListener(e,i,o,r){return e.addEventListener(i,o,r),()=>this.removeEventListener(e,i,o,r)}removeEventListener(e,i,o,r){return e.removeEventListener(i,o,r)}static \u0275fac=function(i){return new(i||t)(le(Qe))};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();const ww=new Z("");let zN=(()=>{class t{_zone;_plugins;_eventNameToPlugin=new Map;constructor(e,i){this._zone=i,e.forEach(s=>{s.manager=this});const o=e.filter(s=>!(s instanceof Cw));this._plugins=o.slice().reverse();const r=e.find(s=>s instanceof Cw);r&&this._plugins.push(r)}addEventListener(e,i,o,r){return this._findPluginFor(i).addEventListener(e,i,o,r)}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 X(5101,!1);return this._eventNameToPlugin.set(e,i),i}static \u0275fac=function(i){return new(i||t)(le(ww),le(ge))};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();const xw="ng-app-id";function $N(t){for(const n of t)n.remove()}function WN(t,n){const e=n.createElement("style");return e.textContent=t,e}function Sw(t,n){const e=n.createElement("link");return e.setAttribute("rel","stylesheet"),e.setAttribute("href",t),e}let GN=(()=>{class t{doc;appId;nonce;inline=new Map;external=new Map;hosts=new Set;constructor(e,i,o,r={}){this.doc=e,this.appId=i,this.nonce=o,function Yne(t,n,e,i){const o=t.head?.querySelectorAll(`style[${xw}="${n}"],link[${xw}="${n}"]`);if(o)for(const r of o)r.removeAttribute(xw),r instanceof HTMLLinkElement?i.set(r.href.slice(r.href.lastIndexOf("/")+1),{usage:0,elements:[r]}):r.textContent&&e.set(r.textContent,{usage:0,elements:[r]})}(e,i,this.inline,this.external),this.hosts.add(e.head)}addStyles(e,i){for(const o of e)this.addUsage(o,this.inline,WN);i?.forEach(o=>this.addUsage(o,this.external,Sw))}removeStyles(e,i){for(const o of e)this.removeUsage(o,this.inline);i?.forEach(o=>this.removeUsage(o,this.external))}addUsage(e,i,o){const r=i.get(e);r?r.usage++:i.set(e,{usage:1,elements:[...this.hosts].map(s=>this.addElement(s,o(e,this.doc)))})}removeUsage(e,i){const o=i.get(e);o&&(o.usage--,o.usage<=0&&($N(o.elements),i.delete(e)))}ngOnDestroy(){for(const[,{elements:e}]of[...this.inline,...this.external])$N(e);this.hosts.clear()}addHost(e){this.hosts.add(e);for(const[i,{elements:o}]of this.inline)o.push(this.addElement(e,WN(i,this.doc)));for(const[i,{elements:o}]of this.external)o.push(this.addElement(e,Sw(i,this.doc)))}removeHost(e){this.hosts.delete(e)}addElement(e,i){return this.nonce&&i.setAttribute("nonce",this.nonce),e.appendChild(i)}static \u0275fac=function(i){return new(i||t)(le(Qe),le(Qs),le(gC,8),le(mC))};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();const kw={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/Math/MathML"},Dw=/%COMP%/g,tie=new Z("",{factory:()=>!0});function KN(t,n){return n.map(e=>e.replace(Dw,t))}let Tw=(()=>{class t{eventManager;sharedStylesHost;appId;removeStylesOnCompDestroy;doc;ngZone;nonce;tracingService;rendererByCompId=new Map;defaultRenderer;constructor(e,i,o,r,s,a,l=null,c=null){this.eventManager=e,this.sharedStylesHost=i,this.appId=o,this.removeStylesOnCompDestroy=r,this.doc=s,this.ngZone=a,this.nonce=l,this.tracingService=c,this.defaultRenderer=new Mw(e,s,a,this.tracingService)}createRenderer(e,i){if(!e||!i)return this.defaultRenderer;const o=this.getOrCreateRenderer(e,i);return o instanceof ZN?o.applyToHost(e):o instanceof Ew&&o.applyStyles(),o}getOrCreateRenderer(e,i){const o=this.rendererByCompId;let r=o.get(i.id);if(!r){const s=this.doc,a=this.ngZone,l=this.eventManager,c=this.sharedStylesHost,u=this.removeStylesOnCompDestroy,p=this.tracingService;switch(i.encapsulation){case Ro.Emulated:r=new ZN(l,c,i,this.appId,u,s,a,p);break;case Ro.ShadowDom:return new XN(l,e,i,s,a,this.nonce,p,c);case Ro.ExperimentalIsolatedShadowDom:return new XN(l,e,i,s,a,this.nonce,p);default:r=new Ew(l,c,i,u,s,a,p)}o.set(i.id,r)}return r}ngOnDestroy(){this.rendererByCompId.clear()}componentReplaced(e){this.rendererByCompId.delete(e)}static \u0275fac=function(i){return new(i||t)(le(zN),le(GN),le(Qs),le(tie),le(Qe),le(ge),le(gC),le(ia,8))};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();class Mw{eventManager;doc;ngZone;tracingService;data=Object.create(null);throwOnSyntheticProps=!0;constructor(n,e,i,o){this.eventManager=n,this.doc=e,this.ngZone=i,this.tracingService=o}destroy(){}destroyNode=null;createElement(n,e){return e?this.doc.createElementNS(kw[e]||e,n):this.doc.createElement(n)}createComment(n){return this.doc.createComment(n)}createText(n){return this.doc.createTextNode(n)}appendChild(n,e){(YN(n)?n.content:n).appendChild(e)}insertBefore(n,e,i){n&&(YN(n)?n.content:n).insertBefore(e,i)}removeChild(n,e){e.remove()}selectRootElement(n,e){let i="string"==typeof n?this.doc.querySelector(n):n;if(!i)throw new X(-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=kw[o];r?n.setAttributeNS(r,e,i):n.setAttribute(e,i)}else n.setAttribute(e,i)}removeAttribute(n,e,i){if(i){const o=kw[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&(na.DashCase|na.Important)?n.style.setProperty(e,i,o&na.Important?"important":""):n.style[e]=i}removeStyle(n,e,i){i&na.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,o){if("string"==typeof n&&!(n=Ys().getGlobalEventTarget(this.doc,n)))throw new X(5102,!1);let r=this.decoratePreventDefault(i);return this.tracingService?.wrapEventListener&&(r=this.tracingService.wrapEventListener(n,e,r)),this.eventManager.addEventListener(n,e,r,o)}decoratePreventDefault(n){return e=>{if("__ngUnwrap__"===e)return n;!1===n(e)&&e.preventDefault()}}}function YN(t){return"TEMPLATE"===t.tagName&&void 0!==t.content}class XN extends Mw{hostEl;sharedStylesHost;shadowRoot;constructor(n,e,i,o,r,s,a,l){super(n,o,r,a),this.hostEl=e,this.sharedStylesHost=l,this.shadowRoot=e.attachShadow({mode:"open"}),this.sharedStylesHost&&this.sharedStylesHost.addHost(this.shadowRoot);let c=i.styles;c=KN(i.id,c);for(const p of c){const g=document.createElement("style");s&&g.setAttribute("nonce",s),g.textContent=p,this.shadowRoot.appendChild(g)}const u=i.getExternalStyles?.();if(u)for(const p of u){const g=Sw(p,o);s&&g.setAttribute("nonce",s),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(null,e)}parentNode(n){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(n)))}destroy(){this.sharedStylesHost&&this.sharedStylesHost.removeHost(this.shadowRoot)}}class Ew extends Mw{sharedStylesHost;removeStylesOnCompDestroy;styles;styleUrls;constructor(n,e,i,o,r,s,a,l){super(n,r,s,a),this.sharedStylesHost=e,this.removeStylesOnCompDestroy=o;let c=i.styles;this.styles=l?KN(l,c):c,this.styleUrls=i.getExternalStyles?.(l)}applyStyles(){this.sharedStylesHost.addStyles(this.styles,this.styleUrls)}destroy(){this.removeStylesOnCompDestroy&&0===fl.size&&this.sharedStylesHost.removeStyles(this.styles,this.styleUrls)}}class ZN extends Ew{contentAttr;hostAttr;constructor(n,e,i,o,r,s,a,l){const c=o+"-"+i.id;super(n,e,i,r,s,a,l,c),this.contentAttr=function nie(t){return"_ngcontent-%COMP%".replace(Dw,t)}(c),this.hostAttr=function iie(t){return"_nghost-%COMP%".replace(Dw,t)}(c)}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}}class Pw extends pz{supportsDOMEvents=!0;static makeCurrent(){!function fz(t){YT??=t}(new Pw)}onAndCancel(n,e,i,o){return n.addEventListener(e,i,o),()=>{n.removeEventListener(e,i,o)}}dispatchEvent(n,e){n.dispatchEvent(e)}remove(n){n.remove()}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 sie(){return Wh=Wh||document.head.querySelector("base"),Wh?Wh.getAttribute("href"):null}();return null==e?null:function aie(t){return new URL(t,document.baseURI).pathname}(e)}resetBaseElement(){Wh=null}getUserAgent(){return window.navigator.userAgent}getCookie(n){return XT(document.cookie,n)}}let Wh=null,cie=(()=>{class t{build(){return new XMLHttpRequest}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();const JN=["alt","control","meta","shift"],die={"\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"},uie={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey};let hie=(()=>{class t extends UN{constructor(e){super(e)}supports(e){return null!=t.parseEventName(e)}addEventListener(e,i,o,r){const s=t.parseEventName(i),a=t.eventCallback(s.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Ys().onAndCancel(e,s.domEventName,a,r))}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 s="",a=i.indexOf("code");if(a>-1&&(i.splice(a,1),s="code."),JN.forEach(c=>{const u=i.indexOf(c);u>-1&&(i.splice(u,1),s+=c+".")}),s+=r,0!=i.length||0===r.length)return null;const l={};return l.domEventName=o,l.fullKey=s,l}static matchEventFullKeyCode(e,i){let o=die[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"),JN.forEach(s=>{s!==o&&(0,uie[s])(e)&&(r+=s+".")}),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 \u0275fac=function(i){return new(i||t)(le(Qe))};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();const gie=WR(qee,"browser",[{provide:mC,useValue:QT},{provide:fE,useValue:function fie(){Pw.makeCurrent()},multi:!0},{provide:Qe,useFactory:function mie(){return function P7(t){pC=t}(document),document}}]),nF=[{provide:JP,useClass:class lie{addToWindow(n){Dn.getAngularTestability=(i,o=!0)=>{const r=n.findTestabilityInTree(i,o);if(null==r)throw new X(5103,!1);return r},Dn.getAllAngularTestabilities=()=>n.getAllTestabilities(),Dn.getAllAngularRootElements=()=>n.getAllRootElements(),Dn.frameworkStabilizers||(Dn.frameworkStabilizers=[]),Dn.frameworkStabilizers.push(i=>{const o=Dn.getAllAngularTestabilities();let r=o.length;const s=function(){r--,0==r&&i()};o.forEach(a=>{a.whenStable(s)})})}findTestabilityInTree(n,e,i){return null==e?null:n.getTestability(e)??(i?Ys().isShadowRoot(e)?this.findTestabilityInTree(n,e.host,!0):this.findTestabilityInTree(n,e.parentElement,!0):null)}}},{provide:QP,useClass:s0},{provide:s0,useClass:s0}],iF=[{provide:yy,useValue:"root"},{provide:tl,useFactory:function pie(){return new tl}},{provide:ww,useClass:Cw,multi:!0},{provide:ww,useClass:hie,multi:!0},Tw,GN,zN,{provide:No,useExisting:Tw},{provide:ZT,useClass:cie},[]];let oF=(()=>{class t{constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({providers:[...iF,...nF],imports:[Kne,Kee]})}return t})();var Ne=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}(Ne||{});const ws="*";function rF(t){return{type:Ne.Style,styles:t,offset:null}}class Gh{_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_originalOnDoneFns=[];_originalOnStartFns=[];_started=!1;_destroyed=!1;_finished=!1;_position=0;parentPlayer=null;totalTime;constructor(n=0,e=0){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 sF{_onDoneFns=[];_onStartFns=[];_finished=!1;_started=!1;_destroyed=!1;_onDestroyFns=[];parentPlayer=null;totalTime=0;players;constructor(n){this.players=n;let e=0,i=0,o=0;const r=this.players.length;0==r?queueMicrotask(()=>this._onFinish()):this.players.forEach(s=>{s.onDone(()=>{++e==r&&this._onFinish()}),s.onDestroy(()=>{++i==r&&this._onDestroy()}),s.onStart(()=>{++o==r&&this._onStart()})}),this.totalTime=this.players.reduce((s,a)=>Math.max(s,a.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 lF(t){return new X(3e3,!1)}function Tie(t){return new X(3002,!1)}function ha(t){switch(t.length){case 0:return new Gh;case 1:return t[0];default:return new sF(t)}}function cF(t,n,e=new Map,i=new Map){const o=[],r=[];let s=-1,a=null;if(n.forEach(l=>{const c=l.get("offset"),u=c==s,p=u&&a||new Map;l.forEach((g,_)=>{let w=_,x=g;if("offset"!==_)switch(w=t.normalizePropertyName(w,o),x){case"!":x=e.get(_);break;case ws:x=i.get(_);break;default:x=t.normalizeStyleValue(_,w,x,o)}p.set(w,x)}),u||r.push(p),a=p,s=c}),o.length)throw function Bie(){return new X(3502,!1)}();return r}function Fw(t,n,e,i){switch(n){case"start":t.onStart(()=>i(e&&Lw(e,"start",t)));break;case"done":t.onDone(()=>i(e&&Lw(e,"done",t)));break;case"destroy":t.onDestroy(()=>i(e&&Lw(e,"destroy",t)))}}function Lw(t,n,e){const r=Bw(t.element,t.triggerName,t.fromState,t.toState,n||t.phaseName,e.totalTime??t.totalTime,!!e.disabled),s=t._data;return null!=s&&(r._data=s),r}function Bw(t,n,e,i,o="",r=0,s){return{element:t,triggerName:n,fromState:e,toState:i,phaseName:o,totalTime:r,disabled:!!s}}function To(t,n,e){let i=t.get(n);return i||t.set(n,i=e),i}function dF(t){const n=t.indexOf(":");return[t.substring(1,n),t.slice(n+1)]}const Xie=typeof document>"u"?null:document.documentElement;function Vw(t){const n=t.parentNode||t.host||null;return n===Xie?null:n}let Rl=null,uF=!1;function hF(t,n){for(;n;){if(n===t)return!0;n=Vw(n)}return!1}function fF(t,n,e){if(e)return Array.from(t.querySelectorAll(n));const i=t.querySelector(n);return i?[i]:[]}const mF="ng-enter",Hw="ng-leave",__="ng-trigger",b_=".ng-trigger",gF="ng-animating",jw=".ng-animating";function xs(t){if("number"==typeof t)return t;const n=t.match(/^(-?[\.\d]+)(m?s)/);return!n||n.length<2?0:Uw(parseFloat(n[1]),n[2])}function Uw(t,n){return"s"===n?1e3*t:t}function v_(t,n,e){return t.hasOwnProperty("duration")?t:function ioe(t,n,e){let i,o=0,r="";if("string"==typeof t){const s=t.match(noe);if(null===s)return n.push(lF()),{duration:0,delay:0,easing:""};i=Uw(parseFloat(s[1]),s[2]);const a=s[3];null!=a&&(o=Uw(parseFloat(a),s[4]));const l=s[5];l&&(r=l)}else i=t;if(!e){let s=!1,a=n.length;i<0&&(n.push(function bie(){return new X(3100,!1)}()),s=!0),o<0&&(n.push(function vie(){return new X(3101,!1)}()),s=!0),s&&n.splice(a,0,lF())}return{duration:i,delay:o,easing:r}}(t,n,e)}const noe=/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i;function Vr(t,n,e){n.forEach((i,o)=>{const r=$w(o);e&&!e.has(o)&&e.set(o,t.style[r]),t.style[r]=i})}function Nl(t,n){n.forEach((e,i)=>{const o=$w(i);t.style[o]=""})}function qh(t){return Array.isArray(t)?1==t.length?t[0]:function _ie(t,n=null){return{type:Ne.Sequence,steps:t,options:n}}(t):t}const zw=new RegExp("{{\\s*(.+?)\\s*}}","g");function _F(t){let n=[];if("string"==typeof t){let e;for(;e=zw.exec(t);)n.push(e[1]);zw.lastIndex=0}return n}function Kh(t,n,e){const i=`${t}`,o=i.replace(zw,(r,s)=>{let a=n[s];return null==a&&(e.push(function Cie(){return new X(3003,!1)}()),a=""),a.toString()});return o==i?t:o}const soe=/-+([a-z0-9])/g;function $w(t){return t.replace(soe,(...n)=>n[1].toUpperCase())}function Mo(t,n,e){switch(n.type){case Ne.Trigger:return t.visitTrigger(n,e);case Ne.State:return t.visitState(n,e);case Ne.Transition:return t.visitTransition(n,e);case Ne.Sequence:return t.visitSequence(n,e);case Ne.Group:return t.visitGroup(n,e);case Ne.Animate:return t.visitAnimate(n,e);case Ne.Keyframes:return t.visitKeyframes(n,e);case Ne.Style:return t.visitStyle(n,e);case Ne.Reference:return t.visitReference(n,e);case Ne.AnimateChild:return t.visitAnimateChild(n,e);case Ne.AnimateRef:return t.visitAnimateRef(n,e);case Ne.Query:return t.visitQuery(n,e);case Ne.Stagger:return t.visitStagger(n,e);default:throw function wie(){return new X(3004,!1)}()}}function Ww(t,n){return window.getComputedStyle(t)[n]}let Gw=(()=>{class t{validateStyleProperty(e){return function Qie(t){Rl||(Rl=function Jie(){return typeof document<"u"?document.body:null}()||{},uF=!!Rl.style&&"WebkitAppearance"in Rl.style);let n=!0;return Rl.style&&!function Zie(t){return"ebkit"==t.substring(1,6)}(t)&&(n=t in Rl.style,!n&&uF&&(n="Webkit"+t.charAt(0).toUpperCase()+t.slice(1)in Rl.style)),n}(e)}containsElement(e,i){return hF(e,i)}getParentElement(e){return Vw(e)}query(e,i,o){return fF(e,i,o)}computeStyle(e,i,o){return o||""}animate(e,i,o,r,s,a=[],l){return new Gh(o,r)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();class qw{static NOOP=new Gw}class Kw{}const poe=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 vF extends Kw{normalizePropertyName(n,e){return $w(n)}normalizeStyleValue(n,e,i,o){let r="";const s=i.toString().trim();if(poe.has(e)&&0!==i&&"0"!==i)if("number"==typeof i)r="px";else{const a=i.match(/^[+-]?[\d\.]+([a-z]*)$/);a&&0==a[1].length&&o.push(function xie(){return new X(3005,!1)}())}return s+r}}const C_=new Set(["true","1"]),w_=new Set(["false","0"]);function yF(t,n){const e=C_.has(t)||w_.has(t),i=C_.has(n)||w_.has(n);return(o,r)=>{let s="*"==t||t==o,a="*"==n||n==r;return!s&&e&&"boolean"==typeof o&&(s=o?C_.has(t):w_.has(t)),!a&&i&&"boolean"==typeof r&&(a=r?C_.has(n):w_.has(n)),s&&a}}const boe=new RegExp("s*:selfs*,?","g");function Xw(t,n,e,i){return new voe(t).build(n,e,i)}class voe{_driver;constructor(n){this._driver=n}build(n,e,i){const o=new woe(e);return this._resetContextStyleTimingState(o),Mo(this,qh(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=[],s=[];return"@"==n.name.charAt(0)&&e.errors.push(function Sie(){return new X(3006,!1)}()),n.definitions.forEach(a=>{if(this._resetContextStyleTimingState(e),a.type==Ne.State){const l=a,c=l.name;c.toString().split(/\s*,\s*/).forEach(u=>{l.name=u,r.push(this.visitState(l,e))}),l.name=c}else if(a.type==Ne.Transition){const l=this.visitTransition(a,e);i+=l.queryCount,o+=l.depCount,s.push(l)}else e.errors.push(function kie(){return new X(3007,!1)}())}),{type:Ne.Trigger,name:n.name,states:r,transitions:s,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,s=o||{};i.styles.forEach(a=>{a instanceof Map&&a.forEach(l=>{_F(l).forEach(c=>{s.hasOwnProperty(c)||r.add(c)})})}),r.size&&e.errors.push(function Die(){return new X(3008,!1)}(0,r.values()))}return{type:Ne.State,name:n.name,style:i,options:o?{params:o}:null}}visitTransition(n,e){e.queryCount=0,e.depCount=0;const i=Mo(this,qh(n.animation),e),o=function moe(t,n){const e=[];return"string"==typeof t?t.split(/\s*,\s*/).forEach(i=>function goe(t,n,e){if(":"==t[0]){const l=function _oe(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 l)return void n.push(l);t=l}const i=t.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==i||i.length<4)return e.push(function Nie(){return new X(3015,!1)}()),n;const o=i[1],r=i[2],s=i[3];n.push(yF(o,s)),"<"==r[0]&&("*"!=o||"*"!=s)&&n.push(yF(s,o))}(i,e,n)):e.push(t),e}(n.expr,e.errors);return{type:Ne.Transition,matchers:o,animation:i,queryCount:e.queryCount,depCount:e.depCount,options:Fl(n.options)}}visitSequence(n,e){return{type:Ne.Sequence,steps:n.steps.map(i=>Mo(this,i,e)),options:Fl(n.options)}}visitGroup(n,e){const i=e.currentTime;let o=0;const r=n.steps.map(s=>{e.currentTime=i;const a=Mo(this,s,e);return o=Math.max(o,e.currentTime),a});return e.currentTime=o,{type:Ne.Group,steps:r,options:Fl(n.options)}}visitAnimate(n,e){const i=function Soe(t,n){if(t.hasOwnProperty("duration"))return t;if("number"==typeof t)return Zw(v_(t,n).duration,0,"");const e=t;if(e.split(/\s+/).some(r=>"{"==r.charAt(0)&&"{"==r.charAt(1))){const r=Zw(0,0,"");return r.dynamic=!0,r.strValue=e,r}const o=v_(e,n);return Zw(o.duration,o.delay,o.easing)}(n.timings,e.errors);e.currentAnimateTimings=i;let o,r=n.styles?n.styles:rF({});if(r.type==Ne.Keyframes)o=this.visitKeyframes(r,e);else{let s=n.styles,a=!1;if(!s){a=!0;const c={};i.easing&&(c.easing=i.easing),s=rF(c)}e.currentTime+=i.duration+i.delay;const l=this.visitStyle(s,e);l.isEmptyStep=a,o=l}return e.currentAnimateTimings=null,{type:Ne.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 a of o)"string"==typeof a?a===ws?i.push(a):e.errors.push(Tie()):i.push(new Map(Object.entries(a)));let r=!1,s=null;return i.forEach(a=>{if(a instanceof Map&&(a.has("easing")&&(s=a.get("easing"),a.delete("easing")),!r))for(let l of a.values())if(l.toString().indexOf("{{")>=0){r=!0;break}}),{type:Ne.Style,styles:i,easing:s,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(s=>{"string"!=typeof s&&s.forEach((a,l)=>{const c=e.collectedStyles.get(e.currentQuerySelector),u=c.get(l);let p=!0;u&&(r!=o&&r>=u.startTime&&o<=u.endTime&&(e.errors.push(function Mie(){return new X(3010,!1)}()),p=!1),r=u.startTime),p&&c.set(l,{startTime:r,endTime:o}),e.options&&function roe(t,n,e){const i=n.params||{},o=_F(t);o.length&&o.forEach(r=>{i.hasOwnProperty(r)||e.push(function yie(){return new X(3001,!1)}())})}(a,e.options,e.errors)})})}visitKeyframes(n,e){const i={type:Ne.Keyframes,styles:[],options:null};if(!e.currentAnimateTimings)return e.errors.push(function Eie(){return new X(3011,!1)}()),i;let r=0;const s=[];let a=!1,l=!1,c=0;const u=n.steps.map(E=>{const R=this._makeStyleAst(E,e);let W=null!=R.offset?R.offset:function xoe(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}(R.styles),Y=0;return null!=W&&(r++,Y=R.offset=W),l=l||Y<0||Y>1,a=a||Y0&&r{const W=g>0?R==_?1:g*R:s[R],Y=W*T;e.currentTime=w+x.delay+Y,x.duration=Y,this._validateStyleAst(E,e),E.offset=W,i.styles.push(E)}),i}visitReference(n,e){return{type:Ne.Reference,animation:Mo(this,qh(n.animation),e),options:Fl(n.options)}}visitAnimateChild(n,e){return e.depCount++,{type:Ne.AnimateChild,options:Fl(n.options)}}visitAnimateRef(n,e){return{type:Ne.AnimateRef,animation:this.visitReference(n.animation,e),options:Fl(n.options)}}visitQuery(n,e){const i=e.currentQuerySelector,o=n.options||{};e.queryCount++,e.currentQuery=n;const[r,s]=function yoe(t){const n=!!t.split(/\s*,\s*/).find(e=>":self"==e);return n&&(t=t.replace(boe,"")),t=t.replace(/@\*/g,b_).replace(/@\w+/g,e=>b_+"-"+e.slice(1)).replace(/:animating/g,jw),[t,n]}(n.selector);e.currentQuerySelector=i.length?i+" "+r:r,To(e.collectedStyles,e.currentQuerySelector,new Map);const a=Mo(this,qh(n.animation),e);return e.currentQuery=null,e.currentQuerySelector=i,{type:Ne.Query,selector:r,limit:o.limit||0,optional:!!o.optional,includeSelf:s,animation:a,originalSelector:n.selector,options:Fl(n.options)}}visitStagger(n,e){e.currentQuery||e.errors.push(function Aie(){return new X(3013,!1)}());const i="full"===n.timings?{duration:0,delay:0,easing:"full"}:v_(n.timings,e.errors,!0);return{type:Ne.Stagger,animation:Mo(this,qh(n.animation),e),timings:i,options:null}}}class woe{errors;queryCount=0;depCount=0;currentTransition=null;currentQuery=null;currentQuerySelector=null;currentAnimateTimings=null;currentTime=0;collectedStyles=new Map;options=null;unsupportedCSSPropertiesFound=new Set;constructor(n){this.errors=n}}function Fl(t){return t?(t={...t}).params&&(t.params=function Coe(t){return t?{...t}:null}(t.params)):t={},t}function Zw(t,n,e){return{duration:t,delay:n,easing:e}}function Qw(t,n,e,i,o,r,s=null,a=!1){return{type:1,element:t,keyframes:n,preStyleProps:e,postStyleProps:i,duration:o,delay:r,totalTime:o+r,easing:s,subTimeline:a}}class x_{_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 Toe=new RegExp(":enter","g"),Eoe=new RegExp(":leave","g");function Jw(t,n,e,i,o,r=new Map,s=new Map,a,l,c=[]){return(new Ioe).buildKeyframes(t,n,e,i,o,r,s,a,l,c)}class Ioe{buildKeyframes(n,e,i,o,r,s,a,l,c,u=[]){c=c||new x_;const p=new ex(n,e,c,o,r,u,[]);p.options=l;const g=l.delay?xs(l.delay):0;p.currentTimeline.delayNextStep(g),p.currentTimeline.setStyles([s],null,p.errors,l),Mo(this,i,p);const _=p.timelines.filter(w=>w.containsAnimation());if(_.length&&a.size){let w;for(let x=_.length-1;x>=0;x--){const T=_[x];if(T.element===e){w=T;break}}w&&!w.allowOnlyTimelineStyles()&&w.setStyles([a],null,p.errors,l)}return _.length?_.map(w=>w.buildKeyframes()):[Qw(e,[],[],[],0,g,"",!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,s=this._visitSubInstructions(i,o,o.options);r!=s&&e.transformIntoNewTimeline(s)}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 s="number"==typeof r?r:xs(Kh(r,o?.params??{},e.errors));i.delayNextStep(s)}}}_visitSubInstructions(n,e,i){let r=e.currentTimeline.currentTime;const s=null!=i.duration?xs(i.duration):null,a=null!=i.delay?xs(i.delay):null;return 0!==s&&n.forEach(l=>{const c=e.appendInstructionToTimeline(l,s,a);r=Math.max(r,c.duration+c.delay)}),r}visitReference(n,e){e.updateOptions(n.options,!0),Mo(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==Ne.Style&&(o.currentTimeline.snapshotCurrentStyles(),o.previousNode=S_);const s=xs(r.delay);o.delayNextStep(s)}n.steps.length&&(n.steps.forEach(s=>Mo(this,s,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?xs(n.options.delay):0;n.steps.forEach(s=>{const a=e.createSubContext(n.options);r&&a.delayNextStep(r),Mo(this,s,a),o=Math.max(o,a.currentTimeline.currentTime),i.push(a.currentTimeline)}),i.forEach(s=>e.currentTimeline.mergeTimelineCollectedStyles(s)),e.transformIntoNewTimeline(o),e.previousNode=n}_visitTiming(n,e){if(n.dynamic){const i=n.strValue;return v_(e.params?Kh(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==Ne.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,a=e.createSubContext().currentTimeline;a.easing=i.easing,n.styles.forEach(l=>{a.forwardTime((l.offset||0)*r),a.setStyles(l.styles,l.easing,e.errors,e.options),a.applyStylesToKeyframe()}),e.currentTimeline.mergeTimelineCollectedStyles(a),e.transformIntoNewTimeline(o+r),e.previousNode=n}visitQuery(n,e){const i=e.currentTimeline.currentTime,o=n.options||{},r=o.delay?xs(o.delay):0;r&&(e.previousNode.type===Ne.Style||0==i&&e.currentTimeline.hasCurrentStyleProperties())&&(e.currentTimeline.snapshotCurrentStyles(),e.previousNode=S_);let s=i;const a=e.invokeQuery(n.selector,n.originalSelector,n.limit,n.includeSelf,!!o.optional,e.errors);e.currentQueryTotal=a.length;let l=null;a.forEach((c,u)=>{e.currentQueryIndex=u;const p=e.createSubContext(n.options,c);r&&p.delayNextStep(r),c===e.element&&(l=p.currentTimeline),Mo(this,n.animation,p),p.currentTimeline.applyStylesToKeyframe(),s=Math.max(s,p.currentTimeline.currentTime)}),e.currentQueryIndex=0,e.currentQueryTotal=0,e.transformIntoNewTimeline(s),l&&(e.currentTimeline.mergeTimelineCollectedStyles(l),e.currentTimeline.snapshotCurrentStyles()),e.previousNode=n}visitStagger(n,e){const i=e.parentContext,o=e.currentTimeline,r=n.timings,s=Math.abs(r.duration),a=s*(e.currentQueryTotal-1);let l=s*e.currentQueryIndex;switch(r.duration<0?"reverse":r.easing){case"reverse":l=a-l;break;case"full":l=i.currentStaggerTime}const u=e.currentTimeline;l&&u.delayNextStep(l);const p=u.currentTime;Mo(this,n.animation,e),e.previousNode=n,i.currentStaggerTime=o.currentTime-p+(o.startTime-i.currentTimeline.startTime)}}const S_={};class ex{_driver;element;subInstructions;_enterClassName;_leaveClassName;errors;timelines;parentContext=null;currentTimeline;currentAnimateTimings=null;previousNode=S_;subContextCount=0;options={};currentQueryIndex=0;currentQueryTotal=0;currentStaggerTime=0;constructor(n,e,i,o,r,s,a,l){this._driver=n,this.element=e,this.subInstructions=i,this._enterClassName=o,this._leaveClassName=r,this.errors=s,this.timelines=a,this.currentTimeline=l||new k_(this._driver,e,0),a.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=xs(i.duration)),null!=i.delay&&(o.delay=xs(i.delay));const r=i.params;if(r){let s=o.params;s||(s=this.options.params={}),Object.keys(r).forEach(a=>{(!e||!s.hasOwnProperty(a))&&(s[a]=Kh(r[a],s,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 ex(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=S_,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 Poe(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,s){let a=[];if(o&&a.push(this.element),n.length>0){n=(n=n.replace(Toe,"."+this._enterClassName)).replace(Eoe,"."+this._leaveClassName);let c=this._driver.query(this.element,n,1!=i);0!==i&&(c=i<0?c.slice(c.length+i,c.length):c.slice(0,i)),a.push(...c)}return!r&&0==a.length&&s.push(function Rie(){return new X(3014,!1)}()),a}}class k_{_driver;element;startTime;_elementTimelineStylesLookup;duration=0;easing=null;_previousKeyframe=new Map;_currentKeyframe=new Map;_keyframes=new Map;_styleSummary=new Map;_localTimelineStyles=new Map;_globalTimelineStyles;_pendingStyles=new Map;_backFill=new Map;_currentEmptyStepKeyframe=null;constructor(n,e,i,o){this._driver=n,this.element=e,this.startTime=i,this._elementTimelineStylesLookup=o,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 k_(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||ws),this._currentKeyframe.set(e,ws);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(n,e,i,o){e&&this._previousKeyframe.set("easing",e);const r=o&&o.params||{},s=function Ooe(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,ws)}else for(let[r,s]of o)e.set(r,s)}),e}(n,this._globalTimelineStyles);for(let[a,l]of s){const c=Kh(l,r,i);this._pendingStyles.set(a,c),this._localTimelineStyles.has(a)||this._backFill.set(a,this._globalTimelineStyles.get(a)??ws),this._updateStyle(a,c)}}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((a,l)=>{const c=new Map([...this._backFill,...a]);c.forEach((u,p)=>{"!"===u?n.add(p):u===ws&&e.add(p)}),i||c.set("offset",l/this.duration),o.push(c)});const r=[...n.values()],s=[...e.values()];if(i){const a=o[0],l=new Map(a);a.set("offset",0),l.set("offset",1),o=[a,l]}return Qw(this.element,o,r,s,this.duration,this.startTime,this.easing,!1)}}class Poe extends k_{keyframes;preStyleProps;postStyleProps;_stretchStartingKeyframe;timings;constructor(n,e,i,o,r,s,a=!1){super(n,e,s.delay),this.keyframes=i,this.preStyleProps=o,this.postStyleProps=r,this._stretchStartingKeyframe=a,this.timings={duration:s.duration,delay:s.delay,easing:s.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=[],s=i+e,a=e/s,l=new Map(n[0]);l.set("offset",0),r.push(l);const c=new Map(n[0]);c.set("offset",xF(a)),r.push(c);const u=n.length-1;for(let p=1;p<=u;p++){let g=new Map(n[p]);const _=g.get("offset");g.set("offset",xF((e+_*i)/s)),r.push(g)}i=s,e=0,o="",n=r}return Qw(this.element,n,this.preStyleProps,this.postStyleProps,i,e,o,!0)}}function xF(t,n=3){const e=Math.pow(10,n-1);return Math.round(t*e)/e}function SF(t,n,e,i,o,r,s,a,l,c,u,p,g){return{type:0,element:t,triggerName:n,isRemovalTransition:o,fromState:e,fromStyles:r,toState:i,toStyles:s,timelines:a,queriedElements:l,preStyleProps:c,postStyleProps:u,totalTime:p,errors:g}}const tx={};class kF{_triggerName;ast;_stateStyles;constructor(n,e,i){this._triggerName=n,this.ast=e,this._stateStyles=i}match(n,e,i,o){return function Aoe(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,s,a,l,c,u){const p=[],g=this.ast.options&&this.ast.options.params||tx,w=this.buildStyles(i,a&&a.params||tx,p),x=l&&l.params||tx,T=this.buildStyles(o,x,p),E=new Set,R=new Map,W=new Map,Y="void"===o,K={params:DF(x,g),delay:this.ast.options?.delay},ee=u?[]:Jw(n,e,this.ast.animation,r,s,w,T,K,c,p);let ie=0;return ee.forEach(M=>{ie=Math.max(M.duration+M.delay,ie)}),p.length?SF(e,this._triggerName,i,o,Y,w,T,[],[],R,W,ie,p):(ee.forEach(M=>{const A=M.element,F=To(R,A,new Set);M.preStyleProps.forEach(H=>F.add(H));const U=To(W,A,new Set);M.postStyleProps.forEach(H=>U.add(H)),A!==e&&E.add(A)}),SF(e,this._triggerName,i,o,Y,w,T,ee,[...E.values()],R,W,ie))}}function DF(t,n){const e={...n};return Object.entries(t).forEach(([i,o])=>{null!=o&&(e[i]=o)}),e}class Roe{styles;defaultParams;normalizer;constructor(n,e,i){this.styles=n,this.defaultParams=e,this.normalizer=i}buildStyles(n,e){const i=new Map,o=DF(n,this.defaultParams);return this.styles.styles.forEach(r=>{"string"!=typeof r&&r.forEach((s,a)=>{s&&(s=Kh(s,o,e));const l=this.normalizer.normalizePropertyName(a,e);s=this.normalizer.normalizeStyleValue(a,l,s,e),i.set(a,s)})}),i}}class Foe{name;ast;_normalizer;transitionFactories=[];fallbackTransition;states=new Map;constructor(n,e,i){this.name=n,this.ast=e,this._normalizer=i,e.states.forEach(o=>{this.states.set(o.name,new Roe(o.style,o.options&&o.options.params||{},i))}),TF(this.states,"true","1"),TF(this.states,"false","0"),e.transitions.forEach(o=>{this.transitionFactories.push(new kF(n,o,this.states))}),this.fallbackTransition=function Loe(t,n){return new kF(t,{type:Ne.Transition,animation:{type:Ne.Sequence,steps:[],options:null},matchers:[(s,a)=>!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(s=>s.match(n,e,i,o))||null}matchStyles(n,e,i){return this.fallbackTransition.buildStyles(n,e,i)}}function TF(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 Boe=new x_;class Voe{bodyNode;_driver;_normalizer;_animations=new Map;_playersById=new Map;players=[];constructor(n,e,i){this.bodyNode=n,this._driver=e,this._normalizer=i}register(n,e){const i=[],r=Xw(this._driver,e,i,[]);if(i.length)throw function Vie(){return new X(3503,!1)}();this._animations.set(n,r)}_buildPlayer(n,e,i){const o=n.element,r=cF(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 s;const a=new Map;if(r?(s=Jw(this._driver,e,r,mF,Hw,new Map,new Map,i,Boe,o),s.forEach(u=>{const p=To(a,u.element,new Map);u.postStyleProps.forEach(g=>p.set(g,null))})):(o.push(function Hie(){return new X(3300,!1)}()),s=[]),o.length)throw function jie(){return new X(3504,!1)}();a.forEach((u,p)=>{u.forEach((g,_)=>{u.set(_,this._driver.computeStyle(p,_,ws))})});const c=ha(s.map(u=>{const p=a.get(u.element);return this._buildPlayer(u,new Map,p)}));return this._playersById.set(n,c),c.onDestroy(()=>this.destroy(n)),this.players.push(c),c}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 Uie(){return new X(3301,!1)}();return e}listen(n,e,i,o){const r=Bw(e,"","","");return Fw(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 MF="ng-animate-queued",nx="ng-animate-disabled",$oe=[],EF={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},Woe={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},lr="__ng_removed";class ix{namespaceId;value;options;get params(){return this.options.params}constructor(n,e=""){this.namespaceId=e;const i=n&&n.hasOwnProperty("value");if(this.value=function Yoe(t){return t??null}(i?n.value:n),i){const{value:r,...s}=n;this.options=s}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 Yh="void",ox=new ix(Yh);class Goe{id;hostElement;_engine;players=[];_triggers=new Map;_queue=[];_elementListeners=new Map;_hostClassName;constructor(n,e,i){this.id=n,this.hostElement=e,this._engine=i,this._hostClassName="ng-tns-"+n,Ho(e,this._hostClassName)}listen(n,e,i,o){if(!this._triggers.has(e))throw function zie(){return new X(3302,!1)}();if(null==i||0==i.length)throw function $ie(){return new X(3303,!1)}();if(!function Xoe(t){return"start"==t||"done"==t}(i))throw function Wie(){return new X(3400,!1)}();const r=To(this._elementListeners,n,[]),s={name:e,phase:i,callback:o};r.push(s);const a=To(this._engine.statesByElement,n,new Map);return a.has(e)||(Ho(n,__),Ho(n,__+"-"+e),a.set(e,ox)),()=>{this._engine.afterFlush(()=>{const l=r.indexOf(s);l>=0&&r.splice(l,1),this._triggers.has(e)||a.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 Gie(){return new X(3401,!1)}();return e}trigger(n,e,i,o=!0){const r=this._getTrigger(e),s=new rx(this.id,e,n);let a=this._engine.statesByElement.get(n);a||(Ho(n,__),Ho(n,__+"-"+e),this._engine.statesByElement.set(n,a=new Map));let l=a.get(e);const c=new ix(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&l&&c.absorbOptions(l.options),a.set(e,c),l||(l=ox),c.value!==Yh&&l.value===c.value){if(!function Joe(t,n){const e=Object.keys(t),i=Object.keys(n);if(e.length!=i.length)return!1;for(let o=0;o{Nl(n,T),Vr(n,E)})}return}const g=To(this._engine.playersByElement,n,[]);g.forEach(x=>{x.namespaceId==this.id&&x.triggerName==e&&x.queued&&x.destroy()});let _=r.matchTransition(l.value,c.value,n,c.params),w=!1;if(!_){if(!o)return;_=r.fallbackTransition,w=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:n,triggerName:e,transition:_,fromState:l,toState:c,player:s,isFallbackTransition:w}),w||(Ho(n,MF),s.onStart(()=>{Od(n,MF)})),s.onDone(()=>{let x=this.players.indexOf(s);x>=0&&this.players.splice(x,1);const T=this._engine.playersByElement.get(n);if(T){let E=T.indexOf(s);E>=0&&T.splice(E,1)}}),this.players.push(s),g.push(s),s}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,b_,!0);i.forEach(o=>{if(o[lr])return;const r=this._engine.fetchNamespacesByElement(o);r.size?r.forEach(s=>s.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),s=new Map;if(r){const a=[];if(r.forEach((l,c)=>{if(s.set(c,l.value),this._triggers.has(c)){const u=this.trigger(n,c,Yh,o);u&&a.push(u)}}),a.length)return this._engine.markElementAsRemoved(this.id,n,!0,e,s),i&&ha(a).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 s=r.name;if(o.has(s))return;o.add(s);const l=this._triggers.get(s).fallbackTransition,c=i.get(s)||ox,u=new ix(Yh),p=new rx(this.id,s,n);this._engine.totalQueuedPlayers++,this._queue.push({element:n,triggerName:s,transition:l,fromState:c,toState:u,player:p,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 s=n;for(;s=s.parentNode;)if(i.statesByElement.get(s)){o=!0;break}}}if(this.prepareLeaveAnimationListeners(n),o)i.markElementAsRemoved(this.id,n,!1,e);else{const r=n[lr];(!r||r===EF)&&(i.afterFlush(()=>this.clearElementCache(n)),i.destroyInnerAnimations(n),i._onRemovalComplete(n,e))}}insertNode(n,e){Ho(n,this._hostClassName)}drainQueuedTransitions(n){const e=[];return this._queue.forEach(i=>{const o=i.player;if(o.destroyed)return;const r=i.element,s=this._elementListeners.get(r);s&&s.forEach(a=>{if(a.name==i.triggerName){const l=Bw(r,i.triggerName,i.fromState.value,i.toState.value);l._data=n,Fw(i.player,a.phase,l,a.callback)}}),o.markedForDestroy?this._engine.afterFlush(()=>{o.destroy()}):e.push(i)}),this._queue=[],e.sort((i,o)=>{const r=i.transition.ast.depCount,s=o.transition.ast.depCount;return 0==r||0==s?r-s:this._engine.driver.containsElement(i.element,o.element)?1:-1})}destroy(n){this.players.forEach(e=>e.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,n)}}class qoe{bodyNode;driver;_normalizer;players=[];newHostElements=new Map;playersByElement=new Map;playersByQueriedElement=new Map;statesByElement=new Map;disabledNodes=new Set;totalAnimations=0;totalQueuedPlayers=0;_namespaceLookup={};_namespaceList=[];_flushFns=[];_whenQuietFns=[];namespacesByHostElement=new Map;collectedEnterElements=[];collectedLeaveElements=[];onRemovalComplete=(n,e)=>{};_onRemovalComplete(n,e){this.onRemovalComplete(n,e)}constructor(n,e,i){this.bodyNode=n,this.driver=e,this._normalizer=i}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 Goe(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 s=!1,a=this.driver.getParentElement(e);for(;a;){const l=o.get(a);if(l){const c=i.indexOf(l);i.splice(c+1,0,n),s=!0;break}a=this.driver.getParentElement(a)}s||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(D_(e)){const r=this._fetchNamespace(n);if(r)return r.trigger(e,i,o),!0}return!1}insertNode(n,e,i,o){if(!D_(e))return;const r=e[lr];if(r&&r.setForRemoval){r.setForRemoval=!1,r.setForMove=!0;const s=this.collectedLeaveElements.indexOf(e);s>=0&&this.collectedLeaveElements.splice(s,1)}if(n){const s=this._fetchNamespace(n);s&&s.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),Ho(n,nx)):this.disabledNodes.has(n)&&(this.disabledNodes.delete(n),Od(n,nx))}removeNode(n,e,i){if(D_(e)){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[lr]={namespaceId:n,setForRemoval:o,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:r}}listen(n,e,i,o,r){return D_(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,b_,!0);e.forEach(i=>this.destroyActiveAnimationsForElement(i)),0!=this.playersByQueriedElement.size&&(e=this.driver.query(n,jw,!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 ha(this.players).onDone(()=>n());n()})}processLeaveNode(n){const e=n[lr];if(e&&e.setForRemoval){if(n[lr]=EF,e.namespaceId){this.destroyInnerAnimations(n);const i=this._fetchNamespace(e.namespaceId);i&&i.clearElementCache(n)}this._onRemovalComplete(n,e.setForRemoval)}n.classList?.contains(nx)&&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?ha(e).onDone(()=>{i.forEach(o=>o())}):i.forEach(o=>o())}}reportError(n){throw function qie(){return new X(3402,!1)}()}_flushAnimations(n,e){const i=new x_,o=[],r=new Map,s=[],a=new Map,l=new Map,c=new Map,u=new Set;this.disabledNodes.forEach(N=>{u.add(N);const q=this.driver.query(N,".ng-animate-queued",!0);for(let j=0;j{const j=mF+x++;w.set(q,j),N.forEach(Q=>Ho(Q,j))});const T=[],E=new Set,R=new Set;for(let N=0;NE.add(Q)):R.add(q))}const W=new Map,Y=OF(g,Array.from(E));Y.forEach((N,q)=>{const j=Hw+x++;W.set(q,j),N.forEach(Q=>Ho(Q,j))}),n.push(()=>{_.forEach((N,q)=>{const j=w.get(q);N.forEach(Q=>Od(Q,j))}),Y.forEach((N,q)=>{const j=W.get(q);N.forEach(Q=>Od(Q,j))}),T.forEach(N=>{this.processLeaveNode(N)})});const K=[],ee=[];for(let N=this._namespaceList.length-1;N>=0;N--)this._namespaceList[N].drainQueuedTransitions(e).forEach(j=>{const Q=j.player,fe=j.element;if(K.push(Q),this.collectedEnterElements.length){const Ct=fe[lr];if(Ct&&Ct.setForMove){if(Ct.previousTriggersValues&&Ct.previousTriggersValues.has(j.triggerName)){const Yo=Ct.previousTriggersValues.get(j.triggerName),qi=this.statesByElement.get(j.element);if(qi&&qi.has(j.triggerName)){const La=qi.get(j.triggerName);La.value=Yo,qi.set(j.triggerName,La)}}return void Q.destroy()}}const _e=!p||!this.driver.containsElement(p,fe),Te=W.get(fe),ut=w.get(fe),Pe=this._buildInstruction(j,i,ut,Te,_e);if(Pe.errors&&Pe.errors.length)return void ee.push(Pe);if(_e)return Q.onStart(()=>Nl(fe,Pe.fromStyles)),Q.onDestroy(()=>Vr(fe,Pe.toStyles)),void o.push(Q);if(j.isFallbackTransition)return Q.onStart(()=>Nl(fe,Pe.fromStyles)),Q.onDestroy(()=>Vr(fe,Pe.toStyles)),void o.push(Q);const Xe=[];Pe.timelines.forEach(Ct=>{Ct.stretchStartingKeyframe=!0,this.disabledNodes.has(Ct.element)||Xe.push(Ct)}),Pe.timelines=Xe,i.append(fe,Pe.timelines),s.push({instruction:Pe,player:Q,element:fe}),Pe.queriedElements.forEach(Ct=>To(a,Ct,[]).push(Q)),Pe.preStyleProps.forEach((Ct,Yo)=>{if(Ct.size){let qi=l.get(Yo);qi||l.set(Yo,qi=new Set),Ct.forEach((La,Co)=>qi.add(Co))}}),Pe.postStyleProps.forEach((Ct,Yo)=>{let qi=c.get(Yo);qi||c.set(Yo,qi=new Set),Ct.forEach((La,Co)=>qi.add(Co))})});if(ee.length){const N=[];ee.forEach(q=>{N.push(function Kie(){return new X(3505,!1)}())}),K.forEach(q=>q.destroy()),this.reportError(N)}const ie=new Map,M=new Map;s.forEach(N=>{const q=N.element;i.has(q)&&(M.set(q,q),this._beforeAnimationBuild(N.player.namespaceId,N.instruction,ie))}),o.forEach(N=>{const q=N.element;this._getPreviousPlayers(q,!1,N.namespaceId,N.triggerName,null).forEach(Q=>{To(ie,q,[]).push(Q),Q.destroy()})});const A=T.filter(N=>RF(N,l,c)),F=new Map;PF(F,this.driver,R,c,ws).forEach(N=>{RF(N,l,c)&&A.push(N)});const H=new Map;_.forEach((N,q)=>{PF(H,this.driver,new Set(N),l,"!")}),A.forEach(N=>{const q=F.get(N),j=H.get(N);F.set(N,new Map([...q?.entries()??[],...j?.entries()??[]]))});const G=[],J=[],V={};s.forEach(N=>{const{element:q,player:j,instruction:Q}=N;if(i.has(q)){if(u.has(q))return j.onDestroy(()=>Vr(q,Q.toStyles)),j.disabled=!0,j.overrideTotalTime(Q.totalTime),void o.push(j);let fe=V;if(M.size>1){let Te=q;const ut=[];for(;Te=Te.parentNode;){const Pe=M.get(Te);if(Pe){fe=Pe;break}ut.push(Te)}ut.forEach(Pe=>M.set(Pe,fe))}const _e=this._buildAnimation(j.namespaceId,Q,ie,r,H,F);if(j.setRealPlayer(_e),fe===V)G.push(j);else{const Te=this.playersByElement.get(fe);Te&&Te.length&&(j.parentPlayer=ha(Te)),o.push(j)}}else Nl(q,Q.fromStyles),j.onDestroy(()=>Vr(q,Q.toStyles)),J.push(j),u.has(q)&&o.push(j)}),J.forEach(N=>{const q=r.get(N.element);if(q&&q.length){const j=ha(q);N.setRealPlayer(j)}}),o.forEach(N=>{N.parentPlayer?N.syncPlayerEvents(N.parentPlayer):N.destroy()});for(let N=0;N!_e.destroyed);fe.length?Zoe(this,q,fe):this.processLeaveNode(q)}return T.length=0,G.forEach(N=>{this.players.push(N),N.onDone(()=>{N.destroy();const q=this.players.indexOf(N);this.players.splice(q,1)}),N.play()}),G}afterFlush(n){this._flushFns.push(n)}afterFlushAnimationsDone(n){this._whenQuietFns.push(n)}_getPreviousPlayers(n,e,i,o,r){let s=[];if(e){const a=this.playersByQueriedElement.get(n);a&&(s=a)}else{const a=this.playersByElement.get(n);if(a){const l=!r||r==Yh;a.forEach(c=>{c.queued||!l&&c.triggerName!=o||s.push(c)})}}return(i||o)&&(s=s.filter(a=>!(i&&i!=a.namespaceId||o&&o!=a.triggerName))),s}_beforeAnimationBuild(n,e,i){const r=e.element,s=e.isRemovalTransition?void 0:n,a=e.isRemovalTransition?void 0:e.triggerName;for(const l of e.timelines){const c=l.element,u=c!==r,p=To(i,c,[]);this._getPreviousPlayers(c,u,s,a,e.toState).forEach(_=>{const w=_.getRealPlayer();w.beforeDestroy&&w.beforeDestroy(),_.destroy(),p.push(_)})}Nl(r,e.fromStyles)}_buildAnimation(n,e,i,o,r,s){const a=e.triggerName,l=e.element,c=[],u=new Set,p=new Set,g=e.timelines.map(w=>{const x=w.element;u.add(x);const T=x[lr];if(T&&T.removedBeforeQueried)return new Gh(w.duration,w.delay);const E=x!==l,R=function Qoe(t){const n=[];return AF(t,n),n}((i.get(x)||$oe).map(ie=>ie.getRealPlayer())).filter(ie=>!!ie.element&&ie.element===x),W=r.get(x),Y=s.get(x),K=cF(this._normalizer,w.keyframes,W,Y),ee=this._buildPlayer(w,K,R);if(w.subTimeline&&o&&p.add(x),E){const ie=new rx(n,a,x);ie.setRealPlayer(ee),c.push(ie)}return ee});c.forEach(w=>{To(this.playersByQueriedElement,w.element,[]).push(w),w.onDone(()=>function Koe(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,w.element,w))}),u.forEach(w=>Ho(w,gF));const _=ha(g);return _.onDestroy(()=>{u.forEach(w=>Od(w,gF)),Vr(l,e.toStyles)}),p.forEach(w=>{To(o,w,[]).push(_)}),_}_buildPlayer(n,e,i){return e.length>0?this.driver.animate(n.element,e,n.duration,n.delay,n.easing,i):new Gh(n.duration,n.delay)}}class rx{namespaceId;triggerName;element;_player=new Gh;_containsRealPlayer=!1;_queuedCallbacks=new Map;destroyed=!1;parentPlayer=null;markedForDestroy=!1;disabled=!1;queued=!0;totalTime=0;constructor(n,e,i){this.namespaceId=n,this.triggerName=e,this.element=i}setRealPlayer(n){this._containsRealPlayer||(this._player=n,this._queuedCallbacks.forEach((e,i)=>{e.forEach(o=>Fw(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){To(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 D_(t){return t&&1===t.nodeType}function IF(t,n){const e=t.style.display;return t.style.display=n??"none",e}function PF(t,n,e,i,o){const r=[];e.forEach(l=>r.push(IF(l)));const s=[];i.forEach((l,c)=>{const u=new Map;l.forEach(p=>{const g=n.computeStyle(c,p,o);u.set(p,g),(!g||0==g.length)&&(c[lr]=Woe,s.push(c))}),t.set(c,u)});let a=0;return e.forEach(l=>IF(l,r[a++])),s}function OF(t,n){const e=new Map;if(t.forEach(a=>e.set(a,[])),0==n.length)return e;const o=new Set(n),r=new Map;function s(a){if(!a)return 1;let l=r.get(a);if(l)return l;const c=a.parentNode;return l=e.has(c)?c:o.has(c)?1:s(c),r.set(a,l),l}return n.forEach(a=>{const l=s(a);1!==l&&e.get(l).push(a)}),e}function Ho(t,n){t.classList?.add(n)}function Od(t,n){t.classList?.remove(n)}function Zoe(t,n,e){ha(e).onDone(()=>t.processLeaveNode(n))}function AF(t,n){for(let e=0;eo.add(r)):n.set(t,i),e.delete(t),!0}class Xh{_driver;_normalizer;_transitionEngine;_timelineEngine;_triggerCache={};onRemovalComplete=(n,e)=>{};constructor(n,e,i){this._driver=e,this._normalizer=i,this._transitionEngine=new qoe(n.body,e,i),this._timelineEngine=new Voe(n.body,e,i),this._transitionEngine.onRemovalComplete=(o,r)=>this.onRemovalComplete(o,r)}registerTrigger(n,e,i,o,r){const s=n+"-"+o;let a=this._triggerCache[s];if(!a){const l=[],u=Xw(this._driver,r,l,[]);if(l.length)throw function Lie(){return new X(3404,!1)}();a=function Noe(t,n,e){return new Foe(t,n,e)}(o,u,this._normalizer),this._triggerCache[s]=a}this._transitionEngine.registerTrigger(e,o,a)}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,s]=dF(i);this._timelineEngine.command(r,e,s,o)}else this._transitionEngine.trigger(n,e,i,o)}listen(n,e,i,o,r){if("@"==i.charAt(0)){const[s,a]=dF(i);return this._timelineEngine.listen(s,e,a,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)}}let tre=(()=>{class t{_element;_startStyles;_endStyles;static initialStylesByElement=new WeakMap;_state=0;_initialStyles;constructor(e,i,o){this._element=e,this._startStyles=i,this._endStyles=o;let r=t.initialStylesByElement.get(e);r||t.initialStylesByElement.set(e,r=new Map),this._initialStyles=r}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&&(t.initialStylesByElement.delete(this._element),this._startStyles&&(Nl(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(Nl(this._element,this._endStyles),this._endStyles=null),Vr(this._element,this._initialStyles),this._state=3)}}return t})();function sx(t){let n=null;return t.forEach((e,i)=>{(function nre(t){return"display"===t||"position"===t})(i)&&(n=n||new Map,n.set(i,e))}),n}class NF{element;keyframes;options;_specialStyles;_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_duration;_delay;_initialized=!1;_finished=!1;_started=!1;_destroyed=!1;_finalKeyframe;_originalOnDoneFns=[];_originalOnStartFns=[];domPlayer=null;time=0;parentPlayer=null;currentSnapshot=new Map;constructor(n,e,i,o){this.element=n,this.keyframes=e,this.options=i,this._specialStyles=o,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.domPlayer;this._initialized=!0;const n=this.keyframes,e=this._triggerWebAnimation(this.element,n,this.options);if(!e)return this._onFinish(),null;this.domPlayer=e,this._finalKeyframe=n.length?n[n.length-1]:new Map;const i=()=>this._onFinish();return e.addEventListener("finish",i),this.onDestroy(()=>{e.removeEventListener("finish",i)}),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){const o=this._convertKeyframesToObject(e);try{return n.animate(o,i)}catch{return null}}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(){const n=this._buildPlayer();n&&(this.hasStarted()||(this._onStartFns.forEach(e=>e()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),n.play())}pause(){this.init(),this.domPlayer?.pause()}finish(){this.init(),this.domPlayer&&(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?.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){this.domPlayer||this.init(),this.domPlayer&&(this.domPlayer.currentTime=n*this.time)}getPosition(){return this.domPlayer?+(this.domPlayer.currentTime??0)/this.time:this._initialized?1:0}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:Ww(this.element,o))}),this.currentSnapshot=n}triggerCallback(n){const e="start"===n?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}class FF{validateStyleProperty(n){return!0}validateAnimatableStyleProperty(n){return!0}containsElement(n,e){return hF(n,e)}getParentElement(n){return Vw(n)}query(n,e,i){return fF(n,e,i)}computeStyle(n,e,i){return Ww(n,e)}animate(n,e,i,o,r,s=[]){const l={duration:i,delay:o,fill:0==o?"both":"forwards"};r&&(l.easing=r);const c=new Map,u=s.filter(_=>_ instanceof NF);(function aoe(t,n){return 0===t||0===n})(i,o)&&u.forEach(_=>{_.currentSnapshot.forEach((w,x)=>c.set(x,w))});let p=function ooe(t){return t.length?t[0]instanceof Map?t:t.map(n=>new Map(Object.entries(n))):[]}(e).map(_=>new Map(_));p=function loe(t,n,e){if(e.size&&n.length){let i=n[0],o=[];if(e.forEach((r,s)=>{i.has(s)||o.push(s),i.set(s,r)}),o.length)for(let r=1;rs.set(a,Ww(t,a)))}}return n}(n,p,c);const g=function ere(t,n){let e=null,i=null;return Array.isArray(n)&&n.length?(e=sx(n[0]),n.length>1&&(i=sx(n[n.length-1]))):n instanceof Map&&(e=sx(n)),e||i?new tre(t,e,i):null}(n,p);return new NF(n,p,l,g)}}const LF="@.disabled";class BF{namespaceId;delegate;engine;_onDestroy;\u0275type=0;constructor(n,e,i,o){this.namespaceId=n,this.delegate=e,this.engine=i,this._onDestroy=o}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,o){o?this.delegate.removeChild(n,e,i,o):this.parentNode(e)&&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==LF?this.disableAnimations(n,!!i):this.delegate.setProperty(n,e,i)}setValue(n,e){this.delegate.setValue(n,e)}listen(n,e,i,o){return this.delegate.listen(n,e,i,o)}disableAnimations(n,e){this.engine.disableAnimations(n,e)}}class ire extends BF{factory;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==LF?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,o){if("@"==e.charAt(0)){const r=function ore(t){switch(t){case"body":return document.body;case"document":return document;case"window":return window;default:return t}}(n);let s=e.slice(1),a="";return"@"!=s.charAt(0)&&([s,a]=function rre(t){const n=t.indexOf(".");return[t.substring(0,n),t.slice(n+1)]}(s)),this.engine.listen(this.namespaceId,r,s,a,l=>{this.factory.scheduleListenerCallback(l._data||-1,i,l)})}return this.delegate.listen(n,e,i,o)}}class sre{delegate;engine;_zone;_currentId=0;_microtaskId=1;_animationCallbacksBuffer=[];_rendererCache=new Map;_cdRecurDepth=0;constructor(n,e,i){this.delegate=n,this.engine=e,this._zone=i,e.onRemovalComplete=(o,r)=>{r?.removeChild(null,o)}}createRenderer(n,e){const o=this.delegate.createRenderer(n,e);if(!n||!e?.data?.animation){const c=this._rendererCache;let u=c.get(o);return u||(u=new BF("",o,this.engine,()=>c.delete(o)),c.set(o,u)),u}const r=e.id,s=e.id+"-"+this._currentId;this._currentId++,this.engine.register(s,n);const a=c=>{Array.isArray(c)?c.forEach(a):this.engine.registerTrigger(r,s,n,c.name,c)};return e.data.animation.forEach(a),new ire(this,s,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[s,a]=r;s(a)}),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()}componentReplaced(n){this.engine.flush(),this.delegate.componentReplaced?.(n)}}const VF=[{provide:Kw,useFactory:function cre(){return new vF}},{provide:Xh,useClass:(()=>{class t extends Xh{constructor(e,i,o){super(e,i,o)}ngOnDestroy(){this.flush()}static \u0275fac=function(i){return new(i||t)(le(Qe),le(qw),le(Kw))};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})()},{provide:No,useFactory:function dre(){return new sre(D(Tw),D(Xh),D(ge))}}],HF=[{provide:qw,useClass:Gw},{provide:xm,useValue:"NoopAnimations"},...VF],ax=[{provide:qw,useFactory:()=>new FF},{provide:xm,useFactory:()=>"BrowserAnimations"},...VF];let ure=(()=>{class t{static withConfig(e){return{ngModule:t,providers:e.disableAnimations?HF:ax}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({providers:ax,imports:[oF]})}return t})();function fa(t){return this instanceof fa?(this.v=t,this):new fa(t)}function $F(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 ux(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(s){return new Promise(function(a,l){!function o(r,s,a,l){Promise.resolve(l).then(function(c){r({value:c,done:a})},s)}(a,l,(s=t[r](s)).done,s.value)})}}}"function"==typeof SuppressedError&&SuppressedError;const WF=t=>t&&"number"==typeof t.length&&"function"!=typeof t;function GF(t){return Jt(t?.then)}function qF(t){return Jt(t[Jv])}function KF(t){return Symbol.asyncIterator&&Jt(t?.[Symbol.asyncIterator])}function YF(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 XF=function Bre(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function ZF(t){return Jt(t?.[XF])}function QF(t){return function zF(t,n,e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o,i=e.apply(t,n||[]),r=[];return o=Object.create(("function"==typeof AsyncIterator?AsyncIterator:Object).prototype),a("next"),a("throw"),a("return",function s(_){return function(w){return Promise.resolve(w).then(_,p)}}),o[Symbol.asyncIterator]=function(){return this},o;function a(_,w){i[_]&&(o[_]=function(x){return new Promise(function(T,E){r.push([_,x,T,E])>1||l(_,x)})},w&&(o[_]=w(o[_])))}function l(_,w){try{!function c(_){_.value instanceof fa?Promise.resolve(_.value.v).then(u,p):g(r[0][2],_)}(i[_](w))}catch(x){g(r[0][3],x)}}function u(_){l("next",_)}function p(_){l("throw",_)}function g(_,w){_(w),r.shift(),r.length&&l(r[0][0],r[0][1])}}(this,arguments,function*(){const e=t.getReader();try{for(;;){const{value:i,done:o}=yield fa(e.read());if(o)return yield fa(void 0);yield yield fa(i)}}finally{e.releaseLock()}})}function JF(t){return Jt(t?.getReader)}function Vi(t){if(t instanceof Rt)return t;if(null!=t){if(qF(t))return function Vre(t){return new Rt(n=>{const e=t[Jv]();if(Jt(e.subscribe))return e.subscribe(n);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(t);if(WF(t))return function Hre(t){return new Rt(n=>{for(let e=0;e{t.then(e=>{n.closed||(n.next(e),n.complete())},e=>n.error(e)).then(null,LD)})}(t);if(KF(t))return eL(t);if(ZF(t))return function Ure(t){return new Rt(n=>{for(const e of t)if(n.next(e),n.closed)return;n.complete()})}(t);if(JF(t))return function zre(t){return eL(QF(t))}(t)}throw YF(t)}function eL(t){return new Rt(n=>{(function $re(t,n){var e,i,o,r;return function jF(t,n,e,i){return new(e||(e=Promise))(function(r,s){function a(u){try{c(i.next(u))}catch(p){s(p)}}function l(u){try{c(i.throw(u))}catch(p){s(p)}}function c(u){u.done?r(u.value):function o(r){return r instanceof e?r:new e(function(s){s(r)})}(u.value).then(a,l)}c((i=i.apply(t,n||[])).next())})}(this,void 0,void 0,function*(){try{for(e=$F(t);!(i=yield e.next()).done;)if(n.next(i.value),n.closed)return}catch(s){o={error:s}}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 Zn(t,n){return bn((e,i)=>{let o=null,r=0,s=!1;const a=()=>s&&!o&&i.complete();e.subscribe(en(i,l=>{o?.unsubscribe();let c=0;const u=r++;Vi(t(l,u)).subscribe(o=en(i,p=>i.next(n?n(l,p,u,c++):p),()=>{o=null,a()}))},()=>{s=!0,a()}))})}function M_(t){return bn((n,e)=>{try{n.subscribe(e)}finally{e.add(t)}})}function Ss(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 Et(t,n,e=1/0){return Jt(n)?Et((i,o)=>ye((r,s)=>n(i,r,o,s))(Vi(t(i,o))),e):("number"==typeof n&&(e=n),bn((i,o)=>function Wre(t,n,e,i,o,r,s,a){const l=[];let c=0,u=0,p=!1;const g=()=>{p&&!l.length&&!c&&n.complete()},_=x=>c{r&&n.next(x),c++;let T=!1;Vi(e(x,u++)).subscribe(en(n,E=>{o?.(E),r?_(E):n.next(E)},()=>{T=!0},void 0,()=>{if(T)try{for(c--;l.length&&cw(E)):w(E)}g()}catch(E){n.error(E)}}))};return t.subscribe(en(n,_,()=>{p=!0,g()})),()=>{a?.()}}(i,o,t,e)))}function Zh(t,n){return Jt(n)?Et(t,n,1):Et(t,1)}function vn(t,n){return bn((e,i)=>{let o=0;e.subscribe(en(i,r=>t.call(n,r,o++)&&i.next(r)))})}function tL(t,n=0){return bn((e,i)=>{e.subscribe(en(i,o=>Ss(i,t,()=>i.next(o),n),()=>Ss(i,t,()=>i.complete(),n),o=>Ss(i,t,()=>i.error(o),n)))})}function nL(t,n=0){return bn((e,i)=>{i.add(t.schedule(()=>e.subscribe(i),n))})}function iL(t,n){if(!t)throw new Error("Iterable cannot be null");return new Rt(e=>{Ss(e,n,()=>{const i=t[Symbol.asyncIterator]();Ss(e,n,()=>{i.next().then(o=>{o.done?e.complete():e.next(o.value)})},0,!0)})})}function Un(t,n){return n?function Zre(t,n){if(null!=t){if(qF(t))return function Gre(t,n){return Vi(t).pipe(nL(n),tL(n))}(t,n);if(WF(t))return function Kre(t,n){return new Rt(e=>{let i=0;return n.schedule(function(){i===t.length?e.complete():(e.next(t[i++]),e.closed||this.schedule())})})}(t,n);if(GF(t))return function qre(t,n){return Vi(t).pipe(nL(n),tL(n))}(t,n);if(KF(t))return iL(t,n);if(ZF(t))return function Yre(t,n){return new Rt(e=>{let i;return Ss(e,n,()=>{i=t[XF](),Ss(e,n,()=>{let o,r;try{({value:o,done:r}=i.next())}catch(s){return void e.error(s)}r?e.complete():e.next(o)},0,!0)}),()=>Jt(i?.return)&&i.return()})}(t,n);if(JF(t))return function Xre(t,n){return iL(QF(t),n)}(t,n)}throw YF(t)}(t,n):Vi(t)}function oL(t){return t&&Jt(t.schedule)}function fx(t){return t[t.length-1]}function rL(t){return Jt(fx(t))?t.pop():void 0}function Qh(t){return oL(fx(t))?t.pop():void 0}function ae(...t){return Un(t,Qh(t))}class jo{headers;normalizedNames=new Map;lazyInit;lazyUpdate=null;constructor(n){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=e.slice(i+1).trim();this.addHeaderEntry(o,r)}})}:typeof Headers<"u"&&n instanceof Headers?(this.headers=new Map,n.forEach((e,i)=>{this.addHeaderEntry(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 s=this.headers.get(e);if(!s)return;s=s.filter(a=>-1===r.indexOf(a)),0===s.length?(this.headers.delete(e),this.normalizedNames.delete(e)):this.headers.set(e,s)}else this.headers.delete(e),this.normalizedNames.delete(e)}}addHeaderEntry(n,e){const i=n.toLowerCase();this.maybeSetNormalizedName(n,i),this.headers.has(i)?this.headers.get(i).push(e):this.headers.set(i,[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 Jre{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()}}class ese{encodeKey(n){return aL(n)}encodeValue(n){return aL(n)}decodeKey(n){return decodeURIComponent(n)}decodeValue(n){return decodeURIComponent(n)}}const nse=/%(\d[a-f0-9])/gi,ise={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function aL(t){return encodeURIComponent(t).replace(nse,(n,e)=>ise[e]??n)}function E_(t){return`${t}`}class pa{map;encoder;updates=null;cloneFrom=null;constructor(n={}){if(this.encoder=n.encoder||new ese,n.fromString){if(n.fromObject)throw new X(2805,!1);this.map=function tse(t,n){const e=new Map;return t.length>0&&t.replace(/^\?/,"").split("&").forEach(o=>{const r=o.indexOf("="),[s,a]=-1==r?[n.decodeKey(o),""]:[n.decodeKey(o.slice(0,r)),n.decodeValue(o.slice(r+1))],l=e.get(s)||[];l.push(a),e.set(s,l)}),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(E_):[E_(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 pa({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(E_(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(E_(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)}}function lL(t){return typeof ArrayBuffer<"u"&&t instanceof ArrayBuffer}function cL(t){return typeof Blob<"u"&&t instanceof Blob}function dL(t){return typeof FormData<"u"&&t instanceof FormData}const Jh="Content-Type",uL="text/plain",hL="application/json",fL=`${hL}, ${uL}, */*`;class ef{url;body=null;headers;context;reportProgress=!1;withCredentials=!1;credentials;keepalive=!1;cache;priority;mode;redirect;referrer;integrity;referrerPolicy;responseType="json";method;params;urlWithParams;transferCache;timeout;constructor(n,e,i,o){let r;if(this.url=e,this.method=n.toUpperCase(),function ose(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){if(this.reportProgress=!!r.reportProgress,this.withCredentials=!!r.withCredentials,this.keepalive=!!r.keepalive,r.responseType&&(this.responseType=r.responseType),r.headers&&(this.headers=r.headers),r.context&&(this.context=r.context),r.params&&(this.params=r.params),r.priority&&(this.priority=r.priority),r.cache&&(this.cache=r.cache),r.credentials&&(this.credentials=r.credentials),"number"==typeof r.timeout){if(r.timeout<1||!Number.isInteger(r.timeout))throw new X(2822,"");this.timeout=r.timeout}r.mode&&(this.mode=r.mode),r.redirect&&(this.redirect=r.redirect),r.integrity&&(this.integrity=r.integrity),r.referrer&&(this.referrer=r.referrer),r.referrerPolicy&&(this.referrerPolicy=r.referrerPolicy),this.transferCache=r.transferCache}if(this.headers??=new jo,this.context??=new Jre,this.params){const s=this.params.toString();if(0===s.length)this.urlWithParams=e;else{const a=e.indexOf("?");this.urlWithParams=e+(-1===a?"?":aee.set(ie,n.setHeaders[ie]),W)),n.setParams&&(Y=Object.keys(n.setParams).reduce((ee,ie)=>ee.set(ie,n.setParams[ie]),Y)),new ef(e,i,T,{params:Y,headers:W,context:K,reportProgress:R,responseType:o,withCredentials:E,transferCache:w,keepalive:r,cache:a,priority:s,timeout:x,mode:l,redirect:c,credentials:u,referrer:p,integrity:g,referrerPolicy:_})}}var ma=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}(ma||{});class px{headers;status;statusText;url;ok;type;redirected;responseType;constructor(n,e=200,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.redirected=n.redirected,this.responseType=n.responseType,this.ok=this.status>=200&&this.status<300}}class P_ extends px{constructor(n={}){super(n)}type=ma.ResponseHeader;clone(n={}){return new P_({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 tf extends px{body;constructor(n={}){super(n),this.body=void 0!==n.body?n.body:null}type=ma.Response;clone(n={}){return new tf({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,redirected:n.redirected??this.redirected,responseType:n.responseType??this.responseType})}}class Ll extends px{name="HttpErrorResponse";message;error;ok=!1;constructor(n){super(n,0,"Unknown Error"),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}}const mL=new Z(""),use=/^\)\]\}',?\n/;let gL=(()=>{class t{xhrFactory;tracingService=D(ia,{optional:!0});constructor(e){this.xhrFactory=e}maybePropagateTrace(e){return this.tracingService?.propagate?this.tracingService.propagate(e):e}handle(e){if("JSONP"===e.method)throw new X(-2800,!1);const i=this.xhrFactory;return ae(null).pipe(Zn(()=>new Rt(r=>{const s=i.build();if(s.open(e.method,e.urlWithParams),e.withCredentials&&(s.withCredentials=!0),e.headers.forEach((T,E)=>s.setRequestHeader(T,E.join(","))),e.headers.has("Accept")||s.setRequestHeader("Accept",fL),!e.headers.has(Jh)){const T=e.detectContentTypeHeader();null!==T&&s.setRequestHeader(Jh,T)}if(e.timeout&&(s.timeout=e.timeout),e.responseType){const T=e.responseType.toLowerCase();s.responseType="json"!==T?T:"text"}const a=e.serializeBody();let l=null;const c=()=>{if(null!==l)return l;const T=s.statusText||"OK",E=new jo(s.getAllResponseHeaders());return l=new P_({headers:E,status:s.status,statusText:T,url:s.responseURL||e.url}),l},u=this.maybePropagateTrace(()=>{let{headers:T,status:E,statusText:R,url:W}=c(),Y=null;204!==E&&(Y=typeof s.response>"u"?s.responseText:s.response),0===E&&(E=Y?200:0);let K=E>=200&&E<300;if("json"===e.responseType&&"string"==typeof Y){const ee=Y;Y=Y.replace(use,"");try{Y=""!==Y?JSON.parse(Y):null}catch(ie){Y=ee,K&&(K=!1,Y={error:ie,text:Y})}}K?(r.next(new tf({body:Y,headers:T,status:E,statusText:R,url:W||void 0})),r.complete()):r.error(new Ll({error:Y,headers:T,status:E,statusText:R,url:W||void 0}))}),p=this.maybePropagateTrace(T=>{const{url:E}=c(),R=new Ll({error:T,status:s.status||0,statusText:s.statusText||"Unknown Error",url:E||void 0});r.error(R)});let g=p;e.timeout&&(g=this.maybePropagateTrace(T=>{const{url:E}=c(),R=new Ll({error:new DOMException("Request timed out","TimeoutError"),status:s.status||0,statusText:s.statusText||"Request timeout",url:E||void 0});r.error(R)}));let _=!1;const w=this.maybePropagateTrace(T=>{_||(r.next(c()),_=!0);let E={type:ma.DownloadProgress,loaded:T.loaded};T.lengthComputable&&(E.total=T.total),"text"===e.responseType&&s.responseText&&(E.partialText=s.responseText),r.next(E)}),x=this.maybePropagateTrace(T=>{let E={type:ma.UploadProgress,loaded:T.loaded};T.lengthComputable&&(E.total=T.total),r.next(E)});return s.addEventListener("load",u),s.addEventListener("error",p),s.addEventListener("timeout",g),s.addEventListener("abort",p),e.reportProgress&&(s.addEventListener("progress",w),null!==a&&s.upload&&s.upload.addEventListener("progress",x)),s.send(a),r.next({type:ma.Sent}),()=>{s.removeEventListener("error",p),s.removeEventListener("abort",p),s.removeEventListener("load",u),s.removeEventListener("timeout",g),e.reportProgress&&(s.removeEventListener("progress",w),null!==a&&s.upload&&s.upload.removeEventListener("progress",x)),s.readyState!==s.DONE&&s.abort()}})))}static \u0275fac=function(i){return new(i||t)(le(ZT))};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function _L(t,n){return n(t)}function hse(t,n){return(e,i)=>n.intercept(e,{handle:o=>t(o,i)})}const pse=new Z(""),nf=new Z("",{factory:()=>[]}),mse=new Z(""),bL=new Z("",{factory:()=>!0});function gse(){let t=null;return(n,e)=>{null===t&&(t=(D(pse,{optional:!0})??[]).reduceRight(hse,_L));const i=D(tm);if(D(bL)){const r=i.add();return t(n,e).pipe(M_(r))}return t(n,e)}}let O_=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:function(i){let o=null;return o=i?new(i||t):le(gL),o},providedIn:"root"})}return t})(),_x=(()=>{class t{backend;injector;chain=null;pendingTasks=D(tm);contributeToStability=D(bL);constructor(e,i){this.backend=e,this.injector=i}handle(e){if(null===this.chain){const i=Array.from(new Set([...this.injector.get(nf),...this.injector.get(mse,[])]));this.chain=i.reduceRight((o,r)=>function fse(t,n,e){return(i,o)=>Yi(e,()=>n(i,r=>t(r,o)))}(o,r,this.injector),_L)}if(this.contributeToStability){const i=this.pendingTasks.add();return this.chain(e,o=>this.backend.handle(o)).pipe(M_(i))}return this.chain(e,i=>this.backend.handle(i))}static \u0275fac=function(i){return new(i||t)(le(O_),le(Nn))};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),bx=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:function(i){let o=null;return o=i?new(i||t):le(_x),o},providedIn:"root"})}return t})();function vx(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,credentials:t.credentials,transferCache:t.transferCache,timeout:t.timeout,keepalive:t.keepalive,priority:t.priority,cache:t.cache,mode:t.mode,redirect:t.redirect,integrity:t.integrity,referrer:t.referrer,referrerPolicy:t.referrerPolicy}}let ga=(()=>{class t{handler;constructor(e){this.handler=e}request(e,i,o={}){let r;if(e instanceof ef)r=e;else{let l,c;l=o.headers instanceof jo?o.headers:new jo(o.headers),o.params&&(c=o.params instanceof pa?o.params:new pa({fromObject:o.params})),r=new ef(e,i,void 0!==o.body?o.body:null,{headers:l,context:o.context,params:c,reportProgress:o.reportProgress,responseType:o.responseType||"json",withCredentials:o.withCredentials,transferCache:o.transferCache,keepalive:o.keepalive,priority:o.priority,cache:o.cache,mode:o.mode,redirect:o.redirect,credentials:o.credentials,referrer:o.referrer,referrerPolicy:o.referrerPolicy,integrity:o.integrity,timeout:o.timeout})}const s=ae(r).pipe(Zh(l=>this.handler.handle(l)));if(e instanceof ef||"events"===o.observe)return s;const a=s.pipe(vn(l=>l instanceof tf));switch(o.observe||"body"){case"body":switch(r.responseType){case"arraybuffer":return a.pipe(ye(l=>{if(null!==l.body&&!(l.body instanceof ArrayBuffer))throw new X(2806,!1);return l.body}));case"blob":return a.pipe(ye(l=>{if(null!==l.body&&!(l.body instanceof Blob))throw new X(2807,!1);return l.body}));case"text":return a.pipe(ye(l=>{if(null!==l.body&&"string"!=typeof l.body)throw new X(2808,!1);return l.body}));default:return a.pipe(ye(l=>l.body))}case"response":return a;default:throw new X(2809,!1)}}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 pa).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,vx(o,i))}post(e,i,o={}){return this.request("POST",e,vx(o,i))}put(e,i,o={}){return this.request("PUT",e,vx(o,i))}static \u0275fac=function(i){return new(i||t)(le(bx))};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const yL=new Z("",{factory:()=>!0}),CL=new Z("",{factory:()=>"XSRF-TOKEN"}),wL=new Z("",{factory:()=>"X-XSRF-TOKEN"});let wse=(()=>{class t{cookieName=D(CL);doc=D(Qe);lastCookieString="";lastToken=null;parseCount=0;getToken(){const e=this.doc.cookie||"";return e!==this.lastCookieString&&(this.parseCount++,this.lastToken=XT(e,this.cookieName),this.lastCookieString=e),this.lastToken}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),xse=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:function(i){let o=null;return o=i?new(i||t):le(wse),o},providedIn:"root"})}return t})();function Sse(t,n){if(!D(yL)||"GET"===t.method||"HEAD"===t.method)return n(t);try{const o=D(im).href,{origin:r}=new URL(o),{origin:s}=new URL(t.url,r);if(r!==s)return n(t)}catch{return n(t)}const e=D(xse).getToken(),i=D(wL);return null!=e&&!t.headers.has(i)&&(t=t.clone({headers:t.headers.set(i,e)})),n(t)}var _a=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}(_a||{});function Bl(t,n){return{\u0275kind:t,\u0275providers:n}}function kse(...t){const n=[ga,_x,{provide:bx,useExisting:_x},{provide:O_,useFactory:()=>D(mL,{optional:!0})??D(gL)},{provide:nf,useValue:Sse,multi:!0}];for(const e of t)n.push(...e.\u0275providers);return Iu(n)}const xL=new Z("");function Hr(t){return!!t&&(t instanceof Rt||Jt(t.lift)&&Jt(t.subscribe))}const{isArray:Tse}=Array,{getPrototypeOf:Mse,prototype:Ese,keys:Ise}=Object;function SL(t){if(1===t.length){const n=t[0];if(Tse(n))return{args:n,keys:null};if(function Pse(t){return t&&"object"==typeof t&&Mse(t)===Ese}(n)){const e=Ise(n);return{args:e.map(i=>n[i]),keys:e}}}return{args:t,keys:null}}const{isArray:Ose}=Array;function kL(t){return ye(n=>function Ase(t,n){return Ose(n)?t(...n):t(n)}(t,n))}function DL(t,n){return t.reduce((e,i,o)=>(e[i]=n[o],e),{})}function yx(...t){const n=Qh(t),e=rL(t),{args:i,keys:o}=SL(t);if(0===i.length)return Un([],n);const r=new Rt(function Rse(t,n,e=Ua){return i=>{TL(n,()=>{const{length:o}=t,r=new Array(o);let s=o,a=o;for(let l=0;l{const c=Un(t[l],n);let u=!1;c.subscribe(en(i,p=>{r[l]=p,u||(u=!0,a--),a||i.next(e(r.slice()))},()=>{--s||i.complete()}))},i)},i)}}(i,n,o?s=>DL(o,s):Ua));return e?r.pipe(kL(e)):r}function TL(t,n,e){t?Ss(e,t,n):n()}const Cx=Kv(t=>function(){t(this),this.name="EmptyError",this.message="no elements in sequence"});function Ad(t=1/0){return Et(Ua,t)}function ks(...t){return function Nse(){return Ad(1)}()(Un(t,Qh(t)))}function ba(t){return new Rt(n=>{Vi(t()).subscribe(n)})}const Mi=new Rt(t=>t.complete());function cr(t,n){const e=Jt(t)?t:()=>t,i=o=>o.error(e());return new Rt(n?o=>n.schedule(i,0,o):i)}function un(t){return t<=0?()=>Mi:bn((n,e)=>{let i=0;n.subscribe(en(e,o=>{++i<=t&&(e.next(o),t<=i&&e.complete())}))})}function Vse(t=Hse){return bn((n,e)=>{let i=!1;n.subscribe(en(e,o=>{i=!0,e.next(o)},()=>i?e.complete():e.error(t())))})}function Hse(){return new Cx}function jr(t,n){const e=arguments.length>=2;return i=>i.pipe(t?vn((o,r)=>t(o,r,i)):Ua,un(1),e?function Bse(t){return bn((n,e)=>{let i=!1;n.subscribe(en(e,o=>{i=!0,e.next(o)},()=>{i||e.next(t),e.complete()}))})}(n):Vse(()=>new Cx))}function to(...t){const n=Qh(t);return bn((e,i)=>{(n?ks(t,e,n):ks(t,e)).subscribe(i)})}function on(t){return bn((n,e)=>{Vi(t).subscribe(en(e,()=>e.complete(),kp)),!e.closed&&n.subscribe(e)})}function ni(t,n,e){const i=Jt(t)||n||e?{next:t,error:n,complete:e}:t;return i?bn((o,r)=>{var s;null===(s=i.subscribe)||void 0===s||s.call(i);let a=!0;o.subscribe(en(r,l=>{var c;null===(c=i.next)||void 0===c||c.call(i,l),r.next(l)},()=>{var l;a=!1,null===(l=i.complete)||void 0===l||l.call(i),r.complete()},l=>{var c;a=!1,null===(c=i.error)||void 0===c||c.call(i,l),r.error(l)},()=>{var l,c;a&&(null===(l=i.unsubscribe)||void 0===l||l.call(i)),null===(c=i.finalize)||void 0===c||c.call(i)}))}):Ua}function ML(t){return t<=0?()=>Mi:bn((n,e)=>{let i=[];n.subscribe(en(e,o=>{i.push(o),t{for(const o of i)e.next(o);e.complete()},void 0,()=>{i=null}))})}function go(t){return bn((n,e)=>{let r,i=null,o=!1;i=n.subscribe(en(e,void 0,void 0,s=>{r=Vi(t(s,go(t)(n))),i?(i.unsubscribe(),i=null,r.subscribe(e)):o=!0})),o&&(i.unsubscribe(),i=null,r.subscribe(e))})}let Qse=(()=>{class t{_doc;constructor(e){this._doc=e}getTitle(){return this._doc.title}setTitle(e){this._doc.title=e||""}static \u0275fac=function(i){return new(i||t)(le(Qe))};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),wx=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:function(i){let o=null;return o=i?new(i||t):le(nae),o},providedIn:"root"})}return t})(),nae=(()=>{class t extends wx{_doc;constructor(e){super(),this._doc=e}sanitize(e,i){if(null==i)return null;switch(e){case ui.NONE:return i;case ui.HTML:return Rr(i,"HTML")?ko(i):n2(this._doc,String(i)).toString();case ui.STYLE:return Rr(i,"Style")?ko(i):i;case ui.SCRIPT:if(Rr(i,"Script"))return ko(i);throw new X(5200,!1);case ui.URL:return Rr(i,"URL")?ko(i):Ju(String(i));case ui.RESOURCE_URL:if(Rr(i,"ResourceURL"))return ko(i);throw new X(5201,!1);default:throw new X(5202,!1)}}bypassSecurityTrustHtml(e){return function k$(t){return new v$(t)}(e)}bypassSecurityTrustStyle(e){return function D$(t){return new y$(t)}(e)}bypassSecurityTrustScript(e){return function T$(t){return new C$(t)}(e)}bypassSecurityTrustUrl(e){return function M$(t){return new w$(t)}(e)}bypassSecurityTrustResourceUrl(e){return function E$(t){return new x$(t)}(e)}static \u0275fac=function(i){return new(i||t)(le(Qe))};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Ge="primary",rf=Symbol("RouteTitle");class iae{params;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 Rd(t){return new iae(t)}function xx(t,n,e){for(let i=0;it.length||"full"===e.pathMatch&&(n.hasChildren()||i.lengtht.length||"full"===e.pathMatch&&n.hasChildren()&&"**"!==e.path)return null;const a={};return xx(r,t.slice(0,r.length),a)&&xx(s,t.slice(t.length-s.length),a)?{consumed:t,posParams:a}:null}function A_(t){return new Promise((n,e)=>{t.pipe(jr()).subscribe({next:i=>n(i),error:i=>e(i)})})}function Ur(t,n){const e=t?Sx(t):void 0,i=n?Sx(n):void 0;if(!e||!i||e.length!=i.length)return!1;let o;for(let r=0;ri[r]===o)}return t===n}function Vl(t){return Hr(t)?t:Sh(t)?Un(Promise.resolve(t)):ae(t)}function NL(t){return Hr(t)?A_(t):Promise.resolve(t)}const aae={exact:function BL(t,n,e){if(!Hl(t.segments,n.segments)||!N_(t.segments,n.segments,e)||t.numberOfChildren!==n.numberOfChildren)return!1;for(const i in n.children)if(!t.children[i]||!BL(t.children[i],n.children[i],e))return!1;return!0},subset:VL},FL={exact:function cae(t,n){return Ur(t,n)},subset:function dae(t,n){return Object.keys(n).length<=Object.keys(t).length&&Object.keys(n).every(e=>RL(t[e],n[e]))},ignored:()=>!0},LL={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},R_={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};function kx(t,n,e){return aae[e.paths](t.root,n.root,e.matrixParams)&&FL[e.queryParams](t.queryParams,n.queryParams)&&!("exact"===e.fragment&&t.fragment!==n.fragment)}function VL(t,n,e){return HL(t,n,n.segments,e)}function HL(t,n,e,i){if(t.segments.length>e.length){const o=t.segments.slice(0,e.length);return!(!Hl(o,e)||n.hasChildren()||!N_(o,e,i))}if(t.segments.length===e.length){if(!Hl(t.segments,e)||!N_(t.segments,e,i))return!1;for(const o in n.children)if(!t.children[o]||!VL(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!!(Hl(t.segments,o)&&N_(t.segments,o,i)&&t.children[Ge])&&HL(t.children[Ge],n,r,i)}}function N_(t,n,e){return n.every((i,o)=>FL[e](t[o].parameters,i.parameters))}class dr{root;queryParams;fragment;_queryParamMap;constructor(n=new Ut([],{}),e={},i=null){this.root=n,this.queryParams=e,this.fragment=i}get queryParamMap(){return this._queryParamMap??=Rd(this.queryParams),this._queryParamMap}toString(){return fae.serialize(this)}}class Ut{segments;children;parent=null;constructor(n,e){this.segments=n,this.children=e,Object.values(e).forEach(i=>i.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return F_(this)}}class sf{path;parameters;_parameterMap;constructor(n,e){this.path=n,this.parameters=e}get parameterMap(){return this._parameterMap??=Rd(this.parameters),this._parameterMap}toString(){return zL(this)}}function Hl(t,n){return t.length===n.length&&t.every((e,i)=>e.path===n[i].path)}let Nd=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:()=>new af,providedIn:"root"})}return t})();class af{parse(n){const e=new Sae(n);return new dr(e.parseRootSegment(),e.parseQueryParams(),e.parseFragment())}serialize(n){const e=`/${lf(n.root,!0)}`,i=function gae(t){const n=Object.entries(t).map(([e,i])=>Array.isArray(i)?i.map(o=>`${L_(e)}=${L_(o)}`).join("&"):`${L_(e)}=${L_(i)}`).filter(e=>e);return n.length?`?${n.join("&")}`:""}(n.queryParams);return`${e}${i}${"string"==typeof n.fragment?`#${function pae(t){return encodeURI(t)}(n.fragment)}`:""}`}}const fae=new af;function F_(t){return t.segments.map(n=>zL(n)).join("/")}function lf(t,n){if(!t.hasChildren())return F_(t);if(n){const e=t.children[Ge]?lf(t.children[Ge],!1):"",i=[];return Object.entries(t.children).forEach(([o,r])=>{o!==Ge&&i.push(`${o}:${lf(r,!1)}`)}),i.length>0?`${e}(${i.join("//")})`:e}{const e=function hae(t,n){let e=[];return Object.entries(t.children).forEach(([i,o])=>{i===Ge&&(e=e.concat(n(o,i)))}),Object.entries(t.children).forEach(([i,o])=>{i!==Ge&&(e=e.concat(n(o,i)))}),e}(t,(i,o)=>o===Ge?[lf(t.children[Ge],!1)]:[`${o}:${lf(i,!1)}`]);return 1===Object.keys(t.children).length&&null!=t.children[Ge]?`${F_(t)}/${e[0]}`:`${F_(t)}/(${e.join("//")})`}}function jL(t){return encodeURIComponent(t).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function L_(t){return jL(t).replace(/%3B/gi,";")}function Dx(t){return jL(t).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function B_(t){return decodeURIComponent(t)}function UL(t){return B_(t.replace(/\+/g,"%20"))}function zL(t){return`${Dx(t.path)}${function mae(t){return Object.entries(t).map(([n,e])=>`;${Dx(n)}=${Dx(e)}`).join("")}(t.parameters)}`}const _ae=/^[^\/()?;#]+/;function Tx(t){const n=t.match(_ae);return n?n[0]:""}const bae=/^[^\/()?;=#]+/,yae=/^[^=?&#]+/,wae=/^[^&#]+/;class Sae{url;remaining;constructor(n){this.url=n,this.remaining=n}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new Ut([],{}):new Ut([],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(n=0){if(n>50)throw new X(4010,!1);if(""===this.remaining)return{};this.consumeOptional("/");const e=[];for(this.peekStartsWith("(")||e.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),e.push(this.parseSegment());let i={};this.peekStartsWith("/(")&&(this.capture("/"),i=this.parseParens(!0,n));let o={};return this.peekStartsWith("(")&&(o=this.parseParens(!1,n)),(e.length>0||Object.keys(i).length>0)&&(o[Ge]=new Ut(e,i)),o}parseSegment(){const n=Tx(this.remaining);if(""===n&&this.peekStartsWith(";"))throw new X(4009,!1);return this.capture(n),new sf(B_(n),this.parseMatrixParams())}parseMatrixParams(){const n={};for(;this.consumeOptional(";");)this.parseParam(n);return n}parseParam(n){const e=function vae(t){const n=t.match(bae);return n?n[0]:""}(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){const o=Tx(this.remaining);o&&(i=o,this.capture(i))}n[B_(e)]=B_(i)}parseQueryParam(n){const e=function Cae(t){const n=t.match(yae);return n?n[0]:""}(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){const s=function xae(t){const n=t.match(wae);return n?n[0]:""}(this.remaining);s&&(i=s,this.capture(i))}const o=UL(e),r=UL(i);if(n.hasOwnProperty(o)){let s=n[o];Array.isArray(s)||(s=[s],n[o]=s),s.push(r)}else n[o]=r}parseParens(n,e){const i={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const o=Tx(this.remaining),r=this.remaining[o.length];if("/"!==r&&")"!==r&&";"!==r)throw new X(4010,!1);let s;o.indexOf(":")>-1?(s=o.slice(0,o.indexOf(":")),this.capture(s),this.capture(":")):n&&(s=Ge);const a=this.parseChildren(e+1);i[s??Ge]=1===Object.keys(a).length&&a[Ge]?a[Ge]:new Ut([],a),this.consumeOptional("//")}return i}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 X(4011,!1)}}function $L(t){return t.segments.length>0?new Ut([],{[Ge]:t}):t}function WL(t){const n={};for(const[i,o]of Object.entries(t.children)){const r=WL(o);if(i===Ge&&0===r.segments.length&&r.hasChildren())for(const[s,a]of Object.entries(r.children))n[s]=a;else(r.segments.length>0||r.hasChildren())&&(n[i]=r)}return function kae(t){if(1===t.numberOfChildren&&t.children[Ge]){const n=t.children[Ge];return new Ut(t.segments.concat(n.segments),n.children)}return t}(new Ut(t.segments,n))}function jl(t){return t instanceof dr}function GL(t){let n;const o=$L(function e(r){const s={};for(const l of r.children){const c=e(l);s[l.outlet]=c}const a=new Ut(r.url,s);return r===t&&(n=a),a}(t.root));return n??o}function qL(t,n,e,i,o){let r=t;for(;r.parent;)r=r.parent;if(0===n.length)return Mx(r,r,r,e,i,o);const s=function Tae(t){if("string"==typeof t[0]&&1===t.length&&"/"===t[0])return new XL(!0,0,t);let n=0,e=!1;const i=t.reduce((o,r,s)=>{if("object"==typeof r&&null!=r){if(r.outlets){const a={};return Object.entries(r.outlets).forEach(([l,c])=>{a[l]="string"==typeof c?c.split("/"):c}),[...o,{outlets:a}]}if(r.segmentPath)return[...o,r.segmentPath]}return"string"!=typeof r?[...o,r]:0===s?(r.split("/").forEach((a,l)=>{0==l&&"."===a||(0==l&&""===a?e=!0:".."===a?n++:""!=a&&o.push(a))}),o):[...o,r]},[]);return new XL(e,n,i)}(n);if(s.toRoot())return Mx(r,r,new Ut([],{}),e,i,o);const a=function Mae(t,n,e){if(t.isAbsolute)return new H_(n,!0,0);if(!e)return new H_(n,!1,NaN);if(null===e.parent)return new H_(e,!0,0);const i=V_(t.commands[0])?0:1;return function Eae(t,n,e){let i=t,o=n,r=e;for(;r>o;){if(r-=o,i=i.parent,!i)throw new X(4005,!1);o=i.segments.length}return new H_(i,!1,o-r)}(e,e.segments.length-1+i,t.numberOfDoubleDots)}(s,r,t),l=a.processChildren?df(a.segmentGroup,a.index,s.commands):ZL(a.segmentGroup,a.index,s.commands);return Mx(r,a.segmentGroup,l,e,i,o)}function V_(t){return"object"==typeof t&&null!=t&&!t.outlets&&!t.segmentPath}function cf(t){return"object"==typeof t&&null!=t&&t.outlets}function KL(t,n,e){t||="\u0275";const i=new dr;return i.queryParams={[t]:n},e.parse(e.serialize(i)).queryParams[t]}function Mx(t,n,e,i,o,r){const s={};for(const[c,u]of Object.entries(i??{}))s[c]=Array.isArray(u)?u.map(p=>KL(c,p,r)):KL(c,u,r);let a;a=t===n?e:YL(t,n,e);const l=$L(WL(a));return new dr(l,s,o)}function YL(t,n,e){const i={};return Object.entries(t.children).forEach(([o,r])=>{i[o]=r===n?e:YL(r,n,e)}),new Ut(t.segments,i)}class XL{isAbsolute;numberOfDoubleDots;commands;constructor(n,e,i){if(this.isAbsolute=n,this.numberOfDoubleDots=e,this.commands=i,n&&i.length>0&&V_(i[0]))throw new X(4003,!1);const o=i.find(cf);if(o&&o!==function sae(t){return t.length>0?t[t.length-1]:null}(i))throw new X(4004,!1)}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class H_{segmentGroup;processChildren;index;constructor(n,e,i){this.segmentGroup=n,this.processChildren=e,this.index=i}}function ZL(t,n,e){if(t??=new Ut([],{}),0===t.segments.length&&t.hasChildren())return df(t,n,e);const i=function Pae(t,n,e){let i=0,o=n;const r={match:!1,pathIndex:0,commandIndex:0};for(;o=e.length)return r;const s=t.segments[o],a=e[i];if(cf(a))break;const l=`${a}`,c=i0&&void 0===l)break;if(l&&c&&"object"==typeof c&&void 0===c.outlets){if(!JL(l,c,s))return r;i+=2}else{if(!JL(l,{},s))return r;i++}o++}return{match:!0,pathIndex:o,commandIndex:i}}(t,n,e),o=e.slice(i.commandIndex);if(i.match&&i.pathIndexr!==Ge)&&t.children[Ge]&&1===t.numberOfChildren&&0===t.children[Ge].segments.length){const r=df(t.children[Ge],n,e);return new Ut(t.segments,r.children)}return Object.entries(i).forEach(([r,s])=>{"string"==typeof s&&(s=[s]),null!==s&&(o[r]=ZL(t.children[r],n,s))}),Object.entries(t.children).forEach(([r,s])=>{void 0===i[r]&&(o[r]=s)}),new Ut(t.segments,o)}}function Ex(t,n,e){const i=t.segments.slice(0,n);let o=0;for(;o{"string"==typeof i&&(i=[i]),null!==i&&(n[e]=Ex(new Ut([],{}),0,i))}),n}function QL(t){const n={};return Object.entries(t).forEach(([e,i])=>n[e]=`${i}`),n}function JL(t,n,e){return t==e.path&&Ur(n,e.parameters)}const uf="imperative";var _t=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}(_t||{});class zr{id;url;constructor(n,e){this.id=n,this.url=e}}class j_ extends zr{type=_t.NavigationStart;navigationTrigger;restoredState;constructor(n,e,i="imperative",o=null){super(n,e),this.navigationTrigger=i,this.restoredState=o}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class $r extends zr{urlAfterRedirects;type=_t.NavigationEnd;constructor(n,e,i){super(n,e),this.urlAfterRedirects=i}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}var _o=function(t){return t[t.Redirect=0]="Redirect",t[t.SupersededByNewNavigation=1]="SupersededByNewNavigation",t[t.NoDataFromResolver=2]="NoDataFromResolver",t[t.GuardRejected=3]="GuardRejected",t[t.Aborted=4]="Aborted",t}(_o||{}),U_=function(t){return t[t.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",t[t.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",t}(U_||{});class ya extends zr{reason;code;type=_t.NavigationCancel;constructor(n,e,i,o){super(n,e),this.reason=i,this.code=o}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class Fd extends zr{reason;code;type=_t.NavigationSkipped;constructor(n,e,i,o){super(n,e),this.reason=i,this.code=o}}class Ix extends zr{error;target;type=_t.NavigationError;constructor(n,e,i,o){super(n,e),this.error=i,this.target=o}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class e3 extends zr{urlAfterRedirects;state;type=_t.RoutesRecognized;constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Rae extends zr{urlAfterRedirects;state;type=_t.GuardsCheckStart;constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Nae extends zr{urlAfterRedirects;state;shouldActivate;type=_t.GuardsCheckEnd;constructor(n,e,i,o,r){super(n,e),this.urlAfterRedirects=i,this.state=o,this.shouldActivate=r}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class Fae extends zr{urlAfterRedirects;state;type=_t.ResolveStart;constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Lae extends zr{urlAfterRedirects;state;type=_t.ResolveEnd;constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Bae{route;type=_t.RouteConfigLoadStart;constructor(n){this.route=n}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class Vae{route;type=_t.RouteConfigLoadEnd;constructor(n){this.route=n}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class Hae{snapshot;type=_t.ChildActivationStart;constructor(n){this.snapshot=n}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class jae{snapshot;type=_t.ChildActivationEnd;constructor(n){this.snapshot=n}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Uae{snapshot;type=_t.ActivationStart;constructor(n){this.snapshot=n}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class zae{snapshot;type=_t.ActivationEnd;constructor(n){this.snapshot=n}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class t3{routerEvent;position;anchor;scrollBehavior;type=_t.Scroll;constructor(n,e,i,o){this.routerEvent=n,this.position=e,this.anchor=i,this.scrollBehavior=o}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}class Px{}class n3{}class z_{url;navigationBehaviorOptions;constructor(n,e){this.url=n,this.navigationBehaviorOptions=e}}class Wae{rootInjector;outlet=null;route=null;children;attachRef=null;get injector(){return this.route?.snapshot._environmentInjector??this.rootInjector}constructor(n){this.rootInjector=n,this.children=new hf(this.rootInjector)}}let hf=(()=>{class t{rootInjector;contexts=new Map;constructor(e){this.rootInjector=e}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 Wae(this.rootInjector),this.contexts.set(e,i)),i}getContext(e){return this.contexts.get(e)||null}static \u0275fac=function(i){return new(i||t)(le(Nn))};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();class i3{_root;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=Ox(n,this._root);return e?e.children.map(i=>i.value):[]}firstChild(n){const e=Ox(n,this._root);return e&&e.children.length>0?e.children[0].value:null}siblings(n){const e=Ax(n,this._root);return e.length<2?[]:e[e.length-2].children.map(o=>o.value).filter(o=>o!==n)}pathFromRoot(n){return Ax(n,this._root).map(e=>e.value)}}function Ox(t,n){if(t===n.value)return n;for(const e of n.children){const i=Ox(t,e);if(i)return i}return null}function Ax(t,n){if(t===n.value)return[n];for(const e of n.children){const i=Ax(t,e);if(i.length)return i.unshift(n),i}return[]}class ur{value;children;constructor(n,e){this.value=n,this.children=e}toString(){return`TreeNode(${this.value})`}}function Ld(t){const n={};return t&&t.children.forEach(e=>n[e.value.outlet]=e),n}class o3 extends i3{snapshot;constructor(n,e){super(n),this.snapshot=e,Fx(this,n)}toString(){return this.snapshot.toString()}}function r3(t,n){const e=function Gae(t,n){const s=new Nx([],{},{},"",{},Ge,t,null,{},n);return new s3("",new ur(s,[]))}(t,n),i=new _i([new sf("",{})]),o=new _i({}),r=new _i({}),s=new _i({}),a=new _i(""),l=new Ei(i,o,s,a,r,Ge,t,e.root);return l.snapshot=e.root,new o3(new ur(l,[]),e)}class Ei{urlSubject;paramsSubject;queryParamsSubject;fragmentSubject;dataSubject;outlet;component;snapshot;_futureSnapshot;_routerState;_paramMap;_queryParamMap;title;url;params;queryParams;fragment;data;constructor(n,e,i,o,r,s,a,l){this.urlSubject=n,this.paramsSubject=e,this.queryParamsSubject=i,this.fragmentSubject=o,this.dataSubject=r,this.outlet=s,this.component=a,this._futureSnapshot=l,this.title=this.dataSubject?.pipe(ye(c=>c[rf]))??ae(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(ye(n=>Rd(n))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe(ye(n=>Rd(n))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function Rx(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&&l3(o)&&(i.resolve[rf]=o.title),i}class Nx{url;params;queryParams;fragment;data;outlet;component;routeConfig;_resolve;_resolvedData;_routerState;_paramMap;_queryParamMap;_environmentInjector;get title(){return this.data?.[rf]}constructor(n,e,i,o,r,s,a,l,c,u){this.url=n,this.params=e,this.queryParams=i,this.fragment=o,this.data=r,this.outlet=s,this.component=a,this.routeConfig=l,this._resolve=c,this._environmentInjector=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??=Rd(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=Rd(this.queryParams),this._queryParamMap}toString(){return`Route(url:'${this.url.map(i=>i.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class s3 extends i3{url;constructor(n,e){super(e),this.url=n,Fx(this,e)}toString(){return a3(this._root)}}function Fx(t,n){n.value._routerState=t,n.children.forEach(e=>Fx(t,e))}function a3(t){const n=t.children.length>0?` { ${t.children.map(a3).join(", ")} } `:"";return`${t.value}${n}`}function Lx(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 rae(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||Bx(t.parent,n.parent))}function l3(t){return"string"==typeof t.title||null===t.title}const qae=new Z("");let $_=(()=>{class t{activated=null;get activatedComponentRef(){return this.activated}_activatedRoute=null;name=Ge;activateEvents=new ve;deactivateEvents=new ve;attachEvents=new ve;detachEvents=new ve;routerOutletData=ree();parentContexts=D(hf);location=D(wi);changeDetector=D(Pn);inputBinder=D(W_,{optional:!0});supportsBindingToComponentInputs=!0;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 X(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new X(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new X(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 X(4013,!1);this._activatedRoute=e;const o=this.location,s=e.snapshot.component,a=this.parentContexts.getOrCreateContext(this.name).children,l=new Kae(e,a,o.injector,this.routerOutletData);this.activated=o.createComponent(s,{index:o.length,injector:l,environmentInjector:i}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["router-outlet"]],inputs:{name:"name",routerOutletData:[1,"routerOutletData"]},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],features:[yi]})}return t})();class Kae{route;childContexts;parent;outletData;constructor(n,e,i,o){this.route=n,this.childContexts=e,this.parent=i,this.outletData=o}get(n,e){return n===Ei?this.route:n===hf?this.childContexts:n===qae?this.outletData:this.parent.get(n,e)}}const W_=new Z("");let c3=(()=>{class t{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=yx([i.queryParams,i.params,i.data]).pipe(Zn(([r,s,a],l)=>(a={...r,...s,...a},0===l?ae(a):Promise.resolve(a)))).subscribe(r=>{if(!e.isActivated||!e.activatedComponentRef||e.activatedRoute!==i||null===i.component)return void this.unsubscribeFromRouteData(e);const s=function hte(t){const n=wt(t);if(!n)return null;const e=new bh(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(s)for(const{templateName:a}of s.inputs)e.activatedComponentRef.setInput(a,r[a]);else this.unsubscribeFromRouteData(e)});this.outletDataSubscriptions.set(e,o)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})(),d3=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["ng-component"]],exportAs:["emptyRouterOutlet"],decls:1,vars:0,template:function(i,o){1&i&&B(0,"router-outlet")},dependencies:[$_],encapsulation:2})}return t})();function Vx(t){const n=t.children&&t.children.map(Vx),e=n?{...t,children:n}:{...t};return!e.component&&!e.loadComponent&&(n||e.loadChildren)&&e.outlet&&e.outlet!==Ge&&(e.component=d3),e}function ff(t,n,e){if(e&&t.shouldReuseRoute(n.value,e.value.snapshot)){const i=e.value;i._futureSnapshot=n.value;const o=function Xae(t,n,e){return n.children.map(i=>{for(const o of e.children)if(t.shouldReuseRoute(i.value,o.value.snapshot))return ff(t,i,o);return ff(t,i)})}(t,n,e);return new ur(i,o)}{if(t.shouldAttach(n.value)){const r=t.retrieve(n.value);if(null!==r){const s=r.route;return s.value._futureSnapshot=n.value,s.children=n.children.map(a=>ff(t,a)),s}}const i=function Zae(t){return new Ei(new _i(t.url),new _i(t.params),new _i(t.queryParams),new _i(t.fragment),new _i(t.data),t.outlet,t.component,t)}(n.value),o=n.children.map(r=>ff(t,r));return new ur(i,o)}}class Hx{redirectTo;navigationBehaviorOptions;constructor(n,e){this.redirectTo=n,this.navigationBehaviorOptions=e}}const u3="ngNavigationCancelingError";function G_(t,n){const{redirectTo:e,navigationBehaviorOptions:i}=jl(n)?{redirectTo:n,navigationBehaviorOptions:void 0}:n,o=h3(!1,_o.Redirect);return o.url=e,o.navigationBehaviorOptions=i,o}function h3(t,n){const e=new Error(`NavigationCancelingError: ${t||""}`);return e[u3]=!0,e.cancellationCode=n,e}function f3(t){return!!t&&t[u3]}class Jae{routeReuseStrategy;futureState;currState;forwardEvent;inputBindingEnabled;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),Lx(this.futureState.root),this.activateChildRoutes(e,i,n)}deactivateChildRoutes(n,e,i){const o=Ld(e);n.children.forEach(r=>{const s=r.value.outlet;this.deactivateRoutes(r,o[s],i),delete o[s]}),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 s=i.getContext(o.outlet);s&&this.deactivateChildRoutes(n,e,s.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=Ld(n);for(const s of Object.values(r))this.deactivateRouteAndItsChildren(s,o);if(i&&i.outlet){const s=i.outlet.detach(),a=i.children.onOutletDeactivated();this.routeReuseStrategy.store(n.value.snapshot,{componentRef:s,route:n,contexts:a})}}deactivateRouteAndOutlet(n,e){const i=e.getContext(n.value.outlet),o=i&&n.value.component?i.children:e,r=Ld(n);for(const s of Object.values(r))this.deactivateRouteAndItsChildren(s,o);i&&(i.outlet&&(i.outlet.deactivate(),i.children.onOutletDeactivated()),i.attachRef=null,i.route=null)}activateChildRoutes(n,e,i){const o=Ld(e);n.children.forEach(r=>{this.activateRoutes(r,o[r.value.outlet],i),this.forwardEvent(new zae(r.value.snapshot))}),n.children.length&&this.forwardEvent(new jae(n.value.snapshot))}activateRoutes(n,e,i){const o=n.value,r=e?e.value:null;if(Lx(o),o===r)if(o.component){const s=i.getOrCreateContext(o.outlet);this.activateChildRoutes(n,e,s.children)}else this.activateChildRoutes(n,e,i);else if(o.component){const s=i.getOrCreateContext(o.outlet);if(this.routeReuseStrategy.shouldAttach(o.snapshot)){const a=this.routeReuseStrategy.retrieve(o.snapshot);this.routeReuseStrategy.store(o.snapshot,null),s.children.onOutletReAttached(a.contexts),s.attachRef=a.componentRef,s.route=a.route.value,s.outlet&&s.outlet.attach(a.componentRef,a.route.value),Lx(a.route.value),this.activateChildRoutes(n,null,s.children)}else s.attachRef=null,s.route=o,s.outlet&&s.outlet.activateWith(o,s.injector),this.activateChildRoutes(n,null,s.children)}else this.activateChildRoutes(n,null,i)}}class p3{path;route;constructor(n){this.path=n,this.route=this.path[this.path.length-1]}}class q_{component;route;constructor(n,e){this.component=n,this.route=e}}function ele(t,n,e){const i=t._root;return pf(i,n?n._root:null,e,[i.value])}function Bd(t,n){const e=Symbol(),i=n.get(t,e);return i===e?"function"!=typeof t||function tU(t){return null!==Pp(t)}(t)?n.get(t):t:i}function pf(t,n,e,i,o={canDeactivateChecks:[],canActivateChecks:[]}){const r=Ld(n);return t.children.forEach(s=>{(function nle(t,n,e,i,o={canDeactivateChecks:[],canActivateChecks:[]}){const r=t.value,s=n?n.value:null,a=e?e.getContext(t.value.outlet):null;if(s&&r.routeConfig===s.routeConfig){const l=function ile(t,n,e){if("function"==typeof e)return Yi(n._environmentInjector,()=>e(t,n));switch(e){case"pathParamsChange":return!Hl(t.url,n.url);case"pathParamsOrQueryParamsChange":return!Hl(t.url,n.url)||!Ur(t.queryParams,n.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!Bx(t,n)||!Ur(t.queryParams,n.queryParams);default:return!Bx(t,n)}}(s,r,r.routeConfig.runGuardsAndResolvers);l?o.canActivateChecks.push(new p3(i)):(r.data=s.data,r._resolvedData=s._resolvedData),pf(t,n,r.component?a?a.children:null:e,i,o),l&&a&&a.outlet&&a.outlet.isActivated&&o.canDeactivateChecks.push(new q_(a.outlet.component,s))}else s&&mf(n,a,o),o.canActivateChecks.push(new p3(i)),pf(t,null,r.component?a?a.children:null:e,i,o)})(s,r[s.value.outlet],e,i.concat([s.value]),o),delete r[s.value.outlet]}),Object.entries(r).forEach(([s,a])=>mf(a,e.getContext(s),o)),o}function mf(t,n,e){const i=Ld(t),o=t.value;Object.entries(i).forEach(([r,s])=>{mf(s,o.component?n?n.children.getContext(r):null:n,e)}),e.canDeactivateChecks.push(new q_(o.component&&n&&n.outlet&&n.outlet.isActivated?n.outlet.component:null,o))}function gf(t){return"function"==typeof t}function m3(t){return t instanceof Cx||"EmptyError"===t?.name}const K_=Symbol("INITIAL_VALUE");function Vd(){return Zn(t=>yx(t.map(n=>n.pipe(un(1),to(K_)))).pipe(ye(n=>{for(const e of n)if(!0!==e){if(e===K_)return K_;if(!1===e||dle(e))return e}return!0}),vn(n=>n!==K_),un(1)))}function dle(t){return jl(t)||t instanceof Hx}function g3(t){return t.aborted?ae(void 0).pipe(un(1)):new Rt(n=>{const e=()=>{n.next(),n.complete()};return t.addEventListener("abort",e),()=>t.removeEventListener("abort",e)})}function _3(t){return on(g3(t))}function b3(t){return function jj(...t){return BD(t)}(ni(n=>{if("boolean"!=typeof n)throw G_(0,n)}),ye(n=>!0===n))}class Ds extends Error{segmentGroup;constructor(n){super(),this.segmentGroup=n||null,Object.setPrototypeOf(this,Ds.prototype)}}class _f extends Error{urlTree;constructor(n){super(),this.urlTree=n,Object.setPrototypeOf(this,_f.prototype)}}function Cle(t){throw new X(4e3,!1)}class xle{urlSerializer;urlTree;constructor(n,e){this.urlSerializer=n,this.urlTree=e}lineralizeSegments(n,e){return Nt(function*(){let i=[],o=e.root;for(;;){if(i=i.concat(o.segments),0===o.numberOfChildren)return i;if(o.numberOfChildren>1||!o.children[Ge])throw Cle();o=o.children[Ge]}})()}applyRedirectCommands(n,e,i,o,r){var s=this;return Nt(function*(){const a=yield function Sle(t,n,e){if("string"==typeof t)return Promise.resolve(t);const i=t;return A_(Vl(Yi(e,()=>i(n))))}(e,o,r);if(a instanceof dr)throw new _f(a);const l=s.applyRedirectCreateUrlTree(a,s.urlSerializer.parse(a),n,i);if("/"===a[0])throw new _f(l);return l})()}applyRedirectCreateUrlTree(n,e,i,o){const r=this.createSegmentGroup(n,e.root,i,o);return new dr(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[0]){const a=r.substring(1);i[o]=e[a]}else i[o]=r}),i}createSegmentGroup(n,e,i,o){const r=this.createSegments(n,e.segments,i,o);let s={};return Object.entries(e.children).forEach(([a,l])=>{s[a]=this.createSegmentGroup(n,l,i,o)}),new Ut(r,s)}createSegments(n,e,i,o){return e.map(r=>":"===r.path[0]?this.findPosParam(n,r,o):this.findOrReturn(r,i))}findPosParam(n,e,i){const o=i[e.path.substring(1)];if(!o)throw new X(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}}function Wr(t){return t.outlet||Ge}function Ele(t,n){const e=t.filter(i=>Wr(i)===n);return e.push(...t.filter(i=>Wr(i)!==n)),e}const jx={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function v3(t){return{routeConfig:t.routeConfig,url:t.url,params:t.params,queryParams:t.queryParams,fragment:t.fragment,data:t.data,outlet:t.outlet,title:t.title,paramMap:t.paramMap,queryParamMap:t.queryParamMap}}function Ile(t,n,e,i,o,r,s){const a=y3(t,n,e);if(!a.matched)return ae(a);const l=v3(r(a));return i=function kle(t,n){return t.providers&&!t._injector&&(t._injector=gg(t.providers,n,`Route: ${t.path}`)),t._injector??n}(n,i),function yle(t,n,e,i,o,r){const s=n.canMatch;return s&&0!==s.length?ae(s.map(l=>{const c=Bd(l,t);return Vl(function cle(t){return t&&gf(t.canMatch)}(c)?c.canMatch(n,e,o):Yi(t,()=>c(n,e,o))).pipe(_3(r))})).pipe(Vd(),b3()):ae(!0)}(i,n,e,0,l,s).pipe(ye(c=>!0===c?a:{...jx}))}function y3(t,n,e){if(""===n.path)return"full"===n.pathMatch&&(t.hasChildren()||e.length>0)?{...jx}:{matched:!0,consumedSegments:[],remainingSegments:e,parameters:{},positionalParamSegments:{}};const o=(n.matcher||oae)(e,t,n);if(!o)return{...jx};const r={};Object.entries(o.posParams??{}).forEach(([a,l])=>{r[a]=l.path});const s=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:s,positionalParamSegments:o.posParams??{}}}function C3(t,n,e,i){return e.length>0&&function Ale(t,n,e){return e.some(i=>Y_(t,n,i)&&Wr(i)!==Ge)}(t,e,i)?{segmentGroup:new Ut(n,Ole(i,new Ut(e,t.children))),slicedSegments:[]}:0===e.length&&function Rle(t,n,e){return e.some(i=>Y_(t,n,i))}(t,e,i)?{segmentGroup:new Ut(t.segments,Ple(t,e,i,t.children)),slicedSegments:e}:{segmentGroup:new Ut(t.segments,t.children),slicedSegments:e}}function Ple(t,n,e,i){const o={};for(const r of e)if(Y_(t,n,r)&&!i[Wr(r)]){const s=new Ut([],{});o[Wr(r)]=s}return{...i,...o}}function Ole(t,n){const e={};e[Ge]=n;for(const i of t)if(""===i.path&&Wr(i)!==Ge){const o=new Ut([],{});e[Wr(i)]=o}return e}function Y_(t,n,e){return(!(t.hasChildren()||n.length>0)||"full"!==e.pathMatch)&&""===e.path}class Fle{}function Ux(){return(Ux=Nt(function*(t,n,e,i,o,r,s="emptyOnly",a){return new Vle(t,n,e,i,o,s,r,a).recognize()})).apply(this,arguments)}class Vle{injector;configLoader;rootComponentType;config;urlTree;paramsInheritanceStrategy;urlSerializer;abortSignal;applyRedirects;absoluteRedirectCount=0;allowRedirects=!0;constructor(n,e,i,o,r,s,a,l){this.injector=n,this.configLoader=e,this.rootComponentType=i,this.config=o,this.urlTree=r,this.paramsInheritanceStrategy=s,this.urlSerializer=a,this.abortSignal=l,this.applyRedirects=new xle(this.urlSerializer,this.urlTree)}noMatchError(n){return new X(4002,`'${n.segmentGroup}'`)}recognize(){var n=this;return Nt(function*(){const e=C3(n.urlTree.root,[],[],n.config).segmentGroup,{children:i,rootSnapshot:o}=yield n.match(e),r=new ur(o,i),s=new s3("",r),a=function Dae(t,n,e=null,i=null,o=new af){return qL(GL(t),n,e,i,o)}(o,[],n.urlTree.queryParams,n.urlTree.fragment);return a.queryParams=n.urlTree.queryParams,s.url=n.urlSerializer.serialize(a),{state:s,tree:a}})()}match(n){var e=this;return Nt(function*(){const i=new Nx([],Object.freeze({}),Object.freeze({...e.urlTree.queryParams}),e.urlTree.fragment,Object.freeze({}),Ge,e.rootComponentType,null,{},e.injector);try{return{children:yield e.processSegmentGroup(e.injector,e.config,n,Ge,i),rootSnapshot:i}}catch(o){if(o instanceof _f)return e.urlTree=o.urlTree,e.match(o.urlTree.root);throw o instanceof Ds?e.noMatchError(o):o}})()}processSegmentGroup(n,e,i,o,r){var s=this;return Nt(function*(){if(0===i.segments.length&&i.hasChildren())return s.processChildren(n,e,i,r);const a=yield s.processSegment(n,e,i,i.segments,o,!0,r);return a instanceof ur?[a]:[]})()}processChildren(n,e,i,o){var r=this;return Nt(function*(){const s=[];for(const c of Object.keys(i.children))"primary"===c?s.unshift(c):s.push(c);let a=[];for(const c of s){const u=i.children[c],p=Ele(e,c),g=yield r.processSegmentGroup(n,p,u,c,o);a.push(...g)}const l=w3(a);return function Hle(t){t.sort((n,e)=>n.value.outlet===Ge?-1:e.value.outlet===Ge?1:n.value.outlet.localeCompare(e.value.outlet))}(l),l})()}processSegment(n,e,i,o,r,s,a){var l=this;return Nt(function*(){for(const c of e)try{return yield l.processSegmentAgainstRoute(c._injector??n,e,c,i,o,r,s,a)}catch(u){if(u instanceof Ds||m3(u))continue;throw u}if(function Nle(t,n,e){return 0===n.length&&!t.children[e]}(i,o,r))return new Fle;throw new Ds(i)})()}processSegmentAgainstRoute(n,e,i,o,r,s,a,l){var c=this;return Nt(function*(){if(Wr(i)!==s&&(s===Ge||!Y_(o,r,i)))throw new Ds(o);if(void 0===i.redirectTo)return c.matchSegmentAgainstRoute(n,o,i,r,s,l);if(c.allowRedirects&&a)return c.expandSegmentAgainstRouteUsingRedirect(n,o,e,i,r,s,l);throw new Ds(o)})()}expandSegmentAgainstRouteUsingRedirect(n,e,i,o,r,s,a){var l=this;return Nt(function*(){const{matched:c,parameters:u,consumedSegments:p,positionalParamSegments:g,remainingSegments:_}=y3(e,o,r);if(!c)throw new Ds(e);"string"==typeof o.redirectTo&&"/"===o.redirectTo[0]&&(l.absoluteRedirectCount++,l.absoluteRedirectCount>31&&(l.allowRedirects=!1));const w=l.createSnapshot(n,o,r,u,a);if(l.abortSignal.aborted)throw new Error(l.abortSignal.reason);const x=yield l.applyRedirects.applyRedirectCommands(p,o.redirectTo,g,v3(w),n),T=yield l.applyRedirects.lineralizeSegments(o,x);return l.processSegment(n,i,e,T.concat(_),s,!1,a)})()}createSnapshot(n,e,i,o,r){const s=new Nx(i,o,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,function Ule(t){return t.data||{}}(e),Wr(e),e.component??e._loadedComponent??null,e,function zle(t){return t.resolve||{}}(e),n),a=Rx(s,r,this.paramsInheritanceStrategy);return s.params=Object.freeze(a.params),s.data=Object.freeze(a.data),s}matchSegmentAgainstRoute(n,e,i,o,r,s){var a=this;return Nt(function*(){if(a.abortSignal.aborted)throw new Error(a.abortSignal.reason);const c=yield A_(Ile(e,i,o,n,0,Y=>a.createSnapshot(n,i,Y.consumedSegments,Y.parameters,s),a.abortSignal));if("**"===i.path&&(e.children={}),!c?.matched)throw new Ds(e);n=i._injector??n;const{routes:u}=yield a.getChildConfig(n,i,o),p=i._loadedInjector??n,{parameters:g,consumedSegments:_,remainingSegments:w}=c,x=a.createSnapshot(n,i,_,g,s),{segmentGroup:T,slicedSegments:E}=C3(e,_,w,u);if(0===E.length&&T.hasChildren()){const Y=yield a.processChildren(p,u,T,x);return new ur(x,Y)}if(0===u.length&&0===E.length)return new ur(x,[]);const R=Wr(i)===r,W=yield a.processSegment(p,u,T,E,R?Ge:r,!0,x);return new ur(x,W instanceof ur?[W]:[])})()}getChildConfig(n,e,i){var o=this;return Nt(function*(){if(e.children)return{routes:e.children,injector:n};if(e.loadChildren){if(void 0!==e._loadedRoutes){const s=e._loadedNgModuleFactory;return s&&!e._loadedInjector&&(e._loadedInjector=s.create(n).injector),{routes:e._loadedRoutes,injector:e._loadedInjector}}if(o.abortSignal.aborted)throw new Error(o.abortSignal.reason);if(yield A_(function vle(t,n,e,i,o){const r=n.canLoad;return void 0===r||0===r.length?ae(!0):ae(r.map(a=>{const l=Bd(a,t),u=Vl(function rle(t){return t&&gf(t.canLoad)}(l)?l.canLoad(n,e):Yi(t,()=>l(n,e)));return o?u.pipe(_3(o)):u})).pipe(Vd(),b3())}(n,e,i,0,o.abortSignal))){const s=yield o.configLoader.loadChildren(n,e);return e._loadedRoutes=s.routes,e._loadedInjector=s.injector,e._loadedNgModuleFactory=s.factory,s}throw function wle(){throw h3(!1,_o.GuardRejected)}()}return{routes:[],injector:n}})()}}function jle(t){const n=t.value.routeConfig;return n&&""===n.path}function w3(t){const n=[],e=new Set;for(const i of t){if(!jle(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=w3(i.children);n.push(new ur(i.value,o))}return n.filter(i=>!e.has(i))}function x3(t){const n=t.children.map(e=>x3(e)).flat();return[t,...n]}function S3(t){return Zn(n=>{const e=t(n);return e?Un(e).pipe(ye(()=>n)):ae(n)})}let k3=(()=>{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===Ge);return i}getResolvedTitleForRoute(e){return e.data[rf]}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:()=>D(Yle),providedIn:"root"})}return t})(),Yle=(()=>{class t extends k3{title;constructor(e){super(),this.title=e}updateTitle(e){const i=this.buildTitle(e);void 0!==i&&this.title.setTitle(i)}static \u0275fac=function(i){return new(i||t)(le(Qse))};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Hd=new Z("",{factory:()=>({})}),X_=new Z("");let zx=(()=>{class t{componentLoaders=new WeakMap;childrenLoaders=new WeakMap;onLoadStartListener;onLoadEndListener;compiler=D(aQ);loadComponent(e,i){var o=this;return Nt(function*(){if(o.componentLoaders.get(i))return o.componentLoaders.get(i);if(i._loadedComponent)return Promise.resolve(i._loadedComponent);o.onLoadStartListener&&o.onLoadStartListener(i);const r=Nt(function*(){try{const s=yield NL(Yi(e,()=>i.loadComponent())),a=yield T3(D3(s));return o.onLoadEndListener&&o.onLoadEndListener(i),i._loadedComponent=a,a}finally{o.componentLoaders.delete(i)}})();return o.componentLoaders.set(i,r),r})()}loadChildren(e,i){var o=this;if(this.childrenLoaders.get(i))return this.childrenLoaders.get(i);if(i._loadedRoutes)return Promise.resolve({routes:i._loadedRoutes,injector:i._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(i);const r=Nt(function*(){try{const s=yield function Xle(t,n,e,i){return $x.apply(this,arguments)}(i,o.compiler,e,o.onLoadEndListener);return i._loadedRoutes=s.routes,i._loadedInjector=s.injector,i._loadedNgModuleFactory=s.factory,s}finally{o.childrenLoaders.delete(i)}})();return this.childrenLoaders.set(i,r),r}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function $x(){return($x=Nt(function*(t,n,e,i){const o=yield NL(Yi(e,()=>t.loadChildren())),r=yield T3(D3(o));let s;s=r instanceof dP||Array.isArray(r)?r:yield n.compileModuleAsync(r),i&&i(t);let a,l,u;return Array.isArray(s)?l=s:(a=s.create(e).injector,u=s,l=a.get(X_,[],{optional:!0,self:!0}).flat()),{routes:l.map(Vx),injector:a,factory:u}})).apply(this,arguments)}function D3(t){return function Zle(t){return t&&"object"==typeof t&&"default"in t}(t)?t.default:t}function T3(t){return Wx.apply(this,arguments)}function Wx(){return(Wx=Nt(function*(t){return t})).apply(this,arguments)}let Gx=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:()=>D(Qle),providedIn:"root"})}return t})(),Qle=(()=>{class t{shouldProcessUrl(e){return!0}extract(e){return e}merge(e,i){return e}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const M3=new Z(""),E3=new Z("");function Jle(t,n,e){const i=t.get(E3),o=t.get(Qe);if(!o.startViewTransition||i.skipNextTransition)return i.skipNextTransition=!1,new Promise(c=>setTimeout(c));let r;const s=new Promise(c=>{r=c}),a=o.startViewTransition(()=>(r(),function ece(t){return new Promise(n=>{Fi({read:()=>setTimeout(n)},{injector:t})})}(t)));a.updateCallbackDone.catch(c=>{}),a.ready.catch(c=>{}),a.finished.catch(c=>{});const{onViewTransitionCreated:l}=i;return l&&Yi(t,()=>l({transition:a,from:n,to:e})),s}const tce=()=>{},I3=new Z("");let qx=(()=>{class t{currentNavigation=yt(null,{equal:()=>!1});currentTransition=null;lastSuccessfulNavigation=yt(null);events=new pe;transitionAbortWithErrorSubject=new pe;configLoader=D(zx);environmentInjector=D(Nn);destroyRef=D(tr);urlSerializer=D(Nd);rootContexts=D(hf);location=D(Ed);inputBindingEnabled=null!==D(W_,{optional:!0});titleStrategy=D(k3);options=D(Hd,{optional:!0})||{};paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly";urlHandlingStrategy=D(Gx);createViewTransition=D(M3,{optional:!0});navigationErrorHandler=D(I3,{optional:!0});navigationId=0;get hasRequestedNavigation(){return 0!==this.navigationId}transitions;afterPreactivation=()=>ae(void 0);rootComponentType=null;destroyed=!1;constructor(){this.configLoader.onLoadEndListener=o=>this.events.next(new Vae(o)),this.configLoader.onLoadStartListener=o=>this.events.next(new Bae(o)),this.destroyRef.onDestroy(()=>{this.destroyed=!0})}complete(){this.transitions?.complete()}handleNavigationRequest(e){const i=++this.navigationId;nt(()=>{this.transitions?.next({...e,extractedUrl:this.urlHandlingStrategy.extract(e.rawUrl),targetSnapshot:null,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null,id:i,routesRecognizeHandler:{},beforeActivateHandler:{}})})}setupNavigations(e){return this.transitions=new _i(null),this.transitions.pipe(vn(i=>null!==i),Zn(i=>{let o=!1;const r=new AbortController,s=()=>!o&&this.currentTransition?.id===i.id;return ae(i).pipe(Zn(a=>{if(this.navigationId>i.id)return this.cancelNavigationTransition(i,"",_o.SupersededByNewNavigation),Mi;this.currentTransition=i;const l=this.lastSuccessfulNavigation();this.currentNavigation.set({id:a.id,initialUrl:a.rawUrl,extractedUrl:a.extractedUrl,targetBrowserUrl:"string"==typeof a.extras.browserUrl?this.urlSerializer.parse(a.extras.browserUrl):a.extras.browserUrl,trigger:a.source,extras:a.extras,previousNavigation:l?{...l,previousNavigation:null}:null,abort:()=>r.abort(),routesRecognizeHandler:a.routesRecognizeHandler,beforeActivateHandler:a.beforeActivateHandler});const c=!e.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl();if(!c&&"reload"!==(a.extras.onSameUrlNavigation??e.onSameUrlNavigation))return this.events.next(new Fd(a.id,this.urlSerializer.serialize(a.rawUrl),"",U_.IgnoredSameUrlNavigation)),a.resolve(!1),Mi;if(this.urlHandlingStrategy.shouldProcessUrl(a.rawUrl))return ae(a).pipe(Zn(p=>(this.events.next(new j_(p.id,this.urlSerializer.serialize(p.extractedUrl),p.source,p.restoredState)),p.id!==this.navigationId?Mi:Promise.resolve(p))),function $le(t,n,e,i,o,r,s){return Et(function(){var a=Nt(function*(l){const{state:c,tree:u}=yield function Lle(t,n,e,i,o,r){return Ux.apply(this,arguments)}(t,n,e,i,l.extractedUrl,o,r,s);return{...l,targetSnapshot:c,urlAfterRedirects:u}});return function(l){return a.apply(this,arguments)}}())}(this.environmentInjector,this.configLoader,this.rootComponentType,e.config,this.urlSerializer,this.paramsInheritanceStrategy,r.signal),ni(p=>{i.targetSnapshot=p.targetSnapshot,i.urlAfterRedirects=p.urlAfterRedirects,this.currentNavigation.update(g=>(g.finalUrl=p.urlAfterRedirects,g)),this.events.next(new n3)}),Zn(p=>Un(i.routesRecognizeHandler.deferredHandle??ae(void 0)).pipe(ye(()=>p))),ni(()=>{const p=new e3(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects),a.targetSnapshot);this.events.next(p)}));if(c&&this.urlHandlingStrategy.shouldProcessUrl(a.currentRawUrl)){const{id:p,extractedUrl:g,source:_,restoredState:w,extras:x}=a,T=new j_(p,this.urlSerializer.serialize(g),_,w);this.events.next(T);const E=r3(this.rootComponentType,this.environmentInjector).snapshot;return this.currentTransition=i={...a,targetSnapshot:E,urlAfterRedirects:g,extras:{...x,skipLocationChange:!1,replaceUrl:!1}},this.currentNavigation.update(R=>(R.finalUrl=g,R)),ae(i)}return this.events.next(new Fd(a.id,this.urlSerializer.serialize(a.extractedUrl),"",U_.IgnoredByUrlHandlingStrategy)),a.resolve(!1),Mi}),ye(a=>{const l=new Rae(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects),a.targetSnapshot);return this.events.next(l),this.currentTransition=i={...a,guards:ele(a.targetSnapshot,a.currentSnapshot,this.rootContexts)},i}),function ule(t){return Et(n=>{const{targetSnapshot:e,currentSnapshot:i,guards:{canActivateChecks:o,canDeactivateChecks:r}}=n;return 0===r.length&&0===o.length?ae({...n,guardsResult:!0}):function hle(t,n,e){return Un(t).pipe(Et(i=>function ble(t,n,e,i){const o=n&&n.routeConfig?n.routeConfig.canDeactivate:null;return o&&0!==o.length?ae(o.map(s=>{const a=n._environmentInjector,l=Bd(s,a);return Vl(function lle(t){return t&&gf(t.canDeactivate)}(l)?l.canDeactivate(t,n,e,i):Yi(a,()=>l(t,n,e,i))).pipe(jr())})).pipe(Vd()):ae(!0)}(i.component,i.route,e,n)),jr(i=>!0!==i,!0))}(r,e,i).pipe(Et(s=>s&&function ole(t){return"boolean"==typeof t}(s)?function fle(t,n,e){return Un(n).pipe(Zh(i=>ks(function mle(t,n){return null!==t&&n&&n(new Hae(t)),ae(!0)}(i.route.parent,e),function ple(t,n){return null!==t&&n&&n(new Uae(t)),ae(!0)}(i.route,e),function _le(t,n){const e=n[n.length-1],o=n.slice(0,n.length-1).reverse().map(r=>function tle(t){const n=t.routeConfig?t.routeConfig.canActivateChild:null;return n&&0!==n.length?{node:t,guards:n}:null}(r)).filter(r=>null!==r).map(r=>ba(()=>ae(r.guards.map(a=>{const l=r.node._environmentInjector,c=Bd(a,l);return Vl(function ale(t){return t&&gf(t.canActivateChild)}(c)?c.canActivateChild(e,t):Yi(l,()=>c(e,t))).pipe(jr())})).pipe(Vd())));return ae(o).pipe(Vd())}(t,i.path),function gle(t,n){const e=n.routeConfig?n.routeConfig.canActivate:null;if(!e||0===e.length)return ae(!0);const i=e.map(o=>ba(()=>{const r=n._environmentInjector,s=Bd(o,r);return Vl(function sle(t){return t&&gf(t.canActivate)}(s)?s.canActivate(n,t):Yi(r,()=>s(n,t))).pipe(jr())}));return ae(i).pipe(Vd())}(t,i.route))),jr(i=>!0!==i,!0))}(e,o,t):ae(s)),ye(s=>({...n,guardsResult:s})))})}(a=>this.events.next(a)),Zn(a=>{if(i.guardsResult=a.guardsResult,a.guardsResult&&"boolean"!=typeof a.guardsResult)throw G_(0,a.guardsResult);const l=new Nae(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects),a.targetSnapshot,!!a.guardsResult);if(this.events.next(l),!s())return Mi;if(!a.guardsResult)return this.cancelNavigationTransition(a,"",_o.GuardRejected),Mi;if(0===a.guards.canActivateChecks.length)return ae(a);const c=new Fae(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects),a.targetSnapshot);if(this.events.next(c),!s())return Mi;let u=!1;return ae(a).pipe(function Wle(t){return Et(n=>{const{targetSnapshot:e,guards:{canActivateChecks:i}}=n;if(!i.length)return ae(n);const o=new Set(i.map(a=>a.route)),r=new Set;for(const a of o)if(!r.has(a))for(const l of x3(a))r.add(l);let s=0;return Un(r).pipe(Zh(a=>o.has(a)?function Gle(t,n,e){const i=t.routeConfig,o=t._resolve;return void 0!==i?.title&&!l3(i)&&(o[rf]=i.title),ba(()=>(t.data=Rx(t,t.parent,e).resolve,function qle(t,n,e){const i=Sx(t);if(0===i.length)return ae({});const o={};return Un(i).pipe(Et(r=>function Kle(t,n,e){const i=n._environmentInjector,o=Bd(t,i);return Vl(o.resolve?o.resolve(n,e):Yi(i,()=>o(n,e)))}(t[r],n,e).pipe(jr(),ni(s=>{if(s instanceof Hx)throw G_(new af,s);o[r]=s}))),ML(1),ye(()=>o),go(r=>m3(r)?Mi:cr(r)))}(o,t,n).pipe(ye(r=>(t._resolvedData=r,t.data={...t.data,...r},null)))))}(a,e,t):(a.data=Rx(a,a.parent,t).resolve,ae(void 0))),ni(()=>s++),ML(1),Et(a=>s===r.size?ae(n):Mi))})}(this.paramsInheritanceStrategy),ni({next:()=>{u=!0;const p=new Lae(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects),a.targetSnapshot);this.events.next(p)},complete:()=>{u||this.cancelNavigationTransition(a,"",_o.NoDataFromResolver)}}))}),S3(a=>{const l=u=>{const p=[];u.routeConfig?._loadedComponent?u.component=u.routeConfig?._loadedComponent:u.routeConfig?.loadComponent&&p.push(this.configLoader.loadComponent(u._environmentInjector,u.routeConfig).then(_=>{u.component=_}));for(const g of u.children)p.push(...l(g));return p},c=l(a.targetSnapshot.root);return 0===c.length?ae(a):Un(Promise.all(c).then(()=>a))}),S3(()=>this.afterPreactivation()),Zn(()=>{const{currentSnapshot:a,targetSnapshot:l}=i,c=this.createViewTransition?.(this.environmentInjector,a.root,l.root);return c?Un(c).pipe(ye(()=>i)):ae(i)}),un(1),Zn(a=>{const l=function Yae(t,n,e){const i=ff(t,n._root,e?e._root:void 0);return new o3(i,n)}(e.routeReuseStrategy,a.targetSnapshot,a.currentRouterState);this.currentTransition=i=a={...a,targetRouterState:l},this.currentNavigation.update(u=>(u.targetRouterState=l,u)),this.events.next(new Px);const c=i.beforeActivateHandler.deferredHandle;return c?Un(c.then(()=>a)):ae(a)}),ni(a=>{new Jae(e.routeReuseStrategy,i.targetRouterState,i.currentRouterState,l=>this.events.next(l),this.inputBindingEnabled).activate(this.rootContexts),s()&&(o=!0,this.currentNavigation.update(l=>(l.abort=tce,l)),this.lastSuccessfulNavigation.set(nt(this.currentNavigation)),this.events.next(new $r(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects))),this.titleStrategy?.updateTitle(a.targetRouterState.snapshot),a.resolve(!0))}),on(g3(r.signal).pipe(vn(()=>!o&&!i.targetRouterState),ni(()=>{this.cancelNavigationTransition(i,r.signal.reason+"",_o.Aborted)}))),ni({complete:()=>{o=!0}}),on(this.transitionAbortWithErrorSubject.pipe(ni(a=>{throw a}))),M_(()=>{r.abort(),o||this.cancelNavigationTransition(i,"",_o.SupersededByNewNavigation),this.currentTransition?.id===i.id&&(this.currentNavigation.set(null),this.currentTransition=null)}),go(a=>{if(o=!0,this.destroyed)return i.resolve(!1),Mi;if(f3(a))this.events.next(new ya(i.id,this.urlSerializer.serialize(i.extractedUrl),a.message,a.cancellationCode)),function Qae(t){return f3(t)&&jl(t.url)}(a)?this.events.next(new z_(a.url,a.navigationBehaviorOptions)):i.resolve(!1);else{const l=new Ix(i.id,this.urlSerializer.serialize(i.extractedUrl),a,i.targetSnapshot??void 0);try{const c=Yi(this.environmentInjector,()=>this.navigationErrorHandler?.(l));if(!(c instanceof Hx))throw this.events.next(l),a;{const{message:u,cancellationCode:p}=G_(0,c);this.events.next(new ya(i.id,this.urlSerializer.serialize(i.extractedUrl),u,p)),this.events.next(new z_(c.redirectTo,c.navigationBehaviorOptions))}}catch(c){this.options.resolveNavigationPromiseOnError?i.resolve(!1):i.reject(c)}}return Mi}))}))}cancelNavigationTransition(e,i,o){const r=new ya(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(){const e=this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))),i=nt(this.currentNavigation),o=i?.targetBrowserUrl??i?.extractedUrl;return e.toString()!==o?.toString()&&!i?.extras.skipLocationChange}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function nce(t){return t!==uf}const ice=new Z("");let O3=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:()=>D(rce),providedIn:"root"})}return t})();class oce{shouldDetach(n){return!1}store(n,e){}shouldAttach(n){return!1}retrieve(n){return null}shouldReuseRoute(n,e){return n.routeConfig===e.routeConfig}shouldDestroyInjector(n){return!0}}let rce=(()=>{class t extends oce{static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Yx=(()=>{class t{urlSerializer=D(Nd);options=D(Hd,{optional:!0})||{};canceledNavigationResolution=this.options.canceledNavigationResolution||"replace";location=D(Ed);urlHandlingStrategy=D(Gx);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";currentUrlTree=new dr;getCurrentUrlTree(){return this.currentUrlTree}rawUrlTree=this.currentUrlTree;getRawUrlTree(){return this.rawUrlTree}createBrowserPath({finalUrl:e,initialUrl:i,targetBrowserUrl:o}){const r=void 0!==e?this.urlHandlingStrategy.merge(e,i):i,s=o??r;return s instanceof dr?this.urlSerializer.serialize(s):s}commitTransition({targetRouterState:e,finalUrl:i,initialUrl:o}){i&&e?(this.currentUrlTree=i,this.rawUrlTree=this.urlHandlingStrategy.merge(i,o),this.routerState=e):this.rawUrlTree=o}routerState=r3(null,D(Nn));getRouterState(){return this.routerState}_stateMemento=this.createStateMemento();get stateMemento(){return this._stateMemento}updateStateMemento(){this._stateMemento=this.createStateMemento()}createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}restoredState(){return this.location.getState()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:()=>D(sce),providedIn:"root"})}return t})(),sce=(()=>{class t extends Yx{currentPageId=0;lastSuccessfulId=-1;get browserPageId(){return"computed"!==this.canceledNavigationResolution?this.currentPageId:this.restoredState()?.\u0275routerPageId??this.currentPageId}registerNonRouterCurrentEntryChangeListener(e){return this.location.subscribe(i=>{"popstate"===i.type&&setTimeout(()=>{e(i.url,i.state,"popstate",{replaceUrl:!0})})})}handleRouterEvent(e,i){e instanceof j_?this.updateStateMemento():e instanceof Fd?this.commitTransition(i):e instanceof e3?"eager"===this.urlUpdateStrategy&&(i.extras.skipLocationChange||this.setBrowserUrl(this.createBrowserPath(i),i)):e instanceof Px?(this.commitTransition(i),"deferred"===this.urlUpdateStrategy&&!i.extras.skipLocationChange&&this.setBrowserUrl(this.createBrowserPath(i),i)):e instanceof ya&&!function Aae(t){return t instanceof ya&&(t.code===_o.Redirect||t.code===_o.SupersededByNewNavigation)}(e)?this.restoreHistory(i):e instanceof Ix?this.restoreHistory(i,!0):e instanceof $r&&(this.lastSuccessfulId=e.id,this.currentPageId=this.browserPageId)}setBrowserUrl(e,{extras:i,id:o}){const{replaceUrl:r,state:s}=i;if(this.location.isCurrentPathEqualTo(e)||r){const a=this.browserPageId,l={...s,...this.generateNgRouterState(o,a)};this.location.replaceState(e,"",l)}else{const a={...s,...this.generateNgRouterState(o,this.browserPageId+1)};this.location.go(e,"",a)}}restoreHistory(e,i=!1){if("computed"===this.canceledNavigationResolution){const r=this.currentPageId-this.browserPageId;0!==r?this.location.historyGo(r):this.getCurrentUrlTree()===e.finalUrl&&0===r&&(this.resetInternalState(e),this.resetUrlToCurrentUrlTree())}else"replace"===this.canceledNavigationResolution&&(i&&this.resetInternalState(e),this.resetUrlToCurrentUrlTree())}resetInternalState({finalUrl:e}){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,e??this.rawUrlTree)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.getRawUrlTree()),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(e,i){return"computed"===this.canceledNavigationResolution?{navigationId:e,\u0275routerPageId:i}:{navigationId:e}}static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function A3(t,n){t.events.pipe(vn(e=>e instanceof $r||e instanceof ya||e instanceof Ix||e instanceof Fd),ye(e=>e instanceof $r||e instanceof Fd?0:e instanceof ya&&(e.code===_o.Redirect||e.code===_o.SupersededByNewNavigation)?2:1),vn(e=>2!==e),un(1)).subscribe(()=>{n()})}let vt=(()=>{class t{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}disposed=!1;nonRouterCurrentEntryChangeSubscription;console=D(NP);stateManager=D(Yx);options=D(Hd,{optional:!0})||{};pendingTasks=D(Ks);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";navigationTransitions=D(qx);urlSerializer=D(Nd);location=D(Ed);urlHandlingStrategy=D(Gx);injector=D(Nn);_events=new pe;get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}navigated=!1;routeReuseStrategy=D(O3);injectorCleanup=D(ice,{optional:!0});onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore";config=D(X_,{optional:!0})?.flat()??[];componentInputBindingEnabled=!!D(W_,{optional:!0});currentNavigation=this.navigationTransitions.currentNavigation.asReadonly();constructor(){this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this).subscribe({error:e=>{}}),this.subscribeToNavigationEvents()}eventsSubscription=new mt;subscribeToNavigationEvents(){const e=this.navigationTransitions.events.subscribe(i=>{try{const o=this.navigationTransitions.currentTransition,r=nt(this.navigationTransitions.currentNavigation);if(null!==o&&null!==r)if(this.stateManager.handleRouterEvent(i,r),i instanceof ya&&i.code!==_o.Redirect&&i.code!==_o.SupersededByNewNavigation)this.navigated=!0;else if(i instanceof $r)this.navigated=!0,this.injectorCleanup?.(this.routeReuseStrategy,this.routerState,this.config);else if(i instanceof z_){const s=i.navigationBehaviorOptions,a=this.urlHandlingStrategy.merge(i.url,o.currentRawUrl),l={scroll:o.extras.scroll,browserUrl:o.extras.browserUrl,info:o.extras.info,skipLocationChange:o.extras.skipLocationChange,replaceUrl:o.extras.replaceUrl||"eager"===this.urlUpdateStrategy||nce(o.source),...s};this.scheduleNavigation(a,uf,null,l,{resolve:o.resolve,reject:o.reject,promise:o.promise})}(function $ae(t){return!(t instanceof Px||t instanceof z_||t instanceof n3)})(i)&&this._events.next(i)}catch(o){this.navigationTransitions.transitionAbortWithErrorSubject.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),uf,this.stateManager.restoredState(),{replaceUrl:!0})}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((e,i,o,r)=>{this.navigateToSyncWithBrowser(e,o,i,r)})}navigateToSyncWithBrowser(e,i,o,r){const s=o?.navigationId?o:null;if(o){const l={...o};delete l.navigationId,delete l.\u0275routerPageId,0!==Object.keys(l).length&&(r.state=l)}const a=this.parseUrl(e);this.scheduleNavigation(a,i,s,r).catch(l=>{this.disposed||this.injector.get(Pr)(l)})}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return nt(this.navigationTransitions.currentNavigation)}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(e){this.config=e.map(Vx),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this._events.unsubscribe(),this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription?.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0,this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(e,i={}){const{relativeTo:o,queryParams:r,fragment:s,queryParamsHandling:a,preserveFragment:l}=i,c=l?this.currentUrlTree.fragment:s;let p,u=null;switch(a??this.options.defaultQueryParamsHandling){case"merge":u={...this.currentUrlTree.queryParams,...r};break;case"preserve":u=this.currentUrlTree.queryParams;break;default:u=r||null}null!==u&&(u=this.removeEmptyProps(u));try{p=GL(o?o.snapshot:this.routerState.snapshot.root)}catch{("string"!=typeof e[0]||"/"!==e[0][0])&&(e=[]),p=this.currentUrlTree.root}return qL(p,e,u,c??null,this.urlSerializer)}navigateByUrl(e,i={skipLocationChange:!1}){const o=jl(e)?e:this.parseUrl(e),r=this.urlHandlingStrategy.merge(o,this.rawUrlTree);return this.scheduleNavigation(r,uf,null,i)}navigate(e,i={skipLocationChange:!1}){return function ace(t){for(let n=0;n(null!=r&&(i[o]=r),i),{})}scheduleNavigation(e,i,o,r,s){if(this.disposed)return Promise.resolve(!1);let a,l,c;s?(a=s.resolve,l=s.reject,c=s.promise):c=new Promise((p,g)=>{a=p,l=g});const u=this.pendingTasks.add();return A3(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(u))}),this.navigationTransitions.handleNavigationRequest({source:i,restoredState:o,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:e,extras:r,resolve:a,reject:l,promise:c,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),c.catch(Promise.reject.bind(Promise))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();class lce extends mt{constructor(n,e){super()}schedule(n,e=0){return this}}const Z_={setInterval(t,n,...e){const{delegate:i}=Z_;return i?.setInterval?i.setInterval(t,n,...e):setInterval(t,n,...e)},clearInterval(t){const{delegate:n}=Z_;return(n?.clearInterval||clearInterval)(t)},delegate:void 0};class Xx extends lce{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 Z_.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&&Z_.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,xp(i,this),null!=n&&(this.id=this.recycleAsyncId(e,n,null)),this.delay=null,super.unsubscribe()}}}const Zx={now:()=>(Zx.delegate||Date).now(),delegate:void 0};class bf{constructor(n,e=bf.now){this.schedulerActionCtor=n,this.now=e}schedule(n,e=0,i){return new this.schedulerActionCtor(this,n).schedule(i,e)}}bf.now=Zx.now;class Qx extends bf{constructor(n,e=bf.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 vf=new Qx(Xx),cce=vf;function R3(t,n){return n?e=>ks(n.pipe(un(1),function dce(){return bn((t,n)=>{t.subscribe(en(n,kp))})}()),e.pipe(R3(t))):Et((e,i)=>Vi(t(e,i)).pipe(un(1),function uce(t){return ye(()=>t)}(e)))}function Ul(t=0,n,e=cce){let i=-1;return null!=n&&(oL(n)?e=n:i=n),new Rt(o=>{let r=function hce(t){return t instanceof Date&&!isNaN(t)}(t)?+t-e.now():t;r<0&&(r=0);let s=0;return e.schedule(function(){o.closed||(o.next(s++),0<=i?this.schedule(void 0,i):o.complete())},r)})}function ii(t,n=vf){const e=Ul(t,n);return R3(()=>e)}var Q_=function(t){return t.NoConnection="NoConnection",t.Unknown="Unknown",t}(Q_||{});class fce{}const N3="common.operation-error";function Je(t){if(t&&t.type&&!t.srcElement)return t;const n=new fce;if(n.originalError=t,!t||"string"==typeof t)return n.originalServerErrorMsg=t||"",n.translatableErrorMsg=t||N3,n.type=Q_.Unknown,n;n.originalServerErrorMsg=function mce(t){if(t){if("string"==typeof t._body)return t._body;if(t.originalServerErrorMsg&&"string"==typeof t.originalServerErrorMsg)return t.originalServerErrorMsg;if(t.error&&"string"==typeof t.error)return t.error;if(t.error&&t.error.error&&t.error.error.message)return t.error.error.message;if(t.error&&t.error.error&&"string"==typeof t.error.error)return t.error.error;if(t.message)return t.message;if(t._body&&t._body.error)return t._body.error;try{return JSON.parse(t._body).error}catch{}}return null}(t);return null!=t.status&&(0===t.status||504===t.status)&&(n.type=Q_.NoConnection,n.translatableErrorMsg="common.no-connection-error"),n.type||(n.type=Q_.Unknown,n.translatableErrorMsg=n.originalServerErrorMsg?function pce(t){if(!t||0===t.length)return t;if(-1!==t.indexOf('"error":'))try{t=JSON.parse(t).error}catch{}if(t.startsWith("400")||t.startsWith("403")){const e=t.split(" - ",2);t=2===e.length?e[1]:t}const n=(t=t.trim()).substr(0,1);return n.toUpperCase()!==n&&(t=n.toUpperCase()+t.substr(1,t.length-1)),!t.endsWith(".")&&!t.endsWith(",")&&!t.endsWith(":")&&!t.endsWith(";")&&!t.endsWith("?")&&!t.endsWith("!")&&(t+="."),t}(n.originalServerErrorMsg):N3),n}class no extends pe{constructor(n=1/0,e=1/0,i=Zx){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:s}=this;e||(i.push(n),!o&&i.push(r.now()+s)),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 s=0;s{class t{constructor(){this.currentRefreshTimeSubject=new no(1),this.savedLocalNodes=new Map,this.savedLabels=new Map,this.savedVisibleLocalNodes=new Set}initialize(e){this.storage=localStorage,this.hypervisorPk=e,this.migrateDataToHvStorage(),this.currentRefreshTime=parseInt(this.getDataForHv(J_),10)||10,this.currentRefreshTimeSubject.next(this.currentRefreshTime),this.getSavedLocalNodes().forEach(r=>{this.savedLocalNodes.set(r.publicKey,r),r.hidden||this.savedVisibleLocalNodes.add(r.publicKey)}),this.getSavedLabels().forEach(r=>this.savedLabels.set(r.id,r)),this.loadLegacyNodeData();const i=[];this.savedLocalNodes.forEach(r=>i.push(r));const o=[];this.savedLabels.forEach(r=>o.push(r)),this.saveLocalNodes(i),this.saveLabels(o)}getDataForHv(e){return this.storage.getItem(this.hypervisorPk+e)}setDataForHv(e,i){return this.storage.setItem(this.hypervisorPk+e,i)}migrateDataToHvStorage(){const e=this.storage.getItem(J_);if(e){const r=parseInt(e,10)||10;this.setRefreshTime(r),this.storage.removeItem(J_)}const i=this.storage.getItem(tb);if(i){const r=JSON.parse(i)||[];this.saveLocalNodes(r),this.storage.removeItem(tb)}const o=this.storage.getItem(eb);if(o){const r=JSON.parse(o)||[];this.saveLabels(r),this.storage.removeItem(eb)}}loadLegacyNodeData(){const e=JSON.parse(this.storage.getItem(F3))||[];if(e.length>0){const i=this.getSavedLocalNodes(),o=this.getSavedLabels();e.forEach(r=>{i.push({publicKey:r.publicKey,hidden:r.deleted,ip:null}),this.savedLocalNodes.set(r.publicKey,i[i.length-1]),r.deleted||this.savedVisibleLocalNodes.add(r.publicKey),o.push({id:r.publicKey,identifiedElementType:io.Node,label:r.label}),this.savedLabels.set(r.publicKey,o[o.length-1])}),this.saveLocalNodes(i),this.saveLabels(o),this.storage.removeItem(F3)}}setRefreshTime(e){this.setDataForHv(J_,e.toString()),this.currentRefreshTime=e,this.currentRefreshTimeSubject.next(this.currentRefreshTime)}getRefreshTimeObservable(){return this.currentRefreshTimeSubject.asObservable()}getRefreshTime(){return this.currentRefreshTime}includeVisibleLocalNodes(e,i){this.changeLocalNodesHiddenProperty(e,i,!1)}setLocalNodesAsHidden(e,i){this.changeLocalNodesHiddenProperty(e,i,!0)}changeLocalNodesHiddenProperty(e,i,o){if(e.length!==i.length)throw new Error("Invalid params");const r=new Map,s=new Map;e.forEach((c,u)=>{r.set(c,i[u]),s.set(c,i[u])});let a=!1;const l=this.getSavedLocalNodes();l.forEach(c=>{r.has(c.publicKey)&&(s.has(c.publicKey)&&s.delete(c.publicKey),c.ip!==r.get(c.publicKey)&&(c.ip=r.get(c.publicKey),a=!0,this.savedLocalNodes.set(c.publicKey,c)),c.hidden!==o&&(c.hidden=o,a=!0,this.savedLocalNodes.set(c.publicKey,c),o?this.savedVisibleLocalNodes.delete(c.publicKey):this.savedVisibleLocalNodes.add(c.publicKey)))}),s.forEach((c,u)=>{a=!0;const p={publicKey:u,hidden:o,ip:c};l.push(p),this.savedLocalNodes.set(u,p),o?this.savedVisibleLocalNodes.delete(u):this.savedVisibleLocalNodes.add(u)}),a&&this.saveLocalNodes(l)}getSavedLocalNodes(){return JSON.parse(this.getDataForHv(tb))||[]}getSavedVisibleLocalNodes(){return this.savedVisibleLocalNodes}saveLocalNodes(e){this.setDataForHv(tb,JSON.stringify(e))}getSavedLabels(){return JSON.parse(this.getDataForHv(eb))||[]}saveLabels(e){this.setDataForHv(eb,JSON.stringify(e))}saveLabel(e,i,o){if(i){let r=!1;const s=this.getSavedLabels().map(a=>(a.id===e&&a.identifiedElementType===o&&(r=!0,a.label=i,this.savedLabels.set(a.id,{label:a.label,id:a.id,identifiedElementType:a.identifiedElementType})),a));if(r)this.saveLabels(s);else{const a={label:i,id:e,identifiedElementType:o};s.push(a),this.savedLabels.set(e,a),this.saveLabels(s)}}else{this.savedLabels.has(e)&&this.savedLabels.delete(e);let r=!1;const s=this.getSavedLabels().filter(a=>a.id!==e||(r=!0,!1));r&&this.saveLabels(s)}}getDefaultLabel(e){return e?e.ip?e.ip:e.localPk.substr(0,8):""}getLabelInfo(e){return this.savedLabels.has(e)?this.savedLabels.get(e):null}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const Jx={};class oi{_appId=D(Qs);static _infix=`a${Math.floor(1e5*Math.random()).toString()}`;getId(n,e=!1){return"ng"!==this._appId&&(n+=this._appId),Jx.hasOwnProperty(n)||(Jx[n]=0),`${n}${e?oi._infix+"-":""}${Jx[n]++}`}static \u0275fac=function(e){return new(e||oi)};static \u0275prov=te({token:oi,factory:oi.\u0275fac,providedIn:"root"})}const yf={schedule(t){let n=requestAnimationFrame,e=cancelAnimationFrame;const{delegate:i}=yf;i&&(n=i.requestAnimationFrame,e=i.cancelAnimationFrame);const o=n(r=>{e=void 0,t(r)});return new mt(()=>e?.(o))},requestAnimationFrame(...t){const{delegate:n}=yf;return(n?.requestAnimationFrame||requestAnimationFrame)(...t)},cancelAnimationFrame(...t){const{delegate:n}=yf;return(n?.cancelAnimationFrame||cancelAnimationFrame)(...t)},delegate:void 0};new class _ce extends Qx{flush(n){let e;this._active=!0,n?e=n.id:(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 gce extends Xx{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=yf.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&&e===n._scheduled&&(null===(o=r[r.length-1])||void 0===o?void 0:o.id)!==e&&(yf.cancelAnimationFrame(e),n._scheduled=void 0)}});let eS,vce=1;const nb={};function L3(t){return t in nb&&(delete nb[t],!0)}const yce={setImmediate(t){const n=vce++;return nb[n]=!0,eS||(eS=Promise.resolve()),eS.then(()=>L3(n)&&t()),n},clearImmediate(t){L3(t)}},{setImmediate:Cce,clearImmediate:wce}=yce,ib={setImmediate(...t){const{delegate:n}=ib;return(n?.setImmediate||Cce)(...t)},clearImmediate(t){const{delegate:n}=ib;return(n?.clearImmediate||wce)(t)},delegate:void 0};new class Sce extends Qx{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 xce extends Xx{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=ib.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&&(ib.clearImmediate(e),n._scheduled===e&&(n._scheduled=void 0))}});function B3(t,n=vf){return function Dce(t){return bn((n,e)=>{let i=!1,o=null,r=null,s=!1;const a=()=>{if(r?.unsubscribe(),r=null,i){i=!1;const c=o;o=null,e.next(c)}s&&e.complete()},l=()=>{r=null,s&&e.complete()};n.subscribe(en(e,c=>{i=!0,o=c,r||Vi(t(c)).subscribe(r=en(e,a,l))},()=>{s=!0,(!i||!r||r.closed)&&e.complete()}))})}(()=>Ul(t,n))}function Cf(t,n=0){return function Tce(t){return!isNaN(parseFloat(t))&&!isNaN(Number(t))}(t)?Number(t):2===arguments.length?n:0}function Ts(t){return t instanceof Ae?t.nativeElement:t}let tS;try{tS=typeof Intl<"u"&&Intl.v8BreakIterator}catch{tS=!1}let $n=(()=>{class t{_platformId=D(mC);isBrowser=this._platformId?function xz(t){return t===QT}(this._platformId):"object"==typeof document&&!!document;EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent);TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent);BLINK=this.isBrowser&&!(!window.chrome&&!tS)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT;WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT;IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window);FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent);ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT;SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT;constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Mce=new Z("cdk-dir-doc",{providedIn:"root",factory:()=>D(Qe)}),Ece=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;let hr=(()=>{class t{get value(){return this.valueSignal()}valueSignal=yt("ltr");change=new ve;constructor(){const e=D(Mce,{optional:!0});e&&this.valueSignal.set(function Ice(t){const n=t?.toLowerCase()||"";return"auto"===n&&typeof navigator<"u"&&navigator?.language?Ece.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 \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var Gr=function(t){return t[t.NORMAL=0]="NORMAL",t[t.NEGATED=1]="NEGATED",t[t.INVERTED=2]="INVERTED",t}(Gr||{});let ob,zl;function V3(){if(null==zl){if("object"!=typeof document||!document||"function"!=typeof Element||!Element)return zl=!1,zl;if(document.documentElement?.style&&"scrollBehavior"in document.documentElement.style)zl=!0;else{const t=Element.prototype.scrollTo;zl=!!t&&!/\{\s*\[native code\]\s*\}/.test(t.toString())}}return zl}function wf(){if("object"!=typeof document||!document)return Gr.NORMAL;if(null==ob){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),ob=Gr.NORMAL,0===t.scrollLeft&&(t.scrollLeft=1,ob=0===t.scrollLeft?Gr.NEGATED:Gr.INVERTED),t.remove()}return ob}let nS,ri=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({})}return t})(),rb=(()=>{class t{_ngZone=D(ge);_platform=D($n);_renderer=D(No).createRenderer(null,null);_cleanupGlobalListener;constructor(){}_scrolled=new pe;_scrolledCount=0;scrollContainers=new Map;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 Rt(i=>{this._cleanupGlobalListener||(this._cleanupGlobalListener=this._ngZone.runOutsideAngular(()=>this._renderer.listen("document","scroll",()=>this._scrolled.next())));const o=e>0?this._scrolled.pipe(B3(e)).subscribe(i):this._scrolled.subscribe(i);return this._scrolledCount++,()=>{o.unsubscribe(),this._scrolledCount--,this._scrolledCount||(this._cleanupGlobalListener?.(),this._cleanupGlobalListener=void 0)}}):ae()}ngOnDestroy(){this._cleanupGlobalListener?.(),this._cleanupGlobalListener=void 0,this.scrollContainers.forEach((e,i)=>this.deregister(i)),this._scrolled.complete()}ancestorScrolled(e,i){const o=this.getAncestorScrollContainers(e);return this.scrolled(i).pipe(vn(r=>!r||o.indexOf(r)>-1))}getAncestorScrollContainers(e){const i=[];return this.scrollContainers.forEach((o,r)=>{this._scrollableContainsElement(r,e)&&i.push(r)}),i}_scrollableContainsElement(e,i){let o=Ts(i),r=e.getElementRef().nativeElement;do{if(o==r)return!0}while(o=o.parentElement);return!1}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),H3=(()=>{class t{elementRef=D(Ae);scrollDispatcher=D(rb);ngZone=D(ge);dir=D(hr,{optional:!0});_scrollElement=this.elementRef.nativeElement;_destroyed=new pe;_renderer=D(Kn);_cleanupScroll;_elementScrolled=new pe;constructor(){}ngOnInit(){this._cleanupScroll=this.ngZone.runOutsideAngular(()=>this._renderer.listen(this._scrollElement,"scroll",e=>this._elementScrolled.next(e))),this.scrollDispatcher.register(this)}ngOnDestroy(){this._cleanupScroll?.(),this._elementScrolled.complete(),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&&wf()!=Gr.NORMAL?(null!=e.left&&(e.right=i.scrollWidth-i.clientWidth-e.left),wf()==Gr.INVERTED?e.left=e.right:wf()==Gr.NEGATED&&(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;V3()?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 s=this.dir&&"rtl"==this.dir.value;return"start"==e?e=s?o:i:"end"==e&&(e=s?i:o),s&&wf()==Gr.INVERTED?e==i?r.scrollWidth-r.clientWidth-r.scrollLeft:r.scrollLeft:s&&wf()==Gr.NEGATED?e==i?r.scrollLeft+r.scrollWidth-r.clientWidth:-r.scrollLeft:e==i?r.scrollLeft:r.scrollWidth-r.clientWidth-r.scrollLeft}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","cdk-scrollable",""],["","cdkScrollable",""]]})}return t})(),jd=(()=>{class t{_platform=D($n);_listeners;_viewportSize=null;_change=new pe;_document=D(Qe);constructor(){const e=D(ge),i=D(No).createRenderer(null,null);e.runOutsideAngular(()=>{if(this._platform.isBrowser){const o=r=>this._change.next(r);this._listeners=[i.listen("window","resize",o),i.listen("window","orientationchange",o)]}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){this._listeners?.forEach(e=>e()),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(B3(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 \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),xf=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({})}return t})(),j3=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({imports:[ri,xf,ri,xf]})}return t})();function iS(){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 fr(t){return t.composedPath?t.composedPath()[0]:t.target}function U3(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}const sb=new WeakMap;let pr=(()=>{class t{_appRef;_injector=D(Be);_environmentInjector=D(Nn);load(e){const i=this._appRef=this._appRef||this._injector.get(or);let o=sb.get(i);o||(o={loaders:new Set,refs:[]},sb.set(i,o),i.onDestroy(()=>{sb.get(i)?.refs.forEach(r=>r.destroy()),sb.delete(i)})),o.loaders.has(e)||(o.loaders.add(e),o.refs.push(gN(e,{environmentInjector:this._environmentInjector})))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Qn(t){return null==t?"":"string"==typeof t?t:`${t}px`}function ab(t){return Array.isArray(t)?t:[t]}class oS{_attachedHost=null;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 Ud extends oS{component;viewContainerRef;injector;projectableNodes;bindings;constructor(n,e,i,o,r){super(),this.component=n,this.viewContainerRef=e,this.injector=i,this.projectableNodes=o,this.bindings=r||null}}class $l extends oS{templateRef;viewContainerRef;context;injector;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 Lce extends oS{element;constructor(n){super(),this.element=n instanceof Ae?n.nativeElement:n}}class lb{_attachedPortal=null;_disposeFn=null;_isDisposed=!1;hasAttached(){return!!this._attachedPortal}attach(n){return n instanceof Ud?(this._attachedPortal=n,this.attachComponentPortal(n)):n instanceof $l?(this._attachedPortal=n,this.attachTemplatePortal(n)):this.attachDomPortal&&n instanceof Lce?(this._attachedPortal=n,this.attachDomPortal(n)):void 0}attachDomPortal=null;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 Bce extends lb{outletElement;_appRef;_defaultInjector;constructor(n,e,i){super(),this.outletElement=n,this._appRef=e,this._defaultInjector=i}attachComponentPortal(n){let e;if(n.viewContainerRef){const i=n.injector||n.viewContainerRef.injector,o=i.get(ms,null,{optional:!0})||void 0;e=n.viewContainerRef.createComponent(n.component,{index:n.viewContainerRef.length,injector:i,ngModuleRef:o,projectableNodes:n.projectableNodes||void 0,bindings:n.bindings||void 0}),this.setDisposeFn(()=>e.destroy())}else{const i=this._appRef,o=n.injector||this._defaultInjector||Be.NULL,r=o.get(Nn,i.injector);e=gN(n.component,{elementInjector:o,environmentInjector:r,projectableNodes:n.projectableNodes||void 0,bindings:n.bindings||void 0}),i.attachView(e.hostView),this.setDisposeFn(()=>{i.viewCount>0&&i.detachView(e.hostView),e.destroy()})}return this.outletElement.appendChild(this._getComponentRootNode(e)),this._attachedPortal=n,e}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}attachDomPortal=n=>{const e=n.element,i=this.outletElement.ownerDocument.createComment("dom-portal");e.parentNode.insertBefore(i,e),this.outletElement.appendChild(e),this._attachedPortal=n,super.setDisposeFn(()=>{i.parentNode&&i.parentNode.replaceChild(e,i)})};dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(n){return n.hostView.rootNodes[0]}}let Vce=(()=>{class t extends $l{constructor(){super(D(Ci),D(wi))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","cdkPortal",""]],exportAs:["cdkPortal"],features:[be]})}return t})(),Wl=(()=>{class t extends lb{_moduleRef=D(ms,{optional:!0});_document=D(Qe);_viewContainerRef=D(wi);_isInitialized=!1;_attachedRef=null;constructor(){super()}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)}attached=new ve;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,o=i.createComponent(e.component,{index:i.length,injector:e.injector||i.injector,projectableNodes:e.projectableNodes||void 0,ngModuleRef:this._moduleRef||void 0,bindings:e.bindings||void 0});return i!==this._viewContainerRef&&this._getRootNode().appendChild(o.hostView.rootNodes[0]),super.setDisposeFn(()=>o.destroy()),this._attachedPortal=e,this._attachedRef=o,this.attached.emit(o),o}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}attachDomPortal=e=>{const i=e.element,o=this._document.createComment("dom-portal");e.setAttachedHost(this),i.parentNode.insertBefore(o,i),this._getRootNode().appendChild(i),this._attachedPortal=e,super.setDisposeFn(()=>{o.parentNode&&o.parentNode.replaceChild(i,o)})};_getRootNode(){const e=this._viewContainerRef.element.nativeElement;return e.nodeType===e.ELEMENT_NODE?e:e.parentNode}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:[0,"cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],features:[be]})}return t})(),Sf=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({})}return t})();function mr(t,...n){return n.length?n.some(e=>t[e]):t.altKey||t.shiftKey||t.ctrlKey||t.metaKey}const $3=V3();function rS(t){return new ede(t.get(jd),t.get(Qe))}class ede{_viewportRuler;_previousHTMLStyles={top:"",left:""};_previousScrollPosition;_isEnabled=!1;_document;constructor(n,e){this._viewportRuler=n,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=Qn(-this._previousScrollPosition.left),n.style.top=Qn(-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||"",s=o.scrollBehavior||"";this._isEnabled=!1,i.left=this._previousHTMLStyles.left,i.top=this._previousHTMLStyles.top,n.classList.remove("cdk-global-scrollblock"),$3&&(i.scrollBehavior=o.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),$3&&(i.scrollBehavior=r,o.scrollBehavior=s)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;const e=this._document.documentElement,i=this._viewportRuler.getViewportSize();return e.scrollHeight>i.height||e.scrollWidth>i.width}}class nde{_scrollDispatcher;_ngZone;_viewportRuler;_config;_scrollSubscription=null;_overlayRef;_initialScrollPosition;constructor(n,e,i,o){this._scrollDispatcher=n,this._ngZone=e,this._viewportRuler=i,this._config=o}attach(n){this._overlayRef=n}enable(){if(this._scrollSubscription)return;const n=this._scrollDispatcher.scrolled(0).pipe(vn(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}_detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}}class sS{enable(){}disable(){}attach(){}}function aS(t,n){return n.some(e=>t.bottome.bottom||t.righte.right)}function W3(t,n){return n.some(e=>t.tope.bottom||t.lefte.right)}function Tf(t,n){return new ide(t.get(rb),t.get(jd),t.get(ge),n)}class ide{_scrollDispatcher;_viewportRuler;_ngZone;_config;_scrollSubscription=null;_overlayRef;constructor(n,e,i,o){this._scrollDispatcher=n,this._viewportRuler=e,this._ngZone=i,this._config=o}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();aS(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 ode=(()=>{class t{_injector=D(Be);constructor(){}noop=()=>new sS;close=e=>function tde(t,n){return new nde(t.get(rb),t.get(ge),t.get(jd),n)}(this._injector,e);block=()=>rS(this._injector);reposition=e=>Tf(this._injector,e);static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();class Mf{positionStrategy;scrollStrategy=new sS;panelClass="";hasBackdrop=!1;backdropClass="cdk-overlay-dark-backdrop";disableAnimations;width;height;minWidth;minHeight;maxWidth;maxHeight;direction;disposeOnNavigation=!1;usePopover;eventPredicate;constructor(n){if(n){const e=Object.keys(n);for(const i of e)void 0!==n[i]&&(this[i]=n[i])}}}class rde{connectionPair;scrollableViewProperties;constructor(n,e){this.connectionPair=n,this.scrollableViewProperties=e}}let G3=(()=>{class t{_attachedOverlays=[];_document=D(Qe);_isAttached=!1;constructor(){}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()}canReceiveEvent(e,i,o){return!(o.observers.length<1)&&(!e.eventPredicate||e.eventPredicate(i))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),sde=(()=>{class t extends G3{_ngZone=D(ge);_renderer=D(No).createRenderer(null,null);_cleanupKeydown;add(e){super.add(e),this._isAttached||(this._ngZone.runOutsideAngular(()=>{this._cleanupKeydown=this._renderer.listen("body","keydown",this._keydownListener)}),this._isAttached=!0)}detach(){this._isAttached&&(this._cleanupKeydown?.(),this._isAttached=!1)}_keydownListener=e=>{const i=this._attachedOverlays;for(let o=i.length-1;o>-1;o--){const r=i[o];if(this.canReceiveEvent(r,e,r._keydownEvents)){this._ngZone.run(()=>r._keydownEvents.next(e));break}}};static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),ade=(()=>{class t extends G3{_platform=D($n);_ngZone=D(ge);_renderer=D(No).createRenderer(null,null);_cursorOriginalValue;_cursorStyleIsSet=!1;_pointerDownEventTarget=null;_cleanups;add(e){if(super.add(e),!this._isAttached){const i=this._document.body,o={capture:!0},r=this._renderer;this._cleanups=this._ngZone.runOutsideAngular(()=>[r.listen(i,"pointerdown",this._pointerDownListener,o),r.listen(i,"click",this._clickListener,o),r.listen(i,"auxclick",this._clickListener,o),r.listen(i,"contextmenu",this._clickListener,o)]),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=i.style.cursor,i.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){this._isAttached&&(this._cleanups?.forEach(e=>e()),this._cleanups=void 0,this._platform.IOS&&this._cursorStyleIsSet&&(this._document.body.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1)}_pointerDownListener=e=>{this._pointerDownEventTarget=fr(e)};_clickListener=e=>{const i=fr(e),o="click"===e.type&&this._pointerDownEventTarget?this._pointerDownEventTarget:i;this._pointerDownEventTarget=null;const r=this._attachedOverlays.slice();for(let s=r.length-1;s>-1;s--){const a=r[s],l=a._outsidePointerEvents;if(a.hasAttached()&&this.canReceiveEvent(a,e,l)){if(q3(a.overlayElement,i)||q3(a.overlayElement,o))break;this._ngZone?this._ngZone.run(()=>l.next(e)):l.next(e)}}};static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function q3(t,n){const e=typeof ShadowRoot<"u"&&ShadowRoot;let i=n;for(;i;){if(i===t)return!0;i=e&&i instanceof ShadowRoot?i.host:i.parentNode}return!1}let K3=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["ng-component"]],hostAttrs:["cdk-overlay-style-loader",""],decls:0,vars:0,template:function(i,o){},styles:[".cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed}@layer cdk-overlay{.cdk-overlay-container{z-index:1000}}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute}@layer cdk-overlay{.cdk-global-overlay-wrapper{z-index:1000}}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;display:flex;max-width:100%;max-height:100%}@layer cdk-overlay{.cdk-overlay-pane{z-index:1000}}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);opacity:0;touch-action:manipulation}@layer cdk-overlay{.cdk-overlay-backdrop{z-index:1000;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}}@media(prefers-reduced-motion){.cdk-overlay-backdrop{transition-duration:1ms}}.cdk-overlay-backdrop-showing{opacity:1}@media(forced-colors: active){.cdk-overlay-backdrop-showing{opacity:.6}}@layer cdk-overlay{.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing,.cdk-high-contrast-active .cdk-overlay-transparent-backdrop{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;display:flex;flex-direction:column;min-width:1px;min-height:1px}@layer cdk-overlay{.cdk-overlay-connected-position-bounding-box{z-index:1000}}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.cdk-overlay-popover{background:none;border:none;padding:0;outline:0;overflow:visible;position:fixed;pointer-events:none;white-space:normal;color:inherit;text-decoration:none;width:100%;height:100%;inset:auto;top:0;left:0}.cdk-overlay-popover::backdrop{display:none}.cdk-overlay-popover .cdk-overlay-backdrop{position:fixed;z-index:auto}\n"],encapsulation:2,changeDetection:0})}return t})(),lS=(()=>{class t{_platform=D($n);_containerElement;_document=D(Qe);_styleLoader=D(pr);constructor(){}ngOnDestroy(){this._containerElement?.remove()}getContainerElement(){return this._loadStyles(),this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const e="cdk-overlay-container";if(this._platform.isBrowser||U3()){const o=this._document.querySelectorAll(`.${e}[platform="server"], .${e}[platform="test"]`);for(let r=0;r{const n=this.element;clearTimeout(this._fallbackTimeout),this._cleanupTransitionEnd?.(),this._cleanupTransitionEnd=this._renderer.listen(n,"transitionend",this.dispose),this._fallbackTimeout=setTimeout(this.dispose,500),n.style.pointerEvents="none",n.classList.remove("cdk-overlay-backdrop-showing")})}dispose=()=>{clearTimeout(this._fallbackTimeout),this._cleanupClick?.(),this._cleanupTransitionEnd?.(),this._cleanupClick=this._cleanupTransitionEnd=this._fallbackTimeout=void 0,this.element.remove()}}function cS(t){return t&&1===t.nodeType}class Y3{_portalOutlet;_host;_pane;_config;_ngZone;_keyboardDispatcher;_document;_location;_outsideClickDispatcher;_animationsDisabled;_injector;_renderer;_backdropClick=new pe;_attachments=new pe;_detachments=new pe;_positionStrategy;_scrollStrategy;_locationChanges=mt.EMPTY;_backdropRef=null;_detachContentMutationObserver;_detachContentAfterRenderRef;_disposed=!1;_previousHostParent;_keydownEvents=new pe;_outsidePointerEvents=new pe;_afterNextRenderRef;constructor(n,e,i,o,r,s,a,l,c,u=!1,p,g){this._portalOutlet=n,this._host=e,this._pane=i,this._config=o,this._ngZone=r,this._keyboardDispatcher=s,this._document=a,this._location=l,this._outsideClickDispatcher=c,this._animationsDisabled=u,this._injector=p,this._renderer=g,o.scrollStrategy&&(this._scrollStrategy=o.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=o.positionStrategy}get overlayElement(){return this._pane}get backdropElement(){return this._backdropRef?.element||null}get hostElement(){return this._host}get eventPredicate(){return this._config?.eventPredicate||null}attach(n){if(this._disposed)return null;this._attachHost();const e=this._portalOutlet.attach(n);return this._positionStrategy?.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._afterNextRenderRef?.destroy(),this._afterNextRenderRef=Fi(()=>{this.hasAttached()&&this.updatePosition()},{injector:this._injector}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._completeDetachContent(),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._completeDetachContent(),this._keyboardDispatcher.remove(this),this._detachContentWhenEmpty(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),n}dispose(){if(this._disposed)return;const n=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._backdropRef?.dispose(),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._afterNextRenderRef?.destroy(),this._previousHostParent=this._pane=this._host=this._backdropRef=null,n&&this._detachments.next(),this._detachments.complete(),this._completeDetachContent(),this._disposed=!0}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=Qn(this._config.width),n.height=Qn(this._config.height),n.minWidth=Qn(this._config.minWidth),n.minHeight=Qn(this._config.minHeight),n.maxWidth=Qn(this._config.maxWidth),n.maxHeight=Qn(this._config.maxHeight)}_togglePointerEvents(n){this._pane.style.pointerEvents=n?"":"none"}_attachHost(){if(!this._host.parentElement){const n=this._config.usePopover?this._positionStrategy?.getPopoverInsertionPoint?.():null;cS(n)?n.after(this._host):"parent"===n?.type?n.element.appendChild(this._host):this._previousHostParent?.appendChild(this._host)}if(this._config.usePopover)try{this._host.showPopover()}catch{}}_attachBackdrop(){const n="cdk-overlay-backdrop-showing";this._backdropRef?.dispose(),this._backdropRef=new lde(this._document,this._renderer,this._ngZone,e=>{this._backdropClick.next(e)}),this._animationsDisabled&&this._backdropRef.element.classList.add("cdk-overlay-backdrop-noop-animation"),this._config.backdropClass&&this._toggleClasses(this._backdropRef.element,this._config.backdropClass,!0),this._config.usePopover?this._host.prepend(this._backdropRef.element):this._host.parentElement.insertBefore(this._backdropRef.element,this._host),!this._animationsDisabled&&typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>this._backdropRef?.element.classList.add(n))}):this._backdropRef.element.classList.add(n)}_updateStackingOrder(){!this._config.usePopover&&this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){this._animationsDisabled?(this._backdropRef?.dispose(),this._backdropRef=null):this._backdropRef?.detach()}_toggleClasses(n,e,i){const o=ab(e||[]).filter(r=>!!r);o.length&&(i?n.classList.add(...o):n.classList.remove(...o))}_detachContentWhenEmpty(){let n=!1;try{this._detachContentAfterRenderRef=Fi(()=>{n=!0,this._detachContent()},{injector:this._injector})}catch(e){if(n)throw e;this._detachContent()}globalThis.MutationObserver&&this._pane&&(this._detachContentMutationObserver||=new globalThis.MutationObserver(()=>{this._detachContent()}),this._detachContentMutationObserver.observe(this._pane,{childList:!0}))}_detachContent(){(!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()),this._completeDetachContent())}_completeDetachContent(){this._detachContentAfterRenderRef?.destroy(),this._detachContentAfterRenderRef=void 0,this._detachContentMutationObserver?.disconnect()}_disposeScrollStrategy(){const n=this._scrollStrategy;n?.disable(),n?.detach?.()}}const X3="cdk-overlay-connected-position-bounding-box",cde=/([A-Za-z%]+)$/;function fb(t,n){return new dde(n,t.get(jd),t.get(Qe),t.get($n),t.get(lS))}class dde{_viewportRuler;_document;_platform;_overlayContainer;_overlayRef;_isInitialRender=!1;_lastBoundingBoxSize={width:0,height:0};_isPushed=!1;_canPush=!0;_growAfterOpen=!1;_hasFlexibleDimensions=!0;_positionLocked=!1;_originRect;_overlayRect;_viewportRect;_containerRect;_viewportMargin=0;_scrollables=[];_preferredPositions=[];_origin;_pane;_isDisposed=!1;_boundingBox=null;_lastPosition=null;_lastScrollVisibility=null;_positionChanges=new pe;_resizeSubscription=mt.EMPTY;_offsetX=0;_offsetY=0;_transformOriginSelector;_appliedPanelClasses=[];_previousPushAmount=null;_popoverLocation="global";positionChanges=this._positionChanges;get positions(){return this._preferredPositions}constructor(n,e,i,o,r){this._viewportRuler=e,this._document=i,this._platform=o,this._overlayContainer=r,this.setOrigin(n)}attach(n){this._validatePositions(),n.hostElement.classList.add(X3),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._getContainerRect();const n=this._originRect,e=this._overlayRect,i=this._viewportRect,o=this._containerRect,r=[];let s;for(let a of this._preferredPositions){let l=this._getOriginPoint(n,o,a),c=this._getOverlayPoint(l,e,a),u=this._getOverlayFit(c,e,i,a);if(u.isCompletelyWithinViewport)return this._isPushed=!1,void this._applyPosition(a,l);this._canFitWithFlexibleDimensions(u,c,i)?r.push({position:a,origin:l,overlayRect:e,boundingBoxRect:this._calculateBoundingBoxRect(l,a)}):(!s||s.overlayFit.visibleAreal&&(l=u,a=c)}return this._isPushed=!1,void this._applyPosition(a.position,a.origin)}if(this._canPush)return this._isPushed=!0,void this._applyPosition(s.position,s.originPoint);this._applyPosition(s.position,s.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&Gl(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(X3),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;n?(this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._getContainerRect(),this._applyPosition(n,this._getOriginPoint(this._originRect,this._containerRect,n))):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}withPopoverLocation(n){return this._popoverLocation=n,this}getPopoverInsertionPoint(){return"global"===this._popoverLocation?null:"inline"!==this._popoverLocation?this._popoverLocation:this._origin instanceof Ae?this._origin.nativeElement:cS(this._origin)?this._origin:null}_getOriginPoint(n,e,i){let o,r;if("center"==i.originX)o=n.left+n.width/2;else{const s=this._isRtl()?n.right:n.left,a=this._isRtl()?n.left:n.right;o="start"==i.originX?s:a}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=Q3(e);let{x:s,y:a}=n,l=this._getOffset(o,"x"),c=this._getOffset(o,"y");l&&(s+=l),c&&(a+=c);let g=0-a,_=a+r.height-i.height,w=this._subtractOverflows(r.width,0-s,s+r.width-i.width),x=this._subtractOverflows(r.height,g,_),T=w*x;return{visibleArea:T,isCompletelyWithinViewport:r.width*r.height===T,fitsInViewportVertically:x===r.height,fitsInViewportHorizontally:w==r.width}}_canFitWithFlexibleDimensions(n,e,i){if(this._hasFlexibleDimensions){const o=i.bottom-e.y,r=i.right-e.x,s=Z3(this._overlayRef.getConfig().minHeight),a=Z3(this._overlayRef.getConfig().minWidth);return(n.fitsInViewportVertically||null!=s&&s<=o)&&(n.fitsInViewportHorizontally||null!=a&&a<=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=Q3(e),r=this._viewportRect,s=Math.max(n.x+o.width-r.width,0),a=Math.max(n.y+o.height-r.height,0),l=Math.max(r.top-i.top-n.y,0),c=Math.max(r.left-i.left-n.x,0);let u=0,p=0;return u=o.width<=r.width?c||-s:n.xw&&!this._isInitialRender&&!this._growAfterOpen&&(s=n.y-w/2)}const l="start"===e.overlayX&&!o||"end"===e.overlayX&&o;let u,p,g;if("end"===e.overlayX&&!o||"start"===e.overlayX&&o)g=i.width-n.x+this._getViewportMarginStart()+this._getViewportMarginEnd(),u=n.x-this._getViewportMarginStart();else if(l)p=n.x,u=i.right-n.x-this._getViewportMarginEnd();else{const _=Math.min(i.right-n.x+i.left,n.x),w=this._lastBoundingBoxSize.width;u=2*_,p=n.x-_,u>w&&!this._isInitialRender&&!this._growAfterOpen&&(p=n.x-w/2)}return{top:s,left:p,bottom:a,right:g,width:u,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="auto",o.maxHeight=o.maxWidth="",o.width=o.height="100%";else{const r=this._overlayRef.getConfig().maxHeight,s=this._overlayRef.getConfig().maxWidth;o.width=Qn(i.width),o.height=Qn(i.height),o.top=Qn(i.top)||"auto",o.bottom=Qn(i.bottom)||"auto",o.left=Qn(i.left)||"auto",o.right=Qn(i.right)||"auto",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=Qn(r)),s&&(o.maxWidth=Qn(s))}this._lastBoundingBoxSize=i,Gl(this._boundingBox.style,o)}_resetBoundingBoxStyles(){Gl(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){Gl(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(n,e){const i={},o=this._hasExactPosition(),r=this._hasFlexibleDimensions,s=this._overlayRef.getConfig();if(o){const u=this._viewportRuler.getViewportScrollPosition();Gl(i,this._getExactOverlayY(e,n,u)),Gl(i,this._getExactOverlayX(e,n,u))}else i.position="static";let a="",l=this._getOffset(e,"x"),c=this._getOffset(e,"y");l&&(a+=`translateX(${l}px) `),c&&(a+=`translateY(${c}px)`),i.transform=a.trim(),s.maxHeight&&(o?i.maxHeight=Qn(s.maxHeight):r&&(i.maxHeight="")),s.maxWidth&&(o?i.maxWidth=Qn(s.maxWidth):r&&(i.maxWidth="")),Gl(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=Qn(r.y),o}_getExactOverlayX(n,e,i){let s,o={left:"",right:""},r=this._getOverlayPoint(e,this._overlayRect,n);return this._isPushed&&(r=this._pushOverlayOnScreen(r,this._overlayRect,i)),s=this._isRtl()?"end"===n.overlayX?"left":"right":"end"===n.overlayX?"right":"left","right"===s?o.right=this._document.documentElement.clientWidth-(r.x+this._overlayRect.width)+"px":o.left=Qn(r.x),o}_getScrollVisibility(){const n=this._getOriginRect(),e=this._pane.getBoundingClientRect(),i=this._scrollables.map(o=>o.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:W3(n,i),isOriginOutsideView:aS(n,i),isOverlayClipped:W3(e,i),isOverlayOutsideView:aS(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._getViewportMarginTop(),left:i.left+this._getViewportMarginStart(),right:i.left+n-this._getViewportMarginEnd(),bottom:i.top+e-this._getViewportMarginBottom(),width:n-this._getViewportMarginStart()-this._getViewportMarginEnd(),height:e-this._getViewportMarginTop()-this._getViewportMarginBottom()}}_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&&ab(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=[])}_getViewportMarginStart(){return"number"==typeof this._viewportMargin?this._viewportMargin:this._viewportMargin?.start??0}_getViewportMarginEnd(){return"number"==typeof this._viewportMargin?this._viewportMargin:this._viewportMargin?.end??0}_getViewportMarginTop(){return"number"==typeof this._viewportMargin?this._viewportMargin:this._viewportMargin?.top??0}_getViewportMarginBottom(){return"number"==typeof this._viewportMargin?this._viewportMargin:this._viewportMargin?.bottom??0}_getOriginRect(){const n=this._origin;if(n instanceof Ae)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}}_getContainerRect(){const n=this._overlayRef.getConfig().usePopover&&"global"!==this._popoverLocation,e=this._overlayContainer.getContainerElement();n&&(e.style.display="block");const i=e.getBoundingClientRect();return n&&(e.style.display=""),i}}function Gl(t,n){for(let e in n)n.hasOwnProperty(e)&&(t[e]=n[e]);return t}function Z3(t){if("number"!=typeof t&&null!=t){const[n,e]=t.split(cde);return e&&"px"!==e?null:parseFloat(n)}return t||null}function Q3(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 J3="cdk-global-overlay-wrapper";function pb(t){return new hde}class hde{_overlayRef;_cssPosition="static";_topOffset="";_bottomOffset="";_alignItems="";_xPosition="";_xOffset="";_width="";_height="";_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(J3),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:s,maxHeight:a}=i,l=!("100%"!==o&&"100vw"!==o||s&&"100%"!==s&&"100vw"!==s),c=!("100%"!==r&&"100vh"!==r||a&&"100%"!==a&&"100vh"!==a),u=this._xPosition,p=this._xOffset,g="rtl"===this._overlayRef.getConfig().direction;let _="",w="",x="";l?x="flex-start":"center"===u?(x="center",g?w=p:_=p):g?"left"===u||"end"===u?(x="flex-end",_=p):("right"===u||"start"===u)&&(x="flex-start",w=p):"left"===u||"start"===u?(x="flex-start",_=p):("right"===u||"end"===u)&&(x="flex-end",w=p),n.position=this._cssPosition,n.marginLeft=l?"0":_,n.marginTop=c?"0":this._topOffset,n.marginBottom=this._bottomOffset,n.marginRight=l?"0":w,e.justifyContent=x,e.alignItems=c?"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(J3),i.justifyContent=i.alignItems=n.marginTop=n.marginBottom=n.marginLeft=n.marginRight=n.position="",this._overlayRef=null,this._isDisposed=!0}}let fde=(()=>{class t{_injector=D(Be);constructor(){}global(){return pb()}flexibleConnectedTo(e){return fb(this._injector,e)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const dS=new Z("OVERLAY_DEFAULT_CONFIG");function $d(t,n){t.get(pr).load(K3);const e=t.get(lS),i=t.get(Qe),o=t.get(oi),r=t.get(or),s=t.get(hr),a=t.get(Kn,null,{optional:!0})||t.get(No).createRenderer(null,null),l=new Mf(n),c=t.get(dS,null,{optional:!0})?.usePopover??!0;l.direction=l.direction||s.value,l.usePopover="showPopover"in i.body&&(n?.usePopover??c);const u=i.createElement("div"),p=i.createElement("div");u.id=o.getId("cdk-overlay-"),u.classList.add("cdk-overlay-pane"),p.appendChild(u),l.usePopover&&(p.setAttribute("popover","manual"),p.classList.add("cdk-overlay-popover"));const g=l.usePopover?l.positionStrategy?.getPopoverInsertionPoint?.():null;return cS(g)?g.after(p):"parent"===g?.type?g.element.appendChild(p):e.getContainerElement().appendChild(p),new Y3(new Bce(u,r,t),p,u,l,t.get(ge),t.get(sde),i,t.get(Ed),t.get(ade),n?.disableAnimations??"NoopAnimations"===t.get(xm,null,{optional:!0}),t.get(Nn),a)}let pde=(()=>{class t{scrollStrategies=D(ode);_positionBuilder=D(fde);_injector=D(Be);constructor(){}create(e){return $d(this._injector,e)}position(){return this._positionBuilder}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const mde=[{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"}],gde=new Z("cdk-connected-overlay-scroll-strategy",{providedIn:"root",factory:()=>{const t=D(Be);return()=>Tf(t)}});let mb=(()=>{class t{elementRef=D(Ae);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"]})}return t})();const _de=new Z("cdk-connected-overlay-default-config");let gb,eB=(()=>{class t{_dir=D(hr,{optional:!0});_injector=D(Be);_overlayRef;_templatePortal;_backdropSubscription=mt.EMPTY;_attachSubscription=mt.EMPTY;_detachSubscription=mt.EMPTY;_positionSubscription=mt.EMPTY;_offsetX;_offsetY;_position;_scrollStrategyFactory=D(gde);_ngZone=D(ge);origin;positions;positionStrategy;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)}width;height;minWidth;minHeight;backdropClass;panelClass;viewportMargin=0;scrollStrategy;open=!1;disableClose=!1;transformOriginSelector;hasBackdrop=!1;lockPosition=!1;flexibleDimensions=!1;growAfterOpen=!1;push=!1;disposeOnNavigation=!1;usePopover;matchWidth=!1;set _config(e){"string"!=typeof e&&this._assignConfig(e)}backdropClick=new ve;positionChange=new ve;attach=new ve;detach=new ve;overlayKeydown=new ve;overlayOutsideClick=new ve;constructor(){const e=D(Ci),i=D(wi),o=D(_de,{optional:!0}),r=D(dS,{optional:!0});this.usePopover=!1===r?.usePopover?null:"global",this._templatePortal=new $l(e,i),this.scrollStrategy=this._scrollStrategyFactory(),o&&this._assignConfig(o)}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?.dispose()}ngOnChanges(e){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef?.updateSize({width:this._getWidth(),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=mde);const e=this._overlayRef=$d(this._injector,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&&!mr(i)&&(i.preventDefault(),this.detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(i=>{const o=this._getOriginElement(),r=fr(i);(!o||o!==r&&!o.contains(r))&&this.overlayOutsideClick.next(i)})}_buildConfig(){const e=this._position=this.positionStrategy||this._createPositionStrategy(),i=new Mf({direction:this._dir||"ltr",positionStrategy:e,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop,disposeOnNavigation:this.disposeOnNavigation,usePopover:!!this.usePopover});return(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._getOrigin()).withPositions(i).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector).withPopoverLocation(null===this.usePopover?"global":this.usePopover)}_createPositionStrategy(){const e=fb(this._injector,this._getOrigin());return this._updatePositionStrategy(e),e}_getOrigin(){return this.origin instanceof mb?this.origin.elementRef:this.origin}_getOriginElement(){return this.origin instanceof mb?this.origin.elementRef.nativeElement:this.origin instanceof Ae?this.origin.nativeElement:typeof Element<"u"&&this.origin instanceof Element?this.origin:null}_getWidth(){return this.width?this.width:this.matchWidth?this._getOriginElement()?.getBoundingClientRect?.().width:void 0}attachOverlay(){this._overlayRef||this._createOverlay();const e=this._overlayRef;e.getConfig().hasBackdrop=this.hasBackdrop,e.updateSize({width:this._getWidth()}),e.hasAttached()||e.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=e.backdropClick().subscribe(i=>this.backdropClick.emit(i)):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe(function Hce(t,n=!1){return bn((e,i)=>{let o=0;e.subscribe(en(i,r=>{const s=t(r,o++);(s||n)&&i.next(r),!s&&i.complete()}))})}(()=>this.positionChange.observers.length>0)).subscribe(i=>{this._ngZone.run(()=>this.positionChange.emit(i)),0===this.positionChange.observers.length&&this._positionSubscription.unsubscribe()})),this.open=!0}detachOverlay(){this._overlayRef?.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.open=!1}_assignConfig(e){this.origin=e.origin??this.origin,this.positions=e.positions??this.positions,this.positionStrategy=e.positionStrategy??this.positionStrategy,this.offsetX=e.offsetX??this.offsetX,this.offsetY=e.offsetY??this.offsetY,this.width=e.width??this.width,this.height=e.height??this.height,this.minWidth=e.minWidth??this.minWidth,this.minHeight=e.minHeight??this.minHeight,this.backdropClass=e.backdropClass??this.backdropClass,this.panelClass=e.panelClass??this.panelClass,this.viewportMargin=e.viewportMargin??this.viewportMargin,this.scrollStrategy=e.scrollStrategy??this.scrollStrategy,this.disableClose=e.disableClose??this.disableClose,this.transformOriginSelector=e.transformOriginSelector??this.transformOriginSelector,this.hasBackdrop=e.hasBackdrop??this.hasBackdrop,this.lockPosition=e.lockPosition??this.lockPosition,this.flexibleDimensions=e.flexibleDimensions??this.flexibleDimensions,this.growAfterOpen=e.growAfterOpen??this.growAfterOpen,this.push=e.push??this.push,this.disposeOnNavigation=e.disposeOnNavigation??this.disposeOnNavigation,this.usePopover=e.usePopover??this.usePopover,this.matchWidth=e.matchWidth??this.matchWidth}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{origin:[0,"cdkConnectedOverlayOrigin","origin"],positions:[0,"cdkConnectedOverlayPositions","positions"],positionStrategy:[0,"cdkConnectedOverlayPositionStrategy","positionStrategy"],offsetX:[0,"cdkConnectedOverlayOffsetX","offsetX"],offsetY:[0,"cdkConnectedOverlayOffsetY","offsetY"],width:[0,"cdkConnectedOverlayWidth","width"],height:[0,"cdkConnectedOverlayHeight","height"],minWidth:[0,"cdkConnectedOverlayMinWidth","minWidth"],minHeight:[0,"cdkConnectedOverlayMinHeight","minHeight"],backdropClass:[0,"cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:[0,"cdkConnectedOverlayPanelClass","panelClass"],viewportMargin:[0,"cdkConnectedOverlayViewportMargin","viewportMargin"],scrollStrategy:[0,"cdkConnectedOverlayScrollStrategy","scrollStrategy"],open:[0,"cdkConnectedOverlayOpen","open"],disableClose:[0,"cdkConnectedOverlayDisableClose","disableClose"],transformOriginSelector:[0,"cdkConnectedOverlayTransformOriginOn","transformOriginSelector"],hasBackdrop:[2,"cdkConnectedOverlayHasBackdrop","hasBackdrop",Ie],lockPosition:[2,"cdkConnectedOverlayLockPosition","lockPosition",Ie],flexibleDimensions:[2,"cdkConnectedOverlayFlexibleDimensions","flexibleDimensions",Ie],growAfterOpen:[2,"cdkConnectedOverlayGrowAfterOpen","growAfterOpen",Ie],push:[2,"cdkConnectedOverlayPush","push",Ie],disposeOnNavigation:[2,"cdkConnectedOverlayDisposeOnNavigation","disposeOnNavigation",Ie],usePopover:[0,"cdkConnectedOverlayUsePopover","usePopover"],matchWidth:[2,"cdkConnectedOverlayMatchWidth","matchWidth",Ie],_config:[0,"cdkConnectedOverlay","_config"]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],features:[yi]})}return t})(),Wd=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({providers:[pde],imports:[ri,Sf,j3,j3]})}return t})(),uS=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["ng-component"]],exportAs:["cdkVisuallyHidden"],decls:0,vars:0,template:function(i,o){},styles:[".cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}\n"],encapsulation:2,changeDetection:0})}return t})();function Gd(t){return function bde(){if(void 0===gb&&(gb=null,typeof window<"u")){const t=window;void 0!==t.trustedTypes&&(gb=t.trustedTypes.createPolicy("angular#components",{createHTML:n=>n}))}return gb}()?.createHTML(t)||t}function hS(t){return vn((n,e)=>t<=e)}function _b(t,n=vf){return bn((e,i)=>{let o=null,r=null,s=null;const a=()=>{if(o){o.unsubscribe(),o=null;const c=r;r=null,i.next(c)}};function l(){const c=s+t,u=n.now();if(u{r=c,s=n.now(),o||(o=n.schedule(l,t),i.add(o))},()=>{a(),i.complete()},void 0,()=>{r=o=null}))})}const tB=new Set;let ql,fS=(()=>{class t{_platform=D($n);_nonce=D(gC,{optional:!0});_matchMedia;constructor(){this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):Cde}matchMedia(e){return(this._platform.WEBKIT||this._platform.BLINK)&&function yde(t,n){if(!tB.has(t))try{ql||(ql=document.createElement("style"),n&&ql.setAttribute("nonce",n),ql.setAttribute("type","text/css"),document.head.appendChild(ql)),ql.sheet&&(ql.sheet.insertRule(`@media ${t} {body{ }}`,0),tB.add(t))}catch(e){console.error(e)}}(e,this._nonce),this._matchMedia(e)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Cde(t){return{matches:"all"===t||""===t,media:t,addListener:()=>{},removeListener:()=>{}}}let nB=(()=>{class t{_mediaMatcher=D(fS);_zone=D(ge);_queries=new Map;_destroySubject=new pe;constructor(){}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(e){return iB(ab(e)).some(o=>this._registerQuery(o).mql.matches)}observe(e){let r=yx(iB(ab(e)).map(s=>this._registerQuery(s).observable));return r=ks(r.pipe(un(1)),r.pipe(hS(1),_b(0))),r.pipe(ye(s=>{const a={matches:!1,breakpoints:{}};return s.forEach(({matches:l,query:c})=>{a.matches=a.matches||l,a.breakpoints[c]=l}),a}))}_registerQuery(e){if(this._queries.has(e))return this._queries.get(e);const i=this._mediaMatcher.matchMedia(e),r={observable:new Rt(s=>{const a=l=>this._zone.run(()=>s.next(l));return i.addListener(a),()=>{i.removeListener(a)}}).pipe(to(i),ye(({matches:s})=>({query:e,matches:s})),on(this._destroySubject)),mql:i};return this._queries.set(e,r),r}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function iB(t){return t.map(n=>n.split(",")).reduce((n,e)=>n.concat(e)).map(n=>n.trim())}let oB=(()=>{class t{create(e){return typeof MutationObserver>"u"?null:new MutationObserver(e)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),xde=(()=>{class t{_mutationObserverFactory=D(oB);_observedElements=new Map;_ngZone=D(ge);constructor(){}ngOnDestroy(){this._observedElements.forEach((e,i)=>this._cleanupObserver(i))}observe(e){const i=Ts(e);return new Rt(o=>{const s=this._observeElement(i).pipe(ye(a=>a.filter(l=>!function wde(t){if("characterData"===t.type&&t.target instanceof Comment)return!0;if("childList"===t.type){for(let n=0;n!!a.length)).subscribe(a=>{this._ngZone.run(()=>{o.next(a)})});return()=>{s.unsubscribe(),this._unobserveElement(i)}})}_observeElement(e){return this._ngZone.runOutsideAngular(()=>{if(this._observedElements.has(e))this._observedElements.get(e).count++;else{const i=new pe,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 \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Sde=(()=>{class t{_contentObserver=D(xde);_elementRef=D(Ae);event=new ve;get disabled(){return this._disabled}set disabled(e){this._disabled=e,this._disabled?this._unsubscribe():this._subscribe()}_disabled=!1;get debounce(){return this._debounce}set debounce(e){this._debounce=Cf(e),this._subscribe()}_debounce;_currentSubscription=null;constructor(){}ngAfterContentInit(){!this._currentSubscription&&!this.disabled&&this._subscribe()}ngOnDestroy(){this._unsubscribe()}_subscribe(){this._unsubscribe();const e=this._contentObserver.observe(this._elementRef);this._currentSubscription=(this.debounce?e.pipe(_b(this.debounce)):e).subscribe(this.event)}_unsubscribe(){this._currentSubscription?.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","cdkObserveContent",""]],inputs:{disabled:[2,"cdkObserveContentDisabled","disabled",Ie],debounce:"debounce"},outputs:{event:"cdkObserveContent"},exportAs:["cdkObserveContent"]})}return t})(),rB=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({providers:[oB]})}return t})(),sB=(()=>{class t{_platform=D($n);constructor(){}isDisabled(e){return e.hasAttribute("disabled")}isVisible(e){return function Dde(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 kde(t){try{return t.frameElement}catch{return null}}(function Rde(t){return t.ownerDocument&&t.ownerDocument.defaultView||window}(e));if(i&&(-1===lB(i)||!this.isVisible(i)))return!1;let o=e.nodeName.toLowerCase(),r=lB(e);return e.hasAttribute("contenteditable")?-1!==r:!("iframe"===o||"object"===o||this._platform.WEBKIT&&this._platform.IOS&&!function Ode(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 Ade(t){return!function Mde(t){return function Ide(t){return"input"==t.nodeName.toLowerCase()}(t)&&"hidden"==t.type}(t)&&(function Tde(t){let n=t.nodeName.toLowerCase();return"input"===n||"select"===n||"button"===n||"textarea"===n}(t)||function Ede(t){return function Pde(t){return"a"==t.nodeName.toLowerCase()}(t)&&t.hasAttribute("href")}(t)||t.hasAttribute("contenteditable")||aB(t))}(e)&&!this.isDisabled(e)&&(i?.ignoreVisibility||this.isVisible(e))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function aB(t){if(!t.hasAttribute("tabindex")||void 0===t.tabIndex)return!1;let n=t.getAttribute("tabindex");return!(!n||isNaN(parseInt(n,10)))}function lB(t){if(!aB(t))return null;const n=parseInt(t.getAttribute("tabindex")||"",10);return isNaN(n)?-1:n}class cB{_element;_checker;_ngZone;_document;_injector;_startAnchor=null;_endAnchor=null;_hasAttached=!1;startAnchorListener=()=>this.focusLastTabbableElement();endAnchorListener=()=>this.focusFirstTabbableElement();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))}_enabled=!0;constructor(n,e,i,o,r=!1,s){this._element=n,this._checker=e,this._ngZone=i,this._document=o,this._injector=s,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._injector?Fi(n,{injector:this._injector}):setTimeout(n)}}let Nde=(()=>{class t{_checker=D(sB);_ngZone=D(ge);_document=D(Qe);_injector=D(Be);constructor(){D(pr).load(uS)}create(e,i=!1){return new cB(e,this._checker,this._ngZone,this._document,i,this._injector)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Fde=new Z("liveAnnouncerElement",{providedIn:"root",factory:()=>null}),Lde=new Z("LIVE_ANNOUNCER_DEFAULT_OPTIONS");let Bde=0,dB=(()=>{class t{_ngZone=D(ge);_defaultOptions=D(Lde,{optional:!0});_liveElement;_document=D(Qe);_sanitizer=D(wx);_previousTimeout;_currentPromise;_currentResolve;constructor(){const e=D(Fde,{optional:!0});this._liveElement=e||this._createLiveElement()}announce(e,...i){const o=this._defaultOptions;let r,s;return 1===i.length&&"number"==typeof i[0]?s=i[0]:[r,s]=i,this.clear(),clearTimeout(this._previousTimeout),r||(r=o&&o.politeness?o.politeness:"polite"),null==s&&o&&(s=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(a=>this._currentResolve=a)),clearTimeout(this._previousTimeout),this._previousTimeout=setTimeout(()=>{e&&"string"!=typeof e?function vde(t,n,e){const i=e.sanitize(ui.HTML,n);t.innerHTML=Gd(i||"")}(this._liveElement,e,this._sanitizer):this._liveElement.textContent=e,"number"==typeof s&&(this._previousTimeout=setTimeout(()=>this.clear(),s)),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{_platform=D($n);_hasCheckedHighContrastMode=!1;_document=D(Qe);_breakpointSubscription;constructor(){this._breakpointSubscription=D(nB).observe("(forced-colors: active)").subscribe(()=>{this._hasCheckedHighContrastMode&&(this._hasCheckedHighContrastMode=!1,this._applyBodyHighContrastModeCssClasses())})}getHighContrastMode(){if(!this._platform.isBrowser)return Kl.NONE;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 Kl.WHITE_ON_BLACK;case"rgb(255,255,255)":case"rgb(255,250,239)":return Kl.BLACK_ON_WHITE}return Kl.NONE}ngOnDestroy(){this._breakpointSubscription.unsubscribe()}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){const e=this._document.body.classList;e.remove(pS,uB,hB),this._hasCheckedHighContrastMode=!0;const i=this.getHighContrastMode();i===Kl.BLACK_ON_WHITE?e.add(pS,uB):i===Kl.WHITE_ON_BLACK&&e.add(pS,hB)}}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),fB=(()=>{class t{constructor(){D(Vde)._applyBodyHighContrastModeCssClasses()}static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({imports:[rB]})}return t})();function jde(t,n){return t===n}function mS(t){return 0===t.buttons||0===t.detail}function gS(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)}function _S(t){return function Ude(){if(null==Ef&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>Ef=!0}))}finally{Ef=Ef||!1}return Ef}()?t:!!t.capture}const zde=new Z("cdk-input-modality-detector-options"),$de={ignoreKeys:[18,17,224,91,16]},bS={passive:!0,capture:!0};let Wde=(()=>{class t{_platform=D($n);_listenerCleanups;modalityDetected;modalityChanged;get mostRecentModality(){return this._modality.value}_mostRecentTarget=null;_modality=new _i(null);_options;_lastTouchMs=0;_onKeydown=e=>{this._options?.ignoreKeys?.some(i=>i===e.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=fr(e))};_onMousedown=e=>{Date.now()-this._lastTouchMs<650||(this._modality.next(mS(e)?"keyboard":"mouse"),this._mostRecentTarget=fr(e))};_onTouchstart=e=>{gS(e)?this._modality.next("keyboard"):(this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=fr(e))};constructor(){const e=D(ge),i=D(Qe),o=D(zde,{optional:!0});if(this._options={...$de,...o},this.modalityDetected=this._modality.pipe(hS(1)),this.modalityChanged=this.modalityDetected.pipe(function Hde(t,n=Ua){return t=t??jde,bn((e,i)=>{let o,r=!0;e.subscribe(en(i,s=>{const a=n(s);(r||!t(o,a))&&(r=!1,o=a,i.next(s))}))})}()),this._platform.isBrowser){const r=D(No).createRenderer(null,null);this._listenerCleanups=e.runOutsideAngular(()=>[r.listen(i,"keydown",this._onKeydown,bS),r.listen(i,"mousedown",this._onMousedown,bS),r.listen(i,"touchstart",this._onTouchstart,bS)])}}ngOnDestroy(){this._modality.complete(),this._listenerCleanups?.forEach(e=>e())}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var bb=function(t){return t[t.IMMEDIATE=0]="IMMEDIATE",t[t.EVENTUAL=1]="EVENTUAL",t}(bb||{});const Gde=new Z("cdk-focus-monitor-default-options"),vb=_S({passive:!0,capture:!0});let qd=(()=>{class t{_ngZone=D(ge);_platform=D($n);_inputModalityDetector=D(Wde);_origin=null;_lastFocusOrigin=null;_windowFocused=!1;_windowFocusTimeoutId;_originTimeoutId;_originFromTouchInteraction=!1;_elementInfo=new Map;_monitoredElementCount=0;_rootNodeFocusListenerCount=new Map;_detectionMode;_windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=setTimeout(()=>this._windowFocused=!1)};_document=D(Qe);_stopInputModalityDetector=new pe;constructor(){const e=D(Gde,{optional:!0});this._detectionMode=e?.detectionMode||bb.IMMEDIATE}_rootNodeFocusAndBlurListener=e=>{for(let o=fr(e);o;o=o.parentElement)"focus"===e.type?this._onFocus(e,o):this._onBlur(e,o)};monitor(e,i=!1){const o=Ts(e);if(!this._platform.isBrowser||1!==o.nodeType)return ae();const r=function Fce(t){if(function Nce(){if(null==nS){const t=typeof document<"u"?document.head:null;nS=!(!t||!t.createShadowRoot&&!t.attachShadow)}return nS}()){const n=t.getRootNode?t.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&n instanceof ShadowRoot)return n}return null}(o)||this._document,s=this._elementInfo.get(o);if(s)return i&&(s.checkChildren=!0),s.subject;const a={checkChildren:i,subject:new pe,rootNode:r};return this._elementInfo.set(o,a),this._registerGlobalListeners(a),a.subject}stopMonitoring(e){const i=Ts(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=Ts(e);r===this._document.activeElement?this._getClosestElementsInfo(r).forEach(([a,l])=>this._originChanged(a,i,l)):(this._setOrigin(i),"function"==typeof r.focus&&r.focus(o))}ngOnDestroy(){this._elementInfo.forEach((e,i)=>this.stopMonitoring(i))}_getWindow(){return this._document.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 this._detectionMode===bb.EVENTUAL||!!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,this._detectionMode===bb.IMMEDIATE&&(clearTimeout(this._originTimeoutId),this._originTimeoutId=setTimeout(()=>this._origin=null,this._originFromTouchInteraction?650:1))})}_onFocus(e,i){const o=this._elementInfo.get(i),r=fr(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,vb),i.addEventListener("blur",this._rootNodeFocusAndBlurListener,vb)}),this._rootNodeFocusListenerCount.set(i,o+1),1===++this._monitoredElementCount&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(on(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,vb),i.removeEventListener("blur",this._rootNodeFocusAndBlurListener,vb),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 s=0;s{class t{_elementRef=D(Ae);_focusMonitor=D(qd);_monitorSubscription;_focusOrigin=null;cdkFocusChange=new ve;constructor(){}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?.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","cdkMonitorElementFocus",""],["","cdkMonitorSubtreeFocus",""]],outputs:{cdkFocusChange:"cdkFocusChange"},exportAs:["cdkMonitorFocus"]})}return t})();function Kde(t,n){}class If{viewContainerRef;injector;id;role="dialog";panelClass="";hasBackdrop=!0;backdropClass="";disableClose=!1;closePredicate;width="";height="";minWidth;minHeight;maxWidth;maxHeight;positionStrategy;data=null;direction;ariaDescribedBy=null;ariaLabelledBy=null;ariaLabel=null;ariaModal=!1;autoFocus="first-tabbable";restoreFocus=!0;scrollStrategy;closeOnNavigation=!0;closeOnDestroy=!0;closeOnOverlayDetachments=!0;disableAnimations=!1;providers;container;templateContext}let mB=(()=>{class t extends lb{_elementRef=D(Ae);_focusTrapFactory=D(Nde);_config;_interactivityChecker=D(sB);_ngZone=D(ge);_focusMonitor=D(qd);_renderer=D(Kn);_changeDetectorRef=D(Pn);_injector=D(Be);_platform=D($n);_document=D(Qe);_portalOutlet;_focusTrapped=new pe;_focusTrap=null;_elementFocusedBeforeDialogWasOpened=null;_closeInteractionType=null;_ariaLabelledByQueue=[];_isDestroyed=!1;constructor(){super(),this._config=D(If,{optional:!0})||new If,this._config.ariaLabelledBy&&this._ariaLabelledByQueue.push(this._config.ariaLabelledBy)}_addAriaLabelledBy(e){this._ariaLabelledByQueue.push(e),this._changeDetectorRef.markForCheck()}_removeAriaLabelledBy(e){const i=this._ariaLabelledByQueue.indexOf(e);i>-1&&(this._ariaLabelledByQueue.splice(i,1),this._changeDetectorRef.markForCheck())}_contentAttached(){this._initializeFocusTrap(),this._captureInitialFocus()}_captureInitialFocus(){this._trapFocus()}ngOnDestroy(){this._focusTrapped.complete(),this._isDestroyed=!0,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}attachDomPortal=e=>{this._portalOutlet.hasAttached();const i=this._portalOutlet.attachDomPortal(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=()=>{r(),s(),e.removeAttribute("tabindex")},r=this._renderer.listen(e,"blur",o),s=this._renderer.listen(e,"mousedown",o)})),e.focus(i)}_focusByCssSelector(e,i){let o=this._elementRef.nativeElement.querySelector(e);o&&this._forceFocus(o,i)}_trapFocus(e){this._isDestroyed||Fi(()=>{const i=this._elementRef.nativeElement;switch(this._config.autoFocus){case!1:case"dialog":this._containsFocus()||i.focus(e);break;case!0:case"first-tabbable":this._focusTrap?.focusInitialElement(e)||this._focusDialogContainer(e);break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]',e);break;default:this._focusByCssSelector(this._config.autoFocus,e)}this._focusTrapped.next()},{injector:this._injector})}_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=iS(),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(e){this._elementRef.nativeElement.focus?.(e)}_containsFocus(){const e=this._elementRef.nativeElement,i=iS();return e===i||e.contains(i)}_initializeFocusTrap(){this._platform.isBrowser&&(this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._document&&(this._elementFocusedBeforeDialogWasOpened=iS()))}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["cdk-dialog-container"]],viewQuery:function(i,o){if(1&i&&rt(Wl,7),2&i){let r;ue(r=he())&&(o._portalOutlet=r.first)}},hostAttrs:["tabindex","-1",1,"cdk-dialog-container"],hostVars:6,hostBindings:function(i,o){2&i&&Ze("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:[be],decls:1,vars:0,consts:[["cdkPortalOutlet",""]],template:function(i,o){1&i&&tt(0,Kde,0,0,"ng-template",0)},dependencies:[Wl],styles:[".cdk-dialog-container{display:block;width:100%;height:100%;min-height:inherit;max-height:inherit}\n"],encapsulation:2})}return t})();class vS{overlayRef;config;componentInstance=null;componentRef=null;containerInstance;disableClose;closed=new pe;backdropClick;keydownEvents;outsidePointerEvents;id;_detachSubscription;constructor(n,e){this.overlayRef=n,this.config=e,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&&!mr(i)&&(i.preventDefault(),this.close(void 0,{focusOrigin:"keyboard"}))}),this.backdropClick.subscribe(()=>{!this.disableClose&&this._canClose()?this.close(void 0,{focusOrigin:"mouse"}):this.containerInstance._recaptureFocus?.()}),this._detachSubscription=n.detachments().subscribe(()=>{!1!==e.closeOnOverlayDetachments&&this.close()})}close(n,e){if(this._canClose(n)){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}_canClose(n){const e=this.config;return!!this.containerInstance&&(!e.closePredicate||e.closePredicate(n,e,this.componentInstance))}}const Yde=new Z("DialogScrollStrategy",{providedIn:"root",factory:()=>{const t=D(Be);return()=>rS(t)}}),Xde=new Z("DialogData"),Zde=new Z("DefaultDialogConfig");function Qde(t){const n=yt(t),e=new ve;return{valueSignal:n,get value(){return n()},change:e,ngOnDestroy(){e.complete()}}}let gB=(()=>{class t{_injector=D(Be);_defaultOptions=D(Zde,{optional:!0});_parentDialog=D(t,{optional:!0,skipSelf:!0});_overlayContainer=D(lS);_idGenerator=D(oi);_openDialogsAtThisLevel=[];_afterAllClosedAtThisLevel=new pe;_afterOpenedAtThisLevel=new pe;_ariaHiddenElements=new Map;_scrollStrategy=D(Yde);get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}afterAllClosed=ba(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(to(void 0)));constructor(){}open(e,i){(i={...this._defaultOptions||new If,...i}).id=i.id||this._idGenerator.getId("cdk-dialog-"),i.id&&this.getDialogById(i.id);const r=this._getOverlayConfig(i),s=$d(this._injector,r),a=new vS(s,i),l=this._attachContainer(s,a,i);if(a.containerInstance=l,!this.openDialogs.length){const c=this._overlayContainer.getContainerElement();l._focusTrapped?l._focusTrapped.pipe(un(1)).subscribe(()=>{this._hideNonDialogContentFromAssistiveTechnology(c)}):this._hideNonDialogContentFromAssistiveTechnology(c)}return this._attachDialogContent(e,a,l,i),this.openDialogs.push(a),a.closed.subscribe(()=>this._removeOpenDialog(a,!0)),this.afterOpened.next(a),a}closeAll(){yS(this.openDialogs,e=>e.close())}getDialogById(e){return this.openDialogs.find(i=>i.id===e)}ngOnDestroy(){yS(this._openDialogsAtThisLevel,e=>{!1===e.config.closeOnDestroy&&this._removeOpenDialog(e,!1)}),yS(this._openDialogsAtThisLevel,e=>e.close()),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete(),this._openDialogsAtThisLevel=[]}_getOverlayConfig(e){const i=new Mf({positionStrategy:e.positionStrategy||pb().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,disableAnimations:e.disableAnimations});return e.backdropClass&&(i.backdropClass=e.backdropClass),i}_attachContainer(e,i,o){const r=o.injector||o.viewContainerRef?.injector,s=[{provide:If,useValue:o},{provide:vS,useValue:i},{provide:Y3,useValue:e}];let a;o.container?"function"==typeof o.container?a=o.container:(a=o.container.type,s.push(...o.container.providers(o))):a=mB;const l=new Ud(a,o.viewContainerRef,Be.create({parent:r||this._injector,providers:s}));return e.attach(l).instance}_attachDialogContent(e,i,o,r){if(e instanceof Ci){const s=this._createInjector(r,i,o,void 0);let a={$implicit:r.data,dialogRef:i};r.templateContext&&(a={...a,..."function"==typeof r.templateContext?r.templateContext():r.templateContext}),o.attachTemplatePortal(new $l(e,null,a,s))}else{const s=this._createInjector(r,i,o,this._injector),a=o.attachComponentPortal(new Ud(e,r.viewContainerRef,s));i.componentRef=a,i.componentInstance=a.instance}}_createInjector(e,i,o,r){const s=e.injector||e.viewContainerRef?.injector,a=[{provide:Xde,useValue:e.data},{provide:vS,useValue:i}];return e.providers&&("function"==typeof e.providers?a.push(...e.providers(i,e,o)):a.push(...e.providers)),e.direction&&(!s||!s.get(hr,null,{optional:!0}))&&a.push({provide:hr,useValue:Qde(e.direction)}),Be.create({parent:s||r,providers:a})}_removeOpenDialog(e,i){const o=this.openDialogs.indexOf(e);o>-1&&(this.openDialogs.splice(o,1),this.openDialogs.length||(this._ariaHiddenElements.forEach((r,s)=>{r?s.setAttribute("aria-hidden",r):s.removeAttribute("aria-hidden")}),this._ariaHiddenElements.clear(),i&&this._getAfterAllClosed().next()))}_hideNonDialogContentFromAssistiveTechnology(e){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")&&!r.hasAttribute("popover")&&(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 \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function yS(t,n){let e=t.length;for(;e--;)n(t[e])}let Jde=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({providers:[gB],imports:[Wd,Sf,fB,Sf]})}return t})();const eue=new Z("MATERIAL_ANIMATIONS");let _B=null;function bB(){return D(eue,{optional:!0})?.animationsDisabled||"NoopAnimations"===D(xm,{optional:!0})?"di-disabled":(_B??=D(fS).matchMedia("(prefers-reduced-motion)").matches,_B?"reduced-motion":"enabled")}function fi(){return"enabled"!==bB()}function gr(...t){const n=Qh(t),e=function Qre(t,n){return"number"==typeof fx(t)?t.pop():n}(t,1/0),i=t;return i.length?1===i.length?Vi(i[0]):Ad(e)(Un(i,n)):Mi}function tue(t,n){}class Lt{viewContainerRef;injector;id;role="dialog";panelClass="";hasBackdrop=!0;backdropClass="";disableClose=!1;closePredicate;width="";height="";minWidth;minHeight;maxWidth;maxHeight;position;data=null;direction;ariaDescribedBy=null;ariaLabelledBy=null;ariaLabel=null;ariaModal=!1;autoFocus="first-tabbable";restoreFocus=!0;delayFocusTrap=!0;scrollStrategy;closeOnNavigation=!0;enterAnimationDuration;exitAnimationDuration}const CS="mdc-dialog--open",vB="mdc-dialog--opening",yB="mdc-dialog--closing";let CB=(()=>{class t extends mB{_animationStateChanged=new ve;_animationsEnabled=!fi();_actionSectionCount=0;_hostElement=this._elementRef.nativeElement;_enterAnimationDuration=this._animationsEnabled?xB(this._config.enterAnimationDuration)??150:0;_exitAnimationDuration=this._animationsEnabled?xB(this._config.exitAnimationDuration)??75:0;_animationTimer=null;_contentAttached(){super._contentAttached(),this._startOpenAnimation()}_startOpenAnimation(){this._animationStateChanged.emit({state:"opening",totalTime:this._enterAnimationDuration}),this._animationsEnabled?(this._hostElement.style.setProperty(wB,`${this._enterAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(vB,CS)),this._waitForAnimationToComplete(this._enterAnimationDuration,this._finishDialogOpen)):(this._hostElement.classList.add(CS),Promise.resolve().then(()=>this._finishDialogOpen()))}_startExitAnimation(){this._animationStateChanged.emit({state:"closing",totalTime:this._exitAnimationDuration}),this._hostElement.classList.remove(CS),this._animationsEnabled?(this._hostElement.style.setProperty(wB,`${this._exitAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(yB)),this._waitForAnimationToComplete(this._exitAnimationDuration,this._finishDialogClose)):Promise.resolve().then(()=>this._finishDialogClose())}_updateActionSectionCount(e){this._actionSectionCount+=e,this._changeDetectorRef.markForCheck()}_finishDialogOpen=()=>{this._clearAnimationClasses(),this._openAnimationDone(this._enterAnimationDuration)};_finishDialogClose=()=>{this._clearAnimationClasses(),this._animationStateChanged.emit({state:"closed",totalTime:this._exitAnimationDuration})};_clearAnimationClasses(){this._hostElement.classList.remove(vB,yB)}_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()})}_captureInitialFocus(){this._config.delayFocusTrap||this._trapFocus()}_openAnimationDone(e){this._config.delayFocusTrap&&this._trapFocus(),this._animationStateChanged.next({state:"opened",totalTime:e})}ngOnDestroy(){super.ngOnDestroy(),null!==this._animationTimer&&clearTimeout(this._animationTimer)}attachComponentPortal(e){const i=super.attachComponentPortal(e);return i.location.nativeElement.classList.add("mat-mdc-dialog-component-host"),i}static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275cmp=se({type:t,selectors:[["mat-dialog-container"]],hostAttrs:["tabindex","-1",1,"mat-mdc-dialog-container","mdc-dialog"],hostVars:10,hostBindings:function(i,o){2&i&&(Lr("id",o._config.id),Ze("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),Ke("_mat-animation-noopable",!o._animationsEnabled)("mat-mdc-dialog-container-with-actions",o._actionSectionCount>0))},features:[be],decls:3,vars:0,consts:[[1,"mat-mdc-dialog-inner-container","mdc-dialog__container"],[1,"mat-mdc-dialog-surface","mdc-dialog__surface"],["cdkPortalOutlet",""]],template:function(i,o){1&i&&(f(0,"div",0)(1,"div",1),tt(2,tue,0,0,"ng-template",2),h()())},dependencies:[Wl],styles:['.mat-mdc-dialog-container{width:100%;height:100%;display:block;box-sizing:border-box;max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit;outline:0}.cdk-overlay-pane.mat-mdc-dialog-panel{max-width:var(--mat-dialog-container-max-width, 560px);min-width:var(--mat-dialog-container-min-width, 280px)}@media(max-width: 599px){.cdk-overlay-pane.mat-mdc-dialog-panel{max-width:var(--mat-dialog-container-small-max-width, calc(100vw - 32px))}}.mat-mdc-dialog-inner-container{display:flex;flex-direction:row;align-items:center;justify-content:space-around;box-sizing:border-box;height:100%;opacity:0;transition:opacity linear var(--mat-dialog-transition-duration, 0ms);max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit}.mdc-dialog--closing .mat-mdc-dialog-inner-container{transition:opacity 75ms linear;transform:none}.mdc-dialog--open .mat-mdc-dialog-inner-container{opacity:1}._mat-animation-noopable .mat-mdc-dialog-inner-container{transition:none}.mat-mdc-dialog-surface{display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;box-sizing:border-box;width:100%;height:100%;position:relative;overflow-y:auto;outline:0;transform:scale(0.8);transition:transform var(--mat-dialog-transition-duration, 0ms) cubic-bezier(0, 0, 0.2, 1);max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit;box-shadow:var(--mat-dialog-container-elevation-shadow, none);border-radius:var(--mat-dialog-container-shape, var(--mat-sys-corner-extra-large, 4px));background-color:var(--mat-dialog-container-color, var(--mat-sys-surface, white))}[dir=rtl] .mat-mdc-dialog-surface{text-align:right}.mdc-dialog--open .mat-mdc-dialog-surface,.mdc-dialog--closing .mat-mdc-dialog-surface{transform:none}._mat-animation-noopable .mat-mdc-dialog-surface{transition:none}.mat-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}.mat-mdc-dialog-title{display:block;position:relative;flex-shrink:0;box-sizing:border-box;margin:0 0 1px;padding:var(--mat-dialog-headline-padding, 6px 24px 13px)}.mat-mdc-dialog-title::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}[dir=rtl] .mat-mdc-dialog-title{text-align:right}.mat-mdc-dialog-container .mat-mdc-dialog-title{color:var(--mat-dialog-subhead-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mat-dialog-subhead-font, var(--mat-sys-headline-small-font, inherit));line-height:var(--mat-dialog-subhead-line-height, var(--mat-sys-headline-small-line-height, 1.5rem));font-size:var(--mat-dialog-subhead-size, var(--mat-sys-headline-small-size, 1rem));font-weight:var(--mat-dialog-subhead-weight, var(--mat-sys-headline-small-weight, 400));letter-spacing:var(--mat-dialog-subhead-tracking, var(--mat-sys-headline-small-tracking, 0.03125em))}.mat-mdc-dialog-content{display:block;flex-grow:1;box-sizing:border-box;margin:0;overflow:auto;max-height:65vh}.mat-mdc-dialog-content>:first-child{margin-top:0}.mat-mdc-dialog-content>:last-child{margin-bottom:0}.mat-mdc-dialog-container .mat-mdc-dialog-content{color:var(--mat-dialog-supporting-text-color, var(--mat-sys-on-surface-variant, rgba(0, 0, 0, 0.6)));font-family:var(--mat-dialog-supporting-text-font, var(--mat-sys-body-medium-font, inherit));line-height:var(--mat-dialog-supporting-text-line-height, var(--mat-sys-body-medium-line-height, 1.5rem));font-size:var(--mat-dialog-supporting-text-size, var(--mat-sys-body-medium-size, 1rem));font-weight:var(--mat-dialog-supporting-text-weight, var(--mat-sys-body-medium-weight, 400));letter-spacing:var(--mat-dialog-supporting-text-tracking, var(--mat-sys-body-medium-tracking, 0.03125em))}.mat-mdc-dialog-container .mat-mdc-dialog-content{padding:var(--mat-dialog-content-padding, 20px 24px)}.mat-mdc-dialog-container-with-actions .mat-mdc-dialog-content{padding:var(--mat-dialog-with-actions-content-padding, 20px 24px 0)}.mat-mdc-dialog-container .mat-mdc-dialog-title+.mat-mdc-dialog-content{padding-top:0}.mat-mdc-dialog-actions{display:flex;position:relative;flex-shrink:0;flex-wrap:wrap;align-items:center;box-sizing:border-box;min-height:52px;margin:0;border-top:1px solid rgba(0,0,0,0);padding:var(--mat-dialog-actions-padding, 16px 24px);justify-content:var(--mat-dialog-actions-alignment, flex-end)}@media(forced-colors: active){.mat-mdc-dialog-actions{border-top-color:CanvasText}}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-start,.mat-mdc-dialog-actions[align=start]{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}.mat-mdc-dialog-component-host{display:contents}\n'],encapsulation:2})}return t})();const wB="--mat-dialog-transition-duration";function xB(t){return null==t?null:"number"==typeof t?t:t.endsWith("ms")?Cf(t.substring(0,t.length-2)):t.endsWith("s")?1e3*Cf(t.substring(0,t.length-1)):"0"===t?0:null}var yb=function(t){return t[t.OPEN=0]="OPEN",t[t.CLOSING=1]="CLOSING",t[t.CLOSED=2]="CLOSED",t}(yb||{});class It{_ref;_config;_containerInstance;componentInstance;componentRef=null;disableClose;id;_afterOpened=new no(1);_beforeClosed=new no(1);_result;_closeFallbackTimeout;_state=yb.OPEN;_closeInteractionType;constructor(n,e,i){this._ref=n,this._config=e,this._containerInstance=i,this.disableClose=e.disableClose,this.id=n.id,n.addPanelClass("mat-mdc-dialog-panel"),i._animationStateChanged.pipe(vn(o=>"opened"===o.state),un(1)).subscribe(()=>{this._afterOpened.next(),this._afterOpened.complete()}),i._animationStateChanged.pipe(vn(o=>"closed"===o.state),un(1)).subscribe(()=>{clearTimeout(this._closeFallbackTimeout),this._finishDialogClose()}),n.overlayRef.detachments().subscribe(()=>{this._beforeClosed.next(this._result),this._beforeClosed.complete(),this._finishDialogClose()}),gr(this.backdropClick(),this.keydownEvents().pipe(vn(o=>27===o.keyCode&&!this.disableClose&&!mr(o)))).subscribe(o=>{this.disableClose||(o.preventDefault(),SB(this,"keydown"===o.type?"keyboard":"mouse"))})}close(n){const e=this._config.closePredicate;e&&!e(n,this._config,this.componentInstance)||(this._result=n,this._containerInstance._animationStateChanged.pipe(vn(i=>"closing"===i.state),un(1)).subscribe(i=>{this._beforeClosed.next(n),this._beforeClosed.complete(),this._ref.overlayRef.detachBackdrop(),this._closeFallbackTimeout=setTimeout(()=>this._finishDialogClose(),i.totalTime+100)}),this._state=yb.CLOSING,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=yb.CLOSED,this._ref.close(this._result,{focusOrigin:this._closeInteractionType}),this.componentInstance=null}}function SB(t,n,e){return t._closeInteractionType=n,t.close(e)}const hn=new Z("MatMdcDialogData"),kB=new Z("mat-mdc-dialog-default-options"),oue=new Z("mat-mdc-dialog-scroll-strategy",{providedIn:"root",factory:()=>{const t=D(Be);return()=>rS(t)}});let kt=(()=>{class t{_defaultOptions=D(kB,{optional:!0});_scrollStrategy=D(oue);_parentDialog=D(t,{optional:!0,skipSelf:!0});_idGenerator=D(oi);_injector=D(Be);_dialog=D(gB);_animationsDisabled=fi();_openDialogsAtThisLevel=[];_afterAllClosedAtThisLevel=new pe;_afterOpenedAtThisLevel=new pe;dialogConfigClass=Lt;_dialogRefConstructor;_dialogContainerType;_dialogDataToken;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}afterAllClosed=ba(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(to(void 0)));constructor(){this._dialogRefConstructor=It,this._dialogContainerType=CB,this._dialogDataToken=hn}open(e,i){let o;(i={...this._defaultOptions||new Lt,...i}).id=i.id||this._idGenerator.getId("mat-mdc-dialog-"),i.scrollStrategy=i.scrollStrategy||this._scrollStrategy();const r=this._dialog.open(e,{...i,positionStrategy:pb().centerHorizontally().centerVertically(),disableClose:!0,closePredicate:void 0,closeOnDestroy:!1,closeOnOverlayDetachments:!1,disableAnimations:this._animationsDisabled||"0"===i.enterAnimationDuration?.toLocaleString()||"0"===i.exitAnimationDuration?.toString(),container:{type:this._dialogContainerType,providers:()=>[{provide:this.dialogConfigClass,useValue:i},{provide:If,useValue:i}]},templateContext:()=>({dialogRef:o}),providers:(s,a,l)=>(o=new this._dialogRefConstructor(s,i,l),o.updatePosition(i?.position),[{provide:this._dialogContainerType,useValue:l},{provide:this._dialogDataToken,useValue:a.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 s=this.openDialogs.indexOf(o);s>-1&&(this.openDialogs.splice(s,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 \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),DB=(()=>{class t{dialogRef=D(It,{optional:!0});_elementRef=D(Ae);_dialog=D(kt);ariaLabel;type="button";dialogResult;_matDialogClose;constructor(){}ngOnInit(){this.dialogRef||(this.dialogRef=EB(this._elementRef,this._dialog.openDialogs))}ngOnChanges(e){const i=e._matDialogClose||e._matDialogCloseResult;i&&(this.dialogResult=i.currentValue)}_onButtonClick(e){SB(this.dialogRef,0===e.screenX&&0===e.screenY?"keyboard":"mouse",this.dialogResult)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","mat-dialog-close",""],["","matDialogClose",""]],hostVars:2,hostBindings:function(i,o){1&i&&L("click",function(s){return o._onButtonClick(s)}),2&i&&Ze("aria-label",o.ariaLabel||null)("type",o.type)},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],type:"type",dialogResult:[0,"mat-dialog-close","dialogResult"],_matDialogClose:[0,"matDialogClose","_matDialogClose"]},exportAs:["matDialogClose"],features:[yi]})}return t})(),TB=(()=>{class t{_dialogRef=D(It,{optional:!0});_elementRef=D(Ae);_dialog=D(kt);constructor(){}ngOnInit(){this._dialogRef||(this._dialogRef=EB(this._elementRef,this._dialog.openDialogs)),this._dialogRef&&Promise.resolve().then(()=>{this._onAdd()})}ngOnDestroy(){this._dialogRef?._containerInstance&&Promise.resolve().then(()=>{this._onRemove()})}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t})}return t})(),wS=(()=>{class t extends TB{id=D(oi).getId("mat-mdc-dialog-title-");_onAdd(){this._dialogRef._containerInstance?._addAriaLabelledBy?.(this.id)}_onRemove(){this._dialogRef?._containerInstance?._removeAriaLabelledBy?.(this.id)}static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275dir=de({type:t,selectors:[["","mat-dialog-title",""],["","matDialogTitle",""]],hostAttrs:[1,"mat-mdc-dialog-title","mdc-dialog__title"],hostVars:1,hostBindings:function(i,o){2&i&&Lr("id",o.id)},inputs:{id:"id"},exportAs:["matDialogTitle"],features:[be]})}return t})(),Kd=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","mat-dialog-content",""],["mat-dialog-content"],["","matDialogContent",""]],hostAttrs:[1,"mat-mdc-dialog-content","mdc-dialog__content"],features:[mP([H3])]})}return t})(),MB=(()=>{class t extends TB{align;_onAdd(){this._dialogRef._containerInstance?._updateActionSectionCount?.(1)}_onRemove(){this._dialogRef._containerInstance?._updateActionSectionCount?.(-1)}static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275dir=de({type:t,selectors:[["","mat-dialog-actions",""],["mat-dialog-actions"],["","matDialogActions",""]],hostAttrs:[1,"mat-mdc-dialog-actions","mdc-dialog__actions"],hostVars:6,hostBindings:function(i,o){2&i&&Ke("mat-mdc-dialog-actions-align-start","start"===o.align)("mat-mdc-dialog-actions-align-center","center"===o.align)("mat-mdc-dialog-actions-align-end","end"===o.align)},inputs:{align:"align"},features:[be]})}return t})();function EB(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 rue=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({providers:[kt],imports:[Jde,Wd,Sf,ri]})}return t})();var Uo=function(t){return t[t.FADING_IN=0]="FADING_IN",t[t.VISIBLE=1]="VISIBLE",t[t.FADING_OUT=2]="FADING_OUT",t[t.HIDDEN=3]="HIDDEN",t}(Uo||{});class sue{_renderer;element;config;_animationForciblyDisabledThroughCss;state=Uo.HIDDEN;constructor(n,e,i,o=!1){this._renderer=n,this.element=e,this.config=i,this._animationForciblyDisabledThroughCss=o}fadeOut(){this._renderer.fadeOutRipple(this)}}const IB=_S({passive:!0,capture:!0});class aue{_events=new Map;addHandler(n,e,i,o){const r=this._events.get(e);if(r){const s=r.get(i);s?s.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,IB)})}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,IB)))}_delegateEventHandler=n=>{const e=fr(n);e&&this._events.get(n.type)?.forEach((i,o)=>{(o===e||o.contains(e))&&i.forEach(r=>r.handleEvent(n))})}}const Cb={enterDuration:225,exitDuration:150},PB=_S({passive:!0,capture:!0}),OB=["mousedown","touchstart"],AB=["mouseup","mouseleave","touchend","touchcancel"];let cue=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["ng-component"]],hostAttrs:["mat-ripple-style-loader",""],decls:0,vars:0,template:function(i,o){},styles:[".mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale3d(0, 0, 0);background-color:var(--mat-ripple-color, color-mix(in srgb, var(--mat-sys-on-surface) 10%, transparent))}@media(forced-colors: active){.mat-ripple-element{display:none}}.cdk-drag-preview .mat-ripple-element,.cdk-drag-placeholder .mat-ripple-element{display:none}\n"],encapsulation:2,changeDetection:0})}return t})();class Pf{_target;_ngZone;_platform;_containerElement;_triggerElement=null;_isPointerDown=!1;_activeRipples=new Map;_mostRecentTransientRipple=null;_lastTouchStartEvent;_pointerUpEventsRegistered=!1;_containerRect=null;static _eventManager=new aue;constructor(n,e,i,o,r){this._target=n,this._ngZone=e,this._platform=o,o.isBrowser&&(this._containerElement=Ts(i)),r&&r.get(pr).load(cue)}fadeInRipple(n,e,i={}){const o=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),r={...Cb,...i.animation};i.centered&&(n=o.left+o.width/2,e=o.top+o.height/2);const s=i.radius||function due(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),a=n-o.left,l=e-o.top,c=r.enterDuration,u=document.createElement("div");u.classList.add("mat-ripple-element"),u.style.left=a-s+"px",u.style.top=l-s+"px",u.style.height=2*s+"px",u.style.width=2*s+"px",null!=i.color&&(u.style.backgroundColor=i.color),u.style.transitionDuration=`${c}ms`,this._containerElement.appendChild(u);const p=window.getComputedStyle(u),_=p.transitionDuration,w="none"===p.transitionProperty||"0s"===_||"0s, 0s"===_||0===o.width&&0===o.height,x=new sue(this,u,i,w);u.style.transform="scale3d(1, 1, 1)",x.state=Uo.FADING_IN,i.persistent||(this._mostRecentTransientRipple=x);let T=null;return!w&&(c||r.exitDuration)&&this._ngZone.runOutsideAngular(()=>{const E=()=>{T&&(T.fallbackTimer=null),clearTimeout(W),this._finishRippleTransition(x)},R=()=>this._destroyRipple(x),W=setTimeout(R,c+100);u.addEventListener("transitionend",E),u.addEventListener("transitioncancel",R),T={onTransitionEnd:E,onTransitionCancel:R,fallbackTimer:W}}),this._activeRipples.set(x,T),(w||!c)&&this._finishRippleTransition(x),x}fadeOutRipple(n){if(n.state===Uo.FADING_OUT||n.state===Uo.HIDDEN)return;const e=n.element,i={...Cb,...n.config.animation};e.style.transitionDuration=`${i.exitDuration}ms`,e.style.opacity="0",n.state=Uo.FADING_OUT,(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=Ts(n);!this._platform.isBrowser||!e||e===this._triggerElement||(this._removeTriggerEvents(),this._triggerElement=e,OB.forEach(i=>{Pf._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(()=>{AB.forEach(e=>{this._triggerElement.addEventListener(e,this,PB)})}),this._pointerUpEventsRegistered=!0)}_finishRippleTransition(n){n.state===Uo.FADING_IN?this._startFadeOutTransition(n):n.state===Uo.FADING_OUT&&this._destroyRipple(n)}_startFadeOutTransition(n){const e=n===this._mostRecentTransientRipple,{persistent:i}=n.config;n.state=Uo.VISIBLE,!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=Uo.HIDDEN,null!==e&&(n.element.removeEventListener("transitionend",e.onTransitionEnd),n.element.removeEventListener("transitioncancel",e.onTransitionCancel),null!==e.fallbackTimer&&clearTimeout(e.fallbackTimer)),n.element.remove()}_onMousedown(n){const e=mS(n),i=this._lastTouchStartEvent&&Date.now(){!n.config.persistent&&(n.state===Uo.VISIBLE||n.config.terminateOnPointerUp&&n.state===Uo.FADING_IN)&&n.fadeOut()}))}_getActiveRipples(){return Array.from(this._activeRipples.keys())}_removeTriggerEvents(){const n=this._triggerElement;n&&(OB.forEach(e=>Pf._eventManager.removeHandler(e,n,this)),this._pointerUpEventsRegistered&&(AB.forEach(e=>n.removeEventListener(e,this,PB)),this._pointerUpEventsRegistered=!1))}}const xS=new Z("mat-ripple-global-options");let Of=(()=>{class t{_elementRef=D(Ae);_animationsDisabled=fi();color;unbounded=!1;centered=!1;radius=0;animation;get disabled(){return this._disabled}set disabled(e){e&&this.fadeOutAllNonPersistent(),this._disabled=e,this._setupTriggerEventsIfEnabled()}_disabled=!1;get trigger(){return this._trigger||this._elementRef.nativeElement}set trigger(e){this._trigger=e,this._setupTriggerEventsIfEnabled()}_trigger;_rippleRenderer;_globalOptions;_isInitialized=!1;constructor(){const e=D(ge),i=D($n),o=D(xS,{optional:!0}),r=D(Be);this._globalOptions=o||{},this._rippleRenderer=new Pf(this,e,this._elementRef,i,r)}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,...this._animationsDisabled?{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 \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(i,o){2&i&&Ke("mat-ripple-unbounded",o.unbounded)},inputs:{color:[0,"matRippleColor","color"],unbounded:[0,"matRippleUnbounded","unbounded"],centered:[0,"matRippleCentered","centered"],radius:[0,"matRippleRadius","radius"],animation:[0,"matRippleAnimation","animation"],disabled:[0,"matRippleDisabled","disabled"],trigger:[0,"matRippleTrigger","trigger"]},exportAs:["matRipple"]})}return t})();const uue={capture:!0},hue=["focus","mousedown","mouseenter","touchstart"],SS="mat-ripple-loader-uninitialized",kS="mat-ripple-loader-class-name",RB="mat-ripple-loader-centered",wb="mat-ripple-loader-disabled";let fue=(()=>{class t{_document=D(Qe);_animationsDisabled=fi();_globalRippleOptions=D(xS,{optional:!0});_platform=D($n);_ngZone=D(ge);_injector=D(Be);_eventCleanups;_hosts=new Map;constructor(){const e=D(No).createRenderer(null,null);this._eventCleanups=this._ngZone.runOutsideAngular(()=>hue.map(i=>e.listen(this._document,i,this._onInteraction,uue)))}ngOnDestroy(){const e=this._hosts.keys();for(const i of e)this.destroyRipple(i);this._eventCleanups.forEach(i=>i())}configureRipple(e,i){e.setAttribute(SS,this._globalRippleOptions?.namespace??""),(i.className||!e.hasAttribute(kS))&&e.setAttribute(kS,i.className||""),i.centered&&e.setAttribute(RB,""),i.disabled&&e.setAttribute(wb,"")}setDisabled(e,i){const o=this._hosts.get(e);o?(o.target.rippleDisabled=i,!i&&!o.hasSetUpEvents&&(o.hasSetUpEvents=!0,o.renderer.setupTriggerEvents(e))):i?e.setAttribute(wb,""):e.removeAttribute(wb)}_onInteraction=e=>{const i=fr(e);if(i instanceof HTMLElement){const o=i.closest(`[${SS}="${this._globalRippleOptions?.namespace??""}"]`);o&&this._createRipple(o)}};_createRipple(e){if(!this._document||this._hosts.has(e))return;e.querySelector(".mat-ripple")?.remove();const i=this._document.createElement("span");i.classList.add("mat-ripple",e.getAttribute(kS)),e.append(i);const o=this._globalRippleOptions,r=this._animationsDisabled?0:o?.animation?.enterDuration??Cb.enterDuration,s=this._animationsDisabled?0:o?.animation?.exitDuration??Cb.exitDuration,a={rippleDisabled:this._animationsDisabled||o?.disabled||e.hasAttribute(wb),rippleConfig:{centered:e.hasAttribute(RB),terminateOnPointerUp:o?.terminateOnPointerUp,animation:{enterDuration:r,exitDuration:s}}},l=new Pf(a,this._ngZone,i,this._platform,this._injector),c=!a.rippleDisabled;c&&l.setupTriggerEvents(e),this._hosts.set(e,{target:a,renderer:l,hasSetUpEvents:c}),e.removeAttribute(SS)}destroyRipple(e){const i=this._hosts.get(e);i&&(i.renderer._removeTriggerEvents(),this._hosts.delete(e))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Af=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["structural-styles"]],decls:0,vars:0,template:function(i,o){},styles:['.mat-focus-indicator{position:relative}.mat-focus-indicator::before{top:0;left:0;right:0;bottom:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border-width:var(--mat-focus-indicator-border-width, 3px);border-style:var(--mat-focus-indicator-border-style, solid);border-color:var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus-visible::before{content:""}@media(forced-colors: active){html{--mat-focus-indicator-display: block}}\n'],encapsulation:2,changeDetection:0})}return t})();const pue=["mat-icon-button",""],mue=["*"],gue=new Z("MAT_BUTTON_CONFIG");function NB(t){return null==t?void 0:Br(t)}let FB=(()=>{class t{_elementRef=D(Ae);_ngZone=D(ge);_animationsDisabled=fi();_config=D(gue,{optional:!0});_focusMonitor=D(qd);_cleanupClick;_renderer=D(Kn);_rippleLoader=D(fue);_isAnchor;_isFab=!1;color;get disableRipple(){return this._disableRipple}set disableRipple(e){this._disableRipple=e,this._updateRippleDisabled()}_disableRipple=!1;get disabled(){return this._disabled}set disabled(e){this._disabled=e,this._updateRippleDisabled()}_disabled=!1;ariaDisabled;disabledInteractive;tabIndex;set _tabindex(e){this.tabIndex=e}constructor(){D(pr).load(Af);const e=this._elementRef.nativeElement;this._isAnchor="A"===e.tagName,this.disabledInteractive=this._config?.disabledInteractive??!1,this.color=this._config?.color??null,this._rippleLoader?.configureRipple(e,{className:"mat-mdc-button-ripple"})}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0),this._isAnchor&&this._setupAsAnchor()}ngOnDestroy(){this._cleanupClick?.(),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)}_getAriaDisabled(){return null!=this.ariaDisabled?this.ariaDisabled:this._isAnchor?this.disabled||null:!(!this.disabled||!this.disabledInteractive)||null}_getDisabledAttribute(){return!(this.disabledInteractive||!this.disabled)||null}_updateRippleDisabled(){this._rippleLoader?.setDisabled(this._elementRef.nativeElement,this.disableRipple||this.disabled)}_getTabIndex(){return this._isAnchor&&this.disabled&&!this.disabledInteractive?-1:this.tabIndex}_setupAsAnchor(){this._cleanupClick=this._ngZone.runOutsideAngular(()=>this._renderer.listen(this._elementRef.nativeElement,"click",e=>{this.disabled&&(e.preventDefault(),e.stopImmediatePropagation())}))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,hostAttrs:[1,"mat-mdc-button-base"],hostVars:13,hostBindings:function(i,o){2&i&&(Ze("disabled",o._getDisabledAttribute())("aria-disabled",o._getAriaDisabled())("tabindex",o._getTabIndex()),at(o.color?"mat-"+o.color:""),Ke("mat-mdc-button-disabled",o.disabled)("mat-mdc-button-disabled-interactive",o.disabledInteractive)("mat-unthemed",!o.color)("_mat-animation-noopable",o._animationsDisabled))},inputs:{color:"color",disableRipple:[2,"disableRipple","disableRipple",Ie],disabled:[2,"disabled","disabled",Ie],ariaDisabled:[2,"aria-disabled","ariaDisabled",Ie],disabledInteractive:[2,"disabledInteractive","disabledInteractive",Ie],tabIndex:[2,"tabIndex","tabIndex",NB],_tabindex:[2,"tabindex","_tabindex",NB]}})}return t})(),Ms=(()=>{class t extends FB{constructor(){super(),this._rippleLoader.configureRipple(this._elementRef.nativeElement,{centered:!0})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["button","mat-icon-button",""],["a","mat-icon-button",""],["button","matIconButton",""],["a","matIconButton",""]],hostAttrs:[1,"mdc-icon-button","mat-mdc-icon-button"],exportAs:["matButton","matAnchor"],features:[be],attrs:pue,ngContentSelectors:mue,decls:4,vars:0,consts:[[1,"mat-mdc-button-persistent-ripple","mdc-icon-button__ripple"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,o){1&i&&(Si(),la(0,"span",0),At(1),la(2,"span",1)(3,"span",2))},styles:['.mat-mdc-icon-button{-webkit-user-select:none;user-select:none;display:inline-block;position:relative;box-sizing:border-box;border:none;outline:none;background-color:rgba(0,0,0,0);fill:currentColor;text-decoration:none;cursor:pointer;z-index:0;overflow:visible;border-radius:var(--mat-icon-button-container-shape, var(--mat-sys-corner-full, 50%));flex-shrink:0;text-align:center;width:var(--mat-icon-button-state-layer-size, 40px);height:var(--mat-icon-button-state-layer-size, 40px);padding:calc(calc(var(--mat-icon-button-state-layer-size, 40px) - var(--mat-icon-button-icon-size, 24px)) / 2);font-size:var(--mat-icon-button-icon-size, 24px);color:var(--mat-icon-button-icon-color, var(--mat-sys-on-surface-variant));-webkit-tap-highlight-color:rgba(0,0,0,0)}.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}.mat-mdc-icon-button .mdc-button__label,.mat-mdc-icon-button .mat-icon{z-index:1;position:relative}.mat-mdc-icon-button .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit}.mat-mdc-icon-button:focus-visible>.mat-focus-indicator::before{content:"";border-radius:inherit}.mat-mdc-icon-button .mat-ripple-element{background-color:var(--mat-icon-button-ripple-color, color-mix(in srgb, var(--mat-sys-on-surface-variant) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-icon-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-icon-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-icon-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:var(--mat-icon-button-touch-target-size, 48px);display:var(--mat-icon-button-touch-target-display, block);left:50%;width:var(--mat-icon-button-touch-target-size, 48px);transform:translate(-50%, -50%)}.mat-mdc-icon-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-icon-button[disabled],.mat-mdc-icon-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-icon-button-disabled-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-icon-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-icon-button img,.mat-mdc-icon-button svg{width:var(--mat-icon-button-icon-size, 24px);height:var(--mat-icon-button-icon-size, 24px);vertical-align:baseline}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple{border-radius:var(--mat-icon-button-container-shape, var(--mat-sys-corner-full, 50%))}.mat-mdc-icon-button[hidden]{display:none}.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}\n',"@media(forced-colors: active){.mat-mdc-button:not(.mdc-button--outlined),.mat-mdc-unelevated-button:not(.mdc-button--outlined),.mat-mdc-raised-button:not(.mdc-button--outlined),.mat-mdc-outlined-button:not(.mdc-button--outlined),.mat-mdc-button-base.mat-tonal-button,.mat-mdc-icon-button.mat-mdc-icon-button,.mat-mdc-outlined-button .mdc-button__ripple{outline:solid 1px}}\n"],encapsulation:2,changeDetection:0})}return t})(),DS=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({imports:[ri]})}return t})();const _ue=["matButton",""],bue=[[["",8,"material-icons",3,"iconPositionEnd",""],["mat-icon",3,"iconPositionEnd",""],["","matButtonIcon","",3,"iconPositionEnd",""]],"*",[["","iconPositionEnd","",8,"material-icons"],["mat-icon","iconPositionEnd",""],["","matButtonIcon","","iconPositionEnd",""]]],vue=[".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])","*",".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"],LB=new Map([["text",["mat-mdc-button"]],["filled",["mdc-button--unelevated","mat-mdc-unelevated-button"]],["elevated",["mdc-button--raised","mat-mdc-raised-button"]],["outlined",["mdc-button--outlined","mat-mdc-outlined-button"]],["tonal",["mat-tonal-button"]]]);let Jn=(()=>{class t extends FB{get appearance(){return this._appearance}set appearance(e){this.setAppearance(e||this._config?.defaultAppearance||"text")}_appearance=null;constructor(){super();const e=function yue(t){return t.hasAttribute("mat-raised-button")?"elevated":t.hasAttribute("mat-stroked-button")?"outlined":t.hasAttribute("mat-flat-button")?"filled":t.hasAttribute("mat-button")?"text":null}(this._elementRef.nativeElement);e&&this.setAppearance(e)}setAppearance(e){if(e===this._appearance)return;const i=this._elementRef.nativeElement.classList,o=this._appearance?LB.get(this._appearance):null,r=LB.get(e);o&&i.remove(...o),i.add(...r),this._appearance=e}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["button","matButton",""],["a","matButton",""],["button","mat-button",""],["button","mat-raised-button",""],["button","mat-flat-button",""],["button","mat-stroked-button",""],["a","mat-button",""],["a","mat-raised-button",""],["a","mat-flat-button",""],["a","mat-stroked-button",""]],hostAttrs:[1,"mdc-button"],inputs:{appearance:[0,"matButton","appearance"]},exportAs:["matButton","matAnchor"],features:[be],attrs:_ue,ngContentSelectors:vue,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,o){1&i&&(Si(bue),la(0,"span",0),At(1),gs(2,"span",1),At(3,1),Tl(),At(4,2),la(5,"span",2)(6,"span",3)),2&i&&Ke("mdc-button__ripple",!o._isFab)("mdc-fab__ripple",o._isFab)},styles:['.mat-mdc-button-base{text-decoration:none}.mat-mdc-button-base .mat-icon{min-height:fit-content;flex-shrink:0}@media(hover: none){.mat-mdc-button-base:hover>span.mat-mdc-button-persistent-ripple::before{opacity:0}}.mdc-button{-webkit-user-select:none;user-select:none;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;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0);padding:0 8px}.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__label{position:relative}.mat-mdc-button{padding:0 var(--mat-button-text-horizontal-padding, 12px);height:var(--mat-button-text-container-height, 40px);font-family:var(--mat-button-text-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mat-button-text-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mat-button-text-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mat-button-text-label-text-transform);font-weight:var(--mat-button-text-label-text-weight, var(--mat-sys-label-large-weight))}.mat-mdc-button,.mat-mdc-button .mdc-button__ripple{border-radius:var(--mat-button-text-container-shape, var(--mat-sys-corner-full))}.mat-mdc-button:not(:disabled){color:var(--mat-button-text-label-text-color, var(--mat-sys-primary))}.mat-mdc-button[disabled],.mat-mdc-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-button-text-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-button:has(.material-icons,mat-icon,[matButtonIcon]){padding:0 var(--mat-button-text-with-icon-horizontal-padding, 16px)}.mat-mdc-button>.mat-icon{margin-right:var(--mat-button-text-icon-spacing, 8px);margin-left:var(--mat-button-text-icon-offset, -4px)}[dir=rtl] .mat-mdc-button>.mat-icon{margin-right:var(--mat-button-text-icon-offset, -4px);margin-left:var(--mat-button-text-icon-spacing, 8px)}.mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-text-icon-offset, -4px);margin-left:var(--mat-button-text-icon-spacing, 8px)}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-text-icon-spacing, 8px);margin-left:var(--mat-button-text-icon-offset, -4px)}.mat-mdc-button .mat-ripple-element{background-color:var(--mat-button-text-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-text-state-layer-color, var(--mat-sys-primary))}.mat-mdc-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-text-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-text-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-text-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-text-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:var(--mat-button-text-touch-target-size, 48px);display:var(--mat-button-text-touch-target-display, block);left:0;right:0;transform:translateY(-50%)}.mat-mdc-unelevated-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mat-button-filled-container-height, 40px);font-family:var(--mat-button-filled-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mat-button-filled-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mat-button-filled-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mat-button-filled-label-text-transform);font-weight:var(--mat-button-filled-label-text-weight, var(--mat-sys-label-large-weight));padding:0 var(--mat-button-filled-horizontal-padding, 24px)}.mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-button-filled-icon-spacing, 8px);margin-left:var(--mat-button-filled-icon-offset, -8px)}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-button-filled-icon-offset, -8px);margin-left:var(--mat-button-filled-icon-spacing, 8px)}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-filled-icon-offset, -8px);margin-left:var(--mat-button-filled-icon-spacing, 8px)}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-filled-icon-spacing, 8px);margin-left:var(--mat-button-filled-icon-offset, -8px)}.mat-mdc-unelevated-button .mat-ripple-element{background-color:var(--mat-button-filled-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-filled-state-layer-color, var(--mat-sys-on-primary))}.mat-mdc-unelevated-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-filled-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-unelevated-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-filled-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-unelevated-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-filled-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-unelevated-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-filled-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-unelevated-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:var(--mat-button-filled-touch-target-size, 48px);display:var(--mat-button-filled-touch-target-display, block);left:0;right:0;transform:translateY(-50%)}.mat-mdc-unelevated-button:not(:disabled){color:var(--mat-button-filled-label-text-color, var(--mat-sys-on-primary));background-color:var(--mat-button-filled-container-color, var(--mat-sys-primary))}.mat-mdc-unelevated-button,.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mat-button-filled-container-shape, var(--mat-sys-corner-full))}.mat-mdc-unelevated-button[disabled],.mat-mdc-unelevated-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-button-filled-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-button-filled-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-raised-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);box-shadow:var(--mat-button-protected-container-elevation-shadow, var(--mat-sys-level1));height:var(--mat-button-protected-container-height, 40px);font-family:var(--mat-button-protected-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mat-button-protected-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mat-button-protected-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mat-button-protected-label-text-transform);font-weight:var(--mat-button-protected-label-text-weight, var(--mat-sys-label-large-weight));padding:0 var(--mat-button-protected-horizontal-padding, 24px)}.mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-button-protected-icon-spacing, 8px);margin-left:var(--mat-button-protected-icon-offset, -8px)}[dir=rtl] .mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-button-protected-icon-offset, -8px);margin-left:var(--mat-button-protected-icon-spacing, 8px)}.mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-protected-icon-offset, -8px);margin-left:var(--mat-button-protected-icon-spacing, 8px)}[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-protected-icon-spacing, 8px);margin-left:var(--mat-button-protected-icon-offset, -8px)}.mat-mdc-raised-button .mat-ripple-element{background-color:var(--mat-button-protected-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-protected-state-layer-color, var(--mat-sys-primary))}.mat-mdc-raised-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-protected-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-raised-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-protected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-raised-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-protected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-raised-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-protected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-raised-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:var(--mat-button-protected-touch-target-size, 48px);display:var(--mat-button-protected-touch-target-display, block);left:0;right:0;transform:translateY(-50%)}.mat-mdc-raised-button:not(:disabled){color:var(--mat-button-protected-label-text-color, var(--mat-sys-primary));background-color:var(--mat-button-protected-container-color, var(--mat-sys-surface))}.mat-mdc-raised-button,.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mat-button-protected-container-shape, var(--mat-sys-corner-full))}@media(hover: hover){.mat-mdc-raised-button:hover{box-shadow:var(--mat-button-protected-hover-container-elevation-shadow, var(--mat-sys-level2))}}.mat-mdc-raised-button:focus{box-shadow:var(--mat-button-protected-focus-container-elevation-shadow, var(--mat-sys-level1))}.mat-mdc-raised-button:active,.mat-mdc-raised-button:focus:active{box-shadow:var(--mat-button-protected-pressed-container-elevation-shadow, var(--mat-sys-level1))}.mat-mdc-raised-button[disabled],.mat-mdc-raised-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-button-protected-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-button-protected-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-raised-button[disabled].mat-mdc-button-disabled,.mat-mdc-raised-button.mat-mdc-button-disabled.mat-mdc-button-disabled{box-shadow:var(--mat-button-protected-disabled-container-elevation-shadow, var(--mat-sys-level0))}.mat-mdc-raised-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mat-button-outlined-container-height, 40px);font-family:var(--mat-button-outlined-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mat-button-outlined-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mat-button-outlined-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mat-button-outlined-label-text-transform);font-weight:var(--mat-button-outlined-label-text-weight, var(--mat-sys-label-large-weight));border-radius:var(--mat-button-outlined-container-shape, var(--mat-sys-corner-full));border-width:var(--mat-button-outlined-outline-width, 1px);padding:0 var(--mat-button-outlined-horizontal-padding, 24px)}.mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-button-outlined-icon-spacing, 8px);margin-left:var(--mat-button-outlined-icon-offset, -8px)}[dir=rtl] .mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-button-outlined-icon-offset, -8px);margin-left:var(--mat-button-outlined-icon-spacing, 8px)}.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-outlined-icon-offset, -8px);margin-left:var(--mat-button-outlined-icon-spacing, 8px)}[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-outlined-icon-spacing, 8px);margin-left:var(--mat-button-outlined-icon-offset, -8px)}.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-button-outlined-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-outlined-state-layer-color, var(--mat-sys-primary))}.mat-mdc-outlined-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-outlined-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-outlined-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-outlined-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-outlined-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-outlined-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-outlined-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-outlined-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:var(--mat-button-outlined-touch-target-size, 48px);display:var(--mat-button-outlined-touch-target-display, block);left:0;right:0;transform:translateY(-50%)}.mat-mdc-outlined-button:not(:disabled){color:var(--mat-button-outlined-label-text-color, var(--mat-sys-primary));border-color:var(--mat-button-outlined-outline-color, var(--mat-sys-outline))}.mat-mdc-outlined-button[disabled],.mat-mdc-outlined-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-button-outlined-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:var(--mat-button-outlined-disabled-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-tonal-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mat-button-tonal-container-height, 40px);font-family:var(--mat-button-tonal-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mat-button-tonal-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mat-button-tonal-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mat-button-tonal-label-text-transform);font-weight:var(--mat-button-tonal-label-text-weight, var(--mat-sys-label-large-weight));padding:0 var(--mat-button-tonal-horizontal-padding, 24px)}.mat-tonal-button:not(:disabled){color:var(--mat-button-tonal-label-text-color, var(--mat-sys-on-secondary-container));background-color:var(--mat-button-tonal-container-color, var(--mat-sys-secondary-container))}.mat-tonal-button,.mat-tonal-button .mdc-button__ripple{border-radius:var(--mat-button-tonal-container-shape, var(--mat-sys-corner-full))}.mat-tonal-button[disabled],.mat-tonal-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-button-tonal-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-button-tonal-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-tonal-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-tonal-button>.mat-icon{margin-right:var(--mat-button-tonal-icon-spacing, 8px);margin-left:var(--mat-button-tonal-icon-offset, -8px)}[dir=rtl] .mat-tonal-button>.mat-icon{margin-right:var(--mat-button-tonal-icon-offset, -8px);margin-left:var(--mat-button-tonal-icon-spacing, 8px)}.mat-tonal-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-tonal-icon-offset, -8px);margin-left:var(--mat-button-tonal-icon-spacing, 8px)}[dir=rtl] .mat-tonal-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-tonal-icon-spacing, 8px);margin-left:var(--mat-button-tonal-icon-offset, -8px)}.mat-tonal-button .mat-ripple-element{background-color:var(--mat-button-tonal-ripple-color, color-mix(in srgb, var(--mat-sys-on-secondary-container) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-tonal-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-tonal-state-layer-color, var(--mat-sys-on-secondary-container))}.mat-tonal-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-tonal-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-tonal-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-tonal-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-tonal-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-tonal-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-tonal-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-tonal-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-tonal-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-tonal-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-tonal-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:var(--mat-button-tonal-touch-target-size, 48px);display:var(--mat-button-tonal-touch-target-display, block);left:0;right:0;transform:translateY(-50%)}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button,.mat-tonal-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,.mat-tonal-button .mat-mdc-button-ripple,.mat-tonal-button .mat-mdc-button-persistent-ripple,.mat-tonal-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,.mat-tonal-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,.mat-tonal-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-button .mdc-button__label,.mat-mdc-button .mat-icon,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-unelevated-button .mat-icon,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-raised-button .mat-icon,.mat-mdc-outlined-button .mdc-button__label,.mat-mdc-outlined-button .mat-icon,.mat-tonal-button .mdc-button__label,.mat-tonal-button .mat-icon{z-index:1;position:relative}.mat-mdc-button .mat-focus-indicator,.mat-mdc-unelevated-button .mat-focus-indicator,.mat-mdc-raised-button .mat-focus-indicator,.mat-mdc-outlined-button .mat-focus-indicator,.mat-tonal-button .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit}.mat-mdc-button:focus-visible>.mat-focus-indicator::before,.mat-mdc-unelevated-button:focus-visible>.mat-focus-indicator::before,.mat-mdc-raised-button:focus-visible>.mat-focus-indicator::before,.mat-mdc-outlined-button:focus-visible>.mat-focus-indicator::before,.mat-tonal-button:focus-visible>.mat-focus-indicator::before{content:"";border-radius:inherit}.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,.mat-tonal-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon,.mat-tonal-button>.mat-icon{display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px}.mat-mdc-unelevated-button .mat-focus-indicator::before,.mat-tonal-button .mat-focus-indicator::before,.mat-mdc-raised-button .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-outlined-button .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 3px)*-1)}\n',"@media(forced-colors: active){.mat-mdc-button:not(.mdc-button--outlined),.mat-mdc-unelevated-button:not(.mdc-button--outlined),.mat-mdc-raised-button:not(.mdc-button--outlined),.mat-mdc-outlined-button:not(.mdc-button--outlined),.mat-mdc-button-base.mat-tonal-button,.mat-mdc-icon-button.mat-mdc-icon-button,.mat-mdc-outlined-button .mdc-button__ripple{outline:solid 1px}}\n"],encapsulation:2,changeDetection:0})}return t})(),BB=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({imports:[DS,ri]})}return t})();function xue(t,n){if(1&t){const e=ce();f(0,"div",1)(1,"button",2),L("click",function(){return z(e),$(C().action())}),m(2),h()()}if(2&t){const e=C();d(2),I(" ",e.data.action," ")}}const Sue=["label"];function kue(t,n){}const Due=Math.pow(2,31)-1;class xb{_overlayRef;instance;containerInstance;_afterDismissed=new pe;_afterOpened=new pe;_onAction=new pe;_durationTimeoutId;_dismissedByAction=!1;constructor(n,e){this._overlayRef=e,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,Due))}_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 TS=new Z("MatSnackBarData");class Sb{politeness="polite";announcementMessage="";viewContainerRef;duration=0;panelClass;direction;data=null;horizontalPosition="center";verticalPosition="bottom"}let VB=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","matSnackBarLabel",""]],hostAttrs:[1,"mat-mdc-snack-bar-label","mdc-snackbar__label"]})}return t})(),HB=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","matSnackBarActions",""]],hostAttrs:[1,"mat-mdc-snack-bar-actions","mdc-snackbar__actions"]})}return t})(),jB=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","matSnackBarAction",""]],hostAttrs:[1,"mat-mdc-snack-bar-action","mdc-snackbar__action"]})}return t})(),UB=(()=>{class t{snackBarRef=D(xb);data=D(TS);constructor(){}action(){this.snackBarRef.dismissWithAction()}get hasAction(){return!!this.data.action}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["simple-snack-bar"]],hostAttrs:[1,"mat-mdc-simple-snack-bar"],exportAs:["matSnackBar"],decls:3,vars:2,consts:[["matSnackBarLabel",""],["matSnackBarActions",""],["matButton","","matSnackBarAction","",3,"click"]],template:function(i,o){1&i&&(f(0,"div",0),m(1),h(),S(2,xue,3,1,"div",1)),2&i&&(d(),I(" ",o.data.message,"\n"),d(),k(o.hasAction?2:-1))},dependencies:[Jn,VB,HB,jB],styles:[".mat-mdc-simple-snack-bar{display:flex}.mat-mdc-simple-snack-bar .mat-mdc-snack-bar-label{max-height:50vh;overflow:auto}\n"],encapsulation:2,changeDetection:0})}return t})();const MS="_mat-snack-bar-enter",ES="_mat-snack-bar-exit";let zB=(()=>{class t extends lb{_ngZone=D(ge);_elementRef=D(Ae);_changeDetectorRef=D(Pn);_platform=D($n);_animationsDisabled=fi();snackBarConfig=D(Sb);_document=D(Qe);_trackedModals=new Set;_enterFallback;_exitFallback;_injector=D(Be);_announceDelay=150;_announceTimeoutId;_destroyed=!1;_portalOutlet;_onAnnounce=new pe;_onExit=new pe;_onEnter=new pe;_animationState="void";_live;_label;_role;_liveElementId=D(oi).getId("mat-snack-bar-container-live-");constructor(){super();const e=this.snackBarConfig;this._live="assertive"!==e.politeness||e.announcementMessage?"off"===e.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}attachDomPortal=e=>{this._assertNotAttached();const i=this._portalOutlet.attachDomPortal(e);return this._afterPortalAttached(),i};onAnimationEnd(e){e===ES?this._completeExit():e===MS&&(clearTimeout(this._enterFallback),this._ngZone.run(()=>{this._onEnter.next(),this._onEnter.complete()}))}enter(){this._destroyed||(this._animationState="visible",this._changeDetectorRef.markForCheck(),this._changeDetectorRef.detectChanges(),this._screenReaderAnnounce(),this._animationsDisabled?Fi(()=>{this._ngZone.run(()=>queueMicrotask(()=>this.onAnimationEnd(MS)))},{injector:this._injector}):(clearTimeout(this._enterFallback),this._enterFallback=setTimeout(()=>{this._elementRef.nativeElement.classList.add("mat-snack-bar-fallback-visible"),this.onAnimationEnd(MS)},200)))}exit(){return this._destroyed?ae(void 0):(this._ngZone.run(()=>{this._animationState="hidden",this._changeDetectorRef.markForCheck(),this._elementRef.nativeElement.setAttribute("mat-exit",""),clearTimeout(this._announceTimeoutId),this._animationsDisabled?Fi(()=>{this._ngZone.run(()=>queueMicrotask(()=>this.onAnimationEnd(ES)))},{injector:this._injector}):(clearTimeout(this._exitFallback),this._exitFallback=setTimeout(()=>this.onAnimationEnd(ES),200))}),this._onExit)}ngOnDestroy(){this._destroyed=!0,this._clearFromModals(),this._completeExit()}_completeExit(){clearTimeout(this._exitFallback),queueMicrotask(()=>{this._onExit.next(),this._onExit.complete()})}_afterPortalAttached(){const e=this._elementRef.nativeElement,i=this.snackBarConfig.panelClass;i&&(Array.isArray(i)?i.forEach(s=>e.classList.add(s)):e.classList.add(i)),this._exposeToModals();const o=this._label.nativeElement,r="mdc-snackbar__label";o.classList.toggle(r,!o.querySelector(`.${r}`))}_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(()=>{if(this._destroyed)return;const e=this._elementRef.nativeElement,i=e.querySelector("[aria-hidden]"),o=e.querySelector("[aria-live]");if(i&&o){let r=null;this._platform.isBrowser&&document.activeElement instanceof HTMLElement&&i.contains(document.activeElement)&&(r=document.activeElement),i.removeAttribute("aria-hidden"),o.appendChild(i),r?.focus(),this._onAnnounce.next(),this._onAnnounce.complete()}},this._announceDelay)})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["mat-snack-bar-container"]],viewQuery:function(i,o){if(1&i&&rt(Wl,7)(Sue,7),2&i){let r;ue(r=he())&&(o._portalOutlet=r.first),ue(r=he())&&(o._label=r.first)}},hostAttrs:[1,"mdc-snackbar","mat-mdc-snack-bar-container"],hostVars:6,hostBindings:function(i,o){1&i&&L("animationend",function(s){return o.onAnimationEnd(s.animationName)})("animationcancel",function(s){return o.onAnimationEnd(s.animationName)}),2&i&&Ke("mat-snack-bar-container-enter","visible"===o._animationState)("mat-snack-bar-container-exit","hidden"===o._animationState)("mat-snack-bar-container-animations-enabled",!o._animationsDisabled)},features:[be],decls:6,vars:3,consts:[["label",""],[1,"mdc-snackbar__surface","mat-mdc-snackbar-surface"],[1,"mat-mdc-snack-bar-label"],["aria-hidden","true"],["cdkPortalOutlet",""]],template:function(i,o){1&i&&(f(0,"div",1)(1,"div",2,0)(3,"div",3),tt(4,kue,0,0,"ng-template",4),h(),B(5,"div"),h()()),2&i&&(d(5),Ze("aria-live",o._live)("role",o._role)("id",o._liveElementId))},dependencies:[Wl],styles:["@keyframes _mat-snack-bar-enter{from{transform:scale(0.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes _mat-snack-bar-exit{from{opacity:1}to{opacity:0}}.mat-mdc-snack-bar-container{display:flex;align-items:center;justify-content:center;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0);margin:8px}.mat-mdc-snack-bar-handset .mat-mdc-snack-bar-container{width:100vw}.mat-snack-bar-container-animations-enabled{opacity:0}.mat-snack-bar-container-animations-enabled.mat-snack-bar-fallback-visible{opacity:1}.mat-snack-bar-container-animations-enabled.mat-snack-bar-container-enter{animation:_mat-snack-bar-enter 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-snack-bar-container-animations-enabled.mat-snack-bar-container-exit{animation:_mat-snack-bar-exit 75ms cubic-bezier(0.4, 0, 1, 1) forwards}.mat-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);display:flex;align-items:center;justify-content:flex-start;box-sizing:border-box;padding-left:0;padding-right:8px}[dir=rtl] .mat-mdc-snackbar-surface{padding-right:0;padding-left:8px}.mat-mdc-snack-bar-container .mat-mdc-snackbar-surface{min-width:344px;max-width:672px}.mat-mdc-snack-bar-handset .mat-mdc-snackbar-surface{width:100%;min-width:0}@media(forced-colors: active){.mat-mdc-snackbar-surface{outline:solid 1px}}.mat-mdc-snack-bar-container .mat-mdc-snackbar-surface{color:var(--mat-snack-bar-supporting-text-color, var(--mat-sys-inverse-on-surface));border-radius:var(--mat-snack-bar-container-shape, var(--mat-sys-corner-extra-small));background-color:var(--mat-snack-bar-container-color, var(--mat-sys-inverse-surface))}.mdc-snackbar__label{width:100%;flex-grow:1;box-sizing:border-box;margin:0;padding:14px 8px 14px 16px}[dir=rtl] .mdc-snackbar__label{padding-left:8px;padding-right:16px}.mat-mdc-snack-bar-container .mdc-snackbar__label{font-family:var(--mat-snack-bar-supporting-text-font, var(--mat-sys-body-medium-font));font-size:var(--mat-snack-bar-supporting-text-size, var(--mat-sys-body-medium-size));font-weight:var(--mat-snack-bar-supporting-text-weight, var(--mat-sys-body-medium-weight));line-height:var(--mat-snack-bar-supporting-text-line-height, var(--mat-sys-body-medium-line-height))}.mat-mdc-snack-bar-actions{display:flex;flex-shrink:0;align-items:center;box-sizing:border-box}.mat-mdc-snack-bar-handset,.mat-mdc-snack-bar-container,.mat-mdc-snack-bar-label{flex:1 1 auto}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled).mat-unthemed{color:var(--mat-snack-bar-button-color, var(--mat-sys-inverse-primary))}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled){--mat-button-text-state-layer-color: currentColor;--mat-button-text-ripple-color: currentColor}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled) .mat-ripple-element{opacity:.1}\n"],encapsulation:2})}return t})();const $B=new Z("mat-snack-bar-default-options",{providedIn:"root",factory:()=>new Sb});let WB=(()=>{class t{_live=D(dB);_injector=D(Be);_breakpointObserver=D(nB);_parentSnackBar=D(t,{optional:!0,skipSelf:!0});_defaultConfig=D($B);_animationsDisabled=fi();_snackBarRefAtThisLevel=null;simpleSnackBarComponent=UB;snackBarContainerComponent=zB;handsetCssClass="mat-mdc-snack-bar-handset";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(){}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=Be.create({parent:i&&i.viewContainerRef&&i.viewContainerRef.injector||this._injector,providers:[{provide:Sb,useValue:i}]}),s=new Ud(this.snackBarContainerComponent,i.viewContainerRef,r),a=e.attach(s);return a.instance.snackBarConfig=i,a.instance}_attach(e,i){const o={...new Sb,...this._defaultConfig,...i},r=this._createOverlay(o),s=this._attachSnackBarContainer(r,o),a=new xb(s,r);if(e instanceof Ci){const l=new $l(e,null,{$implicit:o.data,snackBarRef:a});a.instance=s.attachTemplatePortal(l)}else{const l=this._createInjector(o,a),c=new Ud(e,void 0,l),u=s.attachComponentPortal(c);a.instance=u.instance}return this._breakpointObserver.observe("(max-width: 599.98px) and (orientation: portrait)").pipe(on(r.detachments())).subscribe(l=>{r.overlayElement.classList.toggle(this.handsetCssClass,l.matches)}),o.announcementMessage&&s._onAnnounce.subscribe(()=>{this._live.announce(o.announcementMessage,o.politeness)}),this._animateSnackBar(a,o),this._openedSnackBarRef=a,this._openedSnackBarRef}_animateSnackBar(e,i){e.afterDismissed().subscribe(()=>{this._openedSnackBarRef==e&&(this._openedSnackBarRef=null),i.announcementMessage&&this._live.clear()}),i.duration&&i.duration>0&&e.afterOpened().subscribe(()=>e._dismissAfter(i.duration)),this._openedSnackBarRef?(this._openedSnackBarRef.afterDismissed().subscribe(()=>{e.containerInstance.enter()}),this._openedSnackBarRef.dismiss()):e.containerInstance.enter()}_createOverlay(e){const i=new Mf;i.direction=e.direction;const o=pb(),r="rtl"===e.direction,s="left"===e.horizontalPosition||"start"===e.horizontalPosition&&!r||"end"===e.horizontalPosition&&r,a=!s&&"center"!==e.horizontalPosition;return s?o.left("0"):a?o.right("0"):o.centerHorizontally(),"top"===e.verticalPosition?o.top("0"):o.bottom("0"),i.positionStrategy=o,i.disableAnimations=this._animationsDisabled,$d(this._injector,i)}_createInjector(e,i){return Be.create({parent:e&&e.viewContainerRef&&e.viewContainerRef.injector||this._injector,providers:[{provide:xb,useValue:i},{provide:TS,useValue:e.data}]})}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Tue=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({providers:[WB],imports:[Wd,Sf,BB,UB,ri]})}return t})();function kb(...t){const n=rL(t),{args:e,keys:i}=SL(t),o=new Rt(r=>{const{length:s}=e;if(!s)return void r.complete();const a=new Array(s);let l=s,c=s;for(let u=0;u{p||(p=!0,c--),a[u]=g},()=>l--,void 0,()=>{(!l||!p)&&(c||r.next(i?DL(i,a):a),r.complete())}))}});return n?o.pipe(kL(n)):o}function GB(t={}){const{connector:n=()=>new pe,resetOnError:e=!0,resetOnComplete:i=!0,resetOnRefCountZero:o=!0}=t;return r=>{let s,a,l,c=0,u=!1,p=!1;const g=()=>{a?.unsubscribe(),a=void 0},_=()=>{g(),s=l=void 0,u=p=!1},w=()=>{const x=s;_(),x?.unsubscribe()};return bn((x,T)=>{c++,!p&&!u&&g();const E=l=l??n();T.add(()=>{c--,0===c&&!p&&!u&&(a=IS(w,o))}),E.subscribe(T),!s&&c>0&&(s=new Su({next:R=>E.next(R),error:R=>{p=!0,g(),a=IS(_,e,R),E.error(R)},complete:()=>{u=!0,g(),a=IS(_,i),E.complete()}}),Vi(x).subscribe(s))})(r)}}function IS(t,n,...e){if(!0===n)return void t();if(!1===n)return;const i=new Su({next:()=>{i.unsubscribe(),t()}});return Vi(n(...e)).subscribe(i)}function qB(t){return Error(`Unable to find icon with the name "${t}"`)}function KB(t){return Error(`The URL provided to MatIconRegistry was not trusted as a resource URL via Angular's DomSanitizer. Attempted URL was "${t}".`)}function YB(t){return Error(`The literal provided to MatIconRegistry was not trusted as safe HTML by Angular's DomSanitizer. Attempted literal was "${t}".`)}class Yl{url;svgText;options;svgElement=null;constructor(n,e,i){this.url=n,this.svgText=e,this.options=i}}let Eue=(()=>{class t{_httpClient;_sanitizer;_errorHandler;_document;_svgIconConfigs=new Map;_iconSetConfigs=new Map;_cachedIconsByUrl=new Map;_inProgressUrlFetches=new Map;_fontCssClassesByAlias=new Map;_resolvers=[];_defaultFontSetClass=["material-icons","mat-ligature-font"];constructor(e,i,o,r){this._httpClient=e,this._sanitizer=i,this._errorHandler=r,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 Yl(o,null,r))}addSvgIconResolver(e){return this._resolvers.push(e),this}addSvgIconLiteralInNamespace(e,i,o,r){const s=this._sanitizer.sanitize(ui.HTML,o);if(!s)throw YB(o);const a=Gd(s);return this._addSvgIconConfig(e,i,new Yl("",a,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 Yl(i,null,o))}addSvgIconSetLiteralInNamespace(e,i,o){const r=this._sanitizer.sanitize(ui.HTML,i);if(!r)throw YB(i);const s=Gd(r);return this._addSvgIconSetConfig(e,new Yl("",s,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(ui.RESOURCE_URL,e);if(!i)throw KB(e);const o=this._cachedIconsByUrl.get(i);return o?ae(Db(o)):this._loadSvgIconFromConfig(new Yl(e,null)).pipe(ni(r=>this._cachedIconsByUrl.set(i,r)),ye(r=>Db(r)))}getNamedSvgIcon(e,i=""){const o=XB(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 s=this._iconSetConfigs.get(i);return s?this._getSvgFromIconSetConfigs(e,s):cr(qB(o))}ngOnDestroy(){this._resolvers=[],this._svgIconConfigs.clear(),this._iconSetConfigs.clear(),this._cachedIconsByUrl.clear()}_getSvgFromConfig(e){return e.svgText?ae(Db(this._svgElementFromConfig(e))):this._loadSvgIconFromConfig(e).pipe(ye(i=>Db(i)))}_getSvgFromIconSetConfigs(e,i){const o=this._extractIconWithNameFromAnySet(e,i);return o?ae(o):kb(i.filter(s=>!s.svgText).map(s=>this._loadSvgIconSetFromConfig(s).pipe(go(a=>{const c=`Loading icon set URL: ${this._sanitizer.sanitize(ui.RESOURCE_URL,s.url)} failed: ${a.message}`;return this._errorHandler.handleError(new Error(c)),ae(null)})))).pipe(ye(()=>{const s=this._extractIconWithNameFromAnySet(e,i);if(!s)throw qB(e);return s}))}_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 s=this._svgElementFromConfig(r),a=this._extractSvgIconFromSet(s,e,r.options);if(a)return a}}return null}_loadSvgIconFromConfig(e){return this._fetchIcon(e).pipe(ni(i=>e.svgText=i),ye(()=>this._svgElementFromConfig(e)))}_loadSvgIconSetFromConfig(e){return e.svgText?ae(null):this._fetchIcon(e).pipe(ni(i=>e.svgText=i))}_extractSvgIconFromSet(e,i,o){const r=e.querySelector(`[id="${i}"]`);if(!r)return null;const s=r.cloneNode(!0);if(s.removeAttribute("id"),"svg"===s.nodeName.toLowerCase())return this._setSvgAttributes(s,o);if("symbol"===s.nodeName.toLowerCase())return this._setSvgAttributes(this._toSvgElement(s),o);const a=this._svgElementFromString(Gd(""));return a.appendChild(s),this._setSvgAttributes(a,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(Gd("")),o=e.attributes;for(let r=0;rGd(c)),M_(()=>this._inProgressUrlFetches.delete(s)),GB());return this._inProgressUrlFetches.set(s,l),l}_addSvgIconConfig(e,i,o){return this._svgIconConfigs.set(XB(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;o{const t=D(Qe),n=t?t.location:null;return{getPathname:()=>n?n.pathname+n.search:""}}}),ZB=["clip-path","color-profile","src","cursor","fill","filter","marker","marker-start","marker-mid","marker-end","mask","stroke"],Rue=ZB.map(t=>`[${t}]`).join(", "),Nue=/^url\(['"]?#(.*?)['"]?\)$/;let lt=(()=>{class t{_elementRef=D(Ae);_iconRegistry=D(Eue);_location=D(Aue);_errorHandler=D(tl);_defaultColor;get color(){return this._color||this._defaultColor}set color(e){this._color=e}_color;inline=!1;get svgIcon(){return this._svgIcon}set svgIcon(e){e!==this._svgIcon&&(e?this._updateSvgIcon(e):this._svgIcon&&this._clearSvgElement(),this._svgIcon=e)}_svgIcon;get fontSet(){return this._fontSet}set fontSet(e){const i=this._cleanupFontValue(e);i!==this._fontSet&&(this._fontSet=i,this._updateFontIconClasses())}_fontSet;get fontIcon(){return this._fontIcon}set fontIcon(e){const i=this._cleanupFontValue(e);i!==this._fontIcon&&(this._fontIcon=i,this._updateFontIconClasses())}_fontIcon;_previousFontSetClass=[];_previousFontIconClass;_svgName=null;_svgNamespace=null;_previousPath;_elementsWithExternalReferences;_currentIconFetch=mt.EMPTY;constructor(){const e=D(new Xg("aria-hidden"),{optional:!0}),i=D(Oue,{optional:!0});i&&(i.color&&(this.color=this._defaultColor=i.color),i.fontSet&&(this.fontSet=i.fontSet)),e||this._elementRef.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(s=>{r.setAttribute(s.name,`url('${e}#${s.value}')`)})})}_cacheChildrenWithExternalReferences(e){const i=e.querySelectorAll(Rue),o=this._elementsWithExternalReferences=this._elementsWithExternalReferences||new Map;for(let r=0;r{const a=i[r],l=a.getAttribute(s),c=l?l.match(Nue):null;if(c){let u=o.get(a);u||(u=[],o.set(a,u)),u.push({name:s,value:c[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(un(1)).subscribe(r=>this._setSvgElement(r),r=>{this._errorHandler.handleError(new Error(`Error retrieving icon ${i}:${o}! ${r.message}`))})}}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["mat-icon"]],hostAttrs:["role","img",1,"mat-icon","notranslate"],hostVars:10,hostBindings:function(i,o){2&i&&(Ze("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),at(o.color?"mat-"+o.color:""),Ke("mat-icon-inline",o.inline)("mat-icon-no-color","primary"!==o.color&&"accent"!==o.color&&"warn"!==o.color))},inputs:{color:"color",inline:[2,"inline","inline",Ie],svgIcon:"svgIcon",fontSet:"fontSet",fontIcon:"fontIcon"},exportAs:["matIcon"],ngContentSelectors:Pue,decls:1,vars:0,template:function(i,o){1&i&&(Si(),At(0))},styles:["mat-icon,mat-icon.mat-primary,mat-icon.mat-accent,mat-icon.mat-warn{color:var(--mat-icon-color, inherit)}.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}\n"],encapsulation:2,changeDetection:0})}return t})(),Fue=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({imports:[ri]})}return t})();function PS(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,GB({connector:()=>new no(i,n,e),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:o})}class OS{}let QB=(()=>{class t{handle(e){return e.key}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();class Tb{}let JB=(()=>{class t extends Tb{compile(e,i){return e}compileTranslations(e,i){return e}static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();class Rf{}let e4=(()=>{class t extends Rf{getTranslation(e){return ae({})}static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();function Mb(t,n){if(t===n)return!0;if(null===t||null===n)return!1;if(t!=t&&n!=n)return!0;const e=typeof t;let o;if(e==typeof n&&"object"==e)if(Array.isArray(t)){if(!Array.isArray(n))return!1;if((o=t.length)==n.length){for(let r=0;rIb(n));if(qr(t)){const n={};return Object.keys(t).forEach(e=>{n[e]=Ib(t[e])}),n}return t}function AS(t,n){if(!Nf(t))return Ib(n);const e=Ib(t);return Nf(e)&&Nf(n)&&Object.keys(n).forEach(i=>{qr(n[i])?i in t?e[i]=AS(t[i],n[i]):Object.assign(e,{[i]:n[i]}):Object.assign(e,{[i]:n[i]})}),e}function n4(t,n){const e=n.split(".");n="";do{n+=e.shift();const i=!e.length;if(Ca(t)){if(qr(t)&&t4(t[n])&&(qr(t[n])||Xl(t[n])||i)){t=t[n],n="";continue}if(Xl(t)){const o=parseInt(n,10);if(t4(t[o])&&(qr(t[o])||Xl(t[o])||i)){t=t[o],n="";continue}}}i?t=void 0:n+="."}while(e.length);return t}class Pb{}let i4=(()=>{class t extends Pb{templateMatcher=/{{\s?([^{}\s]*)\s?}}/g;interpolate(e,i){return Eb(e)?this.interpolateString(e,i):function Lue(t){return"function"==typeof t}(e)?this.interpolateFunction(e,i):void 0}interpolateFunction(e,i){return e(i)}interpolateString(e,i){return i?e.replace(this.templateMatcher,(o,r)=>{const s=this.getInterpolationReplacement(i,r);return void 0!==s?s:o}):e}getInterpolationReplacement(e,i){return this.formatValue(n4(e,i))}formatValue(e){return Eb(e)?e:"number"==typeof e||"boolean"==typeof e?e.toString():null===e?"null":Xl(e)?e.join(", "):Nf(e)?"function"==typeof e.toString&&e.toString!==Object.prototype.toString?e.toString():JSON.stringify(e):void 0}static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})(),RS=(()=>{class t{_onTranslationChange=new pe;_onLangChange=new pe;_onFallbackLangChange=new pe;fallbackLang=null;currentLang;translations={};languages=[];getTranslations(e){return this.translations[e]}setTranslations(e,i,o){this.translations[e]=o&&this.hasTranslationFor(e)?AS(this.translations[e],i):i,this.addLanguages([e]),this._onTranslationChange.next({lang:e,translations:this.getTranslations(e)})}getLanguages(){return this.languages}getCurrentLang(){return this.currentLang}getFallbackLang(){return this.fallbackLang}setFallbackLang(e,i=!0){this.fallbackLang=e,i&&this._onFallbackLangChange.next({lang:e,translations:this.translations[e]})}setCurrentLang(e,i=!0){this.currentLang=e,i&&this._onLangChange.next({lang:e,translations:this.translations[e]})}get onTranslationChange(){return this._onTranslationChange.asObservable()}get onLangChange(){return this._onLangChange.asObservable()}get onFallbackLangChange(){return this._onFallbackLangChange.asObservable()}addLanguages(e){this.languages=Array.from(new Set([...this.languages,...e]))}hasTranslationFor(e){return typeof this.translations[e]<"u"}deleteTranslations(e){delete this.translations[e]}getTranslation(e){let i=this.getValue(this.currentLang,e);return void 0===i&&null!=this.fallbackLang&&this.fallbackLang!==this.currentLang&&(i=this.getValue(this.fallbackLang,e)),i}getValue(e,i){return n4(this.getTranslations(e),i)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();const NS=new Z("TRANSLATE_CONFIG"),Ff=t=>Hr(t)?t:ae(t);let zo=(()=>{class t{loadingTranslations;pending=!1;_translationRequests={};lastUseLanguage=null;currentLoader=D(Rf);compiler=D(Tb);parser=D(Pb);missingTranslationHandler=D(OS);store=D(RS);extend=!1;get onTranslationChange(){return this.store.onTranslationChange}get onLangChange(){return this.store.onLangChange}get onFallbackLangChange(){return this.store.onFallbackLangChange}get onDefaultLangChange(){return this.store.onFallbackLangChange}constructor(){const e={extend:!1,fallbackLang:null,...D(NS,{optional:!0})};e.lang&&this.use(e.lang),e.fallbackLang&&this.setFallbackLang(e.fallbackLang),e.extend&&(this.extend=!0)}setFallbackLang(e){this.getFallbackLang()||this.store.setFallbackLang(e,!1);const i=this.loadOrExtendLanguage(e);return Hr(i)?(i.pipe(un(1)).subscribe({next:()=>{this.store.setFallbackLang(e)},error:()=>{}}),i):(this.store.setFallbackLang(e),ae(this.store.getTranslations(e)))}use(e){this.lastUseLanguage=e,this.getCurrentLang()||this.store.setCurrentLang(e,!1);const i=this.loadOrExtendLanguage(e);return Hr(i)?(i.pipe(un(1)).subscribe({next:()=>{this.changeLang(e)},error:()=>{}}),i):(this.changeLang(e),ae(this.store.getTranslations(e)))}loadOrExtendLanguage(e){if(!this.store.hasTranslationFor(e)||this.extend)return this._translationRequests[e]=this._translationRequests[e]||this.loadAndCompileTranslations(e),this._translationRequests[e]}changeLang(e){e===this.lastUseLanguage&&this.store.setCurrentLang(e)}getCurrentLang(){return this.store.getCurrentLang()}loadAndCompileTranslations(e){this.pending=!0;const i=this.currentLoader.getTranslation(e).pipe(PS(1),un(1));return this.loadingTranslations=i.pipe(ye(o=>this.compiler.compileTranslations(o,e)),PS(1),un(1)),this.loadingTranslations.subscribe({next:o=>{this.store.setTranslations(e,o,this.extend),this.pending=!1},error:o=>{this.pending=!1}}),i}setTranslation(e,i,o=!1){const r=this.compiler.compileTranslations(i,e);this.store.setTranslations(e,r,o||this.extend)}getLangs(){return this.store.getLanguages()}addLangs(e){this.store.addLanguages(e)}getParsedResultForKey(e,i){const o=this.getTextToInterpolate(e);if(Ca(o))return this.runInterpolation(o,i);const r=this.missingTranslationHandler.handle({key:e,translateService:this,...void 0!==i&&{interpolateParams:i}});return void 0!==r?r:e}getFallbackLang(){return this.store.getFallbackLang()}getTextToInterpolate(e){return this.store.getTranslation(e)}runInterpolation(e,i){if(Ca(e))return Xl(e)?this.runInterpolationOnArray(e,i):qr(e)?this.runInterpolationOnDict(e,i):this.parser.interpolate(e,i)}runInterpolationOnArray(e,i){return e.map(o=>this.runInterpolation(o,i))}runInterpolationOnDict(e,i){const o={};for(const r in e){const s=this.runInterpolation(e[r],i);void 0!==s&&(o[r]=s)}return o}getParsedResult(e,i){return e instanceof Array?this.getParsedResultForArray(e,i):this.getParsedResultForKey(e,i)}getParsedResultForArray(e,i){const o={};let r=!1;for(const a of e)o[a]=this.getParsedResultForKey(a,i),r=r||Hr(o[a]);return r?kb(e.map(a=>Ff(o[a]))).pipe(ye(a=>{const l={};return a.forEach((c,u)=>{l[e[u]]=c}),l})):o}get(e,i){if(!Ca(e)||!e.length)throw new Error('Parameter "key" is required and cannot be empty');return this.pending?this.loadingTranslations.pipe(Zh(()=>Ff(this.getParsedResult(e,i)))):Ff(this.getParsedResult(e,i))}getStreamOnTranslationChange(e,i){if(!Ca(e)||!e.length)throw new Error('Parameter "key" is required and cannot be empty');return ks(ba(()=>this.get(e,i)),this.onTranslationChange.pipe(Zn(()=>{const o=this.getParsedResult(e,i);return Ff(o)})))}stream(e,i){if(!Ca(e)||!e.length)throw new Error('Parameter "key" required');return ks(ba(()=>this.get(e,i)),this.onLangChange.pipe(Zn(()=>{const o=this.getParsedResult(e,i);return Ff(o)})))}instant(e,i){if(!Ca(e)||0===e.length)throw new Error('Parameter "key" is required and cannot be empty');const o=this.getParsedResult(e,i);return Hr(o)?Array.isArray(e)?e.reduce((r,s)=>(r[s]=s,r),{}):e:o}set(e,i,o=this.getCurrentLang()){this.store.setTranslations(o,function Bue(t,n,e){return AS(t,function Vue(t,n){return t.split(".").reduceRight((e,i)=>({[i]:e}),n)}(n,e))}(this.store.getTranslations(o),e,Eb(i)?this.compiler.compile(i,o):this.compiler.compileTranslations(i,o)),!1)}reloadLang(e){return this.resetLang(e),this.loadAndCompileTranslations(e)}resetLang(e){delete this._translationRequests[e],this.store.deleteTranslations(e)}static getBrowserLang(){if(typeof window>"u"||!window.navigator)return;const e=this.getBrowserCultureLang();return e?e.split(/[-_]/)[0]:void 0}static getBrowserCultureLang(){if(!(typeof window>"u"||typeof window.navigator>"u"))return window.navigator.languages?window.navigator.languages[0]:window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage}getBrowserLang(){return t.getBrowserLang()}getBrowserCultureLang(){return t.getBrowserCultureLang()}get defaultLang(){return this.getFallbackLang()}get currentLang(){return this.store.getCurrentLang()}get langs(){return this.store.getLanguages()}setDefaultLang(e){return this.setFallbackLang(e)}getDefaultLang(){return this.getFallbackLang()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})(),Se=(()=>{class t{translate=D(zo);_ref=D(Pn);value="";lastKey=null;lastParams=[];onTranslationChange;onLangChange;onFallbackLangChange;updateValue(e,i,o){const r=s=>{this.value=void 0!==s?s:e,this.lastKey=e,this._ref.markForCheck()};if(o){const s=this.translate.getParsedResult(e,i);Hr(s)?s.subscribe(r):r(s)}this.translate.get(e,i).subscribe(r)}transform(e,...i){if(!e||!e.length)return e;if(Mb(e,this.lastKey)&&Mb(i,this.lastParams))return this.value;let o;if(Ca(i[0])&&i.length)if(Eb(i[0])&&i[0].length){const r=i[0].replace(/(')?([a-zA-Z0-9_]+)(')?(\s)?:/g,'"$2":').replace(/:(\s)?(')(.*?)(')/g,':"$3"');try{o=JSON.parse(r)}catch(s){throw new SyntaxError(`Wrong parameter in TranslatePipe. Expected a valid Object, received: ${i[0]}`)}}else qr(i[0])&&(o=i[0]);return this.lastKey=e,this.lastParams=i,this.updateValue(e,o),this._dispose(),this.onTranslationChange||(this.onTranslationChange=this.translate.onTranslationChange.subscribe(r=>{(this.lastKey&&r.lang===this.translate.getCurrentLang()||r.lang===this.translate.getFallbackLang())&&(this.lastKey=null,this.updateValue(e,o,r.translations))})),this.onLangChange||(this.onLangChange=this.translate.onLangChange.subscribe(r=>{this.lastKey&&(this.lastKey=null,this.updateValue(e,o,r.translations))})),this.onFallbackLangChange||(this.onFallbackLangChange=this.translate.onFallbackLangChange.subscribe(()=>{this.lastKey&&(this.lastKey=null,this.updateValue(e,o))})),this.value}_dispose(){typeof this.onTranslationChange<"u"&&(this.onTranslationChange.unsubscribe(),this.onTranslationChange=void 0),typeof this.onLangChange<"u"&&(this.onLangChange.unsubscribe(),this.onLangChange=void 0),typeof this.onFallbackLangChange<"u"&&(this.onFallbackLangChange.unsubscribe(),this.onFallbackLangChange=void 0)}ngOnDestroy(){this._dispose()}static \u0275fac=function(i){return new(i||t)};static \u0275pipe=Li({name:"translate",type:t,pure:!1});static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();function o4(t){return{provide:Rf,useClass:t}}function r4(t){return{provide:Tb,useClass:t}}function s4(t){return{provide:Pb,useClass:t}}function a4(t){return{provide:OS,useClass:t}}function Ob(t={},n){const e=[];return t.loader&&e.push(t.loader),t.compiler&&e.push(t.compiler),t.parser&&e.push(t.parser),t.missingTranslationHandler&&e.push(t.missingTranslationHandler),n&&e.push(RS),(t.useDefaultLang||t.defaultLanguage)&&(console.warn("The `useDefaultLang` and `defaultLanguage` options are deprecated. Please use `fallbackLang` instead."),!0===t.useDefaultLang&&t.defaultLanguage&&(t.fallbackLang=t.defaultLanguage)),e.push({provide:NS,useValue:{fallbackLang:t.fallbackLang??null,lang:t.lang,extend:t.extend??!1}}),e.push({provide:zo,useClass:zo,deps:[RS,Rf,Tb,Pb,OS,NS]}),e}let l4=(()=>{class t{static forRoot(e={}){return{ngModule:t,providers:[...Ob({compiler:r4(JB),parser:s4(i4),loader:o4(e4),missingTranslationHandler:a4(QB),...e},!0)]}}static forChild(e={}){return{ngModule:t,providers:[...Ob(e,e.isolate??!1)]}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({})}return t})();function Hue(t,n){if(1&t&&(f(0,"div",0)(1,"mat-icon",5),m(2),h()()),2&t){const e=C();d(),v("inline",!0),d(),O(e.config.icon)}}function jue(t,n){if(1&t&&(f(0,"div",2),m(1),b(2,"translate"),b(3,"translate"),h()),2&t){const e=C();d(),Hn(" ",y(2,2,"common.error")," ",Ee(3,4,e.config.smallText,e.config.smallTextTranslationParams)," ")}}var Ab=function(t){return t.Error="error",t.Done="done",t.Warning="warning",t}(Ab||{}),Rb=function(t){return t.Red="red-background",t.Green="green-background",t.Yellow="yellow-background",t}(Rb||{});let Uue=(()=>{class t{constructor(e,i){this.snackbarRef=i,this.config=e}close(){this.snackbarRef.dismiss()}static{this.\u0275fac=function(i){return new(i||t)(P(TS),P(xb))}}static{this.\u0275cmp=se({type:t,selectors:[["app-snack-bar"]],standalone:!1,decls:9,vars:8,consts:[[1,"icon-container"],[1,"text-container"],[1,"second-line"],[1,"close-button-separator"],[1,"close-button",3,"click"],[3,"inline"]],template:function(i,o){1&i&&(f(0,"div"),S(1,Hue,3,2,"div",0),f(2,"div",1),m(3),b(4,"translate"),S(5,jue,4,7,"div",2),h(),B(6,"div",3),f(7,"mat-icon",4),L("click",function(){return o.close()}),m(8,"close"),h()()),2&i&&(at("main-container "+o.config.color),d(),k(o.config.icon?1:-1),d(2),I(" ",Ee(4,5,o.config.text,o.config.textTranslationParams)," "),d(2),k(o.config.smallText?5:-1))},dependencies:[lt,Se],styles:['.cursor-pointer[_ngcontent-%COMP%], .close-button[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media(max-width:767px),(min-width:992px)and (max-width:1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media(max-width:767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}.main-container[_ngcontent-%COMP%]{width:100%;display:flex;color:#fff;padding:15px;border-radius:5px}.red-background[_ngcontent-%COMP%]{background-color:#ea0606}.green-background[_ngcontent-%COMP%]{background-color:#1fb11f}.yellow-background[_ngcontent-%COMP%]{background-color:#f90}.icon-container[_ngcontent-%COMP%]{margin-right:10px;position:relative;top:1px}.text-container[_ngcontent-%COMP%]{flex-grow:1;margin-right:10px;font-size:1rem;word-break:break-word}.text-container[_ngcontent-%COMP%] .second-line[_ngcontent-%COMP%]{font-size:.8rem;opacity:.9}.close-button-separator[_ngcontent-%COMP%]{width:1px;margin-right:10px;background-color:#0000004d}.close-button[_ngcontent-%COMP%]{opacity:.7}.close-button[_ngcontent-%COMP%]:hover{opacity:1}mat-icon[_ngcontent-%COMP%]{position:relative;top:1px;-webkit-user-select:none;user-select:none}']})}}return t})(),bt=(()=>{class t{constructor(e){this.snackBar=e,this.lastWasTemporaryError=!1}showError(e,i=null,o=!1,r=null,s=null){e=Je(e),r=r?Je(r):null,this.lastWasTemporaryError=o,this.show(e.translatableErrorMsg,i,r?r.translatableErrorMsg:null,s,Ab.Error,Rb.Red,15e3)}showWarning(e,i=null){this.lastWasTemporaryError=!1,this.show(e,i,null,null,Ab.Warning,Rb.Yellow,15e3)}showDone(e,i=null){this.lastWasTemporaryError=!1,this.show(e,i,null,null,Ab.Done,Rb.Green,5e3)}closeCurrent(){this.snackBar.dismiss()}closeCurrentIfTemporaryError(){this.lastWasTemporaryError&&this.snackBar.dismiss()}show(e,i,o,r,s,a,l){this.snackBar.openFromComponent(Uue,{duration:l,panelClass:"snackbar-container",data:{text:e,textTranslationParams:i,smallText:o,smallTextTranslationParams:r,icon:s,color:a}})}static{this.\u0275fac=function(i){return new(i||t)(le(WB))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const ze={maxShortListElements:5,maxFullListElements:40,connectionRetryDelay:5e3,languages:[{code:"en",name:"English",iconName:"en.png"},{code:"es",name:"Espa\xf1ol",iconName:"es.png"},{code:"de",name:"Deutsch",iconName:"de.png"},{code:"pt",name:"Portugu\xeas (Brazil)",iconName:"pt.png"}],defaultLanguage:"en",smallModalWidth:"480px",mediumModalWidth:"640px",largeModalWidth:"900px",vpn:{hardcodedIpWhileDeveloping:!1}};class zue{constructor(n){Object.assign(this,n)}}let Nb=(()=>{class t{constructor(e){this.translate=e,this.currentLanguage=new no(1),this.languages=new no(1),this.storageKey="lang",this.languagesInternal=[],this.settingsLoaded=!1}loadLanguageSettings(){if(this.settingsLoaded)return;this.settingsLoaded=!0;const e=[];ze.languages.forEach(i=>{const o=new zue(i);this.languagesInternal.push(o),e.push(o.code)}),this.languages.next(this.languagesInternal),this.translate.addLangs(e),this.translate.setDefaultLang(ze.defaultLanguage),this.translate.onLangChange.subscribe(i=>this.onLanguageChanged(i)),this.loadCurrentLanguage()}changeLanguage(e){this.translate.use(e)}onLanguageChanged(e){this.currentLanguage.next(this.languagesInternal.find(i=>i.code===e.lang)),localStorage.setItem(this.storageKey,e.lang)}loadCurrentLanguage(){let e=localStorage.getItem(this.storageKey);e=e||ze.defaultLanguage,setTimeout(()=>this.translate.use(e),16)}static{this.\u0275fac=function(i){return new(i||t)(le(zo))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const $ue={url:"",deserializer:t=>JSON.parse(t.data),serializer:t=>JSON.stringify(t)};class FS extends ey{constructor(n,e){if(super(),this._socket=null,n instanceof Rt)this.destination=e,this.source=n;else{const i=this._config=Object.assign({},$ue);if(this._output=new pe,"string"==typeof n)i.url=n;else for(const o in n)n.hasOwnProperty(o)&&(i[o]=n[o]);if(!i.WebSocketCtor&&WebSocket)i.WebSocketCtor=WebSocket;else if(!i.WebSocketCtor)throw new Error("no WebSocket constructor can be found");this.destination=new no}}lift(n){const e=new FS(this._config,this.destination);return e.operator=n,e.source=this,e}_resetState(){this._socket=null,this.source||(this.destination=new no),this._output=new pe}multiplex(n,e,i){const o=this;return new Rt(r=>{try{o.next(n())}catch(a){r.error(a)}const s=o.subscribe({next:a=>{try{i(a)&&r.next(a)}catch(l){r.error(l)}},error:a=>r.error(a),complete:()=>r.complete()});return()=>{try{o.next(e())}catch(a){r.error(a)}s.unsubscribe()}})}_connectSocket(){const{WebSocketCtor:n,protocol:e,url:i,binaryType:o}=this._config,r=this._output;let s=null;try{s=e?new n(i,e):new n(i),this._socket=s,o&&(this._socket.binaryType=o)}catch(l){return void r.error(l)}const a=new mt(()=>{this._socket=null,s&&1===s.readyState&&s.close()});s.onopen=l=>{const{_socket:c}=this;if(!c)return s.close(),void this._resetState();const{openObserver:u}=this._config;u&&u.next(l);const p=this.destination;this.destination=Tp.create(g=>{if(1===s.readyState)try{const{serializer:_}=this._config;s.send(_(g))}catch(_){this.destination.error(_)}},g=>{const{closingObserver:_}=this._config;_&&_.next(void 0),g&&g.code?s.close(g.code,g.reason):r.error(new TypeError("WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }")),this._resetState()},()=>{const{closingObserver:g}=this._config;g&&g.next(void 0),s.close(),this._resetState()}),p&&p instanceof no&&a.add(p.subscribe(this.destination))},s.onerror=l=>{this._resetState(),r.error(l)},s.onclose=l=>{s===this._socket&&this._resetState();const{closeObserver:c}=this._config;c&&c.next(l),l.wasClean?r.complete():r.error(l)},s.onmessage=l=>{try{const{deserializer:c}=this._config;r.next(c(l))}catch(c){r.error(c)}}}_subscribe(n){const{source:e}=this;return e?e.subscribe(n):(this._socket||this._connectSocket(),this._output.subscribe(n),n.add(()=>{const{_socket:i}=this;0===this._output.observers.length&&(i&&(1===i.readyState||0===i.readyState)&&i.close(),this._resetState())}),n)}unsubscribe(){const{_socket:n}=this;n&&(1===n.readyState||0===n.readyState)&&n.close(),this._resetState(),super.unsubscribe()}}var Fb=function(t){return t.Json="json",t.Text="text",t}(Fb||{}),Lb=function(t){return t.Json="json",t}(Lb||{});class _r{constructor(n){this.responseType=Fb.Json,this.requestType=Lb.Json,this.ignoreAuth=!1,Object.assign(this,n)}}let br=(()=>{class t{constructor(e,i,o){this.http=e,this.router=i,this.ngZone=o,this.apiPrefix="api/",this.wsApiPrefix="api/"}get(e,i=null){return this.request("GET",e,{},i)}post(e,i={},o=null){return this.getCsrf().pipe(jr(),Et(r=>((o=o||new _r).csrfToken=r,this.request("POST",e,i,o))))}put(e,i={},o=null){return this.getCsrf().pipe(jr(),Et(r=>((o=o||new _r).csrfToken=r,this.request("PUT",e,i,o))))}delete(e,i=null){return this.getCsrf().pipe(jr(),Et(o=>((i=i||new _r).csrfToken=o,this.request("DELETE",e,{},i))))}getCsrf(){return this.get("csrf").pipe(ye(e=>e.csrf_token))}ws(e,i={}){const s=function Gue(t){return new FS(t)}((location.protocol.startsWith("https")?"wss://":"ws://")+location.host+"/"+this.wsApiPrefix+e);return s.next(i),s}request(e,i,o,r){return o=o||{},r=r||new _r,i.startsWith("/")&&(i=i.substr(1,i.length-1)),this.http.request(e,this.apiPrefix+i,{...this.getRequestOptions(r),responseType:r.responseType,withCredentials:!0,body:this.getPostBody(o,r)}).pipe(ye(s=>this.successHandler(s)),go(s=>this.errorHandler(s,r)))}getRequestOptions(e){const i={};return i.headers=new jo,e.requestType===Lb.Json&&(i.headers=i.headers.append("Content-Type","application/json")),e.csrfToken&&(i.headers=i.headers.append("X-CSRF-Token",e.csrfToken)),i}getPostBody(e,i){if(i.requestType===Lb.Json)return JSON.stringify(e);const o=new FormData;return Object.keys(e).forEach(r=>o.append(r,e[r])),o}successHandler(e){if("string"==typeof e&&"manager token is null"===e)throw new Error(e);return e}errorHandler(e,i){if(!i.ignoreAuth){if(401===e.status){const o=i.vpnKeyForAuth?["vpnlogin",i.vpnKeyForAuth]:["login"];this.ngZone.run(()=>this.router.navigate(o,{replaceUrl:!0}))}if(e.error&&"string"==typeof e.error&&e.error.includes("change password")){const o=i.vpnKeyForAuth?["vpnlogin",i.vpnKeyForAuth]:["login"];this.ngZone.run(()=>this.router.navigate(o,{replaceUrl:!0}))}}return cr(Je(e))}static{this.\u0275fac=function(i){return new(i||t)(le(ga),le(vt),le(ge))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const que=["determinateSpinner"];function Kue(t,n){if(1&t&&(Uc(),f(0,"svg",11),B(1,"circle",12),h()),2&t){const e=C();Ze("viewBox",e._viewBox()),d(),Cd("stroke-dasharray",e._strokeCircumference(),"px")("stroke-dashoffset",e._strokeCircumference()/2,"px")("stroke-width",e._circleStrokeWidth(),"%"),Ze("r",e._circleRadius())}}const Yue=new Z("mat-progress-spinner-default-options",{providedIn:"root",factory:()=>({diameter:c4})}),c4=100;let $o=(()=>{class t{_elementRef=D(Ae);_noopAnimations;get color(){return this._color||this._defaultColor}set color(e){this._color=e}_color;_defaultColor="primary";_determinateCircle;constructor(){const e=D(Yue),i=bB(),o=this._elementRef.nativeElement;this._noopAnimations="di-disabled"===i&&!!e&&!e._forceAnimations,this.mode="mat-spinner"===o.nodeName.toLowerCase()?"indeterminate":"determinate",!this._noopAnimations&&"reduced-motion"===i&&o.classList.add("mat-progress-spinner-reduced-motion"),e&&(e.color&&(this.color=this._defaultColor=e.color),e.diameter&&(this.diameter=e.diameter),e.strokeWidth&&(this.strokeWidth=e.strokeWidth))}mode;get value(){return"determinate"===this.mode?this._value:0}set value(e){this._value=Math.max(0,Math.min(100,e||0))}_value=0;get diameter(){return this._diameter}set diameter(e){this._diameter=e||0}_diameter=c4;get strokeWidth(){return this._strokeWidth??this.diameter/10}set strokeWidth(e){this._strokeWidth=e||0}_strokeWidth;_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 \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["mat-progress-spinner"],["mat-spinner"]],viewQuery:function(i,o){if(1&i&&rt(que,5),2&i){let r;ue(r=he())&&(o._determinateCircle=r.first)}},hostAttrs:["role","progressbar","tabindex","-1",1,"mat-mdc-progress-spinner","mdc-circular-progress"],hostVars:18,hostBindings:function(i,o){2&i&&(Ze("aria-valuemin",0)("aria-valuemax",100)("aria-valuenow","determinate"===o.mode?o.value:null)("mode",o.mode),at("mat-"+o.color),Cd("width",o.diameter,"px")("height",o.diameter,"px")("--mat-progress-spinner-size",o.diameter+"px")("--mat-progress-spinner-active-indicator-width",o.diameter+"px"),Ke("_mat-animation-noopable",o._noopAnimations)("mdc-circular-progress--indeterminate","indeterminate"===o.mode))},inputs:{color:"color",mode:"mode",value:[2,"value","value",Br],diameter:[2,"diameter","diameter",Br],strokeWidth:[2,"strokeWidth","strokeWidth",Br]},exportAs:["matProgressSpinner"],decls:14,vars:11,consts:[["circle",""],["determinateSpinner",""],["aria-hidden","true",1,"mdc-circular-progress__determinate-container"],["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&&(tt(0,Kue,2,8,"ng-template",null,0,El),f(2,"div",2,1),Uc(),f(4,"svg",3),B(5,"circle",4),h()(),Vy(),f(6,"div",5)(7,"div",6)(8,"div",7),sr(9,8),h(),f(10,"div",9),sr(11,8),h(),f(12,"div",10),sr(13,8),h()()()),2&i){const r=Vn(1);d(4),Ze("viewBox",o._viewBox()),d(),Cd("stroke-dasharray",o._strokeCircumference(),"px")("stroke-dashoffset",o._strokeDashOffset(),"px")("stroke-width",o._circleStrokeWidth(),"%"),Ze("r",o._circleRadius()),d(4),v("ngTemplateOutlet",r),d(2),v("ngTemplateOutlet",r),d(2),v("ngTemplateOutlet",r)}},dependencies:[Pd],styles:[".mat-mdc-progress-spinner{--mat-progress-spinner-animation-multiplier: 1;display:block;overflow:hidden;line-height:0;position:relative;direction:ltr;transition:opacity 250ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-progress-spinner circle{stroke-width:var(--mat-progress-spinner-active-indicator-width, 4px)}.mat-mdc-progress-spinner._mat-animation-noopable,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__determinate-circle{transition:none !important}.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 !important}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container circle{stroke-dasharray:0 !important}@media(forced-colors: active){.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle{stroke:currentColor;stroke:CanvasText}}.mat-progress-spinner-reduced-motion{--mat-progress-spinner-animation-multiplier: 1.25}.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 .mdc-circular-progress__determinate-container{opacity:0}.mdc-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{opacity:1;animation:mdc-circular-progress-container-rotate calc(1568.2352941176ms*var(--mat-progress-spinner-animation-multiplier)) linear infinite}.mdc-circular-progress__determinate-circle-graphic,.mdc-circular-progress__indeterminate-circle-graphic{fill:rgba(0,0,0,0)}.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--mat-progress-spinner-active-indicator-color, var(--mat-sys-primary))}@media(forced-colors: active){.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mdc-circular-progress__determinate-circle{transition:stroke-dashoffset 500ms 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 .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__circle-left .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-left-spin calc(1333ms*var(--mat-progress-spinner-animation-multiplier)) 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 calc(1333ms*var(--mat-progress-spinner-animation-multiplier)) cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.mdc-circular-progress--indeterminate .mdc-circular-progress__spinner-layer{animation:mdc-circular-progress-spinner-layer-rotate calc(5332ms*var(--mat-progress-spinner-animation-multiplier)) cubic-bezier(0.4, 0, 0.2, 1) infinite both}@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-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)}}\n"],encapsulation:2,changeDetection:0})}return t})(),Zue=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({imports:[ri]})}return t})();const Que=t=>({"white-theme":t});let vr=(()=>{class t{constructor(){this.showWhite=!0}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=se({type:t,selectors:[["app-loading-indicator"]],inputs:{showWhite:"showWhite"},standalone:!1,decls:2,vars:4,consts:[[1,"container",3,"ngClass"],[3,"diameter"]],template:function(i,o){1&i&&(f(0,"div",0),B(1,"mat-spinner",1),h()),2&i&&(v("ngClass",oe(2,Que,o.showWhite)),d(),v("diameter",50))},dependencies:[qt,$o],styles:["[_nghost-%COMP%]{width:100%;height:100%;display:flex}.container[_ngcontent-%COMP%]{width:100%;align-self:center;display:flex;flex-direction:column;align-items:center}.container[_ngcontent-%COMP%] > mat-spinner[_ngcontent-%COMP%]{opacity:.5}"]})}}return t})();const Jue=t=>({background:t});function ehe(t,n){1&t&&(f(0,"div",0)(1,"div"),B(2,"img",5),f(3,"div"),m(4),b(5,"translate"),h()()()),2&t&&(d(4),O(y(5,1,"common.window-size-error")))}function the(t,n){1&t&&B(0,"router-outlet")}function nhe(t,n){1&t&&B(0,"app-loading-indicator",3)}function ihe(t,n){1&t&&(f(0,"div",4)(1,"span",6)(2,"mat-icon",7),m(3,"error_outline"),h(),m(4),b(5,"translate"),h()()),2&t&&(d(2),v("inline",!0),d(2),I(" ",y(5,2,"common.data-update-problems")," "))}let Kr=(()=>{class t{constructor(e,i,o,r,s,a){this.storage=e,this.snackbarService=r,this.languageService=s,this.apiService=a,this.inVpnClient=!1,this.inLoginPage=!1,this.hypervisorPkObtained=!1,this.pkErrorShown=!1,this.pkErrorsFound=0,this.showingDataProblemMsg=!1,t.currentInstance=this,o.afterOpened.subscribe(()=>r.closeCurrent()),history.scrollRestoration&&(history.scrollRestoration="manual"),i.events.subscribe(l=>{l instanceof $r&&(r.closeCurrent(),o.closeAll())}),o.afterAllClosed.subscribe(()=>r.closeCurrentIfTemporaryError()),i.events.subscribe(l=>{if(this.inVpnClient=i.url.includes("/vpn/")||i.url.includes("vpnlogin"),l.url){const c=this.inLoginPage;this.inLoginPage=l.url.includes("login"),c&&!this.inLoginPage&&!this.hypervisorPkObtained&&this.checkHypervisorPk(0)}i.url.length>2&&(document.title=this.inVpnClient?"Skywire VPN":"Skywire Hypervisor")}),this.languageService.loadLanguageSettings(),this.checkHypervisorPk(0)}processLoginDone(){this.inLoginPage=!1,this.hypervisorPkObtained||this.checkHypervisorPk(0)}showDataProblemMsg(){this.showingDataProblemMsg=!0}hideDataProblemMsg(){this.showingDataProblemMsg=!1}checkHypervisorPk(e){this.obtainPkSubscription&&this.obtainPkSubscription.unsubscribe(),this.obtainPkSubscription=ae(1).pipe(ii(e),Et(()=>this.apiService.get("about"))).subscribe(i=>{i.public_key?(this.finishStartup(i.public_key),this.hypervisorPkObtained=!0):(this.pkErrorShown||(this.snackbarService.showError("start.loading-error",null,!0),this.pkErrorShown=!0),this.checkHypervisorPk(1e3))},i=>{if(this.pkErrorsFound+=1,this.pkErrorsFound>4&&!this.pkErrorShown){const o=Je(i);this.snackbarService.showError("start.loading-error",null,!0,o),this.pkErrorShown=!0}!this.inLoginPage&&this.pkErrorsFound<30&&this.checkHypervisorPk(Math.min(1e3*this.pkErrorsFound,1e4))})}finishStartup(e){this.storage.initialize(e)}static{this.\u0275fac=function(i){return new(i||t)(P(zn),P(vt),P(kt),P(bt),P(Nb),P(br))}}static{this.\u0275cmp=se({type:t,selectors:[["app-root"]],standalone:!1,decls:6,vars:7,consts:[[1,"size-alert","d-md-none"],[1,"flex-1","content","container-fluid"],[3,"ngClass"],[1,"h-100"],[1,"connection-problem-container"],["src","assets/img/size-alert.png"],[1,"blinking"],[3,"inline"]],template:function(i,o){1&i&&(S(0,ehe,6,3,"div",0),f(1,"div",1),B(2,"div",2),S(3,the,1,0,"router-outlet"),S(4,nhe,1,0,"app-loading-indicator",3),h(),S(5,ihe,6,4,"div",4)),2&i&&(k(o.inVpnClient?0:-1),d(2),v("ngClass",oe(5,Jue,o.inVpnClient)),d(),k(o.hypervisorPkObtained||o.inLoginPage?3:-1),d(),k(o.hypervisorPkObtained||o.inLoginPage?-1:4),d(),k(o.showingDataProblemMsg?5:-1))},dependencies:[qt,$_,lt,vr,Se],styles:[".size-alert[_ngcontent-%COMP%]{background-color:#000000d9;position:fixed;top:0;left:0;width:100%;height:100%;z-index:10000;display:inline-flex;align-items:center;justify-content:center;text-align:center;color:#fff}.size-alert[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{margin:0 40px;max-width:400px}[_nghost-%COMP%]{display:flex;flex-direction:column;justify-content:space-between;min-height:100%;height:100%}.content[_ngcontent-%COMP%]{padding:20px!important}.background[_ngcontent-%COMP%]{background-image:url(/assets/img/map.png);background-size:cover;background-position:center;opacity:.1;width:100%;height:100%;top:0;left:0;position:fixed}.connection-problem-container[_ngcontent-%COMP%]{position:fixed;bottom:0;right:0;background-color:red;padding:0 10px 5px;font-size:10px;opacity:.75}.connection-problem-container[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:4px}"]})}}return t})(),ghe=(()=>{class t{router=D(vt);stateManager=D(Yx);fragment=yt("");queryParams=yt({});path=yt("");serializer=D(Nd);constructor(){this.updateState(),this.router.events?.subscribe(e=>{e instanceof $r&&this.updateState()})}updateState(){const{fragment:e,root:i,queryParams:o}=this.stateManager.getCurrentUrlTree();this.fragment.set(e),this.queryParams.set(o),this.path.set(this.serializer.serialize(new dr(i)))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),wa=(()=>{class t{router;route;tabIndexAttribute;renderer;el;locationStrategy;hrefAttributeValue=D(new Xg("href"),{optional:!0});reactiveHref=function iw(t,n){return yN("function"==typeof t?_N(t,xte,n?.equal):_N(t.source,t.computation,t.equal))}(()=>this.isAnchorElement?this.computeHref(this._urlTree()):this.hrefAttributeValue);get href(){return nt(this.reactiveHref)}set href(e){this.reactiveHref.set(e)}set target(e){this._target.set(e)}get target(){return nt(this._target)}_target=yt(void 0);set queryParams(e){this._queryParams.set(e)}get queryParams(){return nt(this._queryParams)}_queryParams=yt(void 0,{equal:()=>!1});set fragment(e){this._fragment.set(e)}get fragment(){return nt(this._fragment)}_fragment=yt(void 0);set queryParamsHandling(e){this._queryParamsHandling.set(e)}get queryParamsHandling(){return nt(this._queryParamsHandling)}_queryParamsHandling=yt(void 0);set state(e){this._state.set(e)}get state(){return nt(this._state)}_state=yt(void 0,{equal:()=>!1});set info(e){this._info.set(e)}get info(){return nt(this._info)}_info=yt(void 0,{equal:()=>!1});set relativeTo(e){this._relativeTo.set(e)}get relativeTo(){return nt(this._relativeTo)}_relativeTo=yt(void 0);set preserveFragment(e){this._preserveFragment.set(e)}get preserveFragment(){return nt(this._preserveFragment)}_preserveFragment=yt(!1);set skipLocationChange(e){this._skipLocationChange.set(e)}get skipLocationChange(){return nt(this._skipLocationChange)}_skipLocationChange=yt(!1);set replaceUrl(e){this._replaceUrl.set(e)}get replaceUrl(){return nt(this._replaceUrl)}_replaceUrl=yt(!1);isAnchorElement;onChanges=new pe;applicationErrorHandler=D(Pr);options=D(Hd,{optional:!0});reactiveRouterState=D(ghe);constructor(e,i,o,r,s,a){this.router=e,this.route=i,this.tabIndexAttribute=o,this.renderer=r,this.el=s,this.locationStrategy=a;const l=s.nativeElement.tagName?.toLowerCase();this.isAnchorElement="a"===l||"area"===l||!("object"!=typeof customElements||!customElements.get(l)?.observedAttributes?.includes?.("href"))}setTabIndexIfNotOnNativeEl(e){null!=this.tabIndexAttribute||this.isAnchorElement||this.applyAttributeValue("tabindex",e)}ngOnChanges(e){this.onChanges.next(this)}routerLinkInput=yt(null);set routerLink(e){null==e?(this.routerLinkInput.set(null),this.setTabIndexIfNotOnNativeEl(null)):(jl(e)?this.routerLinkInput.set(e):this.routerLinkInput.set(Array.isArray(e)?e:[e]),this.setTabIndexIfNotOnNativeEl("0"))}onClick(e,i,o,r,s){const a=this._urlTree();if(null===a||this.isAnchorElement&&(0!==e||i||o||r||s||"string"==typeof this.target&&"_self"!=this.target))return!0;const l={skipLocationChange:this.skipLocationChange,replaceUrl:this.replaceUrl,state:this.state,info:this.info};return this.router.navigateByUrl(a,l)?.catch(c=>{this.applicationErrorHandler(c)}),!this.isAnchorElement}ngOnDestroy(){}applyAttributeValue(e,i){const o=this.renderer,r=this.el.nativeElement;null!==i?o.setAttribute(r,e,i):o.removeAttribute(r,e)}_urlTree=Ti(()=>{this.reactiveRouterState.path(),this._preserveFragment()&&this.reactiveRouterState.fragment();const e=o=>"preserve"===o||"merge"===o;(e(this._queryParamsHandling())||e(this.options?.defaultQueryParamsHandling))&&this.reactiveRouterState.queryParams();const i=this.routerLinkInput();return null!==i&&this.router.createUrlTree?jl(i)?i:this.router.createUrlTree(i,{relativeTo:void 0!==this._relativeTo()?this._relativeTo():this.route,queryParams:this._queryParams(),fragment:this._fragment(),queryParamsHandling:this._queryParamsHandling(),preserveFragment:this._preserveFragment()}):null},{equal:(e,i)=>this.computeHref(e)===this.computeHref(i)});get urlTree(){return nt(this._urlTree)}computeHref(e){return null!==e&&this.locationStrategy?this.locationStrategy?.prepareExternalUrl(this.router.serializeUrl(e))??"":null}static \u0275fac=function(i){return new(i||t)(P(vt),P(Ei),Gu("tabindex"),P(Kn),P(Ae),P(Al))};static \u0275dir=de({type:t,selectors:[["","routerLink",""]],hostVars:2,hostBindings:function(i,o){1&i&&L("click",function(s){return o.onClick(s.button,s.ctrlKey,s.shiftKey,s.altKey,s.metaKey)}),2&i&&Ze("href",o.reactiveHref(),d2)("target",o._target())},inputs:{target:"target",queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",state:"state",info:"info",relativeTo:"relativeTo",preserveFragment:[2,"preserveFragment","preserveFragment",Ie],skipLocationChange:[2,"skipLocationChange","skipLocationChange",Ie],replaceUrl:[2,"replaceUrl","replaceUrl",Ie],routerLink:"routerLink"},features:[yi]})}return t})();class h4{}let vhe=(()=>{class t{router;injector;preloadingStrategy;loader;subscription;constructor(e,i,o,r){this.router=e,this.injector=i,this.preloadingStrategy=o,this.loader=r}setUpPreloading(){this.subscription=this.router.events.pipe(vn(e=>e instanceof $r),Zh(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription?.unsubscribe()}processRoutes(e,i){const o=[];for(const r of i){r.providers&&!r._injector&&(r._injector=gg(r.providers,e,""));const s=r._injector??e;r._loadedNgModuleFactory&&!r._loadedInjector&&(r._loadedInjector=r._loadedNgModuleFactory.create(s).injector);const a=r._loadedInjector??s;(r.loadChildren&&!r._loadedRoutes&&void 0===r.canLoad||r.loadComponent&&!r._loadedComponent)&&o.push(this.preloadConfig(s,r)),(r.children||r._loadedRoutes)&&o.push(this.processRoutes(a,r.children??r._loadedRoutes))}return Un(o).pipe(Ad())}preloadConfig(e,i){return this.preloadingStrategy.preload(i,()=>{if(e.destroyed)return ae(null);let o;o=i.loadChildren&&void 0===i.canLoad?Un(this.loader.loadChildren(e,i)):ae(null);const r=o.pipe(Et(s=>null===s?ae(void 0):(i._loadedRoutes=s.routes,i._loadedInjector=s.injector,i._loadedNgModuleFactory=s.factory,this.processRoutes(s.injector??e,s.routes))));return i.loadComponent&&!i._loadedComponent?Un([r,this.loader.loadComponent(e,i)]).pipe(Ad()):r})}static \u0275fac=function(i){return new(i||t)(le(vt),le(Nn),le(h4),le(zx))};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const LS=new Z("");let f4=(()=>{class t{options;routerEventsSubscription;scrollEventsSubscription;lastId=0;lastSource=uf;restoredId=0;store={};urlSerializer=D(Nd);zone=D(ge);viewportScroller=D(JT);transitions=D(qx);constructor(e){this.options=e,this.options.scrollPositionRestoration||="disabled",this.options.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 j_?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=e.navigationTrigger,this.restoredId=e.restoredState?e.restoredState.navigationId:0):e instanceof $r?(this.lastId=e.id,this.scheduleScrollEvent(e,this.urlSerializer.parse(e.urlAfterRedirects).fragment)):e instanceof Fd&&e.code===U_.IgnoredSameUrlNavigation&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(e,this.urlSerializer.parse(e.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(e=>{if(!(e instanceof t3)||"manual"===e.scrollBehavior)return;const i={behavior:"instant"};e.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0],i):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(e.position,i):e.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(e.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0])})}scheduleScrollEvent(e,i){var o=this;const r=nt(this.transitions.currentNavigation)?.extras.scroll;this.zone.runOutsideAngular(Nt(function*(){yield new Promise(s=>{setTimeout(s),typeof requestAnimationFrame<"u"&&requestAnimationFrame(s)}),o.zone.run(()=>{o.transitions.events.next(new t3(e,"popstate"===o.lastSource?o.store[o.restoredId]:null,i,r))})}))}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static \u0275fac=function(i){P1()};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();function Wo(t,n){return{\u0275kind:t,\u0275providers:n}}function m4(){const t=D(Be);return n=>{const e=t.get(or);if(n!==e.components[0])return;const i=t.get(vt),o=t.get(g4);1===t.get(BS)&&i.initialNavigation(),t.get(_4,null,{optional:!0})?.setUpPreloading(),t.get(LS,null,{optional:!0})?.init(),i.resetRootComponentType(e.componentTypes[0]),o.closed||(o.next(),o.complete(),o.unsubscribe())}}const g4=new Z("",{factory:()=>new pe}),BS=new Z("",{factory:()=>1}),_4=new Z("");function She(t){return Wo(0,[{provide:_4,useExisting:vhe},{provide:h4,useExisting:t}])}function Dhe(t){return hi("NgRouterViewTransitions"),Wo(9,[{provide:M3,useValue:Jle},{provide:E3,useValue:{skipNextTransition:!!t?.skipInitialTransition,...t}}])}const The=[Ed,{provide:Nd,useClass:af},vt,hf,{provide:Ei,useFactory:function p4(){return D(vt).routerState.root}},zx,[]];let b4=(()=>{class t{constructor(){}static forRoot(e,i){return{ngModule:t,providers:[The,[],{provide:X_,multi:!0,useValue:e},[],i?.errorHandler?{provide:I3,useValue:i.errorHandler}:[],{provide:Hd,useValue:i||{}},i?.useHash?{provide:Al,useClass:Fte}:{provide:Al,useClass:kN},{provide:LS,useFactory:()=>{const t=D(JT),n=D(Hd);return n.scrollOffset&&t.setOffset(n.scrollOffset),new f4(n)}},i?.preloadingStrategy?She(i.preloadingStrategy).\u0275providers:[],i?.initialNavigation?Phe(i):[],i?.bindToComponentInputs?Wo(8,[c3,{provide:W_,useExisting:c3}]).\u0275providers:[],i?.enableViewTransitions?Dhe().\u0275providers:[],[{provide:v4,useFactory:m4},{provide:oO,multi:!0,useExisting:v4}]]}}static forChild(e){return{ngModule:t,providers:[{provide:X_,multi:!0,useValue:e}]}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({})}return t})();function Phe(t){return["disabled"===t.initialNavigation?Wo(3,[nO(()=>{D(vt).setUpLocationChangeListener()}),{provide:BS,useValue:2}]).\u0275providers:[],"enabledBlocking"===t.initialNavigation?Wo(2,[{provide:z7,useValue:!0},{provide:BS,useValue:0},nO(()=>{const n=D(Be);return n.get(mz,Promise.resolve()).then(()=>new Promise(i=>{const o=n.get(vt),r=n.get(g4);A3(o,()=>{i(!0)}),n.get(qx).afterPreactivation=()=>(i(!0),r.closed?ae(void 0):r),o.initialNavigation()}))})]).\u0275providers:[]]}const v4=new Z("");let Bf=(()=>{class t{set forceFail(e){this.forceFailInternal=e}constructor(e){this.router=e,this.forceFailInternal=!1}canActivate(e,i){return this.checkIfCanActivate()}canActivateChild(e,i){return this.checkIfCanActivate()}checkIfCanActivate(){return this.forceFailInternal?(this.router.navigate(["login"],{replaceUrl:!0}),ae(!1)):ae(!0)}static{this.\u0275fac=function(i){return new(i||t)(le(vt))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();var xa=function(t){return t[t.AuthDisabled=0]="AuthDisabled",t[t.Logged=1]="Logged",t[t.NotLogged=2]="NotLogged",t}(xa||{});let Vf=(()=>{class t{constructor(e,i,o){this.apiService=e,this.translateService=i,this.authGuardService=o}login(e){return this.apiService.post("login",{username:"admin",password:e},new _r({ignoreAuth:!0})).pipe(ni(i=>{if(!0!==i)throw new Error;this.authGuardService.forceFail=!1}))}checkLogin(){return this.apiService.get("user",new _r({ignoreAuth:!0})).pipe(ye(e=>e.username?xa.Logged:xa.AuthDisabled),go(e=>(e=Je(e)).originalError&&401===e.originalError.status?(this.authGuardService.forceFail=!0,ae(xa.NotLogged)):cr(e)))}logout(){return this.apiService.post("logout",{}).pipe(ni(e=>{if(!0!==e)throw new Error;this.authGuardService.forceFail=!0}))}changePassword(e,i){return this.apiService.post("change-password",{old_password:e,new_password:i},new _r({responseType:Fb.Text,ignoreAuth:!0})).pipe(ye(o=>{if("string"==typeof o&&"true"===o.trim())return!0;throw"Please do not change the default password."===o?new Error(this.translateService.instant("settings.password.errors.default-password")):new Error(this.translateService.instant("common.operation-error"))}),go(o=>((o=Je(o)).originalError&&401===o.originalError.status&&(o.translatableErrorMsg="settings.password.errors.bad-old-password"),cr(o))))}initialConfig(e){return this.apiService.post("create-account",{username:"admin",password:e},new _r({responseType:Fb.Text,ignoreAuth:!0})).pipe(ye(i=>{if("string"==typeof i&&"true"===i.trim())return!0;throw new Error(i)}),go(i=>((i=Je(i)).originalError&&500===i.originalError.status&&(i.translatableErrorMsg="settings.password.initial-config.error"),cr(i))))}userExists(){return this.apiService.get("user-exists",new _r({ignoreAuth:!0})).pipe(ye(e=>!0===e.exists),go(()=>ae(!0)))}static{this.\u0275fac=function(i){return new(i||t)(le(br),le(zo),le(Bf))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();class Ahe{}class Wn{constructor(){this.persistentScrollPosKey="scroll-pos"}static{this.mustCallNgOnInitSuper=Symbol("You must call super.ngOnInit.")}ngOnInit(){let n=this.getLocalValue(this.persistentScrollPosKey);n=n?n.value:"0",window.scrollTo(0,Number(n)),setTimeout(()=>window.scrollTo(0,Number(n)),1)}saveScrollPosition(n){this.saveLocalValue(this.persistentScrollPosKey,window.scrollY+"")}saveLocalValue(n,e){const i=window.history.state;i[n]=e,i[n+"_time"]=(new Date).getTime(),window.history.replaceState(i,"",window.location.pathname+window.location.hash)}getLocalValue(n){if(!window.history.state||void 0===window.history.state[n])return null;const e=new Ahe;return e.value=window.history.state[n],e.date=window.history.state[n+"_time"],e}static{this.\u0275fac=function(e){return new(e||Wn)}}static{this.\u0275cmp=se({type:Wn,selectors:[["app-page-base"]],hostBindings:function(e,i){1&e&&L("scroll",function(r){return i.saveScrollPosition(r)},zC)},standalone:!1,decls:0,vars:0,template:function(e,i){},encapsulation:2})}}let Rhe=(()=>{class t extends Wn{constructor(e,i){super(),this.authService=e,this.router=i}ngOnInit(){return this.verificationSubscription=this.authService.checkLogin().subscribe(e=>{this.router.navigate(e!==xa.NotLogged?["nodes"]:["login"],{replaceUrl:!0})},()=>{this.router.navigate(["nodes"],{replaceUrl:!0})}),super.ngOnInit()}ngOnDestroy(){this.verificationSubscription.unsubscribe()}static{this.\u0275fac=function(i){return new(i||t)(P(Vf),P(vt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-start"]],standalone:!1,features:[be],decls:2,vars:0,consts:[[1,"h-100","w-100"]],template:function(i,o){1&i&&(f(0,"div",0),B(1,"app-loading-indicator"),h())},dependencies:[vr],encapsulation:2})}}return t})(),y4=(()=>{class t{_renderer;_elementRef;onChange=e=>{};onTouched=()=>{};constructor(e,i){this._renderer=e,this._elementRef=i}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 \u0275fac=function(i){return new(i||t)(P(Kn),P(Ae))};static \u0275dir=de({type:t})}return t})(),Zl=(()=>{class t extends y4{static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275dir=de({type:t,features:[be]})}return t})();const yr=new Z(""),Fhe={provide:yr,useExisting:Vt(()=>rn),multi:!0},Bhe=new Z("");let rn=(()=>{class t extends y4{_compositionMode;_composing=!1;constructor(e,i,o){super(e,i),this._compositionMode=o,null==this._compositionMode&&(this._compositionMode=!function Lhe(){const t=Ys()?Ys().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 \u0275fac=function(i){return new(i||t)(P(Kn),P(Ae),P(Bhe,8))};static \u0275dir=de({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&&L("input",function(s){return o._handleInput(s.target.value)})("blur",function(){return o.onTouched()})("compositionstart",function(){return o._compositionStart()})("compositionend",function(s){return o._compositionEnd(s.target.value)})},standalone:!1,features:[ht([Fhe]),be]})}return t})();function VS(t){return null==t||0===HS(t)}function HS(t){return null==t?null:Array.isArray(t)||"string"==typeof t?t.length:t instanceof Set?t.size:null}const Ii=new Z(""),Sa=new Z(""),Vhe=/^(?=.{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 Ve{static min(n){return w4(n)}static max(n){return x4(n)}static required(n){return function S4(t){return VS(t.value)?{required:!0}:null}(n)}static requiredTrue(n){return function k4(t){return!0===t.value?null:{required:!0}}(n)}static email(n){return function D4(t){return VS(t.value)||Vhe.test(t.value)?null:{email:!0}}(n)}static minLength(n){return function T4(t){return n=>{const e=n.value?.length??HS(n.value);return null===e||0===e?null:e{if(VS(i.value))return null;const o=i.value;return n.test(o)?null:{pattern:{requiredPattern:e,actualValue:o}}}}(n)}static nullValidator(n){return null}static compose(n){return N4(n)}static composeAsync(n){return F4(n)}}function w4(t){return n=>{if(null==n.value||null==t)return null;const e=parseFloat(n.value);return!isNaN(e)&&e{if(null==n.value||null==t)return null;const e=parseFloat(n.value);return!isNaN(e)&&e>t?{max:{max:t,actual:n.value}}:null}}function M4(t){return n=>{const e=n.value?.length??HS(n.value);return null!==e&&e>t?{maxlength:{requiredLength:t,actualLength:e}}:null}}function Bb(t){return null}function I4(t){return null!=t}function P4(t){return Sh(t)?Un(t):t}function O4(t){let n={};return t.forEach(e=>{n=null!=e?{...n,...e}:n}),0===Object.keys(n).length?null:n}function A4(t,n){return n.map(e=>e(t))}function R4(t){return t.map(n=>function Hhe(t){return!t.validate}(n)?n:e=>n.validate(e))}function N4(t){if(!t)return null;const n=t.filter(I4);return 0==n.length?null:function(e){return O4(A4(e,n))}}function jS(t){return null!=t?N4(R4(t)):null}function F4(t){if(!t)return null;const n=t.filter(I4);return 0==n.length?null:function(e){return kb(A4(e,n).map(P4)).pipe(ye(O4))}}function US(t){return null!=t?F4(R4(t)):null}function L4(t,n){return null===t?[n]:Array.isArray(t)?[...t,n]:[t,n]}function B4(t){return t._rawValidators}function V4(t){return t._rawAsyncValidators}function zS(t){return t?Array.isArray(t)?t:[t]:[]}function Vb(t,n){return Array.isArray(t)?t.includes(n):t===n}function H4(t,n){const e=zS(n);return zS(t).forEach(o=>{Vb(e,o)||e.push(o)}),e}function j4(t,n){return zS(n).filter(e=>!Vb(t,e))}class U4{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}_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators=[];_rawAsyncValidators=[];_setValidators(n){this._rawValidators=n||[],this._composedValidatorFn=jS(this._rawValidators)}_setAsyncValidators(n){this._rawAsyncValidators=n||[],this._composedAsyncValidatorFn=US(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_onDestroyCallbacks=[];_registerOnDestroy(n){this._onDestroyCallbacks.push(n)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(n=>n()),this._onDestroyCallbacks=[]}reset(n=void 0){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 Hi extends U4{name;get formDirective(){return null}get path(){return null}}class Yr extends U4{_parent=null;name=null;valueAccessor=null}class z4{_cd;constructor(n){this._cd=n}get isTouched(){return this._cd?.control?._touched?.(),!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return this._cd?.control?._pristine?.(),!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return this._cd?.control?._status?.(),!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return this._cd?._submitted?.(),!!this._cd?.submitted}}let sn=(()=>{class t extends z4{constructor(e){super(e)}static \u0275fac=function(i){return new(i||t)(P(Yr,2))};static \u0275dir=de({type:t,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,o){2&i&&Ke("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)},standalone:!1,features:[be]})}return t})(),yn=(()=>{class t extends z4{constructor(e){super(e)}static \u0275fac=function(i){return new(i||t)(P(Hi,10))};static \u0275dir=de({type:t,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["","formArray",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(i,o){2&i&&Ke("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)},standalone:!1,features:[be]})}return t})();const Hf="VALID",jb="INVALID",Yd="PENDING",jf="DISABLED";class Xd{}class G4 extends Xd{value;source;constructor(n,e){super(),this.value=n,this.source=e}}class GS extends Xd{pristine;source;constructor(n,e){super(),this.pristine=n,this.source=e}}class qS extends Xd{touched;source;constructor(n,e){super(),this.touched=n,this.source=e}}class Ub extends Xd{status;source;constructor(n,e){super(),this.status=n,this.source=e}}class q4 extends Xd{source;constructor(n){super(),this.source=n}}class KS extends Xd{source;constructor(n){super(),this.source=n}}function YS(t){return(zb(t)?t.validators:t)||null}function XS(t,n){return(zb(n)?n.asyncValidators:t)||null}function zb(t){return null!=t&&!Array.isArray(t)&&"object"==typeof t}function K4(t,n,e){const i=t.controls;if(!(n?Object.keys(i):i).length)throw new X(1e3,"");if(!i[e])throw new X(1001,"")}function Y4(t,n,e){t._forEachChild((i,o)=>{if(void 0===e[o])throw new X(1002,"")})}class $b{_pendingDirty=!1;_hasOwnPendingAsyncValidator=null;_pendingTouched=!1;_onCollectionChange=()=>{};_updateOn;_parent=null;_asyncValidationSubscription;_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators;_rawAsyncValidators;value;constructor(n,e){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 status(){return nt(this.statusReactive)}set status(n){nt(()=>this.statusReactive.set(n))}_status=Ti(()=>this.statusReactive());statusReactive=yt(void 0);get valid(){return this.status===Hf}get invalid(){return this.status===jb}get pending(){return this.status==Yd}get disabled(){return this.status===jf}get enabled(){return this.status!==jf}errors;get pristine(){return nt(this.pristineReactive)}set pristine(n){nt(()=>this.pristineReactive.set(n))}_pristine=Ti(()=>this.pristineReactive());pristineReactive=yt(!0);get dirty(){return!this.pristine}get touched(){return nt(this.touchedReactive)}set touched(n){nt(()=>this.touchedReactive.set(n))}_touched=Ti(()=>this.touchedReactive());touchedReactive=yt(!1);get untouched(){return!this.touched}_events=new pe;events=this._events.asObservable();valueChanges;statusChanges;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(H4(n,this._rawValidators))}addAsyncValidators(n){this.setAsyncValidators(H4(n,this._rawAsyncValidators))}removeValidators(n){this.setValidators(j4(n,this._rawValidators))}removeAsyncValidators(n){this.setAsyncValidators(j4(n,this._rawAsyncValidators))}hasValidator(n){return Vb(this._rawValidators,n)}hasAsyncValidator(n){return Vb(this._rawAsyncValidators,n)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(n={}){const e=!1===this.touched;this.touched=!0;const i=n.sourceControl??this;n.onlySelf||this._parent?.markAsTouched({...n,sourceControl:i}),e&&!1!==n.emitEvent&&this._events.next(new qS(!0,i))}markAllAsDirty(n={}){this.markAsDirty({onlySelf:!0,emitEvent:n.emitEvent,sourceControl:this}),this._forEachChild(e=>e.markAllAsDirty(n))}markAllAsTouched(n={}){this.markAsTouched({onlySelf:!0,emitEvent:n.emitEvent,sourceControl:this}),this._forEachChild(e=>e.markAllAsTouched(n))}markAsUntouched(n={}){const e=!0===this.touched;this.touched=!1,this._pendingTouched=!1;const i=n.sourceControl??this;this._forEachChild(o=>{o.markAsUntouched({onlySelf:!0,emitEvent:n.emitEvent,sourceControl:i})}),n.onlySelf||this._parent?._updateTouched(n,i),e&&!1!==n.emitEvent&&this._events.next(new qS(!1,i))}markAsDirty(n={}){const e=!0===this.pristine;this.pristine=!1;const i=n.sourceControl??this;n.onlySelf||this._parent?.markAsDirty({...n,sourceControl:i}),e&&!1!==n.emitEvent&&this._events.next(new GS(!1,i))}markAsPristine(n={}){const e=!1===this.pristine;this.pristine=!0,this._pendingDirty=!1;const i=n.sourceControl??this;this._forEachChild(o=>{o.markAsPristine({onlySelf:!0,emitEvent:n.emitEvent})}),n.onlySelf||this._parent?._updatePristine(n,i),e&&!1!==n.emitEvent&&this._events.next(new GS(!0,i))}markAsPending(n={}){this.status=Yd;const e=n.sourceControl??this;!1!==n.emitEvent&&(this._events.next(new Ub(this.status,e)),this.statusChanges.emit(this.status)),n.onlySelf||this._parent?.markAsPending({...n,sourceControl:e})}disable(n={}){const e=this._parentMarkedDirty(n.onlySelf);this.status=jf,this.errors=null,this._forEachChild(o=>{o.disable({...n,onlySelf:!0})}),this._updateValue();const i=n.sourceControl??this;!1!==n.emitEvent&&(this._events.next(new G4(this.value,i)),this._events.next(new Ub(this.status,i)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...n,skipPristineCheck:e},this),this._onDisabledChange.forEach(o=>o(!0))}enable(n={}){const e=this._parentMarkedDirty(n.onlySelf);this.status=Hf,this._forEachChild(i=>{i.enable({...n,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent}),this._updateAncestors({...n,skipPristineCheck:e},this),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(n,e){n.onlySelf||(this._parent?.updateValueAndValidity(n),n.skipPristineCheck||this._parent?._updatePristine({},e),this._parent?._updateTouched({},e))}setParent(n){this._parent=n}getRawValue(){return this.value}updateValueAndValidity(n={}){if(this._setInitialStatus(),this._updateValue(),this.enabled){const i=this._cancelExistingSubscription();this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===Hf||this.status===Yd)&&this._runAsyncValidator(i,n.emitEvent)}const e=n.sourceControl??this;!1!==n.emitEvent&&(this._events.next(new G4(this.value,e)),this._events.next(new Ub(this.status,e)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),n.onlySelf||this._parent?.updateValueAndValidity({...n,sourceControl:e})}_updateTreeValidity(n={emitEvent:!0}){this._forEachChild(e=>e._updateTreeValidity(n)),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?jf:Hf}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(n,e){if(this.asyncValidator){this.status=Yd,this._hasOwnPendingAsyncValidator={emitEvent:!1!==e,shouldHaveEmitted:!1!==n};const i=P4(this.asyncValidator(this));this._asyncValidationSubscription=i.subscribe(o=>{this._hasOwnPendingAsyncValidator=null,this.setErrors(o,{emitEvent:e,shouldHaveEmitted:n})})}}_cancelExistingSubscription(){if(this._asyncValidationSubscription){this._asyncValidationSubscription.unsubscribe();const n=(this._hasOwnPendingAsyncValidator?.emitEvent||this._hasOwnPendingAsyncValidator?.shouldHaveEmitted)??!1;return this._hasOwnPendingAsyncValidator=null,n}return!1}setErrors(n,e={}){this.errors=n,this._updateControlsErrors(!1!==e.emitEvent,this,e.shouldHaveEmitted)}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?.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,e,i){this.status=this._calculateStatus(),n&&this.statusChanges.emit(this.status),(n||i)&&this._events.next(new Ub(this.status,e)),this._parent&&this._parent._updateControlsErrors(n,e,i)}_initObservables(){this.valueChanges=new ve,this.statusChanges=new ve}_calculateStatus(){return this._allControlsDisabled()?jf:this.errors?jb:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(Yd)?Yd:this._anyControlsHaveStatus(jb)?jb:Hf}_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,e){const i=!this._anyControlsDirty(),o=this.pristine!==i;this.pristine=i,n.onlySelf||this._parent?._updatePristine(n,e),o&&this._events.next(new GS(this.pristine,e))}_updateTouched(n={},e){this.touched=this._anyControlsTouched(),this._events.next(new qS(this.touched,e)),n.onlySelf||this._parent?._updateTouched(n,e)}_onDisabledChange=[];_registerOnCollectionChange(n){this._onCollectionChange=n}_setUpdateStrategy(n){zb(n)&&null!=n.updateOn&&(this._updateOn=n.updateOn)}_parentMarkedDirty(n){return!n&&!!this._parent?.dirty&&!this._parent._anyControlsDirty()}_find(n){return null}_assignValidators(n){this._rawValidators=Array.isArray(n)?n.slice():n,this._composedValidatorFn=function qhe(t){return Array.isArray(t)?jS(t):t||null}(this._rawValidators)}_assignAsyncValidators(n){this._rawAsyncValidators=Array.isArray(n)?n.slice():n,this._composedAsyncValidatorFn=function Khe(t){return Array.isArray(t)?US(t):t||null}(this._rawAsyncValidators)}}class Zd extends $b{constructor(n,e,i){super(YS(e),XS(i,e)),this.controls=n,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;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={}){Y4(this,0,n),Object.keys(n).forEach(i=>{K4(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,{...e,onlySelf:!0})}),this._updatePristine(e,this),this._updateTouched(e,this),this.updateValueAndValidity(e),!1!==e?.emitEvent&&this._events.next(new KS(this))}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}}const ZS=Zd;class X4 extends Zd{}const Ql=new Z("",{factory:()=>Uf}),Uf="always";function Wb(t,n){return[...n.path,t]}function zf(t,n,e=Uf){QS(t,n),n.valueAccessor.writeValue(t.value),(t.disabled||"always"===e)&&n.valueAccessor.setDisabledState?.(t.disabled),function Xhe(t,n){n.valueAccessor.registerOnChange(e=>{t._pendingValue=e,t._pendingChange=!0,t._pendingDirty=!0,"change"===t.updateOn&&Z4(t,n)})}(t,n),function Qhe(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 Zhe(t,n){n.valueAccessor.registerOnTouched(()=>{t._pendingTouched=!0,"blur"===t.updateOn&&t._pendingChange&&Z4(t,n),"submit"!==t.updateOn&&t.markAsTouched()})}(t,n),function Yhe(t,n){if(n.valueAccessor.setDisabledState){const e=i=>{n.valueAccessor.setDisabledState(i)};t.registerOnDisabledChange(e),n._registerOnDestroy(()=>{t._unregisterOnDisabledChange(e)})}}(t,n)}function Gb(t,n,e=!0){const i=()=>{};n?.valueAccessor?.registerOnChange(i),n?.valueAccessor?.registerOnTouched(i),Kb(t,n),t&&(n._invokeOnDestroyCallbacks(),t._registerOnCollectionChange(()=>{}))}function qb(t,n){t.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(n)})}function QS(t,n){const e=B4(t);null!==n.validator?t.setValidators(L4(e,n.validator)):"function"==typeof e&&t.setValidators([e]);const i=V4(t);null!==n.asyncValidator?t.setAsyncValidators(L4(i,n.asyncValidator)):"function"==typeof i&&t.setAsyncValidators([i]);const o=()=>t.updateValueAndValidity();qb(n._rawValidators,o),qb(n._rawAsyncValidators,o)}function Kb(t,n){let e=!1;if(null!==t){if(null!==n.validator){const o=B4(t);if(Array.isArray(o)&&o.length>0){const r=o.filter(s=>s!==n.validator);r.length!==o.length&&(e=!0,t.setValidators(r))}}if(null!==n.asyncValidator){const o=V4(t);if(Array.isArray(o)&&o.length>0){const r=o.filter(s=>s!==n.asyncValidator);r.length!==o.length&&(e=!0,t.setAsyncValidators(r))}}}const i=()=>{};return qb(n._rawValidators,i),qb(n._rawAsyncValidators,i),e}function Z4(t,n){t._pendingDirty&&t.markAsDirty(),t.setValue(t._pendingValue,{emitModelToViewChange:!1}),n.viewToModelUpdate(t._pendingValue),t._pendingChange=!1}function Q4(t,n){QS(t,n)}function ek(t,n){if(!t.hasOwnProperty("model"))return!1;const e=t.model;return!!e.isFirstChange()||!Object.is(n,e.currentValue)}function J4(t,n){t._syncPendingControls(),n.forEach(e=>{const i=e.control;"submit"===i.updateOn&&i._pendingChange&&(e.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}function tk(t,n){if(!n)return null;let e,i,o;return Array.isArray(n),n.forEach(r=>{r.constructor===rn?e=r:function tfe(t){return Object.getPrototypeOf(t.constructor)===Zl}(r)?i=r:o=r}),o||i||e||null}const ife={provide:Hi,useExisting:Vt(()=>Qd)},$f=Promise.resolve();let Qd=(()=>{class t extends Hi{callSetDisabledState;get submitted(){return nt(this.submittedReactive)}_submitted=Ti(()=>this.submittedReactive());submittedReactive=yt(!1);_directives=new Set;form;ngSubmit=new ve;options;constructor(e,i,o){super(),this.callSetDisabledState=o,this.form=new Zd({},jS(e),US(i))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(e){$f.then(()=>{const i=this._findContainer(e.path);e.control=i.registerControl(e.name,e.control),zf(e.control,e,this.callSetDisabledState),e.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(e)})}getControl(e){return this.form.get(e.path)}removeControl(e){$f.then(()=>{this._findContainer(e.path)?.removeControl(e.name),this._directives.delete(e)})}addFormGroup(e){$f.then(()=>{const i=this._findContainer(e.path),o=new Zd({});Q4(o,e),i.registerControl(e.name,o),o.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(e){$f.then(()=>{this._findContainer(e.path)?.removeControl?.(e.name)})}getFormGroup(e){return this.form.get(e.path)}updateModel(e,i){$f.then(()=>{this.form.get(e.path).setValue(i)})}setValue(e){this.control.setValue(e)}onSubmit(e){return this.submittedReactive.set(!0),J4(this.form,this._directives),this.ngSubmit.emit(e),this.form._events.next(new q4(this.control)),"dialog"===e?.target?.method}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this.submittedReactive.set(!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 \u0275fac=function(i){return new(i||t)(P(Ii,10),P(Sa,10),P(Ql,8))};static \u0275dir=de({type:t,selectors:[["form",3,"ngNoForm","",3,"formGroup","",3,"formArray",""],["ng-form"],["","ngForm",""]],hostBindings:function(i,o){1&i&&L("submit",function(s){return o.onSubmit(s)})("reset",function(){return o.onReset()})},inputs:{options:[0,"ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[ht([ife]),be]})}return t})();function eV(t,n){const e=t.indexOf(n);e>-1&&t.splice(e,1)}function tV(t){return"object"==typeof t&&null!==t&&2===Object.keys(t).length&&"value"in t&&"disabled"in t}const Jd=class extends $b{defaultValue=null;_onChange=[];_pendingValue;_pendingChange=!1;constructor(n=null,e,i){super(YS(e),XS(i,e)),this._applyFormState(n),this._setUpdateStrategy(e),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),zb(e)&&(e.nonNullable||e.initialValueIsDefault)&&(this.defaultValue=tV(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),e.overwriteDefaultValue&&(this.defaultValue=this.value),this._pendingChange=!1,!1!==e?.emitEvent&&this._events.next(new KS(this))}_updateValue(){}_anyControls(n){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(n){this._onChange.push(n)}_unregisterOnChange(n){eV(this._onChange,n)}registerOnDisabledChange(n){this._onDisabledChange.push(n)}_unregisterOnDisabledChange(n){eV(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){tV(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}},eu=Jd;let Yb=(()=>{class t extends Hi{_parent;ngOnInit(){this._checkParentType(),this.formDirective.addFormGroup(this)}ngOnDestroy(){this.formDirective?.removeFormGroup(this)}get control(){return this.formDirective.getFormGroup(this)}get path(){return Wb(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275dir=de({type:t,standalone:!1,features:[be]})}return t})();const lfe={provide:Yr,useExisting:Vt(()=>Zb)},nV=Promise.resolve();let Zb=(()=>{class t extends Yr{_changeDetectorRef;callSetDisabledState;control=new Jd;static ngAcceptInputType_isDisabled;_registered=!1;viewModel;name="";isDisabled;model;options;update=new ve;constructor(e,i,o,r,s,a){super(),this._changeDetectorRef=s,this.callSetDisabledState=a,this._parent=e,this._setValidators(i),this._setAsyncValidators(o),this.valueAccessor=tk(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),ek(e,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){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(){zf(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._checkName()}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(e){nV.then(()=>{this.control.setValue(e,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(e){const i=e.isDisabled.currentValue,o=0!==i&&Ie(i);nV.then(()=>{o&&!this.control.disabled?this.control.disable():!o&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(e){return this._parent?Wb(e,this._parent):[e]}static \u0275fac=function(i){return new(i||t)(P(Hi,9),P(Ii,10),P(Sa,10),P(yr,10),P(Pn,8),P(Ql,8))};static \u0275dir=de({type:t,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"],options:[0,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],standalone:!1,features:[ht([lfe]),be,yi]})}return t})(),Cn=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""],standalone:!1})}return t})();const cfe={provide:yr,useExisting:Vt(()=>Wf),multi:!0};let Wf=(()=>{class t extends Zl{writeValue(e){this.setProperty("value",e??"")}registerOnChange(e){this.onChange=i=>{e(""==i?null:parseFloat(i))}}static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275dir=de({type:t,selectors:[["input","type","number","formControlName",""],["input","type","number","formControl",""],["input","type","number","ngModel",""]],hostBindings:function(i,o){1&i&&L("input",function(s){return o.onChange(s.target.value)})("blur",function(){return o.onTouched()})},standalone:!1,features:[ht([cfe]),be]})}return t})();class rV extends $b{constructor(n,e,i){super(YS(e),XS(i,e)),this.controls=n,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;at(n){return this.controls[this._adjustIndex(n)]}push(n,e={}){Array.isArray(n)?n.forEach(i=>{this.controls.push(i),this._registerControl(i)}):(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={}){Y4(this,0,n),n.forEach((i,o)=>{K4(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],{...e,onlySelf:!0})}),this._updatePristine(e,this),this._updateTouched(e,this),this.updateValueAndValidity(e),!1!==e?.emitEvent&&this._events.next(new KS(this))}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}}let Qb=(()=>{class t extends Hi{callSetDisabledState;get submitted(){return nt(this._submittedReactive)}set submitted(e){this._submittedReactive.set(e)}_submitted=Ti(()=>this._submittedReactive());_submittedReactive=yt(!1);_oldForm;_onCollectionChange=()=>this._updateDomValue();directives=[];constructor(e,i,o){super(),this.callSetDisabledState=o,this._setValidators(e),this._setAsyncValidators(i)}ngOnChanges(e){this.onChanges(e)}ngOnDestroy(){this.onDestroy()}onChanges(e){this._checkFormPresent(),e.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}onDestroy(){this.form&&(Kb(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get path(){return[]}addControl(e){const i=this.form.get(e.path);return zf(i,e,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(e),i}getControl(e){return this.form.get(e.path)}removeControl(e){Gb(e.control||null,e,!1),function nfe(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)}getFormArray(e){return this.form.get(e.path)}addFormArray(e){this._setUpFormContainer(e)}removeFormArray(e){this._cleanUpFormContainer(e)}updateModel(e,i){this.form.get(e.path).setValue(i)}onReset(){this.resetForm()}resetForm(e=void 0,i={}){this.form.reset(e,i),this._submittedReactive.set(!1)}onSubmit(e){return this.submitted=!0,J4(this.form,this.directives),this.ngSubmit.emit(e),this.form._events.next(new q4(this.control)),"dialog"===e?.target?.method}_updateDomValue(){this.directives.forEach(e=>{const i=e.control,o=this.form.get(e.path);i!==o&&(Gb(i||null,e),(t=>t instanceof Jd)(o)&&(zf(o,e,this.callSetDisabledState),e.control=o))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(e){const i=this.form.get(e.path);Q4(i,e),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(e){const i=this.form?.get(e.path);i&&function Jhe(t,n){return Kb(t,n)}(i,e)&&i.updateValueAndValidity({emitEvent:!1})}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm?._registerOnCollectionChange(()=>{})}_updateValidators(){QS(this.form,this),this._oldForm&&Kb(this._oldForm,this)}_checkFormPresent(){}static \u0275fac=function(i){return new(i||t)(P(Ii,10),P(Sa,10),P(Ql,8))};static \u0275dir=de({type:t,features:[be,yi]})}return t})();const nk=new Z(""),mfe={provide:Hi,useExisting:Vt(()=>Jl)};let Jl=(()=>{class t extends Yb{name=null;constructor(e,i,o){super(),this._parent=e,this._setValidators(i),this._setAsyncValidators(o)}_checkParentType(){lV(this._parent)}static \u0275fac=function(i){return new(i||t)(P(Hi,13),P(Ii,10),P(Sa,10))};static \u0275dir=de({type:t,selectors:[["","formGroupName",""]],inputs:{name:[0,"formGroupName","name"]},standalone:!1,features:[ht([mfe]),be]})}return t})();const gfe={provide:Hi,useExisting:Vt(()=>tu)};let tu=(()=>{class t extends Hi{_parent;name=null;constructor(e,i,o){super(),this._parent=e,this._setValidators(i),this._setAsyncValidators(o)}ngOnInit(){lV(this._parent),this.formDirective.addFormArray(this)}ngOnDestroy(){this.formDirective?.removeFormArray(this)}get control(){return this.formDirective.getFormArray(this)}get formDirective(){return this._parent?this._parent.formDirective:null}get path(){return Wb(null==this.name?this.name:this.name.toString(),this._parent)}static \u0275fac=function(i){return new(i||t)(P(Hi,13),P(Ii,10),P(Sa,10))};static \u0275dir=de({type:t,selectors:[["","formArrayName",""]],inputs:{name:[0,"formArrayName","name"]},standalone:!1,features:[ht([gfe]),be]})}return t})();function lV(t){return!(t instanceof Jl||t instanceof Qb||t instanceof tu)}const _fe={provide:Yr,useExisting:Vt(()=>fn)};let fn=(()=>{class t extends Yr{_ngModelWarningConfig;_added=!1;viewModel;control;name=null;set isDisabled(e){}model;update=new ve;static _ngModelWarningSentOnce=!1;_ngModelWarningSent=!1;constructor(e,i,o,r,s){super(),this._ngModelWarningConfig=s,this._parent=e,this._setValidators(i),this._setAsyncValidators(o),this.valueAccessor=tk(0,r)}ngOnChanges(e){this._added||this._setUpControl(),ek(e,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective?.removeControl(this)}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}get path(){return Wb(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_setUpControl(){this.control=this.formDirective.addControl(this),this._added=!0}static \u0275fac=function(i){return new(i||t)(P(Hi,13),P(Ii,10),P(Sa,10),P(yr,10),P(nk,8))};static \u0275dir=de({type:t,selectors:[["","formControlName",""]],inputs:{name:[0,"formControlName","name"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},standalone:!1,features:[ht([_fe]),be,yi]})}return t})();const bfe={provide:Hi,useExisting:Vt(()=>Xt)};let Xt=(()=>{class t extends Qb{form=null;ngSubmit=new ve;get control(){return this.form}static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275dir=de({type:t,selectors:[["","formGroup",""]],hostBindings:function(i,o){1&i&&L("submit",function(s){return o.onSubmit(s)})("reset",function(){return o.onReset()})},inputs:{form:[0,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[ht([bfe]),be]})}return t})();function hV(t){return"number"==typeof t?t:parseFloat(t)}let ec=(()=>{class t{_validator=Bb;_onChange;_enabled;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):Bb,this._onChange?.()}}validate(e){return this._validator(e)}registerOnValidatorChange(e){this._onChange=e}enabled(e){return null!=e}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,features:[yi]})}return t})();const kfe={provide:Ii,useExisting:Vt(()=>rk),multi:!0};let rk=(()=>{class t extends ec{max;inputName="max";normalizeInput=e=>hV(e);createValidator=e=>x4(e);static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275dir=de({type:t,selectors:[["input","type","number","max","","formControlName",""],["input","type","number","max","","formControl",""],["input","type","number","max","","ngModel",""]],hostVars:1,hostBindings:function(i,o){2&i&&Ze("max",o._enabled?o.max:null)},inputs:{max:"max"},standalone:!1,features:[ht([kfe]),be]})}return t})();const Dfe={provide:Ii,useExisting:Vt(()=>sk),multi:!0};let sk=(()=>{class t extends ec{min;inputName="min";normalizeInput=e=>hV(e);createValidator=e=>w4(e);static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275dir=de({type:t,selectors:[["input","type","number","min","","formControlName",""],["input","type","number","min","","formControl",""],["input","type","number","min","","ngModel",""]],hostVars:1,hostBindings:function(i,o){2&i&&Ze("min",o._enabled?o.min:null)},inputs:{min:"min"},standalone:!1,features:[ht([Dfe]),be]})}return t})();const Pfe={provide:Ii,useExisting:Vt(()=>ji),multi:!0};let ji=(()=>{class t extends ec{maxlength;inputName="maxlength";normalizeInput=e=>function uV(t){return"number"==typeof t?t:parseInt(t,10)}(e);createValidator=e=>M4(e);static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275dir=de({type:t,selectors:[["","maxlength","","formControlName",""],["","maxlength","","formControl",""],["","maxlength","","ngModel",""]],hostVars:1,hostBindings:function(i,o){2&i&&Ze("maxlength",o._enabled?o.maxlength:null)},inputs:{maxlength:"maxlength"},standalone:!1,features:[ht([Pfe]),be]})}return t})(),_V=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({})}return t})();function bV(t){return!!t&&(void 0!==t.asyncValidators||void 0!==t.validators||void 0!==t.updateOn)}let vV=(()=>{class t{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 bV(i)?r=i:null!==i&&(r.validators=i.validator,r.asyncValidators=i.asyncValidator),new Zd(o,r)}record(e,i=null){const o=this._reduceControls(e);return new X4(o,i)}control(e,i,o){let r={};return this.useNonNullable?(bV(i)?r=i:(r.validators=i,r.asyncValidators=o),new Jd(e,{...r,nonNullable:!0})):new Jd(e,i,o)}array(e,i,o){const r=e.map(s=>this._createControl(s));return new rV(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 Jd||e instanceof $b?e:Array.isArray(e)?this.control(e[0],e.length>1?e[1]:null,e.length>2?e[2]:null):this.control(e)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),pi=(()=>{class t extends vV{group(e,i=null){return super.group(e,i)}control(e,i,o){return super.control(e,i,o)}array(e,i,o){return super.array(e,i,o)}static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Afe=(()=>{class t{static withConfig(e){return{ngModule:t,providers:[{provide:Ql,useValue:e.callSetDisabledState??Uf}]}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({imports:[_V]})}return t})(),Rfe=(()=>{class t{static withConfig(e){return{ngModule:t,providers:[{provide:nk,useValue:e.warnOnNgModelWithFormControl??"always"},{provide:Ql,useValue:e.callSetDisabledState??Uf}]}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({imports:[_V]})}return t})();function nu(t){return null!=t&&"false"!=`${t}`}class Ffe{_box;_destroyed=new pe;_resizeSubject=new pe;_resizeObserver;_elementObservables=new Map;constructor(n){this._box=n,typeof ResizeObserver<"u"&&(this._resizeObserver=new ResizeObserver(e=>this._resizeSubject.next(e)))}observe(n){return this._elementObservables.has(n)||this._elementObservables.set(n,new Rt(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(vn(e=>e.some(i=>i.target===n)),PS({bufferSize:1,refCount:!0}),on(this._destroyed))),this._elementObservables.get(n)}destroy(){this._destroyed.next(),this._destroyed.complete(),this._resizeSubject.complete(),this._elementObservables.clear()}}let yV=(()=>{class t{_cleanupErrorListener;_observers=new Map;_ngZone=D(ge);constructor(){}ngOnDestroy(){for(const[,e]of this._observers)e.destroy();this._observers.clear(),this._cleanupErrorListener?.()}observe(e,i){const o=i?.box||"content-box";return this._observers.has(o)||this._observers.set(o,new Ffe(o)),this._observers.get(o).observe(e)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Lfe=["notch"],Bfe=["matFormFieldNotchedOutline",""],Vfe=["*"],CV=["iconPrefixContainer"],wV=["textPrefixContainer"],xV=["iconSuffixContainer"],SV=["textSuffixContainer"],Hfe=["textField"],jfe=["*",[["mat-label"]],[["","matPrefix",""],["","matIconPrefix",""]],[["","matTextPrefix",""]],[["","matTextSuffix",""]],[["","matSuffix",""],["","matIconSuffix",""]],[["mat-error"],["","matError",""]],[["mat-hint",3,"align","end"]],[["mat-hint","align","end"]]],Ufe=["*","mat-label","[matPrefix], [matIconPrefix]","[matTextPrefix]","[matTextSuffix]","[matSuffix], [matIconSuffix]","mat-error, [matError]","mat-hint:not([align='end'])","mat-hint[align='end']"];function zfe(t,n){1&t&&B(0,"span",21)}function $fe(t,n){if(1&t&&(f(0,"label",20),At(1,1),S(2,zfe,1,0,"span",21),h()),2&t){const e=C(2);v("floating",e._shouldLabelFloat())("monitorResize",e._hasOutline())("id",e._labelId),Ze("for",e._control.disableAutomaticLabeling?null:e._control.id),d(2),k(!e.hideRequiredMarker&&e._control.required?2:-1)}}function Wfe(t,n){1&t&&S(0,$fe,3,5,"label",20),2&t&&k(C()._hasFloatingLabel()?0:-1)}function Gfe(t,n){1&t&&B(0,"div",7)}function qfe(t,n){}function Kfe(t,n){1&t&&tt(0,qfe,0,0,"ng-template",13),2&t&&(C(2),v("ngTemplateOutlet",Vn(1)))}function Yfe(t,n){if(1&t&&(f(0,"div",9),S(1,Kfe,1,1,null,13),h()),2&t){const e=C();v("matFormFieldNotchedOutlineOpen",e._shouldLabelFloat()),d(),k(e._forceDisplayInfixLabel()?-1:1)}}function Xfe(t,n){1&t&&(f(0,"div",10,2),At(2,2),h())}function Zfe(t,n){1&t&&(f(0,"div",11,3),At(2,3),h())}function Qfe(t,n){}function Jfe(t,n){1&t&&tt(0,Qfe,0,0,"ng-template",13),2&t&&(C(),v("ngTemplateOutlet",Vn(1)))}function epe(t,n){1&t&&(f(0,"div",14,4),At(2,4),h())}function tpe(t,n){1&t&&(f(0,"div",15,5),At(2,5),h())}function npe(t,n){1&t&&B(0,"div",16)}function ipe(t,n){1&t&&(f(0,"div",18),At(1,6),h())}function ope(t,n){if(1&t&&(f(0,"mat-hint",22),m(1),h()),2&t){const e=C(2);v("id",e._hintLabelId),d(),O(e.hintLabel)}}function rpe(t,n){if(1&t&&(f(0,"div",19),S(1,ope,2,2,"mat-hint",22),At(2,7),B(3,"div",23),At(4,8),h()),2&t){const e=C();d(),k(e.hintLabel?1:-1)}}let Jb=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["mat-label"]]})}return t})();const kV=new Z("MatError");let Es=(()=>{class t{id=D(oi).getId("mat-mdc-error-");constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["mat-error"],["","matError",""]],hostAttrs:[1,"mat-mdc-form-field-error","mat-mdc-form-field-bottom-align"],hostVars:1,hostBindings:function(i,o){2&i&&Lr("id",o.id)},inputs:{id:"id"},features:[ht([{provide:kV,useExisting:t}])]})}return t})(),lk=(()=>{class t{align="start";id=D(oi).getId("mat-mdc-hint-");static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({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&&(Lr("id",o.id),Ze("align",null),Ke("mat-mdc-form-field-hint-end","end"===o.align))},inputs:{align:"align",id:"id"}})}return t})();const spe=new Z("MatPrefix"),ape=new Z("MatSuffix"),DV=new Z("FloatingLabelParent");let TV=(()=>{class t{_elementRef=D(Ae);get floating(){return this._floating}set floating(e){this._floating=e,this.monitorResize&&this._handleResize()}_floating=!1;get monitorResize(){return this._monitorResize}set monitorResize(e){this._monitorResize=e,this._monitorResize?this._subscribeToResize():this._resizeSubscription.unsubscribe()}_monitorResize=!1;_resizeObserver=D(yV);_ngZone=D(ge);_parent=D(DV);_resizeSubscription=new mt;constructor(){}ngOnDestroy(){this._resizeSubscription.unsubscribe()}getWidth(){return function lpe(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 \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["label","matFormFieldFloatingLabel",""]],hostAttrs:[1,"mdc-floating-label","mat-mdc-floating-label"],hostVars:2,hostBindings:function(i,o){2&i&&Ke("mdc-floating-label--float-above",o.floating)},inputs:{floating:"floating",monitorResize:"monitorResize"}})}return t})();const MV="mdc-line-ripple--active",ev="mdc-line-ripple--deactivating";let EV=(()=>{class t{_elementRef=D(Ae);_cleanupTransitionEnd;constructor(){const e=D(ge),i=D(Kn);e.runOutsideAngular(()=>{this._cleanupTransitionEnd=i.listen(this._elementRef.nativeElement,"transitionend",this._handleTransitionEnd)})}activate(){const e=this._elementRef.nativeElement.classList;e.remove(ev),e.add(MV)}deactivate(){this._elementRef.nativeElement.classList.add(ev)}_handleTransitionEnd=e=>{const i=this._elementRef.nativeElement.classList,o=i.contains(ev);"opacity"===e.propertyName&&o&&i.remove(MV,ev)};ngOnDestroy(){this._cleanupTransitionEnd()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["div","matFormFieldLineRipple",""]],hostAttrs:[1,"mdc-line-ripple"]})}return t})(),IV=(()=>{class t{_elementRef=D(Ae);_ngZone=D(ge);open=!1;_notch;ngAfterViewInit(){const e=this._elementRef.nativeElement,i=e.querySelector(".mdc-floating-label");i?(e.classList.add("mdc-notched-outline--upgraded"),"function"==typeof requestAnimationFrame&&(i.style.transitionDuration="0s",this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>i.style.transitionDuration="")}))):e.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)`:""}_setMaxWidth(e){this._notch.nativeElement.style.setProperty("--mat-form-field-notch-max-width",`calc(100% - ${e}px)`)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["div","matFormFieldNotchedOutline",""]],viewQuery:function(i,o){if(1&i&&rt(Lfe,5),2&i){let r;ue(r=he())&&(o._notch=r.first)}},hostAttrs:[1,"mdc-notched-outline"],hostVars:2,hostBindings:function(i,o){2&i&&Ke("mdc-notched-outline--notched",o.open)},inputs:{open:[0,"matFormFieldNotchedOutlineOpen","open"]},attrs:Bfe,ngContentSelectors:Vfe,decls:5,vars:0,consts:[["notch",""],[1,"mat-mdc-notch-piece","mdc-notched-outline__leading"],[1,"mat-mdc-notch-piece","mdc-notched-outline__notch"],[1,"mat-mdc-notch-piece","mdc-notched-outline__trailing"]],template:function(i,o){1&i&&(Si(),la(0,"div",1),gs(1,"div",2,0),At(3),Tl(),la(4,"div",3))},encapsulation:2,changeDetection:0})}return t})(),ck=(()=>{class t{value=null;stateChanges;id;placeholder;ngControl=null;focused=!1;empty=!1;shouldLabelFloat=!1;required=!1;disabled=!1;errorState=!1;controlType;autofilled;userAriaDescribedBy;disableAutomaticLabeling;describedByIds;static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t})}return t})();const dk=new Z("MatFormField"),cpe=new Z("MAT_FORM_FIELD_DEFAULT_OPTIONS");let iu,wn=(()=>{class t{_elementRef=D(Ae);_changeDetectorRef=D(Pn);_platform=D($n);_idGenerator=D(oi);_ngZone=D(ge);_defaults=D(cpe,{optional:!0});_currentDirection;_textField;_iconPrefixContainer;_textPrefixContainer;_iconSuffixContainer;_textSuffixContainer;_floatingLabel;_notchedOutline;_lineRipple;_iconPrefixContainerSignal=Zg("iconPrefixContainer");_textPrefixContainerSignal=Zg("textPrefixContainer");_iconSuffixContainerSignal=Zg("iconSuffixContainer");_textSuffixContainerSignal=Zg("textSuffixContainer");_prefixSuffixContainers=Ti(()=>[this._iconPrefixContainerSignal(),this._textPrefixContainerSignal(),this._iconSuffixContainerSignal(),this._textSuffixContainerSignal()].map(e=>e?.nativeElement).filter(e=>void 0!==e));_formFieldControl;_prefixChildren;_suffixChildren;_errorChildren;_hintChildren;_labelChild=lee(Jb);get hideRequiredMarker(){return this._hideRequiredMarker}set hideRequiredMarker(e){this._hideRequiredMarker=nu(e)}_hideRequiredMarker=!1;color="primary";get floatLabel(){return this._floatLabel||this._defaults?.floatLabel||"auto"}set floatLabel(e){e!==this._floatLabel&&(this._floatLabel=e,this._changeDetectorRef.markForCheck())}_floatLabel;get appearance(){return this._appearanceSignal()}set appearance(e){this._appearanceSignal.set(e||this._defaults?.appearance||"fill")}_appearanceSignal=yt("fill");get subscriptSizing(){return this._subscriptSizing||this._defaults?.subscriptSizing||"fixed"}set subscriptSizing(e){this._subscriptSizing=e||this._defaults?.subscriptSizing||"fixed"}_subscriptSizing=null;get hintLabel(){return this._hintLabel}set hintLabel(e){this._hintLabel=e,this._processHints()}_hintLabel="";_hasIconPrefix=!1;_hasTextPrefix=!1;_hasIconSuffix=!1;_hasTextSuffix=!1;_labelId=this._idGenerator.getId("mat-mdc-form-field-label-");_hintLabelId=this._idGenerator.getId("mat-mdc-hint-");_describedByIds;get _control(){return this._explicitFormFieldControl||this._formFieldControl}set _control(e){this._explicitFormFieldControl=e}_destroyed=new pe;_isFocused=null;_explicitFormFieldControl;_previousControl=null;_previousControlValidatorFn=null;_stateChanges;_valueChanges;_describedByChanges;_outlineLabelOffsetResizeObserver=null;_animationsDisabled=fi();constructor(){const e=this._defaults,i=D(hr);e&&(e.appearance&&(this.appearance=e.appearance),this._hideRequiredMarker=!!e?.hideRequiredMarker,e.color&&(this.color=e.color)),nm(()=>this._currentDirection=i.valueSignal()),this._syncOutlineLabelOffset()}ngAfterViewInit(){this._updateFocusState(),this._animationsDisabled||this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{this._elementRef.nativeElement.classList.add("mat-form-field-animations-enabled")},300)}),this._changeDetectorRef.detectChanges()}ngAfterContentInit(){this._assertFormFieldControl(),this._initializeSubscript(),this._initializePrefixAndSuffix()}ngAfterContentChecked(){this._assertFormFieldControl(),this._control!==this._previousControl&&(this._initializeControl(this._previousControl),this._control.ngControl&&this._control.ngControl.control&&(this._previousControlValidatorFn=this._control.ngControl.control.validator),this._previousControl=this._control),this._control.ngControl&&this._control.ngControl.control&&this._control.ngControl.control.validator!==this._previousControlValidatorFn&&this._changeDetectorRef.markForCheck()}ngOnDestroy(){this._outlineLabelOffsetResizeObserver?.disconnect(),this._stateChanges?.unsubscribe(),this._valueChanges?.unsubscribe(),this._describedByChanges?.unsubscribe(),this._destroyed.next(),this._destroyed.complete()}getLabelId=Ti(()=>this._hasFloatingLabel()?this._labelId:null);getConnectedOverlayOrigin(){return this._textField||this._elementRef}_animateAndLockLabel(){this._hasFloatingLabel()&&(this.floatLabel="always")}_initializeControl(e){const i=this._control,o="mat-mdc-form-field-type-";e&&this._elementRef.nativeElement.classList.remove(o+e.controlType),i.controlType&&this._elementRef.nativeElement.classList.add(o+i.controlType),this._stateChanges?.unsubscribe(),this._stateChanges=i.stateChanges.subscribe(()=>{this._updateFocusState(),this._changeDetectorRef.markForCheck()}),this._describedByChanges?.unsubscribe(),this._describedByChanges=i.stateChanges.pipe(to([void 0,void 0]),ye(()=>[i.errorState,i.userAriaDescribedBy]),function Nfe(){return bn((t,n)=>{let e,i=!1;t.subscribe(en(n,o=>{const r=e;e=o,i&&n.next([r,o]),i=!0}))})}(),vn(([[r,s],[a,l]])=>r!==a||s!==l)).subscribe(()=>this._syncDescribedByIds()),this._valueChanges?.unsubscribe(),i.ngControl&&i.ngControl.valueChanges&&(this._valueChanges=i.ngControl.valueChanges.pipe(on(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(),gr(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(){const e=this._control.focused;e&&!this._isFocused?(this._isFocused=!0,this._lineRipple?.activate()):!e&&(this._isFocused||null===this._isFocused)&&(this._isFocused=!1,this._lineRipple?.deactivate()),this._elementRef.nativeElement.classList.toggle("mat-focused",e),this._textField?.nativeElement.classList.toggle("mdc-text-field--focused",e)}_syncOutlineLabelOffset(){!function cte(t,n){const e=n?.injector??D(Be),i=e.get(nl),o=e.get(o1),r=e.get(ia,null,{optional:!0});o.impl??=e.get(D2);let s=t;"function"==typeof s&&(s={mixedReadWrite:t});const a=e.get(Jp,null,{optional:!0}),l=new lte(o.impl,[s.earlyRead,s.write,s.mixedReadWrite,s.read],a?.view,i,e,r?.snapshot(null));o.impl.register(l)}({earlyRead:()=>{if("outline"!==this._appearanceSignal())return this._outlineLabelOffsetResizeObserver?.disconnect(),null;if(globalThis.ResizeObserver){this._outlineLabelOffsetResizeObserver||=new globalThis.ResizeObserver(()=>{this._writeOutlinedLabelStyles(this._getOutlinedLabelOffset())});for(const e of this._prefixSuffixContainers())this._outlineLabelOffsetResizeObserver.observe(e,{box:"border-box"})}return this._getOutlinedLabelOffset()},write:e=>this._writeOutlinedLabelStyles(e())})}_shouldAlwaysFloat(){return"always"===this.floatLabel}_hasOutline(){return"outline"===this.appearance}_forceDisplayInfixLabel(){return!this._platform.isBrowser&&this._prefixChildren.length&&!this._shouldLabelFloat()}_hasFloatingLabel=Ti(()=>!!this._labelChild());_shouldLabelFloat(){return!!this._hasFloatingLabel()&&(this._control.shouldLabelFloat||this._shouldAlwaysFloat())}_shouldForward(e){const i=this._control?this._control.ngControl:null;return i&&i[e]}_getSubscriptMessageType(){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._getSubscriptMessageType()){const r=this._hintChildren?this._hintChildren.find(a=>"start"===a.align):null,s=this._hintChildren?this._hintChildren.find(a=>"end"===a.align):null;r?e.push(r.id):this._hintLabel&&e.push(this._hintLabelId),s&&e.push(s.id)}else this._errorChildren&&e.push(...this._errorChildren.map(r=>r.id));const i=this._control.describedByIds;let o;if(i){const r=this._describedByIds||e;o=e.concat(i.filter(s=>s&&!r.includes(s)))}else o=e;this._control.setDescribedByIds(o),this._describedByIds=e}}_getOutlinedLabelOffset(){if(!this._hasOutline()||!this._floatingLabel)return null;if(!this._iconPrefixContainer&&!this._textPrefixContainer)return["",null];if(!this._isAttachedToDom())return null;const e=this._iconPrefixContainer?.nativeElement,i=this._textPrefixContainer?.nativeElement,o=this._iconSuffixContainer?.nativeElement,r=this._textSuffixContainer?.nativeElement,s=e?.getBoundingClientRect().width??0,a=i?.getBoundingClientRect().width??0,l=o?.getBoundingClientRect().width??0,c=r?.getBoundingClientRect().width??0;return[`var(--mat-mdc-form-field-label-transform, translateY(-50%) translateX(calc(${"rtl"===this._currentDirection?"-1":"1"} * (${s+a}px + var(--mat-mdc-form-field-label-offset-x, 0px)))))`,s+a+l+c]}_writeOutlinedLabelStyles(e){if(null!==e){const[i,o]=e;this._floatingLabel&&(this._floatingLabel.element.style.transform=i),null!==o&&this._notchedOutline?._setMaxWidth(o)}}_isAttachedToDom(){const e=this._elementRef.nativeElement;if(e.getRootNode){const i=e.getRootNode();return i&&i!==e}return document.documentElement.contains(e)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["mat-form-field"]],contentQueries:function(i,o,r){if(1&i&&(D0(r,o._labelChild,Jb,5),_s(r,ck,5)(r,spe,5)(r,ape,5)(r,kV,5)(r,lk,5)),2&i){let s;M0(),ue(s=he())&&(o._formFieldControl=s.first),ue(s=he())&&(o._prefixChildren=s),ue(s=he())&&(o._suffixChildren=s),ue(s=he())&&(o._errorChildren=s),ue(s=he())&&(o._hintChildren=s)}},viewQuery:function(i,o){if(1&i&&(T0(o._iconPrefixContainerSignal,CV,5)(o._textPrefixContainerSignal,wV,5)(o._iconSuffixContainerSignal,xV,5)(o._textSuffixContainerSignal,SV,5),rt(Hfe,5)(CV,5)(wV,5)(xV,5)(SV,5)(TV,5)(IV,5)(EV,5)),2&i){let r;M0(4),ue(r=he())&&(o._textField=r.first),ue(r=he())&&(o._iconPrefixContainer=r.first),ue(r=he())&&(o._textPrefixContainer=r.first),ue(r=he())&&(o._iconSuffixContainer=r.first),ue(r=he())&&(o._textSuffixContainer=r.first),ue(r=he())&&(o._floatingLabel=r.first),ue(r=he())&&(o._notchedOutline=r.first),ue(r=he())&&(o._lineRipple=r.first)}},hostAttrs:[1,"mat-mdc-form-field"],hostVars:38,hostBindings:function(i,o){2&i&&Ke("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-appearance-fill","fill"==o.appearance)("mat-form-field-appearance-outline","outline"==o.appearance)("mat-form-field-hide-placeholder",o._hasFloatingLabel()&&!o._shouldLabelFloat())("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:[ht([{provide:dk,useExisting:t},{provide:DV,useExisting:t}])],ngContentSelectors:Ufe,decls:18,vars:21,consts:[["labelTemplate",""],["textField",""],["iconPrefixContainer",""],["textPrefixContainer",""],["textSuffixContainer",""],["iconSuffixContainer",""],[1,"mat-mdc-text-field-wrapper","mdc-text-field",3,"click"],[1,"mat-mdc-form-field-focus-overlay"],[1,"mat-mdc-form-field-flex"],["matFormFieldNotchedOutline","",3,"matFormFieldNotchedOutlineOpen"],[1,"mat-mdc-form-field-icon-prefix"],[1,"mat-mdc-form-field-text-prefix"],[1,"mat-mdc-form-field-infix"],[3,"ngTemplateOutlet"],[1,"mat-mdc-form-field-text-suffix"],[1,"mat-mdc-form-field-icon-suffix"],["matFormFieldLineRipple",""],["aria-atomic","true","aria-live","polite",1,"mat-mdc-form-field-subscript-wrapper","mat-mdc-form-field-bottom-align"],[1,"mat-mdc-form-field-error-wrapper"],[1,"mat-mdc-form-field-hint-wrapper"],["matFormFieldFloatingLabel","",3,"floating","monitorResize","id"],["aria-hidden","true",1,"mat-mdc-form-field-required-marker","mdc-floating-label--required"],[3,"id"],[1,"mat-mdc-form-field-hint-spacer"]],template:function(i,o){if(1&i&&(Si(jfe),tt(0,Wfe,1,1,"ng-template",null,0,El),f(2,"div",6,1),L("click",function(s){return o._control.onContainerClick(s)}),S(4,Gfe,1,0,"div",7),f(5,"div",8),S(6,Yfe,2,2,"div",9),S(7,Xfe,3,0,"div",10),S(8,Zfe,3,0,"div",11),f(9,"div",12),S(10,Jfe,1,1,null,13),At(11),h(),S(12,epe,3,0,"div",14),S(13,tpe,3,0,"div",15),h(),S(14,npe,1,0,"div",16),h(),f(15,"div",17),S(16,ipe,2,0,"div",18)(17,rpe,5,1,"div",19),h()),2&i){let r;d(2),Ke("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),d(2),k(o._hasOutline()||o._control.disabled?-1:4),d(2),k(o._hasOutline()?6:-1),d(),k(o._hasIconPrefix?7:-1),d(),k(o._hasTextPrefix?8:-1),d(2),k(!o._hasOutline()||o._forceDisplayInfixLabel()?10:-1),d(2),k(o._hasTextSuffix?12:-1),d(),k(o._hasIconSuffix?13:-1),d(),k(o._hasOutline()?-1:14),d(),Ke("mat-mdc-form-field-subscript-dynamic-size","dynamic"===o.subscriptSizing);const s=o._getSubscriptMessageType();d(),k("error"===(r=s)?16:"hint"===r?17:-1)}},dependencies:[TV,IV,Pd,EV,lk],styles:['.mdc-text-field{display:inline-flex;align-items:baseline;padding:0 16px;position:relative;box-sizing:border-box;overflow:hidden;will-change:opacity,transform,color;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.mdc-text-field__input{width:100%;min-width:0;border:none;border-radius:0;background:none;padding:0;-moz-appearance:none;-webkit-appearance:none;height:28px}.mdc-text-field__input::-webkit-calendar-picker-indicator,.mdc-text-field__input::-webkit-search-cancel-button{display:none}.mdc-text-field__input::-ms-clear{display:none}.mdc-text-field__input:focus{outline:none}.mdc-text-field__input:invalid{box-shadow:none}.mdc-text-field__input::placeholder{opacity:0}.mdc-text-field__input::-moz-placeholder{opacity:0}.mdc-text-field__input::-webkit-input-placeholder{opacity:0}.mdc-text-field__input:-ms-input-placeholder{opacity:0}.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mdc-text-field--focused .mdc-text-field__input::placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{opacity:1}.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--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::-moz-placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::-webkit-input-placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive:-ms-input-placeholder{opacity:0}.mdc-text-field--outlined .mdc-text-field__input,.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{height:100%}.mdc-text-field--outlined .mdc-text-field__input{display:flex;border:none !important;background-color:rgba(0,0,0,0)}.mdc-text-field--disabled .mdc-text-field__input{pointer-events:auto}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mat-form-field-filled-input-text-color, var(--mat-sys-on-surface));caret-color:var(--mat-form-field-filled-caret-color, var(--mat-sys-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mat-form-field-filled-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-filled-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-filled-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-filled-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mat-form-field-outlined-input-text-color, var(--mat-sys-on-surface));caret-color:var(--mat-form-field-outlined-caret-color, var(--mat-sys-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mat-form-field-outlined-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-outlined-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-outlined-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-outlined-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mat-form-field-filled-error-caret-color, var(--mat-sys-error))}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mat-form-field-outlined-error-caret-color, var(--mat-sys-error))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-text-field__input{color:var(--mat-form-field-filled-disabled-input-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--mat-form-field-outlined-disabled-input-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}@media(forced-colors: active){.mdc-text-field--disabled .mdc-text-field__input{background-color:Window}}.mdc-text-field--filled{height:56px;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:var(--mat-form-field-filled-container-shape, var(--mat-sys-corner-extra-small));border-top-right-radius:var(--mat-form-field-filled-container-shape, var(--mat-sys-corner-extra-small))}.mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:var(--mat-form-field-filled-container-color, var(--mat-sys-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled{background-color:var(--mat-form-field-filled-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 4%, transparent))}.mdc-text-field--outlined{height:56px;overflow:visible;padding-right:max(16px,var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small)));padding-left:max(16px,var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small)) + 4px)}[dir=rtl] .mdc-text-field--outlined{padding-right:max(16px,var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small)) + 4px);padding-left:max(16px,var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small)))}.mdc-floating-label{position:absolute;left:0;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{right:0;left:auto;transform-origin:right top;text-align:right}.mdc-text-field .mdc-floating-label{top:50%;transform:translateY(-50%);pointer-events:none}.mdc-notched-outline .mdc-floating-label{display:inline-block;position:relative;max-width:100%}.mdc-text-field--outlined .mdc-floating-label{left:4px;right:auto}[dir=rtl] .mdc-text-field--outlined .mdc-floating-label{left:auto;right:4px}.mdc-text-field--filled .mdc-floating-label{left:16px;right:auto}[dir=rtl] .mdc-text-field--filled .mdc-floating-label{left:auto;right:16px}.mdc-text-field--disabled .mdc-floating-label{cursor:default}@media(forced-colors: active){.mdc-text-field--disabled .mdc-floating-label{z-index:1}}.mdc-text-field--filled.mdc-text-field--no-label .mdc-floating-label{display:none}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mat-form-field-filled-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mat-form-field-filled-focus-label-text-color, var(--mat-sys-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mat-form-field-filled-hover-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label{color:var(--mat-form-field-filled-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mat-form-field-filled-error-label-text-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mat-form-field-filled-error-focus-label-text-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mat-form-field-filled-error-hover-label-text-color, var(--mat-sys-on-error-container))}.mdc-text-field--filled .mdc-floating-label{font-family:var(--mat-form-field-filled-label-text-font, var(--mat-sys-body-large-font));font-size:var(--mat-form-field-filled-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-form-field-filled-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mat-form-field-filled-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mat-form-field-outlined-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mat-form-field-outlined-focus-label-text-color, var(--mat-sys-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mat-form-field-outlined-hover-label-text-color, var(--mat-sys-on-surface))}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label{color:var(--mat-form-field-outlined-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mat-form-field-outlined-error-label-text-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mat-form-field-outlined-error-focus-label-text-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mat-form-field-outlined-error-hover-label-text-color, var(--mat-sys-on-error-container))}.mdc-text-field--outlined .mdc-floating-label{font-family:var(--mat-form-field-outlined-label-text-font, var(--mat-sys-body-large-font));font-size:var(--mat-form-field-outlined-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-form-field-outlined-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mat-form-field-outlined-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-floating-label--float-above{cursor:auto;transform:translateY(-106%) scale(0.75)}.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) scale(1);font-size:.75rem}.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-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-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:1px;margin-right:0;content:"*"}[dir=rtl] .mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::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{text-align:right}.mdc-text-field--outlined .mdc-notched-outline{z-index:1}.mat-mdc-notch-piece{box-sizing:border-box;height:100%;pointer-events:none;border:none;border-top:1px solid;border-bottom:1px solid}.mdc-text-field--focused .mat-mdc-notch-piece{border-width:2px}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mat-mdc-notch-piece{border-color:var(--mat-form-field-outlined-outline-color, var(--mat-sys-outline));border-width:var(--mat-form-field-outlined-outline-width, 1px)}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mat-mdc-notch-piece{border-color:var(--mat-form-field-outlined-hover-outline-color, var(--mat-sys-on-surface))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mat-form-field-outlined-focus-outline-color, var(--mat-sys-primary))}.mdc-text-field--outlined.mdc-text-field--disabled .mat-mdc-notch-piece{border-color:var(--mat-form-field-outlined-disabled-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--mat-form-field-outlined-error-outline-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-notched-outline .mat-mdc-notch-piece{border-color:var(--mat-form-field-outlined-error-hover-outline-color, var(--mat-sys-on-error-container))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mat-form-field-outlined-error-focus-outline-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mat-mdc-notch-piece{border-width:var(--mat-form-field-outlined-focus-outline-width, 2px)}.mdc-notched-outline__leading{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small));border-bottom-left-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small))}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px,var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small)))}[dir=rtl] .mdc-notched-outline__leading{border-left:none;border-right:1px solid;border-bottom-left-radius:0;border-top-left-radius:0;border-top-right-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small));border-bottom-right-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small))}.mdc-notched-outline__trailing{flex-grow:1;border-left:none;border-right:1px solid;border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small));border-bottom-right-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small))}[dir=rtl] .mdc-notched-outline__trailing{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small));border-bottom-left-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small))}.mdc-notched-outline__notch{flex:0 0 auto;width:auto}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:min(var(--mat-form-field-notch-max-width, 100%),calc(100% - max(12px, var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small))) * 2))}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{max-width:min(100%,calc(100% - max(12px, var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small))) * 2))}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:1px}.mdc-text-field--focused.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:2px}.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{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;border-bottom-width:var(--mat-form-field-filled-active-indicator-height, 1px)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mat-form-field-filled-active-indicator-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mat-form-field-filled-hover-active-indicator-color, var(--mat-sys-on-surface))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-line-ripple::before{border-bottom-color:var(--mat-form-field-filled-disabled-active-indicator-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-line-ripple::before{border-bottom-color:var(--mat-form-field-filled-error-active-indicator-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mat-form-field-filled-error-hover-active-indicator-color, var(--mat-sys-on-error-container))}.mdc-line-ripple::after{transform:scaleX(0);opacity:0;z-index:2}.mdc-text-field--filled .mdc-line-ripple::after{border-bottom-width:var(--mat-form-field-filled-focus-active-indicator-height, 2px)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mat-form-field-filled-focus-active-indicator-color, var(--mat-sys-primary))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mat-form-field-filled-error-focus-active-indicator-color, var(--mat-sys-error))}.mdc-line-ripple--active::after{transform:scaleX(1);opacity:1}.mdc-line-ripple--deactivating::after{opacity:0}.mdc-text-field--disabled{pointer-events:none}.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;will-change:auto}.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;will-change: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, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.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-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:1px solid rgba(0,0,0,0)}[dir=rtl] .mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:none;border-right:1px solid rgba(0,0,0,0)}.mat-mdc-form-field-infix{min-height:var(--mat-form-field-container-height, 56px);padding-top:var(--mat-form-field-filled-with-label-container-padding-top, 24px);padding-bottom:var(--mat-form-field-filled-with-label-container-padding-bottom, 8px)}.mdc-text-field--outlined .mat-mdc-form-field-infix,.mdc-text-field--no-label .mat-mdc-form-field-infix{padding-top:var(--mat-form-field-container-vertical-padding, 16px);padding-bottom:var(--mat-form-field-container-vertical-padding, 16px)}.mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-floating-label{top:calc(var(--mat-form-field-container-height, 56px)/2)}.mdc-text-field--filled .mat-mdc-floating-label{display:var(--mat-form-field-filled-label-display, block)}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{--mat-mdc-form-field-label-transform: translateY(calc(calc(6.75px + var(--mat-form-field-container-height, 56px) / 2) * -1)) scale(var(--mat-mdc-form-field-floating-label-scale, 0.75));transform:var(--mat-mdc-form-field-label-transform)}@keyframes _mat-form-field-subscript-animation{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.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;opacity:1;transform:translateY(0);animation:_mat-form-field-subscript-animation 0ms cubic-bezier(0.55, 0, 0.55, 0.2)}.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;color:var(--mat-form-field-error-text-color, var(--mat-sys-error))}.mat-mdc-form-field-subscript-wrapper,.mat-mdc-form-field-bottom-align::before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-subscript-text-font, var(--mat-sys-body-small-font));line-height:var(--mat-form-field-subscript-text-line-height, var(--mat-sys-body-small-line-height));font-size:var(--mat-form-field-subscript-text-size, var(--mat-sys-body-small-size));letter-spacing:var(--mat-form-field-subscript-text-tracking, var(--mat-sys-body-small-tracking));font-weight:var(--mat-form-field-subscript-text-weight, var(--mat-sys-body-small-weight))}.mat-mdc-form-field-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;opacity:0;pointer-events:none;background-color:var(--mat-form-field-state-layer-color, var(--mat-sys-on-surface))}.mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-form-field.mat-focused .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-focus-state-layer-opacity, 0)}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}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option{color:var(--mat-form-field-select-option-text-color, var(--mat-sys-neutral10))}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option:disabled{color:var(--mat-form-field-select-disabled-option-text-color, color-mix(in srgb, var(--mat-sys-neutral10) 38%, transparent))}.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;color:var(--mat-form-field-enabled-select-arrow-color, var(--mat-sys-on-surface-variant))}[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-focused .mat-mdc-form-field-infix::after{color:var(--mat-form-field-focus-select-arrow-color, var(--mat-sys-primary))}.mat-mdc-form-field-type-mat-native-select.mat-form-field-disabled .mat-mdc-form-field-infix::after{color:var(--mat-form-field-disabled-select-arrow-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.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}@media(forced-colors: active){.mat-form-field-appearance-fill .mat-mdc-text-field-wrapper{outline:solid 1px}}@media(forced-colors: active){.mat-form-field-appearance-fill.mat-form-field-disabled .mat-mdc-text-field-wrapper{outline-color:GrayText}}@media(forced-colors: active){.mat-form-field-appearance-fill.mat-focused .mat-mdc-text-field-wrapper{outline:dashed 3px}}@media(forced-colors: 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, var(--mat-sys-body-large-font));line-height:var(--mat-form-field-container-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mat-form-field-container-text-size, var(--mat-sys-body-large-size));letter-spacing:var(--mat-form-field-container-text-tracking, var(--mat-sys-body-large-tracking));font-weight:var(--mat-form-field-container-text-weight, var(--mat-sys-body-large-weight))}.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)}[dir=rtl] .mat-mdc-form-field{text-align:right}.mat-mdc-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-mdc-text-field-wrapper{width:100%;z-index:0}.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>.mat-icon,.mat-mdc-form-field-icon-suffix>.mat-icon{padding:0 12px;box-sizing:content-box}.mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-leading-icon-color, var(--mat-sys-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-disabled-leading-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-trailing-icon-color, var(--mat-sys-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-disabled-trailing-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-invalid .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-trailing-icon-color, var(--mat-sys-error))}.mat-form-field-invalid:not(.mat-focused):not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-hover-trailing-icon-color, var(--mat-sys-on-error-container))}.mat-form-field-invalid.mat-focused .mat-mdc-text-field-wrapper .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-focus-trailing-icon-color, var(--mat-sys-error))}.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-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-infix:has(textarea[cols]){width:auto}.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.mat-form-field-animations-enabled .mdc-floating-label{transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1),color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field__input{transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field__input::placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field__input::-moz-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field__input::-webkit-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field__input:-ms-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--focused .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field--filled:not(.mdc-ripple-upgraded):focus .mdc-text-field__ripple::before{transition-duration:75ms}.mat-mdc-form-field.mat-form-field-animations-enabled .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)}.mat-mdc-form-field.mat-form-field-animations-enabled .mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field.mat-form-field-animations-enabled .mat-mdc-form-field-error-wrapper{animation-duration:300ms}.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)}\n'],encapsulation:2,changeDetection:0})}return t})();const AV=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"];function RV(){if(iu)return iu;if("object"!=typeof document||!document)return iu=new Set(AV),iu;let t=document.createElement("input");return iu=new Set(AV.filter(n=>(t.setAttribute("type",n),t.type===n))),iu}let hpe=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["ng-component"]],hostAttrs:["cdk-text-field-style-loader",""],decls:0,vars:0,template:function(i,o){},styles:["textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}@keyframes cdk-text-field-autofill-start{/*!*/}@keyframes cdk-text-field-autofill-end{/*!*/}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}\n"],encapsulation:2,changeDetection:0})}return t})();const fpe={passive:!0};let ppe=(()=>{class t{_platform=D($n);_ngZone=D(ge);_renderer=D(No).createRenderer(null,null);_styleLoader=D(pr);_monitoredElements=new Map;constructor(){}monitor(e){if(!this._platform.isBrowser)return Mi;this._styleLoader.load(hpe);const i=Ts(e),o=this._monitoredElements.get(i);if(o)return o.subject;const r=new pe,s="cdk-text-field-autofilled",a=c=>{"cdk-text-field-autofill-start"!==c.animationName||i.classList.contains(s)?"cdk-text-field-autofill-end"===c.animationName&&i.classList.contains(s)&&(i.classList.remove(s),this._ngZone.run(()=>r.next({target:c.target,isAutofilled:!1}))):(i.classList.add(s),this._ngZone.run(()=>r.next({target:c.target,isAutofilled:!0})))},l=this._ngZone.runOutsideAngular(()=>(i.classList.add("cdk-text-field-autofill-monitored"),this._renderer.listen(i,"animationstart",a,fpe)));return this._monitoredElements.set(i,{subject:r,unlisten:l}),r}stopMonitoring(e){const i=Ts(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 \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),mpe=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({})}return t})();const gpe=new Z("MAT_INPUT_VALUE_ACCESSOR");let _pe=(()=>{class t{isErrorState(e,i){return!!(e&&e.invalid&&(e.dirty||i&&i.submitted))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})(),uk=(()=>{class t{isErrorState(e,i){return!!(e&&e.invalid&&(e.touched||i&&i.submitted))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();class NV{_defaultMatcher;ngControl;_parentFormGroup;_parentForm;_stateChanges;errorState=!1;matcher;constructor(n,e,i,o,r){this._defaultMatcher=n,this.ngControl=e,this._parentFormGroup=i,this._parentForm=o,this._stateChanges=r}updateErrorState(){const n=this.errorState,e=this._parentFormGroup||this._parentForm,i=this.matcher||this._defaultMatcher,o=this.ngControl?this.ngControl.control:null,r=i?.isErrorState(o,e)??!1;r!==n&&(this.errorState=r,this._stateChanges.next())}}let tv=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({imports:[rB,wn,ri]})}return t})();const bpe=["button","checkbox","file","hidden","image","radio","range","reset","submit"],vpe=new Z("MAT_INPUT_CONFIG");let ei=(()=>{class t{_elementRef=D(Ae);_platform=D($n);ngControl=D(Yr,{optional:!0,self:!0});_autofillMonitor=D(ppe);_ngZone=D(ge);_formField=D(dk,{optional:!0});_renderer=D(Kn);_uid=D(oi).getId("mat-input-");_previousNativeValue;_inputValueAccessor;_signalBasedValueAccessor;_previousPlaceholder=null;_errorStateTracker;_config=D(vpe,{optional:!0});_cleanupIosKeyup;_cleanupWebkitWheel;_isServer=!1;_isNativeSelect=!1;_isTextarea=!1;_isInFormField=!1;focused=!1;stateChanges=new pe;controlType="mat-input";autofilled=!1;get disabled(){return this._disabled}set disabled(e){this._disabled=nu(e),this.focused&&(this.focused=!1,this.stateChanges.next())}_disabled=!1;get id(){return this._id}set id(e){this._id=e||this._uid}_id;placeholder;name;get required(){return this._required??this.ngControl?.control?.hasValidator(Ve.required)??!1}set required(e){this._required=nu(e)}_required;get type(){return this._type}set type(e){this._type=e||"text",this._validateType(),!this._isTextarea&&RV().has(this._type)&&(this._elementRef.nativeElement.type=this._type)}_type="text";get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(e){this._errorStateTracker.matcher=e}userAriaDescribedBy;get value(){return this._signalBasedValueAccessor?this._signalBasedValueAccessor.value():this._inputValueAccessor.value}set value(e){e!==this.value&&(this._signalBasedValueAccessor?this._signalBasedValueAccessor.value.set(e):this._inputValueAccessor.value=e,this.stateChanges.next())}get readonly(){return this._readonly}set readonly(e){this._readonly=nu(e)}_readonly=!1;disabledInteractive;get errorState(){return this._errorStateTracker.errorState}set errorState(e){this._errorStateTracker.errorState=e}_neverEmptyInputTypes=["date","datetime","datetime-local","month","time","week"].filter(e=>RV().has(e));constructor(){const e=D(Qd,{optional:!0}),i=D(Xt,{optional:!0}),o=D(uk),r=D(gpe,{optional:!0,self:!0}),s=this._elementRef.nativeElement,a=s.nodeName.toLowerCase();r?Sl(r.value)?this._signalBasedValueAccessor=r:this._inputValueAccessor=r:this._inputValueAccessor=s,this._previousNativeValue=this.value,this.id=this.id,this._platform.IOS&&this._ngZone.runOutsideAngular(()=>{this._cleanupIosKeyup=this._renderer.listen(s,"keyup",this._iOSKeyupListener)}),this._errorStateTracker=new NV(o,this.ngControl,i,e,this.stateChanges),this._isServer=!this._platform.isBrowser,this._isNativeSelect="select"===a,this._isTextarea="textarea"===a,this._isInFormField=!!this._formField,this.disabledInteractive=this._config?.disabledInteractive||!1,this._isNativeSelect&&(this.controlType=s.multiple?"mat-native-select-multiple":"mat-native-select"),this._signalBasedValueAccessor&&nm(()=>{this._signalBasedValueAccessor.value(),this.stateChanges.next()})}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._cleanupIosKeyup?.(),this._cleanupWebkitWheel?.()}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)}updateErrorState(){this._errorStateTracker.updateErrorState()}_focusChanged(e){if(e!==this.focused){if(!this._isNativeSelect&&e&&this.disabled&&this.disabledInteractive){const i=this._elementRef.nativeElement;"number"===i.type?(i.type="text",i.setSelectionRange(0,0),i.type="number"):i.setSelectionRange(0,0)}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(){bpe.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.disabled||!this.empty}get describedByIds(){return this._elementRef.nativeElement.getAttribute("aria-describedby")?.split(" ")||[]}setDescribedByIds(e){const i=this._elementRef.nativeElement;e.length?i.setAttribute("aria-describedby",e.join(" ")):i.removeAttribute("aria-describedby")}onContainerClick(){this.focused||this.focus()}_isInlineSelect(){const e=this._elementRef.nativeElement;return this._isNativeSelect&&(e.multiple||e.size>1)}_iOSKeyupListener=e=>{const i=e.target;!i.value&&0===i.selectionStart&&0===i.selectionEnd&&(i.setSelectionRange(1,1),i.setSelectionRange(0,0))};_getReadonlyAttribute(){return this._isNativeSelect?null:this.readonly||this.disabled&&this.disabledInteractive?"true":null}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["input","matInput",""],["textarea","matInput",""],["select","matNativeControl",""],["input","matNativeControl",""],["textarea","matNativeControl",""]],hostAttrs:[1,"mat-mdc-input-element"],hostVars:21,hostBindings:function(i,o){1&i&&L("focus",function(){return o._focusChanged(!0)})("blur",function(){return o._focusChanged(!1)})("input",function(){return o._onInput()}),2&i&&(Lr("id",o.id)("disabled",o.disabled&&!o.disabledInteractive)("required",o.required),Ze("name",o.name||null)("readonly",o._getReadonlyAttribute())("aria-disabled",o.disabled&&o.disabledInteractive?"true":null)("aria-invalid",o.empty&&o.required?null:o.errorState)("aria-required",o.required)("id",o.id),Ke("mat-input-server",o._isServer)("mat-mdc-form-field-textarea-control",o._isInFormField&&o._isTextarea)("mat-mdc-form-field-input-control",o._isInFormField)("mat-mdc-input-disabled-interactive",o.disabledInteractive)("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:[0,"aria-describedby","userAriaDescribedBy"],value:"value",readonly:"readonly",disabledInteractive:[2,"disabledInteractive","disabledInteractive",Ie]},exportAs:["matInput"],features:[ht([{provide:ck,useExisting:t}]),yi]})}return t})(),ype=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({imports:[tv,tv,mpe,ri]})}return t})();class FV{_letterKeyStream=new pe;_items=[];_selectedItemIndex=-1;_pressedLetters=[];_skipPredicateFn;_selectedItem=new pe;selectedItem=this._selectedItem;constructor(n,e){const i="number"==typeof e?.debounceInterval?e.debounceInterval:200;e?.skipPredicate&&(this._skipPredicateFn=e.skipPredicate),this.setItems(n),this._setupKeyHandler(i)}destroy(){this._pressedLetters=[],this._letterKeyStream.complete(),this._selectedItem.complete()}setCurrentSelectedItemIndex(n){this._selectedItemIndex=n}setItems(n){this._items=n}handleKey(n){const e=n.keyCode;n.key&&1===n.key.length?this._letterKeyStream.next(n.key.toLocaleUpperCase()):(e>=65&&e<=90||e>=48&&e<=57)&&this._letterKeyStream.next(String.fromCharCode(e))}isTyping(){return this._pressedLetters.length>0}reset(){this._pressedLetters=[]}_setupKeyHandler(n){this._letterKeyStream.pipe(ni(e=>this._pressedLetters.push(e)),_b(n),vn(()=>this._pressedLetters.length>0),ye(()=>this._pressedLetters.join("").toLocaleUpperCase())).subscribe(e=>{for(let i=1;io.trim()===e)&&(i.push(e),t.setAttribute(n,i.join(" ")))}function hk(t,n,e){const i=nv(t,n);e=e.trim();const o=i.filter(r=>r!==e);o.length?t.setAttribute(n,o.join(" ")):t.removeAttribute(n)}function nv(t,n){return t.getAttribute(n)?.match(/\S+/g)??[]}const HV="cdk-describedby-message",iv="cdk-describedby-host";let fk=0,Spe=(()=>{class t{_platform=D($n);_document=D(Qe);_messageRegistry=new Map;_messagesContainer=null;_id=""+fk++;constructor(){D(pr).load(uS),this._id=D(Qs)+"-"+fk++}describe(e,i,o){if(!this._canBeDescribed(e,i))return;const r=pk(i,o);"string"!=typeof i?(jV(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=pk(i,o);if(this._isElementDescribedByMessage(e,r)&&this._removeMessageReference(e,r),"string"==typeof i){const s=this._messageRegistry.get(r);s&&0===s.referenceCount&&this._deleteMessageElement(r)}0===this._messagesContainer?.childNodes.length&&(this._messagesContainer.remove(),this._messagesContainer=null)}ngOnDestroy(){const e=this._document.querySelectorAll(`[${iv}="${this._id}"]`);for(let i=0;i0!=o.indexOf(HV));e.setAttribute("aria-describedby",i.join(" "))}_addMessageReference(e,i){const o=this._messageRegistry.get(i);VV(e,"aria-describedby",o.messageElement.id),e.setAttribute(iv,this._id),o.referenceCount++}_removeMessageReference(e,i){const o=this._messageRegistry.get(i);o.referenceCount--,hk(e,"aria-describedby",o.messageElement.id),e.removeAttribute(iv)}_isElementDescribedByMessage(e,i){const o=nv(e,"aria-describedby"),r=this._messageRegistry.get(i),s=r&&r.messageElement.id;return!!s&&-1!=o.indexOf(s)}_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 \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function pk(t,n){return"string"==typeof t?`${n||""}/${t}`:t}function jV(t,n){t.id||(t.id=`${HV}-${n}-${fk++}`)}const Dpe=["tooltip"],Mpe=new Z("mat-tooltip-scroll-strategy",{providedIn:"root",factory:()=>{const t=D(Be);return()=>Tf(t,{scrollThrottle:20})}}),Epe=new Z("mat-tooltip-default-options",{providedIn:"root",factory:()=>({showDelay:0,hideDelay:0,touchendHideDelay:1500})}),UV="tooltip-panel",Ipe={passive:!0};let pn=(()=>{class t{_elementRef=D(Ae);_ngZone=D(ge);_platform=D($n);_ariaDescriber=D(Spe);_focusMonitor=D(qd);_dir=D(hr);_injector=D(Be);_viewContainerRef=D(wi);_mediaMatcher=D(fS);_document=D(Qe);_renderer=D(Kn);_animationsDisabled=fi();_defaultOptions=D(Epe,{optional:!0});_overlayRef=null;_tooltipInstance=null;_overlayPanelClass;_portal;_position="below";_positionAtOrigin=!1;_disabled=!1;_tooltipClass;_viewInitialized=!1;_pointerExitEventsInitialized=!1;_tooltipComponent=Npe;_viewportMargin=8;_currentPosition;_cssClassPrefix="mat-mdc";_ariaDescriptionPending=!1;_dirSubscribed=!1;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=nu(e),this._detach(),this._overlayRef=null}get disabled(){return this._disabled}set disabled(e){const i=nu(e);this._disabled!==i&&(this._disabled=i,i?this.hide(0):this._setupPointerEnterEventsIfNeeded(),this._syncAriaDescription(this.message))}get showDelay(){return this._showDelay}set showDelay(e){this._showDelay=Cf(e)}_showDelay;get hideDelay(){return this._hideDelay}set hideDelay(e){this._hideDelay=Cf(e),this._tooltipInstance&&(this._tooltipInstance._mouseLeaveHideDelay=this._hideDelay)}_hideDelay;touchGestures="auto";get message(){return this._message}set message(e){const i=this._message;this._message=null!=e?String(e).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage()),this._syncAriaDescription(i)}_message="";get tooltipClass(){return this._tooltipClass}set tooltipClass(e){this._tooltipClass=e,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)}_eventCleanups=[];_touchstartTimeout=null;_destroyed=new pe;_isDestroyed=!1;constructor(){const e=this._defaultOptions;e&&(this._showDelay=e.showDelay,this._hideDelay=e.hideDelay,e.position&&(this.position=e.position),e.positionAtOrigin&&(this.positionAtOrigin=e.positionAtOrigin),e.touchGestures&&(this.touchGestures=e.touchGestures),e.tooltipClass&&(this.tooltipClass=e.tooltipClass)),this._viewportMargin=8}ngAfterViewInit(){this._viewInitialized=!0,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe(on(this._destroyed)).subscribe(e=>{e?"keyboard"===e&&this._ngZone.run(()=>this.show()):this._ngZone.run(()=>this.hide(0))})}ngOnDestroy(){const e=this._elementRef.nativeElement;this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),this._eventCleanups.forEach(i=>i()),this._eventCleanups.length=0,this._destroyed.next(),this._destroyed.complete(),this._isDestroyed=!0,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 Ud(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(on(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 s=this._overlayRef.getConfig().positionStrategy;if((!this.positionAtOrigin||!e)&&s._origin instanceof Ae)return this._overlayRef;this._detach()}const i=this._injector.get(rb).getAncestorScrollContainers(this._elementRef),o=`${this._cssClassPrefix}-${UV}`,r=fb(this._injector,this.positionAtOrigin&&e||this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(!1).withViewportMargin(this._viewportMargin).withScrollableContainers(i).withPopoverLocation("global");return r.positionChanges.pipe(on(this._destroyed)).subscribe(s=>{this._updateCurrentPositionClass(s.connectionPair),this._tooltipInstance&&s.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run(()=>this.hide(0))}),this._overlayRef=$d(this._injector,{direction:this._dir,positionStrategy:r,panelClass:this._overlayPanelClass?[...this._overlayPanelClass,o]:o,scrollStrategy:this._injector.get(Mpe)(),disableAnimations:this._animationsDisabled,eventPredicate:this._overlayEventPredicate}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe(on(this._destroyed)).subscribe(()=>this._detach()),this._overlayRef.outsidePointerEvents().pipe(on(this._destroyed)).subscribe(()=>this._tooltipInstance?._handleBodyInteraction()),this._overlayRef.keydownEvents().pipe(on(this._destroyed)).subscribe(s=>{s.preventDefault(),s.stopPropagation(),this._ngZone.run(()=>this.hide(0))}),this._defaultOptions?.disableTooltipInteractivity&&this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`),this._dirSubscribed||(this._dirSubscribed=!0,this._dir.change.pipe(on(this._destroyed)).subscribe(()=>{this._overlayRef&&this._updatePosition(this._overlayRef)})),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){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}_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:s}=this._invertPosition(o.originX,o.originY);return{main:o,fallback:{originX:r,originY:s}}}_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:s}=this._invertPosition(o.overlayX,o.overlayY);return{main:o,fallback:{overlayX:r,overlayY:s}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),Fi(()=>{this._tooltipInstance&&this._overlayRef.updatePosition()},{injector:this._injector}))}_setTooltipClass(e){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=e instanceof Set?Array.from(e):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 s;if(s="center"===i?this._dir&&"rtl"===this._dir.value?"end"===o?"left":"right":"start"===o?"left":"right":"bottom"===i&&"top"===r?"above":"below",s!==this._currentPosition){const a=this._overlayRef;if(a){const l=`${this._cssClassPrefix}-${UV}-`;a.removePanelClass(l+this._currentPosition),a.addPanelClass(l+s)}this._currentPosition=s}}_setupPointerEnterEventsIfNeeded(){this._disabled||!this.message||!this._viewInitialized||this._eventCleanups.length||(this._isTouchPlatform()?"off"!==this.touchGestures&&(this._disableNativeGesturesIfNecessary(),this._addListener("touchstart",e=>{const i=e.targetTouches?.[0],o=i?{x:i.clientX,y:i.clientY}:void 0;this._setupPointerExitEventsIfNeeded(),this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this._touchstartTimeout=setTimeout(()=>{this._touchstartTimeout=null,this.show(void 0,o)},this._defaultOptions?.touchLongPressShowDelay??500)})):this._addListener("mouseenter",e=>{let i;this._setupPointerExitEventsIfNeeded(),void 0!==e.x&&void 0!==e.y&&(i=e),this.show(void 0,i)}))}_setupPointerExitEventsIfNeeded(){if(!this._pointerExitEventsInitialized)if(this._pointerExitEventsInitialized=!0,this._isTouchPlatform()){if("off"!==this.touchGestures){this._disableNativeGesturesIfNecessary();const e=()=>{this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this.hide(this._defaultOptions?.touchendHideDelay)};this._addListener("touchend",e),this._addListener("touchcancel",e)}}else this._addListener("mouseleave",e=>{const i=e.relatedTarget;(!i||!this._overlayRef?.overlayElement.contains(i))&&this.hide()}),this._addListener("wheel",e=>{if(this._isTooltipVisible()){const i=this._document.elementFromPoint(e.clientX,e.clientY),o=this._elementRef.nativeElement;i!==o&&!o.contains(i)&&this.hide()}})}_addListener(e,i){this._eventCleanups.push(this._renderer.listen(this._elementRef.nativeElement,e,i,Ipe))}_isTouchPlatform(){return!(!this._platform.IOS&&!this._platform.ANDROID)||!!this._platform.isBrowser&&!!this._defaultOptions?.detectHoverCapability&&this._mediaMatcher.matchMedia("(any-hover: none)").matches}_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"}}_syncAriaDescription(e){this._ariaDescriptionPending||(this._ariaDescriptionPending=!0,this._ariaDescriber.removeDescription(this._elementRef.nativeElement,e,"tooltip"),this._isDestroyed||Fi({write:()=>{this._ariaDescriptionPending=!1,this.message&&!this.disabled&&this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip")}},{injector:this._injector}))}_overlayEventPredicate=e=>"keydown"!==e.type||this._isTooltipVisible()&&27===e.keyCode&&!mr(e);static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-mdc-tooltip-trigger"],hostVars:2,hostBindings:function(i,o){2&i&&Ke("mat-mdc-tooltip-disabled",o.disabled)},inputs:{position:[0,"matTooltipPosition","position"],positionAtOrigin:[0,"matTooltipPositionAtOrigin","positionAtOrigin"],disabled:[0,"matTooltipDisabled","disabled"],showDelay:[0,"matTooltipShowDelay","showDelay"],hideDelay:[0,"matTooltipHideDelay","hideDelay"],touchGestures:[0,"matTooltipTouchGestures","touchGestures"],message:[0,"matTooltip","message"],tooltipClass:[0,"matTooltipClass","tooltipClass"]},exportAs:["matTooltip"]})}return t})(),Npe=(()=>{class t{_changeDetectorRef=D(Pn);_elementRef=D(Ae);_isMultiline=!1;message;tooltipClass;_showTimeoutId;_hideTimeoutId;_triggerElement;_mouseLeaveHideDelay;_animationsDisabled=fi();_tooltip;_closeOnInteraction=!1;_isVisible=!1;_onHide=new pe;_showAnimation="mat-mdc-tooltip-show";_hideAnimation="mat-mdc-tooltip-hide";constructor(){}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(){this._isMultiline=this._isTooltipMultiline(),this._markForCheck()}_isTooltipMultiline(){const e=this._elementRef.nativeElement.getBoundingClientRect();return e.height>24&&e.width>=200}_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&&(this._isVisible=e,this._changeDetectorRef.markForCheck()),e&&!this._animationsDisabled&&"function"==typeof getComputedStyle){const s=getComputedStyle(i);("0s"===s.getPropertyValue("animation-duration")||"none"===s.getPropertyValue("animation-name"))&&(this._animationsDisabled=!0)}e&&this._onShow(),this._animationsDisabled&&(i.classList.add("_mat-animation-noopable"),this._finalizeAnimation(e))}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["mat-tooltip-component"]],viewQuery:function(i,o){if(1&i&&rt(Dpe,7),2&i){let r;ue(r=he())&&(o._tooltip=r.first)}},hostAttrs:["aria-hidden","true"],hostBindings:function(i,o){1&i&&L("mouseleave",function(s){return o._handleMouseLeave(s)})},decls:4,vars:5,consts:[["tooltip",""],[1,"mdc-tooltip","mat-mdc-tooltip",3,"animationend"],[1,"mat-mdc-tooltip-surface","mdc-tooltip__surface"]],template:function(i,o){1&i&&(gs(0,"div",1,0),Fg("animationend",function(s){return o._handleAnimationEnd(s)}),gs(2,"div",2),m(3),Tl()()),2&i&&(at(o.tooltipClass),Ke("mdc-tooltip--multiline",o._isMultiline),d(3),O(o.message))},styles:['.mat-mdc-tooltip{position:relative;transform:scale(0);display:inline-flex}.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-surface{word-break:normal;overflow-wrap:anywhere;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center;will-change:transform,opacity;background-color:var(--mat-tooltip-container-color, var(--mat-sys-inverse-surface));color:var(--mat-tooltip-supporting-text-color, var(--mat-sys-inverse-on-surface));border-radius:var(--mat-tooltip-container-shape, var(--mat-sys-corner-extra-small));font-family:var(--mat-tooltip-supporting-text-font, var(--mat-sys-body-small-font));font-size:var(--mat-tooltip-supporting-text-size, var(--mat-sys-body-small-size));font-weight:var(--mat-tooltip-supporting-text-weight, var(--mat-sys-body-small-weight));line-height:var(--mat-tooltip-supporting-text-line-height, var(--mat-sys-body-small-line-height));letter-spacing:var(--mat-tooltip-supporting-text-tracking, var(--mat-sys-body-small-tracking))}.mat-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}.mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:right}.mat-mdc-tooltip-panel{line-height:normal}.mat-mdc-tooltip-panel.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}\n'],encapsulation:2,changeDetection:0})}return t})();const Fpe=["button1"],Lpe=["button2"],Bpe=["*"],Vpe=t=>({"for-dark-background":t});function Hpe(t,n){1&t&&B(0,"mat-spinner",3),2&t&&v("diameter",C().loadingSize)}function jpe(t,n){1&t&&(f(0,"mat-icon"),m(1,"error_outline"),h())}var tc=function(t){return t[t.Normal=0]="Normal",t[t.Error=1]="Error",t[t.Loading=2]="Loading",t}(tc||{});let On=(()=>{class t{constructor(){this.forDarkBackground=!1,this.disabled=!1,this.color="",this.loadingSize=20,this.action=new ve,this.state=tc.Normal,this.buttonStates=tc}ngOnDestroy(){this.action.complete()}click(){this.disabled||(this.reset(),this.action.emit())}reset(e=!0){this.state=tc.Normal,e&&(this.disabled=!1)}focus(){this.button1&&this.button1.focus(),this.button2&&this.button2.focus()}showEnabled(){this.disabled=!1}showDisabled(){this.disabled=!0}showLoading(e=!0){this.state=tc.Loading,e&&(this.disabled=!0)}showError(e=!0){this.state=tc.Error,e&&(this.disabled=!1)}get isLoading(){return this.state===tc.Loading}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=se({type:t,selectors:[["app-button"]],viewQuery:function(i,o){if(1&i&&rt(Fpe,5)(Lpe,5),2&i){let r;ue(r=he())&&(o.button1=r.first),ue(r=he())&&(o.button2=r.first)}},inputs:{forDarkBackground:"forDarkBackground",disabled:"disabled",color:"color",loadingSize:"loadingSize"},outputs:{action:"action"},standalone:!1,ngContentSelectors:Bpe,decls:6,vars:7,consts:[["button2",""],["mat-raised-button","",3,"click","disabled","color","ngClass"],[1,"d-flex"],[3,"diameter"]],template:function(i,o){1&i&&(Si(),f(0,"button",1,0),L("click",function(){return o.click()}),f(2,"div",2),S(3,Hpe,1,1,"mat-spinner",3),S(4,jpe,2,0,"mat-icon"),At(5),h()()),2&i&&(v("disabled",o.disabled)("color",o.color)("ngClass",oe(5,Vpe,o.forDarkBackground)),d(3),k(o.state===o.buttonStates.Loading?3:-1),d(),k(o.state===o.buttonStates.Error?4:-1))},dependencies:[qt,Jn,lt,$o],styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], button[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}button[_ngcontent-%COMP%]{color:#f8f9f9;border-radius:10px}button[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}mat-icon[_ngcontent-%COMP%], mat-spinner[_ngcontent-%COMP%]{display:inline-block;margin-right:15px}.for-dark-background[_ngcontent-%COMP%]:disabled{background-color:#000!important;color:#fff!important;opacity:.3}"]})}}return t})();const Upe=["button"],zpe=["firstInput"],$pe=t=>({"rounded-elevated-box":t}),zV=(t,n)=>({"white-form-field":t,"element-disabled":n}),Wpe=(t,n)=>({"mt-2 app-button":t,"float-right":n}),Gpe=t=>({"element-disabled":t});function qpe(t,n){if(1&t&&(f(0,"mat-form-field",6)(1,"div",7)(2,"label",8),m(3),b(4,"translate"),h(),B(5,"input",12),h(),f(6,"mat-error")(7,"span"),m(8),b(9,"translate"),h()()()),2&t){const e=C();v("ngClass",oe(7,Gpe,e.working)),d(3),O(y(4,3,"settings.password.old-password")),d(5),O(y(9,5,"settings.password.errors.old-password-required"))}}let $V=(()=>{class t{constructor(e,i,o,r){this.authService=e,this.router=i,this.snackbarService=o,this.dialog=r,this.workingState=new ve,this.forInitialConfig=!1}ngOnInit(){this.form=new ZS({oldPassword:new eu("",this.forInitialConfig?null:Ve.required),newPassword:new eu("",Ve.compose([Ve.required,Ve.minLength(6),Ve.maxLength(64)])),newPasswordConfirmation:new eu("",[Ve.required,this.validatePasswords.bind(this)])}),this.formSubscription=this.form.controls.newPassword.valueChanges.subscribe(()=>this.form.controls.newPasswordConfirmation.updateValueAndValidity())}ngAfterViewInit(){this.forInitialConfig&&setTimeout(()=>this.firstInput.nativeElement.focus())}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe(),this.formSubscription.unsubscribe()}get working(){return!!this.button&&this.button.isLoading}changePassword(){this.form.valid&&!this.button.disabled&&(this.button.showLoading(),this.workingState.next(!0),this.subscription=this.forInitialConfig?this.authService.initialConfig(this.form.get("newPassword").value).subscribe(()=>{this.dialog.closeAll(),this.snackbarService.showDone("settings.password.initial-config.done"),this.workingState.next(!1)},e=>{this.button.showError(),e=Je(e),this.snackbarService.showError(e,null,!0),this.workingState.next(!1)}):this.authService.changePassword(this.form.get("oldPassword").value,this.form.get("newPassword").value).subscribe(()=>{this.router.navigate(["nodes"]),this.snackbarService.showDone("settings.password.password-changed"),this.workingState.next(!1)},e=>{this.button.showError(),e=Je(e),this.snackbarService.showError(e),this.workingState.next(!1)}))}validatePasswords(){return this.form&&this.form.get("newPassword").value!==this.form.get("newPasswordConfirmation").value?{invalid:!0}:null}static{this.\u0275fac=function(i){return new(i||t)(P(Vf),P(vt),P(bt),P(kt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-password"]],viewQuery:function(i,o){if(1&i&&rt(Upe,5)(zpe,5),2&i){let r;ue(r=he())&&(o.button=r.first),ue(r=he())&&(o.firstInput=r.first)}},inputs:{forInitialConfig:"forInitialConfig"},outputs:{workingState:"workingState"},standalone:!1,decls:33,vars:40,consts:[["firstInput",""],["button",""],[3,"ngClass"],[1,"box-internal-container","overflow"],[1,"help-icon",3,"inline","matTooltip"],[3,"formGroup"],[1,"white-form-field",3,"ngClass"],[1,"field-container"],["for","remoteKey",1,"field-label"],["type","password","formControlName","newPassword","maxlength","64","matInput",""],["type","password","formControlName","newPasswordConfirmation","maxlength","64","matInput",""],["color","primary",3,"action","ngClass","disabled","forDarkBackground"],["type","password","formControlName","oldPassword","maxlength","64","matInput",""]],template:function(i,o){1&i&&(f(0,"div",2)(1,"div",3)(2,"div")(3,"mat-icon",4),b(4,"translate"),m(5," help "),h()(),f(6,"form",5),S(7,qpe,10,9,"mat-form-field",6),f(8,"mat-form-field",2)(9,"div",7)(10,"label",8),m(11),b(12,"translate"),h(),B(13,"input",9,0),h(),f(15,"mat-error")(16,"span"),m(17),b(18,"translate"),h()()(),f(19,"mat-form-field",2)(20,"div",7)(21,"label",8),m(22),b(23,"translate"),h(),B(24,"input",10),h(),f(25,"mat-error")(26,"span"),m(27),b(28,"translate"),h()()(),f(29,"app-button",11,1),L("action",function(){return o.changePassword()}),m(31),b(32,"translate"),h()()()()),2&i&&(v("ngClass",oe(29,$pe,!o.forInitialConfig)),d(2),at((o.forInitialConfig?"":"white-")+"form-help-icon-container"),d(),v("inline",!0)("matTooltip",y(4,17,o.forInitialConfig?"settings.password.initial-config-help":"settings.password.help")),d(3),v("formGroup",o.form),d(),k(o.forInitialConfig?-1:7),d(),v("ngClass",ft(31,zV,!o.forInitialConfig,o.working)),d(3),O(y(12,19,o.forInitialConfig?"settings.password.initial-config.password":"settings.password.new-password")),d(6),O(y(18,21,"settings.password.errors.new-password-error")),d(2),v("ngClass",ft(34,zV,!o.forInitialConfig,o.working)),d(3),O(y(23,23,o.forInitialConfig?"settings.password.initial-config.repeat-password":"settings.password.repeat-password")),d(5),O(y(28,25,"settings.password.errors.passwords-not-match")),d(2),v("ngClass",ft(37,Wpe,!o.forInitialConfig,o.forInitialConfig))("disabled",!o.form.valid)("forDarkBackground",!o.forInitialConfig),d(2),I(" ",y(32,27,o.forInitialConfig?"settings.password.initial-config.set-password":"settings.change-password")," "))},dependencies:[qt,Cn,rn,sn,yn,ji,Xt,fn,wn,Es,ei,lt,pn,On,Se],styles:[".help-icon[_ngcontent-%COMP%]{display:inline}mat-form-field[_ngcontent-%COMP%]{margin-right:32px}app-button[_ngcontent-%COMP%]{float:right;margin-right:32px}"]})}}return t})();const Kpe=["*"],WV=t=>({"content-margin":t});function Ype(t,n){1&t&&(f(0,"button",2)(1,"mat-icon"),m(2,"close"),h()())}function Xpe(t,n){1&t&&sr(0)}function Zpe(t,n){if(1&t&&(f(0,"mat-dialog-content",4),tt(1,Xpe,1,0,"ng-container",5),h()),2&t){const e=C(),i=Vn(8);v("ngClass",oe(2,WV,e.includeVerticalMargins)),d(),v("ngTemplateOutlet",i)}}function Qpe(t,n){1&t&&sr(0)}function Jpe(t,n){if(1&t&&(f(0,"div",4),tt(1,Qpe,1,0,"ng-container",5),h()),2&t){const e=C(),i=Vn(8);v("ngClass",oe(2,WV,e.includeVerticalMargins)),d(),v("ngTemplateOutlet",i)}}function eme(t,n){1&t&&At(0)}let Kt=(()=>{class t{set dialog(e){e.disableClose=!0,this.dialogInternal=e}constructor(e){this.matDialog=e,this.includeScrollableArea=!0,this.includeVerticalMargins=!0}onKeyUp(){this.closePopup()}closePopup(){this.disableDismiss||this.matDialog.openDialogs[this.matDialog.openDialogs.length-1].id===this.dialogInternal.id&&this.dialogInternal.close()}static{this.\u0275fac=function(i){return new(i||t)(P(kt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-dialog"]],hostBindings:function(i,o){1&i&&L("keyup.esc",function(){return o.onKeyUp()},zC)},inputs:{headline:"headline",disableDismiss:"disableDismiss",includeScrollableArea:"includeScrollableArea",includeVerticalMargins:"includeVerticalMargins",dialog:"dialog"},standalone:!1,ngContentSelectors:Kpe,decls:9,vars:4,consts:[["contentTemplate",""],["mat-dialog-title","",1,"header"],["mat-dialog-close","","mat-icon-button","",1,"grey-button-background"],[1,"header-separator"],[3,"ngClass"],[4,"ngTemplateOutlet"]],template:function(i,o){1&i&&(Si(),f(0,"div",1)(1,"span"),m(2),h(),S(3,Ype,3,0,"button",2),h(),B(4,"div",3),S(5,Zpe,2,4,"mat-dialog-content",4),S(6,Jpe,2,4,"div",4),tt(7,eme,1,0,"ng-template",null,0,El)),2&i&&(d(2),O(o.headline),d(),k(o.disableDismiss?-1:3),d(2),k(o.includeScrollableArea?5:-1),d(),k(o.includeScrollableArea?-1:6))},dependencies:[qt,Pd,DB,wS,Kd,Ms,lt],styles:['.cursor-pointer[_ngcontent-%COMP%], .header[_ngcontent-%COMP%] .mat-mdc-icon-button[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%], .header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media(max-width:767px),(min-width:992px)and (max-width:1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media(max-width:767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}[_nghost-%COMP%]{color:#202226}.header[_ngcontent-%COMP%]{margin:-24px -24px 0;color:#215f9e;padding:0 14px 0 24px;font-size:1rem;text-transform:uppercase;font-weight:700;display:flex;align-items:center}.header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{flex-grow:1}@media(max-width:767px){.header[_ngcontent-%COMP%]{padding:0 2px 0 24px}}.header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{line-height:1rem;margin:18px 0}.header[_ngcontent-%COMP%] .mat-mdc-icon-button[_ngcontent-%COMP%]{color:#a6b2b2;width:32px;height:32px;line-height:20px;margin-left:10px;padding:0}@media(max-width:767px){.header[_ngcontent-%COMP%] .mat-mdc-icon-button[_ngcontent-%COMP%]{width:46px;height:46px}}.header-separator[_ngcontent-%COMP%]{height:1px;background-color:#215f9e33;margin-left:-12px;margin-right:-12px}.content-margin[_ngcontent-%COMP%]{padding-top:18px;padding-bottom:24px!important}']})}}return t})(),tme=(()=>{class t{static openDialog(e){const i=new Lt;return i.autoFocus=!1,i.width=ze.smallModalWidth,e.open(t,i)}constructor(e){this.dialogRef=e,this.disableDismiss=!1}static{this.\u0275fac=function(i){return new(i||t)(P(It))}}static{this.\u0275cmp=se({type:t,selectors:[["app-initial-setup"]],standalone:!1,decls:3,vars:6,consts:[[3,"headline","dialog","disableDismiss"],[3,"workingState","forInitialConfig"]],template:function(i,o){1&i&&(f(0,"app-dialog",0),b(1,"translate"),f(2,"app-password",1),L("workingState",function(s){return o.disableDismiss=s}),h()()),2&i&&(v("headline",y(1,4,"settings.password.initial-config.title"))("dialog",o.dialogRef)("disableDismiss",o.disableDismiss),d(2),v("forInitialConfig",!0))},dependencies:[$V,Kt,Se],encapsulation:2})}}return t})();var mk=function qV(t){var n,e,i,M,A,o=E.prototype={constructor:E,toString:null,valueOf:null},r=new E(1),s=20,a=4,l=-7,c=21,u=-1e7,p=1e7,g=!1,_=1,w=0,x={prefix:"",groupSize:3,secondaryGroupSize:0,groupSeparator:",",decimalSeparator:".",fractionGroupSize:0,fractionGroupSeparator:"\xa0",suffix:""},T="0123456789abcdefghijklmnopqrstuvwxyz";function E(M,A){var F,U,H,G,J,V,N,q,j=this;if(!(j instanceof E))return new E(M,A);if(q=typeof M,null==A){if(W(M))return j.s=M.s,void(!M.c||M.e>p?j.c=j.e=null:M.e=10;J/=10,G++);return void(G>p?j.c=j.e=null:(j.e=G,j.c=[M]))}N=String(M)}else{if("string"==q){if(!nme.test(N=M))return i(j,N)}else{if("bigint"!=q)throw Error(bo+"Invalid argument: "+M);N=String(M)}j.s=45==N.charCodeAt(0)?(N=N.slice(1),-1):1}(G=N.indexOf("."))>-1&&(N=N.replace(".","")),(J=N.search(/e/i))>0?(G<0&&(G=J),G+=+N.slice(J+1),N=N.substring(0,J)):G<0&&(G=N.length)}else{if("string"!=q)throw Error(bo+"String expected: "+M);for(xn(A,2,T.length,"Base"),j.s=45===(N=M).charCodeAt(0)?(N=N.slice(1),-1):1,F=T.slice(0,A),G=J=0,V=N.length;JG){G=V;continue}}else if(!H&&(N==N.toUpperCase()&&(N=N.toLowerCase())||N==N.toLowerCase()&&(N=N.toUpperCase()))){H=!0,J=-1,G=0;continue}return i(j,M,A)}(G=(N=e(N,A,10,j.s)).indexOf("."))>-1?N=N.replace(".",""):G=N.length}for(J=0;48===N.charCodeAt(J);J++);for(V=N.length;48===N.charCodeAt(--V););if(N=N.slice(J,++V))if(V-=J,(G=G-J-1)>p)j.c=j.e=null;else if(G=c)?rv(N,J):Da(N,J,"0");else if(G=(M=ee(new E(M),A,F)).e,V=(N=xr(M.c)).length,1==U||2==U&&(A<=G||G<=l)){for(;VJ),N=Da(N,G,"0"),G+1>V){if(--A>0)for(N+=".";A--;N+="0");}else if((A+=G-V)>0)for(G+1==V&&(N+=".");A--;N+="0");return M.s<0&&H?"-"+N:N}function W(M){return M instanceof E||!!M&&!0===M._isBigNumber}function Y(M,A){for(var F,U,H=1,G=new E(M[0]);H=10;H/=10,U++);return(F=U+14*F-1)>p?M.c=M.e=null:F=10;V/=10,H++);if((G=A-H)<0)G+=14,N=Q[q=0],j=Cr(N/fe[H-(J=A)-1]%10);else if((q=gk((G+1)/14))>=Q.length){if(!U)break e;for(;Q.length<=q;Q.push(0));N=j=0,H=1,J=(G%=14)-14+1}else{for(N=V=Q[q],H=1;V>=10;V/=10,H++);j=(J=(G%=14)-14+H)<0?0:Cr(N/fe[H-J-1]%10)}if(U=U||A<0||null!=Q[q+1]||(J<0?N:N%fe[H-J-1]),U=F<4?(j||U)&&(0==F||F==(M.s<0?3:2)):j>5||5==j&&(4==F||U||6==F&&(G>0?J>0?N/fe[H-J]:0:Q[q-1])%10&1||F==(M.s<0?8:7)),A<1||!Q[0])return Q.length=0,U?(Q[0]=fe[(14-(A-=M.e+1)%14)%14],M.e=-A||0):Q[0]=M.e=0,M;if(0==G?(Q.length=q,V=1,q--):(Q.length=q+1,V=fe[14-G],Q[q]=J>0?Cr(N/fe[H-J]%fe[J])*V:0),U)for(;;){if(0==q){for(G=1,J=Q[0];J>=10;J/=10,G++);for(J=Q[0]+=V,V=1;J>=10;J/=10,V++);G!=V&&(M.e++,Q[0]==wr&&(Q[0]=1));break}if(Q[q]+=V,Q[q]!=wr)break;Q[q--]=0,V=1}for(G=Q.length;0===Q[--G];Q.pop());}M.e>p?M.c=M.e=null:M.e=c?rv(A,F):Da(A,F,"0"),M.s<0?"-"+A:A)}return E.clone=qV,E.ROUND_UP=0,E.ROUND_DOWN=1,E.ROUND_CEIL=2,E.ROUND_FLOOR=3,E.ROUND_HALF_UP=4,E.ROUND_HALF_DOWN=5,E.ROUND_HALF_EVEN=6,E.ROUND_HALF_CEIL=7,E.ROUND_HALF_FLOOR=8,E.EUCLID=9,E.config=E.set=function(M){var A,F;if(null!=M){if("object"!=typeof M)throw Error(bo+"Object expected: "+M);if(M.hasOwnProperty(A="DECIMAL_PLACES")&&(xn(F=M[A],0,mi,A),s=F),M.hasOwnProperty(A="ROUNDING_MODE")&&(xn(F=M[A],0,8,A),a=F),M.hasOwnProperty(A="EXPONENTIAL_AT")&&((F=M[A])&&F.pop?(xn(F[0],-mi,0,A),xn(F[1],0,mi,A),l=F[0],c=F[1]):(xn(F,-mi,mi,A),l=-(c=F<0?-F:F))),M.hasOwnProperty(A="RANGE"))if((F=M[A])&&F.pop)xn(F[0],-mi,-1,A),xn(F[1],1,mi,A),u=F[0],p=F[1];else{if(xn(F,-mi,mi,A),!F)throw Error(bo+A+" cannot be zero: "+F);u=-(p=F<0?-F:F)}if(M.hasOwnProperty(A="CRYPTO")){if((F=M[A])!==!!F)throw Error(bo+A+" not true or false: "+F);if(F){if(!(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes)))throw g=!F,Error(bo+"crypto unavailable");g=F}else g=F}if(M.hasOwnProperty(A="MODULO_MODE")&&(xn(F=M[A],0,9,A),_=F),M.hasOwnProperty(A="POW_PRECISION")&&(xn(F=M[A],0,mi,A),w=F),M.hasOwnProperty(A="FORMAT")){if("object"!=typeof(F=M[A]))throw Error(bo+A+" not an object: "+F);x=F}if(M.hasOwnProperty(A="ALPHABET")){if("string"!=typeof(F=M[A])||/^.?$|[+\-.\s]|(.).*\1/.test(F))throw Error(bo+A+" invalid: "+F);T=F}}return{DECIMAL_PLACES:s,ROUNDING_MODE:a,EXPONENTIAL_AT:[l,c],RANGE:[u,p],CRYPTO:g,MODULO_MODE:_,POW_PRECISION:w,FORMAT:x,ALPHABET:T}},E.isBigNumber=function(M){if(!W(M))return!1;var A,F,U=M.c,H=M.e,G=M.s;if("[object Array]"!={}.toString.call(U))return null===U&&null===H&&(null===G||1===G||-1===G);if(1!==G&&-1!==G||H<-mi||H>mi||H!==Cr(H))return!1;if(0===U[0])return 0===H&&1===U.length;if((A=(H+1)%14)<1&&(A+=14),String(U[0]).length!==A)return!1;for(A=0;A=wr||F!==Cr(F))return!1;return 0!==F},E.maximum=E.max=function(){return Y(arguments,-1)},E.minimum=E.min=function(){return Y(arguments,1)},E.random=(M=9007199254740992,A=Math.random()*M&2097151?function(){return Cr(Math.random()*M)}:function(){return 8388608*(1073741824*Math.random()|0)+(8388608*Math.random()|0)},function(F){var U,H,G,J,V,N=0,q=[],j=new E(r);if(null==F?F=s:xn(F,0,mi),J=gk(F/14),g)if(crypto.getRandomValues){for(U=crypto.getRandomValues(new Uint32Array(J*=2));N>>11))>=9e15?(H=crypto.getRandomValues(new Uint32Array(2)),U[N]=H[0],U[N+1]=H[1]):(q.push(V%1e14),N+=2);N=J/2}else{if(!crypto.randomBytes)throw g=!1,Error(bo+"crypto unavailable");for(U=crypto.randomBytes(J*=7);N=9e15?crypto.randomBytes(7).copy(U,N):(q.push(V%1e14),N+=7);N=J/7}if(!g)for(;N=10;V/=10,N++);N<14&&(G-=14-N)}return j.e=G,j.c=q,j}),E.sum=function(){for(var M=1,A=arguments,F=new E(A[0]);MH-1&&(null==V[J+1]&&(V[J+1]=0),V[J+1]+=V[J]/H|0,V[J]%=H)}return V.reverse()}return function(F,U,H,G,J){var V,N,q,j,Q,fe,_e,Te,ut=F.indexOf("."),Pe=s,Xe=a;for(ut>=0&&(j=w,w=0,F=F.replace(".",""),fe=(Te=new E(U)).pow(F.length-ut),w=j,Te.c=A(Da(xr(fe.c),fe.e,"0"),10,H,M),Te.e=Te.c.length),q=j=(_e=A(F,U,H,J?(V=T,M):(V=M,T))).length;0==_e[--j];_e.pop());if(!_e[0])return V.charAt(0);if(ut<0?--q:(fe.c=_e,fe.e=q,fe.s=G,_e=(fe=n(fe,Te,Pe,Xe,H)).c,Q=fe.r,q=fe.e),ut=_e[N=q+Pe+1],j=H/2,Q=Q||N<0||null!=_e[N+1],Q=Xe<4?(null!=ut||Q)&&(0==Xe||Xe==(fe.s<0?3:2)):ut>j||ut==j&&(4==Xe||Q||6==Xe&&1&_e[N-1]||Xe==(fe.s<0?8:7)),N<1||!_e[0])F=Q?Da(V.charAt(1),-Pe,V.charAt(0)):V.charAt(0);else{if(_e.length=N,Q)for(--H;++_e[--N]>H;)_e[N]=0,N||(++q,_e=[1].concat(_e));for(j=_e.length;!_e[--j];);for(ut=0,F="";ut<=j;F+=V.charAt(_e[ut++]));F=Da(F,q,V.charAt(0))}return F}}(),n=function(){function M(U,H,G){var J,V,N,q,j=0,Q=U.length,fe=H%ka,_e=H/ka|0;for(U=U.slice();Q--;)j=((V=fe*(N=U[Q]%ka)+(J=_e*N+(q=U[Q]/ka|0)*fe)%ka*ka+j)/G|0)+(J/ka|0)+_e*q,U[Q]=V%G;return j&&(U=[j].concat(U)),U}function A(U,H,G,J){var V,N;if(G!=J)N=G>J?1:-1;else for(V=N=0;VH[V]?1:-1;break}return N}function F(U,H,G,J){for(var V=0;G--;)U[G]-=V,U[G]=(V=U[G]1;U.splice(0,1));}return function(U,H,G,J,V){var N,q,j,Q,fe,_e,Te,ut,Pe,Xe,st,Ct,Yo,qi,La,Co,bp,Xo=U.s==H.s?1:-1,ro=U.c,Rn=H.c;if(!(ro&&ro[0]&&Rn&&Rn[0]))return new E(U.s&&H.s&&(ro?!Rn||ro[0]!=Rn[0]:Rn)?ro&&0==ro[0]||!Rn?0*Xo:Xo/0:NaN);for(Pe=(ut=new E(Xo)).c=[],Xo=G+(q=U.e-H.e)+1,V||(V=wr,q=Go(U.e/14)-Go(H.e/14),Xo=Xo/14|0),j=0;Rn[j]==(ro[j]||0);j++);if(Rn[j]>(ro[j]||0)&&q--,Xo<0)Pe.push(1),Q=!0;else{for(qi=ro.length,Co=Rn.length,j=0,Xo+=2,(fe=Cr(V/(Rn[0]+1)))>1&&(Rn=M(Rn,fe,V),ro=M(ro,fe,V),Co=Rn.length,qi=ro.length),Yo=Co,st=(Xe=ro.slice(0,Co)).length;st=V/2&&La++;do{if(fe=0,(N=A(Rn,Xe,Co,st))<0){if(Ct=Xe[0],Co!=st&&(Ct=Ct*V+(Xe[1]||0)),(fe=Cr(Ct/La))>1)for(fe>=V&&(fe=V-1),Te=(_e=M(Rn,fe,V)).length,st=Xe.length;1==A(_e,Xe,Te,st);)fe--,F(_e,Co=10;Xo/=10,j++);ee(ut,G+(ut.e=j+14*q-1)+1,J,Q)}else ut.e=q,ut.r=+Q;return ut}}(),i=function(){var M=/^(-?)0([xbo])(?=\w[\w.]*$)/i,A=/^([^.]+)\.$/,F=/^\.([^.]+)$/,U=/^-?(Infinity|NaN)$/,H=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(G,J,V){var N,q=J.replace(H,"");if(U.test(q))return G.s=isNaN(q)?null:q<0?-1:1,void(G.c=G.e=null);if(q=q.replace(M,function(j,Q,fe){return N="x"==(fe=fe.toLowerCase())?16:"b"==fe?2:8,V&&V!=N?j:Q}),V&&(N=V,q=q.replace(A,"$1").replace(F,"0.$1")),J!=q)return new E(q,N);throw Error(bo+"Not a"+(V?" base "+V:"")+" number: "+J)}}(),o.absoluteValue=o.abs=function(){var M=new E(this);return M.s<0&&(M.s=1),M},o.comparedTo=function(M,A){return nc(this,new E(M,A))},o.decimalPlaces=o.dp=function(M,A){var F,U,H,G=this;if(null!=M)return xn(M,0,mi),null==A?A=a:xn(A,0,8),ee(new E(G),M+G.e+1,A);if(!(F=G.c))return null;if(U=14*((H=F.length-1)-Go(this.e/14)),H=F[H])for(;H%10==0;H/=10,U--);return U<0&&(U=0),U},o.dividedBy=o.div=function(M,A){return n(this,new E(M,A),s,a)},o.dividedToIntegerBy=o.idiv=function(M,A){return n(this,new E(M,A),0,1)},o.exponentiatedBy=o.pow=function(M,A){var F,U,H,G,V,N,q,j,Q=this;if((M=new E(M)).c&&!M.isInteger())throw Error(bo+"Exponent not an integer: "+ie(M));if(null!=A&&(A=new E(A)),V=M.e>14,!Q.c||!Q.c[0]||1==Q.c[0]&&!Q.e&&1==Q.c.length||!M.c||!M.c[0])return j=new E(Math.pow(+ie(Q),V?M.s*(2-ov(M)):+ie(M))),A?j.mod(A):j;if(N=M.s<0,A){if(A.c?!A.c[0]:!A.s)return new E(NaN);(U=!N&&Q.isInteger()&&A.isInteger())&&(Q=Q.mod(A))}else{if(M.e>9&&(Q.e>0||Q.e<-1||(0==Q.e?Q.c[0]>1||V&&Q.c[1]>=24e7:Q.c[0]<8e13||V&&Q.c[0]<=9999975e7)))return G=Q.s<0&&ov(M)?-0:0,Q.e>-1&&(G=1/G),new E(N?1/G:G);w&&(G=gk(w/14+2))}for(V?(F=new E(.5),N&&(M.s=1),q=ov(M)):q=(H=Math.abs(+ie(M)))%2,j=new E(r);;){if(q){if(!(j=j.times(Q)).c)break;G?j.c.length>G&&(j.c.length=G):U&&(j=j.mod(A))}if(H){if(0===(H=Cr(H/2)))break;q=H%2}else if(ee(M=M.times(F),M.e+1,1),M.e>14)q=ov(M);else{if(0===(H=+ie(M)))break;q=H%2}Q=Q.times(Q),G?Q.c&&Q.c.length>G&&(Q.c.length=G):U&&(Q=Q.mod(A))}return U?j:(N&&(j=r.div(j)),A?j.mod(A):G?ee(j,w,a,void 0):j)},o.integerValue=function(M){var A=new E(this);return null==M?M=a:xn(M,0,8),ee(A,A.e+1,M)},o.isEqualTo=o.eq=function(M,A){return 0===nc(this,new E(M,A))},o.isFinite=function(){return!!this.c},o.isGreaterThan=o.gt=function(M,A){return nc(this,new E(M,A))>0},o.isGreaterThanOrEqualTo=o.gte=function(M,A){return 1===(A=nc(this,new E(M,A)))||0===A},o.isInteger=function(){return!!this.c&&Go(this.e/14)>this.c.length-2},o.isLessThan=o.lt=function(M,A){return nc(this,new E(M,A))<0},o.isLessThanOrEqualTo=o.lte=function(M,A){return-1===(A=nc(this,new E(M,A)))||0===A},o.isNaN=function(){return!this.s},o.isNegative=function(){return this.s<0},o.isPositive=function(){return this.s>0},o.isZero=function(){return!!this.c&&0==this.c[0]},o.minus=function(M,A){var F,U,H,G,J=this,V=J.s;if(A=(M=new E(M,A)).s,!V||!A)return new E(NaN);if(V!=A)return M.s=-A,J.plus(M);var N=J.e/14,q=M.e/14,j=J.c,Q=M.c;if(!N||!q){if(!j||!Q)return j?(M.s=-A,M):new E(Q?J:NaN);if(!j[0]||!Q[0])return Q[0]?(M.s=-A,M):new E(j[0]?J:3==a?-0:0)}if(N=Go(N),q=Go(q),j=j.slice(),V=N-q){for((G=V<0)?(V=-V,H=j):(q=N,H=Q),H.reverse(),A=V;A--;H.push(0));H.reverse()}else for(U=(G=(V=j.length)<(A=Q.length))?V:A,V=A=0;A0)for(;A--;j[F++]=0);for(A=wr-1;U>V;){if(j[--U]=0;){for(F=0,fe=Ct[H]%Pe,_e=Ct[H]/Pe|0,G=H+(J=N);G>H;)F=((q=fe*(q=st[--J]%Pe)+(V=_e*q+(j=st[J]/Pe|0)*fe)%Pe*Pe+Te[G]+F)/ut|0)+(V/Pe|0)+_e*j,Te[G--]=q%ut;Te[G]=F}return F?++U:Te.splice(0,1),K(M,Te,U)},o.negated=function(){var M=new E(this);return M.s=-M.s||null,M},o.plus=function(M,A){var F,U=this,H=U.s;if(A=(M=new E(M,A)).s,!H||!A)return new E(NaN);if(H!=A)return M.s=-A,U.minus(M);var G=U.e/14,J=M.e/14,V=U.c,N=M.c;if(!G||!J){if(!V||!N)return new E(H/0);if(!V[0]||!N[0])return N[0]?M:new E(V[0]?U:0*H)}if(G=Go(G),J=Go(J),V=V.slice(),H=G-J){for(H>0?(J=G,F=N):(H=-H,F=V),F.reverse();H--;F.push(0));F.reverse()}for((H=V.length)-(A=N.length)<0&&(F=N,N=V,V=F,A=H),H=0;A;)H=(V[--A]=V[A]+N[A]+H)/wr|0,V[A]=wr===V[A]?0:V[A]%wr;return H&&(V=[H].concat(V),++J),K(M,V,J)},o.precision=o.sd=function(M,A){var F,U,H,G=this;if(null!=M&&M!==!!M)return xn(M,1,mi),null==A?A=a:xn(A,0,8),ee(new E(G),M,A);if(!(F=G.c))return null;if(U=14*(H=F.length-1)+1,H=F[H]){for(;H%10==0;H/=10,U--);for(H=F[0];H>=10;H/=10,U++);}return M&&G.e+1>U&&(U=G.e+1),U},o.shiftedBy=function(M){return xn(M,-GV,GV),this.times("1e"+M)},o.squareRoot=o.sqrt=function(){var M,A,F,U,H,G=this,J=G.c,V=G.s,N=G.e,q=s+4,j=new E("0.5");if(1!==V||!J||!J[0])return new E(!V||V<0&&(!J||J[0])?NaN:J?G:1/0);if(0==(V=Math.sqrt(+ie(G)))||V==1/0?(((A=xr(J)).length+N)%2==0&&(A+="0"),V=Math.sqrt(+A),N=Go((N+1)/2)-(N<0||N%2),F=new E(A=V==1/0?"5e"+N:(A=V.toExponential()).slice(0,A.indexOf("e")+1)+N)):F=new E(V+""),F.c[0])for((V=(N=F.e)+q)<3&&(V=0);;)if(F=j.times((H=F).plus(n(G,H,q,1))),xr(H.c).slice(0,V)===(A=xr(F.c)).slice(0,V)){if(F.e0&&Te>0){for(j=_e.substr(0,G=Te%V||V);G0&&(j+=q+_e.slice(G)),fe&&(j="-"+j)}U=Q?j+(F.decimalSeparator||"")+((N=+F.fractionGroupSize)?Q.replace(new RegExp("\\d{"+N+"}\\B","g"),"$&"+(F.fractionGroupSeparator||"")):Q):j}return(F.prefix||"")+U+(F.suffix||"")},o.toFraction=function(M){var A,F,U,H,G,J,V,N,q,j,Q,fe,_e=this,Te=_e.c;if(null!=M&&(!(V=new E(M)).isInteger()&&(V.c||1!==V.s)||V.lt(r)))throw Error(bo+"Argument "+(V.isInteger()?"out of range: ":"not an integer: ")+ie(V));if(!Te)return new E(_e);for(A=new E(r),q=F=new E(r),U=N=new E(r),fe=xr(Te),G=A.e=fe.length-_e.e-1,A.c[0]=_k[(J=G%14)<0?14+J:J],M=!M||V.comparedTo(A)>0?G>0?A:q:V,J=p,p=1/0,V=new E(fe),N.c[0]=0;j=n(V,A,0,1),1!=(H=F.plus(j.times(U))).comparedTo(M);)F=U,U=H,q=N.plus(j.times(H=q)),N=H,A=V.minus(j.times(H=A)),V=H;return H=n(M.minus(F),U,0,1),N=N.plus(H.times(q)),F=F.plus(H.times(U)),N.s=q.s=_e.s,Q=n(q,U,G*=2,a).minus(_e).abs().comparedTo(n(N,F,G,a).minus(_e).abs())<1?[q,U]:[N,F],p=J,Q},o.toNumber=function(){return+ie(this)},o.toObject=function(){var M=this;return{c:M.c?M.c.slice():null,e:M.e,s:M.s}},o.toPrecision=function(M,A){return null!=M&&xn(M,1,mi),R(this,M,A,2)},o.toString=function(M){var A,F=this,U=F.s,H=F.e;return null===H?U?(A="Infinity",U<0&&(A="-"+A)):A="NaN":(null==M?A=H<=l||H>=c?rv(xr(F.c),H):Da(xr(F.c),H,"0"):(xn(M,2,T.length,"Base"),A=e(Da(xr(F.c),H,"0"),10,M,U,!0)),U<0&&F.c[0]&&(A="-"+A)),A},o.valueOf=o.toJSON=function(){return ie(this)},o._isBigNumber=!0,null!=t&&E.set(t),E}(),nme=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,gk=Math.ceil,Cr=Math.floor,bo="[BigNumber Error] ",wr=1e14,GV=9007199254740991,_k=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],ka=1e7,mi=1e9;function Go(t){var n=0|t;return t>0||t===n?n:n-1}function xr(t){for(var n,e,i=1,o=t.length,r=t[0]+"";ic^e?1:-1;for(a=(l=o.length)<(c=r.length)?l:c,s=0;sr[s]^e?1:-1;return l==c?0:l>c^e?1:-1}function xn(t,n,e,i){if(te||t!==Cr(t))throw Error(bo+(i||"Argument")+("number"==typeof t?te?" out of range: ":" not an integer: ":" not a primitive number: ")+String(t))}function ov(t){var n=t.c.length-1;return Go(t.e/14)==n&&t.c[n]%2!=0}function rv(t,n){return(t.length>1?t.charAt(0)+"."+t.slice(1):t)+(n<0?"e":"e+")+n}function Da(t,n,e){var i,o;if(n<0){for(o=e+".";++n;o+=e);t=o+t}else if(++n>(i=t.length)){for(o=e,n-=i;--n;o+=e);t+=o}else n{class t{constructor(e,i){this.apiService=e,this.storageService=i}getNodes(){let e=[];return this.apiService.get("visors-summary").pipe(ye(i=>{i&&i.forEach(l=>{const c=new bk;c.online=l.online,c.localPk=l.overview.local_pk,c.version=l.overview.build_info.version,c.configVersion=l.config_version,c.os=l.overview.build_info.os,c.arch=l.overview.build_info.arch,c.autoconnectTransports=l.public_autoconnect,c.isPublic=l.is_public,c.buildTag=l.build_tag?l.build_tag:"",c.rewardsAddress=l.reward_address,c.ip=l.overview&&l.overview.local_ip&&l.overview.local_ip.trim()?l.overview.local_ip:null,c.publicIp=l.overview&&l.overview.public_ip&&l.overview.public_ip.trim()?l.overview.public_ip:null,c.isSymmeticNat=l.overview.is_symmetic_nat,l.overview.country_code&&(c.countryCode=l.overview.country_code),l.overview.region_name&&(c.regionName=l.overview.region_name),l.overview.city_name&&(c.cityName=l.overview.city_name),l.overview.latitude&&(c.latitude=l.overview.latitude),l.overview.longitude&&(c.longitude=l.overview.longitude);const u=this.storageService.getLabelInfo(c.localPk);if(c.label=u&&u.label?u.label:this.storageService.getDefaultLabel(c),!c.online)return c.dmsgServerPk="",c.roundTripPing="",void e.push(c);c.health={servicesHealth:l.health.services_health,uptimeTrackerHealth:l.health.uptime_tracker_health,autoconnectHealth:l.health.autoconnect_health,transportabilityHealth:l.health.transportability_health},c.dmsgServerPk=l.dmsg_stats.server_public_key,c.connectedDmsgServers=l.connected_dmsg_servers||[],c.roundTripPing=this.nsToMs(l.dmsg_stats.round_trip),l.dmsg_servers&&Array.isArray(l.dmsg_servers)&&(c.dmsgServers=l.dmsg_servers.map(p=>({pk:p.pk,latency:p.latency||0}))),c.transports=[],l.overview.transports&&l.overview.transports.forEach(p=>{c.transports.push({id:p.id,localPk:p.local_pk,remotePk:p.remote_pk,type:p.type,recv:p.log?p.log.recv:0,sent:p.log?p.log.sent:0})}),c.apps=[],l.overview.apps&&l.overview.apps.forEach(p=>{c.apps.push({name:p.name,autostart:p.auto_start,port:p.port,status:p.status,detailedStatus:p.detailed_status,args:p.args})}),c.isHypervisor=l.is_hypervisor,e.push(c)});const o=new Map,r=[],s=[];e.forEach(l=>{o.set(l.localPk,l),l.online&&(r.push(l.localPk),s.push(l.ip))}),this.storageService.includeVisibleLocalNodes(r,s);const a=[];return this.storageService.getSavedLocalNodes().forEach(l=>{if(!o.has(l.publicKey)&&!l.hidden){const c=new bk;c.localPk=l.publicKey;const u=this.storageService.getLabelInfo(l.publicKey);c.label=u&&u.label?u.label:this.storageService.getDefaultLabel(c),c.online=!1,c.dmsgServerPk="",c.roundTripPing="",a.push(c)}o.has(l.publicKey)&&!o.get(l.publicKey).online&&l.hidden&&o.delete(l.publicKey)}),e=[],o.forEach(l=>e.push(l)),e=e.concat(a),e}))}nsToMs(e){let i=new sv(e).dividedBy(1e6);return i=i.isLessThan(10)?i.decimalPlaces(2):i.decimalPlaces(0),i.toString(10)}getNode(e){return this.apiService.get(`visors/${e}/summary`).pipe(ye(i=>{const o=new bk;o.localPk=i.overview.local_pk,o.version=i.overview.build_info.version,o.configVersion=i.config_version,o.os=i.overview.build_info.os,o.arch=i.overview.build_info.arch,o.secondsOnline=Math.floor(Number.parseFloat(i.uptime)),o.minHops=i.min_hops,o.buildTag=i.build_tag,o.skybianBuildVersion=i.skybian_build_version,o.connectedDmsgServers=i.connected_dmsg_servers||[],o.isSymmeticNat=i.overview.is_symmetic_nat,o.publicIp=i.overview.public_ip,o.autoconnectTransports=i.public_autoconnect,o.isPublic=i.is_public,o.rewardsAddress=i.reward_address,i.overview.country_code&&(o.countryCode=i.overview.country_code),i.overview.region_name&&(o.regionName=i.overview.region_name),i.overview.city_name&&(o.cityName=i.overview.city_name),i.overview.latitude&&(o.latitude=i.overview.latitude),i.overview.longitude&&(o.longitude=i.overview.longitude),o.ip=i.overview.local_ip&&i.overview.local_ip.trim()?i.overview.local_ip:null;const r=this.storageService.getLabelInfo(o.localPk);o.label=r&&r.label?r.label:this.storageService.getDefaultLabel(o),o.health={servicesHealth:i.health.services_health,uptimeTrackerHealth:i.health.uptime_tracker_health,autoconnectHealth:i.health.autoconnect_health,transportabilityHealth:i.health.transportability_health},o.transports=[],i.overview.transports&&i.overview.transports.forEach(a=>{o.transports.push({id:a.id,localPk:a.local_pk,remotePk:a.remote_pk,type:a.type,recv:a.log.recv,sent:a.log.sent})}),o.persistentTransports=[],i.persistent_transports&&i.persistent_transports.forEach(a=>{o.persistentTransports.push({pk:a.pk,type:a.type})}),o.routes=[],i.routes&&i.routes.forEach(a=>{o.routes.push({key:a.key,rule:a.rule}),a.rule_summary&&(o.routes[o.routes.length-1].ruleSummary={keepAlive:a.rule_summary.keep_alive,ruleType:a.rule_summary.rule_type,keyRouteId:a.rule_summary.key_route_id},a.rule_summary.app_fields&&a.rule_summary.app_fields.route_descriptor&&(o.routes[o.routes.length-1].appFields={routeDescriptor:{dstPk:a.rule_summary.app_fields.route_descriptor.dst_pk,dstPort:a.rule_summary.app_fields.route_descriptor.dst_port,srcPk:a.rule_summary.app_fields.route_descriptor.src_pk,srcPort:a.rule_summary.app_fields.route_descriptor.src_port}}),a.rule_summary.forward_fields&&(o.routes[o.routes.length-1].forwardFields={nextRid:a.rule_summary.forward_fields.next_rid,nextTid:a.rule_summary.forward_fields.next_tid},a.rule_summary.forward_fields.route_descriptor&&(o.routes[o.routes.length-1].forwardFields.routeDescriptor={dstPk:a.rule_summary.forward_fields.route_descriptor.dst_pk,dstPort:a.rule_summary.forward_fields.route_descriptor.dst_port,srcPk:a.rule_summary.forward_fields.route_descriptor.src_pk,srcPort:a.rule_summary.forward_fields.route_descriptor.src_port})),a.rule_summary.intermediary_forward_fields&&(o.routes[o.routes.length-1].intermediaryForwardFields={nextRid:a.rule_summary.intermediary_forward_fields.next_rid,nextTid:a.rule_summary.intermediary_forward_fields.next_tid}))}),o.apps=[],i.overview.apps&&i.overview.apps.forEach(a=>{o.apps.push({name:a.name,status:a.status,port:a.port,autostart:a.auto_start,detailedStatus:a.detailed_status,args:a.args})});let s=!1;return i.dmsg_stats&&(o.dmsgServerPk=i.dmsg_stats.server_public_key,o.roundTripPing=this.nsToMs(i.dmsg_stats.round_trip),s=!0),s||(o.dmsgServerPk="-",o.roundTripPing="-1"),i.dmsg_servers&&Array.isArray(i.dmsg_servers)&&(o.dmsgServers=i.dmsg_servers.map(a=>({pk:a.pk,latency:a.latency||0}))),o.isHypervisor=i.is_hypervisor,o}))}setRewardsAddress(e,i){return this.apiService.put(`visors/${e}/reward`,{reward_address:i})}getRewardsAddress(e){return this.apiService.get(`visors/${e}/reward`)}getRuntimeLogs(e){return this.apiService.get(`visors/${e}/runtime-logs`)}deleteRewardsAddress(e){return this.apiService.delete(`visors/${e}/reward`)}getProxies(e){return this.apiService.get(`visors/${e}/proxies`)}setProxyEnabled(e,i,o){return this.apiService.post(`visors/${e}/proxies/set`,{kind:i,enable:o})}setProxyUpstream(e,i,o){return this.apiService.post(`visors/${e}/proxies/upstream`,{kind:i,addr:o})}getSkynetPorts(e){return this.apiService.get(`visors/${e}/skynet-ports`)}registerSkynetPort(e,i){return this.apiService.post(`visors/${e}/skynet-ports/register`,{port:i})}deregisterSkynetPort(e,i){return this.apiService.post(`visors/${e}/skynet-ports/deregister`,{port:i})}getForwardedPorts(e){return this.apiService.get(`visors/${e}/forwarded-ports`)}registerForwardedPort(e,i){return this.apiService.post(`visors/${e}/forwarded-ports/register`,i)}updateForwardedPort(e,i){return this.apiService.post(`visors/${e}/forwarded-ports/update`,i)}getSkynetForwards(e){return this.apiService.get(`visors/${e}/skynet-forwards`)}skynetConnect(e,i,o,r,s){return this.apiService.post(`visors/${e}/skynet-forwards/connect`,{network:i,remote_pk:o,remote_port:r,local_port:s})}skynetDisconnect(e,i){return this.apiService.post(`visors/${e}/skynet-forwards/disconnect`,{id:i})}shutdown(e){return this.apiService.post(`visors/${e}/shutdown`)}checkIfUpdating(e){return this.apiService.get(`visors/${e}/update/ws/running`)}checkUpdate(e){let i="stable";return i=localStorage.getItem(ic.Channel)||i,this.apiService.get(`visors/${e}/update/available/${i}`)}update(e){const i={channel:"stable"};if(localStorage.getItem(ic.UseCustomSettings)){const r=localStorage.getItem(ic.Channel);r&&(i.channel=r);const s=localStorage.getItem(ic.Version);s&&(i.version=s);const a=localStorage.getItem(ic.ArchiveURL);a&&(i.archive_url=a);const l=localStorage.getItem(ic.ChecksumsURL);l&&(i.checksums_url=l)}return this.apiService.ws(`visors/${e}/update/ws`,i)}static{this.\u0275fac=function(i){return new(i||t)(le(br),le(zn))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();class ome{}let KV=(()=>{class t{constructor(e,i){this.storageService=e,this.nodeService=i,this.dataSubject=new _i(null),this.lastEmitedData=new ome,this.firstCallToGetDataMade=!1,this.storageService.getRefreshTimeObservable().subscribe(o=>{this.dataRefreshDelay=1e3*o,this.forceRefresh()})}startRequestingData(){return this.firstCallToGetDataMade||this.getData(0),this.dataSubject.asObservable()}stopRequestingData(){this.updateSubscription&&(this.updateSubscription.unsubscribe(),this.firstCallToGetDataMade=!1)}getData(e){this.firstCallToGetDataMade=!0,this.updateSubscription&&this.updateSubscription.unsubscribe(),this.updateSubscription=ae(1).pipe(ii(e),ni(()=>{this.lastEmitedData.updating=!0,this.dataSubject.next(this.lastEmitedData)}),ii(120),Et(()=>this.nodeService.getNodes())).subscribe(i=>{this.lastEmitedData={data:i,error:null,momentOfLastCorrectUpdate:Date.now(),updating:!1},this.dataSubject.next(this.lastEmitedData),this.getData(this.dataRefreshDelay)},i=>{i=Je(i),this.lastEmitedData={data:this.lastEmitedData.data,error:i,momentOfLastCorrectUpdate:this.lastEmitedData.momentOfLastCorrectUpdate,updating:!1},this.dataSubject.next(this.lastEmitedData),this.getData(ze.connectionRetryDelay)})}forceRefresh(){this.getData(0)}static{this.\u0275fac=function(i){return new(i||t)(le(zn),le(Sr))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();function rme(t,n){if(1&t){const e=ce();f(0,"button",3),L("click",function(){const o=z(e).$implicit;return $(C().closePopup(o))}),B(1,"img",4),f(2,"div",5),m(3),h()()}if(2&t){const e=n.$implicit;d(),v("src","assets/img/lang/"+e.iconName,ho),d(2),O(e.name)}}let YV=(()=>{class t{static openDialog(e){const i=new Lt;return i.autoFocus=!1,i.width=ze.mediumModalWidth,e.open(t,i)}constructor(e,i){this.dialogRef=e,this.languageService=i,this.languages=[]}ngOnInit(){this.subscription=this.languageService.languages.subscribe(e=>{this.languages=e})}ngOnDestroy(){this.subscription.unsubscribe()}closePopup(e=null){e&&this.languageService.changeLanguage(e.code),this.dialogRef.close()}static{this.\u0275fac=function(i){return new(i||t)(P(It),P(Nb))}}static{this.\u0275cmp=se({type:t,selectors:[["app-select-language"]],standalone:!1,decls:5,vars:4,consts:[[3,"headline","dialog"],[1,"options-container"],["mat-button","","color","accent",1,"grey-button-background"],["mat-button","","color","accent",1,"grey-button-background",3,"click"],[3,"src"],[1,"label"]],template:function(i,o){1&i&&(f(0,"app-dialog",0),b(1,"translate"),f(2,"div",1),we(3,rme,4,2,"button",2,Re),h()()),2&i&&(v("headline",y(1,2,"language.title"))("dialog",o.dialogRef),d(3),xe(o.languages))},dependencies:[Jn,Kt,Se],styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}.options-container[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:118px;height:auto!important;margin:20px;font-size:.7rem;line-height:unset;padding:0!important;color:unset}.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] .mdc-button__label{width:100%}@media(max-width:767px){.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:90px;font-size:.6rem;margin:6px}}.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:64px;height:64px;margin:10px 0}@media(max-width:767px){.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:48px;height:48px;margin:7px 0}}.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{color:#202226!important;background-color:#ffffff40;padding:4px 10px}@media(max-width:767px){.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{padding:4px 5px}}"]})}}return t})();function sme(t,n){1&t&&B(0,"img",1),2&t&&v("src","assets/img/lang/"+C().language.iconName,ho)}let ame=(()=>{class t{constructor(e,i){this.languageService=e,this.dialog=i}ngOnInit(){this.subscription=this.languageService.currentLanguage.subscribe(e=>{this.language=e})}ngOnDestroy(){this.subscription.unsubscribe()}openLanguageWindow(){YV.openDialog(this.dialog)}static{this.\u0275fac=function(i){return new(i||t)(P(Nb),P(kt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-lang-button"]],standalone:!1,decls:3,vars:4,consts:[["mat-button","",1,"lang-button","subtle-transparent-button",3,"click","matTooltip"],[1,"flag",3,"src"]],template:function(i,o){1&i&&(f(0,"button",0),b(1,"translate"),L("click",function(){return o.openLanguageWindow()}),S(2,sme,1,1,"img",1),h()),2&i&&(v("matTooltip",y(1,2,"language.title")),d(2),k(o.language?2:-1))},dependencies:[Jn,pn,Se],styles:[".lang-button[_ngcontent-%COMP%]{height:40px;background-color:#f8f9f9;border-radius:100%;padding:0;line-height:1;padding:0!important}.lang-button[_ngcontent-%COMP%] .flag[_ngcontent-%COMP%]{width:20px;height:20px}"]})}}return t})();const lme=t=>({"element-disabled":t});function cme(t,n){if(1&t){const e=ce();f(0,"div",8),L("click",function(){return z(e),$(C().configure())}),m(1),b(2,"translate"),h()}2&t&&(d(),O(y(2,1,"login.initial-config")))}let XV=(()=>{class t extends Wn{constructor(e,i,o,r,s,a){super(),this.authService=e,this.router=i,this.snackbarService=o,this.dialog=r,this.route=s,this.multipleNodeDataService=a,this.loading=!1,this.isForVpn=!1,this.vpnKey="",this.userExists=!0}ngOnInit(){return this.multipleNodeDataService.stopRequestingData(),this.routeSubscription=this.route.paramMap.subscribe(e=>{this.vpnKey=e.get("key"),this.isForVpn=-1!==window.location.href.indexOf("vpnlogin"),this.verificationSubscription=this.authService.checkLogin().subscribe(i=>{i!==xa.NotLogged&&(Kr.currentInstance.processLoginDone(),setTimeout(()=>{this.router.navigate(this.isForVpn?["vpn",this.vpnKey,"status"]:["nodes"],{replaceUrl:!0})},5))})}),this.form=new ZS({password:new eu("",Ve.required)}),this.authService.userExists().subscribe(e=>this.userExists=e,()=>this.userExists=!0),super.ngOnInit()}ngOnDestroy(){this.loginSubscription&&this.loginSubscription.unsubscribe(),this.verificationSubscription.unsubscribe(),this.routeSubscription.unsubscribe()}login(){!this.form.valid||this.loading||(this.loading=!0,this.loginSubscription=this.authService.login(this.form.get("password").value).subscribe(()=>this.onLoginSuccess(),e=>this.onLoginError(e)))}configure(){tme.openDialog(this.dialog)}onLoginSuccess(){Kr.currentInstance.processLoginDone(),setTimeout(()=>{this.router.navigate(this.isForVpn?["vpn",this.vpnKey,"status"]:["nodes"],{replaceUrl:!0})})}onLoginError(e){e=Je(e),this.loading=!1,this.snackbarService.showError(e.originalError&&401===e.originalError.status?"login.incorrect-password":e.translatableErrorMsg)}static{this.\u0275fac=function(i){return new(i||t)(P(Vf),P(vt),P(bt),P(kt),P(Ei),P(KV))}}static{this.\u0275cmp=se({type:t,selectors:[["app-login"]],standalone:!1,features:[be],decls:12,vars:9,consts:[[1,"w-100","h-100","d-flex","justify-content-center"],[1,"row","main-container"],["src","/assets/img/logo-v.png",1,"logo"],[1,"mt-5",3,"formGroup"],[1,"login-input",3,"ngClass"],["type","password","formControlName","password","autocomplete","off",3,"keydown.enter","placeholder"],[3,"click","disabled"],["class","config-link",3,"click",4,"ngIf"],[1,"config-link",3,"click"]],template:function(i,o){1&i&&(f(0,"div",0),B(1,"app-lang-button"),f(2,"div",1),B(3,"img",2),f(4,"form",3)(5,"div",4)(6,"input",5),b(7,"translate"),L("keydown.enter",function(){return o.login()}),h(),f(8,"button",6),L("click",function(){return o.login()}),f(9,"mat-icon"),m(10,"chevron_right"),h()()()(),tt(11,cme,3,3,"div",7),h()()),2&i&&(d(4),v("formGroup",o.form),d(),v("ngClass",oe(7,lme,o.loading)),d(),v("placeholder",y(7,5,"login.password")),d(2),v("disabled",!o.form.valid||o.loading),d(3),v("ngIf",!o.userExists))},dependencies:[qt,$h,Cn,rn,sn,yn,Xt,fn,lt,ame,Se],styles:['.cursor-pointer[_ngcontent-%COMP%], .config-link[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media(max-width:767px),(min-width:992px)and (max-width:1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media(max-width:767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}app-lang-button[_ngcontent-%COMP%]{position:fixed;right:10px;top:10px;z-index:10}.main-container[_ngcontent-%COMP%]{z-index:1;height:100%;flex-direction:column;align-items:center;justify-content:center}.logo[_ngcontent-%COMP%]{width:170px}.login-input[_ngcontent-%COMP%]{height:35px;width:300px;overflow:hidden;border-radius:10px;box-shadow:0 3px 8px #0000001a,0 6px 20px #0000001a;display:flex}.login-input[_ngcontent-%COMP%] input[type=password][_ngcontent-%COMP%]{background:#fff;width:calc(100% - 35px);height:100%;font-size:.875rem;border:none;padding-left:10px;padding-right:10px}.login-input[_ngcontent-%COMP%] input[type=password][_ngcontent-%COMP%]:focus{outline:none}.login-input[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{background:#fff;color:#202226;width:35px;height:35px;line-height:35px;border:none;display:flex;cursor:pointer;align-items:center}.login-input[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:disabled{color:#777}.config-link[_ngcontent-%COMP%]{color:#f8f9f9;font-size:.7rem;margin-top:20px}']})}}return t})();const dme=["firstInput"];let vk=(()=>{class t{static openDialog(e,i){const o=new Lt;return o.data=i,o.autoFocus=!1,o.width=ze.smallModalWidth,e.open(t,o)}constructor(e,i,o,r,s){this.dialogRef=e,this.data=i,this.formBuilder=o,this.storageService=r,this.snackbarService=s}ngOnInit(){this.form=this.formBuilder.group({label:[this.data.label]})}ngAfterViewInit(){setTimeout(()=>this.firstInput.nativeElement.focus())}save(){const e=this.form.get("label").value.trim();e!==this.data.label?(this.storageService.saveLabel(this.data.id,e,this.data.identifiedElementType),e?this.snackbarService.showDone("edit-label.done"):this.snackbarService.showWarning("edit-label.label-removed-warning"),this.dialogRef.close(!0)):this.dialogRef.close()}static{this.\u0275fac=function(i){return new(i||t)(P(It),P(hn),P(pi),P(zn),P(bt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-edit-label"]],viewQuery:function(i,o){if(1&i&&rt(dme,5),2&i){let r;ue(r=he())&&(o.firstInput=r.first)}},standalone:!1,decls:13,vars:11,consts:[["firstInput",""],[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","label","maxlength","66","matInput",""],["color","primary",1,"float-right",3,"action"]],template:function(i,o){1&i&&(f(0,"app-dialog",1),b(1,"translate"),f(2,"form",2)(3,"mat-form-field")(4,"div",3)(5,"label",4),m(6),b(7,"translate"),h(),B(8,"input",5,0),h()()(),f(10,"app-button",6),L("action",function(){return o.save()}),m(11),b(12,"translate"),h()()),2&i&&(v("headline",y(1,5,"labeled-element.edit-label"))("dialog",o.dialogRef),d(2),v("formGroup",o.form),d(4),O(y(7,7,"edit-label.label")),d(5),O(y(12,9,"common.save")))},dependencies:[Cn,rn,sn,yn,ji,Xt,fn,wn,ei,On,Kt,Se],encapsulation:2})}}return t})();const ume=["cancelButton"],hme=["confirmButton"];function fme(t,n){if(1&t&&(f(0,"div"),m(1),b(2,"translate"),h()),2&t){const e=n.$implicit;d(),I(" - ",y(2,1,e)," ")}}function pme(t,n){if(1&t&&(f(0,"div",4),we(1,fme,3,3,"div",null,Re),h()),2&t){const e=C();d(),xe(e.state!==e.confirmationStates.Done?e.data.list:e.doneList)}}function mme(t,n){if(1&t&&(f(0,"div",3),m(1),b(2,"translate"),h()),2&t){const e=C();d(),I(" ",y(2,1,e.data.lowerText)," ")}}function gme(t,n){if(1&t){const e=ce();f(0,"app-button",8,1),L("action",function(){return z(e),$(C().closeModal())}),m(2),b(3,"translate"),h()}if(2&t){const e=C();d(2),I(" ",y(3,1,e.data.cancelButtonText)," ")}}var ou=function(t){return t.Asking="Asking",t.Processing="Processing",t.Done="Done",t}(ou||{});let _me=(()=>{class t{constructor(e,i){this.dialogRef=e,this.data=i,this.disableDismiss=!1,this.state=ou.Asking,this.confirmationStates=ou,this.operationAccepted=new ve,this.disableDismiss=!!i.disableDismiss,this.dialogRef.disableClose=this.disableDismiss}ngAfterViewInit(){this.data.cancelButtonText?setTimeout(()=>this.cancelButton.focus()):setTimeout(()=>this.confirmButton.focus())}ngOnDestroy(){this.operationAccepted.complete()}closeModal(){this.dialogRef.close()}sendOperationAcceptedEvent(){this.operationAccepted.emit()}showAsking(e){e&&(this.data=e),this.state=ou.Asking,this.confirmButton.reset(),this.disableDismiss=!1,this.dialogRef.disableClose=this.disableDismiss,this.cancelButton&&this.cancelButton.showEnabled()}showProcessing(){this.state=ou.Processing,this.disableDismiss=!0,this.confirmButton.showLoading(),this.cancelButton&&this.cancelButton.showDisabled()}showDone(e,i,o=null){this.doneTitle=e||this.data.headerText,this.doneText=i,this.doneList=o,this.confirmButton.reset(),setTimeout(()=>this.confirmButton.focus()),this.state=ou.Done,this.dialogRef.disableClose=!1,this.disableDismiss=!1}static{this.\u0275fac=function(i){return new(i||t)(P(It),P(hn))}}static{this.\u0275cmp=se({type:t,selectors:[["app-confirmation"]],viewQuery:function(i,o){if(1&i&&rt(ume,5)(hme,5),2&i){let r;ue(r=he())&&(o.cancelButton=r.first),ue(r=he())&&(o.confirmButton=r.first)}},outputs:{operationAccepted:"operationAccepted"},standalone:!1,decls:13,vars:14,consts:[["confirmButton",""],["cancelButton",""],[3,"headline","dialog","disableDismiss"],[1,"text-container"],[1,"list-container"],[1,"buttons"],["color","accent"],["color","primary",3,"action"],["color","accent",3,"action"]],template:function(i,o){1&i&&(f(0,"app-dialog",2),b(1,"translate"),f(2,"div",3),m(3),b(4,"translate"),h(),S(5,pme,3,0,"div",4),S(6,mme,3,3,"div",3),f(7,"div",5),S(8,gme,4,3,"app-button",6),f(9,"app-button",7,0),L("action",function(){return o.state===o.confirmationStates.Asking?o.sendOperationAcceptedEvent():o.closeModal()}),m(11),b(12,"translate"),h()()()),2&i&&(v("headline",y(1,8,o.state!==o.confirmationStates.Done?o.data.headerText:o.doneTitle))("dialog",o.dialogRef)("disableDismiss",o.disableDismiss),d(3),I(" ",y(4,10,o.state!==o.confirmationStates.Done?o.data.text:o.doneText)," "),d(2),k(o.data.list&&o.state!==o.confirmationStates.Done||o.doneList&&o.state===o.confirmationStates.Done?5:-1),d(),k(o.data.lowerText&&o.state!==o.confirmationStates.Done?6:-1),d(2),k(o.data.cancelButtonText&&o.state!==o.confirmationStates.Done?8:-1),d(3),I(" ",y(12,12,o.state!==o.confirmationStates.Done?o.data.confirmButtonText:"confirmation.close")," "))},dependencies:[On,Kt,Se],styles:[".text-container[_ngcontent-%COMP%]{word-break:break-word}.list-container[_ngcontent-%COMP%]{font-size:14px;margin:10px;color:#215f9e;word-break:break-word}.buttons[_ngcontent-%COMP%]{margin-top:15px;text-align:right}.buttons[_ngcontent-%COMP%] app-button[_ngcontent-%COMP%]{margin-left:5px}"]})}}return t})();class Ye{static createConfirmationDialog(n,e){const i={text:e,headerText:"confirmation.header-text",confirmButtonText:"confirmation.confirm-button",cancelButtonText:"confirmation.cancel-button",disableDismiss:!1},o=new Lt;return o.data=i,o.autoFocus=!1,o.width=ze.smallModalWidth,n.open(_me,o)}static checkIfTagIsUpdatable(n){return!(null==n||n.toUpperCase()==="Windows".toUpperCase()||n.toUpperCase()==="Win".toUpperCase()||n.toUpperCase()==="Mac".toUpperCase()||n.toUpperCase()==="Macos".toUpperCase()||n.toUpperCase()==="Mac OS".toUpperCase()||n.toUpperCase()==="Darwin".toUpperCase())}static checkIfTagCanOpenterminal(n){return!(null==n||n.toUpperCase()==="Windows".toUpperCase()||n.toUpperCase()==="Win".toUpperCase())}static checkIfIpValidOrEmpty(n){if(!n)return!0;const e=n.split(".");if(4!==e.length)return!1;for(const i of e){const o=Number.parseInt(i,10);if(isNaN(o)||o+""!==i||o<0||o>255)return!1}return!0}}function bme(t,n){if(1&t&&(f(0,"mat-icon",4),m(1),h()),2&t){const e=C().$implicit;v("inline",!0),d(),O(e.icon)}}function vme(t,n){if(1&t){const e=ce();f(0,"div",1)(1,"button",2),L("click",function(){const o=z(e).$index;return $(C().closePopup(o+1))}),f(2,"div",3),S(3,bme,2,2,"mat-icon",4),f(4,"span"),m(5),b(6,"translate"),h()()()()}if(2&t){const e=n.$implicit;d(3),k(e.icon?3:-1),d(2),O(y(6,2,e.label))}}let oo=(()=>{class t{static openDialog(e,i,o){const r=new Lt;return r.data={options:i,title:o},r.autoFocus=!1,r.width=ze.smallModalWidth,e.open(t,r)}constructor(e,i){this.data=e,this.dialogRef=i}closePopup(e){this.dialogRef.close(e)}static{this.\u0275fac=function(i){return new(i||t)(P(hn),P(It))}}static{this.\u0275cmp=se({type:t,selectors:[["app-select-option"]],standalone:!1,decls:4,vars:5,consts:[[3,"headline","dialog","includeVerticalMargins"],[1,"options-list-button-container"],["mat-button","",1,"grey-button-background",3,"click"],[1,"internal-container"],[1,"icon",3,"inline"]],template:function(i,o){1&i&&(f(0,"app-dialog",0),b(1,"translate"),we(2,vme,7,4,"div",1,Re),h()),2&i&&(v("headline",y(1,3,o.data.title))("dialog",o.dialogRef)("includeVerticalMargins",!1),d(2),xe(o.data.options))},dependencies:[Jn,lt,Kt,Se],styles:[".icon[_ngcontent-%COMP%]{font-size:14px;width:14px;line-height:1}.grey-button-background[_ngcontent-%COMP%]{justify-content:left!important;min-height:45px}"]})}}return t})();var mn=function(t){return t.TextInput="TextInput",t.Select="Select",t}(mn||{});class Pt{constructor(n,e,i,o){this.properties=n,this.label=e,this.sortingMode=i,this.labelProperties=o}get id(){return this.properties.join("")}}var ct=function(t){return t.Text="Text",t.Number="Number",t.NumberReversed="NumberReversed",t.Boolean="Boolean",t}(ct||{});class ru{get sortingArrow(){return this.sortReverse?"keyboard_arrow_up":"keyboard_arrow_down"}get currentSortingColumn(){return this.sortBy}get sortingInReverseOrder(){return this.sortReverse}get dataSorted(){return this.dataUpdatedSubject.asObservable()}get currentlySortingByLabel(){return this.sortByLabel}constructor(n,e,i,o,r,s){this.dialog=n,this.translateService=e,this.storageService=i,this.sortReverse=!1,this.sortByLabel=!1,this.tieBreakerColumnIndex=null,this.columnStorageKeyPrefix="col_",this.orderStorageKeyPrefix="order_",this.labelStorageKeyPrefix="label_",this.dataUpdatedSubject=new pe,this.sortableColumns=o,this.id=s,this.defaultColumnIndex=r,this.sortBy=o[r];const a=this.storageService.getDataForHv(this.columnStorageKeyPrefix+s);if(a){const l=o.find(c=>c.id===a);l&&(this.sortBy=l)}this.sortReverse="true"===this.storageService.getDataForHv(this.orderStorageKeyPrefix+s),this.sortByLabel="true"===this.storageService.getDataForHv(this.labelStorageKeyPrefix+s)}dispose(){this.dataUpdatedSubject.complete()}setTieBreakerColumnIndex(n){this.tieBreakerColumnIndex=n}setData(n){this.data=n,this.sortData()}changeSortingOrder(n){if(this.sortBy===n||n.labelProperties)if(n.labelProperties){const e=[{label:this.translateService.instant("tables.sort-by-value")},{label:this.translateService.instant("tables.sort-by-value")+" "+this.translateService.instant("tables.inverted-order")},{label:this.translateService.instant("tables.sort-by-label")},{label:this.translateService.instant("tables.sort-by-label")+" "+this.translateService.instant("tables.inverted-order")}];oo.openDialog(this.dialog,e,"tables.title").afterClosed().subscribe(i=>{i&&this.changeSortingParams(n,i>2,i%2==0)})}else this.sortReverse=!this.sortReverse,this.storageService.setDataForHv(this.orderStorageKeyPrefix+this.id,String(this.sortReverse)),this.sortData();else this.changeSortingParams(n,!1,!1)}changeSortingParams(n,e,i){this.sortBy=n,this.sortByLabel=e,this.sortReverse=i,this.storageService.setDataForHv(this.columnStorageKeyPrefix+this.id,n.id),this.storageService.setDataForHv(this.orderStorageKeyPrefix+this.id,String(this.sortReverse)),this.storageService.setDataForHv(this.labelStorageKeyPrefix+this.id,String(this.sortByLabel)),this.sortData()}openSortingOrderModal(){const n=[],e=[];this.sortableColumns.forEach(i=>{const o=this.translateService.instant(i.label);n.push({label:o}),e.push({sortBy:i,sortReverse:!1,sortByLabel:!1}),n.push({label:o+" "+this.translateService.instant("tables.inverted-order")}),e.push({sortBy:i,sortReverse:!0,sortByLabel:!1}),i.labelProperties&&(n.push({label:o+" "+this.translateService.instant("tables.label")}),e.push({sortBy:i,sortReverse:!1,sortByLabel:!0}),n.push({label:o+" "+this.translateService.instant("tables.label")+" "+this.translateService.instant("tables.inverted-order")}),e.push({sortBy:i,sortReverse:!0,sortByLabel:!0}))}),oo.openDialog(this.dialog,n,"tables.title").afterClosed().subscribe(i=>{i&&this.changeSortingParams(e[i-1].sortBy,e[i-1].sortByLabel,e[i-1].sortReverse)})}sortData(){this.data&&(this.data.sort((n,e)=>{let i=this.getSortResponse(this.sortBy,n,e,!0);return 0===i&&null!==this.tieBreakerColumnIndex&&this.sortableColumns[this.tieBreakerColumnIndex]!==this.sortBy&&(i=this.getSortResponse(this.sortableColumns[this.tieBreakerColumnIndex],n,e,!1)),0===i&&this.sortableColumns[this.defaultColumnIndex]!==this.sortBy&&(i=this.getSortResponse(this.sortableColumns[this.defaultColumnIndex],n,e,!1)),i}),this.dataUpdatedSubject.next())}getSortResponse(n,e,i,o){let s=e,a=i;(this.sortByLabel&&o&&n.labelProperties?n.labelProperties:n.properties).forEach(u=>{s=s[u],a=a[u]});const l=this.sortByLabel&&o?ct.Text:n.sortingMode;let c=0;return l===ct.Text?c=this.sortReverse?a.localeCompare(s):s.localeCompare(a):l===ct.NumberReversed?c=this.sortReverse?s-a:a-s:l===ct.Number?c=this.sortReverse?a-s:s-a:l===ct.Boolean&&(s&&!a?c=-1:!s&&a&&(c=1),c*=this.sortReverse?-1:1),c}}let wme=(()=>{class t{_animationsDisabled=fi();state="unchecked";disabled=!1;appearance="full";constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["mat-pseudo-checkbox"]],hostAttrs:[1,"mat-pseudo-checkbox"],hostVars:12,hostBindings:function(i,o){2&i&&Ke("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",o._animationsDisabled)},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-minimal.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-pseudo-checkbox-minimal-selected-checkmark-color, var(--mat-sys-primary))}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full{border-color:var(--mat-pseudo-checkbox-full-unselected-icon-color, var(--mat-sys-on-surface-variant));border-width:2px;border-style:solid}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-disabled{border-color:var(--mat-pseudo-checkbox-full-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate{background-color:var(--mat-pseudo-checkbox-full-selected-icon-color, var(--mat-sys-primary));border-color:rgba(0,0,0,0)}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-pseudo-checkbox-full-selected-checkmark-color, var(--mat-sys-on-primary))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background-color:var(--mat-pseudo-checkbox-full-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-pseudo-checkbox-full-disabled-selected-checkmark-color, var(--mat-sys-surface))}.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}\n'],encapsulation:2,changeDetection:0})}return t})();const xme=["text"],Sme=[[["mat-icon"]],"*"],kme=["mat-icon","*"];function Dme(t,n){if(1&t&&B(0,"mat-pseudo-checkbox",1),2&t){const e=C();v("disabled",e.disabled)("state",e.selected?"checked":"unchecked")}}function Tme(t,n){1&t&&B(0,"mat-pseudo-checkbox",3),2&t&&v("disabled",C().disabled)}function Mme(t,n){if(1&t&&(f(0,"span",4),m(1),h()),2&t){const e=C();d(),I("(",e.group.label,")")}}const ZV=new Z("MAT_OPTION_PARENT_COMPONENT"),QV=new Z("MatOptgroup");class Eme{source;isUserInput;constructor(n,e=!1){this.source=n,this.isUserInput=e}}let Is=(()=>{class t{_element=D(Ae);_changeDetectorRef=D(Pn);_parent=D(ZV,{optional:!0});group=D(QV,{optional:!0});_signalDisableRipple=!1;_selected=!1;_active=!1;_mostRecentViewValue="";get multiple(){return this._parent&&this._parent.multiple}get selected(){return this._selected}value;id=D(oi).getId("mat-option-");get disabled(){return this.group&&this.group.disabled||this._disabled()}set disabled(e){this._disabled.set(e)}_disabled=yt(!1);get disableRipple(){return this._signalDisableRipple?this._parent.disableRipple():!!this._parent?.disableRipple}get hideSingleSelectionIndicator(){return!(!this._parent||!this._parent.hideSingleSelectionIndicator)}onSelectionChange=new ve;_text;_stateChanges=new pe;constructor(){const e=D(pr);e.load(Af),e.load(uS),this._signalDisableRipple=!!this._parent&&Sl(this._parent.disableRipple)}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)&&!mr(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 Eme(this,e))}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["mat-option"]],viewQuery:function(i,o){if(1&i&&rt(xme,7),2&i){let r;ue(r=he())&&(o._text=r.first)}},hostAttrs:["role","option",1,"mat-mdc-option","mdc-list-item"],hostVars:11,hostBindings:function(i,o){1&i&&L("click",function(){return o._selectViaInteraction()})("keydown",function(s){return o._handleKeydown(s)}),2&i&&(Lr("id",o.id),Ze("aria-selected",o.selected)("aria-disabled",o.disabled.toString()),Ke("mdc-list-item--selected",o.selected)("mat-mdc-option-multiple",o.multiple)("mat-mdc-option-active",o.active)("mdc-list-item--disabled",o.disabled))},inputs:{value:"value",id:"id",disabled:[2,"disabled","disabled",Ie]},outputs:{onSelectionChange:"onSelectionChange"},exportAs:["matOption"],ngContentSelectors:kme,decls:8,vars:5,consts:[["text",""],["aria-hidden","true",1,"mat-mdc-option-pseudo-checkbox",3,"disabled","state"],[1,"mdc-list-item__primary-text"],["state","checked","aria-hidden","true","appearance","minimal",1,"mat-mdc-option-pseudo-checkbox",3,"disabled"],[1,"cdk-visually-hidden"],["aria-hidden","true","mat-ripple","",1,"mat-mdc-option-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled"]],template:function(i,o){1&i&&(Si(Sme),S(0,Dme,1,2,"mat-pseudo-checkbox",1),At(1),f(2,"span",2,0),At(4,1),h(),S(5,Tme,1,1,"mat-pseudo-checkbox",3),S(6,Mme,2,1,"span",4),B(7,"div",5)),2&i&&(k(o.multiple?0:-1),d(5),k(o.multiple||!o.selected||o.hideSingleSelectionIndicator?-1:5),d(),k(o.group&&o.group._inert?6:-1),d(),v("matRippleTrigger",o._getHostElement())("matRippleDisabled",o.disabled||o.disableRipple))},dependencies:[wme,Of],styles:['.mat-mdc-option{-webkit-user-select:none;user-select:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;min-height:48px;padding:0 16px;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);color:var(--mat-option-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-option-label-text-font, var(--mat-sys-label-large-font));line-height:var(--mat-option-label-text-line-height, var(--mat-sys-label-large-line-height));font-size:var(--mat-option-label-text-size, var(--mat-sys-body-large-size));letter-spacing:var(--mat-option-label-text-tracking, var(--mat-sys-label-large-tracking));font-weight:var(--mat-option-label-text-weight, var(--mat-sys-body-large-weight))}.mat-mdc-option:hover:not(.mdc-list-item--disabled){background-color:var(--mat-option-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}.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, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent));outline:0}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled):not(.mat-mdc-option-active,.mat-mdc-option-multiple,:focus,:hover){background-color:var(--mat-option-selected-state-layer-color, var(--mat-sys-secondary-container))}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled):not(.mat-mdc-option-active,.mat-mdc-option-multiple,:focus,:hover) .mdc-list-item__primary-text{color:var(--mat-option-selected-state-label-text-color, var(--mat-sys-on-secondary-container))}.mat-mdc-option .mat-pseudo-checkbox{--mat-pseudo-checkbox-minimal-selected-checkmark-color: var(--mat-option-selected-state-label-text-color, var(--mat-sys-on-secondary-container))}.mat-mdc-option.mdc-list-item{align-items:center;background:rgba(0,0,0,0)}.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}@media(forced-colors: active){.mat-mdc-option.mdc-list-item--selected:not(:has(.mat-mdc-option-pseudo-checkbox))::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}[dir=rtl] .mat-mdc-option.mdc-list-item--selected:not(:has(.mat-mdc-option-pseudo-checkbox))::after{right:auto;left:16px}}.mat-mdc-option-multiple{--mat-list-list-item-selected-container-color: var(--mat-list-list-item-container-color, transparent)}.mat-mdc-option-active .mat-focus-indicator::before{content:""}\n'],encapsulation:2,changeDetection:0})}return t})();class JV{_items;_activeItemIndex=yt(-1);_activeItem=yt(null);_wrap=!1;_typeaheadSubscription=mt.EMPTY;_itemChangesSubscription;_vertical=!0;_horizontal=null;_allowedModifierKeys=[];_homeAndEnd=!1;_pageUpAndDown={enabled:!1,delta:10};_effectRef;_typeahead;_skipPredicateFn=n=>n.disabled;constructor(n,e){this._items=n,n instanceof Zc?this._itemChangesSubscription=n.changes.subscribe(i=>this._itemsChanged(i.toArray())):Sl(n)&&(this._effectRef=nm(()=>this._itemsChanged(n()),{injector:e}))}tabOut=new pe;change=new pe;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){this._typeaheadSubscription.unsubscribe();const e=this._getItemsArray();return this._typeahead=new FV(e,{debounceInterval:"number"==typeof n?n:void 0,skipPredicate:i=>this._skipPredicateFn(i)}),this._typeaheadSubscription=this._typeahead.selectedItem.subscribe(i=>{this.setActiveItem(i)}),this}cancelTypeahead(){return this._typeahead?.reset(),this}withHomeAndEnd(n=!0){return this._homeAndEnd=n,this}withPageUpDown(n=!0,e=10){return this._pageUpAndDown={enabled:n,delta:e},this}setActiveItem(n){const e=this._activeItem();this.updateActiveItem(n),this._activeItem()!==e&&this.change.next(this._activeItemIndex())}onKeydown(n){const e=n.keyCode,o=["altKey","ctrlKey","metaKey","shiftKey"].every(r=>!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,s=this._getItemsArray().length;this._setActiveItemByIndex(r-1&&i!==this._activeItemIndex()&&(this._activeItemIndex.set(i),this._typeahead?.setCurrentSelectedItemIndex(i))}}}class Ome extends JV{setActiveItem(n){this.activeItem&&this.activeItem.setInactiveStyles(),super.setActiveItem(n),this.activeItem&&this.activeItem.setActiveStyles()}}class Ame{_multiple;_emitChanges;compareWith;_selection=new Set;_deselectedToEmit=[];_selectedToEmit=[];_selected=null;get selected(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected}changed=new pe;constructor(n=!1,e,i=!0,o){this._multiple=n,this._emitChanges=i,this.compareWith=o,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.map(r=>this._getConcreteValue(r)));n.forEach(r=>this._markSelected(r)),e.filter(r=>!i.has(this._getConcreteValue(r,i))).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,e){if(this.compareWith){e=e??this._selection;for(let i of e)if(this.compareWith(n,i))return i;return n}return n}}let Rme=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({imports:[ri]})}return t})(),e5=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({imports:[DS,Rme,Is,ri]})}return t})();const Nme=["trigger"],Fme=["panel"],Lme=[[["mat-select-trigger"]],"*"],Bme=["mat-select-trigger","*"];function Vme(t,n){if(1&t&&(f(0,"span",4),m(1),h()),2&t){const e=C();d(),O(e.placeholder)}}function Hme(t,n){1&t&&At(0)}function jme(t,n){if(1&t&&(f(0,"span",11),m(1),h()),2&t){const e=C(2);d(),O(e.triggerValue)}}function Ume(t,n){if(1&t&&(f(0,"span",5),S(1,Hme,1,0)(2,jme,2,1,"span",11),h()),2&t){const e=C();d(),k(e.customTrigger?1:2)}}function zme(t,n){if(1&t){const e=ce();f(0,"div",12,1),L("keydown",function(o){return z(e),$(C()._handleKeydown(o))}),At(2,1),h()}if(2&t){const e=C();at(e.panelClass),Ke("mat-select-panel-animations-enabled",!e._animationsDisabled)("mat-primary","primary"===(null==e._parentFormField?null:e._parentFormField.color))("mat-accent","accent"===(null==e._parentFormField?null:e._parentFormField.color))("mat-warn","warn"===(null==e._parentFormField?null:e._parentFormField.color))("mat-undefined",!(null!=e._parentFormField&&e._parentFormField.color)),Ze("id",e.id+"-panel")("aria-multiselectable",e.multiple)("aria-label",e.ariaLabel||null)("aria-labelledby",e._getPanelAriaLabelledby())}}const $me=new Z("mat-select-scroll-strategy",{providedIn:"root",factory:()=>{const t=D(Be);return()=>Tf(t)}}),Wme=new Z("MAT_SELECT_CONFIG"),t5=new Z("MatSelectTrigger");class Gme{source;value;constructor(n,e){this.source=n,this.value=e}}let oc=(()=>{class t{_viewportRuler=D(jd);_changeDetectorRef=D(Pn);_elementRef=D(Ae);_dir=D(hr,{optional:!0});_idGenerator=D(oi);_renderer=D(Kn);_parentFormField=D(dk,{optional:!0});ngControl=D(Yr,{self:!0,optional:!0});_liveAnnouncer=D(dB);_defaultOptions=D(Wme,{optional:!0});_animationsDisabled=fi();_popoverLocation;_initialized=new pe;_cleanupDetach;options;optionGroups;customTrigger;_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"}];_scrollOptionIntoView(e){const i=this.options.toArray()[e];if(i){const o=this.panel.nativeElement,r=function Ime(t,n,e){if(e.length){let i=n.toArray(),o=e.toArray(),r=0;for(let s=0;se+i?Math.max(0,t-i+n):e}(s.offsetTop,s.offsetHeight,o.scrollTop,o.offsetHeight)}}_positioningSettled(){this._scrollOptionIntoView(this._keyManager.activeItemIndex||0)}_getChangeEvent(e){return new Gme(this,e)}_scrollStrategyFactory=D($me);_panelOpen=!1;_compareWith=(e,i)=>e===i;_uid=this._idGenerator.getId("mat-select-");_triggerAriaLabelledBy=null;_previousControl;_destroy=new pe;_errorStateTracker;stateChanges=new pe;disableAutomaticLabeling=!0;userAriaDescribedBy;_selectionModel;_keyManager;_preferredOverlayOrigin;_overlayWidth;_onChange=()=>{};_onTouched=()=>{};_valueId=this._idGenerator.getId("mat-select-value-");_scrollStrategy;_overlayPanelClass=this._defaultOptions?.overlayPanelClass||"";get focused(){return this._focused||this._panelOpen}_focused=!1;controlType="mat-select";trigger;panel;_overlayDir;panelClass;disabled=!1;get disableRipple(){return this._disableRipple()}set disableRipple(e){this._disableRipple.set(e)}_disableRipple=yt(!1);tabIndex=0;get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(e){this._hideSingleSelectionIndicator=e,this._syncParentProperties()}_hideSingleSelectionIndicator=this._defaultOptions?.hideSingleSelectionIndicator??!1;get placeholder(){return this._placeholder}set placeholder(e){this._placeholder=e,this.stateChanges.next()}_placeholder;get required(){return this._required??this.ngControl?.control?.hasValidator(Ve.required)??!1}set required(e){this._required=e,this.stateChanges.next()}_required;get multiple(){return this._multiple}set multiple(e){this._multiple=e}_multiple=!1;disableOptionCentering=this._defaultOptions?.disableOptionCentering??!1;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)}_value;ariaLabel="";ariaLabelledby;get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(e){this._errorStateTracker.matcher=e}typeaheadDebounceInterval;sortComparator;get id(){return this._id}set id(e){this._id=e||this._uid,this.stateChanges.next()}_id;get errorState(){return this._errorStateTracker.errorState}set errorState(e){this._errorStateTracker.errorState=e}panelWidth=this._defaultOptions&&typeof this._defaultOptions.panelWidth<"u"?this._defaultOptions.panelWidth:"auto";canSelectNullableOptions=this._defaultOptions?.canSelectNullableOptions??!1;optionSelectionChanges=ba(()=>{const e=this.options;return e?e.changes.pipe(to(e),Zn(()=>gr(...e.map(i=>i.onSelectionChange)))):this._initialized.pipe(Zn(()=>this.optionSelectionChanges))});openedChange=new ve;_openedStream=this.openedChange.pipe(vn(e=>e),ye(()=>{}));_closedStream=this.openedChange.pipe(vn(e=>!e),ye(()=>{}));selectionChange=new ve;valueChange=new ve;constructor(){const e=D(uk),i=D(Qd,{optional:!0}),o=D(Xt,{optional:!0}),r=D(new Xg("tabindex"),{optional:!0}),s=D(dS,{optional:!0});this.ngControl&&(this.ngControl.valueAccessor=this),null!=this._defaultOptions?.typeaheadDebounceInterval&&(this.typeaheadDebounceInterval=this._defaultOptions.typeaheadDebounceInterval),this._errorStateTracker=new NV(e,this.ngControl,o,i,this.stateChanges),this._scrollStrategy=this._scrollStrategyFactory(),this.tabIndex=null==r?0:parseInt(r)||0,this._popoverLocation=!1===s?.usePopover?null:"inline",this.id=this.id}ngOnInit(){this._selectionModel=new Ame(this.multiple),this.stateChanges.next(),this._viewportRuler.change().pipe(on(this._destroy)).subscribe(()=>{this.panelOpen&&(this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._changeDetectorRef.detectChanges())})}ngAfterContentInit(){this._initialized.next(),this._initialized.complete(),this._initKeyManager(),this._selectionModel.changed.pipe(on(this._destroy)).subscribe(e=>{e.added.forEach(i=>i.select()),e.removed.forEach(i=>i.deselect())}),this.options.changes.pipe(to(null),on(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),e.panelClass&&this.panelClass instanceof Set&&(this.panelClass=Array.from(this.panelClass))}ngOnDestroy(){this._cleanupDetach?.(),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._parentFormField&&(this._preferredOverlayOrigin=this._parentFormField.getConnectedOverlayOrigin()),this._cleanupDetach?.(),this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._applyModalPanelOwnership(),this._panelOpen=!0,this._overlayDir.positionChange.pipe(un(1)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this._positioningSettled()}),this._overlayDir.attachOverlay(),this._keyManager.withHorizontalOrientation(null),this._highlightCorrectOption(),this._changeDetectorRef.markForCheck(),this.stateChanges.next(),Promise.resolve().then(()=>this.openedChange.emit(!0)))}_trackedModal=null;_applyModalPanelOwnership(){const e=this._elementRef.nativeElement.closest('body > .cdk-overlay-container [aria-modal="true"]');if(!e)return;const i=`${this.id}-panel`;this._trackedModal&&hk(this._trackedModal,"aria-owns",i),VV(e,"aria-owns",i),this._trackedModal=e}_clearFromModal(){this._trackedModal&&(hk(this._trackedModal,"aria-owns",`${this.id}-panel`),this._trackedModal=null)}close(){this._panelOpen&&(this._panelOpen=!1,this._exitAndDetach(),this._keyManager.withHorizontalOrientation(this._isRtl()?"rtl":"ltr"),this._changeDetectorRef.markForCheck(),this._onTouched(),this.stateChanges.next(),Promise.resolve().then(()=>this.openedChange.emit(!1)))}_exitAndDetach(){if(this._animationsDisabled||!this.panel)return void this._detachOverlay();this._cleanupDetach?.(),this._cleanupDetach=()=>{i(),clearTimeout(o),this._cleanupDetach=void 0};const e=this.panel.nativeElement,i=this._renderer.listen(e,"animationend",r=>{"_mat-select-exit"===r.animationName&&(this._cleanupDetach?.(),this._detachOverlay())}),o=setTimeout(()=>{this._cleanupDetach?.(),this._detachOverlay()},200);e.classList.add("mat-select-panel-exit")}_detachOverlay(){this._overlayDir.detachOverlay(),this._changeDetectorRef.markForCheck()}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}updateErrorState(){this._errorStateTracker.updateErrorState()}_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,s=this._keyManager;if(!s.isTyping()&&r&&!mr(e)||(this.multiple||e.altKey)&&o)e.preventDefault(),this.open();else if(!this.multiple){const a=this.selected;s.onKeydown(e);const l=this.selected;l&&a!==l&&this._liveAnnouncer.announce(l.viewValue,1e4)}}_handleOpenKeydown(e){const i=this._keyManager,o=e.keyCode,r=40===o||38===o,s=i.isTyping();if(r&&e.altKey)e.preventDefault(),this.close();else if(s||13!==o&&32!==o||!i.activeItem||mr(e))if(!s&&this._multiple&&65===o&&e.ctrlKey){e.preventDefault();const a=this.options.some(l=>!l.disabled&&!l.selected);this.options.forEach(l=>{l.disabled||(a?l.select():l.deselect())})}else{const a=i.activeItemIndex;i.onKeydown(e),this._multiple&&r&&e.shiftKey&&i.activeItem&&i.activeItemIndex!==a&&i.activeItem._selectViaInteraction()}else e.preventDefault(),i.activeItem._selectViaInteraction()}_handleOverlayKeydown(e){27===e.keyCode&&!mr(e)&&(e.preventDefault(),this.close())}_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())}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.canSelectNullableOptions)&&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=>!this.panelOpen&&e.disabled;_getOverlayWidth(e){return"auto"===this.panelWidth?(e instanceof mb?e.elementRef:e||this._elementRef).nativeElement.getBoundingClientRect().width:null===this.panelWidth?"":this.panelWidth}_syncParentProperties(){if(this.options)for(const e of this.options)e._changeDetectorRef.markForCheck()}_initKeyManager(){this._keyManager=new Ome(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=gr(this.options.changes,this._destroy);this.optionSelectionChanges.pipe(on(e)).subscribe(i=>{this._onSelect(i.source,i.isUserInput),i.isUserInput&&!this.multiple&&this._panelOpen&&(this.close(),this.focus())}),gr(...this.options.map(i=>i._stateChanges)).pipe(on(e)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this.stateChanges.next()})}_onSelect(e,i){const o=this._selectionModel.isSelected(e);this.canSelectNullableOptions||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;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&&!!this._overlayDir}focus(e){this._elementRef.nativeElement.focus(e)}_getPanelAriaLabelledby(){if(this.ariaLabel)return null;const e=this._parentFormField?.getLabelId()||null;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;let e=this._parentFormField?.getLabelId()||"";return this.ariaLabelledby&&(e+=" "+this.ariaLabelledby),e||(e=this._valueId),e}get describedByIds(){return this._elementRef.nativeElement.getAttribute("aria-describedby")?.split(" ")||[]}setDescribedByIds(e){const i=this._elementRef.nativeElement;e.length?i.setAttribute("aria-describedby",e.join(" ")):i.removeAttribute("aria-describedby")}onContainerClick(e){const i=fr(e);i&&("MAT-OPTION"===i.tagName||i.classList.contains("cdk-overlay-backdrop")||i.closest(".mat-mdc-select-panel"))||(this.focus(),this.open())}get shouldLabelFloat(){return this.panelOpen||!this.empty||this.focused&&!!this.placeholder}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["mat-select"]],contentQueries:function(i,o,r){if(1&i&&_s(r,t5,5)(r,Is,5)(r,QV,5),2&i){let s;ue(s=he())&&(o.customTrigger=s.first),ue(s=he())&&(o.options=s),ue(s=he())&&(o.optionGroups=s)}},viewQuery:function(i,o){if(1&i&&rt(Nme,5)(Fme,5)(eB,5),2&i){let r;ue(r=he())&&(o.trigger=r.first),ue(r=he())&&(o.panel=r.first),ue(r=he())&&(o._overlayDir=r.first)}},hostAttrs:["role","combobox","aria-haspopup","listbox",1,"mat-mdc-select"],hostVars:21,hostBindings:function(i,o){1&i&&L("keydown",function(s){return o._handleKeydown(s)})("focus",function(){return o._onFocus()})("blur",function(){return o._onBlur()}),2&i&&(Ze("id",o.id)("tabindex",o.disabled?-1: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()),Ke("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)("mat-select-open",o.panelOpen))},inputs:{userAriaDescribedBy:[0,"aria-describedby","userAriaDescribedBy"],panelClass:"panelClass",disabled:[2,"disabled","disabled",Ie],disableRipple:[2,"disableRipple","disableRipple",Ie],tabIndex:[2,"tabIndex","tabIndex",e=>null==e?0:Br(e)],hideSingleSelectionIndicator:[2,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",Ie],placeholder:"placeholder",required:[2,"required","required",Ie],multiple:[2,"multiple","multiple",Ie],disableOptionCentering:[2,"disableOptionCentering","disableOptionCentering",Ie],compareWith:"compareWith",value:"value",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],errorStateMatcher:"errorStateMatcher",typeaheadDebounceInterval:[2,"typeaheadDebounceInterval","typeaheadDebounceInterval",Br],sortComparator:"sortComparator",id:"id",panelWidth:"panelWidth",canSelectNullableOptions:[2,"canSelectNullableOptions","canSelectNullableOptions",Ie]},outputs:{openedChange:"openedChange",_openedStream:"opened",_closedStream:"closed",selectionChange:"selectionChange",valueChange:"valueChange"},exportAs:["matSelect"],features:[ht([{provide:ck,useExisting:t},{provide:ZV,useExisting:t}]),yi],ngContentSelectors:Bme,decls:11,vars:10,consts:[["fallbackOverlayOrigin","cdkOverlayOrigin","trigger",""],["panel",""],["cdk-overlay-origin","",1,"mat-mdc-select-trigger",3,"click"],[1,"mat-mdc-select-value"],[1,"mat-mdc-select-placeholder","mat-mdc-select-min-line"],[1,"mat-mdc-select-value-text"],[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","","cdkConnectedOverlayHasBackdrop","","cdkConnectedOverlayBackdropClass","cdk-overlay-transparent-backdrop",3,"detach","backdropClick","overlayKeydown","cdkConnectedOverlayDisableClose","cdkConnectedOverlayPanelClass","cdkConnectedOverlayScrollStrategy","cdkConnectedOverlayOrigin","cdkConnectedOverlayPositions","cdkConnectedOverlayWidth","cdkConnectedOverlayFlexibleDimensions","cdkConnectedOverlayUsePopover"],[1,"mat-mdc-select-min-line"],["role","listbox","tabindex","-1",1,"mat-mdc-select-panel","mdc-menu-surface","mdc-menu-surface--open",3,"keydown"]],template:function(i,o){if(1&i&&(Si(Lme),f(0,"div",2,0),L("click",function(){return o.open()}),f(3,"div",3),S(4,Vme,2,1,"span",4)(5,Ume,3,1,"span",5),h(),f(6,"div",6)(7,"div",7),Uc(),f(8,"svg",8),B(9,"path",9),h()()()(),tt(10,zme,3,16,"ng-template",10),L("detach",function(){return o.close()})("backdropClick",function(){return o.close()})("overlayKeydown",function(s){return o._handleOverlayKeydown(s)})),2&i){const r=Vn(1);d(3),Ze("id",o._valueId),d(),k(o.empty?4:5),d(6),v("cdkConnectedOverlayDisableClose",!0)("cdkConnectedOverlayPanelClass",o._overlayPanelClass)("cdkConnectedOverlayScrollStrategy",o._scrollStrategy)("cdkConnectedOverlayOrigin",o._preferredOverlayOrigin||r)("cdkConnectedOverlayPositions",o._positions)("cdkConnectedOverlayWidth",o._overlayWidth)("cdkConnectedOverlayFlexibleDimensions",!0)("cdkConnectedOverlayUsePopover",o._popoverLocation)}},dependencies:[mb,eB],styles:['@keyframes _mat-select-enter{from{opacity:0;transform:scaleY(0.8)}to{opacity:1;transform:none}}@keyframes _mat-select-exit{from{opacity:1}to{opacity:0}}.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, var(--mat-sys-on-surface));font-family:var(--mat-select-trigger-text-font, var(--mat-sys-body-large-font));line-height:var(--mat-select-trigger-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mat-select-trigger-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-select-trigger-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mat-select-trigger-text-tracking, var(--mat-sys-body-large-tracking))}div.mat-mdc-select-panel{box-shadow:var(--mat-select-container-elevation-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-mdc-select-disabled{color:var(--mat-select-disabled-trigger-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-select-disabled .mat-mdc-select-placeholder{color:var(--mat-select-disabled-trigger-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.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 .mdc-text-field--no-label .mat-mdc-select-arrow-wrapper{transform:none}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-invalid .mat-mdc-select-arrow,.mat-form-field-invalid:not(.mat-form-field-disabled) .mat-mdc-form-field-infix::after{color:var(--mat-select-invalid-arrow-color, var(--mat-sys-error))}.mat-mdc-select-arrow{width:10px;height:5px;position:relative;color:var(--mat-select-enabled-arrow-color, var(--mat-sys-on-surface-variant))}.mat-mdc-form-field.mat-focused .mat-mdc-select-arrow{color:var(--mat-select-focused-arrow-color, var(--mat-sys-primary))}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-disabled .mat-mdc-select-arrow{color:var(--mat-select-disabled-arrow-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-select-open .mat-mdc-select-arrow{transform:rotate(180deg)}.mat-form-field-animations-enabled .mat-mdc-select-arrow{transition:transform 80ms linear}.mat-mdc-select-arrow svg{fill:currentColor;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}@media(forced-colors: active){.mat-mdc-select-arrow svg{fill:CanvasText}.mat-mdc-select-disabled .mat-mdc-select-arrow svg{fill:GrayText}}div.mat-mdc-select-panel{width:100%;max-height:275px;outline:0;overflow:auto;padding:8px 0;border-radius:4px;box-sizing:border-box;position:relative;background-color:var(--mat-select-panel-background-color, var(--mat-sys-surface-container))}@media(forced-colors: 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-select-panel-animations-enabled{animation:_mat-select-enter 120ms cubic-bezier(0, 0, 0.2, 1)}.mat-select-panel-animations-enabled.mat-select-panel-exit{animation:_mat-select-exit 100ms linear}.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, var(--mat-sys-on-surface-variant))}.mat-mdc-form-field:not(.mat-form-field-animations-enabled) .mat-mdc-select-placeholder,._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}.mat-form-field-appearance-fill .mat-mdc-select-arrow-wrapper{transform:var(--mat-select-arrow-transform, translateY(-8px))}\n'],encapsulation:2,changeDetection:0})}return t})(),qme=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["mat-select-trigger"]],features:[ht([{provide:t5,useExisting:t}])]})}return t})(),Kme=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({imports:[Wd,e5,ri,xf,tv,e5]})}return t})();function Yme(t,n){if(1&t&&B(0,"input",6),2&t){const e=C().$implicit;v("formControlName",e.keyNameInFiltersObject)("maxlength",e.maxlength)}}function Xme(t,n){if(1&t&&(f(0,"div",10),B(1,"div",11),h()),2&t){const e=C().$implicit,i=C(2).$implicit;Ji("background-image: url('"+i.printableLabelGeneralSettings.defaultImage+"'); width: "+i.printableLabelGeneralSettings.imageWidth+"px; height: "+i.printableLabelGeneralSettings.imageHeight+"px;"),d(),Ji("background-image: url('"+e.image+"');")}}function Zme(t,n){if(1&t&&(f(0,"mat-option",8),S(1,Xme,2,4,"div",9),m(2),b(3,"translate"),h()),2&t){const e=n.$implicit,i=C(2).$implicit;v("value",e.value),d(),k(i.printableLabelGeneralSettings&&e.image?1:-1),d(),I(" ",y(3,3,e.label)," ")}}function Qme(t,n){if(1&t&&(f(0,"mat-select",7),we(1,Zme,4,5,"mat-option",8,Re),h()),2&t){const e=C().$implicit;v("formControlName",e.keyNameInFiltersObject),d(),xe(e.printableLabelsForValues)}}function Jme(t,n){if(1&t&&(f(0,"mat-form-field")(1,"div",4)(2,"label",5),m(3),b(4,"translate"),h(),S(5,Yme,1,2,"input",6),S(6,Qme,3,1,"mat-select",7),h()()),2&t){const e=n.$implicit,i=C();d(3),O(y(4,3,e.filterName)),d(2),k(e.type===i.filterFieldTypes.TextInput?5:-1),d(),k(e.type===i.filterFieldTypes.Select?6:-1)}}let ege=(()=>{class t{static openDialog(e,i){const o=new Lt;return o.data=i,o.autoFocus=!1,o.width=ze.smallModalWidth,e.open(t,o)}constructor(e,i,o){this.data=e,this.dialogRef=i,this.formBuilder=o,this.filterFieldTypes=mn}ngOnInit(){const e={};this.data.filterPropertiesList.forEach(i=>{e[i.keyNameInFiltersObject]=[this.data.currentFilters[i.keyNameInFiltersObject]]}),this.form=this.formBuilder.group(e)}apply(){const e={};this.data.filterPropertiesList.forEach(i=>{e[i.keyNameInFiltersObject]=this.form.get(i.keyNameInFiltersObject).value.trim()}),this.dialogRef.close(e)}static{this.\u0275fac=function(i){return new(i||t)(P(hn),P(It),P(pi))}}static{this.\u0275cmp=se({type:t,selectors:[["app-filters-selection"]],standalone:!1,decls:9,vars:8,consts:[["button",""],[3,"headline","dialog"],[3,"formGroup"],["color","primary",1,"float-right",3,"action"],[1,"field-container"],["for","remoteKey",1,"field-label"],["matInput","",3,"formControlName","maxlength"],[3,"formControlName"],[3,"value"],[1,"image-container",3,"style"],[1,"image-container"],[1,"image"]],template:function(i,o){1&i&&(f(0,"app-dialog",1),b(1,"translate"),f(2,"form",2),we(3,Jme,7,5,"mat-form-field",null,Re),h(),f(5,"app-button",3,0),L("action",function(){return o.apply()}),m(7),b(8,"translate"),h()()),2&i&&(v("headline",y(1,4,"filters.filter-action"))("dialog",o.dialogRef),d(2),v("formGroup",o.form),d(),xe(o.data.filterPropertiesList),d(4),I(" ",y(8,6,"common.ok")," "))},dependencies:[Cn,rn,sn,yn,ji,Xt,fn,wn,ei,oc,Is,On,Kt,Se],styles:[".image-container[_ngcontent-%COMP%]{display:inline-block;background-size:contain;margin-right:5px}.image-container[_ngcontent-%COMP%] .image[_ngcontent-%COMP%]{background-size:contain;width:100%;height:100%}"]})}}return t})();class su{get currentFiltersTexts(){return this.currentFiltersTextsInternal}get currentUrlQueryParams(){return this.currentUrlQueryParamsInternal}get dataFiltered(){return this.dataUpdatedSubject.asObservable()}constructor(n,e,i,o,r){this.dialog=n,this.route=e,this.router=i,this.currentFiltersTextsInternal=[],this.dataUpdatedSubject=new pe,this.filterPropertiesList=o,this.currentFilters={},this.filterPropertiesList.forEach(s=>{s.keyNameInFiltersObject=r+"_"+s.keyNameInElementsArray,this.currentFilters[s.keyNameInFiltersObject]=""}),this.navigationsSubscription=this.route.queryParamMap.subscribe(s=>{Object.keys(this.currentFilters).forEach(a=>{s.has(a)&&(this.currentFilters[a]=s.get(a))}),this.currentUrlQueryParamsInternal={},s.keys.forEach(a=>{this.currentUrlQueryParamsInternal[a]=s.get(a)}),this.filter()})}dispose(){this.dataUpdatedSubject.complete(),this.navigationsSubscription.unsubscribe()}setData(n){this.data=n,this.filter()}removeFilters(){const n=Ye.createConfirmationDialog(this.dialog,"filters.remove-confirmation");n.componentInstance.operationAccepted.subscribe(()=>{n.componentInstance.closeModal(),this.router.navigate([],{queryParams:{}})})}changeFilters(){ege.openDialog(this.dialog,{filterPropertiesList:this.filterPropertiesList,currentFilters:this.currentFilters}).afterClosed().subscribe(e=>{e&&this.router.navigate([],{queryParams:e})})}filter(){if(this.data){let n,e=!1;Object.keys(this.currentFilters).forEach(i=>{this.currentFilters[i]&&(e=!0)}),e?(n=function yme(t,n,e){if(t){const i=[];return Object.keys(n).forEach(r=>{if(n[r])for(const s of e)if(s.keyNameInFiltersObject===r){i.push(s);break}}),t.filter(r=>{let s=!0;return i.forEach(a=>{const l=String(r[a.keyNameInElementsArray]).toLowerCase().includes(n[a.keyNameInFiltersObject].toLowerCase()),c=a.secondaryKeyNameInElementsArray&&String(r[a.secondaryKeyNameInElementsArray]).toLowerCase().includes(n[a.keyNameInFiltersObject].toLowerCase());!l&&!c&&(s=!1)}),s})}return null}(this.data,this.currentFilters,this.filterPropertiesList),this.updateCurrentFilters()):(n=this.data,this.updateCurrentFilters()),this.dataUpdatedSubject.next(n)}}updateCurrentFilters(){this.currentFiltersTextsInternal=function Cme(t,n){const e=[];return n.forEach(i=>{if(t[i.keyNameInFiltersObject]){let o,r;i.printableLabelsForValues&&i.printableLabelsForValues.forEach(s=>{s.value===t[i.keyNameInFiltersObject]&&(r=s.label)}),r||(o=t[i.keyNameInFiltersObject]),e.push({filterName:i.filterName,translatableValue:r,value:o})}}),e}(this.currentFilters,this.filterPropertiesList)}}function tge(t,n){if(1&t){const e=ce();f(0,"div",3)(1,"div",4)(2,"div",5),m(3),h(),f(4,"div",6),m(5),h()(),f(6,"div",7)(7,"app-button",8),L("click",function(){const o=z(e).$implicit;return $(C(2).openTerminal(o.key))}),m(8),b(9,"translate"),h()()()}if(2&t){const e=n.$implicit;d(3),O(e.label),d(2),O(e.version),d(3),I(" ",y(9,3,"update-all.update-button")," ")}}function nge(t,n){if(1&t&&(f(0,"div",1),m(1),b(2,"translate"),h(),f(3,"div",2),we(4,tge,10,5,"div",3,Re),h()),2&t){const e=C();d(),I(" ",y(2,1,"update-all.updatable-list-text")," "),d(3),xe(e.updatableNodes)}}function ige(t,n){if(1&t&&(f(0,"div",6),m(1),h()),2&t){const e=C().$implicit;d(),O(e.tag)}}function oge(t,n){if(1&t&&(f(0,"div",3)(1,"div",4)(2,"div",5),m(3),h(),f(4,"div",6),m(5),h(),S(6,ige,2,1,"div",6),h()()),2&t){const e=n.$implicit;d(3),O(e.label),d(2),O(e.version),d(),k(e.tag?6:-1)}}function rge(t,n){if(1&t&&(f(0,"div",1),m(1),b(2,"translate"),h(),f(3,"div",2),we(4,oge,7,3,"div",3,Re),h()),2&t){const e=C();d(),I(" ",y(2,1,"update-all.non-updatable-list-text")," "),d(3),xe(e.nonUpdatableNodes)}}let sge=(()=>{class t{static openDialog(e,i,o){const r=new Lt;return r.data=[i,o],r.autoFocus=!1,r.width=ze.smallModalWidth,e.open(t,r)}constructor(e,i){this.dialogRef=e,this.updatableNodes=i[0],this.nonUpdatableNodes=i[1]}openTerminal(e){const i=window.location.protocol,o=window.location.host.replace("localhost:4200","127.0.0.1:8000");window.open(i+"//"+o+"/pty/"+e+"?commands=update","_blank","noopener noreferrer")}static{this.\u0275fac=function(i){return new(i||t)(P(It),P(hn))}}static{this.\u0275cmp=se({type:t,selectors:[["app-update-all"]],standalone:!1,decls:4,vars:6,consts:[[3,"headline","dialog"],[1,"text-container"],[1,"list-container"],[1,"list-element"],[1,"left-part"],[1,"name"],[1,"version"],[1,"right-part"],["color","primary",3,"click"]],template:function(i,o){1&i&&(f(0,"app-dialog",0),b(1,"translate"),S(2,nge,6,3),S(3,rge,6,3),h()),2&i&&(v("headline",y(1,4,"update-all.title"))("dialog",o.dialogRef),d(2),k(o.updatableNodes&&o.updatableNodes.length>0?2:-1),d(),k(o.nonUpdatableNodes&&o.nonUpdatableNodes.length>0?3:-1))},dependencies:[On,Kt,Se],styles:[".text-container[_ngcontent-%COMP%]{word-break:break-word}.list-container[_ngcontent-%COMP%]{font-size:14px;margin:10px;color:#215f9e;word-break:break-word;line-height:1.2}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%]{display:flex;margin-bottom:10px}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-part[_ngcontent-%COMP%]{flex-grow:1;flex-shrink:1;align-self:center;margin-right:10px;min-width:0}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-part[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:575px){.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-part[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{font-size:.7rem}}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-part[_ngcontent-%COMP%] .version[_ngcontent-%COMP%]{font-size:.7rem;color:#777;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .right-part[_ngcontent-%COMP%]{flex-basis:0;flex-shrink:0}.list-container[_ngcontent-%COMP%] .details[_ngcontent-%COMP%]{color:#777}"]})}}return t})();const age=["mat-internal-form-field",""],lge=["*"];let cge=(()=>{class t{labelPosition="after";static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["div","mat-internal-form-field",""]],hostAttrs:[1,"mdc-form-field","mat-internal-form-field"],hostVars:2,hostBindings:function(i,o){2&i&&Ke("mdc-form-field--align-end","before"===o.labelPosition)},inputs:{labelPosition:"labelPosition"},attrs:age,ngContentSelectors:lge,decls:1,vars:0,template:function(i,o){1&i&&(Si(),At(0))},styles:[".mat-internal-form-field{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-flex;align-items:center;vertical-align:middle}.mat-internal-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mat-internal-form-field>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px}.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 .mdc-form-field--align-end label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0}\n"],encapsulation:2,changeDetection:0})}return t})();const dge=["input"],uge=["label"],hge=["*"],yk={color:"accent",clickAction:"check-indeterminate",disabledInteractive:!1},fge=new Z("mat-checkbox-default-options",{providedIn:"root",factory:()=>yk});var Ui=function(t){return t[t.Init=0]="Init",t[t.Checked=1]="Checked",t[t.Unchecked=2]="Unchecked",t[t.Indeterminate=3]="Indeterminate",t}(Ui||{});class pge{source;checked}let kr=(()=>{class t{_elementRef=D(Ae);_changeDetectorRef=D(Pn);_ngZone=D(ge);_animationsDisabled=fi();_options=D(fge,{optional:!0});focus(){this._inputElement.nativeElement.focus()}_createChangeEvent(e){const i=new pge;return i.source=this,i.checked=e,i}_getAnimationTargetElement(){return this._inputElement?.nativeElement}_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"};ariaLabel="";ariaLabelledby=null;ariaDescribedby;ariaExpanded;ariaControls;ariaOwns;_uniqueId;id;get inputId(){return`${this.id||this._uniqueId}-input`}required=!1;labelPosition="after";name=null;change=new ve;indeterminateChange=new ve;value;disableRipple=!1;_inputElement;_labelElement;tabIndex;color;disabledInteractive;_onTouched=()=>{};_currentAnimationClass="";_currentCheckState=Ui.Init;_controlValueAccessorChangeFn=()=>{};_validatorChangeFn=()=>{};constructor(){D(pr).load(Af);const e=D(new Xg("tabindex"),{optional:!0});this._options=this._options||yk,this.color=this._options.color||yk.color,this.tabIndex=null==e?0:parseInt(e)||0,this.id=this._uniqueId=D(oi).getId("mat-mdc-checkbox-"),this.disabledInteractive=this._options?.disabledInteractive??!1}ngOnChanges(e){e.required&&this._validatorChangeFn()}ngAfterViewInit(){this._syncIndeterminate(this.indeterminate)}get checked(){return this._checked}set checked(e){e!=this.checked&&(this._checked=e,this._changeDetectorRef.markForCheck())}_checked=!1;get disabled(){return this._disabled}set disabled(e){e!==this.disabled&&(this._disabled=e,this._changeDetectorRef.markForCheck())}_disabled=!1;get indeterminate(){return this._indeterminate()}set indeterminate(e){const i=e!=this._indeterminate();this._indeterminate.set(e),i&&(this._transitionCheckState(e?Ui.Indeterminate:this.checked?Ui.Checked:Ui.Unchecked),this.indeterminateChange.emit(e)),this._syncIndeterminate(e)}_indeterminate=yt(!1);_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}validate(e){return this.required&&!0!==e.value?{required:!0}:null}registerOnValidatorChange(e){this._validatorChangeFn=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&&this.disabledInteractive||!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.set(!1),this.indeterminateChange.emit(!1)}),this._checked=!this._checked,this._transitionCheckState(this._checked?Ui.Checked:Ui.Unchecked),this._emitChangeEvent())}_onInteractionEvent(e){e.stopPropagation()}_onBlur(){Promise.resolve().then(()=>{this._onTouched(),this._changeDetectorRef.markForCheck()})}_getAnimationClassForCheckStateTransition(e,i){if(this._animationsDisabled)return"";switch(e){case Ui.Init:if(i===Ui.Checked)return this._animationClasses.uncheckedToChecked;if(i==Ui.Indeterminate)return this._checked?this._animationClasses.checkedToIndeterminate:this._animationClasses.uncheckedToIndeterminate;break;case Ui.Unchecked:return i===Ui.Checked?this._animationClasses.uncheckedToChecked:this._animationClasses.uncheckedToIndeterminate;case Ui.Checked:return i===Ui.Unchecked?this._animationClasses.checkedToUnchecked:this._animationClasses.checkedToIndeterminate;case Ui.Indeterminate:return i===Ui.Checked?this._animationClasses.indeterminateToChecked:this._animationClasses.indeterminateToUnchecked}return""}_syncIndeterminate(e){const i=this._inputElement;i&&(i.nativeElement.indeterminate=e)}_onInputClick(){this._handleInputClick()}_onTouchTargetClick(){this._handleInputClick(),this.disabled||this._inputElement.nativeElement.focus()}_preventBubblingFromLabel(e){e.target&&this._labelElement.nativeElement.contains(e.target)&&e.stopPropagation()}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["mat-checkbox"]],viewQuery:function(i,o){if(1&i&&rt(dge,5)(uge,5),2&i){let r;ue(r=he())&&(o._inputElement=r.first),ue(r=he())&&(o._labelElement=r.first)}},hostAttrs:[1,"mat-mdc-checkbox"],hostVars:16,hostBindings:function(i,o){2&i&&(Lr("id",o.id),Ze("tabindex",null)("aria-label",null)("aria-labelledby",null),at(o.color?"mat-"+o.color:"mat-accent"),Ke("_mat-animation-noopable",o._animationsDisabled)("mdc-checkbox--disabled",o.disabled)("mat-mdc-checkbox-disabled",o.disabled)("mat-mdc-checkbox-checked",o.checked)("mat-mdc-checkbox-disabled-interactive",o.disabledInteractive))},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],ariaExpanded:[2,"aria-expanded","ariaExpanded",Ie],ariaControls:[0,"aria-controls","ariaControls"],ariaOwns:[0,"aria-owns","ariaOwns"],id:"id",required:[2,"required","required",Ie],labelPosition:"labelPosition",name:"name",value:"value",disableRipple:[2,"disableRipple","disableRipple",Ie],tabIndex:[2,"tabIndex","tabIndex",e=>null==e?void 0:Br(e)],color:"color",disabledInteractive:[2,"disabledInteractive","disabledInteractive",Ie],checked:[2,"checked","checked",Ie],disabled:[2,"disabled","disabled",Ie],indeterminate:[2,"indeterminate","indeterminate",Ie]},outputs:{change:"change",indeterminateChange:"indeterminateChange"},exportAs:["matCheckbox"],features:[ht([{provide:yr,useExisting:Vt(()=>t),multi:!0},{provide:Ii,useExisting:t,multi:!0}]),yi],ngContentSelectors:hge,decls:15,vars:23,consts:[["checkbox",""],["input",""],["label",""],["mat-internal-form-field","",3,"click","labelPosition"],[1,"mdc-checkbox"],["aria-hidden","true",1,"mat-mdc-checkbox-touch-target",3,"click"],["type","checkbox",1,"mdc-checkbox__native-control",3,"blur","click","change","checked","indeterminate","disabled","id","required","tabIndex"],["aria-hidden","true",1,"mdc-checkbox__ripple"],["aria-hidden","true",1,"mdc-checkbox__background"],["focusable","false","viewBox","0 0 24 24",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","","aria-hidden","true",1,"mat-mdc-checkbox-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-label",3,"for"]],template:function(i,o){if(1&i&&(Si(),f(0,"div",3),L("click",function(s){return o._preventBubblingFromLabel(s)}),f(1,"div",4,0)(3,"div",5),L("click",function(){return o._onTouchTargetClick()}),h(),f(4,"input",6,1),L("blur",function(){return o._onBlur()})("click",function(){return o._onInputClick()})("change",function(s){return o._onInteractionEvent(s)}),h(),B(6,"div",7),f(7,"div",8),Uc(),f(8,"svg",9),B(9,"path",10),h(),Vy(),B(10,"div",11),h(),B(11,"div",12),h(),f(12,"label",13,2),At(14),h()()),2&i){const r=Vn(2);v("labelPosition",o.labelPosition),d(4),Ke("mdc-checkbox--selected",o.checked),v("checked",o.checked)("indeterminate",o.indeterminate)("disabled",o.disabled&&!o.disabledInteractive)("id",o.inputId)("required",o.required)("tabIndex",o.disabled&&!o.disabledInteractive?-1:o.tabIndex),Ze("aria-label",o.ariaLabel||null)("aria-labelledby",o.ariaLabelledby)("aria-describedby",o.ariaDescribedby)("aria-checked",o.indeterminate?"mixed":null)("aria-controls",o.ariaControls)("aria-disabled",!(!o.disabled||!o.disabledInteractive)||null)("aria-expanded",o.ariaExpanded)("aria-owns",o.ariaOwns)("name",o.name)("value",o.value),d(7),v("matRippleTrigger",r)("matRippleDisabled",o.disableRipple||o.disabled)("matRippleCentered",!0),d(),v("for",o.inputId)}},dependencies:[Of,cge],styles:['.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;padding:calc((var(--mat-checkbox-state-layer-size, 40px) - 18px)/2);margin:calc((var(--mat-checkbox-state-layer-size, 40px) - var(--mat-checkbox-state-layer-size, 40px))/2)}.mdc-checkbox:hover>.mdc-checkbox__ripple{opacity:var(--mat-checkbox-unselected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));background-color:var(--mat-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:hover>.mat-mdc-checkbox-ripple>.mat-ripple-element{background-color:var(--mat-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus+.mdc-checkbox__ripple{opacity:var(--mat-checkbox-unselected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));background-color:var(--mat-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mat-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:active>.mdc-checkbox__native-control+.mdc-checkbox__ripple{opacity:var(--mat-checkbox-unselected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));background-color:var(--mat-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:active>.mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mat-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:hover>.mdc-checkbox__native-control:checked+.mdc-checkbox__ripple{opacity:var(--mat-checkbox-selected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));background-color:var(--mat-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:hover>.mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mat-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox .mdc-checkbox__native-control:focus:checked+.mdc-checkbox__ripple{opacity:var(--mat-checkbox-selected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));background-color:var(--mat-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mat-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:active>.mdc-checkbox__native-control:checked+.mdc-checkbox__ripple{opacity:var(--mat-checkbox-selected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));background-color:var(--mat-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:active>.mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mat-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control+.mdc-checkbox__ripple{background-color:var(--mat-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit;z-index:1;width:var(--mat-checkbox-state-layer-size, 40px);height:var(--mat-checkbox-state-layer-size, 40px);top:calc((var(--mat-checkbox-state-layer-size, 40px) - var(--mat-checkbox-state-layer-size, 40px))/2);right:calc((var(--mat-checkbox-state-layer-size, 40px) - var(--mat-checkbox-state-layer-size, 40px))/2);left:calc((var(--mat-checkbox-state-layer-size, 40px) - var(--mat-checkbox-state-layer-size, 40px))/2)}.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 cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms cubic-bezier(0.4, 0, 0.6, 1);-webkit-print-color-adjust:exact;color-adjust:exact;border-color:var(--mat-checkbox-unselected-icon-color, var(--mat-sys-on-surface-variant));top:calc((var(--mat-checkbox-state-layer-size, 40px) - 18px)/2);left:calc((var(--mat-checkbox-state-layer-size, 40px) - 18px)/2)}.mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background{border-color:var(--mat-checkbox-selected-icon-color, var(--mat-sys-primary));background-color:var(--mat-checkbox-selected-icon-color, var(--mat-sys-primary))}.mdc-checkbox--disabled .mdc-checkbox__background{border-color:var(--mat-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}@media(forced-colors: active){.mdc-checkbox--disabled .mdc-checkbox__background{border-color:GrayText}}.mdc-checkbox__native-control:disabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:disabled:indeterminate~.mdc-checkbox__background{background-color:var(--mat-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:rgba(0,0,0,0)}@media(forced-colors: active){.mdc-checkbox__native-control:disabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:disabled:indeterminate~.mdc-checkbox__background{border-color:GrayText}}.mdc-checkbox:hover>.mdc-checkbox__native-control:not(:checked)~.mdc-checkbox__background,.mdc-checkbox:hover>.mdc-checkbox__native-control:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mat-checkbox-unselected-hover-icon-color, var(--mat-sys-on-surface));background-color:rgba(0,0,0,0)}.mdc-checkbox:hover>.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox:hover>.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{border-color:var(--mat-checkbox-selected-hover-icon-color, var(--mat-sys-primary));background-color:var(--mat-checkbox-selected-hover-icon-color, var(--mat-sys-primary))}.mdc-checkbox__native-control:focus:focus:not(:checked)~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mat-checkbox-unselected-focus-icon-color, var(--mat-sys-on-surface))}.mdc-checkbox__native-control:focus:focus:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:indeterminate~.mdc-checkbox__background{border-color:var(--mat-checkbox-selected-focus-icon-color, var(--mat-sys-primary));background-color:var(--mat-checkbox-selected-focus-icon-color, var(--mat-sys-primary))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox:hover>.mdc-checkbox__native-control~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__background{border-color:var(--mat-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}@media(forced-colors: active){.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox:hover>.mdc-checkbox__native-control~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__background{border-color:GrayText}}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{background-color:var(--mat-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:rgba(0,0,0,0)}.mdc-checkbox__checkmark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;transition:opacity 180ms cubic-bezier(0.4, 0, 0.6, 1);color:var(--mat-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}@media(forced-colors: active){.mdc-checkbox__checkmark{color:CanvasText}}.mdc-checkbox--disabled .mdc-checkbox__checkmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:var(--mat-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}@media(forced-colors: active){.mdc-checkbox--disabled .mdc-checkbox__checkmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:GrayText}}.mdc-checkbox__checkmark-path{transition:stroke-dashoffset 180ms 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 cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1);border-color:var(--mat-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}@media(forced-colors: active){.mdc-checkbox__mixedmark{margin:0 1px}}.mdc-checkbox--disabled .mdc-checkbox__mixedmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__mixedmark{border-color:var(--mat-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}@media(forced-colors: active){.mdc-checkbox--disabled .mdc-checkbox__mixedmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__mixedmark{border-color:GrayText}}.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;transition:none}.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark{animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark{animation:mdc-checkbox-indeterminate-checked-checkmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-checked-mixedmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear;transition:none}.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{transition:border-color 90ms cubic-bezier(0, 0, 0.2, 1),background-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path{stroke-dashoffset:0}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__checkmark{transition:opacity 180ms cubic-bezier(0, 0, 0.2, 1),transform 180ms 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{transform:rotate(45deg);opacity:0;transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__mixedmark{transform:scaleX(1) rotate(0deg);opacity:1}@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:cubic-bezier(0, 0, 0.2, 1);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}}.mat-mdc-checkbox{display:inline-block;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mat-mdc-checkbox-touch-target,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__native-control,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__ripple,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mat-mdc-checkbox-ripple::before,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__checkmark,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__mixedmark{transition:none !important;animation:none !important}.mat-mdc-checkbox label{cursor:pointer}.mat-mdc-checkbox .mat-internal-form-field{color:var(--mat-checkbox-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-checkbox-label-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-checkbox-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-checkbox-label-text-size, var(--mat-sys-body-medium-size));letter-spacing:var(--mat-checkbox-label-text-tracking, var(--mat-sys-body-medium-tracking));font-weight:var(--mat-checkbox-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive{pointer-events:auto}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive input{cursor:default}.mat-mdc-checkbox.mat-mdc-checkbox-disabled label{cursor:default;color:var(--mat-checkbox-disabled-label-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}@media(forced-colors: active){.mat-mdc-checkbox.mat-mdc-checkbox-disabled label{color:GrayText}}.mat-mdc-checkbox label:empty{display:none}.mat-mdc-checkbox .mdc-checkbox__ripple{opacity:0}.mat-mdc-checkbox .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 .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%;left:50%;height:var(--mat-checkbox-touch-target-size, 48px);width:var(--mat-checkbox-touch-target-size, 48px);transform:translate(-50%, -50%);display:var(--mat-checkbox-touch-target-display, block)}.mat-mdc-checkbox .mat-mdc-checkbox-ripple::before{border-radius:50%}.mdc-checkbox__native-control:focus-visible~.mat-focus-indicator::before{content:""}\n'],encapsulation:2,changeDetection:0})}return t})(),mge=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({imports:[kr,ri]})}return t})();const gge=["button"],_ge=t=>({"element-disabled":t}),bge=t=>({"element-margin":t});function vge(t,n){1&t&&(f(0,"span",17),m(1),b(2,"translate"),h()),2&t&&(d(),I(" ",y(2,1,"bulk-rewards.checking")))}function yge(t,n){if(1&t&&(f(0,"span",18)(1,"span"),m(2),b(3,"translate"),h(),f(4,"span"),m(5),b(6,"translate"),h()()),2&t){const e=C(2).$implicit;d(2),I(" ",y(3,2,"bulk-rewards.error-checking")),d(3),I(" ",y(6,4,e.operationError))}}function Cge(t,n){if(1&t&&(f(0,"span"),m(1),h()),2&t){const e=C(2).$implicit;d(),I(" ",e.currentAddress)}}function wge(t,n){1&t&&(f(0,"span"),m(1),b(2,"translate"),h()),2&t&&(d(),I(" ",y(2,1,"bulk-rewards.not-registered")))}function xge(t,n){if(1&t&&(rr(0,12),f(1,"mat-checkbox",13)(2,"div")(3,"div",14),m(4),h(),f(5,"div",15)(6,"span",16),m(7),b(8,"translate"),h(),S(9,vge,3,3,"span",17),S(10,yge,7,6,"span",18),S(11,Cge,2,1,"span"),S(12,wge,3,3,"span"),h()()(),Lo()),2&t){const e=C(),i=e.$implicit;v("formGroupName",e.$index),d(4),I(" ",i.label," "),d(3),O(y(8,7,"bulk-rewards.current-address")),d(2),k(null!==i.currentAddress||i.operationError?-1:9),d(),k(i.operationError?10:-1),d(),k(i.currentAddress&&!i.operationError?11:-1),d(),k(""!==i.currentAddress||i.operationError?-1:12)}}function Sge(t,n){1&t&&(f(0,"span",17),m(1),b(2,"translate"),h()),2&t&&(d(),I(" ",y(2,1,"bulk-rewards.processing")))}function kge(t,n){if(1&t&&(f(0,"span",18)(1,"span"),m(2),b(3,"translate"),h(),f(4,"span"),m(5),b(6,"translate"),h()()),2&t){const e=C(2).$implicit;d(2),I(" ",y(3,2,"bulk-rewards.error-processing")),d(3),I(" ",y(6,4,e.operationError))}}function Dge(t,n){1&t&&(f(0,"span",22),m(1),b(2,"translate"),h()),2&t&&(d(),I(" ",y(2,1,"bulk-rewards.done")))}function Tge(t,n){if(1&t&&(f(0,"div",19),m(1,"-"),h(),f(2,"div",20),m(3),f(4,"div",21),S(5,Sge,3,3,"span",17),S(6,kge,7,6,"span",18),S(7,Dge,3,3,"span",22),h()()),2&t){const e=C().$implicit;d(3),I(" ",e.label," "),d(2),k(e.processing&&!e.operationError?5:-1),d(),k(e.operationError?6:-1),d(),k(e.processing||e.operationError?-1:7)}}function Mge(t,n){if(1&t&&(f(0,"div",9),S(1,xge,13,9,"ng-container",12),S(2,Tge,8,4),h()),2&t){const e=C();v("ngClass",oe(3,bge,e.processingStarted)),d(),k(e.processingStarted?-1:1),d(),k(e.processingStarted?2:-1)}}function Ege(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"bulk-rewards.perform-changes")," ")}function Ige(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"common.close")," ")}let Pge=(()=>{class t{static openDialog(e,i){const o=new Lt;return o.data=i,o.autoFocus=!1,o.width=ze.smallModalWidth,e.open(t,o)}constructor(e,i,o,r,s){this.dialogRef=e,this.data=i,this.nodeService=o,this.formBuilder=r,this.dialog=s,this.processingStarted=!1,this.processingFinished=!1,this.currentlyProcessed=0,this.form=r.group({address:["",Ve.compose([Ve.minLength(20),Ve.maxLength(112)])],nodes:r.array([])}),i.nodes.forEach(a=>{const l=this.formBuilder.group({selected:[!0]});this.form.get("nodes").push(l)}),this.startChecking()}formValid(){if(!this.processingStarted){if(!this.form.valid)return!1;let e=0;return this.form.get("nodes").controls.forEach((i,o)=>{i.get("selected")?.value&&(e+=1)}),e>0}return!0}get disableDismiss(){return this.processingStarted&&!this.processingFinished}startChecking(){this.nodesToEdit=[],this.data.nodes.forEach(e=>{this.nodesToEdit.push({key:e.key,label:e.label,currentAddress:null,operationError:"",processing:!1})}),this.operationSubscriptions=[],this.nodesToEdit.forEach((e,i)=>{this.operationSubscriptions.push(this.nodeService.getRewardsAddress(e.key).subscribe(o=>{this.nodesToEdit[i].currentAddress=o},o=>{this.nodesToEdit[i].operationError=o.translatableErrorMsg?o.translatableErrorMsg:o.originalServerErrorMsg}))})}checkBeforeProcessing(){if(this.form.valid)if(this.form.get("address").value)this.startProcessing();else{const i=Ye.createConfirmationDialog(this.dialog,"bulk-rewards.empty-warning");i.componentInstance.operationAccepted.subscribe(()=>{i.componentInstance.closeModal(),this.startProcessing()})}}startProcessing(){this.processingStarted=!0,this.button.showLoading(),this.closeoperationSubscriptions();const e=[];this.form.get("nodes").controls.forEach((o,r)=>{o.get("selected")?.value&&(this.nodesToEdit[r].operationError="",this.nodesToEdit[r].processing=!0,e.push(this.nodesToEdit[r]))}),this.nodesToEdit=e;const i=this.form.get("address").value;this.form.get("address").disable(),this.currentlyProcessed=0,this.operationSubscriptions=[],this.nodesToEdit.forEach((o,r)=>{let s=this.nodeService.setRewardsAddress(o.key,i);i||(s=this.nodeService.deleteRewardsAddress(o.key)),this.operationSubscriptions.push(ae(0).pipe(ii(100),Et(()=>s)).subscribe(a=>{this.nodesToEdit[r].processing=!1,this.currentlyProcessed+=1,this.currentlyProcessed===this.nodesToEdit.length&&(this.processingFinished=!0,this.button.reset())},a=>{this.nodesToEdit[r].processing=!1,this.nodesToEdit[r].operationError=a.translatableErrorMsg?a.translatableErrorMsg:a.originalServerErrorMsg,this.currentlyProcessed+=1,this.currentlyProcessed===this.nodesToEdit.length&&(this.processingFinished=!0,this.button.reset())}))})}ngOnDestroy(){this.closeoperationSubscriptions()}closeoperationSubscriptions(){this.operationSubscriptions&&this.operationSubscriptions.forEach(e=>e.unsubscribe())}closeModal(){this.dialogRef.close()}static{this.\u0275fac=function(i){return new(i||t)(P(It),P(hn),P(Sr),P(pi),P(kt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-bulk-reward-address-changer"]],viewQuery:function(i,o){if(1&i&&rt(gge,5),2&i){let r;ue(r=he())&&(o.button=r.first)}},standalone:!1,decls:31,vars:27,consts:[["button",""],[3,"headline","dialog","disableDismiss"],[3,"formGroup"],[1,"text-container"],["href","https://github.com/skycoin/skywire/blob/develop/rewards/mainnet_rules.md","target","_blank","rel","noreferrer nofollow noopener"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","address","maxlength","112","matInput","",3,"ngClass"],["formArrayName","nodes",1,"list-container"],[1,"list-element",3,"ngClass"],[1,"buttons"],["type","mat-raised-button","color","primary",3,"action","disabled"],[3,"formGroupName"],["color","primary","formControlName","selected"],[1,"contents"],[1,"address","contents"],[1,"address-label"],[1,"blinking"],[1,"red-text"],[1,"left-area"],[1,"right-area","contents"],[1,"address"],[1,"green-text"]],template:function(i,o){1&i&&(f(0,"app-dialog",1),b(1,"translate"),f(2,"form",2)(3,"div",3)(4,"span"),m(5),b(6,"translate"),h(),f(7,"a",4),m(8),b(9,"translate"),h()(),f(10,"mat-form-field")(11,"div",5)(12,"label",6),m(13),b(14,"translate"),h(),B(15,"input",7),h(),f(16,"mat-error")(17,"span"),m(18),b(19,"translate"),h()()(),f(20,"div",3),m(21),b(22,"translate"),h(),f(23,"div",8),we(24,Mge,3,5,"div",9,Re),h()(),f(26,"div",10)(27,"app-button",11,0),L("action",function(){return o.processingStarted?o.closeModal():o.checkBeforeProcessing()}),S(29,Ege,2,3),S(30,Ige,2,3),h()()()),2&i&&(v("headline",y(1,13,"bulk-rewards.title"))("dialog",o.dialogRef)("disableDismiss",o.disableDismiss),d(2),v("formGroup",o.form),d(3),I("",y(6,15,"bulk-rewards.info")," "),d(3),I(" ",y(9,17,"bulk-rewards.more-info-link")," "),d(5),O(y(14,19,"rewards-address-config.address")),d(2),v("ngClass",oe(25,_ge,o.processingStarted)),d(3),O(y(19,21,"rewards-address-config.address-error")),d(3),I(" ",y(22,23,"bulk-rewards.select-visors")," "),d(3),xe(o.nodesToEdit),d(3),v("disabled",!o.formValid()),d(2),k(o.processingStarted?-1:29),d(),k(o.processingStarted?30:-1))},dependencies:[qt,Cn,rn,sn,yn,ji,Xt,fn,Jl,tu,wn,Es,ei,kr,On,Kt,Se],styles:[".text-container[_ngcontent-%COMP%]{word-break:break-word}mat-form-field[_ngcontent-%COMP%]{margin-top:10px}.list-container[_ngcontent-%COMP%]{font-size:14px;margin:10px;color:#215f9e;word-break:break-word}.list-container[_ngcontent-%COMP%] .element-margin[_ngcontent-%COMP%]{margin:15px 0}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%]{display:flex}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-area[_ngcontent-%COMP%]{width:12px;flex-grow:0;flex-shrink:0}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .right-area[_ngcontent-%COMP%]{flex-grow:1}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .contents[_ngcontent-%COMP%]{white-space:normal;line-height:1.2}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .address[_ngcontent-%COMP%]{font-size:.7rem;color:#777}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .address[_ngcontent-%COMP%] .address-label[_ngcontent-%COMP%]{opacity:.7}.buttons[_ngcontent-%COMP%]{margin-top:15px;text-align:right}.buttons[_ngcontent-%COMP%] app-button[_ngcontent-%COMP%]{margin-left:5px}"]})}}return t})(),Gf=(()=>{class t{constructor(e){this.dom=e}copy(e){let i=null;try{return i=this.dom.createElement("textarea"),i.style.height="0px",i.style.left="-100px",i.style.opacity="0",i.style.position="fixed",i.style.top="-100px",i.style.width="0px",this.dom.body.appendChild(i),i.value=e,i.select(),this.dom.execCommand("copy"),!0}catch{return!1}finally{i&&i.parentNode&&i.parentNode.removeChild(i)}}static{this.\u0275fac=function(i){return new(i||t)(le(Qe))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac})}}return t})(),Oge=(()=>{class t{constructor(e){this.http=e,this.rewardSystemUrl="/api/rewards",this.rewardDataCache=new Map,this.cachedDates=[],this.fetching=!1}getLastNDays(e){const i=[];for(let o=0;o0}fetchRewardData(e){return this.hasCache()?ae(this.rewardDataCache):(this.fetching=!0,kb(e.map(o=>this.http.get(`${this.rewardSystemUrl}/skycoin-rewards/visor/${o}?days=7`).pipe(ye(r=>({pk:o,history:r&&r.history?r.history:[]})),go(()=>ae({pk:o,history:[]}))))).pipe(ye(o=>{const r=new Map;for(const{pk:s,history:a}of o){const l={pk:s,rewardAddress:"",dailyAmounts:{},dailySent:{},weekTotal:0};for(const c of a)c.date&&(l.dailyAmounts[c.date]=c.amount||0,l.dailySent[c.date]=c.sent||!1,l.weekTotal+=c.amount||0);r.set(s,l)}return this.rewardDataCache=r,this.cachedDates=this.getLastNDays(7),this.fetching=!1,r}),go(o=>(this.fetching=!1,ae(new Map)))))}clearCache(){this.rewardDataCache=new Map,this.cachedDates=[]}static{this.\u0275fac=function(i){return new(i||t)(le(ga))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();class n5 extends JV{_origin="program";setFocusOrigin(n){return this._origin=n,this}setActiveItem(n){super.setActiveItem(n),this.activeItem&&this.activeItem.focus(this._origin)}}const Age=["mat-menu-item",""],Rge=[[["mat-icon"],["","matMenuItemIcon",""]],"*"],Nge=["mat-icon, [matMenuItemIcon]","*"];function Fge(t,n){1&t&&(Uc(),f(0,"svg",2),B(1,"polygon",3),h())}const Lge=["*"];function Bge(t,n){if(1&t){const e=ce();gs(0,"div",0),Fg("click",function(){return z(e),$(C().closed.emit("click"))})("animationstart",function(o){return z(e),$(C()._onAnimationStart(o.animationName))})("animationend",function(o){return z(e),$(C()._onAnimationDone(o.animationName))})("animationcancel",function(o){return z(e),$(C()._onAnimationDone(o.animationName))}),gs(1,"div",1),At(2),Tl()()}if(2&t){const e=C();at(e._classList),Ke("mat-menu-panel-animations-disabled",e._animationsDisabled)("mat-menu-panel-exit-animation","void"===e._panelAnimationState)("mat-menu-panel-animating",e._isAnimating()),Lr("id",e.panelId),Ze("aria-label",e.ariaLabel||null)("aria-labelledby",e.ariaLabelledby||null)("aria-describedby",e.ariaDescribedby||null)}}const Ck=new Z("MAT_MENU_PANEL");let Ps=(()=>{class t{_elementRef=D(Ae);_document=D(Qe);_focusMonitor=D(qd);_parentMenu=D(Ck,{optional:!0});_changeDetectorRef=D(Pn);role="menuitem";disabled=!1;disableRipple=!1;_hovered=new pe;_focused=new pe;_highlighted=!1;_triggersSubmenu=!1;constructor(){D(pr).load(Af),this._parentMenu?.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({overlapTrigger:!1,xPosition:"after",yPosition:"below",backdropClass:"cdk-overlay-transparent-backdrop"})}),wk="_mat-menu-enter",av="_mat-menu-exit";let Xr=(()=>{class t{_elementRef=D(Ae);_changeDetectorRef=D(Pn);_injector=D(Be);_keyManager;_xPosition;_yPosition;_firstItemFocusRef;_exitFallbackTimeout;_animationsDisabled=fi();_allItems;_directDescendantItems=new Zc;_classList={};_panelAnimationState="void";_animationDone=new pe;_isAnimating=yt(!1);parentMenu;direction;overlayPanelClass;backdropClass;ariaLabel;ariaLabelledby;ariaDescribedby;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()}templateRef;items;lazyContent;overlapTrigger=!1;hasBackdrop;set panelClass(e){const i=this._previousPanelClass,o={...this._classList};i&&i.length&&i.split(" ").forEach(r=>{o[r]=!1}),this._previousPanelClass=e,e&&e.length&&(e.split(" ").forEach(r=>{o[r]=!0}),this._elementRef.nativeElement.className=""),this._classList=o}_previousPanelClass;get classList(){return this.panelClass}set classList(e){this.panelClass=e}closed=new ve;close=this.closed;panelId=D(oi).getId("mat-menu-panel-");constructor(){const e=D(Hge);this.overlayPanelClass=e.overlayPanelClass||"",this._xPosition=e.xPosition,this._yPosition=e.yPosition,this.backdropClass=e.backdropClass,this.overlapTrigger=e.overlapTrigger,this.hasBackdrop=e.hasBackdrop}ngOnInit(){this.setPositionClasses()}ngAfterContentInit(){this._updateDirectDescendants(),this._keyManager=new n5(this._directDescendantItems).withWrap().withTypeAhead().withHomeAndEnd(),this._keyManager.tabOut.subscribe(()=>this.closed.emit("tab")),this._directDescendantItems.changes.pipe(to(this._directDescendantItems),Zn(e=>gr(...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._firstItemFocusRef?.destroy(),clearTimeout(this._exitFallbackTimeout)}_hovered(){return this._directDescendantItems.changes.pipe(to(this._directDescendantItems),Zn(i=>gr(...i.map(o=>o._hovered))))}addItem(e){}removeItem(e){}_handleKeydown(e){const i=e.keyCode,o=this._keyManager;switch(i){case 27:mr(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)}}focusFirstItem(e="program"){this._firstItemFocusRef?.destroy(),this._firstItemFocusRef=Fi(()=>{const i=this._resolvePanel();if(!i||!i.contains(document.activeElement)){const o=this._keyManager;o.setFocusOrigin(e).setFirstItemActive(),!o.activeItem&&i&&i.focus()}},{injector:this._injector})}resetActiveItem(){this._keyManager.setActiveItem(-1)}setElevation(e){}setPositionClasses(e=this.xPosition,i=this.yPosition){this._classList={...this._classList,"mat-menu-before":"before"===e,"mat-menu-after":"after"===e,"mat-menu-above":"above"===i,"mat-menu-below":"below"===i},this._changeDetectorRef.markForCheck()}_onAnimationDone(e){const i=e===av;(i||e===wk)&&(i&&(clearTimeout(this._exitFallbackTimeout),this._exitFallbackTimeout=void 0),this._animationDone.next(i?"void":"enter"),this._isAnimating.set(!1))}_onAnimationStart(e){(e===wk||e===av)&&this._isAnimating.set(!0)}_setIsOpen(e){if(this._panelAnimationState=e?"enter":"void",e){if(0===this._keyManager.activeItemIndex){const i=this._resolvePanel();i&&(i.scrollTop=0)}}else this._animationsDisabled||(this._exitFallbackTimeout=setTimeout(()=>this._onAnimationDone(av),200));this._animationsDisabled&&setTimeout(()=>{this._onAnimationDone(e?wk:av)}),this._changeDetectorRef.markForCheck()}_updateDirectDescendants(){this._allItems.changes.pipe(to(this._allItems)).subscribe(e=>{this._directDescendantItems.reset(e.filter(i=>i._parentMenu===this)),this._directDescendantItems.notifyOnChanges()})}_resolvePanel(){let e=null;return this._directDescendantItems.length&&(e=this._directDescendantItems.first._getHostElement().closest('[role="menu"]')),e}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["mat-menu"]],contentQueries:function(i,o,r){if(1&i&&_s(r,Vge,5)(r,Ps,5)(r,Ps,4),2&i){let s;ue(s=he())&&(o.lazyContent=s.first),ue(s=he())&&(o._allItems=s),ue(s=he())&&(o.items=s)}},viewQuery:function(i,o){if(1&i&&rt(Ci,5),2&i){let r;ue(r=he())&&(o.templateRef=r.first)}},hostVars:3,hostBindings:function(i,o){2&i&&Ze("aria-label",null)("aria-labelledby",null)("aria-describedby",null)},inputs:{backdropClass:"backdropClass",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],xPosition:"xPosition",yPosition:"yPosition",overlapTrigger:[2,"overlapTrigger","overlapTrigger",Ie],hasBackdrop:[2,"hasBackdrop","hasBackdrop",e=>null==e?null:Ie(e)],panelClass:[0,"class","panelClass"],classList:"classList"},outputs:{closed:"closed",close:"close"},exportAs:["matMenu"],features:[ht([{provide:Ck,useExisting:t}])],ngContentSelectors:Lge,decls:1,vars:0,consts:[["tabindex","-1","role","menu",1,"mat-mdc-menu-panel",3,"click","animationstart","animationend","animationcancel","id"],[1,"mat-mdc-menu-content"]],template:function(i,o){1&i&&(Si(),bg(0,Bge,3,12,"ng-template"))},styles:['mat-menu{display:none}.mat-mdc-menu-content{margin:0;padding:8px 0;outline:0}.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;flex:1;white-space:normal;font-family:var(--mat-menu-item-label-text-font, var(--mat-sys-label-large-font));line-height:var(--mat-menu-item-label-text-line-height, var(--mat-sys-label-large-line-height));font-size:var(--mat-menu-item-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mat-menu-item-label-text-tracking, var(--mat-sys-label-large-tracking));font-weight:var(--mat-menu-item-label-text-weight, var(--mat-sys-label-large-weight))}@keyframes _mat-menu-enter{from{opacity:0;transform:scale(0.8)}to{opacity:1;transform:none}}@keyframes _mat-menu-exit{from{opacity:1}to{opacity:0}}.mat-mdc-menu-panel{min-width:112px;max-width:280px;overflow:auto;box-sizing:border-box;outline:0;animation:_mat-menu-enter 120ms cubic-bezier(0, 0, 0.2, 1);border-radius:var(--mat-menu-container-shape, var(--mat-sys-corner-extra-small));background-color:var(--mat-menu-container-color, var(--mat-sys-surface-container));box-shadow:var(--mat-menu-container-elevation-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));will-change:transform,opacity}.mat-mdc-menu-panel.mat-menu-panel-exit-animation{animation:_mat-menu-exit 100ms 25ms linear forwards}.mat-mdc-menu-panel.mat-menu-panel-animations-disabled{animation:none}.mat-mdc-menu-panel.mat-menu-panel-animating{pointer-events:none}.mat-mdc-menu-panel.mat-menu-panel-animating:has(.mat-mdc-menu-content:empty){display:none}@media(forced-colors: active){.mat-mdc-menu-panel{outline:solid 1px}}.mat-mdc-menu-panel .mat-divider{border-top-color:var(--mat-menu-divider-color, var(--mat-sys-surface-variant));margin-bottom:var(--mat-menu-divider-bottom-spacing, 8px);margin-top:var(--mat-menu-divider-top-spacing, 8px)}.mat-mdc-menu-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;cursor:pointer;width:100%;text-align:left;box-sizing:border-box;color:inherit;font-size:inherit;background:none;text-decoration:none;margin:0;min-height:48px;padding-left:var(--mat-menu-item-leading-spacing, 12px);padding-right:var(--mat-menu-item-trailing-spacing, 12px);-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-menu-item::-moz-focus-inner{border:0}[dir=rtl] .mat-mdc-menu-item{padding-left:var(--mat-menu-item-trailing-spacing, 12px);padding-right:var(--mat-menu-item-leading-spacing, 12px)}.mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]){padding-left:var(--mat-menu-item-with-icon-leading-spacing, 12px);padding-right:var(--mat-menu-item-with-icon-trailing-spacing, 12px)}[dir=rtl] .mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]){padding-left:var(--mat-menu-item-with-icon-trailing-spacing, 12px);padding-right:var(--mat-menu-item-with-icon-leading-spacing, 12px)}.mat-mdc-menu-item,.mat-mdc-menu-item:visited,.mat-mdc-menu-item:link{color:var(--mat-menu-item-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-menu-item .mat-icon-no-color,.mat-mdc-menu-item .mat-mdc-menu-submenu-icon{color:var(--mat-menu-item-icon-color, var(--mat-sys-on-surface-variant))}.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:focus{outline:0}.mat-mdc-menu-item .mat-icon{flex-shrink:0;margin-right:var(--mat-menu-item-spacing, 12px);height:var(--mat-menu-item-icon-size, 24px);width:var(--mat-menu-item-icon-size, 24px)}[dir=rtl] .mat-mdc-menu-item{text-align:right}[dir=rtl] .mat-mdc-menu-item .mat-icon{margin-right:0;margin-left:var(--mat-menu-item-spacing, 12px)}.mat-mdc-menu-item:not([disabled]):hover{background-color:var(--mat-menu-item-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}.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, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent))}@media(forced-colors: active){.mat-mdc-menu-item{margin-top:1px}}.mat-mdc-menu-submenu-icon{width:var(--mat-menu-item-icon-size, 24px);height:10px;fill:currentColor;padding-left:var(--mat-menu-item-spacing, 12px)}[dir=rtl] .mat-mdc-menu-submenu-icon{padding-right:var(--mat-menu-item-spacing, 12px);padding-left:0}[dir=rtl] .mat-mdc-menu-submenu-icon polygon{transform:scaleX(-1);transform-origin:center}@media(forced-colors: 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}\n'],encapsulation:2,changeDetection:0})}return t})();const jge=new Z("mat-menu-scroll-strategy",{providedIn:"root",factory:()=>{const t=D(Be);return()=>Tf(t)}}),au=new WeakMap;let Uge=(()=>{class t{_canHaveBackdrop;_element=D(Ae);_viewContainerRef=D(wi);_menuItemInstance=D(Ps,{optional:!0,self:!0});_dir=D(hr,{optional:!0});_focusMonitor=D(qd);_ngZone=D(ge);_injector=D(Be);_scrollStrategy=D(jge);_changeDetectorRef=D(Pn);_animationsDisabled=fi();_portal;_overlayRef=null;_menuOpen=!1;_closingActionsSubscription=mt.EMPTY;_menuCloseSubscription=mt.EMPTY;_pendingRemoval;_parentMaterialMenu;_parentInnerPadding;_openedBy=void 0;get _menu(){return this._menuInternal}set _menu(e){e!==this._menuInternal&&(this._menuInternal=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()))}_menuInternal=null;constructor(e){this._canHaveBackdrop=e;const i=D(Ck,{optional:!0});this._parentMaterialMenu=i instanceof Xr?i:void 0}ngOnDestroy(){this._menu&&this._ownsMenu(this._menu)&&au.delete(this._menu),this._pendingRemoval?.unsubscribe(),this._menuCloseSubscription.unsubscribe(),this._closingActionsSubscription.unsubscribe(),this._overlayRef&&(this._overlayRef.dispose(),this._overlayRef=null)}get menuOpen(){return this._menuOpen}get dir(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}_triggersSubmenu(){return!!(this._menuItemInstance&&this._parentMaterialMenu&&this._menu)}_closeMenu(){this._menu?.close.emit()}_openMenu(e){if(this._triggerIsAriaDisabled())return;const i=this._menu;if(this._menuOpen||!i)return;this._pendingRemoval?.unsubscribe();const o=au.get(i);au.set(i,this),o&&o!==this&&o._closeMenu();const r=this._createOverlay(i),s=r.getConfig(),a=s.positionStrategy;this._setPosition(i,a),s.hasBackdrop=this._canHaveBackdrop?null==i.hasBackdrop?!this._triggersSubmenu():i.hasBackdrop:i.hasBackdrop??!1,r.hasAttached()||(r.attach(this._getPortal(i)),i.lazyContent?.attach(this.menuData)),this._closingActionsSubscription=this._menuClosingActions().subscribe(()=>this._closeMenu()),i.parentMenu=this._triggersSubmenu()?this._parentMaterialMenu:void 0,i.direction=this.dir,e&&i.focusFirstItem(this._openedBy||"program"),this._setIsMenuOpen(!0),i instanceof Xr&&(i._setIsOpen(!0),i._directDescendantItems.changes.pipe(on(i.close)).subscribe(()=>{a.withLockedPosition(!1).reapplyLastPosition(),a.withLockedPosition(!0)}))}focus(e,i){this._focusMonitor&&e?this._focusMonitor.focusVia(this._element,e,i):this._element.nativeElement.focus(i)}_destroyMenu(e){const i=this._overlayRef,o=this._menu;!i||!this.menuOpen||(this._closingActionsSubscription.unsubscribe(),this._pendingRemoval?.unsubscribe(),o instanceof Xr&&this._ownsMenu(o)?(this._pendingRemoval=o._animationDone.pipe(un(1)).subscribe(()=>{i.detach(),au.has(o)||o.lazyContent?.detach()}),o._setIsOpen(!1)):(i.detach(),o?.lazyContent?.detach()),o&&this._ownsMenu(o)&&au.delete(o),this.restoreFocus&&("keydown"===e||!this._openedBy||!this._triggersSubmenu())&&this.focus(this._openedBy),this._openedBy=void 0,this._setIsMenuOpen(!1))}_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=$d(this._injector,i),this._overlayRef.keydownEvents().subscribe(o=>{this._menu instanceof Xr&&this._menu._handleKeydown(o)})}return this._overlayRef}_getOverlayConfig(e){return new Mf({positionStrategy:fb(this._injector,this._getOverlayOrigin()).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||"ltr",disableAnimations:this._animationsDisabled})}_subscribeToPositions(e,i){e.setPositionClasses&&i.positionChanges.subscribe(o=>{this._ngZone.run(()=>{e.setPositionClasses("start"===o.connectionPair.overlayX?"after":"before","top"===o.connectionPair.overlayY?"below":"above")})})}_setPosition(e,i){let[o,r]="before"===e.xPosition?["end","start"]:["start","end"],[s,a]="above"===e.yPosition?["bottom","top"]:["top","bottom"],[l,c]=[s,a],[u,p]=[o,r],g=0;if(this._triggersSubmenu()){if(p=o="before"===e.xPosition?"start":"end",r=u="end"===o?"start":"end",this._parentMaterialMenu){if(null==this._parentInnerPadding){const _=this._parentMaterialMenu.items.first;this._parentInnerPadding=_?_._getHostElement().offsetTop:0}g="bottom"===s?this._parentInnerPadding:-this._parentInnerPadding}}else e.overlapTrigger||(l="top"===s?"bottom":"top",c="top"===a?"bottom":"top");i.withPositions([{originX:o,originY:l,overlayX:u,overlayY:s,offsetY:g},{originX:r,originY:l,overlayX:p,overlayY:s,offsetY:g},{originX:o,originY:c,overlayX:u,overlayY:a,offsetY:-g},{originX:r,originY:c,overlayX:p,overlayY:a,offsetY:-g}])}_menuClosingActions(){const e=this._getOutsideClickStream(this._overlayRef),i=this._overlayRef.detachments();return gr(e,this._parentMaterialMenu?this._parentMaterialMenu.closed:ae(),this._parentMaterialMenu?this._parentMaterialMenu._hovered().pipe(vn(s=>this._menuOpen&&s!==this._menuItemInstance)):ae(),i)}_getPortal(e){return(!this._portal||this._portal.templateRef!==e.templateRef)&&(this._portal=new $l(e.templateRef,this._viewContainerRef)),this._portal}_ownsMenu(e){return au.get(e)===this}_triggerIsAriaDisabled(){return Ie(this._element.nativeElement.getAttribute("aria-disabled"))}static \u0275fac=function(i){P1()};static \u0275dir=de({type:t})}return t})(),lu=(()=>{class t extends Uge{_cleanupTouchstart;_hoverSubscription=mt.EMPTY;get _deprecatedMatMenuTriggerFor(){return this.menu}set _deprecatedMatMenuTriggerFor(e){this.menu=e}get menu(){return this._menu}set menu(e){this._menu=e}menuData;restoreFocus=!0;menuOpened=new ve;onMenuOpen=this.menuOpened;menuClosed=new ve;onMenuClose=this.menuClosed;constructor(){super(!0);const e=D(Kn);this._cleanupTouchstart=e.listen(this._element.nativeElement,"touchstart",i=>{gS(i)||(this._openedBy="touch")},{passive:!0})}triggersSubmenu(){return super._triggersSubmenu()}toggleMenu(){return this.menuOpen?this.closeMenu():this.openMenu()}openMenu(){this._openMenu(!0)}closeMenu(){this._closeMenu()}updatePosition(){this._overlayRef?.updatePosition()}ngAfterContentInit(){this._handleHover()}ngOnDestroy(){super.ngOnDestroy(),this._cleanupTouchstart(),this._hoverSubscription.unsubscribe()}_getOverlayOrigin(){return this._element}_getOutsideClickStream(e){return e.backdropClick()}_handleMousedown(e){mS(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().subscribe(e=>{e===this._menuItemInstance&&!e.disabled&&"void"!==this._parentMaterialMenu?._panelAnimationState&&(this._openedBy="mouse",this._openMenu(!1))}))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","mat-menu-trigger-for",""],["","matMenuTriggerFor",""]],hostAttrs:[1,"mat-mdc-menu-trigger"],hostVars:3,hostBindings:function(i,o){1&i&&L("click",function(s){return o._handleClick(s)})("mousedown",function(s){return o._handleMousedown(s)})("keydown",function(s){return o._handleKeydown(s)}),2&i&&Ze("aria-haspopup",o.menu?"menu":null)("aria-expanded",o.menuOpen)("aria-controls",o.menuOpen?null==o.menu?null:o.menu.panelId:null)},inputs:{_deprecatedMatMenuTriggerFor:[0,"mat-menu-trigger-for","_deprecatedMatMenuTriggerFor"],menu:[0,"matMenuTriggerFor","menu"],menuData:[0,"matMenuTriggerData","menuData"],restoreFocus:[0,"matMenuTriggerRestoreFocus","restoreFocus"]},outputs:{menuOpened:"menuOpened",onMenuOpen:"onMenuOpen",menuClosed:"menuClosed",onMenuClose:"onMenuClose"},exportAs:["matMenuTrigger"],features:[be]})}return t})(),zge=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({imports:[DS,Wd,ri,xf]})}return t})();const i5=()=>["1"],Ta=t=>[t],o5=t=>({number:t});function $ge(t,n){if(1&t&&(f(0,"a",4)(1,"mat-icon",10),m(2,"chevron_left"),h(),m(3),b(4,"translate"),h()),2&t){const e=C();v("routerLink",e.linkParts.concat(Mt(6,i5)))("queryParams",e.queryParams),d(),v("inline",!0),d(2),I(" ",y(4,4,"paginator.first")," ")}}function Wge(t,n){if(1&t&&(f(0,"a",5)(1,"mat-icon",10),m(2,"chevron_left"),h(),f(3,"span",11),m(4),b(5,"translate"),h()()),2&t){const e=C();v("routerLink",e.linkParts.concat(Mt(6,i5)))("queryParams",e.queryParams),d(),v("inline",!0),d(3),O(y(5,4,"paginator.first"))}}function Gge(t,n){if(1&t&&(f(0,"a",4)(1,"div")(2,"mat-icon",10),m(3,"chevron_left"),h()()()),2&t){const e=C();v("routerLink",e.linkParts.concat(oe(3,Ta,(e.currentPage-1).toString())))("queryParams",e.queryParams),d(2),v("inline",!0)}}function qge(t,n){if(1&t&&(f(0,"a",4),m(1),h()),2&t){const e=C();v("routerLink",e.linkParts.concat(oe(3,Ta,(e.currentPage-2).toString())))("queryParams",e.queryParams),d(),O(e.currentPage-2)}}function Kge(t,n){if(1&t&&(f(0,"a",6),m(1),h()),2&t){const e=C();v("routerLink",e.linkParts.concat(oe(3,Ta,(e.currentPage-1).toString())))("queryParams",e.queryParams),d(),O(e.currentPage-1)}}function Yge(t,n){if(1&t&&(f(0,"a",6),m(1),h()),2&t){const e=C();v("routerLink",e.linkParts.concat(oe(3,Ta,(e.currentPage+1).toString())))("queryParams",e.queryParams),d(),O(e.currentPage+1)}}function Xge(t,n){if(1&t&&(f(0,"a",4),m(1),h()),2&t){const e=C();v("routerLink",e.linkParts.concat(oe(3,Ta,(e.currentPage+2).toString())))("queryParams",e.queryParams),d(),O(e.currentPage+2)}}function Zge(t,n){if(1&t&&(f(0,"a",4)(1,"div")(2,"mat-icon",10),m(3,"chevron_right"),h()()()),2&t){const e=C();v("routerLink",e.linkParts.concat(oe(3,Ta,(e.currentPage+1).toString())))("queryParams",e.queryParams),d(2),v("inline",!0)}}function Qge(t,n){if(1&t&&(f(0,"a",4),m(1),b(2,"translate"),f(3,"mat-icon",10),m(4,"chevron_right"),h()()),2&t){const e=C();v("routerLink",e.linkParts.concat(oe(6,Ta,e.numberOfPages.toString())))("queryParams",e.queryParams),d(),I(" ",y(2,4,"paginator.last")," "),d(2),v("inline",!0)}}function Jge(t,n){if(1&t&&(f(0,"a",5)(1,"mat-icon",10),m(2,"chevron_right"),h(),f(3,"span",11),m(4),b(5,"translate"),h()()),2&t){const e=C();v("routerLink",e.linkParts.concat(oe(6,Ta,e.numberOfPages.toString())))("queryParams",e.queryParams),d(),v("inline",!0),d(3),O(y(5,4,"paginator.last"))}}function e_e(t,n){if(1&t&&(f(0,"div",8),m(1),b(2,"translate"),h()),2&t){const e=C();d(),O(Ee(2,1,"paginator.total",oe(4,o5,e.numberOfPages)))}}function t_e(t,n){if(1&t&&(f(0,"div",9),m(1),b(2,"translate"),h()),2&t){const e=C();d(),O(Ee(2,1,"paginator.total",oe(4,o5,e.numberOfPages)))}}let cu=(()=>{class t{constructor(e,i){this.dialog=e,this.router=i,this.linkParts=[""],this.queryParams={}}openSelectionDialog(){const e=[];for(let i=1;i<=this.numberOfPages;i++)e.push({label:i.toString()});oo.openDialog(this.dialog,e,"paginator.select-page-title").afterClosed().subscribe(i=>{i&&this.router.navigate(this.linkParts.concat([i.toString()]),{queryParams:this.queryParams})})}static{this.\u0275fac=function(i){return new(i||t)(P(kt),P(vt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-paginator"]],inputs:{currentPage:"currentPage",numberOfPages:"numberOfPages",linkParts:"linkParts",queryParams:"queryParams"},standalone:!1,decls:21,vars:13,consts:[[1,"main-container"],[1,"d-inline-block","small-rounded-elevated-box","mt-3"],[1,"d-flex"],[1,"responsive-height","d-md-none"],[1,"d-none","d-md-flex",3,"routerLink","queryParams"],[1,"d-flex","d-md-none","flex-column",3,"routerLink","queryParams"],[3,"routerLink","queryParams"],[1,"selected",3,"click"],[1,"d-none","d-md-block","total-pages"],[1,"d-block","d-md-none","total-pages"],[3,"inline"],[1,"label"]],template:function(i,o){1&i&&(f(0,"div",0)(1,"div",1)(2,"div",2)(3,"div",3),m(4,"\xa0"),B(5,"br"),m(6,"\xa0"),h(),S(7,$ge,5,7,"a",4),S(8,Wge,6,7,"a",5),S(9,Gge,4,5,"a",4),S(10,qge,2,5,"a",4),S(11,Kge,2,5,"a",6),f(12,"a",7),L("click",function(){return o.openSelectionDialog()}),m(13),h(),S(14,Yge,2,5,"a",6),S(15,Xge,2,5,"a",4),S(16,Zge,4,5,"a",4),S(17,Qge,5,8,"a",4),S(18,Jge,6,8,"a",5),h()(),S(19,e_e,3,6,"div",8),S(20,t_e,3,6,"div",9),h()),2&i&&(d(7),k(o.currentPage>3?7:-1),d(),k(o.currentPage>2?8:-1),d(),k(o.currentPage>1?9:-1),d(),k(o.currentPage>2?10:-1),d(),k(o.currentPage>1?11:-1),d(2),O(o.currentPage),d(),k(o.currentPage3?19:-1),d(),k(o.numberOfPages>2?20:-1))},dependencies:[wa,lt,Se],styles:[".main-container[_ngcontent-%COMP%]{text-align:right}.main-container[_ngcontent-%COMP%] .responsive-height[_ngcontent-%COMP%]{padding:10px 0;width:0px}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{padding:10px;border-right:rgba(255,255,255,.15) solid 1px;border-left:rgba(255,255,255,.15) solid 1px;min-width:40px;text-align:center;color:#f8f9f980;text-decoration:none;display:flex;align-items:center;justify-content:center}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{background:#0003}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:2px}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{font-size:.7rem}.main-container[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%]{color:#f8f9f9;background:#0000005c;padding:10px 20px;cursor:pointer}.main-container[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%]:hover{background:#0009}.main-container[_ngcontent-%COMP%] .total-pages[_ngcontent-%COMP%]{font-size:.6rem;margin-top:-3px;margin-right:4px}"]})}}return t})();function qf(t){return bn((n,e)=>{let i,r,o=!1;const s=()=>{i=n.subscribe(en(e,void 0,void 0,a=>{r||(r=new pe,Vi(t(r)).subscribe(en(e,()=>i?s():o=!0))),r&&r.next(a)})),o&&(i.unsubscribe(),i=null,o=!1,s())};s()})}const Zr={AF:"Afghanistan",AX:"Aland Islands",AL:"Albania",DZ:"Algeria",AS:"American Samoa",AD:"Andorra",AO:"Angola",AI:"Anguilla",AQ:"Antarctica",AG:"Antigua and Barbuda",AR:"Argentina",AM:"Armenia",AW:"Aruba",AU:"Australia",AT:"Austria",AZ:"Azerbaijan",BS:"Bahamas",BH:"Bahrain",BD:"Bangladesh",BB:"Barbados",BY:"Belarus",BE:"Belgium",BZ:"Belize",BJ:"Benin",BM:"Bermuda",BT:"Bhutan",BO:"Bolivia",BA:"Bosnia and Herzegovina",BW:"Botswana",BV:"Bouvet Island",BR:"Brazil",IO:"British Indian Ocean Territory",BN:"Brunei Darussalam",BG:"Bulgaria",BF:"Burkina Faso",BI:"Burundi",KH:"Cambodia",CM:"Cameroon",CA:"Canada",CV:"Cape Verde",KY:"Cayman Islands",CF:"Central African Republic",TD:"Chad",CL:"Chile",CN:"China",CX:"Christmas Island",CC:"Cocos (Keeling) Islands",CO:"Colombia",KM:"Comoros",CG:"Congo",CD:"Congo, Democratic Republic",CK:"Cook Islands",CR:"Costa Rica",CI:"Cote D'Ivoire",HR:"Croatia",CU:"Cuba",CY:"Cyprus",CZ:"Czech Republic",DK:"Denmark",DJ:"Djibouti",DM:"Dominica",DO:"Dominican Republic",EC:"Ecuador",EG:"Egypt",SV:"El Salvador",GQ:"Equatorial Guinea",ER:"Eritrea",EE:"Estonia",ET:"Ethiopia",FK:"Falkland Islands (Malvinas)",FO:"Faroe Islands",FJ:"Fiji",FI:"Finland",FR:"France",GF:"French Guiana",PF:"French Polynesia",TF:"French Southern Territories",GA:"Gabon",GM:"Gambia",GE:"Georgia",DE:"Germany",GH:"Ghana",GI:"Gibraltar",GR:"Greece",GL:"Greenland",GD:"Grenada",GP:"Guadeloupe",GU:"Guam",GT:"Guatemala",GG:"Guernsey",GN:"Guinea",GW:"Guinea-Bissau",GY:"Guyana",HT:"Haiti",HM:"Heard Island and Mcdonald Islands",VA:"Holy See (Vatican City State)",HN:"Honduras",HK:"Hong Kong",HU:"Hungary",IS:"Iceland",IN:"India",ID:"Indonesia",IR:"Iran",IQ:"Iraq",IE:"Ireland",IM:"Isle of Man",IL:"Israel",IT:"Italy",JM:"Jamaica",JP:"Japan",JE:"Jersey",JO:"Jordan",KZ:"Kazakhstan",KE:"Kenya",KI:"Kiribati",KP:"Korea (North)",KR:"Korea (South)",XK:"Kosovo",KW:"Kuwait",KG:"Kyrgyzstan",LA:"Laos",LV:"Latvia",LB:"Lebanon",LS:"Lesotho",LR:"Liberia",LY:"Libyan Arab Jamahiriya",LI:"Liechtenstein",LT:"Lithuania",LU:"Luxembourg",MO:"Macao",MK:"Macedonia",MG:"Madagascar",MW:"Malawi",MY:"Malaysia",MV:"Maldives",ML:"Mali",MT:"Malta",MH:"Marshall Islands",MQ:"Martinique",MR:"Mauritania",MU:"Mauritius",YT:"Mayotte",MX:"Mexico",FM:"Micronesia",MD:"Moldova",MC:"Monaco",MN:"Mongolia",MS:"Montserrat",MA:"Morocco",MZ:"Mozambique",MM:"Myanmar",NA:"Namibia",NR:"Nauru",NP:"Nepal",NL:"Netherlands",AN:"Netherlands Antilles",NC:"New Caledonia",NZ:"New Zealand",NI:"Nicaragua",NE:"Niger",NG:"Nigeria",NU:"Niue",NF:"Norfolk Island",MP:"Northern Mariana Islands",NO:"Norway",OM:"Oman",PK:"Pakistan",PW:"Palau",PS:"Palestinian Territory, Occupied",PA:"Panama",PG:"Papua New Guinea",PY:"Paraguay",PE:"Peru",PH:"Philippines",PN:"Pitcairn",PL:"Poland",PT:"Portugal",PR:"Puerto Rico",QA:"Qatar",RE:"Reunion",RO:"Romania",RU:"Russian Federation",RW:"Rwanda",SH:"Saint Helena",KN:"Saint Kitts and Nevis",LC:"Saint Lucia",PM:"Saint Pierre and Miquelon",VC:"Saint Vincent and the Grenadines",WS:"Samoa",SM:"San Marino",ST:"Sao Tome and Principe",SA:"Saudi Arabia",SN:"Senegal",RS:"Serbia",ME:"Montenegro",SC:"Seychelles",SL:"Sierra Leone",SG:"Singapore",SK:"Slovakia",SI:"Slovenia",SB:"Solomon Islands",SO:"Somalia",ZA:"South Africa",GS:"South Georgia and the South Sandwich Islands",ES:"Spain",LK:"Sri Lanka",SD:"Sudan",SR:"Suriname",SJ:"Svalbard and Jan Mayen",SZ:"Swaziland",SE:"Sweden",CH:"Switzerland",SY:"Syrian Arab Republic",TW:"Taiwan, Province of China",TJ:"Tajikistan",TZ:"Tanzania",TH:"Thailand",TL:"Timor-Leste",TG:"Togo",TK:"Tokelau",TO:"Tonga",TT:"Trinidad and Tobago",TN:"Tunisia",TR:"Turkey",TM:"Turkmenistan",TC:"Turks and Caicos Islands",TV:"Tuvalu",UG:"Uganda",UA:"Ukraine",AE:"United Arab Emirates",GB:"United Kingdom",US:"United States",UM:"United States Minor Outlying Islands",UY:"Uruguay",UZ:"Uzbekistan",VU:"Vanuatu",VE:"Venezuela",VN:"Viet Nam",VG:"Virgin Islands, British",VI:"Virgin Islands, U.S.",WF:"Wallis and Futuna",EH:"Western Sahara",YE:"Yemen",ZM:"Zambia",ZW:"Zimbabwe",ZZ:"Unknown"};let Os=(()=>{class t{constructor(e){this.apiService=e}changeAppState(e,i,o){return this.apiService.put(`visors/${e}/apps/${encodeURIComponent(i)}`,{status:o?1:0})}changeAppAutostart(e,i,o){return this.changeAppSettings(e,i,{autostart:o})}changeAppSettings(e,i,o){return this.apiService.put(`visors/${e}/apps/${encodeURIComponent(i)}`,o)}getLogMessages(e,i,o){const s=EN(-1!==o?Date.now()-864e5*o:0,"yyyy-MM-ddTHH:mm:ssZZZZZ","en-US");return this.apiService.get(this.getLogMessagesUrl(e,i)+`?since=${s}`).pipe(ye(a=>a.logs))}getLogMessagesUrl(e,i){return`visors/${e}/apps/${encodeURIComponent(i)}/logs`}static{this.\u0275fac=function(i){return new(i||t)(le(br))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();var an=function(t){return t.None="None",t.Favorite="Favorite",t.Blocked="Blocked",t}(an||{}),qo=function(t){return t.BitsSpeedAndBytesVolume="BitsSpeedAndBytesVolume",t.OnlyBytes="OnlyBytes",t.OnlyBits="OnlyBits",t}(qo||{});let rc=(()=>{class t{constructor(e,i){this.router=e,this.storageService=i,this.maxHistoryElements=30,this.savedServersStorageKey="VpnServers",this.checkIpSettingStorageKey="VpnGetIp",this.dataUnitsSettingStorageKey="VpnDataUnits",this.serversMap=new Map,this.savedDataVersion=0,this.currentServerSubject=new no(1),this.historySubject=new no(1),this.favoritesSubject=new no(1),this.blockedSubject=new no(1)}initialize(){this.migrateDataToHvStorage(),this.serversMap=new Map;const e=this.storageService.getDataForHv(this.savedServersStorageKey);if(e){const i=JSON.parse(e);i.serverList.forEach(o=>{this.serversMap.set(o.pk,o)}),this.savedDataVersion=i.version,i.selectedServerPk&&this.updateCurrentServerPk(i.selectedServerPk)}this.launchListEvents()}migrateDataToHvStorage(){const e=localStorage.getItem(this.savedServersStorageKey);e&&(this.storageService.setDataForHv(this.savedServersStorageKey,e),localStorage.removeItem(this.savedServersStorageKey));const i=localStorage.getItem(this.checkIpSettingStorageKey);i&&(this.storageService.setDataForHv(this.checkIpSettingStorageKey,i),localStorage.removeItem(this.checkIpSettingStorageKey));const o=localStorage.getItem(this.dataUnitsSettingStorageKey);o&&(this.storageService.setDataForHv(this.dataUnitsSettingStorageKey,o),localStorage.removeItem(this.dataUnitsSettingStorageKey))}get currentServer(){return this.serversMap.get(this.currentServerPk)}get currentServerObservable(){return this.currentServerSubject.asObservable()}get history(){return this.historySubject.asObservable()}get favorites(){return this.favoritesSubject.asObservable()}get blocked(){return this.blockedSubject.asObservable()}getSavedVersion(e,i){return i&&this.checkIfDataWasChanged(),this.serversMap.get(e)}getCheckIpSetting(){const e=this.storageService.getDataForHv(this.checkIpSettingStorageKey);return null==e||"false"!==e}setCheckIpSetting(e){this.storageService.setDataForHv(this.checkIpSettingStorageKey,e?"true":"false")}getDataUnitsSetting(){return this.storageService.getDataForHv(this.dataUnitsSettingStorageKey)??qo.BitsSpeedAndBytesVolume}setDataUnitsSetting(e){this.storageService.setDataForHv(this.dataUnitsSettingStorageKey,e)}updateFromDiscovery(e){this.checkIfDataWasChanged(),e.forEach(i=>{if(this.serversMap.has(i.pk)){const o=this.serversMap.get(i.pk);o.countryCode=i.countryCode,o.name=i.name,o.location=i.location,o.note=i.note}}),this.saveData()}updateServer(e){this.serversMap.set(e.pk,e),this.cleanServers(),this.saveData()}processFromDiscovery(e){this.checkIfDataWasChanged();const i=this.serversMap.get(e.pk);return i?(i.countryCode=e.countryCode,i.name=e.name,i.location=e.location,i.note=e.note,this.saveData(),i):{countryCode:e.countryCode,name:e.name,customName:null,pk:e.pk,lastUsed:0,inHistory:!1,flag:an.None,location:e.location,personalNote:null,note:e.note,enteredManually:!1,usedWithPassword:!1}}processFromManual(e){this.checkIfDataWasChanged();const i=this.serversMap.get(e.pk);return i?(i.customName=e.name,i.personalNote=e.note,i.enteredManually=!0,this.saveData(),i):{countryCode:"zz",name:"",customName:e.name,pk:e.pk,lastUsed:0,inHistory:!1,flag:an.None,location:"",personalNote:e.note,note:"",enteredManually:!0,usedWithPassword:!1}}changeFlag(e,i){this.checkIfDataWasChanged();const o=this.serversMap.get(e.pk);o&&(e=o),e.flag!==i&&(e.flag=i,this.serversMap.has(e.pk)||this.serversMap.set(e.pk,e),this.cleanServers(),this.saveData())}removeFromHistory(e){this.checkIfDataWasChanged();const i=this.serversMap.get(e);!i||!i.inHistory||(i.inHistory=!1,this.cleanServers(),this.saveData())}modifyCurrentServer(e){this.checkIfDataWasChanged(),e.pk!==this.currentServerPk&&(this.serversMap.has(e.pk)||this.serversMap.set(e.pk,e),this.updateCurrentServerPk(e.pk),this.cleanServers(),this.saveData())}compareCurrentServer(e){if(this.checkIfDataWasChanged(),e){if(!this.currentServerPk||this.currentServerPk!==e){if(this.currentServerPk=e,!this.serversMap.get(e)){const o=this.processFromManual({pk:e});this.serversMap.set(o.pk,o),this.cleanServers()}this.saveData(),this.currentServerSubject.next(this.currentServer)}}else this.currentServerPk&&(this.currentServerPk=null,this.saveData(),this.currentServerSubject.next(this.currentServer))}updateHistory(){this.checkIfDataWasChanged(),this.currentServer.lastUsed=Date.now(),this.currentServer.inHistory=!0;let e=[];this.serversMap.forEach(o=>{o.inHistory&&e.push(o)}),e=e.sort((o,r)=>r.lastUsed-o.lastUsed);let i=0;e.forEach(o=>{i{!i.inHistory&&i.flag===an.None&&i.pk!==this.currentServerPk&&!i.customName&&!i.personalNote&&e.push(i.pk)}),e.forEach(i=>{this.serversMap.delete(i)})}saveData(){let e=0;const i=this.storageService.getDataForHv(this.savedServersStorageKey);if(i&&(e=JSON.parse(i).version),e!==this.savedDataVersion)return void this.router.navigate(["vpn","unavailable"],{queryParams:{problem:"storage"}});this.savedDataVersion+=1;const o={version:this.savedDataVersion,serverList:Array.from(this.serversMap.values()),selectedServerPk:this.currentServerPk},r=JSON.stringify(o);this.storageService.setDataForHv(this.savedServersStorageKey,r),this.launchListEvents()}checkIfDataWasChanged(){let e=0;const i=this.storageService.getDataForHv(this.savedServersStorageKey);i&&(e=JSON.parse(i).version),e!==this.savedDataVersion&&this.initialize()}launchListEvents(){const e=[],i=[],o=[];this.serversMap.forEach(r=>{r.inHistory&&e.push(r),r.flag===an.Favorite&&i.push(r),r.flag===an.Blocked&&o.push(r)}),this.historySubject.next(e),this.favoritesSubject.next(i),this.blockedSubject.next(o)}updateCurrentServerPk(e){this.currentServerPk=e,this.currentServerSubject.next(this.currentServer)}static{this.\u0275fac=function(i){return new(i||t)(le(vt),le(zn))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();var Zt=function(t){return t.Stopped="stopped",t.Connecting="Connecting",t.Running="Running",t.ShuttingDown="Shutting down",t.Reconnecting="Connection failed, reconnecting",t}(Zt||{});class n_e{constructor(){this.updateDate=Date.now()}}class i_e{}class o_e{constructor(){this.latency=0,this.uploadSpeed=0,this.downloadSpeed=0,this.totalUploaded=0,this.totalDownloaded=0,this.connectionDuration=0,this.error=""}}var Pi=function(t){return t[t.PerformingInitialCheck=1]="PerformingInitialCheck",t[t.Off=10]="Off",t[t.Starting=20]="Starting",t[t.Running=100]="Running",t[t.Disconnecting=200]="Disconnecting",t}(Pi||{}),Dr=function(t){return t[t.Busy=1]="Busy",t[t.Ok=2]="Ok",t[t.MustStop=3]="MustStop",t[t.SamePkRunning=4]="SamePkRunning",t[t.SamePkStopped=5]="SamePkStopped",t}(Dr||{});let sc=(()=>{class t{constructor(e,i,o,r,s,a,l){this.apiService=e,this.appsService=i,this.router=o,this.vpnSavedDataService=r,this.http=s,this.snackbarService=a,this.translateService=l,this.vpnClientAppName="vpn-client",this.standardWaitTime=2e3,this.stateSubject=new _i(null),this.errorSubject=new _i(!1),this.working=!0,this.requestedServer=null,this.requestedPassword=null,this.updatesStopped=!1,this.currentEventData=new n_e,this.currentEventData.busy=!0,this.lastServiceState=Pi.PerformingInitialCheck}initialize(e){e&&(this.nodeKey?e!==this.nodeKey?this.router.navigate(["vpn","unavailable"],{queryParams:{problem:"pkChange"}}):this.updatesStopped&&(this.updatesStopped=!1,this.updateData()):(this.nodeKey=e,this.vpnSavedDataService.initialize(),this.updateData()))}get backendState(){return this.stateSubject.asObservable()}get errorsConnecting(){return this.errorSubject.asObservable()}updateData(){this.continuallyUpdateData(0)}start(){return!this.working&&this.lastServiceState<20&&(this.changeAppState(!0),!0)}stop(){return!this.working&&this.lastServiceState>=20&&this.lastServiceState<200&&(this.changeAppState(!1),!0)}getIpData(){return this.http.request("GET",window.location.protocol+"//ip.skycoin.com/").pipe(qf(e=>ks(e.pipe(ii(this.standardWaitTime),un(4)),cr(""))),ye(e=>[e&&e.ip_address?e.ip_address:this.translateService.instant("common.unknown"),e&&e.country_name?e.country_name:this.translateService.instant("common.unknown")]))}changeServerUsingHistory(e,i){return this.requestedServer=e,this.requestedPassword=i,this.updateRequestedServerPasswordSetting(),this.changeServer()}changeServerUsingDiscovery(e,i){return this.requestedServer=this.vpnSavedDataService.processFromDiscovery(e),this.requestedPassword=i,this.updateRequestedServerPasswordSetting(),this.changeServer()}changeServerManually(e,i){return this.requestedServer=this.vpnSavedDataService.processFromManual(e),this.requestedPassword=i,this.updateRequestedServerPasswordSetting(),this.changeServer()}updateRequestedServerPasswordSetting(){this.requestedServer.usedWithPassword=!!this.requestedPassword&&""!==this.requestedPassword;const e=this.vpnSavedDataService.getSavedVersion(this.requestedServer.pk,!0);e&&(e.usedWithPassword=this.requestedServer.usedWithPassword,this.vpnSavedDataService.updateServer(e))}changeServer(){return!this.working&&(this.stop()||this.processServerChange(),!0)}checkNewPk(e){return this.working?Dr.Busy:this.lastServiceState!==Pi.Off?e===this.vpnSavedDataService.currentServer.pk?Dr.SamePkRunning:Dr.MustStop:this.vpnSavedDataService.currentServer&&e===this.vpnSavedDataService.currentServer.pk?Dr.SamePkStopped:Dr.Ok}processServerChange(){this.dataSubscription&&this.dataSubscription.unsubscribe();const e={pk:this.requestedServer.pk};e.passcode=this.requestedPassword?this.requestedPassword:"",this.stopContinuallyUpdatingData(),this.working=!0,this.sendUpdate(),this.dataSubscription=this.appsService.changeAppSettings(this.nodeKey,this.vpnClientAppName,e).subscribe(()=>{this.vpnSavedDataService.modifyCurrentServer(this.requestedServer),this.requestedServer=null,this.requestedPassword=null,this.working=!1,this.start()},i=>{i=Je(i),this.snackbarService.showError("vpn.server-change.backend-error",null,!1,i.originalServerErrorMsg),this.working=!1,this.requestedServer=null,this.requestedPassword=null,this.sendUpdate(),this.updateData()})}changeAppState(e){if(this.working)return;this.stopContinuallyUpdatingData(),this.working=!0,this.sendUpdate();const i={status:1};e?(this.lastServiceState=Pi.Starting,this.connectionHistoryPk=null):(this.lastServiceState=Pi.Disconnecting,i.status=0),this.dataSubscription&&this.dataSubscription.unsubscribe(),this.dataSubscription=this.appsService.changeAppSettings(this.nodeKey,this.vpnClientAppName,i).pipe(go(o=>this.getVpnClientState().pipe(Et(r=>{if(r){if(e&&r.running)return ae(!0);if(!e&&!r.running)return ae(!0)}return cr(o)}))),qf(o=>ks(o.pipe(ii(this.standardWaitTime),un(3)),o.pipe(Et(r=>cr(r)))))).subscribe(o=>{this.working=!1;const r=this.processAppData(o);this.lastServiceState=r.running?Pi.Running:Pi.Off,this.currentEventData.vpnClientAppData=r,this.currentEventData.updateDate=Date.now(),this.sendUpdate(),this.updateData(),!e&&this.requestedServer&&this.processServerChange()},o=>{o=Je(o),this.snackbarService.showError(this.lastServiceState===Pi.Starting?"vpn.status-page.problem-starting-error":this.lastServiceState===Pi.Disconnecting?"vpn.status-page.problem-stopping-error":"vpn.status-page.generic-problem-error",null,!1,o.originalServerErrorMsg),this.working=!1,this.sendUpdate(),this.updateData()})}continuallyUpdateData(e){if(this.working&&this.lastServiceState!==Pi.PerformingInitialCheck)return;this.continuousUpdateSubscription&&this.continuousUpdateSubscription.unsubscribe();let i=0;this.continuousUpdateSubscription=ae(0).pipe(ii(e),Et(()=>this.getVpnClientState()),qf(o=>o.pipe(Et(r=>(this.errorSubject.next(!0),Kr.currentInstance.showDataProblemMsg(),(r=Je(r)).originalError&&r.originalError.status&&401===r.originalError.status?cr(r):this.lastServiceState!==Pi.PerformingInitialCheck||i<4?(i+=1,ae(r).pipe(ii(this.standardWaitTime))):cr(r)))))).subscribe(o=>{o?(this.errorSubject.next(!1),Kr.currentInstance.hideDataProblemMsg(),this.lastServiceState===Pi.PerformingInitialCheck&&(this.working=!1),this.vpnSavedDataService.compareCurrentServer(o.serverPk),this.lastServiceState=o.running?Pi.Running:Pi.Off,this.currentEventData.vpnClientAppData=o,this.currentEventData.updateDate=Date.now(),this.sendUpdate()):this.lastServiceState===Pi.PerformingInitialCheck&&(this.router.navigate(["vpn","unavailable"]),this.nodeKey=null,this.updatesStopped=!0),this.continuallyUpdateData(this.standardWaitTime)},o=>{(o=Je(o)).originalError&&o.originalError.status&&401===o.originalError.status||(this.router.navigate(["vpn","unavailable"]),this.nodeKey=null),this.updatesStopped=!0})}stopContinuallyUpdatingData(){this.continuousUpdateSubscription&&this.continuousUpdateSubscription.unsubscribe()}getVpnClientState(){let e;const i=new _r;return i.vpnKeyForAuth=this.nodeKey,this.apiService.get(`visors/${this.nodeKey}/summary`,i).pipe(Et(o=>{let r;if(o&&o.overview)if(this.visorPublicIp=o.overview.public_ip&&o.overview.public_ip.trim()?o.overview.public_ip:null,o.overview.country_code){this.visorCountryCode=o.overview.country_code;const s=Zr[o.overview.country_code.toUpperCase()];this.visorCountryName=s||o.overview.country_code}else this.visorCountryCode=null,this.visorCountryName=null;if(o&&o.overview&&o.overview.apps&&o.overview.apps.length>0&&o.overview.apps.forEach(s=>{s.name===this.vpnClientAppName&&(r=s)}),r&&(e=this.processAppData(r)),e.minHops=o.min_hops?o.min_hops:0,e&&e.running){const s=new _r;return s.vpnKeyForAuth=this.nodeKey,this.apiService.get(`visors/${this.nodeKey}/apps/${this.vpnClientAppName}/connections`,s)}return ae(null)}),ye(o=>{if(o&&o.length>0){const r=new o_e;o.forEach(s=>{r.latency+=s.latency/o.length,r.uploadSpeed+=s.upload_speed/o.length,r.downloadSpeed+=s.download_speed/o.length,r.totalUploaded+=s.bandwidth_sent,r.totalDownloaded+=s.bandwidth_received,s.error&&(r.error=s.error),s.connection_duration>r.connectionDuration&&(r.connectionDuration=s.connection_duration)}),(!this.connectionHistoryPk||this.connectionHistoryPk!==e.serverPk)&&(this.connectionHistoryPk=e.serverPk,this.uploadSpeedHistory=[0,0,0,0,0,0,0,0,0,0],this.downloadSpeedHistory=[0,0,0,0,0,0,0,0,0,0],this.latencyHistory=[0,0,0,0,0,0,0,0,0,0]),r.latency=Math.round(r.latency),r.uploadSpeed=Math.round(r.uploadSpeed),r.downloadSpeed=Math.round(r.downloadSpeed),r.totalUploaded=Math.round(r.totalUploaded),r.totalDownloaded=Math.round(r.totalDownloaded),this.uploadSpeedHistory.splice(0,1),this.uploadSpeedHistory.push(r.uploadSpeed),r.uploadSpeedHistory=this.uploadSpeedHistory,this.downloadSpeedHistory.splice(0,1),this.downloadSpeedHistory.push(r.downloadSpeed),r.downloadSpeedHistory=this.downloadSpeedHistory,this.latencyHistory.splice(0,1),this.latencyHistory.push(r.latency),r.latencyHistory=this.latencyHistory,e.connectionData=r}return e}))}processAppData(e){const i=new i_e;if(i.running=0!==e.status&&2!==e.status,i.connectionDuration=e.connection_duration,i.appState=Zt.Stopped,i.running?e.detailed_status===Zt.Connecting||3===e.status?i.appState=Zt.Connecting:e.detailed_status===Zt.Running?i.appState=Zt.Running:e.detailed_status===Zt.ShuttingDown?i.appState=Zt.ShuttingDown:e.detailed_status===Zt.Reconnecting&&(i.appState=Zt.Reconnecting):2===e.status&&(i.lastErrorMsg=e.detailed_status,i.lastErrorMsg||(i.lastErrorMsg=this.translateService.instant("vpn.status-page.unknown-error"))),i.killswitch=!1,e.args&&e.args.length>0)for(let o=0;o{class t{static openDialog(e,i){const o=new Lt;return o.data=i,o.autoFocus=!1,o.width=ze.mediumModalWidth,e.open(t,o)}constructor(e,i,o,r,s){this.dialogRef=e,this.data=i,this.formBuilder=o,this.snackbarService=r,this.vpnSavedDataService=s}ngOnInit(){this.form=this.formBuilder.group({value:[(this.data.editName?this.data.server.customName:this.data.server.personalNote)||""]}),setTimeout(()=>this.firstInput.nativeElement.focus())}process(){let e=this.vpnSavedDataService.getSavedVersion(this.data.server.pk,!0);e=e||this.data.server;const i=this.form.get("value").value;i!==(this.data.editName?this.data.server.customName:this.data.server.personalNote)?(this.data.editName?e.customName=i:e.personalNote=i,this.vpnSavedDataService.updateServer(e),this.snackbarService.showDone("vpn.server-options.edit-value.changes-made-confirmation"),this.dialogRef.close(!0)):this.dialogRef.close()}static{this.\u0275fac=function(i){return new(i||t)(P(It),P(hn),P(pi),P(bt),P(rc))}}static{this.\u0275cmp=se({type:t,selectors:[["app-edit-vpn-server-value"]],viewQuery:function(i,o){if(1&i&&rt(r_e,5),2&i){let r;ue(r=he())&&(o.firstInput=r.first)}},standalone:!1,decls:13,vars:11,consts:[["firstInput",""],[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","value","maxlength","100","matInput",""],["color","primary",1,"float-right",3,"action"]],template:function(i,o){1&i&&(f(0,"app-dialog",1),b(1,"translate"),f(2,"form",2)(3,"mat-form-field")(4,"div",3)(5,"label",4),m(6),b(7,"translate"),h(),B(8,"input",5,0),h()()(),f(10,"app-button",6),L("action",function(){return o.process()}),m(11),b(12,"translate"),h()()),2&i&&(v("headline",y(1,5,"vpn.server-options.edit-value."+(o.data.editName?"name":"note")+"-title"))("dialog",o.dialogRef),d(2),v("formGroup",o.form),d(4),O(y(7,7,"vpn.server-options.edit-value."+(o.data.editName?"name":"note")+"-label")),d(5),I(" ",y(12,9,"vpn.server-options.edit-value.apply-button")," "))},dependencies:[Cn,rn,sn,yn,ji,Xt,fn,wn,ei,On,Kt,Se],encapsulation:2})}}return t})();const a_e=["firstInput"];let r5=(()=>{class t{static openDialog(e,i){const o=new Lt;return o.data=i,o.autoFocus=!1,o.width=ze.mediumModalWidth,e.open(t,o)}constructor(e,i,o){this.dialogRef=e,this.data=i,this.formBuilder=o}ngOnInit(){this.form=this.formBuilder.group({password:["",this.data?void 0:Ve.required]}),setTimeout(()=>this.firstInput.nativeElement.focus())}process(){this.dialogRef.close("-"+this.form.get("password").value)}static{this.\u0275fac=function(i){return new(i||t)(P(It),P(hn),P(pi))}}static{this.\u0275cmp=se({type:t,selectors:[["app-enter-vpn-server-password"]],viewQuery:function(i,o){if(1&i&&rt(a_e,5),2&i){let r;ue(r=he())&&(o.firstInput=r.first)}},standalone:!1,decls:13,vars:12,consts:[["firstInput",""],[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","password","type","password","matInput",""],["color","primary",1,"float-right",3,"action","disabled"]],template:function(i,o){1&i&&(f(0,"app-dialog",1),b(1,"translate"),f(2,"form",2)(3,"mat-form-field")(4,"div",3)(5,"label",4),m(6),b(7,"translate"),h(),B(8,"input",5,0),h()()(),f(10,"app-button",6),L("action",function(){return o.process()}),m(11),b(12,"translate"),h()()),2&i&&(v("headline",y(1,6,"vpn.server-list.password-dialog.title"))("dialog",o.dialogRef),d(2),v("formGroup",o.form),d(4),O(y(7,8,"vpn.server-list.password-dialog.password"+(o.data?"-if-any":"")+"-label")),d(4),v("disabled",!o.form.valid),d(),I(" ",y(12,10,"vpn.server-list.password-dialog.continue-button")," "))},dependencies:[Cn,rn,sn,yn,Xt,fn,wn,ei,On,Kt,Se],encapsulation:2})}}return t})(),si=(()=>{class t{static{this.serverListTabStorageKey="ServerListTab"}static{this.currentPk=""}static changeCurrentPk(e){this.currentPk=e}static setDefaultTabForServerList(e){sessionStorage.setItem(t.serverListTabStorageKey,e)}static get vpnTabsData(){const e=sessionStorage.getItem(t.serverListTabStorageKey);return[{icon:"power_settings_new",label:"vpn.start",linkParts:["/vpn",this.currentPk,"status"]},{icon:"list",label:"vpn.servers",linkParts:e?["/vpn",this.currentPk,"servers",e,"1"]:["/vpn",this.currentPk,"servers"]},{icon:"settings",label:"vpn.settings",linkParts:["/vpn",this.currentPk,"settings"]}]}static getLatencyValueString(e){return e<1e3?"time-in-ms":"time-in-segs"}static getPrintableLatency(e){return e<1e3?e+"":(e/1e3).toFixed(1)}static processServerChange(e,i,o,r,s,a,l,c,u,p,g){let _;if(c&&(u||p)||u&&(c||p)||p&&(c||u))throw new Error("Invalid call");if(c)_=c.pk;else if(u)_=u.pk;else{if(!p)throw new Error("Invalid call");_=p.pk}const w=o.getSavedVersion(_,!0),x=w&&(g||w.usedWithPassword),T=i.checkNewPk(_);if(T!==Dr.Busy)if(T!==Dr.SamePkRunning||x){if(T===Dr.MustStop||T===Dr.SamePkRunning&&x){const E=Ye.createConfirmationDialog(s,"vpn.server-change.change-server-while-connected-confirmation");return void E.componentInstance.operationAccepted.subscribe(()=>{E.componentInstance.closeModal(),c?i.changeServerUsingHistory(c,g):u?i.changeServerUsingDiscovery(u,g):p&&i.changeServerManually(p,g),t.redirectAfterServerChange(e,a,l)})}if(T===Dr.SamePkStopped&&!x){const E=Ye.createConfirmationDialog(s,"vpn.server-change.start-same-server-confirmation");return void E.componentInstance.operationAccepted.subscribe(()=>{E.componentInstance.closeModal(),p&&w&&o.processFromManual(p),i.start(),t.redirectAfterServerChange(e,a,l)})}c?i.changeServerUsingHistory(c,g):u?i.changeServerUsingDiscovery(u,g):p&&i.changeServerManually(p,g),t.redirectAfterServerChange(e,a,l)}else r.showWarning("vpn.server-change.already-selected-warning");else r.showError("vpn.server-change.busy-error")}static redirectAfterServerChange(e,i,o){i&&i.close(),e.navigate(["vpn",o,"status"])}static openServerOptions(e,i,o,r,s,a){const l=[],c=[];return e.usedWithPassword?(l.push({icon:"lock_open",label:"vpn.server-options.connect-without-password"}),c.push(201),l.push({icon:"lock_outlined",label:"vpn.server-options.connect-using-another-password"}),c.push(202)):e.enteredManually&&(l.push({icon:"lock_outlined",label:"vpn.server-options.connect-using-password"}),c.push(202)),l.push({icon:"edit",label:"vpn.server-options.edit-name"}),c.push(101),l.push({icon:"subject",label:"vpn.server-options.edit-label"}),c.push(102),(!e||e.flag!==an.Favorite)&&(l.push({icon:"star",label:"vpn.server-options.make-favorite"}),c.push(1)),e&&e.flag===an.Favorite&&(l.push({icon:"star_outline",label:"vpn.server-options.remove-from-favorites"}),c.push(-1)),(!e||e.flag!==an.Blocked)&&(l.push({icon:"pan_tool",label:"vpn.server-options.block"}),c.push(2)),e&&e.flag===an.Blocked&&(l.push({icon:"thumb_up",label:"vpn.server-options.unblock"}),c.push(-2)),e&&e.inHistory&&(l.push({icon:"delete",label:"vpn.server-options.remove-from-history"}),c.push(-3)),oo.openDialog(a,l,"common.options").afterClosed().pipe(Et(u=>{if(u){const p=o.getSavedVersion(e.pk,!0);if(e=p||e,c[u-=1]>200){if(201===c[u]){let g=!1;const _=Ye.createConfirmationDialog(a,"vpn.server-options.connect-without-password-confirmation");return _.componentInstance.operationAccepted.subscribe(()=>{g=!0,t.processServerChange(i,r,o,s,a,null,t.currentPk,e,null,null,null),_.componentInstance.closeModal()}),_.afterClosed().pipe(ye(()=>g))}return r5.openDialog(a,!1).afterClosed().pipe(ye(g=>!(!g||"-"===g||(t.processServerChange(i,r,o,s,a,null,t.currentPk,e,null,null,g.substr(1)),0))))}if(c[u]>100)return s_e.openDialog(a,{editName:101===c[u],server:e}).afterClosed();if(1===c[u])return t.makeFavorite(e,o,s,a);if(-1===c[u])return o.changeFlag(e,an.None),s.showDone("vpn.server-options.remove-from-favorites-done"),ae(!0);if(2===c[u])return t.blockServer(e,o,r,s,a);if(-2===c[u])return o.changeFlag(e,an.None),s.showDone("vpn.server-options.unblock-done"),ae(!0);if(-3===c[u])return t.removeFromHistory(e,o,s,a)}return ae(!1)}))}static removeFromHistory(e,i,o,r){let s=!1;const a=Ye.createConfirmationDialog(r,"vpn.server-options.remove-from-history-confirmation");return a.componentInstance.operationAccepted.subscribe(()=>{s=!0,i.removeFromHistory(e.pk),o.showDone("vpn.server-options.remove-from-history-done"),a.componentInstance.closeModal()}),a.afterClosed().pipe(ye(()=>s))}static makeFavorite(e,i,o,r){if(e.flag!==an.Blocked)return i.changeFlag(e,an.Favorite),o.showDone("vpn.server-options.make-favorite-done"),ae(!0);let s=!1;const a=Ye.createConfirmationDialog(r,"vpn.server-options.make-favorite-confirmation");return a.componentInstance.operationAccepted.subscribe(()=>{s=!0,i.changeFlag(e,an.Favorite),o.showDone("vpn.server-options.make-favorite-done"),a.componentInstance.closeModal()}),a.afterClosed().pipe(ye(()=>s))}static blockServer(e,i,o,r,s){if(e.flag!==an.Favorite&&(!i.currentServer||i.currentServer.pk!==e.pk))return i.changeFlag(e,an.Blocked),r.showDone("vpn.server-options.block-done"),ae(!0);let a=!1;const l=i.currentServer&&i.currentServer.pk===e.pk;let c;c=e.flag!==an.Favorite?"vpn.server-options.block-selected-confirmation":l?"vpn.server-options.block-selected-favorite-confirmation":"vpn.server-options.block-confirmation";const u=Ye.createConfirmationDialog(s,c);return u.componentInstance.operationAccepted.subscribe(()=>{a=!0,i.changeFlag(e,an.Blocked),r.showDone("vpn.server-options.block-done"),l&&o.stop(),u.componentInstance.closeModal()}),u.afterClosed().pipe(ye(()=>a))}}return t})();var ac=function(t){return t[t.Seconds=0]="Seconds",t[t.Minutes=1]="Minutes",t[t.Hours=2]="Hours",t[t.Days=3]="Days",t[t.Weeks=4]="Weeks",t}(ac||{});class l_e{}class lv{static getElapsedTime(n){const e=new l_e;e.timeRepresentation=ac.Seconds,e.totalMinutes=Math.floor(n/60).toString(),e.translationVarName="second";let i=1;n>=60&&n<3600?(e.timeRepresentation=ac.Minutes,i=60,e.translationVarName="minute"):n>=3600&&n<86400?(e.timeRepresentation=ac.Hours,i=3600,e.translationVarName="hour"):n>=86400&&n<604800?(e.timeRepresentation=ac.Days,i=86400,e.translationVarName="day"):n>=604800&&(e.timeRepresentation=ac.Weeks,i=604800,e.translationVarName="week");const o=Math.floor(n/i);return e.elapsedTime=o.toString(),(e.timeRepresentation===ac.Seconds||o>1)&&(e.translationVarName=e.translationVarName+"s"),e}}const c_e=t=>({"grey-button-background":t}),s5=t=>({time:t});function d_e(t,n){1&t&&B(0,"mat-spinner",2),2&t&&v("diameter",14)}function u_e(t,n){1&t&&B(0,"mat-spinner",3),2&t&&v("diameter",18)}function h_e(t,n){1&t&&(f(0,"mat-icon",5),m(1,"refresh"),h()),2&t&&v("inline",!0)}function f_e(t,n){1&t&&(f(0,"mat-icon",6),m(1,"warning"),h()),2&t&&v("inline",!0)}function p_e(t,n){if(1&t&&(S(0,h_e,2,1,"mat-icon",5),S(1,f_e,2,1,"mat-icon",6)),2&t){const e=C();k(e.showAlert?-1:0),d(),k(e.showAlert?1:-1)}}function m_e(t,n){if(1&t&&(f(0,"span",4),m(1),b(2,"translate"),h()),2&t){const e=C();d(),O(Ee(2,1,"refresh-button."+e.elapsedTime.translationVarName,oe(4,s5,e.elapsedTime.elapsedTime)))}}let g_e=(()=>{class t{constructor(){this.refeshRate=-1}set secondsSinceLastUpdate(e){this.elapsedTime=lv.getElapsedTime(e)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=se({type:t,selectors:[["app-refresh-button"]],inputs:{secondsSinceLastUpdate:"secondsSinceLastUpdate",showLoading:"showLoading",showAlert:"showAlert",refeshRate:"refeshRate"},standalone:!1,decls:7,vars:14,consts:[["mat-button","",1,"time-button","subtle-transparent-button","white-theme",3,"disabled","ngClass","matTooltip"],[1,"internal-container"],[1,"icon","d-none","d-md-inline-block",3,"diameter"],[1,"icon","d-md-none",3,"diameter"],[1,"d-none","d-md-inline"],[1,"icon",3,"inline"],[1,"icon","alert",3,"inline"]],template:function(i,o){1&i&&(f(0,"button",0),b(1,"translate"),f(2,"div",1),S(3,d_e,1,1,"mat-spinner",2),S(4,u_e,1,1,"mat-spinner",3),S(5,p_e,2,2),S(6,m_e,3,6,"span",4),h()()),2&i&&(v("disabled",o.showLoading)("ngClass",oe(10,c_e,!o.showLoading))("matTooltip",o.showAlert?Ee(1,7,"refresh-button.error-tooltip",oe(12,s5,o.refeshRate)):""),d(3),k(o.showLoading?3:-1),d(),k(o.showLoading?4:-1),d(),k(o.showLoading?-1:5),d(),k(o.elapsedTime?6:-1))},dependencies:[qt,Jn,lt,pn,$o,Se],styles:[".time-button[_ngcontent-%COMP%]{color:#f8f9f9;border-radius:10px;height:40px}.time-button[disabled][_ngcontent-%COMP%]{opacity:.7!important;color:#f8f9f9}.time-button[disabled][_ngcontent-%COMP%] span[_ngcontent-%COMP%]{opacity:.7}.time-button[_ngcontent-%COMP%] .internal-container[_ngcontent-%COMP%]{display:flex;align-items:center}.time-button[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{font-size:16px;margin-right:5px;opacity:.5;display:inline-block}@media(max-width:767px){.time-button[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{font-size:22px;margin-right:0;opacity:.75}}.time-button[_ngcontent-%COMP%] .alert[_ngcontent-%COMP%]{color:orange;opacity:1}.time-button[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:.6rem}"]})}}return t})(),Kf=(()=>{class t{static{this.accumulatedMeasurements=["B","KB","MB","GB","TB","PB","EB","ZB","YB"]}static{this.measurementsPerSec=["B/s","KB/s","MB/s","GB/s","TB/s","PB/s","EB/s","ZB/s","YB/s"]}static{this.accumulatedMeasurementsInBits=["b","Kb","Mb","Gb","Tb","Pb","Eb","Zb","Yb"]}static{this.measurementsPerSecInBits=["b/s","Kb/s","Mb/s","Gb/s","Tb/s","Pb/s","Eb/s","Zb/s","Yb/s"]}transform(e,i){let r,o=!0;i?i.showPerSecond?i.useBits?(r=t.measurementsPerSecInBits,o=!1):r=t.measurementsPerSec:i.useBits?(r=t.accumulatedMeasurementsInBits,o=!1):r=t.accumulatedMeasurements:r=t.accumulatedMeasurements;let s=new mk(e);o||(s=s.multipliedBy(8));let a=r[0],l=0;for(;s.dividedBy(1024).isGreaterThan(1);)s=s.dividedBy(1024),l+=1,a=r[l];let c="";return(!i||i.showValue)&&(c=i&&i.limitDecimals?new mk(s).decimalPlaces(1).toString():s.toFixed(2)),(!i||i.showValue&&i.showUnit)&&(c+=" "),(!i||i.showUnit)&&(c+=a),c}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275pipe=Li({name:"autoScale",type:t,pure:!0,standalone:!1})}}return t})();const a5=(t,n)=>({"d-lg-none":t,"d-none":n}),__e=t=>({"normal-height":t}),b_e=(t,n)=>({"d-none d-lg-flex":t,"d-flex":n}),v_e=t=>({transparent:t}),y_e=(t,n)=>({"d-lg-none":t,"d-none d-md-inline-block":n}),xk=(t,n)=>({"mouse-disabled":t,"grey-button-background":n}),C_e=t=>({"d-none":t}),w_e=(t,n)=>({"animation-container":t,"d-none":n}),x_e=t=>({time:t}),l5=t=>({showValue:!0,showUnit:!0,showPerSecond:!0,useBits:t});function S_e(t,n){if(1&t){const e=ce();f(0,"button",22),L("click",function(){return z(e),$(C().requestAction(null))}),f(1,"mat-icon"),m(2,"chevron_left"),h()()}}function k_e(t,n){1&t&&B(0,"img",5)}function D_e(t,n){if(1&t&&(m(0),b(1,"translate")),2&t){const e=C();I(" ",y(1,1,e.titleParts[e.titleParts.length-1])," ")}}function T_e(t,n){if(1&t){const e=ce();f(0,"div",24),L("click",function(){const o=z(e).$implicit;return $(C(2).requestAction(o.actionName))}),f(1,"mat-icon",18),m(2),h(),m(3),b(4,"translate"),h()}if(2&t){const e=n.$implicit;v("disabled",e.disabled),d(),v("ngClass",oe(6,v_e,e.disabled)),d(),O(e.icon),d(),I(" ",y(4,4,e.name)," ")}}function M_e(t,n){1&t&&B(0,"div",9)}function E_e(t,n){if(1&t&&(we(0,T_e,5,8,"div",23,Re),S(2,M_e,1,0,"div",9)),2&t){const e=C();xe(e.optionsData),d(2),k(e.returnText?2:-1)}}function I_e(t,n){1&t&&B(0,"div",9)}function P_e(t,n){1&t&&B(0,"img",26),2&t&&v("src","assets/img/lang/"+C(2).language.iconName,ho)}function O_e(t,n){if(1&t){const e=ce();f(0,"div",25),L("click",function(){return z(e),$(C().openLanguageWindow())}),S(1,P_e,1,1,"img",26),m(2),b(3,"translate"),h()}if(2&t){const e=C();d(),k(e.language?1:-1),d(),I(" ",y(3,2,e.language?e.language.name:"")," ")}}function A_e(t,n){if(1&t){const e=ce();f(0,"div",14)(1,"a",27),b(2,"translate"),L("click",function(){return z(e),$(C().requestAction(null))}),f(3,"mat-icon",28),m(4,"chevron_left"),h()()()}if(2&t){const e=C();d(),v("matTooltip",y(2,2,e.returnText)),d(2),v("inline",!0)}}function R_e(t,n){if(1&t&&(f(0,"span",15),m(1),b(2,"translate"),h()),2&t){const e=C();d(),I(" ",y(2,1,e.titleParts[e.titleParts.length-1])," ")}}function N_e(t,n){1&t&&B(0,"img",16)}function F_e(t,n){if(1&t&&(f(0,"a",29)(1,"mat-icon",28),m(2),h(),f(3,"span"),m(4),b(5,"translate"),h()()),2&t){const e=C().$implicit,i=C();v("href",e.externalUrl,ho)("ngClass",ft(7,xk,i.disableMouse,!i.disableMouse)),d(),v("inline",!0),d(),O(e.icon),d(2),O(y(5,5,e.label))}}function L_e(t,n){if(1&t&&(f(0,"a",30)(1,"mat-icon",28),m(2),h(),f(3,"span"),m(4),b(5,"translate"),h()()),2&t){const e=C(),i=e.$implicit,o=e.$index,r=C();v("disabled",o===r.selectedTabIndex)("routerLink",i.linkParts)("ngClass",ft(8,xk,r.disableMouse,!r.disableMouse&&o!==r.selectedTabIndex)),d(),v("inline",!0),d(),O(i.icon),d(2),O(y(5,6,i.label))}}function B_e(t,n){if(1&t&&(f(0,"div",18),S(1,F_e,6,10,"a",29),S(2,L_e,6,11,"a",30),h()),2&t){const e=n.$implicit,i=C();v("ngClass",ft(3,y_e,e.onlyIfLessThanLg,1!==i.tabsData.length)),d(),k(e.externalUrl?1:-1),d(),k(e.externalUrl?-1:2)}}function V_e(t,n){if(1&t){const e=ce();f(0,"div",19)(1,"button",31),L("click",function(){return z(e),$(C().openTabSelector())}),f(2,"div",32)(3,"mat-icon",28),m(4),h(),f(5,"span"),m(6),b(7,"translate"),h(),f(8,"mat-icon",28),m(9,"keyboard_arrow_down"),h()()()()}if(2&t){const e=C();v("ngClass",oe(8,C_e,1===e.tabsData.length)),d(),v("ngClass",ft(10,xk,e.disableMouse,!e.disableMouse)),d(2),v("inline",!0),d(),O(e.tabsData[e.selectedTabIndex].icon),d(2),O(y(7,6,e.tabsData[e.selectedTabIndex].label)),d(2),v("inline",!0)}}function H_e(t,n){if(1&t){const e=ce();f(0,"app-refresh-button",36),L("click",function(){return z(e),$(C(2).sendRefreshEvent())}),h()}if(2&t){const e=C(2);v("secondsSinceLastUpdate",e.secondsSinceLastUpdate)("showLoading",e.showLoading)("showAlert",e.showAlert)("refeshRate",e.refeshRate)}}function j_e(t,n){if(1&t&&(f(0,"div",20),S(1,H_e,1,4,"app-refresh-button",33),f(2,"button",34)(3,"div",35)(4,"mat-icon",28),m(5,"menu"),h()()()()),2&t){const e=C(),i=Vn(12);d(),k(e.showUpdateButton?1:-1),d(),v("matMenuTriggerFor",i),d(2),v("inline",!0)}}function U_e(t,n){if(1&t){const e=ce();f(0,"div",38)(1,"div",44),L("click",function(){return z(e),$(C(2).openLanguageWindow())}),B(2,"img",45),m(3),b(4,"translate"),h()()}if(2&t){const e=C(2);d(2),v("src","assets/img/lang/"+e.language.iconName,ho),d(),I(" ",y(4,2,e.language?e.language.name:"")," ")}}function z_e(t,n){1&t&&(f(0,"div",40),b(1,"translate"),f(2,"mat-icon",28),m(3,"warning"),h(),m(4),b(5,"translate"),h()),2&t&&(v("matTooltip",y(1,3,"vpn.connection-error.info")),d(2),v("inline",!0),d(2),I(" ",y(5,5,"vpn.connection-error.text")," "))}function $_e(t,n){1&t&&(f(0,"div",50)(1,"mat-icon",49),m(2,"brightness_1"),h()()),2&t&&(d(),v("inline",!0))}function W_e(t,n){if(1&t&&(f(0,"table",42)(1,"tr")(2,"td",46),b(3,"translate"),f(4,"div",18)(5,"div",47)(6,"div",48)(7,"mat-icon",49),m(8,"brightness_1"),h(),m(9),b(10,"translate"),h()()(),S(11,$_e,3,1,"div",50),f(12,"mat-icon",49),m(13,"brightness_1"),h(),m(14),b(15,"translate"),h(),f(16,"td",46),b(17,"translate"),f(18,"mat-icon",28),m(19,"swap_horiz"),h(),m(20),b(21,"translate"),h()(),f(22,"tr")(23,"td",46),b(24,"translate"),f(25,"mat-icon",28),m(26,"arrow_upward"),h(),m(27),b(28,"autoScale"),h(),f(29,"td",46),b(30,"translate"),f(31,"mat-icon",28),m(32,"arrow_downward"),h(),m(33),b(34,"autoScale"),h()()()),2&t){const e=C(2);d(2),at(e.vpnData.stateClass+" state-td"),v("matTooltip",y(3,18,e.vpnData.state+"-info")),d(2),v("ngClass",ft(39,w_e,e.showVpnStateAnimation,!e.showVpnStateAnimation)),d(3),v("inline",!0),d(2),I(" ",y(10,20,e.vpnData.state)," "),d(2),k(e.showVpnStateAnimatedDot?11:-1),d(),v("inline",!0),d(2),I(" ",y(15,22,e.vpnData.state)," "),d(2),v("matTooltip",y(17,24,"vpn.connection-info.latency-info")),d(2),v("inline",!0),d(2),I(" ",Ee(21,26,"common."+e.getLatencyValueString(e.vpnData.latency),oe(42,x_e,e.getPrintableLatency(e.vpnData.latency)))," "),d(3),v("matTooltip",y(24,29,"vpn.connection-info.upload-info")),d(2),v("inline",!0),d(2),I(" ",Ee(28,31,e.vpnData.uploadSpeed,oe(44,l5,e.showVpnDataStatsInBits))," "),d(2),v("matTooltip",y(30,34,"vpn.connection-info.download-info")),d(2),v("inline",!0),d(2),I(" ",Ee(34,36,e.vpnData.downloadSpeed,oe(46,l5,e.showVpnDataStatsInBits))," ")}}function G_e(t,n){1&t&&B(0,"mat-spinner",43),2&t&&v("diameter",20)}function q_e(t,n){if(1&t&&(f(0,"div")(1,"div",37),S(2,U_e,5,4,"div",38),B(3,"div",39),S(4,z_e,6,7,"div",40),h(),f(5,"div",41),S(6,W_e,35,48,"table",42),S(7,G_e,1,1,"mat-spinner",43),h()()),2&t){const e=C();d(2),k(!e.hideLanguageButton&&e.language?2:-1),d(2),k(e.errorsConnectingToVpn?4:-1),d(2),k(e.vpnData?6:-1),d(),k(e.vpnData?-1:7)}}function K_e(t,n){1&t&&(f(0,"div",21)(1,"div",51)(2,"mat-icon",28),m(3,"error_outline"),h(),m(4),b(5,"translate"),h(),f(6,"div",52),m(7),b(8,"translate"),h()()),2&t&&(d(2),v("inline",!0),d(2),I(" ",y(5,3,"vpn.remote-access-title")," "),d(3),I(" ",y(8,5,"vpn.remote-access-text")," "))}let As=(()=>{class t{set localVpnKey(e){this.localVpnKeyInternal=e,e?this.startGettingVpnInfo():this.stopGettingVpnInfo()}constructor(e,i,o,r,s){this.languageService=e,this.dialog=i,this.router=o,this.vpnClientService=r,this.vpnSavedDataService=s,this.disableMouse=!1,this.selectedTabIndex=0,this.refeshRate=-1,this.showUpdateButton=!0,this.localVpnKeyInternal="",this.refreshRequested=new ve,this.optionSelected=new ve,this.hideLanguageButton=!0,this.showVpnInfo=!1,this.initialVpnStateObtained=!1,this.lastVpnState="",this.showVpnStateAnimation=!1,this.showVpnStateAnimatedDot=!0,this.showVpnDataStatsInBits=!0,this.remoteAccess=!1,this.errorsConnectingToVpn=!1,this.langSubscriptionsGroup=[]}ngOnInit(){this.langSubscriptionsGroup.push(this.languageService.currentLanguage.subscribe(i=>{this.language=i})),this.langSubscriptionsGroup.push(this.languageService.languages.subscribe(i=>{this.hideLanguageButton=!(i.length>1)}));const e=window.location.hostname;!e.toLowerCase().includes("localhost")&&!e.toLowerCase().includes("127.0.0.1")&&(this.remoteAccess=!0)}ngOnDestroy(){this.langSubscriptionsGroup.forEach(e=>e.unsubscribe()),this.refreshRequested.complete(),this.optionSelected.complete(),this.stopGettingVpnInfo()}startGettingVpnInfo(){this.showVpnInfo=!0,this.vpnClientService.initialize(this.localVpnKeyInternal),this.updateVpnDataStatsUnit(),this.vpnDataSubscription=this.vpnClientService.backendState.subscribe(e=>{e&&(this.vpnData={state:"",stateClass:"",latency:e.vpnClientAppData.connectionData?e.vpnClientAppData.connectionData.latency:0,downloadSpeed:e.vpnClientAppData.connectionData?e.vpnClientAppData.connectionData.downloadSpeed:0,uploadSpeed:e.vpnClientAppData.connectionData?e.vpnClientAppData.connectionData.uploadSpeed:0},e.vpnClientAppData.appState===Zt.Stopped?(this.vpnData.state="vpn.connection-info.state-disconnected",this.vpnData.stateClass="red-clear-text"):e.vpnClientAppData.appState===Zt.Connecting?(this.vpnData.state="vpn.connection-info.state-connecting",this.vpnData.stateClass="yellow-clear-text"):e.vpnClientAppData.appState===Zt.Running?(this.vpnData.state="vpn.connection-info.state-connected",this.vpnData.stateClass="green-clear-text"):e.vpnClientAppData.appState===Zt.ShuttingDown?(this.vpnData.state="vpn.connection-info.state-disconnecting",this.vpnData.stateClass="yellow-clear-text"):e.vpnClientAppData.appState===Zt.Reconnecting&&(this.vpnData.state="vpn.connection-info.state-reconnecting",this.vpnData.stateClass="yellow-clear-text"),this.initialVpnStateObtained?this.lastVpnState!==this.vpnData.state&&(this.lastVpnState=this.vpnData.state,this.showVpnStateAnimation=!1,this.showVpnStateChangeAnimationSubscription&&this.showVpnStateChangeAnimationSubscription.unsubscribe(),this.showVpnStateChangeAnimationSubscription=ae(0).pipe(ii(1)).subscribe(()=>this.showVpnStateAnimation=!0)):(this.initialVpnStateObtained=!0,this.lastVpnState=this.vpnData.state),this.showVpnStateAnimatedDot=!1,this.showVpnStateAnimatedDotSubscription&&this.showVpnStateAnimatedDotSubscription.unsubscribe(),this.showVpnStateAnimatedDotSubscription=ae(0).pipe(ii(1)).subscribe(()=>this.showVpnStateAnimatedDot=!0))}),this.errorsConnectingToVpnSubscription=this.vpnClientService.errorsConnecting.subscribe(e=>{this.errorsConnectingToVpn=e})}stopGettingVpnInfo(){this.showVpnInfo=!1,this.vpnDataSubscription&&this.vpnDataSubscription.unsubscribe(),this.errorsConnectingToVpnSubscription&&this.errorsConnectingToVpnSubscription.unsubscribe()}getLatencyValueString(e){return si.getLatencyValueString(e)}getPrintableLatency(e){return si.getPrintableLatency(e)}requestAction(e){this.optionSelected.emit(e)}openLanguageWindow(){YV.openDialog(this.dialog)}sendRefreshEvent(){this.refreshRequested.emit()}openTabSelector(){const e=[];this.tabsData.forEach(i=>{e.push({label:i.label,icon:i.icon})}),oo.openDialog(this.dialog,e,"tabs-window.title").afterClosed().subscribe(i=>{i&&(i-=1)!==this.selectedTabIndex&&this.router.navigate(this.tabsData[i].linkParts)})}updateVpnDataStatsUnit(){const e=this.vpnSavedDataService.getDataUnitsSetting();this.showVpnDataStatsInBits=e===qo.BitsSpeedAndBytesVolume||e===qo.OnlyBits}static{this.\u0275fac=function(i){return new(i||t)(P(Nb),P(kt),P(vt),P(sc),P(rc))}}static{this.\u0275cmp=se({type:t,selectors:[["app-top-bar"]],inputs:{disableMouse:"disableMouse",titleParts:"titleParts",tabsData:"tabsData",selectedTabIndex:"selectedTabIndex",optionsData:"optionsData",returnText:"returnText",secondsSinceLastUpdate:"secondsSinceLastUpdate",showLoading:"showLoading",showAlert:"showAlert",refeshRate:"refeshRate",showUpdateButton:"showUpdateButton",localVpnKey:"localVpnKey"},outputs:{refreshRequested:"refreshRequested",optionSelected:"optionSelected"},standalone:!1,decls:29,vars:30,consts:[["menu","matMenu"],[1,"top-bar",3,"ngClass"],[1,"button-container"],["mat-icon-button","",1,"transparent-button"],[1,"logo-container"],["src","/assets/img/logo-s.png"],["mat-icon-button","",1,"transparent-button",3,"matMenuTriggerFor"],[1,"top-bar-margin",3,"ngClass"],[3,"overlapTrigger"],[1,"menu-separator"],["mat-menu-item",""],[1,"main-container",3,"ngClass"],[1,"main-area"],[1,"title",3,"ngClass"],[1,"return-container"],[1,"title-text"],["src","./assets/img/logo-vpn.png",1,"title-image"],[1,"lower-container"],[3,"ngClass"],[1,"d-md-none",3,"ngClass"],[1,"right-container"],[1,"remote-vpn-alert-container"],["mat-icon-button","",1,"transparent-button",3,"click"],["mat-menu-item","",3,"disabled"],["mat-menu-item","",3,"click","disabled"],["mat-menu-item","",3,"click"],[1,"flag",3,"src"],[1,"return-button","transparent-button",3,"click","matTooltip"],[3,"inline"],["mat-button","","target","_blank","rel","noreferrer nofollow noopener",1,"tab-button","white-theme",3,"href","ngClass"],["mat-button","",1,"tab-button","white-theme",3,"disabled","routerLink","ngClass"],["mat-button","",1,"tab-button","select-tab-button","white-theme",3,"click","ngClass"],[1,"d-flex"],[3,"secondsSinceLastUpdate","showLoading","showAlert","refeshRate"],["mat-button","",1,"menu-button","subtle-transparent-button","d-none","d-lg-block",3,"matMenuTriggerFor"],[1,"icon-container"],[3,"click","secondsSinceLastUpdate","showLoading","showAlert","refeshRate"],[1,"top-text-vpn-container"],[1,"languaje-button-vpn"],[1,"elements-separator"],[1,"connection-error-msg-vpn","blinking",3,"matTooltip"],[1,"vpn-info","vpn-dark-box-radius"],["cellspacing","0","cellpadding","0"],[3,"diameter"],[1,"text-container",3,"click"],[1,"language-flag",3,"src"],[3,"matTooltip"],[1,"internal-animation-container"],[1,"animation-area"],[1,"state-icon",3,"inline"],[1,"aminated-state-icon-container"],[1,"top-line"],[1,"bottom-line"]],template:function(i,o){if(1&i&&(f(0,"div",1)(1,"div",2),S(2,S_e,3,0,"button",3),h(),f(3,"div",4),S(4,k_e,1,0,"img",5),S(5,D_e,2,3),h(),f(6,"div",2)(7,"button",6)(8,"mat-icon"),m(9,"menu"),h()()()(),B(10,"div",7),f(11,"mat-menu",8,0),S(13,E_e,3,1),S(14,I_e,1,0,"div",9),S(15,O_e,4,4,"div",10),h(),f(16,"div",11)(17,"div",12)(18,"div",13),S(19,A_e,5,4,"div",14),S(20,R_e,3,3,"span",15),S(21,N_e,1,0,"img",16),h(),f(22,"div",17),we(23,B_e,3,6,"div",18,Re),S(25,V_e,10,13,"div",19),S(26,j_e,6,3,"div",20),h()(),S(27,q_e,8,4,"div"),h(),S(28,K_e,9,7,"div",21)),2&i){const r=Vn(12);v("ngClass",ft(19,a5,!o.showVpnInfo,o.showVpnInfo)),d(2),k(o.returnText?2:-1),d(2),k(!o.titleParts||o.titleParts.length<2?4:-1),d(),k(o.titleParts&&o.titleParts.length>=2?5:-1),d(2),v("matMenuTriggerFor",r),d(3),v("ngClass",ft(22,a5,!o.showVpnInfo,o.showVpnInfo)),d(),v("overlapTrigger",!1),d(2),k(o.optionsData&&o.optionsData.length>=1?13:-1),d(),k(!o.hideLanguageButton&&o.optionsData&&o.optionsData.length>=1?14:-1),d(),k(o.hideLanguageButton?-1:15),d(),v("ngClass",oe(25,__e,!o.showVpnInfo)),d(2),v("ngClass",ft(27,b_e,!o.showVpnInfo,o.showVpnInfo)),d(),k(o.returnText?19:-1),d(),k(o.showVpnInfo?-1:20),d(),k(o.showVpnInfo?21:-1),d(2),xe(o.tabsData),d(2),k(o.tabsData&&o.tabsData[o.selectedTabIndex]?25:-1),d(),k(o.showVpnInfo?-1:26),d(),k(o.showVpnInfo?27:-1),d(),k(o.showVpnInfo&&o.remoteAccess?28:-1)}},dependencies:[qt,wa,Jn,Ms,lt,pn,Xr,Ps,lu,$o,g_e,Se,Kf],styles:["@media(max-width:991px){.normal-height[_ngcontent-%COMP%]{height:55px!important}}.main-container[_ngcontent-%COMP%]{border-bottom:1px solid rgba(255,255,255,.15);padding-bottom:10px;margin-bottom:-5px;height:100px;display:flex}.main-container[_ngcontent-%COMP%] .main-area[_ngcontent-%COMP%]{flex-grow:1}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-size:.875rem;margin-bottom:15px;margin-left:5px;flex-direction:row;align-items:center}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] .title-text[_ngcontent-%COMP%]{z-index:1}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] .title-image[_ngcontent-%COMP%]{width:124px;height:21px}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] .return-container[_ngcontent-%COMP%]{width:30px;position:relative;top:2px}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] .return-container[_ngcontent-%COMP%] .return-button[_ngcontent-%COMP%]{line-height:1;font-size:25px;position:relative;top:2px;width:100%;margin-right:4px;cursor:pointer}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%]{display:flex}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[_ngcontent-%COMP%]{color:#f8f9f9;border-radius:10px;opacity:.5;margin-right:2px;text-decoration:none;height:40px;display:flex;align-items:center}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[_ngcontent-%COMP%]:hover{opacity:.75}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[disabled][_ngcontent-%COMP%]{opacity:1!important;color:#f8f9f9;background:#000000b3!important}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[_ngcontent-%COMP%] .mat-icon[_ngcontent-%COMP%]{margin-right:2px;opacity:.75;font-size:18px}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:1rem;margin:0 4px;position:relative;top:-1px}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .select-tab-button[_ngcontent-%COMP%]{opacity:.75!important}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .select-tab-button[_ngcontent-%COMP%]:hover{opacity:1!important}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .right-container[_ngcontent-%COMP%]{display:flex;align-items:center;margin-left:auto}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .right-container[_ngcontent-%COMP%] app-refresh-button[_ngcontent-%COMP%]{align-self:flex-end}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .right-container[_ngcontent-%COMP%] .menu-button[_ngcontent-%COMP%]{height:32px;width:32px;min-width:0px!important;background-color:#f8f9f9;border-radius:100%;padding:0!important;line-height:normal;color:#929292;font-size:20px}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .right-container[_ngcontent-%COMP%] .menu-button[_ngcontent-%COMP%] .icon-container[_ngcontent-%COMP%]{display:flex;place-content:center}.menu-separator[_ngcontent-%COMP%]{width:100%;height:1px;background-color:#0000001f}.flag[_ngcontent-%COMP%]{width:24px;margin-right:16px}.transparent[_ngcontent-%COMP%]{opacity:.5}.top-bar[_ngcontent-%COMP%]{position:fixed;z-index:10;width:100%;height:56px;background-color:#f8f9f9;top:0;left:0;right:0;color:#202226;display:flex}.top-bar[_ngcontent-%COMP%] .logo-container[_ngcontent-%COMP%]{flex-grow:1;display:flex;justify-content:center;align-items:center}.top-bar[_ngcontent-%COMP%] .logo-container[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{height:28px}.top-bar[_ngcontent-%COMP%] .button-container[_ngcontent-%COMP%]{flex-shrink:0;width:56px}.top-bar[_ngcontent-%COMP%] .button-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:56px;height:56px}.top-bar-margin[_ngcontent-%COMP%]{margin-top:56px;flex-shrink:0}.vpn-info[_ngcontent-%COMP%]{font-size:.7rem;background:#000000b3;padding:15px 20px;align-self:center}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] .state-td[_ngcontent-%COMP%]{font-weight:700}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:2px 0;min-width:90px}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:3px;font-size:12px;position:relative;top:1px;-webkit-user-select:none;user-select:none;width:auto;line-height:1}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .state-icon[_ngcontent-%COMP%]{transform:scale(.75)}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .aminated-state-icon-container[_ngcontent-%COMP%]{width:0px;height:0px}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .aminated-state-icon-container[_ngcontent-%COMP%] .state-icon[_ngcontent-%COMP%]{height:auto;animation:_ngcontent-%COMP%_state-icon-animation 1s linear 1}@keyframes _ngcontent-%COMP%_state-icon-animation{0%{transform:perspective(1px) scale(1);opacity:.8}to{transform:scale(2);opacity:0}}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .animation-container[_ngcontent-%COMP%]{width:0px;height:0px}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .animation-container[_ngcontent-%COMP%] .internal-animation-container[_ngcontent-%COMP%]{width:200px}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .animation-container[_ngcontent-%COMP%] .internal-animation-container[_ngcontent-%COMP%] .animation-area[_ngcontent-%COMP%]{display:inline-block;animation:_ngcontent-%COMP%_state-animation 1s linear 1;opacity:0}@keyframes _ngcontent-%COMP%_state-animation{0%{transform:scale(1);opacity:1}to{transform:scale(2.5);opacity:0}}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:first-of-type{padding-right:30px}.vpn-info[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}.top-text-vpn-container[_ngcontent-%COMP%]{display:flex;flex-direction:row-reverse;font-size:.6rem}.top-text-vpn-container[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:3px}.top-text-vpn-container[_ngcontent-%COMP%] .connection-error-msg-vpn[_ngcontent-%COMP%]{margin:-5px 5px 5px 10px;color:orange}.top-text-vpn-container[_ngcontent-%COMP%] .elements-separator[_ngcontent-%COMP%]{flex-grow:1}.top-text-vpn-container[_ngcontent-%COMP%] .languaje-button-vpn[_ngcontent-%COMP%]{margin:-5px 10px 5px 0}.top-text-vpn-container[_ngcontent-%COMP%] .languaje-button-vpn[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]{cursor:pointer;display:inline;opacity:.8}.top-text-vpn-container[_ngcontent-%COMP%] .languaje-button-vpn[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]:hover{opacity:1}.top-text-vpn-container[_ngcontent-%COMP%] .languaje-button-vpn[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .language-flag[_ngcontent-%COMP%]{width:11px;height:11px;margin-right:2px}.remote-vpn-alert-container[_ngcontent-%COMP%]{background-color:#da3439;margin:0 -21px;padding:10px 20px 15px;text-align:center}.remote-vpn-alert-container[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:14px}.remote-vpn-alert-container[_ngcontent-%COMP%] .top-line[_ngcontent-%COMP%]{font-size:1.25rem}.remote-vpn-alert-container[_ngcontent-%COMP%] .bottom-line[_ngcontent-%COMP%]{font-size:.8rem}"]})}}return t})();const c5=()=>["start.title"],Y_e=t=>({"paginator-icons-fixer":t}),d5=()=>["/nodes","rewards"],u5=()=>["/nodes","list"],X_e=()=>({"click-effect":!0}),Z_e=t=>["/nodes",t,"rewards"],Q_e=(t,n)=>({"click-effect":t,"non-selectable":n}),h5=t=>["/nodes",t],J_e=t=>({"selectable click-effect":t}),ebe=(t,n)=>n.type;function tbe(t,n){if(1&t&&(f(0,"div",1)(1,"div"),B(2,"app-top-bar",3),h(),B(3,"app-loading-indicator",4),h()),2&t){const e=C();d(2),v("titleParts",Mt(4,c5))("tabsData",e.tabsData)("selectedTabIndex",e.showRewardsInfo?1:0)("showUpdateButton",!1)}}function nbe(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,C().$implicit.translatableValue)," ")}function ibe(t,n){1&t&&m(0),2&t&&I(" ",C().$implicit.value," ")}function obe(t,n){if(1&t&&(f(0,"div",19)(1,"span"),m(2),b(3,"translate"),h(),S(4,nbe,2,3),S(5,ibe,1,1),h()),2&t){const e=n.$implicit;d(2),I("",y(3,3,e.filterName),": "),d(2),k(e.translatableValue?4:-1),d(),k(e.value?5:-1)}}function rbe(t,n){if(1&t){const e=ce();f(0,"div",18),L("click",function(){return z(e),$(C(2).dataFilterer.removeFilters())}),we(1,obe,6,5,"div",19,Re),f(3,"div",20),m(4),b(5,"translate"),h()()}if(2&t){const e=C(2);d(),xe(e.dataFilterer.currentFiltersTexts),d(3),O(y(5,1,"filters.press-to-remove"))}}function sbe(t,n){if(1&t){const e=ce();f(0,"mat-icon",21),b(1,"translate"),L("click",function(){return z(e),$(C(2).dataFilterer.changeFilters())}),m(2,"filter_list"),h()}2&t&&v("inline",!0)("matTooltip",y(1,2,"filters.filter-action"))}function abe(t,n){1&t&&(f(0,"mat-icon",13),m(1,"more_horiz"),h()),2&t&&(C(),v("matMenuTriggerFor",Vn(12)))}function lbe(t,n){if(1&t&&B(0,"app-paginator",16),2&t){const e=C(2);v("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",e.showRewardsInfo?Mt(4,d5):Mt(5,u5))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function cbe(t,n){if(1&t&&(f(0,"mat-icon",27),m(1),h()),2&t){const e=C(4);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function dbe(t,n){if(1&t&&(f(0,"mat-icon",27),m(1),h()),2&t){const e=C(4);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function ube(t,n){if(1&t&&(f(0,"mat-icon",27),m(1),h()),2&t){const e=C(4);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function hbe(t,n){if(1&t&&(f(0,"mat-icon",27),m(1),h()),2&t){const e=C(4);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function fbe(t,n){if(1&t&&(f(0,"th",33),m(1),h()),2&t){const e=n.$implicit;d(),I(" ",e," ")}}function pbe(t,n){1&t&&(we(0,fbe,2,1,"th",33,Re),f(2,"th",34),m(3),b(4,"translate"),h()),2&t&&(xe(C(4).rewardDateHeaders),d(3),I(" ",y(4,1,"nodes.reward-total")," "))}function mbe(t,n){1&t&&(f(0,"th"),m(1),b(2,"translate"),h()),2&t&&(d(),I(" ",y(2,1,"nodes.rewards-loading")," "))}function gbe(t,n){1&t&&(f(0,"mat-icon",35),b(1,"translate"),m(2,"star"),h()),2&t&&v("inline",!0)("matTooltip",y(1,2,"nodes.hypervisor-info"))}function _be(t,n){if(1&t&&(f(0,"td",33)(1,"span",37),m(2),h()()),2&t){const e=n.$implicit,i=C(2).$implicit,o=C(4);d(),at(o.getRewardClass(i.localPk,e)),d(),O(o.getRewardAmount(i.localPk,e))}}function bbe(t,n){if(1&t&&(we(0,_be,3,3,"td",33,Re),f(2,"td",34)(3,"span",40),m(4),h()()),2&t){const e=C().$implicit,i=C(4);xe(i.rewardDates),d(4),O(i.getWeekTotal(e.localPk))}}function vbe(t,n){1&t&&(f(0,"td")(1,"span",37),m(2,"..."),h()())}function ybe(t,n){1&t&&(f(0,"button",39),b(1,"translate"),f(2,"mat-icon",27),m(3,"chevron_right"),h()()),2&t&&(v("matTooltip",y(1,2,"nodes.view-node")),d(2),v("inline",!0))}function Cbe(t,n){if(1&t){const e=ce();f(0,"button",38),b(1,"translate"),L("click",function(o){z(e);const r=C().$implicit,s=C(4);return o.stopPropagation(),o.preventDefault(),$(s.deleteNode(r))}),f(2,"mat-icon"),m(3,"close"),h()()}2&t&&v("matTooltip",y(1,1,"nodes.delete-node"))}function wbe(t,n){if(1&t){const e=ce();f(0,"a",32)(1,"td"),S(2,gbe,3,4,"mat-icon",35),h(),f(3,"td"),B(4,"span",36),b(5,"translate"),h(),f(6,"td"),m(7),h(),f(8,"td"),m(9),h(),f(10,"td")(11,"span",37),m(12),h()(),S(13,bbe,5,1),S(14,vbe,3,0,"td"),f(15,"td",31)(16,"button",38),b(17,"translate"),L("click",function(o){const r=z(e).$implicit,s=C(4);return o.stopPropagation(),o.preventDefault(),$(s.copyToClipboard(r))}),f(18,"mat-icon",27),m(19,"filter_none"),h()(),f(20,"button",38),b(21,"translate"),L("click",function(o){const r=z(e).$implicit,s=C(4);return o.stopPropagation(),o.preventDefault(),$(s.showEditLabelDialog(r))}),f(22,"mat-icon",27),m(23,"short_text"),h()(),S(24,ybe,4,4,"button",39),S(25,Cbe,4,3,"button",39),h()()}if(2&t){const e=n.$implicit,i=C(4);v("ngClass",Mt(23,X_e))("routerLink",oe(24,Z_e,e.localPk)),d(2),k(e.isHypervisor?2:-1),d(2),at(i.nodeStatusClass(e,!0)),v("matTooltip",y(5,17,i.nodeStatusText(e,!0))),d(3),I(" ",e.label," "),d(2),I(" ",e.localPk," "),d(3),O(i.getRewardAddress(e.localPk)),d(),k(i.rewardDataLoaded?13:-1),d(),k(i.rewardDataLoading?14:-1),d(2),v("matTooltip",y(17,19,"nodes.copy-key")),d(2),v("inline",!0),d(2),v("matTooltip",y(21,21,"labeled-element.edit-label")),d(2),v("inline",!0),d(2),k(e.online?24:-1),d(),k(e.online?-1:25)}}function xbe(t,n){if(1&t){const e=ce();f(0,"table",23)(1,"tr")(2,"th",25),b(3,"translate"),L("click",function(){z(e);const o=C(3);return $(o.dataSorter.changeSortingOrder(o.hypervisorSortData))}),f(4,"mat-icon",26),m(5,"star_outline"),h(),S(6,cbe,2,2,"mat-icon",27),h(),f(7,"th",25),b(8,"translate"),L("click",function(){z(e);const o=C(3);return $(o.dataSorter.changeSortingOrder(o.stateSortData))}),B(9,"span",28),S(10,dbe,2,2,"mat-icon",27),h(),f(11,"th",29),L("click",function(){z(e);const o=C(3);return $(o.dataSorter.changeSortingOrder(o.labelSortData))}),m(12),b(13,"translate"),S(14,ube,2,2,"mat-icon",27),h(),f(15,"th",30),L("click",function(){z(e);const o=C(3);return $(o.dataSorter.changeSortingOrder(o.keySortData))}),m(16),b(17,"translate"),S(18,hbe,2,2,"mat-icon",27),h(),f(19,"th"),m(20),b(21,"translate"),h(),S(22,pbe,5,3),S(23,mbe,3,3,"th"),B(24,"th",31),h(),we(25,wbe,26,26,"a",32,Re),h()}if(2&t){const e=C(3);d(2),v("matTooltip",y(3,11,"nodes.hypervisor")),d(4),k(e.dataSorter.currentSortingColumn===e.hypervisorSortData?6:-1),d(),v("matTooltip",y(8,13,"nodes.state-tooltip")),d(3),k(e.dataSorter.currentSortingColumn===e.stateSortData?10:-1),d(2),I(" ",y(13,15,"nodes.label")," "),d(2),k(e.dataSorter.currentSortingColumn===e.labelSortData?14:-1),d(2),I(" ",y(17,17,"nodes.key")," "),d(2),k(e.dataSorter.currentSortingColumn===e.keySortData?18:-1),d(2),I(" ",y(21,19,"nodes.reward-address")," "),d(2),k(e.rewardDataLoaded?22:-1),d(),k(e.rewardDataLoading?23:-1),d(2),xe(e.dataSource)}}function Sbe(t,n){if(1&t&&(f(0,"mat-icon",27),m(1),h()),2&t){const e=C(4);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function kbe(t,n){if(1&t&&(f(0,"mat-icon",27),m(1),h()),2&t){const e=C(4);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function Dbe(t,n){if(1&t&&(f(0,"mat-icon",27),m(1),h()),2&t){const e=C(4);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function Tbe(t,n){if(1&t&&(f(0,"mat-icon",27),m(1),h()),2&t){const e=C(4);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function Mbe(t,n){if(1&t&&(f(0,"mat-icon",27),m(1),h()),2&t){const e=C(4);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function Ebe(t,n){1&t&&(f(0,"mat-icon",35),b(1,"translate"),m(2,"star"),h()),2&t&&v("inline",!0)("matTooltip",y(1,2,"nodes.hypervisor-info"))}function Ibe(t,n){if(1&t&&(f(0,"div",37),m(1),h(),f(2,"div",37),m(3),h()),2&t){const e=C(2).$implicit;d(),O(e.ip),d(2),O(e.publicIp)}}function Pbe(t,n){if(1&t&&(f(0,"div",37),m(1),h()),2&t){const e=C(2).$implicit;d(),O(e.publicIp)}}function Obe(t,n){if(1&t&&(f(0,"div",37),m(1),h()),2&t){const e=C(2).$implicit;d(),O(e.ip)}}function Abe(t,n){if(1&t&&(f(0,"div",37),m(1),h()),2&t){const e=C(2).$implicit;d(),A0("",e.cityName?e.cityName+", ":"","",e.regionName?e.regionName+", ":"","",e.countryCode)}}function Rbe(t,n){if(1&t&&(S(0,Ibe,4,2)(1,Pbe,2,1,"div",37)(2,Obe,2,1,"div",37),S(3,Abe,2,3,"div",37)),2&t){const e=C().$implicit;k(e.ip&&e.publicIp&&e.ip!==e.publicIp?0:e.publicIp?1:e.ip?2:-1),d(3),k(e.countryCode?3:-1)}}function Nbe(t,n){1&t&&(f(0,"span"),m(1,"-"),h())}function Fbe(t,n){if(1&t&&(f(0,"div",37),m(1),h()),2&t){const e=n.$implicit;d(),Hn("",e.type,": ",e.count)}}function Lbe(t,n){if(1&t&&(we(0,Fbe,2,2,"div",37,ebe),f(2,"div",37),m(3),h()),2&t){const e=C().$implicit;xe(C(4).getTransportCounts(e)),d(3),I("Total: ",e.transports.length)}}function Bbe(t,n){1&t&&(f(0,"span",37),m(1,"Total: 0"),h())}function Vbe(t,n){1&t&&(f(0,"span"),m(1,"-"),h())}function Hbe(t,n){if(1&t&&(f(0,"div",37),m(1),h()),2&t){const e=C().$implicit;d(),O(e.version)}}function jbe(t,n){if(1&t&&(f(0,"div",37),m(1),b(2,"translate"),h(),f(3,"div",37),m(4),b(5,"translate"),h()),2&t){const e=C().$implicit;d(),Hn("",y(2,4,"nodes.visor-version"),": ",e.version||"-"),d(3),Hn("",y(5,6,"nodes.config-label"),": ",e.configVersion||"-")}}function Ube(t,n){if(1&t&&(f(0,"div",37),m(1),h()),2&t){const e=n.$implicit;d(),O(e)}}function zbe(t,n){if(1&t&&we(0,Ube,2,1,"div",37,Re),2&t){const e=C().$implicit;xe(C(4).getNodeServices(e))}}function $be(t,n){1&t&&(f(0,"span"),m(1,"-"),h())}function Wbe(t,n){1&t&&(f(0,"mat-icon",41),m(1,"check_circle"),h()),2&t&&v("matTooltip",C().$implicit.rewardsAddress)}function Gbe(t,n){1&t&&(f(0,"mat-icon",42),b(1,"translate"),m(2,"cancel"),h()),2&t&&v("matTooltip",y(1,1,"nodes.reward-not-set"))}function qbe(t,n){1&t&&(f(0,"button",39),b(1,"translate"),f(2,"mat-icon",27),m(3,"chevron_right"),h()()),2&t&&(v("matTooltip",y(1,2,"nodes.view-node")),d(2),v("inline",!0))}function Kbe(t,n){if(1&t){const e=ce();f(0,"button",38),b(1,"translate"),L("click",function(o){z(e);const r=C().$implicit,s=C(4);return o.stopPropagation(),o.preventDefault(),$(s.deleteNode(r))}),f(2,"mat-icon"),m(3,"close"),h()()}2&t&&v("matTooltip",y(1,1,"nodes.delete-node"))}function Ybe(t,n){if(1&t){const e=ce();f(0,"a",32)(1,"td"),S(2,Ebe,3,4,"mat-icon",35),h(),f(3,"td"),B(4,"span",36),b(5,"translate"),h(),f(6,"td"),m(7),h(),f(8,"td"),S(9,Rbe,4,2),S(10,Nbe,2,0,"span"),h(),f(11,"td"),S(12,Lbe,4,1),S(13,Bbe,2,0,"span",37),S(14,Vbe,2,0,"span"),h(),f(15,"td"),m(16),h(),f(17,"td"),S(18,Hbe,2,1,"div",37)(19,jbe,6,8),h(),f(20,"td"),S(21,zbe,2,0),S(22,$be,2,0,"span"),h(),f(23,"td"),S(24,Wbe,2,1,"mat-icon",41),S(25,Gbe,3,3,"mat-icon",42),h(),f(26,"td",31)(27,"button",38),b(28,"translate"),L("click",function(o){const r=z(e).$implicit,s=C(4);return o.stopPropagation(),o.preventDefault(),$(s.copyToClipboard(r))}),f(29,"mat-icon",27),m(30,"filter_none"),h()(),f(31,"button",38),b(32,"translate"),L("click",function(o){const r=z(e).$implicit,s=C(4);return o.stopPropagation(),o.preventDefault(),$(s.showEditLabelDialog(r))}),f(33,"mat-icon",27),m(34,"short_text"),h()(),S(35,qbe,4,4,"button",39),S(36,Kbe,4,3,"button",39),h()()}if(2&t){const e=n.$implicit,i=C(4);v("ngClass",ft(30,Q_e,e.online,!e.online))("routerLink",e.online?oe(33,h5,e.localPk):null),d(2),k(e.isHypervisor?2:-1),d(2),at(i.nodeStatusClass(e,!0)),v("matTooltip",y(5,24,i.nodeStatusText(e,!0))),d(3),I(" ",e.label," "),d(2),k(e.ip||e.publicIp||e.countryCode?9:-1),d(),k(e.ip||e.publicIp||e.countryCode?-1:10),d(2),k(e.transports&&e.transports.length>0?12:-1),d(),k(e.transports&&0===e.transports.length?13:-1),d(),k(e.transports?-1:14),d(2),I(" ",e.localPk," "),d(2),k(e.version&&e.configVersion&&e.version===e.configVersion?18:19),d(3),k(i.getNodeServices(e).length>0?21:-1),d(),k(0===i.getNodeServices(e).length?22:-1),d(2),k(e.rewardsAddress?24:-1),d(),k(e.rewardsAddress?-1:25),d(2),v("matTooltip",y(28,26,"nodes.copy-key")),d(2),v("inline",!0),d(2),v("matTooltip",y(32,28,"labeled-element.edit-label")),d(2),v("inline",!0),d(2),k(e.online?35:-1),d(),k(e.online?-1:36)}}function Xbe(t,n){if(1&t){const e=ce();f(0,"table",23)(1,"tr")(2,"th",25),b(3,"translate"),L("click",function(){z(e);const o=C(3);return $(o.dataSorter.changeSortingOrder(o.hypervisorSortData))}),f(4,"mat-icon",26),m(5,"star_outline"),h(),S(6,Sbe,2,2,"mat-icon",27),h(),f(7,"th",25),b(8,"translate"),L("click",function(){z(e);const o=C(3);return $(o.dataSorter.changeSortingOrder(o.stateSortData))}),B(9,"span",28),S(10,kbe,2,2,"mat-icon",27),h(),f(11,"th",29),L("click",function(){z(e);const o=C(3);return $(o.dataSorter.changeSortingOrder(o.labelSortData))}),m(12),b(13,"translate"),S(14,Dbe,2,2,"mat-icon",27),h(),f(15,"th"),m(16),b(17,"translate"),h(),f(18,"th"),m(19),b(20,"translate"),h(),f(21,"th",30),L("click",function(){z(e);const o=C(3);return $(o.dataSorter.changeSortingOrder(o.keySortData))}),m(22),b(23,"translate"),S(24,Tbe,2,2,"mat-icon",27),h(),f(25,"th",30),L("click",function(){z(e);const o=C(3);return $(o.dataSorter.changeSortingOrder(o.versionSortData))}),m(26),b(27,"translate"),S(28,Mbe,2,2,"mat-icon",27),h(),f(29,"th"),m(30),b(31,"translate"),h(),f(32,"th"),m(33),b(34,"translate"),h(),B(35,"th",31),h(),we(36,Ybe,37,35,"a",32,Re),h()}if(2&t){const e=C(3);d(2),v("matTooltip",y(3,14,"nodes.hypervisor")),d(4),k(e.dataSorter.currentSortingColumn===e.hypervisorSortData?6:-1),d(),v("matTooltip",y(8,16,"nodes.state-tooltip")),d(3),k(e.dataSorter.currentSortingColumn===e.stateSortData?10:-1),d(2),I(" ",y(13,18,"nodes.label")," "),d(2),k(e.dataSorter.currentSortingColumn===e.labelSortData?14:-1),d(2),I(" ",y(17,20,"nodes.ip-location")," "),d(3),I(" ",y(20,22,"nodes.transports")," "),d(3),I(" ",y(23,24,"nodes.key")," "),d(2),k(e.dataSorter.currentSortingColumn===e.keySortData?24:-1),d(2),I(" ",y(27,26,"nodes.version")," "),d(2),k(e.dataSorter.currentSortingColumn===e.versionSortData?28:-1),d(2),I(" ",y(31,28,"nodes.services")," "),d(3),I(" ",y(34,30,"nodes.reward")," "),d(3),xe(e.dataSource)}}function Zbe(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"tables.label")," ")}function Qbe(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"tables.inverted-order")," ")}function Jbe(t,n){1&t&&(f(0,"div",49)(1,"mat-icon",53),m(2,"star"),h(),m(3,"\xa0 "),f(4,"span",54),m(5),b(6,"translate"),h()()),2&t&&(d(),v("inline",!0),d(4),O(y(6,2,"nodes.hypervisor")))}function eve(t,n){if(1&t&&(f(0,"span"),m(1),h()),2&t){const e=C(2).$implicit;d(),O(e.ip)}}function tve(t,n){1&t&&(f(0,"span"),m(1," / "),h())}function nve(t,n){if(1&t&&(f(0,"span"),m(1),h()),2&t){const e=C(2).$implicit;d(),O(e.publicIp)}}function ive(t,n){if(1&t&&(f(0,"div",49)(1,"span",8),m(2),b(3,"translate"),h(),m(4,": "),S(5,eve,2,1,"span"),S(6,tve,2,0,"span"),S(7,nve,2,1,"span"),h()),2&t){const e=C().$implicit;d(2),O(y(3,4,"nodes.ip")),d(3),k(e.ip?5:-1),d(),k(e.ip&&e.publicIp?6:-1),d(),k(e.publicIp?7:-1)}}function ove(t,n){if(1&t&&(f(0,"span"),m(1),h()),2&t){const e=C(2).$implicit;d(),I("",e.cityName,", ")}}function rve(t,n){if(1&t&&(f(0,"span"),m(1),h()),2&t){const e=C(2).$implicit;d(),I("",e.regionName,", ")}}function sve(t,n){if(1&t&&(f(0,"div",49)(1,"span",8),m(2),b(3,"translate"),h(),m(4,": "),S(5,ove,2,1,"span"),S(6,rve,2,1,"span"),m(7),h()),2&t){const e=C().$implicit;d(2),O(y(3,4,"nodes.location")),d(3),k(e.cityName?5:-1),d(),k(e.regionName?6:-1),d(),I("",e.countryCode," ")}}function ave(t,n){if(1&t&&(f(0,"div",49)(1,"span",8),m(2),b(3,"translate"),h(),m(4),h()),2&t){const e=C().$implicit;d(2),O(y(3,2,"nodes.version")),d(2),I(": ",e.version," ")}}function lve(t,n){if(1&t&&(f(0,"div",49)(1,"span",8),m(2),b(3,"translate"),h(),m(4),h()),2&t){const e=C().$implicit;d(2),O(y(3,2,"nodes.config-version")),d(2),I(": ",e.configVersion," ")}}function cve(t,n){if(1&t){const e=ce();f(0,"a",47)(1,"tr",48)(2,"td",48)(3,"div",44)(4,"div",45),S(5,Jbe,7,4,"div",49),f(6,"div",49)(7,"span",8),m(8),b(9,"translate"),h(),m(10,": "),f(11,"span"),m(12),b(13,"translate"),h()(),f(14,"div",49)(15,"span",8),m(16),b(17,"translate"),h(),m(18),h(),S(19,ive,8,6,"div",49),S(20,sve,8,6,"div",49),f(21,"div",50)(22,"span",8),m(23),b(24,"translate"),h(),m(25),h(),S(26,ave,5,4,"div",49),S(27,lve,5,4,"div",49),h(),B(28,"div",51),f(29,"div",46)(30,"button",52),b(31,"translate"),L("click",function(o){const r=z(e).$implicit,s=C(4);return o.stopPropagation(),o.preventDefault(),$(s.showOptionsDialog(r))}),f(32,"mat-icon"),m(33),h()()()()()()()}if(2&t){const e=n.$implicit,i=C(4);v("ngClass",oe(27,J_e,e.online))("routerLink",e.online?oe(29,h5,e.localPk):null),d(5),k(e.isHypervisor?5:-1),d(3),O(y(9,17,"nodes.state")),d(3),at(i.nodeStatusClass(e,!1)+" title"),d(),O(y(13,19,i.nodeStatusText(e,!1))),d(4),O(y(17,21,"nodes.label")),d(2),I(": ",e.label," "),d(),k(e.ip||e.publicIp?19:-1),d(),k(e.countryCode?20:-1),d(3),O(y(24,23,"nodes.key")),d(2),I(": ",e.localPk," "),d(),k(e.version?26:-1),d(),k(e.configVersion?27:-1),d(3),v("matTooltip",y(31,25,"common.options")),d(3),O("add")}}function dve(t,n){if(1&t){const e=ce();f(0,"table",24)(1,"tr",43),L("click",function(){return z(e),$(C(3).dataSorter.openSortingOrderModal())}),f(2,"td")(3,"div",44)(4,"div",45)(5,"div",8),m(6),b(7,"translate"),h(),f(8,"div"),m(9),b(10,"translate"),S(11,Zbe,2,3),S(12,Qbe,2,3),h()(),f(13,"div",46)(14,"mat-icon",27),m(15,"keyboard_arrow_down"),h()()()()(),we(16,cve,34,31,"a",47,Re),h()}if(2&t){const e=C(3);d(6),O(y(7,5,"tables.sorting-title")),d(3),I("",y(10,7,e.dataSorter.currentSortingColumn.label)," "),d(2),k(e.dataSorter.currentlySortingByLabel?11:-1),d(),k(e.dataSorter.sortingInReverseOrder?12:-1),d(2),v("inline",!0),d(2),xe(e.dataSource)}}function uve(t,n){if(1&t&&(f(0,"div",17)(1,"div",22),S(2,xbe,27,21,"table",23),S(3,Xbe,38,32,"table",23),S(4,dve,18,9,"table",24),h()()),2&t){const e=C(2);d(2),k(e.showRewardsInfo&&e.dataSource.length>0?2:-1),d(),k(!e.showRewardsInfo&&e.dataSource.length>0?3:-1),d(),k(e.dataSource.length>0?4:-1)}}function hve(t,n){if(1&t&&B(0,"app-paginator",16),2&t){const e=C(2);v("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",e.showRewardsInfo?Mt(4,d5):Mt(5,u5))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function fve(t,n){1&t&&(f(0,"span",57),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"nodes.empty")))}function pve(t,n){1&t&&(f(0,"span",57),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"nodes.empty-with-filter")))}function mve(t,n){if(1&t&&(f(0,"div",17)(1,"div",55)(2,"mat-icon",56),m(3,"warning"),h(),S(4,fve,3,3,"span",57),S(5,pve,3,3,"span",57),h()()),2&t){const e=C(2);d(2),v("inline",!0),d(2),k(0===e.allNodes.length?4:-1),d(),k(0!==e.allNodes.length?5:-1)}}function gve(t,n){if(1&t){const e=ce();f(0,"div",2)(1,"div",5)(2,"app-top-bar",6),L("refreshRequested",function(){return z(e),$(C().forceDataRefresh(!0))})("optionSelected",function(o){return z(e),$(C().performAction(o))}),h()(),f(3,"div",5)(4,"div",7)(5,"div",8),S(6,rbe,6,3,"div",9),h(),f(7,"div",10)(8,"div",11),S(9,sbe,3,4,"mat-icon",12),S(10,abe,2,1,"mat-icon",13),f(11,"mat-menu",14,0)(13,"div",15),L("click",function(){return z(e),$(C().removeOffline())}),m(14),b(15,"translate"),h()()(),S(16,lbe,1,6,"app-paginator",16),h()(),S(17,uve,5,3,"div",17),S(18,hve,1,6,"app-paginator",16),S(19,mve,6,3,"div",17),h()()}if(2&t){const e=C();d(2),v("titleParts",Mt(22,c5))("tabsData",e.tabsData)("selectedTabIndex",e.showRewardsInfo?1:0)("secondsSinceLastUpdate",e.secondsSinceLastUpdate)("showLoading",e.updating)("showAlert",e.errorsUpdating)("refeshRate",e.storageService.getRefreshTime())("optionsData",e.options),d(2),v("ngClass",oe(23,Y_e,e.numberOfPages>1)),d(2),k(e.dataFilterer.currentFiltersTexts&&e.dataFilterer.currentFiltersTexts.length>0?6:-1),d(3),k(e.allNodes&&e.allNodes.length>0?9:-1),d(),k(e.dataSource.length>0?10:-1),d(),v("overlapTrigger",!1),d(2),v("disabled",Wt(!e.hasOfflineNodes)),d(),I(" ",y(15,20,"nodes.delete-all-offline")," "),d(2),k(e.numberOfPages>1?16:-1),d(),k(0!==e.dataSource.length?17:-1),d(),k(e.numberOfPages>1?18:-1),d(),k(0===e.dataSource.length?19:-1)}}let f5=(()=>{class t extends Wn{constructor(e,i,o,r,s,a,l,c,u,p,g,_){super(),this.nodeService=e,this.multipleNodeDataService=i,this.router=o,this.dialog=r,this.authService=s,this.storageService=a,this.ngZone=l,this.snackbarService=c,this.clipboardService=u,this.translateService=p,this.rewardService=g,this.persistentServerDataResponseKey="serv-dat-response",this.nodesListId="nl",this.dmsgListId="dl",this.hypervisorSortData=new Pt(["isHypervisor"],"nodes.hypervisor",ct.Boolean),this.stateSortData=new Pt(["online"],"nodes.state",ct.Boolean),this.labelSortData=new Pt(["label"],"nodes.label",ct.Text),this.keySortData=new Pt(["localPk"],"nodes.key",ct.Text),this.versionSortData=new Pt(["version"],"nodes.version",ct.Text),this.configVersionSortData=new Pt(["configVersion"],"nodes.config-version",ct.Text),this.dmsgServerSortData=new Pt(["dmsgServerPk"],"nodes.dmsg-server",ct.Text,["dmsgServerPk_label"]),this.pingSortData=new Pt(["roundTripPing"],"nodes.ping",ct.Number),this.loading=!0,this.dataSource=[],this.tabsData=[],this.options=[],this.showDmsgInfo=!1,this.showRewardsInfo=!1,this.canLogOut=!0,this.rewardDataMap=new Map,this.rewardDates=[],this.rewardDateHeaders=[],this.rewardDataLoading=!1,this.rewardDataLoaded=!1,this.hasOfflineNodes=!1,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.filterProperties=[{filterName:"nodes.filter-dialog.online",keyNameInElementsArray:"online",type:mn.Select,printableLabelsForValues:[{value:"",label:"nodes.filter-dialog.online-options.any"},{value:"true",label:"nodes.filter-dialog.online-options.online"},{value:"false",label:"nodes.filter-dialog.online-options.offline"}]},{filterName:"nodes.filter-dialog.label",keyNameInElementsArray:"label",type:mn.TextInput,maxlength:100},{filterName:"nodes.filter-dialog.key",keyNameInElementsArray:"localPk",type:mn.TextInput,maxlength:66},{filterName:"nodes.filter-dialog.dmsg",keyNameInElementsArray:"dmsgServerPk",secondaryKeyNameInElementsArray:"dmsgServerPk_label",type:mn.TextInput,maxlength:66}],this.secondsSinceLastUpdate=0,this.lastUpdate=Date.now(),this.updating=!1,this.errorsUpdating=!1,this.lastUpdateRequestedManually=!1,this.labeledElementTypes=io,this.updateOptionsMenu(),this.authVerificationSubscription=this.authService.checkLogin().subscribe(T=>{this.canLogOut=T!==xa.AuthDisabled,this.updateOptionsMenu()}),this.showRewardsInfo=-1!==this.router.url.indexOf("rewards"),this.showDmsgInfo=!1,this.filterProperties.splice(this.filterProperties.length-1);const x=this.showRewardsInfo?"rl":this.nodesListId;this.dataSorter=new ru(this.dialog,this.translateService,this.storageService,[this.hypervisorSortData,this.stateSortData,this.labelSortData,this.keySortData,this.versionSortData,this.configVersionSortData],3,x),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataFilterer=new su(this.dialog,_,this.router,this.filterProperties,x),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(T=>{this.filteredNodes=T,this.hasOfflineNodes=!1,this.filteredNodes.forEach(E=>{E.online||(this.hasOfflineNodes=!0)}),this.dataSorter.setData(this.filteredNodes)}),this.navigationsSubscription=_.paramMap.subscribe(T=>{if(T.has("page")){let E=Number.parseInt(T.get("page"),10);(isNaN(E)||E<1)&&(E=1),this.currentPageInUrl=E,this.recalculateElementsToShow()}}),this.tabsData=[{icon:"view_headline",label:"nodes.title",linkParts:["/nodes"]},{icon:"monetization_on",label:"nodes.rewards-title",linkParts:["/nodes","rewards"]},{icon:"health_and_safety",label:"nodes.services-health-title",linkParts:["/nodes","services-health"]},{icon:"hub",label:"nodes.dmsg-settings-title",linkParts:["/nodes","dmsg-settings"]},{icon:"bubble_chart",label:"node.details.tpviz.title",linkParts:[],externalUrl:"/tp-viz/"},{icon:"settings",label:"settings.title",linkParts:["/settings"]}],this.languageSubscription=this.translateService.onLangChange.subscribe(()=>{this.multipleNodeDataService.forceRefresh()})}updateOptionsMenu(){this.options=[],this.options.push({name:"nodes.modify-rewards-all",actionName:"modifyRewardsAll",icon:"edit"}),this.canLogOut&&this.options.push({name:"common.logout",actionName:"logout",icon:"power_settings_new"})}ngOnInit(){return this.startGettingData(!0),this.ngZone.runOutsideAngular(()=>{this.updateTimeSubscription=Ul(5e3,5e3).subscribe(()=>this.ngZone.run(()=>{this.secondsSinceLastUpdate=Math.floor((Date.now()-this.lastUpdate)/1e3)}))}),super.ngOnInit()}ngOnDestroy(){this.authVerificationSubscription.unsubscribe(),this.dataSubscription.unsubscribe(),this.updateTimeSubscription.unsubscribe(),this.navigationsSubscription.unsubscribe(),this.languageSubscription.unsubscribe(),this.updateSubscription&&this.updateSubscription.unsubscribe(),this.dataSortedSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFiltererSubscription.unsubscribe(),this.dataFilterer.dispose()}performAction(e){"logout"===e?this.logout():"updateAll"===e?this.updateAll():"modifyRewardsAll"===e&&this.changeRewardsToAll()}nodeStatusClass(e,i){return e.online?e.health&&e.health.servicesHealth===Eo.Unhealthy?i?"dot-yellow blinking":"yellow-text":e.health&&e.health.servicesHealth===Eo.Healthy?i?"dot-green":"green-text":i?"dot-outline-gray":"":i?"dot-red":"red-text"}nodeStatusText(e,i){return e.online?e.health&&e.health.servicesHealth===Eo.Healthy?"node.statuses.online"+(i?"-tooltip":""):e.health&&e.health.servicesHealth===Eo.Unhealthy?"node.statuses.partially-online"+(i?"-tooltip":""):e.health&&e.health.servicesHealth===Eo.Connecting?"node.statuses.connecting"+(i?"-tooltip":""):"node.statuses.unknown"+(i?"-tooltip":""):"node.statuses.offline"+(i?"-tooltip":"")}forceDataRefresh(e=!1){e&&(this.lastUpdateRequestedManually=!0),this.multipleNodeDataService.forceRefresh()}startGettingData(e){const i=e?this.getLocalValue(this.persistentServerDataResponseKey):null;let o=this.multipleNodeDataService.startRequestingData();i&&(o=ae(JSON.parse(i.value))),this.dataSubscription=o.subscribe(r=>{i||this.saveLocalValue(this.persistentServerDataResponseKey,JSON.stringify(r)),this.updating=!r||r.updating,r&&!r.updating&&(r.data&&!r.error?(this.allNodes=r.data,this.dataFilterer.setData(this.allNodes),this.showRewardsInfo&&!this.rewardDataLoaded&&!this.rewardDataLoading&&this.loadRewardData(),this.loading=!1,this.snackbarService.closeCurrentIfTemporaryError(),this.lastUpdate=r.momentOfLastCorrectUpdate,this.secondsSinceLastUpdate=Math.floor((Date.now()-r.momentOfLastCorrectUpdate)/1e3),this.errorsUpdating=!1,Kr.currentInstance.hideDataProblemMsg(),this.lastUpdateRequestedManually&&(this.snackbarService.showDone("common.refreshed",null),this.lastUpdateRequestedManually=!1)):r.error&&(this.errorsUpdating||this.snackbarService.showError(this.loading?"common.loading-error":"nodes.error-load",null,!0,r.error),this.loading=!1,this.errorsUpdating=!0,Kr.currentInstance.showDataProblemMsg())),i&&this.startGettingData(!1)})}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredNodes){const e=ze.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredNodes.length/e),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const i=e*(this.currentPage-1);this.nodesToShow=this.filteredNodes.slice(i,i+e)}else this.nodesToShow=null;this.nodesToShow&&(this.dataSource=this.nodesToShow)}logout(){const e=Ye.createConfirmationDialog(this.dialog,"common.logout-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.closeModal(),this.authService.logout().subscribe(()=>this.router.navigate(["login"]),()=>this.snackbarService.showError("common.logout-error"))})}updateAll(){if(!this.dataSource||0===this.dataSource.length)return void this.snackbarService.showError("nodes.no-visors-to-update");const e=[],i=[];this.dataSource.forEach(o=>{if(o.online){const r={key:o.localPk,label:o.label,version:o.version,tag:o.buildTag};Ye.checkIfTagIsUpdatable(o.buildTag)?e.push(r):i.push(r)}}),sge.openDialog(this.dialog,e,i)}changeRewardsToAll(){if(!this.dataSource||0===this.dataSource.length)return void this.snackbarService.showError("nodes.no-visors-to-modify");const e=[];this.dataSource.forEach(o=>{o.online&&e.push({key:o.localPk,label:o.label})}),Pge.openDialog(this.dialog,{nodes:e})}recursivelyUpdateWallets(e,i,o=0){return this.nodeService.update(e[e.length-1]).pipe(go(()=>ae(null)),Et(r=>(r&&r.updated&&!r.error?this.snackbarService.showDone(this.translateService.instant("nodes.update.done",{name:i[i.length-1]})):(this.snackbarService.showError(this.translateService.instant("nodes.update.update-error",{name:i[i.length-1]})),o+=1),e.pop(),i.pop(),e.length>=1?this.recursivelyUpdateWallets(e,i,o):ae(o))))}showOptionsDialog(e){const i=[{icon:"filter_none",label:"nodes.copy-key"}];i.push({icon:"short_text",label:"labeled-element.edit-label"}),e.online||i.push({icon:"close",label:"nodes.delete-node"}),oo.openDialog(this.dialog,i,"common.options").afterClosed().subscribe(o=>{1===o?this.copySpecificTextToClipboard(e.localPk):2===o?this.showEditLabelDialog(e):3===o&&this.deleteNode(e)})}copyToClipboard(e){this.copySpecificTextToClipboard(e.localPk)}copySpecificTextToClipboard(e){this.clipboardService.copy(e)&&this.snackbarService.showDone("copy.copied")}showEditLabelDialog(e){let i=this.storageService.getLabelInfo(e.localPk);i||(i={id:e.localPk,label:"",identifiedElementType:io.Node}),vk.openDialog(this.dialog,i).afterClosed().subscribe(o=>{o&&this.forceDataRefresh()})}deleteNode(e){const i=Ye.createConfirmationDialog(this.dialog,"nodes.delete-node-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.close(),this.storageService.setLocalNodesAsHidden([e.localPk],[e.ip]),this.forceDataRefresh(),this.snackbarService.showDone("nodes.deleted")})}getTransportCounts(e){if(!e.transports||0===e.transports.length)return[];const i={};return e.transports.forEach(o=>{const r=(o.type||"unknown").toUpperCase();i[r]=(i[r]||0)+1}),Object.keys(i).sort().map(o=>({type:o,count:i[o]}))}getNodeServices(e){const i=[];return e.apps&&e.apps.forEach(o=>{1===o.status&&("skysocks"===o.name?i.push("Proxy Server"):"vpn-server"===o.name&&i.push("VPN Server"))}),e.isPublic&&i.push("Public Visor"),e.autoconnectTransports&&i.push("Autoconnect"),i}loadRewardData(){if(!this.allNodes||0===this.allNodes.length)return;this.rewardDataLoading=!0;const e=this.allNodes.map(i=>i.localPk);this.rewardService.fetchRewardData(e).subscribe(i=>{this.rewardDataMap=i,this.rewardDates=this.rewardService.getCachedDates(),this.rewardDateHeaders=this.rewardDates.map(o=>this.rewardService.formatDateShort(o)),this.rewardDataLoading=!1,this.rewardDataLoaded=!0})}getRewardData(e){return this.rewardDataMap.get(e)||null}getRewardAmount(e,i){const o=this.rewardDataMap.get(e);return o&&o.dailyAmounts[i]&&0!==o.dailyAmounts[i]?o.dailyAmounts[i].toFixed(2):"-"}getRewardClass(e,i){const o=this.rewardDataMap.get(e);return o&&o.dailyAmounts[i]&&0!==o.dailyAmounts[i]?o.dailySent[i]?"reward-sent":"reward-pending":""}getWeekTotal(e){const i=this.rewardDataMap.get(e);return i&&0!==i.weekTotal?i.weekTotal.toFixed(2):"-"}getRewardAddress(e){const i=this.allNodes?.find(r=>r.localPk===e);if(i?.rewardsAddress)return i.rewardsAddress;const o=this.rewardDataMap.get(e);return o?.rewardAddress?o.rewardAddress:"-"}removeOffline(){let e="nodes.delete-all-offline-confirmation";this.dataFilterer.currentFiltersTexts&&this.dataFilterer.currentFiltersTexts.length>0&&(e="nodes.delete-all-filtered-offline-confirmation");const i=Ye.createConfirmationDialog(this.dialog,e);i.componentInstance.operationAccepted.subscribe(()=>{i.close();const o=[],r=[];this.filteredNodes.forEach(s=>{s.online||(o.push(s.localPk),r.push(s.ip))}),o.length>0&&(this.storageService.setLocalNodesAsHidden(o,r),this.forceDataRefresh(),1===o.length?this.snackbarService.showDone("nodes.deleted-singular"):this.snackbarService.showDone("nodes.deleted-plural",{number:o.length}))})}static{this.\u0275fac=function(i){return new(i||t)(P(Sr),P(KV),P(vt),P(kt),P(Vf),P(zn),P(ge),P(bt),P(Gf),P(zo),P(Oge),P(Ei))}}static{this.\u0275cmp=se({type:t,selectors:[["app-node-list"]],standalone:!1,features:[be],decls:2,vars:2,consts:[["selectionMenu","matMenu"],[1,"d-flex","flex-column","h-100","w-100"],[1,"row"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton"],[1,"h-100"],[1,"col-12"],[3,"refreshRequested","optionSelected","titleParts","tabsData","selectedTabIndex","secondsSinceLastUpdate","showLoading","showAlert","refeshRate","optionsData"],[1,"generic-title-container","mt-4.5","d-flex",3,"ngClass"],[1,"title"],[1,"filter-label","subtle-transparent-button","cursor-pointer"],[1,"options"],[1,"options-container"],[1,"small-icon",3,"inline","matTooltip"],[3,"matMenuTriggerFor"],[3,"overlapTrigger"],["mat-menu-item","",3,"click","disabled"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"rounded-elevated-box","mt-3"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],[1,"item"],[1,"transparent-50"],[1,"small-icon",3,"click","inline","matTooltip"],[1,"box-internal-container","overflow","full-node-list-margins"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none","nowrap"],[1,"sortable-column","small-column",3,"click","matTooltip"],[1,"hypervisor-icon","grey-text"],[3,"inline"],[1,"dot-outline-gray"],[1,"sortable-column","labels",3,"click"],[1,"sortable-column",3,"click"],[1,"actions"],[1,"selectable","link-row",3,"ngClass","routerLink"],[1,"reward-day-column"],[1,"reward-total-column"],[1,"hypervisor-icon",3,"inline","matTooltip"],[3,"matTooltip"],[2,"font-size","0.85em"],["mat-button","",1,"big-action-button","transparent-button",3,"click","matTooltip"],["mat-button","",1,"big-action-button","transparent-button",3,"matTooltip"],[2,"font-size","0.85em","font-weight","bold"],[2,"color","#4caf50","font-size","20px",3,"matTooltip"],[2,"color","#f44336","font-size","20px",3,"matTooltip"],[1,"selectable","click-effect",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],[1,"link-row",3,"ngClass","routerLink"],[1,"d-block"],[1,"list-row"],[1,"list-row","long-content"],[1,"margin-part"],["mat-icon-button","",1,"transparent-button",3,"click","matTooltip"],[1,"hypervisor-icon",3,"inline"],[1,"yellow-clear-text","title"],[1,"box-internal-container","font-sm"],[1,"alert-icon",3,"inline"],[1,"font-sm"]],template:function(i,o){1&i&&(S(0,tbe,4,5,"div",1),S(1,gve,20,25,"div",2)),2&i&&(k(o.loading?0:-1),d(),k(o.loading?-1:1))},dependencies:[qt,wa,Jn,Ms,lt,pn,Xr,Ps,lu,vr,cu,As,Se],styles:[".labels[_ngcontent-%COMP%]{width:15%}.actions[_ngcontent-%COMP%]{text-align:right;width:120px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}.hypervisor-icon[_ngcontent-%COMP%]{font-size:14px!important;line-height:14px!important;position:relative;top:2px;margin-left:2px;color:#d48b05}.small-column[_ngcontent-%COMP%]{width:1px}.non-selectable[_ngcontent-%COMP%]{cursor:not-allowed}.reward-day-column[_ngcontent-%COMP%]{text-align:center;white-space:nowrap;min-width:60px}.reward-total-column[_ngcontent-%COMP%]{text-align:center;white-space:nowrap;min-width:70px}.reward-sent[_ngcontent-%COMP%]{color:#4caf50}.reward-pending[_ngcontent-%COMP%]{color:#ff9800}"]})}}return t})();function _ve(t,n){1&t&&(f(0,"div",6),B(1,"mat-spinner",7),h())}function bve(t,n){if(1&t&&(f(0,"tr")(1,"td"),m(2,".dmsg"),h(),f(3,"td"),m(4),h(),f(5,"td"),m(6),h(),f(7,"td"),m(8),h()()),2&t){const e=C(4);d(3),at(e.proxyStatus.dmsg_web.running?"status-ok":"status-off"),d(),I(" ",e.proxyStatus.dmsg_web.running?"Yes":"No"," "),d(2),O(e.proxyStatus.dmsg_web.socks_addr||"-"),d(2),O(e.proxyStatus.dmsg_web.upstream_socks||"direct")}}function vve(t,n){if(1&t&&(f(0,"tr")(1,"td"),m(2,".skynet"),h(),f(3,"td"),m(4),h(),f(5,"td"),m(6),h(),f(7,"td"),m(8),h()()),2&t){const e=C(4);d(3),at(e.proxyStatus.skynet_web.running?"status-ok":"status-off"),d(),I(" ",e.proxyStatus.skynet_web.running?"Yes":"No"," "),d(2),O(e.proxyStatus.skynet_web.socks_addr||"-"),d(2),O(e.proxyStatus.skynet_web.upstream_socks||"direct")}}function yve(t,n){if(1&t&&(f(0,"table",21)(1,"tr")(2,"th"),m(3,"Resolver"),h(),f(4,"th"),m(5,"Running"),h(),f(6,"th"),m(7,"SOCKS"),h(),f(8,"th"),m(9,"Upstream"),h()(),tt(10,bve,9,5,"tr",3)(11,vve,9,5,"tr",3),h()),2&t){const e=C(3);d(10),v("ngIf",e.proxyStatus.dmsg_web),d(),v("ngIf",e.proxyStatus.skynet_web)}}function Cve(t,n){if(1&t&&(f(0,"div",19),tt(1,yve,12,2,"table",20),h()),2&t){const e=C(2);d(),v("ngIf",e.proxyStatus.dmsg_web||e.proxyStatus.skynet_web)}}function wve(t,n){if(1&t){const e=ce();f(0,"div")(1,"h3",8),m(2,"Resolving Proxy"),h(),f(3,"p",9),m(4," Browse "),f(5,"strong"),m(6,".skynet"),h(),m(7," and "),f(8,"strong"),m(9,".dmsg"),h(),m(10," domains. Set an upstream SOCKS5 proxy to route all other traffic through skysocks. "),h(),tt(11,Cve,2,1,"div",10),f(12,"div",11)(13,"div",12)(14,"mat-checkbox",13),L("change",function(o){z(e);const r=C();return r.form.get("skynetEnabled").setValue(o.checked),$(r.toggleProxy())}),m(15," Enable resolving proxy (.skynet + .dmsg) "),h()(),f(16,"form",14)(17,"div",15)(18,"mat-form-field",16)(19,"mat-label"),m(20,"Upstream SOCKS5 (e.g. 127.0.0.1:1080)"),h(),B(21,"input",17),h(),f(22,"button",18),L("click",function(){return z(e),$(C().setUpstream())}),m(23," Set "),h()()()()()}if(2&t){const e=C();d(11),v("ngIf",e.proxyStatus),d(3),v("checked",e.form.get("skynetEnabled").value)("disabled",e.loading),d(2),v("formGroup",e.form),d(6),v("disabled",e.loading)}}let xve=(()=>{class t{constructor(e,i,o,r){this.dialogRef=e,this.data=i,this.nodeService=o,this.snackbarService=r,this.loading=!1,this.proxyStatus=null,this.skynetPorts=[],this.newPort="",this.form=new ZS({skynetEnabled:new eu(!1),upstream:new eu("")}),this.loadStatus(),this.loadPorts()}loadStatus(){this.loading=!0,this.nodeService.getProxies(this.data.nodeKey).subscribe(e=>{this.proxyStatus=e,this.loading=!1;const i=e?.skynet_web?.running||!1,o=e?.skynet_web?.upstream_socks||"";this.form.get("skynetEnabled").setValue(i),this.form.get("upstream").setValue(o)},()=>{this.loading=!1})}loadPorts(){this.nodeService.getSkynetPorts(this.data.nodeKey).subscribe(e=>{this.skynetPorts=(e||[]).sort((i,o)=>i-o)},()=>{})}toggleProxy(){const e=this.form.get("skynetEnabled").value;this.loading=!0,this.nodeService.setProxyEnabled(this.data.nodeKey,"skynet",e).subscribe(()=>{this.nodeService.setProxyEnabled(this.data.nodeKey,"dmsg",e).subscribe(()=>{this.loading=!1,this.snackbarService.showDone(e?"Resolving proxy enabled":"Resolving proxy disabled"),this.loadStatus()},()=>{this.loading=!1})},()=>{this.loading=!1,this.snackbarService.showError("Failed to toggle proxy")})}setUpstream(){const e=this.form.get("upstream").value.trim();this.loading=!0,this.nodeService.setProxyUpstream(this.data.nodeKey,"skynet",e).subscribe(()=>{this.loading=!1,this.snackbarService.showDone(e?`Upstream set to ${e}`:"Upstream cleared"),this.loadStatus()},()=>{this.loading=!1,this.snackbarService.showError("Failed to set upstream")})}addPort(){const e=parseInt(this.newPort,10);isNaN(e)||e<1||e>65535?this.snackbarService.showError("Invalid port number"):this.nodeService.registerSkynetPort(this.data.nodeKey,e).subscribe(()=>{this.newPort="",this.snackbarService.showDone(`Port ${e} forwarded`),this.loadPorts()},i=>{this.snackbarService.showError(i?.error?.error||"Failed to register port")})}removePort(e){this.nodeService.deregisterSkynetPort(this.data.nodeKey,e).subscribe(()=>{this.snackbarService.showDone(`Port ${e} removed`),this.loadPorts()},()=>{this.snackbarService.showError("Failed to deregister port")})}close(){this.dialogRef.close()}static{this.\u0275fac=function(i){return new(i||t)(P(It),P(hn),P(Sr),P(bt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-proxy-settings"]],standalone:!1,decls:9,vars:2,consts:[[1,"generic-dialog-container"],["mat-dialog-title",""],["class","text-center py-3",4,"ngIf"],[4,"ngIf"],["align","end"],["mat-button","",3,"click"],[1,"text-center","py-3"],["diameter","30",1,"mx-auto"],[1,"section-title"],[1,"help-text"],["class","proxy-status",4,"ngIf"],[1,"proxy-form"],[1,"form-row","toggle-row"],[3,"change","checked","disabled"],[3,"formGroup"],[1,"form-row","upstream-row"],["appearance","outline",1,"upstream-field"],["matInput","","formControlName","upstream","placeholder","127.0.0.1:1080"],["mat-raised-button","","color","primary",3,"click","disabled"],[1,"proxy-status"],["class","status-table",4,"ngIf"],[1,"status-table"]],template:function(i,o){1&i&&(f(0,"div",0)(1,"h2",1),m(2,"Skynet Settings"),h(),f(3,"mat-dialog-content"),tt(4,_ve,2,0,"div",2)(5,wve,24,5,"div",3),h(),f(6,"mat-dialog-actions",4)(7,"button",5),L("click",function(){return o.close()}),m(8,"Close"),h()()()),2&i&&(d(4),v("ngIf",o.loading),d(),v("ngIf",!o.loading))},dependencies:[$h,Cn,rn,sn,yn,Xt,fn,wS,MB,Kd,wn,Jb,ei,Jn,$o,kr],styles:[".section-title[_ngcontent-%COMP%]{font-size:15px;font-weight:500;margin:16px 0 4px;color:#000000de}.section-title[_ngcontent-%COMP%]:first-of-type{margin-top:0}.help-text[_ngcontent-%COMP%]{color:#0009;font-size:13px;margin-bottom:12px}.help-text[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{background:#0000000f;padding:1px 4px;border-radius:3px;font-size:12px}.status-table[_ngcontent-%COMP%]{width:100%;margin-bottom:12px;border-collapse:collapse}.status-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%], .status-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:5px 8px;text-align:left;border-bottom:1px solid rgba(0,0,0,.08);font-size:13px}.status-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{color:#00000080;font-weight:500}.status-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{color:#000000de}.status-table[_ngcontent-%COMP%] .status-ok[_ngcontent-%COMP%]{color:#4caf50;font-weight:500}.status-table[_ngcontent-%COMP%] .status-off[_ngcontent-%COMP%]{color:#00000061}.proxy-form[_ngcontent-%COMP%]{margin-top:8px;margin-bottom:8px}.form-row[_ngcontent-%COMP%]{margin-bottom:12px}.upstream-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.upstream-row[_ngcontent-%COMP%] .upstream-field[_ngcontent-%COMP%]{flex:1}.no-ports[_ngcontent-%COMP%]{color:#00000061;font-style:italic;font-size:13px}.port-list[_ngcontent-%COMP%]{margin-bottom:8px}.port-item[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;border-bottom:1px solid rgba(0,0,0,.06)}.port-item[_ngcontent-%COMP%] .port-number[_ngcontent-%COMP%]{font-family:monospace;font-size:14px;font-weight:500}.add-port-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.add-port-row[_ngcontent-%COMP%] .port-field[_ngcontent-%COMP%]{width:120px}"]})}}return t})();const Sve=["content"],Sk=t=>({number:t}),kve=t=>({time:t});function Dve(t,n){if(1&t&&(f(0,"div",11),m(1),b(2,"translate"),h()),2&t){const e=C(2);d(),I(" ",Ee(2,1,"node.logs.filter-ignored",oe(4,Sk,e.logEntries.length-e.filteredLogEntries.length))," ")}}function Tve(t,n){if(1&t){const e=ce();f(0,"div",8),L("click",function(){return z(e),$(C().showFilters())}),f(1,"div",9)(2,"div")(3,"span"),m(4),b(5,"translate"),h(),f(6,"span",10),m(7),b(8,"translate"),h()(),S(9,Dve,3,6,"div",11),h(),B(10,"div",12),h()}if(2&t){const e=C();d(4),I("",y(5,3,"node.logs.selected-filter")," "),d(3),O(y(8,5,"node.logs."+e.levelDetails.get(e.currentMinimumLevel).levelFilterName)),d(2),k(e.logEntries.length>e.filteredLogEntries.length?9:-1)}}function Mve(t,n){if(1&t&&(f(0,"div",3)(1,"a",13),m(2),b(3,"translate"),h()()),2&t){const e=C();d(),v("href",e.getFullLogsUrl(),ho),d(),I(" ",Ee(3,2,"node.logs.view-rest",oe(5,Sk,e.totalLogs))," ")}}function Eve(t,n){1&t&&m(0," : ")}function Ive(t,n){if(1&t&&(f(0,"span"),m(1),h()),2&t){const e=C().$implicit;d(),I(" ",e.msg," ")}}function Pve(t,n){if(1&t&&(f(0,"span",16),m(1),h(),f(2,"span"),m(3),h()),2&t){const e=n.$implicit;d(),I(" ",e.name," "),d(2),I(' ="',e.value,'" ')}}function Ove(t,n){if(1&t&&(f(0,"div",3)(1,"span",14),m(2),h(),f(3,"span"),m(4),h(),m(5," [ "),f(6,"span",14),m(7),h(),f(8,"span",15),m(9),h(),m(10," ]"),S(11,Eve,1,0),S(12,Ive,2,1,"span"),we(13,Pve,4,2,null,null,Re),h()),2&t){const e=n.$implicit,i=C(2);d(2),I(" ",e.time," "),d(),at(i.levelDetails.get(e.level).colorClass),d(),I(" ",i.levelDetails.get(e.level).name," "),d(3),I(" ",e.func," "),d(2),I(" ",e._module," "),d(2),k(e.msg?11:-1),d(),k(e.msg?12:-1),d(),xe(e.extra)}}function Ave(t,n){1&t&&we(0,Ove,15,8,"div",3,Re),2&t&&xe(C().filteredLogEntries)}function Rve(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"node.logs.view-all")," ")}function Nve(t,n){if(1&t&&(m(0),b(1,"translate")),2&t){const e=C(2);I(" ",Ee(1,1,"node.logs.view-rest",oe(4,Sk,e.totalLogs))," ")}}function Fve(t,n){if(1&t&&(f(0,"div",3)(1,"a",13),S(2,Rve,2,3),S(3,Nve,2,6),h()()),2&t){const e=C();d(),v("href",e.getFullLogsUrl(),ho),d(),k(e.hasMoreLogMessages?-1:2),d(),k(e.hasMoreLogMessages?3:-1)}}function Lve(t,n){1&t&&(f(0,"div",4),m(1),b(2,"translate"),h()),2&t&&(d(),I(" ",y(2,1,"node.logs.no-logs")," "))}function Bve(t,n){1&t&&(f(0,"div",4),m(1),b(2,"translate"),h()),2&t&&(d(),I(" ",y(2,1,"node.logs.no-logs-for-filter")," "))}function Vve(t,n){1&t&&B(0,"app-loading-indicator",5),2&t&&v("showWhite",!1)}function Hve(t,n){1&t&&(f(0,"mat-icon",17),m(1,"refresh"),h()),2&t&&v("inline",!0)}function jve(t,n){if(1&t&&(f(0,"div",7),S(1,Hve,2,1,"mat-icon",17),f(2,"span"),m(3),b(4,"translate"),h()()),2&t){const e=C();d(),k(e.showAlert?-1:1),d(2),O(Ee(4,2,"refresh-button."+e.elapsedTime.translationVarName,oe(5,kve,e.elapsedTime.elapsedTime)))}}var ln=function(t){return t[t.PanicLevel=0]="PanicLevel",t[t.FatalLevel=1]="FatalLevel",t[t.ErrorLevel=2]="ErrorLevel",t[t.WarnLevel=3]="WarnLevel",t[t.InfoLevel=4]="InfoLevel",t[t.DebugLevel=5]="DebugLevel",t[t.TraceLevel=6]="TraceLevel",t[t.Unknown=7]="Unknown",t}(ln||{});class Uve{constructor(){this.extra=[]}}let zve=(()=>{class t{static openDialog(e){const i=new Lt;return i.autoFocus=!1,i.width=ze.largeModalWidth,e.open(t,i)}constructor(e,i,o,r,s){this.dialogRef=e,this.nodeService=i,this.snackbarService=o,this.ngZone=r,this.dialog=s,this.levelDetails=new Map([[ln.PanicLevel,{name:"PANIC",colorClass:"panic-level-color",levelFilterName:"filter-panic",importance:8}],[ln.FatalLevel,{name:"FATAL",colorClass:"fatal-level-color",levelFilterName:"filter-faltal",importance:7}],[ln.ErrorLevel,{name:"ERROR",colorClass:"error-level-color",levelFilterName:"filter-error",importance:6}],[ln.WarnLevel,{name:"WARNING",colorClass:"warning-level-color",levelFilterName:"filter-warning",importance:5}],[ln.InfoLevel,{name:"INFO",colorClass:"info-level-color",levelFilterName:"filter-info",importance:4}],[ln.DebugLevel,{name:"DEBUG",colorClass:"debug-level-color",levelFilterName:"filter-debug",importance:3}],[ln.TraceLevel,{name:"TRACE",colorClass:"trace-level-color",levelFilterName:"filter-all",importance:2}],[ln.Unknown,{name:"UNKNOWN LOG",colorClass:"unknown-level-color",levelFilterName:"filter-all",importance:1}]]),this.currentMinimumLevel=ln.Unknown,this.loading=!0,this.LoadingMoment=0,this.maxElementsPerPage=1e3,this.logEntries=[],this.filteredLogEntries=[],this.hasMoreLogMessages=!1,this.totalLogs=0,this.shouldShowError=!0}ngOnInit(){this.loadData(0)}ngOnDestroy(){this.removeSubscription(),this.removeTimeSubscription()}showFilters(){const e=[{icon:"",label:"node.logs.filter-all"},{icon:"",label:"node.logs.filter-debug"},{icon:"",label:"node.logs.filter-info"},{icon:"",label:"node.logs.filter-warning"},{icon:"",label:"node.logs.filter-error"},{icon:"",label:"node.logs.filter-faltal"},{icon:"",label:"node.logs.filter-panic"}],i=[ln.Unknown,ln.DebugLevel,ln.InfoLevel,ln.WarnLevel,ln.ErrorLevel,ln.FatalLevel,ln.PanicLevel];for(let o=0;o<=i.length;o++)this.currentMinimumLevel===i[o]&&(e[o].icon="check");oo.openDialog(this.dialog,e,"node.logs.filter-title").afterClosed().subscribe(o=>{this.currentMinimumLevel=i[o-1],this.filter()})}loadData(e){this.removeSubscription(),this.loading=!0,this.subscription=ae(1).pipe(ii(e),Et(()=>this.nodeService.getRuntimeLogs(ke.getCurrentNodeKey()))).subscribe(i=>this.onLogsReceived(i),i=>this.onLogsError(i))}removeSubscription(){this.subscription&&this.subscription.unsubscribe()}removeTimeSubscription(){this.timeUpdateSubscription&&this.timeUpdateSubscription.unsubscribe()}onLogsReceived(e){let i=0;this.totalLogs=e.length,this.hasMoreLogMessages=this.totalLogs-this.maxElementsPerPage>0,e.forEach(o=>{const r=new Uve;r.time=o.time,r._module=o._module,r.msg=o.msg,r.func=o.func;const s=o.level?o.level.toLowerCase():"";if(r.level=s.includes("panic")?ln.PanicLevel:s.includes("fatal")?ln.FatalLevel:s.includes("error")?ln.ErrorLevel:s.includes("warn")?ln.WarnLevel:s.includes("info")?ln.InfoLevel:s.includes("debug")?ln.DebugLevel:s.includes("trace")?ln.TraceLevel:ln.Unknown,o.current_backoff){const l=Math.floor(o.current_backoff/1e9),c=Math.floor(l/60),u=Math.floor(l%60);r.extra.push(c?{name:"current_backoff",value:c+"m"+u+"s"}:{name:"current_backoff",value:u+"s"})}o.error&&r.extra.push({name:"error",value:o.error});const a=new Set;a.add("time"),a.add("_module"),a.add("msg"),a.add("func"),a.add("level"),a.add("current_backoff"),a.add("error"),a.add("log_line");for(const l in o)a.has(l)||r.extra.push({name:l,value:o[l]});this.totalLogs-i<=this.maxElementsPerPage&&this.logEntries.push(r),i+=1}),this.loading=!1,this.LoadingMoment=Date.now(),this.startUpdatingTime(),this.filter()}filter(){this.filteredLogEntries=[];const e=this.levelDetails.get(this.currentMinimumLevel).importance;this.logEntries.forEach(i=>{const o=this.levelDetails.get(i.level).importance;e<=o&&this.filteredLogEntries.push(i)}),setTimeout(()=>{this.content.nativeElement.scrollTop=this.content.nativeElement.scrollHeight})}startUpdatingTime(){this.elapsedTime=lv.getElapsedTime(Math.floor((Date.now()-this.LoadingMoment)/1e3)),this.removeTimeSubscription(),this.timeUpdateSubscription=Ul(5e3,5e3).subscribe(()=>this.ngZone.run(()=>{this.elapsedTime=lv.getElapsedTime(Math.floor((Date.now()-this.LoadingMoment)/1e3))}))}getFullLogsUrl(){return window.location.origin+"/api/visors/"+ke.getCurrentNodeKey()+"/runtime-logs"}onLogsError(e){e=Je(e),this.shouldShowError&&(this.snackbarService.showError("common.loading-error",null,!0,e),this.shouldShowError=!1),this.loadData(ze.connectionRetryDelay)}static{this.\u0275fac=function(i){return new(i||t)(P(It),P(Sr),P(bt),P(ge),P(kt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-node-logs"]],viewQuery:function(i,o){if(1&i&&rt(Sve,5),2&i){let r;ue(r=he())&&(o.content=r.first)}},standalone:!1,decls:13,vars:14,consts:[["content",""],[3,"headline","includeVerticalMargins","includeScrollableArea","dialog"],[1,"top-dialog-button"],[1,"log-entry"],[1,"log-empty-msg"],[3,"showWhite"],[1,"update-button","subtle-transparent-button",3,"click"],[1,"update-time"],[1,"top-dialog-button",3,"click"],[1,"top-dialog-button-content"],[1,"actual-value"],[1,"small"],[1,"top-dialog-button-margin"],["target","_blank",1,"view-raw-link",3,"href"],[1,"transparent"],[1,"module-color"],[1,"extra-data-color"],[1,"icon",3,"inline"]],template:function(i,o){1&i&&(f(0,"app-dialog",1),b(1,"translate"),S(2,Tve,11,7,"div",2),f(3,"mat-dialog-content",null,0),S(5,Mve,4,7,"div",3),S(6,Ave,2,0),S(7,Fve,4,3,"div",3),S(8,Lve,3,3,"div",4),S(9,Bve,3,3,"div",4),S(10,Vve,1,1,"app-loading-indicator",5),f(11,"div",6),L("click",function(){return o.loadData(0)}),S(12,jve,5,7,"div",7),h()()()),2&i&&(v("headline",y(1,12,"node.logs.title"))("includeVerticalMargins",!1)("includeScrollableArea",!1)("dialog",o.dialogRef),d(2),k(!o.loading&&o.logEntries&&o.logEntries.length>0?2:-1),d(3),k(!o.loading&&o.hasMoreLogMessages?5:-1),d(),k(o.loading?-1:6),d(),k(!o.loading&&o.logEntries&&o.logEntries.length>0?7:-1),d(),k(o.loading||o.logEntries&&0!==o.logEntries.length?-1:8),d(),k(!o.loading&&o.logEntries&&o.logEntries.length>0&&o.filteredLogEntries.length<1?9:-1),d(),k(o.loading?10:-1),d(2),k(o.loading?-1:12))},dependencies:[Kd,lt,Kt,vr,Se],styles:[".top-dialog-button[_ngcontent-%COMP%]{color:#777!important}.top-dialog-button[_ngcontent-%COMP%] .top-dialog-button-content[_ngcontent-%COMP%]{text-align:center}.top-dialog-button[_ngcontent-%COMP%] .top-dialog-button-content[_ngcontent-%COMP%] .actual-value[_ngcontent-%COMP%]{color:#202226}.top-dialog-button[_ngcontent-%COMP%] .top-dialog-button-content[_ngcontent-%COMP%] .small[_ngcontent-%COMP%]{font-size:.6rem}.log-entry[_ngcontent-%COMP%]{margin-top:15px;word-break:break-word}.log-entry[_ngcontent-%COMP%] .transparent[_ngcontent-%COMP%]{color:#999}.log-entry[_ngcontent-%COMP%]:first-of-type{margin-top:0}.log-entry[_ngcontent-%COMP%]:last-of-type{margin-bottom:24px}.log-empty-msg[_ngcontent-%COMP%]{text-align:center}.view-raw-link[_ngcontent-%COMP%]{color:#215f9e}.update-button[_ngcontent-%COMP%]{display:flex;justify-content:center;cursor:pointer}.update-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:5px;margin-right:5px}.update-button[_ngcontent-%COMP%] .update-time[_ngcontent-%COMP%]{text-align:center;font-size:.7rem;color:#202226;margin:0 5px}.panic-level-color[_ngcontent-%COMP%], .fatal-level-color[_ngcontent-%COMP%]{color:red}.error-level-color[_ngcontent-%COMP%]{color:#d10000}.warning-level-color[_ngcontent-%COMP%]{color:#e27505}.info-level-color[_ngcontent-%COMP%]{color:#0d9519}.debug-level-color[_ngcontent-%COMP%]{color:#0065ff}.trace-level-color[_ngcontent-%COMP%]{color:#468cf5}.unknown-level-color[_ngcontent-%COMP%]{color:#e27505}.module-color[_ngcontent-%COMP%]{color:#a119fc}.extra-data-color[_ngcontent-%COMP%]{color:#ad8021}"]})}}return t})();class p5{constructor(n,e){this.canBeUpdated=!1,this.canOpenTerminal=!1,this.options=[],this.dialog=n.get(kt),this.router=n.get(vt),this.snackbarService=n.get(bt),this.nodeService=n.get(Sr),this.storageService=n.get(zn),this.showingFullList=e,this.returnButtonText=e?"node.title":"nodes.title",this.updateOptions()}updateOptions(){this.options=[],this.canOpenTerminal&&this.options.push({name:"actions.menu.terminal",actionName:"terminal",icon:"laptop"}),this.options.push({name:"actions.menu.logs",actionName:"logs",icon:"subject"}),this.options.push({name:"actions.menu.proxy",actionName:"proxy",icon:"vpn_lock"}),this.options.push({name:"actions.menu.turn-off",actionName:"shutdown",icon:"power_settings_new"})}setCurrentNode(n){this.currentNode=n,this.canBeUpdated=!!Ye.checkIfTagIsUpdatable(n.buildTag),this.canOpenTerminal=Ye.checkIfTagCanOpenterminal(n.buildTag),this.updateOptions()}setCurrentNodeKey(n){this.currentNodeKey=n}performAction(n,e){"terminal"===n?this.terminal():"update"===n?this.update():"logs"===n?this.runtimeLogs():"proxy"===n?this.openProxySettings():"shutdown"===n?this.shutdown():null===n&&this.back()}dispose(){this.updateSubscription&&this.updateSubscription.unsubscribe(),this.shutdownSubscription&&this.shutdownSubscription.unsubscribe()}shutdown(){const n=Ye.createConfirmationDialog(this.dialog,"actions.turn-off.confirmation");n.componentInstance.operationAccepted.subscribe(()=>{n.componentInstance.showProcessing(),this.shutdownSubscription=this.nodeService.shutdown(this.currentNodeKey).subscribe(()=>{this.snackbarService.showDone("actions.turn-off.done"),n.close(),this.router.navigate(["nodes"])},e=>{e=Je(e),n.componentInstance.showDone("confirmation.error-header-text",e.translatableErrorMsg)})})}update(){const n=Ye.createConfirmationDialog(this.dialog,"actions.update.confirmation");n.componentInstance.operationAccepted.subscribe(()=>{const e=window.location.protocol,i=window.location.host.replace("localhost:4200","127.0.0.1:8000");window.open(e+"//"+i+"/pty/"+this.currentNodeKey+"?commands=update","_blank","noopener noreferrer"),n.close()})}terminal(){const n=window.location.protocol,e=window.location.host.replace("localhost:4200","127.0.0.1:8000");window.open(n+"//"+e+"/pty/"+this.currentNodeKey,"_blank","noopener noreferrer")}runtimeLogs(){zve.openDialog(this.dialog)}openProxySettings(){this.dialog.open(xve,{width:"550px",data:{nodeKey:this.currentNodeKey}})}back(){this.router.navigate(this.showingFullList?["nodes",this.currentNodeKey]:["nodes"])}}class $ve{constructor(){this.trafficData=new Wve}}class Wve{constructor(){this.totalSent=0,this.totalReceived=0,this.sentHistory=[],this.receivedHistory=[]}}class Gve{constructor(){this.lastEmitedData=new $ve,this.dataSubject=new _i(null),this.whenUpdateWasScheduled=0,this.stopRequestedDate=-1,this.consecutiveErrors=0}}let qve=(()=>{class t{constructor(e,i){this.storageService=e,this.nodeService=i,this.maxTrafficHistorySlots=10,this.expirationTime=6e4,this.nodesMap=new Map,this.storageService.getRefreshTimeObservable().subscribe(o=>{this.dataRefreshDelay=1e3*o,this.nodesMap.forEach(r=>{this.forceSpecificNodeRefresh(r.pk)})}),this.checkForExpired()}checkForExpired(){setInterval(()=>{try{this.nodesMap.forEach(e=>{this.finishIfExpired(e)})}catch{}},5e3)}startRequestingData(e){let i=this.nodesMap.get(e);return i?i.stopRequestedDate=-1:(i=new Gve,i.pk=e,this.nodesMap.set(e,i),this.startDataSubscription(0,i)),i.dataSubject.asObservable()}stopRequestingSpecificNode(e){const i=this.nodesMap.get(e);i&&(i.stopRequestedDate=Date.now())}startDataSubscription(e,i){i.updateSubscription&&i.updateSubscription.unsubscribe();let o=0;i.updateSubscription=ae(1).pipe(ii(e),ni(()=>{i.lastEmitedData.updating=!0,i.dataSubject.next(i.lastEmitedData)}),ii(120),ni(()=>{o=performance.now(),console.log("[HV-DIAG] fetching node data for",i.pk.substring(0,8)+"...")}),Et(()=>this.nodeService.getNode(i.pk))).subscribe(r=>{console.log("[HV-DIAG] fetch completed in",(performance.now()-o).toFixed(0),"ms for",i.pk.substring(0,8)+"..."),i.consecutiveErrors=0,this.updateTrafficData(r.transports,i.lastEmitedData.trafficData,i.whenUpdateWasScheduled);let s=this.calculateRemainingTime(i.whenUpdateWasScheduled);s<1e3&&(i.whenUpdateWasScheduled=Date.now(),s=this.dataRefreshDelay),i.lastEmitedData={data:r,error:null,momentOfLastCorrectUpdate:Date.now(),updating:!1,trafficData:i.lastEmitedData.trafficData},i.dataSubject.next(i.lastEmitedData),this.startDataSubscription(s,i)},r=>{if(r=Je(r),i.consecutiveErrors=(i.consecutiveErrors||0)+1,i.lastEmitedData={data:i.lastEmitedData.data,error:r,momentOfLastCorrectUpdate:i.lastEmitedData.momentOfLastCorrectUpdate,updating:!1,trafficData:i.lastEmitedData.trafficData},i.dataSubject.next(i.lastEmitedData),r.originalError&&400===r.originalError.status)i.dataSubject.complete(),i.updateSubscription.unsubscribe(),this.nodesMap.delete(i.pk);else{const a=Math.min(ze.connectionRetryDelay*Math.pow(2,i.consecutiveErrors-1),3e4);this.startDataSubscription(a,i)}})}calculateRemainingTime(e){if(e<1)return 0;let i=this.dataRefreshDelay-(Date.now()-e);return i<0&&(i=0),i}updateTrafficData(e,i,o){if(i.totalSent=0,i.totalReceived=0,e&&e.length>0&&(i.totalSent=e.reduce((r,s)=>r+s.sent,0),i.totalReceived=e.reduce((r,s)=>r+s.recv,0)),0===i.sentHistory.length)for(let r=0;rthis.maxTrafficHistorySlots&&(s=this.maxTrafficHistorySlots),0===s)i.sentHistory[i.sentHistory.length-1]=i.totalSent,i.receivedHistory[i.receivedHistory.length-1]=i.totalReceived;else for(let a=0;athis.maxTrafficHistorySlots&&(i.sentHistory.splice(0,i.sentHistory.length-this.maxTrafficHistorySlots),i.receivedHistory.splice(0,i.receivedHistory.length-this.maxTrafficHistorySlots))}}forceSpecificNodeRefresh(e){const i=this.nodesMap.get(e);i&&this.startDataSubscription(0,i)}finishIfExpired(e){e.stopRequestedDate>0&&Date.now()-e.stopRequestedDate>this.expirationTime&&(e.dataSubject.complete(),e.updateSubscription.unsubscribe(),this.nodesMap.delete(e.pk))}static{this.\u0275fac=function(i){return new(i||t)(le(zn),le(Sr))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const Kve=(t,n)=>({"main-area":t,"full-size-main-area":n}),Yve=t=>({"d-none":t});function Xve(t,n){if(1&t&&(rr(0),B(1,"app-node-info-content",9),Lo()),2&t){const e=C(2);d(),v("nodeInfo",e.node)("trafficData",e.trafficData)}}function Zve(t,n){if(1&t){const e=ce();rr(0),f(1,"div",2)(2,"div",3)(3,"app-top-bar",4),L("optionSelected",function(o){return z(e),$(C().performAction(o))})("refreshRequested",function(){return z(e),$(C().forceDataRefresh(!0))}),h()(),f(4,"div",3)(5,"div",5)(6,"div",6),B(7,"router-outlet"),h()(),f(8,"div",7),tt(9,Xve,2,2,"ng-container",8),h()()(),Lo()}if(2&t){const e=C();d(3),v("titleParts",e.titleParts)("tabsData",e.tabsData)("selectedTabIndex",e.selectedTabIndex)("secondsSinceLastUpdate",e.secondsSinceLastUpdate)("showLoading",e.updating)("showAlert",e.errorsUpdating)("refeshRate",e.storageService.getRefreshTime())("optionsData",e.nodeActionsHelper?e.nodeActionsHelper.options:null)("returnText",e.nodeActionsHelper?e.nodeActionsHelper.returnButtonText:""),d(2),v("ngClass",ft(12,Kve,!e.showingInfo&&!e.showingFullList,e.showingInfo||e.showingFullList)),d(3),v("ngClass",oe(15,Yve,e.showingInfo||e.showingFullList)),d(),v("ngIf",!e.showingInfo&&!e.showingFullList)}}function Qve(t,n){1&t&&(rr(0),B(1,"app-loading-indicator"),Lo())}function Jve(t,n){1&t&&(rr(0),f(1,"div",12)(2,"div")(3,"mat-icon",13),m(4,"error"),h(),m(5),b(6,"translate"),h()(),Lo()),2&t&&(d(3),v("inline",!0),d(2),I(" ",y(6,2,"node.not-found")," "))}function eye(t,n){if(1&t){const e=ce();rr(0),f(1,"div",12)(2,"div")(3,"mat-icon",13),m(4,"error"),h(),m(5),b(6,"translate"),B(7,"br"),f(8,"button",14),L("click",function(){return z(e),$(C(2).retryLoading())}),m(9),b(10,"translate"),h()()(),Lo()}2&t&&(d(3),v("inline",!0),d(2),I(" ",y(6,3,"node.error-load")," "),d(4),I(" ",y(10,5,"common.refresh")," "))}function tye(t,n){if(1&t){const e=ce();f(0,"div",10)(1,"div")(2,"app-top-bar",11),L("optionSelected",function(o){return z(e),$(C().performAction(o))}),h()(),tt(3,Qve,2,0,"ng-container",8)(4,Jve,7,4,"ng-container",8)(5,eye,11,7,"ng-container",8),h()}if(2&t){const e=C();d(2),v("titleParts",e.titleParts)("tabsData",e.tabsData)("selectedTabIndex",e.selectedTabIndex)("showUpdateButton",!1)("optionsData",e.nodeActionsHelper?e.nodeActionsHelper.options:null)("returnText",e.nodeActionsHelper?e.nodeActionsHelper.returnButtonText:""),d(),v("ngIf",!e.notFound&&!e.loadFailed),d(),v("ngIf",e.notFound),d(),v("ngIf",e.loadFailed)}}let ke=(()=>{class t extends Wn{static refreshCurrentDisplayedData(){t.currentInstanceInternal&&t.currentInstanceInternal.forceDataRefresh(!1)}static getCurrentNodeKey(){return t.currentNodeKey}static get currentNode(){return t.nodeSubject.asObservable()}static get currentTrafficData(){return t.trafficDataSubject.asObservable()}constructor(e,i,o,r,s,a,l,c){super(),this.storageService=e,this.singleNodeDataService=i,this.route=o,this.ngZone=r,this.snackbarService=s,this.injector=a,this.cdr=l,this.persistentDataResponseKey="serv-dat-response",this.nodeLoaded=!1,this.notFound=!1,this.titleParts=[],this.tabsData=[],this.selectedTabIndex=-1,this.showingInfo=!1,this.showingFullList=!1,this.initialRouteEventFired=!1,this.secondsSinceLastUpdate=0,this.lastUpdate=Date.now(),this.updating=!1,this.errorsUpdating=!1,this.lastUpdateRequestedManually=!1,this.loadFailed=!1,this.consecutiveLoadErrors=0,this.instanceId="",t.nodeSubject=new no(1),t.trafficDataSubject=new no(1),t.currentInstanceInternal=this,this.instanceId=Math.random().toString(36).substring(7),console.log("[HV-DIAG] NodeComponent constructor, instance:",this.instanceId),this.navigationsSubscription=c.events.subscribe(u=>{u.urlAfterRedirects&&(this.lastUrl=u.urlAfterRedirects,this.processRouteUpdate(),this.initialRouteEventFired=!0)})}ngOnInit(){return this.ngZone.runOutsideAngular(()=>{this.updateTimeSubscription=Ul(5e3,5e3).subscribe(()=>this.ngZone.run(()=>{this.secondsSinceLastUpdate=Math.floor((Date.now()-this.lastUpdate)/1e3)}))}),this.initSubscription=ae(0).pipe(ii(500)).subscribe(()=>{this.initialRouteEventFired||(this.lastUrl=window.location.href,this.processRouteUpdate())}),super.ngOnInit()}processRouteUpdate(){console.log("[HV-DIAG] processRouteUpdate called, instance id:",this.instanceId),t.currentNodeKey=this.route.snapshot.params.key,this.nodeActionsHelper&&this.nodeActionsHelper.setCurrentNodeKey(t.currentNodeKey),this.updateTabBar(),this.navigationsSubscription.unsubscribe(),this.startGettingData(!0)}updateTabBar(){if(this.lastUrl&&(this.lastUrl.includes("/info")||this.lastUrl.includes("/routing")||this.lastUrl.includes("/rewards")||this.lastUrl.includes("/skynet")||this.lastUrl.includes("/apps")&&!this.lastUrl.includes("/apps-list")))this.titleParts=["nodes.title","node.title"],this.tabsData=[{icon:"info",label:"node.tabs.info",onlyIfLessThanLg:!0,linkParts:t.currentNodeKey?["/nodes",t.currentNodeKey,"info"]:null},{icon:"shuffle",label:"node.tabs.routing",linkParts:t.currentNodeKey?["/nodes",t.currentNodeKey,"routing"]:null},{icon:"apps",label:"node.tabs.apps",linkParts:t.currentNodeKey?["/nodes",t.currentNodeKey,"apps"]:null},{icon:"monetization_on",label:"node.tabs.rewards",linkParts:t.currentNodeKey?["/nodes",t.currentNodeKey,"rewards"]:null},{icon:"public",label:"node.tabs.skynet",linkParts:t.currentNodeKey?["/nodes",t.currentNodeKey,"skynet"]:null}],this.selectedTabIndex=1,this.showingInfo=!1,this.lastUrl.includes("/info")&&(this.selectedTabIndex=0,this.showingInfo=!0),this.lastUrl.includes("/apps")&&(this.selectedTabIndex=2),this.lastUrl.includes("/rewards")&&(this.selectedTabIndex=3),this.lastUrl.includes("/skynet")&&(this.selectedTabIndex=4),this.showingFullList=!1,this.nodeActionsHelper=new p5(this.injector,this.showingFullList),this.nodeActionsHelper.setCurrentNodeKey(t.currentNodeKey),this.node&&this.nodeActionsHelper.setCurrentNode(this.node);else if(this.lastUrl&&(this.lastUrl.includes("/transports")||this.lastUrl.includes("/routes")||this.lastUrl.includes("/apps-list"))){this.showingFullList=!0,this.showingInfo=!1,this.nodeActionsHelper=new p5(this.injector,this.showingFullList),this.nodeActionsHelper.setCurrentNodeKey(t.currentNodeKey),this.node&&this.nodeActionsHelper.setCurrentNode(this.node);let e="transports";this.lastUrl.includes("/routes")?e="routes":this.lastUrl.includes("/apps-list")&&(e="apps.apps-list"),this.titleParts=["nodes.title","node.title",e+".title"],this.tabsData=[{icon:"view_headline",label:e+".list-title",linkParts:[]}],this.selectedTabIndex=0}else this.titleParts=[],this.tabsData=[]}performAction(e){this.nodeActionsHelper.performAction(e,t.currentNodeKey)}forceDataRefresh(e=!1){e&&(this.lastUpdateRequestedManually=!0),this.singleNodeDataService.forceSpecificNodeRefresh(t.currentNodeKey)}retryLoading(){this.loadFailed=!1,this.consecutiveLoadErrors=0,this.startGettingData(!1)}startGettingData(e){const i=e?this.getLocalValue(this.persistentDataResponseKey):null;let o=this.singleNodeDataService.startRequestingData(t.currentNodeKey);i&&(o=ae(JSON.parse(i.value))),this.dataSubscription=o.subscribe(r=>{if(performance.now(),console.log("[HV-DIAG] data event received",{updating:r?.updating,hasData:!!r?.data,hasError:!!r?.error,transports:r?.data?.transports?.length??"n/a",routes:r?.data?.routes?.length??"n/a",apps:r?.data?.apps?.length??"n/a"}),!i){const a=performance.now();this.saveLocalValue(this.persistentDataResponseKey,JSON.stringify(r)),console.log("[HV-DIAG] saveLocalValue took",(performance.now()-a).toFixed(1),"ms")}if(this.updating=!r||r.updating,console.log("[HV-DIAG] updating:",this.updating,"node set:",!!this.node,"notFound:",this.notFound,"loadFailed:",this.loadFailed),r&&!r.updating)if(r.data&&!r.error){const a=performance.now();this.ngZone.run(()=>{this.node=r.data,this.trafficData=r.trafficData,this.nodeLoaded=!0}),console.log("[HV-DIAG] node assigned, instance:",this.instanceId,"nodeLoaded:",this.nodeLoaded,"node.localPk:",this.node?.localPk?.substring(0,8),"transports:",this.node?.transports?.length,"routes:",this.node?.routes?.length);try{t.nodeSubject.next(this.node)}catch(l){console.error("[HV-DIAG] ERROR in nodeSubject.next:",l)}t.trafficDataSubject.next(this.trafficData),this.nodeActionsHelper&&this.nodeActionsHelper.setCurrentNode(this.node),this.snackbarService.closeCurrentIfTemporaryError(),this.lastUpdate=r.momentOfLastCorrectUpdate,this.secondsSinceLastUpdate=Math.floor((Date.now()-r.momentOfLastCorrectUpdate)/1e3),this.errorsUpdating=!1,this.consecutiveLoadErrors=0,this.loadFailed=!1,Kr.currentInstance.hideDataProblemMsg(),console.log("[HV-DIAG] data processing took",(performance.now()-a).toFixed(1),"ms"),console.log("[HV-DIAG] AFTER ASSIGNMENT: this.node is",this.node?"SET":"NULL","this.notFound:",this.notFound,"this.loadFailed:",this.loadFailed),this.cdr.detectChanges(),this.lastUpdateRequestedManually&&(this.snackbarService.showDone("common.refreshed",null),this.lastUpdateRequestedManually=!1)}else if(r.error){if(r.error.originalError&&400===r.error.originalError.status)return void(this.notFound=!0);if(this.consecutiveLoadErrors++,!this.node&&this.consecutiveLoadErrors>=3)return this.loadFailed=!0,this.singleNodeDataService.stopRequestingSpecificNode(t.currentNodeKey),this.snackbarService.showError("common.loading-error",null,!0,r.error),void Kr.currentInstance.showDataProblemMsg();this.errorsUpdating||this.snackbarService.showError(this.node?"node.error-load":"common.loading-error",null,!0,r.error),this.errorsUpdating=!0,Kr.currentInstance.showDataProblemMsg()}i&&this.startGettingData(!1)})}ngOnDestroy(){console.log("[HV-DIAG] ngOnDestroy, instance:",this.instanceId),this.singleNodeDataService.stopRequestingSpecificNode(t.currentNodeKey),this.dataSubscription.unsubscribe(),this.updateTimeSubscription.unsubscribe(),this.navigationsSubscription.unsubscribe(),this.initSubscription.unsubscribe(),t.currentInstanceInternal=void 0,t.currentNodeKey=void 0,t.nodeSubject.complete(),t.nodeSubject=void 0,t.trafficDataSubject.complete(),t.trafficDataSubject=void 0,this.nodeActionsHelper.dispose()}static{this.\u0275fac=function(i){return new(i||t)(P(zn),P(qve),P(Ei),P(ge),P(bt),P(Be),P(Pn),P(vt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-node"]],standalone:!1,features:[be],decls:3,vars:2,consts:[["loadingBlock",""],[4,"ngIf","ngIfElse"],[1,"row"],[1,"col-12"],[3,"optionSelected","refreshRequested","titleParts","tabsData","selectedTabIndex","secondsSinceLastUpdate","showLoading","showAlert","refeshRate","optionsData","returnText"],[3,"ngClass"],[1,"d-flex","flex-column","h-100"],[1,"right-bar",3,"ngClass"],[4,"ngIf"],[3,"nodeInfo","trafficData"],[1,"d-flex","flex-column","h-100","w-100"],[3,"optionSelected","titleParts","tabsData","selectedTabIndex","showUpdateButton","optionsData","returnText"],[1,"w-100","h-100","d-flex","not-found-label"],[3,"inline"],["mat-raised-button","","color","primary",2,"margin-top","16px",3,"click"]],template:function(i,o){if(1&i&&tt(0,Zve,10,17,"ng-container",1)(1,tye,6,9,"ng-template",null,0,El),2&i){const r=Vn(2);v("ngIf",o.nodeLoaded)("ngIfElse",r)}},styles:[".not-found-label[_ngcontent-%COMP%]{align-items:center;justify-content:center;font-size:1rem;position:relative}.not-found-label[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:5px;font-size:22px;opacity:.5;margin-right:3px}.full-size-main-area[_ngcontent-%COMP%], .main-area[_ngcontent-%COMP%]{width:100%}@media(min-width:992px){.main-area[_ngcontent-%COMP%]{width:73%;padding-right:20px;float:left}}.right-bar[_ngcontent-%COMP%]{width:27%;float:right;display:none}@media(min-width:992px){.right-bar[_ngcontent-%COMP%]{display:block;width:27%;float:right}}"]})}}return t})();function nye(t,n){if(1&t&&(f(0,"mat-option",9),m(1),b(2,"translate"),h()),2&t){const e=n.$implicit;v("value",Wt(e)),d(),Hn(" ",e," ",y(2,4,"settings.seconds")," ")}}let iye=(()=>{class t{constructor(e,i,o){this.formBuilder=e,this.storageService=i,this.snackbarService=o,this.timesList=["3","5","10","15","30","60","90","150","300"]}ngOnInit(){this.form=this.formBuilder.group({refreshRate:[this.storageService.getRefreshTime().toString()]}),this.subscription=this.form.get("refreshRate").valueChanges.subscribe(e=>{this.storageService.setRefreshTime(e),this.snackbarService.showDone("settings.refresh-rate-confirmation")})}ngOnDestroy(){this.subscription.unsubscribe()}static{this.\u0275fac=function(i){return new(i||t)(P(pi),P(zn),P(bt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-refresh-rate"]],standalone:!1,decls:15,vars:8,consts:[[1,"rounded-elevated-box"],[1,"box-internal-container","overflow"],[1,"white-form-help-icon-container"],[1,"help-icon",3,"inline","matTooltip"],[3,"formGroup"],[1,"white-form-field"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","refreshRate"],[3,"value"]],template:function(i,o){1&i&&(f(0,"div",0)(1,"div",1)(2,"div",2)(3,"mat-icon",3),b(4,"translate"),m(5," help "),h()(),f(6,"form",4)(7,"mat-form-field",5)(8,"div",6)(9,"label",7),m(10),b(11,"translate"),h(),f(12,"mat-select",8),we(13,nye,3,6,"mat-option",9,Re),h()()()()()()),2&i&&(d(3),v("inline",!0)("matTooltip",y(4,4,"settings.refresh-rate-help")),d(3),v("formGroup",o.form),d(4),O(y(11,6,"settings.refresh-rate")),d(3),xe(o.timesList))},dependencies:[Cn,sn,yn,Xt,fn,wn,lt,pn,oc,Is,Se],styles:[".help-icon[_ngcontent-%COMP%]{display:inline}mat-form-field[_ngcontent-%COMP%]{margin-right:32px}mat-form-field[_ngcontent-%COMP%] .mat-mdc-form-field-bottom-align{margin-bottom:0!important}"]})}}return t})();const oye=t=>({number:t});let cv=(()=>{class t{constructor(){this.numberOfElements=0,this.linkParts=[""],this.queryParams={}}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=se({type:t,selectors:[["app-view-all-link"]],inputs:{numberOfElements:"numberOfElements",linkParts:"linkParts",queryParams:"queryParams"},standalone:!1,decls:6,vars:9,consts:[[1,"main-container"],[3,"routerLink","queryParams"],[3,"inline"]],template:function(i,o){1&i&&(f(0,"div",0)(1,"a",1),m(2),b(3,"translate"),f(4,"mat-icon",2),m(5,"chevron_right"),h()()()),2&i&&(d(),v("routerLink",o.linkParts)("queryParams",o.queryParams),d(),I(" ",Ee(3,4,"view-all-link.label",oe(7,oye,o.numberOfElements))," "),d(2),v("inline",!0))},dependencies:[wa,lt,Se],styles:[".main-container[_ngcontent-%COMP%]{padding-top:20px;margin-bottom:4px;text-align:right;font-size:.875rem}@media(max-width:767px),(min-width:992px)and (max-width:1299px){.main-container[_ngcontent-%COMP%]{margin:0;padding:16px}}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:#f8f9f9;text-decoration:none}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:7px}"]})}}return t})();const rye=t=>({"paginator-icons-fixer":t}),kk=()=>["/settings","labels"],sye=(t,n)=>({"small-node-list-margins":t,"full-node-list-margins":n}),aye=t=>({"d-lg-none d-xl-table":t}),lye=t=>({"d-lg-table d-xl-none":t});function cye(t,n){1&t&&(f(0,"span",3),m(1),b(2,"translate"),f(3,"mat-icon",14),b(4,"translate"),m(5,"help"),h()()),2&t&&(d(),I(" ",y(2,3,"labels.title")," "),d(2),v("inline",!0)("matTooltip",y(4,5,"labels.info")))}function dye(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,C().$implicit.translatableValue)," ")}function uye(t,n){1&t&&m(0),2&t&&I(" ",C().$implicit.value," ")}function hye(t,n){if(1&t&&(f(0,"div",16)(1,"span"),m(2),b(3,"translate"),h(),S(4,dye,2,3),S(5,uye,1,1),h()),2&t){const e=n.$implicit;d(2),I("",y(3,3,e.filterName),": "),d(2),k(e.translatableValue?4:-1),d(),k(e.value?5:-1)}}function fye(t,n){if(1&t){const e=ce();f(0,"div",15),L("click",function(){return z(e),$(C().dataFilterer.removeFilters())}),we(1,hye,6,5,"div",16,Re),f(3,"div",17),m(4),b(5,"translate"),h()()}if(2&t){const e=C();d(),xe(e.dataFilterer.currentFiltersTexts),d(3),O(y(5,1,"filters.press-to-remove"))}}function pye(t,n){if(1&t){const e=ce();f(0,"mat-icon",18),b(1,"translate"),L("click",function(){return z(e),$(C().dataFilterer.changeFilters())}),m(2,"filter_list"),h()}2&t&&v("inline",!0)("matTooltip",y(1,2,"filters.filter-action"))}function mye(t,n){if(1&t&&(f(0,"mat-icon",8),m(1,"more_horiz"),h()),2&t){C();const e=Vn(9);v("inline",!0)("matMenuTriggerFor",e)}}function gye(t,n){if(1&t&&B(0,"app-paginator",12),2&t){const e=C();v("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",Mt(4,kk))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function _ye(t,n){if(1&t&&(f(0,"mat-icon",22),m(1),h()),2&t){const e=C(2);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function bye(t,n){if(1&t&&(f(0,"mat-icon",22),m(1),h()),2&t){const e=C(2);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function vye(t,n){if(1&t&&(f(0,"mat-icon",22),m(1),h()),2&t){const e=C(2);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function yye(t,n){if(1&t){const e=ce();f(0,"tr")(1,"td",30)(2,"mat-checkbox",31),L("change",function(){const o=z(e).$implicit;return $(C(2).changeSelection(o))}),h()(),f(3,"td"),m(4),h(),f(5,"td"),m(6),h(),f(7,"td"),m(8),b(9,"translate"),h(),f(10,"td",23)(11,"button",32),b(12,"translate"),L("click",function(){const o=z(e).$implicit;return $(C(2).delete(o.id))}),f(13,"mat-icon",22),m(14,"close"),h()()()()}if(2&t){const e=n.$implicit,i=C(2);d(2),v("checked",i.selections.get(e.id)),d(2),I(" ",e.label," "),d(2),I(" ",e.id," "),d(2),Hn(" ",i.getLabelTypeIdentification(e)[0]," - ",y(9,7,i.getLabelTypeIdentification(e)[1])," "),d(3),v("matTooltip",y(12,9,"labels.delete")),d(2),v("inline",!0)}}function Cye(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"tables.label")," ")}function wye(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"tables.inverted-order")," ")}function xye(t,n){if(1&t){const e=ce();f(0,"tr")(1,"td")(2,"div",26)(3,"div",33)(4,"mat-checkbox",31),L("change",function(){const o=z(e).$implicit;return $(C(2).changeSelection(o))}),h()(),f(5,"div",27)(6,"div",34)(7,"span",2),m(8),b(9,"translate"),h(),m(10),h(),f(11,"div",35)(12,"span",2),m(13),b(14,"translate"),h(),m(15),h(),f(16,"div",34)(17,"span",2),m(18),b(19,"translate"),h(),m(20),b(21,"translate"),h()(),B(22,"div",36),f(23,"div",28)(24,"button",37),b(25,"translate"),L("click",function(o){const r=z(e).$implicit,s=C(2);return o.stopPropagation(),$(s.showOptionsDialog(r))}),f(26,"mat-icon"),m(27),h()()()()()()}if(2&t){const e=n.$implicit,i=C(2);d(4),v("checked",i.selections.get(e.id)),d(4),O(y(9,10,"labels.label")),d(2),I(": ",e.label," "),d(3),O(y(14,12,"labels.id")),d(2),I(": ",e.id," "),d(3),O(y(19,14,"labels.type")),d(2),Hn(": ",i.getLabelTypeIdentification(e)[0]," - ",y(21,16,i.getLabelTypeIdentification(e)[1])," "),d(4),v("matTooltip",y(25,18,"common.options")),d(3),O("add")}}function Sye(t,n){if(1&t&&B(0,"app-view-all-link",29),2&t){const e=C(2);v("numberOfElements",e.filteredLabels.length)("linkParts",Mt(3,kk))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function kye(t,n){if(1&t){const e=ce();f(0,"div",13)(1,"div",19)(2,"table",20)(3,"tr"),B(4,"th"),f(5,"th",21),L("click",function(){z(e);const o=C();return $(o.dataSorter.changeSortingOrder(o.labelSortData))}),m(6),b(7,"translate"),S(8,_ye,2,2,"mat-icon",22),h(),f(9,"th",21),L("click",function(){z(e);const o=C();return $(o.dataSorter.changeSortingOrder(o.idSortData))}),m(10),b(11,"translate"),S(12,bye,2,2,"mat-icon",22),h(),f(13,"th",21),L("click",function(){z(e);const o=C();return $(o.dataSorter.changeSortingOrder(o.typeSortData))}),m(14),b(15,"translate"),S(16,vye,2,2,"mat-icon",22),h(),B(17,"th",23),h(),we(18,yye,15,11,"tr",null,Re),h(),f(20,"table",24)(21,"tr",25),L("click",function(){return z(e),$(C().dataSorter.openSortingOrderModal())}),f(22,"td")(23,"div",26)(24,"div",27)(25,"div",2),m(26),b(27,"translate"),h(),f(28,"div"),m(29),b(30,"translate"),S(31,Cye,2,3),S(32,wye,2,3),h()(),f(33,"div",28)(34,"mat-icon",22),m(35,"keyboard_arrow_down"),h()()()()(),we(36,xye,28,20,"tr",null,Re),h(),S(38,Sye,1,4,"app-view-all-link",29),h()()}if(2&t){const e=C();d(),v("ngClass",ft(25,sye,e.showShortList_,!e.showShortList_)),d(),v("ngClass",oe(28,aye,e.showShortList_)),d(4),I(" ",y(7,15,"labels.label")," "),d(2),k(e.dataSorter.currentSortingColumn===e.labelSortData?8:-1),d(2),I(" ",y(11,17,"labels.id")," "),d(2),k(e.dataSorter.currentSortingColumn===e.idSortData?12:-1),d(2),I(" ",y(15,19,"labels.type")," "),d(2),k(e.dataSorter.currentSortingColumn===e.typeSortData?16:-1),d(2),xe(e.dataSource),d(2),v("ngClass",oe(30,lye,e.showShortList_)),d(6),O(y(27,21,"tables.sorting-title")),d(3),I("",y(30,23,e.dataSorter.currentSortingColumn.label)," "),d(2),k(e.dataSorter.currentlySortingByLabel?31:-1),d(),k(e.dataSorter.sortingInReverseOrder?32:-1),d(2),v("inline",!0),d(2),xe(e.dataSource),d(2),k(e.showShortList_&&e.numberOfPages>1?38:-1)}}function Dye(t,n){1&t&&(f(0,"span",40),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"labels.empty")))}function Tye(t,n){1&t&&(f(0,"span",40),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"labels.empty-with-filter")))}function Mye(t,n){if(1&t&&(f(0,"div",13)(1,"div",38)(2,"mat-icon",39),m(3,"warning"),h(),S(4,Dye,3,3,"span",40),S(5,Tye,3,3,"span",40),h()()),2&t){const e=C();d(2),v("inline",!0),d(2),k(0===e.allLabels.length?4:-1),d(),k(0!==e.allLabels.length?5:-1)}}function Eye(t,n){if(1&t&&B(0,"app-paginator",12),2&t){const e=C();v("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",Mt(4,kk))("queryParams",e.dataFilterer.currentUrlQueryParams)}}let m5=(()=>{class t{set showShortList(e){this.showShortList_=e,this.dataSorter.setData(this.filteredLabels)}constructor(e,i,o,r,s,a){this.dialog=e,this.route=i,this.router=o,this.snackbarService=r,this.translateService=s,this.storageService=a,this.listId="ll",this.labelSortData=new Pt(["label"],"labels.label",ct.Text),this.idSortData=new Pt(["id"],"labels.id",ct.Text),this.typeSortData=new Pt(["identifiedElementType_sort"],"labels.type",ct.Text),this.selections=new Map,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.filterProperties=[{filterName:"labels.filter-dialog.label",keyNameInElementsArray:"label",type:mn.TextInput,maxlength:100},{filterName:"labels.filter-dialog.id",keyNameInElementsArray:"id",type:mn.TextInput,maxlength:66},{filterName:"labels.filter-dialog.type",keyNameInElementsArray:"identifiedElementType",type:mn.Select,printableLabelsForValues:[{value:"",label:"labels.filter-dialog.type-options.any"},{value:io.Node,label:"labels.filter-dialog.type-options.visor"},{value:io.DmsgServer,label:"labels.filter-dialog.type-options.dmsg-server"},{value:io.Transport,label:"labels.filter-dialog.type-options.transport"}]}],this.dataSorter=new ru(this.dialog,this.translateService,this.storageService,[this.labelSortData,this.idSortData,this.typeSortData],0,this.listId),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataFilterer=new su(this.dialog,this.route,this.router,this.filterProperties,this.listId),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(c=>{this.filteredLabels=c,this.dataSorter.setData(this.filteredLabels)}),this.loadData(),this.navigationsSubscription=this.route.paramMap.subscribe(c=>{if(c.has("page")){let u=Number.parseInt(c.get("page"),10);(isNaN(u)||u<1)&&(u=1),this.currentPageInUrl=u,this.recalculateElementsToShow()}})}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.dataSortedSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFiltererSubscription.unsubscribe(),this.dataFilterer.dispose()}loadData(){this.allLabels=this.storageService.getSavedLabels(),this.allLabels.forEach(e=>{e.identifiedElementType_sort=this.getLabelTypeIdentification(e)[0]}),this.dataFilterer.setData(this.allLabels)}getLabelTypeIdentification(e){return e.identifiedElementType===io.Node?["1","labels.filter-dialog.type-options.visor"]:e.identifiedElementType===io.DmsgServer?["2","labels.filter-dialog.type-options.dmsg-server"]:e.identifiedElementType===io.Transport?["3","labels.filter-dialog.type-options.transport"]:void 0}changeSelection(e){this.selections.get(e.id)?this.selections.set(e.id,!1):this.selections.set(e.id,!0)}hasSelectedElements(){if(!this.selections)return!1;let e=!1;return this.selections.forEach(i=>{i&&(e=!0)}),e}changeAllSelections(e){this.selections.forEach((i,o)=>{this.selections.set(o,e)})}deleteSelected(){const e=Ye.createConfirmationDialog(this.dialog,"labels.delete-selected-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.close(),this.selections.forEach((i,o)=>{i&&this.storageService.saveLabel(o,"",null)}),this.snackbarService.showDone("labels.deleted"),this.loadData()})}showOptionsDialog(e){oo.openDialog(this.dialog,[{icon:"close",label:"labels.delete"}],"common.options").afterClosed().subscribe(o=>{1===o&&this.delete(e.id)})}delete(e){const i=Ye.createConfirmationDialog(this.dialog,"labels.delete-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.close(),this.storageService.saveLabel(e,"",null),this.snackbarService.showDone("labels.deleted"),this.loadData()})}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredLabels){const e=this.showShortList_?ze.maxShortListElements:ze.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredLabels.length/e),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const i=e*(this.currentPage-1);this.labelsToShow=this.filteredLabels.slice(i,i+e);const r=new Map;this.labelsToShow.forEach(a=>{r.set(a.id,!0),this.selections.has(a.id)||this.selections.set(a.id,!1)});const s=[];this.selections.forEach((a,l)=>{r.has(l)||s.push(l)}),s.forEach(a=>{this.selections.delete(a)})}else this.labelsToShow=null,this.selections=new Map;this.dataSource=this.labelsToShow}static{this.\u0275fac=function(i){return new(i||t)(P(kt),P(Ei),P(vt),P(bt),P(zo),P(zn))}}static{this.\u0275cmp=se({type:t,selectors:[["app-label-list"]],inputs:{showShortList:"showShortList"},standalone:!1,decls:23,vars:23,consts:[["selectionMenu","matMenu"],[1,"generic-title-container","mt-4.5","d-flex",3,"ngClass"],[1,"title"],[1,"uppercase"],[1,"filter-label","subtle-transparent-button","cursor-pointer"],[1,"options"],[1,"options-container"],[1,"small-icon",3,"inline","matTooltip"],[3,"inline","matMenuTriggerFor"],[3,"overlapTrigger"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"click","disabled"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"rounded-elevated-box","mt-3"],[1,"help","d-none","d-md-inline",3,"inline","matTooltip"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],[1,"item"],[1,"transparent-50"],[1,"small-icon",3,"click","inline","matTooltip"],[1,"box-internal-container","overflow",3,"ngClass"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table",3,"ngClass"],[1,"sortable-column",3,"click"],[3,"inline"],[1,"actions"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none",3,"ngClass"],[1,"selectable",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],[3,"numberOfElements","linkParts","queryParams"],[1,"selection-col"],[3,"change","checked"],["mat-button","",1,"action-button","transparent-button",3,"click","matTooltip"],[1,"check-part"],[1,"list-row"],[1,"list-row","long-content"],[1,"margin-part"],["mat-icon-button","",1,"transparent-button",3,"click","matTooltip"],[1,"box-internal-container"],[1,"alert-icon",3,"inline"],[1,"font-sm"]],template:function(i,o){1&i&&(f(0,"div",1)(1,"div",2),S(2,cye,6,7,"span",3),S(3,fye,6,3,"div",4),h(),f(4,"div",5)(5,"div",6),S(6,pye,3,4,"mat-icon",7),S(7,mye,2,2,"mat-icon",8),f(8,"mat-menu",9,0)(10,"div",10),L("click",function(){return o.changeAllSelections(!0)}),m(11),b(12,"translate"),h(),f(13,"div",10),L("click",function(){return o.changeAllSelections(!1)}),m(14),b(15,"translate"),h(),f(16,"div",11),L("click",function(){return o.deleteSelected()}),m(17),b(18,"translate"),h()()(),S(19,gye,1,5,"app-paginator",12),h()(),S(20,kye,39,32,"div",13),S(21,Mye,6,3,"div",13),S(22,Eye,1,5,"app-paginator",12)),2&i&&(v("ngClass",oe(21,rye,!o.showShortList_&&o.numberOfPages>1&&o.dataSource)),d(2),k(o.showShortList_?2:-1),d(),k(o.dataFilterer.currentFiltersTexts&&o.dataFilterer.currentFiltersTexts.length>0?3:-1),d(3),k(o.allLabels&&o.allLabels.length>0?6:-1),d(),k(o.dataSource&&o.dataSource.length>0?7:-1),d(),v("overlapTrigger",!1),d(3),I(" ",y(12,15,"selection.select-all")," "),d(3),I(" ",y(15,17,"selection.unselect-all")," "),d(2),v("disabled",Wt(!o.hasSelectedElements())),d(),I(" ",y(18,19,"selection.delete-all")," "),d(2),k(!o.showShortList_&&o.numberOfPages>1&&o.dataSource?19:-1),d(),k(o.dataSource&&o.dataSource.length>0?20:-1),d(),k(o.dataSource&&0!==o.dataSource.length?-1:21),d(),k(!o.showShortList_&&o.numberOfPages>1&&o.dataSource?22:-1))},dependencies:[qt,Jn,Ms,lt,pn,Xr,Ps,lu,kr,cv,cu,Se],styles:[".overflow[_ngcontent-%COMP%]{display:block;width:100%;overflow-x:auto}.overflow[_ngcontent-%COMP%] table[_ngcontent-%COMP%]{width:100%}.actions[_ngcontent-%COMP%]{text-align:right;width:90px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}"]})}}return t})();const Iye=()=>["start.title"];function Pye(t,n){1&t&&B(0,"app-password")}function Oye(t,n){1&t&&(f(0,"div",5),B(1,"mat-spinner",7),m(2),b(3,"translate"),h()),2&t&&(d(),v("diameter",11),d(),I(" ",y(3,2,"settings.checking-auth")," "))}let Aye=(()=>{class t extends Wn{constructor(e,i,o,r){super(),this.authService=e,this.router=i,this.snackbarService=o,this.dialog=r,this.persistentAuthDataResponseKey="serv-aut-response",this.tabsData=[],this.options=[],this.waitBeforeShowingLoading=!0,this.authChecked=!1,this.authActive=!1,this.tabsData=[{icon:"view_headline",label:"nodes.title",linkParts:["/nodes"]},{icon:"monetization_on",label:"nodes.rewards-title",linkParts:["/nodes","rewards"]},{icon:"health_and_safety",label:"nodes.services-health-title",linkParts:["/nodes","services-health"]},{icon:"hub",label:"nodes.dmsg-settings-title",linkParts:["/nodes","dmsg-settings"]},{icon:"bubble_chart",label:"node.details.tpviz.title",linkParts:[],externalUrl:"/tp-viz/"},{icon:"settings",label:"settings.title",linkParts:["/settings"]}],this.updateOptionsMenu()}ngOnInit(){return setTimeout(()=>{this.waitBeforeShowingLoading=!1},500),this.checkAuth(0,!0),super.ngOnInit()}checkAuth(e,i){const o=i?this.getLocalValue(this.persistentAuthDataResponseKey):null;let r=this.authService.checkLogin();o&&(r=ae(JSON.parse(o.value))),this.authSubscription=ae(1).pipe(ii(e),Et(()=>r)).subscribe(s=>{o||this.saveLocalValue(this.persistentAuthDataResponseKey,JSON.stringify(s)),this.authChecked=!0,this.authActive=s===xa.Logged,this.updateOptionsMenu(),o&&this.checkAuth(0,!1)},()=>{this.checkAuth(15e3,!1)})}ngOnDestroy(){this.authSubscription.unsubscribe()}updateOptionsMenu(){this.options=[],this.authActive&&(this.options=[{name:"common.logout",actionName:"logout",icon:"power_settings_new"}])}performAction(e){"logout"===e&&this.logout()}logout(){const e=Ye.createConfirmationDialog(this.dialog,"common.logout-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.closeModal(),this.authService.logout().subscribe(()=>this.router.navigate(["login"]),()=>this.snackbarService.showError("common.logout-error"))})}static{this.\u0275fac=function(i){return new(i||t)(P(Vf),P(vt),P(bt),P(kt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-settings"]],standalone:!1,features:[be],decls:8,vars:9,consts:[[1,"row"],[1,"col-12"],[3,"optionSelected","titleParts","tabsData","selectedTabIndex","showUpdateButton","optionsData"],[1,"content","col-12","mt-4.5"],[1,"d-block","mb-4"],[1,"white-theme","checking-container"],[3,"showShortList"],[3,"diameter"]],template:function(i,o){1&i&&(f(0,"div",0)(1,"div",1)(2,"app-top-bar",2),L("optionSelected",function(s){return o.performAction(s)}),h()(),f(3,"div",3),B(4,"app-refresh-rate",4),S(5,Pye,1,0,"app-password"),S(6,Oye,4,4,"div",5),B(7,"app-label-list",6),h()()),2&i&&(d(2),v("titleParts",Mt(8,Iye))("tabsData",o.tabsData)("selectedTabIndex",4)("showUpdateButton",!1)("optionsData",o.options),d(3),k(o.authChecked&&o.authActive?5:-1),d(),k(o.authChecked||o.waitBeforeShowingLoading?-1:6),d(),v("showShortList",!0))},dependencies:[$o,$V,iye,As,m5,Se],styles:[".checking-container[_ngcontent-%COMP%]{font-size:10px;opacity:.5}.checking-container[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%]{display:inline-block}.show-link[_ngcontent-%COMP%]{cursor:pointer;font-size:.8rem}"]})}}return t})(),Dk=(()=>{class t{constructor(e){this.apiService=e}create(e,i,o){const r={remote_pk:i};return o&&(r.transport_type=o),this.apiService.post(`visors/${e}/transports`,r)}delete(e,i){return this.apiService.delete(`visors/${e}/transports/${i}`)}savePersistentTransportsData(e,i){return this.apiService.put(`visors/${e}/persistent-transports`,i)}getPersistentTransports(e){return this.apiService.get(`visors/${e}/persistent-transports`)}types(e){return this.apiService.get(`visors/${e}/transport-types`)}changeAutoconnectSetting(e,i){const o={};return o.public_autoconnect=i,this.apiService.put(`visors/${e}/public-autoconnect`,o)}static{this.\u0275fac=function(i){return new(i||t)(le(br))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const Rye=["button"],Nye=["firstInput"],dv=t=>({"element-disabled":t});function Fye(t,n){1&t&&B(0,"app-loading-indicator",3),2&t&&v("showWhite",!1)}function Lye(t,n){1&t&&(f(0,"span"),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"transports.dialog.errors.remote-key-length-error")))}function Bye(t,n){1&t&&(f(0,"span"),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"transports.dialog.errors.remote-key-chars-error")))}function Vye(t,n){if(1&t&&(f(0,"mat-option",12),m(1),h()),2&t){const e=n.$implicit;v("value",e),d(),O(e)}}function Hye(t,n){if(1&t){const e=ce();f(0,"form",4)(1,"mat-form-field",6)(2,"div",7)(3,"label",8),m(4),b(5,"translate"),h(),B(6,"input",9,1),h(),f(8,"mat-error"),S(9,Lye,3,3,"span")(10,Bye,3,3,"span"),h()(),f(11,"mat-form-field",6)(12,"div",7)(13,"label",8),m(14),b(15,"translate"),h(),B(16,"input",10),h()(),f(17,"mat-form-field",6)(18,"div",7)(19,"label",8),m(20),b(21,"translate"),h(),f(22,"mat-select",11),we(23,Vye,2,2,"mat-option",12,Re),h()(),f(25,"mat-error")(26,"span"),m(27),b(28,"translate"),h()()(),f(29,"mat-checkbox",13),L("change",function(o){return z(e),$(C().setMakePersistent(o))}),m(30),b(31,"translate"),f(32,"mat-icon",14),b(33,"translate"),m(34,"help"),h()()()}if(2&t){const e=C();v("formGroup",e.form),d(),v("ngClass",oe(26,dv,e.disableDismiss)),d(3),O(y(5,14,"transports.dialog.remote-key")),d(5),k(e.form.get("remoteKey").hasError("pattern")?10:9),d(2),v("ngClass",oe(28,dv,e.disableDismiss)),d(3),O(y(15,16,"transports.dialog.label")),d(3),v("ngClass",oe(30,dv,e.disableDismiss)),d(3),O(y(21,18,"transports.dialog.transport-type")),d(3),xe(e.types),d(4),O(y(28,20,"transports.dialog.errors.transport-type-error")),d(2),v("checked",e.makePersistent)("ngClass",oe(32,dv,e.disableDismiss)),d(),I(" ",y(31,22,"transports.dialog.make-persistent")," "),d(2),v("inline",!0)("matTooltip",y(33,24,"transports.dialog.persistent-tooltip"))}}let jye=(()=>{class t{static openDialog(e){const i=new Lt;return i.autoFocus=!1,i.width=ze.mediumModalWidth,e.open(t,i)}constructor(e,i,o,r,s,a){this.transportService=e,this.formBuilder=i,this.dialogRef=o,this.snackbarService=r,this.storageService=s,this.nodeService=a,this.makePersistent=!1,this.shouldShowError=!0}ngOnInit(){this.form=this.formBuilder.group({remoteKey:["",Ve.compose([Ve.required,Ve.minLength(66),Ve.maxLength(66),Ve.pattern("^[0-9a-fA-F]+$")])],label:[""],type:["",Ve.required]}),this.loadData(0)}ngOnDestroy(){this.dataSubscription.unsubscribe(),this.operationSubscription&&this.operationSubscription.unsubscribe()}get disableDismiss(){return!!this.button&&this.button.isLoading}setMakePersistent(e){this.makePersistent=!!e.checked}create(){if(!this.form.valid||this.button.disabled)return;this.button.showLoading();const e=this.form.get("remoteKey").value,i=this.form.get("type").value,o=this.form.get("label").value;if(this.makePersistent){const r=this.transportService.getPersistentTransports(ke.getCurrentNodeKey());this.operationSubscription=r.subscribe(s=>{const a=s||[];let l=!1;a.forEach(c=>{c.pk.toUpperCase()===e.toUpperCase()&&c.type.toUpperCase()===i.toUpperCase()&&(l=!0)}),l?this.createTransport(e,i,o,!0):this.createPersistent(a,e,i,o)},s=>{this.onError(s)})}else this.createTransport(e,i,o,!1)}createPersistent(e,i,o,r){e.push({pk:i,type:o}),this.operationSubscription=this.transportService.savePersistentTransportsData(ke.getCurrentNodeKey(),e).subscribe(()=>{this.createTransport(i,o,r,!0)},s=>{this.onError(s)})}createTransport(e,i,o,r){this.operationSubscription=this.transportService.create(ke.getCurrentNodeKey(),e,i).subscribe(s=>{let a=!1;o&&(s&&s.id?this.storageService.saveLabel(s.id,o,io.Transport):a=!0),ke.refreshCurrentDisplayedData(),this.dialogRef.close(),a?this.snackbarService.showWarning("transports.dialog.success-without-label"):this.snackbarService.showDone("transports.dialog.success")},s=>{r?(ke.refreshCurrentDisplayedData(),this.dialogRef.close(),this.snackbarService.showWarning("transports.dialog.only-persistent-created")):this.onError(s)})}onError(e){this.button.showError(),e=Je(e),this.snackbarService.showError(e)}loadData(e){this.dataSubscription&&this.dataSubscription.unsubscribe(),this.dataSubscription=ae(1).pipe(ii(e),Et(()=>this.transportService.types(ke.getCurrentNodeKey()))).subscribe(i=>{i.sort((r,s)=>"stcp"===r.toLowerCase()?1:"stcp"===s.toLowerCase()?-1:r.localeCompare(s));let o=i.findIndex(r=>"dmsg"===r.toLowerCase());o=-1!==o?o:0,this.types=i,this.form.get("type").setValue(i[o]),this.snackbarService.closeCurrentIfTemporaryError(),setTimeout(()=>this.firstInput.nativeElement.focus())},i=>{i=Je(i),this.shouldShowError&&(this.snackbarService.showError("common.loading-error",null,!0,i),this.shouldShowError=!1),this.loadData(ze.connectionRetryDelay)})}static{this.\u0275fac=function(i){return new(i||t)(P(Dk),P(pi),P(It),P(bt),P(zn),P(Sr))}}static{this.\u0275cmp=se({type:t,selectors:[["app-create-transport"]],viewQuery:function(i,o){if(1&i&&rt(Rye,5)(Nye,5),2&i){let r;ue(r=he())&&(o.button=r.first),ue(r=he())&&(o.firstInput=r.first)}},standalone:!1,decls:8,vars:11,consts:[["button",""],["firstInput",""],[3,"headline","dialog","disableDismiss"],[3,"showWhite"],[3,"formGroup"],["color","primary",1,"float-right",3,"action","disabled"],[3,"ngClass"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","remoteKey","maxlength","66","matInput",""],["formControlName","label","maxlength","66","matInput",""],["formControlName","type"],[3,"value"],["color","primary",3,"change","checked","ngClass"],[1,"help-icon",3,"inline","matTooltip"]],template:function(i,o){1&i&&(f(0,"app-dialog",2),b(1,"translate"),S(2,Fye,1,1,"app-loading-indicator",3),S(3,Hye,35,34,"form",4),f(4,"app-button",5,0),L("action",function(){return o.create()}),m(6),b(7,"translate"),h()()),2&i&&(v("headline",y(1,7,"transports.create"))("dialog",o.dialogRef)("disableDismiss",o.disableDismiss),d(2),k(o.types?-1:2),d(),k(o.types?3:-1),d(),v("disabled",!o.form.valid),d(2),I(" ",y(7,9,"transports.create")," "))},dependencies:[qt,Cn,rn,sn,yn,ji,Xt,fn,wn,Es,ei,lt,pn,oc,Is,kr,On,Kt,vr,Se],styles:["mat-checkbox[_ngcontent-%COMP%]{margin-bottom:15px}"]})}}return t})();function Uye(t,n){1&t&&(m(0),b(1,"translate"),f(2,"mat-icon",5),b(3,"translate"),m(4,"help"),h()),2&t&&(I(" ",y(1,3,"common.yes")," "),d(2),v("inline",!0)("matTooltip",y(3,5,"transports.persistent-transport-tooltip")))}function zye(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"common.no")," ")}let $ye=(()=>{class t{static openDialog(e,i){const o=new Lt;return o.data=i,o.autoFocus=!1,o.width=ze.largeModalWidth,e.open(t,o)}constructor(e,i){this.data=e,this.dialogRef=i}static{this.\u0275fac=function(i){return new(i||t)(P(hn),P(It))}}static{this.\u0275cmp=se({type:t,selectors:[["app-transport-details"]],standalone:!1,decls:51,vars:45,consts:[[1,"info-dialog",3,"headline","dialog"],[1,"title","mt-0"],[3,"inline"],[1,"item"],[1,"title"],[1,"help-icon","d-none","d-md-inline",3,"inline","matTooltip"]],template:function(i,o){1&i&&(f(0,"app-dialog",0),b(1,"translate"),f(2,"div")(3,"div",1)(4,"mat-icon",2),m(5,"list"),h(),m(6),b(7,"translate"),h(),f(8,"div",3)(9,"span"),m(10),b(11,"translate"),h(),S(12,Uye,5,7),S(13,zye,2,3),h(),f(14,"div",3)(15,"span"),m(16),b(17,"translate"),h(),m(18),h(),f(19,"div",3)(20,"span"),m(21),b(22,"translate"),h(),m(23),h(),f(24,"div",3)(25,"span"),m(26),b(27,"translate"),h(),m(28),h(),f(29,"div",3)(30,"span"),m(31),b(32,"translate"),h(),m(33),h(),f(34,"div",4)(35,"mat-icon",2),m(36,"import_export"),h(),m(37),b(38,"translate"),h(),f(39,"div",3)(40,"span"),m(41),b(42,"translate"),h(),m(43),b(44,"autoScale"),h(),f(45,"div",3)(46,"span"),m(47),b(48,"translate"),h(),m(49),b(50,"autoScale"),h()()()),2&i&&(v("headline",y(1,21,"transports.details.title"))("dialog",o.dialogRef),d(4),v("inline",!0),d(2),I("",y(7,23,"transports.details.basic.title")," "),d(4),O(y(11,25,"transports.details.basic.persistent")),d(2),k(o.data.isPersistent?12:-1),d(),k(o.data.isPersistent?-1:13),d(3),O(y(17,27,"transports.details.basic.id")),d(2),I(" ",o.data.id," "),d(3),O(y(22,29,"transports.details.basic.local-pk")),d(2),I(" ",o.data.localPk," "),d(3),O(y(27,31,"transports.details.basic.remote-pk")),d(2),I(" ",o.data.remotePk," "),d(3),O(y(32,33,"transports.details.basic.type")),d(2),I(" ",o.data.type," "),d(2),v("inline",!0),d(2),I("",y(38,35,"transports.details.data.title")," "),d(4),O(y(42,37,"transports.details.data.uploaded")),d(2),I(" ",y(44,39,o.data.sent)," "),d(4),O(y(48,41,"transports.details.data.downloaded")),d(2),I(" ",y(50,43,o.data.recv)," "))},dependencies:[lt,pn,Kt,Se,Kf],styles:[".help-icon[_ngcontent-%COMP%]{opacity:.5;font-size:14px;cursor:default}"]})}}return t})();const Wye=()=>({"tooltip-word-break":!0});function Gye(t,n){if(1&t&&(f(0,"span",1),m(1),h()),2&t){const e=C();d(),O(e.shortText)}}function qye(t,n){if(1&t&&(f(0,"span"),m(1),h()),2&t){const e=C();d(),O(e.text)}}let g5=(()=>{class t{constructor(){this.short=!1,this.showTooltip=!0,this.shortTextLength=5}get shortText(){if(this.text.length>2*this.shortTextLength){const e=this.text.length;return`${this.text.slice(0,this.shortTextLength)}...${this.text.slice(e-this.shortTextLength,e)}`}return this.text}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=se({type:t,selectors:[["app-truncated-text"]],inputs:{short:"short",showTooltip:"showTooltip",text:"text",shortTextLength:"shortTextLength"},standalone:!1,decls:3,vars:5,consts:[[1,"wrapper",3,"matTooltip","matTooltipClass"],[1,"nowrap"]],template:function(i,o){1&i&&(f(0,"div",0),S(1,Gye,2,1,"span",1),S(2,qye,2,1,"span"),h()),2&i&&(v("matTooltip",o.short&&o.showTooltip?o.text:"")("matTooltipClass",Mt(4,Wye)),d(),k(o.short?1:-1),d(),k(o.short?-1:2))},dependencies:[pn],styles:['.cursor-pointer[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%], .wrapper[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media(max-width:767px),(min-width:992px)and (max-width:1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media(max-width:767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}.nowrap[_ngcontent-%COMP%]{white-space:nowrap}.wrapper[_ngcontent-%COMP%]{display:inline}']})}}return t})();const Kye=t=>({text:t}),Yye=()=>({"tooltip-word-break":!0});function Xye(t,n){if(1&t&&(f(0,"span"),m(1),b(2,"translate"),h()),2&t){const e=C();d(),I(" ",y(2,1,e.labelComponents.prefix)," ")}}function Zye(t,n){if(1&t&&(f(0,"span"),m(1),h()),2&t){const e=C();d(),I(" ",e.labelComponents.prefixSeparator," ")}}function Qye(t,n){if(1&t&&(f(0,"span"),m(1),h()),2&t){const e=C();d(),I(" ",e.labelComponents.label," ")}}function Jye(t,n){if(1&t&&(f(0,"span"),m(1),b(2,"translate"),h()),2&t){const e=C();d(),I(" ",y(2,1,e.labelComponents.translatableLabel)," ")}}class eCe{constructor(){this.prefix="",this.prefixSeparator="",this.label="",this.translatableLabel=""}}let lc=(()=>{class t{set id(e){this.idInternal=e,this.labelComponents=t.getLabelComponents(this.storageService,this.id)}get id(){return this.idInternal?this.idInternal:""}static getLabelComponents(e,i){let o;o=!!e.getSavedVisibleLocalNodes().has(i);const r=new eCe;return r.labelInfo=e.getLabelInfo(i),r.labelInfo&&r.labelInfo.label?(o&&(r.prefix="labeled-element.local-element",r.prefixSeparator=" - "),r.label=r.labelInfo.label):e.getSavedVisibleLocalNodes().has(i)?r.prefix="labeled-element.unnamed-local-visor":r.translatableLabel="labeled-element.unnamed-element",r}static getCompleteLabel(e,i,o){const r=t.getLabelComponents(e,o);return(r.prefix?i.instant(r.prefix):"")+r.prefixSeparator+r.label+(r.translatableLabel?i.instant(r.translatableLabel):"")}constructor(e,i,o,r,s){this.dialog=e,this.storageService=i,this.clipboardService=o,this.snackbarService=r,this.router=s,this.short=!1,this.shortTextLength=5,this.elementType=io.Node,this.labelEdited=new ve}ngOnDestroy(){this.labelEdited.complete()}processClick(){const e=[{icon:"filter_none",label:"labeled-element.copy"},{icon:"edit",label:"labeled-element.edit-label"}];this.labelComponents.labelInfo&&e.push({icon:"close",label:"labeled-element.remove-label"}),e.push({icon:"list",label:"labeled-element.view-all-labels"}),oo.openDialog(this.dialog,e,"common.options").afterClosed().subscribe(i=>{if(1===i)this.clipboardService.copy(this.id)&&this.snackbarService.showDone("copy.copied");else if(i>2)if(3===i&&this.labelComponents.labelInfo){const o=Ye.createConfirmationDialog(this.dialog,"labeled-element.remove-label-confirmation");o.componentInstance.operationAccepted.subscribe(()=>{o.componentInstance.closeModal(),this.storageService.saveLabel(this.id,null,this.elementType),this.snackbarService.showDone("edit-label.label-removed-warning"),this.labelEdited.emit()})}else this.router.navigate(["/settings","labels"]);else if(2===i){let o=this.labelComponents.labelInfo;o||(o={id:this.id,label:"",identifiedElementType:this.elementType}),vk.openDialog(this.dialog,o).afterClosed().subscribe(r=>{r&&this.labelEdited.emit()})}})}static{this.\u0275fac=function(i){return new(i||t)(P(kt),P(zn),P(Gf),P(bt),P(vt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-labeled-element-text"]],inputs:{id:"id",short:"short",shortTextLength:"shortTextLength",elementType:"elementType"},outputs:{labelEdited:"labelEdited"},standalone:!1,decls:12,vars:17,consts:[[1,"wrapper","highlight-internal-icon",3,"click","matTooltip","matTooltipClass"],[1,"label"],[3,"short","showTooltip","shortTextLength","text"],[3,"inline"]],template:function(i,o){1&i&&(f(0,"div",0),b(1,"translate"),L("click",function(s){return s.stopPropagation(),s.preventDefault(),o.processClick()}),f(2,"span",1),S(3,Xye,3,3,"span"),S(4,Zye,2,1,"span"),S(5,Qye,2,1,"span"),S(6,Jye,3,3,"span"),h(),B(7,"br")(8,"app-truncated-text",2),m(9," \xa0"),f(10,"mat-icon",3),m(11,"settings"),h()()),2&i&&(v("matTooltip",Ee(1,11,o.short?"labeled-element.tooltip-with-text":"labeled-element.tooltip",oe(14,Kye,o.id)))("matTooltipClass",Mt(16,Yye)),d(3),k(o.labelComponents&&o.labelComponents.prefix?3:-1),d(),k(o.labelComponents&&o.labelComponents.prefixSeparator?4:-1),d(),k(o.labelComponents&&o.labelComponents.label?5:-1),d(),k(o.labelComponents&&o.labelComponents.translatableLabel?6:-1),d(2),v("short",o.short)("showTooltip",!1)("shortTextLength",o.shortTextLength)("text",o.id),d(2),v("inline",!0))},dependencies:[lt,pn,g5,Se],styles:['.cursor-pointer[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%], .wrapper[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media(max-width:767px),(min-width:992px)and (max-width:1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media(max-width:767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}.wrapper[_ngcontent-%COMP%]{display:inline}.wrapper[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:.8rem;-webkit-user-select:none;user-select:none}.label[_ngcontent-%COMP%]{opacity:.7;font-size:.8rem}']})}}return t})();const tCe=t=>({"paginator-icons-fixer":t}),Tk=t=>["/nodes",t,"transports"],nCe=(t,n)=>({"small-node-list-margins":t,"full-node-list-margins":n}),iCe=t=>({"d-lg-none d-xl-table":t}),oCe=t=>({"d-lg-table d-xl-none":t}),_5=t=>({offline:t});function rCe(t,n){1&t&&(f(0,"span",3),m(1),b(2,"translate"),f(3,"mat-icon",15),b(4,"translate"),m(5,"help"),h()()),2&t&&(d(),I(" ",y(2,3,"transports.title")," "),d(2),v("inline",!0)("matTooltip",y(4,5,"transports.info")))}function sCe(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,C().$implicit.translatableValue)," ")}function aCe(t,n){1&t&&m(0),2&t&&I(" ",C().$implicit.value," ")}function lCe(t,n){if(1&t&&(f(0,"div",17)(1,"span"),m(2),b(3,"translate"),h(),S(4,sCe,2,3),S(5,aCe,1,1),h()),2&t){const e=n.$implicit;d(2),I("",y(3,3,e.filterName),": "),d(2),k(e.translatableValue?4:-1),d(),k(e.value?5:-1)}}function cCe(t,n){if(1&t){const e=ce();f(0,"div",16),L("click",function(){return z(e),$(C().dataFilterer.removeFilters())}),we(1,lCe,6,5,"div",17,Re),f(3,"div",18),m(4),b(5,"translate"),h()()}if(2&t){const e=C();d(),xe(e.dataFilterer.currentFiltersTexts),d(3),O(y(5,1,"filters.press-to-remove"))}}function dCe(t,n){if(1&t){const e=ce();f(0,"mat-icon",19),L("click",function(){return z(e),$(C().dataFilterer.changeFilters())}),m(1,"filter_list"),h()}2&t&&v("inline",!0)}function uCe(t,n){if(1&t&&(f(0,"mat-icon",9),m(1,"more_horiz"),h()),2&t){C();const e=Vn(11);v("inline",!0)("matMenuTriggerFor",e)}}function hCe(t,n){if(1&t&&B(0,"app-paginator",13),2&t){const e=C();v("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",oe(4,Tk,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function fCe(t,n){if(1&t&&(f(0,"mat-icon",24),m(1),h()),2&t){const e=C(2);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function pCe(t,n){1&t&&m(0," * ")}function mCe(t,n){if(1&t&&(f(0,"mat-icon",24),m(1),h(),S(2,pCe,1,0)),2&t){const e=C(2);v("inline",!0),d(),O(e.dataSorter.sortingArrow),d(),k(e.dataSorter.currentlySortingByLabel?2:-1)}}function gCe(t,n){1&t&&m(0," * ")}function _Ce(t,n){if(1&t&&(f(0,"mat-icon",24),m(1),h(),S(2,gCe,1,0)),2&t){const e=C(2);v("inline",!0),d(),O(e.dataSorter.sortingArrow),d(),k(e.dataSorter.currentlySortingByLabel?2:-1)}}function bCe(t,n){if(1&t&&(f(0,"mat-icon",24),m(1),h()),2&t){const e=C(2);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function vCe(t,n){if(1&t&&(f(0,"mat-icon",24),m(1),h()),2&t){const e=C(2);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function yCe(t,n){if(1&t&&(f(0,"mat-icon",24),m(1),h()),2&t){const e=C(2);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function CCe(t,n){if(1&t){const e=ce();f(0,"button",39),b(1,"translate"),L("click",function(){z(e);const o=C().$implicit;return $(C(2).changeIfPersistent([o],!1))}),f(2,"mat-icon",40),m(3,"star"),h()()}2&t&&(v("matTooltip",y(1,2,"transports.persistent-transport-button-tooltip")),d(2),v("inline",!0))}function wCe(t,n){if(1&t){const e=ce();f(0,"button",39),b(1,"translate"),L("click",function(){z(e);const o=C().$implicit;return $(C(2).changeIfPersistent([o],!0))}),f(2,"mat-icon",41),m(3,"star_outline"),h()()}2&t&&(v("matTooltip",y(1,2,"transports.non-persistent-transport-button-tooltip")),d(2),v("inline",!0))}function xCe(t,n){1&t&&(f(0,"span"),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"transports.offline")))}function SCe(t,n){if(1&t){const e=ce();f(0,"td")(1,"app-labeled-element-text",42),L("labelEdited",function(){return z(e),$(C(3).refreshData())}),h(),S(2,xCe,3,3,"span"),h()}if(2&t){const e=C().$implicit,i=C(2);d(),v("id",Wt(e.id))("elementType",i.labeledElementTypes.Transport),d(),k(e.notFound?2:-1)}}function kCe(t,n){1&t&&(f(0,"td"),m(1),b(2,"translate"),h()),2&t&&(d(),I(" ",y(2,1,"transports.offline")," "))}function DCe(t,n){if(1&t&&(f(0,"td"),m(1),b(2,"autoScale"),h()),2&t){const e=C().$implicit;d(),I(" ",y(2,1,e.sent)," ")}}function TCe(t,n){if(1&t&&(f(0,"td"),m(1),b(2,"autoScale"),h()),2&t){const e=C().$implicit;d(),I(" ",y(2,1,e.recv)," ")}}function MCe(t,n){1&t&&(f(0,"td"),m(1),b(2,"translate"),h()),2&t&&(d(),I(" ",y(2,1,"transports.offline")," "))}function ECe(t,n){1&t&&(f(0,"td"),m(1),b(2,"translate"),h()),2&t&&(d(),I(" ",y(2,1,"transports.offline")," "))}function ICe(t,n){if(1&t){const e=ce();f(0,"button",43),b(1,"translate"),L("click",function(){z(e);const o=C().$implicit;return $(C(2).details(o))}),f(2,"mat-icon",24),m(3,"visibility"),h()()}2&t&&(v("matTooltip",y(1,2,"transports.details.title")),d(2),v("inline",!0))}function PCe(t,n){if(1&t){const e=ce();f(0,"button",43),b(1,"translate"),L("click",function(){z(e);const o=C().$implicit;return $(C(2).delete(o))}),f(2,"mat-icon",24),m(3,"close"),h()()}2&t&&(v("matTooltip",y(1,2,"transports.delete")),d(2),v("inline",!0))}function OCe(t,n){if(1&t){const e=ce();f(0,"tr",27)(1,"td",34)(2,"mat-checkbox",35),L("change",function(){const o=z(e).$implicit;return $(C(2).changeSelection(o))}),h()(),f(3,"td"),S(4,CCe,4,4,"button",36),S(5,wCe,4,4,"button",36),h(),S(6,SCe,3,4,"td"),S(7,kCe,3,3,"td"),f(8,"td")(9,"app-labeled-element-text",37),L("labelEdited",function(){return z(e),$(C(2).refreshData())}),h()(),f(10,"td"),m(11),h(),S(12,DCe,3,3,"td"),S(13,TCe,3,3,"td"),S(14,MCe,3,3,"td"),S(15,ECe,3,3,"td"),f(16,"td",26),S(17,ICe,4,4,"button",38),S(18,PCe,4,4,"button",38),h()()}if(2&t){const e=n.$implicit,i=C(2);v("ngClass",oe(15,_5,e.notFound)),d(2),v("checked",i.selections.get(e.id)),d(2),k(e.isPersistent?4:-1),d(),k(e.isPersistent?-1:5),d(),k(e.notFound?-1:6),d(),k(e.notFound?7:-1),d(2),v("id",Wt(e.remotePk)),d(2),I(" ",e.type," "),d(),k(e.notFound?-1:12),d(),k(e.notFound?-1:13),d(),k(e.notFound?14:-1),d(),k(e.notFound?15:-1),d(2),k(e.notFound?-1:17),d(),k(e.notFound?-1:18)}}function ACe(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"tables.label")," ")}function RCe(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"tables.inverted-order")," ")}function NCe(t,n){1&t&&(f(0,"div",46)(1,"div",46)(2,"mat-icon",51),m(3,"star"),h(),m(4,"\xa0 "),f(5,"span",52),m(6),b(7,"translate"),h()()()),2&t&&(d(2),v("inline",!0),d(4),O(y(7,2,"transports.persistent")))}function FCe(t,n){if(1&t){const e=ce();f(0,"app-labeled-element-text",42),L("labelEdited",function(){return z(e),$(C(3).refreshData())}),h()}if(2&t){const e=C().$implicit,i=C(2);v("id",Wt(e.id))("elementType",i.labeledElementTypes.Transport)}}function LCe(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"transports.offline")," ")}function BCe(t,n){1&t&&(m(0),b(1,"autoScale")),2&t&&I(" ",y(1,1,C().$implicit.sent)," ")}function VCe(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"transports.offline")," ")}function HCe(t,n){1&t&&(m(0),b(1,"autoScale")),2&t&&I(" ",y(1,1,C().$implicit.recv)," ")}function jCe(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"transports.offline")," ")}function UCe(t,n){if(1&t){const e=ce();f(0,"tr")(1,"td")(2,"div",44)(3,"div",45)(4,"mat-checkbox",35),L("change",function(){const o=z(e).$implicit;return $(C(2).changeSelection(o))}),h()(),f(5,"div",31),S(6,NCe,8,4,"div",46),f(7,"div",47)(8,"span",2),m(9),b(10,"translate"),h(),m(11,": "),S(12,FCe,1,3,"app-labeled-element-text",48),S(13,LCe,2,3),h(),f(14,"div",47)(15,"span",2),m(16),b(17,"translate"),h(),m(18,": "),f(19,"app-labeled-element-text",37),L("labelEdited",function(){return z(e),$(C(2).refreshData())}),h()(),f(20,"div",46)(21,"span",2),m(22),b(23,"translate"),h(),m(24),h(),f(25,"div",46)(26,"span",2),m(27),b(28,"translate"),h(),m(29,": "),S(30,BCe,2,3),S(31,VCe,2,3),h(),f(32,"div",46)(33,"span",2),m(34),b(35,"translate"),h(),m(36,": "),S(37,HCe,2,3),S(38,jCe,2,3),h()(),B(39,"div",49),f(40,"div",32)(41,"button",50),b(42,"translate"),L("click",function(o){const r=z(e).$implicit,s=C(2);return o.stopPropagation(),$(s.showOptionsDialog(r))}),f(43,"mat-icon"),m(44),h()()()()()()}if(2&t){const e=n.$implicit,i=C(2);d(2),v("ngClass",oe(31,_5,e.notFound)),d(2),v("checked",i.selections.get(e.id)),d(2),k(e.isPersistent?6:-1),d(3),O(y(10,19,"transports.id")),d(3),k(e.notFound?-1:12),d(),k(e.notFound?13:-1),d(3),O(y(17,21,"transports.remote-node")),d(3),v("id",Wt(e.remotePk)),d(3),O(y(23,23,"transports.type")),d(2),I(": ",e.type," "),d(3),O(y(28,25,"common.uploaded")),d(3),k(e.notFound?-1:30),d(),k(e.notFound?31:-1),d(3),O(y(35,27,"common.downloaded")),d(3),k(e.notFound?-1:37),d(),k(e.notFound?38:-1),d(3),v("matTooltip",y(42,29,"common.options")),d(3),O("add")}}function zCe(t,n){if(1&t&&B(0,"app-view-all-link",33),2&t){const e=C(2);v("numberOfElements",e.filteredTransports.length)("linkParts",oe(3,Tk,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function $Ce(t,n){if(1&t){const e=ce();f(0,"div",14)(1,"div",20)(2,"table",21)(3,"tr"),B(4,"th"),f(5,"th",22),b(6,"translate"),L("click",function(){z(e);const o=C();return $(o.dataSorter.changeSortingOrder(o.persistentSortData))}),f(7,"mat-icon",23),m(8,"star_outline"),h(),S(9,fCe,2,2,"mat-icon",24),h(),f(10,"th",25),L("click",function(){z(e);const o=C();return $(o.dataSorter.changeSortingOrder(o.idSortData))}),m(11),b(12,"translate"),S(13,mCe,3,3),h(),f(14,"th",25),L("click",function(){z(e);const o=C();return $(o.dataSorter.changeSortingOrder(o.remotePkSortData))}),m(15),b(16,"translate"),S(17,_Ce,3,3),h(),f(18,"th",25),L("click",function(){z(e);const o=C();return $(o.dataSorter.changeSortingOrder(o.typeSortData))}),m(19),b(20,"translate"),S(21,bCe,2,2,"mat-icon",24),h(),f(22,"th",25),L("click",function(){z(e);const o=C();return $(o.dataSorter.changeSortingOrder(o.uploadedSortData))}),m(23),b(24,"translate"),S(25,vCe,2,2,"mat-icon",24),h(),f(26,"th",25),L("click",function(){z(e);const o=C();return $(o.dataSorter.changeSortingOrder(o.downloadedSortData))}),m(27),b(28,"translate"),S(29,yCe,2,2,"mat-icon",24),h(),B(30,"th",26),h(),we(31,OCe,19,17,"tr",27,Re),h(),f(33,"table",28)(34,"tr",29),L("click",function(){return z(e),$(C().dataSorter.openSortingOrderModal())}),f(35,"td")(36,"div",30)(37,"div",31)(38,"div",2),m(39),b(40,"translate"),h(),f(41,"div"),m(42),b(43,"translate"),S(44,ACe,2,3),S(45,RCe,2,3),h()(),f(46,"div",32)(47,"mat-icon",24),m(48,"keyboard_arrow_down"),h()()()()(),we(49,UCe,45,33,"tr",null,Re),h(),S(51,zCe,1,5,"app-view-all-link",33),h()()}if(2&t){const e=C();d(),v("ngClass",ft(37,nCe,e.showShortList_,!e.showShortList_)),d(),v("ngClass",oe(40,iCe,e.showShortList_)),d(3),v("matTooltip",y(6,21,"transports.persistent-tooltip")),d(4),k(e.dataSorter.currentSortingColumn===e.persistentSortData?9:-1),d(2),I(" ",y(12,23,"transports.id")," "),d(2),k(e.dataSorter.currentSortingColumn===e.idSortData?13:-1),d(2),I(" ",y(16,25,"transports.remote-node")," "),d(2),k(e.dataSorter.currentSortingColumn===e.remotePkSortData?17:-1),d(2),I(" ",y(20,27,"transports.type")," "),d(2),k(e.dataSorter.currentSortingColumn===e.typeSortData?21:-1),d(2),I(" ",y(24,29,"common.uploaded")," "),d(2),k(e.dataSorter.currentSortingColumn===e.uploadedSortData?25:-1),d(2),I(" ",y(28,31,"common.downloaded")," "),d(2),k(e.dataSorter.currentSortingColumn===e.downloadedSortData?29:-1),d(2),xe(e.dataSource),d(2),v("ngClass",oe(42,oCe,e.showShortList_)),d(6),O(y(40,33,"tables.sorting-title")),d(3),I("",y(43,35,e.dataSorter.currentSortingColumn.label)," "),d(2),k(e.dataSorter.currentlySortingByLabel?44:-1),d(),k(e.dataSorter.sortingInReverseOrder?45:-1),d(2),v("inline",!0),d(2),xe(e.dataSource),d(2),k(e.showShortList_&&e.numberOfPages>1?51:-1)}}function WCe(t,n){1&t&&(f(0,"span",55),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"transports.empty")))}function GCe(t,n){1&t&&(f(0,"span",55),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"transports.empty-with-filter")))}function qCe(t,n){if(1&t&&(f(0,"div",14)(1,"div",53)(2,"mat-icon",54),m(3,"warning"),h(),S(4,WCe,3,3,"span",55),S(5,GCe,3,3,"span",55),h()()),2&t){const e=C();d(2),v("inline",!0),d(2),k(0===e.allTransports.length?4:-1),d(),k(0!==e.allTransports.length?5:-1)}}function KCe(t,n){if(1&t&&B(0,"app-paginator",13),2&t){const e=C();v("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",oe(4,Tk,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}let b5=(()=>{class t{set showShortList(e){this.showShortList_=e,this.dataSorter.setData(this.filteredTransports)}set node(e){const i=performance.now();console.log("[HV-DIAG] transport-list setter called, transports:",e.transports?.length,"persistentTransports:",e.persistentTransports?.length);const o=e.transports.map(s=>s.id).sort().join(",");if(o===this.lastTransportIds&&e.transports.length===this.lastTransportCount)return this.allTransports&&(e.transports.forEach(s=>{const a=this.allTransports.find(l=>l.id===s.id);a&&(a.sent=s.sent,a.recv=s.recv)}),this.cdr.markForCheck()),void console.log("[HV-DIAG] transport-list stats-only update took",(performance.now()-i).toFixed(1),"ms");console.log("[HV-DIAG] transport-list FULL reprocessing",e.transports.length,"transports"),this.lastTransportCount=e.transports.length,this.lastTransportIds=o,this.currentNode=e,this.allTransports=e.transports,this.nodePK=e.localPk;const r=new Map;e.persistentTransports.forEach(s=>r.set(this.getPersistentTransportID(s.pk,s.type),s)),this.allTransports.forEach(s=>{r.has(this.getPersistentTransportID(s.remotePk,s.type))?(s.isPersistent=!0,r.delete(this.getPersistentTransportID(s.remotePk,s.type))):s.isPersistent=!1}),r.forEach((s,a)=>{this.allTransports.push({id:this.getPersistentTransportID(s.pk,s.type),localPk:e.localPk,remotePk:s.pk,type:s.type,recv:0,sent:0,isPersistent:!0,notFound:!0})}),this.allTransports.forEach(s=>{s.id_label=lc.getCompleteLabel(this.storageService,this.translateService,s.id),s.remote_pk_label=lc.getCompleteLabel(this.storageService,this.translateService,s.remotePk)}),this.dataFilterer.setData(this.allTransports),this.cdr.markForCheck()}constructor(e,i,o,r,s,a,l,c,u){this.dialog=e,this.transportService=i,this.route=o,this.router=r,this.snackbarService=s,this.translateService=a,this.storageService=l,this.nodeService=c,this.cdr=u,this.listId="tr",this.persistentSortData=new Pt(["isPersistent"],"transports.persistent",ct.Boolean),this.idSortData=new Pt(["id"],"transports.id",ct.Text,["id_label"]),this.remotePkSortData=new Pt(["remotePk"],"transports.remote-node",ct.Text,["remote_pk_label"]),this.typeSortData=new Pt(["type"],"transports.type",ct.Text),this.uploadedSortData=new Pt(["sent"],"common.uploaded",ct.NumberReversed),this.downloadedSortData=new Pt(["recv"],"common.downloaded",ct.NumberReversed),this.selections=new Map,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.lastTransportCount=-1,this.lastTransportIds="",this.filterProperties=[{filterName:"transports.filter-dialog.persistent",keyNameInElementsArray:"isPersistent",type:mn.Select,printableLabelsForValues:[{value:"",label:"transports.filter-dialog.persistent-options.any"},{value:"true",label:"transports.filter-dialog.persistent-options.persistent"},{value:"false",label:"transports.filter-dialog.persistent-options.non-persistent"}]},{filterName:"transports.filter-dialog.id",keyNameInElementsArray:"id",secondaryKeyNameInElementsArray:"id_label",type:mn.TextInput,maxlength:36},{filterName:"transports.filter-dialog.remote-node",keyNameInElementsArray:"remotePk",secondaryKeyNameInElementsArray:"remote_pk_label",type:mn.TextInput,maxlength:66}],this.labeledElementTypes=io,this.operationSubscriptionsGroup=[],this.dataSorter=new ru(this.dialog,this.translateService,this.storageService,[this.persistentSortData,this.idSortData,this.remotePkSortData,this.typeSortData,this.uploadedSortData,this.downloadedSortData],1,this.listId),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataFilterer=new su(this.dialog,this.route,this.router,this.filterProperties,this.listId),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(g=>{this.filteredTransports=g,this.dataSorter.setData(this.filteredTransports)}),this.navigationsSubscription=this.route.paramMap.subscribe(g=>{if(g.has("page")){let _=Number.parseInt(g.get("page"),10);(isNaN(_)||_<1)&&(_=1),this.currentPageInUrl=_,this.recalculateElementsToShow()}}),this.languageSubscription=this.translateService.onLangChange.subscribe(()=>{this.node=this.currentNode})}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.operationSubscriptionsGroup.forEach(e=>e.unsubscribe()),this.languageSubscription.unsubscribe(),this.dataSortedSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFiltererSubscription.unsubscribe(),this.dataFilterer.dispose(),this.persistentTransportSubscription&&this.persistentTransportSubscription.unsubscribe()}changeSelection(e){this.selections.get(e.id)?this.selections.set(e.id,!1):this.selections.set(e.id,!0)}hasSelectedElements(){if(!this.selections)return!1;let e=!1;return this.selections.forEach(i=>{i&&(e=!0)}),e}changeAllSelections(e){this.selections.forEach((i,o)=>{this.selections.set(o,e)})}deleteSelected(){const e=Ye.createConfirmationDialog(this.dialog,"transports.delete-selected-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.showProcessing();const i=[];this.selections.forEach((o,r)=>{o&&i.push(r)}),this.deleteRecursively(i,e)})}create(){jye.openDialog(this.dialog)}showOptionsDialog(e){const i=[];i.push(e.isPersistent?{icon:"star_outline",label:"transports.make-non-persistent"}:{icon:"star",label:"transports.make-persistent"}),e.notFound||(i.push({icon:"visibility",label:"transports.details.title"}),i.push({icon:"close",label:"transports.delete"})),oo.openDialog(this.dialog,i,"common.options").afterClosed().subscribe(o=>{1===o?this.changeIfPersistent([e],!e.isPersistent):2===o?this.details(e):3===o&&this.delete(e)})}changeIfPersistentOfSelected(e){const i=[];this.allTransports.forEach(o=>{this.selections.has(o.id)&&this.selections.get(o.id)&&i.push(o)}),this.changeIfPersistent(i,e)}changeIfPersistent(e,i){if(e.length<1)return;let o="transports.";o+=1===e.length?i?"make-persistent-confirmation":"make"+(e[0].notFound?"-offline":"")+"-non-persistent-confirmation":i?"make-selected-persistent-confirmation":"make-selected-non-persistent-confirmation";const r=Ye.createConfirmationDialog(this.dialog,o);r.componentInstance.operationAccepted.subscribe(()=>{r.componentInstance.showProcessing(),this.persistentTransportSubscription=this.transportService.getPersistentTransports(this.nodePK).subscribe(s=>{const a=s||[];let l;const c=new Map;if(e.forEach(u=>c.set(this.getPersistentTransportID(u.remotePk,u.type),u)),i)a.forEach(u=>{c.has(this.getPersistentTransportID(u.pk,u.type))&&c.delete(this.getPersistentTransportID(u.pk,u.type))}),l=0===c.size,l||c.forEach(u=>{a.push({pk:u.remotePk,type:u.type})});else{l=!0;for(let u=0;u{r.close(),ke.refreshCurrentDisplayedData(),this.snackbarService.showDone("transports.changes-made")},u=>{u=Je(u),r.componentInstance.showDone("confirmation.error-header-text",u.translatableErrorMsg)})},s=>{s=Je(s),r.componentInstance.showDone("confirmation.error-header-text",s.translatableErrorMsg)})})}details(e){$ye.openDialog(this.dialog,e)}delete(e){const o=Ye.createConfirmationDialog(this.dialog,"transports.delete-"+(e.isPersistent?"persistent-":"")+"confirmation");o.componentInstance.operationAccepted.subscribe(()=>{o.componentInstance.showProcessing(),this.operationSubscriptionsGroup.push(this.startDeleting(e.id).subscribe(()=>{o.close(),ke.refreshCurrentDisplayedData(),this.snackbarService.showDone("transports.deleted")},r=>{r=Je(r),o.componentInstance.showDone("confirmation.error-header-text",r.translatableErrorMsg)}))})}refreshData(){ke.refreshCurrentDisplayedData()}getPersistentTransportID(e,i){return e.toUpperCase()+i.toUpperCase()}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredTransports){const e=this.showShortList_?ze.maxShortListElements:ze.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredTransports.length/e),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const i=e*(this.currentPage-1);this.transportsToShow=this.filteredTransports.slice(i,i+e);const r=new Map;this.transportsToShow.forEach(a=>{r.set(a.id,!0),this.selections.has(a.id)||this.selections.set(a.id,!1)});const s=[];this.selections.forEach((a,l)=>{r.has(l)||s.push(l)}),s.forEach(a=>{this.selections.delete(a)})}else this.transportsToShow=null,this.selections=new Map;this.dataSource=this.transportsToShow,this.cdr.markForCheck()}startDeleting(e){return this.transportService.delete(ke.getCurrentNodeKey(),e)}deleteRecursively(e,i){this.operationSubscriptionsGroup.push(this.startDeleting(e[e.length-1]).subscribe(()=>{e.pop(),0===e.length?(i.close(),ke.refreshCurrentDisplayedData(),this.snackbarService.showDone("transports.deleted")):this.deleteRecursively(e,i)},o=>{ke.refreshCurrentDisplayedData(),o=Je(o),i.componentInstance.showDone("confirmation.error-header-text",o.translatableErrorMsg)}))}static{this.\u0275fac=function(i){return new(i||t)(P(kt),P(Dk),P(Ei),P(vt),P(bt),P(zo),P(zn),P(Sr),P(Pn))}}static{this.\u0275cmp=se({type:t,selectors:[["app-transport-list"]],inputs:{showShortList:"showShortList",node:"node"},standalone:!1,decls:31,vars:34,consts:[["selectionMenu","matMenu"],[1,"generic-title-container","mt-4.5","d-flex",3,"ngClass"],[1,"title"],[1,"uppercase"],[1,"filter-label","subtle-transparent-button","cursor-pointer"],[1,"options"],[1,"options-container"],[3,"click","inline"],[1,"small-icon",3,"inline"],[3,"inline","matMenuTriggerFor"],[3,"overlapTrigger"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"click","disabled"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"rounded-elevated-box","mt-3"],[1,"help","d-none","d-md-inline",3,"inline","matTooltip"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],[1,"item"],[1,"transparent-50"],[1,"small-icon",3,"click","inline"],[1,"box-internal-container","overflow",3,"ngClass"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table",3,"ngClass"],[1,"sortable-column","small-column",3,"click","matTooltip"],[1,"persistent-icon","grey-text"],[3,"inline"],[1,"sortable-column",3,"click"],[1,"actions"],[3,"ngClass"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none",3,"ngClass"],[1,"selectable",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],[3,"numberOfElements","linkParts","queryParams"],[1,"selection-col"],[3,"change","checked"],["mat-button","",1,"action-button","subtle-transparent-button",3,"matTooltip"],[3,"labelEdited","id"],["mat-button","",1,"action-button","transparent-button",3,"matTooltip"],["mat-button","",1,"action-button","subtle-transparent-button",3,"click","matTooltip"],[1,"persistent-icon","default-cursor",3,"inline"],[1,"persistent-icon","grey-text",3,"inline"],[3,"labelEdited","id","elementType"],["mat-button","",1,"action-button","transparent-button",3,"click","matTooltip"],[1,"list-item-container",3,"ngClass"],[1,"check-part"],[1,"list-row"],[1,"list-row","long-content"],[3,"id","elementType"],[1,"margin-part"],["mat-icon-button","",1,"transparent-button",3,"click","matTooltip"],[1,"persistent-icon",3,"inline"],[1,"yellow-clear-text","title"],[1,"box-internal-container"],[1,"alert-icon",3,"inline"],[1,"font-sm"]],template:function(i,o){1&i&&(f(0,"div",1)(1,"div",2),S(2,rCe,6,7,"span",3),S(3,cCe,6,3,"div",4),h(),f(4,"div",5)(5,"div",6)(6,"mat-icon",7),L("click",function(){return o.create()}),m(7,"add"),h(),S(8,dCe,2,1,"mat-icon",8),S(9,uCe,2,2,"mat-icon",9),f(10,"mat-menu",10,0)(12,"div",11),L("click",function(){return o.changeAllSelections(!0)}),m(13),b(14,"translate"),h(),f(15,"div",11),L("click",function(){return o.changeAllSelections(!1)}),m(16),b(17,"translate"),h(),f(18,"div",12),L("click",function(){return o.changeIfPersistentOfSelected(!0)}),m(19),b(20,"translate"),h(),f(21,"div",12),L("click",function(){return o.changeIfPersistentOfSelected(!1)}),m(22),b(23,"translate"),h(),f(24,"div",12),L("click",function(){return o.deleteSelected()}),m(25),b(26,"translate"),h()()(),S(27,hCe,1,6,"app-paginator",13),h()(),S(28,$Ce,52,44,"div",14),S(29,qCe,6,3,"div",14),S(30,KCe,1,6,"app-paginator",13)),2&i&&(v("ngClass",oe(32,tCe,!o.showShortList_&&o.numberOfPages>1&&o.dataSource)),d(2),k(o.showShortList_?2:-1),d(),k(o.dataFilterer.currentFiltersTexts&&o.dataFilterer.currentFiltersTexts.length>0?3:-1),d(3),v("inline",!0),d(2),k(o.allTransports&&o.allTransports.length>0?8:-1),d(),k(o.dataSource&&o.dataSource.length>0?9:-1),d(),v("overlapTrigger",!1),d(3),I(" ",y(14,22,"selection.select-all")," "),d(3),I(" ",y(17,24,"selection.unselect-all")," "),d(2),v("disabled",Wt(!o.hasSelectedElements())),d(),I(" ",y(20,26,"transports.make-selected-persistent")," "),d(2),v("disabled",Wt(!o.hasSelectedElements())),d(),I(" ",y(23,28,"transports.make-selected-non-persistent")," "),d(2),v("disabled",Wt(!o.hasSelectedElements())),d(),I(" ",y(26,30,"selection.delete-all")," "),d(2),k(!o.showShortList_&&o.numberOfPages>1&&o.dataSource?27:-1),d(),k(o.dataSource&&o.dataSource.length>0?28:-1),d(),k(o.dataSource&&0!==o.dataSource.length?-1:29),d(),k(!o.showShortList_&&o.numberOfPages>1&&o.dataSource?30:-1))},dependencies:[qt,Jn,Ms,lt,pn,Xr,Ps,lu,kr,cv,cu,lc,Se,Kf],styles:[".overflow[_ngcontent-%COMP%]{display:block;width:100%;overflow-x:auto}.overflow[_ngcontent-%COMP%] table[_ngcontent-%COMP%]{width:100%}.actions[_ngcontent-%COMP%]{text-align:right;width:90px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}.small-column[_ngcontent-%COMP%]{width:1px;text-align:center}.persistent-icon[_ngcontent-%COMP%]{font-size:14px!important;color:#d48b05}.offline[_ngcontent-%COMP%]{opacity:.35}"],changeDetection:0})}}return t})();function YCe(t,n){1&t&&(f(0,"div",4)(1,"mat-icon",2),m(2,"settings"),h(),m(3),b(4,"translate"),h()),2&t&&(d(),v("inline",!0),d(2),I("",y(4,2,"routes.details.specific-fields-titles.app")," "))}function XCe(t,n){1&t&&(f(0,"div",4)(1,"mat-icon",2),m(2,"swap_horiz"),h(),m(3),b(4,"translate"),h()),2&t&&(d(),v("inline",!0),d(2),I("",y(4,2,"routes.details.specific-fields-titles.forward")," "))}function ZCe(t,n){1&t&&(f(0,"div",4)(1,"mat-icon",2),m(2,"arrow_forward"),h(),m(3),b(4,"translate"),h()),2&t&&(d(),v("inline",!0),d(2),I("",y(4,2,"routes.details.specific-fields-titles.intermediary-forward")," "))}function QCe(t,n){if(1&t&&(f(0,"div")(1,"div",3)(2,"span"),m(3),b(4,"translate"),h(),m(5),h(),f(6,"div",3)(7,"span"),m(8),b(9,"translate"),h(),m(10),h()()),2&t){const e=C(2);d(3),O(y(4,5,"routes.details.specific-fields.route-id")),d(2),I(" ",e.routeRule.forwardFields?e.routeRule.forwardFields.nextRid:e.routeRule.intermediaryForwardFields.nextRid," "),d(3),O(y(9,7,"routes.details.specific-fields.transport-id")),d(2),Hn(" ",e.routeRule.forwardFields?e.routeRule.forwardFields.nextTid:e.routeRule.intermediaryForwardFields.nextTid," ",e.getLabel(e.routeRule.forwardFields?e.routeRule.forwardFields.nextTid:e.routeRule.intermediaryForwardFields.nextTid)," ")}}function JCe(t,n){if(1&t&&(f(0,"div")(1,"div",3)(2,"span"),m(3),b(4,"translate"),h(),m(5),h(),f(6,"div",3)(7,"span"),m(8),b(9,"translate"),h(),m(10),h(),f(11,"div",3)(12,"span"),m(13),b(14,"translate"),h(),m(15),h(),f(16,"div",3)(17,"span"),m(18),b(19,"translate"),h(),m(20),h()()),2&t){const e=C(2);d(3),O(y(4,10,"routes.details.specific-fields.destination-pk")),d(2),Hn(" ",e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.dstPk:e.routeRule.forwardFields.routeDescriptor.dstPk," ",e.getLabel(e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.dstPk:e.routeRule.forwardFields.routeDescriptor.dstPk)," "),d(3),O(y(9,12,"routes.details.specific-fields.source-pk")),d(2),Hn(" ",e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.srcPk:e.routeRule.forwardFields.routeDescriptor.srcPk," ",e.getLabel(e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.srcPk:e.routeRule.forwardFields.routeDescriptor.srcPk)," "),d(3),O(y(14,14,"routes.details.specific-fields.destination-port")),d(2),I(" ",e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.dstPort:e.routeRule.forwardFields.routeDescriptor.dstPort," "),d(3),O(y(19,16,"routes.details.specific-fields.source-port")),d(2),I(" ",e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.srcPort:e.routeRule.forwardFields.routeDescriptor.srcPort," ")}}function e1e(t,n){if(1&t&&(f(0,"div")(1,"div",4)(2,"mat-icon",2),m(3,"list"),h(),m(4),b(5,"translate"),h(),f(6,"div",3)(7,"span"),m(8),b(9,"translate"),h(),m(10),h(),f(11,"div",3)(12,"span"),m(13),b(14,"translate"),h(),m(15),h(),f(16,"div",3)(17,"span"),m(18),b(19,"translate"),h(),m(20),h(),S(21,YCe,5,4,"div",4),S(22,XCe,5,4,"div",4),S(23,ZCe,5,4,"div",4),S(24,QCe,11,9,"div"),S(25,JCe,21,18,"div"),h()),2&t){const e=C();d(2),v("inline",!0),d(2),I("",y(5,13,"routes.details.summary.title")," "),d(4),O(y(9,15,"routes.details.summary.keep-alive")),d(2),I(" ",e.routeRule.ruleSummary.keepAlive," "),d(3),O(y(14,17,"routes.details.summary.type")),d(2),I(" ",e.getRuleTypeName(e.routeRule.ruleSummary.ruleType)," "),d(3),O(y(19,19,"routes.details.summary.key-route-id")),d(2),I(" ",e.routeRule.ruleSummary.keyRouteId," "),d(),k(e.routeRule.appFields?21:-1),d(),k(e.routeRule.forwardFields?22:-1),d(),k(e.routeRule.intermediaryForwardFields?23:-1),d(),k(e.routeRule.forwardFields||e.routeRule.intermediaryForwardFields?24:-1),d(),k(e.routeRule.appFields&&e.routeRule.appFields.routeDescriptor||e.routeRule.forwardFields&&e.routeRule.forwardFields.routeDescriptor?25:-1)}}let t1e=(()=>{class t{static openDialog(e,i){const o=new Lt;return o.data=i,o.autoFocus=!1,o.width=ze.largeModalWidth,e.open(t,o)}constructor(e,i,o){this.dialogRef=i,this.storageService=o,this.ruleTypes=new Map([[0,"App"],[1,"Forward"],[2,"Intermediary forward"]]),this.routeRule=e}getRuleTypeName(e){return this.ruleTypes.has(e)?this.ruleTypes.get(e):e.toString()}closePopup(){this.dialogRef.close()}getLabel(e){const i=this.storageService.getLabelInfo(e);return i?" ("+i.label+")":""}static{this.\u0275fac=function(i){return new(i||t)(P(hn),P(It),P(zn))}}static{this.\u0275cmp=se({type:t,selectors:[["app-route-details"]],standalone:!1,decls:19,vars:17,consts:[[1,"info-dialog",3,"headline","dialog"],[1,"title","mt-0"],[3,"inline"],[1,"item"],[1,"title"]],template:function(i,o){1&i&&(f(0,"app-dialog",0),b(1,"translate"),f(2,"div")(3,"div",1)(4,"mat-icon",2),m(5,"list"),h(),m(6),b(7,"translate"),h(),f(8,"div",3)(9,"span"),m(10),b(11,"translate"),h(),m(12),h(),f(13,"div",3)(14,"span"),m(15),b(16,"translate"),h(),m(17),h(),S(18,e1e,26,21,"div"),h()()),2&i&&(v("headline",y(1,9,"routes.details.title"))("dialog",o.dialogRef),d(4),v("inline",!0),d(2),I("",y(7,11,"routes.details.basic.title")," "),d(4),O(y(11,13,"routes.details.basic.key")),d(2),I(" ",o.routeRule.key," "),d(3),O(y(16,15,"routes.details.basic.rule")),d(2),I(" ",o.routeRule.rule," "),d(),k(o.routeRule.ruleSummary?18:-1))},dependencies:[lt,Kt,Se],encapsulation:2})}}return t})(),v5=(()=>{class t{constructor(e){this.apiService=e}get(e,i){return this.apiService.get(`visors/${e}/routes/${i}`)}delete(e,i){return this.apiService.delete(`visors/${e}/routes/${i}`)}setMinHops(e,i){return this.apiService.post(`visors/${e}/min-hops`,{min_hops:i})}static{this.\u0275fac=function(i){return new(i||t)(le(br))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const n1e=t=>({"paginator-icons-fixer":t}),Mk=t=>["/nodes",t,"routes"],i1e=(t,n)=>({"small-node-list-margins":t,"full-node-list-margins":n}),o1e=t=>({"d-lg-none d-xl-table":t}),r1e=t=>({"d-lg-table d-xl-none":t});function s1e(t,n){1&t&&(f(0,"span",3),m(1),b(2,"translate"),f(3,"mat-icon",14),b(4,"translate"),m(5,"help"),h()()),2&t&&(d(),I(" ",y(2,3,"routes.title")," "),d(2),v("inline",!0)("matTooltip",y(4,5,"routes.info")))}function a1e(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,C().$implicit.translatableValue)," ")}function l1e(t,n){1&t&&m(0),2&t&&I(" ",C().$implicit.value," ")}function c1e(t,n){if(1&t&&(f(0,"div",16)(1,"span"),m(2),b(3,"translate"),h(),S(4,a1e,2,3),S(5,l1e,1,1),h()),2&t){const e=n.$implicit;d(2),I("",y(3,3,e.filterName),": "),d(2),k(e.translatableValue?4:-1),d(),k(e.value?5:-1)}}function d1e(t,n){if(1&t){const e=ce();f(0,"div",15),L("click",function(){return z(e),$(C().dataFilterer.removeFilters())}),we(1,c1e,6,5,"div",16,Re),f(3,"div",17),m(4),b(5,"translate"),h()()}if(2&t){const e=C();d(),xe(e.dataFilterer.currentFiltersTexts),d(3),O(y(5,1,"filters.press-to-remove"))}}function u1e(t,n){if(1&t){const e=ce();f(0,"mat-icon",18),b(1,"translate"),L("click",function(){return z(e),$(C().dataFilterer.changeFilters())}),m(2,"filter_list"),h()}2&t&&v("inline",!0)("matTooltip",y(1,2,"filters.filter-action"))}function h1e(t,n){1&t&&(f(0,"mat-icon",8),m(1,"more_horiz"),h()),2&t&&(C(),v("matMenuTriggerFor",Vn(9)))}function f1e(t,n){if(1&t&&B(0,"app-paginator",12),2&t){const e=C();v("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",oe(4,Mk,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function p1e(t,n){if(1&t&&(f(0,"mat-icon",22),m(1),h()),2&t){const e=C(2);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function m1e(t,n){if(1&t&&(f(0,"mat-icon",22),m(1),h()),2&t){const e=C(2);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function g1e(t,n){if(1&t&&(f(0,"mat-icon",22),m(1),h()),2&t){const e=C(2);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function _1e(t,n){if(1&t&&(f(0,"mat-icon",22),m(1),h()),2&t){const e=C(2);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function b1e(t,n){if(1&t){const e=ce();f(0,"td")(1,"app-labeled-element-text",33),L("labelEdited",function(){return z(e),$(C(3).refreshData())}),h()(),f(2,"td")(3,"app-labeled-element-text",33),L("labelEdited",function(){return z(e),$(C(3).refreshData())}),h()()}if(2&t){const e=C().$implicit,i=C(2);d(),v("id",Wt(e.src))("short",!0)("elementType",i.labeledElementTypes.Node),d(2),v("id",Wt(e.dst))("short",!0)("elementType",i.labeledElementTypes.Node)}}function v1e(t,n){if(1&t){const e=ce();f(0,"td"),m(1,"---"),h(),f(2,"td")(3,"app-labeled-element-text",34),L("labelEdited",function(){return z(e),$(C(3).refreshData())}),h()()}if(2&t){const e=C().$implicit,i=C(2);d(3),v("id",Wt(e.dst))("short",!0)("elementType",i.labeledElementTypes.Transport)}}function y1e(t,n){1&t&&(f(0,"td"),m(1,"---"),h(),f(2,"td"),m(3,"---"),h())}function C1e(t,n){if(1&t){const e=ce();f(0,"tr")(1,"td",30)(2,"mat-checkbox",31),L("change",function(){const o=z(e).$implicit;return $(C(2).changeSelection(o))}),h()(),f(3,"td"),m(4),h(),f(5,"td"),m(6),h(),S(7,b1e,4,8),S(8,v1e,4,4),S(9,y1e,4,0),f(10,"td",23)(11,"button",32),b(12,"translate"),L("click",function(){const o=z(e).$implicit;return $(C(2).details(o))}),f(13,"mat-icon",22),m(14,"visibility"),h()(),f(15,"button",32),b(16,"translate"),L("click",function(){const o=z(e).$implicit;return $(C(2).delete(o.key))}),f(17,"mat-icon",22),m(18,"close"),h()()()()}if(2&t){const e=n.$implicit,i=C(2);d(2),v("checked",i.selections.get(e.key)),d(2),I(" ",e.key," "),d(2),I(" ",i.getTypeName(e.type)," "),d(),k(e.appFields||e.forwardFields?7:-1),d(),k(e.appFields||e.forwardFields||!e.intermediaryForwardFields?-1:8),d(),k(e.appFields||e.forwardFields||e.intermediaryForwardFields?-1:9),d(2),v("matTooltip",y(12,10,"routes.details.title")),d(2),v("inline",!0),d(2),v("matTooltip",y(16,12,"routes.delete")),d(2),v("inline",!0)}}function w1e(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"tables.label")," ")}function x1e(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"tables.inverted-order")," ")}function S1e(t,n){if(1&t){const e=ce();f(0,"div",36)(1,"span",2),m(2),b(3,"translate"),h(),m(4,": "),f(5,"app-labeled-element-text",39),L("labelEdited",function(){return z(e),$(C(3).refreshData())}),h()(),f(6,"div",36)(7,"span",2),m(8),b(9,"translate"),h(),m(10,": "),f(11,"app-labeled-element-text",39),L("labelEdited",function(){return z(e),$(C(3).refreshData())}),h()()}if(2&t){const e=C().$implicit,i=C(2);d(2),O(y(3,8,"routes.source")),d(3),v("id",Wt(e.src))("elementType",i.labeledElementTypes.Node),d(3),O(y(9,10,"routes.destination")),d(3),v("id",Wt(e.dst))("elementType",i.labeledElementTypes.Node)}}function k1e(t,n){if(1&t){const e=ce();f(0,"div",36)(1,"span",2),m(2),b(3,"translate"),h(),m(4,": --- "),h(),f(5,"div",36)(6,"span",2),m(7),b(8,"translate"),h(),m(9,": "),f(10,"app-labeled-element-text",39),L("labelEdited",function(){return z(e),$(C(3).refreshData())}),h()()}if(2&t){const e=C().$implicit,i=C(2);d(2),O(y(3,5,"routes.source")),d(5),O(y(8,7,"routes.destination")),d(3),v("id",Wt(e.dst))("elementType",i.labeledElementTypes.Transport)}}function D1e(t,n){1&t&&(f(0,"div",36)(1,"span",2),m(2),b(3,"translate"),h(),m(4,": --- "),h(),f(5,"div",36)(6,"span",2),m(7),b(8,"translate"),h(),m(9,": --- "),h()),2&t&&(d(2),O(y(3,2,"routes.source")),d(5),O(y(8,4,"routes.destination")))}function T1e(t,n){if(1&t){const e=ce();f(0,"tr")(1,"td")(2,"div",26)(3,"div",35)(4,"mat-checkbox",31),L("change",function(){const o=z(e).$implicit;return $(C(2).changeSelection(o))}),h()(),f(5,"div",27)(6,"div",36)(7,"span",2),m(8),b(9,"translate"),h(),m(10),h(),f(11,"div",36)(12,"span",2),m(13),b(14,"translate"),h(),m(15),h(),S(16,S1e,12,12),S(17,k1e,11,9),S(18,D1e,10,6),h(),B(19,"div",37),f(20,"div",28)(21,"button",38),b(22,"translate"),L("click",function(o){const r=z(e).$implicit,s=C(2);return o.stopPropagation(),$(s.showOptionsDialog(r))}),f(23,"mat-icon"),m(24),h()()()()()()}if(2&t){const e=n.$implicit,i=C(2);d(4),v("checked",i.selections.get(e.key)),d(4),O(y(9,10,"routes.key")),d(2),I(": ",e.key," "),d(3),O(y(14,12,"routes.type")),d(2),I(": ",i.getTypeName(e.type)," "),d(),k(e.appFields||e.forwardFields?16:-1),d(),k(e.appFields||e.forwardFields||!e.intermediaryForwardFields?-1:17),d(),k(e.appFields||e.forwardFields||e.intermediaryForwardFields?-1:18),d(3),v("matTooltip",y(22,14,"common.options")),d(3),O("add")}}function M1e(t,n){if(1&t&&B(0,"app-view-all-link",29),2&t){const e=C(2);v("numberOfElements",e.filteredRoutes.length)("linkParts",oe(3,Mk,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function E1e(t,n){if(1&t){const e=ce();f(0,"div",13)(1,"div",19)(2,"table",20)(3,"tr"),B(4,"th"),f(5,"th",21),L("click",function(){z(e);const o=C();return $(o.dataSorter.changeSortingOrder(o.keySortData))}),m(6),b(7,"translate"),S(8,p1e,2,2,"mat-icon",22),h(),f(9,"th",21),L("click",function(){z(e);const o=C();return $(o.dataSorter.changeSortingOrder(o.typeSortData))}),m(10),b(11,"translate"),S(12,m1e,2,2,"mat-icon",22),h(),f(13,"th",21),L("click",function(){z(e);const o=C();return $(o.dataSorter.changeSortingOrder(o.sourceSortData))}),m(14),b(15,"translate"),S(16,g1e,2,2,"mat-icon",22),h(),f(17,"th",21),L("click",function(){z(e);const o=C();return $(o.dataSorter.changeSortingOrder(o.destinationSortData))}),m(18),b(19,"translate"),S(20,_1e,2,2,"mat-icon",22),h(),B(21,"th",23),h(),we(22,C1e,19,14,"tr",null,Re),h(),f(24,"table",24)(25,"tr",25),L("click",function(){return z(e),$(C().dataSorter.openSortingOrderModal())}),f(26,"td")(27,"div",26)(28,"div",27)(29,"div",2),m(30),b(31,"translate"),h(),f(32,"div"),m(33),b(34,"translate"),S(35,w1e,2,3),S(36,x1e,2,3),h()(),f(37,"div",28)(38,"mat-icon",22),m(39,"keyboard_arrow_down"),h()()()()(),we(40,T1e,25,16,"tr",null,Re),h(),S(42,M1e,1,5,"app-view-all-link",29),h()()}if(2&t){const e=C();d(),v("ngClass",ft(29,i1e,e.showShortList_,!e.showShortList_)),d(),v("ngClass",oe(32,o1e,e.showShortList_)),d(4),I(" ",y(7,17,"routes.key")," "),d(2),k(e.dataSorter.currentSortingColumn===e.keySortData?8:-1),d(2),I(" ",y(11,19,"routes.type")," "),d(2),k(e.dataSorter.currentSortingColumn===e.typeSortData?12:-1),d(2),I(" ",y(15,21,"routes.source")," "),d(2),k(e.dataSorter.currentSortingColumn===e.sourceSortData?16:-1),d(2),I(" ",y(19,23,"routes.destination")," "),d(2),k(e.dataSorter.currentSortingColumn===e.destinationSortData?20:-1),d(2),xe(e.dataSource),d(2),v("ngClass",oe(34,r1e,e.showShortList_)),d(6),O(y(31,25,"tables.sorting-title")),d(3),I("",y(34,27,e.dataSorter.currentSortingColumn.label)," "),d(2),k(e.dataSorter.currentlySortingByLabel?35:-1),d(),k(e.dataSorter.sortingInReverseOrder?36:-1),d(2),v("inline",!0),d(2),xe(e.dataSource),d(2),k(e.showShortList_&&e.numberOfPages>1?42:-1)}}function I1e(t,n){1&t&&(f(0,"span",42),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"routes.empty")))}function P1e(t,n){1&t&&(f(0,"span",42),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"routes.empty-with-filter")))}function O1e(t,n){if(1&t&&(f(0,"div",13)(1,"div",40)(2,"mat-icon",41),m(3,"warning"),h(),S(4,I1e,3,3,"span",42),S(5,P1e,3,3,"span",42),h()()),2&t){const e=C();d(2),v("inline",!0),d(2),k(0===e.allRoutes.length?4:-1),d(),k(0!==e.allRoutes.length?5:-1)}}function A1e(t,n){if(1&t&&B(0,"app-paginator",12),2&t){const e=C();v("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",oe(4,Mk,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}let y5=(()=>{class t{set showShortList(e){this.showShortList_=e,this.dataSorter.setData(this.filteredRoutes)}set routes(e){if(!e)return;const i=performance.now();console.log("[HV-DIAG] route-list setter called, routes:",e.length);const o=e.map(r=>r.key).sort().join(",");if(o===this.lastRouteKeys&&e.length===this.lastRouteCount)return this.cdr.markForCheck(),void console.log("[HV-DIAG] route-list skip (unchanged) took",(performance.now()-i).toFixed(1),"ms");console.log("[HV-DIAG] route-list FULL reprocessing",e.length,"routes"),this.lastRouteCount=e.length,this.lastRouteKeys=o,this.allRoutes=e,this.allRoutes.forEach(r=>{if(r.type=r.ruleSummary.ruleType||0===r.ruleSummary.ruleType?r.ruleSummary.ruleType:"",r.appFields||r.forwardFields){const s=r.appFields?r.appFields.routeDescriptor:r.forwardFields.routeDescriptor;r.src=s.srcPk,r.src_label=lc.getCompleteLabel(this.storageService,this.translateService,r.src),r.dst=s.dstPk,r.dst_label=lc.getCompleteLabel(this.storageService,this.translateService,r.dst)}else r.intermediaryForwardFields?(r.src="",r.src_label="",r.dst=r.intermediaryForwardFields.nextTid,r.dst_label=lc.getCompleteLabel(this.storageService,this.translateService,r.dst)):(r.src="",r.src_label="",r.dst="",r.dst_label="")}),this.dataFilterer.setData(this.allRoutes)}constructor(e,i,o,r,s,a,l,c){this.routeService=e,this.dialog=i,this.route=o,this.router=r,this.snackbarService=s,this.translateService=a,this.storageService=l,this.cdr=c,this.listId="rl",this.keySortData=new Pt(["key"],"routes.key",ct.Number),this.typeSortData=new Pt(["type"],"routes.type",ct.Number),this.sourceSortData=new Pt(["src"],"routes.source",ct.Text,["src_label"]),this.destinationSortData=new Pt(["dst"],"routes.destination",ct.Text,["dst_label"]),this.labeledElementTypes=io,this.selections=new Map,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.lastRouteCount=-1,this.lastRouteKeys="",this.filterProperties=[{filterName:"routes.filter-dialog.key",keyNameInElementsArray:"key",type:mn.TextInput,maxlength:8},{filterName:"routes.filter-dialog.source",keyNameInElementsArray:"src",secondaryKeyNameInElementsArray:"src_label",type:mn.TextInput,maxlength:66},{filterName:"routes.filter-dialog.destination",keyNameInElementsArray:"dst",secondaryKeyNameInElementsArray:"dst_label",type:mn.TextInput,maxlength:66}],this.ruleTypes=new Map([[0,"App"],[1,"Forward"],[2,"Int. forward"]]),this.operationSubscriptionsGroup=[],this.dataSorter=new ru(this.dialog,this.translateService,this.storageService,[this.keySortData,this.typeSortData,this.sourceSortData,this.destinationSortData],0,this.listId),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()});const p={filterName:"routes.filter-dialog.type",keyNameInElementsArray:"type",type:mn.Select,printableLabelsForValues:[{value:"",label:"routes.filter-dialog.any-type-option"}]};this.ruleTypes.forEach((g,_)=>{p.printableLabelsForValues.push({value:_+"",label:g})}),this.filterProperties=[p].concat(this.filterProperties),this.dataFilterer=new su(this.dialog,this.route,this.router,this.filterProperties,this.listId),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(g=>{this.filteredRoutes=g,this.dataSorter.setData(this.filteredRoutes)}),this.navigationsSubscription=this.route.paramMap.subscribe(g=>{if(g.has("page")){let _=Number.parseInt(g.get("page"),10);(isNaN(_)||_<1)&&(_=1),this.currentPageInUrl=_,this.recalculateElementsToShow()}})}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.operationSubscriptionsGroup.forEach(e=>e.unsubscribe()),this.dataSortedSubscription.unsubscribe(),this.dataFiltererSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFilterer.dispose()}refreshData(){ke.refreshCurrentDisplayedData()}getTypeName(e){return this.ruleTypes.has(e)?this.ruleTypes.get(e):"Unknown"}changeSelection(e){this.selections.get(e.key)?this.selections.set(e.key,!1):this.selections.set(e.key,!0)}hasSelectedElements(){if(!this.selections)return!1;let e=!1;return this.selections.forEach(i=>{i&&(e=!0)}),e}changeAllSelections(e){this.selections.forEach((i,o)=>{this.selections.set(o,e)})}deleteSelected(){const e=Ye.createConfirmationDialog(this.dialog,"routes.delete-selected-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.showProcessing();const i=[];this.selections.forEach((o,r)=>{o&&i.push(r)}),this.deleteRecursively(i,e)})}showOptionsDialog(e){oo.openDialog(this.dialog,[{icon:"visibility",label:"routes.details.title"},{icon:"close",label:"routes.delete"}],"common.options").afterClosed().subscribe(o=>{1===o?this.details(e):2===o&&this.delete(e.key)})}details(e){t1e.openDialog(this.dialog,e)}delete(e){const i=Ye.createConfirmationDialog(this.dialog,"routes.delete-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.componentInstance.showProcessing(),this.operationSubscriptionsGroup.push(this.startDeleting(e).subscribe(()=>{i.close(),ke.refreshCurrentDisplayedData(),this.snackbarService.showDone("routes.deleted")},o=>{o=Je(o),i.componentInstance.showDone("confirmation.error-header-text",o.translatableErrorMsg)}))})}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredRoutes){const e=this.showShortList_?ze.maxShortListElements:ze.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredRoutes.length/e),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const i=e*(this.currentPage-1);this.routesToShow=this.filteredRoutes.slice(i,i+e);const r=new Map;this.routesToShow.forEach(a=>{r.set(a.key,!0),this.selections.has(a.key)||this.selections.set(a.key,!1)});const s=[];this.selections.forEach((a,l)=>{r.has(l)||s.push(l)}),s.forEach(a=>{this.selections.delete(a)})}else this.routesToShow=null,this.selections=new Map;this.dataSource=this.routesToShow,this.cdr.markForCheck()}startDeleting(e){return this.routeService.delete(ke.getCurrentNodeKey(),e.toString())}deleteRecursively(e,i){this.operationSubscriptionsGroup.push(this.startDeleting(e[e.length-1]).subscribe(()=>{e.pop(),0===e.length?(i.close(),ke.refreshCurrentDisplayedData(),this.snackbarService.showDone("routes.deleted")):this.deleteRecursively(e,i)},o=>{ke.refreshCurrentDisplayedData(),o=Je(o),i.componentInstance.showDone("confirmation.error-header-text",o.translatableErrorMsg)}))}static{this.\u0275fac=function(i){return new(i||t)(P(v5),P(kt),P(Ei),P(vt),P(bt),P(zo),P(zn),P(Pn))}}static{this.\u0275cmp=se({type:t,selectors:[["app-route-list"]],inputs:{nodePK:"nodePK",showShortList:"showShortList",routes:"routes"},standalone:!1,decls:23,vars:23,consts:[["selectionMenu","matMenu"],[1,"generic-title-container","mt-4.5","d-flex",3,"ngClass"],[1,"title"],[1,"uppercase"],[1,"filter-label","subtle-transparent-button","cursor-pointer"],[1,"options"],[1,"options-container"],[1,"small-icon",3,"inline","matTooltip"],[3,"matMenuTriggerFor"],[3,"overlapTrigger"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"click","disabled"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"rounded-elevated-box","mt-3"],[1,"help","d-none","d-md-inline",3,"inline","matTooltip"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],[1,"item"],[1,"transparent-50"],[1,"small-icon",3,"click","inline","matTooltip"],[1,"box-internal-container","overflow",3,"ngClass"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table",3,"ngClass"],[1,"sortable-column",3,"click"],[3,"inline"],[1,"actions"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none",3,"ngClass"],[1,"selectable",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],[3,"numberOfElements","linkParts","queryParams"],[1,"selection-col"],[3,"change","checked"],["mat-button","",1,"action-button","transparent-button",3,"click","matTooltip"],["shortTextLength","7",3,"labelEdited","short","id","elementType"],["shortTextLength","5",3,"labelEdited","short","id","elementType"],[1,"check-part"],[1,"list-row","long-content"],[1,"margin-part"],["mat-icon-button","",1,"transparent-button",3,"click","matTooltip"],[3,"labelEdited","id","elementType"],[1,"box-internal-container"],[1,"alert-icon",3,"inline"],[1,"font-sm"]],template:function(i,o){1&i&&(f(0,"div",1)(1,"div",2),S(2,s1e,6,7,"span",3),S(3,d1e,6,3,"div",4),h(),f(4,"div",5)(5,"div",6),S(6,u1e,3,4,"mat-icon",7),S(7,h1e,2,1,"mat-icon",8),f(8,"mat-menu",9,0)(10,"div",10),L("click",function(){return o.changeAllSelections(!0)}),m(11),b(12,"translate"),h(),f(13,"div",10),L("click",function(){return o.changeAllSelections(!1)}),m(14),b(15,"translate"),h(),f(16,"div",11),L("click",function(){return o.deleteSelected()}),m(17),b(18,"translate"),h()()(),S(19,f1e,1,6,"app-paginator",12),h()(),S(20,E1e,43,36,"div",13),S(21,O1e,6,3,"div",13),S(22,A1e,1,6,"app-paginator",12)),2&i&&(v("ngClass",oe(21,n1e,!o.showShortList_&&o.numberOfPages>1&&o.dataSource)),d(2),k(o.showShortList_?2:-1),d(),k(o.dataFilterer.currentFiltersTexts&&o.dataFilterer.currentFiltersTexts.length>0?3:-1),d(3),k(o.allRoutes&&o.allRoutes.length>0?6:-1),d(),k(o.dataSource&&o.dataSource.length>0?7:-1),d(),v("overlapTrigger",!1),d(3),I(" ",y(12,15,"selection.select-all")," "),d(3),I(" ",y(15,17,"selection.unselect-all")," "),d(2),v("disabled",Wt(!o.hasSelectedElements())),d(),I(" ",y(18,19,"selection.delete-all")," "),d(2),k(!o.showShortList_&&o.numberOfPages>1&&o.dataSource?19:-1),d(),k(o.dataSource&&o.dataSource.length>0?20:-1),d(),k(o.dataSource&&0!==o.dataSource.length?-1:21),d(),k(!o.showShortList_&&o.numberOfPages>1&&o.dataSource?22:-1))},dependencies:[qt,Jn,Ms,lt,pn,Xr,Ps,lu,kr,cv,cu,lc,Se],styles:[".actions[_ngcontent-%COMP%]{text-align:right;width:90px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}"],changeDetection:0})}}return t})(),R1e=(()=>{class t extends Wn{ngOnInit(){return this.dataSubscription=ke.currentNode.subscribe(e=>{this.nodePK=e.localPk,this.node=e,this.routes=e.routes}),super.ngOnInit()}ngOnDestroy(){this.dataSubscription.unsubscribe()}static{this.\u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})()}static{this.\u0275cmp=se({type:t,selectors:[["app-routing"]],standalone:!1,features:[be],decls:2,vars:5,consts:[[3,"node","showShortList"],[3,"routes","showShortList","nodePK"]],template:function(i,o){1&i&&B(0,"app-transport-list",0)(1,"app-route-list",1),2&i&&(v("node",o.node)("showShortList",!0),d(),v("routes",o.routes)("showShortList",!0)("nodePK",o.nodePK))},dependencies:[b5,y5],encapsulation:2})}}return t})();function N1e(t,n){if(1&t&&(f(0,"mat-option",5),m(1),b(2,"translate"),h()),2&t){const e=n.$implicit;v("value",e.days),d(),O(y(2,2,e.text))}}let F1e=(()=>{class t{static openDialog(e,i){const o=new Lt;return o.data=i,o.autoFocus=!1,o.width=ze.smallModalWidth,e.open(t,o)}constructor(e,i,o){this.data=e,this.dialogRef=i,this.formBuilder=o}ngOnInit(){this.filters=[{text:"apps.log.filter.7-days",days:7},{text:"apps.log.filter.1-month",days:30},{text:"apps.log.filter.3-months",days:90},{text:"apps.log.filter.6-months",days:180},{text:"apps.log.filter.1-year",days:365},{text:"apps.log.filter.all",days:-1}],this.form=this.formBuilder.group({filter:[this.data.days]}),this.formSubscription=this.form.get("filter").valueChanges.subscribe(e=>{this.dialogRef.close(this.filters.find(i=>i.days===e))})}ngOnDestroy(){this.formSubscription.unsubscribe()}static{this.\u0275fac=function(i){return new(i||t)(P(hn),P(It),P(pi))}}static{this.\u0275cmp=se({type:t,selectors:[["app-log-filter"]],standalone:!1,decls:11,vars:8,consts:[[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","filter"],[3,"value"]],template:function(i,o){1&i&&(f(0,"app-dialog",0),b(1,"translate"),f(2,"form",1)(3,"mat-form-field")(4,"div",2)(5,"label",3),m(6),b(7,"translate"),h(),f(8,"mat-select",4),we(9,N1e,3,4,"mat-option",5,Re),h()()()()()),2&i&&(v("headline",y(1,4,"apps.log.filter.title"))("dialog",o.dialogRef),d(2),v("formGroup",o.form),d(4),O(y(7,6,"apps.log.filter.filter")),d(3),xe(o.filters))},dependencies:[Cn,sn,yn,Xt,fn,wn,oc,Is,Kt,Se],styles:["mat-form-field[_ngcontent-%COMP%]{margin-bottom:-24px}"]})}}return t})();const L1e=["content"],B1e=t=>({totalLogs:t});function V1e(t,n){if(1&t&&(f(0,"app-button",7)(1,"div",11),m(2),b(3,"translate"),h()()),2&t){const e=C();d(2),I(" ",Ee(3,1,"apps.log.view-all",oe(4,B1e,e.totalLogs))," ")}}function H1e(t,n){if(1&t&&(f(0,"div",8)(1,"span",12),m(2),h(),m(3),h()),2&t){const e=n.$implicit;d(2),I(" ",e.time," "),d(),I(" ",e.msg," ")}}function j1e(t,n){1&t&&(f(0,"div",9),m(1),b(2,"translate"),h()),2&t&&(d(),I(" ",y(2,1,"apps.log.empty")," "))}function U1e(t,n){1&t&&B(0,"app-loading-indicator",10),2&t&&v("showWhite",!1)}let z1e=(()=>{class t{static openDialog(e,i){const o=new Lt;return o.data=i,o.autoFocus=!1,o.width=ze.largeModalWidth,e.open(t,o)}constructor(e,i,o,r,s,a){this.data=e,this.dialogRef=i,this.appsService=o,this.dialog=r,this.snackbarService=s,this.apiService=a,this.logMessages=[],this.hasMoreLogMessages=!1,this.totalLogs=0,this.loading=!1,this.currentFilter={text:"apps.log.filter.7-days",days:7},this.shouldShowError=!0}ngOnInit(){this.loadData(0)}ngOnDestroy(){this.removeSubscription()}filter(){F1e.openDialog(this.dialog,this.currentFilter).afterClosed().subscribe(e=>{e&&(this.currentFilter=e,this.logMessages=[],this.loadData(0))})}getLogsUrl(){return"/"+this.apiService.apiPrefix+this.appsService.getLogMessagesUrl(ke.getCurrentNodeKey(),this.data.name)}loadData(e){this.removeSubscription(),this.loading=!0,this.subscription=ae(1).pipe(ii(e),Et(()=>this.appsService.getLogMessages(ke.getCurrentNodeKey(),this.data.name,this.currentFilter.days))).subscribe(i=>this.onLogsReceived(i),i=>this.onLogsError(i))}removeSubscription(){this.subscription&&this.subscription.unsubscribe()}onLogsReceived(e=[]){this.loading=!1,this.shouldShowError=!0,this.snackbarService.closeCurrentIfTemporaryError();let i=0;this.hasMoreLogMessages=!1,this.totalLogs=e.length,e.forEach(o=>{if(i<5e3){const r=o.startsWith("[")?0:-1,s=-1!==r?o.indexOf("]"):-1;this.logMessages.push(-1!==r&&-1!==s?{time:o.substr(r,s+1),msg:o.substr(s+1)}:{time:"",msg:o})}else this.hasMoreLogMessages=!0;i+=1}),setTimeout(()=>{this.content.nativeElement.scrollTop=this.content.nativeElement.scrollHeight})}onLogsError(e){e=Je(e),this.shouldShowError&&(this.snackbarService.showError("common.loading-error",null,!0,e),this.shouldShowError=!1),this.loadData(ze.connectionRetryDelay)}static{this.\u0275fac=function(i){return new(i||t)(P(hn),P(It),P(Os),P(kt),P(bt),P(br))}}static{this.\u0275cmp=se({type:t,selectors:[["app-log"]],viewQuery:function(i,o){if(1&i&&rt(L1e,5),2&i){let r;ue(r=he())&&(o.content=r.first)}},standalone:!1,decls:20,vars:16,consts:[["content",""],[3,"headline","includeVerticalMargins","includeScrollableArea","dialog"],[1,"top-dialog-button",3,"click"],[1,"top-dialog-button-content"],[1,"actual-value"],[1,"top-dialog-button-margin"],["target","_blank",3,"href"],["color","primary",1,"full-logs-button"],[1,"app-log-message"],[1,"app-log-empty","mt-3"],[3,"showWhite"],[1,"text-container"],[1,"transparent"]],template:function(i,o){1&i&&(f(0,"app-dialog",1),b(1,"translate"),f(2,"div",2),L("click",function(){return o.filter()}),f(3,"div",3)(4,"div")(5,"span"),m(6),b(7,"translate"),h(),f(8,"span",4),m(9),b(10,"translate"),h()()(),B(11,"div",5),h(),f(12,"mat-dialog-content",null,0)(14,"a",6),S(15,V1e,4,6,"app-button",7),h(),we(16,H1e,4,2,"div",8,Re),S(18,j1e,3,3,"div",9),S(19,U1e,1,1,"app-loading-indicator",10),h()()),2&i&&(v("headline",y(1,10,"apps.log.title"))("includeVerticalMargins",!1)("includeScrollableArea",!1)("dialog",o.dialogRef),d(6),I("",y(7,12,"apps.log.filter-button")," "),d(3),O(y(10,14,o.currentFilter.text)),d(5),v("href",o.getLogsUrl(),ho),d(),k(o.hasMoreLogMessages?15:-1),d(),xe(o.logMessages),d(2),k(o.loading||o.logMessages&&0!==o.logMessages.length?-1:18),d(),k(o.loading?19:-1))},dependencies:[Kd,On,Kt,vr,Se],styles:[".mat-mdc-dialog-content[_ngcontent-%COMP%]{font-size:.875rem}.app-log-message[_ngcontent-%COMP%]{margin-top:15px;word-break:break-word}.app-log-message[_ngcontent-%COMP%] .transparent[_ngcontent-%COMP%]{color:#999}.app-log-message[_ngcontent-%COMP%]:first-of-type{margin-top:0}.app-log-message[_ngcontent-%COMP%]:last-of-type{margin-bottom:24px}.top-dialog-button[_ngcontent-%COMP%]{color:#777!important}.top-dialog-button[_ngcontent-%COMP%] .top-dialog-button-content[_ngcontent-%COMP%]{text-align:center}.top-dialog-button[_ngcontent-%COMP%] .top-dialog-button-content[_ngcontent-%COMP%] .actual-value[_ngcontent-%COMP%]{color:#202226}.full-logs-button[_ngcontent-%COMP%] button{width:100%!important;display:block;text-align:center;margin-bottom:15px}.full-logs-button[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]{width:100%}"]})}}return t})();const $1e=["button"],W1e=["firstInput"],Ek=t=>({"element-disabled":t});function G1e(t,n){if(1&t&&(f(0,"mat-form-field",4)(1,"div",5)(2,"label",10),m(3),b(4,"translate"),h(),B(5,"input",11),h()()),2&t){const e=C();v("ngClass",oe(4,Ek,e.disableDismiss)),d(3),O(y(4,2,"apps.vpn-socks-server-settings.netifc"))}}function q1e(t,n){if(1&t){const e=ce();f(0,"div",8)(1,"mat-checkbox",12),L("change",function(o){return z(e),$(C().setSecureMode(o))}),m(2),b(3,"translate"),f(4,"mat-icon",13),b(5,"translate"),m(6,"help"),h()()()}if(2&t){const e=C();d(),v("checked",e.secureMode)("ngClass",oe(9,Ek,e.disableDismiss)),d(),I(" ",y(3,5,"apps.vpn-socks-server-settings.secure-mode-check")," "),d(2),v("inline",!0)("matTooltip",y(5,7,"apps.vpn-socks-server-settings.secure-mode-info"))}}let K1e=(()=>{class t{static openDialog(e,i){const o=new Lt;return o.data=i,o.autoFocus=!1,o.width=ze.mediumModalWidth,e.open(t,o)}constructor(e,i,o,r,s,a){this.data=e,this.appsService=i,this.formBuilder=o,this.dialogRef=r,this.snackbarService=s,this.dialog=a,this.configuringVpn=!1,this.secureMode=!1,-1!==e.name.toLocaleLowerCase().indexOf("vpn")&&(this.configuringVpn=!0)}ngOnInit(){if(this.form=this.formBuilder.group({whitelist:["",this.validateWhitelist.bind(this)],netifc:[""]}),this.data.args&&this.data.args.length>0)for(let e=0;ethis.firstInput.nativeElement.focus())}ngOnDestroy(){this.formSubscription&&this.formSubscription.unsubscribe(),this.operationSubscription&&this.operationSubscription.unsubscribe()}get disableDismiss(){return!!this.button&&this.button.isLoading}setSecureMode(e){this.button.disabled||(this.secureMode=!!e.checked)}saveChanges(){if(!this.form.valid||this.button.disabled)return;const i=this.normalizedWhitelist()?"apps.vpn-socks-server-settings.set-whitelist-confirmation":"apps.vpn-socks-server-settings.clear-whitelist-confirmation",o=Ye.createConfirmationDialog(this.dialog,i);o.componentInstance.operationAccepted.subscribe(()=>{o.close(),this.continueSavingChanges()})}continueSavingChanges(){this.button.showLoading();const e={whitelist:this.normalizedWhitelist()};this.configuringVpn&&(e.secure=this.secureMode,e.netifc=this.form.get("netifc").value),this.operationSubscription=this.appsService.changeAppSettings(ke.getCurrentNodeKey(),this.data.name,e).subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)})}normalizedWhitelist(){const e=(this.form.get("whitelist").value||"").trim();return""===e?"":e.split(/[\s,]+/).filter(i=>i.length>0).join(",")}onSuccess(){ke.refreshCurrentDisplayedData(),this.snackbarService.showDone("apps.vpn-socks-server-settings.changes-made"),this.dialogRef.close()}onError(e){this.button.showError(),e=Je(e),this.snackbarService.showError(e)}validateWhitelist(e){const i=(e&&(e.value||"")).trim();if(""===i)return null;for(const o of i.split(/[\s,]+/))if(""!==o&&(66!==o.length||!/^[0-9a-fA-F]+$/.test(o)))return{invalid:!0};return null}static{this.\u0275fac=function(i){return new(i||t)(P(hn),P(Os),P(pi),P(It),P(bt),P(kt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-skysocks-settings"]],viewQuery:function(i,o){if(1&i&&rt($1e,5)(W1e,5),2&i){let r;ue(r=he())&&(o.button=r.first),ue(r=he())&&(o.firstInput=r.first)}},standalone:!1,decls:23,vars:24,consts:[["firstInput",""],["button",""],[3,"headline","dialog","disableDismiss"],[3,"formGroup"],[3,"ngClass"],[1,"field-container"],["for","whitelist",1,"field-label"],["id","whitelist","formControlName","whitelist","rows","3","matInput","","placeholder","02abc..., 03def..."],[1,"main-theme","settings-option"],["color","primary",1,"float-right",3,"action","disabled"],["for","remoteKey",1,"field-label"],["id","netifc","type","text","formControlName","netifc","matInput",""],["color","primary",3,"change","checked","ngClass"],[1,"help-icon",3,"inline","matTooltip"]],template:function(i,o){1&i&&(f(0,"app-dialog",2),b(1,"translate"),f(2,"form",3)(3,"mat-form-field",4)(4,"div",5)(5,"label",6),m(6),b(7,"translate"),h(),B(8,"textarea",7,0),h(),f(10,"mat-hint"),m(11),b(12,"translate"),h(),f(13,"mat-error")(14,"span"),m(15),b(16,"translate"),h()()(),S(17,G1e,6,6,"mat-form-field",4),S(18,q1e,7,11,"div",8),h(),f(19,"app-button",9,1),L("action",function(){return o.saveChanges()}),m(21),b(22,"translate"),h()()),2&i&&(v("headline",y(1,12,"apps.vpn-socks-server-settings."+(o.configuringVpn?"vpn-title":"socks-title")))("dialog",o.dialogRef)("disableDismiss",o.disableDismiss),d(2),v("formGroup",o.form),d(),v("ngClass",oe(22,Ek,o.disableDismiss)),d(3),O(y(7,14,"apps.vpn-socks-server-settings.whitelist")),d(5),O(y(12,16,"apps.vpn-socks-server-settings.whitelist-help")),d(4),O(y(16,18,"apps.vpn-socks-server-settings.whitelist-invalid-pk")),d(2),k(o.configuringVpn?17:-1),d(),k(o.configuringVpn?18:-1),d(),v("disabled",!o.form.valid),d(2),I(" ",y(22,20,"apps.vpn-socks-server-settings.save")," "))},dependencies:[qt,Cn,rn,sn,yn,Xt,fn,wn,lk,Es,ei,lt,pn,kr,On,Kt,Se],styles:["mat-checkbox[_ngcontent-%COMP%]{margin-bottom:15px}"]})}}return t})();const Y1e=["firstInput"];let X1e=(()=>{class t{static openDialog(e,i){const o=new Lt;return o.data=i||"",o.autoFocus=!1,o.width=ze.smallModalWidth,e.open(t,o)}constructor(e,i,o){this.dialogRef=e,this.data=i,this.formBuilder=o}ngOnInit(){this.form=this.formBuilder.group({note:[this.data]}),setTimeout(()=>this.firstInput.nativeElement.focus())}finish(){const e=this.form.get("note").value.trim();this.dialogRef.close("-"+e)}static{this.\u0275fac=function(i){return new(i||t)(P(It),P(hn),P(pi))}}static{this.\u0275cmp=se({type:t,selectors:[["app-edit-skysocks-client-note"]],viewQuery:function(i,o){if(1&i&&rt(Y1e,5),2&i){let r;ue(r=he())&&(o.firstInput=r.first)}},standalone:!1,decls:13,vars:11,consts:[["firstInput",""],[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","note","maxlength","100","matInput",""],["color","primary","type","mat-raised-button",1,"float-right",3,"action"]],template:function(i,o){1&i&&(f(0,"app-dialog",1),b(1,"translate"),f(2,"form",2)(3,"mat-form-field")(4,"div",3)(5,"label",4),m(6),b(7,"translate"),h(),B(8,"input",5,0),h()()(),f(10,"app-button",6),L("action",function(){return o.finish()}),m(11),b(12,"translate"),h()()),2&i&&(v("headline",y(1,5,"apps.vpn-socks-client-settings.change-note-dialog.title"))("dialog",o.dialogRef),d(2),v("formGroup",o.form),d(4),O(y(7,7,"apps.vpn-socks-client-settings.change-note-dialog.note")),d(5),O(y(12,9,"common.save")))},dependencies:[Cn,rn,sn,yn,ji,Xt,fn,wn,ei,On,Kt,Se],encapsulation:2})}}return t})();function Z1e(t,n){if(1&t&&m(0),2&t){const e=C().$implicit;I(" ",C(2).completeCountriesList[e.toUpperCase()]," ")}}function Q1e(t,n){1&t&&m(0),2&t&&I(" ",C().$implicit.toUpperCase()," ")}function J1e(t,n){if(1&t&&(f(0,"mat-option",9)(1,"div",10),B(2,"div"),h(),S(3,Z1e,1,1),S(4,Q1e,1,1),h()),2&t){const e=n.$implicit,i=C(2);v("value",e.toUpperCase()),d(2),Ji("background-image: url('assets/img/flags/"+e.toLocaleLowerCase()+".png');"),d(),k(i.completeCountriesList[e.toUpperCase()]?3:-1),d(),k(i.completeCountriesList[e.toUpperCase()]?-1:4)}}function e0e(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"apps.vpn-socks-client-settings.filter-dialog.any-country")," ")}function t0e(t,n){if(1&t&&m(0),2&t){const e=C(3);I(" ",e.completeCountriesList[e.form.get("country").value]," ")}}function n0e(t,n){1&t&&m(0),2&t&&I(" ",C(3).form.get("country").value," ")}function i0e(t,n){if(1&t&&(f(0,"div",10),B(1,"div"),h(),S(2,t0e,1,1),S(3,n0e,1,1)),2&t){const e=C(2);d(),Ji("background-image: url('assets/img/flags/"+e.form.get("country").value.toLocaleLowerCase()+".png');"),d(),k(e.completeCountriesList[e.form.get("country").value]?2:-1),d(),k(e.completeCountriesList[e.form.get("country").value]?-1:3)}}function o0e(t,n){if(1&t&&(f(0,"mat-form-field")(1,"div",3)(2,"label",4),m(3),b(4,"translate"),h(),f(5,"mat-select",8)(6,"mat-option",9),m(7),b(8,"translate"),h(),we(9,J1e,5,5,"mat-option",9,Re),f(11,"mat-select-trigger"),S(12,e0e,2,3),S(13,i0e,4,4),h()()()()),2&t){const e=C();d(3),O(y(4,5,"apps.vpn-socks-client-settings.filter-dialog.country")),d(3),v("value","-"),d(),O(y(8,7,"apps.vpn-socks-client-settings.filter-dialog.any-country")),d(2),xe(e.data.availableCountries),d(3),k("-"===e.form.get("country").value?12:-1),d(),k("-"!==e.form.get("country").value?13:-1)}}class C5{constructor(){this.country="",this.location="",this.key=""}}let r0e=(()=>{class t{static openDialog(e,i){const o=new Lt;return o.data=i,o.autoFocus=!1,o.width=ze.smallModalWidth,e.open(t,o)}constructor(e,i,o){this.data=e,this.dialogRef=i,this.formBuilder=o,this.completeCountriesList=Zr}ngOnInit(){this.form=this.formBuilder.group({country:[this.data.currentFilters.country?this.data.currentFilters.country:"-"],"location-text":[this.data.currentFilters.location],"key-text":[this.data.currentFilters.key]})}apply(){const e=new C5;let i=this.form.get("country").value.trim();"-"===i&&(i=""),e.country=i,e.location=this.form.get("location-text").value.trim(),e.key=this.form.get("key-text").value.trim(),this.dialogRef.close(e)}static{this.\u0275fac=function(i){return new(i||t)(P(hn),P(It),P(pi))}}static{this.\u0275cmp=se({type:t,selectors:[["app-skysocks-client-filter"]],standalone:!1,decls:20,vars:15,consts:[["button",""],[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","location-text","maxlength","100","matInput",""],["formControlName","key-text","maxlength","66","matInput",""],["type","mat-raised-button","color","primary",1,"float-right",3,"action"],["formControlName","country","id","country"],[3,"value"],[1,"flag-container"]],template:function(i,o){1&i&&(f(0,"app-dialog",1),b(1,"translate"),f(2,"form",2),S(3,o0e,14,9,"mat-form-field"),f(4,"mat-form-field")(5,"div",3)(6,"label",4),m(7),b(8,"translate"),h(),B(9,"input",5),h()(),f(10,"mat-form-field")(11,"div",3)(12,"label",4),m(13),b(14,"translate"),h(),B(15,"input",6),h()()(),f(16,"app-button",7,0),L("action",function(){return o.apply()}),m(18),b(19,"translate"),h()()),2&i&&(v("headline",y(1,7,"apps.vpn-socks-client-settings.filter-dialog.title"))("dialog",o.dialogRef),d(2),v("formGroup",o.form),d(),k(o.data.availableCountries.length>0?3:-1),d(4),O(y(8,9,"apps.vpn-socks-client-settings.filter-dialog.location")),d(6),O(y(14,11,"apps.vpn-socks-client-settings.filter-dialog.pub-key")),d(5),I(" ",y(19,13,"apps.vpn-socks-client-settings.filter-dialog.apply")," "))},dependencies:[Cn,rn,sn,yn,ji,Xt,fn,wn,ei,oc,qme,Is,On,Kt,Se],encapsulation:2})}}return t})();const s0e=["firstInput"];let a0e=(()=>{class t{static openDialog(e){const i=new Lt;return i.autoFocus=!1,i.width=ze.smallModalWidth,e.open(t,i)}constructor(e,i){this.dialogRef=e,this.formBuilder=i}ngOnInit(){this.form=this.formBuilder.group({password:[""]}),setTimeout(()=>this.firstInput.nativeElement.focus())}finish(){const e=this.form.get("password").value;this.dialogRef.close("-"+e)}static{this.\u0275fac=function(i){return new(i||t)(P(It),P(pi))}}static{this.\u0275cmp=se({type:t,selectors:[["app-skysocks-client-password"]],viewQuery:function(i,o){if(1&i&&rt(s0e,5),2&i){let r;ue(r=he())&&(o.firstInput=r.first)}},standalone:!1,decls:16,vars:14,consts:[["firstInput",""],[3,"headline","dialog"],[3,"formGroup"],[1,"info"],[1,"field-container"],["for","remoteKey",1,"field-label"],["type","password","id","password","formControlName","password","maxlength","100","matInput",""],["color","primary","type","mat-raised-button",1,"float-right",3,"action"]],template:function(i,o){1&i&&(f(0,"app-dialog",1),b(1,"translate"),f(2,"form",2)(3,"div",3),m(4),b(5,"translate"),h(),f(6,"mat-form-field")(7,"div",4)(8,"label",5),m(9),b(10,"translate"),h(),B(11,"input",6,0),h()()(),f(13,"app-button",7),L("action",function(){return o.finish()}),m(14),b(15,"translate"),h()()),2&i&&(v("headline",y(1,6,"apps.vpn-socks-client-settings.password-dialog.title"))("dialog",o.dialogRef),d(2),v("formGroup",o.form),d(2),O(y(5,8,"apps.vpn-socks-client-settings.password-dialog.info")),d(5),O(y(10,10,"apps.vpn-socks-client-settings.password-dialog.password")),d(5),I(" ",y(15,12,"apps.vpn-socks-client-settings.password-dialog.continue-button")," "))},dependencies:[Cn,rn,sn,yn,ji,Xt,fn,wn,ei,On,Kt,Se],styles:[".info[_ngcontent-%COMP%]{font-size:.7rem;margin-bottom:15px}"]})}}return t})(),l0e=(()=>{class t{constructor(e){this.http=e,this.discoveryServiceUrl="https://sd.skycoin.com/api/services?type="}getServices(e){const i=[];return this.http.get(this.discoveryServiceUrl+(e?"proxy":"vpn")).pipe(qf(o=>o.pipe(ii(4e3))),ye(o=>(o||(o=[]),o.forEach(r=>{const s=new ime,a=r.address.split(":");2===a.length&&(s.address=r.address,s.pk=a[0],s.port=a[1],s.location="",r.geo&&(r.geo.country&&(s.country=r.geo.country,s.location+=Zr[r.geo.country.toUpperCase()]?Zr[r.geo.country.toUpperCase()]:r.geo.country),r.geo.region&&r.geo.country&&(s.location+=", "),r.geo.region&&(s.region=r.geo.region,s.location+=s.region)),i.push(s))}),i)))}static{this.\u0275fac=function(i){return new(i||t)(le(ga))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const Ik=["*"];function c0e(t,n){1&t&&At(0)}const d0e=["tabListContainer"],u0e=["tabList"],h0e=["tabListInner"],f0e=["nextPaginator"],p0e=["previousPaginator"],m0e=["content"];function g0e(t,n){}const _0e=["tabBodyWrapper"],b0e=["tabHeader"];function v0e(t,n){}function y0e(t,n){1&t&&tt(0,v0e,0,0,"ng-template",12),2&t&&v("cdkPortalOutlet",C().$implicit.templateLabel)}function C0e(t,n){1&t&&m(0),2&t&&O(C().$implicit.textLabel)}function w0e(t,n){if(1&t){const e=ce();f(0,"div",7,2),L("click",function(){const o=z(e),r=o.$implicit,s=o.$index,a=C(),l=Vn(1);return $(a._handleClick(r,l,s))})("cdkFocusChange",function(o){const r=z(e).$index;return $(C()._tabFocusChanged(o,r))}),B(2,"span",8)(3,"div",9),f(4,"span",10)(5,"span",11),S(6,y0e,1,1,null,12)(7,C0e,1,1),h()()()}if(2&t){const e=n.$implicit,i=n.$index,o=Vn(1),r=C();at(e.labelClass),Ke("mdc-tab--active",r.selectedIndex===i),v("id",r._getTabLabelId(e,i))("disabled",e.disabled)("fitInkBarToContent",r.fitInkBarToContent),Ze("tabIndex",r._getTabIndex(i))("aria-posinset",i+1)("aria-setsize",r._tabs.length)("aria-controls",r._getTabContentId(i))("aria-selected",r.selectedIndex===i)("aria-label",e.ariaLabel||null)("aria-labelledby",!e.ariaLabel&&e.ariaLabelledby?e.ariaLabelledby:null),d(3),v("matRippleTrigger",o)("matRippleDisabled",e.disabled||r.disableRipple),d(3),k(e.templateLabel?6:7)}}function x0e(t,n){1&t&&At(0)}function S0e(t,n){if(1&t){const e=ce();f(0,"mat-tab-body",13),L("_onCentered",function(){return z(e),$(C()._removeTabBodyWrapperHeight())})("_onCentering",function(o){return z(e),$(C()._setTabBodyWrapperHeight(o))})("_beforeCentering",function(o){return z(e),$(C()._bodyCentered(o))}),h()}if(2&t){const e=n.$implicit,i=n.$index,o=C();at(e.bodyClass),v("id",o._getTabContentId(i))("content",e.content)("position",e.position)("animationDuration",o.animationDuration)("preserveContent",o.preserveContent),Ze("tabindex",null!=o.contentTabIndex&&o.selectedIndex===i?o.contentTabIndex:null)("aria-labelledby",o._getTabLabelId(e,i))("aria-hidden",o.selectedIndex!==i)}}const k0e=new Z("MatTabContent");let D0e=(()=>{class t{template=D(Ci);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","matTabContent",""]],features:[ht([{provide:k0e,useExisting:t}])]})}return t})();const T0e=new Z("MatTabLabel"),w5=new Z("MAT_TAB");let M0e=(()=>{class t extends Vce{_closestTab=D(w5,{optional:!0});static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275dir=de({type:t,selectors:[["","mat-tab-label",""],["","matTabLabel",""]],features:[ht([{provide:T0e,useExisting:t}]),be]})}return t})();const x5=new Z("MAT_TAB_GROUP");let S5=(()=>{class t{_viewContainerRef=D(wi);_closestTabGroup=D(x5,{optional:!0});disabled=!1;get templateLabel(){return this._templateLabel}set templateLabel(e){this._setTemplateLabelInput(e)}_templateLabel;_explicitContent=void 0;_implicitContent;textLabel="";ariaLabel;ariaLabelledby;labelClass;bodyClass;id=null;_contentPortal=null;get content(){return this._contentPortal}_stateChanges=new pe;position=null;origin=null;isActive=!1;constructor(){D(pr).load(Af)}ngOnChanges(e){(e.hasOwnProperty("textLabel")||e.hasOwnProperty("disabled"))&&this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}ngOnInit(){this._contentPortal=new $l(this._explicitContent||this._implicitContent,this._viewContainerRef)}_setTemplateLabelInput(e){e&&e._closestTab===this&&(this._templateLabel=e)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["mat-tab"]],contentQueries:function(i,o,r){if(1&i&&_s(r,M0e,5)(r,D0e,7,Ci),2&i){let s;ue(s=he())&&(o.templateLabel=s.first),ue(s=he())&&(o._explicitContent=s.first)}},viewQuery:function(i,o){if(1&i&&rt(Ci,7),2&i){let r;ue(r=he())&&(o._implicitContent=r.first)}},hostAttrs:["hidden",""],hostVars:1,hostBindings:function(i,o){2&i&&Ze("id",null)},inputs:{disabled:[2,"disabled","disabled",Ie],textLabel:[0,"label","textLabel"],ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],labelClass:"labelClass",bodyClass:"bodyClass",id:"id"},exportAs:["matTab"],features:[ht([{provide:w5,useExisting:t}]),yi],ngContentSelectors:Ik,decls:1,vars:0,template:function(i,o){1&i&&(Si(),bg(0,c0e,1,0,"ng-template"))},encapsulation:2})}return t})();const Pk="mdc-tab-indicator--active",k5="mdc-tab-indicator--no-transition";class E0e{_items;_currentItem;constructor(n){this._items=n}hide(){this._items.forEach(n=>n.deactivateInkBar()),this._currentItem=void 0}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}}}let I0e=(()=>{class t{_elementRef=D(Ae);_inkBarElement=null;_inkBarContentElement=null;_fitToContent=!1;get fitInkBarToContent(){return this._fitToContent}set fitInkBarToContent(e){this._fitToContent!==e&&(this._fitToContent=e,this._inkBarElement&&this._appendInkBarElement())}activateInkBar(e){const i=this._elementRef.nativeElement;if(!e||!i.getBoundingClientRect||!this._inkBarContentElement)return void i.classList.add(Pk);const o=i.getBoundingClientRect(),r=e.width/o.width,s=e.left-o.left;i.classList.add(k5),this._inkBarContentElement.style.setProperty("transform",`translateX(${s}px) scaleX(${r})`),i.getBoundingClientRect(),i.classList.remove(k5),i.classList.add(Pk),this._inkBarContentElement.style.setProperty("transform","")}deactivateInkBar(){this._elementRef.nativeElement.classList.remove(Pk)}ngOnInit(){this._createInkBarElement()}ngOnDestroy(){this._inkBarElement?.remove(),this._inkBarElement=this._inkBarContentElement=null}_createInkBarElement(){const e=this._elementRef.nativeElement.ownerDocument||document,i=this._inkBarElement=e.createElement("span"),o=this._inkBarContentElement=e.createElement("span");i.className="mdc-tab-indicator",o.className="mdc-tab-indicator__content mdc-tab-indicator__content--underline",i.appendChild(this._inkBarContentElement),this._appendInkBarElement()}_appendInkBarElement(){(this._fitToContent?this._elementRef.nativeElement.querySelector(".mdc-tab__content"):this._elementRef.nativeElement).appendChild(this._inkBarElement)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,inputs:{fitInkBarToContent:[2,"fitInkBarToContent","fitInkBarToContent",Ie]}})}return t})(),D5=(()=>{class t extends I0e{elementRef=D(Ae);disabled=!1;focus(){this.elementRef.nativeElement.focus()}getOffsetLeft(){return this.elementRef.nativeElement.offsetLeft}getOffsetWidth(){return this.elementRef.nativeElement.offsetWidth}static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275dir=de({type:t,selectors:[["","matTabLabelWrapper",""]],hostVars:3,hostBindings:function(i,o){2&i&&(Ze("aria-disabled",!!o.disabled),Ke("mat-mdc-tab-disabled",o.disabled))},inputs:{disabled:[2,"disabled","disabled",Ie]},features:[be]})}return t})();const T5={passive:!0};let A0e=(()=>{class t{_elementRef=D(Ae);_changeDetectorRef=D(Pn);_viewportRuler=D(jd);_dir=D(hr,{optional:!0});_ngZone=D(ge);_platform=D($n);_sharedResizeObserver=D(yV);_injector=D(Be);_renderer=D(Kn);_animationsDisabled=fi();_eventCleanups;_scrollDistance=0;_selectedIndexChanged=!1;_destroyed=new pe;_showPaginationControls=!1;_disableScrollAfter=!0;_disableScrollBefore=!0;_tabLabelCount;_scrollDistanceChanged=!1;_keyManager;_currentTextContent;_stopScrolling=new pe;disablePagination=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(e){const i=isNaN(e)?0:e;this._selectedIndex!=i&&(this._selectedIndexChanged=!0,this._selectedIndex=i,this._keyManager&&this._keyManager.updateActiveItem(i))}_selectedIndex=0;selectFocusedIndex=new ve;indexFocused=new ve;constructor(){this._eventCleanups=this._ngZone.runOutsideAngular(()=>[this._renderer.listen(this._elementRef.nativeElement,"mouseleave",()=>this._stopInterval())])}ngAfterViewInit(){this._eventCleanups.push(this._renderer.listen(this._previousPaginator.nativeElement,"touchstart",()=>this._handlePaginatorPress("before"),T5),this._renderer.listen(this._nextPaginator.nativeElement,"touchstart",()=>this._handlePaginatorPress("after"),T5))}ngAfterContentInit(){const e=this._dir?this._dir.change:ae("ltr"),i=this._sharedResizeObserver.observe(this._elementRef.nativeElement).pipe(_b(32),on(this._destroyed)),o=this._viewportRuler.change(150).pipe(on(this._destroyed)),r=()=>{this.updatePagination(),this._alignInkBarToSelectedTab()};this._keyManager=new n5(this._items).withHorizontalOrientation(this._getLayoutDirection()).withHomeAndEnd().withWrap().skipPredicate(()=>!1),this._keyManager.updateActiveItem(Math.max(this._selectedIndex,0)),Fi(r,{injector:this._injector}),gr(e,o,i,this._items.changes,this._itemsResized()).pipe(on(this._destroyed)).subscribe(()=>{this._ngZone.run(()=>{Promise.resolve().then(()=>{this._scrollDistance=Math.max(0,Math.min(this._getMaxScrollDistance(),this._scrollDistance)),r()})}),this._keyManager?.withHorizontalOrientation(this._getLayoutDirection())}),this._keyManager.change.subscribe(s=>{this.indexFocused.emit(s),this._setTabFocus(s)})}_itemsResized(){return"function"!=typeof ResizeObserver?Mi:this._items.changes.pipe(to(this._items),Zn(e=>new Rt(i=>this._ngZone.runOutsideAngular(()=>{const o=new ResizeObserver(r=>i.next(r));return e.forEach(r=>o.observe(r.elementRef.nativeElement)),()=>{o.disconnect()}}))),hS(1),vn(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._eventCleanups.forEach(e=>e()),this._keyManager?.destroy(),this._destroyed.next(),this._destroyed.complete(),this._stopScrolling.complete()}_handleKeydown(e){if(!mr(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:s}=i.elementRef.nativeElement;let a,l;"ltr"==this._getLayoutDirection()?(a=r,l=a+s):(l=this._tabListInner.nativeElement.offsetWidth-r,a=l-s);const c=this.scrollDistance,u=this.scrollDistance+o;au&&(this.scrollDistance+=Math.min(l-u,a-c))}_checkPaginationEnabled(){if(this.disablePagination)this._showPaginationControls=!1;else{const o=this._tabListInner.nativeElement.scrollWidth-this._elementRef.nativeElement.offsetWidth>=5;o||(this.scrollDistance=0),o!==this._showPaginationControls&&(this._showPaginationControls=o,this._changeDetectorRef.markForCheck())}}_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(),Ul(650,100).pipe(on(gr(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 \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,inputs:{disablePagination:[2,"disablePagination","disablePagination",Ie],selectedIndex:[2,"selectedIndex","selectedIndex",Br]},outputs:{selectFocusedIndex:"selectFocusedIndex",indexFocused:"indexFocused"}})}return t})(),R0e=(()=>{class t extends A0e{_items;_tabListContainer;_tabList;_tabListInner;_nextPaginator;_previousPaginator;_inkBar;ariaLabel;ariaLabelledby;disableRipple=!1;ngAfterContentInit(){this._inkBar=new E0e(this._items),super.ngAfterContentInit()}_itemSelected(e){e.preventDefault()}static \u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})();static \u0275cmp=se({type:t,selectors:[["mat-tab-header"]],contentQueries:function(i,o,r){if(1&i&&_s(r,D5,4),2&i){let s;ue(s=he())&&(o._items=s)}},viewQuery:function(i,o){if(1&i&&rt(d0e,7)(u0e,7)(h0e,7)(f0e,5)(p0e,5),2&i){let r;ue(r=he())&&(o._tabListContainer=r.first),ue(r=he())&&(o._tabList=r.first),ue(r=he())&&(o._tabListInner=r.first),ue(r=he())&&(o._nextPaginator=r.first),ue(r=he())&&(o._previousPaginator=r.first)}},hostAttrs:[1,"mat-mdc-tab-header"],hostVars:4,hostBindings:function(i,o){2&i&&Ke("mat-mdc-tab-header-pagination-controls-enabled",o._showPaginationControls)("mat-mdc-tab-header-rtl","rtl"==o._getLayoutDirection())},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],disableRipple:[2,"disableRipple","disableRipple",Ie]},features:[be],ngContentSelectors:Ik,decls:13,vars:10,consts:[["previousPaginator",""],["tabListContainer",""],["tabList",""],["tabListInner",""],["nextPaginator",""],["mat-ripple","",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-before",3,"click","mousedown","touchend","matRippleDisabled"],[1,"mat-mdc-tab-header-pagination-chevron"],[1,"mat-mdc-tab-label-container",3,"keydown"],["role","tablist",1,"mat-mdc-tab-list",3,"cdkObserveContent"],[1,"mat-mdc-tab-labels"],["mat-ripple","",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-after",3,"mousedown","click","touchend","matRippleDisabled"]],template:function(i,o){1&i&&(Si(),f(0,"div",5,0),L("click",function(){return o._handlePaginatorClick("before")})("mousedown",function(s){return o._handlePaginatorPress("before",s)})("touchend",function(){return o._stopInterval()}),B(2,"div",6),h(),f(3,"div",7,1),L("keydown",function(s){return o._handleKeydown(s)}),f(5,"div",8,2),L("cdkObserveContent",function(){return o._onContentChanges()}),f(7,"div",9,3),At(9),h()()(),f(10,"div",10,4),L("mousedown",function(s){return o._handlePaginatorPress("after",s)})("click",function(){return o._handlePaginatorClick("after")})("touchend",function(){return o._stopInterval()}),B(12,"div",6),h()),2&i&&(Ke("mat-mdc-tab-header-pagination-disabled",o._disableScrollBefore),v("matRippleDisabled",o._disableScrollBefore||o.disableRipple),d(3),Ke("_mat-animation-noopable",o._animationsDisabled),d(2),Ze("aria-label",o.ariaLabel||null)("aria-labelledby",o.ariaLabelledby||null),d(5),Ke("mat-mdc-tab-header-pagination-disabled",o._disableScrollAfter),v("matRippleDisabled",o._disableScrollAfter||o.disableRipple))},dependencies:[Of,Sde],styles:[".mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.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;outline: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-inactive-ripple-color, var(--mat-sys-on-surface))}.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-pagination-icon-color, var(--mat-sys-on-surface))}.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-mdc-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1;border-bottom-style:solid;border-bottom-width:var(--mat-tab-divider-height, 1px);border-bottom-color:var(--mat-tab-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-group-inverted-header .mat-mdc-tab-label-container{border-bottom:none;border-top-style:solid;border-top-width:var(--mat-tab-divider-height, 1px);border-top-color:var(--mat-tab-divider-color, var(--mat-sys-surface-variant))}.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}.cdk-drop-list .mat-mdc-tab-labels,.mat-mdc-tab-labels.cdk-drop-list{min-height:var(--mat-tab-container-height, 48px)}.mat-mdc-tab::before{margin:5px}@media(forced-colors: active){.mat-mdc-tab[aria-disabled=true]{color:GrayText}}\n"],encapsulation:2})}return t})();const N0e=new Z("MAT_TABS_CONFIG");let M5=(()=>{class t extends Wl{_host=D(Ok);_ngZone=D(ge);_centeringSub=mt.EMPTY;_leavingSub=mt.EMPTY;constructor(){super()}ngOnInit(){super.ngOnInit(),this._centeringSub=this._host._beforeCentering.pipe(to(this._host._isCenterPosition())).subscribe(e=>{this._host._content&&e&&!this.hasAttached()&&this._ngZone.run(()=>{Promise.resolve().then(),this.attach(this._host._content)})}),this._leavingSub=this._host._afterLeavingCenter.subscribe(()=>{this._host.preserveContent||this._ngZone.run(()=>this.detach())})}ngOnDestroy(){super.ngOnDestroy(),this._centeringSub.unsubscribe(),this._leavingSub.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","matTabBodyHost",""]],features:[be]})}return t})(),Ok=(()=>{class t{_elementRef=D(Ae);_dir=D(hr,{optional:!0});_ngZone=D(ge);_injector=D(Be);_renderer=D(Kn);_diAnimationsDisabled=fi();_eventCleanups;_initialized=!1;_fallbackTimer;_positionIndex;_dirChangeSubscription=mt.EMPTY;_position;_previousPosition;_onCentering=new ve;_beforeCentering=new ve;_afterLeavingCenter=new ve;_onCentered=new ve(!0);_portalHost;_contentElement;_content;animationDuration="500ms";preserveContent=!1;set position(e){this._positionIndex=e,this._computePositionAnimationState()}constructor(){if(this._dir){const e=D(Pn);this._dirChangeSubscription=this._dir.change.subscribe(i=>{this._computePositionAnimationState(i),e.markForCheck()})}}ngOnInit(){this._bindTransitionEvents(),"center"===this._position&&(this._setActiveClass(!0),Fi(()=>this._onCentering.emit(this._elementRef.nativeElement.clientHeight),{injector:this._injector})),this._initialized=!0}ngOnDestroy(){clearTimeout(this._fallbackTimer),this._eventCleanups?.forEach(e=>e()),this._dirChangeSubscription.unsubscribe()}_bindTransitionEvents(){this._ngZone.runOutsideAngular(()=>{const e=this._elementRef.nativeElement,i=o=>{o.target===this._contentElement?.nativeElement&&(this._elementRef.nativeElement.classList.remove("mat-tab-body-animating"),"transitionend"===o.type&&this._transitionDone())};this._eventCleanups=[this._renderer.listen(e,"transitionstart",o=>{o.target===this._contentElement?.nativeElement&&(this._elementRef.nativeElement.classList.add("mat-tab-body-animating"),this._transitionStarted())}),this._renderer.listen(e,"transitionend",i),this._renderer.listen(e,"transitioncancel",i)]})}_transitionStarted(){clearTimeout(this._fallbackTimer);const e="center"===this._position;this._beforeCentering.emit(e),e&&this._onCentering.emit(this._elementRef.nativeElement.clientHeight)}_transitionDone(){"center"===this._position?this._onCentered.emit():"center"===this._previousPosition&&this._afterLeavingCenter.emit()}_setActiveClass(e){this._elementRef.nativeElement.classList.toggle("mat-mdc-tab-body-active",e)}_getLayoutDirection(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}_isCenterPosition(){return 0===this._positionIndex}_computePositionAnimationState(e=this._getLayoutDirection()){this._previousPosition=this._position,this._position=this._positionIndex<0?"ltr"==e?"left":"right":this._positionIndex>0?"ltr"==e?"right":"left":"center",this._animationsDisabled()?this._simulateTransitionEvents():this._initialized&&("center"===this._position||"center"===this._previousPosition)&&(clearTimeout(this._fallbackTimer),this._fallbackTimer=this._ngZone.runOutsideAngular(()=>setTimeout(()=>this._simulateTransitionEvents(),100)))}_simulateTransitionEvents(){this._transitionStarted(),Fi(()=>this._transitionDone(),{injector:this._injector})}_animationsDisabled(){return this._diAnimationsDisabled||"0ms"===this.animationDuration||"0s"===this.animationDuration}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["mat-tab-body"]],viewQuery:function(i,o){if(1&i&&rt(M5,5)(m0e,5),2&i){let r;ue(r=he())&&(o._portalHost=r.first),ue(r=he())&&(o._contentElement=r.first)}},hostAttrs:[1,"mat-mdc-tab-body"],hostVars:1,hostBindings:function(i,o){2&i&&Ze("inert","center"===o._position?null:"")},inputs:{_content:[0,"content","_content"],animationDuration:"animationDuration",preserveContent:"preserveContent",position:"position"},outputs:{_onCentering:"_onCentering",_beforeCentering:"_beforeCentering",_onCentered:"_onCentered"},decls:3,vars:6,consts:[["content",""],["cdkScrollable","",1,"mat-mdc-tab-body-content"],["matTabBodyHost",""]],template:function(i,o){1&i&&(f(0,"div",1,0),tt(2,g0e,0,0,"ng-template",2),h()),2&i&&Ke("mat-tab-body-content-left","left"===o._position)("mat-tab-body-content-right","right"===o._position)("mat-tab-body-content-can-animate","center"===o._position||"center"===o._previousPosition)},dependencies:[M5,H3],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;transform:none;visibility:hidden}.mat-tab-body-animating>.mat-mdc-tab-body-content,.mat-mdc-tab-body-active>.mat-mdc-tab-body-content{visibility:visible}.mat-tab-body-animating>.mat-mdc-tab-body-content{min-height:1px}.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{overflow:hidden}.mat-tab-body-content-can-animate{transition:transform var(--mat-tab-animation-duration) 1ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable .mat-tab-body-content-can-animate{transition:none}.mat-tab-body-content-left{transform:translate3d(-100%, 0, 0)}.mat-tab-body-content-right{transform:translate3d(100%, 0, 0)}\n"],encapsulation:2})}return t})(),F0e=(()=>{class t{_elementRef=D(Ae);_changeDetectorRef=D(Pn);_ngZone=D(ge);_tabsSubscription=mt.EMPTY;_tabLabelSubscription=mt.EMPTY;_tabBodySubscription=mt.EMPTY;_diAnimationsDisabled=fi();_allTabs;_tabBodies;_tabBodyWrapper;_tabHeader;_tabs=new Zc;_indexToSelect=0;_lastFocusedTabIndex=null;_tabBodyWrapperHeight=0;color;get fitInkBarToContent(){return this._fitInkBarToContent}set fitInkBarToContent(e){this._fitInkBarToContent=e,this._changeDetectorRef.markForCheck()}_fitInkBarToContent=!1;stretchTabs=!0;alignTabs=null;dynamicHeight=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(e){this._indexToSelect=isNaN(e)?null:e}_selectedIndex=null;headerPosition="above";get animationDuration(){return this._animationDuration}set animationDuration(e){const i=e+"";this._animationDuration=/^\d+$/.test(i)?e+"ms":i}_animationDuration;get contentTabIndex(){return this._contentTabIndex}set contentTabIndex(e){this._contentTabIndex=isNaN(e)?null:e}_contentTabIndex=null;disablePagination=!1;disableRipple=!1;preserveContent=!1;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}_backgroundColor;ariaLabel;ariaLabelledby;selectedIndexChange=new ve;focusChange=new ve;animationDone=new ve;selectedTabChange=new ve(!0);_groupId;_isServer=!D($n).isBrowser;constructor(){const e=D(N0e,{optional:!0});this._groupId=D(oi).getId("mat-tab-group-"),this.animationDuration=e&&e.animationDuration?e.animationDuration:"500ms",this.disablePagination=!(!e||null==e.disablePagination)&&e.disablePagination,this.dynamicHeight=!(!e||null==e.dynamicHeight)&&e.dynamicHeight,null!=e?.contentTabIndex&&(this.contentTabIndex=e.contentTabIndex),this.preserveContent=!!e?.preserveContent,this.fitInkBarToContent=!(!e||null==e.fitInkBarToContent)&&e.fitInkBarToContent,this.stretchTabs=!e||null==e.stretchTabs||e.stretchTabs,this.alignTabs=e&&null!=e.alignTabs?e.alignTabs:null}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()})}ngAfterViewInit(){this._tabBodySubscription=this._tabBodies.changes.subscribe(()=>this._bodyCentered(!0))}_subscribeToAllTabChanges(){this._allTabs.changes.pipe(to(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(),this._tabBodySubscription.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 L0e;return i.index=e,this._tabs&&this._tabs.length&&(i.tab=this._tabs.toArray()[e]),i}_subscribeToTabLabels(){this._tabLabelSubscription&&this._tabLabelSubscription.unsubscribe(),this._tabLabelSubscription=gr(...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,i){return e.id||`${this._groupId}-label-${i}`}_getTabContentId(e){return`${this._groupId}-content-${e}`}_setTabBodyWrapperHeight(e){if(!this.dynamicHeight||!this._tabBodyWrapperHeight)return void(this._tabBodyWrapperHeight=e);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._ngZone.run(()=>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)}_bodyCentered(e){e&&this._tabBodies?.forEach((i,o)=>i._setActiveClass(o===this._selectedIndex))}_animationsDisabled(){return this._diAnimationsDisabled||"0"===this.animationDuration||"0ms"===this.animationDuration}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=se({type:t,selectors:[["mat-tab-group"]],contentQueries:function(i,o,r){if(1&i&&_s(r,S5,5),2&i){let s;ue(s=he())&&(o._allTabs=s)}},viewQuery:function(i,o){if(1&i&&rt(_0e,5)(b0e,5)(Ok,5),2&i){let r;ue(r=he())&&(o._tabBodyWrapper=r.first),ue(r=he())&&(o._tabHeader=r.first),ue(r=he())&&(o._tabBodies=r)}},hostAttrs:[1,"mat-mdc-tab-group"],hostVars:11,hostBindings:function(i,o){2&i&&(Ze("mat-align-tabs",o.alignTabs),at("mat-"+(o.color||"primary")),Cd("--mat-tab-animation-duration",o.animationDuration),Ke("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",fitInkBarToContent:[2,"fitInkBarToContent","fitInkBarToContent",Ie],stretchTabs:[2,"mat-stretch-tabs","stretchTabs",Ie],alignTabs:[0,"mat-align-tabs","alignTabs"],dynamicHeight:[2,"dynamicHeight","dynamicHeight",Ie],selectedIndex:[2,"selectedIndex","selectedIndex",Br],headerPosition:"headerPosition",animationDuration:"animationDuration",contentTabIndex:[2,"contentTabIndex","contentTabIndex",Br],disablePagination:[2,"disablePagination","disablePagination",Ie],disableRipple:[2,"disableRipple","disableRipple",Ie],preserveContent:[2,"preserveContent","preserveContent",Ie],backgroundColor:"backgroundColor",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"]},outputs:{selectedIndexChange:"selectedIndexChange",focusChange:"focusChange",animationDone:"animationDone",selectedTabChange:"selectedTabChange"},exportAs:["matTabGroup"],features:[ht([{provide:x5,useExisting:t}])],ngContentSelectors:Ik,decls:9,vars:8,consts:[["tabHeader",""],["tabBodyWrapper",""],["tabNode",""],[3,"indexFocused","selectFocusedIndex","selectedIndex","disableRipple","disablePagination","aria-label","aria-labelledby"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-focus-indicator",3,"id","mdc-tab--active","class","disabled","fitInkBarToContent"],[1,"mat-mdc-tab-body-wrapper"],["role","tabpanel",3,"id","class","content","position","animationDuration","preserveContent"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-focus-indicator",3,"click","cdkFocusChange","id","disabled","fitInkBarToContent"],[1,"mdc-tab__ripple"],["mat-ripple","",1,"mat-mdc-tab-ripple",3,"matRippleTrigger","matRippleDisabled"],[1,"mdc-tab__content"],[1,"mdc-tab__text-label"],[3,"cdkPortalOutlet"],["role","tabpanel",3,"_onCentered","_onCentering","_beforeCentering","id","content","position","animationDuration","preserveContent"]],template:function(i,o){1&i&&(Si(),f(0,"mat-tab-header",3,0),L("indexFocused",function(s){return o._focusChanged(s)})("selectFocusedIndex",function(s){return o.selectedIndex=s}),we(2,w0e,8,17,"div",4,Re),h(),S(4,x0e,1,0),f(5,"div",5,1),we(7,S0e,1,10,"mat-tab-body",6,Re),h()),2&i&&(v("selectedIndex",o.selectedIndex||0)("disableRipple",o.disableRipple)("disablePagination",o.disablePagination),f0("aria-label",o.ariaLabel)("aria-labelledby",o.ariaLabelledby),d(2),xe(o._tabs),d(2),k(o._isServer?4:-1),d(),Ke("_mat-animation-noopable",o._animationsDisabled()),d(2),xe(o._tabs))},dependencies:[R0e,D5,qde,Of,Wl,Ok],styles:['.mdc-tab{min-width:90px;padding:0 24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;z-index:1;touch-action:manipulation}.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--active .mdc-tab__text-label{transition-delay:100ms}._mat-animation-noopable .mdc-tab__text-label{transition:none}.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{transition:var(--mat-tab-animation-duration, 250ms) transform cubic-bezier(0.4, 0, 0.2, 1);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--active .mdc-tab-indicator__content{opacity:1}._mat-animation-noopable .mdc-tab-indicator__content,.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mat-mdc-tab-ripple.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;height:var(--mat-tab-container-height, 48px);font-family:var(--mat-tab-label-text-font, var(--mat-sys-title-small-font));font-size:var(--mat-tab-label-text-size, var(--mat-sys-title-small-size));letter-spacing:var(--mat-tab-label-text-tracking, var(--mat-sys-title-small-tracking));line-height:var(--mat-tab-label-text-line-height, var(--mat-sys-title-small-line-height));font-weight:var(--mat-tab-label-text-weight, var(--mat-sys-title-small-weight))}.mat-mdc-tab.mdc-tab{flex-grow:0}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-active-indicator-color, var(--mat-sys-primary));border-top-width:var(--mat-tab-active-indicator-height, 2px);border-radius:var(--mat-tab-active-indicator-shape, 0)}.mat-mdc-tab:hover .mdc-tab__text-label{color:var(--mat-tab-inactive-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab:focus .mdc-tab__text-label{color:var(--mat-tab-inactive-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__text-label{color:var(--mat-tab-active-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__ripple::before,.mat-mdc-tab.mdc-tab--active .mat-ripple-element{background-color:var(--mat-tab-active-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab__text-label{color:var(--mat-tab-active-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-active-hover-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab__text-label{color:var(--mat-tab-active-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-active-focus-indicator-color, var(--mat-sys-primary))}.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-disabled-ripple-color, var(--mat-sys-on-surface-variant))}.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-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-inactive-label-text-color, var(--mat-sys-on-surface));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-inactive-ripple-color, var(--mat-sys-on-surface))}.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-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-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-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-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-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-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-focus-indicator::before{border-color:var(--mat-tab-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-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-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}\n'],encapsulation:2})}return t})();class L0e{index;tab}let B0e=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({imports:[ri]})}return t})(),V0e=(()=>{class t{constructor(e){this.dialog=e,this.tabNames=[""],this.selectedTab=0,this.tabChanged=new ve}ngOnDestroy(){this.tabChanged.complete()}showTabSelector(){const e=[];this.tabNames.forEach((i,o)=>{e.push({icon:o===this.selectedTab?"check":"",label:i})}),oo.openDialog(this.dialog,e,"node.logs.filter-title").afterClosed().subscribe(i=>{this.tabChanged.emit(i-1)})}static{this.\u0275fac=function(i){return new(i||t)(P(kt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-tab-selector"]],inputs:{tabNames:"tabNames",selectedTab:"selectedTab"},outputs:{tabChanged:"tabChanged"},standalone:!1,decls:9,vars:4,consts:[[1,"top-dialog-button",3,"click"],[1,"top-dialog-button-content"],[1,"tab-name"],[1,"icon",3,"inline"],[1,"top-dialog-button-margin"]],template:function(i,o){1&i&&(f(0,"div",0),L("click",function(){return o.showTabSelector()}),f(1,"div",1)(2,"div",2)(3,"span"),m(4),b(5,"translate"),h()(),f(6,"mat-icon",3),m(7,"expand_more"),h()(),B(8,"div",4),h()),2&i&&(d(4),O(y(5,2,o.tabNames[o.selectedTab])),d(2),v("inline",!0))},dependencies:[lt,Se],styles:[".top-dialog-button[_ngcontent-%COMP%] .top-dialog-button-content[_ngcontent-%COMP%]{display:flex}.top-dialog-button[_ngcontent-%COMP%] .top-dialog-button-content[_ngcontent-%COMP%] .tab-name[_ngcontent-%COMP%]{flex-grow:1;margin-right:10px;align-self:center}.top-dialog-button[_ngcontent-%COMP%] .top-dialog-button-content[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{font-size:20px;flex-shrink:0;align-self:center}"]})}}return t})();const H0e=["button"],j0e=["settingsButton"],U0e=["firstInput"],z0e=["tabGroup"],cc=t=>({"element-disabled":t}),E5=t=>({highlighted:t}),$0e=(t,n)=>({currentElementsRange:t,totalElements:n}),W0e=t=>({number:t});function G0e(t,n){1&t&&(f(0,"span"),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"apps.vpn-socks-client-settings.remote-key-length-error")))}function q0e(t,n){1&t&&(f(0,"span"),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"apps.vpn-socks-client-settings.remote-key-chars-error")))}function K0e(t,n){if(1&t&&(f(0,"mat-form-field",10)(1,"div",11)(2,"label",12),m(3),b(4,"translate"),h(),B(5,"input",20),h()()),2&t){const e=C();v("ngClass",oe(4,cc,e.disableDismiss)),d(3),O(y(4,2,"apps.vpn-socks-client-settings.password"))}}function Y0e(t,n){1&t&&(f(0,"div",14)(1,"mat-icon",21),m(2,"warning"),h(),m(3),b(4,"translate"),h()),2&t&&(d(),v("inline",!0),d(2),I(" ",y(4,2,"apps.vpn-socks-client-settings.password-history-warning")," "))}function X0e(t,n){1&t&&B(0,"app-loading-indicator",16),2&t&&v("showWhite",!1)}function Z0e(t,n){1&t&&(f(0,"div",17)(1,"mat-icon",21),m(2,"error"),h(),m(3),b(4,"translate"),h()),2&t&&(d(),v("inline",!0),d(2),I(" ",y(4,2,"apps.vpn-socks-client-settings.no-elements")," "))}function Q0e(t,n){1&t&&(f(0,"div",25),m(1),b(2,"translate"),h()),2&t&&(d(),I(" ",y(2,1,"apps.vpn-socks-client-settings.no-filter")," "))}function J0e(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,C().$implicit[1])," ")}function ewe(t,n){1&t&&m(0),2&t&&I(" ",C().$implicit[2]," ")}function twe(t,n){if(1&t&&(f(0,"div",25)(1,"span"),m(2),b(3,"translate"),h(),S(4,J0e,2,3),S(5,ewe,1,1),h()),2&t){const e=n.$implicit;d(2),I("",y(3,3,e[0])," "),d(2),k(e[1]?4:-1),d(),k(e[2]?5:-1)}}function nwe(t,n){1&t&&(f(0,"div",17)(1,"mat-icon",21),m(2,"error"),h(),m(3),b(4,"translate"),h()),2&t&&(d(),v("inline",!0),d(2),I(" ",y(4,2,"apps.vpn-socks-client-settings.no-elements-for-filters")," "))}function iwe(t,n){if(1&t&&(f(0,"span",10),m(1),h()),2&t){const e=n.$implicit;v("ngClass",oe(2,E5,n.$index%2!=0)),d(),O(e)}}function owe(t,n){if(1&t&&(f(0,"div",31),B(1,"div"),h()),2&t){const e=C(2).$implicit;d(),Ji("background-image: url('assets/img/flags/"+e.country.toLocaleLowerCase()+".png');")}}function rwe(t,n){if(1&t&&(f(0,"span",10),m(1),h()),2&t){const e=n.$implicit;v("ngClass",oe(2,E5,n.$index%2!=0)),d(),O(e)}}function swe(t,n){if(1&t&&(f(0,"div",25)(1,"span"),m(2),b(3,"translate"),h(),f(4,"span"),m(5,"\xa0 "),S(6,owe,2,2,"div",31),we(7,rwe,2,4,"span",10,Re),h()()),2&t){const e=C().$implicit,i=C(2);d(2),O(y(3,2,"apps.vpn-socks-client-settings.location")),d(4),k(e.country?6:-1),d(),xe(i.getHighlightedTextParts(e.location,i.currentFilters.location))}}function awe(t,n){if(1&t){const e=ce();f(0,"div",19)(1,"button",27),L("click",function(){const o=z(e).$implicit;return $(C(2).saveChanges(o.pk,null,!1,o.location))}),f(2,"div",28)(3,"div",25)(4,"span"),m(5),b(6,"translate"),h(),f(7,"span"),m(8,"\xa0"),we(9,iwe,2,4,"span",10,Re),h()(),S(11,swe,9,4,"div",25),h()(),f(12,"button",29),b(13,"translate"),L("click",function(){const o=z(e).$implicit;return $(C(2).copyPk(o.pk))}),f(14,"mat-icon",30),m(15,"filter_none"),h()()()}if(2&t){const e=n.$implicit,i=C(2);d(),v("ngClass",oe(9,cc,i.disableDismiss)),d(4),O(y(6,5,"apps.vpn-socks-client-settings.key")),d(4),xe(i.getHighlightedTextParts(e.pk,i.currentFilters.key)),d(2),k(e.location?11:-1),d(),v("matTooltip",y(13,7,"apps.vpn-socks-client-settings.copy-pk-info")),d(2),v("inline",!0)}}function lwe(t,n){if(1&t){const e=ce();f(0,"button",22),L("click",function(){return z(e),$(C().changeFilters())}),f(1,"div",23)(2,"div",24)(3,"mat-icon",21),m(4,"filter_list"),h()(),f(5,"div"),S(6,Q0e,3,3,"div",25),we(7,twe,6,5,"div",25,Re),f(9,"div",26),m(10),b(11,"translate"),h()()()(),S(12,nwe,5,4,"div",17),we(13,awe,16,11,"div",19,Re)}if(2&t){const e=C();d(3),v("inline",!0),d(3),k(0===e.currentFiltersTexts.length?6:-1),d(),xe(e.currentFiltersTexts),d(3),O(y(11,4,"apps.vpn-socks-client-settings.click-to-change")),d(2),k(0===e.filteredProxiesFromDiscovery.length?12:-1),d(),xe(e.proxiesFromDiscoveryToShow)}}function cwe(t,n){if(1&t){const e=ce();f(0,"div",18)(1,"span"),m(2),b(3,"translate"),h(),f(4,"button",32),L("click",function(){return z(e),$(C().goToPreviousPage())}),f(5,"mat-icon"),m(6,"chevron_left"),h()(),f(7,"button",32),L("click",function(){return z(e),$(C().goToNextPage())}),f(8,"mat-icon"),m(9,"chevron_right"),h()()()}if(2&t){const e=C();d(2),O(Ee(3,1,"apps.vpn-socks-client-settings.pagination-info",ft(4,$0e,e.currentRange,e.filteredProxiesFromDiscovery.length)))}}function dwe(t,n){if(1&t&&(f(0,"div")(1,"div",17)(2,"mat-icon",21),m(3,"error"),h(),m(4),b(5,"translate"),h()()),2&t){const e=C();d(2),v("inline",!0),d(2),I(" ",Ee(5,2,"apps.vpn-socks-client-settings.no-history",oe(5,W0e,e.maxHistoryElements))," ")}}function uwe(t,n){1&t&&sr(0)}function hwe(t,n){1&t&&sr(0)}function fwe(t,n){if(1&t&&(f(0,"span"),m(1),h()),2&t){const e=C(2).$implicit;d(),I(" ",e.note)}}function pwe(t,n){1&t&&(f(0,"span"),m(1),b(2,"translate"),h()),2&t&&(d(),I(" ",y(2,1,"apps.vpn-socks-client-settings.note-entered-manually")))}function mwe(t,n){if(1&t&&(f(0,"span"),m(1),h()),2&t){const e=C(4).$implicit;d(),I(" (",e.location,")")}}function gwe(t,n){if(1&t&&(f(0,"span"),m(1),b(2,"translate"),h(),S(3,mwe,2,1,"span")),2&t){const e=C(3).$implicit;d(),I(" ",y(2,2,"apps.vpn-socks-client-settings.note-obtained")),d(2),k(e.location?3:-1)}}function _we(t,n){if(1&t&&(S(0,pwe,3,3,"span"),S(1,gwe,4,4)),2&t){const e=C(2).$implicit;k(e.enteredManually?0:-1),d(),k(e.enteredManually?-1:1)}}function bwe(t,n){if(1&t&&(f(0,"div",37)(1,"div",38)(2,"div",25)(3,"span"),m(4),b(5,"translate"),h(),f(6,"span"),m(7),h()(),f(8,"div",25)(9,"span"),m(10),b(11,"translate"),h(),S(12,fwe,2,1,"span"),S(13,_we,2,2),h()(),f(14,"div",39)(15,"div",40)(16,"mat-icon",21),m(17,"add"),h()()()()),2&t){const e=C().$implicit;d(4),O(y(5,6,"apps.vpn-socks-client-settings.key")),d(3),I(" ",e.key),d(3),O(y(11,8,"apps.vpn-socks-client-settings.note")),d(2),k(e.note?12:-1),d(),k(e.note?-1:13),d(3),v("inline",!0)}}function vwe(t,n){if(1&t){const e=ce();f(0,"div",19)(1,"button",33),L("click",function(){const o=z(e).$implicit;return $(C().useFromHistory(o))}),tt(2,uwe,1,0,"ng-container",34),h(),f(3,"button",35),b(4,"translate"),L("click",function(){const o=z(e).$implicit;return $(C().changeNote(o))}),f(5,"mat-icon",30),m(6,"edit"),h()(),f(7,"button",35),b(8,"translate"),L("click",function(){const o=z(e).$implicit;return $(C().removeFromHistory(o.key))}),f(9,"mat-icon",30),m(10,"close"),h()(),f(11,"button",36),L("click",function(){const o=z(e).$implicit;return $(C().openHistoryOptions(o))}),tt(12,hwe,1,0,"ng-container",34),h(),tt(13,bwe,18,10,"ng-template",null,0,El),h()}if(2&t){const e=Vn(14),i=C();d(),v("ngClass",oe(12,cc,i.disableDismiss)),d(),v("ngTemplateOutlet",e),d(),v("matTooltip",y(4,8,"apps.vpn-socks-client-settings.change-note")),d(2),v("inline",!0),d(2),v("matTooltip",y(8,10,"apps.vpn-socks-client-settings.remove-entry")),d(2),v("inline",!0),d(2),v("ngClass",oe(14,cc,i.disableDismiss)),d(),v("ngTemplateOutlet",e)}}function ywe(t,n){1&t&&(f(0,"span"),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"apps.vpn-socks-client-settings.dns-error")))}function Cwe(t,n){1&t&&(f(0,"div",45)(1,"mat-icon",21),m(2,"warning"),h(),m(3),b(4,"translate"),h()),2&t&&(d(),v("inline",!0),d(2),I(" ",y(4,2,"apps.vpn-socks-client-settings.settings-changed-alert")," "))}function wwe(t,n){if(1&t){const e=ce();f(0,"mat-tab",8),b(1,"translate"),f(2,"form",9)(3,"mat-form-field",10)(4,"div",11)(5,"label",12),m(6),b(7,"translate"),h(),B(8,"input",41),h(),f(9,"mat-error"),S(10,ywe,3,3,"span"),h()(),f(11,"div",42)(12,"mat-checkbox",43),m(13),b(14,"translate"),f(15,"mat-icon",44),b(16,"translate"),m(17,"help"),h()()(),S(18,Cwe,5,4,"div",45),f(19,"app-button",15,4),L("action",function(){return z(e),$(C().saveSettings())}),m(21),b(22,"translate"),h()()()}if(2&t){const e=C();v("label",y(1,12,e.tabLabels[3])),d(2),v("formGroup",e.settingsForm),d(),v("ngClass",oe(22,cc,e.disableDismiss)),d(3),O(y(7,14,"apps.vpn-socks-client-settings.dns")),d(4),k(e.settingsForm.get("dns").valid?-1:10),d(2),v("ngClass",oe(24,cc,e.disableDismiss)),d(),I(" ",y(14,16,"apps.vpn-socks-client-settings.killswitch-check")," "),d(2),v("inline",!0)("matTooltip",y(16,18,"apps.vpn-socks-client-settings.killswitch-info")),d(3),k(e.settingsChanged?18:-1),d(),v("disabled",!e.settingsForm.valid||!e.settingsChanged||e.working),d(2),I(" ",y(22,20,"apps.vpn-socks-client-settings.save-settings")," ")}}let xwe=(()=>{class t{static openDialog(e,i){const o=new Lt;return o.data=i,o.autoFocus=!1,o.width=ze.largeModalWidth,e.open(t,o)}constructor(e,i,o,r,s,a,l,c,u){this.data=e,this.dialogRef=i,this.appsService=o,this.formBuilder=r,this.snackbarService=s,this.dialog=a,this.proxyDiscoveryService=l,this.clipboardService=c,this.storageService=u,this.socksHistoryStorageKey="SkysocksClientHistory_",this.vpnHistoryStorageKey="VpnClientHistory_",this.maxHistoryElements=10,this.maxElementsPerPage=10,this.tabLabels=[],this.currentTab=0,this.countriesFromDiscovery=new Set,this.loadingFromDiscovery=!0,this.numberOfPages=1,this.currentPage=1,this.currentRange="1 - 1",this.currentFilters=new C5,this.currentFiltersTexts=[],this.configuringVpn=!1,this.initialKillswitchSetting=!1,this.initialDnsSetting="",this.working=!1,-1!==e.name.toLocaleLowerCase().indexOf("vpn")?(this.configuringVpn=!0,this.tabLabels=["apps.vpn-socks-client-settings.remote-visor-tab","apps.vpn-socks-client-settings.discovery-tab","apps.vpn-socks-client-settings.history-tab","apps.vpn-socks-client-settings.settings-tab"]):this.tabLabels=["apps.vpn-socks-client-settings.remote-visor-tab","apps.vpn-socks-client-settings.discovery-tab","apps.vpn-socks-client-settings.history-tab"]}ngOnInit(){this.migrateDataToHvStorage(),this.discoverySubscription=this.proxyDiscoveryService.getServices(!this.configuringVpn).subscribe(o=>{this.proxiesFromDiscovery=o,this.proxiesFromDiscovery.forEach(r=>{r.country&&this.countriesFromDiscovery.add(r.country.toUpperCase())}),this.filterProxies(),this.loadingFromDiscovery=!1});const e=this.storageService.getDataForHv(this.configuringVpn?this.vpnHistoryStorageKey:this.socksHistoryStorageKey);this.history=e?JSON.parse(e):[];let i="";if(this.data.args&&this.data.args.length>0)for(let o=0;othis.firstInput.nativeElement.focus())}ngOnDestroy(){this.discoverySubscription.unsubscribe(),this.operationSubscription&&this.operationSubscription.unsubscribe()}migrateDataToHvStorage(){const e=localStorage.getItem(this.socksHistoryStorageKey);e&&(this.storageService.setDataForHv(this.socksHistoryStorageKey,e),localStorage.removeItem(this.socksHistoryStorageKey));const i=localStorage.getItem(this.vpnHistoryStorageKey);i&&(this.storageService.setDataForHv(this.vpnHistoryStorageKey,i),localStorage.removeItem(this.vpnHistoryStorageKey))}get disableDismiss(){return this.button&&this.button.isLoading||this.settingsButton&&this.settingsButton.isLoading}tabChangeRequested(e){this.tabGroup.selectedIndex=e}tabIdexChanged(){this.currentTab=this.tabGroup.selectedIndex}validateIp(){if(this.settingsForm){const e=this.settingsForm.get("dns").value;return Ye.checkIfIpValidOrEmpty(e)?null:{invalid:!0}}return null}get settingsChanged(){return this.initialKillswitchSetting!==this.settingsForm.get("killswitch").value||this.initialDnsSetting!==this.settingsForm.get("dns").value}changeFilters(){const e=[];this.countriesFromDiscovery.forEach(o=>e.push(o)),r0e.openDialog(this.dialog,{currentFilters:this.currentFilters,availableCountries:e}).afterClosed().subscribe(o=>{o&&(this.currentFilters=o,this.filterProxies())})}getHighlightedTextParts(e,i){if(!i)return[e];const o=e.toLowerCase(),r=i.toLowerCase();let s=!0,a=0;const l=[];for(;s;){const c=o.indexOf(r,a);-1===c?s=!1:(l.push(e.substring(a,c)),l.push(e.substring(c,c+i.length)),a=c+i.length)}return l.push(e.substring(a)),l}filterProxies(){this.filteredProxiesFromDiscovery=this.currentFilters.country||this.currentFilters.location||this.currentFilters.key?this.proxiesFromDiscovery.filter(e=>!(this.currentFilters.country&&(!e.country||!e.country.toUpperCase().includes(this.currentFilters.country.toUpperCase()))||this.currentFilters.location&&!e.location.toLowerCase().includes(this.currentFilters.location.toLowerCase())||this.currentFilters.key&&!e.address.toLowerCase().includes(this.currentFilters.key.toLowerCase()))):this.proxiesFromDiscovery,this.updateCurrentFilters(),this.updatePagination()}updateCurrentFilters(){if(this.currentFiltersTexts=[],this.currentFilters.country){const e=Zr[this.currentFilters.country.toUpperCase()]?Zr[this.currentFilters.country.toUpperCase()]:this.currentFilters.country.toUpperCase();this.currentFiltersTexts.push(["apps.vpn-socks-client-settings.filter-dialog.country","",e])}this.currentFilters.location&&this.currentFiltersTexts.push(["apps.vpn-socks-client-settings.filter-dialog.location","",this.currentFilters.location]),this.currentFilters.key&&this.currentFiltersTexts.push(["apps.vpn-socks-client-settings.filter-dialog.pub-key","",this.currentFilters.key])}updatePagination(){this.currentPage=1,this.numberOfPages=Math.ceil(this.filteredProxiesFromDiscovery.length/this.maxElementsPerPage),this.showCurrentPage()}goToNextPage(){this.currentPage>=this.numberOfPages||(this.currentPage+=1,this.showCurrentPage())}goToPreviousPage(){this.currentPage<=1||(this.currentPage-=1,this.showCurrentPage())}showCurrentPage(){this.proxiesFromDiscoveryToShow=this.filteredProxiesFromDiscovery.slice((this.currentPage-1)*this.maxElementsPerPage,this.currentPage*this.maxElementsPerPage),this.currentRange=(this.currentPage-1)*this.maxElementsPerPage+1+" - ",this.currentRange+=this.currentPage{1===o?this.useFromHistory(e):2===o?this.changeNote(e):3===o&&this.removeFromHistory(e.key)})}removeFromHistory(e){const o=Ye.createConfirmationDialog(this.dialog,"apps.vpn-socks-client-settings.remove-from-history-confirmation");o.componentInstance.operationAccepted.subscribe(()=>{this.history=this.history.filter(s=>s.key!==e);const r=JSON.stringify(this.history);this.storageService.setDataForHv(this.configuringVpn?this.vpnHistoryStorageKey:this.socksHistoryStorageKey,r),o.close()})}changeNote(e){X1e.openDialog(this.dialog,e.note).afterClosed().subscribe(i=>{if(i){i=i.substr(1,i.length-1),this.history.forEach(r=>{r.key===e.key&&(r.note=i)});const o=JSON.stringify(this.history);this.storageService.setDataForHv(this.configuringVpn?this.vpnHistoryStorageKey:this.socksHistoryStorageKey,o),i?this.snackbarService.showDone("apps.vpn-socks-client-settings.changes-made"):this.snackbarService.showWarning("apps.vpn-socks-client-settings.default-note-warning")}})}useFromHistory(e){e.hasPassword?a0e.openDialog(this.dialog).afterClosed().subscribe(i=>{i&&(i=i.substr(1,i.length-1),this.saveChanges(e.key,i,e.enteredManually,e.location,e.note))}):this.saveChanges(e.key,null,e.enteredManually,e.location,e.note)}saveChanges(e=null,i=null,o=null,r=null,s=null){if(!this.form.valid&&!e||this.working)return;o=!e||o,i=e?i:this.form.get("password").value,e=e||this.form.get("pk").value;const l=Ye.createConfirmationDialog(this.dialog,"apps.vpn-socks-client-settings.change-key-confirmation");l.componentInstance.operationAccepted.subscribe(()=>{l.close(),this.continueSavingChanges(e,i,o,r,s)})}saveSettings(){if(this.working)return;const e={killswitch:this.settingsForm.get("killswitch").value,dns:this.settingsForm.get("dns").value};this.settingsButton.showLoading(!1),this.button.showLoading(!1),this.working=!0,this.operationSubscription=this.appsService.changeAppSettings(ke.getCurrentNodeKey(),this.data.name,e).subscribe(()=>{this.initialKillswitchSetting=e.killswitch,this.initialDnsSetting=e.dns,this.snackbarService.showDone("apps.vpn-socks-client-settings.changes-made"),this.working=!1,this.settingsButton.reset(!1),this.button.reset(!1),ke.refreshCurrentDisplayedData()},i=>{this.working=!1,this.settingsButton.showError(!1),this.button.reset(!1),i=Je(i),this.snackbarService.showError(i)})}copyPk(e){this.clipboardService.copy(e)?this.snackbarService.showDone("apps.vpn-socks-client-settings.copied-pk-info"):this.snackbarService.showError("apps.vpn-socks-client-settings.copy-pk-error")}continueSavingChanges(e,i,o,r,s){if(this.working)return;this.button.showLoading(!1),this.settingsButton&&this.settingsButton.showLoading(!1),this.working=!0;const a={pk:e};this.configuringVpn&&(a.passcode=i||""),this.operationSubscription=this.appsService.changeAppSettings(ke.getCurrentNodeKey(),this.data.name,a).subscribe(()=>this.onServerDataChangeSuccess(e,!!i,o,r,s),l=>this.onServerDataChangeError(l))}onServerDataChangeSuccess(e,i,o,r,s){this.history=this.history.filter(c=>c.key!==e);const a={key:e,enteredManually:o};if(i&&(a.hasPassword=i),r&&(a.location=r),s&&(a.note=s),this.history=[a].concat(this.history),this.history.length>this.maxHistoryElements){const c=this.history.length-this.maxHistoryElements;this.history.splice(this.history.length-c,c)}this.form.get("pk").setValue(e);const l=JSON.stringify(this.history);this.storageService.setDataForHv(this.configuringVpn?this.vpnHistoryStorageKey:this.socksHistoryStorageKey,l),ke.refreshCurrentDisplayedData(),this.snackbarService.showDone("apps.vpn-socks-client-settings.changes-made"),this.working=!1,this.button.reset(!1),this.settingsButton&&this.settingsButton.reset(!1)}onServerDataChangeError(e){this.working=!1,this.button.showError(!1),this.settingsButton&&this.settingsButton.reset(!1),e=Je(e),this.snackbarService.showError(e)}static{this.\u0275fac=function(i){return new(i||t)(P(hn),P(It),P(Os),P(pi),P(bt),P(kt),P(l0e),P(Gf),P(zn))}}static{this.\u0275cmp=se({type:t,selectors:[["app-skysocks-client-settings"]],viewQuery:function(i,o){if(1&i&&rt(H0e,5)(j0e,5)(U0e,5)(z0e,5),2&i){let r;ue(r=he())&&(o.button=r.first),ue(r=he())&&(o.settingsButton=r.first),ue(r=he())&&(o.firstInput=r.first),ue(r=he())&&(o.tabGroup=r.first)}},standalone:!1,decls:38,vars:38,consts:[["content",""],["tabGroup",""],["firstInput",""],["button",""],["settingsButton",""],[3,"headline","dialog","disableDismiss","includeVerticalMargins","includeScrollableArea"],[3,"tabChanged","tabNames","selectedTab"],[3,"selectedIndexChange"],[3,"label"],[3,"formGroup"],[3,"ngClass"],[1,"field-container"],["for","remoteKey",1,"field-label"],["id","pk","formControlName","pk","maxlength","66","matInput",""],[1,"password-history-warning"],["color","primary",1,"float-right",3,"action","disabled"],[1,"loading-indicator",3,"showWhite"],[1,"info-text"],[1,"paginator"],[1,"d-flex"],["id","password","type","password","formControlName","password","maxlength","100","matInput",""],[3,"inline"],["mat-button","",1,"list-button","grey-button-background","w-100",3,"click"],[1,"filter-button-content"],[1,"icon-area"],[1,"item"],[1,"blue-part"],["mat-button","",1,"list-button","grey-button-background","w-100",3,"click","ngClass"],[1,"button-content"],["mat-button","",1,"list-button","grey-button-background",3,"click","matTooltip"],[1,"option-button-icon",3,"inline"],[1,"flag-container"],["mat-icon-button","",1,"hard-grey-button-background",3,"click"],["mat-button","",1,"list-button","grey-button-background","w-100","d-none","d-md-inline",3,"click","ngClass"],[4,"ngTemplateOutlet"],["mat-button","",1,"list-button","grey-button-background","d-none","d-md-inline",3,"click","matTooltip"],["mat-button","",1,"list-button","grey-button-background","w-100","d-md-none",3,"click","ngClass"],[1,"button-content","d-flex"],[1,"full-size-area"],[1,"options-container"],[1,"small-button","d-md-none"],["formControlName","dns","maxlength","15","matInput",""],[1,"main-theme","settings-option"],["color","primary","formControlName","killswitch",3,"ngClass"],[1,"help-icon",3,"inline","matTooltip"],[1,"settings-changed-warning"]],template:function(i,o){1&i&&(f(0,"app-dialog",5),b(1,"translate"),f(2,"app-tab-selector",6),L("tabChanged",function(s){return o.tabChangeRequested(s)}),h(),f(3,"mat-dialog-content",null,0)(5,"mat-tab-group",7,1),L("selectedIndexChange",function(){return o.tabIdexChanged()}),f(7,"mat-tab",8),b(8,"translate"),f(9,"form",9)(10,"mat-form-field",10)(11,"div",11)(12,"label",12),m(13),b(14,"translate"),h(),B(15,"input",13,2),h(),f(17,"mat-error"),S(18,G0e,3,3,"span")(19,q0e,3,3,"span"),h()(),S(20,K0e,6,6,"mat-form-field",10),S(21,Y0e,5,4,"div",14),f(22,"app-button",15,3),L("action",function(){return o.saveChanges()}),m(24),b(25,"translate"),h()()(),f(26,"mat-tab",8),b(27,"translate"),S(28,X0e,1,1,"app-loading-indicator",16),S(29,Z0e,5,4,"div",17),S(30,lwe,15,6),S(31,cwe,10,7,"div",18),h(),f(32,"mat-tab",8),b(33,"translate"),S(34,dwe,6,7,"div"),we(35,vwe,15,16,"div",19,Re),h(),S(37,wwe,23,26,"mat-tab",8),h()()()),2&i&&(v("headline",y(1,24,"apps.vpn-socks-client-settings."+(o.configuringVpn?"vpn-title":"socks-title")))("dialog",o.dialogRef)("disableDismiss",o.disableDismiss)("includeVerticalMargins",!1)("includeScrollableArea",!1),d(2),v("tabNames",o.tabLabels)("selectedTab",o.currentTab),d(5),v("label",y(8,26,o.tabLabels[0])),d(2),v("formGroup",o.form),d(),v("ngClass",oe(36,cc,o.disableDismiss)),d(3),O(y(14,28,"apps.vpn-socks-client-settings.public-key")),d(5),k(o.form.get("pk").hasError("pattern")?19:18),d(2),k(o.configuringVpn?20:-1),d(),k(o.form&&o.form.get("password").value?21:-1),d(),v("disabled",!o.form.valid||o.working),d(2),I(" ",y(25,30,"apps.vpn-socks-client-settings.save")," "),d(2),v("label",y(27,32,o.tabLabels[1])),d(2),k(o.loadingFromDiscovery?28:-1),d(),k(o.loadingFromDiscovery||0!==o.proxiesFromDiscovery.length?-1:29),d(),k(!o.loadingFromDiscovery&&o.proxiesFromDiscovery.length>0?30:-1),d(),k(o.numberOfPages>1?31:-1),d(),v("label",y(33,34,o.tabLabels[2])),d(2),k(0===o.history.length?34:-1),d(),xe(o.history),d(2),k(o.configuringVpn?37:-1))},dependencies:[qt,Pd,Cn,rn,sn,yn,ji,Xt,fn,Kd,wn,Es,ei,S5,F0e,Jn,Ms,lt,pn,kr,On,Kt,vr,V0e,Se],styles:["mat-tab-header{border-bottom:solid 1px rgba(0,0,0,.12)}@media(max-width:767px){ mat-tab-header{display:none!important}}app-tab-selector[_ngcontent-%COMP%]{display:none}@media(max-width:767px){app-tab-selector[_ngcontent-%COMP%]{display:block!important}}form[_ngcontent-%COMP%]{margin-top:15px}.info-text[_ngcontent-%COMP%]{margin-top:20px;margin-bottom:2px;text-align:center;color:#202226}.info-text[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:5px}.loading-indicator[_ngcontent-%COMP%]{height:100px}.password-history-warning[_ngcontent-%COMP%]{font-size:.7rem;opacity:.7;position:relative;top:-5px}.list-button[_ngcontent-%COMP%]{border-bottom:solid 1px rgba(0,0,0,.12);height:auto;justify-content:left}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%]{padding:15px 0;white-space:normal;line-height:1.3;color:#202226;text-align:left;display:flex;font-size:.8rem;word-break:break-word}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%] .icon-area[_ngcontent-%COMP%]{font-size:20px;margin-right:15px;color:#999;opacity:.4;align-self:center}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]{margin:4px 0}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:first-of-type{color:#999}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%] .blue-part[_ngcontent-%COMP%]{color:#215f9e}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%]{text-align:left;padding:15px 0;white-space:normal}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .full-size-area[_ngcontent-%COMP%]{flex-grow:1}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]{line-height:1.3;margin:4px 0;font-size:.8rem;color:#202226;word-break:break-all}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]:first-of-type{color:#999}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .highlighted[_ngcontent-%COMP%]{background-color:#ff0}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .options-container[_ngcontent-%COMP%]{flex-shrink:0;margin-left:5px;text-align:right;line-height:1}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .options-container[_ngcontent-%COMP%] .small-button[_ngcontent-%COMP%]{width:24px;height:24px;line-height:14px;font-size:14px;margin-left:5px}.list-button[_ngcontent-%COMP%] .option-button-icon[_ngcontent-%COMP%]{font-size:14px;margin:0!important;overflow:visible!important}.paginator[_ngcontent-%COMP%]{float:right;margin-top:15px;display:flex;align-items:center}@media(max-width:767px){.paginator[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{font-size:.7rem}}.paginator[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-left:5px;display:flex}.settings-option[_ngcontent-%COMP%]{margin-top:20px}.settings-option[_ngcontent-%COMP%] mat-checkbox[_ngcontent-%COMP%]{margin-bottom:15px}.settings-changed-warning[_ngcontent-%COMP%]{font-size:.7rem;opacity:.7;position:relative}"]})}}return t})();const Swe=["button"],kwe=t=>({name:t}),I5=t=>({"element-disabled":t}),P5=t=>({number:t});function Dwe(t,n){if(1&t){const e=ce();rr(0,4),f(1,"div",7)(2,"mat-form-field",8)(3,"div",9)(4,"label",10),m(5),b(6,"translate"),h(),B(7,"input",11),h()(),f(8,"mat-form-field",8)(9,"div",9)(10,"label",12),m(11),b(12,"translate"),h(),B(13,"input",13),h()(),f(14,"button",14),b(15,"translate"),L("click",function(){const o=z(e).$index;return $(C().removeSetting(o))}),f(16,"mat-icon",15),m(17,"close"),h()()(),Lo()}if(2&t){const e=n.$index,i=C();d(),v("formGroupName",e),d(),v("ngClass",oe(15,I5,i.disableDismiss)),d(3),O(Ee(6,7,"apps.user-app-settings.name",oe(17,P5,e+1))),d(3),v("ngClass",oe(19,I5,i.disableDismiss)),d(3),O(Ee(12,10,"apps.user-app-settings.value",oe(21,P5,e+1))),d(3),v("matTooltip",y(15,13,"apps.user-app-settings.remove")),d(2),v("inline",!0)}}let Twe=(()=>{class t{static openDialog(e,i){const o=new Lt;return o.data=i,o.autoFocus=!1,o.width=ze.mediumModalWidth,e.open(t,o)}constructor(e,i,o,r,s,a){this.data=e,this.appsService=i,this.formBuilder=o,this.dialogRef=r,this.snackbarService=s,this.dialog=a,this.appName="",this.appName=e.name}ngOnInit(){if(this.form=this.formBuilder.group({settings:this.formBuilder.array([])}),this.data.args&&this.data.args.length>0)for(let e=0;e{let s=r.get("name").value,a=r.get("value").value;s=s&&s.trim(),a=a&&a.trim(),s?(o[s]=a,i+=1):e=!0}),e||0===i){const s=Ye.createConfirmationDialog(this.dialog,"apps.user-app-settings."+(0===i?"empty-confirmation":"invalid-confirmation"));s.componentInstance.operationAccepted.subscribe(()=>{s.close(),this.continueSavingChanges(o)})}else this.continueSavingChanges(o)}continueSavingChanges(e){this.button.showLoading();const i={custom_setting:e};this.operationSubscription=this.appsService.changeAppSettings(ke.getCurrentNodeKey(),this.data.name,i).subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)})}onSuccess(){ke.refreshCurrentDisplayedData(),this.snackbarService.showDone("apps.user-app-settings.changes-made"),this.dialogRef.close()}onError(e){this.button.showError(),e=Je(e),this.snackbarService.showError(e)}static{this.\u0275fac=function(i){return new(i||t)(P(hn),P(Os),P(pi),P(It),P(bt),P(kt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-user-app-settings"]],viewQuery:function(i,o){if(1&i&&rt(Swe,5),2&i){let r;ue(r=he())&&(o.button=r.first)}},standalone:!1,decls:16,vars:19,consts:[["button",""],[3,"headline","dialog","disableDismiss"],[1,"info-container"],[3,"formGroup"],["formArrayName","settings"],[1,"add-setting",3,"click"],["color","primary",1,"float-right",3,"action","disabled"],[1,"settings-row",3,"formGroupName"],[3,"ngClass"],[1,"field-container"],["for","name",1,"field-label"],["id","name","formControlName","name","matInput",""],["for","value",1,"field-label"],["id","value","formControlName","value","matInput",""],["mat-button","",1,"transparent-button",3,"click","matTooltip"],[3,"inline"]],template:function(i,o){1&i&&(f(0,"app-dialog",1),b(1,"translate"),f(2,"div",2),m(3),b(4,"translate"),h(),f(5,"form",3),we(6,Dwe,18,23,"ng-container",4,Re),h(),f(8,"div")(9,"a",5),L("click",function(){return o.addSetting()}),m(10),b(11,"translate"),h()(),f(12,"app-button",6,0),L("action",function(){return o.saveChanges()}),m(14),b(15,"translate"),h()()),2&i&&(v("headline",Ee(1,8,"apps.user-app-settings.title",oe(17,kwe,o.appName)))("dialog",o.dialogRef)("disableDismiss",o.disableDismiss),d(3),O(y(4,11,"apps.user-app-settings.info")),d(2),v("formGroup",o.form),d(),xe(o.settingsControls),d(4),I("+ ",y(11,13,"apps.user-app-settings.add")),d(2),v("disabled",!o.form.valid),d(2),I(" ",y(15,15,"apps.user-app-settings.save")," "))},dependencies:[qt,Cn,rn,sn,yn,Xt,fn,Jl,tu,wn,ei,Jn,lt,pn,On,Kt,Se],styles:[".info-container[_ngcontent-%COMP%]{margin-bottom:10px}.settings-row[_ngcontent-%COMP%]{display:flex}mat-form-field[_ngcontent-%COMP%]{flex-grow:1;margin-right:10px}button[_ngcontent-%COMP%]{flex-shrink:0;width:50px;padding:0!important;align-self:center;border-radius:10px}button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin:0!important}.add-setting[_ngcontent-%COMP%]{color:#215f9e!important;cursor:pointer}"]})}}return t})();const Mwe=["button"],O5=t=>({"element-disabled":t});let Ewe=(()=>{class t{static openDialog(e,i){const o=new Lt;return o.data=i,o.autoFocus=!1,o.width=ze.mediumModalWidth,e.open(t,o)}constructor(e,i,o,r,s,a){this.data=e,this.appsService=i,this.formBuilder=o,this.dialogRef=r,this.snackbarService=s,this.dialog=a}ngOnInit(){if(this.form=this.formBuilder.group({localhostOnly:[!0],port:["",Ve.compose([Ve.required,Ve.min(1025),Ve.max(65536)])]}),this.formSubscription=this.form.get("localhostOnly").valueChanges.subscribe(e=>{if(!e){this.form.get("localhostOnly").setValue(!0);const i=Ye.createConfirmationDialog(this.dialog,"apps.skychat-settings.non-localhost-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.componentInstance.closeModal(),this.form.get("localhostOnly").setValue(!1,{emitEvent:!1})})}}),this.data.args&&this.data.args.length>0)for(let e=0;e({"paginator-icons-fixer":t}),A5=(t,n)=>["/nodes",t,"apps-list",n],Pwe=(t,n)=>({"small-node-list-margins":t,"full-node-list-margins":n}),Owe=t=>({"d-lg-none d-xl-table":t}),Awe=t=>({"d-lg-table d-xl-none":t}),R5=t=>({error:t}),Rwe=(t,n)=>["/nodes",t,"apps-list",n,"1"];function Nwe(t,n){1&t&&(f(0,"span",3),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"apps.apps-list.title-official")))}function Fwe(t,n){1&t&&(f(0,"span",3),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"apps.apps-list.title-user")))}function Lwe(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,C().$implicit.translatableValue)," ")}function Bwe(t,n){1&t&&m(0),2&t&&I(" ",C().$implicit.value," ")}function Vwe(t,n){if(1&t&&(f(0,"div",15)(1,"span"),m(2),b(3,"translate"),h(),S(4,Lwe,2,3),S(5,Bwe,1,1),h()),2&t){const e=n.$implicit;d(2),I("",y(3,3,e.filterName),": "),d(2),k(e.translatableValue?4:-1),d(),k(e.value?5:-1)}}function Hwe(t,n){if(1&t){const e=ce();f(0,"div",14),L("click",function(){return z(e),$(C().dataFilterer.removeFilters())}),we(1,Vwe,6,5,"div",15,Re),f(3,"div",16),m(4),b(5,"translate"),h()()}if(2&t){const e=C();d(),xe(e.dataFilterer.currentFiltersTexts),d(3),O(y(5,1,"filters.press-to-remove"))}}function jwe(t,n){if(1&t){const e=ce();f(0,"mat-icon",17),b(1,"translate"),L("click",function(){return z(e),$(C().dataFilterer.changeFilters())}),m(2,"filter_list"),h()}2&t&&v("inline",!0)("matTooltip",y(1,2,"filters.filter-action"))}function Uwe(t,n){1&t&&(f(0,"mat-icon",8),m(1,"more_horiz"),h()),2&t&&(C(),v("matMenuTriggerFor",Vn(10)))}function zwe(t,n){if(1&t&&B(0,"app-paginator",12),2&t){const e=C();v("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",ft(4,A5,e.nodePK,e.showOfficialApps))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function $we(t,n){if(1&t&&(f(0,"mat-icon",22),m(1),h()),2&t){const e=C(2);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function Wwe(t,n){if(1&t&&(f(0,"mat-icon",22),m(1),h()),2&t){const e=C(2);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function Gwe(t,n){if(1&t&&(f(0,"mat-icon",22),m(1),h()),2&t){const e=C(2);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function qwe(t,n){if(1&t&&(f(0,"mat-icon",22),m(1),h()),2&t){const e=C(2);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function Kwe(t,n){if(1&t&&(B(0,"i",38),b(1,"translate")),2&t){const e=C().$implicit,i=C(2);at(i.getStateClass(e)),v("matTooltip",y(1,3,i.getStateTooltip(e)))}}function Ywe(t,n){if(1&t&&(f(0,"mat-icon",34),b(1,"translate"),m(2,"warning"),h()),2&t){const e=C().$implicit;v("inline",!0)("matTooltip",Ee(1,2,"apps.status-failed-tooltip",oe(5,R5,e.detailedStatus?e.detailedStatus:"")))}}function Xwe(t,n){if(1&t&&(f(0,"a",36)(1,"button",37),b(2,"translate"),f(3,"mat-icon",22),m(4,"open_in_browser"),h()()()),2&t){const e=C().$implicit;v("href",C(2).getLink(e),ho),d(),v("matTooltip",y(2,3,"apps.open")),d(2),v("inline",!0)}}function Zwe(t,n){if(1&t){const e=ce();f(0,"button",35),b(1,"translate"),L("click",function(){z(e);const o=C().$implicit;return $(C(2).config(o))}),f(2,"mat-icon",22),m(3,"settings"),h()()}2&t&&(v("matTooltip",y(1,2,"apps.settings")),d(2),v("inline",!0))}function Qwe(t,n){if(1&t){const e=ce();f(0,"tr")(1,"td",31)(2,"mat-checkbox",32),L("change",function(){const o=z(e).$implicit;return $(C(2).changeSelection(o))}),h()(),f(3,"td"),S(4,Kwe,2,5,"i",33),S(5,Ywe,3,7,"mat-icon",34),h(),f(6,"td"),m(7),h(),f(8,"td"),m(9),h(),f(10,"td")(11,"button",35),b(12,"translate"),L("click",function(){const o=z(e).$implicit;return $(C(2).changeAppAutostart(o))}),f(13,"mat-icon",22),m(14),h()()(),f(15,"td",24),S(16,Xwe,5,5,"a",36),S(17,Zwe,4,4,"button",37),f(18,"button",35),b(19,"translate"),L("click",function(){const o=z(e).$implicit;return $(C(2).viewLogs(o))}),f(20,"mat-icon",22),m(21,"list"),h()(),f(22,"button",35),b(23,"translate"),L("click",function(){const o=z(e).$implicit;return $(C(2).changeAppState(o))}),f(24,"mat-icon",22),m(25),h()()()()}if(2&t){const e=n.$implicit,i=C(2);d(2),v("checked",i.selections.get(e.name)),d(2),k(2!==e.status?4:-1),d(),k(2===e.status?5:-1),d(2),I(" ",e.name," "),d(2),I(" ",e.port," "),d(2),v("matTooltip",y(12,15,e.autostart?"apps.apps-list.disable-autostart":"apps.apps-list.enable-autostart")),d(2),v("inline",!0),d(),O(e.autostart?"done":"close"),d(2),k(i.getLink(e)?16:-1),d(),k(i.appsWithoutConfig.has(e.name)?-1:17),d(),v("matTooltip",y(19,17,"apps.view-logs")),d(2),v("inline",!0),d(2),v("matTooltip",y(23,19,"apps."+(0===e.status||2===e.status?"start-app":"stop-app"))),d(2),v("inline",!0),d(),O(0===e.status||2===e.status?"play_arrow":"stop")}}function Jwe(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"tables.label")," ")}function exe(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"tables.inverted-order")," ")}function txe(t,n){if(1&t&&(f(0,"a",43),L("click",function(i){return i.stopPropagation()}),f(1,"button",44),b(2,"translate"),f(3,"mat-icon"),m(4,"open_in_browser"),h()()()),2&t){const e=C().$implicit;v("href",C(2).getLink(e),ho),d(),v("matTooltip",y(2,2,"apps.open"))}}function nxe(t,n){if(1&t){const e=ce();f(0,"tr")(1,"td")(2,"div",27)(3,"div",39)(4,"mat-checkbox",32),L("change",function(){const o=z(e).$implicit;return $(C(2).changeSelection(o))}),h()(),f(5,"div",28)(6,"div",40)(7,"span",2),m(8),b(9,"translate"),h(),m(10),h(),f(11,"div",40)(12,"span",2),m(13),b(14,"translate"),h(),m(15),h(),f(16,"div",40)(17,"span",2),m(18),b(19,"translate"),h(),m(20,": "),f(21,"span"),m(22),b(23,"translate"),h()(),f(24,"div",40)(25,"span",2),m(26),b(27,"translate"),h(),m(28,": "),f(29,"span"),m(30),b(31,"translate"),h()()(),B(32,"div",41),f(33,"div",29),S(34,txe,5,4,"a",36),f(35,"button",42),b(36,"translate"),L("click",function(o){const r=z(e).$implicit,s=C(2);return o.stopPropagation(),$(s.showOptionsDialog(r))}),f(37,"mat-icon"),m(38),h()()()()()()}if(2&t){const e=n.$implicit,i=C(2);d(4),v("checked",i.selections.get(e.name)),d(4),O(y(9,16,"apps.apps-list.app-name")),d(2),I(": ",e.name," "),d(3),O(y(14,18,"apps.apps-list.port")),d(2),I(": ",e.port," "),d(3),O(y(19,20,"apps.apps-list.state")),d(3),at(i.getSmallScreenStateClass(e)+" title"),d(),I(" ",Ee(23,22,i.getSmallScreenStateTextVar(e),oe(31,R5,e.detailedStatus?e.detailedStatus:""))," "),d(4),O(y(27,25,"apps.apps-list.auto-start")),d(3),at((e.autostart?"green-clear-text":"red-clear-text")+" title"),d(),I(" ",y(31,27,e.autostart?"apps.apps-list.autostart-enabled":"apps.apps-list.autostart-disabled")," "),d(4),k(i.getLink(e)?34:-1),d(),v("matTooltip",y(36,29,"common.options")),d(3),O("add")}}function ixe(t,n){if(1&t&&B(0,"app-view-all-link",30),2&t){const e=C(2);v("numberOfElements",e.filteredApps.length)("linkParts",ft(3,Rwe,e.nodePK,e.showOfficialApps))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function oxe(t,n){if(1&t){const e=ce();f(0,"div",13)(1,"div",18)(2,"table",19)(3,"tr"),B(4,"th"),f(5,"th",20),b(6,"translate"),L("click",function(){z(e);const o=C();return $(o.dataSorter.changeSortingOrder(o.stateSortData))}),B(7,"span",21),S(8,$we,2,2,"mat-icon",22),h(),f(9,"th",23),L("click",function(){z(e);const o=C();return $(o.dataSorter.changeSortingOrder(o.nameSortData))}),m(10),b(11,"translate"),S(12,Wwe,2,2,"mat-icon",22),h(),f(13,"th",23),L("click",function(){z(e);const o=C();return $(o.dataSorter.changeSortingOrder(o.portSortData))}),m(14),b(15,"translate"),S(16,Gwe,2,2,"mat-icon",22),h(),f(17,"th",23),L("click",function(){z(e);const o=C();return $(o.dataSorter.changeSortingOrder(o.autoStartSortData))}),m(18),b(19,"translate"),S(20,qwe,2,2,"mat-icon",22),h(),B(21,"th",24),h(),we(22,Qwe,26,21,"tr",null,Re),h(),f(24,"table",25)(25,"tr",26),L("click",function(){return z(e),$(C().dataSorter.openSortingOrderModal())}),f(26,"td")(27,"div",27)(28,"div",28)(29,"div",2),m(30),b(31,"translate"),h(),f(32,"div"),m(33),b(34,"translate"),S(35,Jwe,2,3),S(36,exe,2,3),h()(),f(37,"div",29)(38,"mat-icon",22),m(39,"keyboard_arrow_down"),h()()()()(),we(40,nxe,39,33,"tr",null,Re),h(),S(42,ixe,1,6,"app-view-all-link",30),h()()}if(2&t){const e=C();d(),v("ngClass",ft(29,Pwe,e.showShortList_,!e.showShortList_)),d(),v("ngClass",oe(32,Owe,e.showShortList_)),d(3),v("matTooltip",y(6,17,"apps.apps-list.state-tooltip")),d(3),k(e.dataSorter.currentSortingColumn===e.stateSortData?8:-1),d(2),I(" ",y(11,19,"apps.apps-list.app-name")," "),d(2),k(e.dataSorter.currentSortingColumn===e.nameSortData?12:-1),d(2),I(" ",y(15,21,"apps.apps-list.port")," "),d(2),k(e.dataSorter.currentSortingColumn===e.portSortData?16:-1),d(2),I(" ",y(19,23,"apps.apps-list.auto-start")," "),d(2),k(e.dataSorter.currentSortingColumn===e.autoStartSortData?20:-1),d(2),xe(e.dataSource),d(2),v("ngClass",oe(34,Awe,e.showShortList_)),d(6),O(y(31,25,"tables.sorting-title")),d(3),I("",y(34,27,e.dataSorter.currentSortingColumn.label)," "),d(2),k(e.dataSorter.currentlySortingByLabel?35:-1),d(),k(e.dataSorter.sortingInReverseOrder?36:-1),d(2),v("inline",!0),d(2),xe(e.dataSource),d(2),k(e.showShortList_&&e.numberOfPages>1?42:-1)}}function rxe(t,n){1&t&&(f(0,"span",47),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"apps.apps-list.empty-official")))}function sxe(t,n){1&t&&(f(0,"span",47),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"apps.apps-list.empty-user")))}function axe(t,n){1&t&&(f(0,"span",47),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"apps.apps-list.empty-with-filter")))}function lxe(t,n){if(1&t&&(f(0,"div",13)(1,"div",45)(2,"mat-icon",46),m(3,"warning"),h(),S(4,rxe,3,3,"span",47),S(5,sxe,3,3,"span",47),S(6,axe,3,3,"span",47),h()()),2&t){const e=C();d(2),v("inline",!0),d(2),k(0===e.allAppsForType.length&&e.showOfficialApps?4:-1),d(),k(0!==e.allAppsForType.length||e.showOfficialApps?-1:5),d(),k(0!==e.allAppsForType.length?6:-1)}}function cxe(t,n){if(1&t&&B(0,"app-paginator",12),2&t){const e=C();v("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",ft(4,A5,e.nodePK,e.showOfficialApps))("queryParams",e.dataFilterer.currentUrlQueryParams)}}let N5=(()=>{class t{set showShortList(e){this.showShortList_=e,this.dataSorter&&this.dataSorter.setData(this.filteredApps)}set apps(e){this.allApps=e||[],this.allApps&&(this.allAppsForType=[],this.allApps.forEach(i=>{(this.showOfficialApps&&this.officialAppsList.has(i.name)||!this.showOfficialApps&&!this.officialAppsList.has(i.name))&&this.allAppsForType.push(i)}),this.dataFilterer&&this.dataFilterer.setData(this.allAppsForType))}constructor(e,i,o,r,s,a,l){this.appsService=e,this.dialog=i,this.route=o,this.router=r,this.snackbarService=s,this.translateService=a,this.storageService=l,this.listIdForOfficialApps="op",this.listIdForUserApps="up",this.officialAppsList=new Set(["skychat","skysocks","skysocks-client","vpn-client","vpn-server"]),this.showOfficialApps=!0,this.stateSortData=new Pt(["status"],"apps.apps-list.state",ct.NumberReversed),this.nameSortData=new Pt(["name"],"apps.apps-list.app-name",ct.Text),this.portSortData=new Pt(["port"],"apps.apps-list.port",ct.Number),this.autoStartSortData=new Pt(["autostart"],"apps.apps-list.auto-start",ct.Boolean),this.selections=new Map,this.appsWithoutConfig=new Set,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.filterProperties=[{filterName:"apps.apps-list.filter-dialog.state",keyNameInElementsArray:"status",type:mn.Select,printableLabelsForValues:[{value:"",label:"apps.apps-list.filter-dialog.state-options.any"},{value:"1",label:"apps.apps-list.filter-dialog.state-options.running"},{value:"0",label:"apps.apps-list.filter-dialog.state-options.stopped"}]},{filterName:"apps.apps-list.filter-dialog.name",keyNameInElementsArray:"name",type:mn.TextInput,maxlength:50},{filterName:"apps.apps-list.filter-dialog.port",keyNameInElementsArray:"port",type:mn.TextInput,maxlength:8},{filterName:"apps.apps-list.filter-dialog.autostart",keyNameInElementsArray:"autostart",type:mn.Select,printableLabelsForValues:[{value:"",label:"apps.apps-list.filter-dialog.autostart-options.any"},{value:"true",label:"apps.apps-list.filter-dialog.autostart-options.enabled"},{value:"false",label:"apps.apps-list.filter-dialog.autostart-options.disabled"}]}],this.refreshAgain=!1,this.operationSubscriptionsGroup=[],this.navigationsSubscription=this.route.paramMap.subscribe(c=>{if(c.has("showOfficialApps")&&(this.showOfficialApps=c.get("showOfficialApps").toUpperCase()==="true".toUpperCase()),c.has("page")){let u=Number.parseInt(c.get("page"),10);(isNaN(u)||u<1)&&(u=1),this.currentPageInUrl=u,this.recalculateElementsToShow()}})}ngOnInit(){const e=this.showOfficialApps?this.listIdForOfficialApps:this.listIdForUserApps;this.dataSorter=new ru(this.dialog,this.translateService,this.storageService,[this.stateSortData,this.nameSortData,this.portSortData,this.autoStartSortData],1,e),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataSorter&&this.dataSorter.setData(this.filteredApps),this.dataFilterer=new su(this.dialog,this.route,this.router,this.filterProperties,e),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(o=>{this.filteredApps=o,this.dataSorter.setData(this.filteredApps)}),this.allAppsForType&&this.dataFilterer.setData(this.allAppsForType)}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.operationSubscriptionsGroup.forEach(e=>e.unsubscribe()),this.dataSortedSubscription.unsubscribe(),this.dataFiltererSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFilterer.dispose()}getLink(e){if("skychat"===e.name.toLocaleLowerCase()&&this.nodeIp&&0!==e.status&&2!==e.status){let i="8001",o="127.0.0.1";if(e.args)for(let r=0;r{i&&(e=!0)}),e}changeAllSelections(e){this.selections.forEach((i,o)=>{this.selections.set(o,e)})}changeStateOfSelected(e){const i=[];if(this.selections.forEach((o,r)=>{o&&(e&&(0===this.appsMap.get(r).status||2===this.appsMap.get(r).status)||!e&&0!==this.appsMap.get(r).status&&2!==this.appsMap.get(r).status)&&i.push(r)}),e)this.changeAppsValRecursively(i,!1,e);else{const o=Ye.createConfirmationDialog(this.dialog,"apps.stop-selected-confirmation");o.componentInstance.operationAccepted.subscribe(()=>{o.componentInstance.showProcessing(),this.changeAppsValRecursively(i,!1,e,o)})}}changeAutostartOfSelected(e){const i=[];this.selections.forEach((r,s)=>{r&&(e&&!this.appsMap.get(s).autostart||!e&&this.appsMap.get(s).autostart)&&i.push(s)});const o=Ye.createConfirmationDialog(this.dialog,e?"apps.enable-autostart-selected-confirmation":"apps.disable-autostart-selected-confirmation");o.componentInstance.operationAccepted.subscribe(()=>{o.componentInstance.showProcessing(),this.changeAppsValRecursively(i,!0,e,o)})}showOptionsDialog(e){const i=[{icon:"list",label:"apps.view-logs"},{icon:0===e.status||2===e.status?"play_arrow":"stop",label:"apps."+(0===e.status||2===e.status?"start-app":"stop-app")},{icon:e.autostart?"close":"done",label:e.autostart?"apps.apps-list.disable-autostart":"apps.apps-list.enable-autostart"}];this.appsWithoutConfig.has(e.name)||i.push({icon:"settings",label:"apps.settings"}),oo.openDialog(this.dialog,i,"common.options").afterClosed().subscribe(o=>{1===o?this.viewLogs(e):2===o?this.changeAppState(e):3===o?this.changeAppAutostart(e):4===o&&this.config(e)})}changeAppState(e){if(0===e.status||2===e.status)this.changeSingleAppVal(this.startChangingAppState(e.name,!0));else{const i=Ye.createConfirmationDialog(this.dialog,"apps.stop-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.componentInstance.showProcessing(),this.changeSingleAppVal(this.startChangingAppState(e.name,!1),i)})}}changeAppAutostart(e){const i=Ye.createConfirmationDialog(this.dialog,e.autostart?"apps.disable-autostart-confirmation":"apps.enable-autostart-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.componentInstance.showProcessing(),this.changeSingleAppVal(this.startChangingAppAutostart(e.name,!e.autostart),i)})}changeSingleAppVal(e,i=null){this.operationSubscriptionsGroup.push(e.subscribe(()=>{i&&i.close(),setTimeout(()=>{this.refreshAgain=!0,ke.refreshCurrentDisplayedData()},50),this.snackbarService.showDone("apps.operation-completed")},o=>{o=Je(o),setTimeout(()=>{this.refreshAgain=!0,ke.refreshCurrentDisplayedData()},50),i?i.componentInstance.showDone("confirmation.error-header-text",o.translatableErrorMsg):this.snackbarService.showError(o)}))}viewLogs(e){0!==e.status&&2!==e.status?z1e.openDialog(this.dialog,e):this.snackbarService.showError("apps.apps-list.unavailable-logs-error")}config(e){"skychat"===e.name?Ewe.openDialog(this.dialog,e):"skysocks"===e.name||"vpn-server"===e.name?K1e.openDialog(this.dialog,e):"skysocks-client"===e.name||"vpn-client"===e.name?xwe.openDialog(this.dialog,e):Twe.openDialog(this.dialog,e)}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredApps){const e=this.showShortList_?ze.maxShortListElements:ze.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredApps.length/e),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const i=e*(this.currentPage-1);this.appsToShow=this.filteredApps.slice(i,i+e),this.appsMap=new Map,this.appsToShow.forEach(s=>{this.appsMap.set(s.name,s),this.selections.has(s.name)||this.selections.set(s.name,!1)});const r=[];this.selections.forEach((s,a)=>{this.appsMap.has(a)||r.push(a)}),r.forEach(s=>{this.selections.delete(s)})}else this.appsToShow=null,this.selections=new Map;this.dataSource=this.appsToShow,this.refreshAgain&&(this.refreshAgain=!1,setTimeout(()=>ke.refreshCurrentDisplayedData(),2e3))}startChangingAppState(e,i){return this.appsService.changeAppState(ke.getCurrentNodeKey(),e,i).pipe(ye(o=>(null!=o.status&&this.dataSource.forEach(r=>{r.name===e&&(r.status=o.status,r.detailedStatus=o.detailed_status)}),o)))}startChangingAppAutostart(e,i){return this.appsService.changeAppAutostart(ke.getCurrentNodeKey(),e,i)}changeAppsValRecursively(e,i,o,r=null){if(!e||0===e.length)return setTimeout(()=>ke.refreshCurrentDisplayedData(),50),this.snackbarService.showWarning("apps.operation-unnecessary"),void(r&&r.close());let s;s=i?this.startChangingAppAutostart(e[e.length-1],o):this.startChangingAppState(e[e.length-1],o),this.operationSubscriptionsGroup.push(s.subscribe(()=>{e.pop(),0===e.length?(r&&r.close(),setTimeout(()=>{this.refreshAgain=!0,ke.refreshCurrentDisplayedData()},50),this.snackbarService.showDone("apps.operation-completed")):this.changeAppsValRecursively(e,i,o,r)},a=>{a=Je(a),setTimeout(()=>{this.refreshAgain=!0,ke.refreshCurrentDisplayedData()},50),r?r.componentInstance.showDone("confirmation.error-header-text",a.translatableErrorMsg):this.snackbarService.showError(a)}))}static{this.\u0275fac=function(i){return new(i||t)(P(Os),P(kt),P(Ei),P(vt),P(bt),P(zo),P(zn))}}static{this.\u0275cmp=se({type:t,selectors:[["app-node-app-list"]],inputs:{nodePK:"nodePK",nodeIp:"nodeIp",showOfficialApps:"showOfficialApps",showShortList:"showShortList",apps:"apps"},standalone:!1,decls:33,vars:39,consts:[["selectionMenu","matMenu"],[1,"generic-title-container","mt-4.5","d-flex",3,"ngClass"],[1,"title"],[1,"uppercase"],[1,"filter-label","subtle-transparent-button","cursor-pointer"],[1,"options"],[1,"options-container"],[1,"small-icon",3,"inline","matTooltip"],[3,"matMenuTriggerFor"],[3,"overlapTrigger"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"click","disabled"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"rounded-elevated-box","mt-3"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],[1,"item"],[1,"transparent-50"],[1,"small-icon",3,"click","inline","matTooltip"],[1,"box-internal-container","overflow",3,"ngClass"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table",3,"ngClass"],[1,"sortable-column",3,"click","matTooltip"],[1,"dot-outline-white"],[3,"inline"],[1,"sortable-column",3,"click"],[1,"actions"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none",3,"ngClass"],[1,"selectable",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],[3,"numberOfElements","linkParts","queryParams"],[1,"selection-col"],[3,"change","checked"],[3,"class","matTooltip"],[1,"red-text",3,"inline","matTooltip"],["mat-button","",1,"big-action-button","transparent-button",3,"click","matTooltip"],["target","_blank","rel","noreferrer nofollow noopener",1,"skychat-link",3,"href"],["mat-button","",1,"big-action-button","transparent-button",3,"matTooltip"],[3,"matTooltip"],[1,"check-part"],[1,"list-row"],[1,"margin-part"],["mat-icon-button","",1,"transparent-button",3,"click","matTooltip"],["target","_blank","rel","noreferrer nofollow noopener",1,"skychat-link",3,"click","href"],["mat-icon-button","",1,"transparent-button",3,"matTooltip"],[1,"box-internal-container"],[1,"alert-icon",3,"inline"],[1,"font-sm"]],template:function(i,o){1&i&&(f(0,"div",1)(1,"div",2),S(2,Nwe,3,3,"span",3),S(3,Fwe,3,3,"span",3),S(4,Hwe,6,3,"div",4),h(),f(5,"div",5)(6,"div",6),S(7,jwe,3,4,"mat-icon",7),S(8,Uwe,2,1,"mat-icon",8),f(9,"mat-menu",9,0)(11,"div",10),L("click",function(){return o.changeAllSelections(!0)}),m(12),b(13,"translate"),h(),f(14,"div",10),L("click",function(){return o.changeAllSelections(!1)}),m(15),b(16,"translate"),h(),f(17,"div",11),L("click",function(){return o.changeStateOfSelected(!0)}),m(18),b(19,"translate"),h(),f(20,"div",11),L("click",function(){return o.changeStateOfSelected(!1)}),m(21),b(22,"translate"),h(),f(23,"div",11),L("click",function(){return o.changeAutostartOfSelected(!0)}),m(24),b(25,"translate"),h(),f(26,"div",11),L("click",function(){return o.changeAutostartOfSelected(!1)}),m(27),b(28,"translate"),h()()(),S(29,zwe,1,7,"app-paginator",12),h()(),S(30,oxe,43,36,"div",13),S(31,lxe,7,4,"div",13),S(32,cxe,1,7,"app-paginator",12)),2&i&&(v("ngClass",oe(37,Iwe,!o.showShortList_&&o.numberOfPages>1&&o.dataSource)),d(2),k(o.showShortList_&&o.showOfficialApps?2:-1),d(),k(o.showShortList_&&!o.showOfficialApps?3:-1),d(),k(o.dataFilterer.currentFiltersTexts&&o.dataFilterer.currentFiltersTexts.length>0?4:-1),d(3),k(o.allAppsForType&&o.allAppsForType.length>0?7:-1),d(),k(o.dataSource&&o.dataSource.length>0?8:-1),d(),v("overlapTrigger",!1),d(3),I(" ",y(13,25,"selection.select-all")," "),d(3),I(" ",y(16,27,"selection.unselect-all")," "),d(2),v("disabled",Wt(!o.hasSelectedElements())),d(),I(" ",y(19,29,"selection.start-all")," "),d(2),v("disabled",Wt(!o.hasSelectedElements())),d(),I(" ",y(22,31,"selection.stop-all")," "),d(2),v("disabled",Wt(!o.hasSelectedElements())),d(),I(" ",y(25,33,"selection.enable-autostart-all")," "),d(2),v("disabled",Wt(!o.hasSelectedElements())),d(),I(" ",y(28,35,"selection.disable-autostart-all")," "),d(2),k(!o.showShortList_&&o.numberOfPages>1&&o.dataSource?29:-1),d(),k(o.dataSource&&o.dataSource.length>0?30:-1),d(),k(o.dataSource&&0!==o.dataSource.length?-1:31),d(),k(!o.showShortList_&&o.numberOfPages>1&&o.dataSource?32:-1))},dependencies:[qt,Jn,Ms,lt,pn,Xr,Ps,lu,kr,cv,cu,Se],styles:[".actions[_ngcontent-%COMP%]{text-align:right;width:150px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}.skychat-link[_ngcontent-%COMP%]{color:#f8f9f9;text-decoration:none}.skychat-link[_ngcontent-%COMP%] .big-action-button[_ngcontent-%COMP%]{margin-right:5px}"]})}}return t})(),dxe=(()=>{class t extends Wn{ngOnInit(){return this.dataSubscription=ke.currentNode.subscribe(e=>{this.nodePK=e.localPk,this.apps=e.apps,this.nodeIp=e.ip}),super.ngOnInit()}ngOnDestroy(){this.dataSubscription.unsubscribe()}static{this.\u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})()}static{this.\u0275cmp=se({type:t,selectors:[["app-apps"]],standalone:!1,features:[be],decls:2,vars:10,consts:[[3,"showOfficialApps","apps","showShortList","nodePK","nodeIp"]],template:function(i,o){1&i&&B(0,"app-node-app-list",0)(1,"app-node-app-list",0),2&i&&(v("showOfficialApps",!0)("apps",o.apps)("showShortList",!0)("nodePK",o.nodePK)("nodeIp",o.nodeIp),d(),v("showOfficialApps",!1)("apps",o.apps)("showShortList",!0)("nodePK",o.nodePK)("nodeIp",o.nodeIp))},dependencies:[N5],encapsulation:2})}}return t})();function uxe(t,n){1&t&&B(0,"app-transport-list",0),2&t&&v("node",C().node)("showShortList",!1)}let hxe=(()=>{class t extends Wn{ngOnInit(){return this.dataSubscription=ke.currentNode.subscribe(e=>this.node=e),super.ngOnInit()}ngOnDestroy(){this.dataSubscription.unsubscribe()}static{this.\u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})()}static{this.\u0275cmp=se({type:t,selectors:[["app-all-transports"]],standalone:!1,features:[be],decls:1,vars:1,consts:[[3,"node","showShortList"]],template:function(i,o){1&i&&S(0,uxe,1,2,"app-transport-list",0),2&i&&k(o.node?0:-1)},dependencies:[b5],encapsulation:2})}}return t})();function fxe(t,n){if(1&t&&B(0,"app-route-list",0),2&t){const e=C();v("routes",e.routes)("showShortList",!1)("nodePK",e.nodePK)}}let pxe=(()=>{class t extends Wn{ngOnInit(){return this.dataSubscription=ke.currentNode.subscribe(e=>{this.nodePK=e.localPk,this.routes=e.routes}),super.ngOnInit()}ngOnDestroy(){this.dataSubscription.unsubscribe()}static{this.\u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})()}static{this.\u0275cmp=se({type:t,selectors:[["app-all-routes"]],standalone:!1,features:[be],decls:1,vars:1,consts:[[3,"routes","showShortList","nodePK"]],template:function(i,o){1&i&&S(0,fxe,1,3,"app-route-list",0),2&i&&k(o.routes?0:-1)},dependencies:[y5],encapsulation:2})}}return t})();const mxe=(t,n)=>n.date;function gxe(t,n){if(1&t&&(f(0,"span",4),m(1),h()),2&t){const e=C();d(),I("(",e.label,")")}}function _xe(t,n){if(1&t&&(f(0,"div",10)(1,"span",15),m(2),h(),f(3,"span",16),m(4),h()()),2&t){const e=C();d(2),I(" Total: ",e.total.toFixed(2)," SKY "),d(2),I(" (",e.days," days) ")}}function bxe(t,n){1&t&&(f(0,"div",11),B(1,"mat-spinner",17),h())}function vxe(t,n){if(1&t&&(f(0,"div",12),m(1),h()),2&t){const e=C();d(),O(e.errorMsg)}}function yxe(t,n){1&t&&m(0),2&t&&I(" ",C().$implicit.amount.toFixed(6)," ")}function Cxe(t,n){1&t&&(f(0,"span",19),m(1,"-"),h())}function wxe(t,n){1&t&&m(0),2&t&&I(" ",C().$implicit.share.toFixed(4),"% ")}function xxe(t,n){1&t&&(f(0,"span",19),m(1,"-"),h())}function Sxe(t,n){if(1&t&&(f(0,"a",20),m(1),h()),2&t){const e=C().$implicit;v("href","https://explorer.skycoin.com/app/transaction/"+e.txid,ho),d(),I(" ",e.txid.substring(0,12),"... ")}}function kxe(t,n){1&t&&(f(0,"span",19),m(1,"-"),h())}function Dxe(t,n){if(1&t&&(f(0,"tr")(1,"td"),m(2),h(),f(3,"td"),S(4,yxe,1,1)(5,Cxe,2,0,"span",19),h(),f(6,"td"),S(7,wxe,1,1)(8,xxe,2,0,"span",19),h(),f(9,"td")(10,"span"),m(11),h()(),f(12,"td"),S(13,Sxe,2,2,"a",20)(14,kxe,2,0,"span",19),h()()),2&t){const e=n.$implicit,i=C(2);at(i.statusClass(e)),d(2),O(i.formatDate(e.date)),d(2),k(e.amount>0?4:5),d(3),k(e.share>0?7:8),d(3),at("status-badge "+i.statusClass(e)),d(),O(i.statusText(e)),d(2),k(e.txid?13:14)}}function Txe(t,n){if(1&t&&(f(0,"table",13)(1,"tr")(2,"th"),m(3,"Date"),h(),f(4,"th"),m(5,"Amount (SKY)"),h(),f(6,"th"),m(7,"Share (%)"),h(),f(8,"th"),m(9,"Status"),h(),f(10,"th"),m(11,"Transaction"),h()(),we(12,Dxe,15,9,"tr",18,mxe),h()),2&t){const e=C();d(12),xe(e.history)}}function Mxe(t,n){1&t&&(f(0,"div",14),m(1," No reward data available for this visor. "),h())}let Exe=(()=>{class t{constructor(e,i,o,r){this.http=e,this.route=i,this.nodeComponent=o,this.storageService=r,this.pk="",this.label="",this.history=[],this.loading=!1,this.days=30,this.total=0,this.errorMsg=""}ngOnInit(){this.pk=this.nodeComponent.node?.localPk||this.route.snapshot.parent?.paramMap.get("key")||"";const e=this.storageService.getLabelInfo(this.pk);this.label=e?.label||"",this.loadHistory()}ngOnDestroy(){this.routeSub?.unsubscribe(),this.dataSub?.unsubscribe()}loadHistory(){this.pk&&(this.loading=!0,this.errorMsg="",this.dataSub=this.http.get(`/api/rewards/skycoin-rewards/visor/${this.pk}?days=${this.days}`).pipe(go(e=>(this.errorMsg="Failed to load reward data",ae({history:[]})))).subscribe(e=>{this.history=e?.history||[],this.total=this.history.reduce((i,o)=>i+(o.amount||0),0),this.loading=!1}))}changeDays(e){this.days=e,this.loadHistory()}formatDate(e){return new Date(e+"T00:00:00").toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}statusClass(e){return e.amount&&0!==e.amount?e.sent?"sent":"pending":"no-reward"}statusText(e){return e.amount&&0!==e.amount?e.sent?"Sent":"Pending":"No reward"}static{this.\u0275fac=function(i){return new(i||t)(P(ga),P(Ei),P(ke),P(zn))}}static{this.\u0275cmp=se({type:t,selectors:[["app-node-rewards"]],standalone:!1,decls:24,vars:13,consts:[[1,"rounded-elevated-box","mt-3"],[1,"box-internal-container","overflow"],[1,"d-flex","justify-content-between","align-items-center","mb-3"],[1,"title"],[1,"label-text","ml-2"],[1,"d-flex","align-items-center"],[1,"mr-2",2,"font-size","0.85em","color","#ccc"],["mat-button","",3,"click"],[1,"pk-row","mb-3"],[2,"font-size","0.75em","color","#999"],[1,"total-row","mb-3"],[1,"d-flex","justify-content-center","py-4"],[1,"error-msg","py-2"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid"],[1,"py-4","text-center",2,"color","#999"],[2,"font-size","1.1em","font-weight","bold","color","#4caf50"],[2,"font-size","0.85em","color","#999","margin-left","12px"],["diameter","30"],[3,"class"],[2,"color","#666"],["target","_blank","rel","noopener",2,"font-size","0.8em","color","#3399ff",3,"href"]],template:function(i,o){1&i&&(f(0,"div",0)(1,"div",1)(2,"div",2)(3,"div")(4,"span",3),m(5,"Reward History"),h(),S(6,gxe,2,1,"span",4),h(),f(7,"div",5)(8,"span",6),m(9,"Show:"),h(),f(10,"button",7),L("click",function(){return o.changeDays(7)}),m(11,"7d"),h(),f(12,"button",7),L("click",function(){return o.changeDays(30)}),m(13,"30d"),h(),f(14,"button",7),L("click",function(){return o.changeDays(90)}),m(15,"90d"),h()()(),f(16,"div",8)(17,"span",9),m(18),h()(),S(19,_xe,5,2,"div",10),S(20,bxe,2,0,"div",11),S(21,vxe,2,1,"div",12),S(22,Txe,14,0,"table",13),S(23,Mxe,2,0,"div",14),h()()),2&i&&(d(6),k(o.label?6:-1),d(4),Ke("active-days",7===o.days),d(2),Ke("active-days",30===o.days),d(2),Ke("active-days",90===o.days),d(4),O(o.pk),d(),k(!o.loading&&o.history.length>0?19:-1),d(),k(o.loading?20:-1),d(),k(o.errorMsg?21:-1),d(),k(!o.loading&&o.history.length>0?22:-1),d(),k(o.loading||0!==o.history.length||o.errorMsg?-1:23))},dependencies:[Jn,$o],styles:[".title[_ngcontent-%COMP%]{font-size:1.1em;font-weight:700;color:#f8f9f9}.label-text[_ngcontent-%COMP%]{font-size:.9em;color:#aaa}.active-days[_ngcontent-%COMP%]{color:#4caf50!important;font-weight:700}.total-row[_ngcontent-%COMP%]{padding:8px 0;border-bottom:1px solid rgba(255,255,255,.1)}.error-msg[_ngcontent-%COMP%]{color:#f44336;text-align:center}.status-badge[_ngcontent-%COMP%]{padding:2px 8px;border-radius:4px;font-size:.8em}.status-badge.sent[_ngcontent-%COMP%]{background:#4caf5033;color:#4caf50}.status-badge.pending[_ngcontent-%COMP%]{background:#ffc10733;color:#ffc107}.status-badge.no-reward[_ngcontent-%COMP%]{color:#666}tr.sent[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border-left:2px solid rgba(76,175,80,.3)}tr.pending[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border-left:2px solid rgba(255,193,7,.3)}"]})}}return t})();function Ak(t=0,n=vf){return t<0&&(t=0),Ul(t,t,n)}let Ixe=(()=>{class t{constructor(e){this.apiService=e}get(){return this.apiService.get("service-health")}static{this.\u0275fac=function(i){return new(i||t)(le(br))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const Pxe=()=>["nodes.services-health-title"];function Oxe(t,n){1&t&&(f(0,"div",4),B(1,"mat-spinner",6),f(2,"span",7),m(3),b(4,"translate"),h()()),2&t&&(d(),v("diameter",16),d(2),O(y(4,2,"services-health.loading")))}function Axe(t,n){if(1&t&&(f(0,"div",5)(1,"mat-icon"),m(2,"error_outline"),h(),f(3,"span",7),m(4),h()()),2&t){const e=C();d(4),O(e.error)}}function Rxe(t,n){1&t&&(f(0,"mat-icon",14),m(1,"warning"),h(),f(2,"span"),m(3),b(4,"translate"),h()),2&t&&(d(3),O(y(4,1,"services-health.degraded")))}function Nxe(t,n){1&t&&(f(0,"mat-icon",15),m(1,"check_circle"),h(),f(2,"span"),m(3),b(4,"translate"),h()),2&t&&(d(3),O(y(4,1,"services-health.all-ok")))}function Fxe(t,n){if(1&t&&(f(0,"span",9),m(1),b(2,"translate"),b(3,"date"),h()),2&t){const e=C(2);d(),Hn(" \u2014 ",y(2,2,"services-health.last-updated"),": ",Ee(3,4,e.lastUpdated,"HH:mm:ss")," ")}}function Lxe(t,n){if(1&t&&(f(0,"code"),m(1),h()),2&t){const e=C().$implicit;d(),O(e.version)}}function Bxe(t,n){1&t&&(f(0,"span",16),m(1,"\u2014"),h())}function Vxe(t,n){if(1&t&&(f(0,"tr")(1,"td"),B(2,"span"),h(),f(3,"td")(4,"strong"),m(5),h()(),f(6,"td"),m(7),h(),f(8,"td"),m(9),h(),f(10,"td"),S(11,Lxe,2,1,"code")(12,Bxe,2,0,"span",16),h(),f(13,"td")(14,"code",16),m(15),h()()()),2&t){const e=n.$implicit,i=C(2);d(2),at(i.statusClass(e)),d(3),O(e.name),d(2),I(" ",e.status," "),d(),at(i.latencyClass(e)),d(),I(" ",e.latency_ms,"\xa0ms "),d(2),k(e.version?11:12),d(4),O(i.shortUrl(e.url))}}function Hxe(t,n){if(1&t&&(f(0,"div",19)(1,"span",16),m(2),b(3,"translate"),h(),f(4,"code"),m(5),h()()),2&t){const e=C().$implicit;d(2),I("",y(3,2,"services-health.version"),":"),d(3),O(e.version)}}function jxe(t,n){if(1&t&&(f(0,"div",20),m(1),h()),2&t){const e=C().$implicit;d(),O(e.error)}}function Uxe(t,n){if(1&t&&(f(0,"div",13)(1,"div",17),B(2,"span"),f(3,"strong",7),m(4),h(),f(5,"span",18),m(6),h()(),f(7,"div",19)(8,"span",16),m(9),b(10,"translate"),h(),m(11),h(),S(12,Hxe,6,4,"div",19),f(13,"div",19)(14,"span",16),m(15),b(16,"translate"),h(),f(17,"code",16),m(18),h()(),S(19,jxe,2,1,"div",20),h()),2&t){const e=n.$implicit,i=C(2);d(2),at(i.statusClass(e)),d(2),O(e.name),d(),at(i.latencyClass(e)),d(),I("",e.latency_ms,"\xa0ms"),d(3),I("",y(10,12,"services-health.status"),":"),d(2),I(" ",e.status," "),d(),k(e.version?12:-1),d(3),I("",y(16,14,"services-health.endpoint"),":"),d(3),O(i.shortUrl(e.url)),d(),k(e.error?19:-1)}}function zxe(t,n){if(1&t&&(f(0,"div",8),S(1,Rxe,5,3)(2,Nxe,5,3),S(3,Fxe,4,7,"span",9),h(),f(4,"table",10)(5,"tr"),B(6,"th",11),f(7,"th"),m(8),b(9,"translate"),h(),f(10,"th"),m(11),b(12,"translate"),h(),f(13,"th"),m(14),b(15,"translate"),h(),f(16,"th"),m(17),b(18,"translate"),h(),f(19,"th"),m(20),b(21,"translate"),h()(),we(22,Vxe,16,9,"tr",null,Dh().trackByName,!0),h(),f(24,"div",12),we(25,Uxe,20,16,"div",13,Dh().trackByName,!0),h()),2&t){const e=C();d(),k(e.anyDown()?1:2),d(2),k(e.lastUpdated?3:-1),d(5),O(y(9,7,"services-health.service")),d(3),O(y(12,9,"services-health.status")),d(3),O(y(15,11,"services-health.latency")),d(3),O(y(18,13,"services-health.version")),d(3),O(y(21,15,"services-health.endpoint")),d(2),xe(e.entries),d(3),xe(e.entries)}}let $xe=(()=>{class t extends Wn{constructor(e){super(),this.healthSvc=e,this.tabsData=[],this.entries=[],this.loading=!0,this.error=null,this.lastUpdated=null,this.tabsData=[{icon:"view_headline",label:"nodes.title",linkParts:["/nodes"]},{icon:"monetization_on",label:"nodes.rewards-title",linkParts:["/nodes","rewards"]},{icon:"health_and_safety",label:"nodes.services-health-title",linkParts:["/nodes","services-health"]},{icon:"hub",label:"nodes.dmsg-settings-title",linkParts:["/nodes","dmsg-settings"]},{icon:"bubble_chart",label:"node.details.tpviz.title",linkParts:[],externalUrl:"/tp-viz/"},{icon:"settings",label:"settings.title",linkParts:["/settings"]}]}ngOnInit(){return this.sub=Ak(15e3).pipe(to(0),Zn(()=>this.healthSvc.get())).subscribe({next:e=>{this.entries=e||[],this.loading=!1,this.error=null,this.lastUpdated=new Date},error:e=>{this.loading=!1,this.error=e?.message||"Failed to fetch services health"}}),super.ngOnInit()}ngOnDestroy(){this.sub&&this.sub.unsubscribe()}statusClass(e){const i=(e?.status||"").toUpperCase();return"OK"===i?"dot-green":"DOWN"===i?"dot-red":"dot-outline-gray"}anyDown(){return this.entries.some(e=>"OK"!==(e?.status||"").toUpperCase())}latencyClass(e){const i=e?.latency_ms??0;return i<500?"latency-fast":i<2e3?"latency-medium":"latency-slow"}shortUrl(e){if(!e)return"";try{return new URL(e).host}catch{return e}}trackByName(e,i){return i.name}static{this.\u0275fac=function(i){return new(i||t)(P(Ixe))}}static{this.\u0275cmp=se({type:t,selectors:[["app-services-health"]],standalone:!1,features:[be],decls:7,vars:8,consts:[[1,"row"],[1,"col-12"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton"],[1,"content","col-12","mt-4.5"],[1,"loading-row"],[1,"error-row"],[3,"diameter"],[1,"ml-2"],[1,"summary-line"],[1,"last-updated"],[1,"responsive-table-translucid","d-none","d-md-table","mt-3"],[1,"small-column"],[1,"d-md-none","mt-3"],[1,"mobile-card"],[1,"warn"],[1,"ok"],[1,"dim"],[1,"mobile-header"],[1,"ml-auto"],[1,"mobile-row"],[1,"error-detail"]],template:function(i,o){1&i&&(f(0,"div",0)(1,"div",1),B(2,"app-top-bar",2),h(),f(3,"div",3),S(4,Oxe,5,4,"div",4),S(5,Axe,5,1,"div",5),S(6,zxe,27,17),h()()),2&i&&(d(2),v("titleParts",Mt(7,Pxe))("tabsData",o.tabsData)("selectedTabIndex",2)("showUpdateButton",!1),d(2),k(o.loading&&0===o.entries.length?4:-1),d(),k(o.error&&0===o.entries.length?5:-1),d(),k(o.entries.length>0?6:-1))},dependencies:[lt,$o,As,g_,Se],styles:[".loading-row[_ngcontent-%COMP%]{display:flex;align-items:center;color:#ffffffbf;padding:24px 0}.error-row[_ngcontent-%COMP%]{display:flex;align-items:center;color:#f87171;padding:24px 0}.summary-line[_ngcontent-%COMP%]{display:flex;align-items:center;color:#ffffffe6;font-size:.95em}.summary-line[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:20px;width:20px;height:20px;margin-right:6px}.summary-line[_ngcontent-%COMP%] mat-icon.ok[_ngcontent-%COMP%]{color:#4ade80}.summary-line[_ngcontent-%COMP%] mat-icon.warn[_ngcontent-%COMP%]{color:#fbbf24}.summary-line[_ngcontent-%COMP%] .last-updated[_ngcontent-%COMP%]{color:#ffffff8c;font-size:.85em;margin-left:8px}.small-column[_ngcontent-%COMP%]{width:24px}.dim[_ngcontent-%COMP%]{color:#ffffff8c}.latency-fast[_ngcontent-%COMP%]{color:#4ade80}.latency-medium[_ngcontent-%COMP%]{color:#fbbf24}.latency-slow[_ngcontent-%COMP%]{color:#f87171}.error-detail[_ngcontent-%COMP%]{color:#f87171;font-size:.8em;margin-top:4px}.mobile-card[_ngcontent-%COMP%]{background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:6px;padding:12px;margin-bottom:10px}.mobile-card[_ngcontent-%COMP%] .mobile-header[_ngcontent-%COMP%]{display:flex;align-items:center;margin-bottom:8px;font-size:1em}.mobile-card[_ngcontent-%COMP%] .mobile-row[_ngcontent-%COMP%]{font-size:.85em;color:#ffffffd9;padding:2px 0}.mobile-card[_ngcontent-%COMP%] .mobile-row[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{color:#ffffffd9}code[_ngcontent-%COMP%]{font-family:monospace;font-size:.9em}"]})}}return t})(),Wxe=(()=>{class t{constructor(e){this.apiService=e}getSessions(){return this.apiService.get("dmsg/sessions")}connectAll(){return this.apiService.post("dmsg/connect-all")}setSessionsCount(e){return this.apiService.put("dmsg/sessions-count",{count:e})}static{this.\u0275fac=function(i){return new(i||t)(le(br))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const Gxe=()=>["nodes.dmsg-settings-title"];function qxe(t,n){1&t&&(f(0,"div",4),B(1,"mat-spinner",6),f(2,"span",7),m(3),b(4,"translate"),h()()),2&t&&(d(),v("diameter",16),d(2),O(y(4,2,"dmsg-settings.loading")))}function Kxe(t,n){if(1&t&&(f(0,"div",5)(1,"mat-icon"),m(2,"error_outline"),h(),f(3,"span",7),m(4),h()()),2&t){const e=C();d(4),O(e.error)}}function Yxe(t,n){if(1&t&&(f(0,"span",10),m(1),b(2,"translate"),b(3,"date"),h()),2&t){const e=C(2);d(),Hn(" \u2014 ",y(2,2,"dmsg-settings.last-updated"),": ",Ee(3,4,e.lastUpdated,"HH:mm:ss")," ")}}function Xxe(t,n){1&t&&B(0,"mat-spinner",14),2&t&&v("diameter",14)}function Zxe(t,n){1&t&&B(0,"mat-spinner",14),2&t&&v("diameter",14)}function Qxe(t,n){if(1&t&&(f(0,"div",22),m(1),b(2,"translate"),h()),2&t){const e=C(3);d(),Hn(" ",y(2,2,"dmsg-settings.result-failed"),": ",e.objectKeys(e.lastActionResult.failed).length," ")}}function Jxe(t,n){if(1&t&&(f(0,"div",18)(1,"span",21),m(2),h(),m(3),b(4,"translate"),b(5,"translate"),b(6,"translate"),S(7,Qxe,3,4,"div",22),h()),2&t){const e=C(2);d(2),I("",e.lastActionLabel,":"),d(),R0(" ",y(4,8,"dmsg-settings.result-total")," ",e.lastActionResult.total,", ",y(5,10,"dmsg-settings.result-already")," ",e.lastActionResult.already_connected,", ",y(6,12,"dmsg-settings.result-new")," ",e.lastActionResult.newly_connected," "),d(4),k(e.lastActionResult.failed&&e.objectKeys(e.lastActionResult.failed).length>0?7:-1)}}function eSe(t,n){if(1&t&&(f(0,"div",29),m(1),h()),2&t){const e=n.$implicit;d(),O(e)}}function tSe(t,n){if(1&t&&(f(0,"div",27),we(1,eSe,2,1,"div",29,Dh().trackByPk,!0),h()),2&t){const e=C().$implicit;d(),xe(e.servers)}}function nSe(t,n){1&t&&(f(0,"div",28),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"dmsg-settings.no-sessions")))}function iSe(t,n){if(1&t&&(f(0,"div",19)(1,"div",23)(2,"span",24),m(3),h(),f(4,"span",25),m(5),b(6,"translate"),h()(),f(7,"div",26),m(8),h(),S(9,tSe,3,0,"div",27)(10,nSe,3,3,"div",28),h()),2&t){const e=n.$implicit,i=C(2);d(3),O(i.roleLabel(e.role)),d(2),Hn("",e.count," ",y(6,5,"dmsg-settings.sessions")),d(3),O(e.pk),d(),k(e.servers&&e.servers.length>0?9:10)}}function oSe(t,n){1&t&&(f(0,"div",20)(1,"div",28),m(2),b(3,"translate"),h()()),2&t&&(d(2),O(y(3,1,"dmsg-settings.no-clients")))}function rSe(t,n){if(1&t){const e=ce();f(0,"div",8)(1,"mat-icon"),m(2,"hub"),h(),f(3,"span",9),m(4),b(5,"translate"),h(),S(6,Yxe,4,7,"span",10),h(),f(7,"div",11)(8,"div",12)(9,"button",13),L("click",function(){return z(e),$(C().connectAll())}),S(10,Xxe,1,1,"mat-spinner",14),m(11),b(12,"translate"),h()(),f(13,"span",15),m(14,"|"),h(),f(15,"div",12)(16,"label",16),m(17),b(18,"translate"),h(),f(19,"input",17),Di("ngModelChange",function(o){z(e);const r=C();return Bi(r.sessionsCountInput,o)||(r.sessionsCountInput=o),$(o)}),h(),f(20,"button",13),L("click",function(){return z(e),$(C().applySessionsCount())}),S(21,Zxe,1,1,"mat-spinner",14),m(22),b(23,"translate"),h()()(),S(24,Jxe,8,14,"div",18),we(25,iSe,11,7,"div",19,Dh().trackByRole,!0),S(27,oSe,4,3,"div",20)}if(2&t){const e=C();d(4),O(y(5,13,"dmsg-settings.summary")),d(2),k(e.lastUpdated?6:-1),d(3),v("disabled",e.connectAllInFlight||e.setCountInFlight),d(),k(e.connectAllInFlight?10:-1),d(),I(" ",y(12,15,"dmsg-settings.connect-all")," "),d(6),I("",y(18,17,"dmsg-settings.sessions-count-label"),":"),d(2),ki("ngModel",e.sessionsCountInput),v("disabled",e.setCountInFlight||e.connectAllInFlight),d(),v("disabled",e.setCountInFlight||e.connectAllInFlight),d(),k(e.setCountInFlight?21:-1),d(),I(" ",y(23,19,"dmsg-settings.apply-count")," "),d(2),k(e.lastActionResult?24:-1),d(),xe(e.clientList()),d(2),k(0===e.clientList().length?27:-1)}}let sSe=(()=>{class t extends Wn{constructor(e,i){super(),this.dmsgSvc=e,this.snackbar=i,this.tabsData=[],this.sessions=null,this.loading=!0,this.error=null,this.lastUpdated=null,this.sessionsCountInput=0,this.connectAllInFlight=!1,this.setCountInFlight=!1,this.lastActionResult=null,this.lastActionLabel="",this.tabsData=[{icon:"view_headline",label:"nodes.title",linkParts:["/nodes"]},{icon:"monetization_on",label:"nodes.rewards-title",linkParts:["/nodes","rewards"]},{icon:"health_and_safety",label:"nodes.services-health-title",linkParts:["/nodes","services-health"]},{icon:"hub",label:"nodes.dmsg-settings-title",linkParts:["/nodes","dmsg-settings"]},{icon:"bubble_chart",label:"node.details.tpviz.title",linkParts:[],externalUrl:"/tp-viz/"},{icon:"settings",label:"settings.title",linkParts:["/settings"]}]}ngOnInit(){return this.sub=Ak(2e4).pipe(to(0),Zn(()=>this.dmsgSvc.getSessions())).subscribe({next:e=>{this.sessions=e||{},this.loading=!1,this.error=null,this.lastUpdated=new Date},error:e=>{this.loading=!1,this.error=e?.message||"Failed to fetch dmsg sessions"}}),super.ngOnInit()}ngOnDestroy(){this.sub&&this.sub.unsubscribe()}refresh(){this.dmsgSvc.getSessions().subscribe({next:e=>{this.sessions=e||{},this.lastUpdated=new Date},error:()=>{}})}connectAll(){this.connectAllInFlight||(this.connectAllInFlight=!0,this.lastActionResult=null,this.dmsgSvc.connectAll().subscribe({next:e=>{this.connectAllInFlight=!1,this.lastActionResult=e,this.lastActionLabel="Connect to all",this.snackbar.showDone(`Opened ${e.newly_connected} new session(s); already had ${e.already_connected}.`),this.refresh()},error:e=>{this.connectAllInFlight=!1,this.snackbar.showError(`connect-all failed: ${e?.message||"unknown error"}`)}}))}applySessionsCount(){if(!this.setCountInFlight){if(this.sessionsCountInput<0)return void this.snackbar.showError("Sessions count must be >= 0");this.setCountInFlight=!0,this.lastActionResult=null,this.dmsgSvc.setSessionsCount(this.sessionsCountInput).subscribe({next:e=>{this.setCountInFlight=!1,this.lastActionResult=e,this.lastActionLabel=`Set sessions_count = ${this.sessionsCountInput}`,this.snackbar.showDone(`Persisted sessions_count=${this.sessionsCountInput}; opened ${e.newly_connected} new session(s).`),this.refresh()},error:e=>{this.setCountInFlight=!1,this.snackbar.showError(`set-sessions failed: ${e?.message||"unknown error"}`)}})}}clientList(){const e=[];return this.sessions&&(this.sessions.main&&e.push(this.sessions.main),this.sessions.route_setup&&e.push(this.sessions.route_setup),this.sessions.transport_setup&&e.push(this.sessions.transport_setup)),e}roleLabel(e){switch(e){case"main":return"Main visor";case"route_setup":return"Route Setup Node";case"transport_setup":return"Transport Setup Node";default:return e}}trackByRole(e,i){return i.role}trackByPk(e,i){return i}objectKeys(e){return e?Object.keys(e):[]}static{this.\u0275fac=function(i){return new(i||t)(P(Wxe),P(bt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-dmsg-settings"]],standalone:!1,features:[be],decls:7,vars:8,consts:[[1,"row"],[1,"col-12"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton"],[1,"content","col-12","mt-4.5"],[1,"loading-row"],[1,"error-row"],[3,"diameter"],[1,"ml-2"],[1,"summary-line"],[1,"ml-1"],[1,"last-updated"],[1,"actions","mt-3"],[1,"action-group"],["mat-raised-button","","color","primary",3,"click","disabled"],[1,"d-inline-block","mr-2",3,"diameter"],[1,"divider"],["for","sessions-count"],["id","sessions-count","type","number","min","0","max","99",3,"ngModelChange","ngModel","disabled"],[1,"action-result"],[1,"client-card"],[1,"client-card","missing"],[1,"result-label"],[1,"result-failed"],[1,"client-header"],[1,"role"],[1,"count"],[1,"client-pk"],[1,"server-list"],[1,"empty"],[1,"server"]],template:function(i,o){1&i&&(f(0,"div",0)(1,"div",1),B(2,"app-top-bar",2),h(),f(3,"div",3),S(4,qxe,5,4,"div",4),S(5,Kxe,5,1,"div",5),S(6,rSe,28,21),h()()),2&i&&(d(2),v("titleParts",Mt(7,Gxe))("tabsData",o.tabsData)("selectedTabIndex",3)("showUpdateButton",!1),d(2),k(o.loading&&!o.sessions?4:-1),d(),k(o.error&&!o.sessions?5:-1),d(),k(o.sessions?6:-1))},dependencies:[rn,Wf,sn,sk,rk,Jn,lt,Zb,$o,As,g_,Se],styles:['@charset "UTF-8";.loading-row[_ngcontent-%COMP%]{display:flex;align-items:center;color:#ffffffbf;padding:24px 0}.error-row[_ngcontent-%COMP%]{display:flex;align-items:center;color:#f87171;padding:24px 0}.summary-line[_ngcontent-%COMP%]{display:flex;align-items:center;color:#ffffffe6;font-size:.95em}.summary-line[_ngcontent-%COMP%] .last-updated[_ngcontent-%COMP%]{color:#ffffff8c;font-size:.85em;margin-left:8px}.actions[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:16px 0 24px;padding:14px 16px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:6px}.actions[_ngcontent-%COMP%] .action-group[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.actions[_ngcontent-%COMP%] .action-group[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{color:#ffffffbf;font-size:.9em}.actions[_ngcontent-%COMP%] .action-group[_ngcontent-%COMP%] input[type=number][_ngcontent-%COMP%]{width:72px;background:#ffffff14;border:1px solid rgba(255,255,255,.15);color:#fff;padding:4px 8px;border-radius:4px;font-size:.95em}.actions[_ngcontent-%COMP%] .divider[_ngcontent-%COMP%]{color:#ffffff40;padding:0 6px}.action-result[_ngcontent-%COMP%]{margin:8px 0 20px;padding:10px 14px;background:#4ade8014;border-left:3px solid #4ade80;border-radius:4px;font-size:.9em;color:#ffffffe6}.action-result[_ngcontent-%COMP%] .result-label[_ngcontent-%COMP%]{font-weight:600;margin-right:8px}.action-result[_ngcontent-%COMP%] .result-failed[_ngcontent-%COMP%]{color:#f87171;margin-top:4px;font-size:.85em}.client-card[_ngcontent-%COMP%]{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:6px;padding:14px 16px;margin-bottom:14px}.client-card[_ngcontent-%COMP%] .client-header[_ngcontent-%COMP%]{display:flex;align-items:baseline;margin-bottom:10px;gap:10px}.client-card[_ngcontent-%COMP%] .client-header[_ngcontent-%COMP%] .role[_ngcontent-%COMP%]{font-size:1.1em;font-weight:600;color:#fff}.client-card[_ngcontent-%COMP%] .client-header[_ngcontent-%COMP%] .count[_ngcontent-%COMP%]{color:#ffffffa6;font-size:.85em}.client-card[_ngcontent-%COMP%] .client-pk[_ngcontent-%COMP%]{font-family:monospace;font-size:.8em;color:#ffffff8c;margin-bottom:10px;word-break:break-all}.client-card[_ngcontent-%COMP%] .server-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:3px}.client-card[_ngcontent-%COMP%] .server-list[_ngcontent-%COMP%] .server[_ngcontent-%COMP%]{font-family:monospace;font-size:.82em;color:#ffffffd9;padding:2px 0}.client-card[_ngcontent-%COMP%] .server-list[_ngcontent-%COMP%] .server[_ngcontent-%COMP%]:before{content:"\\2022";margin-right:8px;color:#4ade80}.client-card[_ngcontent-%COMP%] .empty[_ngcontent-%COMP%]{color:#ffffff80;font-size:.9em;font-style:italic}.client-card.missing[_ngcontent-%COMP%]{opacity:.55}']})}}return t})();function aSe(t,n){if(1&t&&B(0,"app-node-app-list",0),2&t){const e=C();v("apps",e.apps)("showShortList",!1)("nodePK",e.nodePK)}}let lSe=(()=>{class t extends Wn{ngOnInit(){return this.dataSubscription=ke.currentNode.subscribe(e=>{this.nodePK=e.localPk,this.apps=e.apps}),super.ngOnInit()}ngOnDestroy(){this.dataSubscription.unsubscribe()}static{this.\u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})()}static{this.\u0275cmp=se({type:t,selectors:[["app-all-apps"]],standalone:!1,features:[be],decls:1,vars:1,consts:[[3,"apps","showShortList","nodePK"]],template:function(i,o){1&i&&S(0,aSe,1,3,"app-node-app-list",0),2&i&&k(o.apps?0:-1)},dependencies:[N5],encapsulation:2})}}return t})();const cSe=["button"],dSe=["firstInput"],uSe=t=>({"element-disabled":t});let F5=(()=>{class t{static openDialog(e,i){const o=new Lt;return o.data=i,o.autoFocus=!1,o.width=ze.smallModalWidth,e.open(t,o)}constructor(e,i,o,r,s){this.dialogRef=e,this.data=i,this.formBuilder=o,this.snackbarService=r,this.routeService=s}ngOnInit(){this.form=this.formBuilder.group({min:[this.data.minHops,Ve.compose([Ve.required,Ve.maxLength(3),Ve.pattern("^[0-9]+$")])]}),setTimeout(()=>this.firstInput.nativeElement.focus())}ngOnDestroy(){this.operationSubscription&&this.operationSubscription.unsubscribe()}get disableDismiss(){return!!this.button&&this.button.isLoading}save(){!this.form.valid||this.operationSubscription||(this.button.showLoading(),this.operationSubscription=this.routeService.setMinHops(this.data.nodePk,Number.parseInt(this.form.get("min").value,10)).subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)}))}onSuccess(e){this.dialogRef.close(!0),this.snackbarService.showDone("router-config.done")}onError(e){this.button.showError(),this.operationSubscription=null,e=Je(e),this.snackbarService.showError(e)}static{this.\u0275fac=function(i){return new(i||t)(P(It),P(hn),P(pi),P(bt),P(v5))}}static{this.\u0275cmp=se({type:t,selectors:[["app-router-config"]],viewQuery:function(i,o){if(1&i&&rt(cSe,5)(dSe,5),2&i){let r;ue(r=he())&&(o.button=r.first),ue(r=he())&&(o.firstInput=r.first)}},standalone:!1,decls:21,vars:22,consts:[["firstInput",""],["button",""],[3,"headline","dialog","disableDismiss"],[1,"info-container"],[3,"formGroup","ngClass"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","min","maxlength","3","matInput",""],["color","primary",1,"float-right",3,"action","disabled"]],template:function(i,o){1&i&&(f(0,"app-dialog",2),b(1,"translate"),f(2,"div",3),m(3),b(4,"translate"),h(),f(5,"form",4)(6,"mat-form-field")(7,"div",5)(8,"label",6),m(9),b(10,"translate"),h(),B(11,"input",7,0),h(),f(13,"mat-error")(14,"span"),m(15),b(16,"translate"),h()()()(),f(17,"app-button",8,1),L("action",function(){return o.save()}),m(19),b(20,"translate"),h()()),2&i&&(v("headline",y(1,10,"router-config.title"))("dialog",o.dialogRef)("disableDismiss",o.disableDismiss),d(3),O(y(4,12,"router-config.info")),d(2),v("formGroup",o.form)("ngClass",oe(20,uSe,o.disableDismiss)),d(4),O(y(10,14,"router-config.min-hops")),d(6),O(y(16,16,"router-config.min-hops-error")),d(2),v("disabled",!o.form.valid),d(2),I(" ",y(20,18,"router-config.save-config-button")," "))},dependencies:[qt,Cn,rn,sn,yn,ji,Xt,fn,wn,Es,ei,On,Kt,Se],styles:[".info-container[_ngcontent-%COMP%]{margin-bottom:10px}"]})}}return t})();const hSe=["button"],fSe=["firstInput"],pSe=t=>({"element-disabled":t});let mSe=(()=>{class t{static openDialog(e,i){const o=new Lt;return o.data=i,o.autoFocus=!1,o.width=ze.smallModalWidth,e.open(t,o)}constructor(e,i,o,r,s,a){this.dialogRef=e,this.data=i,this.formBuilder=o,this.snackbarService=r,this.nodeService=s,this.dialog=a}ngOnInit(){this.form=this.formBuilder.group({address:[this.data.currentAddress,Ve.compose([Ve.minLength(20),Ve.maxLength(112)])]}),setTimeout(()=>this.firstInput.nativeElement.focus())}ngOnDestroy(){this.operationSubscription&&this.operationSubscription.unsubscribe()}get disableDismiss(){return!!this.button&&this.button.isLoading}startSaving(){if(this.form.valid&&!this.operationSubscription)if(this.form.get("address").value)this.finishSaving();else{const i=Ye.createConfirmationDialog(this.dialog,"rewards-address-config.empty-warning");i.componentInstance.operationAccepted.subscribe(()=>{i.componentInstance.closeModal(),this.finishSaving()})}}finishSaving(){this.button.showLoading();const e=this.form.get("address").value;let i=this.nodeService.setRewardsAddress(this.data.nodePk,e);e||(i=this.nodeService.deleteRewardsAddress(this.data.nodePk)),this.operationSubscription=i.subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)})}onSuccess(e){this.dialogRef.close(!0),this.snackbarService.showDone("rewards-address-config.done")}onError(e){this.button.showError(),this.operationSubscription=null,e=Je(e),this.snackbarService.showError(e)}static{this.\u0275fac=function(i){return new(i||t)(P(It),P(hn),P(pi),P(bt),P(Sr),P(kt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-rewards-address-config"]],viewQuery:function(i,o){if(1&i&&rt(hSe,5)(fSe,5),2&i){let r;ue(r=he())&&(o.button=r.first),ue(r=he())&&(o.firstInput=r.first)}},standalone:!1,decls:25,vars:25,consts:[["firstInput",""],["button",""],[3,"headline","dialog","disableDismiss"],[1,"info-container"],["href","https://github.com/skycoin/skywire/blob/develop/rewards/mainnet_rules.md","target","_blank","rel","noreferrer nofollow noopener"],[3,"formGroup","ngClass"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","address","maxlength","112","matInput",""],["color","primary",1,"float-right",3,"action","disabled"]],template:function(i,o){1&i&&(f(0,"app-dialog",2),b(1,"translate"),f(2,"div",3)(3,"span"),m(4),b(5,"translate"),h(),f(6,"a",4),m(7),b(8,"translate"),h()(),f(9,"form",5)(10,"mat-form-field")(11,"div",6)(12,"label",7),m(13),b(14,"translate"),h(),B(15,"input",8,0),h(),f(17,"mat-error")(18,"span"),m(19),b(20,"translate"),h()()()(),f(21,"app-button",9,1),L("action",function(){return o.startSaving()}),m(23),b(24,"translate"),h()()),2&i&&(v("headline",y(1,11,"rewards-address-config.title"))("dialog",o.dialogRef)("disableDismiss",o.disableDismiss),d(4),I("",y(5,13,"rewards-address-config.info")," "),d(3),I(" ",y(8,15,"rewards-address-config.more-info-link")," "),d(2),v("formGroup",o.form)("ngClass",oe(23,pSe,o.disableDismiss)),d(4),O(y(14,17,"rewards-address-config.address")),d(6),O(y(20,19,"rewards-address-config.address-error")),d(2),v("disabled",!o.form.valid),d(2),I(" ",y(24,21,"rewards-address-config.save-config-button")," "))},dependencies:[qt,Cn,rn,sn,yn,ji,Xt,fn,wn,Es,ei,On,Kt,Se],styles:[".info-container[_ngcontent-%COMP%]{margin-bottom:10px}"]})}}return t})(),gSe=(()=>{class t{constructor(e){this.clipboardService=e,this.copyEvent=new ve,this.errorEvent=new ve,this.value=""}ngOnDestroy(){this.copyEvent.complete(),this.errorEvent.complete()}copyToClipboard(){this.clipboardService.copy(this.value)?this.copyEvent.emit(this.value):this.errorEvent.emit()}static{this.\u0275fac=function(i){return new(i||t)(P(Gf))}}static{this.\u0275dir=de({type:t,selectors:[["","clipboard",""]],hostBindings:function(i,o){1&i&&L("click",function(){return o.copyToClipboard()})},inputs:{value:[0,"clipboard","value"]},outputs:{copyEvent:"copyEvent",errorEvent:"errorEvent"},standalone:!1})}}return t})();const _Se=t=>({text:t}),bSe=()=>({"tooltip-word-break":!0});function vSe(t,n){if(1&t&&(B(0,"app-truncated-text",2),f(1,"mat-icon",3),m(2,"filter_none"),h()),2&t){const e=C();v("short",e.short)("showTooltip",!1)("shortTextLength",e.shortTextLength)("text",e.text),d(),v("inline",!0)}}function ySe(t,n){if(1&t&&(f(0,"div",1)(1,"div",4),m(2),h(),f(3,"mat-icon",3),m(4,"filter_none"),h()()),2&t){const e=C();d(2),O(e.text),d(),v("inline",!0)}}let Rk=(()=>{class t{constructor(e){this.snackbarService=e,this.short=!1,this.shortSimple=!1,this.shortTextLength=5}onCopyToClipboardClicked(){this.snackbarService.showDone("copy.copied")}static{this.\u0275fac=function(i){return new(i||t)(P(bt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-copy-to-clipboard-text"]],inputs:{text:"text",short:"short",shortSimple:"shortSimple",shortTextLength:"shortTextLength"},standalone:!1,decls:4,vars:11,consts:[[1,"wrapper","highlight-internal-icon",3,"copyEvent","clipboard","matTooltip","matTooltipClass"],[1,"d-flex"],[1,"text-margin",3,"short","showTooltip","shortTextLength","text"],[3,"inline"],[1,"single-line","text-margin"]],template:function(i,o){1&i&&(f(0,"div",0),b(1,"translate"),L("copyEvent",function(){return o.onCopyToClipboardClicked()}),S(2,vSe,3,5),S(3,ySe,5,2,"div",1),h()),2&i&&(v("clipboard",o.text)("matTooltip",Ee(1,5,o.short||o.shortSimple?"copy.tooltip-with-text":"copy.tooltip",oe(8,_Se,o.text)))("matTooltipClass",Mt(10,bSe)),d(2),k(o.shortSimple?-1:2),d(),k(o.shortSimple?3:-1))},dependencies:[lt,pn,gSe,g5,Se],styles:['.cursor-pointer[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%], .wrapper[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media(max-width:767px),(min-width:992px)and (max-width:1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media(max-width:767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}.wrapper[_ngcontent-%COMP%]{display:inline}.wrapper[_ngcontent-%COMP%] .text-margin[_ngcontent-%COMP%]{margin-right:5px}.wrapper[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:.6rem;-webkit-user-select:none;user-select:none;flex-shrink:0;display:inline!important}']})}}return t})();function du(t){return t+.5|0}const Rs=(t,n,e)=>Math.max(Math.min(t,e),n);function Yf(t){return Rs(du(2.55*t),0,255)}function Ma(t){return Rs(du(255*t),0,255)}function Ns(t){return Rs(du(t/2.55)/100,0,1)}function L5(t){return Rs(du(100*t),0,100)}const Ko={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},Nk=[..."0123456789ABCDEF"],CSe=t=>Nk[15&t],wSe=t=>Nk[(240&t)>>4]+Nk[15&t],uv=t=>(240&t)>>4==(15&t);const TSe=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function B5(t,n,e){const i=n*Math.min(e,1-e),o=(r,s=(r+t/30)%12)=>e-i*Math.max(Math.min(s-3,9-s,1),-1);return[o(0),o(8),o(4)]}function MSe(t,n,e){const i=(o,r=(o+t/60)%6)=>e-e*n*Math.max(Math.min(r,4-r,1),0);return[i(5),i(3),i(1)]}function ESe(t,n,e){const i=B5(t,1,.5);let o;for(n+e>1&&(o=1/(n+e),n*=o,e*=o),o=0;o<3;o++)i[o]*=1-n-e,i[o]+=n;return i}function Fk(t){const e=t.r/255,i=t.g/255,o=t.b/255,r=Math.max(e,i,o),s=Math.min(e,i,o),a=(r+s)/2;let l,c,u;return r!==s&&(u=r-s,c=a>.5?u/(2-r-s):u/(r+s),l=function ISe(t,n,e,i,o){return t===o?(n-e)/i+(nt<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055,uu=t=>t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4);function fv(t,n,e){if(t){let i=Fk(t);i[n]=Math.max(0,Math.min(i[n]+i[n]*e,0===n?360:1)),i=Bk(i),t.r=i[0],t.g=i[1],t.b=i[2]}}function U5(t,n){return t&&Object.assign(n||{},t)}function z5(t){var n={r:0,g:0,b:0,a:255};return Array.isArray(t)?t.length>=3&&(n={r:t[0],g:t[1],b:t[2],a:255},t.length>3&&(n.a=Ma(t[3]))):(n=U5(t,{r:0,g:0,b:0,a:1})).a=Ma(n.a),n}function USe(t){return"r"===t.charAt(0)?function VSe(t){const n=BSe.exec(t);let i,o,r,e=255;if(n){if(n[7]!==i){const s=+n[7];e=n[8]?Yf(s):Rs(255*s,0,255)}return i=+n[1],o=+n[3],r=+n[5],i=255&(n[2]?Yf(i):Rs(i,0,255)),o=255&(n[4]?Yf(o):Rs(o,0,255)),r=255&(n[6]?Yf(r):Rs(r,0,255)),{r:i,g:o,b:r,a:e}}}(t):function ASe(t){const n=TSe.exec(t);let i,e=255;if(!n)return;n[5]!==i&&(e=n[6]?Yf(+n[5]):Ma(+n[5]));const o=V5(+n[2]),r=+n[3]/100,s=+n[4]/100;return i="hwb"===n[1]?function PSe(t,n,e){return Lk(ESe,t,n,e)}(o,r,s):"hsv"===n[1]?function OSe(t,n,e){return Lk(MSe,t,n,e)}(o,r,s):Bk(o,r,s),{r:i[0],g:i[1],b:i[2],a:e}}(t)}class hu{constructor(n){if(n instanceof hu)return n;const e=typeof n;let i;"object"===e?i=z5(n):"string"===e&&(i=function SSe(t){var e,n=t.length;return"#"===t[0]&&(4===n||5===n?e={r:255&17*Ko[t[1]],g:255&17*Ko[t[2]],b:255&17*Ko[t[3]],a:5===n?17*Ko[t[4]]:255}:(7===n||9===n)&&(e={r:Ko[t[1]]<<4|Ko[t[2]],g:Ko[t[3]]<<4|Ko[t[4]],b:Ko[t[5]]<<4|Ko[t[6]],a:9===n?Ko[t[7]]<<4|Ko[t[8]]:255})),e}(n)||function LSe(t){hv||(hv=function FSe(){const t={},n=Object.keys(j5),e=Object.keys(H5);let i,o,r,s,a;for(i=0;i>16&255,r>>8&255,255&r]}return t}(),hv.transparent=[0,0,0,0]);const n=hv[t.toLowerCase()];return n&&{r:n[0],g:n[1],b:n[2],a:4===n.length?n[3]:255}}(n)||USe(n)),this._rgb=i,this._valid=!!i}get valid(){return this._valid}get rgb(){var n=U5(this._rgb);return n&&(n.a=Ns(n.a)),n}set rgb(n){this._rgb=z5(n)}rgbString(){return this._valid?function HSe(t){return t&&(t.a<255?`rgba(${t.r}, ${t.g}, ${t.b}, ${Ns(t.a)})`:`rgb(${t.r}, ${t.g}, ${t.b})`)}(this._rgb):void 0}hexString(){return this._valid?function DSe(t){var n=(t=>uv(t.r)&&uv(t.g)&&uv(t.b)&&uv(t.a))(t)?CSe:wSe;return t?"#"+n(t.r)+n(t.g)+n(t.b)+((t,n)=>t<255?n(t):"")(t.a,n):void 0}(this._rgb):void 0}hslString(){return this._valid?function NSe(t){if(!t)return;const n=Fk(t),e=n[0],i=L5(n[1]),o=L5(n[2]);return t.a<255?`hsla(${e}, ${i}%, ${o}%, ${Ns(t.a)})`:`hsl(${e}, ${i}%, ${o}%)`}(this._rgb):void 0}mix(n,e){if(n){const i=this.rgb,o=n.rgb;let r;const s=e===r?.5:e,a=2*s-1,l=i.a-o.a,c=((a*l===-1?a:(a+l)/(1+a*l))+1)/2;r=1-c,i.r=255&c*i.r+r*o.r+.5,i.g=255&c*i.g+r*o.g+.5,i.b=255&c*i.b+r*o.b+.5,i.a=s*i.a+(1-s)*o.a,this.rgb=i}return this}interpolate(n,e){return n&&(this._rgb=function jSe(t,n,e){const i=uu(Ns(t.r)),o=uu(Ns(t.g)),r=uu(Ns(t.b));return{r:Ma(Vk(i+e*(uu(Ns(n.r))-i))),g:Ma(Vk(o+e*(uu(Ns(n.g))-o))),b:Ma(Vk(r+e*(uu(Ns(n.b))-r))),a:t.a+e*(n.a-t.a)}}(this._rgb,n._rgb,e)),this}clone(){return new hu(this.rgb)}alpha(n){return this._rgb.a=Ma(n),this}clearer(n){return this._rgb.a*=1-n,this}greyscale(){const n=this._rgb,e=du(.3*n.r+.59*n.g+.11*n.b);return n.r=n.g=n.b=e,this}opaquer(n){return this._rgb.a*=1+n,this}negate(){const n=this._rgb;return n.r=255-n.r,n.g=255-n.g,n.b=255-n.b,this}lighten(n){return fv(this._rgb,2,n),this}darken(n){return fv(this._rgb,2,-n),this}saturate(n){return fv(this._rgb,1,n),this}desaturate(n){return fv(this._rgb,1,-n),this}rotate(n){return function RSe(t,n){var e=Fk(t);e[0]=V5(e[0]+n),e=Bk(e),t.r=e[0],t.g=e[1],t.b=e[2]}(this._rgb,n),this}}const zSe=(()=>{let t=0;return()=>t++})();function dt(t){return null==t}function cn(t){if(Array.isArray&&Array.isArray(t))return!0;const n=Object.prototype.toString.call(t);return"[object"===n.slice(0,7)&&"Array]"===n.slice(-6)}function pt(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)}function An(t){return("number"==typeof t||t instanceof Number)&&isFinite(+t)}function Io(t,n){return An(t)?t:n}function $e(t,n){return typeof t>"u"?n:t}function Qt(t,n,e){if(t&&"function"==typeof t.call)return t.apply(e,n)}function Bt(t,n,e,i){let o,r,s;if(cn(t))if(r=t.length,i)for(o=r-1;o>=0;o--)n.call(e,t[o],o);else for(o=0;ot,x:t=>t.x,y:t=>t.y};function Ea(t,n){return(G5[n]||(G5[n]=function KSe(t){const n=function qSe(t){const n=t.split("."),e=[];let i="";for(const o of n)i+=o,i.endsWith("\\")?i=i.slice(0,-1)+".":(e.push(i),i="");return e}(t);return e=>{for(const i of n){if(""===i)break;e=e&&e[i]}return e}}(n)))(t)}function Hk(t){return t.charAt(0).toUpperCase()+t.slice(1)}const Qf=t=>typeof t<"u",Ia=t=>"function"==typeof t,q5=(t,n)=>{if(t.size!==n.size)return!1;for(const e of t)if(!n.has(e))return!1;return!0},Dt=Math.PI,dn=2*Dt,XSe=dn+Dt,gv=Number.POSITIVE_INFINITY,ZSe=Dt/180,Gn=Dt/2,dc=Dt/4,K5=2*Dt/3,Pa=Math.log10,Qr=Math.sign;function Jf(t,n,e){return Math.abs(t-n)l&&c=Math.min(n,e)-i&&t<=Math.max(n,e)+i}function zk(t,n,e){e=e||(s=>t[s]1;)r=o+i>>1,e(r)?o=r:i=r;return{lo:o,hi:i}}const Bs=(t,n,e,i)=>zk(t,e,i?o=>{const r=t[o][n];return rt[o][n]zk(t,e,i=>t[i][n]>=e),J5=["push","pop","shift","splice","unshift"];function eH(t,n){const e=t._chartjs;if(!e)return;const i=e.listeners,o=i.indexOf(n);-1!==o&&i.splice(o,1),!(i.length>0)&&(J5.forEach(r=>{delete t[r]}),delete t._chartjs)}const nH=typeof window>"u"?function(t){return t()}:window.requestAnimationFrame;function iH(t,n){let e=[],i=!1;return function(...o){e=o,i||(i=!0,nH.call(window,()=>{i=!1,t.apply(n,e)}))}}const $i=(t,n,e)=>"start"===t?n:"end"===t?e:(n+e)/2;const _v=t=>0===t||1===t,sH=(t,n,e)=>-Math.pow(2,10*(t-=1))*Math.sin((t-n)*dn/e),aH=(t,n,e)=>Math.pow(2,-10*t)*Math.sin((t-n)*dn/e)+1,tp={linear:t=>t,easeInQuad:t=>t*t,easeOutQuad:t=>-t*(t-2),easeInOutQuad:t=>(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1),easeInCubic:t=>t*t*t,easeOutCubic:t=>(t-=1)*t*t+1,easeInOutCubic:t=>(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2),easeInQuart:t=>t*t*t*t,easeOutQuart:t=>-((t-=1)*t*t*t-1),easeInOutQuart:t=>(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2),easeInQuint:t=>t*t*t*t*t,easeOutQuint:t=>(t-=1)*t*t*t*t+1,easeInOutQuint:t=>(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2),easeInSine:t=>1-Math.cos(t*Gn),easeOutSine:t=>Math.sin(t*Gn),easeInOutSine:t=>-.5*(Math.cos(Dt*t)-1),easeInExpo:t=>0===t?0:Math.pow(2,10*(t-1)),easeOutExpo:t=>1===t?1:1-Math.pow(2,-10*t),easeInOutExpo:t=>_v(t)?t:t<.5?.5*Math.pow(2,10*(2*t-1)):.5*(2-Math.pow(2,-10*(2*t-1))),easeInCirc:t=>t>=1?t:-(Math.sqrt(1-t*t)-1),easeOutCirc:t=>Math.sqrt(1-(t-=1)*t),easeInOutCirc:t=>(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1),easeInElastic:t=>_v(t)?t:sH(t,.075,.3),easeOutElastic:t=>_v(t)?t:aH(t,.075,.3),easeInOutElastic:t=>_v(t)?t:t<.5?.5*sH(2*t,.1125,.45):.5+.5*aH(2*t-1,.1125,.45),easeInBack:t=>t*t*(2.70158*t-1.70158),easeOutBack:t=>(t-=1)*t*(2.70158*t+1.70158)+1,easeInOutBack(t){let n=1.70158;return(t/=.5)<1?t*t*((1+(n*=1.525))*t-n)*.5:.5*((t-=2)*t*((1+(n*=1.525))*t+n)+2)},easeInBounce:t=>1-tp.easeOutBounce(1-t),easeOutBounce:t=>t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375,easeInOutBounce:t=>t<.5?.5*tp.easeInBounce(2*t):.5*tp.easeOutBounce(2*t-1)+.5};function Wk(t){if(t&&"object"==typeof t){const n=t.toString();return"[object CanvasPattern]"===n||"[object CanvasGradient]"===n}return!1}function lH(t){return Wk(t)?t:new hu(t)}function Gk(t){return Wk(t)?t:new hu(t).saturate(.5).darken(.1).hexString()}const lke=["x","y","borderWidth","radius","tension"],cke=["color","borderColor","backgroundColor"],cH=new Map;function np(t,n,e){return function hke(t,n){n=n||{};const e=t+JSON.stringify(n);let i=cH.get(e);return i||(i=new Intl.NumberFormat(t,n),cH.set(e,i)),i}(n,e).format(t)}const dH={values:t=>cn(t)?t:""+t,numeric(t,n,e){if(0===t)return"0";const i=this.chart.options.locale;let o,r=t;if(e.length>1){const c=Math.max(Math.abs(e[0].value),Math.abs(e[e.length-1].value));(c<1e-4||c>1e15)&&(o="scientific"),r=function fke(t,n){let e=n.length>3?n[2].value-n[1].value:n[1].value-n[0].value;return Math.abs(e)>=1&&t!==Math.floor(t)&&(e=t-Math.floor(t)),e}(t,e)}const s=Pa(Math.abs(r)),a=isNaN(s)?1:Math.max(Math.min(-1*Math.floor(s),20),0),l={notation:o,minimumFractionDigits:a,maximumFractionDigits:a};return Object.assign(l,this.options.ticks.format),np(t,i,l)},logarithmic(t,n,e){if(0===t)return"0";const i=e[n].significand||t/Math.pow(10,Math.floor(Pa(t)));return[1,2,3,5,10,15].includes(i)||n>.8*e.length?dH.numeric.call(this,t,n,e):""}};var bv={formatters:dH};const uc=Object.create(null),qk=Object.create(null);function ip(t,n){if(!n)return t;const e=n.split(".");for(let i=0,o=e.length;ii.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(i,o)=>Gk(o.backgroundColor),this.hoverBorderColor=(i,o)=>Gk(o.borderColor),this.hoverColor=(i,o)=>Gk(o.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(n),this.apply(e)}set(n,e){return Kk(this,n,e)}get(n){return ip(this,n)}describe(n,e){return Kk(qk,n,e)}override(n,e){return Kk(uc,n,e)}route(n,e,i,o){const r=ip(this,n),s=ip(this,i),a="_"+e;Object.defineProperties(r,{[a]:{value:r[e],writable:!0},[e]:{enumerable:!0,get(){const l=this[a],c=s[o];return pt(l)?Object.assign({},c,l):$e(l,c)},set(l){this[a]=l}}})}apply(n){n.forEach(e=>e(this))}}var gn=new mke({_scriptable:t=>!t.startsWith("on"),_indexable:t=>"events"!==t,hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}},[function dke(t){t.set("animation",{delay:void 0,duration:1e3,easing:"easeOutQuart",fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),t.describe("animation",{_fallback:!1,_indexable:!1,_scriptable:n=>"onProgress"!==n&&"onComplete"!==n&&"fn"!==n}),t.set("animations",{colors:{type:"color",properties:cke},numbers:{type:"number",properties:lke}}),t.describe("animations",{_fallback:"animation"}),t.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:n=>0|n}}}})},function uke(t){t.set("layout",{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})},function pke(t){t.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:"ticks",clip:!0,grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(n,e)=>e.lineWidth,tickColor:(n,e)=>e.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:bv.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}}),t.route("scale.ticks","color","","color"),t.route("scale.grid","color","","borderColor"),t.route("scale.border","color","","borderColor"),t.route("scale.title","color","","color"),t.describe("scale",{_fallback:!1,_scriptable:n=>!n.startsWith("before")&&!n.startsWith("after")&&"callback"!==n&&"parser"!==n,_indexable:n=>"borderDash"!==n&&"tickBorderDash"!==n&&"dash"!==n}),t.describe("scales",{_fallback:"scale"}),t.describe("scale.ticks",{_scriptable:n=>"backdropPadding"!==n&&"callback"!==n,_indexable:n=>"backdropPadding"!==n})}]);function vv(t,n,e,i,o){let r=n[o];return r||(r=n[o]=t.measureText(o).width,e.push(o)),r>i&&(i=r),i}function hc(t,n,e){const i=t.currentDevicePixelRatio,o=0!==e?Math.max(e/2,.5):0;return Math.round((n-o)*i)/i+o}function uH(t,n){!n&&!t||((n=n||t.getContext("2d")).save(),n.resetTransform(),n.clearRect(0,0,t.width,t.height),n.restore())}function Yk(t,n,e,i){!function hH(t,n,e,i,o){let r,s,a,l,c,u,p,g;const _=n.pointStyle,w=n.rotation,x=n.radius;let T=(w||0)*ZSe;if(_&&"object"==typeof _&&(r=_.toString(),"[object HTMLImageElement]"===r||"[object HTMLCanvasElement]"===r))return t.save(),t.translate(e,i),t.rotate(T),t.drawImage(_,-_.width/2,-_.height/2,_.width,_.height),void t.restore();if(!(isNaN(x)||x<=0)){switch(t.beginPath(),_){default:o?t.ellipse(e,i,o/2,x,0,0,dn):t.arc(e,i,x,0,dn),t.closePath();break;case"triangle":u=o?o/2:x,t.moveTo(e+Math.sin(T)*u,i-Math.cos(T)*x),T+=K5,t.lineTo(e+Math.sin(T)*u,i-Math.cos(T)*x),T+=K5,t.lineTo(e+Math.sin(T)*u,i-Math.cos(T)*x),t.closePath();break;case"rectRounded":c=.516*x,l=x-c,s=Math.cos(T+dc)*l,p=Math.cos(T+dc)*(o?o/2-c:l),a=Math.sin(T+dc)*l,g=Math.sin(T+dc)*(o?o/2-c:l),t.arc(e-p,i-a,c,T-Dt,T-Gn),t.arc(e+g,i-s,c,T-Gn,T),t.arc(e+p,i+a,c,T,T+Gn),t.arc(e-g,i+s,c,T+Gn,T+Dt),t.closePath();break;case"rect":if(!w){l=Math.SQRT1_2*x,u=o?o/2:l,t.rect(e-u,i-l,2*u,2*l);break}T+=dc;case"rectRot":p=Math.cos(T)*(o?o/2:x),s=Math.cos(T)*x,a=Math.sin(T)*x,g=Math.sin(T)*(o?o/2:x),t.moveTo(e-p,i-a),t.lineTo(e+g,i-s),t.lineTo(e+p,i+a),t.lineTo(e-g,i+s),t.closePath();break;case"crossRot":T+=dc;case"cross":p=Math.cos(T)*(o?o/2:x),s=Math.cos(T)*x,a=Math.sin(T)*x,g=Math.sin(T)*(o?o/2:x),t.moveTo(e-p,i-a),t.lineTo(e+p,i+a),t.moveTo(e+g,i-s),t.lineTo(e-g,i+s);break;case"star":p=Math.cos(T)*(o?o/2:x),s=Math.cos(T)*x,a=Math.sin(T)*x,g=Math.sin(T)*(o?o/2:x),t.moveTo(e-p,i-a),t.lineTo(e+p,i+a),t.moveTo(e+g,i-s),t.lineTo(e-g,i+s),T+=dc,p=Math.cos(T)*(o?o/2:x),s=Math.cos(T)*x,a=Math.sin(T)*x,g=Math.sin(T)*(o?o/2:x),t.moveTo(e-p,i-a),t.lineTo(e+p,i+a),t.moveTo(e+g,i-s),t.lineTo(e-g,i+s);break;case"line":s=o?o/2:Math.cos(T)*x,a=Math.sin(T)*x,t.moveTo(e-s,i-a),t.lineTo(e+s,i+a);break;case"dash":t.moveTo(e,i),t.lineTo(e+Math.cos(T)*(o?o/2:x),i+Math.sin(T)*x);break;case!1:t.closePath()}t.fill(),n.borderWidth>0&&t.stroke()}}(t,n,e,i,null)}function Vs(t,n,e){return e=e||.5,!n||t&&t.x>n.left-e&&t.xn.top-e&&t.y0&&""!==r.strokeColor;let l,c;for(t.save(),t.font=o.string,function yke(t,n){n.translation&&t.translate(n.translation[0],n.translation[1]),dt(n.rotation)||t.rotate(n.rotation),n.color&&(t.fillStyle=n.color),n.textAlign&&(t.textAlign=n.textAlign),n.textBaseline&&(t.textBaseline=n.textBaseline)}(t,r),l=0;l+t||0;function fH(t){return function Xk(t,n){const e={},i=pt(n),o=i?Object.keys(n):n,r=pt(t)?i?s=>$e(t[s],t[n[s]]):s=>t[s]:()=>t;for(const s of o)e[s]=Dke(r(s));return e}(t,{top:"y",right:"x",bottom:"y",left:"x"})}function Wi(t){const n=fH(t);return n.width=n.left+n.right,n.height=n.top+n.bottom,n}function ai(t,n){let e=$e((t=t||{}).size,(n=n||gn.font).size);"string"==typeof e&&(e=parseInt(e,10));let i=$e(t.style,n.style);i&&!(""+i).match(Ske)&&(console.warn('Invalid font style specified: "'+i+'"'),i=void 0);const o={family:$e(t.family,n.family),lineHeight:kke($e(t.lineHeight,n.lineHeight),e),size:e,style:i,weight:$e(t.weight,n.weight),string:""};return o.string=function gke(t){return!t||dt(t.size)||dt(t.family)?null:(t.style?t.style+" ":"")+(t.weight?t.weight+" ":"")+t.size+"px "+t.family}(o),o}function rp(t,n,e,i){let r,s,a,o=!0;for(r=0,s=t.length;rt[0]){const r=e||t;typeof i>"u"&&(i=bH("_fallback",t));const s={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:t,_rootScopes:r,_fallback:i,_getTarget:o,override:a=>Zk([a,...t],n,r,i)};return new Proxy(s,{deleteProperty:(a,l)=>(delete a[l],delete a._keys,delete t[0][l],!0),get:(a,l)=>mH(a,l,()=>function Nke(t,n,e,i){let o;for(const r of n)if(o=bH(Mke(r,t),e),typeof o<"u")return Qk(t,o)?Jk(e,i,t,o):o}(l,n,t,a)),getOwnPropertyDescriptor:(a,l)=>Reflect.getOwnPropertyDescriptor(a._scopes[0],l),getPrototypeOf:()=>Reflect.getPrototypeOf(t[0]),has:(a,l)=>vH(a).includes(l),ownKeys:a=>vH(a),set(a,l,c){const u=a._storage||(a._storage=o());return a[l]=u[l]=c,delete a._keys,!0}})}function pu(t,n,e,i){const o={_cacheable:!1,_proxy:t,_context:n,_subProxy:e,_stack:new Set,_descriptors:pH(t,i),setContext:r=>pu(t,r,e,i),override:r=>pu(t.override(r),n,e,i)};return new Proxy(o,{deleteProperty:(r,s)=>(delete r[s],delete t[s],!0),get:(r,s,a)=>mH(r,s,()=>function Eke(t,n,e){const{_proxy:i,_context:o,_subProxy:r,_descriptors:s}=t;let a=i[n];return Ia(a)&&s.isScriptable(n)&&(a=function Ike(t,n,e,i){const{_proxy:o,_context:r,_subProxy:s,_stack:a}=e;if(a.has(t))throw new Error("Recursion detected: "+Array.from(a).join("->")+"->"+t);a.add(t);let l=n(r,s||i);return a.delete(t),Qk(t,l)&&(l=Jk(o._scopes,o,t,l)),l}(n,a,t,e)),cn(a)&&a.length&&(a=function Pke(t,n,e,i){const{_proxy:o,_context:r,_subProxy:s,_descriptors:a}=e;if(typeof r.index<"u"&&i(t))return n[r.index%n.length];if(pt(n[0])){const l=n,c=o._scopes.filter(u=>u!==l);n=[];for(const u of l){const p=Jk(c,o,t,u);n.push(pu(p,r,s&&s[t],a))}}return n}(n,a,t,s.isIndexable)),Qk(n,a)&&(a=pu(a,o,r&&r[n],s)),a}(r,s,a)),getOwnPropertyDescriptor:(r,s)=>r._descriptors.allKeys?Reflect.has(t,s)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(t,s),getPrototypeOf:()=>Reflect.getPrototypeOf(t),has:(r,s)=>Reflect.has(t,s),ownKeys:()=>Reflect.ownKeys(t),set:(r,s,a)=>(t[s]=a,delete r[s],!0)})}function pH(t,n={scriptable:!0,indexable:!0}){const{_scriptable:e=n.scriptable,_indexable:i=n.indexable,_allKeys:o=n.allKeys}=t;return{allKeys:o,scriptable:e,indexable:i,isScriptable:Ia(e)?e:()=>e,isIndexable:Ia(i)?i:()=>i}}const Mke=(t,n)=>t?t+Hk(n):n,Qk=(t,n)=>pt(n)&&"adapters"!==t&&(null===Object.getPrototypeOf(n)||n.constructor===Object);function mH(t,n,e){if(Object.prototype.hasOwnProperty.call(t,n)||"constructor"===n)return t[n];const i=e();return t[n]=i,i}function gH(t,n,e){return Ia(t)?t(n,e):t}const Oke=(t,n)=>!0===t?n:"string"==typeof t?Ea(n,t):void 0;function Ake(t,n,e,i,o){for(const r of n){const s=Oke(e,r);if(s){t.add(s);const a=gH(s._fallback,e,o);if(typeof a<"u"&&a!==e&&a!==i)return a}else if(!1===s&&typeof i<"u"&&e!==i)return null}return!1}function Jk(t,n,e,i){const o=n._rootScopes,r=gH(n._fallback,e,i),s=[...t,...o],a=new Set;a.add(i);let l=_H(a,s,e,r||e,i);return!(null===l||typeof r<"u"&&r!==e&&(l=_H(a,s,r,l,i),null===l))&&Zk(Array.from(a),[""],o,r,()=>function Rke(t,n,e){const i=t._getTarget();n in i||(i[n]={});const o=i[n];return cn(o)&&pt(e)?e:o||{}}(n,e,i))}function _H(t,n,e,i,o){for(;e;)e=Ake(t,n,e,i,o);return e}function bH(t,n){for(const e of n){if(!e)continue;const i=e[t];if(typeof i<"u")return i}}function vH(t){let n=t._keys;return n||(n=t._keys=function Fke(t){const n=new Set;for(const e of t)for(const i of Object.keys(e).filter(o=>!o.startsWith("_")))n.add(i);return Array.from(n)}(t._scopes)),n}const Lke=Number.EPSILON||1e-14,mu=(t,n)=>n"x"===t?"y":"x";function Bke(t,n,e,i){const o=t.skip?n:t,r=n,s=e.skip?n:e,a=Uk(r,o),l=Uk(s,r);let c=a/(a+l),u=l/(a+l);c=isNaN(c)?0:c,u=isNaN(u)?0:u;const p=i*c,g=i*u;return{previous:{x:r.x-p*(s.x-o.x),y:r.y-p*(s.y-o.y)},next:{x:r.x+g*(s.x-o.x),y:r.y+g*(s.y-o.y)}}}function wv(t,n,e){return Math.max(Math.min(t,e),n)}function zke(t,n,e,i,o){let r,s,a,l;if(n.spanGaps&&(t=t.filter(c=>!c.skip)),"monotone"===n.cubicInterpolationMode)!function jke(t,n="x"){const e=CH(n),i=t.length,o=Array(i).fill(0),r=Array(i);let s,a,l,c=mu(t,0);for(s=0;st.ownerDocument.defaultView.getComputedStyle(t,null),Wke=["top","right","bottom","left"];function mc(t,n,e){const i={};e=e?"-"+e:"";for(let o=0;o<4;o++){const r=Wke[o];i[r]=parseFloat(t[n+"-"+r+e])||0}return i.width=i.left+i.right,i.height=i.top+i.bottom,i}function gc(t,n){if("native"in t)return t;const{canvas:e,currentDevicePixelRatio:i}=n,o=Sv(e),r="border-box"===o.boxSizing,s=mc(o,"padding"),a=mc(o,"border","width"),{x:l,y:c,box:u}=function qke(t,n){const e=t.touches,i=e&&e.length?e[0]:t,{offsetX:o,offsetY:r}=i;let a,l,s=!1;if(((t,n,e)=>(t>0||n>0)&&(!e||!e.shadowRoot))(o,r,t.target))a=o,l=r;else{const c=n.getBoundingClientRect();a=i.clientX-c.left,l=i.clientY-c.top,s=!0}return{x:a,y:l,box:s}}(t,e),p=s.left+(u&&a.left),g=s.top+(u&&a.top);let{width:_,height:w}=n;return r&&(_-=s.width+a.width,w-=s.height+a.height),{x:Math.round((l-p)/_*e.width/i),y:Math.round((c-g)/w*e.height/i)}}const Aa=t=>Math.round(10*t)/10;function wH(t,n,e){const i=n||1,o=Aa(t.height*i),r=Aa(t.width*i);t.height=Aa(t.height),t.width=Aa(t.width);const s=t.canvas;return s.style&&(e||!s.style.height&&!s.style.width)&&(s.style.height=`${t.height}px`,s.style.width=`${t.width}px`),(t.currentDevicePixelRatio!==i||s.height!==o||s.width!==r)&&(t.currentDevicePixelRatio=i,s.height=o,s.width=r,t.ctx.setTransform(i,0,0,i,0,0),!0)}const Xke=function(){let t=!1;try{const n={get passive(){return t=!0,!1}};eD()&&(window.addEventListener("test",null,n),window.removeEventListener("test",null,n))}catch{}return t}();function xH(t,n){const e=function $ke(t,n){return Sv(t).getPropertyValue(n)}(t,n),i=e&&e.match(/^(\d+)(\.\d+)?px$/);return i?+i[1]:void 0}function _c(t,n,e,i){return{x:t.x+e*(n.x-t.x),y:t.y+e*(n.y-t.y)}}function Zke(t,n,e,i){return{x:t.x+e*(n.x-t.x),y:"middle"===i?e<.5?t.y:n.y:"after"===i?e<1?t.y:n.y:e>0?n.y:t.y}}function Qke(t,n,e,i){const o={x:t.cp2x,y:t.cp2y},r={x:n.cp1x,y:n.cp1y},s=_c(t,o,e),a=_c(o,r,e),l=_c(r,n,e),c=_c(s,a,e),u=_c(a,l,e);return _c(c,u,e)}function DH(t){return"angle"===t?{between:ep,compare:tke,normalize:zi}:{between:Ls,compare:(n,e)=>n-e,normalize:n=>n}}function TH({start:t,end:n,count:e,loop:i,style:o}){return{start:t%e,end:n%e,loop:i&&(n-t+1)%e==0,style:o}}function MH(t,n,e){if(!e)return[t];const{property:i,start:o,end:r}=e,s=n.length,{compare:a,between:l,normalize:c}=DH(i),{start:u,end:p,loop:g,style:_}=function tDe(t,n,e){const{property:i,start:o,end:r}=e,{between:s,normalize:a}=DH(i),l=n.length;let g,_,{start:c,end:u,loop:p}=t;if(p){for(c+=l,u+=l,g=0,_=l;g<_&&s(a(n[c%l][i]),o,r);++g)c--,u--;c%=l,u%=l}return ux||l(o,W,E)&&0!==a(o,W),ie=()=>!x||0===a(r,E)||l(r,W,E);for(let M=u,A=u;M<=p;++M)R=n[M%s],!R.skip&&(E=c(R[i]),E!==W&&(x=l(E,o,r),null===T&&ee()&&(T=0===a(E,o)?M:A),null!==T&&ie()&&(w.push(TH({start:T,end:M,loop:g,count:s,style:_})),T=null),A=M,W=E));return null!==T&&w.push(TH({start:T,end:p,loop:g,count:s,style:_})),w}function EH(t,n){const e=[],i=t.segments;for(let o=0;oa({chart:n,initial:e.initial,numSteps:s,currentStep:Math.min(i-e.start,s)}))}_refresh(){this._request||(this._running=!0,this._request=nH.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(n=Date.now()){let e=0;this._charts.forEach((i,o)=>{if(!i.running||!i.items.length)return;const r=i.items;let l,s=r.length-1,a=!1;for(;s>=0;--s)l=r[s],l._active?(l._total>i.duration&&(i.duration=l._total),l.tick(n),a=!0):(r[s]=r[r.length-1],r.pop());a&&(o.draw(),this._notify(o,i,n,"progress")),r.length||(i.running=!1,this._notify(o,i,n,"complete"),i.initial=!1),e+=r.length}),this._lastDate=n,0===e&&(this._running=!1)}_getAnims(n){const e=this._charts;let i=e.get(n);return i||(i={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},e.set(n,i)),i}listen(n,e,i){this._getAnims(n).listeners[e].push(i)}add(n,e){!e||!e.length||this._getAnims(n).items.push(...e)}has(n){return this._getAnims(n).items.length>0}start(n){const e=this._charts.get(n);e&&(e.running=!0,e.start=Date.now(),e.duration=e.items.reduce((i,o)=>Math.max(i,o._duration),0),this._refresh())}running(n){if(!this._running)return!1;const e=this._charts.get(n);return!(!e||!e.running||!e.items.length)}stop(n){const e=this._charts.get(n);if(!e||!e.items.length)return;const i=e.items;let o=i.length-1;for(;o>=0;--o)i[o].cancel();e.items=[],this._notify(n,e,Date.now(),"complete")}remove(n){return this._charts.delete(n)}}var Hs=new lDe;const AH="transparent",cDe={boolean:(t,n,e)=>e>.5?n:t,color(t,n,e){const i=lH(t||AH),o=i.valid&&lH(n||AH);return o&&o.valid?o.mix(i,e).hexString():n},number:(t,n,e)=>t+(n-t)*e};class dDe{constructor(n,e,i,o){const r=e[i];o=rp([n.to,o,r,n.from]);const s=rp([n.from,r,o]);this._active=!0,this._fn=n.fn||cDe[n.type||typeof s],this._easing=tp[n.easing]||tp.linear,this._start=Math.floor(Date.now()+(n.delay||0)),this._duration=this._total=Math.floor(n.duration),this._loop=!!n.loop,this._target=e,this._prop=i,this._from=s,this._to=o,this._promises=void 0}active(){return this._active}update(n,e,i){if(this._active){this._notify(!1);const o=this._target[this._prop],r=i-this._start,s=this._duration-r;this._start=i,this._duration=Math.floor(Math.max(s,n.duration)),this._total+=r,this._loop=!!n.loop,this._to=rp([n.to,e,o,n.from]),this._from=rp([n.from,o,e])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(n){const e=n-this._start,i=this._duration,o=this._prop,r=this._from,s=this._loop,a=this._to;let l;if(this._active=r!==a&&(s||e1?2-l:l,l=this._easing(Math.min(1,Math.max(0,l))),this._target[o]=this._fn(r,a,l))}wait(){const n=this._promises||(this._promises=[]);return new Promise((e,i)=>{n.push({res:e,rej:i})})}_notify(n){const e=n?"res":"rej",i=this._promises||[];for(let o=0;o{const r=n[o];if(!pt(r))return;const s={};for(const a of e)s[a]=r[a];(cn(r.properties)&&r.properties||[o]).forEach(a=>{(a===o||!i.has(a))&&i.set(a,s)})})}_animateOptions(n,e){const i=e.options,o=function hDe(t,n){if(!n)return;let e=t.options;if(e)return e.$shared&&(t.options=e=Object.assign({},e,{$shared:!1,$animations:{}})),e;t.options=n}(n,i);if(!o)return[];const r=this._createAnimations(o,i);return i.$shared&&function uDe(t,n){const e=[],i=Object.keys(n);for(let o=0;o{n.options=i},()=>{}),r}_createAnimations(n,e){const i=this._properties,o=[],r=n.$animations||(n.$animations={}),s=Object.keys(e),a=Date.now();let l;for(l=s.length-1;l>=0;--l){const c=s[l];if("$"===c.charAt(0))continue;if("options"===c){o.push(...this._animateOptions(n,e));continue}const u=e[c];let p=r[c];const g=i.get(c);if(p){if(g&&p.active()){p.update(g,u,a);continue}p.cancel()}g&&g.duration?(r[c]=p=new dDe(g,n,c,u),o.push(p)):n[c]=u}return o}update(n,e){if(0===this._properties.size)return void Object.assign(n,e);const i=this._createAnimations(n,e);return i.length?(Hs.add(this._chart,i),!0):void 0}}function NH(t,n){const e=t&&t.options||{},i=e.reverse,o=void 0===e.min?n:0,r=void 0===e.max?n:0;return{start:i?r:o,end:i?o:r}}function FH(t,n){const e=[],i=t._getSortedDatasetMetas(n);let o,r;for(o=0,r=i.length;o0||!e&&r<0)return o.index}return null}function VH(t,n){const{chart:e,_cachedMeta:i}=t,o=e._stacks||(e._stacks={}),{iScale:r,vScale:s,index:a}=i,l=r.axis,c=s.axis,u=function gDe(t,n,e){return`${t.id}.${n.id}.${e.stack||e.type}`}(r,s,i),p=n.length;let g;for(let _=0;_e[i].axis===n).shift()}function sp(t,n){const e=t.controller.index,i=t.vScale&&t.vScale.axis;if(i){n=n||t._parsed;for(const o of n){const r=o._stacks;if(!r||void 0===r[i]||void 0===r[i][e])return;delete r[i][e],void 0!==r[i]._visualValues&&void 0!==r[i]._visualValues[e]&&delete r[i]._visualValues[e]}}}const oD=t=>"reset"===t||"none"===t,HH=(t,n)=>n?t:Object.assign({},t);let Ra=(()=>class t{static defaults={};static datasetElementType=null;static dataElementType=null;constructor(e,i){this.chart=e,this._ctx=e.ctx,this.index=i,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const e=this._cachedMeta;this.configure(),this.linkScales(),e._stacked=nD(e.vScale,e),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(e){this.index!==e&&sp(this._cachedMeta),this.index=e}linkScales(){const e=this.chart,i=this._cachedMeta,o=this.getDataset(),r=(g,_,w,x)=>"x"===g?_:"r"===g?x:w,s=i.xAxisID=$e(o.xAxisID,iD(e,"x")),a=i.yAxisID=$e(o.yAxisID,iD(e,"y")),l=i.rAxisID=$e(o.rAxisID,iD(e,"r")),c=i.indexAxis,u=i.iAxisID=r(c,s,a,l),p=i.vAxisID=r(c,a,s,l);i.xScale=this.getScaleForId(s),i.yScale=this.getScaleForId(a),i.rScale=this.getScaleForId(l),i.iScale=this.getScaleForId(u),i.vScale=this.getScaleForId(p)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(e){return this.chart.scales[e]}_getOtherScale(e){const i=this._cachedMeta;return e===i.iScale?i.vScale:i.iScale}reset(){this._update("reset")}_destroy(){const e=this._cachedMeta;this._data&&eH(this._data,this),e._stacked&&sp(e)}_dataCheck(){const e=this.getDataset(),i=e.data||(e.data=[]),o=this._data;if(pt(i))this._data=function mDe(t,n){const{iScale:e,vScale:i}=n,o="x"===e.axis?"x":"y",r="x"===i.axis?"x":"y",s=Object.keys(t),a=new Array(s.length);let l,c,u;for(l=0,c=s.length;l{const i="_onData"+Hk(e),o=t[e];Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value(...r){const s=o.apply(this,r);return t._chartjs.listeners.forEach(a=>{"function"==typeof a[i]&&a[i](...r)}),s}})}))}(i,this),this._syncList=[],this._data=i}}addElements(){const e=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(e.dataset=new this.datasetElementType)}buildOrUpdateElements(e){const i=this._cachedMeta,o=this.getDataset();let r=!1;this._dataCheck();const s=i._stacked;i._stacked=nD(i.vScale,i),i.stack!==o.stack&&(r=!0,sp(i),i.stack=o.stack),this._resyncElements(e),(r||s!==i._stacked)&&(VH(this,i._parsed),i._stacked=nD(i.vScale,i))}configure(){const e=this.chart.config,i=e.datasetScopeKeys(this._type),o=e.getOptionScopes(this.getDataset(),i,!0);this.options=e.createResolver(o,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(e,i){const{_cachedMeta:o,_data:r}=this,{iScale:s,_stacked:a}=o,l=s.axis;let p,g,_,c=0===e&&i===r.length||o._sorted,u=e>0&&o._parsed[e-1];if(!1===this._parsing)o._parsed=r,o._sorted=!0,_=r;else{_=cn(r[e])?this.parseArrayData(o,r,e,i):pt(r[e])?this.parseObjectData(o,r,e,i):this.parsePrimitiveData(o,r,e,i);const w=()=>null===g[l]||u&&g[l]t&&!n.hidden&&n._stacked&&{keys:FH(this.chart,!0),values:null})(i,o),u={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY},{min:p,max:g}=function _De(t){const{min:n,max:e,minDefined:i,maxDefined:o}=t.getUserBounds();return{min:i?n:Number.NEGATIVE_INFINITY,max:o?e:Number.POSITIVE_INFINITY}}(l);let _,w;function x(){w=r[_];const T=w[l.axis];return!An(w[e.axis])||p>T||g=0;--_)if(!x()){this.updateRangeFromParsed(u,e,w,c);break}return u}getAllParsedValues(e){const i=this._cachedMeta._parsed,o=[];let r,s,a;for(r=0,s=i.length;r=0&&ethis.getContext(o,r,i),g);return T.$shared&&(T.$shared=c,s[a]=Object.freeze(HH(T,c))),T}_resolveAnimations(e,i,o){const r=this.chart,s=this._cachedDataOpts,a=`animation-${i}`,l=s[a];if(l)return l;let c;if(!1!==r.options.animation){const p=this.chart.config,g=p.datasetAnimationScopeKeys(this._type,i),_=p.getOptionScopes(this.getDataset(),g);c=p.createResolver(_,this.getContext(e,o,i))}const u=new RH(r,c&&c.animations);return c&&c._cacheable&&(s[a]=Object.freeze(u)),u}getSharedOptions(e){if(e.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},e))}includeOptions(e,i){return!i||oD(e)||this.chart._animationsDisabled}_getSharedOptions(e,i){const o=this.resolveDataElementOptions(e,i),r=this._sharedOptions,s=this.getSharedOptions(o),a=this.includeOptions(i,s)||s!==r;return this.updateSharedOptions(s,i,o),{sharedOptions:s,includeOptions:a}}updateElement(e,i,o,r){oD(r)?Object.assign(e,o):this._resolveAnimations(i,r).update(e,o)}updateSharedOptions(e,i,o){e&&!oD(i)&&this._resolveAnimations(void 0,i).update(e,o)}_setStyle(e,i,o,r){e.active=r;const s=this.getStyle(i,r);this._resolveAnimations(i,o,r).update(e,{options:!r&&this.getSharedOptions(s)||s})}removeHoverStyle(e,i,o){this._setStyle(e,o,"active",!1)}setHoverStyle(e,i,o){this._setStyle(e,o,"active",!0)}_removeDatasetHoverStyle(){const e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!1)}_setDatasetHoverStyle(){const e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!0)}_resyncElements(e){const i=this._data,o=this._cachedMeta.data;for(const[l,c,u]of this._syncList)this[l](c,u);this._syncList=[];const r=o.length,s=i.length,a=Math.min(s,r);a&&this.parse(0,a),s>r?this._insertElements(r,s-r,e):s{for(u.length+=i,l=u.length-1;l>=a;l--)u[l]=u[l-i]};for(c(s),l=e;lclass t extends Ra{static id="line";static defaults={datasetElementType:"line",dataElementType:"point",showLine:!0,spanGaps:!1};static overrides={scales:{_index_:{type:"category"},_value_:{type:"linear"}}};initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(e){const i=this._cachedMeta,{dataset:o,data:r=[],_dataset:s}=i,a=this.chart._animationsDisabled;let{start:l,count:c}=function oH(t,n,e){const i=n.length;let o=0,r=i;if(t._sorted){const{iScale:s,vScale:a,_parsed:l}=t,c=t.dataset&&t.dataset.options?t.dataset.options.spanGaps:null,u=s.axis,{min:p,max:g,minDefined:_,maxDefined:w}=s.getUserBounds();if(_){if(o=Math.min(Bs(l,u,p).lo,e?i:Bs(n,u,s.getPixelForValue(p)).lo),c){const x=l.slice(0,o+1).reverse().findIndex(T=>!dt(T[a.axis]));o-=Math.max(0,x)}o=gi(o,0,i-1)}if(w){let x=Math.max(Bs(l,s.axis,g,!0).hi+1,e?0:Bs(n,u,s.getPixelForValue(g),!0).hi+1);if(c){const T=l.slice(x-1).findIndex(E=>!dt(E[a.axis]));x+=Math.max(0,T)}r=gi(x,o,i)-o}else r=i-o}return{start:o,count:r}}(i,r,a);this._drawStart=l,this._drawCount=c,function rH(t){const{xScale:n,yScale:e,_scaleRanges:i}=t,o={xmin:n.min,xmax:n.max,ymin:e.min,ymax:e.max};if(!i)return t._scaleRanges=o,!0;const r=i.xmin!==n.min||i.xmax!==n.max||i.ymin!==e.min||i.ymax!==e.max;return Object.assign(i,o),r}(i)&&(l=0,c=r.length),o._chart=this.chart,o._datasetIndex=this.index,o._decimated=!!s._decimated,o.points=r;const u=this.resolveDatasetElementOptions(e);this.options.showLine||(u.borderWidth=0),u.segment=this.options.segment,this.updateElement(o,void 0,{animated:!a,options:u},e),this.updateElements(r,l,c,e)}updateElements(e,i,o,r){const s="reset"===r,{iScale:a,vScale:l,_stacked:c,_dataset:u}=this._cachedMeta,{sharedOptions:p,includeOptions:g}=this._getSharedOptions(i,r),_=a.axis,w=l.axis,{spanGaps:x,segment:T}=this.options,E=fu(x)?x:Number.POSITIVE_INFINITY,R=this.chart._animationsDisabled||s||"none"===r,W=i+o,Y=e.length;let K=i>0&&this.getParsed(i-1);for(let ee=0;ee=W){M.skip=!0;continue}const A=this.getParsed(ee),F=dt(A[w]),U=M[_]=a.getPixelForValue(A[_],ee),H=M[w]=s||F?l.getBasePixel():l.getPixelForValue(c?this.applyStack(l,A,c):A[w],ee);M.skip=isNaN(U)||isNaN(H)||F,M.stop=ee>0&&Math.abs(A[_]-K[_])>E,T&&(M.parsed=A,M.raw=u.data[ee]),g&&(M.options=p||this.resolveDataElementOptions(ee,ie.active?"active":r)),R||this.updateElement(ie,ee,M,r),K=A}}getMaxOverflow(){const e=this._cachedMeta,i=e.dataset,o=i.options&&i.options.borderWidth||0,r=e.data||[];if(!r.length)return o;const s=r[0].size(this.resolveDataElementOptions(0)),a=r[r.length-1].size(this.resolveDataElementOptions(r.length-1));return Math.max(o,s,a)/2}draw(){const e=this._cachedMeta;e.dataset.updateControlPoints(this.chart.chartArea,e.iScale.axis),super.draw()}})();function LDe(t,n,e,i){const{controller:o,data:r,_sorted:s}=t,a=o._cachedMeta.iScale,l=t.dataset&&t.dataset.options?t.dataset.options.spanGaps:null;if(a&&n===a.axis&&"r"!==n&&s&&r.length){const c=a._reversePixels?ike:Bs;if(!i){const u=c(r,n,e);if(l){const{vScale:p}=o._cachedMeta,{_parsed:g}=t,_=g.slice(0,u.lo+1).reverse().findIndex(x=>!dt(x[p.axis]));u.lo-=Math.max(0,_);const w=g.slice(u.hi).findIndex(x=>!dt(x[p.axis]));u.hi+=Math.max(0,w)}return u}if(o._sharedOptions){const u=r[0],p="function"==typeof u.getRange&&u.getRange(n);if(p){const g=c(r,n,e-p),_=c(r,n,e+p);return{lo:g.lo,hi:_.hi}}}}return{lo:0,hi:r.length-1}}function ap(t,n,e,i,o){const r=t.getSortedVisibleDatasetMetas(),s=e[n];for(let a=0,l=r.length;a{l[s]&&l[s](n[e],o)&&(r.push({element:l,datasetIndex:c,index:u}),a=a||l.inRange(n.x,n.y,o))}),i&&!a?[]:r}var jDe={evaluateInteractionItems:ap,modes:{index(t,n,e,i){const o=gc(n,t),r=e.axis||"x",s=e.includeInvisible||!1,a=e.intersect?lD(t,o,r,i,s):cD(t,o,r,!1,i,s),l=[];return a.length?(t.getSortedVisibleDatasetMetas().forEach(c=>{const u=a[0].index,p=c.data[u];p&&!p.skip&&l.push({element:p,datasetIndex:c.index,index:u})}),l):[]},dataset(t,n,e,i){const o=gc(n,t),r=e.axis||"xy",s=e.includeInvisible||!1;let a=e.intersect?lD(t,o,r,i,s):cD(t,o,r,!1,i,s);if(a.length>0){const l=a[0].datasetIndex,c=t.getDatasetMeta(l).data;a=[];for(let u=0;ulD(t,gc(n,t),e.axis||"xy",i,e.includeInvisible||!1),nearest:(t,n,e,i)=>cD(t,gc(n,t),e.axis||"xy",e.intersect,i,e.includeInvisible||!1),x:(t,n,e,i)=>qH(t,gc(n,t),"x",e.intersect,i),y:(t,n,e,i)=>qH(t,gc(n,t),"y",e.intersect,i)}};const KH=["left","top","right","bottom"];function lp(t,n){return t.filter(e=>e.pos===n)}function YH(t,n){return t.filter(e=>-1===KH.indexOf(e.pos)&&e.box.axis===n)}function cp(t,n){return t.sort((e,i)=>{const o=n?i:e,r=n?e:i;return o.weight===r.weight?o.index-r.index:o.weight-r.weight})}function XH(t,n,e,i){return Math.max(t[e],n[e])+Math.max(t[i],n[i])}function ZH(t,n){t.top=Math.max(t.top,n.top),t.left=Math.max(t.left,n.left),t.bottom=Math.max(t.bottom,n.bottom),t.right=Math.max(t.right,n.right)}function GDe(t,n,e,i){const{pos:o,box:r}=e,s=t.maxPadding;if(!pt(o)){e.size&&(t[o]-=e.size);const p=i[e.stack]||{size:0,count:1};p.size=Math.max(p.size,e.horizontal?r.height:r.width),e.size=p.size/p.count,t[o]+=e.size}r.getPadding&&ZH(s,r.getPadding());const a=Math.max(0,n.outerWidth-XH(s,t,"left","right")),l=Math.max(0,n.outerHeight-XH(s,t,"top","bottom")),c=a!==t.w,u=l!==t.h;return t.w=a,t.h=l,e.horizontal?{same:c,other:u}:{same:u,other:c}}function KDe(t,n){const e=n.maxPadding;return function i(o){const r={left:0,top:0,right:0,bottom:0};return o.forEach(s=>{r[s]=Math.max(n[s],e[s])}),r}(t?["left","right"]:["top","bottom"])}function dp(t,n,e,i){const o=[];let r,s,a,l,c,u;for(r=0,s=t.length,c=0;rc.box.fullSize),!0),i=cp(lp(n,"left"),!0),o=cp(lp(n,"right")),r=cp(lp(n,"top"),!0),s=cp(lp(n,"bottom")),a=YH(n,"x"),l=YH(n,"y");return{fullSize:e,leftAndTop:i.concat(r),rightAndBottom:o.concat(l).concat(s).concat(a),chartArea:lp(n,"chartArea"),vertical:i.concat(o).concat(l),horizontal:r.concat(s).concat(a)}}(t.boxes),l=a.vertical,c=a.horizontal;Bt(t.boxes,x=>{"function"==typeof x.beforeLayout&&x.beforeLayout()});const u=l.reduce((x,T)=>T.box.options&&!1===T.box.options.display?x:x+1,0)||1,p=Object.freeze({outerWidth:n,outerHeight:e,padding:o,availableWidth:r,availableHeight:s,vBoxMaxWidth:r/2/u,hBoxMaxHeight:s/2}),g=Object.assign({},o);ZH(g,Wi(i));const _=Object.assign({maxPadding:g,w:r,h:s,x:o.left,y:o.top},o),w=function $De(t,n){const e=function zDe(t){const n={};for(const e of t){const{stack:i,pos:o,stackWeight:r}=e;if(!i||!KH.includes(o))continue;const s=n[i]||(n[i]={count:0,placed:0,weight:0,size:0});s.count++,s.weight+=r}return n}(t),{vBoxMaxWidth:i,hBoxMaxHeight:o}=n;let r,s,a;for(r=0,s=t.length;r{const T=x.box;Object.assign(T,t.chartArea),T.update(_.w,_.h,{left:0,top:0,right:0,bottom:0})})}};class JH{acquireContext(n,e){}releaseContext(n){return!1}addEventListener(n,e,i){}removeEventListener(n,e,i){}getDevicePixelRatio(){return 1}getMaximumSize(n,e,i,o){return e=Math.max(0,e||n.width),i=i||n.height,{width:e,height:Math.max(0,o?Math.floor(e/o):i)}}isAttached(n){return!0}updateConfig(n){}}class YDe extends JH{acquireContext(n){return n&&n.getContext&&n.getContext("2d")||null}updateConfig(n){n.options.animation=!1}}const Tv="$chartjs",XDe={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},e8=t=>null===t||""===t,t8=!!Xke&&{passive:!0};function JDe(t,n,e){t&&t.canvas&&t.canvas.removeEventListener(n,e,t8)}function Mv(t,n){for(const e of t)if(e===n||e.contains(n))return!0}function tTe(t,n,e){const i=t.canvas,o=new MutationObserver(r=>{let s=!1;for(const a of r)s=s||Mv(a.addedNodes,i),s=s&&!Mv(a.removedNodes,i);s&&e()});return o.observe(document,{childList:!0,subtree:!0}),o}function nTe(t,n,e){const i=t.canvas,o=new MutationObserver(r=>{let s=!1;for(const a of r)s=s||Mv(a.removedNodes,i),s=s&&!Mv(a.addedNodes,i);s&&e()});return o.observe(document,{childList:!0,subtree:!0}),o}const up=new Map;let n8=0;function i8(){const t=window.devicePixelRatio;t!==n8&&(n8=t,up.forEach((n,e)=>{e.currentDevicePixelRatio!==t&&n()}))}function rTe(t,n,e){const i=t.canvas,o=i&&tD(i);if(!o)return;const r=iH((a,l)=>{const c=o.clientWidth;e(a,l),c{const l=a[0],c=l.contentRect.width,u=l.contentRect.height;0===c&&0===u||r(c,u)});return s.observe(o),function iTe(t,n){up.size||window.addEventListener("resize",i8),up.set(t,n)}(t,r),s}function dD(t,n,e){e&&e.disconnect(),"resize"===n&&function oTe(t){up.delete(t),up.size||window.removeEventListener("resize",i8)}(t)}function sTe(t,n,e){const i=t.canvas,o=iH(r=>{null!==t.ctx&&e(function eTe(t,n){const e=XDe[t.type]||t.type,{x:i,y:o}=gc(t,n);return{type:e,chart:n,native:t,x:void 0!==i?i:null,y:void 0!==o?o:null}}(r,t))},t);return function QDe(t,n,e){t&&t.addEventListener(n,e,t8)}(i,n,o),o}class aTe extends JH{acquireContext(n,e){const i=n&&n.getContext&&n.getContext("2d");return i&&i.canvas===n?(function ZDe(t,n){const e=t.style,i=t.getAttribute("height"),o=t.getAttribute("width");if(t[Tv]={initial:{height:i,width:o,style:{display:e.display,height:e.height,width:e.width}}},e.display=e.display||"block",e.boxSizing=e.boxSizing||"border-box",e8(o)){const r=xH(t,"width");void 0!==r&&(t.width=r)}if(e8(i))if(""===t.style.height)t.height=t.width/(n||2);else{const r=xH(t,"height");void 0!==r&&(t.height=r)}}(n,e),i):null}releaseContext(n){const e=n.canvas;if(!e[Tv])return!1;const i=e[Tv].initial;["height","width"].forEach(r=>{const s=i[r];dt(s)?e.removeAttribute(r):e.setAttribute(r,s)});const o=i.style||{};return Object.keys(o).forEach(r=>{e.style[r]=o[r]}),e.width=e.width,delete e[Tv],!0}addEventListener(n,e,i){this.removeEventListener(n,e),(n.$proxies||(n.$proxies={}))[e]=({attach:tTe,detach:nTe,resize:rTe}[e]||sTe)(n,e,i)}removeEventListener(n,e){const i=n.$proxies||(n.$proxies={}),o=i[e];o&&(({attach:dD,detach:dD,resize:dD}[e]||JDe)(n,e,o),i[e]=void 0)}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(n,e,i,o){return function Yke(t,n,e,i){const o=Sv(t),r=mc(o,"margin"),s=xv(o.maxWidth,t,"clientWidth")||gv,a=xv(o.maxHeight,t,"clientHeight")||gv,l=function Kke(t,n,e){let i,o;if(void 0===n||void 0===e){const r=t&&tD(t);if(r){const s=r.getBoundingClientRect(),a=Sv(r),l=mc(a,"border","width"),c=mc(a,"padding");n=s.width-c.width-l.width,e=s.height-c.height-l.height,i=xv(a.maxWidth,r,"clientWidth"),o=xv(a.maxHeight,r,"clientHeight")}else n=t.clientWidth,e=t.clientHeight}return{width:n,height:e,maxWidth:i||gv,maxHeight:o||gv}}(t,n,e);let{width:c,height:u}=l;if("content-box"===o.boxSizing){const g=mc(o,"border","width"),_=mc(o,"padding");c-=_.width+g.width,u-=_.height+g.height}return c=Math.max(0,c-r.width),u=Math.max(0,i?c/i:u-r.height),c=Aa(Math.min(c,s,l.maxWidth)),u=Aa(Math.min(u,a,l.maxHeight)),c&&!u&&(u=Aa(c/2)),(void 0!==n||void 0!==e)&&i&&l.height&&u>l.height&&(u=l.height,c=Aa(Math.floor(u*i))),{width:c,height:u}}(n,e,i,o)}isAttached(n){const e=n&&tD(n);return!(!e||!e.isConnected)}}class js{static defaults={};static defaultRoutes=void 0;x;y;active=!1;options;$animations;tooltipPosition(n){const{x:e,y:i}=this.getProps(["x","y"],n);return{x:e,y:i}}hasValue(){return fu(this.x)&&fu(this.y)}getProps(n,e){const i=this.$animations;if(!e||!i)return this;const o={};return n.forEach(r=>{o[r]=i[r]&&i[r].active()?i[r]._to:this[r]}),o}}function Ev(t,n,e,i,o){const r=$e(i,0),s=Math.min($e(o,t.length),t.length);let l,c,u,a=0;for(e=Math.ceil(e),o&&(l=o-i,e=l/Math.floor(l/e)),u=r;u<0;)a++,u=Math.round(r+a*e);for(c=Math.max(r,0);c"top"===n||"left"===n?t[n]+e:t[n]-e,r8=(t,n)=>Math.min(n||t,t);function s8(t,n){const e=[],i=t.length/n,o=t.length;let r=0;for(;rs+a)))return l}function hp(t){return t.drawTicks?t.tickLength:0}function a8(t,n){if(!t.display)return 0;const e=ai(t.font,n),i=Wi(t.padding);return(cn(t.text)?t.text.length:1)*e.lineHeight+i.height}function yTe(t,n,e){let i=(t=>"start"===t?"left":"end"===t?"right":"center")(t);return(e&&"right"!==n||!e&&"right"===n)&&(i=(t=>"left"===t?"right":"right"===t?"left":t)(i)),i}class vc extends js{constructor(n){super(),this.id=n.id,this.type=n.type,this.options=void 0,this.ctx=n.ctx,this.chart=n.chart,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this._margins={left:0,right:0,top:0,bottom:0},this.maxWidth=void 0,this.maxHeight=void 0,this.paddingTop=void 0,this.paddingBottom=void 0,this.paddingLeft=void 0,this.paddingRight=void 0,this.axis=void 0,this.labelRotation=void 0,this.min=void 0,this.max=void 0,this._range=void 0,this.ticks=[],this._gridLineItems=null,this._labelItems=null,this._labelSizes=null,this._length=0,this._maxLength=0,this._longestTextCache={},this._startPixel=void 0,this._endPixel=void 0,this._reversePixels=!1,this._userMax=void 0,this._userMin=void 0,this._suggestedMax=void 0,this._suggestedMin=void 0,this._ticksLength=0,this._borderValue=0,this._cache={},this._dataLimitsCached=!1,this.$context=void 0}init(n){this.options=n.setContext(this.getContext()),this.axis=n.axis,this._userMin=this.parse(n.min),this._userMax=this.parse(n.max),this._suggestedMin=this.parse(n.suggestedMin),this._suggestedMax=this.parse(n.suggestedMax)}parse(n,e){return n}getUserBounds(){let{_userMin:n,_userMax:e,_suggestedMin:i,_suggestedMax:o}=this;return n=Io(n,Number.POSITIVE_INFINITY),e=Io(e,Number.NEGATIVE_INFINITY),i=Io(i,Number.POSITIVE_INFINITY),o=Io(o,Number.NEGATIVE_INFINITY),{min:Io(n,i),max:Io(e,o),minDefined:An(n),maxDefined:An(e)}}getMinMax(n){let s,{min:e,max:i,minDefined:o,maxDefined:r}=this.getUserBounds();if(o&&r)return{min:e,max:i};const a=this.getMatchingVisibleMetas();for(let l=0,c=a.length;li?i:e,i=o&&e>i?e:i,{min:Io(e,Io(i,e)),max:Io(i,Io(e,i))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const n=this.chart.data;return this.options.labels||(this.isHorizontal()?n.xLabels:n.yLabels)||n.labels||[]}getLabelItems(n=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(n))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){Qt(this.options.beforeUpdate,[this])}update(n,e,i){const{beginAtZero:o,grace:r,ticks:s}=this.options,a=s.sampleSize;this.beforeUpdate(),this.maxWidth=n,this.maxHeight=e,this._margins=i=Object.assign({left:0,right:0,top:0,bottom:0},i),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+i.left+i.right:this.height+i.top+i.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=function Tke(t,n,e){const{min:i,max:o}=t,r=((t,n)=>"string"==typeof t&&t.endsWith("%")?parseFloat(t)/100*n:+t)(n,(o-i)/2),s=(a,l)=>e&&0===a?0:a+l;return{min:s(i,-Math.abs(r)),max:s(o,r)}}(this,r,o),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const l=ao)return function fTe(t,n,e,i){let s,o=0,r=e[0];for(i=Math.ceil(i),s=0;so-r).pop(),n}(i);for(let s=0,a=r.length-1;so)return l}return Math.max(o,1)}(r,n,o);if(s>0){let p,g;const _=s>1?Math.round((l-a)/(s-1)):null;for(Ev(n,c,u,dt(_)?0:a-_,a),p=0,g=s-1;p=r||i<=1||!this.isHorizontal())return void(this.labelRotation=o);const u=this._getLabelSizes(),p=u.widest.width,g=u.highest.height,_=gi(this.chart.width-p,0,this.maxWidth);a=n.offset?this.maxWidth/i:_/(i-1),p+6>a&&(a=_/(i-(n.offset?.5:1)),l=this.maxHeight-hp(n.grid)-e.padding-a8(n.title,this.chart.options.font),c=Math.sqrt(p*p+g*g),s=function jk(t){return t*(180/Dt)}(Math.min(Math.asin(gi((u.highest.height+6)/a,-1,1)),Math.asin(gi(l/c,-1,1))-Math.asin(gi(g/c,-1,1)))),s=Math.max(o,Math.min(r,s))),this.labelRotation=s}afterCalculateLabelRotation(){Qt(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){Qt(this.options.beforeFit,[this])}fit(){const n={width:0,height:0},{chart:e,options:{ticks:i,title:o,grid:r}}=this,s=this._isVisible(),a=this.isHorizontal();if(s){const l=a8(o,e.options.font);if(a?(n.width=this.maxWidth,n.height=hp(r)+l):(n.height=this.maxHeight,n.width=hp(r)+l),i.display&&this.ticks.length){const{first:c,last:u,widest:p,highest:g}=this._getLabelSizes(),_=2*i.padding,w=Tr(this.labelRotation),x=Math.cos(w),T=Math.sin(w);a?n.height=Math.min(this.maxHeight,n.height+(i.mirror?0:T*p.width+x*g.height)+_):n.width=Math.min(this.maxWidth,n.width+(i.mirror?0:x*p.width+T*g.height)+_),this._calculatePadding(c,u,T,x)}}this._handleMargins(),a?(this.width=this._length=e.width-this._margins.left-this._margins.right,this.height=n.height):(this.width=n.width,this.height=this._length=e.height-this._margins.top-this._margins.bottom)}_calculatePadding(n,e,i,o){const{ticks:{align:r,padding:s},position:a}=this.options,l=0!==this.labelRotation,c="top"!==a&&"x"===this.axis;if(this.isHorizontal()){const u=this.getPixelForTick(0)-this.left,p=this.right-this.getPixelForTick(this.ticks.length-1);let g=0,_=0;l?c?(g=o*n.width,_=i*e.height):(g=i*n.height,_=o*e.width):"start"===r?_=e.width:"end"===r?g=n.width:"inner"!==r&&(g=n.width/2,_=e.width/2),this.paddingLeft=Math.max((g-u+s)*this.width/(this.width-u),0),this.paddingRight=Math.max((_-p+s)*this.width/(this.width-p),0)}else{let u=e.height/2,p=n.height/2;"start"===r?(u=0,p=n.height):"end"===r&&(u=e.height,p=0),this.paddingTop=u+s,this.paddingBottom=p+s}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){Qt(this.options.afterFit,[this])}isHorizontal(){const{axis:n,position:e}=this.options;return"top"===e||"bottom"===e||"x"===n}isFullSize(){return this.options.fullSize}_convertTicksToLabels(n){let e,i;for(this.beforeTickToLabelConversion(),this.generateTickLabels(n),e=0,i=n.length;e{const i=e.gc,o=i.length/2;let r;if(o>n){for(r=0;r({width:s[A]||0,height:a[A]||0});return{first:M(0),last:M(e-1),widest:M(ee),highest:M(ie),widths:s,heights:a}}getLabelForValue(n){return n}getPixelForValue(n,e){return NaN}getValueForPixel(n){}getPixelForTick(n){const e=this.ticks;return n<0||n>e.length-1?null:this.getPixelForValue(e[n].value)}getPixelForDecimal(n){this._reversePixels&&(n=1-n);const e=this._startPixel+n*this._length;return function nke(t){return gi(t,-32768,32767)}(this._alignToPixels?hc(this.chart,e,0):e)}getDecimalForPixel(n){const e=(n-this._startPixel)/this._length;return this._reversePixels?1-e:e}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:n,max:e}=this;return n<0&&e<0?e:n>0&&e>0?n:0}getContext(n){const e=this.ticks||[];if(n>=0&&na*o?a/i:l/o:l*o0}_computeGridLineItems(n){const e=this.axis,i=this.chart,o=this.options,{grid:r,position:s,border:a}=o,l=r.offset,c=this.isHorizontal(),p=this.ticks.length+(l?1:0),g=hp(r),_=[],w=a.setContext(this.getContext()),x=w.display?w.width:0,T=x/2,E=function(N){return hc(i,N,x)};let R,W,Y,K,ee,ie,M,A,F,U,H,G;if("top"===s)R=E(this.bottom),ie=this.bottom-g,A=R-T,U=E(n.top)+T,G=n.bottom;else if("bottom"===s)R=E(this.top),U=n.top,G=E(n.bottom)-T,ie=R+T,A=this.top+g;else if("left"===s)R=E(this.right),ee=this.right-g,M=R-T,F=E(n.left)+T,H=n.right;else if("right"===s)R=E(this.left),F=n.left,H=E(n.right)-T,ee=R+T,M=this.left+g;else if("x"===e){if("center"===s)R=E((n.top+n.bottom)/2+.5);else if(pt(s)){const N=Object.keys(s)[0];R=E(this.chart.scales[N].getPixelForValue(s[N]))}U=n.top,G=n.bottom,ie=R+T,A=ie+g}else if("y"===e){if("center"===s)R=E((n.left+n.right)/2);else if(pt(s)){const N=Object.keys(s)[0];R=E(this.chart.scales[N].getPixelForValue(s[N]))}ee=R-T,M=ee-g,F=n.left,H=n.right}const J=$e(o.ticks.maxTicksLimit,p),V=Math.max(1,Math.ceil(p/J));for(W=0;W0&&(st-=Pe/2)}_e={left:st,top:Xe,width:Pe+Te.width,height:ut+Te.height,color:V.backdropColor}}T.push({label:Y,font:A,textOffset:H,options:{rotation:x,color:q,strokeColor:j,strokeWidth:Q,textAlign:fe,textBaseline:G,translation:[K,ee],backdrop:_e}})}return T}_getXAxisLabelAlignment(){const{position:n,ticks:e}=this.options;if(-Tr(this.labelRotation))return"top"===n?"left":"right";let o="center";return"start"===e.align?o="left":"end"===e.align?o="right":"inner"===e.align&&(o="inner"),o}_getYAxisLabelAlignment(n){const{position:e,ticks:{crossAlign:i,mirror:o,padding:r}}=this.options,a=n+r,l=this._getLabelSizes().widest.width;let c,u;return"left"===e?o?(u=this.right+r,"near"===i?c="left":"center"===i?(c="center",u+=l/2):(c="right",u+=l)):(u=this.right-a,"near"===i?c="right":"center"===i?(c="center",u-=l/2):(c="left",u=this.left)):"right"===e?o?(u=this.left+r,"near"===i?c="right":"center"===i?(c="center",u-=l/2):(c="left",u-=l)):(u=this.left+a,"near"===i?c="left":"center"===i?(c="center",u+=l/2):(c="right",u=this.right)):c="right",{textAlign:c,x:u}}_computeLabelArea(){if(this.options.ticks.mirror)return;const n=this.chart,e=this.options.position;return"left"===e||"right"===e?{top:0,left:this.left,bottom:n.height,right:this.right}:"top"===e||"bottom"===e?{top:this.top,left:0,bottom:this.bottom,right:n.width}:void 0}drawBackground(){const{ctx:n,options:{backgroundColor:e},left:i,top:o,width:r,height:s}=this;e&&(n.save(),n.fillStyle=e,n.fillRect(i,o,r,s),n.restore())}getLineWidthForValue(n){const e=this.options.grid;if(!this._isVisible()||!e.display)return 0;const o=this.ticks.findIndex(r=>r.value===n);return o>=0?e.setContext(this.getContext(o)).lineWidth:0}drawGrid(n){const e=this.options.grid,i=this.ctx,o=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(n));let r,s;const a=(l,c,u)=>{!u.width||!u.color||(i.save(),i.lineWidth=u.width,i.strokeStyle=u.color,i.setLineDash(u.borderDash||[]),i.lineDashOffset=u.borderDashOffset,i.beginPath(),i.moveTo(l.x,l.y),i.lineTo(c.x,c.y),i.stroke(),i.restore())};if(e.display)for(r=0,s=o.length;r{this.drawBackground(),this.drawGrid(r),this.drawTitle()}},{z:o,draw:()=>{this.drawBorder()}},{z:e,draw:r=>{this.drawLabels(r)}}]:[{z:e,draw:r=>{this.draw(r)}}]}getMatchingVisibleMetas(n){const e=this.chart.getSortedVisibleDatasetMetas(),i=this.axis+"AxisID",o=[];let r,s;for(r=0,s=e.length;r{const i=e.split("."),o=i.pop(),r=[t].concat(i).join("."),s=n[e].split("."),a=s.pop(),l=s.join(".");gn.route(r,o,l,a)})}(n,t.defaultRoutes),t.descriptors&&gn.describe(n,t.descriptors)}(n,s,i),this.override&&gn.override(n.id,n.overrides)),s}get(n){return this.items[n]}unregister(n){const e=this.items,i=n.id,o=this.scope;i in e&&delete e[i],o&&i in gn[o]&&(delete gn[o][i],this.override&&delete uc[i])}}class kTe{constructor(){this.controllers=new Iv(Ra,"datasets",!0),this.elements=new Iv(js,"elements"),this.plugins=new Iv(Object,"plugins"),this.scales=new Iv(vc,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...n){this._each("register",n)}remove(...n){this._each("unregister",n)}addControllers(...n){this._each("register",n,this.controllers)}addElements(...n){this._each("register",n,this.elements)}addPlugins(...n){this._each("register",n,this.plugins)}addScales(...n){this._each("register",n,this.scales)}getController(n){return this._get(n,this.controllers,"controller")}getElement(n){return this._get(n,this.elements,"element")}getPlugin(n){return this._get(n,this.plugins,"plugin")}getScale(n){return this._get(n,this.scales,"scale")}removeControllers(...n){this._each("unregister",n,this.controllers)}removeElements(...n){this._each("unregister",n,this.elements)}removePlugins(...n){this._each("unregister",n,this.plugins)}removeScales(...n){this._each("unregister",n,this.scales)}_each(n,e,i){[...e].forEach(o=>{const r=i||this._getRegistryForType(o);i||r.isForType(o)||r===this.plugins&&o.id?this._exec(n,r,o):Bt(o,s=>{const a=i||this._getRegistryForType(s);this._exec(n,a,s)})})}_exec(n,e,i){const o=Hk(n);Qt(i["before"+o],[],i),e[n](i),Qt(i["after"+o],[],i)}_getRegistryForType(n){for(let e=0;er.filter(a=>!s.some(l=>a.plugin.id===l.plugin.id));this._notify(o(e,i),n,"stop"),this._notify(o(i,e),n,"start")}}function MTe(t,n){return n||!1!==t?!0===t?{}:t:null}function ITe(t,{plugin:n,local:e},i,o){const r=t.pluginScopeKeys(n),s=t.getOptionScopes(i,r);return e&&n.defaults&&s.push(n.defaults),t.createResolver(s,o,[""],{scriptable:!1,indexable:!1,allKeys:!0})}function uD(t,n){return((n.datasets||{})[t]||{}).indexAxis||n.indexAxis||(gn.datasets[t]||{}).indexAxis||"x"}function l8(t){if("x"===t||"y"===t||"r"===t)return t}function ATe(t){return"top"===t||"bottom"===t?"x":"left"===t||"right"===t?"y":void 0}function hD(t,...n){if(l8(t))return t;for(const e of n){const i=e.axis||ATe(e.position)||t.length>1&&l8(t[0].toLowerCase());if(i)return i}throw new Error(`Cannot determine type of '${t}' axis. Please provide 'axis' or 'position' option.`)}function c8(t,n,e){if(e[n+"AxisID"]===t)return{axis:n}}function d8(t){const n=t.options||(t.options={});n.plugins=$e(n.plugins,{}),n.scales=function NTe(t,n){const e=uc[t.type]||{scales:{}},i=n.scales||{},o=uD(t.type,n),r=Object.create(null);return Object.keys(i).forEach(s=>{const a=i[s];if(!pt(a))return console.error(`Invalid scale configuration for scale: ${s}`);if(a._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${s}`);const l=hD(s,a,function RTe(t,n){if(n.data&&n.data.datasets){const e=n.data.datasets.filter(i=>i.xAxisID===t||i.yAxisID===t);if(e.length)return c8(t,"x",e[0])||c8(t,"y",e[0])}return{}}(s,t),gn.scales[a.type]),c=function OTe(t,n){return t===n?"_index_":"_value_"}(l,o),u=e.scales||{};r[s]=Zf(Object.create(null),[{axis:l},a,u[l],u[c]])}),t.data.datasets.forEach(s=>{const a=s.type||t.type,l=s.indexAxis||uD(a,n),u=(uc[a]||{}).scales||{};Object.keys(u).forEach(p=>{const g=function PTe(t,n){let e=t;return"_index_"===t?e=n:"_value_"===t&&(e="x"===n?"y":"x"),e}(p,l),_=s[g+"AxisID"]||g;r[_]=r[_]||Object.create(null),Zf(r[_],[{axis:g},i[_],u[p]])})}),Object.keys(r).forEach(s=>{const a=r[s];Zf(a,[gn.scales[a.type],gn.scale])}),r}(t,n)}function u8(t){return(t=t||{}).datasets=t.datasets||[],t.labels=t.labels||[],t}const h8=new Map,f8=new Set;function Pv(t,n){let e=h8.get(t);return e||(e=n(),h8.set(t,e),f8.add(e)),e}const fp=(t,n,e)=>{const i=Ea(n,e);void 0!==i&&t.add(i)};class LTe{constructor(n){this._config=function FTe(t){return(t=t||{}).data=u8(t.data),d8(t),t}(n),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(n){this._config.type=n}get data(){return this._config.data}set data(n){this._config.data=u8(n)}get options(){return this._config.options}set options(n){this._config.options=n}get plugins(){return this._config.plugins}update(){const n=this._config;this.clearCache(),d8(n)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(n){return Pv(n,()=>[[`datasets.${n}`,""]])}datasetAnimationScopeKeys(n,e){return Pv(`${n}.transition.${e}`,()=>[[`datasets.${n}.transitions.${e}`,`transitions.${e}`],[`datasets.${n}`,""]])}datasetElementScopeKeys(n,e){return Pv(`${n}-${e}`,()=>[[`datasets.${n}.elements.${e}`,`datasets.${n}`,`elements.${e}`,""]])}pluginScopeKeys(n){const e=n.id;return Pv(`${this.type}-plugin-${e}`,()=>[[`plugins.${e}`,...n.additionalOptionScopes||[]]])}_cachedScopes(n,e){const i=this._scopeCache;let o=i.get(n);return(!o||e)&&(o=new Map,i.set(n,o)),o}getOptionScopes(n,e,i){const{options:o,type:r}=this,s=this._cachedScopes(n,i),a=s.get(e);if(a)return a;const l=new Set;e.forEach(u=>{n&&(l.add(n),u.forEach(p=>fp(l,n,p))),u.forEach(p=>fp(l,o,p)),u.forEach(p=>fp(l,uc[r]||{},p)),u.forEach(p=>fp(l,gn,p)),u.forEach(p=>fp(l,qk,p))});const c=Array.from(l);return 0===c.length&&c.push(Object.create(null)),f8.has(e)&&s.set(e,c),c}chartOptionScopes(){const{options:n,type:e}=this;return[n,uc[e]||{},gn.datasets[e]||{},{type:e},gn,qk]}resolveNamedOptions(n,e,i,o=[""]){const r={$shared:!0},{resolver:s,subPrefixes:a}=p8(this._resolverCache,n,o);let l=s;(function VTe(t,n){const{isScriptable:e,isIndexable:i}=pH(t);for(const o of n){const r=e(o),s=i(o),a=(s||r)&&t[o];if(r&&(Ia(a)||BTe(a))||s&&cn(a))return!0}return!1})(s,e)&&(r.$shared=!1,l=pu(s,i=Ia(i)?i():i,this.createResolver(n,i,a)));for(const c of e)r[c]=l[c];return r}createResolver(n,e,i=[""],o){const{resolver:r}=p8(this._resolverCache,n,i);return pt(e)?pu(r,e,void 0,o):r}}function p8(t,n,e){let i=t.get(n);i||(i=new Map,t.set(n,i));const o=e.join();let r=i.get(o);return r||(r={resolver:Zk(n,e),subPrefixes:e.filter(a=>!a.toLowerCase().includes("hover"))},i.set(o,r)),r}const BTe=t=>pt(t)&&Object.getOwnPropertyNames(t).some(n=>Ia(t[n])),jTe=["top","bottom","left","right","chartArea"];function m8(t,n){return"top"===t||"bottom"===t||-1===jTe.indexOf(t)&&"x"===n}function g8(t,n){return function(e,i){return e[t]===i[t]?e[n]-i[n]:e[t]-i[t]}}function _8(t){const n=t.chart,e=n.options.animation;n.notifyPlugins("afterRender"),Qt(e&&e.onComplete,[t],n)}function UTe(t){const n=t.chart,e=n.options.animation;Qt(e&&e.onProgress,[t],n)}function b8(t){return eD()&&"string"==typeof t?t=document.getElementById(t):t&&t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas),t}const Ov={},v8=t=>{const n=b8(t);return Object.values(Ov).filter(e=>e.canvas===n).pop()};function zTe(t,n,e){const i=Object.keys(t);for(const o of i){const r=+o;if(r>=n){const s=t[o];delete t[o],(e>0||r>n)&&(t[r+e]=s)}}}let fD=(()=>class t{static defaults=gn;static instances=Ov;static overrides=uc;static registry=Jr;static version="4.5.1";static getChart=v8;static register(...e){Jr.add(...e),y8()}static unregister(...e){Jr.remove(...e),y8()}constructor(e,i){const o=this.config=new LTe(i),r=b8(e),s=v8(r);if(s)throw new Error("Canvas is already in use. Chart with ID '"+s.id+"' must be destroyed before the canvas with ID '"+s.canvas.id+"' can be reused.");const a=o.createResolver(o.chartOptionScopes(),this.getContext());this.platform=new(o.platform||function lTe(t){return!eD()||typeof OffscreenCanvas<"u"&&t instanceof OffscreenCanvas?YDe:aTe}(r)),this.platform.updateConfig(o);const l=this.platform.acquireContext(r,a.aspectRatio),c=l&&l.canvas,u=c&&c.height,p=c&&c.width;this.id=zSe(),this.ctx=l,this.canvas=c,this.width=p,this.height=u,this._options=a,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new DTe,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=function ske(t,n){let e;return function(...i){return n?(clearTimeout(e),e=setTimeout(t,n,i)):t.apply(this,i),n}}(g=>this.update(g),a.resizeDelay||0),this._dataChanges=[],Ov[this.id]=this,l&&c?(Hs.listen(this,"complete",_8),Hs.listen(this,"progress",UTe),this._initialize(),this.attached&&this.update()):console.error("Failed to create chart: can't acquire context from the given item")}get aspectRatio(){const{options:{aspectRatio:e,maintainAspectRatio:i},width:o,height:r,_aspectRatio:s}=this;return dt(e)?i&&s?s:r?o/r:null:e}get data(){return this.config.data}set data(e){this.config.data=e}get options(){return this._options}set options(e){this.config.options=e}get registry(){return Jr}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():wH(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return uH(this.canvas,this.ctx),this}stop(){return Hs.stop(this),this}resize(e,i){Hs.running(this)?this._resizeBeforeDraw={width:e,height:i}:this._resize(e,i)}_resize(e,i){const o=this.options,a=this.platform.getMaximumSize(this.canvas,e,i,o.maintainAspectRatio&&this.aspectRatio),l=o.devicePixelRatio||this.platform.getDevicePixelRatio(),c=this.width?"resize":"attach";this.width=a.width,this.height=a.height,this._aspectRatio=this.aspectRatio,wH(this,l,!0)&&(this.notifyPlugins("resize",{size:a}),Qt(o.onResize,[this,a],this),this.attached&&this._doResize(c)&&this.render())}ensureScalesHaveIDs(){Bt(this.options.scales||{},(o,r)=>{o.id=r})}buildOrUpdateScales(){const e=this.options,i=e.scales,o=this.scales,r=Object.keys(o).reduce((a,l)=>(a[l]=!1,a),{});let s=[];i&&(s=s.concat(Object.keys(i).map(a=>{const l=i[a],c=hD(a,l),u="r"===c,p="x"===c;return{options:l,dposition:u?"chartArea":p?"bottom":"left",dtype:u?"radialLinear":p?"category":"linear"}}))),Bt(s,a=>{const l=a.options,c=l.id,u=hD(c,l),p=$e(l.type,a.dtype);(void 0===l.position||m8(l.position,u)!==m8(a.dposition))&&(l.position=a.dposition),r[c]=!0;let g=null;c in o&&o[c].type===p?g=o[c]:(g=new(Jr.getScale(p))({id:c,type:p,ctx:this.ctx,chart:this}),o[g.id]=g),g.init(l,e)}),Bt(r,(a,l)=>{a||delete o[l]}),Bt(o,a=>{Gi.configure(this,a,a.options),Gi.addBox(this,a)})}_updateMetasets(){const e=this._metasets,i=this.data.datasets.length,o=e.length;if(e.sort((r,s)=>r.index-s.index),o>i){for(let r=i;ri.length&&delete this._stacks,e.forEach((o,r)=>{0===i.filter(s=>s===o._dataset).length&&this._destroyDatasetMeta(r)})}buildOrUpdateControllers(){const e=[],i=this.data.datasets;let o,r;for(this._removeUnreferencedMetasets(),o=0,r=i.length;o{this.getDatasetMeta(i).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(e){const i=this.config;i.update();const o=this._options=i.createResolver(i.chartOptionScopes(),this.getContext()),r=this._animationsDisabled=!o.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),!1===this.notifyPlugins("beforeUpdate",{mode:e,cancelable:!0}))return;const s=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let a=0;for(let u=0,p=this.data.datasets.length;u{u.reset()}),this._updateDatasets(e),this.notifyPlugins("afterUpdate",{mode:e}),this._layers.sort(g8("z","_idx"));const{_active:l,_lastEvent:c}=this;c?this._eventHandler(c,!0):l.length&&this._updateHoverStyles(l,l,!0),this.render()}_updateScales(){Bt(this.scales,e=>{Gi.removeBox(this,e)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const e=this.options,i=new Set(Object.keys(this._listeners)),o=new Set(e.events);(!q5(i,o)||!!this._responsiveListeners!==e.responsive)&&(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:e}=this,i=this._getUniformDataChanges()||[];for(const{method:o,start:r,count:s}of i)zTe(e,r,"_removeElements"===o?-s:s)}_getUniformDataChanges(){const e=this._dataChanges;if(!e||!e.length)return;this._dataChanges=[];const i=this.data.datasets.length,o=s=>new Set(e.filter(a=>a[0]===s).map((a,l)=>l+","+a.splice(1).join(","))),r=o(0);for(let s=1;ss.split(",")).map(s=>({method:s[1],start:+s[2],count:+s[3]}))}_updateLayout(e){if(!1===this.notifyPlugins("beforeLayout",{cancelable:!0}))return;Gi.update(this,this.width,this.height,e);const i=this.chartArea,o=i.width<=0||i.height<=0;this._layers=[],Bt(this.boxes,r=>{o&&"chartArea"===r.position||(r.configure&&r.configure(),this._layers.push(...r._layers()))},this),this._layers.forEach((r,s)=>{r._idx=s}),this.notifyPlugins("afterLayout")}_updateDatasets(e){if(!1!==this.notifyPlugins("beforeDatasetsUpdate",{mode:e,cancelable:!0})){for(let i=0,o=this.data.datasets.length;i=0;--i)this._drawDataset(e[i]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(e){const i=this.ctx,o={meta:e,index:e.index,cancelable:!0},r=OH(this,e);!1!==this.notifyPlugins("beforeDatasetDraw",o)&&(r&&yv(i,r),e.controller.draw(),r&&Cv(i),o.cancelable=!1,this.notifyPlugins("afterDatasetDraw",o))}isPointInArea(e){return Vs(e,this.chartArea,this._minPadding)}getElementsAtEventForMode(e,i,o,r){const s=jDe.modes[i];return"function"==typeof s?s(this,e,o,r):[]}getDatasetMeta(e){const i=this.data.datasets[e],o=this._metasets;let r=o.filter(s=>s&&s._dataset===i).pop();return r||(r={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:i&&i.order||0,index:e,_dataset:i,_parsed:[],_sorted:!1},o.push(r)),r}getContext(){return this.$context||(this.$context=Oa(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(e){const i=this.data.datasets[e];if(!i)return!1;const o=this.getDatasetMeta(e);return"boolean"==typeof o.hidden?!o.hidden:!i.hidden}setDatasetVisibility(e,i){this.getDatasetMeta(e).hidden=!i}toggleDataVisibility(e){this._hiddenIndices[e]=!this._hiddenIndices[e]}getDataVisibility(e){return!this._hiddenIndices[e]}_updateVisibility(e,i,o){const r=o?"show":"hide",s=this.getDatasetMeta(e),a=s.controller._resolveAnimations(void 0,r);Qf(i)?(s.data[i].hidden=!o,this.update()):(this.setDatasetVisibility(e,o),a.update(s,{visible:o}),this.update(l=>l.datasetIndex===e?r:void 0))}hide(e,i){this._updateVisibility(e,i,!1)}show(e,i){this._updateVisibility(e,i,!0)}_destroyDatasetMeta(e){const i=this._metasets[e];i&&i.controller&&i.controller._destroy(),delete this._metasets[e]}_stop(){let e,i;for(this.stop(),Hs.remove(this),e=0,i=this.data.datasets.length;e{i.addEventListener(this,s,a),e[s]=a},r=(s,a,l)=>{s.offsetX=a,s.offsetY=l,this._eventHandler(s)};Bt(this.options.events,s=>o(s,r))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const e=this._responsiveListeners,i=this.platform,o=(c,u)=>{i.addEventListener(this,c,u),e[c]=u},r=(c,u)=>{e[c]&&(i.removeEventListener(this,c,u),delete e[c])},s=(c,u)=>{this.canvas&&this.resize(c,u)};let a;const l=()=>{r("attach",l),this.attached=!0,this.resize(),o("resize",s),o("detach",a)};a=()=>{this.attached=!1,r("resize",s),this._stop(),this._resize(0,0),o("attach",l)},i.isAttached(this.canvas)?l():a()}unbindEvents(){Bt(this._listeners,(e,i)=>{this.platform.removeEventListener(this,i,e)}),this._listeners={},Bt(this._responsiveListeners,(e,i)=>{this.platform.removeEventListener(this,i,e)}),this._responsiveListeners=void 0}updateHoverStyle(e,i,o){const r=o?"set":"remove";let s,a,l,c;for("dataset"===i&&(s=this.getDatasetMeta(e[0].datasetIndex),s.controller["_"+r+"DatasetHoverStyle"]()),l=0,c=e.length;l{const l=this.getDatasetMeta(s);if(!l)throw new Error("No dataset found at index "+s);return{datasetIndex:s,element:l.data[a],index:a}});!pv(o,i)&&(this._active=o,this._lastEvent=null,this._updateHoverStyles(o,i))}notifyPlugins(e,i,o){return this._plugins.notify(this,e,i,o)}isPluginEnabled(e){return 1===this._plugins._cache.filter(i=>i.plugin.id===e).length}_updateHoverStyles(e,i,o){const r=this.options.hover,s=(c,u)=>c.filter(p=>!u.some(g=>p.datasetIndex===g.datasetIndex&&p.index===g.index)),a=s(i,e),l=o?e:s(e,i);a.length&&this.updateHoverStyle(a,r.mode,!1),l.length&&r.mode&&this.updateHoverStyle(l,r.mode,!0)}_eventHandler(e,i){const o={event:e,replay:i,cancelable:!0,inChartArea:this.isPointInArea(e)},r=a=>(a.options.events||this.options.events).includes(e.native.type);if(!1===this.notifyPlugins("beforeEvent",o,r))return;const s=this._handleEvent(e,i,o.inChartArea);return o.cancelable=!1,this.notifyPlugins("afterEvent",o,r),(s||o.changed)&&this.render(),this}_handleEvent(e,i,o){const{_active:r=[],options:s}=this,l=this._getActiveElements(e,r,o,i),c=function YSe(t){return"mouseup"===t.type||"click"===t.type||"contextmenu"===t.type}(e),u=function $Te(t,n,e,i){return e&&"mouseout"!==t.type?i?n:t:null}(e,this._lastEvent,o,c);o&&(this._lastEvent=null,Qt(s.onHover,[e,l,this],this),c&&Qt(s.onClick,[e,l,this],this));const p=!pv(l,r);return(p||i)&&(this._active=l,this._updateHoverStyles(l,r,i)),this._lastEvent=u,p}_getActiveElements(e,i,o,r){if("mouseout"===e.type)return[];if(!o)return i;const s=this.options.hover;return this.getElementsAtEventForMode(e,s.mode,s,r)}})();function y8(){return Bt(fD.instances,t=>t._plugins.invalidate())}function C8(t,n,e=n){t.lineCap=$e(e.borderCapStyle,n.borderCapStyle),t.setLineDash($e(e.borderDash,n.borderDash)),t.lineDashOffset=$e(e.borderDashOffset,n.borderDashOffset),t.lineJoin=$e(e.borderJoinStyle,n.borderJoinStyle),t.lineWidth=$e(e.borderWidth,n.borderWidth),t.strokeStyle=$e(e.borderColor,n.borderColor)}function QTe(t,n,e){t.lineTo(e.x,e.y)}function w8(t,n,e={}){const i=t.length,{start:o=0,end:r=i-1}=e,{start:s,end:a}=n,l=Math.max(o,s),c=Math.min(r,a);return{count:i,start:l,loop:n.loop,ilen:ca&&r>a)?i+c-l:c-l}}function eMe(t,n,e,i){const{points:o,options:r}=n,{count:s,start:a,loop:l,ilen:c}=w8(o,e,i),u=function JTe(t){return t.stepped?bke:t.tension||"monotone"===t.cubicInterpolationMode?vke:QTe}(r);let _,w,x,{move:p=!0,reverse:g}=i||{};for(_=0;_<=c;++_)w=o[(a+(g?c-_:_))%s],!w.skip&&(p?(t.moveTo(w.x,w.y),p=!1):u(t,x,w,g,r.stepped),x=w);return l&&(w=o[(a+(g?c:0))%s],u(t,x,w,g,r.stepped)),!!l}function tMe(t,n,e,i){const o=n.points,{count:r,start:s,ilen:a}=w8(o,e,i),{move:l=!0,reverse:c}=i||{};let g,_,w,x,T,E,u=0,p=0;const R=Y=>(s+(c?a-Y:Y))%r,W=()=>{x!==T&&(t.lineTo(u,T),t.lineTo(u,x),t.lineTo(u,E))};for(l&&(_=o[R(0)],t.moveTo(_.x,_.y)),g=0;g<=a;++g){if(_=o[R(g)],_.skip)continue;const Y=_.x,K=_.y,ee=0|Y;ee===w?(KT&&(T=K),u=(p*u+Y)/++p):(W(),t.lineTo(Y,K),w=ee,p=0,x=T=K),E=K}W()}function pD(t){const n=t.options;return t._decimated||t._loop||n.tension||"monotone"===n.cubicInterpolationMode||n.stepped||n.borderDash&&n.borderDash.length?eMe:tMe}const rMe="function"==typeof Path2D;let pp=(()=>class t extends js{static id="line";static defaults={borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:3,capBezierPoints:!0,cubicInterpolationMode:"default",fill:!1,spanGaps:!1,stepped:!1,tension:0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};static descriptors={_scriptable:!0,_indexable:e=>"borderDash"!==e&&"fill"!==e};constructor(e){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,e&&Object.assign(this,e)}updateControlPoints(e,i){const o=this.options;!o.tension&&"monotone"!==o.cubicInterpolationMode||o.stepped||this._pointsUpdated||(zke(this._points,o,e,o.spanGaps?this._loop:this._fullLoop,i),this._pointsUpdated=!0)}set points(e){this._points=e,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=function oDe(t,n){const e=t.points,i=t.options.spanGaps,o=e.length;if(!o)return[];const r=!!t._loop,{start:s,end:a}=function nDe(t,n,e,i){let o=0,r=n-1;if(e&&!i)for(;oo&&t[r%n].skip;)r--;return r%=n,{start:o,end:r}}(e,o,r,i);return function IH(t,n,e,i){return i&&i.setContext&&e?function rDe(t,n,e,i){const o=t._chart.getContext(),r=PH(t.options),{_datasetIndex:s,options:{spanGaps:a}}=t,l=e.length,c=[];let u=r,p=n[0].start,g=p;function _(w,x,T,E){const R=a?-1:1;if(w!==x){for(w+=l;e[w%l].skip;)w-=R;for(;e[x%l].skip;)x+=R;w%l!==x%l&&(c.push({start:w%l,end:x%l,loop:T,style:E}),u=E,p=x%l)}}for(const w of n){p=a?p:w.start;let T,x=e[p%l];for(g=p+1;g<=w.end;g++){const E=e[g%l];T=PH(i.setContext(Oa(o,{type:"segment",p0:x,p1:E,p0DataIndex:(g-1)%l,p1DataIndex:g%l,datasetIndex:s}))),sDe(T,u)&&_(p,g-1,w.loop,u),x=E,u=T}pclass t extends js{static id="point";parsed;skip;stop;static defaults={borderWidth:1,hitRadius:1,hoverBorderWidth:1,hoverRadius:4,pointStyle:"circle",radius:3,rotation:0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};constructor(e){super(),this.options=void 0,this.parsed=void 0,this.skip=void 0,this.stop=void 0,e&&Object.assign(this,e)}inRange(e,i,o){const r=this.options,{x:s,y:a}=this.getProps(["x","y"],o);return Math.pow(e-s,2)+Math.pow(i-a,2)t;n--){const i=e[n];if(!isNaN(i.x)&&!isNaN(i.y))break}return n}function O8(t,n,e,i){return t&&n?i(t[e],n[e]):t?t[e]:n?n[e]:0}function A8(t,n){let e=[],i=!1;return cn(t)?(i=!0,e=t):e=function DMe(t,n){const{x:e=null,y:i=null}=t||{},o=n.points,r=[];return n.segments.forEach(({start:s,end:a})=>{a=Rv(s,a,o);const l=o[s],c=o[a];null!==i?(r.push({x:l.x,y:i}),r.push({x:c.x,y:i})):null!==e&&(r.push({x:e,y:l.y}),r.push({x:e,y:c.y}))}),r}(t,n),e.length?new pp({points:e,options:{tension:0},_loop:i,_fullLoop:i}):null}function R8(t){return t&&!1!==t.fill}function TMe(t,n,e){let o=t[n].fill;const r=[n];let s;if(!e)return o;for(;!1!==o&&-1===r.indexOf(o);){if(!An(o))return o;if(s=t[o],!s)return!1;if(s.visible)return o;r.push(o),o=s.fill}return!1}function MMe(t,n,e){const i=function OMe(t){const n=t.options,e=n.fill;let i=$e(e&&e.target,e);return void 0===i&&(i=!!n.backgroundColor),!1!==i&&null!==i&&(!0===i?"origin":i)}(t);if(pt(i))return!isNaN(i.value)&&i;let o=parseFloat(i);return An(o)&&Math.floor(o)===o?function EMe(t,n,e,i){return("-"===t||"+"===t)&&(e=n+e),!(e===n||e<0||e>=i)&&e}(i[0],n,o,e):["origin","start","end","stack","shape"].indexOf(i)>=0&&i}function NMe(t,n,e){const i=[];for(let o=0;o=0;--s){const a=o[s].$filler;a&&(a.line.updateControlPoints(r,a.axis),i&&a.fill&&vD(t.ctx,a,r))}},beforeDatasetsDraw(t,n,e){if("beforeDatasetsDraw"!==e.drawTime)return;const i=t.getSortedVisibleDatasetMetas();for(let o=i.length-1;o>=0;--o){const r=i[o].$filler;R8(r)&&vD(t.ctx,r,t.chartArea)}},beforeDatasetDraw(t,n,e){const i=n.meta.$filler;!R8(i)||"beforeDatasetDraw"!==e.drawTime||vD(t.ctx,i,t.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};function X8(t){const n=this.getLabels();return t>=0&&tclass t extends vc{static id="category";static defaults={ticks:{callback:X8}};constructor(e){super(e),this._startValue=void 0,this._valueRange=0,this._addedLabels=[]}init(e){const i=this._addedLabels;if(i.length){const o=this.getLabels();for(const{index:r,label:s}of i)o[r]===s&&o.splice(r,1);this._addedLabels=[]}super.init(e)}parse(e,i){if(dt(e))return null;const o=this.getLabels();return((t,n)=>null===t?null:gi(Math.round(t),0,n))(i=isFinite(i)&&o[i]===e?i:function cEe(t,n,e,i){const o=t.indexOf(n);return-1===o?((t,n,e,i)=>("string"==typeof n?(e=t.push(n)-1,i.unshift({index:e,label:n})):isNaN(n)&&(e=null),e))(t,n,e,i):o!==t.lastIndexOf(n)?e:o}(o,e,$e(i,e),this._addedLabels),o.length-1)}determineDataLimits(){const{minDefined:e,maxDefined:i}=this.getUserBounds();let{min:o,max:r}=this.getMinMax(!0);"ticks"===this.options.bounds&&(e||(o=0),i||(r=this.getLabels().length-1)),this.min=o,this.max=r}buildTicks(){const e=this.min,i=this.max,o=this.options.offset,r=[];let s=this.getLabels();s=0===e&&i===s.length-1?s:s.slice(e,i+1),this._valueRange=Math.max(s.length-(o?0:1),1),this._startValue=this.min-(o?.5:0);for(let a=e;a<=i;a++)r.push({value:a});return r}getLabelForValue(e){return X8.call(this,e)}configure(){super.configure(),this.isHorizontal()||(this._reversePixels=!this._reversePixels)}getPixelForValue(e){return"number"!=typeof e&&(e=this.parse(e)),null===e?NaN:this.getPixelForDecimal((e-this._startValue)/this._valueRange)}getPixelForTick(e){const i=this.ticks;return e<0||e>i.length-1?null:this.getPixelForValue(i[e].value)}getValueForPixel(e){return Math.round(this._startValue+this.getDecimalForPixel(e)*this._valueRange)}getBasePixel(){return this.bottom}})();function Q8(t,n,{horizontal:e,minRotation:i}){const o=Tr(i),r=(e?Math.sin(o):Math.cos(o))||.001;return Math.min(n/r,.75*n*(""+t).length)}class Lv extends vc{constructor(n){super(n),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(n,e){return dt(n)||("number"==typeof n||n instanceof Number)&&!isFinite(+n)?null:+n}handleTickRangeOptions(){const{beginAtZero:n}=this.options,{minDefined:e,maxDefined:i}=this.getUserBounds();let{min:o,max:r}=this;const s=l=>o=e?o:l,a=l=>r=i?r:l;if(n){const l=Qr(o),c=Qr(r);l<0&&c<0?a(0):l>0&&c>0&&s(0)}if(o===r){let l=0===r?1:Math.abs(.05*r);a(r+l),n||s(o-l)}this.min=o,this.max=r}getTickLimit(){const n=this.options.ticks;let o,{maxTicksLimit:e,stepSize:i}=n;return i?(o=Math.ceil(this.max/i)-Math.floor(this.min/i)+1,o>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${i} would result generating up to ${o} ticks. Limiting to 1000.`),o=1e3)):(o=this.computeTickLimit(),e=e||11),e&&(o=Math.min(e,o)),o}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const n=this.options,e=n.ticks;let i=this.getTickLimit();i=Math.max(2,i);const s=function uEe(t,n){const e=[],{bounds:o,step:r,min:s,max:a,precision:l,count:c,maxTicks:u,maxDigits:p,includeBounds:g}=t,_=r||1,w=u-1,{min:x,max:T}=n,E=!dt(s),R=!dt(a),W=!dt(c),Y=(T-x)/(p+1);let ee,ie,M,A,K=Y5((T-x)/w/_)*_;if(K<1e-14&&!E&&!R)return[{value:x},{value:T}];A=Math.ceil(T/K)-Math.floor(x/K),A>w&&(K=Y5(A*K/w/_)*_),dt(l)||(ee=Math.pow(10,l),K=Math.ceil(K*ee)/ee),"ticks"===o?(ie=Math.floor(x/K)*K,M=Math.ceil(T/K)*K):(ie=x,M=T),E&&R&&r&&function eke(t,n){const e=Math.round(t);return e-n<=t&&e+n>=t}((a-s)/r,K/1e3)?(A=Math.round(Math.min((a-s)/K,u)),K=(a-s)/A,ie=s,M=a):W?(ie=E?s:ie,M=R?a:M,A=c-1,K=(M-ie)/A):(A=(M-ie)/K,A=Jf(A,Math.round(A),K/1e3)?Math.round(A):Math.ceil(A));const F=Math.max(Z5(K),Z5(ie));ee=Math.pow(10,dt(l)?F:l),ie=Math.round(ie*ee)/ee,M=Math.round(M*ee)/ee;let U=0;for(E&&(g&&ie!==s?(e.push({value:s}),iea)break;e.push({value:H})}return R&&g&&M!==a?e.length&&Jf(e[e.length-1].value,a,Q8(a,Y,t))?e[e.length-1].value=a:e.push({value:a}):(!R||M===a)&&e.push({value:M}),e}({maxTicks:i,bounds:n.bounds,min:n.min,max:n.max,precision:e.precision,step:e.stepSize,count:e.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:e.minRotation||0,includeBounds:!1!==e.includeBounds},this._range||this);return"ticks"===n.bounds&&function X5(t,n,e){let i,o,r;for(i=0,o=t.length;i{class t{static{this.topInternalMargin=5}constructor(e){this.height=100,this.animated=!1,this.min=void 0,this.max=void 0,this.differ=e.find([]).create(null)}ngAfterViewInit(){this.chart=new fD(this.chartElement.nativeElement,{type:"line",data:{labels:Array.from(Array(this.data.length).keys()),datasets:[{data:this.data,backgroundColor:"rgba(10, 15, 22, 0.4)",borderColor:"rgba(10, 15, 22, 0.4)",borderWidth:1}]},options:{maintainAspectRatio:!1,events:[],plugins:{legend:{display:!1},tooltip:{enabled:!1}},scales:{y:{display:!1,suggestedMin:0},x:{display:!1}},elements:{point:{radius:0}},layout:{padding:{left:0,right:0,top:t.topInternalMargin,bottom:0}},animation:!!this.animated&&void 0}}),void 0!==this.min&&void 0!==this.max&&(this.updateMinAndMax(),this.chart.update())}ngDoCheck(){this.differ.diff(this.data)&&this.chart&&(void 0!==this.min&&void 0!==this.max&&this.updateMinAndMax(),this.animated?this.chart.update():this.chart.update("none"))}ngOnDestroy(){this.chart&&this.chart.destroy()}updateMinAndMax(){this.chart.options.scales.y.min=this.min,this.chart.options.scales.y.max=this.max}static{this.\u0275fac=function(i){return new(i||t)(P(t_))}}static{this.\u0275cmp=se({type:t,selectors:[["app-line-chart"]],viewQuery:function(i,o){if(1&i&&rt(REe,5),2&i){let r;ue(r=he())&&(o.chartElement=r.first)}},inputs:{data:"data",height:"height",animated:"animated",min:"min",max:"max"},standalone:!1,decls:3,vars:2,consts:[["chart",""],[1,"chart-container"]],template:function(i,o){1&i&&(f(0,"div",1),B(1,"canvas",null,0),h()),2&i&&Ji("height: "+o.height+"px;")},styles:[".chart-container[_ngcontent-%COMP%]{position:relative;width:100%;overflow:hidden;border-radius:10px}"]})}}return t})();const cj=()=>({showValue:!0}),dj=()=>({showUnit:!0});function NEe(t,n){if(1&t&&(f(0,"div",0),B(1,"app-line-chart",1),f(2,"div",2)(3,"span",3),m(4),b(5,"translate"),h(),f(6,"span",4)(7,"span",5),m(8),b(9,"autoScale"),h(),f(10,"span",6),m(11),b(12,"autoScale"),h()()()()),2&t){const e=C();d(),v("data",e.trafficData.sentHistory),d(3),O(y(5,4,"common.uploaded")),d(4),O(Ee(9,6,e.trafficData.totalSent,Mt(12,cj))),d(3),O(Ee(12,9,e.trafficData.totalSent,Mt(13,dj)))}}function FEe(t,n){if(1&t&&(f(0,"div",0),B(1,"app-line-chart",1),f(2,"div",2)(3,"span",3),m(4),b(5,"translate"),h(),f(6,"span",4)(7,"span",5),m(8),b(9,"autoScale"),h(),f(10,"span",6),m(11),b(12,"autoScale"),h()()()()),2&t){const e=C();d(),v("data",e.trafficData.receivedHistory),d(3),O(y(5,4,"common.downloaded")),d(4),O(Ee(9,6,e.trafficData.totalReceived,Mt(12,cj))),d(3),O(Ee(12,9,e.trafficData.totalReceived,Mt(13,dj)))}}let LEe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=se({type:t,selectors:[["app-charts"]],inputs:{trafficData:"trafficData"},standalone:!1,decls:2,vars:2,consts:[[1,"small-rounded-elevated-box","chart"],[3,"data"],[1,"info"],[1,"text"],[1,"rate"],[1,"value"],[1,"unit"]],template:function(i,o){1&i&&(S(0,NEe,13,14,"div",0),S(1,FEe,13,14,"div",0)),2&i&&(k(o.trafficData?0:-1),d(),k(o.trafficData?1:-1))},dependencies:[SD,Se,Kf],styles:[".chart[_ngcontent-%COMP%]{position:relative;margin-bottom:20px}.chart[_ngcontent-%COMP%]:last-child{margin-bottom:10px}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%]{position:absolute;bottom:0;left:0;display:flex;justify-content:space-between;align-items:flex-end;padding:10px;width:100%}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:#f8f9f9}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] span.text[_ngcontent-%COMP%]{font-size:.8rem;text-transform:uppercase;font-weight:700}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] span.rate[_ngcontent-%COMP%] .value[_ngcontent-%COMP%]{font-size:1.25rem;font-weight:700}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] span.rate[_ngcontent-%COMP%] .unit[_ngcontent-%COMP%]{font-size:.8rem;padding-left:5px}"]})}}return t})();const kD=t=>({time:t}),BEe=(t,n)=>({"latency-high":t,"latency-very-high":n}),VEe=(t,n)=>n.name;function HEe(t,n){if(1&t&&(f(0,"span",3)(1,"span",4),m(2),b(3,"translate"),h(),B(4,"app-copy-to-clipboard-text",8),h()),2&t){const e=C(2);d(2),I("",y(3,3,"node.details.node-info.public-ip")," "),d(2),v("text",Wt(e.node.publicIp))}}function jEe(t,n){if(1&t&&(f(0,"span",3)(1,"span",4),m(2),b(3,"translate"),h(),B(4,"app-copy-to-clipboard-text",8),h()),2&t){const e=C(2);d(2),I("",y(3,3,"node.details.node-info.ip")," "),d(2),v("text",Wt(e.node.ip))}}function UEe(t,n){1&t&&(m(0),b(1,"translate")),2&t&&Hn(" ",C(2).node.dmsgServers.length," ",y(1,2,"node.details.node-info.connected")," ")}function zEe(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"node.details.node-info.no-dmsg-server")," ")}function $Ee(t,n){if(1&t&&(f(0,"span",20),m(1),h()),2&t){const e=C().$implicit,i=C(3);v("ngClass",ft(2,BEe,e.latency>3e8,e.latency>8e8)),d(),I(" ",i.formatLatency(e.latency)," ")}}function WEe(t,n){if(1&t&&(f(0,"div",19),B(1,"app-copy-to-clipboard-text",8),S(2,$Ee,2,5,"span",20),h()),2&t){const e=n.$implicit;d(),v("text",Wt(e.pk)),d(),k(e.latency>0?2:-1)}}function GEe(t,n){if(1&t&&(f(0,"div",9),we(1,WEe,3,3,"div",19,Re),h()),2&t){const e=C(2);d(),xe(e.node.dmsgServers)}}function qEe(t,n){if(1&t&&(f(0,"span",3)(1,"span",4),m(2),b(3,"translate"),h(),m(4),h()),2&t){const e=C(2);d(2),I("",y(3,2,"node.details.node-info.skybian-version")," "),d(2),I(" ",e.node.skybianBuildVersion," ")}}function KEe(t,n){if(1&t&&(f(0,"mat-icon",10),b(1,"translate"),m(2," info "),h()),2&t){const e=C(2);v("inline",!0)("matTooltip",Ee(1,2,"node.details.node-info.time.minutes",oe(5,kD,e.timeOnline.totalMinutes)))}}function YEe(t,n){1&t&&(f(0,"a",22)(1,"mat-icon",23),b(2,"translate"),m(3," open_in_browser "),h()()),2&t&&(v("href","https://explorer.skycoin.com/app/address/"+C(3).node.rewardsAddress,ho),d(),v("inline",!0)("matTooltip",y(2,3,"node.details.rewards-info.open-in-explorer")))}function XEe(t,n){if(1&t&&(B(0,"app-copy-to-clipboard-text",21),S(1,YEe,4,5,"a",22)),2&t){const e=C(2);v("text",Wt(e.node.rewardsAddress)),d(),k(e.rewardsAddressIsXpub?-1:1)}}function ZEe(t,n){1&t&&(m(0),b(1,"translate"),f(2,"mat-icon",10),b(3,"translate"),m(4,"info"),h()),2&t&&(I(" ",y(1,3,"node.details.rewards-info.not-registered")," "),d(2),v("inline",!0)("matTooltip",y(3,5,"node.details.rewards-info.not-registered-info")))}function QEe(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"node.details.rewards-info.change-address-button")," ")}function JEe(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"node.details.rewards-info.set-address-button")," ")}function e2e(t,n){1&t&&(f(0,"span"),m(1,", "),h())}function t2e(t,n){if(1&t&&(f(0,"span")(1,"span",24),m(2),h(),m(3,": "),f(4,"span",15),m(5),h(),S(6,e2e,2,0,"span"),h()),2&t){const e=n.$implicit,i=n.$index,o=n.$count;d(2),O(e.type),d(3),O(e.count),d(),k(i!==o-1?6:-1)}}function n2e(t,n){if(1&t&&(m(0," ("),we(1,t2e,7,3,"span",null,Re),m(3,") ")),2&t){const e=C(2);d(),xe(e.transportStats.byType)}}function i2e(t,n){if(1&t&&(f(0,"span",16)(1,"span",4),m(2),b(3,"translate"),h(),B(4,"i"),m(5),b(6,"translate"),h()),2&t){const e=C(2);d(2),O(y(3,4,"node.details.node-health.uptime-tracker")),d(2),at(e.subHealthClass(null==e.node.health?null:e.node.health.uptimeTrackerHealth)),d(),I(" ",y(6,6,e.subHealthText(null==e.node.health?null:e.node.health.uptimeTrackerHealth))," ")}}function o2e(t,n){if(1&t&&(f(0,"span",16)(1,"span",4),m(2),b(3,"translate"),h(),B(4,"i"),m(5),b(6,"translate"),h()),2&t){const e=C(2);d(2),O(y(3,4,"node.details.node-health.autoconnect")),d(2),at(e.subHealthClass(null==e.node.health?null:e.node.health.autoconnectHealth)),d(),I(" ",y(6,6,e.subHealthText(null==e.node.health?null:e.node.health.autoconnectHealth))," ")}}function r2e(t,n){if(1&t&&(f(0,"span",16)(1,"span",4),m(2),b(3,"translate"),h(),B(4,"i"),m(5),b(6,"translate"),h()),2&t){const e=C(2);d(2),O(y(3,4,"node.details.node-health.transportability")),d(2),at(e.subHealthClass(null==e.node.health?null:e.node.health.transportabilityHealth)),d(),I(" ",y(6,6,e.subHealthText(null==e.node.health?null:e.node.health.transportabilityHealth))," ")}}function s2e(t,n){if(1&t&&(f(0,"span",3)(1,"span",4),m(2),h(),m(3),h()),2&t){const e=n.$implicit;d(2),I("",e.name,": "),d(),I(" ",e.value," ")}}function a2e(t,n){1&t&&we(0,s2e,4,2,"span",3,VEe),2&t&&xe(C(3).ports)}function l2e(t,n){if(1&t){const e=ce();B(0,"div",11),f(1,"div",1)(2,"span",25),L("click",function(){z(e);const o=C(2);return $(o.showPorts=!o.showPorts)}),f(3,"mat-icon",26),m(4),h(),m(5),b(6,"translate"),f(7,"span",27),m(8),h()(),S(9,a2e,2,0),h()}if(2&t){const e=C(2);d(3),v("inline",!0),d(),O(e.showPorts?"expand_more":"chevron_right"),d(),I(" ",y(6,5,"node.details.ports.title")," "),d(3),I("(",e.ports.length,")"),d(),k(e.showPorts?9:-1)}}function c2e(t,n){if(1&t&&(f(0,"pre",17),m(1),h()),2&t){const e=C(2);d(),O(e.rawConfig)}}function d2e(t,n){if(1&t){const e=ce();B(0,"div",11),f(1,"div",1)(2,"span",2),m(3),b(4,"translate"),h(),f(5,"div",12)(6,"app-button",13),L("action",function(){return z(e),$(C(2).openTpViz())}),m(7),b(8,"translate"),h()()()}2&t&&(d(3),O(y(4,3,"node.details.tpviz.title")),d(3),v("forDarkBackground",!0),d(),I(" ",y(8,5,"node.details.tpviz.open")," "))}function u2e(t,n){if(1&t){const e=ce();f(0,"div",0)(1,"div",1)(2,"span",2),m(3),b(4,"translate"),h(),f(5,"span",3)(6,"span",4),m(7),b(8,"translate"),h(),f(9,"span",5),L("click",function(){return z(e),$(C().showEditLabelDialog())}),f(10,"span",6),m(11),h(),f(12,"mat-icon",7),m(13,"edit"),h()()(),f(14,"span",3)(15,"span",4),m(16),b(17,"translate"),h(),B(18,"app-copy-to-clipboard-text",8),h(),f(19,"span",3)(20,"span",4),m(21),b(22,"translate"),h(),m(23),b(24,"translate"),h(),S(25,HEe,5,5,"span",3),S(26,jEe,5,5,"span",3),f(27,"span",3)(28,"span",4),m(29),b(30,"translate"),h(),S(31,UEe,2,4),S(32,zEe,2,3),h(),S(33,GEe,3,0,"div",9),f(34,"span",3)(35,"span",4),m(36),b(37,"translate"),h(),m(38),b(39,"translate"),h(),f(40,"span",3)(41,"span",4),m(42),b(43,"translate"),h(),m(44),b(45,"translate"),h(),f(46,"span",3)(47,"span",4),m(48),b(49,"translate"),h(),m(50),b(51,"translate"),h(),f(52,"span",3)(53,"span",4),m(54),b(55,"translate"),h(),m(56),b(57,"translate"),h(),f(58,"span",3)(59,"span",4),m(60),b(61,"translate"),h(),m(62),b(63,"translate"),h(),S(64,qEe,5,4,"span",3),f(65,"span",3)(66,"span",4),m(67),b(68,"translate"),h(),m(69),b(70,"translate"),S(71,KEe,3,7,"mat-icon",10),h()(),B(72,"div",11),f(73,"div",1)(74,"span",2),m(75),b(76,"translate"),h(),f(77,"span",3)(78,"span",4),m(79),b(80,"translate"),h(),S(81,XEe,2,3),S(82,ZEe,5,7),h(),f(83,"div",12)(84,"app-button",13),L("action",function(){return z(e),$(C().changeRewardsAddressConfig())}),S(85,QEe,2,3),S(86,JEe,2,3),h()()(),B(87,"div",11),f(88,"div",1)(89,"span",2),m(90),b(91,"translate"),h(),f(92,"span",3)(93,"span",4),m(94),b(95,"translate"),h(),f(96,"span",14)(97,"span",15),m(98),h(),S(99,n2e,4,0),h()(),f(100,"span",3)(101,"span",4),m(102),b(103,"translate"),h(),m(104),b(105,"translate"),f(106,"mat-icon",10),b(107,"translate"),m(108,"info"),h()(),f(109,"div",12)(110,"app-button",13),L("action",function(){return z(e),$(C().changeTransportsConfig())}),m(111),b(112,"translate"),h()(),f(113,"span",3)(114,"span",4),m(115),b(116,"translate"),h(),m(117),b(118,"translate"),f(119,"mat-icon",10),b(120,"translate"),m(121,"info"),h()(),f(122,"div",12)(123,"app-button",13),L("action",function(){return z(e),$(C().changePublicConfig())}),m(124),b(125,"translate"),h()()(),B(126,"div",11),f(127,"div",1)(128,"span",2),m(129),b(130,"translate"),h(),f(131,"span",3)(132,"span",4),m(133),b(134,"translate"),h(),m(135),h(),f(136,"div",12)(137,"app-button",13),L("action",function(){return z(e),$(C().changeRouterConfig())}),m(138),b(139,"translate"),h()()(),B(140,"div",11),f(141,"div",1)(142,"span",2),m(143),b(144,"translate"),h(),f(145,"span",3)(146,"span",4),m(147),b(148,"translate"),h(),B(149,"i"),m(150),b(151,"translate"),h(),S(152,i2e,7,8,"span",16),S(153,o2e,7,8,"span",16),S(154,r2e,7,8,"span",16),h(),S(155,l2e,10,7),B(156,"div",11),f(157,"div",1)(158,"span",2),m(159),b(160,"translate"),h(),f(161,"div",12)(162,"app-button",13),L("action",function(){return z(e),$(C().viewConfig())}),m(163),b(164,"translate"),h()(),S(165,c2e,2,1,"pre",17),h(),S(166,d2e,9,7),B(167,"div",11),f(168,"div",1)(169,"span",2),m(170),b(171,"translate"),h(),B(172,"app-charts",18),h()()}if(2&t){const e=C();d(3),O(y(4,73,e.node.isHypervisor?"node.details.node-info.title-local":"node.details.node-info.title")),d(4),I("",y(8,75,"node.details.node-info.label")," "),d(4),O(e.node.label),d(),v("inline",!0),d(4),I("",y(17,77,"node.details.node-info.public-key")," "),d(2),v("text",Wt(e.node.localPk)),d(3),I("",y(22,79,"node.details.node-info.symmetic-nat")," "),d(2),I(" ",y(24,81,e.node.isSymmeticNat?"common.yes":"common.no")," "),d(2),k(e.node.isSymmeticNat?-1:25),d(),k(e.node.ip?26:-1),d(3),I("",y(30,83,"node.details.node-info.dmsg-servers")," "),d(2),k(e.node.dmsgServers&&e.node.dmsgServers.length>0?31:-1),d(),k(e.node.dmsgServers&&0!==e.node.dmsgServers.length?-1:32),d(),k(e.node.dmsgServers&&e.node.dmsgServers.length>0?33:-1),d(3),I("",y(37,85,"node.details.node-info.ping")," "),d(2),I(" ",Ee(39,87,"common.time-in-ms",oe(153,kD,e.node.roundTripPing))," "),d(4),I("",y(43,90,"node.details.node-info.node-version")," "),d(2),I(" ",e.node.version?e.node.version:y(45,92,"common.unknown")," "),d(4),I("",y(49,94,"node.details.node-info.config-version")," "),d(2),I(" ",e.node.configVersion?e.node.configVersion:y(51,96,"common.unknown")," "),d(4),I("",y(55,98,"node.details.node-info.os")," "),d(2),I(" ",e.node.os?e.node.os:y(57,100,"common.unknown")," "),d(4),I("",y(61,102,"node.details.node-info.arch")," "),d(2),I(" ",e.node.arch?e.node.arch:y(63,104,"common.unknown")," "),d(2),k(e.node.skybianBuildVersion?64:-1),d(3),I("",y(68,106,"node.details.node-info.time.title")," "),d(2),I(" ",Ee(70,108,"node.details.node-info.time."+e.timeOnline.translationVarName,oe(155,kD,e.timeOnline.elapsedTime))," "),d(2),k(e.timeOnline.totalMinutes>60?71:-1),d(4),O(y(76,111,"node.details.rewards-info.title")),d(4),I("",y(80,113,"node.details.rewards-info.rewards-address")," "),d(2),k(e.node.rewardsAddress?81:-1),d(),k(e.node.rewardsAddress?-1:82),d(2),v("forDarkBackground",!0),d(),k(e.node.rewardsAddress?85:-1),d(),k(e.node.rewardsAddress?-1:86),d(4),O(y(91,115,"node.details.transports-info.title")),d(4),I("",y(95,117,"node.details.transports-info.total")," "),d(4),O(e.transportStats.total),d(),k(e.transportStats.byType.length>0?99:-1),d(3),I("",y(103,119,"node.details.transports-info.autoconnect")," "),d(2),I(" ",y(105,121,"node.details.transports-info."+(e.node.autoconnectTransports?"enabled":"disabled"))," "),d(2),v("inline",!0)("matTooltip",y(107,123,"node.details.transports-info.autoconnect-info")),d(4),v("forDarkBackground",!0),d(),I(" ",y(112,125,"node.details.transports-info."+(e.node.autoconnectTransports?"disable":"enable")+"-button")," "),d(4),I("",y(116,127,"node.details.transports-info.is-public")," "),d(2),I(" ",y(118,129,"node.details.transports-info.public-"+(e.isPublic?"enabled":"disabled"))," "),d(2),v("inline",!0)("matTooltip",y(120,131,"node.details.transports-info.is-public-info")),d(4),v("forDarkBackground",!0),d(),I(" ",y(125,133,"node.details.transports-info.public-"+(e.isPublic?"disable":"enable")+"-button")," "),d(5),O(y(130,135,"node.details.router-info.title")),d(4),I("",y(134,137,"node.details.router-info.min-hops")," "),d(2),I(" ",e.node.minHops," "),d(2),v("forDarkBackground",!0),d(),I(" ",y(139,139,"node.details.router-info.change-config-button")," "),d(5),I("",y(144,141,"node.details.node-health.title")," "),d(4),O(y(148,143,"node.details.node-health.services")),d(2),at(e.nodeHealthClass),d(),I(" ",y(151,145,e.nodeHealthText)," "),d(2),k(null!=e.node.health&&e.node.health.uptimeTrackerHealth?152:-1),d(),k(null!=e.node.health&&e.node.health.autoconnectHealth?153:-1),d(),k(null!=e.node.health&&e.node.health.transportabilityHealth?154:-1),d(),k(e.ports.length>0?155:-1),d(4),O(y(160,147,"node.details.config.title")),d(3),v("forDarkBackground",!0),d(),I(" ",y(164,149,"node.details.config.view-button")," "),d(2),k(e.showRawConfig&&e.rawConfig?165:-1),d(),k(e.node.isHypervisor?166:-1),d(4),O(y(171,151,"node.details.node-traffic-data")),d(2),v("trafficData",e.trafficData)}}let uj=(()=>{class t{set nodeInfo(e){this.node=e,this.timeOnline=lv.getElapsedTime(e.secondsOnline),this.transportStats=this.computeTransportStats(),e.health&&e.health.servicesHealth===Eo.Healthy?(this.nodeHealthText="node.statuses.online",this.nodeHealthClass="dot-green"):e.health&&e.health.servicesHealth===Eo.Unhealthy?(this.nodeHealthText="node.statuses.partially-online",this.nodeHealthClass="dot-yellow blinking"):e.health&&e.health.servicesHealth===Eo.Connecting?(this.nodeHealthText="node.statuses.connecting",this.nodeHealthClass="dot-outline-gray"):(this.nodeHealthText="node.statuses.unknown",this.nodeHealthClass="dot-outline-gray"),this.fetchPorts(e.localPk),this.fetchPublicStatus(e.localPk)}get rewardsAddressIsXpub(){return(this.node&&this.node.rewardsAddress||"").startsWith("xpub")}constructor(e,i,o,r,s){this.dialog=e,this.storageService=i,this.transportService=o,this.snackbarService=r,this.apiService=s,this.transportStats={total:0,byType:[]},this.ports=[],this.showPorts=!1,this.isPublic=!1,this.showRawConfig=!1,this.rawConfig=""}ngOnDestroy(){this.autoconnectSubscription&&this.autoconnectSubscription.unsubscribe(),this.publicToggleSubscription&&this.publicToggleSubscription.unsubscribe()}subHealthClass(e){return e===Eo.Healthy?"dot-green":e===Eo.Unhealthy?"dot-yellow blinking":"dot-outline-gray"}subHealthText(e){return e===Eo.Healthy?"node.statuses.online":e===Eo.Unhealthy?"node.statuses.partially-online":"node.statuses.connecting"}showEditLabelDialog(){let e=this.storageService.getLabelInfo(this.node.localPk);e||(e={id:this.node.localPk,label:"",identifiedElementType:io.Node}),vk.openDialog(this.dialog,e).afterClosed().subscribe(i=>{i&&ke.refreshCurrentDisplayedData()})}changeRewardsAddressConfig(){mSe.openDialog(this.dialog,{nodePk:this.node.localPk,currentAddress:this.node.rewardsAddress}).afterClosed().subscribe(i=>{i&&ke.refreshCurrentDisplayedData()})}changeRouterConfig(){F5.openDialog(this.dialog,{nodePk:this.node.localPk,minHops:this.node.minHops}).afterClosed().subscribe(i=>{i&&ke.refreshCurrentDisplayedData()})}hasDmsgServer(){return!(!this.node||0===this.node.dmsgServerPk.replace(/0/g,"").length)}formatLatency(e){const i=e/1e6;return i<10?i.toFixed(2)+"ms":Math.round(i)+"ms"}computeTransportStats(){if(!this.node||!this.node.transports)return{total:0,byType:[]};const e={};for(const o of this.node.transports)e[o.type]=(e[o.type]||0)+1;const i=Object.entries(e).map(([o,r])=>({type:o,count:r})).sort((o,r)=>r.count-o.count);return{total:this.node.transports.length,byType:i}}fetchPorts(e){this.apiService.get(`visors/${e}/ports`).subscribe(i=>{this.ports=i&&"object"==typeof i?Object.entries(i).map(([o,r])=>({name:o,value:JSON.stringify(r)})):[]},()=>{this.ports=[]})}fetchPublicStatus(e){this.apiService.get(`visors/${e}/public`).subscribe(i=>{this.isPublic=i&&!0===i.is_public},()=>{this.isPublic=!1})}changePublicConfig(){const e=Ye.createConfirmationDialog(this.dialog,this.isPublic?"node.details.transports-info.public-disable-confirmation":"node.details.transports-info.public-enable-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.showProcessing(),this.publicToggleSubscription=this.apiService.put(`visors/${this.node.localPk}/public`,{is_public:!this.isPublic}).subscribe(()=>{e.close(),this.snackbarService.showDone(this.isPublic?"node.details.transports-info.public-disable-done":"node.details.transports-info.public-enable-done"),this.isPublic=!this.isPublic},i=>{i=Je(i),e.componentInstance.showDone("confirmation.error-header-text",i.translatableErrorMsg)})})}viewConfig(){this.showRawConfig?this.showRawConfig=!1:this.apiService.get(`visors/${this.node.localPk}/runtime-config`).subscribe(e=>{this.rawConfig=JSON.stringify(e,null,2),this.showRawConfig=!0},()=>{this.snackbarService.showError("common.loading-error")})}openTpViz(){window.open("/tp-viz/","_blank")}changeTransportsConfig(){const e=Ye.createConfirmationDialog(this.dialog,this.node.autoconnectTransports?"node.details.transports-info.disable-confirmation":"node.details.transports-info.enable-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.showProcessing();const i=this.transportService.changeAutoconnectSetting(this.node.localPk,!this.node.autoconnectTransports);this.autoconnectSubscription=i.subscribe(()=>{e.close(),this.snackbarService.showDone(this.node.autoconnectTransports?"node.details.transports-info.disable-done":"node.details.transports-info.enable-done"),ke.refreshCurrentDisplayedData()},o=>{o=Je(o),e.componentInstance.showDone("confirmation.error-header-text",o.translatableErrorMsg)})})}static{this.\u0275fac=function(i){return new(i||t)(P(kt),P(zn),P(Dk),P(bt),P(br))}}static{this.\u0275cmp=se({type:t,selectors:[["app-node-info-content"]],inputs:{nodeInfo:"nodeInfo",trafficData:"trafficData"},standalone:!1,decls:1,vars:1,consts:[[1,"font-smaller","d-flex","flex-column","mt-4.5"],[1,"d-flex","flex-column"],[1,"section-title"],[1,"info-line"],[1,"title"],[1,"highlight-internal-icon",3,"click"],[1,"text-with-small-right-margin"],[1,"edit-icon",3,"inline"],[3,"text"],[1,"dmsg-servers-list"],[3,"inline","matTooltip"],[1,"separator"],[1,"config-button-container"],["color","primary",3,"action","forDarkBackground"],[1,"transport-stats"],[1,"transport-count"],[1,"info-line","sub-health"],[1,"raw-config"],[1,"d-flex","flex-column","justify-content-end","mt-3",3,"trafficData"],[1,"dmsg-server-item"],[1,"dmsg-latency",3,"ngClass"],[1,"text-with-right-margin",3,"text"],["target","_blank","rel","noreferrer nofollow noopener",3,"href"],[1,"link-icon","transparent-button",3,"inline","matTooltip"],[1,"transport-type"],[1,"section-title","collapsible-header",2,"cursor","pointer",3,"click"],[3,"inline"],[1,"count-badge"]],template:function(i,o){1&i&&S(0,u2e,173,157,"div",0),2&i&&k(o.node?0:-1)},dependencies:[qt,lt,pn,Rk,On,LEe,Se],styles:[".section-title[_ngcontent-%COMP%]{font-size:1rem;font-weight:700;text-transform:uppercase;color:#00d4ff;text-shadow:0 0 10px rgba(0,212,255,.5),0 0 20px rgba(0,212,255,.3);letter-spacing:1px;margin-bottom:8px}.info-table[_ngcontent-%COMP%]{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;align-items:baseline;margin-top:8px}.info-table[_ngcontent-%COMP%] .info-label[_ngcontent-%COMP%]{opacity:.7;white-space:nowrap;font-size:.9em}.info-table[_ngcontent-%COMP%] .info-value[_ngcontent-%COMP%]{word-break:break-word}.info-line[_ngcontent-%COMP%]{word-break:break-word;margin-top:7px;display:flex;align-items:baseline;gap:6px}.info-line[_ngcontent-%COMP%] .text-with-right-margin[_ngcontent-%COMP%]{margin-right:5px}.info-line[_ngcontent-%COMP%] .text-with-small-right-margin[_ngcontent-%COMP%]{margin-right:3px}.info-line[_ngcontent-%COMP%] .link-icon[_ngcontent-%COMP%]{font-size:20px;line-height:1;color:#fff!important;cursor:pointer}.info-line[_ngcontent-%COMP%] .edit-icon[_ngcontent-%COMP%]{display:inline!important}.info-line[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:3px;-webkit-user-select:none;user-select:none}.info-line[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{margin-left:7px}.info-line[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{opacity:.7;white-space:nowrap;min-width:120px;font-size:.9em}.separator[_ngcontent-%COMP%]{width:100%;height:0px;margin:1rem 0;border-top:1px solid rgba(255,255,255,.15);opacity:.5}.config-button-container[_ngcontent-%COMP%]{margin-top:10px;margin-left:-4px}.dmsg-servers-list[_ngcontent-%COMP%]{margin-left:0;margin-top:8px;display:flex;flex-direction:column;gap:4px;padding:10px 12px;background:#00d4ff0d;border-radius:6px;border-left:2px solid rgba(0,212,255,.3)}.dmsg-servers-list[_ngcontent-%COMP%] .dmsg-server-item[_ngcontent-%COMP%]{font-family:Consolas,Monaco,Courier New,monospace;font-size:.82em;display:flex;align-items:center;gap:10px;padding:4px 0;color:#fffffff2;transition:all .2s ease}.dmsg-servers-list[_ngcontent-%COMP%] .dmsg-server-item[_ngcontent-%COMP%]:hover{color:#00d4ff;text-shadow:0 0 8px rgba(0,212,255,.4)}.dmsg-servers-list[_ngcontent-%COMP%] .dmsg-server-item[_ngcontent-%COMP%] .dmsg-latency[_ngcontent-%COMP%]{color:#4ade80;font-weight:500;font-size:.95em;text-shadow:0 0 6px rgba(74,222,128,.3)}.dmsg-servers-list[_ngcontent-%COMP%] .dmsg-server-item[_ngcontent-%COMP%] .dmsg-latency.latency-high[_ngcontent-%COMP%]{color:#fbbf24;text-shadow:0 0 6px rgba(251,191,36,.3)}.dmsg-servers-list[_ngcontent-%COMP%] .dmsg-server-item[_ngcontent-%COMP%] .dmsg-latency.latency-very-high[_ngcontent-%COMP%]{color:#f87171;text-shadow:0 0 6px rgba(248,113,113,.3)}.glow-value[_ngcontent-%COMP%]{color:#e0f2fe;text-shadow:0 0 4px rgba(224,242,254,.2)}.status-online[_ngcontent-%COMP%]{color:#4ade80;text-shadow:0 0 8px rgba(74,222,128,.5)}.status-offline[_ngcontent-%COMP%]{color:#f87171;text-shadow:0 0 8px rgba(248,113,113,.5)}.raw-config[_ngcontent-%COMP%]{margin-top:10px;padding:12px;background:#0000004d;border:1px solid rgba(0,212,255,.2);border-radius:6px;font-family:Consolas,Monaco,Courier New,monospace;font-size:.8em;color:#ffffffe6;overflow-x:auto;max-height:400px;overflow-y:auto;white-space:pre-wrap;word-break:break-all}.sub-health[_ngcontent-%COMP%]{padding-left:12px;font-size:.9em;color:#ffffffd9}.collapsible-header[_ngcontent-%COMP%]{display:flex;align-items:center;-webkit-user-select:none;user-select:none}.collapsible-header[_ngcontent-%COMP%]:hover{color:#a5b4fc}.collapsible-header[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:4px;font-size:18px;width:18px;height:18px}.collapsible-header[_ngcontent-%COMP%] .count-badge[_ngcontent-%COMP%]{margin-left:6px;color:#ffffff8c;font-weight:400;font-size:.85em}.transport-stats[_ngcontent-%COMP%]{color:#ffffffd9}.transport-stats[_ngcontent-%COMP%] .transport-type[_ngcontent-%COMP%]{color:#a5b4fc;font-weight:500}.transport-stats[_ngcontent-%COMP%] .transport-count[_ngcontent-%COMP%]{color:#4ade80;font-weight:600}"]})}}return t})(),h2e=(()=>{class t extends Wn{ngOnInit(){return this.nodeSubscription=ke.currentNode.subscribe(e=>{this.node=e}),this.trafficDataSubscription=ke.currentTrafficData.subscribe(e=>{this.trafficData=e}),super.ngOnInit()}ngOnDestroy(){this.nodeSubscription.unsubscribe(),this.trafficDataSubscription.unsubscribe()}static{this.\u0275fac=(()=>{let e;return function(o){return(e||(e=it(t)))(o||t)}})()}static{this.\u0275cmp=se({type:t,selectors:[["app-node-info"]],standalone:!1,features:[be],decls:1,vars:2,consts:[[3,"nodeInfo","trafficData"]],template:function(i,o){1&i&&B(0,"app-node-info-content",0),2&i&&v("nodeInfo",o.node)("trafficData",o.trafficData)},dependencies:[uj],encapsulation:2})}}return t})();const f2e=()=>[];function p2e(t,n){1&t&&(f(0,"div",6),B(1,"mat-spinner",7),h())}function m2e(t,n){1&t&&(f(0,"span"),m(1,"open"),h())}function g2e(t,n){1&t&&(f(0,"span"),m(1,"s"),h())}function _2e(t,n){if(1&t&&(f(0,"span"),m(1),tt(2,g2e,2,0,"span",5),h()),2&t){const e=C().$implicit;d(),I(" ",e.whitelist.length," PK"),d(),v("ngIf",1!==e.whitelist.length)}}function b2e(t,n){if(1&t){const e=ce();f(0,"button",41),L("click",function(){z(e);const o=C(2).$implicit;return $(C(3).clearWhitelist(o))}),m(1," Clear "),h()}}function v2e(t,n){if(1&t){const e=ce();f(0,"tr",32)(1,"td",33)(2,"div",34)(3,"p",35),m(4," Comma- or whitespace-separated public keys. Empty = accessible to all authenticated peers. "),h(),f(5,"mat-form-field",36)(6,"mat-label"),m(7),h(),f(8,"textarea",37),Di("ngModelChange",function(o){z(e);const r=C(4);return Bi(r.whitelistInput,o)||(r.whitelistInput=o),$(o)}),h()(),f(9,"div",38)(10,"button",22),L("click",function(){z(e);const o=C().$implicit;return $(C(3).saveWhitelist(o))}),f(11,"mat-icon"),m(12,"save"),h(),m(13," Save "),h(),tt(14,b2e,2,0,"button",39),f(15,"button",40),L("click",function(){return z(e),$(C(4).cancelEditWhitelist())}),m(16,"Cancel"),h()()()()()}if(2&t){const e=C().$implicit,i=C(3);d(7),I("Allowed PKs for port ",e.port),d(),ki("ngModel",i.whitelistInput),d(6),v("ngIf",e.whitelist&&e.whitelist.length>0)}}function y2e(t,n){if(1&t){const e=ce();rr(0),f(1,"tr")(2,"td",25),m(3),h(),f(4,"td",25),m(5),h(),f(6,"td"),m(7),h(),f(8,"td")(9,"mat-checkbox",26),L("change",function(){const o=z(e).$implicit;return $(C(3).toggleSkynet(o))}),h()(),f(10,"td")(11,"mat-checkbox",26),L("change",function(){const o=z(e).$implicit;return $(C(3).toggleDmsg(o))}),h()(),f(12,"td")(13,"mat-checkbox",26),L("change",function(){const o=z(e).$implicit;return $(C(3).toggleLanding(o))}),h()(),f(14,"td")(15,"button",27),L("click",function(){const o=z(e).$implicit;return $(C(3).startEditWhitelist(o))}),tt(16,m2e,2,0,"span",5)(17,_2e,3,2,"span",5),f(18,"mat-icon",28),m(19,"edit"),h()()(),f(20,"td",29)(21,"button",30),L("click",function(){const o=z(e).$implicit;return $(C(3).removePort(o.port))}),f(22,"mat-icon"),m(23,"close"),h()()()(),tt(24,v2e,17,3,"tr",31),Lo()}if(2&t){const e=n.$implicit,i=C(3);d(3),O(e.port),d(2),O(e.proxy_addr||"localhost:"+(e.local_port||e.port)),d(2),O(e.label||"-"),d(2),v("checked",e.skynet),d(2),v("checked",e.dmsg),d(2),v("checked",e.show_on_landing),d(2),v("matTooltip",(e.whitelist||Mt(10,f2e)).join(", ")||"Open to all peers"),d(),v("ngIf",!e.whitelist||0===e.whitelist.length),d(),v("ngIf",e.whitelist&&e.whitelist.length>0),d(7),v("ngIf",i.editingWhitelistPort===e.port)}}function C2e(t,n){if(1&t&&(f(0,"table",23)(1,"tr")(2,"th"),m(3,"Port"),h(),f(4,"th"),m(5,"Target"),h(),f(6,"th"),m(7,"Label"),h(),f(8,"th"),m(9,"Skynet"),h(),f(10,"th"),m(11,"DMSG"),h(),f(12,"th"),m(13,"Landing"),h(),f(14,"th"),m(15,"Whitelist"),h(),B(16,"th"),h(),tt(17,y2e,25,11,"ng-container",24),h()),2&t){const e=C(2);d(17),v("ngForOf",e.ports)}}function w2e(t,n){1&t&&(f(0,"p",42),m(1,"No ports forwarded."),h())}function x2e(t,n){if(1&t){const e=ce();f(0,"div"),tt(1,C2e,18,1,"table",8)(2,w2e,2,0,"p",9),f(3,"div",10)(4,"div",11)(5,"mat-form-field",12)(6,"mat-label"),m(7,"Skynet Port"),h(),f(8,"input",13),Di("ngModelChange",function(o){z(e);const r=C();return Bi(r.newPort,o)||(r.newPort=o),$(o)}),h()(),f(9,"mat-form-field",12)(10,"mat-label"),m(11,"Local Port"),h(),f(12,"input",14),Di("ngModelChange",function(o){z(e);const r=C();return Bi(r.newLocalPort,o)||(r.newLocalPort=o),$(o)}),h()(),f(13,"mat-form-field",15)(14,"mat-label"),m(15,"Target Address"),h(),f(16,"input",16),Di("ngModelChange",function(o){z(e);const r=C();return Bi(r.newProxyAddr,o)||(r.newProxyAddr=o),$(o)}),h()(),f(17,"mat-form-field",15)(18,"mat-label"),m(19,"Label"),h(),f(20,"input",17),Di("ngModelChange",function(o){z(e);const r=C();return Bi(r.newLabel,o)||(r.newLabel=o),$(o)}),h()()(),f(21,"div",11)(22,"mat-form-field",18)(23,"mat-label"),m(24,"Description"),h(),f(25,"input",19),Di("ngModelChange",function(o){z(e);const r=C();return Bi(r.newDesc,o)||(r.newDesc=o),$(o)}),h()(),f(26,"mat-form-field",18)(27,"mat-label"),m(28,"Whitelist (optional)"),h(),f(29,"textarea",20),Di("ngModelChange",function(o){z(e);const r=C();return Bi(r.newWhitelist,o)||(r.newWhitelist=o),$(o)}),h()()(),f(30,"div",11)(31,"mat-checkbox",21),Di("ngModelChange",function(o){z(e);const r=C();return Bi(r.newSkynet,o)||(r.newSkynet=o),$(o)}),m(32,"Skynet"),h(),f(33,"mat-checkbox",21),Di("ngModelChange",function(o){z(e);const r=C();return Bi(r.newDmsg,o)||(r.newDmsg=o),$(o)}),m(34,"DMSG"),h(),f(35,"mat-checkbox",21),Di("ngModelChange",function(o){z(e);const r=C();return Bi(r.newShowLanding,o)||(r.newShowLanding=o),$(o)}),m(36,"Show on landing page"),h(),f(37,"button",22),L("click",function(){return z(e),$(C().addPort())}),f(38,"mat-icon"),m(39,"add"),h(),m(40," Forward "),h()(),f(41,"p",3),m(42," Target Address overrides Local Port \u2014 set it to forward to a host:port elsewhere on the LAN (e.g. "),f(43,"code"),m(44,"192.168.1.20:5432"),h(),m(45,") instead of localhost. Whitelist accepts comma- or whitespace-separated 66-char hex public keys; leave empty to allow all authenticated peers (you can edit the whitelist per-row later, on the table above). "),h()()()}if(2&t){const e=C();d(),v("ngIf",e.ports.length>0),d(),v("ngIf",0===e.ports.length),d(6),ki("ngModel",e.newPort),d(4),ki("ngModel",e.newLocalPort),d(4),ki("ngModel",e.newProxyAddr),d(4),ki("ngModel",e.newLabel),d(5),ki("ngModel",e.newDesc),d(4),ki("ngModel",e.newWhitelist),d(2),ki("ngModel",e.newSkynet),d(2),ki("ngModel",e.newDmsg),d(2),ki("ngModel",e.newShowLanding)}}function S2e(t,n){1&t&&(f(0,"div",6),B(1,"mat-spinner",7),h())}function k2e(t,n){if(1&t){const e=ce();f(0,"tr")(1,"td",25),m(2),h(),f(3,"td",49),m(4),h(),f(5,"td",25),m(6),h(),f(7,"td",25),m(8),h(),f(9,"td",29)(10,"button",50),L("click",function(){const o=z(e).$implicit;return $(C(3).disconnect(o.id))}),f(11,"mat-icon"),m(12,"close"),h()()()()}if(2&t){const e=n.$implicit;d(2),O(e.network||"skynet"),d(2),O(e.remotePK),d(2),O(e.remotePort),d(2),O(e.localPort)}}function D2e(t,n){if(1&t&&(f(0,"table",23)(1,"tr")(2,"th"),m(3,"Network"),h(),f(4,"th"),m(5,"Remote PK"),h(),f(6,"th"),m(7,"Remote Port"),h(),f(8,"th"),m(9,"Local Port"),h(),B(10,"th"),h(),tt(11,k2e,13,4,"tr",24),h()),2&t){const e=C(2);d(11),v("ngForOf",e.forwards)}}function T2e(t,n){1&t&&(f(0,"p",42),m(1,"No active reverse proxies."),h())}function M2e(t,n){if(1&t){const e=ce();f(0,"div"),tt(1,D2e,12,1,"table",8)(2,T2e,2,0,"p",9),f(3,"div",11)(4,"mat-form-field",12)(5,"mat-label"),m(6,"Network"),h(),f(7,"mat-select",43),Di("ngModelChange",function(o){z(e);const r=C();return Bi(r.connectNetwork,o)||(r.connectNetwork=o),$(o)}),f(8,"mat-option",44),m(9,"skynet"),h(),f(10,"mat-option",45),m(11,"dmsg"),h()()(),f(12,"mat-form-field",46)(13,"mat-label"),m(14,"Remote Public Key"),h(),f(15,"input",47),Di("ngModelChange",function(o){z(e);const r=C();return Bi(r.connectPK,o)||(r.connectPK=o),$(o)}),h()()(),f(16,"div",11)(17,"mat-form-field",12)(18,"mat-label"),m(19,"Remote Port"),h(),f(20,"input",13),Di("ngModelChange",function(o){z(e);const r=C();return Bi(r.connectRemotePort,o)||(r.connectRemotePort=o),$(o)}),h()(),f(21,"mat-form-field",12)(22,"mat-label"),m(23,"Local Port"),h(),f(24,"input",48),Di("ngModelChange",function(o){z(e);const r=C();return Bi(r.connectLocalPort,o)||(r.connectLocalPort=o),$(o)}),h()(),f(25,"button",22),L("click",function(){return z(e),$(C().connect())}),f(26,"mat-icon"),m(27,"link"),h(),m(28," Connect "),h()()()}if(2&t){const e=C();d(),v("ngIf",e.forwards.length>0),d(),v("ngIf",0===e.forwards.length),d(5),ki("ngModel",e.connectNetwork),d(8),ki("ngModel",e.connectPK),d(5),ki("ngModel",e.connectRemotePort),d(4),ki("ngModel",e.connectLocalPort)}}let E2e=(()=>{class t extends Wn{constructor(e,i){super(),this.nodeService=e,this.snackbarService=i,this.ports=[],this.portsLoading=!0,this.newPort="",this.newLocalPort="",this.newProxyAddr="",this.newLabel="",this.newDesc="",this.newWhitelist="",this.newSkynet=!0,this.newDmsg=!0,this.newShowLanding=!0,this.editingWhitelistPort=null,this.whitelistInput="",this.forwards=[],this.forwardsLoading=!0,this.connectNetwork="skynet",this.connectPK="",this.connectRemotePort="",this.connectLocalPort="",this.nodeKey=""}ngOnInit(){return this.nodeKey=ke.getCurrentNodeKey(),this.loadPorts(),this.loadForwards(),super.ngOnInit()}ngOnDestroy(){this.portsSub&&this.portsSub.unsubscribe(),this.fwdsSub&&this.fwdsSub.unsubscribe()}loadPorts(){this.portsLoading=!0,this.portsSub=this.nodeService.getForwardedPorts(this.nodeKey).subscribe(e=>{this.ports=(e||[]).sort((i,o)=>i.port-o.port),this.portsLoading=!1},()=>{this.ports=[],this.portsLoading=!1})}addPort(){const e=parseInt(this.newPort,10);if(isNaN(e)||e<1||e>65535)return void this.snackbarService.showError("Enter a valid port (1-65535)");const i=this.newLocalPort?parseInt(this.newLocalPort,10):0,o=(this.newProxyAddr||"").trim();let r=[];const s=(this.newWhitelist||"").trim();if(""!==s){r=s.split(/[\s,]+/).map(l=>l.trim()).filter(l=>l.length>0);for(const l of r)if(66!==l.length||!/^[0-9a-fA-F]+$/.test(l))return void this.snackbarService.showError(`Invalid public key in whitelist: ${l}`)}this.nodeService.registerForwardedPort(this.nodeKey,{port:e,local_port:i||void 0,proxy_addr:o||void 0,label:this.newLabel,description:this.newDesc,show_on_landing:this.newShowLanding,skynet:this.newSkynet,dmsg:this.newDmsg,whitelist:r.length>0?r:void 0}).subscribe(()=>{this.newPort="",this.newLocalPort="",this.newProxyAddr="",this.newLabel="",this.newDesc="",this.newWhitelist="",this.snackbarService.showDone(`Port ${e} forwarded`),this.loadPorts()},l=>{this.snackbarService.showError(l?.error?.error||"Failed")})}removePort(e){this.nodeService.deregisterSkynetPort(this.nodeKey,e).subscribe(()=>{this.snackbarService.showDone(`Port ${e} removed`),this.loadPorts()},()=>{this.snackbarService.showError("Failed to remove port")})}toggleLanding(e){e.show_on_landing=!e.show_on_landing,this.nodeService.updateForwardedPort(this.nodeKey,e).subscribe(()=>{},()=>{this.snackbarService.showError("Failed to update"),this.loadPorts()})}toggleSkynet(e){e.skynet=!e.skynet,this.nodeService.updateForwardedPort(this.nodeKey,e).subscribe(()=>{},()=>{this.snackbarService.showError("Failed to update"),this.loadPorts()})}toggleDmsg(e){e.dmsg=!e.dmsg,this.nodeService.updateForwardedPort(this.nodeKey,e).subscribe(()=>{},()=>{this.snackbarService.showError("Failed to update"),this.loadPorts()})}startEditWhitelist(e){this.editingWhitelistPort=e.port,this.whitelistInput=(e.whitelist||[]).join(", ")}cancelEditWhitelist(){this.editingWhitelistPort=null,this.whitelistInput=""}saveWhitelist(e){const i=(this.whitelistInput||"").trim();let o=[];if(""!==i){o=i.split(/[\s,]+/).map(s=>s.trim()).filter(s=>s.length>0);for(const s of o)if(66!==s.length||!/^[0-9a-fA-F]+$/.test(s))return void this.snackbarService.showError(`Invalid public key: ${s}`)}const r={...e,whitelist:o};this.nodeService.updateForwardedPort(this.nodeKey,r).subscribe(()=>{this.snackbarService.showDone(0===o.length?`Whitelist cleared on port ${e.port}`:`Whitelist set on port ${e.port} (${o.length} PK${1===o.length?"":"s"})`),this.cancelEditWhitelist(),this.loadPorts()},s=>{this.snackbarService.showError(s?.error?.error||"Failed to update whitelist")})}clearWhitelist(e){const i={...e,whitelist:[]};this.nodeService.updateForwardedPort(this.nodeKey,i).subscribe(()=>{this.snackbarService.showDone(`Whitelist cleared on port ${e.port}`),this.cancelEditWhitelist(),this.loadPorts()},o=>{this.snackbarService.showError(o?.error?.error||"Failed to clear whitelist")})}loadForwards(){this.forwardsLoading=!0,this.fwdsSub=this.nodeService.getSkynetForwards(this.nodeKey).subscribe(e=>{if(this.forwards=[],e)for(const[i,o]of Object.entries(e))this.forwards.push({id:i,network:o.network||"skynet",remotePK:o.remote_pk||"",remotePort:o.remote_port||0,localPort:o.local_port||0});this.forwardsLoading=!1},()=>{this.forwards=[],this.forwardsLoading=!1})}connect(){const e=parseInt(this.connectRemotePort,10),i=parseInt(this.connectLocalPort,10);this.connectPK&&66===this.connectPK.length?isNaN(e)||e<1?this.snackbarService.showError("Enter a valid remote port"):isNaN(i)||i<1?this.snackbarService.showError("Enter a valid local port"):"skynet"===this.connectNetwork||"dmsg"===this.connectNetwork?this.nodeService.skynetConnect(this.nodeKey,this.connectNetwork,this.connectPK,e,i).subscribe(()=>{this.connectPK="",this.connectRemotePort="",this.connectLocalPort="",this.snackbarService.showDone(`Connected via ${this.connectNetwork}: remote ${e} \u2192 localhost:${i}`),this.loadForwards()},o=>{this.snackbarService.showError(o?.error?.error||"Failed")}):this.snackbarService.showError("Network must be skynet or dmsg"):this.snackbarService.showError("Enter a valid public key")}disconnect(e){this.nodeService.skynetDisconnect(this.nodeKey,e).subscribe(()=>{this.snackbarService.showDone("Disconnected"),this.loadForwards()},()=>{this.snackbarService.showError("Failed")})}static{this.\u0275fac=function(i){return new(i||t)(P(Sr),P(bt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-skynet"]],standalone:!1,features:[be],decls:21,vars:4,consts:[[1,"container-elevated-translucid","mt-4.5","skynet-container"],[1,"section"],[1,"section-title"],[1,"section-desc"],["class","text-center py-2",4,"ngIf"],[4,"ngIf"],[1,"text-center","py-2"],["diameter","24",1,"mx-auto"],["class","data-table",4,"ngIf"],["class","empty-msg",4,"ngIf"],[1,"add-form"],[1,"add-row"],["appearance","outline",1,"field-sm"],["matInput","","placeholder","80","type","number",3,"ngModelChange","ngModel"],["matInput","","placeholder","3000","type","number",3,"ngModelChange","ngModel"],["appearance","outline",1,"field-md"],["matInput","","placeholder","192.168.1.20:5432",3,"ngModelChange","ngModel"],["matInput","","placeholder","My Service",3,"ngModelChange","ngModel"],["appearance","outline",1,"field-lg"],["matInput","","placeholder","Optional description",3,"ngModelChange","ngModel"],["matInput","","rows","2","placeholder","02abc..., 03def... (empty = open to all)",3,"ngModelChange","ngModel"],["color","primary",3,"ngModelChange","ngModel"],["mat-raised-button","","color","primary",3,"click"],[1,"data-table"],[4,"ngFor","ngForOf"],[1,"mono"],["color","primary",3,"change","checked"],["mat-button","",3,"click","matTooltip"],[1,"edit-icon"],[1,"action-col"],["mat-icon-button","","color","warn","matTooltip","Remove",3,"click"],["class","whitelist-edit-row",4,"ngIf"],[1,"whitelist-edit-row"],["colspan","8"],[1,"whitelist-edit"],[1,"whitelist-help"],["appearance","outline",1,"whitelist-input"],["matInput","","rows","3","placeholder","02abc..., 03def...",3,"ngModelChange","ngModel"],[1,"whitelist-actions"],["mat-stroked-button","",3,"click",4,"ngIf"],["mat-button","",3,"click"],["mat-stroked-button","",3,"click"],[1,"empty-msg"],["panelClass","skynet-select-panel",3,"ngModelChange","ngModel"],["value","skynet"],["value","dmsg"],["appearance","outline",1,"field-pk"],["matInput","","placeholder","02abc...",3,"ngModelChange","ngModel"],["matInput","","placeholder","9090","type","number",3,"ngModelChange","ngModel"],[1,"mono","small"],["mat-icon-button","","color","warn","matTooltip","Disconnect",3,"click"]],template:function(i,o){1&i&&(f(0,"div",0)(1,"div",1)(2,"h4",2),m(3,"Forwarded Ports"),h(),f(4,"p",3),m(5," Expose local TCP ports over skynet and/or DMSG. "),h(),tt(6,p2e,2,0,"div",4)(7,x2e,46,11,"div",5),h(),f(8,"div",1)(9,"h4",2),m(10,"Reverse Proxy"),h(),f(11,"p",3),m(12," Map a remote visor's port to a local port. The Network selector picks the transport: "),f(13,"code"),m(14,"skynet"),h(),m(15," goes through the routing layer; "),f(16,"code"),m(17,"dmsg"),h(),m(18," opens a direct DMSG stream. A single forward uses one network at a time. "),h(),tt(19,S2e,2,0,"div",4)(20,M2e,29,6,"div",5),h()()),2&i&&(d(6),v("ngIf",o.portsLoading),d(),v("ngIf",!o.portsLoading),d(12),v("ngIf",o.forwardsLoading),d(),v("ngIf",!o.forwardsLoading))},dependencies:[LN,$h,rn,Wf,sn,wn,Jb,ei,Jn,Ms,lt,pn,Zb,oc,Is,$o,kr],styles:[".skynet-container[_ngcontent-%COMP%]{padding:20px;max-width:900px}.section[_ngcontent-%COMP%]{margin-bottom:28px}.section-title[_ngcontent-%COMP%]{font-size:16px;font-weight:500;margin-bottom:4px}.section-desc[_ngcontent-%COMP%]{color:#fff9;font-size:13px;margin-bottom:16px}.section-desc[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{background:#ffffff1a;padding:1px 4px;border-radius:3px;font-size:12px}.data-table[_ngcontent-%COMP%]{width:100%;border-collapse:collapse;margin-bottom:16px}.data-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%], .data-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:8px 12px;text-align:left;border-bottom:1px solid rgba(255,255,255,.08)}.data-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{color:#ffffff80;font-weight:500;font-size:13px}.data-table[_ngcontent-%COMP%] .mono[_ngcontent-%COMP%]{font-family:monospace}.data-table[_ngcontent-%COMP%] .small[_ngcontent-%COMP%]{font-size:12px;color:#ffffffb3;word-break:break-all}.data-table[_ngcontent-%COMP%] .action-col[_ngcontent-%COMP%]{width:48px;text-align:right}.empty-msg[_ngcontent-%COMP%]{color:#ffffff61;font-style:italic;margin-bottom:16px}.add-form[_ngcontent-%COMP%]{margin-top:8px}.add-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}.field-sm[_ngcontent-%COMP%]{width:120px}.field-md[_ngcontent-%COMP%]{width:200px}.field-lg[_ngcontent-%COMP%]{width:300px}.field-pk[_ngcontent-%COMP%]{width:100%;max-width:580px}.edit-icon[_ngcontent-%COMP%]{font-size:14px;width:14px;height:14px;vertical-align:middle;margin-left:4px;opacity:.6}.whitelist-edit-row[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{background:#ffffff08;padding:12px 16px!important}.whitelist-edit[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:8px}.whitelist-help[_ngcontent-%COMP%]{margin:0;color:#fff9;font-size:12px}.whitelist-input[_ngcontent-%COMP%]{width:100%;max-width:720px}.whitelist-actions[_ngcontent-%COMP%]{display:flex;gap:8px;align-items:center}[_nghost-%COMP%] .mat-mdc-text-field-wrapper{background:#ffffff14!important}[_nghost-%COMP%] .mdc-text-field--outlined .mdc-notched-outline__leading, [_nghost-%COMP%] .mdc-text-field--outlined .mdc-notched-outline__notch, [_nghost-%COMP%] .mdc-text-field--outlined .mdc-notched-outline__trailing{border-color:#ffffff4d!important}[_nghost-%COMP%] .mat-mdc-input-element, [_nghost-%COMP%] .mdc-text-field__input{color:#fff!important;caret-color:#fff!important}[_nghost-%COMP%] .mdc-floating-label{color:#fff9!important}[_nghost-%COMP%] .mdc-label, [_nghost-%COMP%] .mdc-form-field>label, [_nghost-%COMP%] .mat-mdc-checkbox label{color:#ffffffde!important}"]})}}return t})();const I2e=()=>["settings.title","labels.title"];let P2e=(()=>{class t{constructor(e){this.router=e,this.tabsData=[],this.returnButtonText="settings.title",this.tabsData=[{icon:"view_headline",label:"labels.list-title",linkParts:[]}]}performAction(e){null===e&&this.router.navigate(["settings"])}static{this.\u0275fac=function(i){return new(i||t)(P(vt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-all-labels"]],standalone:!1,decls:5,vars:6,consts:[[1,"row"],[1,"col-12"],[3,"optionSelected","titleParts","tabsData","showUpdateButton","returnText"],[1,"content","col-12"],[3,"showShortList"]],template:function(i,o){1&i&&(f(0,"div",0)(1,"div",1)(2,"app-top-bar",2),L("optionSelected",function(s){return o.performAction(s)}),h()(),f(3,"div",3),B(4,"app-label-list",4),h()()),2&i&&(d(2),v("titleParts",Mt(5,I2e))("tabsData",o.tabsData)("showUpdateButton",!1)("returnText",o.returnButtonText),d(2),v("showShortList",!1))},dependencies:[As,m5],encapsulation:2})}}return t})();const O2e=["firstInput"];function A2e(t,n){1&t&&(f(0,"span"),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"vpn.server-list.add-server-dialog.pk-length-error")))}function R2e(t,n){1&t&&(f(0,"span"),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"vpn.server-list.add-server-dialog.pk-chars-error")))}let N2e=(()=>{class t{static openDialog(e,i){const o=new Lt;return o.data=i,o.autoFocus=!1,o.width=ze.mediumModalWidth,e.open(t,o)}constructor(e,i,o,r,s,a,l,c){this.dialogRef=e,this.data=i,this.formBuilder=o,this.dialog=r,this.router=s,this.vpnClientService=a,this.vpnSavedDataService=l,this.snackbarService=c}ngOnInit(){this.form=this.formBuilder.group({pk:["",Ve.compose([Ve.required,Ve.minLength(66),Ve.maxLength(66),Ve.pattern("^[0-9a-fA-F]+$")])],password:[""],name:[""],note:[""]}),setTimeout(()=>this.firstInput.nativeElement.focus())}process(){if(!this.form.valid)return;const e={pk:this.form.get("pk").value,name:this.form.get("name").value,note:this.form.get("note").value};si.processServerChange(this.router,this.vpnClientService,this.vpnSavedDataService,this.snackbarService,this.dialog,this.dialogRef,this.data,null,null,e,this.form.get("password").value)}static{this.\u0275fac=function(i){return new(i||t)(P(It),P(hn),P(pi),P(kt),P(vt),P(sc),P(rc),P(bt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-add-vpn-server"]],viewQuery:function(i,o){if(1&i&&rt(O2e,5),2&i){let r;ue(r=he())&&(o.firstInput=r.first)}},standalone:!1,decls:34,vars:22,consts:[["firstInput",""],[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","pk","maxlength","66","matInput",""],["formControlName","password","type","password","matInput",""],["formControlName","name","maxlength","100","matInput",""],["formControlName","note","maxlength","100","matInput",""],["color","primary",1,"float-right",3,"action","disabled"]],template:function(i,o){1&i&&(f(0,"app-dialog",1),b(1,"translate"),f(2,"form",2)(3,"mat-form-field")(4,"div",3)(5,"label",4),m(6),b(7,"translate"),h(),B(8,"input",5,0),h(),f(10,"mat-error"),S(11,A2e,3,3,"span")(12,R2e,3,3,"span"),h()(),f(13,"mat-form-field")(14,"div",3)(15,"label",4),m(16),b(17,"translate"),h(),B(18,"input",6),h()(),f(19,"mat-form-field")(20,"div",3)(21,"label",4),m(22),b(23,"translate"),h(),B(24,"input",7),h()(),f(25,"mat-form-field")(26,"div",3)(27,"label",4),m(28),b(29,"translate"),h(),B(30,"input",8),h()()(),f(31,"app-button",9),L("action",function(){return o.process()}),m(32),b(33,"translate"),h()()),2&i&&(v("headline",y(1,10,"vpn.server-list.add-server-dialog.title"))("dialog",o.dialogRef),d(2),v("formGroup",o.form),d(4),O(y(7,12,"vpn.server-list.add-server-dialog.pk-label")),d(5),k(o.form.get("pk").hasError("pattern")?12:11),d(5),O(y(17,14,"vpn.server-list.add-server-dialog.password-label")),d(6),O(y(23,16,"vpn.server-list.add-server-dialog.name-label")),d(6),O(y(29,18,"vpn.server-list.add-server-dialog.note-label")),d(3),v("disabled",!o.form.valid),d(),I(" ",y(33,20,"vpn.server-list.add-server-dialog.use-server-button")," "))},dependencies:[Cn,rn,sn,yn,ji,Xt,fn,wn,Es,ei,On,Kt,Se],encapsulation:2})}}return t})();class F2e{constructor(){this.countryCode="ZZ"}}let L2e=(()=>{class t{constructor(e){this.http=e,this.discoveryServiceUrl="https://sd.skycoin.com/api/services?type=vpn"}getServers(){return this.servers?ae(this.servers):this.http.get(this.discoveryServiceUrl).pipe(qf(e=>e.pipe(ii(4e3))),ye(e=>{const i=[];return e&&e.forEach(o=>{const r=new F2e,s=o.address.split(":");2===s.length&&(r.pk=s[0],r.location="",o.geo&&(o.geo.country&&(r.countryCode=o.geo.country),o.geo.region&&(r.location=o.geo.region)),r.name=s[0],r.note="",i.push(r))}),this.servers=i,i}))}static{this.\u0275fac=function(i){return new(i||t)(le(ga))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const hj=()=>["vpn.title"],B2e=t=>({deactivated:t}),Hv=(t,n)=>["/vpn",t,"servers",n,1],V2e=t=>({"mb-3":t}),H2e=(t,n)=>({"public-pk-column":t,"history-pk-column":n}),j2e=t=>({"selectable click-effect":t}),U2e=(t,n)=>({custom:t,original:n}),z2e=(t,n)=>["/vpn",t,"servers",n];function $2e(t,n){1&t&&sr(0)}function W2e(t,n){if(1&t&&(f(0,"div",1)(1,"div",3),B(2,"app-top-bar",4),f(3,"div",5)(4,"div",6)(5,"div",7),tt(6,$2e,1,0,"ng-container",8),h()()()(),B(7,"app-loading-indicator",9),h()),2&t){const e=C(),i=Vn(2);d(2),v("titleParts",Mt(6,hj))("tabsData",e.tabsData)("selectedTabIndex",1)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk),d(4),v("ngTemplateOutlet",i)}}function G2e(t,n){1&t&&(f(0,"div",14)(1,"span"),m(2),b(3,"translate"),h()()),2&t&&(d(2),O(y(3,1,"vpn.server-list.tabs.public")))}function q2e(t,n){if(1&t&&(f(0,"a",15)(1,"span"),m(2),b(3,"translate"),h()()),2&t){const e=C(2);v("routerLink",ft(4,Hv,e.currentLocalPk,e.lists.Public)),d(2),O(y(3,2,"vpn.server-list.tabs.public"))}}function K2e(t,n){1&t&&(f(0,"div",14)(1,"span"),m(2),b(3,"translate"),h()()),2&t&&(d(2),O(y(3,1,"vpn.server-list.tabs.history")))}function Y2e(t,n){if(1&t&&(f(0,"a",15)(1,"span"),m(2),b(3,"translate"),h()()),2&t){const e=C(2);v("routerLink",ft(4,Hv,e.currentLocalPk,e.lists.History)),d(2),O(y(3,2,"vpn.server-list.tabs.history"))}}function X2e(t,n){1&t&&(f(0,"div",14)(1,"span"),m(2),b(3,"translate"),h()()),2&t&&(d(2),O(y(3,1,"vpn.server-list.tabs.favorites")))}function Z2e(t,n){if(1&t&&(f(0,"a",15)(1,"span"),m(2),b(3,"translate"),h()()),2&t){const e=C(2);v("routerLink",ft(4,Hv,e.currentLocalPk,e.lists.Favorites)),d(2),O(y(3,2,"vpn.server-list.tabs.favorites"))}}function Q2e(t,n){1&t&&(f(0,"div",14)(1,"span"),m(2),b(3,"translate"),h()()),2&t&&(d(2),O(y(3,1,"vpn.server-list.tabs.blocked")))}function J2e(t,n){if(1&t&&(f(0,"a",15)(1,"span"),m(2),b(3,"translate"),h()()),2&t){const e=C(2);v("routerLink",ft(4,Hv,e.currentLocalPk,e.lists.Blocked)),d(2),O(y(3,2,"vpn.server-list.tabs.blocked"))}}function eIe(t,n){1&t&&B(0,"br")}function tIe(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,C().$implicit.translatableValue)," ")}function nIe(t,n){1&t&&m(0),2&t&&I(" ",C().$implicit.value," ")}function iIe(t,n){if(1&t&&(f(0,"div",23)(1,"span"),m(2),b(3,"translate"),h(),S(4,tIe,2,3),S(5,nIe,1,1),h()),2&t){const e=n.$implicit;d(2),I("",y(3,3,e.filterName),": "),d(2),k(e.translatableValue?4:-1),d(),k(e.value?5:-1)}}function oIe(t,n){if(1&t){const e=ce();f(0,"div",21),L("click",function(){return z(e),$(C(3).dataFilterer.removeFilters())}),f(1,"div",22)(2,"mat-icon",18),m(3,"search"),h(),m(4),b(5,"translate"),h(),we(6,iIe,6,5,"div",23,Re),h()}if(2&t){const e=C(3);d(2),v("inline",!0),d(2),I(" ",y(5,2,"vpn.server-list.current-filters")),d(2),xe(e.dataFilterer.currentFiltersTexts)}}function rIe(t,n){if(1&t&&(S(0,eIe,1,0,"br"),S(1,oIe,8,4,"div",20)),2&t){const e=C(2);k(e.dataFilterer.currentFiltersTexts&&e.dataFilterer.currentFiltersTexts.length>0?0:-1),d(),k(e.dataFilterer.currentFiltersTexts&&e.dataFilterer.currentFiltersTexts.length>0?1:-1)}}function sIe(t,n){if(1&t){const e=ce();f(0,"div",10)(1,"div",11)(2,"div",12)(3,"div",13),S(4,G2e,4,3,"div",14),S(5,q2e,4,7,"a",15),S(6,K2e,4,3,"div",14),S(7,Y2e,4,7,"a",15),S(8,X2e,4,3,"div",14),S(9,Z2e,4,7,"a",15),S(10,Q2e,4,3,"div",14),S(11,J2e,4,7,"a",15),h()()()(),f(12,"div",16)(13,"div",11)(14,"div",12)(15,"div",13)(16,"div",17),b(17,"translate"),L("click",function(){z(e);const o=C();return $(o.dataFilterer?o.dataFilterer.changeFilters():null)}),f(18,"span")(19,"mat-icon",18),m(20,"search"),h()()()()()()(),f(21,"div",19)(22,"div",11)(23,"div",12)(24,"div",13)(25,"div",17),b(26,"translate"),L("click",function(){return z(e),$(C().enterManually())}),f(27,"span")(28,"mat-icon",18),m(29,"add"),h()()()()()()(),S(30,rIe,2,2)}if(2&t){const e=C();d(4),k(e.currentList===e.lists.Public?4:-1),d(),k(e.currentList!==e.lists.Public?5:-1),d(),k(e.currentList===e.lists.History?6:-1),d(),k(e.currentList!==e.lists.History?7:-1),d(),k(e.currentList===e.lists.Favorites?8:-1),d(),k(e.currentList!==e.lists.Favorites?9:-1),d(),k(e.currentList===e.lists.Blocked?10:-1),d(),k(e.currentList!==e.lists.Blocked?11:-1),d(),v("ngClass",oe(18,B2e,e.loading)),d(4),v("matTooltip",y(17,14,"filters.filter-info")),d(3),v("inline",!0),d(6),v("matTooltip",y(26,16,"vpn.server-list.add-manually-info")),d(3),v("inline",!0),d(2),k(e.dataFilterer?30:-1)}}function aIe(t,n){1&t&&sr(0)}function lIe(t,n){if(1&t&&(f(0,"mat-icon",18),m(1),h()),2&t){const e=C(5);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function cIe(t,n){if(1&t){const e=ce();f(0,"th",41),b(1,"translate"),L("click",function(){z(e);const o=C(4);return $(o.dataSorter.changeSortingOrder(o.dateSortData))}),f(2,"div",34)(3,"div",35),m(4),b(5,"translate"),h(),S(6,lIe,2,2,"mat-icon",18),h()()}if(2&t){const e=C(4);v("matTooltip",y(1,3,"vpn.server-list.date-info")),d(4),I(" ",y(5,5,"vpn.server-list.date-small-table-label")," "),d(2),k(e.dataSorter.currentSortingColumn===e.dateSortData?6:-1)}}function dIe(t,n){if(1&t&&(f(0,"mat-icon",18),m(1),h()),2&t){const e=C(4);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function uIe(t,n){if(1&t&&(f(0,"mat-icon",18),m(1),h()),2&t){const e=C(4);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function hIe(t,n){if(1&t&&(f(0,"mat-icon",18),m(1),h()),2&t){const e=C(4);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function fIe(t,n){if(1&t&&(f(0,"mat-icon",18),m(1),h()),2&t){const e=C(4);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function pIe(t,n){if(1&t&&(f(0,"mat-icon",18),m(1),h()),2&t){const e=C(4);v("inline",!0),d(),O(e.dataSorter.sortingArrow)}}function mIe(t,n){if(1&t&&(f(0,"td",43),m(1),b(2,"date"),h()),2&t){const e=C().$implicit;d(),I(" ",Ee(2,1,e.lastUsed,"yyyy/MM/dd, H:mm a")," ")}}function gIe(t,n){1&t&&m(0),2&t&&I(" ",C().$implicit.location," ")}function _Ie(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"vpn.server-list.unknown")," ")}function bIe(t,n){if(1&t&&(f(0,"mat-icon",55),b(1,"translate"),L("click",function(i){return i.stopPropagation()}),m(2,"info_outline"),h()),2&t){const e=C().$implicit,i=C(4);v("inline",!0)("matTooltip",Ee(1,2,i.getNoteVar(e),ft(5,U2e,e.personalNote,e.note)))}}function vIe(t,n){if(1&t){const e=ce();f(0,"tr",42),L("click",function(){const o=z(e).$implicit,r=C(4);return $(r.currentList!==r.lists.Blocked?r.selectServer(o):null)}),S(1,mIe,3,4,"td",43),f(2,"td",44)(3,"div",45),B(4,"div",46),h()(),f(5,"td",47),B(6,"app-vpn-server-name",48),h(),f(7,"td",49),S(8,gIe,1,1),S(9,_Ie,2,3),h(),f(10,"td",50)(11,"app-copy-to-clipboard-text",51),L("click",function(o){return o.stopPropagation()}),h()(),f(12,"td",52),S(13,bIe,3,8,"mat-icon",53),h(),f(14,"td",39)(15,"button",54),b(16,"translate"),L("click",function(o){const r=z(e).$implicit,s=C(4);return o.stopPropagation(),$(s.openOptions(r))}),f(17,"mat-icon",18),m(18,"settings"),h()()()()}if(2&t){const e=n.$implicit,i=C(4);v("ngClass",oe(23,j2e,i.currentList!==i.lists.Blocked)),d(),k(i.currentList===i.lists.History?1:-1),d(3),Ji("background-image: url('assets/img/big-flags/"+e.countryCode.toLocaleLowerCase()+".png');"),v("matTooltip",i.getCountryName(e.countryCode)),d(2),v("isCurrentServer",i.currentServer&&e.pk===i.currentServer.pk)("isFavorite",e.flag===i.serverFlags.Favorite&&i.currentList!==i.lists.Favorites)("isBlocked",e.flag===i.serverFlags.Blocked&&i.currentList!==i.lists.Blocked)("isInHistory",e.inHistory&&i.currentList!==i.lists.History)("hasPassword",e.usedWithPassword)("name",e.name)("pk",e.pk)("customName",e.customName)("defaultName","vpn.server-list.none"),d(2),k(e.location?8:-1),d(),k(e.location?-1:9),d(2),v("shortSimple",!0)("text",e.pk),d(2),k(e.note||e.personalNote?13:-1),d(2),v("matTooltip",y(16,21,"vpn.server-options.tooltip")),d(2),v("inline",!0)}}function yIe(t,n){if(1&t){const e=ce();f(0,"table",30)(1,"tr"),S(2,cIe,7,7,"th",31),f(3,"th",32),b(4,"translate"),L("click",function(){z(e);const o=C(3);return $(o.dataSorter.changeSortingOrder(o.countrySortData))}),f(5,"mat-icon",18),m(6,"flag"),h(),S(7,dIe,2,2,"mat-icon",18),h(),f(8,"th",33),L("click",function(){z(e);const o=C(3);return $(o.dataSorter.changeSortingOrder(o.nameSortData))}),f(9,"div",34)(10,"div",35),m(11),b(12,"translate"),h(),S(13,uIe,2,2,"mat-icon",18),h()(),f(14,"th",36),L("click",function(){z(e);const o=C(3);return $(o.dataSorter.changeSortingOrder(o.locationSortData))}),f(15,"div",34)(16,"div",35),m(17),b(18,"translate"),h(),S(19,hIe,2,2,"mat-icon",18),h()(),f(20,"th",37),b(21,"translate"),L("click",function(){z(e);const o=C(3);return $(o.dataSorter.changeSortingOrder(o.pkSortData))}),f(22,"div",34)(23,"div",35),m(24),b(25,"translate"),h(),S(26,fIe,2,2,"mat-icon",18),h()(),f(27,"th",38),b(28,"translate"),L("click",function(){z(e);const o=C(3);return $(o.dataSorter.changeSortingOrder(o.noteSortData))}),f(29,"div",34)(30,"mat-icon",18),m(31,"info_outline"),h(),S(32,pIe,2,2,"mat-icon",18),h()(),B(33,"th",39),h(),we(34,vIe,19,25,"tr",40,Re),h()}if(2&t){const e=C(3);d(2),k(e.currentList===e.lists.History?2:-1),d(),v("matTooltip",y(4,15,"vpn.server-list.country-info")),d(2),v("inline",!0),d(2),k(e.dataSorter.currentSortingColumn===e.countrySortData?7:-1),d(4),I(" ",y(12,17,"vpn.server-list.name-small-table-label")," "),d(2),k(e.dataSorter.currentSortingColumn===e.nameSortData?13:-1),d(4),I(" ",y(18,19,"vpn.server-list.location-small-table-label")," "),d(2),k(e.dataSorter.currentSortingColumn===e.locationSortData?19:-1),d(),v("ngClass",ft(27,H2e,e.currentList===e.lists.Public,e.currentList===e.lists.History))("matTooltip",y(21,21,"vpn.server-list.public-key-info")),d(4),I(" ",y(25,23,"vpn.server-list.public-key-small-table-label")," "),d(2),k(e.dataSorter.currentSortingColumn===e.pkSortData?26:-1),d(),v("matTooltip",y(28,25,"vpn.server-list.note-info")),d(3),v("inline",!0),d(2),k(e.dataSorter.currentSortingColumn===e.noteSortData?32:-1),d(2),xe(e.dataSource)}}function CIe(t,n){if(1&t&&(f(0,"div",27)(1,"div",29),S(2,yIe,36,30,"table",30),h()()),2&t){const e=C(2);d(2),k(e.dataSource.length>0?2:-1)}}function wIe(t,n){if(1&t&&B(0,"app-paginator",28),2&t){const e=C(2);v("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",ft(4,z2e,e.currentLocalPk,e.currentList))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function xIe(t,n){1&t&&(f(0,"span",58),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"vpn.server-list.empty-discovery")))}function SIe(t,n){1&t&&(f(0,"span",58),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"vpn.server-list.empty-history")))}function kIe(t,n){1&t&&(f(0,"span",58),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"vpn.server-list.empty-favorites")))}function DIe(t,n){1&t&&(f(0,"span",58),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"vpn.server-list.empty-blocked")))}function TIe(t,n){1&t&&(f(0,"span",58),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"vpn.server-list.empty-with-filter")))}function MIe(t,n){if(1&t&&(f(0,"div",27)(1,"div",56)(2,"mat-icon",57),m(3,"warning"),h(),S(4,xIe,3,3,"span",58),S(5,SIe,3,3,"span",58),S(6,kIe,3,3,"span",58),S(7,DIe,3,3,"span",58),S(8,TIe,3,3,"span",58),h()()),2&t){const e=C(2);d(2),v("inline",!0),d(2),k(0===e.allServers.length&&e.currentList===e.lists.Public?4:-1),d(),k(0===e.allServers.length&&e.currentList===e.lists.History?5:-1),d(),k(0===e.allServers.length&&e.currentList===e.lists.Favorites?6:-1),d(),k(0===e.allServers.length&&e.currentList===e.lists.Blocked?7:-1),d(),k(0!==e.allServers.length?8:-1)}}function EIe(t,n){if(1&t&&(f(0,"div",2)(1,"div",24),B(2,"app-top-bar",4),h(),f(3,"div",25)(4,"div",6)(5,"div",26),tt(6,aIe,1,0,"ng-container",8),h(),S(7,CIe,3,1,"div",27),S(8,wIe,1,7,"app-paginator",28),S(9,MIe,9,6,"div",27),h()()()),2&t){const e=C(),i=Vn(2);d(2),v("titleParts",Mt(10,hj))("tabsData",e.tabsData)("selectedTabIndex",1)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk),d(3),v("ngClass",oe(11,V2e,!e.dataFilterer.currentFiltersTexts||e.dataFilterer.currentFiltersTexts.length<1)),d(),v("ngTemplateOutlet",i),d(),k(0!==e.dataSource.length?7:-1),d(),k(e.numberOfPages>1?8:-1),d(),k(0===e.dataSource.length?9:-1)}}var li=function(t){return t.Public="public",t.History="history",t.Favorites="favorites",t.Blocked="blocked",t}(li||{});let fj=(()=>{class t extends Wn{constructor(e,i,o,r,s,a,l,c,u){super(),this.dialog=e,this.router=i,this.translateService=o,this.route=r,this.vpnClientDiscoveryService=s,this.vpnClientService=a,this.vpnSavedDataService=l,this.snackbarService=c,this.storageService=u,this.persistentServerDataResponseKey="serv-dat-response",this.maxFullListElements=50,this.dateSortData=new Pt(["lastUsed"],"vpn.server-list.date-small-table-label",ct.NumberReversed),this.countrySortData=new Pt(["countryName"],"vpn.server-list.country-small-table-label",ct.Text),this.nameSortData=new Pt(["name"],"vpn.server-list.name-small-table-label",ct.Text),this.locationSortData=new Pt(["location"],"vpn.server-list.location-small-table-label",ct.Text),this.pkSortData=new Pt(["pk"],"vpn.server-list.public-key-small-table-label",ct.Text),this.noteSortData=new Pt(["note"],"vpn.server-list.note-small-table-label",ct.Text),this.loading=!0,this.loadingBackendData=!0,this.tabsData=si.vpnTabsData,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.currentList=li.Public,this.vpnRunning=!1,this.serverFlags=an,this.lists=li,this.initialLoadStarted=!1,this.navigationsSubscription=r.paramMap.subscribe(p=>{if(p.has("type")?p.get("type")===li.Favorites?(this.currentList=li.Favorites,this.listId="vfs"):p.get("type")===li.Blocked?(this.currentList=li.Blocked,this.listId="vbs"):p.get("type")===li.History?(this.currentList=li.History,this.listId="vhs"):(this.currentList=li.Public,this.listId="vps"):(this.currentList=li.Public,this.listId="vps"),si.setDefaultTabForServerList(this.currentList),p.has("key")&&(this.currentLocalPk=p.get("key"),si.changeCurrentPk(this.currentLocalPk),this.tabsData=si.vpnTabsData),p.has("page")){let g=Number.parseInt(p.get("page"),10);(isNaN(g)||g<1)&&(g=1),this.currentPageInUrl=g,this.recalculateElementsToShow()}this.initialLoadStarted||(this.initialLoadStarted=!0,this.loadData(!0))}),this.currentServerSubscription=this.vpnSavedDataService.currentServerObservable.subscribe(p=>this.currentServer=p),this.backendDataSubscription=this.vpnClientService.backendState.subscribe(p=>{p&&(this.loadingBackendData=!1,this.vpnRunning=p.vpnClientAppData.running)})}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.currentServerSubscription.unsubscribe(),this.backendDataSubscription.unsubscribe(),this.dataSortedSubscription&&this.dataSortedSubscription.unsubscribe(),this.dataFiltererSubscription&&this.dataFiltererSubscription.unsubscribe(),this.dataSubscription&&this.dataSubscription.unsubscribe(),this.dataFilterer&&this.dataFilterer.dispose(),this.dataSorter&&this.dataSorter.dispose()}enterManually(){N2e.openDialog(this.dialog,this.currentLocalPk)}getNoteVar(e){return e.note&&e.personalNote?"vpn.server-list.notes-info":!e.note&&e.personalNote?e.personalNote:e.note}selectServer(e){const i=this.vpnSavedDataService.getSavedVersion(e.pk,!0);if(this.snackbarService.closeCurrentIfTemporaryError(),i&&i.flag===an.Blocked)this.snackbarService.showError("vpn.starting-blocked-server-error",{},!0);else{if(this.currentServer&&this.currentServer.pk===e.pk){if(this.vpnRunning)this.snackbarService.showWarning("vpn.server-change.already-selected-warning");else{const o=Ye.createConfirmationDialog(this.dialog,"vpn.server-change.start-same-server-confirmation");o.componentInstance.operationAccepted.subscribe(()=>{o.componentInstance.closeModal(),this.vpnClientService.start(),si.redirectAfterServerChange(this.router,null,this.currentLocalPk)})}return}if(i&&i.usedWithPassword)return void r5.openDialog(this.dialog,!0).afterClosed().subscribe(o=>{o&&this.makeServerChange(e,"-"===o?null:o.substr(1))});this.makeServerChange(e,null)}}makeServerChange(e,i){si.processServerChange(this.router,this.vpnClientService,this.vpnSavedDataService,this.snackbarService,this.dialog,null,this.currentLocalPk,e.originalLocalData,e.originalDiscoveryData,null,i)}openOptions(e){let i=this.vpnSavedDataService.getSavedVersion(e.pk,!0);i||(i=this.vpnSavedDataService.processFromDiscovery(e.originalDiscoveryData)),i?si.openServerOptions(i,this.router,this.vpnSavedDataService,this.vpnClientService,this.snackbarService,this.dialog).subscribe(o=>{o&&this.processAllServers()}):this.snackbarService.showError("vpn.unexpedted-error")}loadData(e){if(this.currentList===li.Public){const i=e?this.getLocalValue(this.persistentServerDataResponseKey):null;let o=this.vpnClientDiscoveryService.getServers();i&&(o=ae(JSON.parse(i.value))),this.dataSubscription=o.subscribe(r=>{i||this.saveLocalValue(this.persistentServerDataResponseKey,JSON.stringify(r)),this.allServers=r.map(s=>({countryCode:s.countryCode,countryName:this.getCountryName(s.countryCode),name:s.name,customName:null,location:s.location,pk:s.pk,note:s.note,personalNote:null,originalDiscoveryData:s})),this.vpnSavedDataService.updateFromDiscovery(r),this.loading=!1,this.processAllServers(),i&&this.loadData(!1)})}else{let i;i=this.currentList===li.History?this.vpnSavedDataService.history:this.currentList===li.Favorites?this.vpnSavedDataService.favorites:this.vpnSavedDataService.blocked,this.dataSubscription=i.subscribe(o=>{const r=[];o.forEach(s=>{r.push({countryCode:s.countryCode,countryName:this.getCountryName(s.countryCode),name:s.name,customName:null,location:s.location,pk:s.pk,note:s.note,personalNote:null,lastUsed:s.lastUsed,inHistory:s.inHistory,flag:s.flag,originalLocalData:s})}),this.allServers=r,this.loading=!1,this.processAllServers()})}}processAllServers(){this.fillFilterPropertiesArray();const e=new Set;this.allServers.forEach((c,u)=>{e.add(c.countryCode);const p=this.vpnSavedDataService.getSavedVersion(c.pk,0===u);c.customName=p?p.customName:null,c.personalNote=p?p.personalNote:null,c.inHistory=!!p&&p.inHistory,c.flag=p?p.flag:an.None,c.enteredManually=!!p&&p.enteredManually,c.usedWithPassword=!!p&&p.usedWithPassword});let i=[];e.forEach(c=>{i.push({label:this.getCountryName(c),value:c,image:"/assets/img/big-flags/"+c.toLowerCase()+".png"})}),i.sort((c,u)=>c.label.localeCompare(u.label)),i=[{label:"vpn.server-list.filter-dialog.country-options.any",value:""}].concat(i),this.filterProperties=[{filterName:"vpn.server-list.filter-dialog.country",keyNameInElementsArray:"countryCode",type:mn.Select,printableLabelsForValues:i,printableLabelGeneralSettings:{defaultImage:"/assets/img/big-flags/unknown.png",imageWidth:20,imageHeight:15}}].concat(this.filterProperties);const r=[];let s,a,l;this.currentList===li.Public?(r.push(this.countrySortData),r.push(this.nameSortData),r.push(this.locationSortData),r.push(this.pkSortData),r.push(this.noteSortData),s=0,a=1):(this.currentList===li.History&&r.push(this.dateSortData),r.push(this.countrySortData),r.push(this.nameSortData),r.push(this.locationSortData),r.push(this.pkSortData),r.push(this.noteSortData),s=this.currentList===li.History?0:1,a=this.currentList===li.History?2:3),this.dataSorter=new ru(this.dialog,this.translateService,this.storageService,r,s,this.listId),this.dataSorter.setTieBreakerColumnIndex(a),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataFilterer=new su(this.dialog,this.route,this.router,this.filterProperties,this.listId),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(c=>{this.filteredServers=c,this.dataSorter.setData(this.filteredServers)}),l=this.currentList===li.Public?this.allServers.filter(c=>c.flag!==an.Blocked):this.allServers,this.dataFilterer.setData(l)}fillFilterPropertiesArray(){this.filterProperties=[{filterName:"vpn.server-list.filter-dialog.name",keyNameInElementsArray:"name",secondaryKeyNameInElementsArray:"customName",type:mn.TextInput,maxlength:100},{filterName:"vpn.server-list.filter-dialog.location",keyNameInElementsArray:"location",type:mn.TextInput,maxlength:100},{filterName:"vpn.server-list.filter-dialog.public-key",keyNameInElementsArray:"pk",type:mn.TextInput,maxlength:100}]}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredServers){const e=this.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredServers.length/e),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const i=e*(this.currentPage-1);this.serversToShow=this.filteredServers.slice(i,i+e)}else this.serversToShow=null;this.dataSource=this.serversToShow}getCountryName(e){return Zr[e.toUpperCase()]?Zr[e.toUpperCase()]:e}static{this.\u0275fac=function(i){return new(i||t)(P(kt),P(vt),P(zo),P(Ei),P(L2e),P(sc),P(rc),P(bt),P(zn))}}static{this.\u0275cmp=se({type:t,selectors:[["app-vpn-server-list"]],standalone:!1,features:[be],decls:4,vars:2,consts:[["topPart",""],[1,"d-flex","flex-column","h-100","w-100"],[1,"row"],[1,"loading-top-container"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton","localVpnKey"],[1,"main-container"],[1,"width-limiter"],[1,"center-container","mt-4.5"],[4,"ngTemplateOutlet"],[1,"h-100","loading-indicator"],[1,"option-bar-container"],[1,"rounded-elevated-box","mt-3"],[1,"box-internal-container","allow-overflow"],[1,"option-bar"],[1,"text-option","selected"],[1,"text-option",3,"routerLink"],[1,"option-bar-container","option-bar-margin",3,"ngClass"],[1,"icon-option",3,"click","matTooltip"],[3,"inline"],[1,"option-bar-container","option-bar-margin"],[1,"filter-label","subtle-transparent-button","cursor-pointer"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],[1,"transparent-50"],[1,"item"],[1,"col-12"],[1,"col-12","vpn-table-container"],[1,"center-container","mt-4.5",3,"ngClass"],[1,"rounded-elevated-box"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"box-internal-container"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table"],[1,"sortable-column","date-column","click-effect",3,"matTooltip"],[1,"sortable-column","flag-column","center","click-effect",3,"click","matTooltip"],[1,"sortable-column","name-column","click-effect",3,"click"],[1,"header-container"],[1,"header-text"],[1,"sortable-column","location-column","click-effect",3,"click"],[1,"sortable-column","pk-column","click-effect",3,"click","ngClass","matTooltip"],[1,"sortable-column","note-column","center","click-effect",3,"click","matTooltip"],[1,"actions"],[3,"ngClass"],[1,"sortable-column","date-column","click-effect",3,"click","matTooltip"],[3,"click","ngClass"],[1,"date-column"],[1,"flag-column","icon-fixer"],[1,"flag"],[3,"matTooltip"],[1,"name-column"],[3,"isCurrentServer","isFavorite","isBlocked","isInHistory","hasPassword","name","pk","customName","defaultName"],[1,"location-column"],[1,"pk-column","history-pk-column"],[1,"d-inline-block","w-100",3,"click","shortSimple","text"],[1,"center","note-column"],[1,"note-icon",3,"inline","matTooltip"],["mat-button","",1,"big-action-button","transparent-button","vpn-small-button",3,"click","matTooltip"],[1,"note-icon",3,"click","inline","matTooltip"],[1,"box-internal-container","font-sm"],[1,"alert-icon",3,"inline"],[1,"font-sm"]],template:function(i,o){1&i&&(S(0,W2e,8,7,"div",1),tt(1,sIe,31,20,"ng-template",null,0,El),S(3,EIe,10,13,"div",2)),2&i&&(k(o.loading||o.loadingBackendData?0:-1),d(3),k(o.loading||o.loadingBackendData?-1:3))},styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .header-container[_ngcontent-%COMP%] .header-text[_ngcontent-%COMP%], .note-column[_ngcontent-%COMP%], .pk-column[_ngcontent-%COMP%], .location-column[_ngcontent-%COMP%], .name-column[_ngcontent-%COMP%], .date-column[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}.center-container[_ngcontent-%COMP%]{text-align:center}.center-container[_ngcontent-%COMP%] app-paginator[_ngcontent-%COMP%]{display:inline-block}.loading-top-container[_ngcontent-%COMP%]{z-index:1}.loading-indicator[_ngcontent-%COMP%]{padding-top:30px;padding-bottom:20px}.deactivated[_ngcontent-%COMP%]{opacity:.5;pointer-events:none}.option-bar-container[_ngcontent-%COMP%]{display:inline-block}.option-bar-container[_ngcontent-%COMP%] .allow-overflow[_ngcontent-%COMP%]{overflow:visible}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%]{display:flex;margin:-17px}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] > div[_ngcontent-%COMP%], .option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{height:55px;line-height:55px;cursor:pointer;color:#fff;text-decoration:none;-webkit-user-select:none;user-select:none}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:hover, .option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{background:#0003}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] > .icon-option[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] a[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:inline-block}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] > .icon-option[_ngcontent-%COMP%]:active span[_ngcontent-%COMP%], .option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:active span[_ngcontent-%COMP%]{transform:scale(.95)}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] .text-option[_ngcontent-%COMP%]{padding:0 40px;font-size:1rem}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] .icon-option[_ngcontent-%COMP%]{width:55px;font-size:24px}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%]{background:#0000005c;cursor:unset!important}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%]:hover{background:#0009}.option-bar-margin[_ngcontent-%COMP%]{margin-left:10px}.filter-label[_ngcontent-%COMP%]{font-size:.7rem;display:inline-block;padding:5px 10px;margin-bottom:7px}.filter-label[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{vertical-align:middle}table[_ngcontent-%COMP%]{width:100%}tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:2px 5px!important;font-size:12px!important;font-weight:400!important}tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{padding-left:5px!important;padding-right:5px!important}.date-column[_ngcontent-%COMP%]{width:150px}.name-column[_ngcontent-%COMP%]{max-width:0;width:20%}.location-column[_ngcontent-%COMP%]{max-width:0;min-width:72px}.pk-column[_ngcontent-%COMP%]{max-width:0;width:25%}.history-pk-column[_ngcontent-%COMP%]{width:20%!important}.icon-fixer[_ngcontent-%COMP%]{line-height:0px}.note-column[_ngcontent-%COMP%]{max-width:0;width:3%;min-width:60px}.note-column[_ngcontent-%COMP%] .note-icon[_ngcontent-%COMP%]{opacity:.55;font-size:16px!important;display:inline}.flag-column[_ngcontent-%COMP%]{width:1px;line-height:0px}.actions[_ngcontent-%COMP%]{width:1px}.header-container[_ngcontent-%COMP%]{max-width:100%;display:inline-flex}.header-container[_ngcontent-%COMP%] .header-text[_ngcontent-%COMP%]{flex-grow:1}.flag[_ngcontent-%COMP%]{width:20px;height:15px;display:inline-block;margin-right:5px;background-image:url(/assets/img/big-flags/unknown.png);background-size:contain}.flag[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{width:20px;height:15px;background-size:contain}.center[_ngcontent-%COMP%]{text-align:center}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}"]})}}return t})();const _p=(t,n)=>({"small-text-icon":t,"big-text-icon":n});function IIe(t,n){if(1&t&&(f(0,"mat-icon",0),b(1,"translate"),m(2,"done"),h()),2&t){const e=C();v("ngClass",ft(5,_p,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",y(1,3,"vpn.server-conditions.selected-info"))}}function PIe(t,n){if(1&t&&(f(0,"mat-icon",1),b(1,"translate"),m(2,"clear"),h()),2&t){const e=C();v("ngClass",ft(5,_p,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",y(1,3,"vpn.server-conditions.blocked-info"))}}function OIe(t,n){if(1&t&&(f(0,"mat-icon",2),b(1,"translate"),m(2,"star"),h()),2&t){const e=C();v("ngClass",ft(5,_p,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",y(1,3,"vpn.server-conditions.favorite-info"))}}function AIe(t,n){if(1&t&&(f(0,"mat-icon",0),b(1,"translate"),m(2,"history"),h()),2&t){const e=C();v("ngClass",ft(5,_p,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",y(1,3,"vpn.server-conditions.history-info"))}}function RIe(t,n){if(1&t&&(f(0,"mat-icon",0),b(1,"translate"),m(2,"lock_outlined"),h()),2&t){const e=C();v("ngClass",ft(5,_p,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",y(1,3,"vpn.server-conditions.has-password-info"))}}function NIe(t,n){if(1&t&&(m(0),f(1,"mat-icon",3),m(2,"fiber_manual_record"),h(),m(3)),2&t){const e=C();I(" ",e.customName," "),d(),v("inline",!0),d(2),I(" ",e.name,"\n")}}function FIe(t,n){1&t&&m(0),2&t&&I(" ",C().customName,"\n")}function LIe(t,n){1&t&&m(0),2&t&&I(" ",C().name,"\n")}function BIe(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,C().defaultName),"\n")}let pj=(()=>{class t{constructor(){this.isCurrentServer=!1,this.isFavorite=!1,this.isBlocked=!1,this.isInHistory=!1,this.hasPassword=!1,this.name="",this.customName="",this.pk="",this.defaultName="",this.adjustIconsForBigText=!1}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=se({type:t,selectors:[["app-vpn-server-name"]],inputs:{isCurrentServer:"isCurrentServer",isFavorite:"isFavorite",isBlocked:"isBlocked",isInHistory:"isInHistory",hasPassword:"hasPassword",name:"name",customName:"customName",pk:"pk",defaultName:"defaultName",adjustIconsForBigText:"adjustIconsForBigText"},standalone:!1,decls:9,vars:9,consts:[[1,"server-condition-icon",3,"ngClass","inline","matTooltip"],[1,"server-condition-icon","red-clear-text",3,"ngClass","inline","matTooltip"],[1,"server-condition-icon","yellow-clear-text",3,"ngClass","inline","matTooltip"],[1,"name-separator",3,"inline"]],template:function(i,o){1&i&&(S(0,IIe,3,8,"mat-icon",0),S(1,PIe,3,8,"mat-icon",1),S(2,OIe,3,8,"mat-icon",2),S(3,AIe,3,8,"mat-icon",0),S(4,RIe,3,8,"mat-icon",0),S(5,NIe,4,3),S(6,FIe,1,1),S(7,LIe,1,1),S(8,BIe,2,3)),2&i&&(k(o.isCurrentServer?0:-1),d(),k(o.isBlocked?1:-1),d(),k(o.isFavorite?2:-1),d(),k(o.isInHistory?3:-1),d(),k(o.hasPassword?4:-1),d(),k(!o.customName||!o.name||o.pk&&o.name===o.pk?-1:5),d(),k((!o.name||o.pk&&o.name===o.pk)&&o.customName?6:-1),d(),k(!o.name||o.pk&&o.name===o.pk||o.customName?-1:7),d(),k(o.name&&(!o.pk||o.name!==o.pk)||o.customName?-1:8))},dependencies:[qt,lt,pn,Se],styles:[".server-condition-icon[_ngcontent-%COMP%]{font-size:14px!important;line-height:14px!important;margin-right:3px;position:relative;width:14px!important;-webkit-user-select:none;user-select:none;cursor:default}.small-text-icon[_ngcontent-%COMP%]{top:2px}.big-text-icon[_ngcontent-%COMP%]{top:0}.name-separator[_ngcontent-%COMP%]{display:inline!important;font-size:8px!important;opacity:.5!important}"]})}}return t})();const mj=()=>["vpn.title"],gj=t=>({"disabled-button":t}),VIe=(t,n)=>({custom:t,original:n}),bu=t=>({showValue:!0,showUnit:!0,showPerSecond:!0,limitDecimals:!0,useBits:t}),_j=t=>({showValue:!0,showUnit:!0,showPerSecond:!0,useBits:t}),bj=t=>({showValue:!0,showUnit:!0,useBits:t}),jv=t=>({time:t});function HIe(t,n){if(1&t&&(f(0,"div",0)(1,"div"),B(2,"app-top-bar",2),h(),B(3,"app-loading-indicator"),h()),2&t){const e=C();d(2),v("titleParts",Mt(5,mj))("tabsData",e.tabsData)("selectedTabIndex",0)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk)}}function jIe(t,n){1&t&&B(0,"mat-spinner",22),2&t&&v("diameter",40)}function UIe(t,n){1&t&&(f(0,"mat-icon",23),m(1,"power_settings_new"),h()),2&t&&v("inline",!0)}function zIe(t,n){if(1&t){const e=ce();f(0,"div",28),B(1,"div",29),h(),f(2,"div",30)(3,"div",31),B(4,"app-vpn-server-name",32),h(),f(5,"div",33),B(6,"app-copy-to-clipboard-text",34),h()(),f(7,"div",35),B(8,"div"),h(),f(9,"div",36)(10,"mat-icon",37),b(11,"translate"),L("click",function(){return z(e),$(C(3).openServerOptions())}),m(12,"settings"),h()()}if(2&t){const e=C(3);d(),Ji("background-image: url('assets/img/big-flags/"+e.currentRemoteServer.countryCode.toLocaleLowerCase()+".png');"),v("matTooltip",e.getCountryName(e.currentRemoteServer.countryCode)),d(3),v("isFavorite",e.currentRemoteServer.flag===e.serverFlags.Favorite)("isBlocked",e.currentRemoteServer.flag===e.serverFlags.Blocked)("hasPassword",e.currentRemoteServer.usedWithPassword)("name",e.currentRemoteServer.name)("pk",e.currentRemoteServer.pk)("customName",e.currentRemoteServer.customName),d(2),v("shortSimple",!0)("text",e.currentRemoteServer.pk),d(4),v("inline",!0)("matTooltip",y(11,13,"vpn.server-options.tooltip"))}}function $Ie(t,n){1&t&&(f(0,"div",25),m(1),b(2,"translate"),h()),2&t&&(d(),O(y(2,1,"vpn.status-page.no-server")))}function WIe(t,n){if(1&t&&(f(0,"div",26)(1,"mat-icon",23),m(2,"info_outline"),h(),m(3),b(4,"translate"),h()),2&t){const e=C(3);d(),v("inline",!0),d(2),I(" ",Ee(4,2,e.getNoteVar(),ft(5,VIe,e.currentRemoteServer.personalNote,e.currentRemoteServer.note))," ")}}function GIe(t,n){if(1&t&&(f(0,"div",27)(1,"mat-icon",23),m(2,"cancel"),h(),m(3),b(4,"translate"),h()),2&t){const e=C(3);d(),v("inline",!0),d(2),Hn(" ",y(4,3,"vpn.status-page.last-error")," ",e.backendState.vpnClientAppData.lastErrorMsg," ")}}function qIe(t,n){if(1&t){const e=ce();f(0,"div",6)(1,"div",9)(2,"div",11),m(3),b(4,"translate"),h(),f(5,"div")(6,"div",18),L("click",function(){return z(e),$(C(2).start())}),f(7,"div",19),B(8,"div",20),h(),f(9,"div",19),B(10,"div",21),h(),S(11,jIe,1,1,"mat-spinner",22),S(12,UIe,2,1,"mat-icon",23),h()(),f(13,"div",24),S(14,zIe,13,15),S(15,$Ie,3,3,"div",25),h(),f(16,"div"),S(17,WIe,5,8,"div",26),h(),f(18,"div"),S(19,GIe,5,5,"div",27),h()()()}if(2&t){const e=C(2);d(3),O(y(4,8,"vpn.status-page.start-title")),d(3),v("ngClass",oe(10,gj,e.showBusy)),d(5),k(e.showBusy?11:-1),d(),k(e.showBusy?-1:12),d(2),k(e.currentRemoteServer?14:-1),d(),k(e.currentRemoteServer?-1:15),d(2),k(e.currentRemoteServer&&(e.currentRemoteServer.note||e.currentRemoteServer.personalNote)?17:-1),d(2),k(e.backendState&&e.backendState.vpnClientAppData&&e.backendState.vpnClientAppData.lastErrorMsg?19:-1)}}function KIe(t,n){if(1&t&&(f(0,"div",44)(1,"mat-icon",23),m(2,"cancel"),h(),m(3),b(4,"translate"),h()),2&t){const e=C(3);d(),v("inline",!0),d(2),Hn(" ",y(4,3,"vpn.status-page.last-error")," ",e.backendState.vpnClientAppData.connectionData.error," ")}}function YIe(t,n){1&t&&(f(0,"div"),B(1,"mat-spinner",22),h()),2&t&&(d(),v("diameter",24))}function XIe(t,n){1&t&&(f(0,"mat-icon",23),m(1,"power_settings_new"),h()),2&t&&v("inline",!0)}function ZIe(t,n){if(1&t){const e=ce();f(0,"div",7)(1,"div",9)(2,"div",38)(3,"div",39)(4,"mat-icon",23),m(5,"timer"),h(),f(6,"span"),m(7),h()()(),f(8,"div",40),m(9),b(10,"translate"),h(),f(11,"div",41)(12,"div",42),m(13),b(14,"translate"),h(),B(15,"div"),h(),f(16,"div",43),m(17),b(18,"translate"),h(),S(19,KIe,5,5,"div",44),f(20,"div",45)(21,"div",46),b(22,"translate"),f(23,"div",47),B(24,"app-line-chart",48),h(),f(25,"div",49)(26,"div",50)(27,"div",51),m(28),b(29,"autoScale"),h(),B(30,"div",52),h()(),f(31,"div",49)(32,"div",53)(33,"div",51),m(34),b(35,"autoScale"),h(),B(36,"div",52),h()(),f(37,"div",49)(38,"div",54)(39,"div",51),m(40),b(41,"autoScale"),h()()(),f(42,"div",55)(43,"mat-icon",56),m(44,"keyboard_backspace"),h(),f(45,"div",57),m(46),b(47,"autoScale"),h(),f(48,"div",58),m(49),b(50,"autoScale"),b(51,"translate"),h()()(),f(52,"div",46),b(53,"translate"),f(54,"div",47),B(55,"app-line-chart",48),h(),f(56,"div",59)(57,"div",50)(58,"div",51),m(59),b(60,"autoScale"),h(),B(61,"div",52),h()(),f(62,"div",49)(63,"div",53)(64,"div",51),m(65),b(66,"autoScale"),h(),B(67,"div",52),h()(),f(68,"div",49)(69,"div",54)(70,"div",51),m(71),b(72,"autoScale"),h()()(),f(73,"div",55)(74,"mat-icon",60),m(75,"keyboard_backspace"),h(),f(76,"div",57),m(77),b(78,"autoScale"),h(),f(79,"div",58),m(80),b(81,"autoScale"),b(82,"translate"),h()()()(),f(83,"div",61)(84,"div",62),b(85,"translate"),f(86,"div",47),B(87,"app-line-chart",63),h(),f(88,"div",59)(89,"div",50)(90,"div",51),m(91),b(92,"translate"),h(),B(93,"div",52),h()(),f(94,"div",49)(95,"div",53)(96,"div",51),m(97),b(98,"translate"),h(),B(99,"div",52),h()(),f(100,"div",49)(101,"div",54)(102,"div",51),m(103),b(104,"translate"),h()()(),f(105,"div",55)(106,"mat-icon",23),m(107,"swap_horiz"),h(),f(108,"div"),m(109),b(110,"translate"),h()()()(),f(111,"div",64),L("click",function(){return z(e),$(C(2).stop())}),f(112,"div",65)(113,"div",66),S(114,YIe,2,1,"div"),S(115,XIe,2,1,"mat-icon",23),f(116,"span"),m(117),b(118,"translate"),h()()()()()()}if(2&t){const e=C(2);d(4),v("inline",!0),d(3),O(e.connectionTimeString),d(2),O(y(10,58,"vpn.connection-info.state-title")),d(4),O(y(14,60,e.currentStateText)),d(2),at("state-line "+e.currentStateLineClass),d(2),O(y(18,62,e.currentStateText+"-info")),d(2),k(e.backendState&&e.backendState.vpnClientAppData&&e.backendState.vpnClientAppData.connectionData&&e.backendState.vpnClientAppData.connectionData.error?19:-1),d(2),v("matTooltip",y(22,64,"vpn.status-page.upload-info")),d(3),v("animated",!1)("data",e.sentHistory)("min",e.minUploadInGraph)("max",e.maxUploadInGraph),d(4),I(" ",Ee(29,66,e.maxUploadInGraph,oe(118,bu,e.showSpeedsInBits))," "),d(2),Ji("margin-top: "+e.graphsTopInternalMargin+"px;"),d(4),I(" ",Ee(35,69,e.midUploadInGraph,oe(120,bu,e.showSpeedsInBits))," "),d(2),Ji("margin-top: "+e.graphsTopInternalMargin/2+"px;"),d(4),I(" ",Ee(41,72,e.minUploadInGraph,oe(122,bu,e.showSpeedsInBits))," "),d(3),v("inline",!0),d(3),O(Ee(47,75,e.uploadSpeed,oe(124,_j,e.showSpeedsInBits))),d(3),Hn(" ",Ee(50,78,e.totalUploaded,oe(126,bj,e.showTotalsInBits))," ",y(51,81,"vpn.status-page.total-data-label")," "),d(3),v("matTooltip",y(53,83,"vpn.status-page.download-info")),d(3),v("animated",!1)("data",e.receivedHistory)("min",e.minDownloadInGraph)("max",e.maxDownloadInGraph),d(4),I(" ",Ee(60,85,e.maxDownloadInGraph,oe(128,bu,e.showSpeedsInBits))," "),d(2),Ji("margin-top: "+e.graphsTopInternalMargin+"px;"),d(4),I(" ",Ee(66,88,e.midDownloadInGraph,oe(130,bu,e.showSpeedsInBits))," "),d(2),Ji("margin-top: "+e.graphsTopInternalMargin/2+"px;"),d(4),I(" ",Ee(72,91,e.minDownloadInGraph,oe(132,bu,e.showSpeedsInBits))," "),d(3),v("inline",!0),d(3),O(Ee(78,94,e.downloadSpeed,oe(134,_j,e.showSpeedsInBits))),d(3),Hn(" ",Ee(81,97,e.totalDownloaded,oe(136,bj,e.showTotalsInBits))," ",y(82,100,"vpn.status-page.total-data-label")," "),d(4),v("matTooltip",y(85,102,"vpn.status-page.latency-info")),d(3),v("animated",!1)("data",e.latencyHistory)("min",e.minLatencyInGraph)("max",e.maxLatencyInGraph),d(4),I(" ",Ee(92,104,"common."+e.getLatencyValueString(e.maxLatencyInGraph),oe(138,jv,e.getPrintableLatency(e.maxLatencyInGraph)))," "),d(2),Ji("margin-top: "+e.graphsTopInternalMargin+"px;"),d(4),I(" ",Ee(98,107,"common."+e.getLatencyValueString(e.midLatencyInGraph),oe(140,jv,e.getPrintableLatency(e.midLatencyInGraph)))," "),d(2),Ji("margin-top: "+e.graphsTopInternalMargin/2+"px;"),d(4),I(" ",Ee(104,110,"common."+e.getLatencyValueString(e.minLatencyInGraph),oe(142,jv,e.getPrintableLatency(e.minLatencyInGraph)))," "),d(3),v("inline",!0),d(3),O(Ee(110,113,"common."+e.getLatencyValueString(e.latency),oe(144,jv,e.getPrintableLatency(e.latency)))),d(2),v("ngClass",oe(146,gj,e.showBusy)),d(3),k(e.showBusy?114:-1),d(),k(e.showBusy?-1:115),d(2),O(y(118,116,"vpn.status-page.disconnect"))}}function QIe(t,n){1&t&&m(0),2&t&&I(" ",C(3).currentIp," ")}function JIe(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"common.unknown")," ")}function ePe(t,n){1&t&&B(0,"mat-spinner",22),2&t&&v("diameter",20)}function tPe(t,n){1&t&&(f(0,"mat-icon",67),b(1,"translate"),m(2,"warning"),h()),2&t&&v("inline",!0)("matTooltip",y(1,2,"vpn.status-page.data.ip-problem-info"))}function nPe(t,n){if(1&t){const e=ce();f(0,"mat-icon",69),b(1,"translate"),L("click",function(){return z(e),$(C(3).getIp())}),m(2,"refresh"),h()}2&t&&v("inline",!0)("matTooltip",y(1,2,"vpn.status-page.data.ip-refresh-info"))}function iPe(t,n){if(1&t&&(f(0,"div",12),S(1,QIe,1,1),S(2,JIe,2,3),S(3,ePe,1,1,"mat-spinner",22),S(4,tPe,3,4,"mat-icon",67),S(5,nPe,3,4,"mat-icon",68),h()),2&t){const e=C(2);d(),k(e.currentIp?1:-1),d(),k(e.currentIp||e.loadingCurrentIp?-1:2),d(),k(e.loadingCurrentIp?3:-1),d(),k(e.problemGettingIp?4:-1),d(),k(e.loadingCurrentIp?-1:5)}}function oPe(t,n){1&t&&(f(0,"div",12),m(1),b(2,"translate"),h()),2&t&&(d(),I(" ",y(2,1,"vpn.status-page.data.unavailable")," "))}function rPe(t,n){1&t&&m(0),2&t&&I(" ",C(3).ipCountry," ")}function sPe(t,n){1&t&&(m(0),b(1,"translate")),2&t&&I(" ",y(1,1,"common.unknown")," ")}function aPe(t,n){1&t&&B(0,"mat-spinner",22),2&t&&v("diameter",20)}function lPe(t,n){1&t&&(f(0,"mat-icon",67),b(1,"translate"),m(2,"warning"),h()),2&t&&v("inline",!0)("matTooltip",y(1,2,"vpn.status-page.data.ip-country-problem-info"))}function cPe(t,n){if(1&t&&(f(0,"div",12),S(1,rPe,1,1),S(2,sPe,2,3),S(3,aPe,1,1,"mat-spinner",22),S(4,lPe,3,4,"mat-icon",67),h()),2&t){const e=C(2);d(),k(e.ipCountry?1:-1),d(),k(e.ipCountry||e.loadingCurrentIp?-1:2),d(),k(e.loadingCurrentIp?3:-1),d(),k(e.problemGettingIp?4:-1)}}function dPe(t,n){1&t&&(f(0,"div",12),m(1),b(2,"translate"),h()),2&t&&(d(),I(" ",y(2,1,"vpn.status-page.data.unavailable")," "))}function uPe(t,n){if(1&t){const e=ce();f(0,"div")(1,"div",11),m(2),b(3,"translate"),h(),f(4,"div",12),B(5,"app-vpn-server-name",70),f(6,"mat-icon",69),b(7,"translate"),L("click",function(){return z(e),$(C(2).openServerOptions())}),m(8,"settings"),h()()()}if(2&t){const e=C(2);d(2),O(y(3,10,"vpn.status-page.data.server")),d(3),v("isFavorite",e.currentRemoteServer.flag===e.serverFlags.Favorite)("isBlocked",e.currentRemoteServer.flag===e.serverFlags.Blocked)("hasPassword",e.currentRemoteServer.usedWithPassword)("adjustIconsForBigText",!0)("name",e.currentRemoteServer.name)("pk",e.currentRemoteServer.pk)("customName",e.currentRemoteServer.customName),d(),v("inline",!0)("matTooltip",y(7,12,"vpn.server-options.tooltip"))}}function hPe(t,n){1&t&&B(0,"div",13)}function fPe(t,n){if(1&t&&(f(0,"div")(1,"div",11),m(2),b(3,"translate"),h(),f(4,"div",16),m(5),h()()),2&t){const e=C(2);d(2),O(y(3,2,"vpn.status-page.data.server-note")),d(3),I(" ",e.currentRemoteServer.personalNote," ")}}function pPe(t,n){1&t&&B(0,"div",13)}function mPe(t,n){if(1&t&&(f(0,"div")(1,"div",11),m(2),b(3,"translate"),h(),f(4,"div",16),m(5),h()()),2&t){const e=C(2);d(2),O(y(3,2,"vpn.status-page.data."+(e.currentRemoteServer.personalNote?"original-":"")+"server-note")),d(3),I(" ",e.currentRemoteServer.note," ")}}function gPe(t,n){1&t&&B(0,"div",13)}function _Pe(t,n){if(1&t&&(f(0,"div")(1,"div",11),m(2),b(3,"translate"),h(),f(4,"div",16),B(5,"app-copy-to-clipboard-text",17),h()()),2&t){const e=C(2);d(2),O(y(3,2,"vpn.status-page.data.remote-pk")),d(3),v("text",e.currentRemoteServer.pk)}}function bPe(t,n){1&t&&B(0,"div",13)}function vPe(t,n){if(1&t&&(f(0,"div",1)(1,"div",3)(2,"div",4),B(3,"app-top-bar",2),h()(),f(4,"div",5),S(5,qIe,20,12,"div",6),S(6,ZIe,119,148,"div",7),f(7,"div",8)(8,"div",9)(9,"div",10)(10,"div")(11,"div",11),m(12),b(13,"translate"),h(),S(14,iPe,6,5,"div",12),S(15,oPe,3,3,"div",12),h(),B(16,"div",13),f(17,"div")(18,"div",11),m(19),b(20,"translate"),h(),S(21,cPe,5,4,"div",12),S(22,dPe,3,3,"div",12),h(),B(23,"div",14)(24,"div",15)(25,"div",14),S(26,uPe,9,14,"div"),S(27,hPe,1,0,"div",13),S(28,fPe,6,4,"div"),S(29,pPe,1,0,"div",13),S(30,mPe,6,4,"div"),S(31,gPe,1,0,"div",13),S(32,_Pe,6,4,"div"),S(33,bPe,1,0,"div",13),f(34,"div")(35,"div",11),m(36),b(37,"translate"),h(),f(38,"div",16),B(39,"app-copy-to-clipboard-text",17),h()()()()()()()),2&t){const e=C();d(3),v("titleParts",Mt(29,mj))("tabsData",e.tabsData)("selectedTabIndex",0)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk),d(2),k(e.showStarted?-1:5),d(),k(e.showStarted?6:-1),d(6),O(y(13,23,"vpn.status-page.data.ip")),d(2),k(e.ipInfoAllowed?14:-1),d(),k(e.ipInfoAllowed?-1:15),d(4),O(y(20,25,"vpn.status-page.data.country")),d(2),k(e.ipInfoAllowed?21:-1),d(),k(e.ipInfoAllowed?-1:22),d(4),k(e.showStarted&&e.currentRemoteServer?26:-1),d(),k(e.showStarted&&e.currentRemoteServer?27:-1),d(),k(e.showStarted&&e.currentRemoteServer&&e.currentRemoteServer.personalNote?28:-1),d(),k(e.showStarted&&e.currentRemoteServer&&e.currentRemoteServer.personalNote?29:-1),d(),k(e.showStarted&&e.currentRemoteServer&&e.currentRemoteServer.note?30:-1),d(),k(e.showStarted&&e.currentRemoteServer&&e.currentRemoteServer.note?31:-1),d(),k(e.showStarted&&e.currentRemoteServer?32:-1),d(),k(e.showStarted&&e.currentRemoteServer?33:-1),d(3),O(y(37,27,"vpn.status-page.data.local-pk")),d(3),v("text",e.currentLocalPk)}}let yPe=(()=>{class t extends Wn{constructor(e,i,o,r,s,a){super(),this.vpnClientService=e,this.vpnSavedDataService=i,this.snackbarService=o,this.route=r,this.dialog=s,this.router=a,this.persistentServerDataResponseKey="serv-dat-response",this.tabsData=si.vpnTabsData,this.sentHistory=[0,0,0,0,0,0,0,0,0,0],this.receivedHistory=[0,0,0,0,0,0,0,0,0,0],this.latencyHistory=[0,0,0,0,0,0,0,0,0,0],this.minUploadInGraph=0,this.midUploadInGraph=0,this.maxUploadInGraph=0,this.minDownloadInGraph=0,this.midDownloadInGraph=0,this.maxDownloadInGraph=0,this.minLatencyInGraph=0,this.midLatencyInGraph=0,this.maxLatencyInGraph=0,this.graphsTopInternalMargin=SD.topInternalMargin,this.connectionTimeString="00:00:00",this.calculatedSegs=-1,this.uploadSpeed=0,this.downloadSpeed=0,this.totalUploaded=0,this.totalDownloaded=0,this.latency=0,this.showSpeedsInBits=!0,this.showTotalsInBits=!1,this.loading=!0,this.showStartedLastValue=!1,this.showStarted=!1,this.lastAppState=null,this.showBusy=!1,this.stopRequested=!1,this.loadingCurrentIp=!0,this.problemGettingIp=!1,this.serverFlags=an,this.ipInfoAllowed=this.vpnSavedDataService.getCheckIpSetting();const l=this.vpnSavedDataService.getDataUnitsSetting();l===qo.OnlyBits?(this.showSpeedsInBits=!0,this.showTotalsInBits=!0):l===qo.OnlyBytes?(this.showSpeedsInBits=!1,this.showTotalsInBits=!1):(this.showSpeedsInBits=!0,this.showTotalsInBits=!1)}ngOnInit(){return this.navigationsSubscription=this.route.paramMap.subscribe(e=>{e.has("key")&&(this.currentLocalPk=e.get("key"),si.changeCurrentPk(this.currentLocalPk),this.tabsData=si.vpnTabsData),setTimeout(()=>this.navigationsSubscription.unsubscribe()),this.startGettingData(!0),this.currentRemoteServerSubscription=this.vpnSavedDataService.currentServerObservable.subscribe(i=>{this.currentRemoteServer=i})}),super.ngOnInit()}startGettingData(e){const i=e?this.getLocalValue(this.persistentServerDataResponseKey):null;let o=this.vpnClientService.backendState;i&&(o=ae(JSON.parse(i.value))),this.dataSubscription=o.subscribe(r=>{if(i||this.saveLocalValue(this.persistentServerDataResponseKey,JSON.stringify(r)),r&&r.serviceState!==Pi.PerformingInitialCheck){if(this.backendState=r,r.publicIp?(this.currentIp=r.publicIp,this.problemGettingIp=!1):this.currentIp=null,this.ipCountry=r.countryName?r.countryName:null,this.loadingCurrentIp=!1,this.showStarted=r.vpnClientAppData.running||r.vpnClientAppData.appState!==Zt.Stopped,this.showStartedLastValue!==this.showStarted){for(let s=0;s<10;s++)this.receivedHistory[s]=0,this.sentHistory[s]=0,this.latencyHistory[s]=0;this.updateGraphLimits(),this.uploadSpeed=0,this.downloadSpeed=0,this.totalUploaded=0,this.totalDownloaded=0,this.latency=0}if(this.lastAppState=r.vpnClientAppData.appState,this.showStartedLastValue=this.showStarted,this.stopRequested?this.showStarted||(this.stopRequested=!1,this.showBusy=r.busy):this.showBusy=r.busy,r.vpnClientAppData.connectionData){for(let s=0;s<10;s++)this.receivedHistory[s]=r.vpnClientAppData.connectionData.downloadSpeedHistory[s],this.sentHistory[s]=r.vpnClientAppData.connectionData.uploadSpeedHistory[s],this.latencyHistory[s]=r.vpnClientAppData.connectionData.latencyHistory[s];this.updateGraphLimits(),this.uploadSpeed=r.vpnClientAppData.connectionData.uploadSpeed,this.downloadSpeed=r.vpnClientAppData.connectionData.downloadSpeed,this.totalUploaded=r.vpnClientAppData.connectionData.totalUploaded,this.totalDownloaded=r.vpnClientAppData.connectionData.totalDownloaded,this.latency=r.vpnClientAppData.connectionData.latency}r.vpnClientAppData.running&&r.vpnClientAppData.appState===Zt.Running&&r.vpnClientAppData.connectionData&&r.vpnClientAppData.connectionData.connectionDuration?(-1===this.calculatedSegs||r.vpnClientAppData.connectionData.connectionDuration>this.calculatedSegs+2||r.vpnClientAppData.connectionData.connectionDuration{this.calculatedSegs+=1,this.refreshConnectionTimeString()})):this.timeUpdateSubscription&&(this.timeUpdateSubscription.unsubscribe(),this.timeUpdateSubscription=null,this.calculatedSegs=-1,this.connectionTimeString="00:00:00"),this.loading=!1}i&&this.startGettingData(!1)})}refreshConnectionTimeString(){const e=this.calculatedSegs%60,i=Math.floor(this.calculatedSegs/60),o=i%60,r=Math.floor(i/60);this.connectionTimeString=String(r).padStart(2,"0")+":"+String(o).padStart(2,"0")+":"+String(e).padStart(2,"0")}ngOnDestroy(){this.dataSubscription.unsubscribe(),this.navigationsSubscription.unsubscribe(),this.currentRemoteServerSubscription.unsubscribe(),this.closeOperationSubscription(),this.timeUpdateSubscription&&this.timeUpdateSubscription.unsubscribe()}start(){if(!this.currentRemoteServer)return this.router.navigate(["vpn",this.currentLocalPk,"servers"]),void setTimeout(()=>this.snackbarService.showWarning("vpn.status-page.select-server-warning"),100);this.currentRemoteServer.flag!==an.Blocked?(this.showBusy=!0,this.vpnClientService.start()):this.snackbarService.showError("vpn.starting-blocked-server-error")}stop(){if(!this.backendState.vpnClientAppData.killswitch)return void this.finishStoppingVpn();const e=Ye.createConfirmationDialog(this.dialog,"vpn.status-page.disconnect-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.closeModal(),this.finishStoppingVpn()})}finishStoppingVpn(){this.stopRequested=!0,this.showBusy=!0,this.vpnClientService.stop()}openServerOptions(){si.openServerOptions(this.currentRemoteServer,this.router,this.vpnSavedDataService,this.vpnClientService,this.snackbarService,this.dialog).subscribe()}getCountryName(e){return Zr[e.toUpperCase()]?Zr[e.toUpperCase()]:e}getNoteVar(){return this.currentRemoteServer.note&&this.currentRemoteServer.personalNote?"vpn.server-list.notes-info":!this.currentRemoteServer.note&&this.currentRemoteServer.personalNote?this.currentRemoteServer.personalNote:this.currentRemoteServer.note}getLatencyValueString(e){return si.getLatencyValueString(e)}getPrintableLatency(e){return si.getPrintableLatency(e)}get currentStateText(){return this.backendState.vpnClientAppData.appState===Zt.Stopped?"vpn.connection-info.state-disconnected":this.backendState.vpnClientAppData.appState===Zt.Connecting?"vpn.connection-info.state-connecting":this.backendState.vpnClientAppData.appState===Zt.Running?"vpn.connection-info.state-connected":this.backendState.vpnClientAppData.appState===Zt.ShuttingDown?"vpn.connection-info.state-disconnecting":this.backendState.vpnClientAppData.appState===Zt.Reconnecting?"vpn.connection-info.state-reconnecting":void 0}get currentStateLineClass(){return this.backendState.vpnClientAppData.appState===Zt.Stopped?"red-line":this.backendState.vpnClientAppData.appState===Zt.Connecting?"yellow-line":this.backendState.vpnClientAppData.appState===Zt.Running?"green-line":"yellow-line"}closeOperationSubscription(){this.operationSubscription&&this.operationSubscription.unsubscribe()}updateGraphLimits(){const e=this.calculateGraphLimits(this.sentHistory);this.minUploadInGraph=e[0],this.midUploadInGraph=e[1],this.maxUploadInGraph=e[2];const i=this.calculateGraphLimits(this.receivedHistory);this.minDownloadInGraph=i[0],this.midDownloadInGraph=i[1],this.maxDownloadInGraph=i[2];const o=this.calculateGraphLimits(this.latencyHistory);this.minLatencyInGraph=o[0],this.midLatencyInGraph=o[1],this.maxLatencyInGraph=o[2]}calculateGraphLimits(e){let o=0;return e.forEach(s=>{s>o&&(o=s)}),0===o&&(o+=1),[0,new sv(o).minus(0).dividedBy(2).plus(0).decimalPlaces(1).toNumber(),o]}getIp(){this.ipInfoAllowed&&(this.vpnClientService.updateData(),this.snackbarService.showDone("common.refreshed"))}static{this.\u0275fac=function(i){return new(i||t)(P(sc),P(rc),P(bt),P(Ei),P(kt),P(vt))}}static{this.\u0275cmp=se({type:t,selectors:[["app-vpn-status"]],standalone:!1,features:[be],decls:2,vars:2,consts:[[1,"d-flex","flex-column","h-100","w-100"],[1,"general-container"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton","localVpnKey"],[1,"row"],[1,"col-12"],[1,"row","flex-1"],[1,"col-7","column","left-area"],[1,"col-7","column","left-area-connected"],[1,"col-5","column","right-area"],[1,"column-container"],[1,"content-area"],[1,"title"],[1,"big-text"],[1,"margin"],[1,"big-margin"],[1,"separator"],[1,"small-text"],[3,"text"],[1,"start-button",3,"click","ngClass"],[1,"start-button-img-container"],[1,"start-button-img"],[1,"start-button-img","animated-button"],[3,"diameter"],[3,"inline"],[1,"current-server"],[1,"none"],[1,"lower-text","current-server-note"],[1,"lower-text","last-error"],[1,"flag"],[3,"matTooltip"],[1,"text-container"],[1,"top-line"],["defaultName","vpn.unnamed",3,"isFavorite","isBlocked","hasPassword","name","pk","customName"],[1,"bottom-line"],[3,"shortSimple","text"],[1,"icon-button-separator"],[1,"icon-button"],[1,"transparent-button","vpn-small-button",3,"click","inline","matTooltip"],[1,"time-container"],[1,"time-content"],[1,"state-title"],[1,"d-inline-block"],[1,"state-text"],[1,"state-explanation"],[1,"last-connected-error"],[1,"data-container"],[1,"rounded-elevated-box","data-box","big-box",3,"matTooltip"],[1,"chart-container"],["height","140","color","#00000080",3,"animated","data","min","max"],[1,"chart-label"],[1,"label-container","label-top"],[1,"label"],[1,"line"],[1,"label-container","label-mid"],[1,"label-container","label-bottom"],[1,"content"],[1,"upload",3,"inline"],[1,"speed"],[1,"total"],[1,"chart-label","top-chart-label"],[1,"download",3,"inline"],[1,"latency-container"],[1,"rounded-elevated-box","data-box","small-box",3,"matTooltip"],["height","50","color","#00000080",3,"animated","data","min","max"],[1,"disconnect-button",3,"click","ngClass"],[1,"disconnect-button-container"],[1,"d-inline-flex"],[1,"small-icon","blinking",3,"inline","matTooltip"],[1,"big-icon","transparent-button","vpn-small-button",3,"inline","matTooltip"],[1,"big-icon","transparent-button","vpn-small-button",3,"click","inline","matTooltip"],["defaultName","vpn.unnamed",3,"isFavorite","isBlocked","hasPassword","adjustIconsForBigText","name","pk","customName"]],template:function(i,o){1&i&&(S(0,HIe,4,6,"div",0),S(1,vPe,40,30,"div",1)),2&i&&(k(o.loading?0:-1),d(),k(o.loading?-1:1))},dependencies:[qt,lt,pn,$o,Rk,SD,vr,As,pj,Se,Kf],styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .bottom-line[_ngcontent-%COMP%], .left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .top-line[_ngcontent-%COMP%], .left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .none[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}.general-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%}.column[_ngcontent-%COMP%]{height:100%;display:flex;align-items:center;padding-top:40px;padding-bottom:20px}.column[_ngcontent-%COMP%] .column-container[_ngcontent-%COMP%]{width:100%;text-align:center}.left-area-connected[_ngcontent-%COMP%] .time-container[_ngcontent-%COMP%]{background:#000000b3;border-radius:100px;font-size:.8rem;padding:8px 15px;display:inline-block}.left-area-connected[_ngcontent-%COMP%] .time-container[_ngcontent-%COMP%] .time-content[_ngcontent-%COMP%]{color:#bbb}.left-area-connected[_ngcontent-%COMP%] .time-container[_ngcontent-%COMP%] .time-content[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:10px}.left-area-connected[_ngcontent-%COMP%] .time-container[_ngcontent-%COMP%] .time-content[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{vertical-align:top}.left-area-connected[_ngcontent-%COMP%] .state-title[_ngcontent-%COMP%]{font-size:1rem;color:#bbb}.left-area-connected[_ngcontent-%COMP%] .state-text[_ngcontent-%COMP%]{font-size:2rem;text-transform:uppercase}.left-area-connected[_ngcontent-%COMP%] .state-line[_ngcontent-%COMP%]{height:1px;width:100%;margin-bottom:5px}.left-area-connected[_ngcontent-%COMP%] .green-line[_ngcontent-%COMP%]{background-color:#2ecc54}.left-area-connected[_ngcontent-%COMP%] .yellow-line[_ngcontent-%COMP%]{background-color:#d48b05}.left-area-connected[_ngcontent-%COMP%] .red-line[_ngcontent-%COMP%]{background-color:#da3439}.left-area-connected[_ngcontent-%COMP%] .state-explanation[_ngcontent-%COMP%]{font-size:.7rem}.left-area-connected[_ngcontent-%COMP%] .last-connected-error[_ngcontent-%COMP%]{margin-top:15px;font-size:.8rem;color:#ff393f}.left-area-connected[_ngcontent-%COMP%] .last-connected-error[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:2px;display:inline;-webkit-user-select:none;user-select:none}.left-area-connected[_ngcontent-%COMP%] .data-container[_ngcontent-%COMP%]{margin-top:20px}.left-area-connected[_ngcontent-%COMP%] .latency-container[_ngcontent-%COMP%]{margin-bottom:20px}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%]{cursor:default;display:inline-block}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-container[_ngcontent-%COMP%]{height:0px;position:relative;top:-3px;left:-3px}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%]{height:0px;text-align:left}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%]{position:relative;top:-3px;left:-3px;display:flex;margin-right:-6px}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{font-size:.6rem;margin-left:5px;opacity:.2}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%] .line[_ngcontent-%COMP%]{height:1px;width:10px;background-color:#fff;flex-grow:1;opacity:.1;margin-left:10px;margin-right:5px}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-top[_ngcontent-%COMP%]{align-items:flex-start}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-mid[_ngcontent-%COMP%]{align-items:center}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-bottom[_ngcontent-%COMP%]{align-items:flex-end;position:relative;top:-6px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%]{width:170px;height:140px;margin:5px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .chart-container[_ngcontent-%COMP%]{width:170px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]{width:170px;height:140px;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;padding-bottom:20px;position:relative;top:-3px;left:-3px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:25px;transform:rotate(-90deg);width:40px;height:40px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .download[_ngcontent-%COMP%]{transform:rotate(-90deg)}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .upload[_ngcontent-%COMP%]{transform:rotate(90deg)}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .speed[_ngcontent-%COMP%]{font-size:.875rem}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .total[_ngcontent-%COMP%]{font-size:.8rem;color:#bbb}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%]{height:140px}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%]{width:352px;height:50px}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%] .chart-container[_ngcontent-%COMP%]{width:352px}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]{display:inline-flex;align-items:center;height:100%;font-size:.875rem;position:relative}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px;height:25px;margin-right:5px}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%]{height:50px}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%]{background:linear-gradient(#940000,#7b0000) no-repeat!important;box-shadow:5px 5px 7px #00000080;width:352px;font-size:24px;display:inline-block;border-radius:10px;overflow:hidden;cursor:pointer;-webkit-user-select:none;user-select:none}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%]:hover{background:linear-gradient(#a10000,#900000) no-repeat!important}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%]:active{transform:scale(.98);box-shadow:0 0 7px #00000080}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%]{background-image:url(/assets/img/background-pattern.png);padding:12px}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:10px;align-self:center}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%]{display:inline-block;position:relative;top:4px;margin-right:10px;align-self:center}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{position:relative;top:-2px;line-height:1.7}.left-area[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-size:1.25rem;font-weight:700;text-align:center;text-transform:uppercase}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%]{text-align:center;margin:10px 0;cursor:pointer;display:inline-block;width:140px;height:140px}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%]:active mat-icon[_ngcontent-%COMP%]{transform:scale(.9)}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%]:hover .start-button-img-container[_ngcontent-%COMP%]{opacity:1}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{text-shadow:0px 0px 5px white}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .start-button-img-container[_ngcontent-%COMP%]{width:0px;height:0px;opacity:.7}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .start-button-img-container[_ngcontent-%COMP%] .start-button-img[_ngcontent-%COMP%]{display:inline-block;background-image:url(/assets/img/start-button.png);background-size:contain;width:140px;height:140px}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .start-button-img-container[_ngcontent-%COMP%] .animated-button[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_button-animation 4s linear infinite;pointer-events:none}@keyframes _ngcontent-%COMP%_button-animation{0%{transform:scale(1.5);opacity:0}25%{transform:scale(1);opacity:.8}50%{transform:scale(1.5);opacity:0}to{transform:scale(1.5);opacity:0}}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{line-height:140px;font-size:50px;-webkit-user-select:none;user-select:none;text-shadow:0px 0px 2px white}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%]{display:inline-block;margin-top:50px;opacity:.5}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%]{display:inline-flex;background:#000000b3;border-radius:10px;padding:10px 15px;max-width:280px;text-align:left}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .none[_ngcontent-%COMP%]{font-size:.875rem}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .flag[_ngcontent-%COMP%]{background-image:url(/assets/img/big-flags/unknown.png);width:20px;height:15px;background-size:contain;align-self:center;flex-shrink:0;margin-right:12px}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .flag[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{width:20px;height:15px;background-size:contain}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]{overflow:hidden}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .top-line[_ngcontent-%COMP%]{font-size:.875rem}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .bottom-line[_ngcontent-%COMP%]{font-size:.7rem;color:#bbb}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .icon-button-separator[_ngcontent-%COMP%]{display:flex;align-items:center}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .icon-button-separator[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{width:1px;height:30px;background:#ffffff26;margin-left:12px}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .icon-button[_ngcontent-%COMP%]{font-size:22px;line-height:1;display:flex;align-items:center;padding-left:12px}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .icon-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{cursor:pointer}.left-area[_ngcontent-%COMP%] .lower-text[_ngcontent-%COMP%]{display:inline-block;max-width:280px;margin-top:10px}.left-area[_ngcontent-%COMP%] .lower-text[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:2px;display:inline;-webkit-user-select:none;user-select:none}.left-area[_ngcontent-%COMP%] .current-server-note[_ngcontent-%COMP%]{font-size:.8rem;color:#bbb}.left-area[_ngcontent-%COMP%] .last-error[_ngcontent-%COMP%]{font-size:.8rem;color:#ff393f}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%]{background:#3d67a226;padding:30px;text-align:left;max-width:420px;opacity:.95}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-size:.8rem;color:#bbb}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%]{font-size:1.25rem;overflow-wrap:break-word}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%]{display:inline-block;opacity:.5;margin-left:5px;position:relative;top:2px}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%] .small-icon[_ngcontent-%COMP%]{color:#d48b05;opacity:.7;font-size:.875rem;cursor:default;margin-left:5px}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%] .big-icon[_ngcontent-%COMP%]{font-size:1.125rem;margin-left:5px;position:relative;top:2px;line-height:1}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .small-text[_ngcontent-%COMP%]{font-size:.7rem;margin-top:1px;overflow-wrap:break-word}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .margin[_ngcontent-%COMP%]{height:12px}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-margin[_ngcontent-%COMP%]{height:15px}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .separator[_ngcontent-%COMP%]{height:1px;width:100%;background:#ffffff26}.disabled-button[_ngcontent-%COMP%]{opacity:.5;pointer-events:none}"]})}}return t})(),DD=(()=>{class t{set lastError(e){this.lastErrorInternal=e}constructor(e){this.router=e}canActivate(e,i){return this.checkIfCanActivate()}canActivateChild(e,i){return this.checkIfCanActivate()}checkIfCanActivate(){return this.lastErrorInternal?(this.router.navigate(["vpn","unavailable"],{queryParams:{problem:this.lastErrorInternal}}),ae(!1)):ae(!0)}static{this.\u0275fac=function(i){return new(i||t)(le(vt))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();var Fa=function(t){return t.UnableToConnectWithTheVpnClientApp="unavailable",t.NoLocalVisorPkProvided="pk",t.InvalidStorageState="storage",t.LocalVisorPkChangedDuringUsage="pkChange",t}(Fa||{});let CPe=(()=>{class t extends Wn{constructor(e,i,o){super(),this.route=e,this.vpnAuthGuardService=i,this.vpnClientService=o,this.problem=null,this.navigationsSubscription=this.route.queryParamMap.subscribe(r=>{this.problem=r.get("problem"),this.problem||(this.problem=Fa.UnableToConnectWithTheVpnClientApp),this.vpnAuthGuardService.lastError=this.problem,this.vpnClientService.stopContinuallyUpdatingData(),setTimeout(()=>this.navigationsSubscription.unsubscribe())})}getTitle(){return this.problem===Fa.NoLocalVisorPkProvided?"vpn.error-page.text-pk":this.problem===Fa.InvalidStorageState?"vpn.error-page.text-storage":this.problem===Fa.LocalVisorPkChangedDuringUsage?"vpn.error-page.text-pk-change":"vpn.error-page.text"}getInfo(){return this.problem===Fa.NoLocalVisorPkProvided?"vpn.error-page.more-info-pk":this.problem===Fa.InvalidStorageState?"vpn.error-page.more-info-storage":this.problem===Fa.LocalVisorPkChangedDuringUsage?"vpn.error-page.more-info-pk-change":"vpn.error-page.more-info"}static{this.\u0275fac=function(i){return new(i||t)(P(Ei),P(DD),P(sc))}}static{this.\u0275cmp=se({type:t,selectors:[["app-vpn-error"]],standalone:!1,features:[be],decls:12,vars:7,consts:[[1,"main-container"],[1,"text-container"],[1,"inner-container"],[1,"error-icon"],[3,"inline"],[1,"more-info"]],template:function(i,o){1&i&&(f(0,"div",0)(1,"div",1)(2,"div",2)(3,"div",3)(4,"mat-icon",4),m(5,"error_outline"),h()(),f(6,"div"),m(7),b(8,"translate"),h(),f(9,"div",5),m(10),b(11,"translate"),h()()()()),2&i&&(d(4),v("inline",!0),d(3),O(y(8,3,o.getTitle())),d(3),O(y(11,5,o.getInfo())))},dependencies:[lt,Se],styles:[".main-container[_ngcontent-%COMP%]{height:100%;display:flex}.main-container[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]{width:100%;align-self:center;text-align:center}.main-container[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .inner-container[_ngcontent-%COMP%]{max-width:550px;display:inline-block;font-size:1.25rem}.main-container[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .inner-container[_ngcontent-%COMP%] .error-icon[_ngcontent-%COMP%]{font-size:80px}.main-container[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .inner-container[_ngcontent-%COMP%] .more-info[_ngcontent-%COMP%]{font-size:.8rem;opacity:.75;margin-top:10px}"]})}}return t})();const wPe=["button"],xPe=["firstInput"];let SPe=(()=>{class t{static openDialog(e,i){const o=new Lt;return o.data=i,o.autoFocus=!1,o.width=ze.smallModalWidth,e.open(t,o)}constructor(e,i,o,r,s,a){this.dialogRef=e,this.data=i,this.formBuilder=o,this.snackbarService=r,this.appsService=s,this.vpnClientService=a}ngOnInit(){this.form=this.formBuilder.group({ip:[this.data.ip,Ve.compose([Ve.maxLength(15),this.validateIp.bind(this)])]}),setTimeout(()=>this.firstInput.nativeElement.focus())}ngOnDestroy(){this.operationSubscription&&this.operationSubscription.unsubscribe()}validateIp(){if(this.form){const e=this.form.get("ip").value;return Ye.checkIfIpValidOrEmpty(e)?null:{invalid:!0}}return null}save(){!this.form.valid||this.operationSubscription||(this.button.showLoading(),this.operationSubscription=this.appsService.changeAppSettings(this.data.nodePk,this.vpnClientService.vpnClientAppName,{dns:this.form.get("ip").value}).subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)}))}onSuccess(e){this.dialogRef.close(!0),this.snackbarService.showDone("vpn.dns-config.done")}onError(e){this.button.showError(),this.operationSubscription=null,e=Je(e),this.snackbarService.showError(e)}static{this.\u0275fac=function(i){return new(i||t)(P(It),P(hn),P(vV),P(bt),P(Os),P(sc))}}static{this.\u0275cmp=se({type:t,selectors:[["app-vpn-dns-config"]],viewQuery:function(i,o){if(1&i&&rt(wPe,5)(xPe,5),2&i){let r;ue(r=he())&&(o.button=r.first),ue(r=he())&&(o.firstInput=r.first)}},standalone:!1,decls:14,vars:11,consts:[["firstInput",""],["button",""],[3,"headline"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","ip","maxlength","15","matInput",""],["color","primary",1,"float-right",3,"action","disabled"]],template:function(i,o){1&i&&(f(0,"app-dialog",2),b(1,"translate"),f(2,"form",3)(3,"mat-form-field")(4,"div",4)(5,"label",5),m(6),b(7,"translate"),h(),B(8,"input",6,0),h()()(),f(10,"app-button",7,1),L("action",function(){return o.save()}),m(12),b(13,"translate"),h()()),2&i&&(v("headline",y(1,5,"vpn.dns-config.title")),d(2),v("formGroup",o.form),d(4),O(y(7,7,"vpn.dns-config.ip")),d(4),v("disabled",!o.form.valid),d(2),I(" ",y(13,9,"vpn.dns-config.save-config-button")," "))},dependencies:[Cn,rn,sn,yn,ji,Xt,fn,wn,ei,On,Kt,Se],encapsulation:2})}}return t})();const kPe=["topBarLoading"],DPe=["topBarLoaded"],vj=()=>["vpn.title"];function TPe(t,n){if(1&t&&(f(0,"div",2)(1,"div"),B(2,"app-top-bar",4,0),h(),B(4,"app-loading-indicator",5),h()),2&t){const e=C();d(2),v("titleParts",Mt(5,vj))("tabsData",e.tabsData)("selectedTabIndex",2)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk)}}function MPe(t,n){1&t&&B(0,"mat-spinner",17),2&t&&v("diameter",12)}function EPe(t,n){if(1&t){const e=ce();f(0,"div",3)(1,"div",6),B(2,"app-top-bar",4,1),h(),f(4,"div",7)(5,"div",8)(6,"div",9)(7,"div",10)(8,"table",11)(9,"tr")(10,"th",12)(11,"div",13)(12,"div",14),m(13),b(14,"translate"),h()()(),f(15,"th",12),m(16),b(17,"translate"),h()(),f(18,"tr",15),L("click",function(){return z(e),$(C().changeKillswitchOption())}),f(19,"td",12)(20,"div"),m(21),b(22,"translate"),f(23,"mat-icon",16),b(24,"translate"),m(25,"help"),h()()(),f(26,"td",12),B(27,"span"),m(28),b(29,"translate"),S(30,MPe,1,1,"mat-spinner",17),h()(),f(31,"tr",15),L("click",function(){return z(e),$(C().changeGetIpOption())}),f(32,"td",12)(33,"div"),m(34),b(35,"translate"),f(36,"mat-icon",16),b(37,"translate"),m(38,"help"),h()()(),f(39,"td",12),B(40,"span"),m(41),b(42,"translate"),h()(),f(43,"tr",15),L("click",function(){return z(e),$(C().changeDataUnits())}),f(44,"td",12)(45,"div"),m(46),b(47,"translate"),f(48,"mat-icon",16),b(49,"translate"),m(50,"help"),h()()(),f(51,"td",12),m(52),b(53,"translate"),h()(),f(54,"tr",15),L("click",function(){return z(e),$(C().changeHops())}),f(55,"td",12)(56,"div"),m(57),b(58,"translate"),f(59,"mat-icon",16),b(60,"translate"),m(61,"help"),h()()(),f(62,"td",12),m(63),h()(),f(64,"tr",15),L("click",function(){return z(e),$(C().changeDns())}),f(65,"td",12)(66,"div"),m(67),b(68,"translate"),f(69,"mat-icon",16),b(70,"translate"),m(71,"help"),h()()(),f(72,"td",12),m(73),b(74,"translate"),h()()()()()()()()}if(2&t){const e=C();d(2),v("titleParts",Mt(64,vj))("tabsData",e.tabsData)("selectedTabIndex",2)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk),d(11),I(" ",y(14,32,"vpn.settings-page.setting-small-table-label")," "),d(3),I(" ",y(17,34,"vpn.settings-page.value-small-table-label")," "),d(5),I(" ",y(22,36,"vpn.settings-page.killswitch")," "),d(2),v("inline",!0)("matTooltip",y(24,38,"vpn.settings-page.killswitch-info")),d(4),at(e.getStatusClass(e.backendData.vpnClientAppData.killswitch)),d(),I(" ",y(29,40,e.getStatusText(e.backendData.vpnClientAppData.killswitch))," "),d(2),k(e.working===e.workingOptions.Killswitch?30:-1),d(4),I(" ",y(35,42,"vpn.settings-page.get-ip")," "),d(2),v("inline",!0)("matTooltip",y(37,44,"vpn.settings-page.get-ip-info")),d(4),at(e.getStatusClass(e.getIpOption)),d(),I(" ",y(42,46,e.getStatusText(e.getIpOption))," "),d(5),I(" ",y(47,48,"vpn.settings-page.data-units")," "),d(2),v("inline",!0)("matTooltip",y(49,50,"vpn.settings-page.data-units-info")),d(4),I(" ",y(53,52,e.getUnitsOptionText(e.dataUnitsOption))," "),d(5),I(" ",y(58,54,"vpn.settings-page.minimum-hops")," "),d(2),v("inline",!0)("matTooltip",y(60,56,"vpn.settings-page.minimum-hops-info")),d(4),I(" ",e.backendData.vpnClientAppData.minHops," "),d(4),I(" ",y(68,58,"vpn.settings-page.dns")," "),d(2),v("inline",!0)("matTooltip",y(70,60,"vpn.settings-page.dns-info")),d(4),I(" ",e.backendData.vpnClientAppData.dns?e.backendData.vpnClientAppData.dns:y(74,62,"vpn.settings-page.setting-none")," ")}}var Cc=function(t){return t[t.None=0]="None",t[t.Killswitch=1]="Killswitch",t}(Cc||{});const IPe=[{path:"",component:Rhe},{path:"login",component:XV},{path:"nodes",canActivate:[Bf],canActivateChild:[Bf],children:[{path:"",redirectTo:"list/1",pathMatch:"full"},{path:"list",redirectTo:"list/1",pathMatch:"full"},{path:"list/:page",component:f5},{path:"dmsg",redirectTo:"rewards/1",pathMatch:"full"},{path:"dmsg/:page",redirectTo:"rewards/1"},{path:"rewards",redirectTo:"rewards/1",pathMatch:"full"},{path:"rewards/:page",component:f5},{path:"services-health",component:$xe},{path:"dmsg-settings",component:sSe},{path:":key",component:ke,children:[{path:"",redirectTo:"routing",pathMatch:"full"},{path:"info",component:h2e},{path:"routing",component:R1e},{path:"apps",component:dxe},{path:"transports",redirectTo:"transports/1",pathMatch:"full"},{path:"transports/:page",component:hxe},{path:"routes",redirectTo:"routes/1",pathMatch:"full"},{path:"routes/:page",component:pxe},{path:"rewards",component:Exe},{path:"skynet",component:E2e},{path:"apps-list/:showOfficialApps/:page",component:lSe}]}]},{path:"settings",canActivate:[Bf],canActivateChild:[Bf],children:[{path:"",component:Aye},{path:"labels",redirectTo:"labels/1",pathMatch:"full"},{path:"labels/:page",component:P2e}]},{path:"vpnlogin/:key",component:XV},{path:"vpn",canActivate:[DD],canActivateChild:[DD],children:[{path:"unavailable",component:CPe},{path:":key",children:[{path:"status",component:yPe},{path:"servers",redirectTo:"servers/public/1",pathMatch:"full"},{path:"servers/:type/:page",component:fj},{path:"settings",component:(()=>{class t extends Wn{constructor(e,i,o,r,s,a){super(),this.vpnClientService=e,this.snackbarService=i,this.appsService=o,this.vpnSavedDataService=r,this.dialog=s,this.loading=!0,this.tabsData=si.vpnTabsData,this.working=Cc.None,this.workingOptions=Cc,this.navigationsSubscription=a.paramMap.subscribe(l=>{l.has("key")&&(this.currentLocalPk=l.get("key"),si.changeCurrentPk(this.currentLocalPk),this.tabsData=si.vpnTabsData)}),this.dataSubscription=this.vpnClientService.backendState.subscribe(l=>{l&&l.serviceState!==Pi.PerformingInitialCheck&&(this.backendData=l,this.loading=!1)}),this.getIpOption=this.vpnSavedDataService.getCheckIpSetting(),this.dataUnitsOption=this.vpnSavedDataService.getDataUnitsSetting()}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.dataSubscription.unsubscribe(),this.operationSubscription&&this.operationSubscription.unsubscribe()}getStatusClass(e){return!0===e?"dot-green":"dot-red"}getStatusText(e){return!0===e?"vpn.settings-page.setting-on":"vpn.settings-page.setting-off"}getUnitsOptionText(e){switch(e){case qo.OnlyBits:return"vpn.settings-page.data-units-modal.only-bits";case qo.OnlyBytes:return"vpn.settings-page.data-units-modal.only-bytes";default:return"vpn.settings-page.data-units-modal.bits-speed-and-bytes-volume"}}changeKillswitchOption(){if(this.working===Cc.None)if(this.backendData.vpnClientAppData.running){const e=Ye.createConfirmationDialog(this.dialog,"vpn.settings-page.change-while-connected-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.closeModal(),this.finishChangingKillswitchOption()})}else this.finishChangingKillswitchOption();else this.snackbarService.showWarning("vpn.settings-page.working-warning")}finishChangingKillswitchOption(){this.working=Cc.Killswitch,this.operationSubscription=this.appsService.changeAppSettings(this.currentLocalPk,this.vpnClientService.vpnClientAppName,{killswitch:!this.backendData.vpnClientAppData.killswitch}).subscribe(()=>{this.working=Cc.None,this.vpnClientService.updateData()},e=>{this.working=Cc.None,e=Je(e),this.snackbarService.showError(e)})}changeGetIpOption(){this.getIpOption=!this.getIpOption,this.vpnSavedDataService.setCheckIpSetting(this.getIpOption)}changeDataUnits(){const e=[],i=[];Object.keys(qo).forEach(o=>{const r={label:this.getUnitsOptionText(qo[o])};this.dataUnitsOption===qo[o]&&(r.icon="done"),e.push(r),i.push(qo[o])}),oo.openDialog(this.dialog,e,"vpn.settings-page.data-units-modal.title").afterClosed().subscribe(o=>{o&&(this.dataUnitsOption=i[o-1],this.vpnSavedDataService.setDataUnitsSetting(this.dataUnitsOption),this.topBarLoading&&this.topBarLoading.updateVpnDataStatsUnit(),this.topBarLoaded&&this.topBarLoaded.updateVpnDataStatsUnit())})}changeHops(){F5.openDialog(this.dialog,{nodePk:this.currentLocalPk,minHops:this.backendData.vpnClientAppData.minHops}).afterClosed().subscribe()}changeDns(){SPe.openDialog(this.dialog,{nodePk:this.currentLocalPk,ip:this.backendData.vpnClientAppData.dns}).afterClosed().subscribe()}static{this.\u0275fac=function(i){return new(i||t)(P(sc),P(bt),P(Os),P(rc),P(kt),P(Ei))}}static{this.\u0275cmp=se({type:t,selectors:[["app-vpn-settings-list"]],viewQuery:function(i,o){if(1&i&&rt(kPe,5)(DPe,5),2&i){let r;ue(r=he())&&(o.topBarLoading=r.first),ue(r=he())&&(o.topBarLoaded=r.first)}},standalone:!1,features:[be],decls:2,vars:2,consts:[["topBarLoading",""],["topBarLoaded",""],[1,"d-flex","flex-column","h-100","w-100"],[1,"row"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton","localVpnKey"],[1,"h-100"],[1,"col-12"],[1,"col-12","mt-4.5","vpn-table-container"],[1,"width-limiter"],[1,"rounded-elevated-box"],[1,"box-internal-container"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table"],[1,"data-column"],[1,"header-container"],[1,"header-text"],[1,"selectable",3,"click"],[1,"help-icon",3,"inline","matTooltip"],[3,"diameter"]],template:function(i,o){1&i&&(S(0,TPe,5,6,"div",2),S(1,EPe,75,65,"div",3)),2&i&&(k(o.loading?0:-1),d(),k(o.loading?-1:1))},dependencies:[lt,pn,$o,vr,As,Se],styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .header-container[_ngcontent-%COMP%] .header-text[_ngcontent-%COMP%], .data-column[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}table[_ngcontent-%COMP%]{width:100%}table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding-top:7px!important;padding-bottom:7px!important;font-size:12px!important;font-weight:400!important}.data-column[_ngcontent-%COMP%]{max-width:0;width:50%}.header-container[_ngcontent-%COMP%]{max-width:100%;display:inline-flex}.header-container[_ngcontent-%COMP%] .header-text[_ngcontent-%COMP%]{flex-grow:1}mat-spinner[_ngcontent-%COMP%]{display:inline-block;opacity:.5;margin-left:2px;position:relative;top:2px}mat-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}"]})}}return t})()},{path:"**",redirectTo:"status"}]},{path:"**",redirectTo:"/vpn/unavailable?problem=pk"}]},{path:"**",redirectTo:""}];let PPe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=ot({type:t})}static{this.\u0275inj=et({imports:[b4.forRoot(IPe,{useHash:!0}),b4]})}}return t})(),APe=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({imports:[ri]})}return t})(),RPe=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ot({type:t});static \u0275inj=et({imports:[fB,Wd,ri,xf]})}return t})();class NPe{getTranslation(n){return Un(wc(995)(`./${n}.json`))}}let FPe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=ot({type:t})}static{this.\u0275inj=et({imports:[l4.forRoot({loader:{provide:Rf,useClass:NPe}}),l4]})}}return t})(),LPe=(()=>{class t{shouldDetach(e){return!1}store(e,i){}shouldAttach(e){return!1}retrieve(e){return null}shouldReuseRoute(e,i){return!1}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac})}}return t})();const BPe={disabled:!0};let VPe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=ot({type:t,bootstrap:[Kr]})}static{this.\u0275inj=et({providers:[Gf,{provide:$B,useValue:{duration:3e3,verticalPosition:"top"}},{provide:kB,useValue:{width:"600px",hasBackdrop:!0}},{provide:uk,useClass:_pe},{provide:O3,useClass:LPe},{provide:xS,useValue:BPe},kse(Bl(_a.LegacyInterceptors,[{provide:xL,useFactory:gse},{provide:nf,useExisting:xL,multi:!0}]))],imports:[oF,ure,Rfe,PPe,FPe,Tue,rue,tv,ype,B0e,BB,Fue,RPe,zge,Afe,APe,Kme,Zue,mge]})}}return t})();B0(ke,[qt,$h,$_,Jn,lt,vr,As,uj],[Se]),B0(fj,[qt,Pd,wa,Jn,lt,pn,Rk,vr,cu,As,pj],[g_,Se]),gie().bootstrapModule(VPe,{applicationProviders:[function fee(t){const n=t?.scheduleInRootZone,e=function hee({ngZoneFactory:t,scheduleInRootZone:n}){return t??=()=>new ge({...VR(),scheduleInRootZone:n}),[{provide:em,useValue:!1},{provide:ge,useFactory:t},{provide:is,multi:!0,useFactory:()=>{const e=D(dee,{optional:!0});return()=>e.initialize()}},{provide:is,multi:!0,useFactory:()=>{const e=D(pee);return()=>{e.initialize()}}},{provide:WT,useValue:n??HT}]}({ngZoneFactory:()=>{const i=VR(t);return i.scheduleInRootZone=n,i.shouldCoalesceEventChangeDetection&&hi("NgZone_CoalesceEvent"),new ge(i)},scheduleInRootZone:n});return Iu([{provide:uee,useValue:!0},e])}()]}).catch(t=>console.log(t))},995(vu,Uv,wc){var Sn={"./de.json":[229,[229]],"./de_base.json":[735,[735]],"./en.json":[473,[473]],"./es.json":[18,[18]],"./es_base.json":[434,[434]],"./pt.json":[750,[750]],"./pt_base.json":[718,[718]]};function ts(Ba){if(!wc.o(Sn,Ba))return Promise.resolve().then(()=>{var De=new Error("Cannot find module '"+Ba+"'");throw De.code="MODULE_NOT_FOUND",De});var xc=Sn[Ba],kn=xc[0];return wc.e(xc[1][0]).then(()=>wc.t(kn,19))}ts.keys=()=>Object.keys(Sn),ts.id=995,vu.exports=ts}},vu=>{vu(vu.s=256)}]); \ No newline at end of file diff --git a/static/skywire-manager-src/dist/main.9b3d1a64bbf5d827.js b/static/skywire-manager-src/dist/main.9b3d1a64bbf5d827.js new file mode 100644 index 0000000000..f1e10b56fd --- /dev/null +++ b/static/skywire-manager-src/dist/main.9b3d1a64bbf5d827.js @@ -0,0 +1 @@ +(self.webpackChunkskywire_manager=self.webpackChunkskywire_manager||[]).push([[792],{398(Eu,Yv,Ec){"use strict";let An=null,os=!1,Ua=1;const Rn=Symbol("SIGNAL");function Te(t){const n=An;return An=t,n}const Ic={version:0,lastCleanEpoch:0,dirty:!1,producers:void 0,producersTail:void 0,consumers:void 0,consumersTail:void 0,recomputing:!1,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,kind:"unknown",producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function Pu(t){if(os)throw new Error("");if(null===An)return;An.consumerOnSignalRead(t);const n=An.producersTail;if(void 0!==n&&n.producer===t)return;let e;const i=An.recomputing;if(i&&(e=void 0!==n?n.nextProducer:An.producers,void 0!==e&&e.producer===t))return An.producersTail=e,void(e.lastReadVersion=t.version);const o=t.consumersTail;if(void 0!==o&&o.consumer===An&&(!i||function D6(t,n){const e=n.producersTail;if(void 0!==e){let i=n.producers;do{if(i===t)return!0;if(i===e)break;i=i.nextProducer}while(void 0!==i)}return!1}(o,An)))return;const r=Ac(An),s={producer:t,consumer:An,nextProducer:e,prevConsumer:o,lastReadVersion:t.version,nextConsumer:void 0};An.producersTail=s,void 0!==n?n.nextProducer=s:An.producers=s,r&&MD(t,s)}function Iu(t){if((!Ac(t)||t.dirty)&&(t.dirty||t.lastCleanEpoch!==Ua)){if(!t.producerMustRecompute(t)&&!Ip(t))return void Pp(t);t.producerRecomputeValue(t),Pp(t)}}function kD(t){if(void 0===t.consumers)return;const n=os;os=!0;try{for(let e=t.consumers;void 0!==e;e=e.nextConsumer){const i=e.consumer;i.dirty||x6(i)}}finally{os=n}}function DD(){return!1!==An?.consumerAllowSignalWrites}function x6(t){t.dirty=!0,kD(t),t.consumerMarkedDirty?.(t)}function Pp(t){t.dirty=!1,t.lastCleanEpoch=Ua}function Oc(t){return t&&function S6(t){t.producersTail=void 0,t.recomputing=!0}(t),Te(t)}function Ou(t,n){Te(n),t&&function k6(t){t.recomputing=!1;const n=t.producersTail;let e=void 0!==n?n.nextProducer:t.producers;if(void 0!==e){if(Ac(t))do{e=Zv(e)}while(void 0!==e);void 0!==n?n.nextProducer=void 0:t.producers=void 0}}(t)}function Ip(t){for(let n=t.producers;void 0!==n;n=n.nextProducer){const e=n.producer,i=n.lastReadVersion;if(i!==e.version||(Iu(e),i!==e.version))return!0}return!1}function Au(t){if(Ac(t)){let n=t.producers;for(;void 0!==n;)n=Zv(n)}t.producers=void 0,t.producersTail=void 0,t.consumers=void 0,t.consumersTail=void 0}function MD(t,n){const e=t.consumersTail,i=Ac(t);if(void 0!==e?(n.nextConsumer=e.nextConsumer,e.nextConsumer=n):(n.nextConsumer=void 0,t.consumers=n),n.prevConsumer=e,t.consumersTail=n,!i)for(let o=t.producers;void 0!==o;o=o.nextProducer)MD(o.producer,o)}function Zv(t){const n=t.producer,e=t.nextProducer,i=t.nextConsumer,o=t.prevConsumer;if(t.nextConsumer=void 0,t.prevConsumer=void 0,void 0!==i?i.prevConsumer=o:n.consumersTail=o,void 0!==o)o.nextConsumer=i;else if(n.consumers=i,!Ac(n)){let r=n.producers;for(;void 0!==r;)r=Zv(r)}return e}function Ac(t){return t.consumerIsAlwaysLive||void 0!==t.consumers}function Jv(t,n){return Object.is(t,n)}function TD(t,n){const e=Object.create(M6);e.computation=t,void 0!==n&&(e.equal=n);const i=()=>{if(Iu(e),Pu(e),e.value===rs)throw e.error;return e.value};return i[Rn]=e,i}const za=Symbol("UNSET"),Rc=Symbol("COMPUTING"),rs=Symbol("ERRORED"),M6={...Ic,value:za,dirty:!0,error:null,equal:Jv,kind:"computed",producerMustRecompute:t=>t.value===za||t.value===Rc,producerRecomputeValue(t){if(t.value===Rc)throw new Error("");const n=t.value;t.value=Rc;const e=Oc(t);let i,o=!1;try{i=t.computation(),Te(null),o=n!==za&&n!==rs&&i!==rs&&t.equal(n,i)}catch(r){i=rs,t.error=r}finally{Ou(t,e)}o?t.value=n:(t.value=i,t.version++)}};let ED=function T6(){throw new Error};function PD(t){ED(t)}function Ap(t,n){DD()||PD(t),t.equal(t.value,n)||(t.value=n,function O6(t){t.version++,function w6(){Ua++}(),kD(t)}(t))}function ID(t,n){DD()||PD(t),Ap(t,n(t.value))}const ey={...Ic,equal:Jv,value:void 0,kind:"signal"},A6={...Ic,consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!0,dirty:!0,kind:"effect"};function cn(t){return"function"==typeof t}function ty(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 ny=ty(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 Rp(t,n){if(t){const e=t.indexOf(n);0<=e&&t.splice(e,1)}}class pt{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(cn(i))try{i()}catch(r){n=r instanceof ny?r.errors:[r]}const{_finalizers:o}=this;if(o){this._finalizers=null;for(const r of o)try{RD(r)}catch(s){n=n??[],s instanceof ny?n=[...n,...s.errors]:n.push(s)}}if(n)throw new ny(n)}}add(n){var e;if(n&&n!==this)if(this.closed)RD(n);else{if(n instanceof pt){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)&&Rp(e,n)}remove(n){const{_finalizers:e}=this;e&&Rp(e,n),n instanceof pt&&n._removeParent(this)}}pt.EMPTY=(()=>{const t=new pt;return t.closed=!0,t})();const OD=pt.EMPTY;function AD(t){return t instanceof pt||t&&"closed"in t&&cn(t.remove)&&cn(t.add)&&cn(t.unsubscribe)}function RD(t){cn(t)?t():t.unsubscribe()}const $a={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},Fp={setTimeout(t,n,...e){const{delegate:i}=Fp;return i?.setTimeout?i.setTimeout(t,n,...e):setTimeout(t,n,...e)},clearTimeout(t){const{delegate:n}=Fp;return(n?.clearTimeout||clearTimeout)(t)},delegate:void 0};function FD(t){Fp.setTimeout(()=>{const{onUnhandledError:n}=$a;if(!n)throw t;n(t)})}function Np(){}const F6=iy("C",void 0,void 0);function iy(t,n,e){return{kind:t,value:n,error:e}}let Wa=null;function Lp(t){if($a.useDeprecatedSynchronousErrorHandling){const n=!Wa;if(n&&(Wa={errorThrown:!1,error:null}),t(),n){const{errorThrown:e,error:i}=Wa;if(Wa=null,e)throw i}}else t()}class Bp extends pt{constructor(n){super(),this.isStopped=!1,n?(this.destination=n,AD(n)&&n.add(this)):this.destination=U6}static create(n,e,i){return new Ru(n,e,i)}next(n){this.isStopped?ry(function L6(t){return iy("N",t,void 0)}(n),this):this._next(n)}error(n){this.isStopped?ry(function N6(t){return iy("E",void 0,t)}(n),this):(this.isStopped=!0,this._error(n))}complete(){this.isStopped?ry(F6,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 V6=Function.prototype.bind;function oy(t,n){return V6.call(t,n)}class H6{constructor(n){this.partialObserver=n}next(n){const{partialObserver:e}=this;if(e.next)try{e.next(n)}catch(i){Vp(i)}}error(n){const{partialObserver:e}=this;if(e.error)try{e.error(n)}catch(i){Vp(i)}else Vp(n)}complete(){const{partialObserver:n}=this;if(n.complete)try{n.complete()}catch(e){Vp(e)}}}class Ru extends Bp{constructor(n,e,i){let o;if(super(),cn(n)||!n)o={next:n??void 0,error:e??void 0,complete:i??void 0};else{let r;this&&$a.useDeprecatedNextContext?(r=Object.create(n),r.unsubscribe=()=>this.unsubscribe(),o={next:n.next&&oy(n.next,r),error:n.error&&oy(n.error,r),complete:n.complete&&oy(n.complete,r)}):o=n}this.destination=new H6(o)}}function Vp(t){$a.useDeprecatedSynchronousErrorHandling?function B6(t){$a.useDeprecatedSynchronousErrorHandling&&Wa&&(Wa.errorThrown=!0,Wa.error=t)}(t):FD(t)}function ry(t,n){const{onStoppedNotification:e}=$a;e&&Fp.setTimeout(()=>e(t,n))}const U6={closed:!0,next:Np,error:function j6(t){throw t},complete:Np},sy="function"==typeof Symbol&&Symbol.observable||"@@observable";function Ga(t){return t}function ND(t){return 0===t.length?Ga:1===t.length?t[0]:function(e){return t.reduce((i,o)=>o(i),e)}}let Ft=(()=>{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 W6(t){return t&&t instanceof Bp||function $6(t){return t&&cn(t.next)&&cn(t.error)&&cn(t.complete)}(t)&&AD(t)}(e)?e:new Ru(e,i,o);return Lp(()=>{const{operator:s,source:a}=this;r.add(s?s.call(r,a):a?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=LD(i))((o,r)=>{const s=new Ru({next:a=>{try{e(a)}catch(l){r(l),s.unsubscribe()}},error:r,complete:o});this.subscribe(s)})}_subscribe(e){var i;return null===(i=this.source)||void 0===i?void 0:i.subscribe(e)}[sy](){return this}pipe(...e){return ND(e)(this)}toPromise(e){return new(e=LD(e))((i,o)=>{let r;this.subscribe(s=>r=s,s=>o(s),()=>i(r))})}}return t.create=n=>new t(n),t})();function LD(t){var n;return null!==(n=t??$a.Promise)&&void 0!==n?n:Promise}const G6=ty(t=>function(){t(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let ly,me=(()=>{class t extends Ft{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(e){const i=new ay(this,this);return i.operator=e,i}_throwIfClosed(){if(this.closed)throw new G6}next(e){Lp(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const i of this.currentObservers)i.next(e)}})}error(e){Lp(()=>{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(){Lp(()=>{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?OD:(this.currentObservers=null,r.push(e),new pt(()=>{this.currentObservers=null,Rp(r,e)}))}_checkFinalizedStatuses(e){const{hasError:i,thrownError:o,isStopped:r}=this;i?e.error(o):r&&e.complete()}asObservable(){const e=new Ft;return e.source=this,e}}return t.create=(n,e)=>new ay(n,e),t})();class ay extends me{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:OD}}class ki extends me{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 cy(){return ly}function $s(t){const n=ly;return ly=t,n}const q6=Symbol("NotFound");function dy(t){return t===q6||"\u0275NotFound"===t?.name}Error;const HD="https://angular.dev/best-practices/security#preventing-cross-site-scripting-xss";class X extends Error{code;constructor(n,e){super(co(n,e)),this.code=n}}function co(t,n){return`${function Y6(t){return`NG0${Math.abs(t)}`}(t)}${n?": "+n:""}`}const Fn=globalThis;function Tt(t){for(let n in t)if(t[n]===Tt)return n;throw Error("")}function X6(t,n){for(const e in n)n.hasOwnProperty(e)&&!t.hasOwnProperty(e)&&(t[e]=n[e])}function Ws(t){if("string"==typeof t)return t;if(Array.isArray(t))return`[${t.map(Ws).join(", ")}]`;if(null==t)return""+t;const n=t.overriddenName||t.name;if(n)return`${n}`;const e=t.toString();if(null==e)return""+e;const i=e.indexOf("\n");return i>=0?e.slice(0,i):e}function uy(t,n){return t?n?`${t} ${n}`:t:n||""}const Z6=Tt({__forward_ref__:Tt});function Nt(t){return t.__forward_ref__=Nt,t}function qe(t){return jp(t)?t():t}function jp(t){return"function"==typeof t&&t.hasOwnProperty(Z6)&&t.__forward_ref__===Nt}function te(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function Je(t){return{providers:t.providers||[],imports:t.imports||[]}}function Up(t){return function oj(t,n){return t.hasOwnProperty(n)&&t[n]||null}(t,$p)}function zp(t){return t&&t.hasOwnProperty(hy)?t[hy]:null}const $p=Tt({\u0275prov:Tt}),hy=Tt({\u0275inj:Tt});class Z{_desc;ngMetadataName="InjectionToken";\u0275prov;constructor(n,e){this._desc=n,this.\u0275prov=void 0,"number"==typeof e?this.__NG_ELEMENT_ID__=e:void 0!==e&&(this.\u0275prov=te({token:this,providedIn:e.providedIn||"root",factory:e.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}function py(t){return t&&!!t.\u0275providers}const jD=Tt({\u0275cmp:Tt}),dj=Tt({\u0275dir:Tt}),uj=Tt({\u0275pipe:Tt}),UD=Tt({\u0275mod:Tt}),Ya=Tt({\u0275fac:Tt}),Fu=Tt({__NG_ELEMENT_ID__:Tt}),zD=Tt({__NG_ENV_ID__:Tt});function Er(t){return Gp(t),t[UD]||null}function xt(t){return Gp(t),t[jD]||null}function Zi(t){return Gp(t),t[dj]||null}function tr(t){return Gp(t),t[uj]||null}function Gp(t,n){if(null==t)throw new X(-919,!1)}function je(t){return"string"==typeof t?t:null==t?"":String(t)}const gy=Tt({ngErrorCode:Tt}),$D=Tt({ngErrorMessage:Tt}),Nu=Tt({ngTokenPath:Tt});function _y(t,n){return WD("",-200,n)}function by(t,n){throw new X(-201,!1)}function WD(t,n,e){const i=new X(n,t);return i[gy]=n,i[$D]=t,e&&(i[Nu]=e),i}let vy;function GD(){return vy}function uo(t){const n=vy;return vy=t,n}function qD(t,n,e){const i=Up(t);return i&&"root"==i.providedIn?void 0===i.value?i.value=i.factory():i.value:8&e?null:void 0!==n?n:void by()}const Xa={};class _j{injector;constructor(n){this.injector=n}retrieve(n,e){const i=Lu(e)||0;try{return this.injector.get(n,8&i?null:Xa,i)}catch(o){if(dy(o))return o;throw o}}}function bj(t,n=0){const e=cy();if(void 0===e)throw new X(-203,!1);if(null===e)return qD(t,void 0,n);{const i=function vj(t){return{optional:!!(8&t),host:!!(1&t),self:!!(2&t),skipSelf:!!(4&t)}}(n),o=e.retrieve(t,i);if(dy(o)){if(i.optional)return null;throw o}return o}}function ce(t,n=0){return(GD()||bj)(qe(t),n)}function D(t,n){return ce(t,Lu(n))}function Lu(t){return typeof t>"u"||"number"==typeof t?t:0|(t.optional&&8)|(t.host&&1)|(t.self&&2)|(t.skipSelf&&4)}function Cy(t){const n=[];for(let e=0;eArray.isArray(e)?Bc(e,n):n(e))}function YD(t,n,e){n>=t.length?t.push(e):t.splice(n,0,e)}function qp(t,n){return n>=t.length-1?t.pop():t.splice(n,1)[0]}function Yp(t,n,e){let i=Vu(t,n);return i>=0?t[1|i]=e:(i=~i,function ZD(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 wy(t,n){const e=Vu(t,n);if(e>=0)return t[1|e]}function Vu(t,n){return function wj(t,n,e){let i=0,o=t.length>>e;for(;o!==i;){const r=i+(o-i>>1),s=t[r<n?o=r:i=r+1}return~(o<{e.push(s)};return Bc(n,s=>{const a=s;Zp(a,r,[],i)&&(o||=[],o.push(a))}),void 0!==o&&JD(o,r),e}function JD(t,n){for(let e=0;e{n(r,i)})}}function Zp(t,n,e,i){if(!(t=qe(t)))return!1;let o=null,r=zp(t);const s=!r&&xt(t);if(r||s){if(s&&!s.standalone)return!1;o=t}else{const l=t.ngModule;if(r=zp(l),!r)return!1;o=l}const a=i.has(o);if(s){if(a)return!1;if(i.add(o),s.dependencies){const l="function"==typeof s.dependencies?s.dependencies():s.dependencies;for(const c of l)Zp(c,n,e,i)}}else{if(!r)return!1;{if(null!=r.imports&&!a){let c;i.add(o),Bc(r.imports,f=>{Zp(f,n,e,i)&&(c||=[],c.push(f))}),void 0!==c&&JD(c,n)}if(!a){const c=Za(o)||(()=>new o);n({provide:o,useFactory:c,deps:Yt},o),n({provide:xy,useValue:o,multi:!0},o),n({provide:ss,useValue:()=>ce(o),multi:!0},o)}const l=r.providers;if(null!=l&&!a){const c=t;ky(l,f=>{n(f,c)})}}}return o!==t&&void 0!==t.providers}function ky(t,n){for(let e of t)py(e)&&(e=e.\u0275providers),Array.isArray(e)?ky(e,n):n(e)}const kj=Tt({provide:String,useValue:Tt});function Dy(t){return null!==t&&"object"==typeof t&&kj in t}function as(t){return"function"==typeof t}const My=new Z(""),Qp={},iM={};let Ty;function Jp(){return void 0===Ty&&(Ty=new Xp),Ty}class zn{}class Qa extends zn{parent;source;scopes;records=new Map;_ngOnDestroyHooks=new Set;_onDestroyHooks=[];get destroyed(){return this._destroyed}_destroyed=!1;injectorDefTypes;constructor(n,e,i,o){super(),this.parent=e,this.source=i,this.scopes=o,Py(n,s=>this.processProvider(s)),this.records.set(QD,Vc(void 0,this)),o.has("environment")&&this.records.set(zn,Vc(void 0,this));const r=this.records.get(My);null!=r&&"string"==typeof r.value&&this.scopes.add(r.value),this.injectorDefTypes=new Set(this.get(xy,Yt,{self:!0}))}retrieve(n,e){const i=Lu(e)||0;try{return this.get(n,Xa,i)}catch(o){if(dy(o))return o;throw o}}destroy(){ju(this),this._destroyed=!0;const n=Te(null);try{for(const i of this._ngOnDestroyHooks)i.ngOnDestroy();const e=this._onDestroyHooks;this._onDestroyHooks=[];for(const i of e)i()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),Te(n)}}onDestroy(n){return ju(this),this._onDestroyHooks.push(n),()=>this.removeOnDestroy(n)}runInContext(n){ju(this);const e=$s(this),i=uo(void 0);try{return n()}finally{$s(e),uo(i)}}get(n,e=Xa,i){if(ju(this),n.hasOwnProperty(zD))return n[zD](this);const o=Lu(i),s=$s(this),a=uo(void 0);try{if(!(4&o)){let c=this.records.get(n);if(void 0===c){const f=function Pj(t){return"function"==typeof t||"object"==typeof t&&"InjectionToken"===t.ngMetadataName}(n)&&Up(n);c=f&&this.injectableDefInScope(f)?Vc(Ey(n),Qp):null,this.records.set(n,c)}if(null!=c)return this.hydrate(n,c,o)}return(2&o?Jp():this.parent).get(n,e=8&o&&e===Xa?null:e)}catch(l){const c=function mj(t){return t[gy]}(l);throw-200===c||-201===c?new X(c,null):l}finally{uo(a),$s(s)}}resolveInjectorInitializers(){const n=Te(null),e=$s(this),i=uo(void 0);try{const r=this.get(ss,Yt,{self:!0});for(const s of r)s()}finally{$s(e),uo(i),Te(n)}}toString(){return"R3Injector[...]"}processProvider(n){let e=as(n=qe(n))?n:qe(n&&n.provide);const i=function Mj(t){return Dy(t)?Vc(void 0,t.useValue):Vc(oM(t),Qp)}(n);if(!as(n)&&!0===n.multi){let o=this.records.get(e);o||(o=Vc(void 0,Qp,!0),o.factory=()=>Cy(o.multi),this.records.set(e,o)),e=n,o.multi.push(n)}this.records.set(e,i)}hydrate(n,e,i){const o=Te(null);try{if(e.value===iM)throw _y();return e.value===Qp&&(e.value=iM,e.value=e.factory(void 0,i)),"object"==typeof e.value&&e.value&&function Ej(t){return null!==t&&"object"==typeof t&&"function"==typeof t.ngOnDestroy}(e.value)&&this._ngOnDestroyHooks.add(e.value),e.value}finally{Te(o)}}injectableDefInScope(n){if(!n.providedIn)return!1;const e=qe(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 Ey(t){const n=Up(t),e=null!==n?n.factory:Za(t);if(null!==e)return e;if(t instanceof Z)throw new X(-204,!1);if(t instanceof Function)return function Dj(t){if(t.length>0)throw new X(-204,!1);const e=function rj(t){return(t?.[$p]??null)||null}(t);return null!==e?()=>e.factory(t):()=>new t}(t);throw new X(-204,!1)}function oM(t,n,e){let i;if(as(t)){const o=qe(t);return Za(o)||Ey(o)}if(Dy(t))i=()=>qe(t.useValue);else if(function tM(t){return!(!t||!t.useFactory)}(t))i=()=>t.useFactory(...Cy(t.deps||[]));else if(function eM(t){return!(!t||!t.useExisting)}(t))i=(o,r)=>ce(qe(t.useExisting),void 0!==r&&8&r?8:void 0);else{const o=qe(t&&(t.useClass||t.provide));if(!function Tj(t){return!!t.deps}(t))return Za(o)||Ey(o);i=()=>new o(...Cy(t.deps))}return i}function ju(t){if(t.destroyed)throw new X(-205,!1)}function Vc(t,n,e=!1){return{factory:t,value:n,multi:e?[]:void 0}}function Py(t,n){for(const e of t)Array.isArray(e)?Py(e,n):e&&py(e)?Py(e.\u0275providers,n):n(e)}function Qi(t,n){let e;t instanceof Qa?(ju(t),e=t):e=new _j(t);const o=$s(e),r=uo(void 0);try{return n()}finally{$s(o),uo(r)}}function Iy(){return void 0!==GD()||null!=cy()}function Dn(t){return Array.isArray(t)&&"object"==typeof t[1]}function Ji(t){return Array.isArray(t)&&!0===t[1]}function sM(t){return!!(4&t.flags)}function Ir(t){return t.componentOffset>-1}function $c(t){return!(1&~t.flags)}function ir(t){return!!t.template}function Ks(t){return!!(512&t[2])}function us(t){return!(256&~t[2])}function gi(t){for(;Array.isArray(t);)t=t[0];return t}function Wc(t,n){return gi(n[t])}function Zn(t,n){return gi(n[t.index])}function Gc(t,n){return t.data[n]}function il(t,n){return t[n]}function eo(t,n){const e=n[t];return Dn(e)?e:e[0]}function Fy(t){return!(128&~t[2])}function Li(t,n){return null==n?null:t[n]}function hM(t){t[17]=0}function fM(t){1024&t[2]||(t[2]|=1024,Fy(t)&&qc(t))}function im(t){return!!(9216&t[2]||t[24]?.dirty)}function Ny(t){t[10].changeDetectionScheduler?.notify(8),64&t[2]&&(t[2]|=1024),im(t)&&qc(t)}function qc(t){t[10].changeDetectionScheduler?.notify(0);let n=hs(t);for(;null!==n&&!(8192&n[2])&&(n[2]|=8192,Fy(n));)n=hs(n)}function om(t,n){if(us(t))throw new X(911,!1);null===t[21]&&(t[21]=[]),t[21].push(n)}function hs(t){const n=t[3];return Ji(n)?n[3]:n}function mM(t){return t[7]??=[]}function gM(t){return t.cleanup??=[]}const Be={lFrame:IM(null),bindingsEnabled:!0,skipHydrationRootTNode:null};let Vy=!1;function _M(){Be.lFrame.elementDepthCount--}function Hy(){return Be.bindingsEnabled}function bM(){return null!==Be.skipHydrationRootTNode}function vM(t){return Be.skipHydrationRootTNode===t}function yM(){Be.skipHydrationRootTNode=null}function ne(){return Be.lFrame.lView}function ze(){return Be.lFrame.tView}function j(t){return Be.lFrame.contextLView=t,t[8]}function U(t){return Be.lFrame.contextLView=null,t}function Ve(){let t=CM();for(;null!==t&&64===t.type;)t=t.parent;return t}function CM(){return Be.lFrame.currentTNode}function fs(t,n){const e=Be.lFrame;e.currentTNode=t,e.isParent=n}function wM(){return Be.lFrame.isParent}function xM(){Be.lFrame.isParent=!1}function DM(){return Vy}function rm(t){const n=Vy;return Vy=t,n}function Bi(){const t=Be.lFrame;let n=t.bindingRootIndex;return-1===n&&(n=t.bindingRootIndex=t.tView.bindingStartIndex),n}function ps(){return Be.lFrame.bindingIndex}function ho(){return Be.lFrame.bindingIndex++}function ms(t){const n=Be.lFrame,e=n.bindingIndex;return n.bindingIndex=n.bindingIndex+t,e}function zj(t,n){const e=Be.lFrame;e.bindingIndex=e.bindingRootIndex=t,jy(n)}function jy(t){Be.lFrame.currentDirectiveIndex=t}function zy(){return Be.lFrame.currentQueryIndex}function sm(t){Be.lFrame.currentQueryIndex=t}function Wj(t){const n=t[1];return 2===n.type?n.declTNode:1===n.type?t[5]:null}function EM(t,n,e){if(4&e){let o=n,r=t;for(;!(o=o.parent,null!==o||1&e||(o=Wj(r),null===o||(r=r[14],10&o.type))););if(null===o)return!1;n=o,t=r}const i=Be.lFrame=PM();return i.currentTNode=n,i.lView=t,!0}function $y(t){const n=PM(),e=t[1];Be.lFrame=n,n.currentTNode=e.firstChild,n.lView=t,n.tView=e,n.contextLView=t,n.bindingIndex=e.bindingStartIndex,n.inI18n=!1}function PM(){const t=Be.lFrame,n=null===t?null:t.child;return null===n?IM(t):n}function IM(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 OM(){const t=Be.lFrame;return Be.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}const AM=OM;function Wy(){const t=OM();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 Di(){return Be.lFrame.selectedIndex}function ol(t){Be.lFrame.selectedIndex=t}function or(){const t=Be.lFrame;return Gc(t.tView,t.selectedIndex)}function rl(){Be.lFrame.currentNamespace="svg"}function Gy(){!function Kj(){Be.lFrame.currentNamespace=null}()}let RM=!0;function am(){return RM}function $u(t){RM=t}function FM(t,n=null,e=null,i){const o=NM(t,n,e);return o.resolveInjectorInitializers(),o}function NM(t,n=null,e=null,i,o=new Set){const r=[e||Yt,Sj(t)];return new Qa(r,n||Jp(),null,o)}class He{static THROW_IF_NOT_FOUND=Xa;static NULL=new Xp;static create(n,e){if(Array.isArray(n))return FM({name:""},e,n);{const i=n.name??"";return FM({name:i},n.parent,n.providers)}}static \u0275prov=te({token:He,providedIn:"any",factory:()=>ce(QD)});static __NG_ELEMENT_ID__=-1}const et=new Z("");let rr=(()=>class t{static __NG_ELEMENT_ID__=Xj;static __NG_ENV_ID__=e=>e})();class LM extends rr{_lView;constructor(n){super(),this._lView=n}get destroyed(){return us(this._lView)}onDestroy(n){const e=this._lView;return om(e,n),()=>function Ly(t,n){if(null===t[21])return;const e=t[21].indexOf(n);-1!==e&&t[21].splice(e,1)}(e,n)}}function Xj(){return new LM(ne())}const BM=!1,Zj=new Z("");let Ys=(()=>{class t{taskId=0;pendingTasks=new Set;destroyed=!1;pendingTask=new ki(!1);debugTaskTracker=D(Zj,{optional:!0});get hasPendingTasks(){return!this.destroyed&&this.pendingTask.value}get hasPendingTasksObservable(){return this.destroyed?new Ft(e=>{e.next(!1),e.complete()}):this.pendingTask}add(){!this.hasPendingTasks&&!this.destroyed&&this.pendingTask.next(!0);const e=this.taskId++;return this.pendingTasks.add(e),this.debugTaskTracker?.add(e),e}has(e){return this.pendingTasks.has(e)}remove(e){this.pendingTasks.delete(e),this.debugTaskTracker?.remove(e),0===this.pendingTasks.size&&this.hasPendingTasks&&this.pendingTask.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this.hasPendingTasks&&this.pendingTask.next(!1),this.destroyed=!0,this.pendingTask.unsubscribe()}static \u0275prov=te({token:t,providedIn:"root",factory:()=>new t})}return t})();const we=class Qj extends me{__isAsync;destroyRef=void 0;pendingTasks=void 0;constructor(n=!1){super(),this.__isAsync=n,Iy()&&(this.destroyRef=D(rr,{optional:!0})??void 0,this.pendingTasks=D(Ys,{optional:!0})??void 0)}emit(n){const e=Te(null);try{super.next(n)}finally{Te(e)}}subscribe(n,e,i){let o=n,r=e||(()=>null),s=i;if(n&&"object"==typeof n){const l=n;o=l.next?.bind(l),r=l.error?.bind(l),s=l.complete?.bind(l)}this.__isAsync&&(r=this.wrapInTimeout(r),o&&(o=this.wrapInTimeout(o)),s&&(s=this.wrapInTimeout(s)));const a=super.subscribe({next:o,error:r,complete:s});return n instanceof pt&&n.add(a),a}wrapInTimeout(n){return e=>{const i=this.pendingTasks?.add();setTimeout(()=>{try{n(e)}finally{void 0!==i&&this.pendingTasks?.remove(i)}})}}};function lm(...t){}function VM(t){let n,e;function i(){t=lm;try{void 0!==e&&"function"==typeof cancelAnimationFrame&&cancelAnimationFrame(e),void 0!==n&&clearTimeout(n)}catch{}}return n=setTimeout(()=>{t(),i()}),"function"==typeof requestAnimationFrame&&(e=requestAnimationFrame(()=>{t(),i()})),()=>i()}function Jj(t){return queueMicrotask(()=>t()),()=>{t=lm}}const qy="isAngularZone",cm=qy+"_ID";let eU=0;class _e{hasPendingMacrotasks=!1;hasPendingMicrotasks=!1;isStable=!0;onUnstable=new we(!1);onMicrotaskEmpty=new we(!1);onStable=new we(!1);onError=new we(!1);constructor(n){const{enableLongStackTrace:e=!1,shouldCoalesceEventChangeDetection:i=!1,shouldCoalesceRunChangeDetection:o=!1,scheduleInRootZone:r=BM}=n;if(typeof Zone>"u")throw new X(908,!1);Zone.assertZonePatched();const s=this;s._nesting=0,s._outer=s._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(s._inner=s._inner.fork(new Zone.TaskTrackingZoneSpec)),e&&Zone.longStackTraceZoneSpec&&(s._inner=s._inner.fork(Zone.longStackTraceZoneSpec)),s.shouldCoalesceEventChangeDetection=!o&&i,s.shouldCoalesceRunChangeDetection=o,s.callbackScheduled=!1,s.scheduleInRootZone=r,function iU(t){const n=()=>{!function nU(t){function n(){VM(()=>{t.callbackScheduled=!1,Yy(t),t.isCheckStableRunning=!0,Ky(t),t.isCheckStableRunning=!1})}t.isCheckStableRunning||t.callbackScheduled||(t.callbackScheduled=!0,t.scheduleInRootZone?Zone.root.run(()=>{n()}):t._outer.run(()=>{n()}),Yy(t))}(t)},e=eU++;t._inner=t._inner.fork({name:"angular",properties:{[qy]:!0,[cm]:e,[cm+e]:!0},onInvokeTask:(i,o,r,s,a,l)=>{if(function rU(t){return UM(t,"__ignore_ng_zone__")}(l))return i.invokeTask(r,s,a,l);try{return HM(t),i.invokeTask(r,s,a,l)}finally{(t.shouldCoalesceEventChangeDetection&&"eventTask"===s.type||t.shouldCoalesceRunChangeDetection)&&n(),jM(t)}},onInvoke:(i,o,r,s,a,l,c)=>{try{return HM(t),i.invoke(r,s,a,l,c)}finally{t.shouldCoalesceRunChangeDetection&&!t.callbackScheduled&&!function sU(t){return UM(t,"__scheduler_tick__")}(l)&&n(),jM(t)}},onHasTask:(i,o,r,s)=>{i.hasTask(r,s),o===r&&("microTask"==s.change?(t._hasPendingMicrotasks=s.microTask,Yy(t),Ky(t)):"macroTask"==s.change&&(t.hasPendingMacrotasks=s.macroTask))},onHandleError:(i,o,r,s)=>(i.handleError(r,s),t.runOutsideAngular(()=>t.onError.emit(s)),!1)})}(s)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get(qy)}static assertInAngularZone(){if(!_e.isInAngularZone())throw new X(909,!1)}static assertNotInAngularZone(){if(_e.isInAngularZone())throw new X(909,!1)}run(n,e,i){return this._inner.run(n,e,i)}runTask(n,e,i,o){const r=this._inner,s=r.scheduleEventTask("NgZoneEvent: "+o,n,tU,lm,lm);try{return r.runTask(s,e,i)}finally{r.cancelTask(s)}}runGuarded(n,e,i){return this._inner.runGuarded(n,e,i)}runOutsideAngular(n){return this._outer.run(n)}}const tU={};function Ky(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 Yy(t){t.hasPendingMicrotasks=!!(t._hasPendingMicrotasks||(t.shouldCoalesceEventChangeDetection||t.shouldCoalesceRunChangeDetection)&&!0===t.callbackScheduled)}function HM(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function jM(t){t._nesting--,Ky(t)}class oU{hasPendingMicrotasks=!1;hasPendingMacrotasks=!1;isStable=!0;onUnstable=new we;onMicrotaskEmpty=new we;onStable=new we;onError=new we;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)}}function UM(t,n){return!(!Array.isArray(t)||1!==t.length)&&!0===t[0]?.data?.[n]}class sl{_console=console;handleError(n){this._console.error("ERROR",n)}}const Or=new Z("",{factory:()=>{const t=D(_e),n=D(zn);let e;return i=>{t.runOutsideAngular(()=>{n.destroyed&&!e?setTimeout(()=>{throw i}):(e??=n.get(sl),e.handleError(i))})}}}),aU={provide:ss,useValue:()=>{D(sl,{optional:!0})},multi:!0};function yt(t,n){const[e,i,o]=function P6(t,n){const e=Object.create(ey);e.value=t,void 0!==n&&(e.equal=n);const i=()=>function I6(t){return Pu(t),t.value}(e);return i[Rn]=e,[i,s=>Ap(e,s),s=>ID(e,s)]}(t,n?.equal),r=e;return r.set=i,r.update=o,r.asReadonly=Xy.bind(r),r}function Xy(){const t=this[Rn];if(void 0===t.readonlyFn){const n=()=>this();n[Rn]=t,t.readonlyFn=n}return t.readonlyFn}let dm=(()=>class t{view;node;constructor(e,i){this.view=e,this.node=i}static __NG_ELEMENT_ID__=cU})();function cU(){return new dm(ne(),Ve())}class al{}const um=new Z("",{factory:()=>!0}),zM=new Z("");let hm=(()=>{class t{internalPendingTasks=D(Ys);scheduler=D(al);errorHandler=D(Or);add(){const e=this.internalPendingTasks.add();return()=>{this.internalPendingTasks.has(e)&&(this.scheduler.notify(11),this.internalPendingTasks.remove(e))}}run(e){const i=this.add();e().catch(this.errorHandler).finally(i)}static \u0275prov=te({token:t,providedIn:"root",factory:()=>new t})}return t})(),$M=(()=>{class t{static \u0275prov=te({token:t,providedIn:"root",factory:()=>new dU})}return t})();class dU{dirtyEffectCount=0;queues=new Map;add(n){this.enqueue(n),this.schedule(n)}schedule(n){n.dirty&&this.dirtyEffectCount++}remove(n){const i=this.queues.get(n.zone);i.has(n)&&(i.delete(n),n.dirty&&this.dirtyEffectCount--)}enqueue(n){const e=n.zone;this.queues.has(e)||this.queues.set(e,new Set);const i=this.queues.get(e);i.has(n)||i.add(n)}flush(){for(;this.dirtyEffectCount>0;){let n=!1;for(const[e,i]of this.queues)n||=null===e?this.flushQueue(i):e.run(()=>this.flushQueue(i));n||(this.dirtyEffectCount=0)}}flushQueue(n){let e=!1;for(const i of n)i.dirty&&(this.dirtyEffectCount--,e=!0,i.run());return e}}class Zy{[Rn];constructor(n){this[Rn]=n}destroy(){this[Rn].destroy()}}function fm(t,n){const e=n?.injector??D(He);let o,i=!0!==n?.manualCleanup?e.get(rr):null;const r=e.get(dm,null,{optional:!0}),s=e.get(al);return null!==r?(o=function fU(t,n,e){const i=Object.create(hU);return i.view=t,i.zone=typeof Zone<"u"?Zone.current:null,i.notifier=n,i.fn=GM(i,e),t[23]??=new Set,t[23].add(i),i.consumerMarkedDirty(i),i}(r.view,s,t),i instanceof LM&&i._lView===r.view&&(i=null)):o=function pU(t,n,e){const i=Object.create(uU);return i.fn=GM(i,t),i.scheduler=n,i.notifier=e,i.zone=typeof Zone<"u"?Zone.current:null,i.scheduler.add(i),i.notifier.notify(12),i}(t,e.get($M),s),o.injector=e,null!==i&&(o.onDestroyFns=[i.onDestroy(()=>o.destroy())]),new Zy(o)}const WM={...A6,cleanupFns:void 0,zone:null,onDestroyFns:null,run(){const t=rm(!1);try{!function R6(t){if(t.dirty=!1,t.version>0&&!Ip(t))return;t.version++;const n=Oc(t);try{t.cleanup(),t.fn()}finally{Ou(t,n)}}(this)}finally{rm(t)}},cleanup(){if(!this.cleanupFns?.length)return;const t=Te(null);try{for(;this.cleanupFns.length;)this.cleanupFns.pop()()}finally{this.cleanupFns=[],Te(t)}}},uU={...WM,consumerMarkedDirty(){this.scheduler.schedule(this),this.notifier.notify(12)},destroy(){if(Au(this),null!==this.onDestroyFns)for(const t of this.onDestroyFns)t();this.cleanup(),this.scheduler.remove(this)}},hU={...WM,consumerMarkedDirty(){this.view[2]|=8192,qc(this.view),this.notifier.notify(13)},destroy(){if(Au(this),null!==this.onDestroyFns)for(const t of this.onDestroyFns)t();this.cleanup(),this.view[23]?.delete(this)}};function GM(t,n){return()=>{n(e=>(t.cleanupFns??=[]).push(e))}}let qM=null;function Xs(){return qM}class gU{}let pm=(()=>{class t{historyGo(e){throw new Error("")}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:()=>D(bU),providedIn:"platform"})}return t})();const _U=new Z("");let bU=(()=>{class t extends pm{_location;_history;_doc=D(et);constructor(){super(),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return Xs().getBaseHref(this._doc)}onPopState(e){const i=Xs().getGlobalEventTarget(this._doc,"window");return i.addEventListener("popstate",e,!1),()=>i.removeEventListener("popstate",e)}onHashChange(e){const i=Xs().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 \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:()=>new t,providedIn:"platform"})}return t})();function KM(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}class YM{}const XM="browser";let ZM=(()=>{class t{static \u0275prov=te({token:t,providedIn:"root",factory:()=>new DU(D(et),window)})}return t})();class DU{document;window;offset=()=>[0,0];constructor(n,e){this.document=n,this.window=e}setOffset(n){this.offset=Array.isArray(n)?()=>n:n}getScrollPosition(){return[this.window.scrollX,this.window.scrollY]}scrollToPosition(n,e){this.window.scrollTo({...e,left:n[0],top:n[1]})}scrollToAnchor(n,e){const i=function MU(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 s=r.getElementById(n)||r.querySelector(`[name="${n}"]`);if(s)return s}o=i.nextNode()}}return null}(this.document,n);i&&(this.scrollToElement(i,e),i.focus())}setHistoryScrollRestoration(n){try{this.window.history.scrollRestoration=n}catch{console.warn(co(2400,!1))}}scrollToElement(n,e){const i=n.getBoundingClientRect(),o=i.left+this.window.pageXOffset,r=i.top+this.window.pageYOffset,s=this.offset();this.window.scrollTo({...e,left:o-s[0],top:r-s[1]})}}function lT(t,n,e,i,o,r,s){try{var a=t[r](s),l=a.value}catch(c){return void e(c)}a.done?n(l):Promise.resolve(l).then(i,o)}function Et(t){return function(){var n=this,e=arguments;return new Promise(function(i,o){var r=t.apply(n,e);function s(l){lT(r,i,o,s,a,"next",l)}function a(l){lT(r,i,o,s,a,"throw",l)}s(void 0)})}}function Mn(t){return n=>{if(function tz(t){return cn(t?.lift)}(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 dn(t,n,e,i,o){return new nz(t,n,e,i,o)}class nz extends Bp{constructor(n,e,i,o,r,s){super(n),this.onFinalize=r,this.shouldUnsubscribe=s,this._next=e?function(a){try{e(a)}catch(l){n.error(l)}}:super._next,this._error=o?function(a){try{o(a)}catch(l){n.error(l)}finally{this.unsubscribe()}}:super._error,this._complete=i?function(){try{i()}catch(a){n.error(a)}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 Se(t,n){return Mn((e,i)=>{let o=0;e.subscribe(dn(i,r=>{i.next(t.call(n,r,o++))}))})}function gs(t){return{toString:t}.toString()}function CT(t,n,e,i){null!==n?n.applyValueToInputSignal(n,i):t[e]=i}class Rz{previousValue;currentValue;firstChange;constructor(n,e,i){this.previousValue=n,this.currentValue=e,this.firstChange=i}isFirstChange(){return this.firstChange}}const _i=(()=>{const t=()=>wT;return t.ngInherit=!0,t})();function wT(t){return t.type.prototype.ngOnChanges&&(t.setInput=Nz),Fz}function Fz(){const t=ST(this),n=t?.current;if(n){const e=t.previous;if(e===Pr)t.previous=n;else for(let i in n)e[i]=n[i];t.current=null,this.ngOnChanges(n)}}function Nz(t,n,e,i,o){const r=this.declaredInputs[i],s=ST(t)||function Lz(t,n){return t[xT]=n}(t,{previous:Pr,current:null}),a=s.current||(s.current={}),l=s.previous,c=l[r];a[r]=new Rz(c&&c.currentValue,e,l===Pr),CT(t,n,o,e)}const xT="__ngSimpleChanges__";function ST(t){return t[xT]||null}const dl=[],Lt=function(t,n=null,e){for(let i=0;i=i)break}else n[l]<0&&(t[17]+=65536),(a>14>16&&(3&t[2])===n&&(t[2]+=16384,MT(a,r)):MT(a,r)}class Qu{factory;name;injectImpl;resolving=!1;canSeeViewProviders;multi;componentProviders;index;providerFactory;constructor(n,e,i,o){this.factory=n,this.name=o,this.canSeeViewProviders=e,this.injectImpl=i}}function ET(t){return 3===t||4===t||6===t}function PT(t){return 64===t.charCodeAt(0)}function td(t,n){if(null!==n&&0!==n.length)if(null===t||0===t.length)t=n.slice();else{let e=-1;for(let i=0;in){s=r-1;break}}}for(;r>16}(t),i=n;for(;e>0;)i=i[14],e--;return i}let uC=!0;function Dm(t){const n=uC;return uC=t,n}let qz=0;const Rr={};function Mm(t,n){const e=RT(t,n);if(-1!==e)return e;const i=n[1];i.firstCreatePass&&(t.injectorIndex=n.length,hC(i.data,t),hC(n,null),hC(i.blueprint,null));const o=Tm(t,n),r=t.injectorIndex;if(dC(o)){const s=Ju(o),a=eh(o,n),l=a[1].data;for(let c=0;c<8;c++)n[r+c]=a[s+c]|l[s+c]}return n[r+8]=o,r}function hC(t,n){t.push(0,0,0,0,0,0,0,0,n)}function RT(t,n){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null===n[t.injectorIndex+8]?-1:t.injectorIndex}function Tm(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=jT(o),null===i)return-1;if(e++,o=o[14],-1!==i.injectorIndex)return i.injectorIndex|e<<16}return-1}function fC(t,n,e){!function Kz(t,n,e){let i;"string"==typeof e?i=e.charCodeAt(0)||0:e.hasOwnProperty(Fu)&&(i=e[Fu]),null==i&&(i=e[Fu]=qz++);const o=255&i;n.data[t+(o>>5)]|=1<=0?255&n:Qz:n}(e);if("function"==typeof r){if(!EM(n,t,i))return 1&i?FT(o,0,i):NT(n,e,i,o);try{let s;if(s=r(i),null!=s||8&i)return s;by()}finally{AM()}}else if("number"==typeof r){let s=null,a=RT(t,n),l=-1,c=1&i?n[15][5]:null;for((-1===a||4&i)&&(l=-1===a?Tm(t,n):n[a+8],-1!==l&&HT(i,!1)?(s=n[1],a=Ju(l),n=eh(l,n)):a=-1);-1!==a;){const f=n[1];if(VT(r,a,f.data)){const m=Xz(a,n,e,s,i,c);if(m!==Rr)return m}l=n[a+8],-1!==l&&HT(i,n[1].data[a+8]===c)&&VT(r,a,n)?(s=f,a=Ju(l),n=eh(l,n)):a=-1}}return o}function Xz(t,n,e,i,o,r){const s=n[1],a=s.data[t+8],f=Em(a,s,e,null==i?Ir(a)&&uC:i!=s&&!!(3&a.type),1&o&&r===a);return null!==f?th(n,s,f,a,o):Rr}function Em(t,n,e,i,o){const r=t.providerIndexes,s=n.data,a=1048575&r,l=t.directiveStart,f=r>>20,g=o?a+f:t.directiveEnd;for(let _=i?a:a+f;_=l&&w.type===e)return _}if(o){const _=s[l];if(_&&ir(_)&&_.type===e)return l}return null}function th(t,n,e,i,o){let r=t[e];const s=n.data;if(r instanceof Qu){const a=r;if(a.resolving)throw _y();const l=Dm(a.canSeeViewProviders);a.resolving=!0;const m=a.injectImpl?uo(a.injectImpl):null;EM(t,i,0);try{r=t[e]=a.factory(void 0,o,s,t,i),n.firstCreatePass&&e>=i.directiveStart&&function jz(t,n,e){const{ngOnChanges:i,ngOnInit:o,ngDoCheck:r}=n.type.prototype;if(i){const s=wT(n);(e.preOrderHooks??=[]).push(t,s),(e.preOrderCheckHooks??=[]).push(t,s)}o&&(e.preOrderHooks??=[]).push(0-t,o),r&&((e.preOrderHooks??=[]).push(t,r),(e.preOrderCheckHooks??=[]).push(t,r))}(e,s[e],n)}finally{null!==m&&uo(m),Dm(l),a.resolving=!1,AM()}}return r}function VT(t,n,e){return!!(e[n+(t>>5)]&1<{const n=t.prototype.constructor,e=n[Ya]||pC(n),i=Object.prototype;let o=Object.getPrototypeOf(t.prototype).constructor;for(;o&&o!==i;){const r=o[Ya]||pC(o);if(r&&r!==e)return r;o=Object.getPrototypeOf(o)}return r=>new r})}function pC(t){return jp(t)?()=>{const n=pC(qe(t));return n&&n()}:Za(t)}function jT(t){const n=t[1],e=n.type;return 2===e?n.declTNode:1===e?t[5]:null}function nh(t){return function Yz(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(;oclass t{nativeElement;constructor(e){this.nativeElement=e}static __NG_ELEMENT_ID__=a7})();function GT(t){return t instanceof Re?t.nativeElement:t}function l7(){return this._results[Symbol.iterator]()}class id{_emitDistinctChangesOnly;dirty=!0;_onDirty=void 0;_results=[];_changesDetected=!1;_changes=void 0;length=0;first=void 0;last=void 0;get changes(){return this._changes??=new me}constructor(n=!1){this._emitDistinctChangesOnly=n}get(n){return this._results[n]}map(n){return this._results.map(n)}filter(n){return this._results.filter(n)}find(n){return this._results.find(n)}reduce(n,e){return this._results.reduce(n,e)}forEach(n){this._results.forEach(n)}some(n){return this._results.some(n)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(n,e){this.dirty=!1;const i=function Ao(t){return t.flat(Number.POSITIVE_INFINITY)}(n);(this._changesDetected=!function Cj(t,n,e){if(t.length!==n.length)return!1;for(let i=0;iR7}),R7="ng",u2=new Z(""),wC=new Z("",{providedIn:"platform",factory:()=>"unknown"}),Rm=new Z(""),xC=new Z("",{factory:()=>D(et).body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null}),j7=new Z("",{factory:()=>!1}),W7=new Z("");function Vm(t){return!(32&~t.flags)}function V2(t,n){const e=t.contentQueries;if(null!==e){const i=Te(null);try{for(let o=0;ot,createScript:t=>t,createScriptURL:t=>t})}catch{}return Gm}()?.createHTML(t)||t}function G2(t){return function UC(){if(void 0===qm&&(qm=null,Fn.trustedTypes))try{qm=Fn.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return qm}()?.createScriptURL(t)||t}class hl{changingThisBreaksApplicationSecurity;constructor(n){this.changingThisBreaksApplicationSecurity=n}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${HD})`}}class C9 extends hl{getTypeName(){return"HTML"}}class w9 extends hl{getTypeName(){return"Style"}}class x9 extends hl{getTypeName(){return"Script"}}class S9 extends hl{getTypeName(){return"URL"}}class k9 extends hl{getTypeName(){return"ResourceURL"}}function Mo(t){return t instanceof hl?t.changingThisBreaksApplicationSecurity:t}function Fr(t,n){const e=function D9(t){return t instanceof hl&&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 ${HD})`)}return e===n}class O9{inertDocumentHelper;constructor(n){this.inertDocumentHelper=n}getInertBodyElement(n){n=""+n;try{const e=(new window.DOMParser).parseFromString(rd(n),"text/html").body;return null===e?this.inertDocumentHelper.getInertBodyElement(n):(e.firstChild?.remove(),e)}catch{return null}}}class A9{defaultDoc;inertDocument;constructor(n){this.defaultDoc=n,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(n){const e=this.inertDocument.createElement("template");return e.innerHTML=rd(n),e}}const F9=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function ch(t){return(t=String(t)).match(F9)?t:"unsafe:"+t}function Nr(t){const n={};for(const e of t.split(","))n[e]=!0;return n}function sd(...t){const n={};for(const e of t)for(const i in e)e.hasOwnProperty(i)&&(n[i]=!0);return n}const K2=Nr("area,br,col,hr,img,wbr"),Y2=Nr("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),X2=Nr("rp,rt"),zC=sd(K2,sd(Y2,Nr("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")),sd(X2,Nr("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")),sd(X2,Y2)),$C=Nr("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),WC=sd($C,Nr("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"),Nr("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")),N9=Nr("script,style,template");class L9{sanitizedSomething=!1;buf=[];sanitizeChildren(n){let e=n.firstChild,i=!0,o=[];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)o.push(e),e=H9(e);else for(;e;){e.nodeType===Node.ELEMENT_NODE&&this.endElement(e);let r=V9(e);if(r){e=r;break}e=o.pop()}return this.buf.join("")}startElement(n){const e=Z2(n).toLowerCase();if(!zC.hasOwnProperty(e))return this.sanitizedSomething=!0,!N9.hasOwnProperty(e);this.buf.push("<"),this.buf.push(e);const i=n.attributes;for(let o=0;o"),!0}endElement(n){const e=Z2(n).toLowerCase();zC.hasOwnProperty(e)&&!K2.hasOwnProperty(e)&&(this.buf.push(""))}chars(n){this.buf.push(J2(n))}}function V9(t){const n=t.nextSibling;if(n&&t!==n.previousSibling)throw Q2(n);return n}function H9(t){const n=t.firstChild;if(n&&function B9(t,n){return(t.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_CONTAINED_BY)!==Node.DOCUMENT_POSITION_CONTAINED_BY}(t,n))throw Q2(n);return n}function Z2(t){const n=t.nodeName;return"string"==typeof n?n:"FORM"}function Q2(t){return new Error(`Failed to sanitize html because the element is clobbered: ${t.outerHTML}`)}const j9=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,U9=/([^\#-~ |!])/g;function J2(t){return t.replace(/&/g,"&").replace(j9,function(n){return"&#"+(1024*(n.charCodeAt(0)-55296)+(n.charCodeAt(1)-56320)+65536)+";"}).replace(U9,function(n){return"&#"+n.charCodeAt(0)+";"}).replace(//g,">")}let Km;function eE(t,n){let e=null;try{Km=Km||function q2(t){const n=new A9(t);return function R9(){try{return!!(new window.DOMParser).parseFromString(rd(""),"text/html")}catch{return!1}}()?new O9(n):n}(t);let i=n?String(n):"";e=Km.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=Km.getInertBodyElement(i)}while(i!==r);return rd((new L9).sanitizeChildren(qC(e)||e))}finally{if(e){const i=qC(e)||e;for(;i.firstChild;)i.firstChild.remove()}}}function qC(t){return"content"in t&&function z9(t){return t.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===t.nodeName}(t)?t.content:null}const $9=/^>|^->||--!>|)/g;function YC(t,n){return t.createComment(function tE(t){return t.replace($9,n=>n.replace(W9,"\u200b$1\u200b"))}(n))}function Ym(t,n,e){return t.createElement(n,e)}function fl(t,n,e,i,o){t.insertBefore(n,e,i,o)}function iE(t,n,e){t.appendChild(n,e)}function oE(t,n,e,i,o){null!==i?fl(t,n,e,i,o):iE(t,n,e)}function dh(t,n,e,i){t.removeChild(null,n,e,i)}function sE(t,n,e){const{mergedAttrs:i,classes:o,styles:r}=e;null!==i&&function Wz(t,n,e){let i=0;for(;i-1){let r;for(;++or?"":o[f+1].toLowerCase(),2&i&&c!==m){if(sr(i))return!1;s=!0}}}}else{if(!s&&!sr(i)&&!sr(l))return!1;if(s&&sr(l))continue;s=!1,i=l|1&i}}return sr(i)||s}function sr(t){return!(1&t)}function _$(t,n,e,i){if(null===n)return-1;let o=0;if(i||!e){let r=!1;for(;o-1)for(e++;e0?'="'+a+'"':"")+"]"}else 8&i?o+="."+s:4&i&&(o+=" "+s);else""!==o&&!sr(s)&&(n+=mE(r,o),o=""),i=s,r=r||!sr(i);e++}return""!==o&&(n+=mE(r,o)),n}const At={};function QC(t,n,e,i,o,r,s,a,l,c,f){const m=27+i,g=m+o,_=function k$(t,n){const e=[];for(let i=0;i{class t{impl=null;execute(){this.impl?.execute()}static \u0275prov=te({token:t,providedIn:"root",factory:()=>new t})}return t})();const xE=[0,1,2,3];let SE=(()=>{class t{ngZone=D(_e);scheduler=D(al);errorHandler=D(sl,{optional:!0});sequences=new Set;deferredRegistrations=new Set;executing=!1;constructor(){D(oa,{optional:!0})}execute(){const e=this.sequences.size>0;e&&Lt(ge.AfterRenderHooksStart),this.executing=!0;for(const i of xE)for(const o of this.sequences)if(!o.erroredOrDestroyed&&o.hooks[i])try{o.pipelinedValue=this.ngZone.runOutsideAngular(()=>this.maybeTrace(()=>(0,o.hooks[i])(o.pipelinedValue),o.snapshot))}catch(r){o.erroredOrDestroyed=!0,this.errorHandler?.handleError(r)}this.executing=!1;for(const i of this.sequences)i.afterRun(),i.once&&(this.sequences.delete(i),i.destroy());for(const i of this.deferredRegistrations)this.sequences.add(i);this.deferredRegistrations.size>0&&this.scheduler.notify(7),this.deferredRegistrations.clear(),e&&Lt(ge.AfterRenderHooksEnd)}register(e){const{view:i}=e;void 0!==i?((i[25]??=[]).push(e),qc(i),i[2]|=8192):this.executing?this.deferredRegistrations.add(e):this.addSequence(e)}addSequence(e){this.sequences.add(e),this.scheduler.notify(7)}unregister(e){this.executing&&this.sequences.has(e)?(e.erroredOrDestroyed=!0,e.pipelinedValue=void 0,e.once=!0):(this.sequences.delete(e),this.deferredRegistrations.delete(e))}maybeTrace(e,i){return i?i.run(d1.AFTER_NEXT_RENDER,e):e()}static \u0275prov=te({token:t,providedIn:"root",factory:()=>new t})}return t})();class kE{impl;hooks;view;once;snapshot;erroredOrDestroyed=!1;pipelinedValue=void 0;unregisterOnDestroy;constructor(n,e,i,o,r,s=null){this.impl=n,this.hooks=e,this.view=i,this.once=o,this.snapshot=s,this.unregisterOnDestroy=r?.onDestroy(()=>this.destroy())}afterRun(){this.erroredOrDestroyed=!1,this.pipelinedValue=void 0,this.snapshot?.dispose(),this.snapshot=null}destroy(){this.impl.unregister(this),this.unregisterOnDestroy?.();const n=this.view?.[25];n&&(this.view[25]=n.filter(e=>e!==this))}}function Vi(t,n){const e=n?.injector??D(He);return vi("NgAfterNextRender"),function DE(t,n,e,i){const o=n.get(u1);o.impl??=n.get(SE);const r=n.get(oa,null,{optional:!0}),s=!0!==e?.manualCleanup?n.get(rr):null,a=n.get(dm,null,{optional:!0}),l=new kE(o.impl,function U$(t){return t instanceof Function?[void 0,void 0,t,void 0]:[t.earlyRead,t.write,t.mixedReadWrite,t.read]}(t),a?.view,i,s,r?.snapshot(null));return o.impl.register(l),l}(t,e,n,!0)}const og=new Z("",{factory:()=>({queue:new Set,isScheduled:!1,scheduler:null,injector:D(zn)})});function ME(t,n,e){const i=t.get(og);if(Array.isArray(n))for(const o of n)i.queue.add(o),e?.detachedLeaveAnimationFns?.push(o);else i.queue.add(n),e?.detachedLeaveAnimationFns?.push(n);i.scheduler&&i.scheduler(t)}function TE(t,n,e,i){const o=t?.[26]?.enter;null!==n&&o&&o.has(e.index)&&function h1(t,n){for(const[e,i]of n)ME(t,i.animateFns)}(i,o)}function cd(t,n,e,i,o,r,s,a){if(null!=o){let l,c=!1;Ji(o)?l=o:Dn(o)&&(c=!0,o=o[0]);const f=gi(o);0===t&&null!==i?(TE(a,i,r,e),null==s?iE(n,i,f):fl(n,i,f,s||null,!0)):1===t&&null!==i?(TE(a,i,r,e),fl(n,i,f,s||null,!0),function R$(t,n){const e=fh.get(t);if(!e||0===e.length)return;const i=n.parentNode,o=n.previousSibling;for(let r=e.length-1;r>=0;r--){const s=e[r],a=s.parentNode;s===n?(e.splice(r,1),o1.add(s),s.dispatchEvent(new CustomEvent("animationend",{detail:{cancel:!0}}))):(o&&s===o||a&&i&&a!==i)&&(e.splice(r,1),s.dispatchEvent(new CustomEvent("animationend",{detail:{cancel:!0}})),s.parentNode?.removeChild(s))}}(r,f)):2===t?(a?.[26]?.leave?.has(r.index)&&function s1(t,n){const e=fh.get(t);e?e.includes(n)||e.push(n):fh.set(t,[n])}(r,f),IE(a,r,e,m=>{o1.has(f)?o1.delete(f):dh(n,f,c,m)})):3===t&&IE(a,r,e,()=>{n.destroyNode(f)}),null!=l&&function Z$(t,n,e,i,o,r,s){const a=i[7];a!==gi(i)&&cd(n,t,e,r,a,o,s);for(let c=10;c=0?i[a]():i[-a].unsubscribe(),s+=2}else e[s].call(i[e[s+1]]);null!==i&&(n[7]=null);const o=n[21];if(null!==o){n[21]=null;for(let s=0;s{if(o.leave&&o.leave.has(n.index)){const s=o.leave.get(n.index),a=[];if(s){for(let l=0;l{t[26].running=void 0,bl.delete(t[19]),n(!0)}):n(!1)}(t,i)}else t&&bl.delete(t[19]),i(!1)},o)}function m1(t,n,e){return function OE(t,n,e){let i=n;for(;null!==i&&168&i.type;)i=(n=i).parent;if(null===i)return e[0];if(Ir(i)){const{encapsulation:o}=t.data[i.directiveStart+i.componentOffset];if(o===No.None||o===No.Emulated)return null}return Zn(i,e)}(t,n.parent,e)}function AE(t,n,e){return FE(t,n,e)}let FE=function RE(t,n,e){return 40&t.type?Zn(t,e):null};function _1(t,n,e,i){const o=m1(t,i,n),r=n[11],a=AE(i.parent||n[5],i,n);if(null!=o)if(Array.isArray(e))for(let l=0;l27&&_E(t,n,27,!1),Lt(s?ge.TemplateUpdateStart:ge.TemplateCreateStart,o,e),e(i,o)}finally{ol(r),Lt(s?ge.TemplateUpdateEnd:ge.TemplateCreateEnd,o,e)}}function ag(t,n,e){(function iW(t,n,e){const i=e.directiveStart,o=e.directiveEnd;Ir(e)&&function D$(t,n,e){const i=Zn(n,t),o=function gE(t){const n=t.tView;return null===n||n.incompleteFirstPass?t.tView=QC(1,null,t.template,t.decls,t.vars,t.directiveDefs,t.pipeDefs,t.viewQuery,t.schemas,t.consts,t.id):n}(e),r=t[10].rendererFactory,s=e1(t,Zm(t,o,null,JC(e),i,n,null,r.createRenderer(i,e),null,null,null));t[n.index]=s}(n,e,t.data[i+e.componentOffset]),t.firstCreatePass||Mm(e,n);const r=e.initialInputs;for(let s=i;snull;function y1(t,n,e,i,o,r){ug(t,n[1],n,e,i)?Ir(t)&&jE(n,t.index):(3&t.type&&(e=function nW(t){return"class"===t?"className":"for"===t?"htmlFor":"formaction"===t?"formAction":"innerHtml"===t?"innerHTML":"readonly"===t?"readOnly":"tabindex"===t?"tabIndex":t}(e)),C1(t,n,e,i,o,r))}function C1(t,n,e,i,o,r){if(3&t.type){const s=Zn(t,n);i=null!=r?r(i,t.value||"",e):i,o.setProperty(s,e,i)}}function jE(t,n){const e=eo(n,t);16&e[2]||(e[2]|=64)}function rW(t,n){null!==t.hostBindings&&t.hostBindings(1,n)}function w1(t,n){const e=t.directiveRegistry;let i=null;if(e)for(let o=0;o{qc(t.lView)},consumerOnSignalRead(){this.lView[24]=this}},bW={...Ic,consumerIsAlwaysLive:!0,kind:"template",consumerMarkedDirty:t=>{let n=hs(t.lView);for(;n&&!GE(n[1]);)n=hs(n);n&&fM(n)},consumerOnSignalRead(){this.lView[24]=this}};function GE(t){return 2!==t.type}function qE(t){if(null===t[23])return;let n=!0;for(;n;){let e=!1;for(const i of t[23])i.dirty&&(e=!0,null===i.zone||Zone.current===i.zone?i.run():i.zone.run(()=>i.run()));n=e&&!!(8192&t[2])}}function fg(t,n=0){const i=t[10].rendererFactory;i.begin?.();try{!function yW(t,n){const e=DM();try{rm(!0),S1(t,n);let i=0;for(;im(t);){if(100===i)throw new X(103,!1);i++,S1(t,1)}}finally{rm(e)}}(t,n)}finally{i.end?.()}}function KE(t,n,e,i){if(us(n))return;const o=n[2];$y(n);let a=!0,l=null,c=null;GE(t)?(c=function fW(t){return t[24]??function pW(t){const n=WE.pop()??Object.create(gW);return n.lView=t,n}(t)}(n),l=Oc(c)):null===function Xv(){return An}()?(a=!1,c=function _W(t){const n=t[24]??Object.create(bW);return n.lView=t,n}(n),l=Oc(c)):n[24]&&(Au(n[24]),n[24]=null);try{hM(n),function MM(t){return Be.lFrame.bindingIndex=t}(t.bindingStartIndex),null!==e&&VE(t,n,e,2,i);const f=!(3&~o);if(f){const _=t.preOrderCheckHooks;null!==_&&Sm(n,_,null)}else{const _=t.preOrderHooks;null!==_&&km(n,_,0,null),lC(n,0)}if(function CW(t){for(let n=n2(t);null!==n;n=i2(n)){if(!(2&n[2]))continue;const e=n[9];for(let i=0;i0&&(e[o-1][4]=n),i0&&(t[e-1][4]=i[4]);const r=qp(t,10+n);!function EE(t,n){PE(t,n),n[0]=null,n[5]=null}(i[1],i);const s=r[18];null!==s&&s.detachView(r[1]),i[3]=null,i[4]=null,i[2]&=-129}return i}function eP(t,n){const e=t[9],i=n[3];(Dn(i)||n[15]!==i[3][15])&&(t[2]|=2),null===e?t[9]=[n]:e.push(n)}class bh{_lView;_cdRefInjectingView;_appRef=null;_attachedToViewContainer=!1;exhaustive;get rootNodes(){const n=this._lView,e=n[1];return gh(e,n,e.firstChild,[])}constructor(n,e){this._lView=n,this._cdRefInjectingView=e}get context(){return this._lView[8]}set context(n){this._lView[8]=n}get destroyed(){return us(this._lView)}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._attachedToViewContainer){const n=this._lView[3];if(Ji(n)){const e=n[8],i=e?e.indexOf(this):-1;i>-1&&(_h(n,i),qp(e,i))}this._attachedToViewContainer=!1}mh(this._lView[1],this._lView)}onDestroy(n){om(this._lView,n)}markForCheck(){hd(this._cdRefInjectingView||this._lView,4)}detach(){this._lView[2]&=-129}reattach(){Ny(this._lView),this._lView[2]|=128}detectChanges(){this._lView[2]|=1024,fg(this._lView)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new X(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null;const n=Ks(this._lView),e=this._lView[16];null!==e&&!n&&f1(e,this._lView),PE(this._lView[1],this._lView)}attachToAppRef(n){if(this._attachedToViewContainer)throw new X(902,!1);this._appRef=n;const e=Ks(this._lView),i=this._lView[16];null!==i&&!e&&eP(i,this._lView),Ny(this._lView)}}let Ti=(()=>class t{_declarationLView;_declarationTContainer;elementRef;static __NG_ELEMENT_ID__=kW;constructor(e,i,o){this._declarationLView=e,this._declarationTContainer=i,this.elementRef=o}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(e,i){return this.createEmbeddedViewImpl(e,i)}createEmbeddedViewImpl(e,i,o){const r=ud(this._declarationLView,this._declarationTContainer,e,{embeddedViewInjector:i,dehydratedView:o});return new bh(r)}})();function kW(){return pg(Ve(),ne())}function pg(t,n){return 4&t.type?new Ti(n,t,nd(t,n)):null}function Cl(t,n,e,i,o){let r=t.data[n];if(null===r)r=function E1(t,n,e,i,o){const r=CM(),s=wM(),l=t.data[n]=function RW(t,n,e,i,o,r){let s=n?n.injectorIndex:-1,a=0;return bM()&&(a|=128),{type:e,index:i,insertBeforeIndex:null,injectorIndex:s,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,componentOffset:-1,controlDirectiveIndex:-1,customControlIndex:-1,propertyBindings:null,flags:a,providerIndexes:0,value:o,attrs:r,mergedAttrs:null,localNames:null,initialInputs:null,inputs:null,hostDirectiveInputs:null,outputs:null,hostDirectiveOutputs:null,directiveToIndex:null,tView:null,next:null,prev:null,projectionNext:null,child:null,parent:n,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}(0,s?r:r&&r.parent,e,n,i,o);return function AW(t,n,e,i){null===t.firstChild&&(t.firstChild=n),null!==e&&(i?null==e.child&&null!==n.parent&&(e.child=n):null===e.next&&(e.next=n,n.prev=e))}(t,l,r,s),l}(t,n,e,i,o),function Uj(){return Be.lFrame.inI18n}()&&(r.flags|=32);else if(64&r.type){r.type=e,r.value=i,r.attrs=o;const s=function zu(){const t=Be.lFrame,n=t.currentTNode;return t.isParent?n:n.parent}();r.injectorIndex=null===s?-1:s.injectorIndex}return fs(r,!0),r}function vP(t,n){let e=0,i=t.firstChild;if(i){const o=t.data.r;for(;eclass t{destroyNode=null;static __NG_ELEMENT_ID__=()=>function bG(){const t=ne(),e=eo(Ve().index,t);return(Dn(e)?e:t)[11]}()})(),vG=(()=>{class t{static \u0275prov=te({token:t,providedIn:"root",factory:()=>null})}return t})();const L1={};class md{injector;parentInjector;constructor(n,e){this.injector=n,this.parentInjector=e}get(n,e,i){const o=this.injector.get(n,L1,i);return o!==L1||e===L1?o:this.parentInjector.get(n,e,i)}}function Sg(t,n,e){let i=e?t.styles:null,o=e?t.classes:null,r=0;if(null!==n)for(let s=0;s0&&(e.directiveToIndex=new Map);for(let g=0;g0;){const e=t[--n];if("number"==typeof e&&e<0)return e}return 0})(s)!=a&&s.push(a),s.push(e,i,r)}}(t,n,i,hh(t,e,o.hostVars,At),o)}function PG(t,n,e){if(e){if(n.exportAs)for(let i=0;il?a[l]:null}"string"==typeof s&&(r+=2)}return null}(n,e,r,t.index)),null!==f)(f.__ngLastListenerFn__||f).__ngNextListenerFn__=s,f.__ngLastListenerFn__=s,c=!0;else{const m=Zn(t,e),g=i?i(m):m,_=o.listen(g,r,a);(function FG(t){return t.startsWith("animation")||t.startsWith("transition")})(r)||RP(i?k=>i(gi(k[t.index])):t.index,n,e,r,a,_,!1)}return c}function RP(t,n,e,i,o,r,s){const a=n.firstCreatePass?gM(n):null,l=mM(e),c=l.length;l.push(o,r),a&&a.push(i,t,c,(c+1)*(s?-1:1))}function _d(t,n,e,i,o,r){const a=n[1],m=n[e][a.data[e].outputs[i]].subscribe(r);RP(t.index,a,n,o,r,m,!0)}const _s=Symbol("BINDING");function z1(t){return t.debugInfo?.className||t.type.name||null}class UP extends wg{ngModule;constructor(n){super(),this.ngModule=n}resolveComponentFactory(n){const e=xt(n);return new Th(e,this.ngModule)}}class Th extends kP{componentDef;ngModule;selector;componentType;ngContentSelectors;isBoundToModule;cachedInputs=null;cachedOutputs=null;get inputs(){return this.cachedInputs??=function qG(t){return Object.keys(t).map(n=>{const[e,i,o]=t[n],r={propName:e,templateName:n,isSignal:0!==(i&Qm.SignalBased)};return o&&(r.transform=o),r})}(this.componentDef.inputs),this.cachedInputs}get outputs(){return this.cachedOutputs??=function KG(t){return Object.keys(t).map(n=>({propName:t[n],templateName:n}))}(this.componentDef.outputs),this.cachedOutputs}constructor(n,e){super(),this.componentDef=n,this.ngModule=e,this.componentType=n.type,this.selector=function x$(t){return t.map(w$).join(",")}(n.selectors),this.ngContentSelectors=n.ngContentSelectors??[],this.isBoundToModule=!!e}create(n,e,i,o,r,s){Lt(ge.DynamicComponentStart);const a=Te(null);try{const l=this.componentDef,c=function YG(t,n,e){let i=n instanceof zn?n:n?.injector;return i&&null!==t.getStandaloneInjector&&(i=t.getStandaloneInjector(i)||i),i?new md(e,i):e}(l,o||this.ngModule,n),f=function XG(t){const n=t.get(Lo,null);if(null===n)throw new X(407,!1);return{rendererFactory:n,sanitizer:t.get(vG,null),changeDetectionScheduler:t.get(al,null),ngReflect:!1,tracingService:t.get(oa,null,{optional:!0})}}(c),m=f.tracingService;return m&&m.componentCreate?m.componentCreate(z1(l),()=>this.createComponentRef(f,c,e,i,r,s)):this.createComponentRef(f,c,e,i,r,s)}finally{Te(a)}}createComponentRef(n,e,i,o,r,s){const a=this.componentDef,l=function JG(t,n,e,i){const o=t?["ng-version","21.2.4"]:function S$(t){const n=[],e=[];let i=1,o=2;for(;i{if(1&e&&t)for(const i of t)i.create();if(2&e&&n)for(const i of n)i.update()}:null}(r,s),1,a,l,null,null,null,[o],null)}(o,a,s,r),c=n.rendererFactory.createRenderer(null,a),f=o?function J$(t,n,e,i){const r=i.get(j7,!1)||e===No.ShadowDom||e===No.ExperimentalIsolatedShadowDom,s=t.selectRootElement(n,r);return function eW(t){HE(t)}(s),s}(c,o,a.encapsulation,e):function ZG(t,n){const e=function QG(t){return(t.selectors[0][0]||"div").toLowerCase()}(t);return Ym(n,e,"svg"===e?"svg":"math"===e?"math":null)}(a,c),m=s?.some(zP)||r?.some(w=>"function"!=typeof w&&w.bindings.some(zP)),g=Zm(null,l,null,512|JC(a),null,null,n,c,e,null,null);g[27]=f,$y(g);let _=null;try{const w=V1(27,g,2,"#host",()=>l.directiveRegistry,!0,0);sE(c,f,w),po(f,g),ag(l,g,w),VC(l,w,g),H1(l,w),void 0!==i&&function nq(t,n,e){const i=t.projection=[];for(let o=0;oclass t{static __NG_ELEMENT_ID__=iq})();function iq(){return WP(Ve(),ne())}class $1 extends Ei{_lContainer;_hostTNode;_hostLView;constructor(n,e,i){super(),this._lContainer=n,this._hostTNode=e,this._hostLView=i}get element(){return nd(this._hostTNode,this._hostLView)}get injector(){return new Bn(this._hostTNode,this._hostLView)}get parentInjector(){const n=Tm(this._hostTNode,this._hostLView);if(dC(n)){const e=eh(n,this._hostLView),i=Ju(n);return new Bn(e[1].data[i+8],e)}return new Bn(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(n){const e=$P(this._lContainer);return null!==e&&e[n]||null}get length(){return this._lContainer.length-10}createEmbeddedView(n,e,i){let o,r;"number"==typeof i?o=i:null!=i&&(o=i.index,r=i.injector);const a=n.createEmbeddedViewImpl(e||{},r,null);return this.insertImpl(a,o,yl(this._hostTNode,null)),a}createComponent(n,e,i,o,r,s,a){const l=n&&!function Zu(t){return"function"==typeof t}(n);let c;if(l)c=e;else{const T=e||{};c=T.index,i=T.injector,o=T.projectableNodes,r=T.environmentInjector||T.ngModuleRef,s=T.directives,a=T.bindings}const f=l?n:new Th(xt(n)),m=i||this.parentInjector;if(!r&&null==f.ngModule){const I=(l?m:this.parentInjector).get(zn,null);I&&(r=I)}xt(f.componentType??{});const k=f.create(m,o,null,r,s,a);return this.insertImpl(k.hostView,c,yl(this._hostTNode,null)),k}insert(n,e){return this.insertImpl(n,e,!0)}insertImpl(n,e,i){const o=n._lView;if(function Nj(t){return Ji(t[3])}(o)){const a=this.indexOf(n);if(-1!==a)this.detach(a);else{const l=o[3],c=new $1(l,l[5],l[3]);c.detach(c.indexOf(n))}}const r=this._adjustIndex(e),s=this._lContainer;return fd(s,o,r,i),n.attachToViewContainerRef(),YD(W1(s),r,n),n}move(n,e){return this.insert(n,e)}indexOf(n){const e=$P(this._lContainer);return null!==e?e.indexOf(n):-1}remove(n){const e=this._adjustIndex(n,-1),i=_h(this._lContainer,e);i&&(qp(W1(this._lContainer),e),mh(i[1],i))}detach(n){const e=this._adjustIndex(n,-1),i=_h(this._lContainer,e);return i&&null!=qp(W1(this._lContainer),e)?new bh(i):null}_adjustIndex(n,e=0){return n??this.length+e}}function $P(t){return t[8]}function W1(t){return t[8]||(t[8]=[])}function WP(t,n){let e;const i=n[t.index];return Ji(i)?e=i:(e=QE(i,n,null,t),n[t.index]=e,e1(n,e)),GP(e,n,t,i),new $1(e,t,n)}let GP=function KP(t,n,e,i){if(t[7])return;let o;o=8&e.type?gi(i):function oq(t,n){const e=t[11],i=e.createComment(""),o=Zn(n,t),r=e.parentNode(o);return fl(e,r,i,e.nextSibling(o),!1),i}(n,e),t[7]=o};class q1{queryList;matches=null;constructor(n){this.queryList=n}clone(){return new q1(this.queryList)}setDirty(){this.queryList.setDirty()}}class K1{queries;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 Y1{queries;constructor(n=[]){this.queries=n}elementStart(n,e){for(let i=0;i0)i.push(s[a/2]);else{const c=r[a+1],f=n[-l];for(let m=10;m{i._dirtyCounter();const r=function pq(t,n){const e=t._lView,i=t._queryIndex;if(void 0===e||void 0===i||4&e[2])return n?void 0:Yt;const o=Q1(e,i),r=tI(e,i);return o.reset(r,GT),n?o.first:o._changesDetected||void 0===t._flatValue?t._flatValue=o.toArray():t._flatValue}(i,t);if(n&&void 0===r)throw new X(-951,!1);return r});return i=o[Rn],i._dirtyCounter=yt(0),i._flatValue=void 0,o}function nI(t){return e0(!0,!1)}function iI(t){return e0(!0,!0)}function oI(t,n){const e=t[Rn];e._lView=ne(),e._queryIndex=n,e._queryList=Q1(e._lView,n),e._queryList.onDirty(()=>e._dirtyCounter.update(i=>i+1))}let bs=class{},lI=class{};class o0 extends bs{ngModuleType;_parent;_bootstrapComponents=[];_r3Injector;instance;destroyCbs=[];componentFactoryResolver=new UP(this);constructor(n,e,i,o=!0){super(),this.ngModuleType=n,this._parent=e;const r=Er(n);this._bootstrapComponents=Lr(r.bootstrap),this._r3Injector=NM(n,e,[{provide:bs,useValue:this},{provide:wg,useValue:this.componentFactoryResolver},...i],Ws(n),new Set(["environment"])),o&&this.resolveInjectorInitializers()}resolveInjectorInitializers(){this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(this.ngModuleType)}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 cI extends lI{moduleType;constructor(n){super(),this.moduleType=n}create(n){return new o0(this.moduleType,n,[])}}class wq extends bs{injector;componentFactoryResolver=new UP(this);instance=null;constructor(n){super();const e=new Qa([...n.providers,{provide:bs,useValue:this},{provide:wg,useValue:this.componentFactoryResolver}],n.parent||Jp(),n.debugName,new Set(["environment"]));this.injector=e,n.runEnvironmentInitializers&&e.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(n){this.injector.onDestroy(n)}}function Mg(t,n,e=null){return new wq({providers:t,parent:n,debugName:e,runEnvironmentInitializers:!0}).injector}let xq=(()=>{class t{_injector;cachedInjectors=new Map;constructor(e){this._injector=e}getOrCreateStandaloneInjector(e){if(!e.standalone)return null;if(!this.cachedInjectors.has(e)){const i=Sy(0,e.type),o=i.length>0?Mg([i],this._injector,""):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 \u0275prov=te({token:t,providedIn:"environment",factory:()=>new t(ce(zn))})}return t})();function re(t){return gs(()=>{const n=uI(t),e={...n,decls:t.decls,vars:t.vars,template:t.template,consts:t.consts||null,ngContentSelectors:t.ngContentSelectors,onPush:t.changeDetection===Im.OnPush,directiveDefs:null,pipeDefs:null,dependencies:n.standalone&&t.dependencies||null,getStandaloneInjector:n.standalone?o=>o.get(xq).getOrCreateStandaloneInjector(e):null,getExternalStyles:null,signals:t.signals??!1,data:t.data||{},encapsulation:t.encapsulation||No.Emulated,styles:t.styles||Yt,_:null,schemas:t.schemas||null,tView:null,id:""};n.standalone&&vi("NgStandalone"),hI(e);const i=t.dependencies;return e.directiveDefs=Tg(i,dI),e.pipeDefs=Tg(i,tr),e.id=function Mq(t){let n=0;const i=[t.selectors,t.ngContentSelectors,t.hostVars,t.hostAttrs,"function"==typeof t.consts?"":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];for(const r of i.join("|"))n=Math.imul(31,n)+r.charCodeAt(0)|0;return n+=2147483648,"c"+n}(e),e})}function dI(t){return xt(t)||Zi(t)}function tt(t){return gs(()=>({type:t.type,bootstrap:t.bootstrap||Yt,declarations:t.declarations||Yt,imports:t.imports||Yt,exports:t.exports||Yt,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null}))}function Sq(t,n){if(null==t)return Pr;const e={};for(const i in t)if(t.hasOwnProperty(i)){const o=t[i];let r,s,a,l;Array.isArray(o)?(a=o[0],r=o[1],s=o[2]??r,l=o[3]||null):(r=o,s=o,a=Qm.None,l=null),e[r]=[i,a,l],n[r]=s}return e}function kq(t){if(null==t)return Pr;const n={};for(const e in t)t.hasOwnProperty(e)&&(n[t[e]]=e);return n}function de(t){return gs(()=>{const n=uI(t);return hI(n),n})}function Hi(t){return{type:t.type,name:t.name,factory:null,pure:!1!==t.pure,standalone:t.standalone??!0,onDestroy:t.type.prototype.ngOnDestroy||null}}function uI(t){const n={};return{type:t.type,providersResolver:null,viewProvidersResolver:null,factory:null,hostBindings:t.hostBindings||null,hostVars:t.hostVars||0,hostAttrs:t.hostAttrs||null,contentQueries:t.contentQueries||null,declaredInputs:n,inputConfig:t.inputs||Pr,exportAs:t.exportAs||null,standalone:t.standalone??!0,signals:!0===t.signals,selectors:t.selectors||Yt,viewQuery:t.viewQuery||null,features:t.features||null,setInput:null,resolveHostDirectives:null,hostDirectives:null,controlDef:null,inputs:Sq(t.inputs,n),outputs:kq(t.outputs),debugInfo:null}}function hI(t){t.features?.forEach(n=>n(t))}function Tg(t,n){return t?()=>{const e="function"==typeof t?t():t,i=[];for(const o of e){const r=n(o);null!==r&&i.push(r)}return i}:null}function fI(t){const n=e=>{const i=Array.isArray(t);null===e.hostDirectives?(e.resolveHostDirectives=Eq,e.hostDirectives=i?t.map(r0):[t]):i?e.hostDirectives.unshift(...t.map(r0)):e.hostDirectives.unshift(t)};return n.ngInherit=!0,n}function Eq(t){const n=[];let e=!1,i=null,o=null;for(let r=0;r=0;i--){const o=t[i];o.hostVars=n+=o.hostVars,o.hostAttrs=td(o.hostAttrs,e=td(e,o.hostAttrs))}}(i)}function Oq(t,n){for(const e in n.inputs){if(!n.inputs.hasOwnProperty(e)||t.inputs.hasOwnProperty(e))continue;const i=n.inputs[e];void 0!==i&&(t.inputs[e]=i,t.declaredInputs[e]=n.declaredInputs[e])}}function s0(t){return t===Pr?{}:t===Yt?[]:t}function Rq(t,n){const e=t.viewQuery;t.viewQuery=e?(i,o)=>{n(i,o),e(i,o)}:n}function Fq(t,n){const e=t.contentQueries;t.contentQueries=e?(i,o,r)=>{n(i,o,r),e(i,o,r)}:n}function Nq(t,n){const e=t.hostBindings;t.hostBindings=e?(i,o)=>{n(i,o),e(i,o)}:n}function bI(t,n,e,i,o,r,s,a){if(e.firstCreatePass){t.mergedAttrs=td(t.mergedAttrs,t.attrs);const f=t.tView=QC(2,t,o,r,s,e.directiveRegistry,e.pipeRegistry,null,e.schemas,e.consts,null);null!==e.queries&&(e.queries.template(e,t),f.queries=e.queries.embeddedTView(t))}a&&(t.flags|=a),fs(t,!1);const l=vI(e,n,t,i);am()&&_1(e,n,l,t),po(l,n);const c=QE(l,n,l,t);n[i+27]=c,e1(n,c)}function Dl(t,n,e,i,o,r,s,a,l,c,f){const m=e+27;let g;if(n.firstCreatePass){if(g=Cl(n,m,4,s||null,a||null),null!=c){const _=Li(n.consts,c);g.localNames=[];for(let w=0;w<_.length;w+=2)g.localNames.push(_[w],-1)}}else g=n.data[m];return bI(g,t,n,e,i,o,r,l),null!=c&&dd(t,g,f),g}function it(t,n,e,i,o,r,s,a){const l=ne(),c=ze();return function Lq(t,n,e,i,o,r,s,a,l,c,f){const m=e+27;let g;n.firstCreatePass?(g=Cl(n,m,4,s||null,a||null),Hy()&&MP(n,t,g,Li(n.consts,c),w1),kT(n,g)):g=n.data[m],bI(g,t,n,e,i,o,r,l),$c(g)&&ag(n,t,g),null!=c&&dd(t,g,f)}(l,c,t,n,e,i,o,Li(c.consts,r),void 0,s,a),it}function Eg(t,n,e,i,o,r,s,a){const l=ne(),c=ze();return Dl(l,c,t,n,e,i,o,Li(c.consts,r),void 0,s,a),Eg}let vI=function yI(t,n,e,i){return $u(!0),n[11].createComment("")};let AI=(()=>{class t{log(e){console.log(e)}warn(e){console.warn(e)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();function El(t){return"function"==typeof t&&void 0!==t[Rn]}function FI(t){return El(t)&&"function"==typeof t.set}const XI=new Z(""),ZI=new Z("");let p0,f0=(()=>{class t{_ngZone;registry;_isZoneStable=!0;_callbacks=[];_taskTrackingZone=null;_destroyRef;constructor(e,i,o){this._ngZone=e,this.registry=i,Iy()&&(this._destroyRef=D(rr,{optional:!0})??void 0),p0||(function WK(t){p0=t}(o),o.addToWindow(i)),this._watchAngularEvents(),e.run(()=>{this._taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){const e=this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),i=this._ngZone.runOutsideAngular(()=>this._ngZone.onStable.subscribe({next:()=>{_e.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}}));this._destroyRef?.onDestroy(()=>{e.unsubscribe(),i.unsubscribe()})}isStable(){return this._isZoneStable&&!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(s=>s.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()}registerApplication(e){this.registry.registerApplication(e,this)}unregisterApplication(e){this.registry.unregisterApplication(e)}findProviders(e,i,o){return[]}static \u0275fac=function(i){return new(i||t)(ce(_e),ce($K),ce(ZI))};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})(),$K=(()=>{class t{_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 p0?.findTestabilityInTree(this,e,i)??null}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();function Rh(t){return!!t&&"function"==typeof t.then}function QI(t){return!!t&&"function"==typeof t.subscribe}const JI=new Z("");function eO(t){return Hu([{provide:JI,multi:!0,useValue:t}])}let tO=(()=>{class t{resolve;reject;initialized=!1;done=!1;donePromise=new Promise((e,i)=>{this.resolve=e,this.reject=i});appInits=D(JI,{optional:!0})??[];injector=D(He);constructor(){}runInitializers(){if(this.initialized)return;const e=[];for(const o of this.appInits){const r=Qi(this.injector,o);if(Rh(r))e.push(r);else if(QI(r)){const s=new Promise((a,l)=>{r.subscribe({complete:a,error:l})});e.push(s)}}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 \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const nO=new Z("");function iO(t,n){return Array.isArray(n)?n.reduce(iO,t):{...t,...n}}let lr=(()=>{class t{_runningTick=!1;_destroyed=!1;_destroyListeners=[];_views=[];internalErrorHandler=D(Or);afterRenderManager=D(u1);zonelessEnabled=D(um);rootEffectScheduler=D($M);dirtyFlags=0;tracingSnapshot=null;allTestViews=new Set;autoDetectTestViews=new Set;includeAllTestViews=!1;afterTick=new me;get allViews(){return[...(this.includeAllTestViews?this.allTestViews:this.autoDetectTestViews).keys(),...this._views]}get destroyed(){return this._destroyed}componentTypes=[];components=[];internalPendingTask=D(Ys);get isStable(){return this.internalPendingTask.hasPendingTasksObservable.pipe(Se(e=>!e))}constructor(){D(oa,{optional:!0})}whenStable(){let e;return new Promise(i=>{e=this.isStable.subscribe({next:o=>{o&&i()}})}).finally(()=>{e.unsubscribe()})}_injector=D(zn);_rendererFactory=null;get injector(){return this._injector}bootstrap(e,i){return this.bootstrapImpl(e,i)}bootstrapImpl(e,i,o=He.NULL){return this._injector.get(_e).run(()=>{Lt(ge.BootstrapComponentStart);const s=e instanceof kP;if(!this._injector.get(tO).done)throw new X(405,"");let l;l=s?e:this._injector.get(wg).resolveComponentFactory(e),this.componentTypes.push(l.componentType);const c=function qK(t){return t.isBoundToModule}(l)?void 0:this._injector.get(bs),m=l.create(o,[],i||l.selector,c),g=m.location.nativeElement,_=m.injector.get(XI,null);return _?.registerApplication(g),m.onDestroy(()=>{this.detachView(m.hostView),Lg(this.components,m),_?.unregisterApplication(g)}),this._loadComponent(m),Lt(ge.BootstrapComponentEnd,m),m})}tick(){this.zonelessEnabled||(this.dirtyFlags|=1),this._tick()}_tick(){Lt(ge.ChangeDetectionStart),null!==this.tracingSnapshot?this.tracingSnapshot.run(d1.CHANGE_DETECTION,this.tickImpl):this.tickImpl()}tickImpl=()=>{if(this._runningTick)throw Lt(ge.ChangeDetectionEnd),new X(101,!1);const e=Te(null);try{this._runningTick=!0,this.synchronize()}finally{this._runningTick=!1,this.tracingSnapshot?.dispose(),this.tracingSnapshot=null,Te(e),this.afterTick.next(),Lt(ge.ChangeDetectionEnd)}};synchronize(){null===this._rendererFactory&&!this._injector.destroyed&&(this._rendererFactory=this._injector.get(Lo,null,{optional:!0}));let e=0;for(;0!==this.dirtyFlags&&e++<10;){Lt(ge.ChangeDetectionSyncStart);try{this.synchronizeOnce()}finally{Lt(ge.ChangeDetectionSyncEnd)}}}synchronizeOnce(){16&this.dirtyFlags&&(this.dirtyFlags&=-17,this.rootEffectScheduler.flush());let e=!1;if(7&this.dirtyFlags){const i=!!(1&this.dirtyFlags);this.dirtyFlags&=-8,this.dirtyFlags|=8;for(let{_lView:o}of this.allViews)(i||im(o))&&(fg(o,i&&!this.zonelessEnabled?0:1),e=!0);if(this.dirtyFlags&=-5,this.syncDirtyFlagsWithViews(),23&this.dirtyFlags)return}e||(this._rendererFactory?.begin?.(),this._rendererFactory?.end?.()),8&this.dirtyFlags&&(this.dirtyFlags&=-9,this.afterRenderManager.execute()),this.syncDirtyFlagsWithViews()}syncDirtyFlagsWithViews(){this.allViews.some(({_lView:e})=>im(e))?this.dirtyFlags|=2:this.dirtyFlags&=-8}attachView(e){const i=e;this._views.push(i),i.attachToAppRef(this)}detachView(e){const i=e;Lg(this._views,i),i.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView);try{this.tick()}catch(o){this.internalErrorHandler(o)}this.components.push(e),this._injector.get(nO,[]).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._destroyListeners=[]}}onDestroy(e){return this._destroyListeners.push(e),()=>Lg(this._destroyListeners,e)}destroy(){if(this._destroyed)throw new X(406,!1);const e=this._injector;e.destroy&&!e.destroyed&&e.destroy()}get viewCount(){return this._views.length}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Lg(t,n){const e=t.indexOf(n);e>-1&&t.splice(e,1)}function y0(t,n){const e=ne();if(un(e,ho(),n)){const o=ze(),r=or();if(ug(r,o,e,t,n))Ir(r)&&jE(e,r.index);else{const a=Zn(r,e);lg(e[11],a,null,r.value,t,n,null)}}return y0}function $e(t,n,e,i){const o=ne();return un(o,ho(),n)&&(ze(),function sW(t,n,e,i,o,r){const s=Zn(t,n);lg(n[11],s,r,t.value,e,i,o)}(or(),o,t,n,e,i)),$e}function Br(){return ne()[15][8]}class FY{destroy(n){}updateValue(n,e){}swap(n,e){const i=Math.min(n,e),o=Math.max(n,e),r=this.detach(o);if(o-i>1){const s=this.detach(i);this.attach(i,r),this.attach(o,s)}else this.attach(i,r)}move(n,e){this.attach(e,this.detach(n))}}function w0(t,n,e,i,o){return t===e&&Object.is(n,i)?1:Object.is(o(t,n),o(e,i))?-1:0}function x0(t,n,e,i){return!(void 0===n||!n.has(i)||(t.attach(e,n.get(i)),n.delete(i),0))}function hO(t,n,e,i,o){if(x0(t,n,i,e(i,o)))t.updateValue(i,o);else{const r=t.create(i,o);t.attach(i,r)}}function fO(t,n,e,i){const o=new Set;for(let r=n;r<=e;r++)o.add(i(r,t.at(r)));return o}class pO{kvMap=new Map;_vMap=void 0;has(n){return this.kvMap.has(n)}delete(n){if(!this.has(n))return!1;const e=this.kvMap.get(n);return void 0!==this._vMap&&this._vMap.has(e)?(this.kvMap.set(n,this._vMap.get(e)),this._vMap.delete(e)):this.kvMap.delete(n),!0}get(n){return this.kvMap.get(n)}set(n,e){if(this.kvMap.has(n)){let i=this.kvMap.get(n);void 0===this._vMap&&(this._vMap=new Map);const o=this._vMap;for(;o.has(i);)i=o.get(i);o.set(i,e)}else this.kvMap.set(n,e)}forEach(n){for(let[e,i]of this.kvMap)if(n(i,e),void 0!==this._vMap){const o=this._vMap;for(;o.has(i);)i=o.get(i),n(i,e)}}}function x(t,n,e,i,o,r,s,a){vi("NgControlFlow");const l=ne(),c=ze();return Dl(l,c,t,n,e,i,o,Li(c.consts,r),256,s,a),S0}function S0(t,n,e,i,o,r,s,a){vi("NgControlFlow");const l=ne(),c=ze();return Dl(l,c,t,n,e,i,o,Li(c.consts,r),512,s,a),S0}function S(t,n){vi("NgControlFlow");const e=ne(),i=ho(),o=e[i]!==At?e[i]:-1,r=-1!==o?jg(e,27+o):void 0;if(un(e,i,t)){const a=Te(null);try{if(void 0!==r&&k1(r,0),-1!==t){const l=27+t,c=jg(e,l),f=k0(e[1],l),m=null;fd(c,ud(e,f,n,{dehydratedView:m}),0,yl(f,m))}}finally{Te(a)}}else if(void 0!==r){const a=JE(r,0);void 0!==a&&(a[8]=n)}}class LY{lContainer;$implicit;$index;constructor(n,e,i){this.lContainer=n,this.$implicit=e,this.$index=i}get $count(){return this.lContainer.length-10}}function mO(t){return t}function Fe(t,n){return n}class BY{hasEmptyBlock;trackByFn;liveCollection;constructor(n,e,i){this.hasEmptyBlock=n,this.trackByFn=e,this.liveCollection=i}}function ve(t,n,e,i,o,r,s,a,l,c,f,m,g){vi("NgControlFlow");const _=ne(),w=ze(),k=void 0!==l,T=ne(),I=a?s.bind(T[15][8]):s,R=new BY(k,I);T[27+t]=R,Dl(_,w,t+1,n,e,i,o,Li(w.consts,r),256),k&&Dl(_,w,t+2,l,c,f,m,Li(w.consts,g),512)}class VY extends FY{lContainer;hostLView;templateTNode;operationsCounter=void 0;needsIndexUpdate=!1;constructor(n,e,i){super(),this.lContainer=n,this.hostLView=e,this.templateTNode=i}get length(){return this.lContainer.length-10}at(n){return this.getLView(n)[8].$implicit}attach(n,e){const i=e[6];this.needsIndexUpdate||=n!==this.length,fd(this.lContainer,e,n,yl(this.templateTNode,i)),function HY(t,n){if(t.length<=10)return;const i=t[10+n],o=i?i[26]:void 0;i&&o&&o.detachedLeaveAnimationFns&&o.detachedLeaveAnimationFns.length>0&&(function z$(t,n){const e=t.get(og);if(n.detachedLeaveAnimationFns){for(const i of n.detachedLeaveAnimationFns)e.queue.delete(i);n.detachedLeaveAnimationFns=void 0}}(i[9],o),bl.delete(i[19]),o.detachedLeaveAnimationFns=void 0)}(this.lContainer,n)}detach(n){return this.needsIndexUpdate||=n!==this.length-1,function jY(t,n){if(t.length<=10)return;const i=t[10+n],o=i?i[26]:void 0;o&&o.leave&&o.leave.size>0&&(o.detachedLeaveAnimationFns=[])}(this.lContainer,n),function UY(t,n){return _h(t,n)}(this.lContainer,n)}create(n,e){return ud(this.hostLView,this.templateTNode,new LY(this.lContainer,e,n),{dehydratedView:null})}destroy(n){mh(n[1],n)}updateValue(n,e){this.getLView(n)[8].$implicit=e}reset(){this.needsIndexUpdate=!1}updateIndexes(){if(this.needsIndexUpdate)for(let n=0;n{t.destroy(c)})}(l,t,r.trackByFn,n),l.updateIndexes(),r.hasEmptyBlock){const c=ho(),f=0===l.length;if(un(i,c,f)){const m=e+2,g=jg(i,m);if(f){const _=k0(o,m),w=null;fd(g,ud(i,_,void 0,{dehydratedView:w}),0,yl(_,w))}else o.firstUpdatePass&&function vg(t){const n=t[6]??[],i=t[3][11],o=[];for(const r of n)void 0!==r.data.di?o.push(r):vP(r,i);t[6]=o}(g),k1(g,0)}}}finally{Te(n)}}function jg(t,n){return t[n]}function k0(t,n){return Gc(t,n)}function C(t,n,e){const i=ne();return un(i,ho(),n)&&(ze(),y1(or(),i,t,n,i[11],e)),C}function D0(t,n,e,i,o){ug(n,t,e,o?"class":"style",i)}function h(t,n,e,i){const o=ne(),r=o[1],s=t+27,a=r.firstCreatePass?V1(s,o,2,n,w1,Hy(),e,i):r.data[s];if(Ir(a)){const l=o[10].tracingService;if(l&&l.componentCreate)return l.componentCreate(z1(r.data[a.directiveStart+a.componentOffset]),()=>(gO(t,n,o,a,i),h))}return gO(t,n,o,a,i),h}function gO(t,n,e,i,o){if(cg(i,e,t,n,M0),$c(i)){const r=e[1];ag(r,e,i),VC(r,i,e)}null!=o&&dd(e,i)}function u(){const t=ze(),e=dg(Ve());return t.firstCreatePass&&H1(t,e),vM(e)&&yM(),_M(),null!=e.classesWithoutHost&&function zz(t){return!!(8&t.flags)}(e)&&D0(t,e,ne(),e.classesWithoutHost,!0),null!=e.stylesWithoutHost&&function $z(t){return!!(16&t.flags)}(e)&&D0(t,e,ne(),e.stylesWithoutHost,!1),u}function B(t,n,e,i){return h(t,n,e,i),u(),B}function vs(t,n,e,i){const o=ne(),r=o[1],s=t+27,a=r.firstCreatePass?function OP(t,n,e,i,o,r){const s=n.consts,l=Cl(n,t,e,i,Li(s,o));if(l.mergedAttrs=td(l.mergedAttrs,l.attrs),null!=r){const c=Li(s,r);l.localNames=[];for(let f=0;f($u(!0),Ym(n[11],i,function Yj(){return Be.lFrame.currentNamespace}()));function Vr(t,n,e){const i=ne(),o=i[1],r=t+27,s=o.firstCreatePass?V1(r,i,8,"ng-container",w1,Hy(),n,e):o.data[r];if(cg(s,i,t,"ng-container",E0),$c(s)){const a=i[1];ag(a,i,s),VC(a,s,i)}return null!=e&&dd(i,s),Vr}function cr(){const t=ze(),e=dg(Ve());return t.firstCreatePass&&H1(t,e),cr}function dr(t,n,e){return Vr(t,n,e),cr(),dr}let E0=(t,n,e,i,o)=>($u(!0),YC(n[11],""));function oe(){return ne()}function ur(t,n,e){const i=ne();return un(i,ho(),n)&&(ze(),C1(or(),i,t,n,i[11],e)),ur}const Nh=void 0;var qY=["en",[["a","p"],["AM","PM"]],[["AM","PM"]],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],Nh,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],Nh,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm\u202fa","h:mm:ss\u202fa","h:mm:ss\u202fa z","h:mm:ss\u202fa zzzz"],["{1}, {0}",Nh,Nh,Nh],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function GY(t){const n=Math.floor(Math.abs(t)),e=t.toString().replace(/^[^.]*\.?/,"").length;return 1===n&&0===e?1:5}];let Sd={};function to(t){const n=function KY(t){return t.toLowerCase().replace(/_/g,"-")}(t);let e=CO(n);if(e)return e;const i=n.split("-")[0];if(e=CO(i),e)return e;if("en"===i)return qY;throw new X(701,!1)}function CO(t){return t in Sd||(Sd[t]=Fn.ng&&Fn.ng.common&&Fn.ng.common.locales&&Fn.ng.common.locales[t]),Sd[t]}var hn=function(t){return t[t.LocaleId=0]="LocaleId",t[t.DayPeriodsFormat=1]="DayPeriodsFormat",t[t.DayPeriodsStandalone=2]="DayPeriodsStandalone",t[t.DaysFormat=3]="DaysFormat",t[t.DaysStandalone=4]="DaysStandalone",t[t.MonthsFormat=5]="MonthsFormat",t[t.MonthsStandalone=6]="MonthsStandalone",t[t.Eras=7]="Eras",t[t.FirstDayOfWeek=8]="FirstDayOfWeek",t[t.WeekendRange=9]="WeekendRange",t[t.DateFormat=10]="DateFormat",t[t.TimeFormat=11]="TimeFormat",t[t.DateTimeFormat=12]="DateTimeFormat",t[t.NumberSymbols=13]="NumberSymbols",t[t.NumberFormats=14]="NumberFormats",t[t.CurrencyCode=15]="CurrencyCode",t[t.CurrencySymbol=16]="CurrencySymbol",t[t.CurrencyName=17]="CurrencyName",t[t.Currencies=18]="Currencies",t[t.Directionality=19]="Directionality",t[t.PluralCase=20]="PluralCase",t[t.ExtraData=21]="ExtraData",t}(hn||{});const Ug="en-US";let wO=Ug;function F(t,n,e){const i=ne(),o=ze(),r=Ve();return O0(o,i,i[11],r,t,n,e),F}function qg(t,n,e){const i=ne(),o=ze(),r=Ve();return(3&r.type||e)&&U1(r,o,i,e,i[11],t,n,sa(r,i,n)),qg}function O0(t,n,e,i,o,r,s){let a=!0,l=null;if((3&i.type||s)&&(l??=sa(i,n,r),U1(i,t,n,s,e,o,r,l)&&(a=!1)),a){const c=i.outputs?.[o],f=i.hostDirectiveOutputs?.[o];if(f&&f.length)for(let m=0;m0;)n=n[14],t--;return n}(t,Be.lFrame.contextLView))[8]}(t)}function RX(t,n){let e=null;const i=function b$(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>17&32767}function N0(t){return 2|t}function kd(t){return(131068&t)>>2}function L0(t,n){return-131069&t|n<<2}function B0(t){return 1|t}function UO(t,n,e,i){const o=t[e+1],r=null===n;let s=i?Al(o):kd(o),a=!1;for(;0!==s&&(!1===a||r);){const c=t[s+1];jX(t[s],n)&&(a=!0,t[s+1]=i?B0(c):N0(c)),s=i?Al(c):kd(c)}a&&(t[e+1]=i?N0(o):B0(o))}function jX(t,n){return null===t||null==n||(Array.isArray(t)?t[1]:t)===n||!(!Array.isArray(t)||"string"!=typeof n)&&Vu(t,n)>=0}const ri={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function zO(t){return t.substring(ri.key,ri.keyEnd)}function UX(t){return t.substring(ri.value,ri.valueEnd)}function $O(t,n){const e=ri.textEnd;return e===n?-1:(n=ri.keyEnd=function WX(t,n,e){for(;n32;)n++;return n}(t,ri.key=n,e),Dd(t,n,e))}function WO(t,n){const e=ri.textEnd;let i=ri.key=Dd(t,n,e);return e===i?-1:(i=ri.keyEnd=function GX(t,n,e){let i;for(;n=65&&(-33&i)<=90||i>=48&&i<=57);)n++;return n}(t,i,e),i=qO(t,i,e),i=ri.value=Dd(t,i,e),i=ri.valueEnd=function qX(t,n,e){let i=-1,o=-1,r=-1,s=n,a=s;for(;s32&&(a=s),r=o,o=i,i=-33&l}return a}(t,i,e),qO(t,i,e))}function GO(t){ri.key=0,ri.keyEnd=0,ri.value=0,ri.valueEnd=0,ri.textEnd=t.length}function Dd(t,n,e){for(;n=0;e=WO(n,e))JO(t,zO(n),UX(n))}function Ze(t){XO(tZ,YX,t,!0)}function YX(t,n){for(let e=function zX(t){return GO(t),$O(t,Dd(t,0,ri.textEnd))}(n);e>=0;e=$O(n,e))Yp(t,zO(n),!0)}function YO(t,n,e,i){const o=ne(),r=ze(),s=ms(2);r.firstUpdatePass&&QO(r,t,s,i),n!==At&&un(o,s,n)&&eA(r,r.data[Di()],o,o[11],t,o[s+1]=function iZ(t,n){return null==t||""===t||("string"==typeof n?t+=n:"object"==typeof t&&(t=Ws(Mo(t)))),t}(n,e),i,s)}function XO(t,n,e,i){const o=ze(),r=ms(2);o.firstUpdatePass&&QO(o,null,r,i);const s=ne();if(e!==At&&un(s,r,e)){const a=o.data[Di()];if(nA(a,i)&&!ZO(o,r)){let l=i?a.classesWithoutHost:a.stylesWithoutHost;null!==l&&(e=uy(l,e||"")),D0(o,a,s,e,i)}else!function nZ(t,n,e,i,o,r,s,a){o===At&&(o=Yt);let l=0,c=0,f=0=t.expandoStartIndex}function QO(t,n,e,i){const o=t.data;if(null===o[e+1]){const r=o[Di()],s=ZO(t,e);nA(r,i)&&null===n&&!s&&(n=!1),n=function XX(t,n,e,i){const o=function Uy(t){const n=Be.lFrame.currentDirectiveIndex;return-1===n?null:t[n]}(t);let r=i?n.residualClasses:n.residualStyles;if(null===o)0===(i?n.classBindings:n.styleBindings)&&(e=jh(e=V0(null,t,n,e,i),n.attrs,i),r=null);else{const s=n.directiveStylingLast;if(-1===s||t[s]!==o)if(e=V0(o,t,n,e,i),null===r){let l=function ZX(t,n,e){const i=e?n.classBindings:n.styleBindings;if(0!==kd(i))return t[Al(i)]}(t,n,i);void 0!==l&&Array.isArray(l)&&(l=V0(null,t,n,l[1],i),l=jh(l,n.attrs,i),function QX(t,n,e,i){t[Al(e?n.classBindings:n.styleBindings)]=i}(t,n,i,l))}else r=function JX(t,n,e){let i;const o=n.directiveEnd;for(let r=1+n.directiveStylingLast;r0)&&(c=!0)):f=e,o)if(0!==l){const g=Al(t[a+1]);t[i+1]=Kg(g,a),0!==g&&(t[g+1]=L0(t[g+1],i)),t[a+1]=function LX(t,n){return 131071&t|n<<17}(t[a+1],i)}else t[i+1]=Kg(a,0),0!==a&&(t[a+1]=L0(t[a+1],i)),a=i;else t[i+1]=Kg(l,0),0===a?a=i:t[l+1]=L0(t[l+1],i),l=i;c&&(t[i+1]=N0(t[i+1])),UO(t,f,i,!0),UO(t,f,i,!1),function HX(t,n,e,i,o){const r=o?t.residualClasses:t.residualStyles;null!=r&&"string"==typeof n&&Vu(r,n)>=0&&(e[i+1]=B0(e[i+1]))}(n,f,t,i,r),s=Kg(a,l),r?n.classBindings=s:n.styleBindings=s}(o,r,n,e,s,i)}}function V0(t,n,e,i,o){let r=null;const s=e.directiveEnd;let a=e.directiveStylingLast;for(-1===a?a=e.directiveStart:a++;a0;){const l=t[o],c=Array.isArray(l),f=c?l[1]:l,m=null===f;let g=e[o+1];g===At&&(g=m?Yt:void 0);let _=m?wy(g,i):f===i?g:void 0;if(c&&!Yg(_)&&(_=wy(l,i)),Yg(_)&&(a=_,s))return a;const w=t[o+1];o=s?Al(w):kd(w)}if(null!==n){let l=r?n.residualClasses:n.residualStyles;null!=l&&(a=wy(l,i))}return a}function Yg(t){return void 0!==t}function nA(t,n){return!!(t.flags&(n?8:16))}function p(t,n=""){const e=ne(),i=ze(),o=t+27,r=i.firstCreatePass?Cl(i,o,1,n,null):i.data[o],s=iA(i,e,r,n);e[o]=s,am()&&_1(i,e,s,r),fs(r,!1)}let iA=(t,n,e,i)=>($u(!0),function KC(t,n){return t.createText(n)}(n[11],i));function M(t){return E("",t),M}function E(t,n,e){const i=ne(),o=function rA(t,n,e,i=""){return un(t,ho(),e)?n+je(e)+i:At}(i,t,n,e);return o!==At&&Cs(i,Di(),o),E}function gt(t,n,e,i,o){const r=ne(),s=function sA(t,n,e,i,o,r=""){const a=Sl(t,ps(),e,o);return ms(2),a?n+je(e)+i+je(o)+r:At}(r,t,n,e,i,o);return s!==At&&Cs(r,Di(),s),gt}function Uh(t,n,e,i,o,r,s){const a=ne(),l=function aA(t,n,e,i,o,r,s,a=""){const c=Dg(t,ps(),e,o,s);return ms(3),c?n+je(e)+i+je(o)+r+je(s)+a:At}(a,t,n,e,i,o,r,s);return l!==At&&Cs(a,Di(),l),Uh}function Xg(t,n,e,i,o,r,s,a,l){const c=ne(),f=function lA(t,n,e,i,o,r,s,a,l,c=""){const m=Bo(t,ps(),e,o,s,l);return ms(4),m?n+je(e)+i+je(o)+r+je(s)+a+je(l)+c:At}(c,t,n,e,i,o,r,s,a,l);return f!==At&&Cs(c,Di(),f),Xg}function H0(t,n,e,i,o,r,s,a,l,c,f,m,g){const _=ne(),w=function dA(t,n,e,i,o,r,s,a,l,c,f,m,g,_=""){const w=ps();let k=Bo(t,w,e,o,s,l);return k=Sl(t,w+4,f,g)||k,ms(6),k?n+je(e)+i+je(o)+r+je(s)+a+je(l)+c+je(f)+m+je(g)+_:At}(_,t,n,e,i,o,r,s,a,l,c,f,m,g);return w!==At&&Cs(_,Di(),w),H0}function Cs(t,n,e){const i=Wc(n,t);!function nE(t,n,e){t.setValue(n,e)}(t[11],i,e)}function Ut(t,n,e){FI(n)&&(n=n());const i=ne();return un(i,ho(),n)&&(ze(),y1(or(),i,t,n,i[11],e)),Ut}function Zt(t,n){const e=FI(t);return e&&t.set(n),e}function zt(t,n){const e=ne(),i=ze(),o=Ve();return O0(i,e,e[11],o,t,n),zt}function Qt(t){return un(ne(),ho(),t)?je(t):At}function vA(t,n,e){const i=ze();i.firstCreatePass&&yA(n,i.data,i.blueprint,ir(t),e)}function yA(t,n,e,i,o){if(t=qe(t),Array.isArray(t))for(let r=0;r>20;if(as(t)||!t.multi){const _=new Qu(c,o,O,null),w=U0(l,n,o?f:f+g,m);-1===w?(fC(Mm(a,s),r,l),j0(r,t,n.length),n.push(l),a.directiveStart++,a.directiveEnd++,o&&(a.providerIndexes+=1048576),e.push(_),s.push(_)):(e[w]=_,s[w]=_)}else{const _=U0(l,n,f+g,m),w=U0(l,n,f,f+g),T=w>=0&&e[w];if(o&&!T||!o&&!(_>=0&&e[_])){fC(Mm(a,s),r,l);const I=function yZ(t,n,e,i,o){const s=new Qu(t,e,O,null);return s.multi=[],s.index=n,s.componentProviders=0,CA(s,o,i&&!e),s}(o?vZ:bZ,e.length,o,i,c);!o&&T&&(e[w].providerFactory=I),j0(r,t,n.length,0),n.push(l),a.directiveStart++,a.directiveEnd++,o&&(a.providerIndexes+=1048576),e.push(I),s.push(I)}else j0(r,t,_>-1?_:w,CA(e[o?w:_],c,!o&&i));!o&&i&&T&&e[w].componentProviders++}}}function j0(t,n,e,i){const o=as(n),r=function nM(t){return!!t.useClass}(n);if(o||r){const l=(r?qe(n.useClass):n).prototype.ngOnDestroy;if(l){const c=t.destroyHooks||(t.destroyHooks=[]);if(!o&&n.multi){const f=c.indexOf(e);-1===f?c.push(e,[i,l]):c[f+1].push(i,l)}else c.push(e,l)}}}function CA(t,n,e){return e&&t.componentProviders++,t.multi.push(n)-1}function U0(t,n,e,i){for(let o=e;o{e.providersResolver=(i,o)=>vA(i,o?o(t):t,!1),n&&(e.viewProvidersResolver=(i,o)=>vA(i,o?o(n):n,!0))}}function Ct(t,n){const e=Bi()+t,i=ne();return i[e]===At?ar(i,e,n()):function gd(t,n){return t[n]}(i,e)}function se(t,n,e){return kA(ne(),Bi(),t,n,e)}function _t(t,n,e,i){return DA(ne(),Bi(),t,n,e,i)}function SA(t,n,e,i,o){return function MA(t,n,e,i,o,r,s,a){const l=n+e;return Dg(t,l,o,r,s)?ar(t,l+3,a?i.call(a,o,r,s):i(o,r,s)):zh(t,l+3)}(ne(),Bi(),t,n,e,i,o)}function zh(t,n){const e=t[n];return e===At?void 0:e}function kA(t,n,e,i,o,r){const s=n+e;return un(t,s,o)?ar(t,s+1,r?i.call(r,o):i(o)):zh(t,s+1)}function DA(t,n,e,i,o,r,s){const a=n+e;return Sl(t,a,o,r)?ar(t,a+2,s?i.call(s,o,r):i(o,r)):zh(t,a+2)}function b(t,n){const e=ze();let i;const o=t+27;e.firstCreatePass?(i=function EZ(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=Za(i.type)),a=uo(O);try{const l=Dm(!1),c=r();return Dm(l),function Ry(t,n,e,i){e>=t.data.length&&(t.data[e]=null,t.blueprint[e]=null),n[e]=i}(e,ne(),o,c),c}finally{uo(a)}}function y(t,n,e){const i=t+27,o=ne(),r=il(o,i);return $h(o,i)?kA(o,Bi(),n,r.transform,e,r):r.transform(e)}function pe(t,n,e,i){const o=t+27,r=ne(),s=il(r,o);return $h(r,o)?DA(r,Bi(),n,s.transform,e,i,s):s.transform(e,i)}function $h(t,n){return t[1].data[n].pure}function Rl(t,n){return pg(t,n)}class sQ{ngModuleFactory;componentFactories;constructor(n,e){this.ngModuleFactory=n,this.componentFactories=e}}let aQ=(()=>{class t{compileModuleSync(e){return new cI(e)}compileModuleAsync(e){return Promise.resolve(this.compileModuleSync(e))}compileModuleAndAllComponentsSync(e){const i=this.compileModuleSync(e),r=Lr(Er(e).declarations).reduce((s,a)=>{const l=xt(a);return l&&s.push(new Th(l)),s},[]);return new sQ(i,r)}compileModuleAndAllComponentsAsync(e){return Promise.resolve(this.compileModuleAndAllComponentsSync(e))}clearCache(){}clearCacheFor(e){}getModuleId(e){}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),cQ=(()=>{class t{applicationErrorHandler=D(Or);appRef=D(lr);taskService=D(Ys);ngZone=D(_e);zonelessEnabled=D(um);tracing=D(oa,{optional:!0});zoneIsDefined=typeof Zone<"u"&&!!Zone.root.run;schedulerTickApplyArgs=[{data:{__scheduler_tick__:!0}}];subscriptions=new pt;angularZoneId=this.zoneIsDefined?this.ngZone._inner?.get(cm):null;scheduleInRootZone=!this.zonelessEnabled&&this.zoneIsDefined&&(D(zM,{optional:!0})??!1);cancelScheduledCallback=null;useMicrotaskScheduler=!1;runningTick=!1;pendingRenderTaskId=null;constructor(){this.subscriptions.add(this.appRef.afterTick.subscribe(()=>{const e=this.taskService.add();this.runningTick||(this.cleanup(),this.zonelessEnabled&&!this.appRef.includeAllTestViews)?(this.switchToMicrotaskScheduler(),this.taskService.remove(e)):this.taskService.remove(e)})),this.subscriptions.add(this.ngZone.onUnstable.subscribe(()=>{this.runningTick||this.cleanup()}))}switchToMicrotaskScheduler(){this.ngZone.runOutsideAngular(()=>{const e=this.taskService.add();this.useMicrotaskScheduler=!0,queueMicrotask(()=>{this.useMicrotaskScheduler=!1,this.taskService.remove(e)})})}notify(e){if(!this.zonelessEnabled&&5===e)return;switch(e){case 0:case 6:case 13:this.appRef.dirtyFlags|=2;break;case 3:case 2:case 4:case 5:case 1:this.appRef.dirtyFlags|=4;break;case 12:this.appRef.dirtyFlags|=16;break;case 11:break;default:this.appRef.dirtyFlags|=8}if(this.appRef.tracingSnapshot=this.tracing?.snapshot(this.appRef.tracingSnapshot)??null,!this.shouldScheduleTick())return;const i=this.useMicrotaskScheduler?Jj:VM;this.pendingRenderTaskId=this.taskService.add(),this.cancelScheduledCallback=this.scheduleInRootZone?Zone.root.run(()=>i(()=>this.tick())):this.ngZone.runOutsideAngular(()=>i(()=>this.tick()))}shouldScheduleTick(){return!(this.appRef.destroyed||null!==this.pendingRenderTaskId||this.runningTick||this.appRef._runningTick||!this.zonelessEnabled&&this.zoneIsDefined&&Zone.current.get(cm+this.angularZoneId))}tick(){if(this.runningTick||this.appRef.destroyed)return;if(0===this.appRef.dirtyFlags)return void this.cleanup();!this.zonelessEnabled&&7&this.appRef.dirtyFlags&&(this.appRef.dirtyFlags|=1);const e=this.taskService.add();try{this.ngZone.run(()=>{this.runningTick=!0,this.appRef._tick()},void 0,this.schedulerTickApplyArgs)}catch(i){this.applicationErrorHandler(i)}finally{this.taskService.remove(e),this.cleanup()}}ngOnDestroy(){this.subscriptions.unsubscribe(),this.cleanup()}cleanup(){if(this.runningTick=!1,this.cancelScheduledCallback?.(),this.cancelScheduledCallback=null,null!==this.pendingRenderTaskId){const e=this.pendingRenderTaskId;this.pendingRenderTaskId=null,this.taskService.remove(e)}}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const ua=new Z("",{factory:()=>D(ua,{optional:!0,skipSelf:!0})||function dQ(){return typeof $localize<"u"&&$localize.locale||Ug}()}),a_=Symbol("InputSignalNode#UNSET"),IR={...ey,transformFn:void 0,applyValueToInputSignal(t,n){Ap(t,n)}};function OR(t,n){const e=Object.create(IR);function i(){if(Pu(e),e.value===a_)throw new X(-950,null);return e.value}return e.value=t,e.transformFn=n?.transform,i[Rn]=e,i}class Yh{attributeName;constructor(n){this.attributeName=n}__NG_ELEMENT_ID__=()=>nh(this.attributeName);toString(){return`HostAttributeToken ${this.attributeName}`}}function AR(t,n){return OR(t,n)}const ree=(AR.required=function oee(t){return OR(a_,t)},AR);function RR(t,n){return nI()}const l_=(RR.required=function see(t,n){return iI()},RR);function FR(t,n){return nI()}const lee=(FR.required=function aee(t,n){return iI()},FR);let dee=(()=>{class t{zone=D(_e);changeDetectionScheduler=D(al);applicationRef=D(lr);applicationErrorHandler=D(Or);_onMicrotaskEmptySubscription;initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.changeDetectionScheduler.runningTick||this.zone.run(()=>{try{this.applicationRef.dirtyFlags|=1,this.applicationRef._tick()}catch(e){this.applicationErrorHandler(e)}})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const uee=new Z("",{factory:()=>!1});function VR(t){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:t?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:t?.runCoalescing??!1}}let pee=(()=>{class t{subscription=new pt;initialized=!1;zone=D(_e);pendingTasks=D(Ys);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(()=>{_e.assertNotInAngularZone(),queueMicrotask(()=>{null!==e&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(e),e=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{_e.assertInAngularZone(),e??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const c_=new Z(""),bee=new Z("");function Xh(t){return!t.moduleRef}let UR;function zR(){UR=vee}function vee(t,n){const e=t.injector.get(lr);if(t._bootstrapComponents.length>0)t._bootstrapComponents.forEach(i=>e.bootstrap(i));else{if(!t.instance.ngDoBootstrap)throw new X(-403,!1);t.instance.ngDoBootstrap(e)}n.push(t)}let $R=(()=>{class t{_injector;_modules=[];_destroyListeners=[];_destroyed=!1;constructor(e){this._injector=e}bootstrapModuleFactory(e,i){const o=[[{provide:al,useExisting:cQ},{provide:_e,useClass:oU},{provide:um,useValue:!0}],...i?.applicationProviders??[],aU],r=function Cq(t,n,e){return new o0(t,n,e,!1)}(e.moduleType,this.injector,o);return zR(),function jR(t){const n=Xh(t)?t.r3Injector:t.moduleRef.injector,e=n.get(_e);return e.run(()=>{Xh(t)?t.r3Injector.resolveInjectorInitializers():t.moduleRef.resolveInjectorInitializers();const i=n.get(Or);let o;if(e.runOutsideAngular(()=>{o=e.onError.subscribe({next:i})}),Xh(t)){const r=()=>n.destroy(),s=t.platformInjector.get(c_);s.add(r),n.onDestroy(()=>{o.unsubscribe(),s.delete(r)})}else{const r=()=>t.moduleRef.destroy(),s=t.platformInjector.get(c_);s.add(r),t.moduleRef.onDestroy(()=>{Lg(t.allPlatformModules,t.moduleRef),o.unsubscribe(),s.delete(r)})}return function yee(t,n,e){try{const i=e();return Rh(i)?i.catch(o=>{throw n.runOutsideAngular(()=>t(o)),o}):i}catch(i){throw n.runOutsideAngular(()=>t(i)),i}}(i,e,()=>{const r=n.get(Ys),s=r.add(),a=n.get(tO);return a.runInitializers(),a.donePromise.then(()=>{if(function QY(t){"string"==typeof t&&(wO=t.toLowerCase().replace(/_/g,"-"))}(n.get(ua,Ug)||Ug),!n.get(bee,!0))return Xh(t)?n.get(lr):(t.allPlatformModules.push(t.moduleRef),t.moduleRef);if(Xh(t)){const f=n.get(lr);return void 0!==t.rootComponent&&f.bootstrap(t.rootComponent),f}return UR?.(t.moduleRef,t.allPlatformModules),t.moduleRef}).finally(()=>{r.remove(s)})})})}({moduleRef:r,allPlatformModules:this._modules,platformInjector:this.injector})}bootstrapModule(e,i=[]){const o=iO({},i);return zR(),function cee(t,n,e){const i=new cI(e);return Promise.resolve(i)}(0,0,e).then(r=>this.bootstrapModuleFactory(r,o))}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new X(404,!1);this._modules.slice().forEach(i=>i.destroy()),this._destroyListeners.forEach(i=>i());const e=this._injector.get(c_,null);e&&(e.forEach(i=>i()),e.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}static \u0275fac=function(i){return new(i||t)(ce(He))};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})(),Rd=null;function WR(t,n,e=[]){const i=`Platform: ${n}`,o=new Z(i);return(r=[])=>{let s=d_();if(!s){const a=[...e,...r,{provide:o,useValue:!0}];s=t?.(a)??function Cee(t){if(d_())throw new X(400,!1);(function GK(){!function E6(t){ED=t}(()=>{throw new X(600,"")})})(),Rd=t;const n=t.get($R);return function qR(t){const n=t.get(u2,null);Qi(t,()=>{n?.forEach(e=>e())})}(t),n}(function GR(t=[],n){return He.create({name:n,providers:[{provide:My,useValue:"platform"},{provide:c_,useValue:new Set([()=>Rd=null])},...t]})}(a,i))}return function wee(){const n=d_();if(!n)throw new X(-401,!1);return n}()}}function d_(){return Rd?.get($R)??null}let Jt=(()=>class t{static __NG_ELEMENT_ID__=Lee})();function Lee(t){return function Bee(t,n,e){if(Ir(t)&&!e){const i=eo(t.index,n);return new bh(i,i)}return 175&t.type?new bh(n[15],n):null}(Ve(),ne(),!(16&~t))}class tF{supports(n){return kg(n)}create(n){return new Hee(n)}}const Vee=(t,n)=>n;class Hee{length=0;collection;_linkedRecords=null;_unlinkedRecords=null;_previousItHead=null;_itHead=null;_itTail=null;_additionsHead=null;_additionsTail=null;_movesHead=null;_movesTail=null;_removalsHead=null;_removalsTail=null;_identityChangesHead=null;_identityChangesTail=null;_trackByFn;constructor(n){this._trackByFn=n||Vee}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 s=!i||e&&e.currentIndex{s=this._trackByFn(o,a),null!==e&&Object.is(e.trackById,s)?(i&&(e=this._verifyReinsertion(e,a,s,o)),Object.is(e.item,a)||this._addIdentityChange(e,a)):(e=this._mismatch(e,a,s,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 jee(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 nF),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 nF),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 jee{item;trackById;currentIndex=null;previousIndex=null;_nextPrevious=null;_prev=null;_next=null;_prevDup=null;_nextDup=null;_prevRemoved=null;_nextRemoved=null;_nextAdded=null;_nextMoved=null;_nextIdentityChange=null;constructor(n,e){this.item=n,this.trackById=e}}class Uee{_head=null;_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 nF{map=new Map;put(n){const e=n.trackById;let i=this.map.get(e);i||(i=new Uee,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 iF(t,n,e){const i=t.previousIndex;if(null===i)return i;let o=0;return e&&i{class t{factories;static \u0275prov=te({token:t,providedIn:"root",factory:rF});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:()=>{const i=D(t,{optional:!0,skipSelf:!0});return t.create(e,i||rF())}}}find(e){const i=this.factories.find(o=>o.supports(e));if(null!=i)return i;throw new X(901,!1)}}return t})();const qee=WR(null,"core",[]);let Kee=(()=>{class t{constructor(e){}static \u0275fac=function(i){return new(i||t)(ce(lr))};static \u0275mod=tt({type:t});static \u0275inj=Je({})}return t})();function De(t){return"boolean"==typeof t?t:null!=t&&"false"!==t}function hr(t,n=NaN){return isNaN(parseFloat(t))||isNaN(Number(t))?n:Number(t)}const sw=Symbol("NOT_SET"),mF=new Set,ate={...ey,kind:"afterRenderEffectPhase",consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!0,value:sw,cleanup:null,consumerMarkedDirty(){if(this.sequence.impl.executing){if(null===this.sequence.lastPhase||this.sequence.lastPhase(Pu(c),c.value),c.signal[Rn]=c,c.registerCleanupFn=f=>(c.cleanup??=new Set).add(f),this.nodes[a]=c,this.hooks[a]=f=>c.phaseFn(f)}}afterRun(){super.afterRun(),this.lastPhase=null}destroy(){if(null!==this.onDestroyFns)for(const n of this.onDestroyFns)n();super.destroy();for(const n of this.nodes)if(n)try{for(const e of n.cleanup??mF)e()}finally{Au(n)}}}function gF(t,n){const e=xt(t),i=n.elementInjector||Jp();return new Th(e).create(i,n.projectableNodes,n.hostElement,n.environmentInjector,n.directives,n.bindings)}function _F(t,n,e){const i=Object.create(mte);i.source=t,i.computation=n,null!=e&&(i.equal=e);const r=()=>{if(Iu(i),Pu(i),i.value===rs)throw i.error;return i.value};return r[Rn]=i,r}const mte={...Ic,value:za,dirty:!0,error:null,equal:Jv,kind:"linkedSignal",producerMustRecompute:t=>t.value===za||t.value===Rc,producerRecomputeValue(t){if(t.value===Rc)throw new Error("");const n=t.value;t.value=Rc;const e=Oc(t);let i;try{const o=t.source();i=t.computation(o,n===za||n===rs?void 0:{source:t.sourceValue,value:n}),t.sourceValue=o}catch(o){i=rs,t.error=o}finally{Ou(t,e)}n!==za&&i!==rs&&t.equal(n,i)?t.value=n:(t.value=i,t.version++)}};function nt(t){return function gte(t){const n=Te(null);try{return t()}finally{Te(n)}}(t)}function Ii(t,n){return TD(t,n?.equal)}const xte=t=>t;function yF(t,n){const e=t[Rn],i=t;return i.set=o=>function fte(t,n){Iu(t),Ap(t,n),Pp(t)}(e,o),i.update=o=>function pte(t,n){if(Iu(t),t.value===rs)throw t.error;ID(t,n),Pp(t)}(e,o),i.asReadonly=Xy.bind(t),i}function dw(t,n){return t?n?t.endsWith("/")?n.startsWith("/")?t+n.slice(1):t+n:n.startsWith("/")?t+n:`${t}/${n}`:t:n}function xF(t){const n=t.search(/#|\?|$/);return"/"===t[n-1]?t.slice(0,n-1)+t.slice(n):t}function ws(t){return t&&"?"!==t[0]?`?${t}`:t}Error,Error;let Bl=(()=>{class t{historyGo(e){throw new Error("")}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:()=>D(kF),providedIn:"root"})}return t})();const SF=new Z("");let kF=(()=>{class t extends Bl{_platformLocation;_baseHref;_removeListenerFns=[];constructor(e,i){super(),this._platformLocation=e,this._baseHref=i??this._platformLocation.getBaseHrefFromDOM()??D(et).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 dw(this._baseHref,e)}path(e=!1){const i=this._platformLocation.pathname+ws(this._platformLocation.search),o=this._platformLocation.hash;return o&&e?`${i}${o}`:i}pushState(e,i,o,r){const s=this.prepareExternalUrl(o+ws(r));this._platformLocation.pushState(e,i,s)}replaceState(e,i,o,r){const s=this.prepareExternalUrl(o+ws(r));this._platformLocation.replaceState(e,i,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(e=0){this._platformLocation.historyGo?.(e)}static \u0275fac=function(i){return new(i||t)(ce(pm),ce(SF,8))};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Fd=(()=>{class t{_subject=new me;_basePath;_locationStrategy;_urlChangeListeners=[];_urlChangeSubscription=null;constructor(e){this._locationStrategy=e;const i=this._locationStrategy.getBaseHref();this._basePath=function Rte(t){if(new RegExp("^(https?:)?//").test(t)){const[,e]=t.split(/\/\/[^\/]+/);return e}return t}(xF(DF(i))),this._locationStrategy.onPopState(o=>{this._subject.next({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+ws(i))}normalize(e){return t.stripTrailingSlash(function Ate(t,n){if(!t||!n.startsWith(t))return n;const e=n.substring(t.length);return""===e||["/",";","?","#"].includes(e[0])?e:n}(this._basePath,DF(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+ws(i)),o)}replaceState(e,i="",o=null){this._locationStrategy.replaceState(o,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+ws(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??void 0,complete:o??void 0})}static normalizeQueryParams=ws;static joinWithSlash=dw;static stripTrailingSlash=xF;static \u0275fac=function(i){return new(i||t)(ce(Bl))};static \u0275prov=te({token:t,factory:()=>function Ote(){return new Fd(ce(Bl))}(),providedIn:"root"})}return t})();function DF(t){return t.replace(/\/index.html$/,"")}let Nte=(()=>{class t extends Bl{_platformLocation;_baseHref="";_removeListenerFns=[];constructor(e,i){super(),this._platformLocation=e,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=dw(this._baseHref,e);return i.length>0?"#"+i:i}pushState(e,i,o,r){const s=this.prepareExternalUrl(o+ws(r))||this._platformLocation.pathname;this._platformLocation.pushState(e,i,s)}replaceState(e,i,o,r){const s=this.prepareExternalUrl(o+ws(r))||this._platformLocation.pathname;this._platformLocation.replaceState(e,i,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(e=0){this._platformLocation.historyGo?.(e)}static \u0275fac=function(i){return new(i||t)(ce(pm),ce(SF,8))};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();var g_=function(t){return t[t.Decimal=0]="Decimal",t[t.Percent=1]="Percent",t[t.Currency=2]="Currency",t[t.Scientific=3]="Scientific",t}(g_||{}),io=function(t){return t[t.Format=0]="Format",t[t.Standalone=1]="Standalone",t}(io||{}),en=function(t){return t[t.Narrow=0]="Narrow",t[t.Abbreviated=1]="Abbreviated",t[t.Wide=2]="Wide",t[t.Short=3]="Short",t}(en||{}),To=function(t){return t[t.Short=0]="Short",t[t.Medium=1]="Medium",t[t.Long=2]="Long",t[t.Full=3]="Full",t}(To||{});function __(t,n){return Ho(to(t)[hn.DateFormat],n)}function b_(t,n){return Ho(to(t)[hn.TimeFormat],n)}function v_(t,n){return Ho(to(t)[hn.DateTimeFormat],n)}function Vo(t,n){const e=to(t),i=e[hn.NumberSymbols][n];if(typeof i>"u"){if(12===n)return e[hn.NumberSymbols][0];if(13===n)return e[hn.NumberSymbols][1]}return i}function TF(t){if(!t[hn.ExtraData])throw new X(2303,!1)}function Ho(t,n){for(let e=n;e>-1;e--)if(typeof t[e]<"u")return t[e];throw new X(2304,!1)}function hw(t){const[n,e]=t.split(":");return{hours:+n,minutes:+e}}const Xte=/^(\d{4,})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,y_={},Zte=/((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/;function EF(t,n,e,i){let o=function sne(t){if(OF(t))return t;if("number"==typeof t&&!isNaN(t))return new Date(t);if("string"==typeof t){if(t=t.trim(),/^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(t)){const[o,r=1,s=1]=t.split("-").map(a=>+a);return C_(o,r-1,s)}const e=parseFloat(t);if(!isNaN(t-e))return new Date(e);let i;if(i=t.match(Xte))return function ane(t){const n=new Date(0);let e=0,i=0;const o=t[8]?n.setUTCFullYear:n.setFullYear,r=t[8]?n.setUTCHours:n.setHours;t[9]&&(e=Number(t[9]+t[10]),i=Number(t[9]+t[11])),o.call(n,Number(t[1]),Number(t[2])-1,Number(t[3]));const s=Number(t[4]||0)-e,a=Number(t[5]||0)-i,l=Number(t[6]||0),c=Math.floor(1e3*parseFloat("0."+(t[7]||0)));return r.call(n,s,a,l,c),n}(i)}const n=new Date(t);if(!OF(n))throw new X(2311,!1);return n}(t);n=xs(e,n)||n;let a,s=[];for(;n;){if(a=Zte.exec(n),!a){s.push(n);break}{s=s.concat(a.slice(1));const f=s.pop();if(!f)break;n=f}}let l=o.getTimezoneOffset();i&&(l=IF(i,l),o=function rne(t,n){const o=t.getTimezoneOffset();return function one(t,n){return(t=new Date(t.getTime())).setMinutes(t.getMinutes()+n),t}(t,-1*(IF(n,o)-o))}(o,i));let c="";return s.forEach(f=>{const m=function ine(t){if(pw[t])return pw[t];let n;switch(t){case"G":case"GG":case"GGG":n=rn(3,en.Abbreviated);break;case"GGGG":n=rn(3,en.Wide);break;case"GGGGG":n=rn(3,en.Narrow);break;case"y":n=ei(0,1,0,!1,!0);break;case"yy":n=ei(0,2,0,!0,!0);break;case"yyy":n=ei(0,3,0,!1,!0);break;case"yyyy":n=ei(0,4,0,!1,!0);break;case"Y":n=k_(1);break;case"YY":n=k_(2,!0);break;case"YYY":n=k_(3);break;case"YYYY":n=k_(4);break;case"M":case"L":n=ei(1,1,1);break;case"MM":case"LL":n=ei(1,2,1);break;case"MMM":n=rn(2,en.Abbreviated);break;case"MMMM":n=rn(2,en.Wide);break;case"MMMMM":n=rn(2,en.Narrow);break;case"LLL":n=rn(2,en.Abbreviated,io.Standalone);break;case"LLLL":n=rn(2,en.Wide,io.Standalone);break;case"LLLLL":n=rn(2,en.Narrow,io.Standalone);break;case"w":n=fw(1);break;case"ww":n=fw(2);break;case"W":n=fw(1,!0);break;case"d":n=ei(2,1);break;case"dd":n=ei(2,2);break;case"c":case"cc":n=ei(7,1);break;case"ccc":n=rn(1,en.Abbreviated,io.Standalone);break;case"cccc":n=rn(1,en.Wide,io.Standalone);break;case"ccccc":n=rn(1,en.Narrow,io.Standalone);break;case"cccccc":n=rn(1,en.Short,io.Standalone);break;case"E":case"EE":case"EEE":n=rn(1,en.Abbreviated);break;case"EEEE":n=rn(1,en.Wide);break;case"EEEEE":n=rn(1,en.Narrow);break;case"EEEEEE":n=rn(1,en.Short);break;case"a":case"aa":case"aaa":n=rn(0,en.Abbreviated);break;case"aaaa":n=rn(0,en.Wide);break;case"aaaaa":n=rn(0,en.Narrow);break;case"b":case"bb":case"bbb":n=rn(0,en.Abbreviated,io.Standalone,!0);break;case"bbbb":n=rn(0,en.Wide,io.Standalone,!0);break;case"bbbbb":n=rn(0,en.Narrow,io.Standalone,!0);break;case"B":case"BB":case"BBB":n=rn(0,en.Abbreviated,io.Format,!0);break;case"BBBB":n=rn(0,en.Wide,io.Format,!0);break;case"BBBBB":n=rn(0,en.Narrow,io.Format,!0);break;case"h":n=ei(3,1,-12);break;case"hh":n=ei(3,2,-12);break;case"H":n=ei(3,1);break;case"HH":n=ei(3,2);break;case"m":n=ei(4,1);break;case"mm":n=ei(4,2);break;case"s":n=ei(5,1);break;case"ss":n=ei(5,2);break;case"S":n=ei(6,1);break;case"SS":n=ei(6,2);break;case"SSS":n=ei(6,3);break;case"Z":case"ZZ":case"ZZZ":n=x_(0);break;case"ZZZZZ":n=x_(3);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":n=x_(1);break;case"OOOO":case"ZZZZ":case"zzzz":n=x_(2);break;default:return null}return pw[t]=n,n}(f);c+=m?m(o,e,l):"''"===f?"'":f.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),c}function C_(t,n,e){const i=new Date(0);return i.setFullYear(t,n,e),i.setHours(0,0,0),i}function xs(t,n){const e=function Bte(t){return to(t)[hn.LocaleId]}(t);if(y_[e]??={},y_[e][n])return y_[e][n];let i="";switch(n){case"shortDate":i=__(t,To.Short);break;case"mediumDate":i=__(t,To.Medium);break;case"longDate":i=__(t,To.Long);break;case"fullDate":i=__(t,To.Full);break;case"shortTime":i=b_(t,To.Short);break;case"mediumTime":i=b_(t,To.Medium);break;case"longTime":i=b_(t,To.Long);break;case"fullTime":i=b_(t,To.Full);break;case"short":const o=xs(t,"shortTime"),r=xs(t,"shortDate");i=w_(v_(t,To.Short),[o,r]);break;case"medium":const s=xs(t,"mediumTime"),a=xs(t,"mediumDate");i=w_(v_(t,To.Medium),[s,a]);break;case"long":const l=xs(t,"longTime"),c=xs(t,"longDate");i=w_(v_(t,To.Long),[l,c]);break;case"full":const f=xs(t,"fullTime"),m=xs(t,"fullDate");i=w_(v_(t,To.Full),[f,m])}return i&&(y_[e][n]=i),i}function w_(t,n){return n&&(t=t.replace(/\{([^}]+)}/g,function(e,i){return null!=n&&i in n?n[i]:e})),t}function fr(t,n,e="-",i,o){let r="";(t<0||o&&t<=0)&&(o?t=1-t:(t=-t,r=e));let s=String(t);for(;s.length0||a>-e)&&(a+=e),3===t)0===a&&-12===e&&(a=12);else if(6===t)return function Qte(t,n){return fr(t,3).substring(0,n)}(a,n);const l=Vo(s,5);return fr(a,n,l,i,o)}}function rn(t,n,e=io.Format,i=!1){return function(o,r){return function ene(t,n,e,i,o,r){switch(e){case 2:return function jte(t,n,e){const i=to(t),r=Ho([i[hn.MonthsFormat],i[hn.MonthsStandalone]],n);return Ho(r,e)}(n,o,i)[t.getMonth()];case 1:return function Hte(t,n,e){const i=to(t),r=Ho([i[hn.DaysFormat],i[hn.DaysStandalone]],n);return Ho(r,e)}(n,o,i)[t.getDay()];case 0:const s=t.getHours(),a=t.getMinutes();if(r){const c=function Wte(t){const n=to(t);return TF(n),(n[hn.ExtraData][2]||[]).map(i=>"string"==typeof i?hw(i):[hw(i[0]),hw(i[1])])}(n),f=function Gte(t,n,e){const i=to(t);TF(i);const r=Ho([i[hn.ExtraData][0],i[hn.ExtraData][1]],n)||[];return Ho(r,e)||[]}(n,o,i),m=c.findIndex(g=>{if(Array.isArray(g)){const[_,w]=g,k=s>=_.hours&&a>=_.minutes,T=s0?Math.floor(o/60):Math.ceil(o/60);switch(t){case 0:return(o>=0?"+":"")+fr(s,2,r)+fr(Math.abs(o%60),2,r);case 1:return"GMT"+(o>=0?"+":"")+fr(s,1,r);case 2:return"GMT"+(o>=0?"+":"")+fr(s,2,r)+":"+fr(Math.abs(o%60),2,r);case 3:return 0===i?"Z":(o>=0?"+":"")+fr(s,2,r)+":"+fr(Math.abs(o%60),2,r);default:throw new X(2310,!1)}}}function PF(t){const n=t.getDay(),e=0===n?-3:4-n;return C_(t.getFullYear(),t.getMonth(),t.getDate()+e)}function fw(t,n=!1){return function(e,i){let o;if(n){const r=new Date(e.getFullYear(),e.getMonth(),1).getDay()-1,s=e.getDate();o=1+Math.floor((s+r)/7)}else{const r=PF(e),s=function nne(t){const n=C_(t,0,1).getDay();return C_(t,0,1+(n<=4?4:11)-n)}(r.getFullYear()),a=r.getTime()-s.getTime();o=1+Math.round(a/6048e5)}return fr(o,t,Vo(i,5))}}function k_(t,n=!1){return function(e,i){return fr(PF(e).getFullYear(),t,Vo(i,5),n)}}const pw={};function IF(t,n){t=t.replace(/:/g,"");const e=Date.parse("Jan 01, 1970 00:00:00 "+t)/6e4;return isNaN(e)?n:e}function OF(t){return t instanceof Date&&!isNaN(t.valueOf())}const lne=/^(\d+)?\.((\d+)(-(\d+))?)?$/;function bw(t){const n=parseInt(t);if(isNaN(n))throw new X(2305,!1);return n}const yw=/\s+/,NF=[];let $t=(()=>{class t{_ngEl;_renderer;initialClasses=NF;rawClass;stateMap=new Map;constructor(e,i){this._ngEl=e,this._renderer=i}set klass(e){this.initialClasses=null!=e?e.trim().split(yw):NF}set ngClass(e){this.rawClass="string"==typeof e?e.trim().split(yw):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(yw).forEach(o=>{i?this._renderer.addClass(this._ngEl.nativeElement,o):this._renderer.removeClass(this._ngEl.nativeElement,o)})}static \u0275fac=function(i){return new(i||t)(O(Re),O(Qn))};static \u0275dir=de({type:t,selectors:[["","ngClass",""]],inputs:{klass:[0,"class","klass"],ngClass:"ngClass"}})}return t})();class Cne{$implicit;ngForOf;index;count;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 LF=(()=>{class t{_viewContainer;_template;_differs;set ngForOf(e){this._ngForOf=e,this._ngForOfDirty=!0}set ngForTrackBy(e){this._trackByFn=e}get ngForTrackBy(){return this._trackByFn}_ngForOf=null;_ngForOfDirty=!0;_differ=null;_trackByFn;constructor(e,i,o){this._viewContainer=e,this._template=i,this._differs=o}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,s)=>{if(null==o.previousIndex)i.createEmbeddedView(this._template,new Cne(o.item,this._ngForOf,-1,-1),null===s?void 0:s);else if(null==s)i.remove(null===r?void 0:r);else if(null!==r){const a=i.get(r);i.move(a,s),BF(a,o)}});for(let o=0,r=i.length;o{BF(i.get(o.currentIndex),o)})}static ngTemplateContextGuard(e,i){return!0}static \u0275fac=function(i){return new(i||t)(O(Ei),O(Ti),O(h_))};static \u0275dir=de({type:t,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"}})}return t})();function BF(t,n){t.context.$implicit=n.item}let tf=(()=>{class t{_viewContainer;_context=new wne;_thenTemplateRef=null;_elseTemplateRef=null;_thenViewRef=null;_elseViewRef=null;constructor(e,i){this._viewContainer=e,this._thenTemplateRef=i}set ngIf(e){this._context.$implicit=this._context.ngIf=e,this._updateView()}set ngIfThen(e){VF(e),this._thenTemplateRef=e,this._thenViewRef=null,this._updateView()}set ngIfElse(e){VF(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 ngIfUseIfTypeGuard;static ngTemplateGuard_ngIf;static ngTemplateContextGuard(e,i){return!0}static \u0275fac=function(i){return new(i||t)(O(Ei),O(Ti))};static \u0275dir=de({type:t,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"}})}return t})();class wne{$implicit=null;ngIf=null}function VF(t,n){if(t&&!t.createEmbeddedView)throw new X(2020,!1)}let Ld=(()=>{class t{_viewContainerRef;_viewRef=null;ngTemplateOutletContext=null;ngTemplateOutlet=null;ngTemplateOutletInjector=null;injector=D(He);constructor(e){this._viewContainerRef=e}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._getInjector()})}}_getInjector(){return"outlet"===this.ngTemplateOutletInjector?this.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 \u0275fac=function(i){return new(i||t)(O(Ei))};static \u0275dir=de({type:t,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},features:[_i]})}return t})();function Ss(t,n){return new X(2100,!1)}const Lne=new Z(""),Bne=new Z("");let fa=(()=>{class t{locale;defaultTimezone;defaultOptions;constructor(e,i,o){this.locale=e,this.defaultTimezone=i,this.defaultOptions=o}transform(e,i,o,r){if(null==e||""===e||e!=e)return null;try{return EF(e,i??this.defaultOptions?.dateFormat??"mediumDate",r||this.locale,o??this.defaultOptions?.timezone??this.defaultTimezone??void 0)}catch(s){throw Ss()}}static \u0275fac=function(i){return new(i||t)(O(ua,16),O(Lne,24),O(Bne,24))};static \u0275pipe=Hi({name:"date",type:t,pure:!0})}return t})(),Vl=(()=>{class t{_locale;constructor(e){this._locale=e}transform(e,i,o){if(!function Sw(t){return!(null==t||""===t||t!=t)}(e))return null;o||=this._locale;try{return function pne(t,n,e){return function gw(t,n,e,i,o,r,s=!1){let a="",l=!1;if(isFinite(t)){let c=function gne(t){let i,o,r,s,a,n=Math.abs(t)+"",e=0;for((o=n.indexOf("."))>-1&&(n=n.replace(".","")),(r=n.search(/e/i))>0?(o<0&&(o=r),o+=+n.slice(r+1),n=n.substring(0,r)):o<0&&(o=n.length),r=0;"0"===n.charAt(r);r++);if(r===(a=n.length))i=[0],o=1;else{for(a--;"0"===n.charAt(a);)a--;for(o-=r,i=[],s=0;r<=a;r++,s++)i[s]=Number(n.charAt(r))}return o>22&&(i=i.splice(0,21),e=o-1,o=1),{digits:i,exponent:e,integerLen:o}}(t);s&&(c=function mne(t){if(0===t.digits[0])return t;const n=t.digits.length-t.integerLen;return t.exponent?t.exponent+=2:(0===n?t.digits.push(0,0):1===n&&t.digits.push(0),t.integerLen+=2),t}(c));let f=n.minInt,m=n.minFrac,g=n.maxFrac;if(r){const R=r.match(lne);if(null===R)throw new X(2306,!1);const W=R[1],Y=R[3],K=R[5];null!=W&&(f=bw(W)),null!=Y&&(m=bw(Y)),null!=K?g=bw(K):null!=Y&&m>g&&(g=m)}!function _ne(t,n,e){if(n>e)throw new X(2307,!1);let i=t.digits,o=i.length-t.integerLen;const r=Math.min(Math.max(n,o),e);let s=r+t.integerLen,a=i[s];if(s>0){i.splice(Math.max(t.integerLen,s));for(let m=s;m=5)if(s-1<0){for(let m=0;m>s;m--)i.unshift(0),t.integerLen++;i.unshift(1),t.integerLen++}else i[s-1]++;for(;o=c?w.pop():l=!1),g>=10?1:0},0);f&&(i.unshift(f),t.integerLen++)}(c,m,g);let _=c.digits,w=c.integerLen;const k=c.exponent;let T=[];for(l=_.every(R=>!R);w0?T=_.splice(w,_.length):(T=_,_=[0]);const I=[];for(_.length>=n.lgSize&&I.unshift(_.splice(-n.lgSize,_.length).join(""));_.length>n.gSize;)I.unshift(_.splice(-n.gSize,_.length).join(""));_.length&&I.unshift(_.join("")),a=I.join(Vo(e,i)),T.length&&(a+=Vo(e,o)+T.join("")),k&&(a+=Vo(e,6)+"+"+k)}else a=Vo(e,9);return a=t<0&&!l?n.negPre+a+n.negSuf:n.posPre+a+n.posSuf,a}(t,function _w(t,n="-"){const e={minInt:1,minFrac:0,maxFrac:0,posPre:"",posSuf:"",negPre:"",negSuf:"",gSize:0,lgSize:0},i=t.split(";"),o=i[0],r=i[1],s=-1!==o.indexOf(".")?o.split("."):[o.substring(0,o.lastIndexOf("0")+1),o.substring(o.lastIndexOf("0")+1)],a=s[0],l=s[1]||"";e.posPre=a.substring(0,a.indexOf("#"));for(let f=0;f{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({})}return t})();class UF{_doc;constructor(n){this._doc=n}manager}let Dw=(()=>{class t extends UF{constructor(e){super(e)}supports(e){return!0}addEventListener(e,i,o,r){return e.addEventListener(i,o,r),()=>this.removeEventListener(e,i,o,r)}removeEventListener(e,i,o,r){return e.removeEventListener(i,o,r)}static \u0275fac=function(i){return new(i||t)(ce(et))};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();const Mw=new Z("");let zF=(()=>{class t{_zone;_plugins;_eventNameToPlugin=new Map;constructor(e,i){this._zone=i,e.forEach(s=>{s.manager=this});const o=e.filter(s=>!(s instanceof Dw));this._plugins=o.slice().reverse();const r=e.find(s=>s instanceof Dw);r&&this._plugins.push(r)}addEventListener(e,i,o,r){return this._findPluginFor(i).addEventListener(e,i,o,r)}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 X(5101,!1);return this._eventNameToPlugin.set(e,i),i}static \u0275fac=function(i){return new(i||t)(ce(Mw),ce(_e))};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();const Tw="ng-app-id";function $F(t){for(const n of t)n.remove()}function WF(t,n){const e=n.createElement("style");return e.textContent=t,e}function Ew(t,n){const e=n.createElement("link");return e.setAttribute("rel","stylesheet"),e.setAttribute("href",t),e}let GF=(()=>{class t{doc;appId;nonce;inline=new Map;external=new Map;hosts=new Set;constructor(e,i,o,r={}){this.doc=e,this.appId=i,this.nonce=o,function Kne(t,n,e,i){const o=t.head?.querySelectorAll(`style[${Tw}="${n}"],link[${Tw}="${n}"]`);if(o)for(const r of o)r.removeAttribute(Tw),r instanceof HTMLLinkElement?i.set(r.href.slice(r.href.lastIndexOf("/")+1),{usage:0,elements:[r]}):r.textContent&&e.set(r.textContent,{usage:0,elements:[r]})}(e,i,this.inline,this.external),this.hosts.add(e.head)}addStyles(e,i){for(const o of e)this.addUsage(o,this.inline,WF);i?.forEach(o=>this.addUsage(o,this.external,Ew))}removeStyles(e,i){for(const o of e)this.removeUsage(o,this.inline);i?.forEach(o=>this.removeUsage(o,this.external))}addUsage(e,i,o){const r=i.get(e);r?r.usage++:i.set(e,{usage:1,elements:[...this.hosts].map(s=>this.addElement(s,o(e,this.doc)))})}removeUsage(e,i){const o=i.get(e);o&&(o.usage--,o.usage<=0&&($F(o.elements),i.delete(e)))}ngOnDestroy(){for(const[,{elements:e}]of[...this.inline,...this.external])$F(e);this.hosts.clear()}addHost(e){this.hosts.add(e);for(const[i,{elements:o}]of this.inline)o.push(this.addElement(e,WF(i,this.doc)));for(const[i,{elements:o}]of this.external)o.push(this.addElement(e,Ew(i,this.doc)))}removeHost(e){this.hosts.delete(e)}addElement(e,i){return this.nonce&&i.setAttribute("nonce",this.nonce),e.appendChild(i)}static \u0275fac=function(i){return new(i||t)(ce(et),ce(Js),ce(xC,8),ce(wC))};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();const Pw={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/Math/MathML"},Iw=/%COMP%/g,eie=new Z("",{factory:()=>!0});function KF(t,n){return n.map(e=>e.replace(Iw,t))}let Ow=(()=>{class t{eventManager;sharedStylesHost;appId;removeStylesOnCompDestroy;doc;ngZone;nonce;tracingService;rendererByCompId=new Map;defaultRenderer;constructor(e,i,o,r,s,a,l=null,c=null){this.eventManager=e,this.sharedStylesHost=i,this.appId=o,this.removeStylesOnCompDestroy=r,this.doc=s,this.ngZone=a,this.nonce=l,this.tracingService=c,this.defaultRenderer=new Aw(e,s,a,this.tracingService)}createRenderer(e,i){if(!e||!i)return this.defaultRenderer;const o=this.getOrCreateRenderer(e,i);return o instanceof ZF?o.applyToHost(e):o instanceof Rw&&o.applyStyles(),o}getOrCreateRenderer(e,i){const o=this.rendererByCompId;let r=o.get(i.id);if(!r){const s=this.doc,a=this.ngZone,l=this.eventManager,c=this.sharedStylesHost,f=this.removeStylesOnCompDestroy,m=this.tracingService;switch(i.encapsulation){case No.Emulated:r=new ZF(l,c,i,this.appId,f,s,a,m);break;case No.ShadowDom:return new XF(l,e,i,s,a,this.nonce,m,c);case No.ExperimentalIsolatedShadowDom:return new XF(l,e,i,s,a,this.nonce,m);default:r=new Rw(l,c,i,f,s,a,m)}o.set(i.id,r)}return r}ngOnDestroy(){this.rendererByCompId.clear()}componentReplaced(e){this.rendererByCompId.delete(e)}static \u0275fac=function(i){return new(i||t)(ce(zF),ce(GF),ce(Js),ce(eie),ce(et),ce(_e),ce(xC),ce(oa,8))};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();class Aw{eventManager;doc;ngZone;tracingService;data=Object.create(null);throwOnSyntheticProps=!0;constructor(n,e,i,o){this.eventManager=n,this.doc=e,this.ngZone=i,this.tracingService=o}destroy(){}destroyNode=null;createElement(n,e){return e?this.doc.createElementNS(Pw[e]||e,n):this.doc.createElement(n)}createComment(n){return this.doc.createComment(n)}createText(n){return this.doc.createTextNode(n)}appendChild(n,e){(YF(n)?n.content:n).appendChild(e)}insertBefore(n,e,i){n&&(YF(n)?n.content:n).insertBefore(e,i)}removeChild(n,e){e.remove()}selectRootElement(n,e){let i="string"==typeof n?this.doc.querySelector(n):n;if(!i)throw new X(-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=Pw[o];r?n.setAttributeNS(r,e,i):n.setAttribute(e,i)}else n.setAttribute(e,i)}removeAttribute(n,e,i){if(i){const o=Pw[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&(ia.DashCase|ia.Important)?n.style.setProperty(e,i,o&ia.Important?"important":""):n.style[e]=i}removeStyle(n,e,i){i&ia.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,o){if("string"==typeof n&&!(n=Xs().getGlobalEventTarget(this.doc,n)))throw new X(5102,!1);let r=this.decoratePreventDefault(i);return this.tracingService?.wrapEventListener&&(r=this.tracingService.wrapEventListener(n,e,r)),this.eventManager.addEventListener(n,e,r,o)}decoratePreventDefault(n){return e=>{if("__ngUnwrap__"===e)return n;!1===n(e)&&e.preventDefault()}}}function YF(t){return"TEMPLATE"===t.tagName&&void 0!==t.content}class XF extends Aw{hostEl;sharedStylesHost;shadowRoot;constructor(n,e,i,o,r,s,a,l){super(n,o,r,a),this.hostEl=e,this.sharedStylesHost=l,this.shadowRoot=e.attachShadow({mode:"open"}),this.sharedStylesHost&&this.sharedStylesHost.addHost(this.shadowRoot);let c=i.styles;c=KF(i.id,c);for(const m of c){const g=document.createElement("style");s&&g.setAttribute("nonce",s),g.textContent=m,this.shadowRoot.appendChild(g)}const f=i.getExternalStyles?.();if(f)for(const m of f){const g=Ew(m,o);s&&g.setAttribute("nonce",s),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(null,e)}parentNode(n){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(n)))}destroy(){this.sharedStylesHost&&this.sharedStylesHost.removeHost(this.shadowRoot)}}class Rw extends Aw{sharedStylesHost;removeStylesOnCompDestroy;styles;styleUrls;constructor(n,e,i,o,r,s,a,l){super(n,r,s,a),this.sharedStylesHost=e,this.removeStylesOnCompDestroy=o;let c=i.styles;this.styles=l?KF(l,c):c,this.styleUrls=i.getExternalStyles?.(l)}applyStyles(){this.sharedStylesHost.addStyles(this.styles,this.styleUrls)}destroy(){this.removeStylesOnCompDestroy&&0===bl.size&&this.sharedStylesHost.removeStyles(this.styles,this.styleUrls)}}class ZF extends Rw{contentAttr;hostAttr;constructor(n,e,i,o,r,s,a,l){const c=o+"-"+i.id;super(n,e,i,r,s,a,l,c),this.contentAttr=function tie(t){return"_ngcontent-%COMP%".replace(Iw,t)}(c),this.hostAttr=function nie(t){return"_nghost-%COMP%".replace(Iw,t)}(c)}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}}class Nw extends gU{supportsDOMEvents=!0;static makeCurrent(){!function mU(t){qM??=t}(new Nw)}onAndCancel(n,e,i,o){return n.addEventListener(e,i,o),()=>{n.removeEventListener(e,i,o)}}dispatchEvent(n,e){n.dispatchEvent(e)}remove(n){n.remove()}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 rie(){return nf=nf||document.head.querySelector("base"),nf?nf.getAttribute("href"):null}();return null==e?null:function sie(t){return new URL(t,document.baseURI).pathname}(e)}resetBaseElement(){nf=null}getUserAgent(){return window.navigator.userAgent}getCookie(n){return KM(document.cookie,n)}}let nf=null,lie=(()=>{class t{build(){return new XMLHttpRequest}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();const JF=["alt","control","meta","shift"],cie={"\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"},die={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey};let uie=(()=>{class t extends UF{constructor(e){super(e)}supports(e){return null!=t.parseEventName(e)}addEventListener(e,i,o,r){const s=t.parseEventName(i),a=t.eventCallback(s.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Xs().onAndCancel(e,s.domEventName,a,r))}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 s="",a=i.indexOf("code");if(a>-1&&(i.splice(a,1),s="code."),JF.forEach(c=>{const f=i.indexOf(c);f>-1&&(i.splice(f,1),s+=c+".")}),s+=r,0!=i.length||0===r.length)return null;const l={};return l.domEventName=o,l.fullKey=s,l}static matchEventFullKeyCode(e,i){let o=cie[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"),JF.forEach(s=>{s!==o&&(0,die[s])(e)&&(r+=s+".")}),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 \u0275fac=function(i){return new(i||t)(ce(et))};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();const mie=WR(qee,"browser",[{provide:wC,useValue:XM},{provide:u2,useValue:function hie(){Nw.makeCurrent()},multi:!0},{provide:et,useFactory:function pie(){return function A7(t){CC=t}(document),document}}]),nN=[{provide:ZI,useClass:class aie{addToWindow(n){Fn.getAngularTestability=(i,o=!0)=>{const r=n.findTestabilityInTree(i,o);if(null==r)throw new X(5103,!1);return r},Fn.getAllAngularTestabilities=()=>n.getAllTestabilities(),Fn.getAllAngularRootElements=()=>n.getAllRootElements(),Fn.frameworkStabilizers||(Fn.frameworkStabilizers=[]),Fn.frameworkStabilizers.push(i=>{const o=Fn.getAllAngularTestabilities();let r=o.length;const s=function(){r--,0==r&&i()};o.forEach(a=>{a.whenStable(s)})})}findTestabilityInTree(n,e,i){return null==e?null:n.getTestability(e)??(i?Xs().isShadowRoot(e)?this.findTestabilityInTree(n,e.host,!0):this.findTestabilityInTree(n,e.parentElement,!0):null)}}},{provide:XI,useClass:f0},{provide:f0,useClass:f0}],iN=[{provide:My,useValue:"root"},{provide:sl,useFactory:function fie(){return new sl}},{provide:Mw,useClass:Dw,multi:!0},{provide:Mw,useClass:uie,multi:!0},Ow,GF,zF,{provide:Lo,useExisting:Ow},{provide:YM,useClass:lie},[]];let oN=(()=>{class t{constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({providers:[...iN,...nN],imports:[qne,Kee]})}return t})();var Le=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}(Le||{});const ks="*";function rN(t){return{type:Le.Style,styles:t,offset:null}}class of{_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_originalOnDoneFns=[];_originalOnStartFns=[];_started=!1;_destroyed=!1;_finished=!1;_position=0;parentPlayer=null;totalTime;constructor(n=0,e=0){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 sN{_onDoneFns=[];_onStartFns=[];_finished=!1;_started=!1;_destroyed=!1;_onDestroyFns=[];parentPlayer=null;totalTime=0;players;constructor(n){this.players=n;let e=0,i=0,o=0;const r=this.players.length;0==r?queueMicrotask(()=>this._onFinish()):this.players.forEach(s=>{s.onDone(()=>{++e==r&&this._onFinish()}),s.onDestroy(()=>{++i==r&&this._onDestroy()}),s.onStart(()=>{++o==r&&this._onStart()})}),this.totalTime=this.players.reduce((s,a)=>Math.max(s,a.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 lN(t){return new X(3e3,!1)}function Die(t){return new X(3002,!1)}function pa(t){switch(t.length){case 0:return new of;case 1:return t[0];default:return new sN(t)}}function cN(t,n,e=new Map,i=new Map){const o=[],r=[];let s=-1,a=null;if(n.forEach(l=>{const c=l.get("offset"),f=c==s,m=f&&a||new Map;l.forEach((g,_)=>{let w=_,k=g;if("offset"!==_)switch(w=t.normalizePropertyName(w,o),k){case"!":k=e.get(_);break;case ks:k=i.get(_);break;default:k=t.normalizeStyleValue(_,w,k,o)}m.set(w,k)}),f||r.push(m),a=m,s=c}),o.length)throw function Lie(){return new X(3502,!1)}();return r}function jw(t,n,e,i){switch(n){case"start":t.onStart(()=>i(e&&Uw(e,"start",t)));break;case"done":t.onDone(()=>i(e&&Uw(e,"done",t)));break;case"destroy":t.onDestroy(()=>i(e&&Uw(e,"destroy",t)))}}function Uw(t,n,e){const r=zw(t.element,t.triggerName,t.fromState,t.toState,n||t.phaseName,e.totalTime??t.totalTime,!!e.disabled),s=t._data;return null!=s&&(r._data=s),r}function zw(t,n,e,i,o="",r=0,s){return{element:t,triggerName:n,fromState:e,toState:i,phaseName:o,totalTime:r,disabled:!!s}}function Eo(t,n,e){let i=t.get(n);return i||t.set(n,i=e),i}function dN(t){const n=t.indexOf(":");return[t.substring(1,n),t.slice(n+1)]}const Yie=typeof document>"u"?null:document.documentElement;function $w(t){const n=t.parentNode||t.host||null;return n===Yie?null:n}let Hl=null,uN=!1;function hN(t,n){for(;n;){if(n===t)return!0;n=$w(n)}return!1}function fN(t,n,e){if(e)return Array.from(t.querySelectorAll(n));const i=t.querySelector(n);return i?[i]:[]}const mN="ng-enter",Ww="ng-leave",M_="ng-trigger",T_=".ng-trigger",gN="ng-animating",Gw=".ng-animating";function Ds(t){if("number"==typeof t)return t;const n=t.match(/^(-?[\.\d]+)(m?s)/);return!n||n.length<2?0:qw(parseFloat(n[1]),n[2])}function qw(t,n){return"s"===n?1e3*t:t}function E_(t,n,e){return t.hasOwnProperty("duration")?t:function noe(t,n,e){let i,o=0,r="";if("string"==typeof t){const s=t.match(toe);if(null===s)return n.push(lN()),{duration:0,delay:0,easing:""};i=qw(parseFloat(s[1]),s[2]);const a=s[3];null!=a&&(o=qw(parseFloat(a),s[4]));const l=s[5];l&&(r=l)}else i=t;if(!e){let s=!1,a=n.length;i<0&&(n.push(function _ie(){return new X(3100,!1)}()),s=!0),o<0&&(n.push(function bie(){return new X(3101,!1)}()),s=!0),s&&n.splice(a,0,lN())}return{duration:i,delay:o,easing:r}}(t,n,e)}const toe=/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i;function Hr(t,n,e){n.forEach((i,o)=>{const r=Yw(o);e&&!e.has(o)&&e.set(o,t.style[r]),t.style[r]=i})}function jl(t,n){n.forEach((e,i)=>{const o=Yw(i);t.style[o]=""})}function rf(t){return Array.isArray(t)?1==t.length?t[0]:function gie(t,n=null){return{type:Le.Sequence,steps:t,options:n}}(t):t}const Kw=new RegExp("{{\\s*(.+?)\\s*}}","g");function _N(t){let n=[];if("string"==typeof t){let e;for(;e=Kw.exec(t);)n.push(e[1]);Kw.lastIndex=0}return n}function sf(t,n,e){const i=`${t}`,o=i.replace(Kw,(r,s)=>{let a=n[s];return null==a&&(e.push(function yie(){return new X(3003,!1)}()),a=""),a.toString()});return o==i?t:o}const roe=/-+([a-z0-9])/g;function Yw(t){return t.replace(roe,(...n)=>n[1].toUpperCase())}function Po(t,n,e){switch(n.type){case Le.Trigger:return t.visitTrigger(n,e);case Le.State:return t.visitState(n,e);case Le.Transition:return t.visitTransition(n,e);case Le.Sequence:return t.visitSequence(n,e);case Le.Group:return t.visitGroup(n,e);case Le.Animate:return t.visitAnimate(n,e);case Le.Keyframes:return t.visitKeyframes(n,e);case Le.Style:return t.visitStyle(n,e);case Le.Reference:return t.visitReference(n,e);case Le.AnimateChild:return t.visitAnimateChild(n,e);case Le.AnimateRef:return t.visitAnimateRef(n,e);case Le.Query:return t.visitQuery(n,e);case Le.Stagger:return t.visitStagger(n,e);default:throw function Cie(){return new X(3004,!1)}()}}function Xw(t,n){return window.getComputedStyle(t)[n]}let Zw=(()=>{class t{validateStyleProperty(e){return function Zie(t){Hl||(Hl=function Qie(){return typeof document<"u"?document.body:null}()||{},uN=!!Hl.style&&"WebkitAppearance"in Hl.style);let n=!0;return Hl.style&&!function Xie(t){return"ebkit"==t.substring(1,6)}(t)&&(n=t in Hl.style,!n&&uN&&(n="Webkit"+t.charAt(0).toUpperCase()+t.slice(1)in Hl.style)),n}(e)}containsElement(e,i){return hN(e,i)}getParentElement(e){return $w(e)}query(e,i,o){return fN(e,i,o)}computeStyle(e,i,o){return o||""}animate(e,i,o,r,s,a=[],l){return new of(o,r)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();class Qw{static NOOP=new Zw}class Jw{}const foe=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 vN extends Jw{normalizePropertyName(n,e){return Yw(n)}normalizeStyleValue(n,e,i,o){let r="";const s=i.toString().trim();if(foe.has(e)&&0!==i&&"0"!==i)if("number"==typeof i)r="px";else{const a=i.match(/^[+-]?[\d\.]+([a-z]*)$/);a&&0==a[1].length&&o.push(function wie(){return new X(3005,!1)}())}return s+r}}const I_=new Set(["true","1"]),O_=new Set(["false","0"]);function yN(t,n){const e=I_.has(t)||O_.has(t),i=I_.has(n)||O_.has(n);return(o,r)=>{let s="*"==t||t==o,a="*"==n||n==r;return!s&&e&&"boolean"==typeof o&&(s=o?I_.has(t):O_.has(t)),!a&&i&&"boolean"==typeof r&&(a=r?I_.has(n):O_.has(n)),s&&a}}const _oe=new RegExp("s*:selfs*,?","g");function tx(t,n,e,i){return new boe(t).build(n,e,i)}class boe{_driver;constructor(n){this._driver=n}build(n,e,i){const o=new Coe(e);return this._resetContextStyleTimingState(o),Po(this,rf(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=[],s=[];return"@"==n.name.charAt(0)&&e.errors.push(function xie(){return new X(3006,!1)}()),n.definitions.forEach(a=>{if(this._resetContextStyleTimingState(e),a.type==Le.State){const l=a,c=l.name;c.toString().split(/\s*,\s*/).forEach(f=>{l.name=f,r.push(this.visitState(l,e))}),l.name=c}else if(a.type==Le.Transition){const l=this.visitTransition(a,e);i+=l.queryCount,o+=l.depCount,s.push(l)}else e.errors.push(function Sie(){return new X(3007,!1)}())}),{type:Le.Trigger,name:n.name,states:r,transitions:s,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,s=o||{};i.styles.forEach(a=>{a instanceof Map&&a.forEach(l=>{_N(l).forEach(c=>{s.hasOwnProperty(c)||r.add(c)})})}),r.size&&e.errors.push(function kie(){return new X(3008,!1)}(0,r.values()))}return{type:Le.State,name:n.name,style:i,options:o?{params:o}:null}}visitTransition(n,e){e.queryCount=0,e.depCount=0;const i=Po(this,rf(n.animation),e),o=function poe(t,n){const e=[];return"string"==typeof t?t.split(/\s*,\s*/).forEach(i=>function moe(t,n,e){if(":"==t[0]){const l=function goe(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 l)return void n.push(l);t=l}const i=t.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==i||i.length<4)return e.push(function Rie(){return new X(3015,!1)}()),n;const o=i[1],r=i[2],s=i[3];n.push(yN(o,s)),"<"==r[0]&&("*"!=o||"*"!=s)&&n.push(yN(s,o))}(i,e,n)):e.push(t),e}(n.expr,e.errors);return{type:Le.Transition,matchers:o,animation:i,queryCount:e.queryCount,depCount:e.depCount,options:Ul(n.options)}}visitSequence(n,e){return{type:Le.Sequence,steps:n.steps.map(i=>Po(this,i,e)),options:Ul(n.options)}}visitGroup(n,e){const i=e.currentTime;let o=0;const r=n.steps.map(s=>{e.currentTime=i;const a=Po(this,s,e);return o=Math.max(o,e.currentTime),a});return e.currentTime=o,{type:Le.Group,steps:r,options:Ul(n.options)}}visitAnimate(n,e){const i=function xoe(t,n){if(t.hasOwnProperty("duration"))return t;if("number"==typeof t)return nx(E_(t,n).duration,0,"");const e=t;if(e.split(/\s+/).some(r=>"{"==r.charAt(0)&&"{"==r.charAt(1))){const r=nx(0,0,"");return r.dynamic=!0,r.strValue=e,r}const o=E_(e,n);return nx(o.duration,o.delay,o.easing)}(n.timings,e.errors);e.currentAnimateTimings=i;let o,r=n.styles?n.styles:rN({});if(r.type==Le.Keyframes)o=this.visitKeyframes(r,e);else{let s=n.styles,a=!1;if(!s){a=!0;const c={};i.easing&&(c.easing=i.easing),s=rN(c)}e.currentTime+=i.duration+i.delay;const l=this.visitStyle(s,e);l.isEmptyStep=a,o=l}return e.currentAnimateTimings=null,{type:Le.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 a of o)"string"==typeof a?a===ks?i.push(a):e.errors.push(Die()):i.push(new Map(Object.entries(a)));let r=!1,s=null;return i.forEach(a=>{if(a instanceof Map&&(a.has("easing")&&(s=a.get("easing"),a.delete("easing")),!r))for(let l of a.values())if(l.toString().indexOf("{{")>=0){r=!0;break}}),{type:Le.Style,styles:i,easing:s,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(s=>{"string"!=typeof s&&s.forEach((a,l)=>{const c=e.collectedStyles.get(e.currentQuerySelector),f=c.get(l);let m=!0;f&&(r!=o&&r>=f.startTime&&o<=f.endTime&&(e.errors.push(function Mie(){return new X(3010,!1)}()),m=!1),r=f.startTime),m&&c.set(l,{startTime:r,endTime:o}),e.options&&function ooe(t,n,e){const i=n.params||{},o=_N(t);o.length&&o.forEach(r=>{i.hasOwnProperty(r)||e.push(function vie(){return new X(3001,!1)}())})}(a,e.options,e.errors)})})}visitKeyframes(n,e){const i={type:Le.Keyframes,styles:[],options:null};if(!e.currentAnimateTimings)return e.errors.push(function Tie(){return new X(3011,!1)}()),i;let r=0;const s=[];let a=!1,l=!1,c=0;const f=n.steps.map(I=>{const R=this._makeStyleAst(I,e);let W=null!=R.offset?R.offset:function woe(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}(R.styles),Y=0;return null!=W&&(r++,Y=R.offset=W),l=l||Y<0||Y>1,a=a||Y0&&r{const W=g>0?R==_?1:g*R:s[R],Y=W*T;e.currentTime=w+k.delay+Y,k.duration=Y,this._validateStyleAst(I,e),I.offset=W,i.styles.push(I)}),i}visitReference(n,e){return{type:Le.Reference,animation:Po(this,rf(n.animation),e),options:Ul(n.options)}}visitAnimateChild(n,e){return e.depCount++,{type:Le.AnimateChild,options:Ul(n.options)}}visitAnimateRef(n,e){return{type:Le.AnimateRef,animation:this.visitReference(n.animation,e),options:Ul(n.options)}}visitQuery(n,e){const i=e.currentQuerySelector,o=n.options||{};e.queryCount++,e.currentQuery=n;const[r,s]=function voe(t){const n=!!t.split(/\s*,\s*/).find(e=>":self"==e);return n&&(t=t.replace(_oe,"")),t=t.replace(/@\*/g,T_).replace(/@\w+/g,e=>T_+"-"+e.slice(1)).replace(/:animating/g,Gw),[t,n]}(n.selector);e.currentQuerySelector=i.length?i+" "+r:r,Eo(e.collectedStyles,e.currentQuerySelector,new Map);const a=Po(this,rf(n.animation),e);return e.currentQuery=null,e.currentQuerySelector=i,{type:Le.Query,selector:r,limit:o.limit||0,optional:!!o.optional,includeSelf:s,animation:a,originalSelector:n.selector,options:Ul(n.options)}}visitStagger(n,e){e.currentQuery||e.errors.push(function Oie(){return new X(3013,!1)}());const i="full"===n.timings?{duration:0,delay:0,easing:"full"}:E_(n.timings,e.errors,!0);return{type:Le.Stagger,animation:Po(this,rf(n.animation),e),timings:i,options:null}}}class Coe{errors;queryCount=0;depCount=0;currentTransition=null;currentQuery=null;currentQuerySelector=null;currentAnimateTimings=null;currentTime=0;collectedStyles=new Map;options=null;unsupportedCSSPropertiesFound=new Set;constructor(n){this.errors=n}}function Ul(t){return t?(t={...t}).params&&(t.params=function yoe(t){return t?{...t}:null}(t.params)):t={},t}function nx(t,n,e){return{duration:t,delay:n,easing:e}}function ix(t,n,e,i,o,r,s=null,a=!1){return{type:1,element:t,keyframes:n,preStyleProps:e,postStyleProps:i,duration:o,delay:r,totalTime:o+r,easing:s,subTimeline:a}}class A_{_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 Doe=new RegExp(":enter","g"),Toe=new RegExp(":leave","g");function ox(t,n,e,i,o,r=new Map,s=new Map,a,l,c=[]){return(new Eoe).buildKeyframes(t,n,e,i,o,r,s,a,l,c)}class Eoe{buildKeyframes(n,e,i,o,r,s,a,l,c,f=[]){c=c||new A_;const m=new rx(n,e,c,o,r,f,[]);m.options=l;const g=l.delay?Ds(l.delay):0;m.currentTimeline.delayNextStep(g),m.currentTimeline.setStyles([s],null,m.errors,l),Po(this,i,m);const _=m.timelines.filter(w=>w.containsAnimation());if(_.length&&a.size){let w;for(let k=_.length-1;k>=0;k--){const T=_[k];if(T.element===e){w=T;break}}w&&!w.allowOnlyTimelineStyles()&&w.setStyles([a],null,m.errors,l)}return _.length?_.map(w=>w.buildKeyframes()):[ix(e,[],[],[],0,g,"",!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,s=this._visitSubInstructions(i,o,o.options);r!=s&&e.transformIntoNewTimeline(s)}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 s="number"==typeof r?r:Ds(sf(r,o?.params??{},e.errors));i.delayNextStep(s)}}}_visitSubInstructions(n,e,i){let r=e.currentTimeline.currentTime;const s=null!=i.duration?Ds(i.duration):null,a=null!=i.delay?Ds(i.delay):null;return 0!==s&&n.forEach(l=>{const c=e.appendInstructionToTimeline(l,s,a);r=Math.max(r,c.duration+c.delay)}),r}visitReference(n,e){e.updateOptions(n.options,!0),Po(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==Le.Style&&(o.currentTimeline.snapshotCurrentStyles(),o.previousNode=R_);const s=Ds(r.delay);o.delayNextStep(s)}n.steps.length&&(n.steps.forEach(s=>Po(this,s,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?Ds(n.options.delay):0;n.steps.forEach(s=>{const a=e.createSubContext(n.options);r&&a.delayNextStep(r),Po(this,s,a),o=Math.max(o,a.currentTimeline.currentTime),i.push(a.currentTimeline)}),i.forEach(s=>e.currentTimeline.mergeTimelineCollectedStyles(s)),e.transformIntoNewTimeline(o),e.previousNode=n}_visitTiming(n,e){if(n.dynamic){const i=n.strValue;return E_(e.params?sf(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==Le.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,a=e.createSubContext().currentTimeline;a.easing=i.easing,n.styles.forEach(l=>{a.forwardTime((l.offset||0)*r),a.setStyles(l.styles,l.easing,e.errors,e.options),a.applyStylesToKeyframe()}),e.currentTimeline.mergeTimelineCollectedStyles(a),e.transformIntoNewTimeline(o+r),e.previousNode=n}visitQuery(n,e){const i=e.currentTimeline.currentTime,o=n.options||{},r=o.delay?Ds(o.delay):0;r&&(e.previousNode.type===Le.Style||0==i&&e.currentTimeline.hasCurrentStyleProperties())&&(e.currentTimeline.snapshotCurrentStyles(),e.previousNode=R_);let s=i;const a=e.invokeQuery(n.selector,n.originalSelector,n.limit,n.includeSelf,!!o.optional,e.errors);e.currentQueryTotal=a.length;let l=null;a.forEach((c,f)=>{e.currentQueryIndex=f;const m=e.createSubContext(n.options,c);r&&m.delayNextStep(r),c===e.element&&(l=m.currentTimeline),Po(this,n.animation,m),m.currentTimeline.applyStylesToKeyframe(),s=Math.max(s,m.currentTimeline.currentTime)}),e.currentQueryIndex=0,e.currentQueryTotal=0,e.transformIntoNewTimeline(s),l&&(e.currentTimeline.mergeTimelineCollectedStyles(l),e.currentTimeline.snapshotCurrentStyles()),e.previousNode=n}visitStagger(n,e){const i=e.parentContext,o=e.currentTimeline,r=n.timings,s=Math.abs(r.duration),a=s*(e.currentQueryTotal-1);let l=s*e.currentQueryIndex;switch(r.duration<0?"reverse":r.easing){case"reverse":l=a-l;break;case"full":l=i.currentStaggerTime}const f=e.currentTimeline;l&&f.delayNextStep(l);const m=f.currentTime;Po(this,n.animation,e),e.previousNode=n,i.currentStaggerTime=o.currentTime-m+(o.startTime-i.currentTimeline.startTime)}}const R_={};class rx{_driver;element;subInstructions;_enterClassName;_leaveClassName;errors;timelines;parentContext=null;currentTimeline;currentAnimateTimings=null;previousNode=R_;subContextCount=0;options={};currentQueryIndex=0;currentQueryTotal=0;currentStaggerTime=0;constructor(n,e,i,o,r,s,a,l){this._driver=n,this.element=e,this.subInstructions=i,this._enterClassName=o,this._leaveClassName=r,this.errors=s,this.timelines=a,this.currentTimeline=l||new F_(this._driver,e,0),a.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=Ds(i.duration)),null!=i.delay&&(o.delay=Ds(i.delay));const r=i.params;if(r){let s=o.params;s||(s=this.options.params={}),Object.keys(r).forEach(a=>{(!e||!s.hasOwnProperty(a))&&(s[a]=sf(r[a],s,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 rx(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=R_,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 Poe(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,s){let a=[];if(o&&a.push(this.element),n.length>0){n=(n=n.replace(Doe,"."+this._enterClassName)).replace(Toe,"."+this._leaveClassName);let c=this._driver.query(this.element,n,1!=i);0!==i&&(c=i<0?c.slice(c.length+i,c.length):c.slice(0,i)),a.push(...c)}return!r&&0==a.length&&s.push(function Aie(){return new X(3014,!1)}()),a}}class F_{_driver;element;startTime;_elementTimelineStylesLookup;duration=0;easing=null;_previousKeyframe=new Map;_currentKeyframe=new Map;_keyframes=new Map;_styleSummary=new Map;_localTimelineStyles=new Map;_globalTimelineStyles;_pendingStyles=new Map;_backFill=new Map;_currentEmptyStepKeyframe=null;constructor(n,e,i,o){this._driver=n,this.element=e,this.startTime=i,this._elementTimelineStylesLookup=o,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 F_(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||ks),this._currentKeyframe.set(e,ks);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(n,e,i,o){e&&this._previousKeyframe.set("easing",e);const r=o&&o.params||{},s=function Ioe(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,ks)}else for(let[r,s]of o)e.set(r,s)}),e}(n,this._globalTimelineStyles);for(let[a,l]of s){const c=sf(l,r,i);this._pendingStyles.set(a,c),this._localTimelineStyles.has(a)||this._backFill.set(a,this._globalTimelineStyles.get(a)??ks),this._updateStyle(a,c)}}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((a,l)=>{const c=new Map([...this._backFill,...a]);c.forEach((f,m)=>{"!"===f?n.add(m):f===ks&&e.add(m)}),i||c.set("offset",l/this.duration),o.push(c)});const r=[...n.values()],s=[...e.values()];if(i){const a=o[0],l=new Map(a);a.set("offset",0),l.set("offset",1),o=[a,l]}return ix(this.element,o,r,s,this.duration,this.startTime,this.easing,!1)}}class Poe extends F_{keyframes;preStyleProps;postStyleProps;_stretchStartingKeyframe;timings;constructor(n,e,i,o,r,s,a=!1){super(n,e,s.delay),this.keyframes=i,this.preStyleProps=o,this.postStyleProps=r,this._stretchStartingKeyframe=a,this.timings={duration:s.duration,delay:s.delay,easing:s.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=[],s=i+e,a=e/s,l=new Map(n[0]);l.set("offset",0),r.push(l);const c=new Map(n[0]);c.set("offset",xN(a)),r.push(c);const f=n.length-1;for(let m=1;m<=f;m++){let g=new Map(n[m]);const _=g.get("offset");g.set("offset",xN((e+_*i)/s)),r.push(g)}i=s,e=0,o="",n=r}return ix(this.element,n,this.preStyleProps,this.postStyleProps,i,e,o,!0)}}function xN(t,n=3){const e=Math.pow(10,n-1);return Math.round(t*e)/e}function SN(t,n,e,i,o,r,s,a,l,c,f,m,g){return{type:0,element:t,triggerName:n,isRemovalTransition:o,fromState:e,fromStyles:r,toState:i,toStyles:s,timelines:a,queriedElements:l,preStyleProps:c,postStyleProps:f,totalTime:m,errors:g}}const sx={};class kN{_triggerName;ast;_stateStyles;constructor(n,e,i){this._triggerName=n,this.ast=e,this._stateStyles=i}match(n,e,i,o){return function Ooe(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,s,a,l,c,f){const m=[],g=this.ast.options&&this.ast.options.params||sx,w=this.buildStyles(i,a&&a.params||sx,m),k=l&&l.params||sx,T=this.buildStyles(o,k,m),I=new Set,R=new Map,W=new Map,Y="void"===o,K={params:DN(k,g),delay:this.ast.options?.delay},ee=f?[]:ox(n,e,this.ast.animation,r,s,w,T,K,c,m);let ie=0;return ee.forEach(P=>{ie=Math.max(P.duration+P.delay,ie)}),m.length?SN(e,this._triggerName,i,o,Y,w,T,[],[],R,W,ie,m):(ee.forEach(P=>{const A=P.element,L=Eo(R,A,new Set);P.preStyleProps.forEach(H=>L.add(H));const $=Eo(W,A,new Set);P.postStyleProps.forEach(H=>$.add(H)),A!==e&&I.add(A)}),SN(e,this._triggerName,i,o,Y,w,T,ee,[...I.values()],R,W,ie))}}function DN(t,n){const e={...n};return Object.entries(t).forEach(([i,o])=>{null!=o&&(e[i]=o)}),e}class Aoe{styles;defaultParams;normalizer;constructor(n,e,i){this.styles=n,this.defaultParams=e,this.normalizer=i}buildStyles(n,e){const i=new Map,o=DN(n,this.defaultParams);return this.styles.styles.forEach(r=>{"string"!=typeof r&&r.forEach((s,a)=>{s&&(s=sf(s,o,e));const l=this.normalizer.normalizePropertyName(a,e);s=this.normalizer.normalizeStyleValue(a,l,s,e),i.set(a,s)})}),i}}class Foe{name;ast;_normalizer;transitionFactories=[];fallbackTransition;states=new Map;constructor(n,e,i){this.name=n,this.ast=e,this._normalizer=i,e.states.forEach(o=>{this.states.set(o.name,new Aoe(o.style,o.options&&o.options.params||{},i))}),MN(this.states,"true","1"),MN(this.states,"false","0"),e.transitions.forEach(o=>{this.transitionFactories.push(new kN(n,o,this.states))}),this.fallbackTransition=function Noe(t,n){return new kN(t,{type:Le.Transition,animation:{type:Le.Sequence,steps:[],options:null},matchers:[(s,a)=>!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(s=>s.match(n,e,i,o))||null}matchStyles(n,e,i){return this.fallbackTransition.buildStyles(n,e,i)}}function MN(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 Loe=new A_;class Boe{bodyNode;_driver;_normalizer;_animations=new Map;_playersById=new Map;players=[];constructor(n,e,i){this.bodyNode=n,this._driver=e,this._normalizer=i}register(n,e){const i=[],r=tx(this._driver,e,i,[]);if(i.length)throw function Bie(){return new X(3503,!1)}();this._animations.set(n,r)}_buildPlayer(n,e,i){const o=n.element,r=cN(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 s;const a=new Map;if(r?(s=ox(this._driver,e,r,mN,Ww,new Map,new Map,i,Loe,o),s.forEach(f=>{const m=Eo(a,f.element,new Map);f.postStyleProps.forEach(g=>m.set(g,null))})):(o.push(function Vie(){return new X(3300,!1)}()),s=[]),o.length)throw function Hie(){return new X(3504,!1)}();a.forEach((f,m)=>{f.forEach((g,_)=>{f.set(_,this._driver.computeStyle(m,_,ks))})});const c=pa(s.map(f=>{const m=a.get(f.element);return this._buildPlayer(f,new Map,m)}));return this._playersById.set(n,c),c.onDestroy(()=>this.destroy(n)),this.players.push(c),c}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 jie(){return new X(3301,!1)}();return e}listen(n,e,i,o){const r=zw(e,"","","");return jw(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 TN="ng-animate-queued",ax="ng-animate-disabled",zoe=[],EN={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},$oe={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},pr="__ng_removed";class lx{namespaceId;value;options;get params(){return this.options.params}constructor(n,e=""){this.namespaceId=e;const i=n&&n.hasOwnProperty("value");if(this.value=function Koe(t){return t??null}(i?n.value:n),i){const{value:r,...s}=n;this.options=s}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 af="void",cx=new lx(af);class Woe{id;hostElement;_engine;players=[];_triggers=new Map;_queue=[];_elementListeners=new Map;_hostClassName;constructor(n,e,i){this.id=n,this.hostElement=e,this._engine=i,this._hostClassName="ng-tns-"+n,jo(e,this._hostClassName)}listen(n,e,i,o){if(!this._triggers.has(e))throw function Uie(){return new X(3302,!1)}();if(null==i||0==i.length)throw function zie(){return new X(3303,!1)}();if(!function Yoe(t){return"start"==t||"done"==t}(i))throw function $ie(){return new X(3400,!1)}();const r=Eo(this._elementListeners,n,[]),s={name:e,phase:i,callback:o};r.push(s);const a=Eo(this._engine.statesByElement,n,new Map);return a.has(e)||(jo(n,M_),jo(n,M_+"-"+e),a.set(e,cx)),()=>{this._engine.afterFlush(()=>{const l=r.indexOf(s);l>=0&&r.splice(l,1),this._triggers.has(e)||a.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 Wie(){return new X(3401,!1)}();return e}trigger(n,e,i,o=!0){const r=this._getTrigger(e),s=new dx(this.id,e,n);let a=this._engine.statesByElement.get(n);a||(jo(n,M_),jo(n,M_+"-"+e),this._engine.statesByElement.set(n,a=new Map));let l=a.get(e);const c=new lx(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&l&&c.absorbOptions(l.options),a.set(e,c),l||(l=cx),c.value!==af&&l.value===c.value){if(!function Qoe(t,n){const e=Object.keys(t),i=Object.keys(n);if(e.length!=i.length)return!1;for(let o=0;o{jl(n,T),Hr(n,I)})}return}const g=Eo(this._engine.playersByElement,n,[]);g.forEach(k=>{k.namespaceId==this.id&&k.triggerName==e&&k.queued&&k.destroy()});let _=r.matchTransition(l.value,c.value,n,c.params),w=!1;if(!_){if(!o)return;_=r.fallbackTransition,w=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:n,triggerName:e,transition:_,fromState:l,toState:c,player:s,isFallbackTransition:w}),w||(jo(n,TN),s.onStart(()=>{Bd(n,TN)})),s.onDone(()=>{let k=this.players.indexOf(s);k>=0&&this.players.splice(k,1);const T=this._engine.playersByElement.get(n);if(T){let I=T.indexOf(s);I>=0&&T.splice(I,1)}}),this.players.push(s),g.push(s),s}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,T_,!0);i.forEach(o=>{if(o[pr])return;const r=this._engine.fetchNamespacesByElement(o);r.size?r.forEach(s=>s.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),s=new Map;if(r){const a=[];if(r.forEach((l,c)=>{if(s.set(c,l.value),this._triggers.has(c)){const f=this.trigger(n,c,af,o);f&&a.push(f)}}),a.length)return this._engine.markElementAsRemoved(this.id,n,!0,e,s),i&&pa(a).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 s=r.name;if(o.has(s))return;o.add(s);const l=this._triggers.get(s).fallbackTransition,c=i.get(s)||cx,f=new lx(af),m=new dx(this.id,s,n);this._engine.totalQueuedPlayers++,this._queue.push({element:n,triggerName:s,transition:l,fromState:c,toState:f,player:m,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 s=n;for(;s=s.parentNode;)if(i.statesByElement.get(s)){o=!0;break}}}if(this.prepareLeaveAnimationListeners(n),o)i.markElementAsRemoved(this.id,n,!1,e);else{const r=n[pr];(!r||r===EN)&&(i.afterFlush(()=>this.clearElementCache(n)),i.destroyInnerAnimations(n),i._onRemovalComplete(n,e))}}insertNode(n,e){jo(n,this._hostClassName)}drainQueuedTransitions(n){const e=[];return this._queue.forEach(i=>{const o=i.player;if(o.destroyed)return;const r=i.element,s=this._elementListeners.get(r);s&&s.forEach(a=>{if(a.name==i.triggerName){const l=zw(r,i.triggerName,i.fromState.value,i.toState.value);l._data=n,jw(i.player,a.phase,l,a.callback)}}),o.markedForDestroy?this._engine.afterFlush(()=>{o.destroy()}):e.push(i)}),this._queue=[],e.sort((i,o)=>{const r=i.transition.ast.depCount,s=o.transition.ast.depCount;return 0==r||0==s?r-s:this._engine.driver.containsElement(i.element,o.element)?1:-1})}destroy(n){this.players.forEach(e=>e.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,n)}}class Goe{bodyNode;driver;_normalizer;players=[];newHostElements=new Map;playersByElement=new Map;playersByQueriedElement=new Map;statesByElement=new Map;disabledNodes=new Set;totalAnimations=0;totalQueuedPlayers=0;_namespaceLookup={};_namespaceList=[];_flushFns=[];_whenQuietFns=[];namespacesByHostElement=new Map;collectedEnterElements=[];collectedLeaveElements=[];onRemovalComplete=(n,e)=>{};_onRemovalComplete(n,e){this.onRemovalComplete(n,e)}constructor(n,e,i){this.bodyNode=n,this.driver=e,this._normalizer=i}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 Woe(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 s=!1,a=this.driver.getParentElement(e);for(;a;){const l=o.get(a);if(l){const c=i.indexOf(l);i.splice(c+1,0,n),s=!0;break}a=this.driver.getParentElement(a)}s||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(N_(e)){const r=this._fetchNamespace(n);if(r)return r.trigger(e,i,o),!0}return!1}insertNode(n,e,i,o){if(!N_(e))return;const r=e[pr];if(r&&r.setForRemoval){r.setForRemoval=!1,r.setForMove=!0;const s=this.collectedLeaveElements.indexOf(e);s>=0&&this.collectedLeaveElements.splice(s,1)}if(n){const s=this._fetchNamespace(n);s&&s.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),jo(n,ax)):this.disabledNodes.has(n)&&(this.disabledNodes.delete(n),Bd(n,ax))}removeNode(n,e,i){if(N_(e)){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[pr]={namespaceId:n,setForRemoval:o,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:r}}listen(n,e,i,o,r){return N_(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,T_,!0);e.forEach(i=>this.destroyActiveAnimationsForElement(i)),0!=this.playersByQueriedElement.size&&(e=this.driver.query(n,Gw,!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 pa(this.players).onDone(()=>n());n()})}processLeaveNode(n){const e=n[pr];if(e&&e.setForRemoval){if(n[pr]=EN,e.namespaceId){this.destroyInnerAnimations(n);const i=this._fetchNamespace(e.namespaceId);i&&i.clearElementCache(n)}this._onRemovalComplete(n,e.setForRemoval)}n.classList?.contains(ax)&&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?pa(e).onDone(()=>{i.forEach(o=>o())}):i.forEach(o=>o())}}reportError(n){throw function Gie(){return new X(3402,!1)}()}_flushAnimations(n,e){const i=new A_,o=[],r=new Map,s=[],a=new Map,l=new Map,c=new Map,f=new Set;this.disabledNodes.forEach(N=>{f.add(N);const q=this.driver.query(N,".ng-animate-queued",!0);for(let z=0;z{const z=mN+k++;w.set(q,z),N.forEach(Q=>jo(Q,z))});const T=[],I=new Set,R=new Set;for(let N=0;NI.add(Q)):R.add(q))}const W=new Map,Y=ON(g,Array.from(I));Y.forEach((N,q)=>{const z=Ww+k++;W.set(q,z),N.forEach(Q=>jo(Q,z))}),n.push(()=>{_.forEach((N,q)=>{const z=w.get(q);N.forEach(Q=>Bd(Q,z))}),Y.forEach((N,q)=>{const z=W.get(q);N.forEach(Q=>Bd(Q,z))}),T.forEach(N=>{this.processLeaveNode(N)})});const K=[],ee=[];for(let N=this._namespaceList.length-1;N>=0;N--)this._namespaceList[N].drainQueuedTransitions(e).forEach(z=>{const Q=z.player,ue=z.element;if(K.push(Q),this.collectedEnterElements.length){const wt=ue[pr];if(wt&&wt.setForMove){if(wt.previousTriggersValues&&wt.previousTriggersValues.has(z.triggerName)){const Jo=wt.previousTriggersValues.get(z.triggerName),Xi=this.statesByElement.get(z.element);if(Xi&&Xi.has(z.triggerName)){const ja=Xi.get(z.triggerName);ja.value=Jo,Xi.set(z.triggerName,ja)}}return void Q.destroy()}}const Ce=!m||!this.driver.containsElement(m,ue),Ee=W.get(ue),ut=w.get(ue),Oe=this._buildInstruction(z,i,ut,Ee,Ce);if(Oe.errors&&Oe.errors.length)return void ee.push(Oe);if(Ce)return Q.onStart(()=>jl(ue,Oe.fromStyles)),Q.onDestroy(()=>Hr(ue,Oe.toStyles)),void o.push(Q);if(z.isFallbackTransition)return Q.onStart(()=>jl(ue,Oe.fromStyles)),Q.onDestroy(()=>Hr(ue,Oe.toStyles)),void o.push(Q);const Xe=[];Oe.timelines.forEach(wt=>{wt.stretchStartingKeyframe=!0,this.disabledNodes.has(wt.element)||Xe.push(wt)}),Oe.timelines=Xe,i.append(ue,Oe.timelines),s.push({instruction:Oe,player:Q,element:ue}),Oe.queriedElements.forEach(wt=>Eo(a,wt,[]).push(Q)),Oe.preStyleProps.forEach((wt,Jo)=>{if(wt.size){let Xi=l.get(Jo);Xi||l.set(Jo,Xi=new Set),wt.forEach((ja,xo)=>Xi.add(xo))}}),Oe.postStyleProps.forEach((wt,Jo)=>{let Xi=c.get(Jo);Xi||c.set(Jo,Xi=new Set),wt.forEach((ja,xo)=>Xi.add(xo))})});if(ee.length){const N=[];ee.forEach(q=>{N.push(function qie(){return new X(3505,!1)}())}),K.forEach(q=>q.destroy()),this.reportError(N)}const ie=new Map,P=new Map;s.forEach(N=>{const q=N.element;i.has(q)&&(P.set(q,q),this._beforeAnimationBuild(N.player.namespaceId,N.instruction,ie))}),o.forEach(N=>{const q=N.element;this._getPreviousPlayers(q,!1,N.namespaceId,N.triggerName,null).forEach(Q=>{Eo(ie,q,[]).push(Q),Q.destroy()})});const A=T.filter(N=>RN(N,l,c)),L=new Map;IN(L,this.driver,R,c,ks).forEach(N=>{RN(N,l,c)&&A.push(N)});const H=new Map;_.forEach((N,q)=>{IN(H,this.driver,new Set(N),l,"!")}),A.forEach(N=>{const q=L.get(N),z=H.get(N);L.set(N,new Map([...q?.entries()??[],...z?.entries()??[]]))});const G=[],J=[],V={};s.forEach(N=>{const{element:q,player:z,instruction:Q}=N;if(i.has(q)){if(f.has(q))return z.onDestroy(()=>Hr(q,Q.toStyles)),z.disabled=!0,z.overrideTotalTime(Q.totalTime),void o.push(z);let ue=V;if(P.size>1){let Ee=q;const ut=[];for(;Ee=Ee.parentNode;){const Oe=P.get(Ee);if(Oe){ue=Oe;break}ut.push(Ee)}ut.forEach(Oe=>P.set(Oe,ue))}const Ce=this._buildAnimation(z.namespaceId,Q,ie,r,H,L);if(z.setRealPlayer(Ce),ue===V)G.push(z);else{const Ee=this.playersByElement.get(ue);Ee&&Ee.length&&(z.parentPlayer=pa(Ee)),o.push(z)}}else jl(q,Q.fromStyles),z.onDestroy(()=>Hr(q,Q.toStyles)),J.push(z),f.has(q)&&o.push(z)}),J.forEach(N=>{const q=r.get(N.element);if(q&&q.length){const z=pa(q);N.setRealPlayer(z)}}),o.forEach(N=>{N.parentPlayer?N.syncPlayerEvents(N.parentPlayer):N.destroy()});for(let N=0;N!Ce.destroyed);ue.length?Xoe(this,q,ue):this.processLeaveNode(q)}return T.length=0,G.forEach(N=>{this.players.push(N),N.onDone(()=>{N.destroy();const q=this.players.indexOf(N);this.players.splice(q,1)}),N.play()}),G}afterFlush(n){this._flushFns.push(n)}afterFlushAnimationsDone(n){this._whenQuietFns.push(n)}_getPreviousPlayers(n,e,i,o,r){let s=[];if(e){const a=this.playersByQueriedElement.get(n);a&&(s=a)}else{const a=this.playersByElement.get(n);if(a){const l=!r||r==af;a.forEach(c=>{c.queued||!l&&c.triggerName!=o||s.push(c)})}}return(i||o)&&(s=s.filter(a=>!(i&&i!=a.namespaceId||o&&o!=a.triggerName))),s}_beforeAnimationBuild(n,e,i){const r=e.element,s=e.isRemovalTransition?void 0:n,a=e.isRemovalTransition?void 0:e.triggerName;for(const l of e.timelines){const c=l.element,f=c!==r,m=Eo(i,c,[]);this._getPreviousPlayers(c,f,s,a,e.toState).forEach(_=>{const w=_.getRealPlayer();w.beforeDestroy&&w.beforeDestroy(),_.destroy(),m.push(_)})}jl(r,e.fromStyles)}_buildAnimation(n,e,i,o,r,s){const a=e.triggerName,l=e.element,c=[],f=new Set,m=new Set,g=e.timelines.map(w=>{const k=w.element;f.add(k);const T=k[pr];if(T&&T.removedBeforeQueried)return new of(w.duration,w.delay);const I=k!==l,R=function Zoe(t){const n=[];return AN(t,n),n}((i.get(k)||zoe).map(ie=>ie.getRealPlayer())).filter(ie=>!!ie.element&&ie.element===k),W=r.get(k),Y=s.get(k),K=cN(this._normalizer,w.keyframes,W,Y),ee=this._buildPlayer(w,K,R);if(w.subTimeline&&o&&m.add(k),I){const ie=new dx(n,a,k);ie.setRealPlayer(ee),c.push(ie)}return ee});c.forEach(w=>{Eo(this.playersByQueriedElement,w.element,[]).push(w),w.onDone(()=>function qoe(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,w.element,w))}),f.forEach(w=>jo(w,gN));const _=pa(g);return _.onDestroy(()=>{f.forEach(w=>Bd(w,gN)),Hr(l,e.toStyles)}),m.forEach(w=>{Eo(o,w,[]).push(_)}),_}_buildPlayer(n,e,i){return e.length>0?this.driver.animate(n.element,e,n.duration,n.delay,n.easing,i):new of(n.duration,n.delay)}}class dx{namespaceId;triggerName;element;_player=new of;_containsRealPlayer=!1;_queuedCallbacks=new Map;destroyed=!1;parentPlayer=null;markedForDestroy=!1;disabled=!1;queued=!0;totalTime=0;constructor(n,e,i){this.namespaceId=n,this.triggerName=e,this.element=i}setRealPlayer(n){this._containsRealPlayer||(this._player=n,this._queuedCallbacks.forEach((e,i)=>{e.forEach(o=>jw(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){Eo(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 N_(t){return t&&1===t.nodeType}function PN(t,n){const e=t.style.display;return t.style.display=n??"none",e}function IN(t,n,e,i,o){const r=[];e.forEach(l=>r.push(PN(l)));const s=[];i.forEach((l,c)=>{const f=new Map;l.forEach(m=>{const g=n.computeStyle(c,m,o);f.set(m,g),(!g||0==g.length)&&(c[pr]=$oe,s.push(c))}),t.set(c,f)});let a=0;return e.forEach(l=>PN(l,r[a++])),s}function ON(t,n){const e=new Map;if(t.forEach(a=>e.set(a,[])),0==n.length)return e;const o=new Set(n),r=new Map;function s(a){if(!a)return 1;let l=r.get(a);if(l)return l;const c=a.parentNode;return l=e.has(c)?c:o.has(c)?1:s(c),r.set(a,l),l}return n.forEach(a=>{const l=s(a);1!==l&&e.get(l).push(a)}),e}function jo(t,n){t.classList?.add(n)}function Bd(t,n){t.classList?.remove(n)}function Xoe(t,n,e){pa(e).onDone(()=>t.processLeaveNode(n))}function AN(t,n){for(let e=0;eo.add(r)):n.set(t,i),e.delete(t),!0}class lf{_driver;_normalizer;_transitionEngine;_timelineEngine;_triggerCache={};onRemovalComplete=(n,e)=>{};constructor(n,e,i){this._driver=e,this._normalizer=i,this._transitionEngine=new Goe(n.body,e,i),this._timelineEngine=new Boe(n.body,e,i),this._transitionEngine.onRemovalComplete=(o,r)=>this.onRemovalComplete(o,r)}registerTrigger(n,e,i,o,r){const s=n+"-"+o;let a=this._triggerCache[s];if(!a){const l=[],f=tx(this._driver,r,l,[]);if(l.length)throw function Nie(){return new X(3404,!1)}();a=function Roe(t,n,e){return new Foe(t,n,e)}(o,f,this._normalizer),this._triggerCache[s]=a}this._transitionEngine.registerTrigger(e,o,a)}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,s]=dN(i);this._timelineEngine.command(r,e,s,o)}else this._transitionEngine.trigger(n,e,i,o)}listen(n,e,i,o,r){if("@"==i.charAt(0)){const[s,a]=dN(i);return this._timelineEngine.listen(s,e,a,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)}}let ere=(()=>{class t{_element;_startStyles;_endStyles;static initialStylesByElement=new WeakMap;_state=0;_initialStyles;constructor(e,i,o){this._element=e,this._startStyles=i,this._endStyles=o;let r=t.initialStylesByElement.get(e);r||t.initialStylesByElement.set(e,r=new Map),this._initialStyles=r}start(){this._state<1&&(this._startStyles&&Hr(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(Hr(this._element,this._initialStyles),this._endStyles&&(Hr(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(t.initialStylesByElement.delete(this._element),this._startStyles&&(jl(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(jl(this._element,this._endStyles),this._endStyles=null),Hr(this._element,this._initialStyles),this._state=3)}}return t})();function ux(t){let n=null;return t.forEach((e,i)=>{(function tre(t){return"display"===t||"position"===t})(i)&&(n=n||new Map,n.set(i,e))}),n}class FN{element;keyframes;options;_specialStyles;_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_duration;_delay;_initialized=!1;_finished=!1;_started=!1;_destroyed=!1;_finalKeyframe;_originalOnDoneFns=[];_originalOnStartFns=[];domPlayer=null;time=0;parentPlayer=null;currentSnapshot=new Map;constructor(n,e,i,o){this.element=n,this.keyframes=e,this.options=i,this._specialStyles=o,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.domPlayer;this._initialized=!0;const n=this.keyframes,e=this._triggerWebAnimation(this.element,n,this.options);if(!e)return this._onFinish(),null;this.domPlayer=e,this._finalKeyframe=n.length?n[n.length-1]:new Map;const i=()=>this._onFinish();return e.addEventListener("finish",i),this.onDestroy(()=>{e.removeEventListener("finish",i)}),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){const o=this._convertKeyframesToObject(e);try{return n.animate(o,i)}catch{return null}}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(){const n=this._buildPlayer();n&&(this.hasStarted()||(this._onStartFns.forEach(e=>e()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),n.play())}pause(){this.init(),this.domPlayer?.pause()}finish(){this.init(),this.domPlayer&&(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?.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){this.domPlayer||this.init(),this.domPlayer&&(this.domPlayer.currentTime=n*this.time)}getPosition(){return this.domPlayer?+(this.domPlayer.currentTime??0)/this.time:this._initialized?1:0}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:Xw(this.element,o))}),this.currentSnapshot=n}triggerCallback(n){const e="start"===n?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}class NN{validateStyleProperty(n){return!0}validateAnimatableStyleProperty(n){return!0}containsElement(n,e){return hN(n,e)}getParentElement(n){return $w(n)}query(n,e,i){return fN(n,e,i)}computeStyle(n,e,i){return Xw(n,e)}animate(n,e,i,o,r,s=[]){const l={duration:i,delay:o,fill:0==o?"both":"forwards"};r&&(l.easing=r);const c=new Map,f=s.filter(_=>_ instanceof FN);(function soe(t,n){return 0===t||0===n})(i,o)&&f.forEach(_=>{_.currentSnapshot.forEach((w,k)=>c.set(k,w))});let m=function ioe(t){return t.length?t[0]instanceof Map?t:t.map(n=>new Map(Object.entries(n))):[]}(e).map(_=>new Map(_));m=function aoe(t,n,e){if(e.size&&n.length){let i=n[0],o=[];if(e.forEach((r,s)=>{i.has(s)||o.push(s),i.set(s,r)}),o.length)for(let r=1;rs.set(a,Xw(t,a)))}}return n}(n,m,c);const g=function Joe(t,n){let e=null,i=null;return Array.isArray(n)&&n.length?(e=ux(n[0]),n.length>1&&(i=ux(n[n.length-1]))):n instanceof Map&&(e=ux(n)),e||i?new ere(t,e,i):null}(n,m);return new FN(n,m,l,g)}}const LN="@.disabled";class BN{namespaceId;delegate;engine;_onDestroy;\u0275type=0;constructor(n,e,i,o){this.namespaceId=n,this.delegate=e,this.engine=i,this._onDestroy=o}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,o){o?this.delegate.removeChild(n,e,i,o):this.parentNode(e)&&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==LN?this.disableAnimations(n,!!i):this.delegate.setProperty(n,e,i)}setValue(n,e){this.delegate.setValue(n,e)}listen(n,e,i,o){return this.delegate.listen(n,e,i,o)}disableAnimations(n,e){this.engine.disableAnimations(n,e)}}class nre extends BN{factory;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==LN?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,o){if("@"==e.charAt(0)){const r=function ire(t){switch(t){case"body":return document.body;case"document":return document;case"window":return window;default:return t}}(n);let s=e.slice(1),a="";return"@"!=s.charAt(0)&&([s,a]=function ore(t){const n=t.indexOf(".");return[t.substring(0,n),t.slice(n+1)]}(s)),this.engine.listen(this.namespaceId,r,s,a,l=>{this.factory.scheduleListenerCallback(l._data||-1,i,l)})}return this.delegate.listen(n,e,i,o)}}class rre{delegate;engine;_zone;_currentId=0;_microtaskId=1;_animationCallbacksBuffer=[];_rendererCache=new Map;_cdRecurDepth=0;constructor(n,e,i){this.delegate=n,this.engine=e,this._zone=i,e.onRemovalComplete=(o,r)=>{r?.removeChild(null,o)}}createRenderer(n,e){const o=this.delegate.createRenderer(n,e);if(!n||!e?.data?.animation){const c=this._rendererCache;let f=c.get(o);return f||(f=new BN("",o,this.engine,()=>c.delete(o)),c.set(o,f)),f}const r=e.id,s=e.id+"-"+this._currentId;this._currentId++,this.engine.register(s,n);const a=c=>{Array.isArray(c)?c.forEach(a):this.engine.registerTrigger(r,s,n,c.name,c)};return e.data.animation.forEach(a),new nre(this,s,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[s,a]=r;s(a)}),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()}componentReplaced(n){this.engine.flush(),this.delegate.componentReplaced?.(n)}}const VN=[{provide:Jw,useFactory:function lre(){return new vN}},{provide:lf,useClass:(()=>{class t extends lf{constructor(e,i,o){super(e,i,o)}ngOnDestroy(){this.flush()}static \u0275fac=function(i){return new(i||t)(ce(et),ce(Qw),ce(Jw))};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})()},{provide:Lo,useFactory:function cre(){return new rre(D(Ow),D(lf),D(_e))}}],HN=[{provide:Qw,useClass:Zw},{provide:Rm,useValue:"NoopAnimations"},...VN],hx=[{provide:Qw,useFactory:()=>new NN},{provide:Rm,useFactory:()=>"BrowserAnimations"},...VN];let dre=(()=>{class t{static withConfig(e){return{ngModule:t,providers:e.disableAnimations?HN:hx}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({providers:hx,imports:[oN]})}return t})();function ma(t){return this instanceof ma?(this.v=t,this):new ma(t)}function $N(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 gx(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(s){return new Promise(function(a,l){!function o(r,s,a,l){Promise.resolve(l).then(function(c){r({value:c,done:a})},s)}(a,l,(s=t[r](s)).done,s.value)})}}}"function"==typeof SuppressedError&&SuppressedError;const WN=t=>t&&"number"==typeof t.length&&"function"!=typeof t;function GN(t){return cn(t?.then)}function qN(t){return cn(t[sy])}function KN(t){return Symbol.asyncIterator&&cn(t?.[Symbol.asyncIterator])}function YN(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 XN=function Lre(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function ZN(t){return cn(t?.[XN])}function QN(t){return function zN(t,n,e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o,i=e.apply(t,n||[]),r=[];return o=Object.create(("function"==typeof AsyncIterator?AsyncIterator:Object).prototype),a("next"),a("throw"),a("return",function s(_){return function(w){return Promise.resolve(w).then(_,m)}}),o[Symbol.asyncIterator]=function(){return this},o;function a(_,w){i[_]&&(o[_]=function(k){return new Promise(function(T,I){r.push([_,k,T,I])>1||l(_,k)})},w&&(o[_]=w(o[_])))}function l(_,w){try{!function c(_){_.value instanceof ma?Promise.resolve(_.value.v).then(f,m):g(r[0][2],_)}(i[_](w))}catch(k){g(r[0][3],k)}}function f(_){l("next",_)}function m(_){l("throw",_)}function g(_,w){_(w),r.shift(),r.length&&l(r[0][0],r[0][1])}}(this,arguments,function*(){const e=t.getReader();try{for(;;){const{value:i,done:o}=yield ma(e.read());if(o)return yield ma(void 0);yield yield ma(i)}}finally{e.releaseLock()}})}function JN(t){return cn(t?.getReader)}function ji(t){if(t instanceof Ft)return t;if(null!=t){if(qN(t))return function Bre(t){return new Ft(n=>{const e=t[sy]();if(cn(e.subscribe))return e.subscribe(n);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(t);if(WN(t))return function Vre(t){return new Ft(n=>{for(let e=0;e{t.then(e=>{n.closed||(n.next(e),n.complete())},e=>n.error(e)).then(null,FD)})}(t);if(KN(t))return eL(t);if(ZN(t))return function jre(t){return new Ft(n=>{for(const e of t)if(n.next(e),n.closed)return;n.complete()})}(t);if(JN(t))return function Ure(t){return eL(QN(t))}(t)}throw YN(t)}function eL(t){return new Ft(n=>{(function zre(t,n){var e,i,o,r;return function jN(t,n,e,i){return new(e||(e=Promise))(function(r,s){function a(f){try{c(i.next(f))}catch(m){s(m)}}function l(f){try{c(i.throw(f))}catch(m){s(m)}}function c(f){f.done?r(f.value):function o(r){return r instanceof e?r:new e(function(s){s(r)})}(f.value).then(a,l)}c((i=i.apply(t,n||[])).next())})}(this,void 0,void 0,function*(){try{for(e=$N(t);!(i=yield e.next()).done;)if(n.next(i.value),n.closed)return}catch(s){o={error:s}}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 tn(t,n){return Mn((e,i)=>{let o=null,r=0,s=!1;const a=()=>s&&!o&&i.complete();e.subscribe(dn(i,l=>{o?.unsubscribe();let c=0;const f=r++;ji(t(l,f)).subscribe(o=dn(i,m=>i.next(n?n(l,m,f,c++):m),()=>{o=null,a()}))},()=>{s=!0,a()}))})}function B_(t){return Mn((n,e)=>{try{n.subscribe(e)}finally{e.add(t)}})}function Ms(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 It(t,n,e=1/0){return cn(n)?It((i,o)=>Se((r,s)=>n(i,r,o,s))(ji(t(i,o))),e):("number"==typeof n&&(e=n),Mn((i,o)=>function $re(t,n,e,i,o,r,s,a){const l=[];let c=0,f=0,m=!1;const g=()=>{m&&!l.length&&!c&&n.complete()},_=k=>c{r&&n.next(k),c++;let T=!1;ji(e(k,f++)).subscribe(dn(n,I=>{o?.(I),r?_(I):n.next(I)},()=>{T=!0},void 0,()=>{if(T)try{for(c--;l.length&&cw(I)):w(I)}g()}catch(I){n.error(I)}}))};return t.subscribe(dn(n,_,()=>{m=!0,g()})),()=>{a?.()}}(i,o,t,e)))}function cf(t,n){return cn(n)?It(t,n,1):It(t,1)}function Tn(t,n){return Mn((e,i)=>{let o=0;e.subscribe(dn(i,r=>t.call(n,r,o++)&&i.next(r)))})}function tL(t,n=0){return Mn((e,i)=>{e.subscribe(dn(i,o=>Ms(i,t,()=>i.next(o),n),()=>Ms(i,t,()=>i.complete(),n),o=>Ms(i,t,()=>i.error(o),n)))})}function nL(t,n=0){return Mn((e,i)=>{i.add(t.schedule(()=>e.subscribe(i),n))})}function iL(t,n){if(!t)throw new Error("Iterable cannot be null");return new Ft(e=>{Ms(e,n,()=>{const i=t[Symbol.asyncIterator]();Ms(e,n,()=>{i.next().then(o=>{o.done?e.complete():e.next(o.value)})},0,!0)})})}function Kn(t,n){return n?function Xre(t,n){if(null!=t){if(qN(t))return function Wre(t,n){return ji(t).pipe(nL(n),tL(n))}(t,n);if(WN(t))return function qre(t,n){return new Ft(e=>{let i=0;return n.schedule(function(){i===t.length?e.complete():(e.next(t[i++]),e.closed||this.schedule())})})}(t,n);if(GN(t))return function Gre(t,n){return ji(t).pipe(nL(n),tL(n))}(t,n);if(KN(t))return iL(t,n);if(ZN(t))return function Kre(t,n){return new Ft(e=>{let i;return Ms(e,n,()=>{i=t[XN](),Ms(e,n,()=>{let o,r;try{({value:o,done:r}=i.next())}catch(s){return void e.error(s)}r?e.complete():e.next(o)},0,!0)}),()=>cn(i?.return)&&i.return()})}(t,n);if(JN(t))return function Yre(t,n){return iL(QN(t),n)}(t,n)}throw YN(t)}(t,n):ji(t)}function oL(t){return t&&cn(t.schedule)}function bx(t){return t[t.length-1]}function rL(t){return cn(bx(t))?t.pop():void 0}function df(t){return oL(bx(t))?t.pop():void 0}function ae(...t){return Kn(t,df(t))}class Uo{headers;normalizedNames=new Map;lazyInit;lazyUpdate=null;constructor(n){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=e.slice(i+1).trim();this.addHeaderEntry(o,r)}})}:typeof Headers<"u"&&n instanceof Headers?(this.headers=new Map,n.forEach((e,i)=>{this.addHeaderEntry(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 Uo?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 Uo;return e.lazyInit=this.lazyInit&&this.lazyInit instanceof Uo?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 s=this.headers.get(e);if(!s)return;s=s.filter(a=>-1===r.indexOf(a)),0===s.length?(this.headers.delete(e),this.normalizedNames.delete(e)):this.headers.set(e,s)}else this.headers.delete(e),this.normalizedNames.delete(e)}}addHeaderEntry(n,e){const i=n.toLowerCase();this.maybeSetNormalizedName(n,i),this.headers.has(i)?this.headers.get(i).push(e):this.headers.set(i,[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 Qre{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()}}class Jre{encodeKey(n){return aL(n)}encodeValue(n){return aL(n)}decodeKey(n){return decodeURIComponent(n)}decodeValue(n){return decodeURIComponent(n)}}const tse=/%(\d[a-f0-9])/gi,nse={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function aL(t){return encodeURIComponent(t).replace(tse,(n,e)=>nse[e]??n)}function V_(t){return`${t}`}class ga{map;encoder;updates=null;cloneFrom=null;constructor(n={}){if(this.encoder=n.encoder||new Jre,n.fromString){if(n.fromObject)throw new X(2805,!1);this.map=function ese(t,n){const e=new Map;return t.length>0&&t.replace(/^\?/,"").split("&").forEach(o=>{const r=o.indexOf("="),[s,a]=-1==r?[n.decodeKey(o),""]:[n.decodeKey(o.slice(0,r)),n.decodeValue(o.slice(r+1))],l=e.get(s)||[];l.push(a),e.set(s,l)}),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(V_):[V_(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 ga({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(V_(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(V_(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)}}function lL(t){return typeof ArrayBuffer<"u"&&t instanceof ArrayBuffer}function cL(t){return typeof Blob<"u"&&t instanceof Blob}function dL(t){return typeof FormData<"u"&&t instanceof FormData}const uf="Content-Type",uL="text/plain",hL="application/json",fL=`${hL}, ${uL}, */*`;class hf{url;body=null;headers;context;reportProgress=!1;withCredentials=!1;credentials;keepalive=!1;cache;priority;mode;redirect;referrer;integrity;referrerPolicy;responseType="json";method;params;urlWithParams;transferCache;timeout;constructor(n,e,i,o){let r;if(this.url=e,this.method=n.toUpperCase(),function ise(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){if(this.reportProgress=!!r.reportProgress,this.withCredentials=!!r.withCredentials,this.keepalive=!!r.keepalive,r.responseType&&(this.responseType=r.responseType),r.headers&&(this.headers=r.headers),r.context&&(this.context=r.context),r.params&&(this.params=r.params),r.priority&&(this.priority=r.priority),r.cache&&(this.cache=r.cache),r.credentials&&(this.credentials=r.credentials),"number"==typeof r.timeout){if(r.timeout<1||!Number.isInteger(r.timeout))throw new X(2822,"");this.timeout=r.timeout}r.mode&&(this.mode=r.mode),r.redirect&&(this.redirect=r.redirect),r.integrity&&(this.integrity=r.integrity),r.referrer&&(this.referrer=r.referrer),r.referrerPolicy&&(this.referrerPolicy=r.referrerPolicy),this.transferCache=r.transferCache}if(this.headers??=new Uo,this.context??=new Qre,this.params){const s=this.params.toString();if(0===s.length)this.urlWithParams=e;else{const a=e.indexOf("?");this.urlWithParams=e+(-1===a?"?":aee.set(ie,n.setHeaders[ie]),W)),n.setParams&&(Y=Object.keys(n.setParams).reduce((ee,ie)=>ee.set(ie,n.setParams[ie]),Y)),new hf(e,i,T,{params:Y,headers:W,context:K,reportProgress:R,responseType:o,withCredentials:I,transferCache:w,keepalive:r,cache:a,priority:s,timeout:k,mode:l,redirect:c,credentials:f,referrer:m,integrity:g,referrerPolicy:_})}}var _a=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}(_a||{});class vx{headers;status;statusText;url;ok;type;redirected;responseType;constructor(n,e=200,i="OK"){this.headers=n.headers||new Uo,this.status=void 0!==n.status?n.status:e,this.statusText=n.statusText||i,this.url=n.url||null,this.redirected=n.redirected,this.responseType=n.responseType,this.ok=this.status>=200&&this.status<300}}class j_ extends vx{constructor(n={}){super(n)}type=_a.ResponseHeader;clone(n={}){return new j_({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 ff extends vx{body;constructor(n={}){super(n),this.body=void 0!==n.body?n.body:null}type=_a.Response;clone(n={}){return new ff({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,redirected:n.redirected??this.redirected,responseType:n.responseType??this.responseType})}}class zl extends vx{name="HttpErrorResponse";message;error;ok=!1;constructor(n){super(n,0,"Unknown Error"),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}}const mL=new Z(""),dse=/^\)\]\}',?\n/;let gL=(()=>{class t{xhrFactory;tracingService=D(oa,{optional:!0});constructor(e){this.xhrFactory=e}maybePropagateTrace(e){return this.tracingService?.propagate?this.tracingService.propagate(e):e}handle(e){if("JSONP"===e.method)throw new X(-2800,!1);const i=this.xhrFactory;return ae(null).pipe(tn(()=>new Ft(r=>{const s=i.build();if(s.open(e.method,e.urlWithParams),e.withCredentials&&(s.withCredentials=!0),e.headers.forEach((T,I)=>s.setRequestHeader(T,I.join(","))),e.headers.has("Accept")||s.setRequestHeader("Accept",fL),!e.headers.has(uf)){const T=e.detectContentTypeHeader();null!==T&&s.setRequestHeader(uf,T)}if(e.timeout&&(s.timeout=e.timeout),e.responseType){const T=e.responseType.toLowerCase();s.responseType="json"!==T?T:"text"}const a=e.serializeBody();let l=null;const c=()=>{if(null!==l)return l;const T=s.statusText||"OK",I=new Uo(s.getAllResponseHeaders());return l=new j_({headers:I,status:s.status,statusText:T,url:s.responseURL||e.url}),l},f=this.maybePropagateTrace(()=>{let{headers:T,status:I,statusText:R,url:W}=c(),Y=null;204!==I&&(Y=typeof s.response>"u"?s.responseText:s.response),0===I&&(I=Y?200:0);let K=I>=200&&I<300;if("json"===e.responseType&&"string"==typeof Y){const ee=Y;Y=Y.replace(dse,"");try{Y=""!==Y?JSON.parse(Y):null}catch(ie){Y=ee,K&&(K=!1,Y={error:ie,text:Y})}}K?(r.next(new ff({body:Y,headers:T,status:I,statusText:R,url:W||void 0})),r.complete()):r.error(new zl({error:Y,headers:T,status:I,statusText:R,url:W||void 0}))}),m=this.maybePropagateTrace(T=>{const{url:I}=c(),R=new zl({error:T,status:s.status||0,statusText:s.statusText||"Unknown Error",url:I||void 0});r.error(R)});let g=m;e.timeout&&(g=this.maybePropagateTrace(T=>{const{url:I}=c(),R=new zl({error:new DOMException("Request timed out","TimeoutError"),status:s.status||0,statusText:s.statusText||"Request timeout",url:I||void 0});r.error(R)}));let _=!1;const w=this.maybePropagateTrace(T=>{_||(r.next(c()),_=!0);let I={type:_a.DownloadProgress,loaded:T.loaded};T.lengthComputable&&(I.total=T.total),"text"===e.responseType&&s.responseText&&(I.partialText=s.responseText),r.next(I)}),k=this.maybePropagateTrace(T=>{let I={type:_a.UploadProgress,loaded:T.loaded};T.lengthComputable&&(I.total=T.total),r.next(I)});return s.addEventListener("load",f),s.addEventListener("error",m),s.addEventListener("timeout",g),s.addEventListener("abort",m),e.reportProgress&&(s.addEventListener("progress",w),null!==a&&s.upload&&s.upload.addEventListener("progress",k)),s.send(a),r.next({type:_a.Sent}),()=>{s.removeEventListener("error",m),s.removeEventListener("abort",m),s.removeEventListener("load",f),s.removeEventListener("timeout",g),e.reportProgress&&(s.removeEventListener("progress",w),null!==a&&s.upload&&s.upload.removeEventListener("progress",k)),s.readyState!==s.DONE&&s.abort()}})))}static \u0275fac=function(i){return new(i||t)(ce(YM))};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function _L(t,n){return n(t)}function use(t,n){return(e,i)=>n.intercept(e,{handle:o=>t(o,i)})}const fse=new Z(""),pf=new Z("",{factory:()=>[]}),pse=new Z(""),bL=new Z("",{factory:()=>!0});function mse(){let t=null;return(n,e)=>{null===t&&(t=(D(fse,{optional:!0})??[]).reduceRight(use,_L));const i=D(hm);if(D(bL)){const r=i.add();return t(n,e).pipe(B_(r))}return t(n,e)}}let U_=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:function(i){let o=null;return o=i?new(i||t):ce(gL),o},providedIn:"root"})}return t})(),wx=(()=>{class t{backend;injector;chain=null;pendingTasks=D(hm);contributeToStability=D(bL);constructor(e,i){this.backend=e,this.injector=i}handle(e){if(null===this.chain){const i=Array.from(new Set([...this.injector.get(pf),...this.injector.get(pse,[])]));this.chain=i.reduceRight((o,r)=>function hse(t,n,e){return(i,o)=>Qi(e,()=>n(i,r=>t(r,o)))}(o,r,this.injector),_L)}if(this.contributeToStability){const i=this.pendingTasks.add();return this.chain(e,o=>this.backend.handle(o)).pipe(B_(i))}return this.chain(e,i=>this.backend.handle(i))}static \u0275fac=function(i){return new(i||t)(ce(U_),ce(zn))};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),xx=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:function(i){let o=null;return o=i?new(i||t):ce(wx),o},providedIn:"root"})}return t})();function Sx(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,credentials:t.credentials,transferCache:t.transferCache,timeout:t.timeout,keepalive:t.keepalive,priority:t.priority,cache:t.cache,mode:t.mode,redirect:t.redirect,integrity:t.integrity,referrer:t.referrer,referrerPolicy:t.referrerPolicy}}let ba=(()=>{class t{handler;constructor(e){this.handler=e}request(e,i,o={}){let r;if(e instanceof hf)r=e;else{let l,c;l=o.headers instanceof Uo?o.headers:new Uo(o.headers),o.params&&(c=o.params instanceof ga?o.params:new ga({fromObject:o.params})),r=new hf(e,i,void 0!==o.body?o.body:null,{headers:l,context:o.context,params:c,reportProgress:o.reportProgress,responseType:o.responseType||"json",withCredentials:o.withCredentials,transferCache:o.transferCache,keepalive:o.keepalive,priority:o.priority,cache:o.cache,mode:o.mode,redirect:o.redirect,credentials:o.credentials,referrer:o.referrer,referrerPolicy:o.referrerPolicy,integrity:o.integrity,timeout:o.timeout})}const s=ae(r).pipe(cf(l=>this.handler.handle(l)));if(e instanceof hf||"events"===o.observe)return s;const a=s.pipe(Tn(l=>l instanceof ff));switch(o.observe||"body"){case"body":switch(r.responseType){case"arraybuffer":return a.pipe(Se(l=>{if(null!==l.body&&!(l.body instanceof ArrayBuffer))throw new X(2806,!1);return l.body}));case"blob":return a.pipe(Se(l=>{if(null!==l.body&&!(l.body instanceof Blob))throw new X(2807,!1);return l.body}));case"text":return a.pipe(Se(l=>{if(null!==l.body&&"string"!=typeof l.body)throw new X(2808,!1);return l.body}));default:return a.pipe(Se(l=>l.body))}case"response":return a;default:throw new X(2809,!1)}}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 ga).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,Sx(o,i))}post(e,i,o={}){return this.request("POST",e,Sx(o,i))}put(e,i,o={}){return this.request("PUT",e,Sx(o,i))}static \u0275fac=function(i){return new(i||t)(ce(xx))};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const yL=new Z("",{factory:()=>!0}),CL=new Z("",{factory:()=>"XSRF-TOKEN"}),wL=new Z("",{factory:()=>"X-XSRF-TOKEN"});let Cse=(()=>{class t{cookieName=D(CL);doc=D(et);lastCookieString="";lastToken=null;parseCount=0;getToken(){const e=this.doc.cookie||"";return e!==this.lastCookieString&&(this.parseCount++,this.lastToken=KM(e,this.cookieName),this.lastCookieString=e),this.lastToken}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),wse=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:function(i){let o=null;return o=i?new(i||t):ce(Cse),o},providedIn:"root"})}return t})();function xse(t,n){if(!D(yL)||"GET"===t.method||"HEAD"===t.method)return n(t);try{const o=D(pm).href,{origin:r}=new URL(o),{origin:s}=new URL(t.url,r);if(r!==s)return n(t)}catch{return n(t)}const e=D(wse).getToken(),i=D(wL);return null!=e&&!t.headers.has(i)&&(t=t.clone({headers:t.headers.set(i,e)})),n(t)}var va=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}(va||{});function $l(t,n){return{\u0275kind:t,\u0275providers:n}}function Sse(...t){const n=[ba,wx,{provide:xx,useExisting:wx},{provide:U_,useFactory:()=>D(mL,{optional:!0})??D(gL)},{provide:pf,useValue:xse,multi:!0}];for(const e of t)n.push(...e.\u0275providers);return Hu(n)}const xL=new Z("");function jr(t){return!!t&&(t instanceof Ft||cn(t.lift)&&cn(t.subscribe))}const{isArray:Dse}=Array,{getPrototypeOf:Mse,prototype:Tse,keys:Ese}=Object;function SL(t){if(1===t.length){const n=t[0];if(Dse(n))return{args:n,keys:null};if(function Pse(t){return t&&"object"==typeof t&&Mse(t)===Tse}(n)){const e=Ese(n);return{args:e.map(i=>n[i]),keys:e}}}return{args:t,keys:null}}const{isArray:Ise}=Array;function kL(t){return Se(n=>function Ose(t,n){return Ise(n)?t(...n):t(n)}(t,n))}function DL(t,n){return t.reduce((e,i,o)=>(e[i]=n[o],e),{})}function kx(...t){const n=df(t),e=rL(t),{args:i,keys:o}=SL(t);if(0===i.length)return Kn([],n);const r=new Ft(function Ase(t,n,e=Ga){return i=>{ML(n,()=>{const{length:o}=t,r=new Array(o);let s=o,a=o;for(let l=0;l{const c=Kn(t[l],n);let f=!1;c.subscribe(dn(i,m=>{r[l]=m,f||(f=!0,a--),a||i.next(e(r.slice()))},()=>{--s||i.complete()}))},i)},i)}}(i,n,o?s=>DL(o,s):Ga));return e?r.pipe(kL(e)):r}function ML(t,n,e){t?Ms(e,t,n):n()}const Dx=ty(t=>function(){t(this),this.name="EmptyError",this.message="no elements in sequence"});function Vd(t=1/0){return It(Ga,t)}function Ts(...t){return function Rse(){return Vd(1)}()(Kn(t,df(t)))}function ya(t){return new Ft(n=>{ji(t()).subscribe(n)})}const Oi=new Ft(t=>t.complete());function mr(t,n){const e=cn(t)?t:()=>t,i=o=>o.error(e());return new Ft(n?o=>n.schedule(i,0,o):i)}function Cn(t){return t<=0?()=>Oi:Mn((n,e)=>{let i=0;n.subscribe(dn(e,o=>{++i<=t&&(e.next(o),t<=i&&e.complete())}))})}function Bse(t=Vse){return Mn((n,e)=>{let i=!1;n.subscribe(dn(e,o=>{i=!0,e.next(o)},()=>i?e.complete():e.error(t())))})}function Vse(){return new Dx}function Ur(t,n){const e=arguments.length>=2;return i=>i.pipe(t?Tn((o,r)=>t(o,r,i)):Ga,Cn(1),e?function Lse(t){return Mn((n,e)=>{let i=!1;n.subscribe(dn(e,o=>{i=!0,e.next(o)},()=>{i||e.next(t),e.complete()}))})}(n):Bse(()=>new Dx))}function si(...t){const n=df(t);return Mn((e,i)=>{(n?Ts(t,e,n):Ts(t,e)).subscribe(i)})}function fn(t){return Mn((n,e)=>{ji(t).subscribe(dn(e,()=>e.complete(),Np)),!e.closed&&n.subscribe(e)})}function ai(t,n,e){const i=cn(t)||n||e?{next:t,error:n,complete:e}:t;return i?Mn((o,r)=>{var s;null===(s=i.subscribe)||void 0===s||s.call(i);let a=!0;o.subscribe(dn(r,l=>{var c;null===(c=i.next)||void 0===c||c.call(i,l),r.next(l)},()=>{var l;a=!1,null===(l=i.complete)||void 0===l||l.call(i),r.complete()},l=>{var c;a=!1,null===(c=i.error)||void 0===c||c.call(i,l),r.error(l)},()=>{var l,c;a&&(null===(l=i.unsubscribe)||void 0===l||l.call(i)),null===(c=i.finalize)||void 0===c||c.call(i)}))}):Ga}function TL(t){return t<=0?()=>Oi:Mn((n,e)=>{let i=[];n.subscribe(dn(e,o=>{i.push(o),t{for(const o of i)e.next(o);e.complete()},void 0,()=>{i=null}))})}function Ui(t){return Mn((n,e)=>{let r,i=null,o=!1;i=n.subscribe(dn(e,void 0,void 0,s=>{r=ji(t(s,Ui(t)(n))),i?(i.unsubscribe(),i=null,r.subscribe(e)):o=!0})),o&&(i.unsubscribe(),i=null,r.subscribe(e))})}let Zse=(()=>{class t{_doc;constructor(e){this._doc=e}getTitle(){return this._doc.title}setTitle(e){this._doc.title=e||""}static \u0275fac=function(i){return new(i||t)(ce(et))};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Mx=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:function(i){let o=null;return o=i?new(i||t):ce(tae),o},providedIn:"root"})}return t})(),tae=(()=>{class t extends Mx{_doc;constructor(e){super(),this._doc=e}sanitize(e,i){if(null==i)return null;switch(e){case bi.NONE:return i;case bi.HTML:return Fr(i,"HTML")?Mo(i):eE(this._doc,String(i)).toString();case bi.STYLE:return Fr(i,"Style")?Mo(i):i;case bi.SCRIPT:if(Fr(i,"Script"))return Mo(i);throw new X(5200,!1);case bi.URL:return Fr(i,"URL")?Mo(i):ch(String(i));case bi.RESOURCE_URL:if(Fr(i,"ResourceURL"))return Mo(i);throw new X(5201,!1);default:throw new X(5202,!1)}}bypassSecurityTrustHtml(e){return function M9(t){return new C9(t)}(e)}bypassSecurityTrustStyle(e){return function T9(t){return new w9(t)}(e)}bypassSecurityTrustScript(e){return function E9(t){return new x9(t)}(e)}bypassSecurityTrustUrl(e){return function P9(t){return new S9(t)}(e)}bypassSecurityTrustResourceUrl(e){return function I9(t){return new k9(t)}(e)}static \u0275fac=function(i){return new(i||t)(ce(et))};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Ke="primary",gf=Symbol("RouteTitle");class nae{params;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 Hd(t){return new nae(t)}function Tx(t,n,e){for(let i=0;it.length||"full"===e.pathMatch&&(n.hasChildren()||i.lengtht.length||"full"===e.pathMatch&&n.hasChildren()&&"**"!==e.path)return null;const a={};return Tx(r,t.slice(0,r.length),a)&&Tx(s,t.slice(t.length-s.length),a)?{consumed:t,posParams:a}:null}function z_(t){return new Promise((n,e)=>{t.pipe(Ur()).subscribe({next:i=>n(i),error:i=>e(i)})})}function zr(t,n){const e=t?Ex(t):void 0,i=n?Ex(n):void 0;if(!e||!i||e.length!=i.length)return!1;let o;for(let r=0;ri[r]===o)}return t===n}function Wl(t){return jr(t)?t:Rh(t)?Kn(Promise.resolve(t)):ae(t)}function FL(t){return jr(t)?z_(t):Promise.resolve(t)}const sae={exact:function BL(t,n,e){if(!Gl(t.segments,n.segments)||!W_(t.segments,n.segments,e)||t.numberOfChildren!==n.numberOfChildren)return!1;for(const i in n.children)if(!t.children[i]||!BL(t.children[i],n.children[i],e))return!1;return!0},subset:VL},NL={exact:function lae(t,n){return zr(t,n)},subset:function cae(t,n){return Object.keys(n).length<=Object.keys(t).length&&Object.keys(n).every(e=>RL(t[e],n[e]))},ignored:()=>!0},LL={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},$_={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};function Px(t,n,e){return sae[e.paths](t.root,n.root,e.matrixParams)&&NL[e.queryParams](t.queryParams,n.queryParams)&&!("exact"===e.fragment&&t.fragment!==n.fragment)}function VL(t,n,e){return HL(t,n,n.segments,e)}function HL(t,n,e,i){if(t.segments.length>e.length){const o=t.segments.slice(0,e.length);return!(!Gl(o,e)||n.hasChildren()||!W_(o,e,i))}if(t.segments.length===e.length){if(!Gl(t.segments,e)||!W_(t.segments,e,i))return!1;for(const o in n.children)if(!t.children[o]||!VL(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!!(Gl(t.segments,o)&&W_(t.segments,o,i)&&t.children[Ke])&&HL(t.children[Ke],n,r,i)}}function W_(t,n,e){return n.every((i,o)=>NL[e](t[o].parameters,i.parameters))}class gr{root;queryParams;fragment;_queryParamMap;constructor(n=new Wt([],{}),e={},i=null){this.root=n,this.queryParams=e,this.fragment=i}get queryParamMap(){return this._queryParamMap??=Hd(this.queryParams),this._queryParamMap}toString(){return hae.serialize(this)}}class Wt{segments;children;parent=null;constructor(n,e){this.segments=n,this.children=e,Object.values(e).forEach(i=>i.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return G_(this)}}class _f{path;parameters;_parameterMap;constructor(n,e){this.path=n,this.parameters=e}get parameterMap(){return this._parameterMap??=Hd(this.parameters),this._parameterMap}toString(){return zL(this)}}function Gl(t,n){return t.length===n.length&&t.every((e,i)=>e.path===n[i].path)}let jd=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:()=>new bf,providedIn:"root"})}return t})();class bf{parse(n){const e=new xae(n);return new gr(e.parseRootSegment(),e.parseQueryParams(),e.parseFragment())}serialize(n){const e=`/${vf(n.root,!0)}`,i=function mae(t){const n=Object.entries(t).map(([e,i])=>Array.isArray(i)?i.map(o=>`${q_(e)}=${q_(o)}`).join("&"):`${q_(e)}=${q_(i)}`).filter(e=>e);return n.length?`?${n.join("&")}`:""}(n.queryParams);return`${e}${i}${"string"==typeof n.fragment?`#${function fae(t){return encodeURI(t)}(n.fragment)}`:""}`}}const hae=new bf;function G_(t){return t.segments.map(n=>zL(n)).join("/")}function vf(t,n){if(!t.hasChildren())return G_(t);if(n){const e=t.children[Ke]?vf(t.children[Ke],!1):"",i=[];return Object.entries(t.children).forEach(([o,r])=>{o!==Ke&&i.push(`${o}:${vf(r,!1)}`)}),i.length>0?`${e}(${i.join("//")})`:e}{const e=function uae(t,n){let e=[];return Object.entries(t.children).forEach(([i,o])=>{i===Ke&&(e=e.concat(n(o,i)))}),Object.entries(t.children).forEach(([i,o])=>{i!==Ke&&(e=e.concat(n(o,i)))}),e}(t,(i,o)=>o===Ke?[vf(t.children[Ke],!1)]:[`${o}:${vf(i,!1)}`]);return 1===Object.keys(t.children).length&&null!=t.children[Ke]?`${G_(t)}/${e[0]}`:`${G_(t)}/(${e.join("//")})`}}function jL(t){return encodeURIComponent(t).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function q_(t){return jL(t).replace(/%3B/gi,";")}function Ix(t){return jL(t).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function K_(t){return decodeURIComponent(t)}function UL(t){return K_(t.replace(/\+/g,"%20"))}function zL(t){return`${Ix(t.path)}${function pae(t){return Object.entries(t).map(([n,e])=>`;${Ix(n)}=${Ix(e)}`).join("")}(t.parameters)}`}const gae=/^[^\/()?;#]+/;function Ox(t){const n=t.match(gae);return n?n[0]:""}const _ae=/^[^\/()?;=#]+/,vae=/^[^=?&#]+/,Cae=/^[^&#]+/;class xae{url;remaining;constructor(n){this.url=n,this.remaining=n}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new Wt([],{}):new Wt([],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(n=0){if(n>50)throw new X(4010,!1);if(""===this.remaining)return{};this.consumeOptional("/");const e=[];for(this.peekStartsWith("(")||e.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),e.push(this.parseSegment());let i={};this.peekStartsWith("/(")&&(this.capture("/"),i=this.parseParens(!0,n));let o={};return this.peekStartsWith("(")&&(o=this.parseParens(!1,n)),(e.length>0||Object.keys(i).length>0)&&(o[Ke]=new Wt(e,i)),o}parseSegment(){const n=Ox(this.remaining);if(""===n&&this.peekStartsWith(";"))throw new X(4009,!1);return this.capture(n),new _f(K_(n),this.parseMatrixParams())}parseMatrixParams(){const n={};for(;this.consumeOptional(";");)this.parseParam(n);return n}parseParam(n){const e=function bae(t){const n=t.match(_ae);return n?n[0]:""}(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){const o=Ox(this.remaining);o&&(i=o,this.capture(i))}n[K_(e)]=K_(i)}parseQueryParam(n){const e=function yae(t){const n=t.match(vae);return n?n[0]:""}(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){const s=function wae(t){const n=t.match(Cae);return n?n[0]:""}(this.remaining);s&&(i=s,this.capture(i))}const o=UL(e),r=UL(i);if(n.hasOwnProperty(o)){let s=n[o];Array.isArray(s)||(s=[s],n[o]=s),s.push(r)}else n[o]=r}parseParens(n,e){const i={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const o=Ox(this.remaining),r=this.remaining[o.length];if("/"!==r&&")"!==r&&";"!==r)throw new X(4010,!1);let s;o.indexOf(":")>-1?(s=o.slice(0,o.indexOf(":")),this.capture(s),this.capture(":")):n&&(s=Ke);const a=this.parseChildren(e+1);i[s??Ke]=1===Object.keys(a).length&&a[Ke]?a[Ke]:new Wt([],a),this.consumeOptional("//")}return i}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 X(4011,!1)}}function $L(t){return t.segments.length>0?new Wt([],{[Ke]:t}):t}function WL(t){const n={};for(const[i,o]of Object.entries(t.children)){const r=WL(o);if(i===Ke&&0===r.segments.length&&r.hasChildren())for(const[s,a]of Object.entries(r.children))n[s]=a;else(r.segments.length>0||r.hasChildren())&&(n[i]=r)}return function Sae(t){if(1===t.numberOfChildren&&t.children[Ke]){const n=t.children[Ke];return new Wt(t.segments.concat(n.segments),n.children)}return t}(new Wt(t.segments,n))}function ql(t){return t instanceof gr}function GL(t){let n;const o=$L(function e(r){const s={};for(const l of r.children){const c=e(l);s[l.outlet]=c}const a=new Wt(r.url,s);return r===t&&(n=a),a}(t.root));return n??o}function qL(t,n,e,i,o){let r=t;for(;r.parent;)r=r.parent;if(0===n.length)return Ax(r,r,r,e,i,o);const s=function Dae(t){if("string"==typeof t[0]&&1===t.length&&"/"===t[0])return new XL(!0,0,t);let n=0,e=!1;const i=t.reduce((o,r,s)=>{if("object"==typeof r&&null!=r){if(r.outlets){const a={};return Object.entries(r.outlets).forEach(([l,c])=>{a[l]="string"==typeof c?c.split("/"):c}),[...o,{outlets:a}]}if(r.segmentPath)return[...o,r.segmentPath]}return"string"!=typeof r?[...o,r]:0===s?(r.split("/").forEach((a,l)=>{0==l&&"."===a||(0==l&&""===a?e=!0:".."===a?n++:""!=a&&o.push(a))}),o):[...o,r]},[]);return new XL(e,n,i)}(n);if(s.toRoot())return Ax(r,r,new Wt([],{}),e,i,o);const a=function Mae(t,n,e){if(t.isAbsolute)return new X_(n,!0,0);if(!e)return new X_(n,!1,NaN);if(null===e.parent)return new X_(e,!0,0);const i=Y_(t.commands[0])?0:1;return function Tae(t,n,e){let i=t,o=n,r=e;for(;r>o;){if(r-=o,i=i.parent,!i)throw new X(4005,!1);o=i.segments.length}return new X_(i,!1,o-r)}(e,e.segments.length-1+i,t.numberOfDoubleDots)}(s,r,t),l=a.processChildren?Cf(a.segmentGroup,a.index,s.commands):ZL(a.segmentGroup,a.index,s.commands);return Ax(r,a.segmentGroup,l,e,i,o)}function Y_(t){return"object"==typeof t&&null!=t&&!t.outlets&&!t.segmentPath}function yf(t){return"object"==typeof t&&null!=t&&t.outlets}function KL(t,n,e){t||="\u0275";const i=new gr;return i.queryParams={[t]:n},e.parse(e.serialize(i)).queryParams[t]}function Ax(t,n,e,i,o,r){const s={};for(const[c,f]of Object.entries(i??{}))s[c]=Array.isArray(f)?f.map(m=>KL(c,m,r)):KL(c,f,r);let a;a=t===n?e:YL(t,n,e);const l=$L(WL(a));return new gr(l,s,o)}function YL(t,n,e){const i={};return Object.entries(t.children).forEach(([o,r])=>{i[o]=r===n?e:YL(r,n,e)}),new Wt(t.segments,i)}class XL{isAbsolute;numberOfDoubleDots;commands;constructor(n,e,i){if(this.isAbsolute=n,this.numberOfDoubleDots=e,this.commands=i,n&&i.length>0&&Y_(i[0]))throw new X(4003,!1);const o=i.find(yf);if(o&&o!==function rae(t){return t.length>0?t[t.length-1]:null}(i))throw new X(4004,!1)}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class X_{segmentGroup;processChildren;index;constructor(n,e,i){this.segmentGroup=n,this.processChildren=e,this.index=i}}function ZL(t,n,e){if(t??=new Wt([],{}),0===t.segments.length&&t.hasChildren())return Cf(t,n,e);const i=function Pae(t,n,e){let i=0,o=n;const r={match:!1,pathIndex:0,commandIndex:0};for(;o=e.length)return r;const s=t.segments[o],a=e[i];if(yf(a))break;const l=`${a}`,c=i0&&void 0===l)break;if(l&&c&&"object"==typeof c&&void 0===c.outlets){if(!JL(l,c,s))return r;i+=2}else{if(!JL(l,{},s))return r;i++}o++}return{match:!0,pathIndex:o,commandIndex:i}}(t,n,e),o=e.slice(i.commandIndex);if(i.match&&i.pathIndexr!==Ke)&&t.children[Ke]&&1===t.numberOfChildren&&0===t.children[Ke].segments.length){const r=Cf(t.children[Ke],n,e);return new Wt(t.segments,r.children)}return Object.entries(i).forEach(([r,s])=>{"string"==typeof s&&(s=[s]),null!==s&&(o[r]=ZL(t.children[r],n,s))}),Object.entries(t.children).forEach(([r,s])=>{void 0===i[r]&&(o[r]=s)}),new Wt(t.segments,o)}}function Rx(t,n,e){const i=t.segments.slice(0,n);let o=0;for(;o{"string"==typeof i&&(i=[i]),null!==i&&(n[e]=Rx(new Wt([],{}),0,i))}),n}function QL(t){const n={};return Object.entries(t).forEach(([e,i])=>n[e]=`${i}`),n}function JL(t,n,e){return t==e.path&&zr(n,e.parameters)}const wf="imperative";var bt=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}(bt||{});class $r{id;url;constructor(n,e){this.id=n,this.url=e}}class Z_ extends $r{type=bt.NavigationStart;navigationTrigger;restoredState;constructor(n,e,i="imperative",o=null){super(n,e),this.navigationTrigger=i,this.restoredState=o}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class Wr extends $r{urlAfterRedirects;type=bt.NavigationEnd;constructor(n,e,i){super(n,e),this.urlAfterRedirects=i}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}var vo=function(t){return t[t.Redirect=0]="Redirect",t[t.SupersededByNewNavigation=1]="SupersededByNewNavigation",t[t.NoDataFromResolver=2]="NoDataFromResolver",t[t.GuardRejected=3]="GuardRejected",t[t.Aborted=4]="Aborted",t}(vo||{}),Q_=function(t){return t[t.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",t[t.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",t}(Q_||{});class wa extends $r{reason;code;type=bt.NavigationCancel;constructor(n,e,i,o){super(n,e),this.reason=i,this.code=o}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class Ud extends $r{reason;code;type=bt.NavigationSkipped;constructor(n,e,i,o){super(n,e),this.reason=i,this.code=o}}class Fx extends $r{error;target;type=bt.NavigationError;constructor(n,e,i,o){super(n,e),this.error=i,this.target=o}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class e3 extends $r{urlAfterRedirects;state;type=bt.RoutesRecognized;constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Aae extends $r{urlAfterRedirects;state;type=bt.GuardsCheckStart;constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Rae extends $r{urlAfterRedirects;state;shouldActivate;type=bt.GuardsCheckEnd;constructor(n,e,i,o,r){super(n,e),this.urlAfterRedirects=i,this.state=o,this.shouldActivate=r}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class Fae extends $r{urlAfterRedirects;state;type=bt.ResolveStart;constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Nae extends $r{urlAfterRedirects;state;type=bt.ResolveEnd;constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Lae{route;type=bt.RouteConfigLoadStart;constructor(n){this.route=n}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class Bae{route;type=bt.RouteConfigLoadEnd;constructor(n){this.route=n}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class Vae{snapshot;type=bt.ChildActivationStart;constructor(n){this.snapshot=n}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Hae{snapshot;type=bt.ChildActivationEnd;constructor(n){this.snapshot=n}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class jae{snapshot;type=bt.ActivationStart;constructor(n){this.snapshot=n}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Uae{snapshot;type=bt.ActivationEnd;constructor(n){this.snapshot=n}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class t3{routerEvent;position;anchor;scrollBehavior;type=bt.Scroll;constructor(n,e,i,o){this.routerEvent=n,this.position=e,this.anchor=i,this.scrollBehavior=o}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}class Nx{}class n3{}class J_{url;navigationBehaviorOptions;constructor(n,e){this.url=n,this.navigationBehaviorOptions=e}}class $ae{rootInjector;outlet=null;route=null;children;attachRef=null;get injector(){return this.route?.snapshot._environmentInjector??this.rootInjector}constructor(n){this.rootInjector=n,this.children=new xf(this.rootInjector)}}let xf=(()=>{class t{rootInjector;contexts=new Map;constructor(e){this.rootInjector=e}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 $ae(this.rootInjector),this.contexts.set(e,i)),i}getContext(e){return this.contexts.get(e)||null}static \u0275fac=function(i){return new(i||t)(ce(zn))};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();class i3{_root;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=Lx(n,this._root);return e?e.children.map(i=>i.value):[]}firstChild(n){const e=Lx(n,this._root);return e&&e.children.length>0?e.children[0].value:null}siblings(n){const e=Bx(n,this._root);return e.length<2?[]:e[e.length-2].children.map(o=>o.value).filter(o=>o!==n)}pathFromRoot(n){return Bx(n,this._root).map(e=>e.value)}}function Lx(t,n){if(t===n.value)return n;for(const e of n.children){const i=Lx(t,e);if(i)return i}return null}function Bx(t,n){if(t===n.value)return[n];for(const e of n.children){const i=Bx(t,e);if(i.length)return i.unshift(n),i}return[]}class _r{value;children;constructor(n,e){this.value=n,this.children=e}toString(){return`TreeNode(${this.value})`}}function zd(t){const n={};return t&&t.children.forEach(e=>n[e.value.outlet]=e),n}class o3 extends i3{snapshot;constructor(n,e){super(n),this.snapshot=e,jx(this,n)}toString(){return this.snapshot.toString()}}function r3(t,n){const e=function Wae(t,n){const s=new Hx([],{},{},"",{},Ke,t,null,{},n);return new s3("",new _r(s,[]))}(t,n),i=new ki([new _f("",{})]),o=new ki({}),r=new ki({}),s=new ki({}),a=new ki(""),l=new Ai(i,o,s,a,r,Ke,t,e.root);return l.snapshot=e.root,new o3(new _r(l,[]),e)}class Ai{urlSubject;paramsSubject;queryParamsSubject;fragmentSubject;dataSubject;outlet;component;snapshot;_futureSnapshot;_routerState;_paramMap;_queryParamMap;title;url;params;queryParams;fragment;data;constructor(n,e,i,o,r,s,a,l){this.urlSubject=n,this.paramsSubject=e,this.queryParamsSubject=i,this.fragmentSubject=o,this.dataSubject=r,this.outlet=s,this.component=a,this._futureSnapshot=l,this.title=this.dataSubject?.pipe(Se(c=>c[gf]))??ae(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(Se(n=>Hd(n))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe(Se(n=>Hd(n))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function Vx(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&&l3(o)&&(i.resolve[gf]=o.title),i}class Hx{url;params;queryParams;fragment;data;outlet;component;routeConfig;_resolve;_resolvedData;_routerState;_paramMap;_queryParamMap;_environmentInjector;get title(){return this.data?.[gf]}constructor(n,e,i,o,r,s,a,l,c,f){this.url=n,this.params=e,this.queryParams=i,this.fragment=o,this.data=r,this.outlet=s,this.component=a,this.routeConfig=l,this._resolve=c,this._environmentInjector=f}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??=Hd(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=Hd(this.queryParams),this._queryParamMap}toString(){return`Route(url:'${this.url.map(i=>i.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class s3 extends i3{url;constructor(n,e){super(e),this.url=n,jx(this,e)}toString(){return a3(this._root)}}function jx(t,n){n.value._routerState=t,n.children.forEach(e=>jx(t,e))}function a3(t){const n=t.children.length>0?` { ${t.children.map(a3).join(", ")} } `:"";return`${t.value}${n}`}function Ux(t){if(t.snapshot){const n=t.snapshot,e=t._futureSnapshot;t.snapshot=e,zr(n.queryParams,e.queryParams)||t.queryParamsSubject.next(e.queryParams),n.fragment!==e.fragment&&t.fragmentSubject.next(e.fragment),zr(n.params,e.params)||t.paramsSubject.next(e.params),function oae(t,n){if(t.length!==n.length)return!1;for(let e=0;ezr(e.parameters,n[i].parameters))}(t.url,n.url);return e&&!(!t.parent!=!n.parent)&&(!t.parent||zx(t.parent,n.parent))}function l3(t){return"string"==typeof t.title||null===t.title}const Gae=new Z("");let eb=(()=>{class t{activated=null;get activatedComponentRef(){return this.activated}_activatedRoute=null;name=Ke;activateEvents=new we;deactivateEvents=new we;attachEvents=new we;detachEvents=new we;routerOutletData=ree();parentContexts=D(xf);location=D(Ei);changeDetector=D(Jt);inputBinder=D(tb,{optional:!0});supportsBindingToComponentInputs=!0;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 X(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new X(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new X(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 X(4013,!1);this._activatedRoute=e;const o=this.location,s=e.snapshot.component,a=this.parentContexts.getOrCreateContext(this.name).children,l=new qae(e,a,o.injector,this.routerOutletData);this.activated=o.createComponent(s,{index:o.length,injector:l,environmentInjector:i}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["router-outlet"]],inputs:{name:"name",routerOutletData:[1,"routerOutletData"]},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],features:[_i]})}return t})();class qae{route;childContexts;parent;outletData;constructor(n,e,i,o){this.route=n,this.childContexts=e,this.parent=i,this.outletData=o}get(n,e){return n===Ai?this.route:n===xf?this.childContexts:n===Gae?this.outletData:this.parent.get(n,e)}}const tb=new Z("");let c3=(()=>{class t{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=kx([i.queryParams,i.params,i.data]).pipe(tn(([r,s,a],l)=>(a={...r,...s,...a},0===l?ae(a):Promise.resolve(a)))).subscribe(r=>{if(!e.isActivated||!e.activatedComponentRef||e.activatedRoute!==i||null===i.component)return void this.unsubscribeFromRouteData(e);const s=function hte(t){const n=xt(t);if(!n)return null;const e=new Th(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(s)for(const{templateName:a}of s.inputs)e.activatedComponentRef.setInput(a,r[a]);else this.unsubscribeFromRouteData(e)});this.outletDataSubscriptions.set(e,o)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})(),d3=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["ng-component"]],exportAs:["emptyRouterOutlet"],decls:1,vars:0,template:function(i,o){1&i&&B(0,"router-outlet")},dependencies:[eb],encapsulation:2})}return t})();function $x(t){const n=t.children&&t.children.map($x),e=n?{...t,children:n}:{...t};return!e.component&&!e.loadComponent&&(n||e.loadChildren)&&e.outlet&&e.outlet!==Ke&&(e.component=d3),e}function Sf(t,n,e){if(e&&t.shouldReuseRoute(n.value,e.value.snapshot)){const i=e.value;i._futureSnapshot=n.value;const o=function Yae(t,n,e){return n.children.map(i=>{for(const o of e.children)if(t.shouldReuseRoute(i.value,o.value.snapshot))return Sf(t,i,o);return Sf(t,i)})}(t,n,e);return new _r(i,o)}{if(t.shouldAttach(n.value)){const r=t.retrieve(n.value);if(null!==r){const s=r.route;return s.value._futureSnapshot=n.value,s.children=n.children.map(a=>Sf(t,a)),s}}const i=function Xae(t){return new Ai(new ki(t.url),new ki(t.params),new ki(t.queryParams),new ki(t.fragment),new ki(t.data),t.outlet,t.component,t)}(n.value),o=n.children.map(r=>Sf(t,r));return new _r(i,o)}}class Wx{redirectTo;navigationBehaviorOptions;constructor(n,e){this.redirectTo=n,this.navigationBehaviorOptions=e}}const u3="ngNavigationCancelingError";function nb(t,n){const{redirectTo:e,navigationBehaviorOptions:i}=ql(n)?{redirectTo:n,navigationBehaviorOptions:void 0}:n,o=h3(!1,vo.Redirect);return o.url=e,o.navigationBehaviorOptions=i,o}function h3(t,n){const e=new Error(`NavigationCancelingError: ${t||""}`);return e[u3]=!0,e.cancellationCode=n,e}function f3(t){return!!t&&t[u3]}class Qae{routeReuseStrategy;futureState;currState;forwardEvent;inputBindingEnabled;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),Ux(this.futureState.root),this.activateChildRoutes(e,i,n)}deactivateChildRoutes(n,e,i){const o=zd(e);n.children.forEach(r=>{const s=r.value.outlet;this.deactivateRoutes(r,o[s],i),delete o[s]}),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 s=i.getContext(o.outlet);s&&this.deactivateChildRoutes(n,e,s.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=zd(n);for(const s of Object.values(r))this.deactivateRouteAndItsChildren(s,o);if(i&&i.outlet){const s=i.outlet.detach(),a=i.children.onOutletDeactivated();this.routeReuseStrategy.store(n.value.snapshot,{componentRef:s,route:n,contexts:a})}}deactivateRouteAndOutlet(n,e){const i=e.getContext(n.value.outlet),o=i&&n.value.component?i.children:e,r=zd(n);for(const s of Object.values(r))this.deactivateRouteAndItsChildren(s,o);i&&(i.outlet&&(i.outlet.deactivate(),i.children.onOutletDeactivated()),i.attachRef=null,i.route=null)}activateChildRoutes(n,e,i){const o=zd(e);n.children.forEach(r=>{this.activateRoutes(r,o[r.value.outlet],i),this.forwardEvent(new Uae(r.value.snapshot))}),n.children.length&&this.forwardEvent(new Hae(n.value.snapshot))}activateRoutes(n,e,i){const o=n.value,r=e?e.value:null;if(Ux(o),o===r)if(o.component){const s=i.getOrCreateContext(o.outlet);this.activateChildRoutes(n,e,s.children)}else this.activateChildRoutes(n,e,i);else if(o.component){const s=i.getOrCreateContext(o.outlet);if(this.routeReuseStrategy.shouldAttach(o.snapshot)){const a=this.routeReuseStrategy.retrieve(o.snapshot);this.routeReuseStrategy.store(o.snapshot,null),s.children.onOutletReAttached(a.contexts),s.attachRef=a.componentRef,s.route=a.route.value,s.outlet&&s.outlet.attach(a.componentRef,a.route.value),Ux(a.route.value),this.activateChildRoutes(n,null,s.children)}else s.attachRef=null,s.route=o,s.outlet&&s.outlet.activateWith(o,s.injector),this.activateChildRoutes(n,null,s.children)}else this.activateChildRoutes(n,null,i)}}class p3{path;route;constructor(n){this.path=n,this.route=this.path[this.path.length-1]}}class ib{component;route;constructor(n,e){this.component=n,this.route=e}}function Jae(t,n,e){const i=t._root;return kf(i,n?n._root:null,e,[i.value])}function $d(t,n){const e=Symbol(),i=n.get(t,e);return i===e?"function"!=typeof t||function ij(t){return null!==Up(t)}(t)?n.get(t):t:i}function kf(t,n,e,i,o={canDeactivateChecks:[],canActivateChecks:[]}){const r=zd(n);return t.children.forEach(s=>{(function tle(t,n,e,i,o={canDeactivateChecks:[],canActivateChecks:[]}){const r=t.value,s=n?n.value:null,a=e?e.getContext(t.value.outlet):null;if(s&&r.routeConfig===s.routeConfig){const l=function nle(t,n,e){if("function"==typeof e)return Qi(n._environmentInjector,()=>e(t,n));switch(e){case"pathParamsChange":return!Gl(t.url,n.url);case"pathParamsOrQueryParamsChange":return!Gl(t.url,n.url)||!zr(t.queryParams,n.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!zx(t,n)||!zr(t.queryParams,n.queryParams);default:return!zx(t,n)}}(s,r,r.routeConfig.runGuardsAndResolvers);l?o.canActivateChecks.push(new p3(i)):(r.data=s.data,r._resolvedData=s._resolvedData),kf(t,n,r.component?a?a.children:null:e,i,o),l&&a&&a.outlet&&a.outlet.isActivated&&o.canDeactivateChecks.push(new ib(a.outlet.component,s))}else s&&Df(n,a,o),o.canActivateChecks.push(new p3(i)),kf(t,null,r.component?a?a.children:null:e,i,o)})(s,r[s.value.outlet],e,i.concat([s.value]),o),delete r[s.value.outlet]}),Object.entries(r).forEach(([s,a])=>Df(a,e.getContext(s),o)),o}function Df(t,n,e){const i=zd(t),o=t.value;Object.entries(i).forEach(([r,s])=>{Df(s,o.component?n?n.children.getContext(r):null:n,e)}),e.canDeactivateChecks.push(new ib(o.component&&n&&n.outlet&&n.outlet.isActivated?n.outlet.component:null,o))}function Mf(t){return"function"==typeof t}function m3(t){return t instanceof Dx||"EmptyError"===t?.name}const ob=Symbol("INITIAL_VALUE");function Wd(){return tn(t=>kx(t.map(n=>n.pipe(Cn(1),si(ob)))).pipe(Se(n=>{for(const e of n)if(!0!==e){if(e===ob)return ob;if(!1===e||cle(e))return e}return!0}),Tn(n=>n!==ob),Cn(1)))}function cle(t){return ql(t)||t instanceof Wx}function g3(t){return t.aborted?ae(void 0).pipe(Cn(1)):new Ft(n=>{const e=()=>{n.next(),n.complete()};return t.addEventListener("abort",e),()=>t.removeEventListener("abort",e)})}function _3(t){return fn(g3(t))}function b3(t){return function z6(...t){return ND(t)}(ai(n=>{if("boolean"!=typeof n)throw nb(0,n)}),Se(n=>!0===n))}class Es extends Error{segmentGroup;constructor(n){super(),this.segmentGroup=n||null,Object.setPrototypeOf(this,Es.prototype)}}class Tf extends Error{urlTree;constructor(n){super(),this.urlTree=n,Object.setPrototypeOf(this,Tf.prototype)}}function yle(t){throw new X(4e3,!1)}class wle{urlSerializer;urlTree;constructor(n,e){this.urlSerializer=n,this.urlTree=e}lineralizeSegments(n,e){return Et(function*(){let i=[],o=e.root;for(;;){if(i=i.concat(o.segments),0===o.numberOfChildren)return i;if(o.numberOfChildren>1||!o.children[Ke])throw yle();o=o.children[Ke]}})()}applyRedirectCommands(n,e,i,o,r){var s=this;return Et(function*(){const a=yield function xle(t,n,e){if("string"==typeof t)return Promise.resolve(t);const i=t;return z_(Wl(Qi(e,()=>i(n))))}(e,o,r);if(a instanceof gr)throw new Tf(a);const l=s.applyRedirectCreateUrlTree(a,s.urlSerializer.parse(a),n,i);if("/"===a[0])throw new Tf(l);return l})()}applyRedirectCreateUrlTree(n,e,i,o){const r=this.createSegmentGroup(n,e.root,i,o);return new gr(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[0]){const a=r.substring(1);i[o]=e[a]}else i[o]=r}),i}createSegmentGroup(n,e,i,o){const r=this.createSegments(n,e.segments,i,o);let s={};return Object.entries(e.children).forEach(([a,l])=>{s[a]=this.createSegmentGroup(n,l,i,o)}),new Wt(r,s)}createSegments(n,e,i,o){return e.map(r=>":"===r.path[0]?this.findPosParam(n,r,o):this.findOrReturn(r,i))}findPosParam(n,e,i){const o=i[e.path.substring(1)];if(!o)throw new X(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}}function Gr(t){return t.outlet||Ke}function Tle(t,n){const e=t.filter(i=>Gr(i)===n);return e.push(...t.filter(i=>Gr(i)!==n)),e}const Gx={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function v3(t){return{routeConfig:t.routeConfig,url:t.url,params:t.params,queryParams:t.queryParams,fragment:t.fragment,data:t.data,outlet:t.outlet,title:t.title,paramMap:t.paramMap,queryParamMap:t.queryParamMap}}function Ele(t,n,e,i,o,r,s){const a=y3(t,n,e);if(!a.matched)return ae(a);const l=v3(r(a));return i=function Sle(t,n){return t.providers&&!t._injector&&(t._injector=Mg(t.providers,n,`Route: ${t.path}`)),t._injector??n}(n,i),function vle(t,n,e,i,o,r){const s=n.canMatch;return s&&0!==s.length?ae(s.map(l=>{const c=$d(l,t);return Wl(function lle(t){return t&&Mf(t.canMatch)}(c)?c.canMatch(n,e,o):Qi(t,()=>c(n,e,o))).pipe(_3(r))})).pipe(Wd(),b3()):ae(!0)}(i,n,e,0,l,s).pipe(Se(c=>!0===c?a:{...Gx}))}function y3(t,n,e){if(""===n.path)return"full"===n.pathMatch&&(t.hasChildren()||e.length>0)?{...Gx}:{matched:!0,consumedSegments:[],remainingSegments:e,parameters:{},positionalParamSegments:{}};const o=(n.matcher||iae)(e,t,n);if(!o)return{...Gx};const r={};Object.entries(o.posParams??{}).forEach(([a,l])=>{r[a]=l.path});const s=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:s,positionalParamSegments:o.posParams??{}}}function C3(t,n,e,i){return e.length>0&&function Ole(t,n,e){return e.some(i=>rb(t,n,i)&&Gr(i)!==Ke)}(t,e,i)?{segmentGroup:new Wt(n,Ile(i,new Wt(e,t.children))),slicedSegments:[]}:0===e.length&&function Ale(t,n,e){return e.some(i=>rb(t,n,i))}(t,e,i)?{segmentGroup:new Wt(t.segments,Ple(t,e,i,t.children)),slicedSegments:e}:{segmentGroup:new Wt(t.segments,t.children),slicedSegments:e}}function Ple(t,n,e,i){const o={};for(const r of e)if(rb(t,n,r)&&!i[Gr(r)]){const s=new Wt([],{});o[Gr(r)]=s}return{...i,...o}}function Ile(t,n){const e={};e[Ke]=n;for(const i of t)if(""===i.path&&Gr(i)!==Ke){const o=new Wt([],{});e[Gr(i)]=o}return e}function rb(t,n,e){return(!(t.hasChildren()||n.length>0)||"full"!==e.pathMatch)&&""===e.path}class Fle{}function qx(){return(qx=Et(function*(t,n,e,i,o,r,s="emptyOnly",a){return new Ble(t,n,e,i,o,s,r,a).recognize()})).apply(this,arguments)}class Ble{injector;configLoader;rootComponentType;config;urlTree;paramsInheritanceStrategy;urlSerializer;abortSignal;applyRedirects;absoluteRedirectCount=0;allowRedirects=!0;constructor(n,e,i,o,r,s,a,l){this.injector=n,this.configLoader=e,this.rootComponentType=i,this.config=o,this.urlTree=r,this.paramsInheritanceStrategy=s,this.urlSerializer=a,this.abortSignal=l,this.applyRedirects=new wle(this.urlSerializer,this.urlTree)}noMatchError(n){return new X(4002,`'${n.segmentGroup}'`)}recognize(){var n=this;return Et(function*(){const e=C3(n.urlTree.root,[],[],n.config).segmentGroup,{children:i,rootSnapshot:o}=yield n.match(e),r=new _r(o,i),s=new s3("",r),a=function kae(t,n,e=null,i=null,o=new bf){return qL(GL(t),n,e,i,o)}(o,[],n.urlTree.queryParams,n.urlTree.fragment);return a.queryParams=n.urlTree.queryParams,s.url=n.urlSerializer.serialize(a),{state:s,tree:a}})()}match(n){var e=this;return Et(function*(){const i=new Hx([],Object.freeze({}),Object.freeze({...e.urlTree.queryParams}),e.urlTree.fragment,Object.freeze({}),Ke,e.rootComponentType,null,{},e.injector);try{return{children:yield e.processSegmentGroup(e.injector,e.config,n,Ke,i),rootSnapshot:i}}catch(o){if(o instanceof Tf)return e.urlTree=o.urlTree,e.match(o.urlTree.root);throw o instanceof Es?e.noMatchError(o):o}})()}processSegmentGroup(n,e,i,o,r){var s=this;return Et(function*(){if(0===i.segments.length&&i.hasChildren())return s.processChildren(n,e,i,r);const a=yield s.processSegment(n,e,i,i.segments,o,!0,r);return a instanceof _r?[a]:[]})()}processChildren(n,e,i,o){var r=this;return Et(function*(){const s=[];for(const c of Object.keys(i.children))"primary"===c?s.unshift(c):s.push(c);let a=[];for(const c of s){const f=i.children[c],m=Tle(e,c),g=yield r.processSegmentGroup(n,m,f,c,o);a.push(...g)}const l=w3(a);return function Vle(t){t.sort((n,e)=>n.value.outlet===Ke?-1:e.value.outlet===Ke?1:n.value.outlet.localeCompare(e.value.outlet))}(l),l})()}processSegment(n,e,i,o,r,s,a){var l=this;return Et(function*(){for(const c of e)try{return yield l.processSegmentAgainstRoute(c._injector??n,e,c,i,o,r,s,a)}catch(f){if(f instanceof Es||m3(f))continue;throw f}if(function Rle(t,n,e){return 0===n.length&&!t.children[e]}(i,o,r))return new Fle;throw new Es(i)})()}processSegmentAgainstRoute(n,e,i,o,r,s,a,l){var c=this;return Et(function*(){if(Gr(i)!==s&&(s===Ke||!rb(o,r,i)))throw new Es(o);if(void 0===i.redirectTo)return c.matchSegmentAgainstRoute(n,o,i,r,s,l);if(c.allowRedirects&&a)return c.expandSegmentAgainstRouteUsingRedirect(n,o,e,i,r,s,l);throw new Es(o)})()}expandSegmentAgainstRouteUsingRedirect(n,e,i,o,r,s,a){var l=this;return Et(function*(){const{matched:c,parameters:f,consumedSegments:m,positionalParamSegments:g,remainingSegments:_}=y3(e,o,r);if(!c)throw new Es(e);"string"==typeof o.redirectTo&&"/"===o.redirectTo[0]&&(l.absoluteRedirectCount++,l.absoluteRedirectCount>31&&(l.allowRedirects=!1));const w=l.createSnapshot(n,o,r,f,a);if(l.abortSignal.aborted)throw new Error(l.abortSignal.reason);const k=yield l.applyRedirects.applyRedirectCommands(m,o.redirectTo,g,v3(w),n),T=yield l.applyRedirects.lineralizeSegments(o,k);return l.processSegment(n,i,e,T.concat(_),s,!1,a)})()}createSnapshot(n,e,i,o,r){const s=new Hx(i,o,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,function jle(t){return t.data||{}}(e),Gr(e),e.component??e._loadedComponent??null,e,function Ule(t){return t.resolve||{}}(e),n),a=Vx(s,r,this.paramsInheritanceStrategy);return s.params=Object.freeze(a.params),s.data=Object.freeze(a.data),s}matchSegmentAgainstRoute(n,e,i,o,r,s){var a=this;return Et(function*(){if(a.abortSignal.aborted)throw new Error(a.abortSignal.reason);const c=yield z_(Ele(e,i,o,n,0,Y=>a.createSnapshot(n,i,Y.consumedSegments,Y.parameters,s),a.abortSignal));if("**"===i.path&&(e.children={}),!c?.matched)throw new Es(e);n=i._injector??n;const{routes:f}=yield a.getChildConfig(n,i,o),m=i._loadedInjector??n,{parameters:g,consumedSegments:_,remainingSegments:w}=c,k=a.createSnapshot(n,i,_,g,s),{segmentGroup:T,slicedSegments:I}=C3(e,_,w,f);if(0===I.length&&T.hasChildren()){const Y=yield a.processChildren(m,f,T,k);return new _r(k,Y)}if(0===f.length&&0===I.length)return new _r(k,[]);const R=Gr(i)===r,W=yield a.processSegment(m,f,T,I,R?Ke:r,!0,k);return new _r(k,W instanceof _r?[W]:[])})()}getChildConfig(n,e,i){var o=this;return Et(function*(){if(e.children)return{routes:e.children,injector:n};if(e.loadChildren){if(void 0!==e._loadedRoutes){const s=e._loadedNgModuleFactory;return s&&!e._loadedInjector&&(e._loadedInjector=s.create(n).injector),{routes:e._loadedRoutes,injector:e._loadedInjector}}if(o.abortSignal.aborted)throw new Error(o.abortSignal.reason);if(yield z_(function ble(t,n,e,i,o){const r=n.canLoad;return void 0===r||0===r.length?ae(!0):ae(r.map(a=>{const l=$d(a,t),f=Wl(function ole(t){return t&&Mf(t.canLoad)}(l)?l.canLoad(n,e):Qi(t,()=>l(n,e)));return o?f.pipe(_3(o)):f})).pipe(Wd(),b3())}(n,e,i,0,o.abortSignal))){const s=yield o.configLoader.loadChildren(n,e);return e._loadedRoutes=s.routes,e._loadedInjector=s.injector,e._loadedNgModuleFactory=s.factory,s}throw function Cle(){throw h3(!1,vo.GuardRejected)}()}return{routes:[],injector:n}})()}}function Hle(t){const n=t.value.routeConfig;return n&&""===n.path}function w3(t){const n=[],e=new Set;for(const i of t){if(!Hle(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=w3(i.children);n.push(new _r(i.value,o))}return n.filter(i=>!e.has(i))}function x3(t){const n=t.children.map(e=>x3(e)).flat();return[t,...n]}function S3(t){return tn(n=>{const e=t(n);return e?Kn(e).pipe(Se(()=>n)):ae(n)})}let k3=(()=>{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===Ke);return i}getResolvedTitleForRoute(e){return e.data[gf]}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:()=>D(Kle),providedIn:"root"})}return t})(),Kle=(()=>{class t extends k3{title;constructor(e){super(),this.title=e}updateTitle(e){const i=this.buildTitle(e);void 0!==i&&this.title.setTitle(i)}static \u0275fac=function(i){return new(i||t)(ce(Zse))};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Gd=new Z("",{factory:()=>({})}),sb=new Z("");let Kx=(()=>{class t{componentLoaders=new WeakMap;childrenLoaders=new WeakMap;onLoadStartListener;onLoadEndListener;compiler=D(aQ);loadComponent(e,i){var o=this;return Et(function*(){if(o.componentLoaders.get(i))return o.componentLoaders.get(i);if(i._loadedComponent)return Promise.resolve(i._loadedComponent);o.onLoadStartListener&&o.onLoadStartListener(i);const r=Et(function*(){try{const s=yield FL(Qi(e,()=>i.loadComponent())),a=yield M3(D3(s));return o.onLoadEndListener&&o.onLoadEndListener(i),i._loadedComponent=a,a}finally{o.componentLoaders.delete(i)}})();return o.componentLoaders.set(i,r),r})()}loadChildren(e,i){var o=this;if(this.childrenLoaders.get(i))return this.childrenLoaders.get(i);if(i._loadedRoutes)return Promise.resolve({routes:i._loadedRoutes,injector:i._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(i);const r=Et(function*(){try{const s=yield function Yle(t,n,e,i){return Yx.apply(this,arguments)}(i,o.compiler,e,o.onLoadEndListener);return i._loadedRoutes=s.routes,i._loadedInjector=s.injector,i._loadedNgModuleFactory=s.factory,s}finally{o.childrenLoaders.delete(i)}})();return this.childrenLoaders.set(i,r),r}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Yx(){return(Yx=Et(function*(t,n,e,i){const o=yield FL(Qi(e,()=>t.loadChildren())),r=yield M3(D3(o));let s;s=r instanceof lI||Array.isArray(r)?r:yield n.compileModuleAsync(r),i&&i(t);let a,l,f;return Array.isArray(s)?l=s:(a=s.create(e).injector,f=s,l=a.get(sb,[],{optional:!0,self:!0}).flat()),{routes:l.map($x),injector:a,factory:f}})).apply(this,arguments)}function D3(t){return function Xle(t){return t&&"object"==typeof t&&"default"in t}(t)?t.default:t}function M3(t){return Xx.apply(this,arguments)}function Xx(){return(Xx=Et(function*(t){return t})).apply(this,arguments)}let Zx=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:()=>D(Zle),providedIn:"root"})}return t})(),Zle=(()=>{class t{shouldProcessUrl(e){return!0}extract(e){return e}merge(e,i){return e}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const T3=new Z(""),E3=new Z("");function Qle(t,n,e){const i=t.get(E3),o=t.get(et);if(!o.startViewTransition||i.skipNextTransition)return i.skipNextTransition=!1,new Promise(c=>setTimeout(c));let r;const s=new Promise(c=>{r=c}),a=o.startViewTransition(()=>(r(),function Jle(t){return new Promise(n=>{Vi({read:()=>setTimeout(n)},{injector:t})})}(t)));a.updateCallbackDone.catch(c=>{}),a.ready.catch(c=>{}),a.finished.catch(c=>{});const{onViewTransitionCreated:l}=i;return l&&Qi(t,()=>l({transition:a,from:n,to:e})),s}const ece=()=>{},P3=new Z("");let Qx=(()=>{class t{currentNavigation=yt(null,{equal:()=>!1});currentTransition=null;lastSuccessfulNavigation=yt(null);events=new me;transitionAbortWithErrorSubject=new me;configLoader=D(Kx);environmentInjector=D(zn);destroyRef=D(rr);urlSerializer=D(jd);rootContexts=D(xf);location=D(Fd);inputBindingEnabled=null!==D(tb,{optional:!0});titleStrategy=D(k3);options=D(Gd,{optional:!0})||{};paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly";urlHandlingStrategy=D(Zx);createViewTransition=D(T3,{optional:!0});navigationErrorHandler=D(P3,{optional:!0});navigationId=0;get hasRequestedNavigation(){return 0!==this.navigationId}transitions;afterPreactivation=()=>ae(void 0);rootComponentType=null;destroyed=!1;constructor(){this.configLoader.onLoadEndListener=o=>this.events.next(new Bae(o)),this.configLoader.onLoadStartListener=o=>this.events.next(new Lae(o)),this.destroyRef.onDestroy(()=>{this.destroyed=!0})}complete(){this.transitions?.complete()}handleNavigationRequest(e){const i=++this.navigationId;nt(()=>{this.transitions?.next({...e,extractedUrl:this.urlHandlingStrategy.extract(e.rawUrl),targetSnapshot:null,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null,id:i,routesRecognizeHandler:{},beforeActivateHandler:{}})})}setupNavigations(e){return this.transitions=new ki(null),this.transitions.pipe(Tn(i=>null!==i),tn(i=>{let o=!1;const r=new AbortController,s=()=>!o&&this.currentTransition?.id===i.id;return ae(i).pipe(tn(a=>{if(this.navigationId>i.id)return this.cancelNavigationTransition(i,"",vo.SupersededByNewNavigation),Oi;this.currentTransition=i;const l=this.lastSuccessfulNavigation();this.currentNavigation.set({id:a.id,initialUrl:a.rawUrl,extractedUrl:a.extractedUrl,targetBrowserUrl:"string"==typeof a.extras.browserUrl?this.urlSerializer.parse(a.extras.browserUrl):a.extras.browserUrl,trigger:a.source,extras:a.extras,previousNavigation:l?{...l,previousNavigation:null}:null,abort:()=>r.abort(),routesRecognizeHandler:a.routesRecognizeHandler,beforeActivateHandler:a.beforeActivateHandler});const c=!e.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl();if(!c&&"reload"!==(a.extras.onSameUrlNavigation??e.onSameUrlNavigation))return this.events.next(new Ud(a.id,this.urlSerializer.serialize(a.rawUrl),"",Q_.IgnoredSameUrlNavigation)),a.resolve(!1),Oi;if(this.urlHandlingStrategy.shouldProcessUrl(a.rawUrl))return ae(a).pipe(tn(m=>(this.events.next(new Z_(m.id,this.urlSerializer.serialize(m.extractedUrl),m.source,m.restoredState)),m.id!==this.navigationId?Oi:Promise.resolve(m))),function zle(t,n,e,i,o,r,s){return It(function(){var a=Et(function*(l){const{state:c,tree:f}=yield function Nle(t,n,e,i,o,r){return qx.apply(this,arguments)}(t,n,e,i,l.extractedUrl,o,r,s);return{...l,targetSnapshot:c,urlAfterRedirects:f}});return function(l){return a.apply(this,arguments)}}())}(this.environmentInjector,this.configLoader,this.rootComponentType,e.config,this.urlSerializer,this.paramsInheritanceStrategy,r.signal),ai(m=>{i.targetSnapshot=m.targetSnapshot,i.urlAfterRedirects=m.urlAfterRedirects,this.currentNavigation.update(g=>(g.finalUrl=m.urlAfterRedirects,g)),this.events.next(new n3)}),tn(m=>Kn(i.routesRecognizeHandler.deferredHandle??ae(void 0)).pipe(Se(()=>m))),ai(()=>{const m=new e3(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects),a.targetSnapshot);this.events.next(m)}));if(c&&this.urlHandlingStrategy.shouldProcessUrl(a.currentRawUrl)){const{id:m,extractedUrl:g,source:_,restoredState:w,extras:k}=a,T=new Z_(m,this.urlSerializer.serialize(g),_,w);this.events.next(T);const I=r3(this.rootComponentType,this.environmentInjector).snapshot;return this.currentTransition=i={...a,targetSnapshot:I,urlAfterRedirects:g,extras:{...k,skipLocationChange:!1,replaceUrl:!1}},this.currentNavigation.update(R=>(R.finalUrl=g,R)),ae(i)}return this.events.next(new Ud(a.id,this.urlSerializer.serialize(a.extractedUrl),"",Q_.IgnoredByUrlHandlingStrategy)),a.resolve(!1),Oi}),Se(a=>{const l=new Aae(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects),a.targetSnapshot);return this.events.next(l),this.currentTransition=i={...a,guards:Jae(a.targetSnapshot,a.currentSnapshot,this.rootContexts)},i}),function dle(t){return It(n=>{const{targetSnapshot:e,currentSnapshot:i,guards:{canActivateChecks:o,canDeactivateChecks:r}}=n;return 0===r.length&&0===o.length?ae({...n,guardsResult:!0}):function ule(t,n,e){return Kn(t).pipe(It(i=>function _le(t,n,e,i){const o=n&&n.routeConfig?n.routeConfig.canDeactivate:null;return o&&0!==o.length?ae(o.map(s=>{const a=n._environmentInjector,l=$d(s,a);return Wl(function ale(t){return t&&Mf(t.canDeactivate)}(l)?l.canDeactivate(t,n,e,i):Qi(a,()=>l(t,n,e,i))).pipe(Ur())})).pipe(Wd()):ae(!0)}(i.component,i.route,e,n)),Ur(i=>!0!==i,!0))}(r,e,i).pipe(It(s=>s&&function ile(t){return"boolean"==typeof t}(s)?function hle(t,n,e){return Kn(n).pipe(cf(i=>Ts(function ple(t,n){return null!==t&&n&&n(new Vae(t)),ae(!0)}(i.route.parent,e),function fle(t,n){return null!==t&&n&&n(new jae(t)),ae(!0)}(i.route,e),function gle(t,n){const e=n[n.length-1],o=n.slice(0,n.length-1).reverse().map(r=>function ele(t){const n=t.routeConfig?t.routeConfig.canActivateChild:null;return n&&0!==n.length?{node:t,guards:n}:null}(r)).filter(r=>null!==r).map(r=>ya(()=>ae(r.guards.map(a=>{const l=r.node._environmentInjector,c=$d(a,l);return Wl(function sle(t){return t&&Mf(t.canActivateChild)}(c)?c.canActivateChild(e,t):Qi(l,()=>c(e,t))).pipe(Ur())})).pipe(Wd())));return ae(o).pipe(Wd())}(t,i.path),function mle(t,n){const e=n.routeConfig?n.routeConfig.canActivate:null;if(!e||0===e.length)return ae(!0);const i=e.map(o=>ya(()=>{const r=n._environmentInjector,s=$d(o,r);return Wl(function rle(t){return t&&Mf(t.canActivate)}(s)?s.canActivate(n,t):Qi(r,()=>s(n,t))).pipe(Ur())}));return ae(i).pipe(Wd())}(t,i.route))),Ur(i=>!0!==i,!0))}(e,o,t):ae(s)),Se(s=>({...n,guardsResult:s})))})}(a=>this.events.next(a)),tn(a=>{if(i.guardsResult=a.guardsResult,a.guardsResult&&"boolean"!=typeof a.guardsResult)throw nb(0,a.guardsResult);const l=new Rae(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects),a.targetSnapshot,!!a.guardsResult);if(this.events.next(l),!s())return Oi;if(!a.guardsResult)return this.cancelNavigationTransition(a,"",vo.GuardRejected),Oi;if(0===a.guards.canActivateChecks.length)return ae(a);const c=new Fae(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects),a.targetSnapshot);if(this.events.next(c),!s())return Oi;let f=!1;return ae(a).pipe(function $le(t){return It(n=>{const{targetSnapshot:e,guards:{canActivateChecks:i}}=n;if(!i.length)return ae(n);const o=new Set(i.map(a=>a.route)),r=new Set;for(const a of o)if(!r.has(a))for(const l of x3(a))r.add(l);let s=0;return Kn(r).pipe(cf(a=>o.has(a)?function Wle(t,n,e){const i=t.routeConfig,o=t._resolve;return void 0!==i?.title&&!l3(i)&&(o[gf]=i.title),ya(()=>(t.data=Vx(t,t.parent,e).resolve,function Gle(t,n,e){const i=Ex(t);if(0===i.length)return ae({});const o={};return Kn(i).pipe(It(r=>function qle(t,n,e){const i=n._environmentInjector,o=$d(t,i);return Wl(o.resolve?o.resolve(n,e):Qi(i,()=>o(n,e)))}(t[r],n,e).pipe(Ur(),ai(s=>{if(s instanceof Wx)throw nb(new bf,s);o[r]=s}))),TL(1),Se(()=>o),Ui(r=>m3(r)?Oi:mr(r)))}(o,t,n).pipe(Se(r=>(t._resolvedData=r,t.data={...t.data,...r},null)))))}(a,e,t):(a.data=Vx(a,a.parent,t).resolve,ae(void 0))),ai(()=>s++),TL(1),It(a=>s===r.size?ae(n):Oi))})}(this.paramsInheritanceStrategy),ai({next:()=>{f=!0;const m=new Nae(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects),a.targetSnapshot);this.events.next(m)},complete:()=>{f||this.cancelNavigationTransition(a,"",vo.NoDataFromResolver)}}))}),S3(a=>{const l=f=>{const m=[];f.routeConfig?._loadedComponent?f.component=f.routeConfig?._loadedComponent:f.routeConfig?.loadComponent&&m.push(this.configLoader.loadComponent(f._environmentInjector,f.routeConfig).then(_=>{f.component=_}));for(const g of f.children)m.push(...l(g));return m},c=l(a.targetSnapshot.root);return 0===c.length?ae(a):Kn(Promise.all(c).then(()=>a))}),S3(()=>this.afterPreactivation()),tn(()=>{const{currentSnapshot:a,targetSnapshot:l}=i,c=this.createViewTransition?.(this.environmentInjector,a.root,l.root);return c?Kn(c).pipe(Se(()=>i)):ae(i)}),Cn(1),tn(a=>{const l=function Kae(t,n,e){const i=Sf(t,n._root,e?e._root:void 0);return new o3(i,n)}(e.routeReuseStrategy,a.targetSnapshot,a.currentRouterState);this.currentTransition=i=a={...a,targetRouterState:l},this.currentNavigation.update(f=>(f.targetRouterState=l,f)),this.events.next(new Nx);const c=i.beforeActivateHandler.deferredHandle;return c?Kn(c.then(()=>a)):ae(a)}),ai(a=>{new Qae(e.routeReuseStrategy,i.targetRouterState,i.currentRouterState,l=>this.events.next(l),this.inputBindingEnabled).activate(this.rootContexts),s()&&(o=!0,this.currentNavigation.update(l=>(l.abort=ece,l)),this.lastSuccessfulNavigation.set(nt(this.currentNavigation)),this.events.next(new Wr(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects))),this.titleStrategy?.updateTitle(a.targetRouterState.snapshot),a.resolve(!0))}),fn(g3(r.signal).pipe(Tn(()=>!o&&!i.targetRouterState),ai(()=>{this.cancelNavigationTransition(i,r.signal.reason+"",vo.Aborted)}))),ai({complete:()=>{o=!0}}),fn(this.transitionAbortWithErrorSubject.pipe(ai(a=>{throw a}))),B_(()=>{r.abort(),o||this.cancelNavigationTransition(i,"",vo.SupersededByNewNavigation),this.currentTransition?.id===i.id&&(this.currentNavigation.set(null),this.currentTransition=null)}),Ui(a=>{if(o=!0,this.destroyed)return i.resolve(!1),Oi;if(f3(a))this.events.next(new wa(i.id,this.urlSerializer.serialize(i.extractedUrl),a.message,a.cancellationCode)),function Zae(t){return f3(t)&&ql(t.url)}(a)?this.events.next(new J_(a.url,a.navigationBehaviorOptions)):i.resolve(!1);else{const l=new Fx(i.id,this.urlSerializer.serialize(i.extractedUrl),a,i.targetSnapshot??void 0);try{const c=Qi(this.environmentInjector,()=>this.navigationErrorHandler?.(l));if(!(c instanceof Wx))throw this.events.next(l),a;{const{message:f,cancellationCode:m}=nb(0,c);this.events.next(new wa(i.id,this.urlSerializer.serialize(i.extractedUrl),f,m)),this.events.next(new J_(c.redirectTo,c.navigationBehaviorOptions))}}catch(c){this.options.resolveNavigationPromiseOnError?i.resolve(!1):i.reject(c)}}return Oi}))}))}cancelNavigationTransition(e,i,o){const r=new wa(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(){const e=this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))),i=nt(this.currentNavigation),o=i?.targetBrowserUrl??i?.extractedUrl;return e.toString()!==o?.toString()&&!i?.extras.skipLocationChange}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function tce(t){return t!==wf}const nce=new Z("");let O3=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:()=>D(oce),providedIn:"root"})}return t})();class ice{shouldDetach(n){return!1}store(n,e){}shouldAttach(n){return!1}retrieve(n){return null}shouldReuseRoute(n,e){return n.routeConfig===e.routeConfig}shouldDestroyInjector(n){return!0}}let oce=(()=>{class t extends ice{static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),eS=(()=>{class t{urlSerializer=D(jd);options=D(Gd,{optional:!0})||{};canceledNavigationResolution=this.options.canceledNavigationResolution||"replace";location=D(Fd);urlHandlingStrategy=D(Zx);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";currentUrlTree=new gr;getCurrentUrlTree(){return this.currentUrlTree}rawUrlTree=this.currentUrlTree;getRawUrlTree(){return this.rawUrlTree}createBrowserPath({finalUrl:e,initialUrl:i,targetBrowserUrl:o}){const r=void 0!==e?this.urlHandlingStrategy.merge(e,i):i,s=o??r;return s instanceof gr?this.urlSerializer.serialize(s):s}commitTransition({targetRouterState:e,finalUrl:i,initialUrl:o}){i&&e?(this.currentUrlTree=i,this.rawUrlTree=this.urlHandlingStrategy.merge(i,o),this.routerState=e):this.rawUrlTree=o}routerState=r3(null,D(zn));getRouterState(){return this.routerState}_stateMemento=this.createStateMemento();get stateMemento(){return this._stateMemento}updateStateMemento(){this._stateMemento=this.createStateMemento()}createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}restoredState(){return this.location.getState()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:()=>D(rce),providedIn:"root"})}return t})(),rce=(()=>{class t extends eS{currentPageId=0;lastSuccessfulId=-1;get browserPageId(){return"computed"!==this.canceledNavigationResolution?this.currentPageId:this.restoredState()?.\u0275routerPageId??this.currentPageId}registerNonRouterCurrentEntryChangeListener(e){return this.location.subscribe(i=>{"popstate"===i.type&&setTimeout(()=>{e(i.url,i.state,"popstate",{replaceUrl:!0})})})}handleRouterEvent(e,i){e instanceof Z_?this.updateStateMemento():e instanceof Ud?this.commitTransition(i):e instanceof e3?"eager"===this.urlUpdateStrategy&&(i.extras.skipLocationChange||this.setBrowserUrl(this.createBrowserPath(i),i)):e instanceof Nx?(this.commitTransition(i),"deferred"===this.urlUpdateStrategy&&!i.extras.skipLocationChange&&this.setBrowserUrl(this.createBrowserPath(i),i)):e instanceof wa&&!function Oae(t){return t instanceof wa&&(t.code===vo.Redirect||t.code===vo.SupersededByNewNavigation)}(e)?this.restoreHistory(i):e instanceof Fx?this.restoreHistory(i,!0):e instanceof Wr&&(this.lastSuccessfulId=e.id,this.currentPageId=this.browserPageId)}setBrowserUrl(e,{extras:i,id:o}){const{replaceUrl:r,state:s}=i;if(this.location.isCurrentPathEqualTo(e)||r){const a=this.browserPageId,l={...s,...this.generateNgRouterState(o,a)};this.location.replaceState(e,"",l)}else{const a={...s,...this.generateNgRouterState(o,this.browserPageId+1)};this.location.go(e,"",a)}}restoreHistory(e,i=!1){if("computed"===this.canceledNavigationResolution){const r=this.currentPageId-this.browserPageId;0!==r?this.location.historyGo(r):this.getCurrentUrlTree()===e.finalUrl&&0===r&&(this.resetInternalState(e),this.resetUrlToCurrentUrlTree())}else"replace"===this.canceledNavigationResolution&&(i&&this.resetInternalState(e),this.resetUrlToCurrentUrlTree())}resetInternalState({finalUrl:e}){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,e??this.rawUrlTree)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.getRawUrlTree()),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(e,i){return"computed"===this.canceledNavigationResolution?{navigationId:e,\u0275routerPageId:i}:{navigationId:e}}static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function A3(t,n){t.events.pipe(Tn(e=>e instanceof Wr||e instanceof wa||e instanceof Fx||e instanceof Ud),Se(e=>e instanceof Wr||e instanceof Ud?0:e instanceof wa&&(e.code===vo.Redirect||e.code===vo.SupersededByNewNavigation)?2:1),Tn(e=>2!==e),Cn(1)).subscribe(()=>{n()})}let vt=(()=>{class t{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}disposed=!1;nonRouterCurrentEntryChangeSubscription;console=D(AI);stateManager=D(eS);options=D(Gd,{optional:!0})||{};pendingTasks=D(Ys);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";navigationTransitions=D(Qx);urlSerializer=D(jd);location=D(Fd);urlHandlingStrategy=D(Zx);injector=D(zn);_events=new me;get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}navigated=!1;routeReuseStrategy=D(O3);injectorCleanup=D(nce,{optional:!0});onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore";config=D(sb,{optional:!0})?.flat()??[];componentInputBindingEnabled=!!D(tb,{optional:!0});currentNavigation=this.navigationTransitions.currentNavigation.asReadonly();constructor(){this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this).subscribe({error:e=>{}}),this.subscribeToNavigationEvents()}eventsSubscription=new pt;subscribeToNavigationEvents(){const e=this.navigationTransitions.events.subscribe(i=>{try{const o=this.navigationTransitions.currentTransition,r=nt(this.navigationTransitions.currentNavigation);if(null!==o&&null!==r)if(this.stateManager.handleRouterEvent(i,r),i instanceof wa&&i.code!==vo.Redirect&&i.code!==vo.SupersededByNewNavigation)this.navigated=!0;else if(i instanceof Wr)this.navigated=!0,this.injectorCleanup?.(this.routeReuseStrategy,this.routerState,this.config);else if(i instanceof J_){const s=i.navigationBehaviorOptions,a=this.urlHandlingStrategy.merge(i.url,o.currentRawUrl),l={scroll:o.extras.scroll,browserUrl:o.extras.browserUrl,info:o.extras.info,skipLocationChange:o.extras.skipLocationChange,replaceUrl:o.extras.replaceUrl||"eager"===this.urlUpdateStrategy||tce(o.source),...s};this.scheduleNavigation(a,wf,null,l,{resolve:o.resolve,reject:o.reject,promise:o.promise})}(function zae(t){return!(t instanceof Nx||t instanceof J_||t instanceof n3)})(i)&&this._events.next(i)}catch(o){this.navigationTransitions.transitionAbortWithErrorSubject.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),wf,this.stateManager.restoredState(),{replaceUrl:!0})}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((e,i,o,r)=>{this.navigateToSyncWithBrowser(e,o,i,r)})}navigateToSyncWithBrowser(e,i,o,r){const s=o?.navigationId?o:null;if(o){const l={...o};delete l.navigationId,delete l.\u0275routerPageId,0!==Object.keys(l).length&&(r.state=l)}const a=this.parseUrl(e);this.scheduleNavigation(a,i,s,r).catch(l=>{this.disposed||this.injector.get(Or)(l)})}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return nt(this.navigationTransitions.currentNavigation)}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(e){this.config=e.map($x),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this._events.unsubscribe(),this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription?.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0,this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(e,i={}){const{relativeTo:o,queryParams:r,fragment:s,queryParamsHandling:a,preserveFragment:l}=i,c=l?this.currentUrlTree.fragment:s;let m,f=null;switch(a??this.options.defaultQueryParamsHandling){case"merge":f={...this.currentUrlTree.queryParams,...r};break;case"preserve":f=this.currentUrlTree.queryParams;break;default:f=r||null}null!==f&&(f=this.removeEmptyProps(f));try{m=GL(o?o.snapshot:this.routerState.snapshot.root)}catch{("string"!=typeof e[0]||"/"!==e[0][0])&&(e=[]),m=this.currentUrlTree.root}return qL(m,e,f,c??null,this.urlSerializer)}navigateByUrl(e,i={skipLocationChange:!1}){const o=ql(e)?e:this.parseUrl(e),r=this.urlHandlingStrategy.merge(o,this.rawUrlTree);return this.scheduleNavigation(r,wf,null,i)}navigate(e,i={skipLocationChange:!1}){return function sce(t){for(let n=0;n(null!=r&&(i[o]=r),i),{})}scheduleNavigation(e,i,o,r,s){if(this.disposed)return Promise.resolve(!1);let a,l,c;s?(a=s.resolve,l=s.reject,c=s.promise):c=new Promise((m,g)=>{a=m,l=g});const f=this.pendingTasks.add();return A3(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(f))}),this.navigationTransitions.handleNavigationRequest({source:i,restoredState:o,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:e,extras:r,resolve:a,reject:l,promise:c,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),c.catch(Promise.reject.bind(Promise))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();class ace extends pt{constructor(n,e){super()}schedule(n,e=0){return this}}const ab={setInterval(t,n,...e){const{delegate:i}=ab;return i?.setInterval?i.setInterval(t,n,...e):setInterval(t,n,...e)},clearInterval(t){const{delegate:n}=ab;return(n?.clearInterval||clearInterval)(t)},delegate:void 0};class tS extends ace{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 ab.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&&ab.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,Rp(i,this),null!=n&&(this.id=this.recycleAsyncId(e,n,null)),this.delay=null,super.unsubscribe()}}}const nS={now:()=>(nS.delegate||Date).now(),delegate:void 0};class Ef{constructor(n,e=Ef.now){this.schedulerActionCtor=n,this.now=e}schedule(n,e=0,i){return new this.schedulerActionCtor(this,n).schedule(i,e)}}Ef.now=nS.now;class iS extends Ef{constructor(n,e=Ef.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 Pf=new iS(tS),lce=Pf;function R3(t,n){return n?e=>Ts(n.pipe(Cn(1),function cce(){return Mn((t,n)=>{t.subscribe(dn(n,Np))})}()),e.pipe(R3(t))):It((e,i)=>ji(t(e,i)).pipe(Cn(1),function dce(t){return Se(()=>t)}(e)))}function xa(t=0,n,e=lce){let i=-1;return null!=n&&(oL(n)?e=n:i=n),new Ft(o=>{let r=function uce(t){return t instanceof Date&&!isNaN(t)}(t)?+t-e.now():t;r<0&&(r=0);let s=0;return e.schedule(function(){o.closed||(o.next(s++),0<=i?this.schedule(void 0,i):o.complete())},r)})}function li(t,n=Pf){const e=xa(t,n);return R3(()=>e)}var lb=function(t){return t.NoConnection="NoConnection",t.Unknown="Unknown",t}(lb||{});class hce{}const F3="common.operation-error";function Qe(t){if(t&&t.type&&!t.srcElement)return t;const n=new hce;if(n.originalError=t,!t||"string"==typeof t)return n.originalServerErrorMsg=t||"",n.translatableErrorMsg=t||F3,n.type=lb.Unknown,n;n.originalServerErrorMsg=function pce(t){if(t){if("string"==typeof t._body)return t._body;if(t.originalServerErrorMsg&&"string"==typeof t.originalServerErrorMsg)return t.originalServerErrorMsg;if(t.error&&"string"==typeof t.error)return t.error;if(t.error&&t.error.error&&t.error.error.message)return t.error.error.message;if(t.error&&t.error.error&&"string"==typeof t.error.error)return t.error.error;if(t.message)return t.message;if(t._body&&t._body.error)return t._body.error;try{return JSON.parse(t._body).error}catch{}}return null}(t);return null!=t.status&&(0===t.status||504===t.status)&&(n.type=lb.NoConnection,n.translatableErrorMsg="common.no-connection-error"),n.type||(n.type=lb.Unknown,n.translatableErrorMsg=n.originalServerErrorMsg?function fce(t){if(!t||0===t.length)return t;if(-1!==t.indexOf('"error":'))try{t=JSON.parse(t).error}catch{}if(t.startsWith("400")||t.startsWith("403")){const e=t.split(" - ",2);t=2===e.length?e[1]:t}const n=(t=t.trim()).substr(0,1);return n.toUpperCase()!==n&&(t=n.toUpperCase()+t.substr(1,t.length-1)),!t.endsWith(".")&&!t.endsWith(",")&&!t.endsWith(":")&&!t.endsWith(";")&&!t.endsWith("?")&&!t.endsWith("!")&&(t+="."),t}(n.originalServerErrorMsg):F3),n}class oo extends me{constructor(n=1/0,e=1/0,i=nS){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:s}=this;e||(i.push(n),!o&&i.push(r.now()+s)),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 s=0;s{class t{constructor(){this.currentRefreshTimeSubject=new oo(1),this.savedLocalNodes=new Map,this.savedLabels=new Map,this.savedVisibleLocalNodes=new Set}initialize(e){this.storage=localStorage,this.hypervisorPk=e,this.migrateDataToHvStorage(),this.currentRefreshTime=parseInt(this.getDataForHv(cb),10)||10,this.currentRefreshTimeSubject.next(this.currentRefreshTime),this.getSavedLocalNodes().forEach(r=>{this.savedLocalNodes.set(r.publicKey,r),r.hidden||this.savedVisibleLocalNodes.add(r.publicKey)}),this.getSavedLabels().forEach(r=>this.savedLabels.set(r.id,r)),this.loadLegacyNodeData();const i=[];this.savedLocalNodes.forEach(r=>i.push(r));const o=[];this.savedLabels.forEach(r=>o.push(r)),this.saveLocalNodes(i),this.saveLabels(o)}getDataForHv(e){return this.storage.getItem(this.hypervisorPk+e)}setDataForHv(e,i){return this.storage.setItem(this.hypervisorPk+e,i)}migrateDataToHvStorage(){const e=this.storage.getItem(cb);if(e){const r=parseInt(e,10)||10;this.setRefreshTime(r),this.storage.removeItem(cb)}const i=this.storage.getItem(ub);if(i){const r=JSON.parse(i)||[];this.saveLocalNodes(r),this.storage.removeItem(ub)}const o=this.storage.getItem(db);if(o){const r=JSON.parse(o)||[];this.saveLabels(r),this.storage.removeItem(db)}}loadLegacyNodeData(){const e=JSON.parse(this.storage.getItem(N3))||[];if(e.length>0){const i=this.getSavedLocalNodes(),o=this.getSavedLabels();e.forEach(r=>{i.push({publicKey:r.publicKey,hidden:r.deleted,ip:null}),this.savedLocalNodes.set(r.publicKey,i[i.length-1]),r.deleted||this.savedVisibleLocalNodes.add(r.publicKey),o.push({id:r.publicKey,identifiedElementType:ro.Node,label:r.label}),this.savedLabels.set(r.publicKey,o[o.length-1])}),this.saveLocalNodes(i),this.saveLabels(o),this.storage.removeItem(N3)}}setRefreshTime(e){this.setDataForHv(cb,e.toString()),this.currentRefreshTime=e,this.currentRefreshTimeSubject.next(this.currentRefreshTime)}getRefreshTimeObservable(){return this.currentRefreshTimeSubject.asObservable()}getRefreshTime(){return this.currentRefreshTime}includeVisibleLocalNodes(e,i){this.changeLocalNodesHiddenProperty(e,i,!1)}setLocalNodesAsHidden(e,i){this.changeLocalNodesHiddenProperty(e,i,!0)}changeLocalNodesHiddenProperty(e,i,o){if(e.length!==i.length)throw new Error("Invalid params");const r=new Map,s=new Map;e.forEach((c,f)=>{r.set(c,i[f]),s.set(c,i[f])});let a=!1;const l=this.getSavedLocalNodes();l.forEach(c=>{r.has(c.publicKey)&&(s.has(c.publicKey)&&s.delete(c.publicKey),c.ip!==r.get(c.publicKey)&&(c.ip=r.get(c.publicKey),a=!0,this.savedLocalNodes.set(c.publicKey,c)),c.hidden!==o&&(c.hidden=o,a=!0,this.savedLocalNodes.set(c.publicKey,c),o?this.savedVisibleLocalNodes.delete(c.publicKey):this.savedVisibleLocalNodes.add(c.publicKey)))}),s.forEach((c,f)=>{a=!0;const m={publicKey:f,hidden:o,ip:c};l.push(m),this.savedLocalNodes.set(f,m),o?this.savedVisibleLocalNodes.delete(f):this.savedVisibleLocalNodes.add(f)}),a&&this.saveLocalNodes(l)}getSavedLocalNodes(){return JSON.parse(this.getDataForHv(ub))||[]}getSavedVisibleLocalNodes(){return this.savedVisibleLocalNodes}saveLocalNodes(e){this.setDataForHv(ub,JSON.stringify(e))}getSavedLabels(){return JSON.parse(this.getDataForHv(db))||[]}saveLabels(e){this.setDataForHv(db,JSON.stringify(e))}saveLabel(e,i,o){if(i){let r=!1;const s=this.getSavedLabels().map(a=>(a.id===e&&a.identifiedElementType===o&&(r=!0,a.label=i,this.savedLabels.set(a.id,{label:a.label,id:a.id,identifiedElementType:a.identifiedElementType})),a));if(r)this.saveLabels(s);else{const a={label:i,id:e,identifiedElementType:o};s.push(a),this.savedLabels.set(e,a),this.saveLabels(s)}}else{this.savedLabels.has(e)&&this.savedLabels.delete(e);let r=!1;const s=this.getSavedLabels().filter(a=>a.id!==e||(r=!0,!1));r&&this.saveLabels(s)}}getDefaultLabel(e){return e?e.ip?e.ip:e.localPk:""}getLabelInfo(e){return this.savedLabels.has(e)?this.savedLabels.get(e):null}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const oS={};class ni{_appId=D(Js);static _infix=`a${Math.floor(1e5*Math.random()).toString()}`;getId(n,e=!1){return"ng"!==this._appId&&(n+=this._appId),oS.hasOwnProperty(n)||(oS[n]=0),`${n}${e?ni._infix+"-":""}${oS[n]++}`}static \u0275fac=function(e){return new(e||ni)};static \u0275prov=te({token:ni,factory:ni.\u0275fac,providedIn:"root"})}const If={schedule(t){let n=requestAnimationFrame,e=cancelAnimationFrame;const{delegate:i}=If;i&&(n=i.requestAnimationFrame,e=i.cancelAnimationFrame);const o=n(r=>{e=void 0,t(r)});return new pt(()=>e?.(o))},requestAnimationFrame(...t){const{delegate:n}=If;return(n?.requestAnimationFrame||requestAnimationFrame)(...t)},cancelAnimationFrame(...t){const{delegate:n}=If;return(n?.cancelAnimationFrame||cancelAnimationFrame)(...t)},delegate:void 0};new class gce extends iS{flush(n){let e;this._active=!0,n?e=n.id:(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 mce extends tS{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=If.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&&e===n._scheduled&&(null===(o=r[r.length-1])||void 0===o?void 0:o.id)!==e&&(If.cancelAnimationFrame(e),n._scheduled=void 0)}});let rS,bce=1;const hb={};function L3(t){return t in hb&&(delete hb[t],!0)}const vce={setImmediate(t){const n=bce++;return hb[n]=!0,rS||(rS=Promise.resolve()),rS.then(()=>L3(n)&&t()),n},clearImmediate(t){L3(t)}},{setImmediate:yce,clearImmediate:Cce}=vce,fb={setImmediate(...t){const{delegate:n}=fb;return(n?.setImmediate||yce)(...t)},clearImmediate(t){const{delegate:n}=fb;return(n?.clearImmediate||Cce)(t)},delegate:void 0};new class xce extends iS{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 wce extends tS{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=fb.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&&(fb.clearImmediate(e),n._scheduled===e&&(n._scheduled=void 0))}});function B3(t,n=Pf){return function kce(t){return Mn((n,e)=>{let i=!1,o=null,r=null,s=!1;const a=()=>{if(r?.unsubscribe(),r=null,i){i=!1;const c=o;o=null,e.next(c)}s&&e.complete()},l=()=>{r=null,s&&e.complete()};n.subscribe(dn(e,c=>{i=!0,o=c,r||ji(t(c)).subscribe(r=dn(e,a,l))},()=>{s=!0,(!i||!r||r.closed)&&e.complete()}))})}(()=>xa(t,n))}function Of(t,n=0){return function Dce(t){return!isNaN(parseFloat(t))&&!isNaN(Number(t))}(t)?Number(t):2===arguments.length?n:0}function Ps(t){return t instanceof Re?t.nativeElement:t}let sS;try{sS=typeof Intl<"u"&&Intl.v8BreakIterator}catch{sS=!1}let Yn=(()=>{class t{_platformId=D(wC);isBrowser=this._platformId?function kU(t){return t===XM}(this._platformId):"object"==typeof document&&!!document;EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent);TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent);BLINK=this.isBrowser&&!(!window.chrome&&!sS)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT;WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT;IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window);FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent);ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT;SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT;constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Mce=new Z("cdk-dir-doc",{providedIn:"root",factory:()=>D(et)}),Tce=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;let br=(()=>{class t{get value(){return this.valueSignal()}valueSignal=yt("ltr");change=new we;constructor(){const e=D(Mce,{optional:!0});e&&this.valueSignal.set(function Ece(t){const n=t?.toLowerCase()||"";return"auto"===n&&typeof navigator<"u"&&navigator?.language?Tce.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 \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var qr=function(t){return t[t.NORMAL=0]="NORMAL",t[t.NEGATED=1]="NEGATED",t[t.INVERTED=2]="INVERTED",t}(qr||{});let pb,Kl;function V3(){if(null==Kl){if("object"!=typeof document||!document||"function"!=typeof Element||!Element)return Kl=!1,Kl;if(document.documentElement?.style&&"scrollBehavior"in document.documentElement.style)Kl=!0;else{const t=Element.prototype.scrollTo;Kl=!!t&&!/\{\s*\[native code\]\s*\}/.test(t.toString())}}return Kl}function Af(){if("object"!=typeof document||!document)return qr.NORMAL;if(null==pb){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),pb=qr.NORMAL,0===t.scrollLeft&&(t.scrollLeft=1,pb=0===t.scrollLeft?qr.NEGATED:qr.INVERTED),t.remove()}return pb}let aS,ii=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({})}return t})(),mb=(()=>{class t{_ngZone=D(_e);_platform=D(Yn);_renderer=D(Lo).createRenderer(null,null);_cleanupGlobalListener;constructor(){}_scrolled=new me;_scrolledCount=0;scrollContainers=new Map;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 Ft(i=>{this._cleanupGlobalListener||(this._cleanupGlobalListener=this._ngZone.runOutsideAngular(()=>this._renderer.listen("document","scroll",()=>this._scrolled.next())));const o=e>0?this._scrolled.pipe(B3(e)).subscribe(i):this._scrolled.subscribe(i);return this._scrolledCount++,()=>{o.unsubscribe(),this._scrolledCount--,this._scrolledCount||(this._cleanupGlobalListener?.(),this._cleanupGlobalListener=void 0)}}):ae()}ngOnDestroy(){this._cleanupGlobalListener?.(),this._cleanupGlobalListener=void 0,this.scrollContainers.forEach((e,i)=>this.deregister(i)),this._scrolled.complete()}ancestorScrolled(e,i){const o=this.getAncestorScrollContainers(e);return this.scrolled(i).pipe(Tn(r=>!r||o.indexOf(r)>-1))}getAncestorScrollContainers(e){const i=[];return this.scrollContainers.forEach((o,r)=>{this._scrollableContainsElement(r,e)&&i.push(r)}),i}_scrollableContainsElement(e,i){let o=Ps(i),r=e.getElementRef().nativeElement;do{if(o==r)return!0}while(o=o.parentElement);return!1}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),H3=(()=>{class t{elementRef=D(Re);scrollDispatcher=D(mb);ngZone=D(_e);dir=D(br,{optional:!0});_scrollElement=this.elementRef.nativeElement;_destroyed=new me;_renderer=D(Qn);_cleanupScroll;_elementScrolled=new me;constructor(){}ngOnInit(){this._cleanupScroll=this.ngZone.runOutsideAngular(()=>this._renderer.listen(this._scrollElement,"scroll",e=>this._elementScrolled.next(e))),this.scrollDispatcher.register(this)}ngOnDestroy(){this._cleanupScroll?.(),this._elementScrolled.complete(),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&&Af()!=qr.NORMAL?(null!=e.left&&(e.right=i.scrollWidth-i.clientWidth-e.left),Af()==qr.INVERTED?e.left=e.right:Af()==qr.NEGATED&&(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;V3()?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 s=this.dir&&"rtl"==this.dir.value;return"start"==e?e=s?o:i:"end"==e&&(e=s?i:o),s&&Af()==qr.INVERTED?e==i?r.scrollWidth-r.clientWidth-r.scrollLeft:r.scrollLeft:s&&Af()==qr.NEGATED?e==i?r.scrollLeft+r.scrollWidth-r.clientWidth:-r.scrollLeft:e==i?r.scrollLeft:r.scrollWidth-r.clientWidth-r.scrollLeft}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","cdk-scrollable",""],["","cdkScrollable",""]]})}return t})(),qd=(()=>{class t{_platform=D(Yn);_listeners;_viewportSize=null;_change=new me;_document=D(et);constructor(){const e=D(_e),i=D(Lo).createRenderer(null,null);e.runOutsideAngular(()=>{if(this._platform.isBrowser){const o=r=>this._change.next(r);this._listeners=[i.listen("window","resize",o),i.listen("window","orientationchange",o)]}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){this._listeners?.forEach(e=>e()),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(B3(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 \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Rf=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({})}return t})(),j3=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({imports:[ii,Rf,ii,Rf]})}return t})();function lS(){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 vr(t){return t.composedPath?t.composedPath()[0]:t.target}function U3(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}const gb=new WeakMap;let zo=(()=>{class t{_appRef;_injector=D(He);_environmentInjector=D(zn);load(e){const i=this._appRef=this._appRef||this._injector.get(lr);let o=gb.get(i);o||(o={loaders:new Set,refs:[]},gb.set(i,o),i.onDestroy(()=>{gb.get(i)?.refs.forEach(r=>r.destroy()),gb.delete(i)})),o.loaders.has(e)||(o.loaders.add(e),o.refs.push(gF(e,{environmentInjector:this._environmentInjector})))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function oi(t){return null==t?"":"string"==typeof t?t:`${t}px`}function _b(t){return Array.isArray(t)?t:[t]}class cS{_attachedHost=null;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 Kd extends cS{component;viewContainerRef;injector;projectableNodes;bindings;constructor(n,e,i,o,r){super(),this.component=n,this.viewContainerRef=e,this.injector=i,this.projectableNodes=o,this.bindings=r||null}}class Yl extends cS{templateRef;viewContainerRef;context;injector;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 Nce extends cS{element;constructor(n){super(),this.element=n instanceof Re?n.nativeElement:n}}class bb{_attachedPortal=null;_disposeFn=null;_isDisposed=!1;hasAttached(){return!!this._attachedPortal}attach(n){return n instanceof Kd?(this._attachedPortal=n,this.attachComponentPortal(n)):n instanceof Yl?(this._attachedPortal=n,this.attachTemplatePortal(n)):this.attachDomPortal&&n instanceof Nce?(this._attachedPortal=n,this.attachDomPortal(n)):void 0}attachDomPortal=null;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 Lce extends bb{outletElement;_appRef;_defaultInjector;constructor(n,e,i){super(),this.outletElement=n,this._appRef=e,this._defaultInjector=i}attachComponentPortal(n){let e;if(n.viewContainerRef){const i=n.injector||n.viewContainerRef.injector,o=i.get(bs,null,{optional:!0})||void 0;e=n.viewContainerRef.createComponent(n.component,{index:n.viewContainerRef.length,injector:i,ngModuleRef:o,projectableNodes:n.projectableNodes||void 0,bindings:n.bindings||void 0}),this.setDisposeFn(()=>e.destroy())}else{const i=this._appRef,o=n.injector||this._defaultInjector||He.NULL,r=o.get(zn,i.injector);e=gF(n.component,{elementInjector:o,environmentInjector:r,projectableNodes:n.projectableNodes||void 0,bindings:n.bindings||void 0}),i.attachView(e.hostView),this.setDisposeFn(()=>{i.viewCount>0&&i.detachView(e.hostView),e.destroy()})}return this.outletElement.appendChild(this._getComponentRootNode(e)),this._attachedPortal=n,e}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}attachDomPortal=n=>{const e=n.element,i=this.outletElement.ownerDocument.createComment("dom-portal");e.parentNode.insertBefore(i,e),this.outletElement.appendChild(e),this._attachedPortal=n,super.setDisposeFn(()=>{i.parentNode&&i.parentNode.replaceChild(e,i)})};dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(n){return n.hostView.rootNodes[0]}}let Bce=(()=>{class t extends Yl{constructor(){super(D(Ti),D(Ei))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","cdkPortal",""]],exportAs:["cdkPortal"],features:[be]})}return t})(),Xl=(()=>{class t extends bb{_moduleRef=D(bs,{optional:!0});_document=D(et);_viewContainerRef=D(Ei);_isInitialized=!1;_attachedRef=null;constructor(){super()}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)}attached=new we;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,o=i.createComponent(e.component,{index:i.length,injector:e.injector||i.injector,projectableNodes:e.projectableNodes||void 0,ngModuleRef:this._moduleRef||void 0,bindings:e.bindings||void 0});return i!==this._viewContainerRef&&this._getRootNode().appendChild(o.hostView.rootNodes[0]),super.setDisposeFn(()=>o.destroy()),this._attachedPortal=e,this._attachedRef=o,this.attached.emit(o),o}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}attachDomPortal=e=>{const i=e.element,o=this._document.createComment("dom-portal");e.setAttachedHost(this),i.parentNode.insertBefore(o,i),this._getRootNode().appendChild(i),this._attachedPortal=e,super.setDisposeFn(()=>{o.parentNode&&o.parentNode.replaceChild(i,o)})};_getRootNode(){const e=this._viewContainerRef.element.nativeElement;return e.nodeType===e.ELEMENT_NODE?e:e.parentNode}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:[0,"cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],features:[be]})}return t})(),Ff=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({})}return t})();function yr(t,...n){return n.length?n.some(e=>t[e]):t.altKey||t.shiftKey||t.ctrlKey||t.metaKey}const $3=V3();function dS(t){return new Jce(t.get(qd),t.get(et))}class Jce{_viewportRuler;_previousHTMLStyles={top:"",left:""};_previousScrollPosition;_isEnabled=!1;_document;constructor(n,e){this._viewportRuler=n,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=oi(-this._previousScrollPosition.left),n.style.top=oi(-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||"",s=o.scrollBehavior||"";this._isEnabled=!1,i.left=this._previousHTMLStyles.left,i.top=this._previousHTMLStyles.top,n.classList.remove("cdk-global-scrollblock"),$3&&(i.scrollBehavior=o.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),$3&&(i.scrollBehavior=r,o.scrollBehavior=s)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;const e=this._document.documentElement,i=this._viewportRuler.getViewportSize();return e.scrollHeight>i.height||e.scrollWidth>i.width}}class tde{_scrollDispatcher;_ngZone;_viewportRuler;_config;_scrollSubscription=null;_overlayRef;_initialScrollPosition;constructor(n,e,i,o){this._scrollDispatcher=n,this._ngZone=e,this._viewportRuler=i,this._config=o}attach(n){this._overlayRef=n}enable(){if(this._scrollSubscription)return;const n=this._scrollDispatcher.scrolled(0).pipe(Tn(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}_detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}}class uS{enable(){}disable(){}attach(){}}function hS(t,n){return n.some(e=>t.bottome.bottom||t.righte.right)}function W3(t,n){return n.some(e=>t.tope.bottom||t.lefte.right)}function Bf(t,n){return new nde(t.get(mb),t.get(qd),t.get(_e),n)}class nde{_scrollDispatcher;_viewportRuler;_ngZone;_config;_scrollSubscription=null;_overlayRef;constructor(n,e,i,o){this._scrollDispatcher=n,this._viewportRuler=e,this._ngZone=i,this._config=o}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();hS(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 ide=(()=>{class t{_injector=D(He);constructor(){}noop=()=>new uS;close=e=>function ede(t,n){return new tde(t.get(mb),t.get(_e),t.get(qd),n)}(this._injector,e);block=()=>dS(this._injector);reposition=e=>Bf(this._injector,e);static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();class Vf{positionStrategy;scrollStrategy=new uS;panelClass="";hasBackdrop=!1;backdropClass="cdk-overlay-dark-backdrop";disableAnimations;width;height;minWidth;minHeight;maxWidth;maxHeight;direction;disposeOnNavigation=!1;usePopover;eventPredicate;constructor(n){if(n){const e=Object.keys(n);for(const i of e)void 0!==n[i]&&(this[i]=n[i])}}}class ode{connectionPair;scrollableViewProperties;constructor(n,e){this.connectionPair=n,this.scrollableViewProperties=e}}let G3=(()=>{class t{_attachedOverlays=[];_document=D(et);_isAttached=!1;constructor(){}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()}canReceiveEvent(e,i,o){return!(o.observers.length<1)&&(!e.eventPredicate||e.eventPredicate(i))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),rde=(()=>{class t extends G3{_ngZone=D(_e);_renderer=D(Lo).createRenderer(null,null);_cleanupKeydown;add(e){super.add(e),this._isAttached||(this._ngZone.runOutsideAngular(()=>{this._cleanupKeydown=this._renderer.listen("body","keydown",this._keydownListener)}),this._isAttached=!0)}detach(){this._isAttached&&(this._cleanupKeydown?.(),this._isAttached=!1)}_keydownListener=e=>{const i=this._attachedOverlays;for(let o=i.length-1;o>-1;o--){const r=i[o];if(this.canReceiveEvent(r,e,r._keydownEvents)){this._ngZone.run(()=>r._keydownEvents.next(e));break}}};static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),sde=(()=>{class t extends G3{_platform=D(Yn);_ngZone=D(_e);_renderer=D(Lo).createRenderer(null,null);_cursorOriginalValue;_cursorStyleIsSet=!1;_pointerDownEventTarget=null;_cleanups;add(e){if(super.add(e),!this._isAttached){const i=this._document.body,o={capture:!0},r=this._renderer;this._cleanups=this._ngZone.runOutsideAngular(()=>[r.listen(i,"pointerdown",this._pointerDownListener,o),r.listen(i,"click",this._clickListener,o),r.listen(i,"auxclick",this._clickListener,o),r.listen(i,"contextmenu",this._clickListener,o)]),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=i.style.cursor,i.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){this._isAttached&&(this._cleanups?.forEach(e=>e()),this._cleanups=void 0,this._platform.IOS&&this._cursorStyleIsSet&&(this._document.body.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1)}_pointerDownListener=e=>{this._pointerDownEventTarget=vr(e)};_clickListener=e=>{const i=vr(e),o="click"===e.type&&this._pointerDownEventTarget?this._pointerDownEventTarget:i;this._pointerDownEventTarget=null;const r=this._attachedOverlays.slice();for(let s=r.length-1;s>-1;s--){const a=r[s],l=a._outsidePointerEvents;if(a.hasAttached()&&this.canReceiveEvent(a,e,l)){if(q3(a.overlayElement,i)||q3(a.overlayElement,o))break;this._ngZone?this._ngZone.run(()=>l.next(e)):l.next(e)}}};static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function q3(t,n){const e=typeof ShadowRoot<"u"&&ShadowRoot;let i=n;for(;i;){if(i===t)return!0;i=e&&i instanceof ShadowRoot?i.host:i.parentNode}return!1}let K3=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["ng-component"]],hostAttrs:["cdk-overlay-style-loader",""],decls:0,vars:0,template:function(i,o){},styles:[".cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed}@layer cdk-overlay{.cdk-overlay-container{z-index:1000}}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute}@layer cdk-overlay{.cdk-global-overlay-wrapper{z-index:1000}}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;display:flex;max-width:100%;max-height:100%}@layer cdk-overlay{.cdk-overlay-pane{z-index:1000}}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);opacity:0;touch-action:manipulation}@layer cdk-overlay{.cdk-overlay-backdrop{z-index:1000;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}}@media(prefers-reduced-motion){.cdk-overlay-backdrop{transition-duration:1ms}}.cdk-overlay-backdrop-showing{opacity:1}@media(forced-colors: active){.cdk-overlay-backdrop-showing{opacity:.6}}@layer cdk-overlay{.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing,.cdk-high-contrast-active .cdk-overlay-transparent-backdrop{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;display:flex;flex-direction:column;min-width:1px;min-height:1px}@layer cdk-overlay{.cdk-overlay-connected-position-bounding-box{z-index:1000}}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.cdk-overlay-popover{background:none;border:none;padding:0;outline:0;overflow:visible;position:fixed;pointer-events:none;white-space:normal;color:inherit;text-decoration:none;width:100%;height:100%;inset:auto;top:0;left:0}.cdk-overlay-popover::backdrop{display:none}.cdk-overlay-popover .cdk-overlay-backdrop{position:fixed;z-index:auto}\n"],encapsulation:2,changeDetection:0})}return t})(),fS=(()=>{class t{_platform=D(Yn);_containerElement;_document=D(et);_styleLoader=D(zo);constructor(){}ngOnDestroy(){this._containerElement?.remove()}getContainerElement(){return this._loadStyles(),this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const e="cdk-overlay-container";if(this._platform.isBrowser||U3()){const o=this._document.querySelectorAll(`.${e}[platform="server"], .${e}[platform="test"]`);for(let r=0;r{const n=this.element;clearTimeout(this._fallbackTimeout),this._cleanupTransitionEnd?.(),this._cleanupTransitionEnd=this._renderer.listen(n,"transitionend",this.dispose),this._fallbackTimeout=setTimeout(this.dispose,500),n.style.pointerEvents="none",n.classList.remove("cdk-overlay-backdrop-showing")})}dispose=()=>{clearTimeout(this._fallbackTimeout),this._cleanupClick?.(),this._cleanupTransitionEnd?.(),this._cleanupClick=this._cleanupTransitionEnd=this._fallbackTimeout=void 0,this.element.remove()}}function pS(t){return t&&1===t.nodeType}class Y3{_portalOutlet;_host;_pane;_config;_ngZone;_keyboardDispatcher;_document;_location;_outsideClickDispatcher;_animationsDisabled;_injector;_renderer;_backdropClick=new me;_attachments=new me;_detachments=new me;_positionStrategy;_scrollStrategy;_locationChanges=pt.EMPTY;_backdropRef=null;_detachContentMutationObserver;_detachContentAfterRenderRef;_disposed=!1;_previousHostParent;_keydownEvents=new me;_outsidePointerEvents=new me;_afterNextRenderRef;constructor(n,e,i,o,r,s,a,l,c,f=!1,m,g){this._portalOutlet=n,this._host=e,this._pane=i,this._config=o,this._ngZone=r,this._keyboardDispatcher=s,this._document=a,this._location=l,this._outsideClickDispatcher=c,this._animationsDisabled=f,this._injector=m,this._renderer=g,o.scrollStrategy&&(this._scrollStrategy=o.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=o.positionStrategy}get overlayElement(){return this._pane}get backdropElement(){return this._backdropRef?.element||null}get hostElement(){return this._host}get eventPredicate(){return this._config?.eventPredicate||null}attach(n){if(this._disposed)return null;this._attachHost();const e=this._portalOutlet.attach(n);return this._positionStrategy?.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._afterNextRenderRef?.destroy(),this._afterNextRenderRef=Vi(()=>{this.hasAttached()&&this.updatePosition()},{injector:this._injector}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._completeDetachContent(),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._completeDetachContent(),this._keyboardDispatcher.remove(this),this._detachContentWhenEmpty(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),n}dispose(){if(this._disposed)return;const n=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._backdropRef?.dispose(),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._afterNextRenderRef?.destroy(),this._previousHostParent=this._pane=this._host=this._backdropRef=null,n&&this._detachments.next(),this._detachments.complete(),this._completeDetachContent(),this._disposed=!0}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=oi(this._config.width),n.height=oi(this._config.height),n.minWidth=oi(this._config.minWidth),n.minHeight=oi(this._config.minHeight),n.maxWidth=oi(this._config.maxWidth),n.maxHeight=oi(this._config.maxHeight)}_togglePointerEvents(n){this._pane.style.pointerEvents=n?"":"none"}_attachHost(){if(!this._host.parentElement){const n=this._config.usePopover?this._positionStrategy?.getPopoverInsertionPoint?.():null;pS(n)?n.after(this._host):"parent"===n?.type?n.element.appendChild(this._host):this._previousHostParent?.appendChild(this._host)}if(this._config.usePopover)try{this._host.showPopover()}catch{}}_attachBackdrop(){const n="cdk-overlay-backdrop-showing";this._backdropRef?.dispose(),this._backdropRef=new ade(this._document,this._renderer,this._ngZone,e=>{this._backdropClick.next(e)}),this._animationsDisabled&&this._backdropRef.element.classList.add("cdk-overlay-backdrop-noop-animation"),this._config.backdropClass&&this._toggleClasses(this._backdropRef.element,this._config.backdropClass,!0),this._config.usePopover?this._host.prepend(this._backdropRef.element):this._host.parentElement.insertBefore(this._backdropRef.element,this._host),!this._animationsDisabled&&typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>this._backdropRef?.element.classList.add(n))}):this._backdropRef.element.classList.add(n)}_updateStackingOrder(){!this._config.usePopover&&this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){this._animationsDisabled?(this._backdropRef?.dispose(),this._backdropRef=null):this._backdropRef?.detach()}_toggleClasses(n,e,i){const o=_b(e||[]).filter(r=>!!r);o.length&&(i?n.classList.add(...o):n.classList.remove(...o))}_detachContentWhenEmpty(){let n=!1;try{this._detachContentAfterRenderRef=Vi(()=>{n=!0,this._detachContent()},{injector:this._injector})}catch(e){if(n)throw e;this._detachContent()}globalThis.MutationObserver&&this._pane&&(this._detachContentMutationObserver||=new globalThis.MutationObserver(()=>{this._detachContent()}),this._detachContentMutationObserver.observe(this._pane,{childList:!0}))}_detachContent(){(!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()),this._completeDetachContent())}_completeDetachContent(){this._detachContentAfterRenderRef?.destroy(),this._detachContentAfterRenderRef=void 0,this._detachContentMutationObserver?.disconnect()}_disposeScrollStrategy(){const n=this._scrollStrategy;n?.disable(),n?.detach?.()}}const X3="cdk-overlay-connected-position-bounding-box",lde=/([A-Za-z%]+)$/;function xb(t,n){return new cde(n,t.get(qd),t.get(et),t.get(Yn),t.get(fS))}class cde{_viewportRuler;_document;_platform;_overlayContainer;_overlayRef;_isInitialRender=!1;_lastBoundingBoxSize={width:0,height:0};_isPushed=!1;_canPush=!0;_growAfterOpen=!1;_hasFlexibleDimensions=!0;_positionLocked=!1;_originRect;_overlayRect;_viewportRect;_containerRect;_viewportMargin=0;_scrollables=[];_preferredPositions=[];_origin;_pane;_isDisposed=!1;_boundingBox=null;_lastPosition=null;_lastScrollVisibility=null;_positionChanges=new me;_resizeSubscription=pt.EMPTY;_offsetX=0;_offsetY=0;_transformOriginSelector;_appliedPanelClasses=[];_previousPushAmount=null;_popoverLocation="global";positionChanges=this._positionChanges;get positions(){return this._preferredPositions}constructor(n,e,i,o,r){this._viewportRuler=e,this._document=i,this._platform=o,this._overlayContainer=r,this.setOrigin(n)}attach(n){this._validatePositions(),n.hostElement.classList.add(X3),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._getContainerRect();const n=this._originRect,e=this._overlayRect,i=this._viewportRect,o=this._containerRect,r=[];let s;for(let a of this._preferredPositions){let l=this._getOriginPoint(n,o,a),c=this._getOverlayPoint(l,e,a),f=this._getOverlayFit(c,e,i,a);if(f.isCompletelyWithinViewport)return this._isPushed=!1,void this._applyPosition(a,l);this._canFitWithFlexibleDimensions(f,c,i)?r.push({position:a,origin:l,overlayRect:e,boundingBoxRect:this._calculateBoundingBoxRect(l,a)}):(!s||s.overlayFit.visibleAreal&&(l=f,a=c)}return this._isPushed=!1,void this._applyPosition(a.position,a.origin)}if(this._canPush)return this._isPushed=!0,void this._applyPosition(s.position,s.originPoint);this._applyPosition(s.position,s.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&Zl(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(X3),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;n?(this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._getContainerRect(),this._applyPosition(n,this._getOriginPoint(this._originRect,this._containerRect,n))):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}withPopoverLocation(n){return this._popoverLocation=n,this}getPopoverInsertionPoint(){return"global"===this._popoverLocation?null:"inline"!==this._popoverLocation?this._popoverLocation:this._origin instanceof Re?this._origin.nativeElement:pS(this._origin)?this._origin:null}_getOriginPoint(n,e,i){let o,r;if("center"==i.originX)o=n.left+n.width/2;else{const s=this._isRtl()?n.right:n.left,a=this._isRtl()?n.left:n.right;o="start"==i.originX?s:a}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=Q3(e);let{x:s,y:a}=n,l=this._getOffset(o,"x"),c=this._getOffset(o,"y");l&&(s+=l),c&&(a+=c);let g=0-a,_=a+r.height-i.height,w=this._subtractOverflows(r.width,0-s,s+r.width-i.width),k=this._subtractOverflows(r.height,g,_),T=w*k;return{visibleArea:T,isCompletelyWithinViewport:r.width*r.height===T,fitsInViewportVertically:k===r.height,fitsInViewportHorizontally:w==r.width}}_canFitWithFlexibleDimensions(n,e,i){if(this._hasFlexibleDimensions){const o=i.bottom-e.y,r=i.right-e.x,s=Z3(this._overlayRef.getConfig().minHeight),a=Z3(this._overlayRef.getConfig().minWidth);return(n.fitsInViewportVertically||null!=s&&s<=o)&&(n.fitsInViewportHorizontally||null!=a&&a<=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=Q3(e),r=this._viewportRect,s=Math.max(n.x+o.width-r.width,0),a=Math.max(n.y+o.height-r.height,0),l=Math.max(r.top-i.top-n.y,0),c=Math.max(r.left-i.left-n.x,0);let f=0,m=0;return f=o.width<=r.width?c||-s:n.xw&&!this._isInitialRender&&!this._growAfterOpen&&(s=n.y-w/2)}const l="start"===e.overlayX&&!o||"end"===e.overlayX&&o;let f,m,g;if("end"===e.overlayX&&!o||"start"===e.overlayX&&o)g=i.width-n.x+this._getViewportMarginStart()+this._getViewportMarginEnd(),f=n.x-this._getViewportMarginStart();else if(l)m=n.x,f=i.right-n.x-this._getViewportMarginEnd();else{const _=Math.min(i.right-n.x+i.left,n.x),w=this._lastBoundingBoxSize.width;f=2*_,m=n.x-_,f>w&&!this._isInitialRender&&!this._growAfterOpen&&(m=n.x-w/2)}return{top:s,left:m,bottom:a,right:g,width:f,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="auto",o.maxHeight=o.maxWidth="",o.width=o.height="100%";else{const r=this._overlayRef.getConfig().maxHeight,s=this._overlayRef.getConfig().maxWidth;o.width=oi(i.width),o.height=oi(i.height),o.top=oi(i.top)||"auto",o.bottom=oi(i.bottom)||"auto",o.left=oi(i.left)||"auto",o.right=oi(i.right)||"auto",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=oi(r)),s&&(o.maxWidth=oi(s))}this._lastBoundingBoxSize=i,Zl(this._boundingBox.style,o)}_resetBoundingBoxStyles(){Zl(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){Zl(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(n,e){const i={},o=this._hasExactPosition(),r=this._hasFlexibleDimensions,s=this._overlayRef.getConfig();if(o){const f=this._viewportRuler.getViewportScrollPosition();Zl(i,this._getExactOverlayY(e,n,f)),Zl(i,this._getExactOverlayX(e,n,f))}else i.position="static";let a="",l=this._getOffset(e,"x"),c=this._getOffset(e,"y");l&&(a+=`translateX(${l}px) `),c&&(a+=`translateY(${c}px)`),i.transform=a.trim(),s.maxHeight&&(o?i.maxHeight=oi(s.maxHeight):r&&(i.maxHeight="")),s.maxWidth&&(o?i.maxWidth=oi(s.maxWidth):r&&(i.maxWidth="")),Zl(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=oi(r.y),o}_getExactOverlayX(n,e,i){let s,o={left:"",right:""},r=this._getOverlayPoint(e,this._overlayRect,n);return this._isPushed&&(r=this._pushOverlayOnScreen(r,this._overlayRect,i)),s=this._isRtl()?"end"===n.overlayX?"left":"right":"end"===n.overlayX?"right":"left","right"===s?o.right=this._document.documentElement.clientWidth-(r.x+this._overlayRect.width)+"px":o.left=oi(r.x),o}_getScrollVisibility(){const n=this._getOriginRect(),e=this._pane.getBoundingClientRect(),i=this._scrollables.map(o=>o.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:W3(n,i),isOriginOutsideView:hS(n,i),isOverlayClipped:W3(e,i),isOverlayOutsideView:hS(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._getViewportMarginTop(),left:i.left+this._getViewportMarginStart(),right:i.left+n-this._getViewportMarginEnd(),bottom:i.top+e-this._getViewportMarginBottom(),width:n-this._getViewportMarginStart()-this._getViewportMarginEnd(),height:e-this._getViewportMarginTop()-this._getViewportMarginBottom()}}_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&&_b(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=[])}_getViewportMarginStart(){return"number"==typeof this._viewportMargin?this._viewportMargin:this._viewportMargin?.start??0}_getViewportMarginEnd(){return"number"==typeof this._viewportMargin?this._viewportMargin:this._viewportMargin?.end??0}_getViewportMarginTop(){return"number"==typeof this._viewportMargin?this._viewportMargin:this._viewportMargin?.top??0}_getViewportMarginBottom(){return"number"==typeof this._viewportMargin?this._viewportMargin:this._viewportMargin?.bottom??0}_getOriginRect(){const n=this._origin;if(n instanceof Re)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}}_getContainerRect(){const n=this._overlayRef.getConfig().usePopover&&"global"!==this._popoverLocation,e=this._overlayContainer.getContainerElement();n&&(e.style.display="block");const i=e.getBoundingClientRect();return n&&(e.style.display=""),i}}function Zl(t,n){for(let e in n)n.hasOwnProperty(e)&&(t[e]=n[e]);return t}function Z3(t){if("number"!=typeof t&&null!=t){const[n,e]=t.split(lde);return e&&"px"!==e?null:parseFloat(n)}return t||null}function Q3(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 J3="cdk-global-overlay-wrapper";function Sb(t){return new ude}class ude{_overlayRef;_cssPosition="static";_topOffset="";_bottomOffset="";_alignItems="";_xPosition="";_xOffset="";_width="";_height="";_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(J3),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:s,maxHeight:a}=i,l=!("100%"!==o&&"100vw"!==o||s&&"100%"!==s&&"100vw"!==s),c=!("100%"!==r&&"100vh"!==r||a&&"100%"!==a&&"100vh"!==a),f=this._xPosition,m=this._xOffset,g="rtl"===this._overlayRef.getConfig().direction;let _="",w="",k="";l?k="flex-start":"center"===f?(k="center",g?w=m:_=m):g?"left"===f||"end"===f?(k="flex-end",_=m):("right"===f||"start"===f)&&(k="flex-start",w=m):"left"===f||"start"===f?(k="flex-start",_=m):("right"===f||"end"===f)&&(k="flex-end",w=m),n.position=this._cssPosition,n.marginLeft=l?"0":_,n.marginTop=c?"0":this._topOffset,n.marginBottom=this._bottomOffset,n.marginRight=l?"0":w,e.justifyContent=k,e.alignItems=c?"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(J3),i.justifyContent=i.alignItems=n.marginTop=n.marginBottom=n.marginLeft=n.marginRight=n.position="",this._overlayRef=null,this._isDisposed=!0}}let hde=(()=>{class t{_injector=D(He);constructor(){}global(){return Sb()}flexibleConnectedTo(e){return xb(this._injector,e)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const mS=new Z("OVERLAY_DEFAULT_CONFIG");function Xd(t,n){t.get(zo).load(K3);const e=t.get(fS),i=t.get(et),o=t.get(ni),r=t.get(lr),s=t.get(br),a=t.get(Qn,null,{optional:!0})||t.get(Lo).createRenderer(null,null),l=new Vf(n),c=t.get(mS,null,{optional:!0})?.usePopover??!0;l.direction=l.direction||s.value,l.usePopover="showPopover"in i.body&&(n?.usePopover??c);const f=i.createElement("div"),m=i.createElement("div");f.id=o.getId("cdk-overlay-"),f.classList.add("cdk-overlay-pane"),m.appendChild(f),l.usePopover&&(m.setAttribute("popover","manual"),m.classList.add("cdk-overlay-popover"));const g=l.usePopover?l.positionStrategy?.getPopoverInsertionPoint?.():null;return pS(g)?g.after(m):"parent"===g?.type?g.element.appendChild(m):e.getContainerElement().appendChild(m),new Y3(new Lce(f,r,t),m,f,l,t.get(_e),t.get(rde),i,t.get(Fd),t.get(sde),n?.disableAnimations??"NoopAnimations"===t.get(Rm,null,{optional:!0}),t.get(zn),a)}let fde=(()=>{class t{scrollStrategies=D(ide);_positionBuilder=D(hde);_injector=D(He);constructor(){}create(e){return Xd(this._injector,e)}position(){return this._positionBuilder}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const pde=[{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"}],mde=new Z("cdk-connected-overlay-scroll-strategy",{providedIn:"root",factory:()=>{const t=D(He);return()=>Bf(t)}});let kb=(()=>{class t{elementRef=D(Re);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"]})}return t})();const gde=new Z("cdk-connected-overlay-default-config");let Db,e4=(()=>{class t{_dir=D(br,{optional:!0});_injector=D(He);_overlayRef;_templatePortal;_backdropSubscription=pt.EMPTY;_attachSubscription=pt.EMPTY;_detachSubscription=pt.EMPTY;_positionSubscription=pt.EMPTY;_offsetX;_offsetY;_position;_scrollStrategyFactory=D(mde);_ngZone=D(_e);origin;positions;positionStrategy;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)}width;height;minWidth;minHeight;backdropClass;panelClass;viewportMargin=0;scrollStrategy;open=!1;disableClose=!1;transformOriginSelector;hasBackdrop=!1;lockPosition=!1;flexibleDimensions=!1;growAfterOpen=!1;push=!1;disposeOnNavigation=!1;usePopover;matchWidth=!1;set _config(e){"string"!=typeof e&&this._assignConfig(e)}backdropClick=new we;positionChange=new we;attach=new we;detach=new we;overlayKeydown=new we;overlayOutsideClick=new we;constructor(){const e=D(Ti),i=D(Ei),o=D(gde,{optional:!0}),r=D(mS,{optional:!0});this.usePopover=!1===r?.usePopover?null:"global",this._templatePortal=new Yl(e,i),this.scrollStrategy=this._scrollStrategyFactory(),o&&this._assignConfig(o)}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?.dispose()}ngOnChanges(e){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef?.updateSize({width:this._getWidth(),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=pde);const e=this._overlayRef=Xd(this._injector,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&&!yr(i)&&(i.preventDefault(),this.detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(i=>{const o=this._getOriginElement(),r=vr(i);(!o||o!==r&&!o.contains(r))&&this.overlayOutsideClick.next(i)})}_buildConfig(){const e=this._position=this.positionStrategy||this._createPositionStrategy(),i=new Vf({direction:this._dir||"ltr",positionStrategy:e,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop,disposeOnNavigation:this.disposeOnNavigation,usePopover:!!this.usePopover});return(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._getOrigin()).withPositions(i).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector).withPopoverLocation(null===this.usePopover?"global":this.usePopover)}_createPositionStrategy(){const e=xb(this._injector,this._getOrigin());return this._updatePositionStrategy(e),e}_getOrigin(){return this.origin instanceof kb?this.origin.elementRef:this.origin}_getOriginElement(){return this.origin instanceof kb?this.origin.elementRef.nativeElement:this.origin instanceof Re?this.origin.nativeElement:typeof Element<"u"&&this.origin instanceof Element?this.origin:null}_getWidth(){return this.width?this.width:this.matchWidth?this._getOriginElement()?.getBoundingClientRect?.().width:void 0}attachOverlay(){this._overlayRef||this._createOverlay();const e=this._overlayRef;e.getConfig().hasBackdrop=this.hasBackdrop,e.updateSize({width:this._getWidth()}),e.hasAttached()||e.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=e.backdropClick().subscribe(i=>this.backdropClick.emit(i)):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe(function Vce(t,n=!1){return Mn((e,i)=>{let o=0;e.subscribe(dn(i,r=>{const s=t(r,o++);(s||n)&&i.next(r),!s&&i.complete()}))})}(()=>this.positionChange.observers.length>0)).subscribe(i=>{this._ngZone.run(()=>this.positionChange.emit(i)),0===this.positionChange.observers.length&&this._positionSubscription.unsubscribe()})),this.open=!0}detachOverlay(){this._overlayRef?.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.open=!1}_assignConfig(e){this.origin=e.origin??this.origin,this.positions=e.positions??this.positions,this.positionStrategy=e.positionStrategy??this.positionStrategy,this.offsetX=e.offsetX??this.offsetX,this.offsetY=e.offsetY??this.offsetY,this.width=e.width??this.width,this.height=e.height??this.height,this.minWidth=e.minWidth??this.minWidth,this.minHeight=e.minHeight??this.minHeight,this.backdropClass=e.backdropClass??this.backdropClass,this.panelClass=e.panelClass??this.panelClass,this.viewportMargin=e.viewportMargin??this.viewportMargin,this.scrollStrategy=e.scrollStrategy??this.scrollStrategy,this.disableClose=e.disableClose??this.disableClose,this.transformOriginSelector=e.transformOriginSelector??this.transformOriginSelector,this.hasBackdrop=e.hasBackdrop??this.hasBackdrop,this.lockPosition=e.lockPosition??this.lockPosition,this.flexibleDimensions=e.flexibleDimensions??this.flexibleDimensions,this.growAfterOpen=e.growAfterOpen??this.growAfterOpen,this.push=e.push??this.push,this.disposeOnNavigation=e.disposeOnNavigation??this.disposeOnNavigation,this.usePopover=e.usePopover??this.usePopover,this.matchWidth=e.matchWidth??this.matchWidth}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{origin:[0,"cdkConnectedOverlayOrigin","origin"],positions:[0,"cdkConnectedOverlayPositions","positions"],positionStrategy:[0,"cdkConnectedOverlayPositionStrategy","positionStrategy"],offsetX:[0,"cdkConnectedOverlayOffsetX","offsetX"],offsetY:[0,"cdkConnectedOverlayOffsetY","offsetY"],width:[0,"cdkConnectedOverlayWidth","width"],height:[0,"cdkConnectedOverlayHeight","height"],minWidth:[0,"cdkConnectedOverlayMinWidth","minWidth"],minHeight:[0,"cdkConnectedOverlayMinHeight","minHeight"],backdropClass:[0,"cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:[0,"cdkConnectedOverlayPanelClass","panelClass"],viewportMargin:[0,"cdkConnectedOverlayViewportMargin","viewportMargin"],scrollStrategy:[0,"cdkConnectedOverlayScrollStrategy","scrollStrategy"],open:[0,"cdkConnectedOverlayOpen","open"],disableClose:[0,"cdkConnectedOverlayDisableClose","disableClose"],transformOriginSelector:[0,"cdkConnectedOverlayTransformOriginOn","transformOriginSelector"],hasBackdrop:[2,"cdkConnectedOverlayHasBackdrop","hasBackdrop",De],lockPosition:[2,"cdkConnectedOverlayLockPosition","lockPosition",De],flexibleDimensions:[2,"cdkConnectedOverlayFlexibleDimensions","flexibleDimensions",De],growAfterOpen:[2,"cdkConnectedOverlayGrowAfterOpen","growAfterOpen",De],push:[2,"cdkConnectedOverlayPush","push",De],disposeOnNavigation:[2,"cdkConnectedOverlayDisposeOnNavigation","disposeOnNavigation",De],usePopover:[0,"cdkConnectedOverlayUsePopover","usePopover"],matchWidth:[2,"cdkConnectedOverlayMatchWidth","matchWidth",De],_config:[0,"cdkConnectedOverlay","_config"]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],features:[_i]})}return t})(),Zd=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({providers:[fde],imports:[ii,Ff,j3,j3]})}return t})(),gS=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["ng-component"]],exportAs:["cdkVisuallyHidden"],decls:0,vars:0,template:function(i,o){},styles:[".cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}\n"],encapsulation:2,changeDetection:0})}return t})();function Qd(t){return function _de(){if(void 0===Db&&(Db=null,typeof window<"u")){const t=window;void 0!==t.trustedTypes&&(Db=t.trustedTypes.createPolicy("angular#components",{createHTML:n=>n}))}return Db}()?.createHTML(t)||t}function _S(t){return Tn((n,e)=>t<=e)}function Mb(t,n=Pf){return Mn((e,i)=>{let o=null,r=null,s=null;const a=()=>{if(o){o.unsubscribe(),o=null;const c=r;r=null,i.next(c)}};function l(){const c=s+t,f=n.now();if(f{r=c,s=n.now(),o||(o=n.schedule(l,t),i.add(o))},()=>{a(),i.complete()},void 0,()=>{r=o=null}))})}const t4=new Set;let Ql,bS=(()=>{class t{_platform=D(Yn);_nonce=D(xC,{optional:!0});_matchMedia;constructor(){this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):yde}matchMedia(e){return(this._platform.WEBKIT||this._platform.BLINK)&&function vde(t,n){if(!t4.has(t))try{Ql||(Ql=document.createElement("style"),n&&Ql.setAttribute("nonce",n),Ql.setAttribute("type","text/css"),document.head.appendChild(Ql)),Ql.sheet&&(Ql.sheet.insertRule(`@media ${t} {body{ }}`,0),t4.add(t))}catch(e){console.error(e)}}(e,this._nonce),this._matchMedia(e)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function yde(t){return{matches:"all"===t||""===t,media:t,addListener:()=>{},removeListener:()=>{}}}let n4=(()=>{class t{_mediaMatcher=D(bS);_zone=D(_e);_queries=new Map;_destroySubject=new me;constructor(){}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(e){return i4(_b(e)).some(o=>this._registerQuery(o).mql.matches)}observe(e){let r=kx(i4(_b(e)).map(s=>this._registerQuery(s).observable));return r=Ts(r.pipe(Cn(1)),r.pipe(_S(1),Mb(0))),r.pipe(Se(s=>{const a={matches:!1,breakpoints:{}};return s.forEach(({matches:l,query:c})=>{a.matches=a.matches||l,a.breakpoints[c]=l}),a}))}_registerQuery(e){if(this._queries.has(e))return this._queries.get(e);const i=this._mediaMatcher.matchMedia(e),r={observable:new Ft(s=>{const a=l=>this._zone.run(()=>s.next(l));return i.addListener(a),()=>{i.removeListener(a)}}).pipe(si(i),Se(({matches:s})=>({query:e,matches:s})),fn(this._destroySubject)),mql:i};return this._queries.set(e,r),r}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function i4(t){return t.map(n=>n.split(",")).reduce((n,e)=>n.concat(e)).map(n=>n.trim())}let o4=(()=>{class t{create(e){return typeof MutationObserver>"u"?null:new MutationObserver(e)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),wde=(()=>{class t{_mutationObserverFactory=D(o4);_observedElements=new Map;_ngZone=D(_e);constructor(){}ngOnDestroy(){this._observedElements.forEach((e,i)=>this._cleanupObserver(i))}observe(e){const i=Ps(e);return new Ft(o=>{const s=this._observeElement(i).pipe(Se(a=>a.filter(l=>!function Cde(t){if("characterData"===t.type&&t.target instanceof Comment)return!0;if("childList"===t.type){for(let n=0;n!!a.length)).subscribe(a=>{this._ngZone.run(()=>{o.next(a)})});return()=>{s.unsubscribe(),this._unobserveElement(i)}})}_observeElement(e){return this._ngZone.runOutsideAngular(()=>{if(this._observedElements.has(e))this._observedElements.get(e).count++;else{const i=new me,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 \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),xde=(()=>{class t{_contentObserver=D(wde);_elementRef=D(Re);event=new we;get disabled(){return this._disabled}set disabled(e){this._disabled=e,this._disabled?this._unsubscribe():this._subscribe()}_disabled=!1;get debounce(){return this._debounce}set debounce(e){this._debounce=Of(e),this._subscribe()}_debounce;_currentSubscription=null;constructor(){}ngAfterContentInit(){!this._currentSubscription&&!this.disabled&&this._subscribe()}ngOnDestroy(){this._unsubscribe()}_subscribe(){this._unsubscribe();const e=this._contentObserver.observe(this._elementRef);this._currentSubscription=(this.debounce?e.pipe(Mb(this.debounce)):e).subscribe(this.event)}_unsubscribe(){this._currentSubscription?.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","cdkObserveContent",""]],inputs:{disabled:[2,"cdkObserveContentDisabled","disabled",De],debounce:"debounce"},outputs:{event:"cdkObserveContent"},exportAs:["cdkObserveContent"]})}return t})(),r4=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({providers:[o4]})}return t})(),s4=(()=>{class t{_platform=D(Yn);constructor(){}isDisabled(e){return e.hasAttribute("disabled")}isVisible(e){return function kde(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 Sde(t){try{return t.frameElement}catch{return null}}(function Ade(t){return t.ownerDocument&&t.ownerDocument.defaultView||window}(e));if(i&&(-1===l4(i)||!this.isVisible(i)))return!1;let o=e.nodeName.toLowerCase(),r=l4(e);return e.hasAttribute("contenteditable")?-1!==r:!("iframe"===o||"object"===o||this._platform.WEBKIT&&this._platform.IOS&&!function Ide(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 Ode(t){return!function Mde(t){return function Ede(t){return"input"==t.nodeName.toLowerCase()}(t)&&"hidden"==t.type}(t)&&(function Dde(t){let n=t.nodeName.toLowerCase();return"input"===n||"select"===n||"button"===n||"textarea"===n}(t)||function Tde(t){return function Pde(t){return"a"==t.nodeName.toLowerCase()}(t)&&t.hasAttribute("href")}(t)||t.hasAttribute("contenteditable")||a4(t))}(e)&&!this.isDisabled(e)&&(i?.ignoreVisibility||this.isVisible(e))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function a4(t){if(!t.hasAttribute("tabindex")||void 0===t.tabIndex)return!1;let n=t.getAttribute("tabindex");return!(!n||isNaN(parseInt(n,10)))}function l4(t){if(!a4(t))return null;const n=parseInt(t.getAttribute("tabindex")||"",10);return isNaN(n)?-1:n}class c4{_element;_checker;_ngZone;_document;_injector;_startAnchor=null;_endAnchor=null;_hasAttached=!1;startAnchorListener=()=>this.focusLastTabbableElement();endAnchorListener=()=>this.focusFirstTabbableElement();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))}_enabled=!0;constructor(n,e,i,o,r=!1,s){this._element=n,this._checker=e,this._ngZone=i,this._document=o,this._injector=s,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._injector?Vi(n,{injector:this._injector}):setTimeout(n)}}let Rde=(()=>{class t{_checker=D(s4);_ngZone=D(_e);_document=D(et);_injector=D(He);constructor(){D(zo).load(gS)}create(e,i=!1){return new c4(e,this._checker,this._ngZone,this._document,i,this._injector)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Fde=new Z("liveAnnouncerElement",{providedIn:"root",factory:()=>null}),Nde=new Z("LIVE_ANNOUNCER_DEFAULT_OPTIONS");let Lde=0,d4=(()=>{class t{_ngZone=D(_e);_defaultOptions=D(Nde,{optional:!0});_liveElement;_document=D(et);_sanitizer=D(Mx);_previousTimeout;_currentPromise;_currentResolve;constructor(){const e=D(Fde,{optional:!0});this._liveElement=e||this._createLiveElement()}announce(e,...i){const o=this._defaultOptions;let r,s;return 1===i.length&&"number"==typeof i[0]?s=i[0]:[r,s]=i,this.clear(),clearTimeout(this._previousTimeout),r||(r=o&&o.politeness?o.politeness:"polite"),null==s&&o&&(s=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(a=>this._currentResolve=a)),clearTimeout(this._previousTimeout),this._previousTimeout=setTimeout(()=>{e&&"string"!=typeof e?function bde(t,n,e){const i=e.sanitize(bi.HTML,n);t.innerHTML=Qd(i||"")}(this._liveElement,e,this._sanitizer):this._liveElement.textContent=e,"number"==typeof s&&(this._previousTimeout=setTimeout(()=>this.clear(),s)),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{_platform=D(Yn);_hasCheckedHighContrastMode=!1;_document=D(et);_breakpointSubscription;constructor(){this._breakpointSubscription=D(n4).observe("(forced-colors: active)").subscribe(()=>{this._hasCheckedHighContrastMode&&(this._hasCheckedHighContrastMode=!1,this._applyBodyHighContrastModeCssClasses())})}getHighContrastMode(){if(!this._platform.isBrowser)return Jl.NONE;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 Jl.WHITE_ON_BLACK;case"rgb(255,255,255)":case"rgb(255,250,239)":return Jl.BLACK_ON_WHITE}return Jl.NONE}ngOnDestroy(){this._breakpointSubscription.unsubscribe()}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){const e=this._document.body.classList;e.remove(vS,u4,h4),this._hasCheckedHighContrastMode=!0;const i=this.getHighContrastMode();i===Jl.BLACK_ON_WHITE?e.add(vS,u4):i===Jl.WHITE_ON_BLACK&&e.add(vS,h4)}}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),f4=(()=>{class t{constructor(){D(Bde)._applyBodyHighContrastModeCssClasses()}static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({imports:[r4]})}return t})();function Hde(t,n){return t===n}function yS(t){return 0===t.buttons||0===t.detail}function CS(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)}function wS(t){return function jde(){if(null==Hf&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>Hf=!0}))}finally{Hf=Hf||!1}return Hf}()?t:!!t.capture}const Ude=new Z("cdk-input-modality-detector-options"),zde={ignoreKeys:[18,17,224,91,16]},xS={passive:!0,capture:!0};let $de=(()=>{class t{_platform=D(Yn);_listenerCleanups;modalityDetected;modalityChanged;get mostRecentModality(){return this._modality.value}_mostRecentTarget=null;_modality=new ki(null);_options;_lastTouchMs=0;_onKeydown=e=>{this._options?.ignoreKeys?.some(i=>i===e.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=vr(e))};_onMousedown=e=>{Date.now()-this._lastTouchMs<650||(this._modality.next(yS(e)?"keyboard":"mouse"),this._mostRecentTarget=vr(e))};_onTouchstart=e=>{CS(e)?this._modality.next("keyboard"):(this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=vr(e))};constructor(){const e=D(_e),i=D(et),o=D(Ude,{optional:!0});if(this._options={...zde,...o},this.modalityDetected=this._modality.pipe(_S(1)),this.modalityChanged=this.modalityDetected.pipe(function Vde(t,n=Ga){return t=t??Hde,Mn((e,i)=>{let o,r=!0;e.subscribe(dn(i,s=>{const a=n(s);(r||!t(o,a))&&(r=!1,o=a,i.next(s))}))})}()),this._platform.isBrowser){const r=D(Lo).createRenderer(null,null);this._listenerCleanups=e.runOutsideAngular(()=>[r.listen(i,"keydown",this._onKeydown,xS),r.listen(i,"mousedown",this._onMousedown,xS),r.listen(i,"touchstart",this._onTouchstart,xS)])}}ngOnDestroy(){this._modality.complete(),this._listenerCleanups?.forEach(e=>e())}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var Tb=function(t){return t[t.IMMEDIATE=0]="IMMEDIATE",t[t.EVENTUAL=1]="EVENTUAL",t}(Tb||{});const Wde=new Z("cdk-focus-monitor-default-options"),Eb=wS({passive:!0,capture:!0});let ec=(()=>{class t{_ngZone=D(_e);_platform=D(Yn);_inputModalityDetector=D($de);_origin=null;_lastFocusOrigin=null;_windowFocused=!1;_windowFocusTimeoutId;_originTimeoutId;_originFromTouchInteraction=!1;_elementInfo=new Map;_monitoredElementCount=0;_rootNodeFocusListenerCount=new Map;_detectionMode;_windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=setTimeout(()=>this._windowFocused=!1)};_document=D(et);_stopInputModalityDetector=new me;constructor(){const e=D(Wde,{optional:!0});this._detectionMode=e?.detectionMode||Tb.IMMEDIATE}_rootNodeFocusAndBlurListener=e=>{for(let o=vr(e);o;o=o.parentElement)"focus"===e.type?this._onFocus(e,o):this._onBlur(e,o)};monitor(e,i=!1){const o=Ps(e);if(!this._platform.isBrowser||1!==o.nodeType)return ae();const r=function Fce(t){if(function Rce(){if(null==aS){const t=typeof document<"u"?document.head:null;aS=!(!t||!t.createShadowRoot&&!t.attachShadow)}return aS}()){const n=t.getRootNode?t.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&n instanceof ShadowRoot)return n}return null}(o)||this._document,s=this._elementInfo.get(o);if(s)return i&&(s.checkChildren=!0),s.subject;const a={checkChildren:i,subject:new me,rootNode:r};return this._elementInfo.set(o,a),this._registerGlobalListeners(a),a.subject}stopMonitoring(e){const i=Ps(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=Ps(e);r===this._document.activeElement?this._getClosestElementsInfo(r).forEach(([a,l])=>this._originChanged(a,i,l)):(this._setOrigin(i),"function"==typeof r.focus&&r.focus(o))}ngOnDestroy(){this._elementInfo.forEach((e,i)=>this.stopMonitoring(i))}_getWindow(){return this._document.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 this._detectionMode===Tb.EVENTUAL||!!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,this._detectionMode===Tb.IMMEDIATE&&(clearTimeout(this._originTimeoutId),this._originTimeoutId=setTimeout(()=>this._origin=null,this._originFromTouchInteraction?650:1))})}_onFocus(e,i){const o=this._elementInfo.get(i),r=vr(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,Eb),i.addEventListener("blur",this._rootNodeFocusAndBlurListener,Eb)}),this._rootNodeFocusListenerCount.set(i,o+1),1===++this._monitoredElementCount&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(fn(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,Eb),i.removeEventListener("blur",this._rootNodeFocusAndBlurListener,Eb),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 s=0;s{class t{_elementRef=D(Re);_focusMonitor=D(ec);_monitorSubscription;_focusOrigin=null;cdkFocusChange=new we;constructor(){}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?.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","cdkMonitorElementFocus",""],["","cdkMonitorSubtreeFocus",""]],outputs:{cdkFocusChange:"cdkFocusChange"},exportAs:["cdkMonitorFocus"]})}return t})();function qde(t,n){}class jf{viewContainerRef;injector;id;role="dialog";panelClass="";hasBackdrop=!0;backdropClass="";disableClose=!1;closePredicate;width="";height="";minWidth;minHeight;maxWidth;maxHeight;positionStrategy;data=null;direction;ariaDescribedBy=null;ariaLabelledBy=null;ariaLabel=null;ariaModal=!1;autoFocus="first-tabbable";restoreFocus=!0;scrollStrategy;closeOnNavigation=!0;closeOnDestroy=!0;closeOnOverlayDetachments=!0;disableAnimations=!1;providers;container;templateContext}let m4=(()=>{class t extends bb{_elementRef=D(Re);_focusTrapFactory=D(Rde);_config;_interactivityChecker=D(s4);_ngZone=D(_e);_focusMonitor=D(ec);_renderer=D(Qn);_changeDetectorRef=D(Jt);_injector=D(He);_platform=D(Yn);_document=D(et);_portalOutlet;_focusTrapped=new me;_focusTrap=null;_elementFocusedBeforeDialogWasOpened=null;_closeInteractionType=null;_ariaLabelledByQueue=[];_isDestroyed=!1;constructor(){super(),this._config=D(jf,{optional:!0})||new jf,this._config.ariaLabelledBy&&this._ariaLabelledByQueue.push(this._config.ariaLabelledBy)}_addAriaLabelledBy(e){this._ariaLabelledByQueue.push(e),this._changeDetectorRef.markForCheck()}_removeAriaLabelledBy(e){const i=this._ariaLabelledByQueue.indexOf(e);i>-1&&(this._ariaLabelledByQueue.splice(i,1),this._changeDetectorRef.markForCheck())}_contentAttached(){this._initializeFocusTrap(),this._captureInitialFocus()}_captureInitialFocus(){this._trapFocus()}ngOnDestroy(){this._focusTrapped.complete(),this._isDestroyed=!0,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}attachDomPortal=e=>{this._portalOutlet.hasAttached();const i=this._portalOutlet.attachDomPortal(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=()=>{r(),s(),e.removeAttribute("tabindex")},r=this._renderer.listen(e,"blur",o),s=this._renderer.listen(e,"mousedown",o)})),e.focus(i)}_focusByCssSelector(e,i){let o=this._elementRef.nativeElement.querySelector(e);o&&this._forceFocus(o,i)}_trapFocus(e){this._isDestroyed||Vi(()=>{const i=this._elementRef.nativeElement;switch(this._config.autoFocus){case!1:case"dialog":this._containsFocus()||i.focus(e);break;case!0:case"first-tabbable":this._focusTrap?.focusInitialElement(e)||this._focusDialogContainer(e);break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]',e);break;default:this._focusByCssSelector(this._config.autoFocus,e)}this._focusTrapped.next()},{injector:this._injector})}_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=lS(),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(e){this._elementRef.nativeElement.focus?.(e)}_containsFocus(){const e=this._elementRef.nativeElement,i=lS();return e===i||e.contains(i)}_initializeFocusTrap(){this._platform.isBrowser&&(this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._document&&(this._elementFocusedBeforeDialogWasOpened=lS()))}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["cdk-dialog-container"]],viewQuery:function(i,o){if(1&i&&ot(Xl,7),2&i){let r;he(r=fe())&&(o._portalOutlet=r.first)}},hostAttrs:["tabindex","-1",1,"cdk-dialog-container"],hostVars:6,hostBindings:function(i,o){2&i&&$e("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:[be],decls:1,vars:0,consts:[["cdkPortalOutlet",""]],template:function(i,o){1&i&&it(0,qde,0,0,"ng-template",0)},dependencies:[Xl],styles:[".cdk-dialog-container{display:block;width:100%;height:100%;min-height:inherit;max-height:inherit}\n"],encapsulation:2})}return t})();class SS{overlayRef;config;componentInstance=null;componentRef=null;containerInstance;disableClose;closed=new me;backdropClick;keydownEvents;outsidePointerEvents;id;_detachSubscription;constructor(n,e){this.overlayRef=n,this.config=e,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&&!yr(i)&&(i.preventDefault(),this.close(void 0,{focusOrigin:"keyboard"}))}),this.backdropClick.subscribe(()=>{!this.disableClose&&this._canClose()?this.close(void 0,{focusOrigin:"mouse"}):this.containerInstance._recaptureFocus?.()}),this._detachSubscription=n.detachments().subscribe(()=>{!1!==e.closeOnOverlayDetachments&&this.close()})}close(n,e){if(this._canClose(n)){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}_canClose(n){const e=this.config;return!!this.containerInstance&&(!e.closePredicate||e.closePredicate(n,e,this.componentInstance))}}const Kde=new Z("DialogScrollStrategy",{providedIn:"root",factory:()=>{const t=D(He);return()=>dS(t)}}),Yde=new Z("DialogData"),Xde=new Z("DefaultDialogConfig");function Zde(t){const n=yt(t),e=new we;return{valueSignal:n,get value(){return n()},change:e,ngOnDestroy(){e.complete()}}}let g4=(()=>{class t{_injector=D(He);_defaultOptions=D(Xde,{optional:!0});_parentDialog=D(t,{optional:!0,skipSelf:!0});_overlayContainer=D(fS);_idGenerator=D(ni);_openDialogsAtThisLevel=[];_afterAllClosedAtThisLevel=new me;_afterOpenedAtThisLevel=new me;_ariaHiddenElements=new Map;_scrollStrategy=D(Kde);get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}afterAllClosed=ya(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(si(void 0)));constructor(){}open(e,i){(i={...this._defaultOptions||new jf,...i}).id=i.id||this._idGenerator.getId("cdk-dialog-"),i.id&&this.getDialogById(i.id);const r=this._getOverlayConfig(i),s=Xd(this._injector,r),a=new SS(s,i),l=this._attachContainer(s,a,i);if(a.containerInstance=l,!this.openDialogs.length){const c=this._overlayContainer.getContainerElement();l._focusTrapped?l._focusTrapped.pipe(Cn(1)).subscribe(()=>{this._hideNonDialogContentFromAssistiveTechnology(c)}):this._hideNonDialogContentFromAssistiveTechnology(c)}return this._attachDialogContent(e,a,l,i),this.openDialogs.push(a),a.closed.subscribe(()=>this._removeOpenDialog(a,!0)),this.afterOpened.next(a),a}closeAll(){kS(this.openDialogs,e=>e.close())}getDialogById(e){return this.openDialogs.find(i=>i.id===e)}ngOnDestroy(){kS(this._openDialogsAtThisLevel,e=>{!1===e.config.closeOnDestroy&&this._removeOpenDialog(e,!1)}),kS(this._openDialogsAtThisLevel,e=>e.close()),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete(),this._openDialogsAtThisLevel=[]}_getOverlayConfig(e){const i=new Vf({positionStrategy:e.positionStrategy||Sb().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,disableAnimations:e.disableAnimations});return e.backdropClass&&(i.backdropClass=e.backdropClass),i}_attachContainer(e,i,o){const r=o.injector||o.viewContainerRef?.injector,s=[{provide:jf,useValue:o},{provide:SS,useValue:i},{provide:Y3,useValue:e}];let a;o.container?"function"==typeof o.container?a=o.container:(a=o.container.type,s.push(...o.container.providers(o))):a=m4;const l=new Kd(a,o.viewContainerRef,He.create({parent:r||this._injector,providers:s}));return e.attach(l).instance}_attachDialogContent(e,i,o,r){if(e instanceof Ti){const s=this._createInjector(r,i,o,void 0);let a={$implicit:r.data,dialogRef:i};r.templateContext&&(a={...a,..."function"==typeof r.templateContext?r.templateContext():r.templateContext}),o.attachTemplatePortal(new Yl(e,null,a,s))}else{const s=this._createInjector(r,i,o,this._injector),a=o.attachComponentPortal(new Kd(e,r.viewContainerRef,s));i.componentRef=a,i.componentInstance=a.instance}}_createInjector(e,i,o,r){const s=e.injector||e.viewContainerRef?.injector,a=[{provide:Yde,useValue:e.data},{provide:SS,useValue:i}];return e.providers&&("function"==typeof e.providers?a.push(...e.providers(i,e,o)):a.push(...e.providers)),e.direction&&(!s||!s.get(br,null,{optional:!0}))&&a.push({provide:br,useValue:Zde(e.direction)}),He.create({parent:s||r,providers:a})}_removeOpenDialog(e,i){const o=this.openDialogs.indexOf(e);o>-1&&(this.openDialogs.splice(o,1),this.openDialogs.length||(this._ariaHiddenElements.forEach((r,s)=>{r?s.setAttribute("aria-hidden",r):s.removeAttribute("aria-hidden")}),this._ariaHiddenElements.clear(),i&&this._getAfterAllClosed().next()))}_hideNonDialogContentFromAssistiveTechnology(e){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")&&!r.hasAttribute("popover")&&(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 \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function kS(t,n){let e=t.length;for(;e--;)n(t[e])}let Qde=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({providers:[g4],imports:[Zd,Ff,f4,Ff]})}return t})();const Jde=new Z("MATERIAL_ANIMATIONS");let _4=null;function b4(){return D(Jde,{optional:!0})?.animationsDisabled||"NoopAnimations"===D(Rm,{optional:!0})?"di-disabled":(_4??=D(bS).matchMedia("(prefers-reduced-motion)").matches,_4?"reduced-motion":"enabled")}function ci(){return"enabled"!==b4()}function Cr(...t){const n=df(t),e=function Zre(t,n){return"number"==typeof bx(t)?t.pop():n}(t,1/0),i=t;return i.length?1===i.length?ji(i[0]):Vd(e)(Kn(i,n)):Oi}function eue(t,n){}class nn{viewContainerRef;injector;id;role="dialog";panelClass="";hasBackdrop=!0;backdropClass="";disableClose=!1;closePredicate;width="";height="";minWidth;minHeight;maxWidth;maxHeight;position;data=null;direction;ariaDescribedBy=null;ariaLabelledBy=null;ariaLabel=null;ariaModal=!1;autoFocus="first-tabbable";restoreFocus=!0;delayFocusTrap=!0;scrollStrategy;closeOnNavigation=!0;enterAnimationDuration;exitAnimationDuration}const DS="mdc-dialog--open",v4="mdc-dialog--opening",y4="mdc-dialog--closing";let C4=(()=>{class t extends m4{_animationStateChanged=new we;_animationsEnabled=!ci();_actionSectionCount=0;_hostElement=this._elementRef.nativeElement;_enterAnimationDuration=this._animationsEnabled?x4(this._config.enterAnimationDuration)??150:0;_exitAnimationDuration=this._animationsEnabled?x4(this._config.exitAnimationDuration)??75:0;_animationTimer=null;_contentAttached(){super._contentAttached(),this._startOpenAnimation()}_startOpenAnimation(){this._animationStateChanged.emit({state:"opening",totalTime:this._enterAnimationDuration}),this._animationsEnabled?(this._hostElement.style.setProperty(w4,`${this._enterAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(v4,DS)),this._waitForAnimationToComplete(this._enterAnimationDuration,this._finishDialogOpen)):(this._hostElement.classList.add(DS),Promise.resolve().then(()=>this._finishDialogOpen()))}_startExitAnimation(){this._animationStateChanged.emit({state:"closing",totalTime:this._exitAnimationDuration}),this._hostElement.classList.remove(DS),this._animationsEnabled?(this._hostElement.style.setProperty(w4,`${this._exitAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(y4)),this._waitForAnimationToComplete(this._exitAnimationDuration,this._finishDialogClose)):Promise.resolve().then(()=>this._finishDialogClose())}_updateActionSectionCount(e){this._actionSectionCount+=e,this._changeDetectorRef.markForCheck()}_finishDialogOpen=()=>{this._clearAnimationClasses(),this._openAnimationDone(this._enterAnimationDuration)};_finishDialogClose=()=>{this._clearAnimationClasses(),this._animationStateChanged.emit({state:"closed",totalTime:this._exitAnimationDuration})};_clearAnimationClasses(){this._hostElement.classList.remove(v4,y4)}_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()})}_captureInitialFocus(){this._config.delayFocusTrap||this._trapFocus()}_openAnimationDone(e){this._config.delayFocusTrap&&this._trapFocus(),this._animationStateChanged.next({state:"opened",totalTime:e})}ngOnDestroy(){super.ngOnDestroy(),null!==this._animationTimer&&clearTimeout(this._animationTimer)}attachComponentPortal(e){const i=super.attachComponentPortal(e);return i.location.nativeElement.classList.add("mat-mdc-dialog-component-host"),i}static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275cmp=re({type:t,selectors:[["mat-dialog-container"]],hostAttrs:["tabindex","-1",1,"mat-mdc-dialog-container","mdc-dialog"],hostVars:10,hostBindings:function(i,o){2&i&&(ur("id",o._config.id),$e("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),Ie("_mat-animation-noopable",!o._animationsEnabled)("mat-mdc-dialog-container-with-actions",o._actionSectionCount>0))},features:[be],decls:3,vars:0,consts:[[1,"mat-mdc-dialog-inner-container","mdc-dialog__container"],[1,"mat-mdc-dialog-surface","mdc-dialog__surface"],["cdkPortalOutlet",""]],template:function(i,o){1&i&&(h(0,"div",0)(1,"div",1),it(2,eue,0,0,"ng-template",2),u()())},dependencies:[Xl],styles:['.mat-mdc-dialog-container{width:100%;height:100%;display:block;box-sizing:border-box;max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit;outline:0}.cdk-overlay-pane.mat-mdc-dialog-panel{max-width:var(--mat-dialog-container-max-width, 560px);min-width:var(--mat-dialog-container-min-width, 280px)}@media(max-width: 599px){.cdk-overlay-pane.mat-mdc-dialog-panel{max-width:var(--mat-dialog-container-small-max-width, calc(100vw - 32px))}}.mat-mdc-dialog-inner-container{display:flex;flex-direction:row;align-items:center;justify-content:space-around;box-sizing:border-box;height:100%;opacity:0;transition:opacity linear var(--mat-dialog-transition-duration, 0ms);max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit}.mdc-dialog--closing .mat-mdc-dialog-inner-container{transition:opacity 75ms linear;transform:none}.mdc-dialog--open .mat-mdc-dialog-inner-container{opacity:1}._mat-animation-noopable .mat-mdc-dialog-inner-container{transition:none}.mat-mdc-dialog-surface{display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;box-sizing:border-box;width:100%;height:100%;position:relative;overflow-y:auto;outline:0;transform:scale(0.8);transition:transform var(--mat-dialog-transition-duration, 0ms) cubic-bezier(0, 0, 0.2, 1);max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit;box-shadow:var(--mat-dialog-container-elevation-shadow, none);border-radius:var(--mat-dialog-container-shape, var(--mat-sys-corner-extra-large, 4px));background-color:var(--mat-dialog-container-color, var(--mat-sys-surface, white))}[dir=rtl] .mat-mdc-dialog-surface{text-align:right}.mdc-dialog--open .mat-mdc-dialog-surface,.mdc-dialog--closing .mat-mdc-dialog-surface{transform:none}._mat-animation-noopable .mat-mdc-dialog-surface{transition:none}.mat-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}.mat-mdc-dialog-title{display:block;position:relative;flex-shrink:0;box-sizing:border-box;margin:0 0 1px;padding:var(--mat-dialog-headline-padding, 6px 24px 13px)}.mat-mdc-dialog-title::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}[dir=rtl] .mat-mdc-dialog-title{text-align:right}.mat-mdc-dialog-container .mat-mdc-dialog-title{color:var(--mat-dialog-subhead-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mat-dialog-subhead-font, var(--mat-sys-headline-small-font, inherit));line-height:var(--mat-dialog-subhead-line-height, var(--mat-sys-headline-small-line-height, 1.5rem));font-size:var(--mat-dialog-subhead-size, var(--mat-sys-headline-small-size, 1rem));font-weight:var(--mat-dialog-subhead-weight, var(--mat-sys-headline-small-weight, 400));letter-spacing:var(--mat-dialog-subhead-tracking, var(--mat-sys-headline-small-tracking, 0.03125em))}.mat-mdc-dialog-content{display:block;flex-grow:1;box-sizing:border-box;margin:0;overflow:auto;max-height:65vh}.mat-mdc-dialog-content>:first-child{margin-top:0}.mat-mdc-dialog-content>:last-child{margin-bottom:0}.mat-mdc-dialog-container .mat-mdc-dialog-content{color:var(--mat-dialog-supporting-text-color, var(--mat-sys-on-surface-variant, rgba(0, 0, 0, 0.6)));font-family:var(--mat-dialog-supporting-text-font, var(--mat-sys-body-medium-font, inherit));line-height:var(--mat-dialog-supporting-text-line-height, var(--mat-sys-body-medium-line-height, 1.5rem));font-size:var(--mat-dialog-supporting-text-size, var(--mat-sys-body-medium-size, 1rem));font-weight:var(--mat-dialog-supporting-text-weight, var(--mat-sys-body-medium-weight, 400));letter-spacing:var(--mat-dialog-supporting-text-tracking, var(--mat-sys-body-medium-tracking, 0.03125em))}.mat-mdc-dialog-container .mat-mdc-dialog-content{padding:var(--mat-dialog-content-padding, 20px 24px)}.mat-mdc-dialog-container-with-actions .mat-mdc-dialog-content{padding:var(--mat-dialog-with-actions-content-padding, 20px 24px 0)}.mat-mdc-dialog-container .mat-mdc-dialog-title+.mat-mdc-dialog-content{padding-top:0}.mat-mdc-dialog-actions{display:flex;position:relative;flex-shrink:0;flex-wrap:wrap;align-items:center;box-sizing:border-box;min-height:52px;margin:0;border-top:1px solid rgba(0,0,0,0);padding:var(--mat-dialog-actions-padding, 16px 24px);justify-content:var(--mat-dialog-actions-alignment, flex-end)}@media(forced-colors: active){.mat-mdc-dialog-actions{border-top-color:CanvasText}}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-start,.mat-mdc-dialog-actions[align=start]{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}.mat-mdc-dialog-component-host{display:contents}\n'],encapsulation:2})}return t})();const w4="--mat-dialog-transition-duration";function x4(t){return null==t?null:"number"==typeof t?t:t.endsWith("ms")?Of(t.substring(0,t.length-2)):t.endsWith("s")?1e3*Of(t.substring(0,t.length-1)):"0"===t?0:null}var Pb=function(t){return t[t.OPEN=0]="OPEN",t[t.CLOSING=1]="CLOSING",t[t.CLOSED=2]="CLOSED",t}(Pb||{});class Bt{_ref;_config;_containerInstance;componentInstance;componentRef=null;disableClose;id;_afterOpened=new oo(1);_beforeClosed=new oo(1);_result;_closeFallbackTimeout;_state=Pb.OPEN;_closeInteractionType;constructor(n,e,i){this._ref=n,this._config=e,this._containerInstance=i,this.disableClose=e.disableClose,this.id=n.id,n.addPanelClass("mat-mdc-dialog-panel"),i._animationStateChanged.pipe(Tn(o=>"opened"===o.state),Cn(1)).subscribe(()=>{this._afterOpened.next(),this._afterOpened.complete()}),i._animationStateChanged.pipe(Tn(o=>"closed"===o.state),Cn(1)).subscribe(()=>{clearTimeout(this._closeFallbackTimeout),this._finishDialogClose()}),n.overlayRef.detachments().subscribe(()=>{this._beforeClosed.next(this._result),this._beforeClosed.complete(),this._finishDialogClose()}),Cr(this.backdropClick(),this.keydownEvents().pipe(Tn(o=>27===o.keyCode&&!this.disableClose&&!yr(o)))).subscribe(o=>{this.disableClose||(o.preventDefault(),S4(this,"keydown"===o.type?"keyboard":"mouse"))})}close(n){const e=this._config.closePredicate;e&&!e(n,this._config,this.componentInstance)||(this._result=n,this._containerInstance._animationStateChanged.pipe(Tn(i=>"closing"===i.state),Cn(1)).subscribe(i=>{this._beforeClosed.next(n),this._beforeClosed.complete(),this._ref.overlayRef.detachBackdrop(),this._closeFallbackTimeout=setTimeout(()=>this._finishDialogClose(),i.totalTime+100)}),this._state=Pb.CLOSING,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=Pb.CLOSED,this._ref.close(this._result,{focusOrigin:this._closeInteractionType}),this.componentInstance=null}}function S4(t,n,e){return t._closeInteractionType=n,t.close(e)}const En=new Z("MatMdcDialogData"),k4=new Z("mat-mdc-dialog-default-options"),iue=new Z("mat-mdc-dialog-scroll-strategy",{providedIn:"root",factory:()=>{const t=D(He);return()=>dS(t)}});let Ot=(()=>{class t{_defaultOptions=D(k4,{optional:!0});_scrollStrategy=D(iue);_parentDialog=D(t,{optional:!0,skipSelf:!0});_idGenerator=D(ni);_injector=D(He);_dialog=D(g4);_animationsDisabled=ci();_openDialogsAtThisLevel=[];_afterAllClosedAtThisLevel=new me;_afterOpenedAtThisLevel=new me;dialogConfigClass=nn;_dialogRefConstructor;_dialogContainerType;_dialogDataToken;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}afterAllClosed=ya(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(si(void 0)));constructor(){this._dialogRefConstructor=Bt,this._dialogContainerType=C4,this._dialogDataToken=En}open(e,i){let o;(i={...this._defaultOptions||new nn,...i}).id=i.id||this._idGenerator.getId("mat-mdc-dialog-"),i.scrollStrategy=i.scrollStrategy||this._scrollStrategy();const r=this._dialog.open(e,{...i,positionStrategy:Sb().centerHorizontally().centerVertically(),disableClose:!0,closePredicate:void 0,closeOnDestroy:!1,closeOnOverlayDetachments:!1,disableAnimations:this._animationsDisabled||"0"===i.enterAnimationDuration?.toLocaleString()||"0"===i.exitAnimationDuration?.toString(),container:{type:this._dialogContainerType,providers:()=>[{provide:this.dialogConfigClass,useValue:i},{provide:jf,useValue:i}]},templateContext:()=>({dialogRef:o}),providers:(s,a,l)=>(o=new this._dialogRefConstructor(s,i,l),o.updatePosition(i?.position),[{provide:this._dialogContainerType,useValue:l},{provide:this._dialogDataToken,useValue:a.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 s=this.openDialogs.indexOf(o);s>-1&&(this.openDialogs.splice(s,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 \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),D4=(()=>{class t{dialogRef=D(Bt,{optional:!0});_elementRef=D(Re);_dialog=D(Ot);ariaLabel;type="button";dialogResult;_matDialogClose;constructor(){}ngOnInit(){this.dialogRef||(this.dialogRef=E4(this._elementRef,this._dialog.openDialogs))}ngOnChanges(e){const i=e._matDialogClose||e._matDialogCloseResult;i&&(this.dialogResult=i.currentValue)}_onButtonClick(e){S4(this.dialogRef,0===e.screenX&&0===e.screenY?"keyboard":"mouse",this.dialogResult)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","mat-dialog-close",""],["","matDialogClose",""]],hostVars:2,hostBindings:function(i,o){1&i&&F("click",function(s){return o._onButtonClick(s)}),2&i&&$e("aria-label",o.ariaLabel||null)("type",o.type)},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],type:"type",dialogResult:[0,"mat-dialog-close","dialogResult"],_matDialogClose:[0,"matDialogClose","_matDialogClose"]},exportAs:["matDialogClose"],features:[_i]})}return t})(),M4=(()=>{class t{_dialogRef=D(Bt,{optional:!0});_elementRef=D(Re);_dialog=D(Ot);constructor(){}ngOnInit(){this._dialogRef||(this._dialogRef=E4(this._elementRef,this._dialog.openDialogs)),this._dialogRef&&Promise.resolve().then(()=>{this._onAdd()})}ngOnDestroy(){this._dialogRef?._containerInstance&&Promise.resolve().then(()=>{this._onRemove()})}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t})}return t})(),MS=(()=>{class t extends M4{id=D(ni).getId("mat-mdc-dialog-title-");_onAdd(){this._dialogRef._containerInstance?._addAriaLabelledBy?.(this.id)}_onRemove(){this._dialogRef?._containerInstance?._removeAriaLabelledBy?.(this.id)}static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275dir=de({type:t,selectors:[["","mat-dialog-title",""],["","matDialogTitle",""]],hostAttrs:[1,"mat-mdc-dialog-title","mdc-dialog__title"],hostVars:1,hostBindings:function(i,o){2&i&&ur("id",o.id)},inputs:{id:"id"},exportAs:["matDialogTitle"],features:[be]})}return t})(),Jd=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","mat-dialog-content",""],["mat-dialog-content"],["","matDialogContent",""]],hostAttrs:[1,"mat-mdc-dialog-content","mdc-dialog__content"],features:[fI([H3])]})}return t})(),T4=(()=>{class t extends M4{align;_onAdd(){this._dialogRef._containerInstance?._updateActionSectionCount?.(1)}_onRemove(){this._dialogRef._containerInstance?._updateActionSectionCount?.(-1)}static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275dir=de({type:t,selectors:[["","mat-dialog-actions",""],["mat-dialog-actions"],["","matDialogActions",""]],hostAttrs:[1,"mat-mdc-dialog-actions","mdc-dialog__actions"],hostVars:6,hostBindings:function(i,o){2&i&&Ie("mat-mdc-dialog-actions-align-start","start"===o.align)("mat-mdc-dialog-actions-align-center","center"===o.align)("mat-mdc-dialog-actions-align-end","end"===o.align)},inputs:{align:"align"},features:[be]})}return t})();function E4(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 oue=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({providers:[Ot],imports:[Qde,Zd,Ff,ii]})}return t})();var $o=function(t){return t[t.FADING_IN=0]="FADING_IN",t[t.VISIBLE=1]="VISIBLE",t[t.FADING_OUT=2]="FADING_OUT",t[t.HIDDEN=3]="HIDDEN",t}($o||{});class rue{_renderer;element;config;_animationForciblyDisabledThroughCss;state=$o.HIDDEN;constructor(n,e,i,o=!1){this._renderer=n,this.element=e,this.config=i,this._animationForciblyDisabledThroughCss=o}fadeOut(){this._renderer.fadeOutRipple(this)}}const P4=wS({passive:!0,capture:!0});class sue{_events=new Map;addHandler(n,e,i,o){const r=this._events.get(e);if(r){const s=r.get(i);s?s.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,P4)})}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,P4)))}_delegateEventHandler=n=>{const e=vr(n);e&&this._events.get(n.type)?.forEach((i,o)=>{(o===e||o.contains(e))&&i.forEach(r=>r.handleEvent(n))})}}const Ib={enterDuration:225,exitDuration:150},I4=wS({passive:!0,capture:!0}),O4=["mousedown","touchstart"],A4=["mouseup","mouseleave","touchend","touchcancel"];let lue=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["ng-component"]],hostAttrs:["mat-ripple-style-loader",""],decls:0,vars:0,template:function(i,o){},styles:[".mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale3d(0, 0, 0);background-color:var(--mat-ripple-color, color-mix(in srgb, var(--mat-sys-on-surface) 10%, transparent))}@media(forced-colors: active){.mat-ripple-element{display:none}}.cdk-drag-preview .mat-ripple-element,.cdk-drag-placeholder .mat-ripple-element{display:none}\n"],encapsulation:2,changeDetection:0})}return t})();class Uf{_target;_ngZone;_platform;_containerElement;_triggerElement=null;_isPointerDown=!1;_activeRipples=new Map;_mostRecentTransientRipple=null;_lastTouchStartEvent;_pointerUpEventsRegistered=!1;_containerRect=null;static _eventManager=new sue;constructor(n,e,i,o,r){this._target=n,this._ngZone=e,this._platform=o,o.isBrowser&&(this._containerElement=Ps(i)),r&&r.get(zo).load(lue)}fadeInRipple(n,e,i={}){const o=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),r={...Ib,...i.animation};i.centered&&(n=o.left+o.width/2,e=o.top+o.height/2);const s=i.radius||function cue(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),a=n-o.left,l=e-o.top,c=r.enterDuration,f=document.createElement("div");f.classList.add("mat-ripple-element"),f.style.left=a-s+"px",f.style.top=l-s+"px",f.style.height=2*s+"px",f.style.width=2*s+"px",null!=i.color&&(f.style.backgroundColor=i.color),f.style.transitionDuration=`${c}ms`,this._containerElement.appendChild(f);const m=window.getComputedStyle(f),_=m.transitionDuration,w="none"===m.transitionProperty||"0s"===_||"0s, 0s"===_||0===o.width&&0===o.height,k=new rue(this,f,i,w);f.style.transform="scale3d(1, 1, 1)",k.state=$o.FADING_IN,i.persistent||(this._mostRecentTransientRipple=k);let T=null;return!w&&(c||r.exitDuration)&&this._ngZone.runOutsideAngular(()=>{const I=()=>{T&&(T.fallbackTimer=null),clearTimeout(W),this._finishRippleTransition(k)},R=()=>this._destroyRipple(k),W=setTimeout(R,c+100);f.addEventListener("transitionend",I),f.addEventListener("transitioncancel",R),T={onTransitionEnd:I,onTransitionCancel:R,fallbackTimer:W}}),this._activeRipples.set(k,T),(w||!c)&&this._finishRippleTransition(k),k}fadeOutRipple(n){if(n.state===$o.FADING_OUT||n.state===$o.HIDDEN)return;const e=n.element,i={...Ib,...n.config.animation};e.style.transitionDuration=`${i.exitDuration}ms`,e.style.opacity="0",n.state=$o.FADING_OUT,(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=Ps(n);!this._platform.isBrowser||!e||e===this._triggerElement||(this._removeTriggerEvents(),this._triggerElement=e,O4.forEach(i=>{Uf._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(()=>{A4.forEach(e=>{this._triggerElement.addEventListener(e,this,I4)})}),this._pointerUpEventsRegistered=!0)}_finishRippleTransition(n){n.state===$o.FADING_IN?this._startFadeOutTransition(n):n.state===$o.FADING_OUT&&this._destroyRipple(n)}_startFadeOutTransition(n){const e=n===this._mostRecentTransientRipple,{persistent:i}=n.config;n.state=$o.VISIBLE,!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=$o.HIDDEN,null!==e&&(n.element.removeEventListener("transitionend",e.onTransitionEnd),n.element.removeEventListener("transitioncancel",e.onTransitionCancel),null!==e.fallbackTimer&&clearTimeout(e.fallbackTimer)),n.element.remove()}_onMousedown(n){const e=yS(n),i=this._lastTouchStartEvent&&Date.now(){!n.config.persistent&&(n.state===$o.VISIBLE||n.config.terminateOnPointerUp&&n.state===$o.FADING_IN)&&n.fadeOut()}))}_getActiveRipples(){return Array.from(this._activeRipples.keys())}_removeTriggerEvents(){const n=this._triggerElement;n&&(O4.forEach(e=>Uf._eventManager.removeHandler(e,n,this)),this._pointerUpEventsRegistered&&(A4.forEach(e=>n.removeEventListener(e,this,I4)),this._pointerUpEventsRegistered=!1))}}const TS=new Z("mat-ripple-global-options");let eu=(()=>{class t{_elementRef=D(Re);_animationsDisabled=ci();color;unbounded=!1;centered=!1;radius=0;animation;get disabled(){return this._disabled}set disabled(e){e&&this.fadeOutAllNonPersistent(),this._disabled=e,this._setupTriggerEventsIfEnabled()}_disabled=!1;get trigger(){return this._trigger||this._elementRef.nativeElement}set trigger(e){this._trigger=e,this._setupTriggerEventsIfEnabled()}_trigger;_rippleRenderer;_globalOptions;_isInitialized=!1;constructor(){const e=D(_e),i=D(Yn),o=D(TS,{optional:!0}),r=D(He);this._globalOptions=o||{},this._rippleRenderer=new Uf(this,e,this._elementRef,i,r)}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,...this._animationsDisabled?{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 \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(i,o){2&i&&Ie("mat-ripple-unbounded",o.unbounded)},inputs:{color:[0,"matRippleColor","color"],unbounded:[0,"matRippleUnbounded","unbounded"],centered:[0,"matRippleCentered","centered"],radius:[0,"matRippleRadius","radius"],animation:[0,"matRippleAnimation","animation"],disabled:[0,"matRippleDisabled","disabled"],trigger:[0,"matRippleTrigger","trigger"]},exportAs:["matRipple"]})}return t})();const due={capture:!0},uue=["focus","mousedown","mouseenter","touchstart"],ES="mat-ripple-loader-uninitialized",PS="mat-ripple-loader-class-name",R4="mat-ripple-loader-centered",Ob="mat-ripple-loader-disabled";let hue=(()=>{class t{_document=D(et);_animationsDisabled=ci();_globalRippleOptions=D(TS,{optional:!0});_platform=D(Yn);_ngZone=D(_e);_injector=D(He);_eventCleanups;_hosts=new Map;constructor(){const e=D(Lo).createRenderer(null,null);this._eventCleanups=this._ngZone.runOutsideAngular(()=>uue.map(i=>e.listen(this._document,i,this._onInteraction,due)))}ngOnDestroy(){const e=this._hosts.keys();for(const i of e)this.destroyRipple(i);this._eventCleanups.forEach(i=>i())}configureRipple(e,i){e.setAttribute(ES,this._globalRippleOptions?.namespace??""),(i.className||!e.hasAttribute(PS))&&e.setAttribute(PS,i.className||""),i.centered&&e.setAttribute(R4,""),i.disabled&&e.setAttribute(Ob,"")}setDisabled(e,i){const o=this._hosts.get(e);o?(o.target.rippleDisabled=i,!i&&!o.hasSetUpEvents&&(o.hasSetUpEvents=!0,o.renderer.setupTriggerEvents(e))):i?e.setAttribute(Ob,""):e.removeAttribute(Ob)}_onInteraction=e=>{const i=vr(e);if(i instanceof HTMLElement){const o=i.closest(`[${ES}="${this._globalRippleOptions?.namespace??""}"]`);o&&this._createRipple(o)}};_createRipple(e){if(!this._document||this._hosts.has(e))return;e.querySelector(".mat-ripple")?.remove();const i=this._document.createElement("span");i.classList.add("mat-ripple",e.getAttribute(PS)),e.append(i);const o=this._globalRippleOptions,r=this._animationsDisabled?0:o?.animation?.enterDuration??Ib.enterDuration,s=this._animationsDisabled?0:o?.animation?.exitDuration??Ib.exitDuration,a={rippleDisabled:this._animationsDisabled||o?.disabled||e.hasAttribute(Ob),rippleConfig:{centered:e.hasAttribute(R4),terminateOnPointerUp:o?.terminateOnPointerUp,animation:{enterDuration:r,exitDuration:s}}},l=new Uf(a,this._ngZone,i,this._platform,this._injector),c=!a.rippleDisabled;c&&l.setupTriggerEvents(e),this._hosts.set(e,{target:a,renderer:l,hasSetUpEvents:c}),e.removeAttribute(ES)}destroyRipple(e){const i=this._hosts.get(e);i&&(i.renderer._removeTriggerEvents(),this._hosts.delete(e))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),tu=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["structural-styles"]],decls:0,vars:0,template:function(i,o){},styles:['.mat-focus-indicator{position:relative}.mat-focus-indicator::before{top:0;left:0;right:0;bottom:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border-width:var(--mat-focus-indicator-border-width, 3px);border-style:var(--mat-focus-indicator-border-style, solid);border-color:var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus-visible::before{content:""}@media(forced-colors: active){html{--mat-focus-indicator-display: block}}\n'],encapsulation:2,changeDetection:0})}return t})();const fue=["mat-icon-button",""],pue=["*"],mue=new Z("MAT_BUTTON_CONFIG");function F4(t){return null==t?void 0:hr(t)}let N4=(()=>{class t{_elementRef=D(Re);_ngZone=D(_e);_animationsDisabled=ci();_config=D(mue,{optional:!0});_focusMonitor=D(ec);_cleanupClick;_renderer=D(Qn);_rippleLoader=D(hue);_isAnchor;_isFab=!1;color;get disableRipple(){return this._disableRipple}set disableRipple(e){this._disableRipple=e,this._updateRippleDisabled()}_disableRipple=!1;get disabled(){return this._disabled}set disabled(e){this._disabled=e,this._updateRippleDisabled()}_disabled=!1;ariaDisabled;disabledInteractive;tabIndex;set _tabindex(e){this.tabIndex=e}constructor(){D(zo).load(tu);const e=this._elementRef.nativeElement;this._isAnchor="A"===e.tagName,this.disabledInteractive=this._config?.disabledInteractive??!1,this.color=this._config?.color??null,this._rippleLoader?.configureRipple(e,{className:"mat-mdc-button-ripple"})}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0),this._isAnchor&&this._setupAsAnchor()}ngOnDestroy(){this._cleanupClick?.(),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)}_getAriaDisabled(){return null!=this.ariaDisabled?this.ariaDisabled:this._isAnchor?this.disabled||null:!(!this.disabled||!this.disabledInteractive)||null}_getDisabledAttribute(){return!(this.disabledInteractive||!this.disabled)||null}_updateRippleDisabled(){this._rippleLoader?.setDisabled(this._elementRef.nativeElement,this.disableRipple||this.disabled)}_getTabIndex(){return this._isAnchor&&this.disabled&&!this.disabledInteractive?-1:this.tabIndex}_setupAsAnchor(){this._cleanupClick=this._ngZone.runOutsideAngular(()=>this._renderer.listen(this._elementRef.nativeElement,"click",e=>{this.disabled&&(e.preventDefault(),e.stopImmediatePropagation())}))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,hostAttrs:[1,"mat-mdc-button-base"],hostVars:13,hostBindings:function(i,o){2&i&&($e("disabled",o._getDisabledAttribute())("aria-disabled",o._getAriaDisabled())("tabindex",o._getTabIndex()),Ze(o.color?"mat-"+o.color:""),Ie("mat-mdc-button-disabled",o.disabled)("mat-mdc-button-disabled-interactive",o.disabledInteractive)("mat-unthemed",!o.color)("_mat-animation-noopable",o._animationsDisabled))},inputs:{color:"color",disableRipple:[2,"disableRipple","disableRipple",De],disabled:[2,"disabled","disabled",De],ariaDisabled:[2,"aria-disabled","ariaDisabled",De],disabledInteractive:[2,"disabledInteractive","disabledInteractive",De],tabIndex:[2,"tabIndex","tabIndex",F4],_tabindex:[2,"tabindex","_tabindex",F4]}})}return t})(),Wo=(()=>{class t extends N4{constructor(){super(),this._rippleLoader.configureRipple(this._elementRef.nativeElement,{centered:!0})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["button","mat-icon-button",""],["a","mat-icon-button",""],["button","matIconButton",""],["a","matIconButton",""]],hostAttrs:[1,"mdc-icon-button","mat-mdc-icon-button"],exportAs:["matButton","matAnchor"],features:[be],attrs:fue,ngContentSelectors:pue,decls:4,vars:0,consts:[[1,"mat-mdc-button-persistent-ripple","mdc-icon-button__ripple"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,o){1&i&&(yi(),ca(0,"span",0),Pt(1),ca(2,"span",1)(3,"span",2))},styles:['.mat-mdc-icon-button{-webkit-user-select:none;user-select:none;display:inline-block;position:relative;box-sizing:border-box;border:none;outline:none;background-color:rgba(0,0,0,0);fill:currentColor;text-decoration:none;cursor:pointer;z-index:0;overflow:visible;border-radius:var(--mat-icon-button-container-shape, var(--mat-sys-corner-full, 50%));flex-shrink:0;text-align:center;width:var(--mat-icon-button-state-layer-size, 40px);height:var(--mat-icon-button-state-layer-size, 40px);padding:calc(calc(var(--mat-icon-button-state-layer-size, 40px) - var(--mat-icon-button-icon-size, 24px)) / 2);font-size:var(--mat-icon-button-icon-size, 24px);color:var(--mat-icon-button-icon-color, var(--mat-sys-on-surface-variant));-webkit-tap-highlight-color:rgba(0,0,0,0)}.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}.mat-mdc-icon-button .mdc-button__label,.mat-mdc-icon-button .mat-icon{z-index:1;position:relative}.mat-mdc-icon-button .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit}.mat-mdc-icon-button:focus-visible>.mat-focus-indicator::before{content:"";border-radius:inherit}.mat-mdc-icon-button .mat-ripple-element{background-color:var(--mat-icon-button-ripple-color, color-mix(in srgb, var(--mat-sys-on-surface-variant) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-icon-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-icon-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-icon-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:var(--mat-icon-button-touch-target-size, 48px);display:var(--mat-icon-button-touch-target-display, block);left:50%;width:var(--mat-icon-button-touch-target-size, 48px);transform:translate(-50%, -50%)}.mat-mdc-icon-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-icon-button[disabled],.mat-mdc-icon-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-icon-button-disabled-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-icon-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-icon-button img,.mat-mdc-icon-button svg{width:var(--mat-icon-button-icon-size, 24px);height:var(--mat-icon-button-icon-size, 24px);vertical-align:baseline}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple{border-radius:var(--mat-icon-button-container-shape, var(--mat-sys-corner-full, 50%))}.mat-mdc-icon-button[hidden]{display:none}.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}\n',"@media(forced-colors: active){.mat-mdc-button:not(.mdc-button--outlined),.mat-mdc-unelevated-button:not(.mdc-button--outlined),.mat-mdc-raised-button:not(.mdc-button--outlined),.mat-mdc-outlined-button:not(.mdc-button--outlined),.mat-mdc-button-base.mat-tonal-button,.mat-mdc-icon-button.mat-mdc-icon-button,.mat-mdc-outlined-button .mdc-button__ripple{outline:solid 1px}}\n"],encapsulation:2,changeDetection:0})}return t})(),IS=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({imports:[ii]})}return t})();const gue=["matButton",""],_ue=[[["",8,"material-icons",3,"iconPositionEnd",""],["mat-icon",3,"iconPositionEnd",""],["","matButtonIcon","",3,"iconPositionEnd",""]],"*",[["","iconPositionEnd","",8,"material-icons"],["mat-icon","iconPositionEnd",""],["","matButtonIcon","","iconPositionEnd",""]]],bue=[".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])","*",".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"],L4=new Map([["text",["mat-mdc-button"]],["filled",["mdc-button--unelevated","mat-mdc-unelevated-button"]],["elevated",["mdc-button--raised","mat-mdc-raised-button"]],["outlined",["mdc-button--outlined","mat-mdc-outlined-button"]],["tonal",["mat-tonal-button"]]]);let Pn=(()=>{class t extends N4{get appearance(){return this._appearance}set appearance(e){this.setAppearance(e||this._config?.defaultAppearance||"text")}_appearance=null;constructor(){super();const e=function vue(t){return t.hasAttribute("mat-raised-button")?"elevated":t.hasAttribute("mat-stroked-button")?"outlined":t.hasAttribute("mat-flat-button")?"filled":t.hasAttribute("mat-button")?"text":null}(this._elementRef.nativeElement);e&&this.setAppearance(e)}setAppearance(e){if(e===this._appearance)return;const i=this._elementRef.nativeElement.classList,o=this._appearance?L4.get(this._appearance):null,r=L4.get(e);o&&i.remove(...o),i.add(...r),this._appearance=e}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["button","matButton",""],["a","matButton",""],["button","mat-button",""],["button","mat-raised-button",""],["button","mat-flat-button",""],["button","mat-stroked-button",""],["a","mat-button",""],["a","mat-raised-button",""],["a","mat-flat-button",""],["a","mat-stroked-button",""]],hostAttrs:[1,"mdc-button"],inputs:{appearance:[0,"matButton","appearance"]},exportAs:["matButton","matAnchor"],features:[be],attrs:gue,ngContentSelectors:bue,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,o){1&i&&(yi(_ue),ca(0,"span",0),Pt(1),vs(2,"span",1),Pt(3,1),Ol(),Pt(4,2),ca(5,"span",2)(6,"span",3)),2&i&&Ie("mdc-button__ripple",!o._isFab)("mdc-fab__ripple",o._isFab)},styles:['.mat-mdc-button-base{text-decoration:none}.mat-mdc-button-base .mat-icon{min-height:fit-content;flex-shrink:0}@media(hover: none){.mat-mdc-button-base:hover>span.mat-mdc-button-persistent-ripple::before{opacity:0}}.mdc-button{-webkit-user-select:none;user-select:none;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;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0);padding:0 8px}.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__label{position:relative}.mat-mdc-button{padding:0 var(--mat-button-text-horizontal-padding, 12px);height:var(--mat-button-text-container-height, 40px);font-family:var(--mat-button-text-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mat-button-text-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mat-button-text-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mat-button-text-label-text-transform);font-weight:var(--mat-button-text-label-text-weight, var(--mat-sys-label-large-weight))}.mat-mdc-button,.mat-mdc-button .mdc-button__ripple{border-radius:var(--mat-button-text-container-shape, var(--mat-sys-corner-full))}.mat-mdc-button:not(:disabled){color:var(--mat-button-text-label-text-color, var(--mat-sys-primary))}.mat-mdc-button[disabled],.mat-mdc-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-button-text-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-button:has(.material-icons,mat-icon,[matButtonIcon]){padding:0 var(--mat-button-text-with-icon-horizontal-padding, 16px)}.mat-mdc-button>.mat-icon{margin-right:var(--mat-button-text-icon-spacing, 8px);margin-left:var(--mat-button-text-icon-offset, -4px)}[dir=rtl] .mat-mdc-button>.mat-icon{margin-right:var(--mat-button-text-icon-offset, -4px);margin-left:var(--mat-button-text-icon-spacing, 8px)}.mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-text-icon-offset, -4px);margin-left:var(--mat-button-text-icon-spacing, 8px)}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-text-icon-spacing, 8px);margin-left:var(--mat-button-text-icon-offset, -4px)}.mat-mdc-button .mat-ripple-element{background-color:var(--mat-button-text-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-text-state-layer-color, var(--mat-sys-primary))}.mat-mdc-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-text-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-text-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-text-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-text-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:var(--mat-button-text-touch-target-size, 48px);display:var(--mat-button-text-touch-target-display, block);left:0;right:0;transform:translateY(-50%)}.mat-mdc-unelevated-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mat-button-filled-container-height, 40px);font-family:var(--mat-button-filled-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mat-button-filled-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mat-button-filled-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mat-button-filled-label-text-transform);font-weight:var(--mat-button-filled-label-text-weight, var(--mat-sys-label-large-weight));padding:0 var(--mat-button-filled-horizontal-padding, 24px)}.mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-button-filled-icon-spacing, 8px);margin-left:var(--mat-button-filled-icon-offset, -8px)}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-button-filled-icon-offset, -8px);margin-left:var(--mat-button-filled-icon-spacing, 8px)}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-filled-icon-offset, -8px);margin-left:var(--mat-button-filled-icon-spacing, 8px)}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-filled-icon-spacing, 8px);margin-left:var(--mat-button-filled-icon-offset, -8px)}.mat-mdc-unelevated-button .mat-ripple-element{background-color:var(--mat-button-filled-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-filled-state-layer-color, var(--mat-sys-on-primary))}.mat-mdc-unelevated-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-filled-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-unelevated-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-filled-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-unelevated-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-filled-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-unelevated-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-filled-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-unelevated-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:var(--mat-button-filled-touch-target-size, 48px);display:var(--mat-button-filled-touch-target-display, block);left:0;right:0;transform:translateY(-50%)}.mat-mdc-unelevated-button:not(:disabled){color:var(--mat-button-filled-label-text-color, var(--mat-sys-on-primary));background-color:var(--mat-button-filled-container-color, var(--mat-sys-primary))}.mat-mdc-unelevated-button,.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mat-button-filled-container-shape, var(--mat-sys-corner-full))}.mat-mdc-unelevated-button[disabled],.mat-mdc-unelevated-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-button-filled-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-button-filled-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-raised-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);box-shadow:var(--mat-button-protected-container-elevation-shadow, var(--mat-sys-level1));height:var(--mat-button-protected-container-height, 40px);font-family:var(--mat-button-protected-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mat-button-protected-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mat-button-protected-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mat-button-protected-label-text-transform);font-weight:var(--mat-button-protected-label-text-weight, var(--mat-sys-label-large-weight));padding:0 var(--mat-button-protected-horizontal-padding, 24px)}.mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-button-protected-icon-spacing, 8px);margin-left:var(--mat-button-protected-icon-offset, -8px)}[dir=rtl] .mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-button-protected-icon-offset, -8px);margin-left:var(--mat-button-protected-icon-spacing, 8px)}.mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-protected-icon-offset, -8px);margin-left:var(--mat-button-protected-icon-spacing, 8px)}[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-protected-icon-spacing, 8px);margin-left:var(--mat-button-protected-icon-offset, -8px)}.mat-mdc-raised-button .mat-ripple-element{background-color:var(--mat-button-protected-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-protected-state-layer-color, var(--mat-sys-primary))}.mat-mdc-raised-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-protected-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-raised-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-protected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-raised-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-protected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-raised-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-protected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-raised-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:var(--mat-button-protected-touch-target-size, 48px);display:var(--mat-button-protected-touch-target-display, block);left:0;right:0;transform:translateY(-50%)}.mat-mdc-raised-button:not(:disabled){color:var(--mat-button-protected-label-text-color, var(--mat-sys-primary));background-color:var(--mat-button-protected-container-color, var(--mat-sys-surface))}.mat-mdc-raised-button,.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mat-button-protected-container-shape, var(--mat-sys-corner-full))}@media(hover: hover){.mat-mdc-raised-button:hover{box-shadow:var(--mat-button-protected-hover-container-elevation-shadow, var(--mat-sys-level2))}}.mat-mdc-raised-button:focus{box-shadow:var(--mat-button-protected-focus-container-elevation-shadow, var(--mat-sys-level1))}.mat-mdc-raised-button:active,.mat-mdc-raised-button:focus:active{box-shadow:var(--mat-button-protected-pressed-container-elevation-shadow, var(--mat-sys-level1))}.mat-mdc-raised-button[disabled],.mat-mdc-raised-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-button-protected-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-button-protected-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-raised-button[disabled].mat-mdc-button-disabled,.mat-mdc-raised-button.mat-mdc-button-disabled.mat-mdc-button-disabled{box-shadow:var(--mat-button-protected-disabled-container-elevation-shadow, var(--mat-sys-level0))}.mat-mdc-raised-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mat-button-outlined-container-height, 40px);font-family:var(--mat-button-outlined-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mat-button-outlined-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mat-button-outlined-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mat-button-outlined-label-text-transform);font-weight:var(--mat-button-outlined-label-text-weight, var(--mat-sys-label-large-weight));border-radius:var(--mat-button-outlined-container-shape, var(--mat-sys-corner-full));border-width:var(--mat-button-outlined-outline-width, 1px);padding:0 var(--mat-button-outlined-horizontal-padding, 24px)}.mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-button-outlined-icon-spacing, 8px);margin-left:var(--mat-button-outlined-icon-offset, -8px)}[dir=rtl] .mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-button-outlined-icon-offset, -8px);margin-left:var(--mat-button-outlined-icon-spacing, 8px)}.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-outlined-icon-offset, -8px);margin-left:var(--mat-button-outlined-icon-spacing, 8px)}[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-outlined-icon-spacing, 8px);margin-left:var(--mat-button-outlined-icon-offset, -8px)}.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-button-outlined-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-outlined-state-layer-color, var(--mat-sys-primary))}.mat-mdc-outlined-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-outlined-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-outlined-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-outlined-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-outlined-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-outlined-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-outlined-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-outlined-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:var(--mat-button-outlined-touch-target-size, 48px);display:var(--mat-button-outlined-touch-target-display, block);left:0;right:0;transform:translateY(-50%)}.mat-mdc-outlined-button:not(:disabled){color:var(--mat-button-outlined-label-text-color, var(--mat-sys-primary));border-color:var(--mat-button-outlined-outline-color, var(--mat-sys-outline))}.mat-mdc-outlined-button[disabled],.mat-mdc-outlined-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-button-outlined-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:var(--mat-button-outlined-disabled-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-tonal-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mat-button-tonal-container-height, 40px);font-family:var(--mat-button-tonal-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mat-button-tonal-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mat-button-tonal-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mat-button-tonal-label-text-transform);font-weight:var(--mat-button-tonal-label-text-weight, var(--mat-sys-label-large-weight));padding:0 var(--mat-button-tonal-horizontal-padding, 24px)}.mat-tonal-button:not(:disabled){color:var(--mat-button-tonal-label-text-color, var(--mat-sys-on-secondary-container));background-color:var(--mat-button-tonal-container-color, var(--mat-sys-secondary-container))}.mat-tonal-button,.mat-tonal-button .mdc-button__ripple{border-radius:var(--mat-button-tonal-container-shape, var(--mat-sys-corner-full))}.mat-tonal-button[disabled],.mat-tonal-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-button-tonal-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-button-tonal-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-tonal-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-tonal-button>.mat-icon{margin-right:var(--mat-button-tonal-icon-spacing, 8px);margin-left:var(--mat-button-tonal-icon-offset, -8px)}[dir=rtl] .mat-tonal-button>.mat-icon{margin-right:var(--mat-button-tonal-icon-offset, -8px);margin-left:var(--mat-button-tonal-icon-spacing, 8px)}.mat-tonal-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-tonal-icon-offset, -8px);margin-left:var(--mat-button-tonal-icon-spacing, 8px)}[dir=rtl] .mat-tonal-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-tonal-icon-spacing, 8px);margin-left:var(--mat-button-tonal-icon-offset, -8px)}.mat-tonal-button .mat-ripple-element{background-color:var(--mat-button-tonal-ripple-color, color-mix(in srgb, var(--mat-sys-on-secondary-container) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-tonal-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-tonal-state-layer-color, var(--mat-sys-on-secondary-container))}.mat-tonal-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-tonal-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-tonal-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-tonal-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-tonal-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-tonal-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-tonal-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-tonal-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-tonal-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-tonal-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-tonal-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:var(--mat-button-tonal-touch-target-size, 48px);display:var(--mat-button-tonal-touch-target-display, block);left:0;right:0;transform:translateY(-50%)}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button,.mat-tonal-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,.mat-tonal-button .mat-mdc-button-ripple,.mat-tonal-button .mat-mdc-button-persistent-ripple,.mat-tonal-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,.mat-tonal-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,.mat-tonal-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-button .mdc-button__label,.mat-mdc-button .mat-icon,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-unelevated-button .mat-icon,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-raised-button .mat-icon,.mat-mdc-outlined-button .mdc-button__label,.mat-mdc-outlined-button .mat-icon,.mat-tonal-button .mdc-button__label,.mat-tonal-button .mat-icon{z-index:1;position:relative}.mat-mdc-button .mat-focus-indicator,.mat-mdc-unelevated-button .mat-focus-indicator,.mat-mdc-raised-button .mat-focus-indicator,.mat-mdc-outlined-button .mat-focus-indicator,.mat-tonal-button .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit}.mat-mdc-button:focus-visible>.mat-focus-indicator::before,.mat-mdc-unelevated-button:focus-visible>.mat-focus-indicator::before,.mat-mdc-raised-button:focus-visible>.mat-focus-indicator::before,.mat-mdc-outlined-button:focus-visible>.mat-focus-indicator::before,.mat-tonal-button:focus-visible>.mat-focus-indicator::before{content:"";border-radius:inherit}.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,.mat-tonal-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon,.mat-tonal-button>.mat-icon{display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px}.mat-mdc-unelevated-button .mat-focus-indicator::before,.mat-tonal-button .mat-focus-indicator::before,.mat-mdc-raised-button .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-outlined-button .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 3px)*-1)}\n',"@media(forced-colors: active){.mat-mdc-button:not(.mdc-button--outlined),.mat-mdc-unelevated-button:not(.mdc-button--outlined),.mat-mdc-raised-button:not(.mdc-button--outlined),.mat-mdc-outlined-button:not(.mdc-button--outlined),.mat-mdc-button-base.mat-tonal-button,.mat-mdc-icon-button.mat-mdc-icon-button,.mat-mdc-outlined-button .mdc-button__ripple{outline:solid 1px}}\n"],encapsulation:2,changeDetection:0})}return t})(),B4=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({imports:[IS,ii]})}return t})();function wue(t,n){if(1&t){const e=oe();h(0,"div",1)(1,"button",2),F("click",function(){return j(e),U(v().action())}),p(2),u()()}if(2&t){const e=v();d(2),E(" ",e.data.action," ")}}const xue=["label"];function Sue(t,n){}const kue=Math.pow(2,31)-1;class Ab{_overlayRef;instance;containerInstance;_afterDismissed=new me;_afterOpened=new me;_onAction=new me;_durationTimeoutId;_dismissedByAction=!1;constructor(n,e){this._overlayRef=e,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,kue))}_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 OS=new Z("MatSnackBarData");class Rb{politeness="polite";announcementMessage="";viewContainerRef;duration=0;panelClass;direction;data=null;horizontalPosition="center";verticalPosition="bottom"}let V4=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","matSnackBarLabel",""]],hostAttrs:[1,"mat-mdc-snack-bar-label","mdc-snackbar__label"]})}return t})(),H4=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","matSnackBarActions",""]],hostAttrs:[1,"mat-mdc-snack-bar-actions","mdc-snackbar__actions"]})}return t})(),j4=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","matSnackBarAction",""]],hostAttrs:[1,"mat-mdc-snack-bar-action","mdc-snackbar__action"]})}return t})(),U4=(()=>{class t{snackBarRef=D(Ab);data=D(OS);constructor(){}action(){this.snackBarRef.dismissWithAction()}get hasAction(){return!!this.data.action}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["simple-snack-bar"]],hostAttrs:[1,"mat-mdc-simple-snack-bar"],exportAs:["matSnackBar"],decls:3,vars:2,consts:[["matSnackBarLabel",""],["matSnackBarActions",""],["matButton","","matSnackBarAction","",3,"click"]],template:function(i,o){1&i&&(h(0,"div",0),p(1),u(),x(2,wue,3,1,"div",1)),2&i&&(d(),E(" ",o.data.message,"\n"),d(),S(o.hasAction?2:-1))},dependencies:[Pn,V4,H4,j4],styles:[".mat-mdc-simple-snack-bar{display:flex}.mat-mdc-simple-snack-bar .mat-mdc-snack-bar-label{max-height:50vh;overflow:auto}\n"],encapsulation:2,changeDetection:0})}return t})();const AS="_mat-snack-bar-enter",RS="_mat-snack-bar-exit";let z4=(()=>{class t extends bb{_ngZone=D(_e);_elementRef=D(Re);_changeDetectorRef=D(Jt);_platform=D(Yn);_animationsDisabled=ci();snackBarConfig=D(Rb);_document=D(et);_trackedModals=new Set;_enterFallback;_exitFallback;_injector=D(He);_announceDelay=150;_announceTimeoutId;_destroyed=!1;_portalOutlet;_onAnnounce=new me;_onExit=new me;_onEnter=new me;_animationState="void";_live;_label;_role;_liveElementId=D(ni).getId("mat-snack-bar-container-live-");constructor(){super();const e=this.snackBarConfig;this._live="assertive"!==e.politeness||e.announcementMessage?"off"===e.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}attachDomPortal=e=>{this._assertNotAttached();const i=this._portalOutlet.attachDomPortal(e);return this._afterPortalAttached(),i};onAnimationEnd(e){e===RS?this._completeExit():e===AS&&(clearTimeout(this._enterFallback),this._ngZone.run(()=>{this._onEnter.next(),this._onEnter.complete()}))}enter(){this._destroyed||(this._animationState="visible",this._changeDetectorRef.markForCheck(),this._changeDetectorRef.detectChanges(),this._screenReaderAnnounce(),this._animationsDisabled?Vi(()=>{this._ngZone.run(()=>queueMicrotask(()=>this.onAnimationEnd(AS)))},{injector:this._injector}):(clearTimeout(this._enterFallback),this._enterFallback=setTimeout(()=>{this._elementRef.nativeElement.classList.add("mat-snack-bar-fallback-visible"),this.onAnimationEnd(AS)},200)))}exit(){return this._destroyed?ae(void 0):(this._ngZone.run(()=>{this._animationState="hidden",this._changeDetectorRef.markForCheck(),this._elementRef.nativeElement.setAttribute("mat-exit",""),clearTimeout(this._announceTimeoutId),this._animationsDisabled?Vi(()=>{this._ngZone.run(()=>queueMicrotask(()=>this.onAnimationEnd(RS)))},{injector:this._injector}):(clearTimeout(this._exitFallback),this._exitFallback=setTimeout(()=>this.onAnimationEnd(RS),200))}),this._onExit)}ngOnDestroy(){this._destroyed=!0,this._clearFromModals(),this._completeExit()}_completeExit(){clearTimeout(this._exitFallback),queueMicrotask(()=>{this._onExit.next(),this._onExit.complete()})}_afterPortalAttached(){const e=this._elementRef.nativeElement,i=this.snackBarConfig.panelClass;i&&(Array.isArray(i)?i.forEach(s=>e.classList.add(s)):e.classList.add(i)),this._exposeToModals();const o=this._label.nativeElement,r="mdc-snackbar__label";o.classList.toggle(r,!o.querySelector(`.${r}`))}_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(()=>{if(this._destroyed)return;const e=this._elementRef.nativeElement,i=e.querySelector("[aria-hidden]"),o=e.querySelector("[aria-live]");if(i&&o){let r=null;this._platform.isBrowser&&document.activeElement instanceof HTMLElement&&i.contains(document.activeElement)&&(r=document.activeElement),i.removeAttribute("aria-hidden"),o.appendChild(i),r?.focus(),this._onAnnounce.next(),this._onAnnounce.complete()}},this._announceDelay)})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["mat-snack-bar-container"]],viewQuery:function(i,o){if(1&i&&ot(Xl,7)(xue,7),2&i){let r;he(r=fe())&&(o._portalOutlet=r.first),he(r=fe())&&(o._label=r.first)}},hostAttrs:[1,"mdc-snackbar","mat-mdc-snack-bar-container"],hostVars:6,hostBindings:function(i,o){1&i&&F("animationend",function(s){return o.onAnimationEnd(s.animationName)})("animationcancel",function(s){return o.onAnimationEnd(s.animationName)}),2&i&&Ie("mat-snack-bar-container-enter","visible"===o._animationState)("mat-snack-bar-container-exit","hidden"===o._animationState)("mat-snack-bar-container-animations-enabled",!o._animationsDisabled)},features:[be],decls:6,vars:3,consts:[["label",""],[1,"mdc-snackbar__surface","mat-mdc-snackbar-surface"],[1,"mat-mdc-snack-bar-label"],["aria-hidden","true"],["cdkPortalOutlet",""]],template:function(i,o){1&i&&(h(0,"div",1)(1,"div",2,0)(3,"div",3),it(4,Sue,0,0,"ng-template",4),u(),B(5,"div"),u()()),2&i&&(d(5),$e("aria-live",o._live)("role",o._role)("id",o._liveElementId))},dependencies:[Xl],styles:["@keyframes _mat-snack-bar-enter{from{transform:scale(0.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes _mat-snack-bar-exit{from{opacity:1}to{opacity:0}}.mat-mdc-snack-bar-container{display:flex;align-items:center;justify-content:center;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0);margin:8px}.mat-mdc-snack-bar-handset .mat-mdc-snack-bar-container{width:100vw}.mat-snack-bar-container-animations-enabled{opacity:0}.mat-snack-bar-container-animations-enabled.mat-snack-bar-fallback-visible{opacity:1}.mat-snack-bar-container-animations-enabled.mat-snack-bar-container-enter{animation:_mat-snack-bar-enter 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-snack-bar-container-animations-enabled.mat-snack-bar-container-exit{animation:_mat-snack-bar-exit 75ms cubic-bezier(0.4, 0, 1, 1) forwards}.mat-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);display:flex;align-items:center;justify-content:flex-start;box-sizing:border-box;padding-left:0;padding-right:8px}[dir=rtl] .mat-mdc-snackbar-surface{padding-right:0;padding-left:8px}.mat-mdc-snack-bar-container .mat-mdc-snackbar-surface{min-width:344px;max-width:672px}.mat-mdc-snack-bar-handset .mat-mdc-snackbar-surface{width:100%;min-width:0}@media(forced-colors: active){.mat-mdc-snackbar-surface{outline:solid 1px}}.mat-mdc-snack-bar-container .mat-mdc-snackbar-surface{color:var(--mat-snack-bar-supporting-text-color, var(--mat-sys-inverse-on-surface));border-radius:var(--mat-snack-bar-container-shape, var(--mat-sys-corner-extra-small));background-color:var(--mat-snack-bar-container-color, var(--mat-sys-inverse-surface))}.mdc-snackbar__label{width:100%;flex-grow:1;box-sizing:border-box;margin:0;padding:14px 8px 14px 16px}[dir=rtl] .mdc-snackbar__label{padding-left:8px;padding-right:16px}.mat-mdc-snack-bar-container .mdc-snackbar__label{font-family:var(--mat-snack-bar-supporting-text-font, var(--mat-sys-body-medium-font));font-size:var(--mat-snack-bar-supporting-text-size, var(--mat-sys-body-medium-size));font-weight:var(--mat-snack-bar-supporting-text-weight, var(--mat-sys-body-medium-weight));line-height:var(--mat-snack-bar-supporting-text-line-height, var(--mat-sys-body-medium-line-height))}.mat-mdc-snack-bar-actions{display:flex;flex-shrink:0;align-items:center;box-sizing:border-box}.mat-mdc-snack-bar-handset,.mat-mdc-snack-bar-container,.mat-mdc-snack-bar-label{flex:1 1 auto}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled).mat-unthemed{color:var(--mat-snack-bar-button-color, var(--mat-sys-inverse-primary))}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled){--mat-button-text-state-layer-color: currentColor;--mat-button-text-ripple-color: currentColor}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled) .mat-ripple-element{opacity:.1}\n"],encapsulation:2})}return t})();const $4=new Z("mat-snack-bar-default-options",{providedIn:"root",factory:()=>new Rb});let W4=(()=>{class t{_live=D(d4);_injector=D(He);_breakpointObserver=D(n4);_parentSnackBar=D(t,{optional:!0,skipSelf:!0});_defaultConfig=D($4);_animationsDisabled=ci();_snackBarRefAtThisLevel=null;simpleSnackBarComponent=U4;snackBarContainerComponent=z4;handsetCssClass="mat-mdc-snack-bar-handset";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(){}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=He.create({parent:i&&i.viewContainerRef&&i.viewContainerRef.injector||this._injector,providers:[{provide:Rb,useValue:i}]}),s=new Kd(this.snackBarContainerComponent,i.viewContainerRef,r),a=e.attach(s);return a.instance.snackBarConfig=i,a.instance}_attach(e,i){const o={...new Rb,...this._defaultConfig,...i},r=this._createOverlay(o),s=this._attachSnackBarContainer(r,o),a=new Ab(s,r);if(e instanceof Ti){const l=new Yl(e,null,{$implicit:o.data,snackBarRef:a});a.instance=s.attachTemplatePortal(l)}else{const l=this._createInjector(o,a),c=new Kd(e,void 0,l),f=s.attachComponentPortal(c);a.instance=f.instance}return this._breakpointObserver.observe("(max-width: 599.98px) and (orientation: portrait)").pipe(fn(r.detachments())).subscribe(l=>{r.overlayElement.classList.toggle(this.handsetCssClass,l.matches)}),o.announcementMessage&&s._onAnnounce.subscribe(()=>{this._live.announce(o.announcementMessage,o.politeness)}),this._animateSnackBar(a,o),this._openedSnackBarRef=a,this._openedSnackBarRef}_animateSnackBar(e,i){e.afterDismissed().subscribe(()=>{this._openedSnackBarRef==e&&(this._openedSnackBarRef=null),i.announcementMessage&&this._live.clear()}),i.duration&&i.duration>0&&e.afterOpened().subscribe(()=>e._dismissAfter(i.duration)),this._openedSnackBarRef?(this._openedSnackBarRef.afterDismissed().subscribe(()=>{e.containerInstance.enter()}),this._openedSnackBarRef.dismiss()):e.containerInstance.enter()}_createOverlay(e){const i=new Vf;i.direction=e.direction;const o=Sb(),r="rtl"===e.direction,s="left"===e.horizontalPosition||"start"===e.horizontalPosition&&!r||"end"===e.horizontalPosition&&r,a=!s&&"center"!==e.horizontalPosition;return s?o.left("0"):a?o.right("0"):o.centerHorizontally(),"top"===e.verticalPosition?o.top("0"):o.bottom("0"),i.positionStrategy=o,i.disableAnimations=this._animationsDisabled,Xd(this._injector,i)}_createInjector(e,i){return He.create({parent:e&&e.viewContainerRef&&e.viewContainerRef.injector||this._injector,providers:[{provide:Ab,useValue:i},{provide:OS,useValue:e.data}]})}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Due=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({providers:[W4],imports:[Zd,Ff,B4,U4,ii]})}return t})();function zf(...t){const n=rL(t),{args:e,keys:i}=SL(t),o=new Ft(r=>{const{length:s}=e;if(!s)return void r.complete();const a=new Array(s);let l=s,c=s;for(let f=0;f{m||(m=!0,c--),a[f]=g},()=>l--,void 0,()=>{(!l||!m)&&(c||r.next(i?DL(i,a):a),r.complete())}))}});return n?o.pipe(kL(n)):o}function G4(t={}){const{connector:n=()=>new me,resetOnError:e=!0,resetOnComplete:i=!0,resetOnRefCountZero:o=!0}=t;return r=>{let s,a,l,c=0,f=!1,m=!1;const g=()=>{a?.unsubscribe(),a=void 0},_=()=>{g(),s=l=void 0,f=m=!1},w=()=>{const k=s;_(),k?.unsubscribe()};return Mn((k,T)=>{c++,!m&&!f&&g();const I=l=l??n();T.add(()=>{c--,0===c&&!m&&!f&&(a=FS(w,o))}),I.subscribe(T),!s&&c>0&&(s=new Ru({next:R=>I.next(R),error:R=>{m=!0,g(),a=FS(_,e,R),I.error(R)},complete:()=>{f=!0,g(),a=FS(_,i),I.complete()}}),ji(k).subscribe(s))})(r)}}function FS(t,n,...e){if(!0===n)return void t();if(!1===n)return;const i=new Ru({next:()=>{i.unsubscribe(),t()}});return ji(n(...e)).subscribe(i)}function q4(t){return Error(`Unable to find icon with the name "${t}"`)}function K4(t){return Error(`The URL provided to MatIconRegistry was not trusted as a resource URL via Angular's DomSanitizer. Attempted URL was "${t}".`)}function Y4(t){return Error(`The literal provided to MatIconRegistry was not trusted as safe HTML by Angular's DomSanitizer. Attempted literal was "${t}".`)}class tc{url;svgText;options;svgElement=null;constructor(n,e,i){this.url=n,this.svgText=e,this.options=i}}let Tue=(()=>{class t{_httpClient;_sanitizer;_errorHandler;_document;_svgIconConfigs=new Map;_iconSetConfigs=new Map;_cachedIconsByUrl=new Map;_inProgressUrlFetches=new Map;_fontCssClassesByAlias=new Map;_resolvers=[];_defaultFontSetClass=["material-icons","mat-ligature-font"];constructor(e,i,o,r){this._httpClient=e,this._sanitizer=i,this._errorHandler=r,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 tc(o,null,r))}addSvgIconResolver(e){return this._resolvers.push(e),this}addSvgIconLiteralInNamespace(e,i,o,r){const s=this._sanitizer.sanitize(bi.HTML,o);if(!s)throw Y4(o);const a=Qd(s);return this._addSvgIconConfig(e,i,new tc("",a,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 tc(i,null,o))}addSvgIconSetLiteralInNamespace(e,i,o){const r=this._sanitizer.sanitize(bi.HTML,i);if(!r)throw Y4(i);const s=Qd(r);return this._addSvgIconSetConfig(e,new tc("",s,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(bi.RESOURCE_URL,e);if(!i)throw K4(e);const o=this._cachedIconsByUrl.get(i);return o?ae(Fb(o)):this._loadSvgIconFromConfig(new tc(e,null)).pipe(ai(r=>this._cachedIconsByUrl.set(i,r)),Se(r=>Fb(r)))}getNamedSvgIcon(e,i=""){const o=X4(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 s=this._iconSetConfigs.get(i);return s?this._getSvgFromIconSetConfigs(e,s):mr(q4(o))}ngOnDestroy(){this._resolvers=[],this._svgIconConfigs.clear(),this._iconSetConfigs.clear(),this._cachedIconsByUrl.clear()}_getSvgFromConfig(e){return e.svgText?ae(Fb(this._svgElementFromConfig(e))):this._loadSvgIconFromConfig(e).pipe(Se(i=>Fb(i)))}_getSvgFromIconSetConfigs(e,i){const o=this._extractIconWithNameFromAnySet(e,i);return o?ae(o):zf(i.filter(s=>!s.svgText).map(s=>this._loadSvgIconSetFromConfig(s).pipe(Ui(a=>{const c=`Loading icon set URL: ${this._sanitizer.sanitize(bi.RESOURCE_URL,s.url)} failed: ${a.message}`;return this._errorHandler.handleError(new Error(c)),ae(null)})))).pipe(Se(()=>{const s=this._extractIconWithNameFromAnySet(e,i);if(!s)throw q4(e);return s}))}_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 s=this._svgElementFromConfig(r),a=this._extractSvgIconFromSet(s,e,r.options);if(a)return a}}return null}_loadSvgIconFromConfig(e){return this._fetchIcon(e).pipe(ai(i=>e.svgText=i),Se(()=>this._svgElementFromConfig(e)))}_loadSvgIconSetFromConfig(e){return e.svgText?ae(null):this._fetchIcon(e).pipe(ai(i=>e.svgText=i))}_extractSvgIconFromSet(e,i,o){const r=e.querySelector(`[id="${i}"]`);if(!r)return null;const s=r.cloneNode(!0);if(s.removeAttribute("id"),"svg"===s.nodeName.toLowerCase())return this._setSvgAttributes(s,o);if("symbol"===s.nodeName.toLowerCase())return this._setSvgAttributes(this._toSvgElement(s),o);const a=this._svgElementFromString(Qd(""));return a.appendChild(s),this._setSvgAttributes(a,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(Qd("")),o=e.attributes;for(let r=0;rQd(c)),B_(()=>this._inProgressUrlFetches.delete(s)),G4());return this._inProgressUrlFetches.set(s,l),l}_addSvgIconConfig(e,i,o){return this._svgIconConfigs.set(X4(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;o{const t=D(et),n=t?t.location:null;return{getPathname:()=>n?n.pathname+n.search:""}}}),Z4=["clip-path","color-profile","src","cursor","fill","filter","marker","marker-start","marker-mid","marker-end","mask","stroke"],Aue=Z4.map(t=>`[${t}]`).join(", "),Rue=/^url\(['"]?#(.*?)['"]?\)$/;let We=(()=>{class t{_elementRef=D(Re);_iconRegistry=D(Tue);_location=D(Oue);_errorHandler=D(sl);_defaultColor;get color(){return this._color||this._defaultColor}set color(e){this._color=e}_color;inline=!1;get svgIcon(){return this._svgIcon}set svgIcon(e){e!==this._svgIcon&&(e?this._updateSvgIcon(e):this._svgIcon&&this._clearSvgElement(),this._svgIcon=e)}_svgIcon;get fontSet(){return this._fontSet}set fontSet(e){const i=this._cleanupFontValue(e);i!==this._fontSet&&(this._fontSet=i,this._updateFontIconClasses())}_fontSet;get fontIcon(){return this._fontIcon}set fontIcon(e){const i=this._cleanupFontValue(e);i!==this._fontIcon&&(this._fontIcon=i,this._updateFontIconClasses())}_fontIcon;_previousFontSetClass=[];_previousFontIconClass;_svgName=null;_svgNamespace=null;_previousPath;_elementsWithExternalReferences;_currentIconFetch=pt.EMPTY;constructor(){const e=D(new Yh("aria-hidden"),{optional:!0}),i=D(Iue,{optional:!0});i&&(i.color&&(this.color=this._defaultColor=i.color),i.fontSet&&(this.fontSet=i.fontSet)),e||this._elementRef.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(s=>{r.setAttribute(s.name,`url('${e}#${s.value}')`)})})}_cacheChildrenWithExternalReferences(e){const i=e.querySelectorAll(Aue),o=this._elementsWithExternalReferences=this._elementsWithExternalReferences||new Map;for(let r=0;r{const a=i[r],l=a.getAttribute(s),c=l?l.match(Rue):null;if(c){let f=o.get(a);f||(f=[],o.set(a,f)),f.push({name:s,value:c[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(Cn(1)).subscribe(r=>this._setSvgElement(r),r=>{this._errorHandler.handleError(new Error(`Error retrieving icon ${i}:${o}! ${r.message}`))})}}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["mat-icon"]],hostAttrs:["role","img",1,"mat-icon","notranslate"],hostVars:10,hostBindings:function(i,o){2&i&&($e("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),Ze(o.color?"mat-"+o.color:""),Ie("mat-icon-inline",o.inline)("mat-icon-no-color","primary"!==o.color&&"accent"!==o.color&&"warn"!==o.color))},inputs:{color:"color",inline:[2,"inline","inline",De],svgIcon:"svgIcon",fontSet:"fontSet",fontIcon:"fontIcon"},exportAs:["matIcon"],ngContentSelectors:Pue,decls:1,vars:0,template:function(i,o){1&i&&(yi(),Pt(0))},styles:["mat-icon,mat-icon.mat-primary,mat-icon.mat-accent,mat-icon.mat-warn{color:var(--mat-icon-color, inherit)}.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}\n"],encapsulation:2,changeDetection:0})}return t})(),Fue=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({imports:[ii]})}return t})();function NS(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,G4({connector:()=>new oo(i,n,e),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:o})}class LS{}let Q4=(()=>{class t{handle(e){return e.key}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();class Nb{}let J4=(()=>{class t extends Nb{compile(e,i){return e}compileTranslations(e,i){return e}static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();class $f{}let e5=(()=>{class t extends $f{getTranslation(e){return ae({})}static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();function Lb(t,n){if(t===n)return!0;if(null===t||null===n)return!1;if(t!=t&&n!=n)return!0;const e=typeof t;let o;if(e==typeof n&&"object"==e)if(Array.isArray(t)){if(!Array.isArray(n))return!1;if((o=t.length)==n.length){for(let r=0;rVb(n));if(Kr(t)){const n={};return Object.keys(t).forEach(e=>{n[e]=Vb(t[e])}),n}return t}function BS(t,n){if(!Wf(t))return Vb(n);const e=Vb(t);return Wf(e)&&Wf(n)&&Object.keys(n).forEach(i=>{Kr(n[i])?i in t?e[i]=BS(t[i],n[i]):Object.assign(e,{[i]:n[i]}):Object.assign(e,{[i]:n[i]})}),e}function n5(t,n){const e=n.split(".");n="";do{n+=e.shift();const i=!e.length;if(Sa(t)){if(Kr(t)&&t5(t[n])&&(Kr(t[n])||nc(t[n])||i)){t=t[n],n="";continue}if(nc(t)){const o=parseInt(n,10);if(t5(t[o])&&(Kr(t[o])||nc(t[o])||i)){t=t[o],n="";continue}}}i?t=void 0:n+="."}while(e.length);return t}class Hb{}let i5=(()=>{class t extends Hb{templateMatcher=/{{\s?([^{}\s]*)\s?}}/g;interpolate(e,i){return Bb(e)?this.interpolateString(e,i):function Nue(t){return"function"==typeof t}(e)?this.interpolateFunction(e,i):void 0}interpolateFunction(e,i){return e(i)}interpolateString(e,i){return i?e.replace(this.templateMatcher,(o,r)=>{const s=this.getInterpolationReplacement(i,r);return void 0!==s?s:o}):e}getInterpolationReplacement(e,i){return this.formatValue(n5(e,i))}formatValue(e){return Bb(e)?e:"number"==typeof e||"boolean"==typeof e?e.toString():null===e?"null":nc(e)?e.join(", "):Wf(e)?"function"==typeof e.toString&&e.toString!==Object.prototype.toString?e.toString():JSON.stringify(e):void 0}static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})(),VS=(()=>{class t{_onTranslationChange=new me;_onLangChange=new me;_onFallbackLangChange=new me;fallbackLang=null;currentLang;translations={};languages=[];getTranslations(e){return this.translations[e]}setTranslations(e,i,o){this.translations[e]=o&&this.hasTranslationFor(e)?BS(this.translations[e],i):i,this.addLanguages([e]),this._onTranslationChange.next({lang:e,translations:this.getTranslations(e)})}getLanguages(){return this.languages}getCurrentLang(){return this.currentLang}getFallbackLang(){return this.fallbackLang}setFallbackLang(e,i=!0){this.fallbackLang=e,i&&this._onFallbackLangChange.next({lang:e,translations:this.translations[e]})}setCurrentLang(e,i=!0){this.currentLang=e,i&&this._onLangChange.next({lang:e,translations:this.translations[e]})}get onTranslationChange(){return this._onTranslationChange.asObservable()}get onLangChange(){return this._onLangChange.asObservable()}get onFallbackLangChange(){return this._onFallbackLangChange.asObservable()}addLanguages(e){this.languages=Array.from(new Set([...this.languages,...e]))}hasTranslationFor(e){return typeof this.translations[e]<"u"}deleteTranslations(e){delete this.translations[e]}getTranslation(e){let i=this.getValue(this.currentLang,e);return void 0===i&&null!=this.fallbackLang&&this.fallbackLang!==this.currentLang&&(i=this.getValue(this.fallbackLang,e)),i}getValue(e,i){return n5(this.getTranslations(e),i)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();const HS=new Z("TRANSLATE_CONFIG"),Gf=t=>jr(t)?t:ae(t);let Go=(()=>{class t{loadingTranslations;pending=!1;_translationRequests={};lastUseLanguage=null;currentLoader=D($f);compiler=D(Nb);parser=D(Hb);missingTranslationHandler=D(LS);store=D(VS);extend=!1;get onTranslationChange(){return this.store.onTranslationChange}get onLangChange(){return this.store.onLangChange}get onFallbackLangChange(){return this.store.onFallbackLangChange}get onDefaultLangChange(){return this.store.onFallbackLangChange}constructor(){const e={extend:!1,fallbackLang:null,...D(HS,{optional:!0})};e.lang&&this.use(e.lang),e.fallbackLang&&this.setFallbackLang(e.fallbackLang),e.extend&&(this.extend=!0)}setFallbackLang(e){this.getFallbackLang()||this.store.setFallbackLang(e,!1);const i=this.loadOrExtendLanguage(e);return jr(i)?(i.pipe(Cn(1)).subscribe({next:()=>{this.store.setFallbackLang(e)},error:()=>{}}),i):(this.store.setFallbackLang(e),ae(this.store.getTranslations(e)))}use(e){this.lastUseLanguage=e,this.getCurrentLang()||this.store.setCurrentLang(e,!1);const i=this.loadOrExtendLanguage(e);return jr(i)?(i.pipe(Cn(1)).subscribe({next:()=>{this.changeLang(e)},error:()=>{}}),i):(this.changeLang(e),ae(this.store.getTranslations(e)))}loadOrExtendLanguage(e){if(!this.store.hasTranslationFor(e)||this.extend)return this._translationRequests[e]=this._translationRequests[e]||this.loadAndCompileTranslations(e),this._translationRequests[e]}changeLang(e){e===this.lastUseLanguage&&this.store.setCurrentLang(e)}getCurrentLang(){return this.store.getCurrentLang()}loadAndCompileTranslations(e){this.pending=!0;const i=this.currentLoader.getTranslation(e).pipe(NS(1),Cn(1));return this.loadingTranslations=i.pipe(Se(o=>this.compiler.compileTranslations(o,e)),NS(1),Cn(1)),this.loadingTranslations.subscribe({next:o=>{this.store.setTranslations(e,o,this.extend),this.pending=!1},error:o=>{this.pending=!1}}),i}setTranslation(e,i,o=!1){const r=this.compiler.compileTranslations(i,e);this.store.setTranslations(e,r,o||this.extend)}getLangs(){return this.store.getLanguages()}addLangs(e){this.store.addLanguages(e)}getParsedResultForKey(e,i){const o=this.getTextToInterpolate(e);if(Sa(o))return this.runInterpolation(o,i);const r=this.missingTranslationHandler.handle({key:e,translateService:this,...void 0!==i&&{interpolateParams:i}});return void 0!==r?r:e}getFallbackLang(){return this.store.getFallbackLang()}getTextToInterpolate(e){return this.store.getTranslation(e)}runInterpolation(e,i){if(Sa(e))return nc(e)?this.runInterpolationOnArray(e,i):Kr(e)?this.runInterpolationOnDict(e,i):this.parser.interpolate(e,i)}runInterpolationOnArray(e,i){return e.map(o=>this.runInterpolation(o,i))}runInterpolationOnDict(e,i){const o={};for(const r in e){const s=this.runInterpolation(e[r],i);void 0!==s&&(o[r]=s)}return o}getParsedResult(e,i){return e instanceof Array?this.getParsedResultForArray(e,i):this.getParsedResultForKey(e,i)}getParsedResultForArray(e,i){const o={};let r=!1;for(const a of e)o[a]=this.getParsedResultForKey(a,i),r=r||jr(o[a]);return r?zf(e.map(a=>Gf(o[a]))).pipe(Se(a=>{const l={};return a.forEach((c,f)=>{l[e[f]]=c}),l})):o}get(e,i){if(!Sa(e)||!e.length)throw new Error('Parameter "key" is required and cannot be empty');return this.pending?this.loadingTranslations.pipe(cf(()=>Gf(this.getParsedResult(e,i)))):Gf(this.getParsedResult(e,i))}getStreamOnTranslationChange(e,i){if(!Sa(e)||!e.length)throw new Error('Parameter "key" is required and cannot be empty');return Ts(ya(()=>this.get(e,i)),this.onTranslationChange.pipe(tn(()=>{const o=this.getParsedResult(e,i);return Gf(o)})))}stream(e,i){if(!Sa(e)||!e.length)throw new Error('Parameter "key" required');return Ts(ya(()=>this.get(e,i)),this.onLangChange.pipe(tn(()=>{const o=this.getParsedResult(e,i);return Gf(o)})))}instant(e,i){if(!Sa(e)||0===e.length)throw new Error('Parameter "key" is required and cannot be empty');const o=this.getParsedResult(e,i);return jr(o)?Array.isArray(e)?e.reduce((r,s)=>(r[s]=s,r),{}):e:o}set(e,i,o=this.getCurrentLang()){this.store.setTranslations(o,function Lue(t,n,e){return BS(t,function Bue(t,n){return t.split(".").reduceRight((e,i)=>({[i]:e}),n)}(n,e))}(this.store.getTranslations(o),e,Bb(i)?this.compiler.compile(i,o):this.compiler.compileTranslations(i,o)),!1)}reloadLang(e){return this.resetLang(e),this.loadAndCompileTranslations(e)}resetLang(e){delete this._translationRequests[e],this.store.deleteTranslations(e)}static getBrowserLang(){if(typeof window>"u"||!window.navigator)return;const e=this.getBrowserCultureLang();return e?e.split(/[-_]/)[0]:void 0}static getBrowserCultureLang(){if(!(typeof window>"u"||typeof window.navigator>"u"))return window.navigator.languages?window.navigator.languages[0]:window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage}getBrowserLang(){return t.getBrowserLang()}getBrowserCultureLang(){return t.getBrowserCultureLang()}get defaultLang(){return this.getFallbackLang()}get currentLang(){return this.store.getCurrentLang()}get langs(){return this.store.getLanguages()}setDefaultLang(e){return this.setFallbackLang(e)}getDefaultLang(){return this.getFallbackLang()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})(),xe=(()=>{class t{translate=D(Go);_ref=D(Jt);value="";lastKey=null;lastParams=[];onTranslationChange;onLangChange;onFallbackLangChange;updateValue(e,i,o){const r=s=>{this.value=void 0!==s?s:e,this.lastKey=e,this._ref.markForCheck()};if(o){const s=this.translate.getParsedResult(e,i);jr(s)?s.subscribe(r):r(s)}this.translate.get(e,i).subscribe(r)}transform(e,...i){if(!e||!e.length)return e;if(Lb(e,this.lastKey)&&Lb(i,this.lastParams))return this.value;let o;if(Sa(i[0])&&i.length)if(Bb(i[0])&&i[0].length){const r=i[0].replace(/(')?([a-zA-Z0-9_]+)(')?(\s)?:/g,'"$2":').replace(/:(\s)?(')(.*?)(')/g,':"$3"');try{o=JSON.parse(r)}catch(s){throw new SyntaxError(`Wrong parameter in TranslatePipe. Expected a valid Object, received: ${i[0]}`)}}else Kr(i[0])&&(o=i[0]);return this.lastKey=e,this.lastParams=i,this.updateValue(e,o),this._dispose(),this.onTranslationChange||(this.onTranslationChange=this.translate.onTranslationChange.subscribe(r=>{(this.lastKey&&r.lang===this.translate.getCurrentLang()||r.lang===this.translate.getFallbackLang())&&(this.lastKey=null,this.updateValue(e,o,r.translations))})),this.onLangChange||(this.onLangChange=this.translate.onLangChange.subscribe(r=>{this.lastKey&&(this.lastKey=null,this.updateValue(e,o,r.translations))})),this.onFallbackLangChange||(this.onFallbackLangChange=this.translate.onFallbackLangChange.subscribe(()=>{this.lastKey&&(this.lastKey=null,this.updateValue(e,o))})),this.value}_dispose(){typeof this.onTranslationChange<"u"&&(this.onTranslationChange.unsubscribe(),this.onTranslationChange=void 0),typeof this.onLangChange<"u"&&(this.onLangChange.unsubscribe(),this.onLangChange=void 0),typeof this.onFallbackLangChange<"u"&&(this.onFallbackLangChange.unsubscribe(),this.onFallbackLangChange=void 0)}ngOnDestroy(){this._dispose()}static \u0275fac=function(i){return new(i||t)};static \u0275pipe=Hi({name:"translate",type:t,pure:!1});static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();function o5(t){return{provide:$f,useClass:t}}function r5(t){return{provide:Nb,useClass:t}}function s5(t){return{provide:Hb,useClass:t}}function a5(t){return{provide:LS,useClass:t}}function jb(t={},n){const e=[];return t.loader&&e.push(t.loader),t.compiler&&e.push(t.compiler),t.parser&&e.push(t.parser),t.missingTranslationHandler&&e.push(t.missingTranslationHandler),n&&e.push(VS),(t.useDefaultLang||t.defaultLanguage)&&(console.warn("The `useDefaultLang` and `defaultLanguage` options are deprecated. Please use `fallbackLang` instead."),!0===t.useDefaultLang&&t.defaultLanguage&&(t.fallbackLang=t.defaultLanguage)),e.push({provide:HS,useValue:{fallbackLang:t.fallbackLang??null,lang:t.lang,extend:t.extend??!1}}),e.push({provide:Go,useClass:Go,deps:[VS,$f,Nb,Hb,LS,HS]}),e}let l5=(()=>{class t{static forRoot(e={}){return{ngModule:t,providers:[...jb({compiler:r5(J4),parser:s5(i5),loader:o5(e5),missingTranslationHandler:a5(Q4),...e},!0)]}}static forChild(e={}){return{ngModule:t,providers:[...jb(e,e.isolate??!1)]}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({})}return t})();function Vue(t,n){if(1&t&&(h(0,"div",0)(1,"mat-icon",5),p(2),u()()),2&t){const e=v();d(),C("inline",!0),d(),M(e.config.icon)}}function Hue(t,n){if(1&t&&(h(0,"div",2),p(1),b(2,"translate"),b(3,"translate"),u()),2&t){const e=v();d(),gt(" ",y(2,2,"common.error")," ",pe(3,4,e.config.smallText,e.config.smallTextTranslationParams)," ")}}var Ub=function(t){return t.Error="error",t.Done="done",t.Warning="warning",t}(Ub||{}),zb=function(t){return t.Red="red-background",t.Green="green-background",t.Yellow="yellow-background",t}(zb||{});let jue=(()=>{class t{constructor(e,i){this.snackbarRef=i,this.config=e}close(){this.snackbarRef.dismiss()}static{this.\u0275fac=function(i){return new(i||t)(O(OS),O(Ab))}}static{this.\u0275cmp=re({type:t,selectors:[["app-snack-bar"]],standalone:!1,decls:9,vars:8,consts:[[1,"icon-container"],[1,"text-container"],[1,"second-line"],[1,"close-button-separator"],[1,"close-button",3,"click"],[3,"inline"]],template:function(i,o){1&i&&(h(0,"div"),x(1,Vue,3,2,"div",0),h(2,"div",1),p(3),b(4,"translate"),x(5,Hue,4,7,"div",2),u(),B(6,"div",3),h(7,"mat-icon",4),F("click",function(){return o.close()}),p(8,"close"),u()()),2&i&&(Ze("main-container "+o.config.color),d(),S(o.config.icon?1:-1),d(2),E(" ",pe(4,5,o.config.text,o.config.textTranslationParams)," "),d(2),S(o.config.smallText?5:-1))},dependencies:[We,xe],styles:['.cursor-pointer[_ngcontent-%COMP%], .close-button[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media(max-width:767px),(min-width:992px)and (max-width:1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media(max-width:767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}.main-container[_ngcontent-%COMP%]{width:100%;display:flex;color:#fff;padding:15px;border-radius:5px}.red-background[_ngcontent-%COMP%]{background-color:#ea0606}.green-background[_ngcontent-%COMP%]{background-color:#1fb11f}.yellow-background[_ngcontent-%COMP%]{background-color:#f90}.icon-container[_ngcontent-%COMP%]{margin-right:10px;position:relative;top:1px}.text-container[_ngcontent-%COMP%]{flex-grow:1;margin-right:10px;font-size:1rem;word-break:break-word}.text-container[_ngcontent-%COMP%] .second-line[_ngcontent-%COMP%]{font-size:.8rem;opacity:.9}.close-button-separator[_ngcontent-%COMP%]{width:1px;margin-right:10px;background-color:#0000004d}.close-button[_ngcontent-%COMP%]{opacity:.7}.close-button[_ngcontent-%COMP%]:hover{opacity:1}mat-icon[_ngcontent-%COMP%]{position:relative;top:1px;-webkit-user-select:none;user-select:none}']})}}return t})(),ct=(()=>{class t{constructor(e){this.snackBar=e,this.lastWasTemporaryError=!1}showError(e,i=null,o=!1,r=null,s=null){e=Qe(e),r=r?Qe(r):null,this.lastWasTemporaryError=o,this.show(e.translatableErrorMsg,i,r?r.translatableErrorMsg:null,s,Ub.Error,zb.Red,15e3)}showWarning(e,i=null){this.lastWasTemporaryError=!1,this.show(e,i,null,null,Ub.Warning,zb.Yellow,15e3)}showDone(e,i=null){this.lastWasTemporaryError=!1,this.show(e,i,null,null,Ub.Done,zb.Green,5e3)}closeCurrent(){this.snackBar.dismiss()}closeCurrentIfTemporaryError(){this.lastWasTemporaryError&&this.snackBar.dismiss()}show(e,i,o,r,s,a,l){this.snackBar.openFromComponent(jue,{duration:l,panelClass:"snackbar-container",data:{text:e,textTranslationParams:i,smallText:o,smallTextTranslationParams:r,icon:s,color:a}})}static{this.\u0275fac=function(i){return new(i||t)(ce(W4))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const rt={maxShortListElements:5,maxFullListElements:40,connectionRetryDelay:5e3,languages:[{code:"en",name:"English",iconName:"en.png"},{code:"es",name:"Espa\xf1ol",iconName:"es.png"},{code:"de",name:"Deutsch",iconName:"de.png"},{code:"pt",name:"Portugu\xeas (Brazil)",iconName:"pt.png"}],defaultLanguage:"en",smallModalWidth:"480px",mediumModalWidth:"640px",largeModalWidth:"900px",vpn:{hardcodedIpWhileDeveloping:!1}};class Uue{constructor(n){Object.assign(this,n)}}let $b=(()=>{class t{constructor(e){this.translate=e,this.currentLanguage=new oo(1),this.languages=new oo(1),this.storageKey="lang",this.languagesInternal=[],this.settingsLoaded=!1}loadLanguageSettings(){if(this.settingsLoaded)return;this.settingsLoaded=!0;const e=[];rt.languages.forEach(i=>{const o=new Uue(i);this.languagesInternal.push(o),e.push(o.code)}),this.languages.next(this.languagesInternal),this.translate.addLangs(e),this.translate.setDefaultLang(rt.defaultLanguage),this.translate.onLangChange.subscribe(i=>this.onLanguageChanged(i)),this.loadCurrentLanguage()}changeLanguage(e){this.translate.use(e)}onLanguageChanged(e){this.currentLanguage.next(this.languagesInternal.find(i=>i.code===e.lang)),localStorage.setItem(this.storageKey,e.lang)}loadCurrentLanguage(){let e=localStorage.getItem(this.storageKey);e=e||rt.defaultLanguage,setTimeout(()=>this.translate.use(e),16)}static{this.\u0275fac=function(i){return new(i||t)(ce(Go))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const zue={url:"",deserializer:t=>JSON.parse(t.data),serializer:t=>JSON.stringify(t)};class jS extends ay{constructor(n,e){if(super(),this._socket=null,n instanceof Ft)this.destination=e,this.source=n;else{const i=this._config=Object.assign({},zue);if(this._output=new me,"string"==typeof n)i.url=n;else for(const o in n)n.hasOwnProperty(o)&&(i[o]=n[o]);if(!i.WebSocketCtor&&WebSocket)i.WebSocketCtor=WebSocket;else if(!i.WebSocketCtor)throw new Error("no WebSocket constructor can be found");this.destination=new oo}}lift(n){const e=new jS(this._config,this.destination);return e.operator=n,e.source=this,e}_resetState(){this._socket=null,this.source||(this.destination=new oo),this._output=new me}multiplex(n,e,i){const o=this;return new Ft(r=>{try{o.next(n())}catch(a){r.error(a)}const s=o.subscribe({next:a=>{try{i(a)&&r.next(a)}catch(l){r.error(l)}},error:a=>r.error(a),complete:()=>r.complete()});return()=>{try{o.next(e())}catch(a){r.error(a)}s.unsubscribe()}})}_connectSocket(){const{WebSocketCtor:n,protocol:e,url:i,binaryType:o}=this._config,r=this._output;let s=null;try{s=e?new n(i,e):new n(i),this._socket=s,o&&(this._socket.binaryType=o)}catch(l){return void r.error(l)}const a=new pt(()=>{this._socket=null,s&&1===s.readyState&&s.close()});s.onopen=l=>{const{_socket:c}=this;if(!c)return s.close(),void this._resetState();const{openObserver:f}=this._config;f&&f.next(l);const m=this.destination;this.destination=Bp.create(g=>{if(1===s.readyState)try{const{serializer:_}=this._config;s.send(_(g))}catch(_){this.destination.error(_)}},g=>{const{closingObserver:_}=this._config;_&&_.next(void 0),g&&g.code?s.close(g.code,g.reason):r.error(new TypeError("WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }")),this._resetState()},()=>{const{closingObserver:g}=this._config;g&&g.next(void 0),s.close(),this._resetState()}),m&&m instanceof oo&&a.add(m.subscribe(this.destination))},s.onerror=l=>{this._resetState(),r.error(l)},s.onclose=l=>{s===this._socket&&this._resetState();const{closeObserver:c}=this._config;c&&c.next(l),l.wasClean?r.complete():r.error(l)},s.onmessage=l=>{try{const{deserializer:c}=this._config;r.next(c(l))}catch(c){r.error(c)}}}_subscribe(n){const{source:e}=this;return e?e.subscribe(n):(this._socket||this._connectSocket(),this._output.subscribe(n),n.add(()=>{const{_socket:i}=this;0===this._output.observers.length&&(i&&(1===i.readyState||0===i.readyState)&&i.close(),this._resetState())}),n)}unsubscribe(){const{_socket:n}=this;n&&(1===n.readyState||0===n.readyState)&&n.close(),this._resetState(),super.unsubscribe()}}var qf=function(t){return t.Json="json",t.Text="text",t}(qf||{}),Wb=function(t){return t.Json="json",t}(Wb||{});class qo{constructor(n){this.responseType=qf.Json,this.requestType=Wb.Json,this.ignoreAuth=!1,Object.assign(this,n)}}let zi=(()=>{class t{constructor(e,i,o){this.http=e,this.router=i,this.ngZone=o,this.apiPrefix="api/",this.wsApiPrefix="api/"}get(e,i=null){return this.request("GET",e,{},i)}post(e,i={},o=null){return this.getCsrf().pipe(Ur(),It(r=>((o=o||new qo).csrfToken=r,this.request("POST",e,i,o))))}put(e,i={},o=null){return this.getCsrf().pipe(Ur(),It(r=>((o=o||new qo).csrfToken=r,this.request("PUT",e,i,o))))}delete(e,i=null){return this.getCsrf().pipe(Ur(),It(o=>((i=i||new qo).csrfToken=o,this.request("DELETE",e,{},i))))}getCsrf(){return this.get("csrf").pipe(Se(e=>e.csrf_token))}ws(e,i={}){const s=function Wue(t){return new jS(t)}((location.protocol.startsWith("https")?"wss://":"ws://")+location.host+"/"+this.wsApiPrefix+e);return s.next(i),s}request(e,i,o,r){return o=o||{},r=r||new qo,i.startsWith("/")&&(i=i.substr(1,i.length-1)),this.http.request(e,this.apiPrefix+i,{...this.getRequestOptions(r),responseType:r.responseType,withCredentials:!0,body:this.getPostBody(o,r)}).pipe(Se(s=>this.successHandler(s)),Ui(s=>this.errorHandler(s,r)))}getRequestOptions(e){const i={};return i.headers=new Uo,e.requestType===Wb.Json&&(i.headers=i.headers.append("Content-Type","application/json")),e.csrfToken&&(i.headers=i.headers.append("X-CSRF-Token",e.csrfToken)),i}getPostBody(e,i){if(i.requestType===Wb.Json)return JSON.stringify(e);const o=new FormData;return Object.keys(e).forEach(r=>o.append(r,e[r])),o}successHandler(e){if("string"==typeof e&&"manager token is null"===e)throw new Error(e);return e}errorHandler(e,i){if(!i.ignoreAuth){if(401===e.status){const o=i.vpnKeyForAuth?["vpnlogin",i.vpnKeyForAuth]:["login"];this.ngZone.run(()=>this.router.navigate(o,{replaceUrl:!0}))}if(e.error&&"string"==typeof e.error&&e.error.includes("change password")){const o=i.vpnKeyForAuth?["vpnlogin",i.vpnKeyForAuth]:["login"];this.ngZone.run(()=>this.router.navigate(o,{replaceUrl:!0}))}}return mr(Qe(e))}static{this.\u0275fac=function(i){return new(i||t)(ce(ba),ce(vt),ce(_e))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const Gue=["determinateSpinner"];function que(t,n){if(1&t&&(rl(),h(0,"svg",11),B(1,"circle",12),u()),2&t){const e=v();$e("viewBox",e._viewBox()),d(),Md("stroke-dasharray",e._strokeCircumference(),"px")("stroke-dashoffset",e._strokeCircumference()/2,"px")("stroke-width",e._circleStrokeWidth(),"%"),$e("r",e._circleRadius())}}const Kue=new Z("mat-progress-spinner-default-options",{providedIn:"root",factory:()=>({diameter:c5})}),c5=100;let so=(()=>{class t{_elementRef=D(Re);_noopAnimations;get color(){return this._color||this._defaultColor}set color(e){this._color=e}_color;_defaultColor="primary";_determinateCircle;constructor(){const e=D(Kue),i=b4(),o=this._elementRef.nativeElement;this._noopAnimations="di-disabled"===i&&!!e&&!e._forceAnimations,this.mode="mat-spinner"===o.nodeName.toLowerCase()?"indeterminate":"determinate",!this._noopAnimations&&"reduced-motion"===i&&o.classList.add("mat-progress-spinner-reduced-motion"),e&&(e.color&&(this.color=this._defaultColor=e.color),e.diameter&&(this.diameter=e.diameter),e.strokeWidth&&(this.strokeWidth=e.strokeWidth))}mode;get value(){return"determinate"===this.mode?this._value:0}set value(e){this._value=Math.max(0,Math.min(100,e||0))}_value=0;get diameter(){return this._diameter}set diameter(e){this._diameter=e||0}_diameter=c5;get strokeWidth(){return this._strokeWidth??this.diameter/10}set strokeWidth(e){this._strokeWidth=e||0}_strokeWidth;_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 \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["mat-progress-spinner"],["mat-spinner"]],viewQuery:function(i,o){if(1&i&&ot(Gue,5),2&i){let r;he(r=fe())&&(o._determinateCircle=r.first)}},hostAttrs:["role","progressbar","tabindex","-1",1,"mat-mdc-progress-spinner","mdc-circular-progress"],hostVars:18,hostBindings:function(i,o){2&i&&($e("aria-valuemin",0)("aria-valuemax",100)("aria-valuenow","determinate"===o.mode?o.value:null)("mode",o.mode),Ze("mat-"+o.color),Md("width",o.diameter,"px")("height",o.diameter,"px")("--mat-progress-spinner-size",o.diameter+"px")("--mat-progress-spinner-active-indicator-width",o.diameter+"px"),Ie("_mat-animation-noopable",o._noopAnimations)("mdc-circular-progress--indeterminate","indeterminate"===o.mode))},inputs:{color:"color",mode:"mode",value:[2,"value","value",hr],diameter:[2,"diameter","diameter",hr],strokeWidth:[2,"strokeWidth","strokeWidth",hr]},exportAs:["matProgressSpinner"],decls:14,vars:11,consts:[["circle",""],["determinateSpinner",""],["aria-hidden","true",1,"mdc-circular-progress__determinate-container"],["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&&(it(0,que,2,8,"ng-template",null,0,Rl),h(2,"div",2,1),rl(),h(4,"svg",3),B(5,"circle",4),u()(),Gy(),h(6,"div",5)(7,"div",6)(8,"div",7),dr(9,8),u(),h(10,"div",9),dr(11,8),u(),h(12,"div",10),dr(13,8),u()()()),2&i){const r=Hn(1);d(4),$e("viewBox",o._viewBox()),d(),Md("stroke-dasharray",o._strokeCircumference(),"px")("stroke-dashoffset",o._strokeDashOffset(),"px")("stroke-width",o._circleStrokeWidth(),"%"),$e("r",o._circleRadius()),d(4),C("ngTemplateOutlet",r),d(2),C("ngTemplateOutlet",r),d(2),C("ngTemplateOutlet",r)}},dependencies:[Ld],styles:[".mat-mdc-progress-spinner{--mat-progress-spinner-animation-multiplier: 1;display:block;overflow:hidden;line-height:0;position:relative;direction:ltr;transition:opacity 250ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-progress-spinner circle{stroke-width:var(--mat-progress-spinner-active-indicator-width, 4px)}.mat-mdc-progress-spinner._mat-animation-noopable,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__determinate-circle{transition:none !important}.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 !important}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container circle{stroke-dasharray:0 !important}@media(forced-colors: active){.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle{stroke:currentColor;stroke:CanvasText}}.mat-progress-spinner-reduced-motion{--mat-progress-spinner-animation-multiplier: 1.25}.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 .mdc-circular-progress__determinate-container{opacity:0}.mdc-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{opacity:1;animation:mdc-circular-progress-container-rotate calc(1568.2352941176ms*var(--mat-progress-spinner-animation-multiplier)) linear infinite}.mdc-circular-progress__determinate-circle-graphic,.mdc-circular-progress__indeterminate-circle-graphic{fill:rgba(0,0,0,0)}.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--mat-progress-spinner-active-indicator-color, var(--mat-sys-primary))}@media(forced-colors: active){.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mdc-circular-progress__determinate-circle{transition:stroke-dashoffset 500ms 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 .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__circle-left .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-left-spin calc(1333ms*var(--mat-progress-spinner-animation-multiplier)) 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 calc(1333ms*var(--mat-progress-spinner-animation-multiplier)) cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.mdc-circular-progress--indeterminate .mdc-circular-progress__spinner-layer{animation:mdc-circular-progress-spinner-layer-rotate calc(5332ms*var(--mat-progress-spinner-animation-multiplier)) cubic-bezier(0.4, 0, 0.2, 1) infinite both}@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-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)}}\n"],encapsulation:2,changeDetection:0})}return t})(),Xue=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({imports:[ii]})}return t})();const Zue=t=>({"white-theme":t});let Yr=(()=>{class t{constructor(){this.showWhite=!0}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=re({type:t,selectors:[["app-loading-indicator"]],inputs:{showWhite:"showWhite"},standalone:!1,decls:2,vars:4,consts:[[1,"container",3,"ngClass"],[3,"diameter"]],template:function(i,o){1&i&&(h(0,"div",0),B(1,"mat-spinner",1),u()),2&i&&(C("ngClass",se(2,Zue,o.showWhite)),d(),C("diameter",50))},dependencies:[$t,so],styles:["[_nghost-%COMP%]{width:100%;height:100%;display:flex}.container[_ngcontent-%COMP%]{width:100%;align-self:center;display:flex;flex-direction:column;align-items:center}.container[_ngcontent-%COMP%] > mat-spinner[_ngcontent-%COMP%]{opacity:.5}"]})}}return t})();const Que=t=>({background:t});function Jue(t,n){1&t&&(h(0,"div",0)(1,"div"),B(2,"img",5),h(3,"div"),p(4),b(5,"translate"),u()()()),2&t&&(d(4),M(y(5,1,"common.window-size-error")))}function ehe(t,n){1&t&&B(0,"router-outlet")}function the(t,n){1&t&&B(0,"app-loading-indicator",3)}function nhe(t,n){1&t&&(h(0,"div",4)(1,"span",6)(2,"mat-icon",7),p(3,"error_outline"),u(),p(4),b(5,"translate"),u()()),2&t&&(d(2),C("inline",!0),d(2),E(" ",y(5,2,"common.data-update-problems")," "))}let Xr=(()=>{class t{constructor(e,i,o,r,s,a){this.storage=e,this.snackbarService=r,this.languageService=s,this.apiService=a,this.inVpnClient=!1,this.inLoginPage=!1,this.hypervisorPkObtained=!1,this.pkErrorShown=!1,this.pkErrorsFound=0,this.showingDataProblemMsg=!1,t.currentInstance=this,o.afterOpened.subscribe(()=>r.closeCurrent()),history.scrollRestoration&&(history.scrollRestoration="manual"),i.events.subscribe(l=>{l instanceof Wr&&(r.closeCurrent(),o.closeAll())}),o.afterAllClosed.subscribe(()=>r.closeCurrentIfTemporaryError()),i.events.subscribe(l=>{if(this.inVpnClient=i.url.includes("/vpn/")||i.url.includes("vpnlogin"),l.url){const c=this.inLoginPage;this.inLoginPage=l.url.includes("login"),c&&!this.inLoginPage&&!this.hypervisorPkObtained&&this.checkHypervisorPk(0)}i.url.length>2&&(document.title=this.inVpnClient?"Skywire VPN":"Skywire Hypervisor")}),this.languageService.loadLanguageSettings(),this.checkHypervisorPk(0)}processLoginDone(){this.inLoginPage=!1,this.hypervisorPkObtained||this.checkHypervisorPk(0)}showDataProblemMsg(){this.showingDataProblemMsg=!0}hideDataProblemMsg(){this.showingDataProblemMsg=!1}checkHypervisorPk(e){this.obtainPkSubscription&&this.obtainPkSubscription.unsubscribe(),this.obtainPkSubscription=ae(1).pipe(li(e),It(()=>this.apiService.get("about"))).subscribe(i=>{i.public_key?(this.finishStartup(i.public_key),this.hypervisorPkObtained=!0):(this.pkErrorShown||(this.snackbarService.showError("start.loading-error",null,!0),this.pkErrorShown=!0),this.checkHypervisorPk(1e3))},i=>{if(this.pkErrorsFound+=1,this.pkErrorsFound>4&&!this.pkErrorShown){const o=Qe(i);this.snackbarService.showError("start.loading-error",null,!0,o),this.pkErrorShown=!0}!this.inLoginPage&&this.pkErrorsFound<30&&this.checkHypervisorPk(Math.min(1e3*this.pkErrorsFound,1e4))})}finishStartup(e){this.storage.initialize(e)}static{this.\u0275fac=function(i){return new(i||t)(O(ti),O(vt),O(Ot),O(ct),O($b),O(zi))}}static{this.\u0275cmp=re({type:t,selectors:[["app-root"]],standalone:!1,decls:6,vars:7,consts:[[1,"size-alert","d-md-none"],[1,"flex-1","content","container-fluid"],[3,"ngClass"],[1,"h-100"],[1,"connection-problem-container"],["src","assets/img/size-alert.png"],[1,"blinking"],[3,"inline"]],template:function(i,o){1&i&&(x(0,Jue,6,3,"div",0),h(1,"div",1),B(2,"div",2),x(3,ehe,1,0,"router-outlet"),x(4,the,1,0,"app-loading-indicator",3),u(),x(5,nhe,6,4,"div",4)),2&i&&(S(o.inVpnClient?0:-1),d(2),C("ngClass",se(5,Que,o.inVpnClient)),d(),S(o.hypervisorPkObtained||o.inLoginPage?3:-1),d(),S(o.hypervisorPkObtained||o.inLoginPage?-1:4),d(),S(o.showingDataProblemMsg?5:-1))},dependencies:[$t,eb,We,Yr,xe],styles:[".size-alert[_ngcontent-%COMP%]{background-color:#000000d9;position:fixed;top:0;left:0;width:100%;height:100%;z-index:10000;display:inline-flex;align-items:center;justify-content:center;text-align:center;color:#fff}.size-alert[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{margin:0 40px;max-width:400px}[_nghost-%COMP%]{display:flex;flex-direction:column;justify-content:space-between;min-height:100%;height:100%}.content[_ngcontent-%COMP%]{padding:20px!important}.background[_ngcontent-%COMP%]{background-image:url(/assets/img/map.png);background-size:cover;background-position:center;opacity:.1;width:100%;height:100%;top:0;left:0;position:fixed}.connection-problem-container[_ngcontent-%COMP%]{position:fixed;bottom:0;right:0;background-color:red;padding:0 10px 5px;font-size:10px;opacity:.75}.connection-problem-container[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:4px}"]})}}return t})(),mhe=(()=>{class t{router=D(vt);stateManager=D(eS);fragment=yt("");queryParams=yt({});path=yt("");serializer=D(jd);constructor(){this.updateState(),this.router.events?.subscribe(e=>{e instanceof Wr&&this.updateState()})}updateState(){const{fragment:e,root:i,queryParams:o}=this.stateManager.getCurrentUrlTree();this.fragment.set(e),this.queryParams.set(o),this.path.set(this.serializer.serialize(new gr(i)))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Is=(()=>{class t{router;route;tabIndexAttribute;renderer;el;locationStrategy;hrefAttributeValue=D(new Yh("href"),{optional:!0});reactiveHref=function lw(t,n){return yF("function"==typeof t?_F(t,xte,n?.equal):_F(t.source,t.computation,t.equal))}(()=>this.isAnchorElement?this.computeHref(this._urlTree()):this.hrefAttributeValue);get href(){return nt(this.reactiveHref)}set href(e){this.reactiveHref.set(e)}set target(e){this._target.set(e)}get target(){return nt(this._target)}_target=yt(void 0);set queryParams(e){this._queryParams.set(e)}get queryParams(){return nt(this._queryParams)}_queryParams=yt(void 0,{equal:()=>!1});set fragment(e){this._fragment.set(e)}get fragment(){return nt(this._fragment)}_fragment=yt(void 0);set queryParamsHandling(e){this._queryParamsHandling.set(e)}get queryParamsHandling(){return nt(this._queryParamsHandling)}_queryParamsHandling=yt(void 0);set state(e){this._state.set(e)}get state(){return nt(this._state)}_state=yt(void 0,{equal:()=>!1});set info(e){this._info.set(e)}get info(){return nt(this._info)}_info=yt(void 0,{equal:()=>!1});set relativeTo(e){this._relativeTo.set(e)}get relativeTo(){return nt(this._relativeTo)}_relativeTo=yt(void 0);set preserveFragment(e){this._preserveFragment.set(e)}get preserveFragment(){return nt(this._preserveFragment)}_preserveFragment=yt(!1);set skipLocationChange(e){this._skipLocationChange.set(e)}get skipLocationChange(){return nt(this._skipLocationChange)}_skipLocationChange=yt(!1);set replaceUrl(e){this._replaceUrl.set(e)}get replaceUrl(){return nt(this._replaceUrl)}_replaceUrl=yt(!1);isAnchorElement;onChanges=new me;applicationErrorHandler=D(Or);options=D(Gd,{optional:!0});reactiveRouterState=D(mhe);constructor(e,i,o,r,s,a){this.router=e,this.route=i,this.tabIndexAttribute=o,this.renderer=r,this.el=s,this.locationStrategy=a;const l=s.nativeElement.tagName?.toLowerCase();this.isAnchorElement="a"===l||"area"===l||!("object"!=typeof customElements||!customElements.get(l)?.observedAttributes?.includes?.("href"))}setTabIndexIfNotOnNativeEl(e){null!=this.tabIndexAttribute||this.isAnchorElement||this.applyAttributeValue("tabindex",e)}ngOnChanges(e){this.onChanges.next(this)}routerLinkInput=yt(null);set routerLink(e){null==e?(this.routerLinkInput.set(null),this.setTabIndexIfNotOnNativeEl(null)):(ql(e)?this.routerLinkInput.set(e):this.routerLinkInput.set(Array.isArray(e)?e:[e]),this.setTabIndexIfNotOnNativeEl("0"))}onClick(e,i,o,r,s){const a=this._urlTree();if(null===a||this.isAnchorElement&&(0!==e||i||o||r||s||"string"==typeof this.target&&"_self"!=this.target))return!0;const l={skipLocationChange:this.skipLocationChange,replaceUrl:this.replaceUrl,state:this.state,info:this.info};return this.router.navigateByUrl(a,l)?.catch(c=>{this.applicationErrorHandler(c)}),!this.isAnchorElement}ngOnDestroy(){}applyAttributeValue(e,i){const o=this.renderer,r=this.el.nativeElement;null!==i?o.setAttribute(r,e,i):o.removeAttribute(r,e)}_urlTree=Ii(()=>{this.reactiveRouterState.path(),this._preserveFragment()&&this.reactiveRouterState.fragment();const e=o=>"preserve"===o||"merge"===o;(e(this._queryParamsHandling())||e(this.options?.defaultQueryParamsHandling))&&this.reactiveRouterState.queryParams();const i=this.routerLinkInput();return null!==i&&this.router.createUrlTree?ql(i)?i:this.router.createUrlTree(i,{relativeTo:void 0!==this._relativeTo()?this._relativeTo():this.route,queryParams:this._queryParams(),fragment:this._fragment(),queryParamsHandling:this._queryParamsHandling(),preserveFragment:this._preserveFragment()}):null},{equal:(e,i)=>this.computeHref(e)===this.computeHref(i)});get urlTree(){return nt(this._urlTree)}computeHref(e){return null!==e&&this.locationStrategy?this.locationStrategy?.prepareExternalUrl(this.router.serializeUrl(e))??"":null}static \u0275fac=function(i){return new(i||t)(O(vt),O(Ai),nh("tabindex"),O(Qn),O(Re),O(Bl))};static \u0275dir=de({type:t,selectors:[["","routerLink",""]],hostVars:2,hostBindings:function(i,o){1&i&&F("click",function(s){return o.onClick(s.button,s.ctrlKey,s.shiftKey,s.altKey,s.metaKey)}),2&i&&$e("href",o.reactiveHref(),lE)("target",o._target())},inputs:{target:"target",queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",state:"state",info:"info",relativeTo:"relativeTo",preserveFragment:[2,"preserveFragment","preserveFragment",De],skipLocationChange:[2,"skipLocationChange","skipLocationChange",De],replaceUrl:[2,"replaceUrl","replaceUrl",De],routerLink:"routerLink"},features:[_i]})}return t})();class h5{}let bhe=(()=>{class t{router;injector;preloadingStrategy;loader;subscription;constructor(e,i,o,r){this.router=e,this.injector=i,this.preloadingStrategy=o,this.loader=r}setUpPreloading(){this.subscription=this.router.events.pipe(Tn(e=>e instanceof Wr),cf(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription?.unsubscribe()}processRoutes(e,i){const o=[];for(const r of i){r.providers&&!r._injector&&(r._injector=Mg(r.providers,e,""));const s=r._injector??e;r._loadedNgModuleFactory&&!r._loadedInjector&&(r._loadedInjector=r._loadedNgModuleFactory.create(s).injector);const a=r._loadedInjector??s;(r.loadChildren&&!r._loadedRoutes&&void 0===r.canLoad||r.loadComponent&&!r._loadedComponent)&&o.push(this.preloadConfig(s,r)),(r.children||r._loadedRoutes)&&o.push(this.processRoutes(a,r.children??r._loadedRoutes))}return Kn(o).pipe(Vd())}preloadConfig(e,i){return this.preloadingStrategy.preload(i,()=>{if(e.destroyed)return ae(null);let o;o=i.loadChildren&&void 0===i.canLoad?Kn(this.loader.loadChildren(e,i)):ae(null);const r=o.pipe(It(s=>null===s?ae(void 0):(i._loadedRoutes=s.routes,i._loadedInjector=s.injector,i._loadedNgModuleFactory=s.factory,this.processRoutes(s.injector??e,s.routes))));return i.loadComponent&&!i._loadedComponent?Kn([r,this.loader.loadComponent(e,i)]).pipe(Vd()):r})}static \u0275fac=function(i){return new(i||t)(ce(vt),ce(zn),ce(h5),ce(Kx))};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const US=new Z("");let f5=(()=>{class t{options;routerEventsSubscription;scrollEventsSubscription;lastId=0;lastSource=wf;restoredId=0;store={};urlSerializer=D(jd);zone=D(_e);viewportScroller=D(ZM);transitions=D(Qx);constructor(e){this.options=e,this.options.scrollPositionRestoration||="disabled",this.options.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 Z_?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=e.navigationTrigger,this.restoredId=e.restoredState?e.restoredState.navigationId:0):e instanceof Wr?(this.lastId=e.id,this.scheduleScrollEvent(e,this.urlSerializer.parse(e.urlAfterRedirects).fragment)):e instanceof Ud&&e.code===Q_.IgnoredSameUrlNavigation&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(e,this.urlSerializer.parse(e.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(e=>{if(!(e instanceof t3)||"manual"===e.scrollBehavior)return;const i={behavior:"instant"};e.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0],i):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(e.position,i):e.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(e.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0])})}scheduleScrollEvent(e,i){var o=this;const r=nt(this.transitions.currentNavigation)?.extras.scroll;this.zone.runOutsideAngular(Et(function*(){yield new Promise(s=>{setTimeout(s),typeof requestAnimationFrame<"u"&&requestAnimationFrame(s)}),o.zone.run(()=>{o.transitions.events.next(new t3(e,"popstate"===o.lastSource?o.store[o.restoredId]:null,i,r))})}))}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static \u0275fac=function(i){B1()};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})();function Ko(t,n){return{\u0275kind:t,\u0275providers:n}}function m5(){const t=D(He);return n=>{const e=t.get(lr);if(n!==e.components[0])return;const i=t.get(vt),o=t.get(g5);1===t.get(zS)&&i.initialNavigation(),t.get(_5,null,{optional:!0})?.setUpPreloading(),t.get(US,null,{optional:!0})?.init(),i.resetRootComponentType(e.componentTypes[0]),o.closed||(o.next(),o.complete(),o.unsubscribe())}}const g5=new Z("",{factory:()=>new me}),zS=new Z("",{factory:()=>1}),_5=new Z("");function xhe(t){return Ko(0,[{provide:_5,useExisting:bhe},{provide:h5,useExisting:t}])}function khe(t){return vi("NgRouterViewTransitions"),Ko(9,[{provide:T3,useValue:Qle},{provide:E3,useValue:{skipNextTransition:!!t?.skipInitialTransition,...t}}])}const Dhe=[Fd,{provide:jd,useClass:bf},vt,xf,{provide:Ai,useFactory:function p5(){return D(vt).routerState.root}},Kx,[]];let b5=(()=>{class t{constructor(){}static forRoot(e,i){return{ngModule:t,providers:[Dhe,[],{provide:sb,multi:!0,useValue:e},[],i?.errorHandler?{provide:P3,useValue:i.errorHandler}:[],{provide:Gd,useValue:i||{}},i?.useHash?{provide:Bl,useClass:Nte}:{provide:Bl,useClass:kF},{provide:US,useFactory:()=>{const t=D(ZM),n=D(Gd);return n.scrollOffset&&t.setOffset(n.scrollOffset),new f5(n)}},i?.preloadingStrategy?xhe(i.preloadingStrategy).\u0275providers:[],i?.initialNavigation?Phe(i):[],i?.bindToComponentInputs?Ko(8,[c3,{provide:tb,useExisting:c3}]).\u0275providers:[],i?.enableViewTransitions?khe().\u0275providers:[],[{provide:v5,useFactory:m5},{provide:nO,multi:!0,useExisting:v5}]]}}static forChild(e){return{ngModule:t,providers:[{provide:sb,multi:!0,useValue:e}]}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({})}return t})();function Phe(t){return["disabled"===t.initialNavigation?Ko(3,[eO(()=>{D(vt).setUpLocationChangeListener()}),{provide:zS,useValue:2}]).\u0275providers:[],"enabledBlocking"===t.initialNavigation?Ko(2,[{provide:W7,useValue:!0},{provide:zS,useValue:0},eO(()=>{const n=D(He);return n.get(_U,Promise.resolve()).then(()=>new Promise(i=>{const o=n.get(vt),r=n.get(g5);A3(o,()=>{i(!0)}),n.get(Qx).afterPreactivation=()=>(i(!0),r.closed?ae(void 0):r),o.initialNavigation()}))})]).\u0275providers:[]]}const v5=new Z("");let Kf=(()=>{class t{set forceFail(e){this.forceFailInternal=e}constructor(e){this.router=e,this.forceFailInternal=!1}canActivate(e,i){return this.checkIfCanActivate()}canActivateChild(e,i){return this.checkIfCanActivate()}checkIfCanActivate(){return this.forceFailInternal?(this.router.navigate(["login"],{replaceUrl:!0}),ae(!1)):ae(!0)}static{this.\u0275fac=function(i){return new(i||t)(ce(vt))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();var ka=function(t){return t[t.AuthDisabled=0]="AuthDisabled",t[t.Logged=1]="Logged",t[t.NotLogged=2]="NotLogged",t}(ka||{});let Yf=(()=>{class t{constructor(e,i,o){this.apiService=e,this.translateService=i,this.authGuardService=o}login(e){return this.apiService.post("login",{username:"admin",password:e},new qo({ignoreAuth:!0})).pipe(ai(i=>{if(!0!==i)throw new Error;this.authGuardService.forceFail=!1}))}checkLogin(){return this.apiService.get("user",new qo({ignoreAuth:!0})).pipe(Se(e=>e.username?ka.Logged:ka.AuthDisabled),Ui(e=>(e=Qe(e)).originalError&&401===e.originalError.status?(this.authGuardService.forceFail=!0,ae(ka.NotLogged)):mr(e)))}logout(){return this.apiService.post("logout",{}).pipe(ai(e=>{if(!0!==e)throw new Error;this.authGuardService.forceFail=!0}))}changePassword(e,i){return this.apiService.post("change-password",{old_password:e,new_password:i},new qo({responseType:qf.Text,ignoreAuth:!0})).pipe(Se(o=>{if("string"==typeof o&&"true"===o.trim())return!0;throw"Please do not change the default password."===o?new Error(this.translateService.instant("settings.password.errors.default-password")):new Error(this.translateService.instant("common.operation-error"))}),Ui(o=>((o=Qe(o)).originalError&&401===o.originalError.status&&(o.translatableErrorMsg="settings.password.errors.bad-old-password"),mr(o))))}initialConfig(e){return this.apiService.post("create-account",{username:"admin",password:e},new qo({responseType:qf.Text,ignoreAuth:!0})).pipe(Se(i=>{if("string"==typeof i&&"true"===i.trim())return!0;throw new Error(i)}),Ui(i=>((i=Qe(i)).originalError&&500===i.originalError.status&&(i.translatableErrorMsg="settings.password.initial-config.error"),mr(i))))}userExists(){return this.apiService.get("user-exists",new qo({ignoreAuth:!0})).pipe(Se(e=>!0===e.exists),Ui(()=>ae(!0)))}static{this.\u0275fac=function(i){return new(i||t)(ce(zi),ce(Go),ce(Kf))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();class Ohe{}class pn{constructor(){this.persistentScrollPosKey="scroll-pos"}static{this.mustCallNgOnInitSuper=Symbol("You must call super.ngOnInit.")}ngOnInit(){let n=this.getLocalValue(this.persistentScrollPosKey);n=n?n.value:"0",window.scrollTo(0,Number(n)),setTimeout(()=>window.scrollTo(0,Number(n)),1)}saveScrollPosition(n){this.saveLocalValue(this.persistentScrollPosKey,window.scrollY+"")}saveLocalValue(n,e){const i=window.history.state;i[n]=e,i[n+"_time"]=(new Date).getTime(),window.history.replaceState(i,"",window.location.pathname+window.location.hash)}getLocalValue(n){if(!window.history.state||void 0===window.history.state[n])return null;const e=new Ohe;return e.value=window.history.state[n],e.date=window.history.state[n+"_time"],e}static{this.\u0275fac=function(e){return new(e||pn)}}static{this.\u0275cmp=re({type:pn,selectors:[["app-page-base"]],hostBindings:function(e,i){1&e&&F("scroll",function(r){return i.saveScrollPosition(r)},XC)},standalone:!1,decls:0,vars:0,template:function(e,i){},encapsulation:2})}}let Ahe=(()=>{class t extends pn{constructor(e,i){super(),this.authService=e,this.router=i}ngOnInit(){return this.verificationSubscription=this.authService.checkLogin().subscribe(e=>{this.router.navigate(e!==ka.NotLogged?["nodes"]:["login"],{replaceUrl:!0})},()=>{this.router.navigate(["nodes"],{replaceUrl:!0})}),super.ngOnInit()}ngOnDestroy(){this.verificationSubscription.unsubscribe()}static{this.\u0275fac=function(i){return new(i||t)(O(Yf),O(vt))}}static{this.\u0275cmp=re({type:t,selectors:[["app-start"]],standalone:!1,features:[be],decls:2,vars:0,consts:[[1,"h-100","w-100"]],template:function(i,o){1&i&&(h(0,"div",0),B(1,"app-loading-indicator"),u())},dependencies:[Yr],encapsulation:2})}}return t})(),y5=(()=>{class t{_renderer;_elementRef;onChange=e=>{};onTouched=()=>{};constructor(e,i){this._renderer=e,this._elementRef=i}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 \u0275fac=function(i){return new(i||t)(O(Qn),O(Re))};static \u0275dir=de({type:t})}return t})(),ic=(()=>{class t extends y5{static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275dir=de({type:t,features:[be]})}return t})();const Yo=new Z(""),Fhe={provide:Yo,useExisting:Nt(()=>Gt),multi:!0},Lhe=new Z("");let Gt=(()=>{class t extends y5{_compositionMode;_composing=!1;constructor(e,i,o){super(e,i),this._compositionMode=o,null==this._compositionMode&&(this._compositionMode=!function Nhe(){const t=Xs()?Xs().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 \u0275fac=function(i){return new(i||t)(O(Qn),O(Re),O(Lhe,8))};static \u0275dir=de({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&&F("input",function(s){return o._handleInput(s.target.value)})("blur",function(){return o.onTouched()})("compositionstart",function(){return o._compositionStart()})("compositionend",function(s){return o._compositionEnd(s.target.value)})},standalone:!1,features:[lt([Fhe]),be]})}return t})();function $S(t){return null==t||0===WS(t)}function WS(t){return null==t?null:Array.isArray(t)||"string"==typeof t?t.length:t instanceof Set?t.size:null}const Ci=new Z(""),Da=new Z(""),Bhe=/^(?=.{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 Ne{static min(n){return w5(n)}static max(n){return x5(n)}static required(n){return function S5(t){return $S(t.value)?{required:!0}:null}(n)}static requiredTrue(n){return function k5(t){return!0===t.value?null:{required:!0}}(n)}static email(n){return function D5(t){return $S(t.value)||Bhe.test(t.value)?null:{email:!0}}(n)}static minLength(n){return function M5(t){return n=>{const e=n.value?.length??WS(n.value);return null===e||0===e?null:e{if($S(i.value))return null;const o=i.value;return n.test(o)?null:{pattern:{requiredPattern:e,actualValue:o}}}}(n)}static nullValidator(n){return null}static compose(n){return F5(n)}static composeAsync(n){return N5(n)}}function w5(t){return n=>{if(null==n.value||null==t)return null;const e=parseFloat(n.value);return!isNaN(e)&&e{if(null==n.value||null==t)return null;const e=parseFloat(n.value);return!isNaN(e)&&e>t?{max:{max:t,actual:n.value}}:null}}function T5(t){return n=>{const e=n.value?.length??WS(n.value);return null!==e&&e>t?{maxlength:{requiredLength:t,actualLength:e}}:null}}function Gb(t){return null}function P5(t){return null!=t}function I5(t){return Rh(t)?Kn(t):t}function O5(t){let n={};return t.forEach(e=>{n=null!=e?{...n,...e}:n}),0===Object.keys(n).length?null:n}function A5(t,n){return n.map(e=>e(t))}function R5(t){return t.map(n=>function Vhe(t){return!t.validate}(n)?n:e=>n.validate(e))}function F5(t){if(!t)return null;const n=t.filter(P5);return 0==n.length?null:function(e){return O5(A5(e,n))}}function GS(t){return null!=t?F5(R5(t)):null}function N5(t){if(!t)return null;const n=t.filter(P5);return 0==n.length?null:function(e){return zf(A5(e,n).map(I5)).pipe(Se(O5))}}function qS(t){return null!=t?N5(R5(t)):null}function L5(t,n){return null===t?[n]:Array.isArray(t)?[...t,n]:[t,n]}function B5(t){return t._rawValidators}function V5(t){return t._rawAsyncValidators}function KS(t){return t?Array.isArray(t)?t:[t]:[]}function qb(t,n){return Array.isArray(t)?t.includes(n):t===n}function H5(t,n){const e=KS(n);return KS(t).forEach(o=>{qb(e,o)||e.push(o)}),e}function j5(t,n){return KS(n).filter(e=>!qb(t,e))}class U5{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}_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators=[];_rawAsyncValidators=[];_setValidators(n){this._rawValidators=n||[],this._composedValidatorFn=GS(this._rawValidators)}_setAsyncValidators(n){this._rawAsyncValidators=n||[],this._composedAsyncValidatorFn=qS(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_onDestroyCallbacks=[];_registerOnDestroy(n){this._onDestroyCallbacks.push(n)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(n=>n()),this._onDestroyCallbacks=[]}reset(n=void 0){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 $i extends U5{name;get formDirective(){return null}get path(){return null}}class Zr extends U5{_parent=null;name=null;valueAccessor=null}class z5{_cd;constructor(n){this._cd=n}get isTouched(){return this._cd?.control?._touched?.(),!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return this._cd?.control?._pristine?.(),!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return this._cd?.control?._status?.(),!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return this._cd?._submitted?.(),!!this._cd?.submitted}}let qt=(()=>{class t extends z5{constructor(e){super(e)}static \u0275fac=function(i){return new(i||t)(O(Zr,2))};static \u0275dir=de({type:t,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,o){2&i&&Ie("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)},standalone:!1,features:[be]})}return t})(),wn=(()=>{class t extends z5{constructor(e){super(e)}static \u0275fac=function(i){return new(i||t)(O($i,10))};static \u0275dir=de({type:t,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["","formArray",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(i,o){2&i&&Ie("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)},standalone:!1,features:[be]})}return t})();const Xf="VALID",Yb="INVALID",iu="PENDING",Zf="DISABLED";class ou{}class G5 extends ou{value;source;constructor(n,e){super(),this.value=n,this.source=e}}class ZS extends ou{pristine;source;constructor(n,e){super(),this.pristine=n,this.source=e}}class QS extends ou{touched;source;constructor(n,e){super(),this.touched=n,this.source=e}}class Xb extends ou{status;source;constructor(n,e){super(),this.status=n,this.source=e}}class q5 extends ou{source;constructor(n){super(),this.source=n}}class JS extends ou{source;constructor(n){super(),this.source=n}}function ek(t){return(Zb(t)?t.validators:t)||null}function tk(t,n){return(Zb(n)?n.asyncValidators:t)||null}function Zb(t){return null!=t&&!Array.isArray(t)&&"object"==typeof t}function K5(t,n,e){const i=t.controls;if(!(n?Object.keys(i):i).length)throw new X(1e3,"");if(!i[e])throw new X(1001,"")}function Y5(t,n,e){t._forEachChild((i,o)=>{if(void 0===e[o])throw new X(1002,"")})}class Qb{_pendingDirty=!1;_hasOwnPendingAsyncValidator=null;_pendingTouched=!1;_onCollectionChange=()=>{};_updateOn;_parent=null;_asyncValidationSubscription;_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators;_rawAsyncValidators;value;constructor(n,e){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 status(){return nt(this.statusReactive)}set status(n){nt(()=>this.statusReactive.set(n))}_status=Ii(()=>this.statusReactive());statusReactive=yt(void 0);get valid(){return this.status===Xf}get invalid(){return this.status===Yb}get pending(){return this.status==iu}get disabled(){return this.status===Zf}get enabled(){return this.status!==Zf}errors;get pristine(){return nt(this.pristineReactive)}set pristine(n){nt(()=>this.pristineReactive.set(n))}_pristine=Ii(()=>this.pristineReactive());pristineReactive=yt(!0);get dirty(){return!this.pristine}get touched(){return nt(this.touchedReactive)}set touched(n){nt(()=>this.touchedReactive.set(n))}_touched=Ii(()=>this.touchedReactive());touchedReactive=yt(!1);get untouched(){return!this.touched}_events=new me;events=this._events.asObservable();valueChanges;statusChanges;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(H5(n,this._rawValidators))}addAsyncValidators(n){this.setAsyncValidators(H5(n,this._rawAsyncValidators))}removeValidators(n){this.setValidators(j5(n,this._rawValidators))}removeAsyncValidators(n){this.setAsyncValidators(j5(n,this._rawAsyncValidators))}hasValidator(n){return qb(this._rawValidators,n)}hasAsyncValidator(n){return qb(this._rawAsyncValidators,n)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(n={}){const e=!1===this.touched;this.touched=!0;const i=n.sourceControl??this;n.onlySelf||this._parent?.markAsTouched({...n,sourceControl:i}),e&&!1!==n.emitEvent&&this._events.next(new QS(!0,i))}markAllAsDirty(n={}){this.markAsDirty({onlySelf:!0,emitEvent:n.emitEvent,sourceControl:this}),this._forEachChild(e=>e.markAllAsDirty(n))}markAllAsTouched(n={}){this.markAsTouched({onlySelf:!0,emitEvent:n.emitEvent,sourceControl:this}),this._forEachChild(e=>e.markAllAsTouched(n))}markAsUntouched(n={}){const e=!0===this.touched;this.touched=!1,this._pendingTouched=!1;const i=n.sourceControl??this;this._forEachChild(o=>{o.markAsUntouched({onlySelf:!0,emitEvent:n.emitEvent,sourceControl:i})}),n.onlySelf||this._parent?._updateTouched(n,i),e&&!1!==n.emitEvent&&this._events.next(new QS(!1,i))}markAsDirty(n={}){const e=!0===this.pristine;this.pristine=!1;const i=n.sourceControl??this;n.onlySelf||this._parent?.markAsDirty({...n,sourceControl:i}),e&&!1!==n.emitEvent&&this._events.next(new ZS(!1,i))}markAsPristine(n={}){const e=!1===this.pristine;this.pristine=!0,this._pendingDirty=!1;const i=n.sourceControl??this;this._forEachChild(o=>{o.markAsPristine({onlySelf:!0,emitEvent:n.emitEvent})}),n.onlySelf||this._parent?._updatePristine(n,i),e&&!1!==n.emitEvent&&this._events.next(new ZS(!0,i))}markAsPending(n={}){this.status=iu;const e=n.sourceControl??this;!1!==n.emitEvent&&(this._events.next(new Xb(this.status,e)),this.statusChanges.emit(this.status)),n.onlySelf||this._parent?.markAsPending({...n,sourceControl:e})}disable(n={}){const e=this._parentMarkedDirty(n.onlySelf);this.status=Zf,this.errors=null,this._forEachChild(o=>{o.disable({...n,onlySelf:!0})}),this._updateValue();const i=n.sourceControl??this;!1!==n.emitEvent&&(this._events.next(new G5(this.value,i)),this._events.next(new Xb(this.status,i)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...n,skipPristineCheck:e},this),this._onDisabledChange.forEach(o=>o(!0))}enable(n={}){const e=this._parentMarkedDirty(n.onlySelf);this.status=Xf,this._forEachChild(i=>{i.enable({...n,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent}),this._updateAncestors({...n,skipPristineCheck:e},this),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(n,e){n.onlySelf||(this._parent?.updateValueAndValidity(n),n.skipPristineCheck||this._parent?._updatePristine({},e),this._parent?._updateTouched({},e))}setParent(n){this._parent=n}getRawValue(){return this.value}updateValueAndValidity(n={}){if(this._setInitialStatus(),this._updateValue(),this.enabled){const i=this._cancelExistingSubscription();this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===Xf||this.status===iu)&&this._runAsyncValidator(i,n.emitEvent)}const e=n.sourceControl??this;!1!==n.emitEvent&&(this._events.next(new G5(this.value,e)),this._events.next(new Xb(this.status,e)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),n.onlySelf||this._parent?.updateValueAndValidity({...n,sourceControl:e})}_updateTreeValidity(n={emitEvent:!0}){this._forEachChild(e=>e._updateTreeValidity(n)),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?Zf:Xf}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(n,e){if(this.asyncValidator){this.status=iu,this._hasOwnPendingAsyncValidator={emitEvent:!1!==e,shouldHaveEmitted:!1!==n};const i=I5(this.asyncValidator(this));this._asyncValidationSubscription=i.subscribe(o=>{this._hasOwnPendingAsyncValidator=null,this.setErrors(o,{emitEvent:e,shouldHaveEmitted:n})})}}_cancelExistingSubscription(){if(this._asyncValidationSubscription){this._asyncValidationSubscription.unsubscribe();const n=(this._hasOwnPendingAsyncValidator?.emitEvent||this._hasOwnPendingAsyncValidator?.shouldHaveEmitted)??!1;return this._hasOwnPendingAsyncValidator=null,n}return!1}setErrors(n,e={}){this.errors=n,this._updateControlsErrors(!1!==e.emitEvent,this,e.shouldHaveEmitted)}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?.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,e,i){this.status=this._calculateStatus(),n&&this.statusChanges.emit(this.status),(n||i)&&this._events.next(new Xb(this.status,e)),this._parent&&this._parent._updateControlsErrors(n,e,i)}_initObservables(){this.valueChanges=new we,this.statusChanges=new we}_calculateStatus(){return this._allControlsDisabled()?Zf:this.errors?Yb:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(iu)?iu:this._anyControlsHaveStatus(Yb)?Yb:Xf}_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,e){const i=!this._anyControlsDirty(),o=this.pristine!==i;this.pristine=i,n.onlySelf||this._parent?._updatePristine(n,e),o&&this._events.next(new ZS(this.pristine,e))}_updateTouched(n={},e){this.touched=this._anyControlsTouched(),this._events.next(new QS(this.touched,e)),n.onlySelf||this._parent?._updateTouched(n,e)}_onDisabledChange=[];_registerOnCollectionChange(n){this._onCollectionChange=n}_setUpdateStrategy(n){Zb(n)&&null!=n.updateOn&&(this._updateOn=n.updateOn)}_parentMarkedDirty(n){return!n&&!!this._parent?.dirty&&!this._parent._anyControlsDirty()}_find(n){return null}_assignValidators(n){this._rawValidators=Array.isArray(n)?n.slice():n,this._composedValidatorFn=function Ghe(t){return Array.isArray(t)?GS(t):t||null}(this._rawValidators)}_assignAsyncValidators(n){this._rawAsyncValidators=Array.isArray(n)?n.slice():n,this._composedAsyncValidatorFn=function qhe(t){return Array.isArray(t)?qS(t):t||null}(this._rawAsyncValidators)}}class ru extends Qb{constructor(n,e,i){super(ek(e),tk(i,e)),this.controls=n,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;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={}){Y5(this,0,n),Object.keys(n).forEach(i=>{K5(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,{...e,onlySelf:!0})}),this._updatePristine(e,this),this._updateTouched(e,this),this.updateValueAndValidity(e),!1!==e?.emitEvent&&this._events.next(new JS(this))}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}}const nk=ru;class X5 extends ru{}const oc=new Z("",{factory:()=>Qf}),Qf="always";function Jb(t,n){return[...n.path,t]}function Jf(t,n,e=Qf){ik(t,n),n.valueAccessor.writeValue(t.value),(t.disabled||"always"===e)&&n.valueAccessor.setDisabledState?.(t.disabled),function Yhe(t,n){n.valueAccessor.registerOnChange(e=>{t._pendingValue=e,t._pendingChange=!0,t._pendingDirty=!0,"change"===t.updateOn&&Z5(t,n)})}(t,n),function Zhe(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 Xhe(t,n){n.valueAccessor.registerOnTouched(()=>{t._pendingTouched=!0,"blur"===t.updateOn&&t._pendingChange&&Z5(t,n),"submit"!==t.updateOn&&t.markAsTouched()})}(t,n),function Khe(t,n){if(n.valueAccessor.setDisabledState){const e=i=>{n.valueAccessor.setDisabledState(i)};t.registerOnDisabledChange(e),n._registerOnDestroy(()=>{t._unregisterOnDisabledChange(e)})}}(t,n)}function ev(t,n,e=!0){const i=()=>{};n?.valueAccessor?.registerOnChange(i),n?.valueAccessor?.registerOnTouched(i),nv(t,n),t&&(n._invokeOnDestroyCallbacks(),t._registerOnCollectionChange(()=>{}))}function tv(t,n){t.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(n)})}function ik(t,n){const e=B5(t);null!==n.validator?t.setValidators(L5(e,n.validator)):"function"==typeof e&&t.setValidators([e]);const i=V5(t);null!==n.asyncValidator?t.setAsyncValidators(L5(i,n.asyncValidator)):"function"==typeof i&&t.setAsyncValidators([i]);const o=()=>t.updateValueAndValidity();tv(n._rawValidators,o),tv(n._rawAsyncValidators,o)}function nv(t,n){let e=!1;if(null!==t){if(null!==n.validator){const o=B5(t);if(Array.isArray(o)&&o.length>0){const r=o.filter(s=>s!==n.validator);r.length!==o.length&&(e=!0,t.setValidators(r))}}if(null!==n.asyncValidator){const o=V5(t);if(Array.isArray(o)&&o.length>0){const r=o.filter(s=>s!==n.asyncValidator);r.length!==o.length&&(e=!0,t.setAsyncValidators(r))}}}const i=()=>{};return tv(n._rawValidators,i),tv(n._rawAsyncValidators,i),e}function Z5(t,n){t._pendingDirty&&t.markAsDirty(),t.setValue(t._pendingValue,{emitModelToViewChange:!1}),n.viewToModelUpdate(t._pendingValue),t._pendingChange=!1}function Q5(t,n){ik(t,n)}function rk(t,n){if(!t.hasOwnProperty("model"))return!1;const e=t.model;return!!e.isFirstChange()||!Object.is(n,e.currentValue)}function J5(t,n){t._syncPendingControls(),n.forEach(e=>{const i=e.control;"submit"===i.updateOn&&i._pendingChange&&(e.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}function sk(t,n){if(!n)return null;let e,i,o;return Array.isArray(n),n.forEach(r=>{r.constructor===Gt?e=r:function efe(t){return Object.getPrototypeOf(t.constructor)===ic}(r)?i=r:o=r}),o||i||e||null}const nfe={provide:$i,useExisting:Nt(()=>su)},ep=Promise.resolve();let su=(()=>{class t extends $i{callSetDisabledState;get submitted(){return nt(this.submittedReactive)}_submitted=Ii(()=>this.submittedReactive());submittedReactive=yt(!1);_directives=new Set;form;ngSubmit=new we;options;constructor(e,i,o){super(),this.callSetDisabledState=o,this.form=new ru({},GS(e),qS(i))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(e){ep.then(()=>{const i=this._findContainer(e.path);e.control=i.registerControl(e.name,e.control),Jf(e.control,e,this.callSetDisabledState),e.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(e)})}getControl(e){return this.form.get(e.path)}removeControl(e){ep.then(()=>{this._findContainer(e.path)?.removeControl(e.name),this._directives.delete(e)})}addFormGroup(e){ep.then(()=>{const i=this._findContainer(e.path),o=new ru({});Q5(o,e),i.registerControl(e.name,o),o.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(e){ep.then(()=>{this._findContainer(e.path)?.removeControl?.(e.name)})}getFormGroup(e){return this.form.get(e.path)}updateModel(e,i){ep.then(()=>{this.form.get(e.path).setValue(i)})}setValue(e){this.control.setValue(e)}onSubmit(e){return this.submittedReactive.set(!0),J5(this.form,this._directives),this.ngSubmit.emit(e),this.form._events.next(new q5(this.control)),"dialog"===e?.target?.method}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this.submittedReactive.set(!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 \u0275fac=function(i){return new(i||t)(O(Ci,10),O(Da,10),O(oc,8))};static \u0275dir=de({type:t,selectors:[["form",3,"ngNoForm","",3,"formGroup","",3,"formArray",""],["ng-form"],["","ngForm",""]],hostBindings:function(i,o){1&i&&F("submit",function(s){return o.onSubmit(s)})("reset",function(){return o.onReset()})},inputs:{options:[0,"ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[lt([nfe]),be]})}return t})();function eB(t,n){const e=t.indexOf(n);e>-1&&t.splice(e,1)}function tB(t){return"object"==typeof t&&null!==t&&2===Object.keys(t).length&&"value"in t&&"disabled"in t}const au=class extends Qb{defaultValue=null;_onChange=[];_pendingValue;_pendingChange=!1;constructor(n=null,e,i){super(ek(e),tk(i,e)),this._applyFormState(n),this._setUpdateStrategy(e),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),Zb(e)&&(e.nonNullable||e.initialValueIsDefault)&&(this.defaultValue=tB(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),e.overwriteDefaultValue&&(this.defaultValue=this.value),this._pendingChange=!1,!1!==e?.emitEvent&&this._events.next(new JS(this))}_updateValue(){}_anyControls(n){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(n){this._onChange.push(n)}_unregisterOnChange(n){eB(this._onChange,n)}registerOnDisabledChange(n){this._onDisabledChange.push(n)}_unregisterOnDisabledChange(n){eB(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){tB(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}},lu=au;let iv=(()=>{class t extends $i{_parent;ngOnInit(){this._checkParentType(),this.formDirective.addFormGroup(this)}ngOnDestroy(){this.formDirective?.removeFormGroup(this)}get control(){return this.formDirective.getFormGroup(this)}get path(){return Jb(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275dir=de({type:t,standalone:!1,features:[be]})}return t})();const afe={provide:Zr,useExisting:Nt(()=>cu)},nB=Promise.resolve();let cu=(()=>{class t extends Zr{_changeDetectorRef;callSetDisabledState;control=new au;static ngAcceptInputType_isDisabled;_registered=!1;viewModel;name="";isDisabled;model;options;update=new we;constructor(e,i,o,r,s,a){super(),this._changeDetectorRef=s,this.callSetDisabledState=a,this._parent=e,this._setValidators(i),this._setAsyncValidators(o),this.valueAccessor=sk(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),rk(e,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){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(){Jf(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._checkName()}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(e){nB.then(()=>{this.control.setValue(e,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(e){const i=e.isDisabled.currentValue,o=0!==i&&De(i);nB.then(()=>{o&&!this.control.disabled?this.control.disable():!o&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(e){return this._parent?Jb(e,this._parent):[e]}static \u0275fac=function(i){return new(i||t)(O($i,9),O(Ci,10),O(Da,10),O(Yo,10),O(Jt,8),O(oc,8))};static \u0275dir=de({type:t,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"],options:[0,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],standalone:!1,features:[lt([afe]),be,_i]})}return t})(),xn=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""],standalone:!1})}return t})();const lfe={provide:Yo,useExisting:Nt(()=>rc),multi:!0};let rc=(()=>{class t extends ic{writeValue(e){this.setProperty("value",e??"")}registerOnChange(e){this.onChange=i=>{e(""==i?null:parseFloat(i))}}static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275dir=de({type:t,selectors:[["input","type","number","formControlName",""],["input","type","number","formControl",""],["input","type","number","ngModel",""]],hostBindings:function(i,o){1&i&&F("input",function(s){return o.onChange(s.target.value)})("blur",function(){return o.onTouched()})},standalone:!1,features:[lt([lfe]),be]})}return t})();class rB extends Qb{constructor(n,e,i){super(ek(e),tk(i,e)),this.controls=n,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;at(n){return this.controls[this._adjustIndex(n)]}push(n,e={}){Array.isArray(n)?n.forEach(i=>{this.controls.push(i),this._registerControl(i)}):(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={}){Y5(this,0,n),n.forEach((i,o)=>{K5(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],{...e,onlySelf:!0})}),this._updatePristine(e,this),this._updateTouched(e,this),this.updateValueAndValidity(e),!1!==e?.emitEvent&&this._events.next(new JS(this))}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}}let rv=(()=>{class t extends $i{callSetDisabledState;get submitted(){return nt(this._submittedReactive)}set submitted(e){this._submittedReactive.set(e)}_submitted=Ii(()=>this._submittedReactive());_submittedReactive=yt(!1);_oldForm;_onCollectionChange=()=>this._updateDomValue();directives=[];constructor(e,i,o){super(),this.callSetDisabledState=o,this._setValidators(e),this._setAsyncValidators(i)}ngOnChanges(e){this.onChanges(e)}ngOnDestroy(){this.onDestroy()}onChanges(e){this._checkFormPresent(),e.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}onDestroy(){this.form&&(nv(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get path(){return[]}addControl(e){const i=this.form.get(e.path);return Jf(i,e,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(e),i}getControl(e){return this.form.get(e.path)}removeControl(e){ev(e.control||null,e,!1),function tfe(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)}getFormArray(e){return this.form.get(e.path)}addFormArray(e){this._setUpFormContainer(e)}removeFormArray(e){this._cleanUpFormContainer(e)}updateModel(e,i){this.form.get(e.path).setValue(i)}onReset(){this.resetForm()}resetForm(e=void 0,i={}){this.form.reset(e,i),this._submittedReactive.set(!1)}onSubmit(e){return this.submitted=!0,J5(this.form,this.directives),this.ngSubmit.emit(e),this.form._events.next(new q5(this.control)),"dialog"===e?.target?.method}_updateDomValue(){this.directives.forEach(e=>{const i=e.control,o=this.form.get(e.path);i!==o&&(ev(i||null,e),(t=>t instanceof au)(o)&&(Jf(o,e,this.callSetDisabledState),e.control=o))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(e){const i=this.form.get(e.path);Q5(i,e),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(e){const i=this.form?.get(e.path);i&&function Qhe(t,n){return nv(t,n)}(i,e)&&i.updateValueAndValidity({emitEvent:!1})}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm?._registerOnCollectionChange(()=>{})}_updateValidators(){ik(this.form,this),this._oldForm&&nv(this._oldForm,this)}_checkFormPresent(){}static \u0275fac=function(i){return new(i||t)(O(Ci,10),O(Da,10),O(oc,8))};static \u0275dir=de({type:t,features:[be,_i]})}return t})();const ak=new Z(""),pfe={provide:$i,useExisting:Nt(()=>sc)};let sc=(()=>{class t extends iv{name=null;constructor(e,i,o){super(),this._parent=e,this._setValidators(i),this._setAsyncValidators(o)}_checkParentType(){lB(this._parent)}static \u0275fac=function(i){return new(i||t)(O($i,13),O(Ci,10),O(Da,10))};static \u0275dir=de({type:t,selectors:[["","formGroupName",""]],inputs:{name:[0,"formGroupName","name"]},standalone:!1,features:[lt([pfe]),be]})}return t})();const mfe={provide:$i,useExisting:Nt(()=>du)};let du=(()=>{class t extends $i{_parent;name=null;constructor(e,i,o){super(),this._parent=e,this._setValidators(i),this._setAsyncValidators(o)}ngOnInit(){lB(this._parent),this.formDirective.addFormArray(this)}ngOnDestroy(){this.formDirective?.removeFormArray(this)}get control(){return this.formDirective.getFormArray(this)}get formDirective(){return this._parent?this._parent.formDirective:null}get path(){return Jb(null==this.name?this.name:this.name.toString(),this._parent)}static \u0275fac=function(i){return new(i||t)(O($i,13),O(Ci,10),O(Da,10))};static \u0275dir=de({type:t,selectors:[["","formArrayName",""]],inputs:{name:[0,"formArrayName","name"]},standalone:!1,features:[lt([mfe]),be]})}return t})();function lB(t){return!(t instanceof sc||t instanceof rv||t instanceof du)}const gfe={provide:Zr,useExisting:Nt(()=>mn)};let mn=(()=>{class t extends Zr{_ngModelWarningConfig;_added=!1;viewModel;control;name=null;set isDisabled(e){}model;update=new we;static _ngModelWarningSentOnce=!1;_ngModelWarningSent=!1;constructor(e,i,o,r,s){super(),this._ngModelWarningConfig=s,this._parent=e,this._setValidators(i),this._setAsyncValidators(o),this.valueAccessor=sk(0,r)}ngOnChanges(e){this._added||this._setUpControl(),rk(e,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective?.removeControl(this)}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}get path(){return Jb(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_setUpControl(){this.control=this.formDirective.addControl(this),this._added=!0}static \u0275fac=function(i){return new(i||t)(O($i,13),O(Ci,10),O(Da,10),O(Yo,10),O(ak,8))};static \u0275dir=de({type:t,selectors:[["","formControlName",""]],inputs:{name:[0,"formControlName","name"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},standalone:!1,features:[lt([gfe]),be,_i]})}return t})();const _fe={provide:$i,useExisting:Nt(()=>on)};let on=(()=>{class t extends rv{form=null;ngSubmit=new we;get control(){return this.form}static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275dir=de({type:t,selectors:[["","formGroup",""]],hostBindings:function(i,o){1&i&&F("submit",function(s){return o.onSubmit(s)})("reset",function(){return o.onReset()})},inputs:{form:[0,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[lt([_fe]),be]})}return t})();function hB(t){return"number"==typeof t?t:parseFloat(t)}let ac=(()=>{class t{_validator=Gb;_onChange;_enabled;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):Gb,this._onChange?.()}}validate(e){return this._validator(e)}registerOnValidatorChange(e){this._onChange=e}enabled(e){return null!=e}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,features:[_i]})}return t})();const Sfe={provide:Ci,useExisting:Nt(()=>sv),multi:!0};let sv=(()=>{class t extends ac{max;inputName="max";normalizeInput=e=>hB(e);createValidator=e=>x5(e);static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275dir=de({type:t,selectors:[["input","type","number","max","","formControlName",""],["input","type","number","max","","formControl",""],["input","type","number","max","","ngModel",""]],hostVars:1,hostBindings:function(i,o){2&i&&$e("max",o._enabled?o.max:null)},inputs:{max:"max"},standalone:!1,features:[lt([Sfe]),be]})}return t})();const kfe={provide:Ci,useExisting:Nt(()=>tp),multi:!0};let tp=(()=>{class t extends ac{min;inputName="min";normalizeInput=e=>hB(e);createValidator=e=>w5(e);static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275dir=de({type:t,selectors:[["input","type","number","min","","formControlName",""],["input","type","number","min","","formControl",""],["input","type","number","min","","ngModel",""]],hostVars:1,hostBindings:function(i,o){2&i&&$e("min",o._enabled?o.min:null)},inputs:{min:"min"},standalone:!1,features:[lt([kfe]),be]})}return t})();const Pfe={provide:Ci,useExisting:Nt(()=>wi),multi:!0};let wi=(()=>{class t extends ac{maxlength;inputName="maxlength";normalizeInput=e=>function uB(t){return"number"==typeof t?t:parseInt(t,10)}(e);createValidator=e=>T5(e);static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275dir=de({type:t,selectors:[["","maxlength","","formControlName",""],["","maxlength","","formControl",""],["","maxlength","","ngModel",""]],hostVars:1,hostBindings:function(i,o){2&i&&$e("maxlength",o._enabled?o.maxlength:null)},inputs:{maxlength:"maxlength"},standalone:!1,features:[lt([Pfe]),be]})}return t})(),_B=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({})}return t})();function bB(t){return!!t&&(void 0!==t.asyncValidators||void 0!==t.validators||void 0!==t.updateOn)}let vB=(()=>{class t{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 bB(i)?r=i:null!==i&&(r.validators=i.validator,r.asyncValidators=i.asyncValidator),new ru(o,r)}record(e,i=null){const o=this._reduceControls(e);return new X5(o,i)}control(e,i,o){let r={};return this.useNonNullable?(bB(i)?r=i:(r.validators=i,r.asyncValidators=o),new au(e,{...r,nonNullable:!0})):new au(e,i,o)}array(e,i,o){const r=e.map(s=>this._createControl(s));return new rB(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 au||e instanceof Qb?e:Array.isArray(e)?this.control(e[0],e.length>1?e[1]:null,e.length>2?e[2]:null):this.control(e)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),di=(()=>{class t extends vB{group(e,i=null){return super.group(e,i)}control(e,i,o){return super.control(e,i,o)}array(e,i,o){return super.array(e,i,o)}static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Ofe=(()=>{class t{static withConfig(e){return{ngModule:t,providers:[{provide:oc,useValue:e.callSetDisabledState??Qf}]}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({imports:[_B]})}return t})(),Afe=(()=>{class t{static withConfig(e){return{ngModule:t,providers:[{provide:ak,useValue:e.warnOnNgModelWithFormControl??"always"},{provide:oc,useValue:e.callSetDisabledState??Qf}]}}static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({imports:[_B]})}return t})();function uu(t){return null!=t&&"false"!=`${t}`}class Ffe{_box;_destroyed=new me;_resizeSubject=new me;_resizeObserver;_elementObservables=new Map;constructor(n){this._box=n,typeof ResizeObserver<"u"&&(this._resizeObserver=new ResizeObserver(e=>this._resizeSubject.next(e)))}observe(n){return this._elementObservables.has(n)||this._elementObservables.set(n,new Ft(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(Tn(e=>e.some(i=>i.target===n)),NS({bufferSize:1,refCount:!0}),fn(this._destroyed))),this._elementObservables.get(n)}destroy(){this._destroyed.next(),this._destroyed.complete(),this._resizeSubject.complete(),this._elementObservables.clear()}}let yB=(()=>{class t{_cleanupErrorListener;_observers=new Map;_ngZone=D(_e);constructor(){}ngOnDestroy(){for(const[,e]of this._observers)e.destroy();this._observers.clear(),this._cleanupErrorListener?.()}observe(e,i){const o=i?.box||"content-box";return this._observers.has(o)||this._observers.set(o,new Ffe(o)),this._observers.get(o).observe(e)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Nfe=["notch"],Lfe=["matFormFieldNotchedOutline",""],Bfe=["*"],CB=["iconPrefixContainer"],wB=["textPrefixContainer"],xB=["iconSuffixContainer"],SB=["textSuffixContainer"],Vfe=["textField"],Hfe=["*",[["mat-label"]],[["","matPrefix",""],["","matIconPrefix",""]],[["","matTextPrefix",""]],[["","matTextSuffix",""]],[["","matSuffix",""],["","matIconSuffix",""]],[["mat-error"],["","matError",""]],[["mat-hint",3,"align","end"]],[["mat-hint","align","end"]]],jfe=["*","mat-label","[matPrefix], [matIconPrefix]","[matTextPrefix]","[matTextSuffix]","[matSuffix], [matIconSuffix]","mat-error, [matError]","mat-hint:not([align='end'])","mat-hint[align='end']"];function Ufe(t,n){1&t&&B(0,"span",21)}function zfe(t,n){if(1&t&&(h(0,"label",20),Pt(1,1),x(2,Ufe,1,0,"span",21),u()),2&t){const e=v(2);C("floating",e._shouldLabelFloat())("monitorResize",e._hasOutline())("id",e._labelId),$e("for",e._control.disableAutomaticLabeling?null:e._control.id),d(2),S(!e.hideRequiredMarker&&e._control.required?2:-1)}}function $fe(t,n){1&t&&x(0,zfe,3,5,"label",20),2&t&&S(v()._hasFloatingLabel()?0:-1)}function Wfe(t,n){1&t&&B(0,"div",7)}function Gfe(t,n){}function qfe(t,n){1&t&&it(0,Gfe,0,0,"ng-template",13),2&t&&(v(2),C("ngTemplateOutlet",Hn(1)))}function Kfe(t,n){if(1&t&&(h(0,"div",9),x(1,qfe,1,1,null,13),u()),2&t){const e=v();C("matFormFieldNotchedOutlineOpen",e._shouldLabelFloat()),d(),S(e._forceDisplayInfixLabel()?-1:1)}}function Yfe(t,n){1&t&&(h(0,"div",10,2),Pt(2,2),u())}function Xfe(t,n){1&t&&(h(0,"div",11,3),Pt(2,3),u())}function Zfe(t,n){}function Qfe(t,n){1&t&&it(0,Zfe,0,0,"ng-template",13),2&t&&(v(),C("ngTemplateOutlet",Hn(1)))}function Jfe(t,n){1&t&&(h(0,"div",14,4),Pt(2,4),u())}function epe(t,n){1&t&&(h(0,"div",15,5),Pt(2,5),u())}function tpe(t,n){1&t&&B(0,"div",16)}function npe(t,n){1&t&&(h(0,"div",18),Pt(1,6),u())}function ipe(t,n){if(1&t&&(h(0,"mat-hint",22),p(1),u()),2&t){const e=v(2);C("id",e._hintLabelId),d(),M(e.hintLabel)}}function ope(t,n){if(1&t&&(h(0,"div",19),x(1,ipe,2,2,"mat-hint",22),Pt(2,7),B(3,"div",23),Pt(4,8),u()),2&t){const e=v();d(),S(e.hintLabel?1:-1)}}let Os=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["mat-label"]]})}return t})();const kB=new Z("MatError");let Ma=(()=>{class t{id=D(ni).getId("mat-mdc-error-");constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["mat-error"],["","matError",""]],hostAttrs:[1,"mat-mdc-form-field-error","mat-mdc-form-field-bottom-align"],hostVars:1,hostBindings:function(i,o){2&i&&ur("id",o.id)},inputs:{id:"id"},features:[lt([{provide:kB,useExisting:t}])]})}return t})(),uk=(()=>{class t{align="start";id=D(ni).getId("mat-mdc-hint-");static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({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&&(ur("id",o.id),$e("align",null),Ie("mat-mdc-form-field-hint-end","end"===o.align))},inputs:{align:"align",id:"id"}})}return t})();const rpe=new Z("MatPrefix"),spe=new Z("MatSuffix"),DB=new Z("FloatingLabelParent");let MB=(()=>{class t{_elementRef=D(Re);get floating(){return this._floating}set floating(e){this._floating=e,this.monitorResize&&this._handleResize()}_floating=!1;get monitorResize(){return this._monitorResize}set monitorResize(e){this._monitorResize=e,this._monitorResize?this._subscribeToResize():this._resizeSubscription.unsubscribe()}_monitorResize=!1;_resizeObserver=D(yB);_ngZone=D(_e);_parent=D(DB);_resizeSubscription=new pt;constructor(){}ngOnDestroy(){this._resizeSubscription.unsubscribe()}getWidth(){return function ape(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 \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["label","matFormFieldFloatingLabel",""]],hostAttrs:[1,"mdc-floating-label","mat-mdc-floating-label"],hostVars:2,hostBindings:function(i,o){2&i&&Ie("mdc-floating-label--float-above",o.floating)},inputs:{floating:"floating",monitorResize:"monitorResize"}})}return t})();const TB="mdc-line-ripple--active",av="mdc-line-ripple--deactivating";let EB=(()=>{class t{_elementRef=D(Re);_cleanupTransitionEnd;constructor(){const e=D(_e),i=D(Qn);e.runOutsideAngular(()=>{this._cleanupTransitionEnd=i.listen(this._elementRef.nativeElement,"transitionend",this._handleTransitionEnd)})}activate(){const e=this._elementRef.nativeElement.classList;e.remove(av),e.add(TB)}deactivate(){this._elementRef.nativeElement.classList.add(av)}_handleTransitionEnd=e=>{const i=this._elementRef.nativeElement.classList,o=i.contains(av);"opacity"===e.propertyName&&o&&i.remove(TB,av)};ngOnDestroy(){this._cleanupTransitionEnd()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["div","matFormFieldLineRipple",""]],hostAttrs:[1,"mdc-line-ripple"]})}return t})(),PB=(()=>{class t{_elementRef=D(Re);_ngZone=D(_e);open=!1;_notch;ngAfterViewInit(){const e=this._elementRef.nativeElement,i=e.querySelector(".mdc-floating-label");i?(e.classList.add("mdc-notched-outline--upgraded"),"function"==typeof requestAnimationFrame&&(i.style.transitionDuration="0s",this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>i.style.transitionDuration="")}))):e.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)`:""}_setMaxWidth(e){this._notch.nativeElement.style.setProperty("--mat-form-field-notch-max-width",`calc(100% - ${e}px)`)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["div","matFormFieldNotchedOutline",""]],viewQuery:function(i,o){if(1&i&&ot(Nfe,5),2&i){let r;he(r=fe())&&(o._notch=r.first)}},hostAttrs:[1,"mdc-notched-outline"],hostVars:2,hostBindings:function(i,o){2&i&&Ie("mdc-notched-outline--notched",o.open)},inputs:{open:[0,"matFormFieldNotchedOutlineOpen","open"]},attrs:Lfe,ngContentSelectors:Bfe,decls:5,vars:0,consts:[["notch",""],[1,"mat-mdc-notch-piece","mdc-notched-outline__leading"],[1,"mat-mdc-notch-piece","mdc-notched-outline__notch"],[1,"mat-mdc-notch-piece","mdc-notched-outline__trailing"]],template:function(i,o){1&i&&(yi(),ca(0,"div",1),vs(1,"div",2,0),Pt(3),Ol(),ca(4,"div",3))},encapsulation:2,changeDetection:0})}return t})(),hk=(()=>{class t{value=null;stateChanges;id;placeholder;ngControl=null;focused=!1;empty=!1;shouldLabelFloat=!1;required=!1;disabled=!1;errorState=!1;controlType;autofilled;userAriaDescribedBy;disableAutomaticLabeling;describedByIds;static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t})}return t})();const fk=new Z("MatFormField"),lpe=new Z("MAT_FORM_FIELD_DEFAULT_OPTIONS");let hu,sn=(()=>{class t{_elementRef=D(Re);_changeDetectorRef=D(Jt);_platform=D(Yn);_idGenerator=D(ni);_ngZone=D(_e);_defaults=D(lpe,{optional:!0});_currentDirection;_textField;_iconPrefixContainer;_textPrefixContainer;_iconSuffixContainer;_textSuffixContainer;_floatingLabel;_notchedOutline;_lineRipple;_iconPrefixContainerSignal=l_("iconPrefixContainer");_textPrefixContainerSignal=l_("textPrefixContainer");_iconSuffixContainerSignal=l_("iconSuffixContainer");_textSuffixContainerSignal=l_("textSuffixContainer");_prefixSuffixContainers=Ii(()=>[this._iconPrefixContainerSignal(),this._textPrefixContainerSignal(),this._iconSuffixContainerSignal(),this._textSuffixContainerSignal()].map(e=>e?.nativeElement).filter(e=>void 0!==e));_formFieldControl;_prefixChildren;_suffixChildren;_errorChildren;_hintChildren;_labelChild=lee(Os);get hideRequiredMarker(){return this._hideRequiredMarker}set hideRequiredMarker(e){this._hideRequiredMarker=uu(e)}_hideRequiredMarker=!1;color="primary";get floatLabel(){return this._floatLabel||this._defaults?.floatLabel||"auto"}set floatLabel(e){e!==this._floatLabel&&(this._floatLabel=e,this._changeDetectorRef.markForCheck())}_floatLabel;get appearance(){return this._appearanceSignal()}set appearance(e){this._appearanceSignal.set(e||this._defaults?.appearance||"fill")}_appearanceSignal=yt("fill");get subscriptSizing(){return this._subscriptSizing||this._defaults?.subscriptSizing||"fixed"}set subscriptSizing(e){this._subscriptSizing=e||this._defaults?.subscriptSizing||"fixed"}_subscriptSizing=null;get hintLabel(){return this._hintLabel}set hintLabel(e){this._hintLabel=e,this._processHints()}_hintLabel="";_hasIconPrefix=!1;_hasTextPrefix=!1;_hasIconSuffix=!1;_hasTextSuffix=!1;_labelId=this._idGenerator.getId("mat-mdc-form-field-label-");_hintLabelId=this._idGenerator.getId("mat-mdc-hint-");_describedByIds;get _control(){return this._explicitFormFieldControl||this._formFieldControl}set _control(e){this._explicitFormFieldControl=e}_destroyed=new me;_isFocused=null;_explicitFormFieldControl;_previousControl=null;_previousControlValidatorFn=null;_stateChanges;_valueChanges;_describedByChanges;_outlineLabelOffsetResizeObserver=null;_animationsDisabled=ci();constructor(){const e=this._defaults,i=D(br);e&&(e.appearance&&(this.appearance=e.appearance),this._hideRequiredMarker=!!e?.hideRequiredMarker,e.color&&(this.color=e.color)),fm(()=>this._currentDirection=i.valueSignal()),this._syncOutlineLabelOffset()}ngAfterViewInit(){this._updateFocusState(),this._animationsDisabled||this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{this._elementRef.nativeElement.classList.add("mat-form-field-animations-enabled")},300)}),this._changeDetectorRef.detectChanges()}ngAfterContentInit(){this._assertFormFieldControl(),this._initializeSubscript(),this._initializePrefixAndSuffix()}ngAfterContentChecked(){this._assertFormFieldControl(),this._control!==this._previousControl&&(this._initializeControl(this._previousControl),this._control.ngControl&&this._control.ngControl.control&&(this._previousControlValidatorFn=this._control.ngControl.control.validator),this._previousControl=this._control),this._control.ngControl&&this._control.ngControl.control&&this._control.ngControl.control.validator!==this._previousControlValidatorFn&&this._changeDetectorRef.markForCheck()}ngOnDestroy(){this._outlineLabelOffsetResizeObserver?.disconnect(),this._stateChanges?.unsubscribe(),this._valueChanges?.unsubscribe(),this._describedByChanges?.unsubscribe(),this._destroyed.next(),this._destroyed.complete()}getLabelId=Ii(()=>this._hasFloatingLabel()?this._labelId:null);getConnectedOverlayOrigin(){return this._textField||this._elementRef}_animateAndLockLabel(){this._hasFloatingLabel()&&(this.floatLabel="always")}_initializeControl(e){const i=this._control,o="mat-mdc-form-field-type-";e&&this._elementRef.nativeElement.classList.remove(o+e.controlType),i.controlType&&this._elementRef.nativeElement.classList.add(o+i.controlType),this._stateChanges?.unsubscribe(),this._stateChanges=i.stateChanges.subscribe(()=>{this._updateFocusState(),this._changeDetectorRef.markForCheck()}),this._describedByChanges?.unsubscribe(),this._describedByChanges=i.stateChanges.pipe(si([void 0,void 0]),Se(()=>[i.errorState,i.userAriaDescribedBy]),function Rfe(){return Mn((t,n)=>{let e,i=!1;t.subscribe(dn(n,o=>{const r=e;e=o,i&&n.next([r,o]),i=!0}))})}(),Tn(([[r,s],[a,l]])=>r!==a||s!==l)).subscribe(()=>this._syncDescribedByIds()),this._valueChanges?.unsubscribe(),i.ngControl&&i.ngControl.valueChanges&&(this._valueChanges=i.ngControl.valueChanges.pipe(fn(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(),Cr(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(){const e=this._control.focused;e&&!this._isFocused?(this._isFocused=!0,this._lineRipple?.activate()):!e&&(this._isFocused||null===this._isFocused)&&(this._isFocused=!1,this._lineRipple?.deactivate()),this._elementRef.nativeElement.classList.toggle("mat-focused",e),this._textField?.nativeElement.classList.toggle("mdc-text-field--focused",e)}_syncOutlineLabelOffset(){!function cte(t,n){const e=n?.injector??D(He),i=e.get(al),o=e.get(u1),r=e.get(oa,null,{optional:!0});o.impl??=e.get(SE);let s=t;"function"==typeof s&&(s={mixedReadWrite:t});const a=e.get(dm,null,{optional:!0}),l=new lte(o.impl,[s.earlyRead,s.write,s.mixedReadWrite,s.read],a?.view,i,e,r?.snapshot(null));o.impl.register(l)}({earlyRead:()=>{if("outline"!==this._appearanceSignal())return this._outlineLabelOffsetResizeObserver?.disconnect(),null;if(globalThis.ResizeObserver){this._outlineLabelOffsetResizeObserver||=new globalThis.ResizeObserver(()=>{this._writeOutlinedLabelStyles(this._getOutlinedLabelOffset())});for(const e of this._prefixSuffixContainers())this._outlineLabelOffsetResizeObserver.observe(e,{box:"border-box"})}return this._getOutlinedLabelOffset()},write:e=>this._writeOutlinedLabelStyles(e())})}_shouldAlwaysFloat(){return"always"===this.floatLabel}_hasOutline(){return"outline"===this.appearance}_forceDisplayInfixLabel(){return!this._platform.isBrowser&&this._prefixChildren.length&&!this._shouldLabelFloat()}_hasFloatingLabel=Ii(()=>!!this._labelChild());_shouldLabelFloat(){return!!this._hasFloatingLabel()&&(this._control.shouldLabelFloat||this._shouldAlwaysFloat())}_shouldForward(e){const i=this._control?this._control.ngControl:null;return i&&i[e]}_getSubscriptMessageType(){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._getSubscriptMessageType()){const r=this._hintChildren?this._hintChildren.find(a=>"start"===a.align):null,s=this._hintChildren?this._hintChildren.find(a=>"end"===a.align):null;r?e.push(r.id):this._hintLabel&&e.push(this._hintLabelId),s&&e.push(s.id)}else this._errorChildren&&e.push(...this._errorChildren.map(r=>r.id));const i=this._control.describedByIds;let o;if(i){const r=this._describedByIds||e;o=e.concat(i.filter(s=>s&&!r.includes(s)))}else o=e;this._control.setDescribedByIds(o),this._describedByIds=e}}_getOutlinedLabelOffset(){if(!this._hasOutline()||!this._floatingLabel)return null;if(!this._iconPrefixContainer&&!this._textPrefixContainer)return["",null];if(!this._isAttachedToDom())return null;const e=this._iconPrefixContainer?.nativeElement,i=this._textPrefixContainer?.nativeElement,o=this._iconSuffixContainer?.nativeElement,r=this._textSuffixContainer?.nativeElement,s=e?.getBoundingClientRect().width??0,a=i?.getBoundingClientRect().width??0,l=o?.getBoundingClientRect().width??0,c=r?.getBoundingClientRect().width??0;return[`var(--mat-mdc-form-field-label-transform, translateY(-50%) translateX(calc(${"rtl"===this._currentDirection?"-1":"1"} * (${s+a}px + var(--mat-mdc-form-field-label-offset-x, 0px)))))`,s+a+l+c]}_writeOutlinedLabelStyles(e){if(null!==e){const[i,o]=e;this._floatingLabel&&(this._floatingLabel.element.style.transform=i),null!==o&&this._notchedOutline?._setMaxWidth(o)}}_isAttachedToDom(){const e=this._elementRef.nativeElement;if(e.getRootNode){const i=e.getRootNode();return i&&i!==e}return document.documentElement.contains(e)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["mat-form-field"]],contentQueries:function(i,o,r){if(1&i&&(A0(r,o._labelChild,Os,5),ys(r,hk,5)(r,rpe,5)(r,spe,5)(r,kB,5)(r,uk,5)),2&i){let s;F0(),he(s=fe())&&(o._formFieldControl=s.first),he(s=fe())&&(o._prefixChildren=s),he(s=fe())&&(o._suffixChildren=s),he(s=fe())&&(o._errorChildren=s),he(s=fe())&&(o._hintChildren=s)}},viewQuery:function(i,o){if(1&i&&(R0(o._iconPrefixContainerSignal,CB,5)(o._textPrefixContainerSignal,wB,5)(o._iconSuffixContainerSignal,xB,5)(o._textSuffixContainerSignal,SB,5),ot(Vfe,5)(CB,5)(wB,5)(xB,5)(SB,5)(MB,5)(PB,5)(EB,5)),2&i){let r;F0(4),he(r=fe())&&(o._textField=r.first),he(r=fe())&&(o._iconPrefixContainer=r.first),he(r=fe())&&(o._textPrefixContainer=r.first),he(r=fe())&&(o._iconSuffixContainer=r.first),he(r=fe())&&(o._textSuffixContainer=r.first),he(r=fe())&&(o._floatingLabel=r.first),he(r=fe())&&(o._notchedOutline=r.first),he(r=fe())&&(o._lineRipple=r.first)}},hostAttrs:[1,"mat-mdc-form-field"],hostVars:38,hostBindings:function(i,o){2&i&&Ie("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-appearance-fill","fill"==o.appearance)("mat-form-field-appearance-outline","outline"==o.appearance)("mat-form-field-hide-placeholder",o._hasFloatingLabel()&&!o._shouldLabelFloat())("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:[lt([{provide:fk,useExisting:t},{provide:DB,useExisting:t}])],ngContentSelectors:jfe,decls:18,vars:21,consts:[["labelTemplate",""],["textField",""],["iconPrefixContainer",""],["textPrefixContainer",""],["textSuffixContainer",""],["iconSuffixContainer",""],[1,"mat-mdc-text-field-wrapper","mdc-text-field",3,"click"],[1,"mat-mdc-form-field-focus-overlay"],[1,"mat-mdc-form-field-flex"],["matFormFieldNotchedOutline","",3,"matFormFieldNotchedOutlineOpen"],[1,"mat-mdc-form-field-icon-prefix"],[1,"mat-mdc-form-field-text-prefix"],[1,"mat-mdc-form-field-infix"],[3,"ngTemplateOutlet"],[1,"mat-mdc-form-field-text-suffix"],[1,"mat-mdc-form-field-icon-suffix"],["matFormFieldLineRipple",""],["aria-atomic","true","aria-live","polite",1,"mat-mdc-form-field-subscript-wrapper","mat-mdc-form-field-bottom-align"],[1,"mat-mdc-form-field-error-wrapper"],[1,"mat-mdc-form-field-hint-wrapper"],["matFormFieldFloatingLabel","",3,"floating","monitorResize","id"],["aria-hidden","true",1,"mat-mdc-form-field-required-marker","mdc-floating-label--required"],[3,"id"],[1,"mat-mdc-form-field-hint-spacer"]],template:function(i,o){if(1&i&&(yi(Hfe),it(0,$fe,1,1,"ng-template",null,0,Rl),h(2,"div",6,1),F("click",function(s){return o._control.onContainerClick(s)}),x(4,Wfe,1,0,"div",7),h(5,"div",8),x(6,Kfe,2,2,"div",9),x(7,Yfe,3,0,"div",10),x(8,Xfe,3,0,"div",11),h(9,"div",12),x(10,Qfe,1,1,null,13),Pt(11),u(),x(12,Jfe,3,0,"div",14),x(13,epe,3,0,"div",15),u(),x(14,tpe,1,0,"div",16),u(),h(15,"div",17),x(16,npe,2,0,"div",18)(17,ope,5,1,"div",19),u()),2&i){let r;d(2),Ie("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),d(2),S(o._hasOutline()||o._control.disabled?-1:4),d(2),S(o._hasOutline()?6:-1),d(),S(o._hasIconPrefix?7:-1),d(),S(o._hasTextPrefix?8:-1),d(2),S(!o._hasOutline()||o._forceDisplayInfixLabel()?10:-1),d(2),S(o._hasTextSuffix?12:-1),d(),S(o._hasIconSuffix?13:-1),d(),S(o._hasOutline()?-1:14),d(),Ie("mat-mdc-form-field-subscript-dynamic-size","dynamic"===o.subscriptSizing);const s=o._getSubscriptMessageType();d(),S("error"===(r=s)?16:"hint"===r?17:-1)}},dependencies:[MB,PB,Ld,EB,uk],styles:['.mdc-text-field{display:inline-flex;align-items:baseline;padding:0 16px;position:relative;box-sizing:border-box;overflow:hidden;will-change:opacity,transform,color;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.mdc-text-field__input{width:100%;min-width:0;border:none;border-radius:0;background:none;padding:0;-moz-appearance:none;-webkit-appearance:none;height:28px}.mdc-text-field__input::-webkit-calendar-picker-indicator,.mdc-text-field__input::-webkit-search-cancel-button{display:none}.mdc-text-field__input::-ms-clear{display:none}.mdc-text-field__input:focus{outline:none}.mdc-text-field__input:invalid{box-shadow:none}.mdc-text-field__input::placeholder{opacity:0}.mdc-text-field__input::-moz-placeholder{opacity:0}.mdc-text-field__input::-webkit-input-placeholder{opacity:0}.mdc-text-field__input:-ms-input-placeholder{opacity:0}.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mdc-text-field--focused .mdc-text-field__input::placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{opacity:1}.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--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::-moz-placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::-webkit-input-placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive:-ms-input-placeholder{opacity:0}.mdc-text-field--outlined .mdc-text-field__input,.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{height:100%}.mdc-text-field--outlined .mdc-text-field__input{display:flex;border:none !important;background-color:rgba(0,0,0,0)}.mdc-text-field--disabled .mdc-text-field__input{pointer-events:auto}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mat-form-field-filled-input-text-color, var(--mat-sys-on-surface));caret-color:var(--mat-form-field-filled-caret-color, var(--mat-sys-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mat-form-field-filled-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-filled-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-filled-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-filled-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mat-form-field-outlined-input-text-color, var(--mat-sys-on-surface));caret-color:var(--mat-form-field-outlined-caret-color, var(--mat-sys-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mat-form-field-outlined-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-outlined-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-outlined-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-outlined-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mat-form-field-filled-error-caret-color, var(--mat-sys-error))}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mat-form-field-outlined-error-caret-color, var(--mat-sys-error))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-text-field__input{color:var(--mat-form-field-filled-disabled-input-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--mat-form-field-outlined-disabled-input-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}@media(forced-colors: active){.mdc-text-field--disabled .mdc-text-field__input{background-color:Window}}.mdc-text-field--filled{height:56px;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:var(--mat-form-field-filled-container-shape, var(--mat-sys-corner-extra-small));border-top-right-radius:var(--mat-form-field-filled-container-shape, var(--mat-sys-corner-extra-small))}.mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:var(--mat-form-field-filled-container-color, var(--mat-sys-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled{background-color:var(--mat-form-field-filled-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 4%, transparent))}.mdc-text-field--outlined{height:56px;overflow:visible;padding-right:max(16px,var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small)));padding-left:max(16px,var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small)) + 4px)}[dir=rtl] .mdc-text-field--outlined{padding-right:max(16px,var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small)) + 4px);padding-left:max(16px,var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small)))}.mdc-floating-label{position:absolute;left:0;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{right:0;left:auto;transform-origin:right top;text-align:right}.mdc-text-field .mdc-floating-label{top:50%;transform:translateY(-50%);pointer-events:none}.mdc-notched-outline .mdc-floating-label{display:inline-block;position:relative;max-width:100%}.mdc-text-field--outlined .mdc-floating-label{left:4px;right:auto}[dir=rtl] .mdc-text-field--outlined .mdc-floating-label{left:auto;right:4px}.mdc-text-field--filled .mdc-floating-label{left:16px;right:auto}[dir=rtl] .mdc-text-field--filled .mdc-floating-label{left:auto;right:16px}.mdc-text-field--disabled .mdc-floating-label{cursor:default}@media(forced-colors: active){.mdc-text-field--disabled .mdc-floating-label{z-index:1}}.mdc-text-field--filled.mdc-text-field--no-label .mdc-floating-label{display:none}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mat-form-field-filled-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mat-form-field-filled-focus-label-text-color, var(--mat-sys-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mat-form-field-filled-hover-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label{color:var(--mat-form-field-filled-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mat-form-field-filled-error-label-text-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mat-form-field-filled-error-focus-label-text-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mat-form-field-filled-error-hover-label-text-color, var(--mat-sys-on-error-container))}.mdc-text-field--filled .mdc-floating-label{font-family:var(--mat-form-field-filled-label-text-font, var(--mat-sys-body-large-font));font-size:var(--mat-form-field-filled-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-form-field-filled-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mat-form-field-filled-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mat-form-field-outlined-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mat-form-field-outlined-focus-label-text-color, var(--mat-sys-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mat-form-field-outlined-hover-label-text-color, var(--mat-sys-on-surface))}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label{color:var(--mat-form-field-outlined-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mat-form-field-outlined-error-label-text-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mat-form-field-outlined-error-focus-label-text-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mat-form-field-outlined-error-hover-label-text-color, var(--mat-sys-on-error-container))}.mdc-text-field--outlined .mdc-floating-label{font-family:var(--mat-form-field-outlined-label-text-font, var(--mat-sys-body-large-font));font-size:var(--mat-form-field-outlined-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-form-field-outlined-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mat-form-field-outlined-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-floating-label--float-above{cursor:auto;transform:translateY(-106%) scale(0.75)}.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) scale(1);font-size:.75rem}.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-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-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:1px;margin-right:0;content:"*"}[dir=rtl] .mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::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{text-align:right}.mdc-text-field--outlined .mdc-notched-outline{z-index:1}.mat-mdc-notch-piece{box-sizing:border-box;height:100%;pointer-events:none;border:none;border-top:1px solid;border-bottom:1px solid}.mdc-text-field--focused .mat-mdc-notch-piece{border-width:2px}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mat-mdc-notch-piece{border-color:var(--mat-form-field-outlined-outline-color, var(--mat-sys-outline));border-width:var(--mat-form-field-outlined-outline-width, 1px)}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mat-mdc-notch-piece{border-color:var(--mat-form-field-outlined-hover-outline-color, var(--mat-sys-on-surface))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mat-form-field-outlined-focus-outline-color, var(--mat-sys-primary))}.mdc-text-field--outlined.mdc-text-field--disabled .mat-mdc-notch-piece{border-color:var(--mat-form-field-outlined-disabled-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--mat-form-field-outlined-error-outline-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-notched-outline .mat-mdc-notch-piece{border-color:var(--mat-form-field-outlined-error-hover-outline-color, var(--mat-sys-on-error-container))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mat-form-field-outlined-error-focus-outline-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mat-mdc-notch-piece{border-width:var(--mat-form-field-outlined-focus-outline-width, 2px)}.mdc-notched-outline__leading{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small));border-bottom-left-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small))}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px,var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small)))}[dir=rtl] .mdc-notched-outline__leading{border-left:none;border-right:1px solid;border-bottom-left-radius:0;border-top-left-radius:0;border-top-right-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small));border-bottom-right-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small))}.mdc-notched-outline__trailing{flex-grow:1;border-left:none;border-right:1px solid;border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small));border-bottom-right-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small))}[dir=rtl] .mdc-notched-outline__trailing{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small));border-bottom-left-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small))}.mdc-notched-outline__notch{flex:0 0 auto;width:auto}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:min(var(--mat-form-field-notch-max-width, 100%),calc(100% - max(12px, var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small))) * 2))}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{max-width:min(100%,calc(100% - max(12px, var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small))) * 2))}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:1px}.mdc-text-field--focused.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:2px}.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{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;border-bottom-width:var(--mat-form-field-filled-active-indicator-height, 1px)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mat-form-field-filled-active-indicator-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mat-form-field-filled-hover-active-indicator-color, var(--mat-sys-on-surface))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-line-ripple::before{border-bottom-color:var(--mat-form-field-filled-disabled-active-indicator-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-line-ripple::before{border-bottom-color:var(--mat-form-field-filled-error-active-indicator-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mat-form-field-filled-error-hover-active-indicator-color, var(--mat-sys-on-error-container))}.mdc-line-ripple::after{transform:scaleX(0);opacity:0;z-index:2}.mdc-text-field--filled .mdc-line-ripple::after{border-bottom-width:var(--mat-form-field-filled-focus-active-indicator-height, 2px)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mat-form-field-filled-focus-active-indicator-color, var(--mat-sys-primary))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mat-form-field-filled-error-focus-active-indicator-color, var(--mat-sys-error))}.mdc-line-ripple--active::after{transform:scaleX(1);opacity:1}.mdc-line-ripple--deactivating::after{opacity:0}.mdc-text-field--disabled{pointer-events:none}.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;will-change:auto}.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;will-change: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, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.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-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:1px solid rgba(0,0,0,0)}[dir=rtl] .mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:none;border-right:1px solid rgba(0,0,0,0)}.mat-mdc-form-field-infix{min-height:var(--mat-form-field-container-height, 56px);padding-top:var(--mat-form-field-filled-with-label-container-padding-top, 24px);padding-bottom:var(--mat-form-field-filled-with-label-container-padding-bottom, 8px)}.mdc-text-field--outlined .mat-mdc-form-field-infix,.mdc-text-field--no-label .mat-mdc-form-field-infix{padding-top:var(--mat-form-field-container-vertical-padding, 16px);padding-bottom:var(--mat-form-field-container-vertical-padding, 16px)}.mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-floating-label{top:calc(var(--mat-form-field-container-height, 56px)/2)}.mdc-text-field--filled .mat-mdc-floating-label{display:var(--mat-form-field-filled-label-display, block)}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{--mat-mdc-form-field-label-transform: translateY(calc(calc(6.75px + var(--mat-form-field-container-height, 56px) / 2) * -1)) scale(var(--mat-mdc-form-field-floating-label-scale, 0.75));transform:var(--mat-mdc-form-field-label-transform)}@keyframes _mat-form-field-subscript-animation{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.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;opacity:1;transform:translateY(0);animation:_mat-form-field-subscript-animation 0ms cubic-bezier(0.55, 0, 0.55, 0.2)}.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;color:var(--mat-form-field-error-text-color, var(--mat-sys-error))}.mat-mdc-form-field-subscript-wrapper,.mat-mdc-form-field-bottom-align::before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-subscript-text-font, var(--mat-sys-body-small-font));line-height:var(--mat-form-field-subscript-text-line-height, var(--mat-sys-body-small-line-height));font-size:var(--mat-form-field-subscript-text-size, var(--mat-sys-body-small-size));letter-spacing:var(--mat-form-field-subscript-text-tracking, var(--mat-sys-body-small-tracking));font-weight:var(--mat-form-field-subscript-text-weight, var(--mat-sys-body-small-weight))}.mat-mdc-form-field-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;opacity:0;pointer-events:none;background-color:var(--mat-form-field-state-layer-color, var(--mat-sys-on-surface))}.mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-form-field.mat-focused .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-focus-state-layer-opacity, 0)}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}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option{color:var(--mat-form-field-select-option-text-color, var(--mat-sys-neutral10))}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option:disabled{color:var(--mat-form-field-select-disabled-option-text-color, color-mix(in srgb, var(--mat-sys-neutral10) 38%, transparent))}.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;color:var(--mat-form-field-enabled-select-arrow-color, var(--mat-sys-on-surface-variant))}[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-focused .mat-mdc-form-field-infix::after{color:var(--mat-form-field-focus-select-arrow-color, var(--mat-sys-primary))}.mat-mdc-form-field-type-mat-native-select.mat-form-field-disabled .mat-mdc-form-field-infix::after{color:var(--mat-form-field-disabled-select-arrow-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.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}@media(forced-colors: active){.mat-form-field-appearance-fill .mat-mdc-text-field-wrapper{outline:solid 1px}}@media(forced-colors: active){.mat-form-field-appearance-fill.mat-form-field-disabled .mat-mdc-text-field-wrapper{outline-color:GrayText}}@media(forced-colors: active){.mat-form-field-appearance-fill.mat-focused .mat-mdc-text-field-wrapper{outline:dashed 3px}}@media(forced-colors: 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, var(--mat-sys-body-large-font));line-height:var(--mat-form-field-container-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mat-form-field-container-text-size, var(--mat-sys-body-large-size));letter-spacing:var(--mat-form-field-container-text-tracking, var(--mat-sys-body-large-tracking));font-weight:var(--mat-form-field-container-text-weight, var(--mat-sys-body-large-weight))}.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)}[dir=rtl] .mat-mdc-form-field{text-align:right}.mat-mdc-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-mdc-text-field-wrapper{width:100%;z-index:0}.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>.mat-icon,.mat-mdc-form-field-icon-suffix>.mat-icon{padding:0 12px;box-sizing:content-box}.mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-leading-icon-color, var(--mat-sys-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-disabled-leading-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-trailing-icon-color, var(--mat-sys-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-disabled-trailing-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-invalid .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-trailing-icon-color, var(--mat-sys-error))}.mat-form-field-invalid:not(.mat-focused):not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-hover-trailing-icon-color, var(--mat-sys-on-error-container))}.mat-form-field-invalid.mat-focused .mat-mdc-text-field-wrapper .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-focus-trailing-icon-color, var(--mat-sys-error))}.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-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-infix:has(textarea[cols]){width:auto}.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.mat-form-field-animations-enabled .mdc-floating-label{transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1),color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field__input{transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field__input::placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field__input::-moz-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field__input::-webkit-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field__input:-ms-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--focused .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field--filled:not(.mdc-ripple-upgraded):focus .mdc-text-field__ripple::before{transition-duration:75ms}.mat-mdc-form-field.mat-form-field-animations-enabled .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)}.mat-mdc-form-field.mat-form-field-animations-enabled .mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field.mat-form-field-animations-enabled .mat-mdc-form-field-error-wrapper{animation-duration:300ms}.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)}\n'],encapsulation:2,changeDetection:0})}return t})();const AB=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"];function RB(){if(hu)return hu;if("object"!=typeof document||!document)return hu=new Set(AB),hu;let t=document.createElement("input");return hu=new Set(AB.filter(n=>(t.setAttribute("type",n),t.type===n))),hu}let upe=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["ng-component"]],hostAttrs:["cdk-text-field-style-loader",""],decls:0,vars:0,template:function(i,o){},styles:["textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}@keyframes cdk-text-field-autofill-start{/*!*/}@keyframes cdk-text-field-autofill-end{/*!*/}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}\n"],encapsulation:2,changeDetection:0})}return t})();const hpe={passive:!0};let fpe=(()=>{class t{_platform=D(Yn);_ngZone=D(_e);_renderer=D(Lo).createRenderer(null,null);_styleLoader=D(zo);_monitoredElements=new Map;constructor(){}monitor(e){if(!this._platform.isBrowser)return Oi;this._styleLoader.load(upe);const i=Ps(e),o=this._monitoredElements.get(i);if(o)return o.subject;const r=new me,s="cdk-text-field-autofilled",a=c=>{"cdk-text-field-autofill-start"!==c.animationName||i.classList.contains(s)?"cdk-text-field-autofill-end"===c.animationName&&i.classList.contains(s)&&(i.classList.remove(s),this._ngZone.run(()=>r.next({target:c.target,isAutofilled:!1}))):(i.classList.add(s),this._ngZone.run(()=>r.next({target:c.target,isAutofilled:!0})))},l=this._ngZone.runOutsideAngular(()=>(i.classList.add("cdk-text-field-autofill-monitored"),this._renderer.listen(i,"animationstart",a,hpe)));return this._monitoredElements.set(i,{subject:r,unlisten:l}),r}stopMonitoring(e){const i=Ps(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 \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),ppe=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({})}return t})();const mpe=new Z("MAT_INPUT_VALUE_ACCESSOR");let gpe=(()=>{class t{isErrorState(e,i){return!!(e&&e.invalid&&(e.dirty||i&&i.submitted))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac})}return t})(),pk=(()=>{class t{isErrorState(e,i){return!!(e&&e.invalid&&(e.touched||i&&i.submitted))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();class FB{_defaultMatcher;ngControl;_parentFormGroup;_parentForm;_stateChanges;errorState=!1;matcher;constructor(n,e,i,o,r){this._defaultMatcher=n,this.ngControl=e,this._parentFormGroup=i,this._parentForm=o,this._stateChanges=r}updateErrorState(){const n=this.errorState,e=this._parentFormGroup||this._parentForm,i=this.matcher||this._defaultMatcher,o=this.ngControl?this.ngControl.control:null,r=i?.isErrorState(o,e)??!1;r!==n&&(this.errorState=r,this._stateChanges.next())}}let lv=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({imports:[r4,sn,ii]})}return t})();const _pe=["button","checkbox","file","hidden","image","radio","range","reset","submit"],bpe=new Z("MAT_INPUT_CONFIG");let In=(()=>{class t{_elementRef=D(Re);_platform=D(Yn);ngControl=D(Zr,{optional:!0,self:!0});_autofillMonitor=D(fpe);_ngZone=D(_e);_formField=D(fk,{optional:!0});_renderer=D(Qn);_uid=D(ni).getId("mat-input-");_previousNativeValue;_inputValueAccessor;_signalBasedValueAccessor;_previousPlaceholder=null;_errorStateTracker;_config=D(bpe,{optional:!0});_cleanupIosKeyup;_cleanupWebkitWheel;_isServer=!1;_isNativeSelect=!1;_isTextarea=!1;_isInFormField=!1;focused=!1;stateChanges=new me;controlType="mat-input";autofilled=!1;get disabled(){return this._disabled}set disabled(e){this._disabled=uu(e),this.focused&&(this.focused=!1,this.stateChanges.next())}_disabled=!1;get id(){return this._id}set id(e){this._id=e||this._uid}_id;placeholder;name;get required(){return this._required??this.ngControl?.control?.hasValidator(Ne.required)??!1}set required(e){this._required=uu(e)}_required;get type(){return this._type}set type(e){this._type=e||"text",this._validateType(),!this._isTextarea&&RB().has(this._type)&&(this._elementRef.nativeElement.type=this._type)}_type="text";get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(e){this._errorStateTracker.matcher=e}userAriaDescribedBy;get value(){return this._signalBasedValueAccessor?this._signalBasedValueAccessor.value():this._inputValueAccessor.value}set value(e){e!==this.value&&(this._signalBasedValueAccessor?this._signalBasedValueAccessor.value.set(e):this._inputValueAccessor.value=e,this.stateChanges.next())}get readonly(){return this._readonly}set readonly(e){this._readonly=uu(e)}_readonly=!1;disabledInteractive;get errorState(){return this._errorStateTracker.errorState}set errorState(e){this._errorStateTracker.errorState=e}_neverEmptyInputTypes=["date","datetime","datetime-local","month","time","week"].filter(e=>RB().has(e));constructor(){const e=D(su,{optional:!0}),i=D(on,{optional:!0}),o=D(pk),r=D(mpe,{optional:!0,self:!0}),s=this._elementRef.nativeElement,a=s.nodeName.toLowerCase();r?El(r.value)?this._signalBasedValueAccessor=r:this._inputValueAccessor=r:this._inputValueAccessor=s,this._previousNativeValue=this.value,this.id=this.id,this._platform.IOS&&this._ngZone.runOutsideAngular(()=>{this._cleanupIosKeyup=this._renderer.listen(s,"keyup",this._iOSKeyupListener)}),this._errorStateTracker=new FB(o,this.ngControl,i,e,this.stateChanges),this._isServer=!this._platform.isBrowser,this._isNativeSelect="select"===a,this._isTextarea="textarea"===a,this._isInFormField=!!this._formField,this.disabledInteractive=this._config?.disabledInteractive||!1,this._isNativeSelect&&(this.controlType=s.multiple?"mat-native-select-multiple":"mat-native-select"),this._signalBasedValueAccessor&&fm(()=>{this._signalBasedValueAccessor.value(),this.stateChanges.next()})}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._cleanupIosKeyup?.(),this._cleanupWebkitWheel?.()}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)}updateErrorState(){this._errorStateTracker.updateErrorState()}_focusChanged(e){if(e!==this.focused){if(!this._isNativeSelect&&e&&this.disabled&&this.disabledInteractive){const i=this._elementRef.nativeElement;"number"===i.type?(i.type="text",i.setSelectionRange(0,0),i.type="number"):i.setSelectionRange(0,0)}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(){_pe.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.disabled||!this.empty}get describedByIds(){return this._elementRef.nativeElement.getAttribute("aria-describedby")?.split(" ")||[]}setDescribedByIds(e){const i=this._elementRef.nativeElement;e.length?i.setAttribute("aria-describedby",e.join(" ")):i.removeAttribute("aria-describedby")}onContainerClick(){this.focused||this.focus()}_isInlineSelect(){const e=this._elementRef.nativeElement;return this._isNativeSelect&&(e.multiple||e.size>1)}_iOSKeyupListener=e=>{const i=e.target;!i.value&&0===i.selectionStart&&0===i.selectionEnd&&(i.setSelectionRange(1,1),i.setSelectionRange(0,0))};_getReadonlyAttribute(){return this._isNativeSelect?null:this.readonly||this.disabled&&this.disabledInteractive?"true":null}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["input","matInput",""],["textarea","matInput",""],["select","matNativeControl",""],["input","matNativeControl",""],["textarea","matNativeControl",""]],hostAttrs:[1,"mat-mdc-input-element"],hostVars:21,hostBindings:function(i,o){1&i&&F("focus",function(){return o._focusChanged(!0)})("blur",function(){return o._focusChanged(!1)})("input",function(){return o._onInput()}),2&i&&(ur("id",o.id)("disabled",o.disabled&&!o.disabledInteractive)("required",o.required),$e("name",o.name||null)("readonly",o._getReadonlyAttribute())("aria-disabled",o.disabled&&o.disabledInteractive?"true":null)("aria-invalid",o.empty&&o.required?null:o.errorState)("aria-required",o.required)("id",o.id),Ie("mat-input-server",o._isServer)("mat-mdc-form-field-textarea-control",o._isInFormField&&o._isTextarea)("mat-mdc-form-field-input-control",o._isInFormField)("mat-mdc-input-disabled-interactive",o.disabledInteractive)("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:[0,"aria-describedby","userAriaDescribedBy"],value:"value",readonly:"readonly",disabledInteractive:[2,"disabledInteractive","disabledInteractive",De]},exportAs:["matInput"],features:[lt([{provide:hk,useExisting:t}]),_i]})}return t})(),vpe=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({imports:[lv,lv,ppe,ii]})}return t})();class NB{_letterKeyStream=new me;_items=[];_selectedItemIndex=-1;_pressedLetters=[];_skipPredicateFn;_selectedItem=new me;selectedItem=this._selectedItem;constructor(n,e){const i="number"==typeof e?.debounceInterval?e.debounceInterval:200;e?.skipPredicate&&(this._skipPredicateFn=e.skipPredicate),this.setItems(n),this._setupKeyHandler(i)}destroy(){this._pressedLetters=[],this._letterKeyStream.complete(),this._selectedItem.complete()}setCurrentSelectedItemIndex(n){this._selectedItemIndex=n}setItems(n){this._items=n}handleKey(n){const e=n.keyCode;n.key&&1===n.key.length?this._letterKeyStream.next(n.key.toLocaleUpperCase()):(e>=65&&e<=90||e>=48&&e<=57)&&this._letterKeyStream.next(String.fromCharCode(e))}isTyping(){return this._pressedLetters.length>0}reset(){this._pressedLetters=[]}_setupKeyHandler(n){this._letterKeyStream.pipe(ai(e=>this._pressedLetters.push(e)),Mb(n),Tn(()=>this._pressedLetters.length>0),Se(()=>this._pressedLetters.join("").toLocaleUpperCase())).subscribe(e=>{for(let i=1;io.trim()===e)&&(i.push(e),t.setAttribute(n,i.join(" ")))}function mk(t,n,e){const i=cv(t,n);e=e.trim();const o=i.filter(r=>r!==e);o.length?t.setAttribute(n,o.join(" ")):t.removeAttribute(n)}function cv(t,n){return t.getAttribute(n)?.match(/\S+/g)??[]}const HB="cdk-describedby-message",dv="cdk-describedby-host";let gk=0,xpe=(()=>{class t{_platform=D(Yn);_document=D(et);_messageRegistry=new Map;_messagesContainer=null;_id=""+gk++;constructor(){D(zo).load(gS),this._id=D(Js)+"-"+gk++}describe(e,i,o){if(!this._canBeDescribed(e,i))return;const r=_k(i,o);"string"!=typeof i?(jB(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=_k(i,o);if(this._isElementDescribedByMessage(e,r)&&this._removeMessageReference(e,r),"string"==typeof i){const s=this._messageRegistry.get(r);s&&0===s.referenceCount&&this._deleteMessageElement(r)}0===this._messagesContainer?.childNodes.length&&(this._messagesContainer.remove(),this._messagesContainer=null)}ngOnDestroy(){const e=this._document.querySelectorAll(`[${dv}="${this._id}"]`);for(let i=0;i0!=o.indexOf(HB));e.setAttribute("aria-describedby",i.join(" "))}_addMessageReference(e,i){const o=this._messageRegistry.get(i);VB(e,"aria-describedby",o.messageElement.id),e.setAttribute(dv,this._id),o.referenceCount++}_removeMessageReference(e,i){const o=this._messageRegistry.get(i);o.referenceCount--,mk(e,"aria-describedby",o.messageElement.id),e.removeAttribute(dv)}_isElementDescribedByMessage(e,i){const o=cv(e,"aria-describedby"),r=this._messageRegistry.get(i),s=r&&r.messageElement.id;return!!s&&-1!=o.indexOf(s)}_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 \u0275fac=function(i){return new(i||t)};static \u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function _k(t,n){return"string"==typeof t?`${n||""}/${t}`:t}function jB(t,n){t.id||(t.id=`${HB}-${n}-${gk++}`)}const kpe=["tooltip"],Mpe=new Z("mat-tooltip-scroll-strategy",{providedIn:"root",factory:()=>{const t=D(He);return()=>Bf(t,{scrollThrottle:20})}}),Tpe=new Z("mat-tooltip-default-options",{providedIn:"root",factory:()=>({showDelay:0,hideDelay:0,touchendHideDelay:1500})}),UB="tooltip-panel",Epe={passive:!0};let Kt=(()=>{class t{_elementRef=D(Re);_ngZone=D(_e);_platform=D(Yn);_ariaDescriber=D(xpe);_focusMonitor=D(ec);_dir=D(br);_injector=D(He);_viewContainerRef=D(Ei);_mediaMatcher=D(bS);_document=D(et);_renderer=D(Qn);_animationsDisabled=ci();_defaultOptions=D(Tpe,{optional:!0});_overlayRef=null;_tooltipInstance=null;_overlayPanelClass;_portal;_position="below";_positionAtOrigin=!1;_disabled=!1;_tooltipClass;_viewInitialized=!1;_pointerExitEventsInitialized=!1;_tooltipComponent=Rpe;_viewportMargin=8;_currentPosition;_cssClassPrefix="mat-mdc";_ariaDescriptionPending=!1;_dirSubscribed=!1;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=uu(e),this._detach(),this._overlayRef=null}get disabled(){return this._disabled}set disabled(e){const i=uu(e);this._disabled!==i&&(this._disabled=i,i?this.hide(0):this._setupPointerEnterEventsIfNeeded(),this._syncAriaDescription(this.message))}get showDelay(){return this._showDelay}set showDelay(e){this._showDelay=Of(e)}_showDelay;get hideDelay(){return this._hideDelay}set hideDelay(e){this._hideDelay=Of(e),this._tooltipInstance&&(this._tooltipInstance._mouseLeaveHideDelay=this._hideDelay)}_hideDelay;touchGestures="auto";get message(){return this._message}set message(e){const i=this._message;this._message=null!=e?String(e).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage()),this._syncAriaDescription(i)}_message="";get tooltipClass(){return this._tooltipClass}set tooltipClass(e){this._tooltipClass=e,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)}_eventCleanups=[];_touchstartTimeout=null;_destroyed=new me;_isDestroyed=!1;constructor(){const e=this._defaultOptions;e&&(this._showDelay=e.showDelay,this._hideDelay=e.hideDelay,e.position&&(this.position=e.position),e.positionAtOrigin&&(this.positionAtOrigin=e.positionAtOrigin),e.touchGestures&&(this.touchGestures=e.touchGestures),e.tooltipClass&&(this.tooltipClass=e.tooltipClass)),this._viewportMargin=8}ngAfterViewInit(){this._viewInitialized=!0,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe(fn(this._destroyed)).subscribe(e=>{e?"keyboard"===e&&this._ngZone.run(()=>this.show()):this._ngZone.run(()=>this.hide(0))})}ngOnDestroy(){const e=this._elementRef.nativeElement;this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),this._eventCleanups.forEach(i=>i()),this._eventCleanups.length=0,this._destroyed.next(),this._destroyed.complete(),this._isDestroyed=!0,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 Kd(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(fn(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 s=this._overlayRef.getConfig().positionStrategy;if((!this.positionAtOrigin||!e)&&s._origin instanceof Re)return this._overlayRef;this._detach()}const i=this._injector.get(mb).getAncestorScrollContainers(this._elementRef),o=`${this._cssClassPrefix}-${UB}`,r=xb(this._injector,this.positionAtOrigin&&e||this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(!1).withViewportMargin(this._viewportMargin).withScrollableContainers(i).withPopoverLocation("global");return r.positionChanges.pipe(fn(this._destroyed)).subscribe(s=>{this._updateCurrentPositionClass(s.connectionPair),this._tooltipInstance&&s.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run(()=>this.hide(0))}),this._overlayRef=Xd(this._injector,{direction:this._dir,positionStrategy:r,panelClass:this._overlayPanelClass?[...this._overlayPanelClass,o]:o,scrollStrategy:this._injector.get(Mpe)(),disableAnimations:this._animationsDisabled,eventPredicate:this._overlayEventPredicate}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe(fn(this._destroyed)).subscribe(()=>this._detach()),this._overlayRef.outsidePointerEvents().pipe(fn(this._destroyed)).subscribe(()=>this._tooltipInstance?._handleBodyInteraction()),this._overlayRef.keydownEvents().pipe(fn(this._destroyed)).subscribe(s=>{s.preventDefault(),s.stopPropagation(),this._ngZone.run(()=>this.hide(0))}),this._defaultOptions?.disableTooltipInteractivity&&this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`),this._dirSubscribed||(this._dirSubscribed=!0,this._dir.change.pipe(fn(this._destroyed)).subscribe(()=>{this._overlayRef&&this._updatePosition(this._overlayRef)})),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){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}_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:s}=this._invertPosition(o.originX,o.originY);return{main:o,fallback:{originX:r,originY:s}}}_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:s}=this._invertPosition(o.overlayX,o.overlayY);return{main:o,fallback:{overlayX:r,overlayY:s}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),Vi(()=>{this._tooltipInstance&&this._overlayRef.updatePosition()},{injector:this._injector}))}_setTooltipClass(e){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=e instanceof Set?Array.from(e):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 s;if(s="center"===i?this._dir&&"rtl"===this._dir.value?"end"===o?"left":"right":"start"===o?"left":"right":"bottom"===i&&"top"===r?"above":"below",s!==this._currentPosition){const a=this._overlayRef;if(a){const l=`${this._cssClassPrefix}-${UB}-`;a.removePanelClass(l+this._currentPosition),a.addPanelClass(l+s)}this._currentPosition=s}}_setupPointerEnterEventsIfNeeded(){this._disabled||!this.message||!this._viewInitialized||this._eventCleanups.length||(this._isTouchPlatform()?"off"!==this.touchGestures&&(this._disableNativeGesturesIfNecessary(),this._addListener("touchstart",e=>{const i=e.targetTouches?.[0],o=i?{x:i.clientX,y:i.clientY}:void 0;this._setupPointerExitEventsIfNeeded(),this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this._touchstartTimeout=setTimeout(()=>{this._touchstartTimeout=null,this.show(void 0,o)},this._defaultOptions?.touchLongPressShowDelay??500)})):this._addListener("mouseenter",e=>{let i;this._setupPointerExitEventsIfNeeded(),void 0!==e.x&&void 0!==e.y&&(i=e),this.show(void 0,i)}))}_setupPointerExitEventsIfNeeded(){if(!this._pointerExitEventsInitialized)if(this._pointerExitEventsInitialized=!0,this._isTouchPlatform()){if("off"!==this.touchGestures){this._disableNativeGesturesIfNecessary();const e=()=>{this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this.hide(this._defaultOptions?.touchendHideDelay)};this._addListener("touchend",e),this._addListener("touchcancel",e)}}else this._addListener("mouseleave",e=>{const i=e.relatedTarget;(!i||!this._overlayRef?.overlayElement.contains(i))&&this.hide()}),this._addListener("wheel",e=>{if(this._isTooltipVisible()){const i=this._document.elementFromPoint(e.clientX,e.clientY),o=this._elementRef.nativeElement;i!==o&&!o.contains(i)&&this.hide()}})}_addListener(e,i){this._eventCleanups.push(this._renderer.listen(this._elementRef.nativeElement,e,i,Epe))}_isTouchPlatform(){return!(!this._platform.IOS&&!this._platform.ANDROID)||!!this._platform.isBrowser&&!!this._defaultOptions?.detectHoverCapability&&this._mediaMatcher.matchMedia("(any-hover: none)").matches}_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"}}_syncAriaDescription(e){this._ariaDescriptionPending||(this._ariaDescriptionPending=!0,this._ariaDescriber.removeDescription(this._elementRef.nativeElement,e,"tooltip"),this._isDestroyed||Vi({write:()=>{this._ariaDescriptionPending=!1,this.message&&!this.disabled&&this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip")}},{injector:this._injector}))}_overlayEventPredicate=e=>"keydown"!==e.type||this._isTooltipVisible()&&27===e.keyCode&&!yr(e);static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-mdc-tooltip-trigger"],hostVars:2,hostBindings:function(i,o){2&i&&Ie("mat-mdc-tooltip-disabled",o.disabled)},inputs:{position:[0,"matTooltipPosition","position"],positionAtOrigin:[0,"matTooltipPositionAtOrigin","positionAtOrigin"],disabled:[0,"matTooltipDisabled","disabled"],showDelay:[0,"matTooltipShowDelay","showDelay"],hideDelay:[0,"matTooltipHideDelay","hideDelay"],touchGestures:[0,"matTooltipTouchGestures","touchGestures"],message:[0,"matTooltip","message"],tooltipClass:[0,"matTooltipClass","tooltipClass"]},exportAs:["matTooltip"]})}return t})(),Rpe=(()=>{class t{_changeDetectorRef=D(Jt);_elementRef=D(Re);_isMultiline=!1;message;tooltipClass;_showTimeoutId;_hideTimeoutId;_triggerElement;_mouseLeaveHideDelay;_animationsDisabled=ci();_tooltip;_closeOnInteraction=!1;_isVisible=!1;_onHide=new me;_showAnimation="mat-mdc-tooltip-show";_hideAnimation="mat-mdc-tooltip-hide";constructor(){}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(){this._isMultiline=this._isTooltipMultiline(),this._markForCheck()}_isTooltipMultiline(){const e=this._elementRef.nativeElement.getBoundingClientRect();return e.height>24&&e.width>=200}_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&&(this._isVisible=e,this._changeDetectorRef.markForCheck()),e&&!this._animationsDisabled&&"function"==typeof getComputedStyle){const s=getComputedStyle(i);("0s"===s.getPropertyValue("animation-duration")||"none"===s.getPropertyValue("animation-name"))&&(this._animationsDisabled=!0)}e&&this._onShow(),this._animationsDisabled&&(i.classList.add("_mat-animation-noopable"),this._finalizeAnimation(e))}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["mat-tooltip-component"]],viewQuery:function(i,o){if(1&i&&ot(kpe,7),2&i){let r;he(r=fe())&&(o._tooltip=r.first)}},hostAttrs:["aria-hidden","true"],hostBindings:function(i,o){1&i&&F("mouseleave",function(s){return o._handleMouseLeave(s)})},decls:4,vars:5,consts:[["tooltip",""],[1,"mdc-tooltip","mat-mdc-tooltip",3,"animationend"],[1,"mat-mdc-tooltip-surface","mdc-tooltip__surface"]],template:function(i,o){1&i&&(vs(0,"div",1,0),qg("animationend",function(s){return o._handleAnimationEnd(s)}),vs(2,"div",2),p(3),Ol()()),2&i&&(Ze(o.tooltipClass),Ie("mdc-tooltip--multiline",o._isMultiline),d(3),M(o.message))},styles:['.mat-mdc-tooltip{position:relative;transform:scale(0);display:inline-flex}.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-surface{word-break:normal;overflow-wrap:anywhere;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center;will-change:transform,opacity;background-color:var(--mat-tooltip-container-color, var(--mat-sys-inverse-surface));color:var(--mat-tooltip-supporting-text-color, var(--mat-sys-inverse-on-surface));border-radius:var(--mat-tooltip-container-shape, var(--mat-sys-corner-extra-small));font-family:var(--mat-tooltip-supporting-text-font, var(--mat-sys-body-small-font));font-size:var(--mat-tooltip-supporting-text-size, var(--mat-sys-body-small-size));font-weight:var(--mat-tooltip-supporting-text-weight, var(--mat-sys-body-small-weight));line-height:var(--mat-tooltip-supporting-text-line-height, var(--mat-sys-body-small-line-height));letter-spacing:var(--mat-tooltip-supporting-text-tracking, var(--mat-sys-body-small-tracking))}.mat-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}.mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:right}.mat-mdc-tooltip-panel{line-height:normal}.mat-mdc-tooltip-panel.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}\n'],encapsulation:2,changeDetection:0})}return t})();const Fpe=["button1"],Npe=["button2"],Lpe=["*"],Bpe=t=>({"for-dark-background":t});function Vpe(t,n){1&t&&B(0,"mat-spinner",3),2&t&&C("diameter",v().loadingSize)}function Hpe(t,n){1&t&&(h(0,"mat-icon"),p(1,"error_outline"),u())}var lc=function(t){return t[t.Normal=0]="Normal",t[t.Error=1]="Error",t[t.Loading=2]="Loading",t}(lc||{});let ui=(()=>{class t{constructor(){this.forDarkBackground=!1,this.disabled=!1,this.color="",this.loadingSize=20,this.action=new we,this.state=lc.Normal,this.buttonStates=lc}ngOnDestroy(){this.action.complete()}click(){this.disabled||(this.reset(),this.action.emit())}reset(e=!0){this.state=lc.Normal,e&&(this.disabled=!1)}focus(){this.button1&&this.button1.focus(),this.button2&&this.button2.focus()}showEnabled(){this.disabled=!1}showDisabled(){this.disabled=!0}showLoading(e=!0){this.state=lc.Loading,e&&(this.disabled=!0)}showError(e=!0){this.state=lc.Error,e&&(this.disabled=!1)}get isLoading(){return this.state===lc.Loading}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=re({type:t,selectors:[["app-button"]],viewQuery:function(i,o){if(1&i&&ot(Fpe,5)(Npe,5),2&i){let r;he(r=fe())&&(o.button1=r.first),he(r=fe())&&(o.button2=r.first)}},inputs:{forDarkBackground:"forDarkBackground",disabled:"disabled",color:"color",loadingSize:"loadingSize"},outputs:{action:"action"},standalone:!1,ngContentSelectors:Lpe,decls:6,vars:7,consts:[["button2",""],["mat-raised-button","",3,"click","disabled","color","ngClass"],[1,"d-flex"],[3,"diameter"]],template:function(i,o){1&i&&(yi(),h(0,"button",1,0),F("click",function(){return o.click()}),h(2,"div",2),x(3,Vpe,1,1,"mat-spinner",3),x(4,Hpe,2,0,"mat-icon"),Pt(5),u()()),2&i&&(C("disabled",o.disabled)("color",o.color)("ngClass",se(5,Bpe,o.forDarkBackground)),d(3),S(o.state===o.buttonStates.Loading?3:-1),d(),S(o.state===o.buttonStates.Error?4:-1))},dependencies:[$t,Pn,We,so],styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], button[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}button[_ngcontent-%COMP%]{color:#f8f9f9;border-radius:10px}button[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}mat-icon[_ngcontent-%COMP%], mat-spinner[_ngcontent-%COMP%]{display:inline-block;margin-right:15px}.for-dark-background[_ngcontent-%COMP%]:disabled{background-color:#000!important;color:#fff!important;opacity:.3}"]})}}return t})();const jpe=["button"],Upe=["firstInput"],zpe=t=>({"rounded-elevated-box":t}),zB=(t,n)=>({"white-form-field":t,"element-disabled":n}),$pe=(t,n)=>({"mt-2 app-button":t,"float-right":n}),Wpe=t=>({"element-disabled":t});function Gpe(t,n){if(1&t&&(h(0,"mat-form-field",6)(1,"div",7)(2,"label",8),p(3),b(4,"translate"),u(),B(5,"input",12),u(),h(6,"mat-error")(7,"span"),p(8),b(9,"translate"),u()()()),2&t){const e=v();C("ngClass",se(7,Wpe,e.working)),d(3),M(y(4,3,"settings.password.old-password")),d(5),M(y(9,5,"settings.password.errors.old-password-required"))}}let $B=(()=>{class t{constructor(e,i,o,r){this.authService=e,this.router=i,this.snackbarService=o,this.dialog=r,this.workingState=new we,this.forInitialConfig=!1}ngOnInit(){this.form=new nk({oldPassword:new lu("",this.forInitialConfig?null:Ne.required),newPassword:new lu("",Ne.compose([Ne.required,Ne.minLength(6),Ne.maxLength(64)])),newPasswordConfirmation:new lu("",[Ne.required,this.validatePasswords.bind(this)])}),this.formSubscription=this.form.controls.newPassword.valueChanges.subscribe(()=>this.form.controls.newPasswordConfirmation.updateValueAndValidity())}ngAfterViewInit(){this.forInitialConfig&&setTimeout(()=>this.firstInput.nativeElement.focus())}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe(),this.formSubscription.unsubscribe()}get working(){return!!this.button&&this.button.isLoading}changePassword(){this.form.valid&&!this.button.disabled&&(this.button.showLoading(),this.workingState.next(!0),this.subscription=this.forInitialConfig?this.authService.initialConfig(this.form.get("newPassword").value).subscribe(()=>{this.dialog.closeAll(),this.snackbarService.showDone("settings.password.initial-config.done"),this.workingState.next(!1)},e=>{this.button.showError(),e=Qe(e),this.snackbarService.showError(e,null,!0),this.workingState.next(!1)}):this.authService.changePassword(this.form.get("oldPassword").value,this.form.get("newPassword").value).subscribe(()=>{this.router.navigate(["nodes"]),this.snackbarService.showDone("settings.password.password-changed"),this.workingState.next(!1)},e=>{this.button.showError(),e=Qe(e),this.snackbarService.showError(e),this.workingState.next(!1)}))}validatePasswords(){return this.form&&this.form.get("newPassword").value!==this.form.get("newPasswordConfirmation").value?{invalid:!0}:null}static{this.\u0275fac=function(i){return new(i||t)(O(Yf),O(vt),O(ct),O(Ot))}}static{this.\u0275cmp=re({type:t,selectors:[["app-password"]],viewQuery:function(i,o){if(1&i&&ot(jpe,5)(Upe,5),2&i){let r;he(r=fe())&&(o.button=r.first),he(r=fe())&&(o.firstInput=r.first)}},inputs:{forInitialConfig:"forInitialConfig"},outputs:{workingState:"workingState"},standalone:!1,decls:33,vars:40,consts:[["firstInput",""],["button",""],[3,"ngClass"],[1,"box-internal-container","overflow"],[1,"help-icon",3,"inline","matTooltip"],[3,"formGroup"],[1,"white-form-field",3,"ngClass"],[1,"field-container"],["for","remoteKey",1,"field-label"],["type","password","formControlName","newPassword","maxlength","64","matInput",""],["type","password","formControlName","newPasswordConfirmation","maxlength","64","matInput",""],["color","primary",3,"action","ngClass","disabled","forDarkBackground"],["type","password","formControlName","oldPassword","maxlength","64","matInput",""]],template:function(i,o){1&i&&(h(0,"div",2)(1,"div",3)(2,"div")(3,"mat-icon",4),b(4,"translate"),p(5," help "),u()(),h(6,"form",5),x(7,Gpe,10,9,"mat-form-field",6),h(8,"mat-form-field",2)(9,"div",7)(10,"label",8),p(11),b(12,"translate"),u(),B(13,"input",9,0),u(),h(15,"mat-error")(16,"span"),p(17),b(18,"translate"),u()()(),h(19,"mat-form-field",2)(20,"div",7)(21,"label",8),p(22),b(23,"translate"),u(),B(24,"input",10),u(),h(25,"mat-error")(26,"span"),p(27),b(28,"translate"),u()()(),h(29,"app-button",11,1),F("action",function(){return o.changePassword()}),p(31),b(32,"translate"),u()()()()),2&i&&(C("ngClass",se(29,zpe,!o.forInitialConfig)),d(2),Ze((o.forInitialConfig?"":"white-")+"form-help-icon-container"),d(),C("inline",!0)("matTooltip",y(4,17,o.forInitialConfig?"settings.password.initial-config-help":"settings.password.help")),d(3),C("formGroup",o.form),d(),S(o.forInitialConfig?-1:7),d(),C("ngClass",_t(31,zB,!o.forInitialConfig,o.working)),d(3),M(y(12,19,o.forInitialConfig?"settings.password.initial-config.password":"settings.password.new-password")),d(6),M(y(18,21,"settings.password.errors.new-password-error")),d(2),C("ngClass",_t(34,zB,!o.forInitialConfig,o.working)),d(3),M(y(23,23,o.forInitialConfig?"settings.password.initial-config.repeat-password":"settings.password.repeat-password")),d(5),M(y(28,25,"settings.password.errors.passwords-not-match")),d(2),C("ngClass",_t(37,$pe,!o.forInitialConfig,o.forInitialConfig))("disabled",!o.form.valid)("forDarkBackground",!o.forInitialConfig),d(2),E(" ",y(32,27,o.forInitialConfig?"settings.password.initial-config.set-password":"settings.change-password")," "))},dependencies:[$t,xn,Gt,qt,wn,wi,on,mn,sn,Ma,In,We,Kt,ui,xe],styles:[".help-icon[_ngcontent-%COMP%]{display:inline}mat-form-field[_ngcontent-%COMP%]{margin-right:32px}app-button[_ngcontent-%COMP%]{float:right;margin-right:32px}"]})}}return t})();const qpe=["*"],WB=t=>({"content-margin":t});function Kpe(t,n){1&t&&(h(0,"button",2)(1,"mat-icon"),p(2,"close"),u()())}function Ype(t,n){1&t&&dr(0)}function Xpe(t,n){if(1&t&&(h(0,"mat-dialog-content",4),it(1,Ype,1,0,"ng-container",5),u()),2&t){const e=v(),i=Hn(8);C("ngClass",se(2,WB,e.includeVerticalMargins)),d(),C("ngTemplateOutlet",i)}}function Zpe(t,n){1&t&&dr(0)}function Qpe(t,n){if(1&t&&(h(0,"div",4),it(1,Zpe,1,0,"ng-container",5),u()),2&t){const e=v(),i=Hn(8);C("ngClass",se(2,WB,e.includeVerticalMargins)),d(),C("ngTemplateOutlet",i)}}function Jpe(t,n){1&t&&Pt(0)}let gn=(()=>{class t{set dialog(e){e.disableClose=!0,this.dialogInternal=e}constructor(e){this.matDialog=e,this.includeScrollableArea=!0,this.includeVerticalMargins=!0}onKeyUp(){this.closePopup()}closePopup(){this.disableDismiss||this.matDialog.openDialogs[this.matDialog.openDialogs.length-1].id===this.dialogInternal.id&&this.dialogInternal.close()}static{this.\u0275fac=function(i){return new(i||t)(O(Ot))}}static{this.\u0275cmp=re({type:t,selectors:[["app-dialog"]],hostBindings:function(i,o){1&i&&F("keyup.esc",function(){return o.onKeyUp()},XC)},inputs:{headline:"headline",disableDismiss:"disableDismiss",includeScrollableArea:"includeScrollableArea",includeVerticalMargins:"includeVerticalMargins",dialog:"dialog"},standalone:!1,ngContentSelectors:qpe,decls:9,vars:4,consts:[["contentTemplate",""],["mat-dialog-title","",1,"header"],["mat-dialog-close","","mat-icon-button","",1,"grey-button-background"],[1,"header-separator"],[3,"ngClass"],[4,"ngTemplateOutlet"]],template:function(i,o){1&i&&(yi(),h(0,"div",1)(1,"span"),p(2),u(),x(3,Kpe,3,0,"button",2),u(),B(4,"div",3),x(5,Xpe,2,4,"mat-dialog-content",4),x(6,Qpe,2,4,"div",4),it(7,Jpe,1,0,"ng-template",null,0,Rl)),2&i&&(d(2),M(o.headline),d(),S(o.disableDismiss?-1:3),d(2),S(o.includeScrollableArea?5:-1),d(),S(o.includeScrollableArea?-1:6))},dependencies:[$t,Ld,D4,MS,Jd,Wo,We],styles:['.cursor-pointer[_ngcontent-%COMP%], .header[_ngcontent-%COMP%] .mat-mdc-icon-button[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%], .header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media(max-width:767px),(min-width:992px)and (max-width:1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media(max-width:767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}[_nghost-%COMP%]{color:#202226}.header[_ngcontent-%COMP%]{margin:-24px -24px 0;color:#215f9e;padding:0 14px 0 24px;font-size:1rem;text-transform:uppercase;font-weight:700;display:flex;align-items:center}.header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{flex-grow:1}@media(max-width:767px){.header[_ngcontent-%COMP%]{padding:0 2px 0 24px}}.header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{line-height:1rem;margin:18px 0}.header[_ngcontent-%COMP%] .mat-mdc-icon-button[_ngcontent-%COMP%]{color:#a6b2b2;width:32px;height:32px;line-height:20px;margin-left:10px;padding:0}@media(max-width:767px){.header[_ngcontent-%COMP%] .mat-mdc-icon-button[_ngcontent-%COMP%]{width:46px;height:46px}}.header-separator[_ngcontent-%COMP%]{height:1px;background-color:#215f9e33;margin-left:-12px;margin-right:-12px}.content-margin[_ngcontent-%COMP%]{padding-top:18px;padding-bottom:24px!important}']})}}return t})(),eme=(()=>{class t{static openDialog(e){const i=new nn;return i.autoFocus=!1,i.width=rt.smallModalWidth,e.open(t,i)}constructor(e){this.dialogRef=e,this.disableDismiss=!1}static{this.\u0275fac=function(i){return new(i||t)(O(Bt))}}static{this.\u0275cmp=re({type:t,selectors:[["app-initial-setup"]],standalone:!1,decls:3,vars:6,consts:[[3,"headline","dialog","disableDismiss"],[3,"workingState","forInitialConfig"]],template:function(i,o){1&i&&(h(0,"app-dialog",0),b(1,"translate"),h(2,"app-password",1),F("workingState",function(s){return o.disableDismiss=s}),u()()),2&i&&(C("headline",y(1,4,"settings.password.initial-config.title"))("dialog",o.dialogRef)("disableDismiss",o.disableDismiss),d(2),C("forInitialConfig",!0))},dependencies:[$B,gn,xe],encapsulation:2})}}return t})();var bk=function qB(t){var n,e,i,P,A,o=I.prototype={constructor:I,toString:null,valueOf:null},r=new I(1),s=20,a=4,l=-7,c=21,f=-1e7,m=1e7,g=!1,_=1,w=0,k={prefix:"",groupSize:3,secondaryGroupSize:0,groupSeparator:",",decimalSeparator:".",fractionGroupSize:0,fractionGroupSeparator:"\xa0",suffix:""},T="0123456789abcdefghijklmnopqrstuvwxyz";function I(P,A){var L,$,H,G,J,V,N,q,z=this;if(!(z instanceof I))return new I(P,A);if(q=typeof P,null==A){if(W(P))return z.s=P.s,void(!P.c||P.e>m?z.c=z.e=null:P.e=10;J/=10,G++);return void(G>m?z.c=z.e=null:(z.e=G,z.c=[P]))}N=String(P)}else{if("string"==q){if(!tme.test(N=P))return i(z,N)}else{if("bigint"!=q)throw Error(yo+"Invalid argument: "+P);N=String(P)}z.s=45==N.charCodeAt(0)?(N=N.slice(1),-1):1}(G=N.indexOf("."))>-1&&(N=N.replace(".","")),(J=N.search(/e/i))>0?(G<0&&(G=J),G+=+N.slice(J+1),N=N.substring(0,J)):G<0&&(G=N.length)}else{if("string"!=q)throw Error(yo+"String expected: "+P);for(On(A,2,T.length,"Base"),z.s=45===(N=P).charCodeAt(0)?(N=N.slice(1),-1):1,L=T.slice(0,A),G=J=0,V=N.length;JG){G=V;continue}}else if(!H&&(N==N.toUpperCase()&&(N=N.toLowerCase())||N==N.toLowerCase()&&(N=N.toUpperCase()))){H=!0,J=-1,G=0;continue}return i(z,P,A)}(G=(N=e(N,A,10,z.s)).indexOf("."))>-1?N=N.replace(".",""):G=N.length}for(J=0;48===N.charCodeAt(J);J++);for(V=N.length;48===N.charCodeAt(--V););if(N=N.slice(J,++V))if(V-=J,(G=G-J-1)>m)z.c=z.e=null;else if(G=c)?hv(N,J):Ea(N,J,"0");else if(G=(P=ee(new I(P),A,L)).e,V=(N=Sr(P.c)).length,1==$||2==$&&(A<=G||G<=l)){for(;VJ),N=Ea(N,G,"0"),G+1>V){if(--A>0)for(N+=".";A--;N+="0");}else if((A+=G-V)>0)for(G+1==V&&(N+=".");A--;N+="0");return P.s<0&&H?"-"+N:N}function W(P){return P instanceof I||!!P&&!0===P._isBigNumber}function Y(P,A){for(var L,$,H=1,G=new I(P[0]);H=10;H/=10,$++);return(L=$+14*L-1)>m?P.c=P.e=null:L=10;V/=10,H++);if((G=A-H)<0)G+=14,N=Q[q=0],z=wr(N/ue[H-(J=A)-1]%10);else if((q=vk((G+1)/14))>=Q.length){if(!$)break e;for(;Q.length<=q;Q.push(0));N=z=0,H=1,J=(G%=14)-14+1}else{for(N=V=Q[q],H=1;V>=10;V/=10,H++);z=(J=(G%=14)-14+H)<0?0:wr(N/ue[H-J-1]%10)}if($=$||A<0||null!=Q[q+1]||(J<0?N:N%ue[H-J-1]),$=L<4?(z||$)&&(0==L||L==(P.s<0?3:2)):z>5||5==z&&(4==L||$||6==L&&(G>0?J>0?N/ue[H-J]:0:Q[q-1])%10&1||L==(P.s<0?8:7)),A<1||!Q[0])return Q.length=0,$?(Q[0]=ue[(14-(A-=P.e+1)%14)%14],P.e=-A||0):Q[0]=P.e=0,P;if(0==G?(Q.length=q,V=1,q--):(Q.length=q+1,V=ue[14-G],Q[q]=J>0?wr(N/ue[H-J]%ue[J])*V:0),$)for(;;){if(0==q){for(G=1,J=Q[0];J>=10;J/=10,G++);for(J=Q[0]+=V,V=1;J>=10;J/=10,V++);G!=V&&(P.e++,Q[0]==xr&&(Q[0]=1));break}if(Q[q]+=V,Q[q]!=xr)break;Q[q--]=0,V=1}for(G=Q.length;0===Q[--G];Q.pop());}P.e>m?P.c=P.e=null:P.e=c?hv(A,L):Ea(A,L,"0"),P.s<0?"-"+A:A)}return I.clone=qB,I.ROUND_UP=0,I.ROUND_DOWN=1,I.ROUND_CEIL=2,I.ROUND_FLOOR=3,I.ROUND_HALF_UP=4,I.ROUND_HALF_DOWN=5,I.ROUND_HALF_EVEN=6,I.ROUND_HALF_CEIL=7,I.ROUND_HALF_FLOOR=8,I.EUCLID=9,I.config=I.set=function(P){var A,L;if(null!=P){if("object"!=typeof P)throw Error(yo+"Object expected: "+P);if(P.hasOwnProperty(A="DECIMAL_PLACES")&&(On(L=P[A],0,xi,A),s=L),P.hasOwnProperty(A="ROUNDING_MODE")&&(On(L=P[A],0,8,A),a=L),P.hasOwnProperty(A="EXPONENTIAL_AT")&&((L=P[A])&&L.pop?(On(L[0],-xi,0,A),On(L[1],0,xi,A),l=L[0],c=L[1]):(On(L,-xi,xi,A),l=-(c=L<0?-L:L))),P.hasOwnProperty(A="RANGE"))if((L=P[A])&&L.pop)On(L[0],-xi,-1,A),On(L[1],1,xi,A),f=L[0],m=L[1];else{if(On(L,-xi,xi,A),!L)throw Error(yo+A+" cannot be zero: "+L);f=-(m=L<0?-L:L)}if(P.hasOwnProperty(A="CRYPTO")){if((L=P[A])!==!!L)throw Error(yo+A+" not true or false: "+L);if(L){if(!(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes)))throw g=!L,Error(yo+"crypto unavailable");g=L}else g=L}if(P.hasOwnProperty(A="MODULO_MODE")&&(On(L=P[A],0,9,A),_=L),P.hasOwnProperty(A="POW_PRECISION")&&(On(L=P[A],0,xi,A),w=L),P.hasOwnProperty(A="FORMAT")){if("object"!=typeof(L=P[A]))throw Error(yo+A+" not an object: "+L);k=L}if(P.hasOwnProperty(A="ALPHABET")){if("string"!=typeof(L=P[A])||/^.?$|[+\-.\s]|(.).*\1/.test(L))throw Error(yo+A+" invalid: "+L);T=L}}return{DECIMAL_PLACES:s,ROUNDING_MODE:a,EXPONENTIAL_AT:[l,c],RANGE:[f,m],CRYPTO:g,MODULO_MODE:_,POW_PRECISION:w,FORMAT:k,ALPHABET:T}},I.isBigNumber=function(P){if(!W(P))return!1;var A,L,$=P.c,H=P.e,G=P.s;if("[object Array]"!={}.toString.call($))return null===$&&null===H&&(null===G||1===G||-1===G);if(1!==G&&-1!==G||H<-xi||H>xi||H!==wr(H))return!1;if(0===$[0])return 0===H&&1===$.length;if((A=(H+1)%14)<1&&(A+=14),String($[0]).length!==A)return!1;for(A=0;A<$.length;A++)if((L=$[A])<0||L>=xr||L!==wr(L))return!1;return 0!==L},I.maximum=I.max=function(){return Y(arguments,-1)},I.minimum=I.min=function(){return Y(arguments,1)},I.random=(P=9007199254740992,A=Math.random()*P&2097151?function(){return wr(Math.random()*P)}:function(){return 8388608*(1073741824*Math.random()|0)+(8388608*Math.random()|0)},function(L){var $,H,G,J,V,N=0,q=[],z=new I(r);if(null==L?L=s:On(L,0,xi),J=vk(L/14),g)if(crypto.getRandomValues){for($=crypto.getRandomValues(new Uint32Array(J*=2));N>>11))>=9e15?(H=crypto.getRandomValues(new Uint32Array(2)),$[N]=H[0],$[N+1]=H[1]):(q.push(V%1e14),N+=2);N=J/2}else{if(!crypto.randomBytes)throw g=!1,Error(yo+"crypto unavailable");for($=crypto.randomBytes(J*=7);N=9e15?crypto.randomBytes(7).copy($,N):(q.push(V%1e14),N+=7);N=J/7}if(!g)for(;N=10;V/=10,N++);N<14&&(G-=14-N)}return z.e=G,z.c=q,z}),I.sum=function(){for(var P=1,A=arguments,L=new I(A[0]);PH-1&&(null==V[J+1]&&(V[J+1]=0),V[J+1]+=V[J]/H|0,V[J]%=H)}return V.reverse()}return function(L,$,H,G,J){var V,N,q,z,Q,ue,Ce,Ee,ut=L.indexOf("."),Oe=s,Xe=a;for(ut>=0&&(z=w,w=0,L=L.replace(".",""),ue=(Ee=new I($)).pow(L.length-ut),w=z,Ee.c=A(Ea(Sr(ue.c),ue.e,"0"),10,H,P),Ee.e=Ee.c.length),q=z=(Ce=A(L,$,H,J?(V=T,P):(V=P,T))).length;0==Ce[--z];Ce.pop());if(!Ce[0])return V.charAt(0);if(ut<0?--q:(ue.c=Ce,ue.e=q,ue.s=G,Ce=(ue=n(ue,Ee,Oe,Xe,H)).c,Q=ue.r,q=ue.e),ut=Ce[N=q+Oe+1],z=H/2,Q=Q||N<0||null!=Ce[N+1],Q=Xe<4?(null!=ut||Q)&&(0==Xe||Xe==(ue.s<0?3:2)):ut>z||ut==z&&(4==Xe||Q||6==Xe&&1&Ce[N-1]||Xe==(ue.s<0?8:7)),N<1||!Ce[0])L=Q?Ea(V.charAt(1),-Oe,V.charAt(0)):V.charAt(0);else{if(Ce.length=N,Q)for(--H;++Ce[--N]>H;)Ce[N]=0,N||(++q,Ce=[1].concat(Ce));for(z=Ce.length;!Ce[--z];);for(ut=0,L="";ut<=z;L+=V.charAt(Ce[ut++]));L=Ea(L,q,V.charAt(0))}return L}}(),n=function(){function P($,H,G){var J,V,N,q,z=0,Q=$.length,ue=H%Ta,Ce=H/Ta|0;for($=$.slice();Q--;)z=((V=ue*(N=$[Q]%Ta)+(J=Ce*N+(q=$[Q]/Ta|0)*ue)%Ta*Ta+z)/G|0)+(J/Ta|0)+Ce*q,$[Q]=V%G;return z&&($=[z].concat($)),$}function A($,H,G,J){var V,N;if(G!=J)N=G>J?1:-1;else for(V=N=0;VH[V]?1:-1;break}return N}function L($,H,G,J){for(var V=0;G--;)$[G]-=V,$[G]=(V=$[G]1;$.splice(0,1));}return function($,H,G,J,V){var N,q,z,Q,ue,Ce,Ee,ut,Oe,Xe,at,wt,Jo,Xi,ja,xo,Ep,er=$.s==H.s?1:-1,lo=$.c,Un=H.c;if(!(lo&&lo[0]&&Un&&Un[0]))return new I($.s&&H.s&&(lo?!Un||lo[0]!=Un[0]:Un)?lo&&0==lo[0]||!Un?0*er:er/0:NaN);for(Oe=(ut=new I(er)).c=[],er=G+(q=$.e-H.e)+1,V||(V=xr,q=Xo($.e/14)-Xo(H.e/14),er=er/14|0),z=0;Un[z]==(lo[z]||0);z++);if(Un[z]>(lo[z]||0)&&q--,er<0)Oe.push(1),Q=!0;else{for(Xi=lo.length,xo=Un.length,z=0,er+=2,(ue=wr(V/(Un[0]+1)))>1&&(Un=P(Un,ue,V),lo=P(lo,ue,V),xo=Un.length,Xi=lo.length),Jo=xo,at=(Xe=lo.slice(0,xo)).length;at=V/2&&ja++;do{if(ue=0,(N=A(Un,Xe,xo,at))<0){if(wt=Xe[0],xo!=at&&(wt=wt*V+(Xe[1]||0)),(ue=wr(wt/ja))>1)for(ue>=V&&(ue=V-1),Ee=(Ce=P(Un,ue,V)).length,at=Xe.length;1==A(Ce,Xe,Ee,at);)ue--,L(Ce,xo=10;er/=10,z++);ee(ut,G+(ut.e=z+14*q-1)+1,J,Q)}else ut.e=q,ut.r=+Q;return ut}}(),i=function(){var P=/^(-?)0([xbo])(?=\w[\w.]*$)/i,A=/^([^.]+)\.$/,L=/^\.([^.]+)$/,$=/^-?(Infinity|NaN)$/,H=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(G,J,V){var N,q=J.replace(H,"");if($.test(q))return G.s=isNaN(q)?null:q<0?-1:1,void(G.c=G.e=null);if(q=q.replace(P,function(z,Q,ue){return N="x"==(ue=ue.toLowerCase())?16:"b"==ue?2:8,V&&V!=N?z:Q}),V&&(N=V,q=q.replace(A,"$1").replace(L,"0.$1")),J!=q)return new I(q,N);throw Error(yo+"Not a"+(V?" base "+V:"")+" number: "+J)}}(),o.absoluteValue=o.abs=function(){var P=new I(this);return P.s<0&&(P.s=1),P},o.comparedTo=function(P,A){return cc(this,new I(P,A))},o.decimalPlaces=o.dp=function(P,A){var L,$,H,G=this;if(null!=P)return On(P,0,xi),null==A?A=a:On(A,0,8),ee(new I(G),P+G.e+1,A);if(!(L=G.c))return null;if($=14*((H=L.length-1)-Xo(this.e/14)),H=L[H])for(;H%10==0;H/=10,$--);return $<0&&($=0),$},o.dividedBy=o.div=function(P,A){return n(this,new I(P,A),s,a)},o.dividedToIntegerBy=o.idiv=function(P,A){return n(this,new I(P,A),0,1)},o.exponentiatedBy=o.pow=function(P,A){var L,$,H,G,V,N,q,z,Q=this;if((P=new I(P)).c&&!P.isInteger())throw Error(yo+"Exponent not an integer: "+ie(P));if(null!=A&&(A=new I(A)),V=P.e>14,!Q.c||!Q.c[0]||1==Q.c[0]&&!Q.e&&1==Q.c.length||!P.c||!P.c[0])return z=new I(Math.pow(+ie(Q),V?P.s*(2-uv(P)):+ie(P))),A?z.mod(A):z;if(N=P.s<0,A){if(A.c?!A.c[0]:!A.s)return new I(NaN);($=!N&&Q.isInteger()&&A.isInteger())&&(Q=Q.mod(A))}else{if(P.e>9&&(Q.e>0||Q.e<-1||(0==Q.e?Q.c[0]>1||V&&Q.c[1]>=24e7:Q.c[0]<8e13||V&&Q.c[0]<=9999975e7)))return G=Q.s<0&&uv(P)?-0:0,Q.e>-1&&(G=1/G),new I(N?1/G:G);w&&(G=vk(w/14+2))}for(V?(L=new I(.5),N&&(P.s=1),q=uv(P)):q=(H=Math.abs(+ie(P)))%2,z=new I(r);;){if(q){if(!(z=z.times(Q)).c)break;G?z.c.length>G&&(z.c.length=G):$&&(z=z.mod(A))}if(H){if(0===(H=wr(H/2)))break;q=H%2}else if(ee(P=P.times(L),P.e+1,1),P.e>14)q=uv(P);else{if(0===(H=+ie(P)))break;q=H%2}Q=Q.times(Q),G?Q.c&&Q.c.length>G&&(Q.c.length=G):$&&(Q=Q.mod(A))}return $?z:(N&&(z=r.div(z)),A?z.mod(A):G?ee(z,w,a,void 0):z)},o.integerValue=function(P){var A=new I(this);return null==P?P=a:On(P,0,8),ee(A,A.e+1,P)},o.isEqualTo=o.eq=function(P,A){return 0===cc(this,new I(P,A))},o.isFinite=function(){return!!this.c},o.isGreaterThan=o.gt=function(P,A){return cc(this,new I(P,A))>0},o.isGreaterThanOrEqualTo=o.gte=function(P,A){return 1===(A=cc(this,new I(P,A)))||0===A},o.isInteger=function(){return!!this.c&&Xo(this.e/14)>this.c.length-2},o.isLessThan=o.lt=function(P,A){return cc(this,new I(P,A))<0},o.isLessThanOrEqualTo=o.lte=function(P,A){return-1===(A=cc(this,new I(P,A)))||0===A},o.isNaN=function(){return!this.s},o.isNegative=function(){return this.s<0},o.isPositive=function(){return this.s>0},o.isZero=function(){return!!this.c&&0==this.c[0]},o.minus=function(P,A){var L,$,H,G,J=this,V=J.s;if(A=(P=new I(P,A)).s,!V||!A)return new I(NaN);if(V!=A)return P.s=-A,J.plus(P);var N=J.e/14,q=P.e/14,z=J.c,Q=P.c;if(!N||!q){if(!z||!Q)return z?(P.s=-A,P):new I(Q?J:NaN);if(!z[0]||!Q[0])return Q[0]?(P.s=-A,P):new I(z[0]?J:3==a?-0:0)}if(N=Xo(N),q=Xo(q),z=z.slice(),V=N-q){for((G=V<0)?(V=-V,H=z):(q=N,H=Q),H.reverse(),A=V;A--;H.push(0));H.reverse()}else for($=(G=(V=z.length)<(A=Q.length))?V:A,V=A=0;A<$;A++)if(z[A]!=Q[A]){G=z[A]0)for(;A--;z[L++]=0);for(A=xr-1;$>V;){if(z[--$]=0;){for(L=0,ue=wt[H]%Oe,Ce=wt[H]/Oe|0,G=H+(J=N);G>H;)L=((q=ue*(q=at[--J]%Oe)+(V=Ce*q+(z=at[J]/Oe|0)*ue)%Oe*Oe+Ee[G]+L)/ut|0)+(V/Oe|0)+Ce*z,Ee[G--]=q%ut;Ee[G]=L}return L?++$:Ee.splice(0,1),K(P,Ee,$)},o.negated=function(){var P=new I(this);return P.s=-P.s||null,P},o.plus=function(P,A){var L,$=this,H=$.s;if(A=(P=new I(P,A)).s,!H||!A)return new I(NaN);if(H!=A)return P.s=-A,$.minus(P);var G=$.e/14,J=P.e/14,V=$.c,N=P.c;if(!G||!J){if(!V||!N)return new I(H/0);if(!V[0]||!N[0])return N[0]?P:new I(V[0]?$:0*H)}if(G=Xo(G),J=Xo(J),V=V.slice(),H=G-J){for(H>0?(J=G,L=N):(H=-H,L=V),L.reverse();H--;L.push(0));L.reverse()}for((H=V.length)-(A=N.length)<0&&(L=N,N=V,V=L,A=H),H=0;A;)H=(V[--A]=V[A]+N[A]+H)/xr|0,V[A]=xr===V[A]?0:V[A]%xr;return H&&(V=[H].concat(V),++J),K(P,V,J)},o.precision=o.sd=function(P,A){var L,$,H,G=this;if(null!=P&&P!==!!P)return On(P,1,xi),null==A?A=a:On(A,0,8),ee(new I(G),P,A);if(!(L=G.c))return null;if($=14*(H=L.length-1)+1,H=L[H]){for(;H%10==0;H/=10,$--);for(H=L[0];H>=10;H/=10,$++);}return P&&G.e+1>$&&($=G.e+1),$},o.shiftedBy=function(P){return On(P,-GB,GB),this.times("1e"+P)},o.squareRoot=o.sqrt=function(){var P,A,L,$,H,G=this,J=G.c,V=G.s,N=G.e,q=s+4,z=new I("0.5");if(1!==V||!J||!J[0])return new I(!V||V<0&&(!J||J[0])?NaN:J?G:1/0);if(0==(V=Math.sqrt(+ie(G)))||V==1/0?(((A=Sr(J)).length+N)%2==0&&(A+="0"),V=Math.sqrt(+A),N=Xo((N+1)/2)-(N<0||N%2),L=new I(A=V==1/0?"5e"+N:(A=V.toExponential()).slice(0,A.indexOf("e")+1)+N)):L=new I(V+""),L.c[0])for((V=(N=L.e)+q)<3&&(V=0);;)if(L=z.times((H=L).plus(n(G,H,q,1))),Sr(H.c).slice(0,V)===(A=Sr(L.c)).slice(0,V)){if(L.e0&&Ee>0){for(z=Ce.substr(0,G=Ee%V||V);G0&&(z+=q+Ce.slice(G)),ue&&(z="-"+z)}$=Q?z+(L.decimalSeparator||"")+((N=+L.fractionGroupSize)?Q.replace(new RegExp("\\d{"+N+"}\\B","g"),"$&"+(L.fractionGroupSeparator||"")):Q):z}return(L.prefix||"")+$+(L.suffix||"")},o.toFraction=function(P){var A,L,$,H,G,J,V,N,q,z,Q,ue,Ce=this,Ee=Ce.c;if(null!=P&&(!(V=new I(P)).isInteger()&&(V.c||1!==V.s)||V.lt(r)))throw Error(yo+"Argument "+(V.isInteger()?"out of range: ":"not an integer: ")+ie(V));if(!Ee)return new I(Ce);for(A=new I(r),q=L=new I(r),$=N=new I(r),ue=Sr(Ee),G=A.e=ue.length-Ce.e-1,A.c[0]=yk[(J=G%14)<0?14+J:J],P=!P||V.comparedTo(A)>0?G>0?A:q:V,J=m,m=1/0,V=new I(ue),N.c[0]=0;z=n(V,A,0,1),1!=(H=L.plus(z.times($))).comparedTo(P);)L=$,$=H,q=N.plus(z.times(H=q)),N=H,A=V.minus(z.times(H=A)),V=H;return H=n(P.minus(L),$,0,1),N=N.plus(H.times(q)),L=L.plus(H.times($)),N.s=q.s=Ce.s,Q=n(q,$,G*=2,a).minus(Ce).abs().comparedTo(n(N,L,G,a).minus(Ce).abs())<1?[q,$]:[N,L],m=J,Q},o.toNumber=function(){return+ie(this)},o.toObject=function(){var P=this;return{c:P.c?P.c.slice():null,e:P.e,s:P.s}},o.toPrecision=function(P,A){return null!=P&&On(P,1,xi),R(this,P,A,2)},o.toString=function(P){var A,L=this,$=L.s,H=L.e;return null===H?$?(A="Infinity",$<0&&(A="-"+A)):A="NaN":(null==P?A=H<=l||H>=c?hv(Sr(L.c),H):Ea(Sr(L.c),H,"0"):(On(P,2,T.length,"Base"),A=e(Ea(Sr(L.c),H,"0"),10,P,$,!0)),$<0&&L.c[0]&&(A="-"+A)),A},o.valueOf=o.toJSON=function(){return ie(this)},o._isBigNumber=!0,null!=t&&I.set(t),I}(),tme=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,vk=Math.ceil,wr=Math.floor,yo="[BigNumber Error] ",xr=1e14,GB=9007199254740991,yk=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],Ta=1e7,xi=1e9;function Xo(t){var n=0|t;return t>0||t===n?n:n-1}function Sr(t){for(var n,e,i=1,o=t.length,r=t[0]+"";ic^e?1:-1;for(a=(l=o.length)<(c=r.length)?l:c,s=0;sr[s]^e?1:-1;return l==c?0:l>c^e?1:-1}function On(t,n,e,i){if(te||t!==wr(t))throw Error(yo+(i||"Argument")+("number"==typeof t?te?" out of range: ":" not an integer: ":" not a primitive number: ")+String(t))}function uv(t){var n=t.c.length-1;return Xo(t.e/14)==n&&t.c[n]%2!=0}function hv(t,n){return(t.length>1?t.charAt(0)+"."+t.slice(1):t)+(n<0?"e":"e+")+n}function Ea(t,n,e){var i,o;if(n<0){for(o=e+".";++n;o+=e);t=o+t}else if(++n>(i=t.length)){for(o=e,n-=i;--n;o+=e);t+=o}else n{class t{constructor(e,i){this.apiService=e,this.storageService=i}getNodes(){let e=[];return this.apiService.get("visors-summary").pipe(Se(i=>{i&&i.forEach(l=>{const c=new Ck;c.online=l.online,c.localPk=l.overview.local_pk,c.version=l.overview.build_info.version,c.configVersion=l.config_version,c.os=l.overview.build_info.os,c.arch=l.overview.build_info.arch,c.autoconnectTransports=l.public_autoconnect,c.isPublic=l.is_public,c.buildTag=l.build_tag?l.build_tag:"",c.rewardsAddress=l.reward_address,c.ip=l.overview&&l.overview.local_ip&&l.overview.local_ip.trim()?l.overview.local_ip:null,c.publicIp=l.overview&&l.overview.public_ip&&l.overview.public_ip.trim()?l.overview.public_ip:null,c.isSymmeticNat=l.overview.is_symmetic_nat,l.overview.country_code&&(c.countryCode=l.overview.country_code),l.overview.region_name&&(c.regionName=l.overview.region_name),l.overview.city_name&&(c.cityName=l.overview.city_name),l.overview.latitude&&(c.latitude=l.overview.latitude),l.overview.longitude&&(c.longitude=l.overview.longitude);const f=this.storageService.getLabelInfo(c.localPk);if(c.label=f&&f.label?f.label:this.storageService.getDefaultLabel(c),!c.online)return c.dmsgServerPk="",c.roundTripPing="",void e.push(c);c.health={servicesHealth:l.health.services_health,uptimeTrackerHealth:l.health.uptime_tracker_health,autoconnectHealth:l.health.autoconnect_health,transportabilityHealth:l.health.transportability_health},c.dmsgServerPk=l.dmsg_stats.server_public_key,c.connectedDmsgServers=l.connected_dmsg_servers||[],c.roundTripPing=this.nsToMs(l.dmsg_stats.round_trip),l.dmsg_servers&&Array.isArray(l.dmsg_servers)&&(c.dmsgServers=l.dmsg_servers.map(m=>({pk:m.pk,latency:m.latency||0}))),c.transports=[],l.overview.transports&&l.overview.transports.forEach(m=>{c.transports.push({id:m.id,localPk:m.local_pk,remotePk:m.remote_pk,type:m.type,recv:m.log?m.log.recv:0,sent:m.log?m.log.sent:0,latencyMs:m.latency_ms||0})}),c.apps=[],l.overview.apps&&l.overview.apps.forEach(m=>{c.apps.push({name:m.name,autostart:m.auto_start,port:m.port,status:m.status,detailedStatus:m.detailed_status,args:m.args})}),c.isHypervisor=l.is_hypervisor,e.push(c)});const o=new Map,r=[],s=[];e.forEach(l=>{o.set(l.localPk,l),l.online&&(r.push(l.localPk),s.push(l.ip))}),this.storageService.includeVisibleLocalNodes(r,s);const a=[];return this.storageService.getSavedLocalNodes().forEach(l=>{if(!o.has(l.publicKey)&&!l.hidden){const c=new Ck;c.localPk=l.publicKey;const f=this.storageService.getLabelInfo(l.publicKey);c.label=f&&f.label?f.label:this.storageService.getDefaultLabel(c),c.online=!1,c.dmsgServerPk="",c.roundTripPing="",a.push(c)}o.has(l.publicKey)&&!o.get(l.publicKey).online&&l.hidden&&o.delete(l.publicKey)}),e=[],o.forEach(l=>e.push(l)),e=e.concat(a),e}))}nsToMs(e){let i=new fv(e).dividedBy(1e6);return i=i.isLessThan(10)?i.decimalPlaces(2):i.decimalPlaces(0),i.toString(10)}getNode(e){return this.apiService.get(`visors/${e}/summary`).pipe(Se(i=>{const o=new Ck;o.localPk=i.overview.local_pk,o.version=i.overview.build_info.version,o.configVersion=i.config_version,o.os=i.overview.build_info.os,o.arch=i.overview.build_info.arch,o.secondsOnline=Math.floor(Number.parseFloat(i.uptime)),o.minHops=i.min_hops,o.buildTag=i.build_tag,o.skybianBuildVersion=i.skybian_build_version,o.connectedDmsgServers=i.connected_dmsg_servers||[],o.isSymmeticNat=i.overview.is_symmetic_nat,o.publicIp=i.overview.public_ip,o.autoconnectTransports=i.public_autoconnect,o.isPublic=i.is_public,o.rewardsAddress=i.reward_address,i.overview.country_code&&(o.countryCode=i.overview.country_code),i.overview.region_name&&(o.regionName=i.overview.region_name),i.overview.city_name&&(o.cityName=i.overview.city_name),i.overview.latitude&&(o.latitude=i.overview.latitude),i.overview.longitude&&(o.longitude=i.overview.longitude),o.ip=i.overview.local_ip&&i.overview.local_ip.trim()?i.overview.local_ip:null;const r=this.storageService.getLabelInfo(o.localPk);o.label=r&&r.label?r.label:this.storageService.getDefaultLabel(o),o.health={servicesHealth:i.health.services_health,uptimeTrackerHealth:i.health.uptime_tracker_health,autoconnectHealth:i.health.autoconnect_health,transportabilityHealth:i.health.transportability_health},o.transports=[],i.overview.transports&&i.overview.transports.forEach(a=>{o.transports.push({id:a.id,localPk:a.local_pk,remotePk:a.remote_pk,type:a.type,recv:a.log.recv,sent:a.log.sent,latencyMs:a.latency_ms||0})}),o.persistentTransports=[],i.persistent_transports&&i.persistent_transports.forEach(a=>{o.persistentTransports.push({pk:a.pk,type:a.type})}),o.routes=[],i.routes&&i.routes.forEach(a=>{o.routes.push({key:a.key,rule:a.rule}),a.rule_summary&&(o.routes[o.routes.length-1].ruleSummary={keepAlive:a.rule_summary.keep_alive,ruleType:a.rule_summary.rule_type,keyRouteId:a.rule_summary.key_route_id},a.rule_summary.app_fields&&a.rule_summary.app_fields.route_descriptor&&(o.routes[o.routes.length-1].appFields={routeDescriptor:{dstPk:a.rule_summary.app_fields.route_descriptor.dst_pk,dstPort:a.rule_summary.app_fields.route_descriptor.dst_port,srcPk:a.rule_summary.app_fields.route_descriptor.src_pk,srcPort:a.rule_summary.app_fields.route_descriptor.src_port}}),a.rule_summary.forward_fields&&(o.routes[o.routes.length-1].forwardFields={nextRid:a.rule_summary.forward_fields.next_rid,nextTid:a.rule_summary.forward_fields.next_tid},a.rule_summary.forward_fields.route_descriptor&&(o.routes[o.routes.length-1].forwardFields.routeDescriptor={dstPk:a.rule_summary.forward_fields.route_descriptor.dst_pk,dstPort:a.rule_summary.forward_fields.route_descriptor.dst_port,srcPk:a.rule_summary.forward_fields.route_descriptor.src_pk,srcPort:a.rule_summary.forward_fields.route_descriptor.src_port})),a.rule_summary.intermediary_forward_fields&&(o.routes[o.routes.length-1].intermediaryForwardFields={nextRid:a.rule_summary.intermediary_forward_fields.next_rid,nextTid:a.rule_summary.intermediary_forward_fields.next_tid}))}),o.apps=[],i.overview.apps&&i.overview.apps.forEach(a=>{o.apps.push({name:a.name,status:a.status,port:a.port,autostart:a.auto_start,detailedStatus:a.detailed_status,args:a.args})});let s=!1;return i.dmsg_stats&&(o.dmsgServerPk=i.dmsg_stats.server_public_key,o.roundTripPing=this.nsToMs(i.dmsg_stats.round_trip),s=!0),s||(o.dmsgServerPk="-",o.roundTripPing="-1"),i.dmsg_servers&&Array.isArray(i.dmsg_servers)&&(o.dmsgServers=i.dmsg_servers.map(a=>({pk:a.pk,latency:a.latency||0}))),o.isHypervisor=i.is_hypervisor,o}))}setRewardsAddress(e,i){return this.apiService.put(`visors/${e}/reward`,{reward_address:i})}getRewardsAddress(e){return this.apiService.get(`visors/${e}/reward`)}getRuntimeLogs(e){return this.apiService.get(`visors/${e}/runtime-logs`)}getRuntimeLogsSince(e,i){return this.apiService.get(`visors/${e}/runtime-logs?since=${i}`)}getRuntimeStats(e){return this.apiService.get(`visors/${e}/runtime-stats`)}getHostStats(e){return this.apiService.get(`visors/${e}/host-stats`)}getNetworkView(e=!1){return this.apiService.get("network-view"+(e?"?refresh=true":""))}getRewardRules(){return this.apiService.get("reward-rules",new qo({responseType:qf.Text}))}deleteRewardsAddress(e){return this.apiService.delete(`visors/${e}/reward`)}getProxies(e){return this.apiService.get(`visors/${e}/proxies`)}setProxyEnabled(e,i,o){return this.apiService.post(`visors/${e}/proxies/set`,{kind:i,enable:o})}setProxyUpstream(e,i,o){return this.apiService.post(`visors/${e}/proxies/upstream`,{kind:i,addr:o})}getSkynetPorts(e){return this.apiService.get(`visors/${e}/skynet-ports`)}registerSkynetPort(e,i){return this.apiService.post(`visors/${e}/skynet-ports/register`,{port:i})}deregisterSkynetPort(e,i){return this.apiService.post(`visors/${e}/skynet-ports/deregister`,{port:i})}getForwardedPorts(e){return this.apiService.get(`visors/${e}/forwarded-ports`)}registerForwardedPort(e,i){return this.apiService.post(`visors/${e}/forwarded-ports/register`,i)}updateForwardedPort(e,i){return this.apiService.post(`visors/${e}/forwarded-ports/update`,i)}getSkynetForwards(e){return this.apiService.get(`visors/${e}/skynet-forwards`)}skynetConnect(e,i,o,r,s){return this.apiService.post(`visors/${e}/skynet-forwards/connect`,{network:i,remote_pk:o,remote_port:r,local_port:s})}skynetDisconnect(e,i){return this.apiService.post(`visors/${e}/skynet-forwards/disconnect`,{id:i})}shutdown(e){return this.apiService.post(`visors/${e}/shutdown`)}checkIfUpdating(e){return this.apiService.get(`visors/${e}/update/ws/running`)}checkUpdate(e){let i="stable";return i=localStorage.getItem(dc.Channel)||i,this.apiService.get(`visors/${e}/update/available/${i}`)}update(e){const i={channel:"stable"};if(localStorage.getItem(dc.UseCustomSettings)){const r=localStorage.getItem(dc.Channel);r&&(i.channel=r);const s=localStorage.getItem(dc.Version);s&&(i.version=s);const a=localStorage.getItem(dc.ArchiveURL);a&&(i.archive_url=a);const l=localStorage.getItem(dc.ChecksumsURL);l&&(i.checksums_url=l)}return this.apiService.ws(`visors/${e}/update/ws`,i)}static{this.\u0275fac=function(i){return new(i||t)(ce(zi),ce(ti))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();class ime{}let KB=(()=>{class t{constructor(e,i){this.storageService=e,this.nodeService=i,this.dataSubject=new ki(null),this.lastEmitedData=new ime,this.firstCallToGetDataMade=!1,this.storageService.getRefreshTimeObservable().subscribe(o=>{this.dataRefreshDelay=1e3*o,this.forceRefresh()})}startRequestingData(){return this.firstCallToGetDataMade||this.getData(0),this.dataSubject.asObservable()}stopRequestingData(){this.updateSubscription&&(this.updateSubscription.unsubscribe(),this.firstCallToGetDataMade=!1)}getData(e){this.firstCallToGetDataMade=!0,this.updateSubscription&&this.updateSubscription.unsubscribe(),this.updateSubscription=ae(1).pipe(li(e),ai(()=>{this.lastEmitedData.updating=!0,this.dataSubject.next(this.lastEmitedData)}),li(120),It(()=>this.nodeService.getNodes())).subscribe(i=>{this.lastEmitedData={data:i,error:null,momentOfLastCorrectUpdate:Date.now(),updating:!1},this.dataSubject.next(this.lastEmitedData),this.getData(this.dataRefreshDelay)},i=>{i=Qe(i),this.lastEmitedData={data:this.lastEmitedData.data,error:i,momentOfLastCorrectUpdate:this.lastEmitedData.momentOfLastCorrectUpdate,updating:!1},this.dataSubject.next(this.lastEmitedData),this.getData(rt.connectionRetryDelay)})}forceRefresh(){this.getData(0)}static{this.\u0275fac=function(i){return new(i||t)(ce(ti),ce(Io))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();function ome(t,n){if(1&t){const e=oe();h(0,"button",3),F("click",function(){const o=j(e).$implicit;return U(v().closePopup(o))}),B(1,"img",4),h(2,"div",5),p(3),u()()}if(2&t){const e=n.$implicit;d(),C("src","assets/img/lang/"+e.iconName,mo),d(2),M(e.name)}}let YB=(()=>{class t{static openDialog(e){const i=new nn;return i.autoFocus=!1,i.width=rt.mediumModalWidth,e.open(t,i)}constructor(e,i){this.dialogRef=e,this.languageService=i,this.languages=[]}ngOnInit(){this.subscription=this.languageService.languages.subscribe(e=>{this.languages=e})}ngOnDestroy(){this.subscription.unsubscribe()}closePopup(e=null){e&&this.languageService.changeLanguage(e.code),this.dialogRef.close()}static{this.\u0275fac=function(i){return new(i||t)(O(Bt),O($b))}}static{this.\u0275cmp=re({type:t,selectors:[["app-select-language"]],standalone:!1,decls:5,vars:4,consts:[[3,"headline","dialog"],[1,"options-container"],["mat-button","","color","accent",1,"grey-button-background"],["mat-button","","color","accent",1,"grey-button-background",3,"click"],[3,"src"],[1,"label"]],template:function(i,o){1&i&&(h(0,"app-dialog",0),b(1,"translate"),h(2,"div",1),ve(3,ome,4,2,"button",2,Fe),u()()),2&i&&(C("headline",y(1,2,"language.title"))("dialog",o.dialogRef),d(3),ye(o.languages))},dependencies:[Pn,gn,xe],styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}.options-container[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:118px;height:auto!important;margin:20px;font-size:.7rem;line-height:unset;padding:0!important;color:unset}.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] .mdc-button__label{width:100%}@media(max-width:767px){.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:90px;font-size:.6rem;margin:6px}}.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:64px;height:64px;margin:10px 0}@media(max-width:767px){.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:48px;height:48px;margin:7px 0}}.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{color:#202226!important;background-color:#ffffff40;padding:4px 10px}@media(max-width:767px){.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{padding:4px 5px}}"]})}}return t})();function rme(t,n){1&t&&B(0,"img",1),2&t&&C("src","assets/img/lang/"+v().language.iconName,mo)}let sme=(()=>{class t{constructor(e,i){this.languageService=e,this.dialog=i}ngOnInit(){this.subscription=this.languageService.currentLanguage.subscribe(e=>{this.language=e})}ngOnDestroy(){this.subscription.unsubscribe()}openLanguageWindow(){YB.openDialog(this.dialog)}static{this.\u0275fac=function(i){return new(i||t)(O($b),O(Ot))}}static{this.\u0275cmp=re({type:t,selectors:[["app-lang-button"]],standalone:!1,decls:3,vars:4,consts:[["mat-button","",1,"lang-button","subtle-transparent-button",3,"click","matTooltip"],[1,"flag",3,"src"]],template:function(i,o){1&i&&(h(0,"button",0),b(1,"translate"),F("click",function(){return o.openLanguageWindow()}),x(2,rme,1,1,"img",1),u()),2&i&&(C("matTooltip",y(1,2,"language.title")),d(2),S(o.language?2:-1))},dependencies:[Pn,Kt,xe],styles:[".lang-button[_ngcontent-%COMP%]{height:40px;background-color:#f8f9f9;border-radius:100%;padding:0;line-height:1;padding:0!important}.lang-button[_ngcontent-%COMP%] .flag[_ngcontent-%COMP%]{width:20px;height:20px}"]})}}return t})();const ame=t=>({"element-disabled":t});function lme(t,n){if(1&t){const e=oe();h(0,"div",8),F("click",function(){return j(e),U(v().configure())}),p(1),b(2,"translate"),u()}2&t&&(d(),M(y(2,1,"login.initial-config")))}let XB=(()=>{class t extends pn{constructor(e,i,o,r,s,a){super(),this.authService=e,this.router=i,this.snackbarService=o,this.dialog=r,this.route=s,this.multipleNodeDataService=a,this.loading=!1,this.isForVpn=!1,this.vpnKey="",this.userExists=!0}ngOnInit(){return this.multipleNodeDataService.stopRequestingData(),this.routeSubscription=this.route.paramMap.subscribe(e=>{this.vpnKey=e.get("key"),this.isForVpn=-1!==window.location.href.indexOf("vpnlogin"),this.verificationSubscription=this.authService.checkLogin().subscribe(i=>{i!==ka.NotLogged&&(Xr.currentInstance.processLoginDone(),setTimeout(()=>{this.router.navigate(this.isForVpn?["vpn",this.vpnKey,"status"]:["nodes"],{replaceUrl:!0})},5))})}),this.form=new nk({password:new lu("",Ne.required)}),this.authService.userExists().subscribe(e=>this.userExists=e,()=>this.userExists=!0),super.ngOnInit()}ngOnDestroy(){this.loginSubscription&&this.loginSubscription.unsubscribe(),this.verificationSubscription.unsubscribe(),this.routeSubscription.unsubscribe()}login(){!this.form.valid||this.loading||(this.loading=!0,this.loginSubscription=this.authService.login(this.form.get("password").value).subscribe(()=>this.onLoginSuccess(),e=>this.onLoginError(e)))}configure(){eme.openDialog(this.dialog)}onLoginSuccess(){Xr.currentInstance.processLoginDone(),setTimeout(()=>{this.router.navigate(this.isForVpn?["vpn",this.vpnKey,"status"]:["nodes"],{replaceUrl:!0})})}onLoginError(e){e=Qe(e),this.loading=!1,this.snackbarService.showError(e.originalError&&401===e.originalError.status?"login.incorrect-password":e.translatableErrorMsg)}static{this.\u0275fac=function(i){return new(i||t)(O(Yf),O(vt),O(ct),O(Ot),O(Ai),O(KB))}}static{this.\u0275cmp=re({type:t,selectors:[["app-login"]],standalone:!1,features:[be],decls:12,vars:9,consts:[[1,"w-100","h-100","d-flex","justify-content-center"],[1,"row","main-container"],["src","/assets/img/logo-v.png",1,"logo"],[1,"mt-5",3,"formGroup"],[1,"login-input",3,"ngClass"],["type","password","formControlName","password","autocomplete","off",3,"keydown.enter","placeholder"],[3,"click","disabled"],["class","config-link",3,"click",4,"ngIf"],[1,"config-link",3,"click"]],template:function(i,o){1&i&&(h(0,"div",0),B(1,"app-lang-button"),h(2,"div",1),B(3,"img",2),h(4,"form",3)(5,"div",4)(6,"input",5),b(7,"translate"),F("keydown.enter",function(){return o.login()}),u(),h(8,"button",6),F("click",function(){return o.login()}),h(9,"mat-icon"),p(10,"chevron_right"),u()()()(),it(11,lme,3,3,"div",7),u()()),2&i&&(d(4),C("formGroup",o.form),d(),C("ngClass",se(7,ame,o.loading)),d(),C("placeholder",y(7,5,"login.password")),d(2),C("disabled",!o.form.valid||o.loading),d(3),C("ngIf",!o.userExists))},dependencies:[$t,tf,xn,Gt,qt,wn,on,mn,We,sme,xe],styles:['.cursor-pointer[_ngcontent-%COMP%], .config-link[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media(max-width:767px),(min-width:992px)and (max-width:1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media(max-width:767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}app-lang-button[_ngcontent-%COMP%]{position:fixed;right:10px;top:10px;z-index:10}.main-container[_ngcontent-%COMP%]{z-index:1;height:100%;flex-direction:column;align-items:center;justify-content:center}.logo[_ngcontent-%COMP%]{width:170px}.login-input[_ngcontent-%COMP%]{height:35px;width:300px;overflow:hidden;border-radius:10px;box-shadow:0 3px 8px #0000001a,0 6px 20px #0000001a;display:flex}.login-input[_ngcontent-%COMP%] input[type=password][_ngcontent-%COMP%]{background:#fff;width:calc(100% - 35px);height:100%;font-size:.875rem;border:none;padding-left:10px;padding-right:10px}.login-input[_ngcontent-%COMP%] input[type=password][_ngcontent-%COMP%]:focus{outline:none}.login-input[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{background:#fff;color:#202226;width:35px;height:35px;line-height:35px;border:none;display:flex;cursor:pointer;align-items:center}.login-input[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:disabled{color:#777}.config-link[_ngcontent-%COMP%]{color:#f8f9f9;font-size:.7rem;margin-top:20px}']})}}return t})();const cme=["firstInput"];let wk=(()=>{class t{static openDialog(e,i){const o=new nn;return o.data=i,o.autoFocus=!1,o.width=rt.smallModalWidth,e.open(t,o)}constructor(e,i,o,r,s){this.dialogRef=e,this.data=i,this.formBuilder=o,this.storageService=r,this.snackbarService=s}ngOnInit(){this.form=this.formBuilder.group({label:[this.data.label]})}ngAfterViewInit(){setTimeout(()=>this.firstInput.nativeElement.focus())}save(){const e=this.form.get("label").value.trim();e!==this.data.label?(this.storageService.saveLabel(this.data.id,e,this.data.identifiedElementType),e?this.snackbarService.showDone("edit-label.done"):this.snackbarService.showWarning("edit-label.label-removed-warning"),this.dialogRef.close(!0)):this.dialogRef.close()}static{this.\u0275fac=function(i){return new(i||t)(O(Bt),O(En),O(di),O(ti),O(ct))}}static{this.\u0275cmp=re({type:t,selectors:[["app-edit-label"]],viewQuery:function(i,o){if(1&i&&ot(cme,5),2&i){let r;he(r=fe())&&(o.firstInput=r.first)}},standalone:!1,decls:13,vars:11,consts:[["firstInput",""],[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","label","maxlength","66","matInput",""],["color","primary",1,"float-right",3,"action"]],template:function(i,o){1&i&&(h(0,"app-dialog",1),b(1,"translate"),h(2,"form",2)(3,"mat-form-field")(4,"div",3)(5,"label",4),p(6),b(7,"translate"),u(),B(8,"input",5,0),u()()(),h(10,"app-button",6),F("action",function(){return o.save()}),p(11),b(12,"translate"),u()()),2&i&&(C("headline",y(1,5,"labeled-element.edit-label"))("dialog",o.dialogRef),d(2),C("formGroup",o.form),d(4),M(y(7,7,"edit-label.label")),d(5),M(y(12,9,"common.save")))},dependencies:[xn,Gt,qt,wn,wi,on,mn,sn,In,ui,gn,xe],encapsulation:2})}}return t})();const dme=["cancelButton"],ume=["confirmButton"];function hme(t,n){if(1&t&&(h(0,"div"),p(1),b(2,"translate"),u()),2&t){const e=n.$implicit;d(),E(" - ",y(2,1,e)," ")}}function fme(t,n){if(1&t&&(h(0,"div",4),ve(1,hme,3,3,"div",null,Fe),u()),2&t){const e=v();d(),ye(e.state!==e.confirmationStates.Done?e.data.list:e.doneList)}}function pme(t,n){if(1&t&&(h(0,"div",3),p(1),b(2,"translate"),u()),2&t){const e=v();d(),E(" ",y(2,1,e.data.lowerText)," ")}}function mme(t,n){if(1&t){const e=oe();h(0,"app-button",8,1),F("action",function(){return j(e),U(v().closeModal())}),p(2),b(3,"translate"),u()}if(2&t){const e=v();d(2),E(" ",y(3,1,e.data.cancelButtonText)," ")}}var mu=function(t){return t.Asking="Asking",t.Processing="Processing",t.Done="Done",t}(mu||{});let gme=(()=>{class t{constructor(e,i){this.dialogRef=e,this.data=i,this.disableDismiss=!1,this.state=mu.Asking,this.confirmationStates=mu,this.operationAccepted=new we,this.disableDismiss=!!i.disableDismiss,this.dialogRef.disableClose=this.disableDismiss}ngAfterViewInit(){this.data.cancelButtonText?setTimeout(()=>this.cancelButton.focus()):setTimeout(()=>this.confirmButton.focus())}ngOnDestroy(){this.operationAccepted.complete()}closeModal(){this.dialogRef.close()}sendOperationAcceptedEvent(){this.operationAccepted.emit()}showAsking(e){e&&(this.data=e),this.state=mu.Asking,this.confirmButton.reset(),this.disableDismiss=!1,this.dialogRef.disableClose=this.disableDismiss,this.cancelButton&&this.cancelButton.showEnabled()}showProcessing(){this.state=mu.Processing,this.disableDismiss=!0,this.confirmButton.showLoading(),this.cancelButton&&this.cancelButton.showDisabled()}showDone(e,i,o=null){this.doneTitle=e||this.data.headerText,this.doneText=i,this.doneList=o,this.confirmButton.reset(),setTimeout(()=>this.confirmButton.focus()),this.state=mu.Done,this.dialogRef.disableClose=!1,this.disableDismiss=!1}static{this.\u0275fac=function(i){return new(i||t)(O(Bt),O(En))}}static{this.\u0275cmp=re({type:t,selectors:[["app-confirmation"]],viewQuery:function(i,o){if(1&i&&ot(dme,5)(ume,5),2&i){let r;he(r=fe())&&(o.cancelButton=r.first),he(r=fe())&&(o.confirmButton=r.first)}},outputs:{operationAccepted:"operationAccepted"},standalone:!1,decls:13,vars:14,consts:[["confirmButton",""],["cancelButton",""],[3,"headline","dialog","disableDismiss"],[1,"text-container"],[1,"list-container"],[1,"buttons"],["color","accent"],["color","primary",3,"action"],["color","accent",3,"action"]],template:function(i,o){1&i&&(h(0,"app-dialog",2),b(1,"translate"),h(2,"div",3),p(3),b(4,"translate"),u(),x(5,fme,3,0,"div",4),x(6,pme,3,3,"div",3),h(7,"div",5),x(8,mme,4,3,"app-button",6),h(9,"app-button",7,0),F("action",function(){return o.state===o.confirmationStates.Asking?o.sendOperationAcceptedEvent():o.closeModal()}),p(11),b(12,"translate"),u()()()),2&i&&(C("headline",y(1,8,o.state!==o.confirmationStates.Done?o.data.headerText:o.doneTitle))("dialog",o.dialogRef)("disableDismiss",o.disableDismiss),d(3),E(" ",y(4,10,o.state!==o.confirmationStates.Done?o.data.text:o.doneText)," "),d(2),S(o.data.list&&o.state!==o.confirmationStates.Done||o.doneList&&o.state===o.confirmationStates.Done?5:-1),d(),S(o.data.lowerText&&o.state!==o.confirmationStates.Done?6:-1),d(2),S(o.data.cancelButtonText&&o.state!==o.confirmationStates.Done?8:-1),d(3),E(" ",y(12,12,o.state!==o.confirmationStates.Done?o.data.confirmButtonText:"confirmation.close")," "))},dependencies:[ui,gn,xe],styles:[".text-container[_ngcontent-%COMP%]{word-break:break-word}.list-container[_ngcontent-%COMP%]{font-size:14px;margin:10px;color:#215f9e;word-break:break-word}.buttons[_ngcontent-%COMP%]{margin-top:15px;text-align:right}.buttons[_ngcontent-%COMP%] app-button[_ngcontent-%COMP%]{margin-left:5px}"]})}}return t})();class Rt{static createConfirmationDialog(n,e){const i={text:e,headerText:"confirmation.header-text",confirmButtonText:"confirmation.confirm-button",cancelButtonText:"confirmation.cancel-button",disableDismiss:!1},o=new nn;return o.data=i,o.autoFocus=!1,o.width=rt.smallModalWidth,n.open(gme,o)}static checkIfTagIsUpdatable(n){return!(null==n||n.toUpperCase()==="Windows".toUpperCase()||n.toUpperCase()==="Win".toUpperCase()||n.toUpperCase()==="Mac".toUpperCase()||n.toUpperCase()==="Macos".toUpperCase()||n.toUpperCase()==="Mac OS".toUpperCase()||n.toUpperCase()==="Darwin".toUpperCase())}static checkIfTagCanOpenterminal(n){return!(null==n||n.toUpperCase()==="Windows".toUpperCase()||n.toUpperCase()==="Win".toUpperCase())}static checkIfIpValidOrEmpty(n){if(!n)return!0;const e=n.split(".");if(4!==e.length)return!1;for(const i of e){const o=Number.parseInt(i,10);if(isNaN(o)||o+""!==i||o<0||o>255)return!1}return!0}}function _me(t,n){if(1&t&&(h(0,"mat-icon",4),p(1),u()),2&t){const e=v().$implicit;C("inline",!0),d(),M(e.icon)}}function bme(t,n){if(1&t){const e=oe();h(0,"div",1)(1,"button",2),F("click",function(){const o=j(e).$index;return U(v().closePopup(o+1))}),h(2,"div",3),x(3,_me,2,2,"mat-icon",4),h(4,"span"),p(5),b(6,"translate"),u()()()()}if(2&t){const e=n.$implicit;d(3),S(e.icon?3:-1),d(2),M(y(6,2,e.label))}}let ao=(()=>{class t{static openDialog(e,i,o){const r=new nn;return r.data={options:i,title:o},r.autoFocus=!1,r.width=rt.smallModalWidth,e.open(t,r)}constructor(e,i){this.data=e,this.dialogRef=i}closePopup(e){this.dialogRef.close(e)}static{this.\u0275fac=function(i){return new(i||t)(O(En),O(Bt))}}static{this.\u0275cmp=re({type:t,selectors:[["app-select-option"]],standalone:!1,decls:4,vars:5,consts:[[3,"headline","dialog","includeVerticalMargins"],[1,"options-list-button-container"],["mat-button","",1,"grey-button-background",3,"click"],[1,"internal-container"],[1,"icon",3,"inline"]],template:function(i,o){1&i&&(h(0,"app-dialog",0),b(1,"translate"),ve(2,bme,7,4,"div",1,Fe),u()),2&i&&(C("headline",y(1,3,o.data.title))("dialog",o.dialogRef)("includeVerticalMargins",!1),d(2),ye(o.data.options))},dependencies:[Pn,We,gn,xe],styles:[".icon[_ngcontent-%COMP%]{font-size:14px;width:14px;line-height:1}.grey-button-background[_ngcontent-%COMP%]{justify-content:left!important;min-height:45px}"]})}}return t})();var Sn=function(t){return t.TextInput="TextInput",t.Select="Select",t}(Sn||{});class Dt{constructor(n,e,i,o){this.properties=n,this.label=e,this.sortingMode=i,this.labelProperties=o}get id(){return this.properties.join("")}}var st=function(t){return t.Text="Text",t.Number="Number",t.NumberReversed="NumberReversed",t.Boolean="Boolean",t}(st||{});class gu{get sortingArrow(){return this.sortReverse?"keyboard_arrow_up":"keyboard_arrow_down"}get currentSortingColumn(){return this.sortBy}get sortingInReverseOrder(){return this.sortReverse}get dataSorted(){return this.dataUpdatedSubject.asObservable()}get currentlySortingByLabel(){return this.sortByLabel}constructor(n,e,i,o,r,s){this.dialog=n,this.translateService=e,this.storageService=i,this.sortReverse=!1,this.sortByLabel=!1,this.tieBreakerColumnIndex=null,this.columnStorageKeyPrefix="col_",this.orderStorageKeyPrefix="order_",this.labelStorageKeyPrefix="label_",this.dataUpdatedSubject=new me,this.sortableColumns=o,this.id=s,this.defaultColumnIndex=r,this.sortBy=o[r];const a=this.storageService.getDataForHv(this.columnStorageKeyPrefix+s);if(a){const l=o.find(c=>c.id===a);l&&(this.sortBy=l)}this.sortReverse="true"===this.storageService.getDataForHv(this.orderStorageKeyPrefix+s),this.sortByLabel="true"===this.storageService.getDataForHv(this.labelStorageKeyPrefix+s)}dispose(){this.dataUpdatedSubject.complete()}setTieBreakerColumnIndex(n){this.tieBreakerColumnIndex=n}setData(n){this.data=n,this.sortData()}changeSortingOrder(n){if(this.sortBy===n||n.labelProperties)if(n.labelProperties){const e=[{label:this.translateService.instant("tables.sort-by-value")},{label:this.translateService.instant("tables.sort-by-value")+" "+this.translateService.instant("tables.inverted-order")},{label:this.translateService.instant("tables.sort-by-label")},{label:this.translateService.instant("tables.sort-by-label")+" "+this.translateService.instant("tables.inverted-order")}];ao.openDialog(this.dialog,e,"tables.title").afterClosed().subscribe(i=>{i&&this.changeSortingParams(n,i>2,i%2==0)})}else this.sortReverse=!this.sortReverse,this.storageService.setDataForHv(this.orderStorageKeyPrefix+this.id,String(this.sortReverse)),this.sortData();else this.changeSortingParams(n,!1,!1)}changeSortingParams(n,e,i){this.sortBy=n,this.sortByLabel=e,this.sortReverse=i,this.storageService.setDataForHv(this.columnStorageKeyPrefix+this.id,n.id),this.storageService.setDataForHv(this.orderStorageKeyPrefix+this.id,String(this.sortReverse)),this.storageService.setDataForHv(this.labelStorageKeyPrefix+this.id,String(this.sortByLabel)),this.sortData()}openSortingOrderModal(){const n=[],e=[];this.sortableColumns.forEach(i=>{const o=this.translateService.instant(i.label);n.push({label:o}),e.push({sortBy:i,sortReverse:!1,sortByLabel:!1}),n.push({label:o+" "+this.translateService.instant("tables.inverted-order")}),e.push({sortBy:i,sortReverse:!0,sortByLabel:!1}),i.labelProperties&&(n.push({label:o+" "+this.translateService.instant("tables.label")}),e.push({sortBy:i,sortReverse:!1,sortByLabel:!0}),n.push({label:o+" "+this.translateService.instant("tables.label")+" "+this.translateService.instant("tables.inverted-order")}),e.push({sortBy:i,sortReverse:!0,sortByLabel:!0}))}),ao.openDialog(this.dialog,n,"tables.title").afterClosed().subscribe(i=>{i&&this.changeSortingParams(e[i-1].sortBy,e[i-1].sortByLabel,e[i-1].sortReverse)})}sortData(){this.data&&(this.data.sort((n,e)=>{let i=this.getSortResponse(this.sortBy,n,e,!0);return 0===i&&null!==this.tieBreakerColumnIndex&&this.sortableColumns[this.tieBreakerColumnIndex]!==this.sortBy&&(i=this.getSortResponse(this.sortableColumns[this.tieBreakerColumnIndex],n,e,!1)),0===i&&this.sortableColumns[this.defaultColumnIndex]!==this.sortBy&&(i=this.getSortResponse(this.sortableColumns[this.defaultColumnIndex],n,e,!1)),i}),this.dataUpdatedSubject.next())}getSortResponse(n,e,i,o){let s=e,a=i;(this.sortByLabel&&o&&n.labelProperties?n.labelProperties:n.properties).forEach(f=>{s=s[f],a=a[f]});const l=this.sortByLabel&&o?st.Text:n.sortingMode;let c=0;return l===st.Text?c=this.sortReverse?a.localeCompare(s):s.localeCompare(a):l===st.NumberReversed?c=this.sortReverse?s-a:a-s:l===st.Number?c=this.sortReverse?a-s:s-a:l===st.Boolean&&(s&&!a?c=-1:!s&&a&&(c=1),c*=this.sortReverse?-1:1),c}}let Cme=(()=>{class t{_animationsDisabled=ci();state="unchecked";disabled=!1;appearance="full";constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["mat-pseudo-checkbox"]],hostAttrs:[1,"mat-pseudo-checkbox"],hostVars:12,hostBindings:function(i,o){2&i&&Ie("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",o._animationsDisabled)},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-minimal.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-pseudo-checkbox-minimal-selected-checkmark-color, var(--mat-sys-primary))}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full{border-color:var(--mat-pseudo-checkbox-full-unselected-icon-color, var(--mat-sys-on-surface-variant));border-width:2px;border-style:solid}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-disabled{border-color:var(--mat-pseudo-checkbox-full-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate{background-color:var(--mat-pseudo-checkbox-full-selected-icon-color, var(--mat-sys-primary));border-color:rgba(0,0,0,0)}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-pseudo-checkbox-full-selected-checkmark-color, var(--mat-sys-on-primary))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background-color:var(--mat-pseudo-checkbox-full-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-pseudo-checkbox-full-disabled-selected-checkmark-color, var(--mat-sys-surface))}.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}\n'],encapsulation:2,changeDetection:0})}return t})();const wme=["text"],xme=[[["mat-icon"]],"*"],Sme=["mat-icon","*"];function kme(t,n){if(1&t&&B(0,"mat-pseudo-checkbox",1),2&t){const e=v();C("disabled",e.disabled)("state",e.selected?"checked":"unchecked")}}function Dme(t,n){1&t&&B(0,"mat-pseudo-checkbox",3),2&t&&C("disabled",v().disabled)}function Mme(t,n){if(1&t&&(h(0,"span",4),p(1),u()),2&t){const e=v();d(),E("(",e.group.label,")")}}const ZB=new Z("MAT_OPTION_PARENT_COMPONENT"),QB=new Z("MatOptgroup");class Tme{source;isUserInput;constructor(n,e=!1){this.source=n,this.isUserInput=e}}let Qr=(()=>{class t{_element=D(Re);_changeDetectorRef=D(Jt);_parent=D(ZB,{optional:!0});group=D(QB,{optional:!0});_signalDisableRipple=!1;_selected=!1;_active=!1;_mostRecentViewValue="";get multiple(){return this._parent&&this._parent.multiple}get selected(){return this._selected}value;id=D(ni).getId("mat-option-");get disabled(){return this.group&&this.group.disabled||this._disabled()}set disabled(e){this._disabled.set(e)}_disabled=yt(!1);get disableRipple(){return this._signalDisableRipple?this._parent.disableRipple():!!this._parent?.disableRipple}get hideSingleSelectionIndicator(){return!(!this._parent||!this._parent.hideSingleSelectionIndicator)}onSelectionChange=new we;_text;_stateChanges=new me;constructor(){const e=D(zo);e.load(tu),e.load(gS),this._signalDisableRipple=!!this._parent&&El(this._parent.disableRipple)}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)&&!yr(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 Tme(this,e))}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["mat-option"]],viewQuery:function(i,o){if(1&i&&ot(wme,7),2&i){let r;he(r=fe())&&(o._text=r.first)}},hostAttrs:["role","option",1,"mat-mdc-option","mdc-list-item"],hostVars:11,hostBindings:function(i,o){1&i&&F("click",function(){return o._selectViaInteraction()})("keydown",function(s){return o._handleKeydown(s)}),2&i&&(ur("id",o.id),$e("aria-selected",o.selected)("aria-disabled",o.disabled.toString()),Ie("mdc-list-item--selected",o.selected)("mat-mdc-option-multiple",o.multiple)("mat-mdc-option-active",o.active)("mdc-list-item--disabled",o.disabled))},inputs:{value:"value",id:"id",disabled:[2,"disabled","disabled",De]},outputs:{onSelectionChange:"onSelectionChange"},exportAs:["matOption"],ngContentSelectors:Sme,decls:8,vars:5,consts:[["text",""],["aria-hidden","true",1,"mat-mdc-option-pseudo-checkbox",3,"disabled","state"],[1,"mdc-list-item__primary-text"],["state","checked","aria-hidden","true","appearance","minimal",1,"mat-mdc-option-pseudo-checkbox",3,"disabled"],[1,"cdk-visually-hidden"],["aria-hidden","true","mat-ripple","",1,"mat-mdc-option-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled"]],template:function(i,o){1&i&&(yi(xme),x(0,kme,1,2,"mat-pseudo-checkbox",1),Pt(1),h(2,"span",2,0),Pt(4,1),u(),x(5,Dme,1,1,"mat-pseudo-checkbox",3),x(6,Mme,2,1,"span",4),B(7,"div",5)),2&i&&(S(o.multiple?0:-1),d(5),S(o.multiple||!o.selected||o.hideSingleSelectionIndicator?-1:5),d(),S(o.group&&o.group._inert?6:-1),d(),C("matRippleTrigger",o._getHostElement())("matRippleDisabled",o.disabled||o.disableRipple))},dependencies:[Cme,eu],styles:['.mat-mdc-option{-webkit-user-select:none;user-select:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;min-height:48px;padding:0 16px;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);color:var(--mat-option-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-option-label-text-font, var(--mat-sys-label-large-font));line-height:var(--mat-option-label-text-line-height, var(--mat-sys-label-large-line-height));font-size:var(--mat-option-label-text-size, var(--mat-sys-body-large-size));letter-spacing:var(--mat-option-label-text-tracking, var(--mat-sys-label-large-tracking));font-weight:var(--mat-option-label-text-weight, var(--mat-sys-body-large-weight))}.mat-mdc-option:hover:not(.mdc-list-item--disabled){background-color:var(--mat-option-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}.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, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent));outline:0}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled):not(.mat-mdc-option-active,.mat-mdc-option-multiple,:focus,:hover){background-color:var(--mat-option-selected-state-layer-color, var(--mat-sys-secondary-container))}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled):not(.mat-mdc-option-active,.mat-mdc-option-multiple,:focus,:hover) .mdc-list-item__primary-text{color:var(--mat-option-selected-state-label-text-color, var(--mat-sys-on-secondary-container))}.mat-mdc-option .mat-pseudo-checkbox{--mat-pseudo-checkbox-minimal-selected-checkmark-color: var(--mat-option-selected-state-label-text-color, var(--mat-sys-on-secondary-container))}.mat-mdc-option.mdc-list-item{align-items:center;background:rgba(0,0,0,0)}.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}@media(forced-colors: active){.mat-mdc-option.mdc-list-item--selected:not(:has(.mat-mdc-option-pseudo-checkbox))::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}[dir=rtl] .mat-mdc-option.mdc-list-item--selected:not(:has(.mat-mdc-option-pseudo-checkbox))::after{right:auto;left:16px}}.mat-mdc-option-multiple{--mat-list-list-item-selected-container-color: var(--mat-list-list-item-container-color, transparent)}.mat-mdc-option-active .mat-focus-indicator::before{content:""}\n'],encapsulation:2,changeDetection:0})}return t})();class JB{_items;_activeItemIndex=yt(-1);_activeItem=yt(null);_wrap=!1;_typeaheadSubscription=pt.EMPTY;_itemChangesSubscription;_vertical=!0;_horizontal=null;_allowedModifierKeys=[];_homeAndEnd=!1;_pageUpAndDown={enabled:!1,delta:10};_effectRef;_typeahead;_skipPredicateFn=n=>n.disabled;constructor(n,e){this._items=n,n instanceof id?this._itemChangesSubscription=n.changes.subscribe(i=>this._itemsChanged(i.toArray())):El(n)&&(this._effectRef=fm(()=>this._itemsChanged(n()),{injector:e}))}tabOut=new me;change=new me;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){this._typeaheadSubscription.unsubscribe();const e=this._getItemsArray();return this._typeahead=new NB(e,{debounceInterval:"number"==typeof n?n:void 0,skipPredicate:i=>this._skipPredicateFn(i)}),this._typeaheadSubscription=this._typeahead.selectedItem.subscribe(i=>{this.setActiveItem(i)}),this}cancelTypeahead(){return this._typeahead?.reset(),this}withHomeAndEnd(n=!0){return this._homeAndEnd=n,this}withPageUpDown(n=!0,e=10){return this._pageUpAndDown={enabled:n,delta:e},this}setActiveItem(n){const e=this._activeItem();this.updateActiveItem(n),this._activeItem()!==e&&this.change.next(this._activeItemIndex())}onKeydown(n){const e=n.keyCode,o=["altKey","ctrlKey","metaKey","shiftKey"].every(r=>!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,s=this._getItemsArray().length;this._setActiveItemByIndex(r-1&&i!==this._activeItemIndex()&&(this._activeItemIndex.set(i),this._typeahead?.setCurrentSelectedItemIndex(i))}}}class Ime extends JB{setActiveItem(n){this.activeItem&&this.activeItem.setInactiveStyles(),super.setActiveItem(n),this.activeItem&&this.activeItem.setActiveStyles()}}class Ome{_multiple;_emitChanges;compareWith;_selection=new Set;_deselectedToEmit=[];_selectedToEmit=[];_selected=null;get selected(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected}changed=new me;constructor(n=!1,e,i=!0,o){this._multiple=n,this._emitChanges=i,this.compareWith=o,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.map(r=>this._getConcreteValue(r)));n.forEach(r=>this._markSelected(r)),e.filter(r=>!i.has(this._getConcreteValue(r,i))).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,e){if(this.compareWith){e=e??this._selection;for(let i of e)if(this.compareWith(n,i))return i;return n}return n}}let Ame=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({imports:[ii]})}return t})(),eV=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({imports:[IS,Ame,Qr,ii]})}return t})();const Rme=["trigger"],Fme=["panel"],Nme=[[["mat-select-trigger"]],"*"],Lme=["mat-select-trigger","*"];function Bme(t,n){if(1&t&&(h(0,"span",4),p(1),u()),2&t){const e=v();d(),M(e.placeholder)}}function Vme(t,n){1&t&&Pt(0)}function Hme(t,n){if(1&t&&(h(0,"span",11),p(1),u()),2&t){const e=v(2);d(),M(e.triggerValue)}}function jme(t,n){if(1&t&&(h(0,"span",5),x(1,Vme,1,0)(2,Hme,2,1,"span",11),u()),2&t){const e=v();d(),S(e.customTrigger?1:2)}}function Ume(t,n){if(1&t){const e=oe();h(0,"div",12,1),F("keydown",function(o){return j(e),U(v()._handleKeydown(o))}),Pt(2,1),u()}if(2&t){const e=v();Ze(e.panelClass),Ie("mat-select-panel-animations-enabled",!e._animationsDisabled)("mat-primary","primary"===(null==e._parentFormField?null:e._parentFormField.color))("mat-accent","accent"===(null==e._parentFormField?null:e._parentFormField.color))("mat-warn","warn"===(null==e._parentFormField?null:e._parentFormField.color))("mat-undefined",!(null!=e._parentFormField&&e._parentFormField.color)),$e("id",e.id+"-panel")("aria-multiselectable",e.multiple)("aria-label",e.ariaLabel||null)("aria-labelledby",e._getPanelAriaLabelledby())}}const zme=new Z("mat-select-scroll-strategy",{providedIn:"root",factory:()=>{const t=D(He);return()=>Bf(t)}}),$me=new Z("MAT_SELECT_CONFIG"),tV=new Z("MatSelectTrigger");class Wme{source;value;constructor(n,e){this.source=n,this.value=e}}let Pa=(()=>{class t{_viewportRuler=D(qd);_changeDetectorRef=D(Jt);_elementRef=D(Re);_dir=D(br,{optional:!0});_idGenerator=D(ni);_renderer=D(Qn);_parentFormField=D(fk,{optional:!0});ngControl=D(Zr,{self:!0,optional:!0});_liveAnnouncer=D(d4);_defaultOptions=D($me,{optional:!0});_animationsDisabled=ci();_popoverLocation;_initialized=new me;_cleanupDetach;options;optionGroups;customTrigger;_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"}];_scrollOptionIntoView(e){const i=this.options.toArray()[e];if(i){const o=this.panel.nativeElement,r=function Eme(t,n,e){if(e.length){let i=n.toArray(),o=e.toArray(),r=0;for(let s=0;se+i?Math.max(0,t-i+n):e}(s.offsetTop,s.offsetHeight,o.scrollTop,o.offsetHeight)}}_positioningSettled(){this._scrollOptionIntoView(this._keyManager.activeItemIndex||0)}_getChangeEvent(e){return new Wme(this,e)}_scrollStrategyFactory=D(zme);_panelOpen=!1;_compareWith=(e,i)=>e===i;_uid=this._idGenerator.getId("mat-select-");_triggerAriaLabelledBy=null;_previousControl;_destroy=new me;_errorStateTracker;stateChanges=new me;disableAutomaticLabeling=!0;userAriaDescribedBy;_selectionModel;_keyManager;_preferredOverlayOrigin;_overlayWidth;_onChange=()=>{};_onTouched=()=>{};_valueId=this._idGenerator.getId("mat-select-value-");_scrollStrategy;_overlayPanelClass=this._defaultOptions?.overlayPanelClass||"";get focused(){return this._focused||this._panelOpen}_focused=!1;controlType="mat-select";trigger;panel;_overlayDir;panelClass;disabled=!1;get disableRipple(){return this._disableRipple()}set disableRipple(e){this._disableRipple.set(e)}_disableRipple=yt(!1);tabIndex=0;get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(e){this._hideSingleSelectionIndicator=e,this._syncParentProperties()}_hideSingleSelectionIndicator=this._defaultOptions?.hideSingleSelectionIndicator??!1;get placeholder(){return this._placeholder}set placeholder(e){this._placeholder=e,this.stateChanges.next()}_placeholder;get required(){return this._required??this.ngControl?.control?.hasValidator(Ne.required)??!1}set required(e){this._required=e,this.stateChanges.next()}_required;get multiple(){return this._multiple}set multiple(e){this._multiple=e}_multiple=!1;disableOptionCentering=this._defaultOptions?.disableOptionCentering??!1;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)}_value;ariaLabel="";ariaLabelledby;get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(e){this._errorStateTracker.matcher=e}typeaheadDebounceInterval;sortComparator;get id(){return this._id}set id(e){this._id=e||this._uid,this.stateChanges.next()}_id;get errorState(){return this._errorStateTracker.errorState}set errorState(e){this._errorStateTracker.errorState=e}panelWidth=this._defaultOptions&&typeof this._defaultOptions.panelWidth<"u"?this._defaultOptions.panelWidth:"auto";canSelectNullableOptions=this._defaultOptions?.canSelectNullableOptions??!1;optionSelectionChanges=ya(()=>{const e=this.options;return e?e.changes.pipe(si(e),tn(()=>Cr(...e.map(i=>i.onSelectionChange)))):this._initialized.pipe(tn(()=>this.optionSelectionChanges))});openedChange=new we;_openedStream=this.openedChange.pipe(Tn(e=>e),Se(()=>{}));_closedStream=this.openedChange.pipe(Tn(e=>!e),Se(()=>{}));selectionChange=new we;valueChange=new we;constructor(){const e=D(pk),i=D(su,{optional:!0}),o=D(on,{optional:!0}),r=D(new Yh("tabindex"),{optional:!0}),s=D(mS,{optional:!0});this.ngControl&&(this.ngControl.valueAccessor=this),null!=this._defaultOptions?.typeaheadDebounceInterval&&(this.typeaheadDebounceInterval=this._defaultOptions.typeaheadDebounceInterval),this._errorStateTracker=new FB(e,this.ngControl,o,i,this.stateChanges),this._scrollStrategy=this._scrollStrategyFactory(),this.tabIndex=null==r?0:parseInt(r)||0,this._popoverLocation=!1===s?.usePopover?null:"inline",this.id=this.id}ngOnInit(){this._selectionModel=new Ome(this.multiple),this.stateChanges.next(),this._viewportRuler.change().pipe(fn(this._destroy)).subscribe(()=>{this.panelOpen&&(this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._changeDetectorRef.detectChanges())})}ngAfterContentInit(){this._initialized.next(),this._initialized.complete(),this._initKeyManager(),this._selectionModel.changed.pipe(fn(this._destroy)).subscribe(e=>{e.added.forEach(i=>i.select()),e.removed.forEach(i=>i.deselect())}),this.options.changes.pipe(si(null),fn(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),e.panelClass&&this.panelClass instanceof Set&&(this.panelClass=Array.from(this.panelClass))}ngOnDestroy(){this._cleanupDetach?.(),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._parentFormField&&(this._preferredOverlayOrigin=this._parentFormField.getConnectedOverlayOrigin()),this._cleanupDetach?.(),this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._applyModalPanelOwnership(),this._panelOpen=!0,this._overlayDir.positionChange.pipe(Cn(1)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this._positioningSettled()}),this._overlayDir.attachOverlay(),this._keyManager.withHorizontalOrientation(null),this._highlightCorrectOption(),this._changeDetectorRef.markForCheck(),this.stateChanges.next(),Promise.resolve().then(()=>this.openedChange.emit(!0)))}_trackedModal=null;_applyModalPanelOwnership(){const e=this._elementRef.nativeElement.closest('body > .cdk-overlay-container [aria-modal="true"]');if(!e)return;const i=`${this.id}-panel`;this._trackedModal&&mk(this._trackedModal,"aria-owns",i),VB(e,"aria-owns",i),this._trackedModal=e}_clearFromModal(){this._trackedModal&&(mk(this._trackedModal,"aria-owns",`${this.id}-panel`),this._trackedModal=null)}close(){this._panelOpen&&(this._panelOpen=!1,this._exitAndDetach(),this._keyManager.withHorizontalOrientation(this._isRtl()?"rtl":"ltr"),this._changeDetectorRef.markForCheck(),this._onTouched(),this.stateChanges.next(),Promise.resolve().then(()=>this.openedChange.emit(!1)))}_exitAndDetach(){if(this._animationsDisabled||!this.panel)return void this._detachOverlay();this._cleanupDetach?.(),this._cleanupDetach=()=>{i(),clearTimeout(o),this._cleanupDetach=void 0};const e=this.panel.nativeElement,i=this._renderer.listen(e,"animationend",r=>{"_mat-select-exit"===r.animationName&&(this._cleanupDetach?.(),this._detachOverlay())}),o=setTimeout(()=>{this._cleanupDetach?.(),this._detachOverlay()},200);e.classList.add("mat-select-panel-exit")}_detachOverlay(){this._overlayDir.detachOverlay(),this._changeDetectorRef.markForCheck()}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}updateErrorState(){this._errorStateTracker.updateErrorState()}_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,s=this._keyManager;if(!s.isTyping()&&r&&!yr(e)||(this.multiple||e.altKey)&&o)e.preventDefault(),this.open();else if(!this.multiple){const a=this.selected;s.onKeydown(e);const l=this.selected;l&&a!==l&&this._liveAnnouncer.announce(l.viewValue,1e4)}}_handleOpenKeydown(e){const i=this._keyManager,o=e.keyCode,r=40===o||38===o,s=i.isTyping();if(r&&e.altKey)e.preventDefault(),this.close();else if(s||13!==o&&32!==o||!i.activeItem||yr(e))if(!s&&this._multiple&&65===o&&e.ctrlKey){e.preventDefault();const a=this.options.some(l=>!l.disabled&&!l.selected);this.options.forEach(l=>{l.disabled||(a?l.select():l.deselect())})}else{const a=i.activeItemIndex;i.onKeydown(e),this._multiple&&r&&e.shiftKey&&i.activeItem&&i.activeItemIndex!==a&&i.activeItem._selectViaInteraction()}else e.preventDefault(),i.activeItem._selectViaInteraction()}_handleOverlayKeydown(e){27===e.keyCode&&!yr(e)&&(e.preventDefault(),this.close())}_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())}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.canSelectNullableOptions)&&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=>!this.panelOpen&&e.disabled;_getOverlayWidth(e){return"auto"===this.panelWidth?(e instanceof kb?e.elementRef:e||this._elementRef).nativeElement.getBoundingClientRect().width:null===this.panelWidth?"":this.panelWidth}_syncParentProperties(){if(this.options)for(const e of this.options)e._changeDetectorRef.markForCheck()}_initKeyManager(){this._keyManager=new Ime(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=Cr(this.options.changes,this._destroy);this.optionSelectionChanges.pipe(fn(e)).subscribe(i=>{this._onSelect(i.source,i.isUserInput),i.isUserInput&&!this.multiple&&this._panelOpen&&(this.close(),this.focus())}),Cr(...this.options.map(i=>i._stateChanges)).pipe(fn(e)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this.stateChanges.next()})}_onSelect(e,i){const o=this._selectionModel.isSelected(e);this.canSelectNullableOptions||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;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&&!!this._overlayDir}focus(e){this._elementRef.nativeElement.focus(e)}_getPanelAriaLabelledby(){if(this.ariaLabel)return null;const e=this._parentFormField?.getLabelId()||null;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;let e=this._parentFormField?.getLabelId()||"";return this.ariaLabelledby&&(e+=" "+this.ariaLabelledby),e||(e=this._valueId),e}get describedByIds(){return this._elementRef.nativeElement.getAttribute("aria-describedby")?.split(" ")||[]}setDescribedByIds(e){const i=this._elementRef.nativeElement;e.length?i.setAttribute("aria-describedby",e.join(" ")):i.removeAttribute("aria-describedby")}onContainerClick(e){const i=vr(e);i&&("MAT-OPTION"===i.tagName||i.classList.contains("cdk-overlay-backdrop")||i.closest(".mat-mdc-select-panel"))||(this.focus(),this.open())}get shouldLabelFloat(){return this.panelOpen||!this.empty||this.focused&&!!this.placeholder}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["mat-select"]],contentQueries:function(i,o,r){if(1&i&&ys(r,tV,5)(r,Qr,5)(r,QB,5),2&i){let s;he(s=fe())&&(o.customTrigger=s.first),he(s=fe())&&(o.options=s),he(s=fe())&&(o.optionGroups=s)}},viewQuery:function(i,o){if(1&i&&ot(Rme,5)(Fme,5)(e4,5),2&i){let r;he(r=fe())&&(o.trigger=r.first),he(r=fe())&&(o.panel=r.first),he(r=fe())&&(o._overlayDir=r.first)}},hostAttrs:["role","combobox","aria-haspopup","listbox",1,"mat-mdc-select"],hostVars:21,hostBindings:function(i,o){1&i&&F("keydown",function(s){return o._handleKeydown(s)})("focus",function(){return o._onFocus()})("blur",function(){return o._onBlur()}),2&i&&($e("id",o.id)("tabindex",o.disabled?-1: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()),Ie("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)("mat-select-open",o.panelOpen))},inputs:{userAriaDescribedBy:[0,"aria-describedby","userAriaDescribedBy"],panelClass:"panelClass",disabled:[2,"disabled","disabled",De],disableRipple:[2,"disableRipple","disableRipple",De],tabIndex:[2,"tabIndex","tabIndex",e=>null==e?0:hr(e)],hideSingleSelectionIndicator:[2,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",De],placeholder:"placeholder",required:[2,"required","required",De],multiple:[2,"multiple","multiple",De],disableOptionCentering:[2,"disableOptionCentering","disableOptionCentering",De],compareWith:"compareWith",value:"value",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],errorStateMatcher:"errorStateMatcher",typeaheadDebounceInterval:[2,"typeaheadDebounceInterval","typeaheadDebounceInterval",hr],sortComparator:"sortComparator",id:"id",panelWidth:"panelWidth",canSelectNullableOptions:[2,"canSelectNullableOptions","canSelectNullableOptions",De]},outputs:{openedChange:"openedChange",_openedStream:"opened",_closedStream:"closed",selectionChange:"selectionChange",valueChange:"valueChange"},exportAs:["matSelect"],features:[lt([{provide:hk,useExisting:t},{provide:ZB,useExisting:t}]),_i],ngContentSelectors:Lme,decls:11,vars:10,consts:[["fallbackOverlayOrigin","cdkOverlayOrigin","trigger",""],["panel",""],["cdk-overlay-origin","",1,"mat-mdc-select-trigger",3,"click"],[1,"mat-mdc-select-value"],[1,"mat-mdc-select-placeholder","mat-mdc-select-min-line"],[1,"mat-mdc-select-value-text"],[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","","cdkConnectedOverlayHasBackdrop","","cdkConnectedOverlayBackdropClass","cdk-overlay-transparent-backdrop",3,"detach","backdropClick","overlayKeydown","cdkConnectedOverlayDisableClose","cdkConnectedOverlayPanelClass","cdkConnectedOverlayScrollStrategy","cdkConnectedOverlayOrigin","cdkConnectedOverlayPositions","cdkConnectedOverlayWidth","cdkConnectedOverlayFlexibleDimensions","cdkConnectedOverlayUsePopover"],[1,"mat-mdc-select-min-line"],["role","listbox","tabindex","-1",1,"mat-mdc-select-panel","mdc-menu-surface","mdc-menu-surface--open",3,"keydown"]],template:function(i,o){if(1&i&&(yi(Nme),h(0,"div",2,0),F("click",function(){return o.open()}),h(3,"div",3),x(4,Bme,2,1,"span",4)(5,jme,3,1,"span",5),u(),h(6,"div",6)(7,"div",7),rl(),h(8,"svg",8),B(9,"path",9),u()()()(),it(10,Ume,3,16,"ng-template",10),F("detach",function(){return o.close()})("backdropClick",function(){return o.close()})("overlayKeydown",function(s){return o._handleOverlayKeydown(s)})),2&i){const r=Hn(1);d(3),$e("id",o._valueId),d(),S(o.empty?4:5),d(6),C("cdkConnectedOverlayDisableClose",!0)("cdkConnectedOverlayPanelClass",o._overlayPanelClass)("cdkConnectedOverlayScrollStrategy",o._scrollStrategy)("cdkConnectedOverlayOrigin",o._preferredOverlayOrigin||r)("cdkConnectedOverlayPositions",o._positions)("cdkConnectedOverlayWidth",o._overlayWidth)("cdkConnectedOverlayFlexibleDimensions",!0)("cdkConnectedOverlayUsePopover",o._popoverLocation)}},dependencies:[kb,e4],styles:['@keyframes _mat-select-enter{from{opacity:0;transform:scaleY(0.8)}to{opacity:1;transform:none}}@keyframes _mat-select-exit{from{opacity:1}to{opacity:0}}.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, var(--mat-sys-on-surface));font-family:var(--mat-select-trigger-text-font, var(--mat-sys-body-large-font));line-height:var(--mat-select-trigger-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mat-select-trigger-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-select-trigger-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mat-select-trigger-text-tracking, var(--mat-sys-body-large-tracking))}div.mat-mdc-select-panel{box-shadow:var(--mat-select-container-elevation-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-mdc-select-disabled{color:var(--mat-select-disabled-trigger-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-select-disabled .mat-mdc-select-placeholder{color:var(--mat-select-disabled-trigger-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.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 .mdc-text-field--no-label .mat-mdc-select-arrow-wrapper{transform:none}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-invalid .mat-mdc-select-arrow,.mat-form-field-invalid:not(.mat-form-field-disabled) .mat-mdc-form-field-infix::after{color:var(--mat-select-invalid-arrow-color, var(--mat-sys-error))}.mat-mdc-select-arrow{width:10px;height:5px;position:relative;color:var(--mat-select-enabled-arrow-color, var(--mat-sys-on-surface-variant))}.mat-mdc-form-field.mat-focused .mat-mdc-select-arrow{color:var(--mat-select-focused-arrow-color, var(--mat-sys-primary))}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-disabled .mat-mdc-select-arrow{color:var(--mat-select-disabled-arrow-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-select-open .mat-mdc-select-arrow{transform:rotate(180deg)}.mat-form-field-animations-enabled .mat-mdc-select-arrow{transition:transform 80ms linear}.mat-mdc-select-arrow svg{fill:currentColor;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}@media(forced-colors: active){.mat-mdc-select-arrow svg{fill:CanvasText}.mat-mdc-select-disabled .mat-mdc-select-arrow svg{fill:GrayText}}div.mat-mdc-select-panel{width:100%;max-height:275px;outline:0;overflow:auto;padding:8px 0;border-radius:4px;box-sizing:border-box;position:relative;background-color:var(--mat-select-panel-background-color, var(--mat-sys-surface-container))}@media(forced-colors: 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-select-panel-animations-enabled{animation:_mat-select-enter 120ms cubic-bezier(0, 0, 0.2, 1)}.mat-select-panel-animations-enabled.mat-select-panel-exit{animation:_mat-select-exit 100ms linear}.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, var(--mat-sys-on-surface-variant))}.mat-mdc-form-field:not(.mat-form-field-animations-enabled) .mat-mdc-select-placeholder,._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}.mat-form-field-appearance-fill .mat-mdc-select-arrow-wrapper{transform:var(--mat-select-arrow-transform, translateY(-8px))}\n'],encapsulation:2,changeDetection:0})}return t})(),Gme=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["mat-select-trigger"]],features:[lt([{provide:tV,useExisting:t}])]})}return t})(),qme=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({imports:[Zd,eV,ii,Rf,lv,eV]})}return t})();function Kme(t,n){if(1&t&&B(0,"input",6),2&t){const e=v().$implicit;C("formControlName",e.keyNameInFiltersObject)("maxlength",e.maxlength)}}function Yme(t,n){if(1&t&&(h(0,"div",10),B(1,"div",11),u()),2&t){const e=v().$implicit,i=v(2).$implicit;no("background-image: url('"+i.printableLabelGeneralSettings.defaultImage+"'); width: "+i.printableLabelGeneralSettings.imageWidth+"px; height: "+i.printableLabelGeneralSettings.imageHeight+"px;"),d(),no("background-image: url('"+e.image+"');")}}function Xme(t,n){if(1&t&&(h(0,"mat-option",8),x(1,Yme,2,4,"div",9),p(2),b(3,"translate"),u()),2&t){const e=n.$implicit,i=v(2).$implicit;C("value",e.value),d(),S(i.printableLabelGeneralSettings&&e.image?1:-1),d(),E(" ",y(3,3,e.label)," ")}}function Zme(t,n){if(1&t&&(h(0,"mat-select",7),ve(1,Xme,4,5,"mat-option",8,Fe),u()),2&t){const e=v().$implicit;C("formControlName",e.keyNameInFiltersObject),d(),ye(e.printableLabelsForValues)}}function Qme(t,n){if(1&t&&(h(0,"mat-form-field")(1,"div",4)(2,"label",5),p(3),b(4,"translate"),u(),x(5,Kme,1,2,"input",6),x(6,Zme,3,1,"mat-select",7),u()()),2&t){const e=n.$implicit,i=v();d(3),M(y(4,3,e.filterName)),d(2),S(e.type===i.filterFieldTypes.TextInput?5:-1),d(),S(e.type===i.filterFieldTypes.Select?6:-1)}}let Jme=(()=>{class t{static openDialog(e,i){const o=new nn;return o.data=i,o.autoFocus=!1,o.width=rt.smallModalWidth,e.open(t,o)}constructor(e,i,o){this.data=e,this.dialogRef=i,this.formBuilder=o,this.filterFieldTypes=Sn}ngOnInit(){const e={};this.data.filterPropertiesList.forEach(i=>{e[i.keyNameInFiltersObject]=[this.data.currentFilters[i.keyNameInFiltersObject]]}),this.form=this.formBuilder.group(e)}apply(){const e={};this.data.filterPropertiesList.forEach(i=>{e[i.keyNameInFiltersObject]=this.form.get(i.keyNameInFiltersObject).value.trim()}),this.dialogRef.close(e)}static{this.\u0275fac=function(i){return new(i||t)(O(En),O(Bt),O(di))}}static{this.\u0275cmp=re({type:t,selectors:[["app-filters-selection"]],standalone:!1,decls:9,vars:8,consts:[["button",""],[3,"headline","dialog"],[3,"formGroup"],["color","primary",1,"float-right",3,"action"],[1,"field-container"],["for","remoteKey",1,"field-label"],["matInput","",3,"formControlName","maxlength"],[3,"formControlName"],[3,"value"],[1,"image-container",3,"style"],[1,"image-container"],[1,"image"]],template:function(i,o){1&i&&(h(0,"app-dialog",1),b(1,"translate"),h(2,"form",2),ve(3,Qme,7,5,"mat-form-field",null,Fe),u(),h(5,"app-button",3,0),F("action",function(){return o.apply()}),p(7),b(8,"translate"),u()()),2&i&&(C("headline",y(1,4,"filters.filter-action"))("dialog",o.dialogRef),d(2),C("formGroup",o.form),d(),ye(o.data.filterPropertiesList),d(4),E(" ",y(8,6,"common.ok")," "))},dependencies:[xn,Gt,qt,wn,wi,on,mn,sn,In,Pa,Qr,ui,gn,xe],styles:[".image-container[_ngcontent-%COMP%]{display:inline-block;background-size:contain;margin-right:5px}.image-container[_ngcontent-%COMP%] .image[_ngcontent-%COMP%]{background-size:contain;width:100%;height:100%}"]})}}return t})();class _u{get currentFiltersTexts(){return this.currentFiltersTextsInternal}get currentUrlQueryParams(){return this.currentUrlQueryParamsInternal}get dataFiltered(){return this.dataUpdatedSubject.asObservable()}constructor(n,e,i,o,r){this.dialog=n,this.route=e,this.router=i,this.currentFiltersTextsInternal=[],this.dataUpdatedSubject=new me,this.filterPropertiesList=o,this.currentFilters={},this.filterPropertiesList.forEach(s=>{s.keyNameInFiltersObject=r+"_"+s.keyNameInElementsArray,this.currentFilters[s.keyNameInFiltersObject]=""}),this.navigationsSubscription=this.route.queryParamMap.subscribe(s=>{Object.keys(this.currentFilters).forEach(a=>{s.has(a)&&(this.currentFilters[a]=s.get(a))}),this.currentUrlQueryParamsInternal={},s.keys.forEach(a=>{this.currentUrlQueryParamsInternal[a]=s.get(a)}),this.filter()})}dispose(){this.dataUpdatedSubject.complete(),this.navigationsSubscription.unsubscribe()}setData(n){this.data=n,this.filter()}removeFilters(){const n=Rt.createConfirmationDialog(this.dialog,"filters.remove-confirmation");n.componentInstance.operationAccepted.subscribe(()=>{n.componentInstance.closeModal(),this.router.navigate([],{queryParams:{}})})}changeFilters(){Jme.openDialog(this.dialog,{filterPropertiesList:this.filterPropertiesList,currentFilters:this.currentFilters}).afterClosed().subscribe(e=>{e&&this.router.navigate([],{queryParams:e})})}filter(){if(this.data){let n,e=!1;Object.keys(this.currentFilters).forEach(i=>{this.currentFilters[i]&&(e=!0)}),e?(n=function vme(t,n,e){if(t){const i=[];return Object.keys(n).forEach(r=>{if(n[r])for(const s of e)if(s.keyNameInFiltersObject===r){i.push(s);break}}),t.filter(r=>{let s=!0;return i.forEach(a=>{const l=String(r[a.keyNameInElementsArray]).toLowerCase().includes(n[a.keyNameInFiltersObject].toLowerCase()),c=a.secondaryKeyNameInElementsArray&&String(r[a.secondaryKeyNameInElementsArray]).toLowerCase().includes(n[a.keyNameInFiltersObject].toLowerCase());!l&&!c&&(s=!1)}),s})}return null}(this.data,this.currentFilters,this.filterPropertiesList),this.updateCurrentFilters()):(n=this.data,this.updateCurrentFilters()),this.dataUpdatedSubject.next(n)}}updateCurrentFilters(){this.currentFiltersTextsInternal=function yme(t,n){const e=[];return n.forEach(i=>{if(t[i.keyNameInFiltersObject]){let o,r;i.printableLabelsForValues&&i.printableLabelsForValues.forEach(s=>{s.value===t[i.keyNameInFiltersObject]&&(r=s.label)}),r||(o=t[i.keyNameInFiltersObject]),e.push({filterName:i.filterName,translatableValue:r,value:o})}}),e}(this.currentFilters,this.filterPropertiesList)}}function ege(t,n){if(1&t){const e=oe();h(0,"div",3)(1,"div",4)(2,"div",5),p(3),u(),h(4,"div",6),p(5),u()(),h(6,"div",7)(7,"app-button",8),F("click",function(){const o=j(e).$implicit;return U(v(2).openTerminal(o.key))}),p(8),b(9,"translate"),u()()()}if(2&t){const e=n.$implicit;d(3),M(e.label),d(2),M(e.version),d(3),E(" ",y(9,3,"update-all.update-button")," ")}}function tge(t,n){if(1&t&&(h(0,"div",1),p(1),b(2,"translate"),u(),h(3,"div",2),ve(4,ege,10,5,"div",3,Fe),u()),2&t){const e=v();d(),E(" ",y(2,1,"update-all.updatable-list-text")," "),d(3),ye(e.updatableNodes)}}function nge(t,n){if(1&t&&(h(0,"div",6),p(1),u()),2&t){const e=v().$implicit;d(),M(e.tag)}}function ige(t,n){if(1&t&&(h(0,"div",3)(1,"div",4)(2,"div",5),p(3),u(),h(4,"div",6),p(5),u(),x(6,nge,2,1,"div",6),u()()),2&t){const e=n.$implicit;d(3),M(e.label),d(2),M(e.version),d(),S(e.tag?6:-1)}}function oge(t,n){if(1&t&&(h(0,"div",1),p(1),b(2,"translate"),u(),h(3,"div",2),ve(4,ige,7,3,"div",3,Fe),u()),2&t){const e=v();d(),E(" ",y(2,1,"update-all.non-updatable-list-text")," "),d(3),ye(e.nonUpdatableNodes)}}let rge=(()=>{class t{static openDialog(e,i,o){const r=new nn;return r.data=[i,o],r.autoFocus=!1,r.width=rt.smallModalWidth,e.open(t,r)}constructor(e,i){this.dialogRef=e,this.updatableNodes=i[0],this.nonUpdatableNodes=i[1]}openTerminal(e){const i=window.location.protocol,o=window.location.host.replace("localhost:4200","127.0.0.1:8000");window.open(i+"//"+o+"/pty/"+e+"?commands=update","_blank","noopener noreferrer")}static{this.\u0275fac=function(i){return new(i||t)(O(Bt),O(En))}}static{this.\u0275cmp=re({type:t,selectors:[["app-update-all"]],standalone:!1,decls:4,vars:6,consts:[[3,"headline","dialog"],[1,"text-container"],[1,"list-container"],[1,"list-element"],[1,"left-part"],[1,"name"],[1,"version"],[1,"right-part"],["color","primary",3,"click"]],template:function(i,o){1&i&&(h(0,"app-dialog",0),b(1,"translate"),x(2,tge,6,3),x(3,oge,6,3),u()),2&i&&(C("headline",y(1,4,"update-all.title"))("dialog",o.dialogRef),d(2),S(o.updatableNodes&&o.updatableNodes.length>0?2:-1),d(),S(o.nonUpdatableNodes&&o.nonUpdatableNodes.length>0?3:-1))},dependencies:[ui,gn,xe],styles:[".text-container[_ngcontent-%COMP%]{word-break:break-word}.list-container[_ngcontent-%COMP%]{font-size:14px;margin:10px;color:#215f9e;word-break:break-word;line-height:1.2}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%]{display:flex;margin-bottom:10px}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-part[_ngcontent-%COMP%]{flex-grow:1;flex-shrink:1;align-self:center;margin-right:10px;min-width:0}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-part[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:575px){.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-part[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{font-size:.7rem}}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-part[_ngcontent-%COMP%] .version[_ngcontent-%COMP%]{font-size:.7rem;color:#777;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .right-part[_ngcontent-%COMP%]{flex-basis:0;flex-shrink:0}.list-container[_ngcontent-%COMP%] .details[_ngcontent-%COMP%]{color:#777}"]})}}return t})();const sge=["mat-internal-form-field",""],age=["*"];let nV=(()=>{class t{labelPosition="after";static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["div","mat-internal-form-field",""]],hostAttrs:[1,"mdc-form-field","mat-internal-form-field"],hostVars:2,hostBindings:function(i,o){2&i&&Ie("mdc-form-field--align-end","before"===o.labelPosition)},inputs:{labelPosition:"labelPosition"},attrs:sge,ngContentSelectors:age,decls:1,vars:0,template:function(i,o){1&i&&(yi(),Pt(0))},styles:[".mat-internal-form-field{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-flex;align-items:center;vertical-align:middle}.mat-internal-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mat-internal-form-field>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px}.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 .mdc-form-field--align-end label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0}\n"],encapsulation:2,changeDetection:0})}return t})();const lge=["input"],cge=["label"],dge=["*"],xk={color:"accent",clickAction:"check-indeterminate",disabledInteractive:!1},uge=new Z("mat-checkbox-default-options",{providedIn:"root",factory:()=>xk});var Wi=function(t){return t[t.Init=0]="Init",t[t.Checked=1]="Checked",t[t.Unchecked=2]="Unchecked",t[t.Indeterminate=3]="Indeterminate",t}(Wi||{});class hge{source;checked}let kr=(()=>{class t{_elementRef=D(Re);_changeDetectorRef=D(Jt);_ngZone=D(_e);_animationsDisabled=ci();_options=D(uge,{optional:!0});focus(){this._inputElement.nativeElement.focus()}_createChangeEvent(e){const i=new hge;return i.source=this,i.checked=e,i}_getAnimationTargetElement(){return this._inputElement?.nativeElement}_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"};ariaLabel="";ariaLabelledby=null;ariaDescribedby;ariaExpanded;ariaControls;ariaOwns;_uniqueId;id;get inputId(){return`${this.id||this._uniqueId}-input`}required=!1;labelPosition="after";name=null;change=new we;indeterminateChange=new we;value;disableRipple=!1;_inputElement;_labelElement;tabIndex;color;disabledInteractive;_onTouched=()=>{};_currentAnimationClass="";_currentCheckState=Wi.Init;_controlValueAccessorChangeFn=()=>{};_validatorChangeFn=()=>{};constructor(){D(zo).load(tu);const e=D(new Yh("tabindex"),{optional:!0});this._options=this._options||xk,this.color=this._options.color||xk.color,this.tabIndex=null==e?0:parseInt(e)||0,this.id=this._uniqueId=D(ni).getId("mat-mdc-checkbox-"),this.disabledInteractive=this._options?.disabledInteractive??!1}ngOnChanges(e){e.required&&this._validatorChangeFn()}ngAfterViewInit(){this._syncIndeterminate(this.indeterminate)}get checked(){return this._checked}set checked(e){e!=this.checked&&(this._checked=e,this._changeDetectorRef.markForCheck())}_checked=!1;get disabled(){return this._disabled}set disabled(e){e!==this.disabled&&(this._disabled=e,this._changeDetectorRef.markForCheck())}_disabled=!1;get indeterminate(){return this._indeterminate()}set indeterminate(e){const i=e!=this._indeterminate();this._indeterminate.set(e),i&&(this._transitionCheckState(e?Wi.Indeterminate:this.checked?Wi.Checked:Wi.Unchecked),this.indeterminateChange.emit(e)),this._syncIndeterminate(e)}_indeterminate=yt(!1);_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}validate(e){return this.required&&!0!==e.value?{required:!0}:null}registerOnValidatorChange(e){this._validatorChangeFn=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&&this.disabledInteractive||!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.set(!1),this.indeterminateChange.emit(!1)}),this._checked=!this._checked,this._transitionCheckState(this._checked?Wi.Checked:Wi.Unchecked),this._emitChangeEvent())}_onInteractionEvent(e){e.stopPropagation()}_onBlur(){Promise.resolve().then(()=>{this._onTouched(),this._changeDetectorRef.markForCheck()})}_getAnimationClassForCheckStateTransition(e,i){if(this._animationsDisabled)return"";switch(e){case Wi.Init:if(i===Wi.Checked)return this._animationClasses.uncheckedToChecked;if(i==Wi.Indeterminate)return this._checked?this._animationClasses.checkedToIndeterminate:this._animationClasses.uncheckedToIndeterminate;break;case Wi.Unchecked:return i===Wi.Checked?this._animationClasses.uncheckedToChecked:this._animationClasses.uncheckedToIndeterminate;case Wi.Checked:return i===Wi.Unchecked?this._animationClasses.checkedToUnchecked:this._animationClasses.checkedToIndeterminate;case Wi.Indeterminate:return i===Wi.Checked?this._animationClasses.indeterminateToChecked:this._animationClasses.indeterminateToUnchecked}return""}_syncIndeterminate(e){const i=this._inputElement;i&&(i.nativeElement.indeterminate=e)}_onInputClick(){this._handleInputClick()}_onTouchTargetClick(){this._handleInputClick(),this.disabled||this._inputElement.nativeElement.focus()}_preventBubblingFromLabel(e){e.target&&this._labelElement.nativeElement.contains(e.target)&&e.stopPropagation()}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["mat-checkbox"]],viewQuery:function(i,o){if(1&i&&ot(lge,5)(cge,5),2&i){let r;he(r=fe())&&(o._inputElement=r.first),he(r=fe())&&(o._labelElement=r.first)}},hostAttrs:[1,"mat-mdc-checkbox"],hostVars:16,hostBindings:function(i,o){2&i&&(ur("id",o.id),$e("tabindex",null)("aria-label",null)("aria-labelledby",null),Ze(o.color?"mat-"+o.color:"mat-accent"),Ie("_mat-animation-noopable",o._animationsDisabled)("mdc-checkbox--disabled",o.disabled)("mat-mdc-checkbox-disabled",o.disabled)("mat-mdc-checkbox-checked",o.checked)("mat-mdc-checkbox-disabled-interactive",o.disabledInteractive))},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],ariaExpanded:[2,"aria-expanded","ariaExpanded",De],ariaControls:[0,"aria-controls","ariaControls"],ariaOwns:[0,"aria-owns","ariaOwns"],id:"id",required:[2,"required","required",De],labelPosition:"labelPosition",name:"name",value:"value",disableRipple:[2,"disableRipple","disableRipple",De],tabIndex:[2,"tabIndex","tabIndex",e=>null==e?void 0:hr(e)],color:"color",disabledInteractive:[2,"disabledInteractive","disabledInteractive",De],checked:[2,"checked","checked",De],disabled:[2,"disabled","disabled",De],indeterminate:[2,"indeterminate","indeterminate",De]},outputs:{change:"change",indeterminateChange:"indeterminateChange"},exportAs:["matCheckbox"],features:[lt([{provide:Yo,useExisting:Nt(()=>t),multi:!0},{provide:Ci,useExisting:t,multi:!0}]),_i],ngContentSelectors:dge,decls:15,vars:23,consts:[["checkbox",""],["input",""],["label",""],["mat-internal-form-field","",3,"click","labelPosition"],[1,"mdc-checkbox"],["aria-hidden","true",1,"mat-mdc-checkbox-touch-target",3,"click"],["type","checkbox",1,"mdc-checkbox__native-control",3,"blur","click","change","checked","indeterminate","disabled","id","required","tabIndex"],["aria-hidden","true",1,"mdc-checkbox__ripple"],["aria-hidden","true",1,"mdc-checkbox__background"],["focusable","false","viewBox","0 0 24 24",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","","aria-hidden","true",1,"mat-mdc-checkbox-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-label",3,"for"]],template:function(i,o){if(1&i&&(yi(),h(0,"div",3),F("click",function(s){return o._preventBubblingFromLabel(s)}),h(1,"div",4,0)(3,"div",5),F("click",function(){return o._onTouchTargetClick()}),u(),h(4,"input",6,1),F("blur",function(){return o._onBlur()})("click",function(){return o._onInputClick()})("change",function(s){return o._onInteractionEvent(s)}),u(),B(6,"div",7),h(7,"div",8),rl(),h(8,"svg",9),B(9,"path",10),u(),Gy(),B(10,"div",11),u(),B(11,"div",12),u(),h(12,"label",13,2),Pt(14),u()()),2&i){const r=Hn(2);C("labelPosition",o.labelPosition),d(4),Ie("mdc-checkbox--selected",o.checked),C("checked",o.checked)("indeterminate",o.indeterminate)("disabled",o.disabled&&!o.disabledInteractive)("id",o.inputId)("required",o.required)("tabIndex",o.disabled&&!o.disabledInteractive?-1:o.tabIndex),$e("aria-label",o.ariaLabel||null)("aria-labelledby",o.ariaLabelledby)("aria-describedby",o.ariaDescribedby)("aria-checked",o.indeterminate?"mixed":null)("aria-controls",o.ariaControls)("aria-disabled",!(!o.disabled||!o.disabledInteractive)||null)("aria-expanded",o.ariaExpanded)("aria-owns",o.ariaOwns)("name",o.name)("value",o.value),d(7),C("matRippleTrigger",r)("matRippleDisabled",o.disableRipple||o.disabled)("matRippleCentered",!0),d(),C("for",o.inputId)}},dependencies:[eu,nV],styles:['.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;padding:calc((var(--mat-checkbox-state-layer-size, 40px) - 18px)/2);margin:calc((var(--mat-checkbox-state-layer-size, 40px) - var(--mat-checkbox-state-layer-size, 40px))/2)}.mdc-checkbox:hover>.mdc-checkbox__ripple{opacity:var(--mat-checkbox-unselected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));background-color:var(--mat-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:hover>.mat-mdc-checkbox-ripple>.mat-ripple-element{background-color:var(--mat-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus+.mdc-checkbox__ripple{opacity:var(--mat-checkbox-unselected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));background-color:var(--mat-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mat-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:active>.mdc-checkbox__native-control+.mdc-checkbox__ripple{opacity:var(--mat-checkbox-unselected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));background-color:var(--mat-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:active>.mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mat-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:hover>.mdc-checkbox__native-control:checked+.mdc-checkbox__ripple{opacity:var(--mat-checkbox-selected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));background-color:var(--mat-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:hover>.mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mat-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox .mdc-checkbox__native-control:focus:checked+.mdc-checkbox__ripple{opacity:var(--mat-checkbox-selected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));background-color:var(--mat-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mat-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:active>.mdc-checkbox__native-control:checked+.mdc-checkbox__ripple{opacity:var(--mat-checkbox-selected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));background-color:var(--mat-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:active>.mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mat-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control+.mdc-checkbox__ripple{background-color:var(--mat-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit;z-index:1;width:var(--mat-checkbox-state-layer-size, 40px);height:var(--mat-checkbox-state-layer-size, 40px);top:calc((var(--mat-checkbox-state-layer-size, 40px) - var(--mat-checkbox-state-layer-size, 40px))/2);right:calc((var(--mat-checkbox-state-layer-size, 40px) - var(--mat-checkbox-state-layer-size, 40px))/2);left:calc((var(--mat-checkbox-state-layer-size, 40px) - var(--mat-checkbox-state-layer-size, 40px))/2)}.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 cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms cubic-bezier(0.4, 0, 0.6, 1);-webkit-print-color-adjust:exact;color-adjust:exact;border-color:var(--mat-checkbox-unselected-icon-color, var(--mat-sys-on-surface-variant));top:calc((var(--mat-checkbox-state-layer-size, 40px) - 18px)/2);left:calc((var(--mat-checkbox-state-layer-size, 40px) - 18px)/2)}.mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background{border-color:var(--mat-checkbox-selected-icon-color, var(--mat-sys-primary));background-color:var(--mat-checkbox-selected-icon-color, var(--mat-sys-primary))}.mdc-checkbox--disabled .mdc-checkbox__background{border-color:var(--mat-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}@media(forced-colors: active){.mdc-checkbox--disabled .mdc-checkbox__background{border-color:GrayText}}.mdc-checkbox__native-control:disabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:disabled:indeterminate~.mdc-checkbox__background{background-color:var(--mat-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:rgba(0,0,0,0)}@media(forced-colors: active){.mdc-checkbox__native-control:disabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:disabled:indeterminate~.mdc-checkbox__background{border-color:GrayText}}.mdc-checkbox:hover>.mdc-checkbox__native-control:not(:checked)~.mdc-checkbox__background,.mdc-checkbox:hover>.mdc-checkbox__native-control:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mat-checkbox-unselected-hover-icon-color, var(--mat-sys-on-surface));background-color:rgba(0,0,0,0)}.mdc-checkbox:hover>.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox:hover>.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{border-color:var(--mat-checkbox-selected-hover-icon-color, var(--mat-sys-primary));background-color:var(--mat-checkbox-selected-hover-icon-color, var(--mat-sys-primary))}.mdc-checkbox__native-control:focus:focus:not(:checked)~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mat-checkbox-unselected-focus-icon-color, var(--mat-sys-on-surface))}.mdc-checkbox__native-control:focus:focus:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:indeterminate~.mdc-checkbox__background{border-color:var(--mat-checkbox-selected-focus-icon-color, var(--mat-sys-primary));background-color:var(--mat-checkbox-selected-focus-icon-color, var(--mat-sys-primary))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox:hover>.mdc-checkbox__native-control~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__background{border-color:var(--mat-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}@media(forced-colors: active){.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox:hover>.mdc-checkbox__native-control~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__background{border-color:GrayText}}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{background-color:var(--mat-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:rgba(0,0,0,0)}.mdc-checkbox__checkmark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;transition:opacity 180ms cubic-bezier(0.4, 0, 0.6, 1);color:var(--mat-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}@media(forced-colors: active){.mdc-checkbox__checkmark{color:CanvasText}}.mdc-checkbox--disabled .mdc-checkbox__checkmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:var(--mat-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}@media(forced-colors: active){.mdc-checkbox--disabled .mdc-checkbox__checkmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:GrayText}}.mdc-checkbox__checkmark-path{transition:stroke-dashoffset 180ms 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 cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1);border-color:var(--mat-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}@media(forced-colors: active){.mdc-checkbox__mixedmark{margin:0 1px}}.mdc-checkbox--disabled .mdc-checkbox__mixedmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__mixedmark{border-color:var(--mat-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}@media(forced-colors: active){.mdc-checkbox--disabled .mdc-checkbox__mixedmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__mixedmark{border-color:GrayText}}.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;transition:none}.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark{animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark{animation:mdc-checkbox-indeterminate-checked-checkmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-checked-mixedmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear;transition:none}.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{transition:border-color 90ms cubic-bezier(0, 0, 0.2, 1),background-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path{stroke-dashoffset:0}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__checkmark{transition:opacity 180ms cubic-bezier(0, 0, 0.2, 1),transform 180ms 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{transform:rotate(45deg);opacity:0;transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__mixedmark{transform:scaleX(1) rotate(0deg);opacity:1}@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:cubic-bezier(0, 0, 0.2, 1);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}}.mat-mdc-checkbox{display:inline-block;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mat-mdc-checkbox-touch-target,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__native-control,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__ripple,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mat-mdc-checkbox-ripple::before,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__checkmark,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__mixedmark{transition:none !important;animation:none !important}.mat-mdc-checkbox label{cursor:pointer}.mat-mdc-checkbox .mat-internal-form-field{color:var(--mat-checkbox-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-checkbox-label-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-checkbox-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-checkbox-label-text-size, var(--mat-sys-body-medium-size));letter-spacing:var(--mat-checkbox-label-text-tracking, var(--mat-sys-body-medium-tracking));font-weight:var(--mat-checkbox-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive{pointer-events:auto}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive input{cursor:default}.mat-mdc-checkbox.mat-mdc-checkbox-disabled label{cursor:default;color:var(--mat-checkbox-disabled-label-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}@media(forced-colors: active){.mat-mdc-checkbox.mat-mdc-checkbox-disabled label{color:GrayText}}.mat-mdc-checkbox label:empty{display:none}.mat-mdc-checkbox .mdc-checkbox__ripple{opacity:0}.mat-mdc-checkbox .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 .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%;left:50%;height:var(--mat-checkbox-touch-target-size, 48px);width:var(--mat-checkbox-touch-target-size, 48px);transform:translate(-50%, -50%);display:var(--mat-checkbox-touch-target-display, block)}.mat-mdc-checkbox .mat-mdc-checkbox-ripple::before{border-radius:50%}.mdc-checkbox__native-control:focus-visible~.mat-focus-indicator::before{content:""}\n'],encapsulation:2,changeDetection:0})}return t})(),fge=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({imports:[kr,ii]})}return t})();const pge=["button"],mge=t=>({"element-disabled":t}),gge=t=>({"element-margin":t});function _ge(t,n){1&t&&(h(0,"span",17),p(1),b(2,"translate"),u()),2&t&&(d(),E(" ",y(2,1,"bulk-rewards.checking")))}function bge(t,n){if(1&t&&(h(0,"span",18)(1,"span"),p(2),b(3,"translate"),u(),h(4,"span"),p(5),b(6,"translate"),u()()),2&t){const e=v(2).$implicit;d(2),E(" ",y(3,2,"bulk-rewards.error-checking")),d(3),E(" ",y(6,4,e.operationError))}}function vge(t,n){if(1&t&&(h(0,"span"),p(1),u()),2&t){const e=v(2).$implicit;d(),E(" ",e.currentAddress)}}function yge(t,n){1&t&&(h(0,"span"),p(1),b(2,"translate"),u()),2&t&&(d(),E(" ",y(2,1,"bulk-rewards.not-registered")))}function Cge(t,n){if(1&t&&(Vr(0,12),h(1,"mat-checkbox",13)(2,"div")(3,"div",14),p(4),u(),h(5,"div",15)(6,"span",16),p(7),b(8,"translate"),u(),x(9,_ge,3,3,"span",17),x(10,bge,7,6,"span",18),x(11,vge,2,1,"span"),x(12,yge,3,3,"span"),u()()(),cr()),2&t){const e=v(),i=e.$implicit;C("formGroupName",e.$index),d(4),E(" ",i.label," "),d(3),M(y(8,7,"bulk-rewards.current-address")),d(2),S(null!==i.currentAddress||i.operationError?-1:9),d(),S(i.operationError?10:-1),d(),S(i.currentAddress&&!i.operationError?11:-1),d(),S(""!==i.currentAddress||i.operationError?-1:12)}}function wge(t,n){1&t&&(h(0,"span",17),p(1),b(2,"translate"),u()),2&t&&(d(),E(" ",y(2,1,"bulk-rewards.processing")))}function xge(t,n){if(1&t&&(h(0,"span",18)(1,"span"),p(2),b(3,"translate"),u(),h(4,"span"),p(5),b(6,"translate"),u()()),2&t){const e=v(2).$implicit;d(2),E(" ",y(3,2,"bulk-rewards.error-processing")),d(3),E(" ",y(6,4,e.operationError))}}function Sge(t,n){1&t&&(h(0,"span",22),p(1),b(2,"translate"),u()),2&t&&(d(),E(" ",y(2,1,"bulk-rewards.done")))}function kge(t,n){if(1&t&&(h(0,"div",19),p(1,"-"),u(),h(2,"div",20),p(3),h(4,"div",21),x(5,wge,3,3,"span",17),x(6,xge,7,6,"span",18),x(7,Sge,3,3,"span",22),u()()),2&t){const e=v().$implicit;d(3),E(" ",e.label," "),d(2),S(e.processing&&!e.operationError?5:-1),d(),S(e.operationError?6:-1),d(),S(e.processing||e.operationError?-1:7)}}function Dge(t,n){if(1&t&&(h(0,"div",9),x(1,Cge,13,9,"ng-container",12),x(2,kge,8,4),u()),2&t){const e=v();C("ngClass",se(3,gge,e.processingStarted)),d(),S(e.processingStarted?-1:1),d(),S(e.processingStarted?2:-1)}}function Mge(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"bulk-rewards.perform-changes")," ")}function Tge(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"common.close")," ")}let Ege=(()=>{class t{static openDialog(e,i){const o=new nn;return o.data=i,o.autoFocus=!1,o.width=rt.smallModalWidth,e.open(t,o)}constructor(e,i,o,r,s){this.dialogRef=e,this.data=i,this.nodeService=o,this.formBuilder=r,this.dialog=s,this.processingStarted=!1,this.processingFinished=!1,this.currentlyProcessed=0,this.form=r.group({address:["",Ne.compose([Ne.minLength(20),Ne.maxLength(112)])],nodes:r.array([])}),i.nodes.forEach(a=>{const l=this.formBuilder.group({selected:[!0]});this.form.get("nodes").push(l)}),this.startChecking()}formValid(){if(!this.processingStarted){if(!this.form.valid)return!1;let e=0;return this.form.get("nodes").controls.forEach((i,o)=>{i.get("selected")?.value&&(e+=1)}),e>0}return!0}get disableDismiss(){return this.processingStarted&&!this.processingFinished}startChecking(){this.nodesToEdit=[],this.data.nodes.forEach(e=>{this.nodesToEdit.push({key:e.key,label:e.label,currentAddress:null,operationError:"",processing:!1})}),this.operationSubscriptions=[],this.nodesToEdit.forEach((e,i)=>{this.operationSubscriptions.push(this.nodeService.getRewardsAddress(e.key).subscribe(o=>{this.nodesToEdit[i].currentAddress=o},o=>{this.nodesToEdit[i].operationError=o.translatableErrorMsg?o.translatableErrorMsg:o.originalServerErrorMsg}))})}checkBeforeProcessing(){if(this.form.valid)if(this.form.get("address").value)this.startProcessing();else{const i=Rt.createConfirmationDialog(this.dialog,"bulk-rewards.empty-warning");i.componentInstance.operationAccepted.subscribe(()=>{i.componentInstance.closeModal(),this.startProcessing()})}}startProcessing(){this.processingStarted=!0,this.button.showLoading(),this.closeoperationSubscriptions();const e=[];this.form.get("nodes").controls.forEach((o,r)=>{o.get("selected")?.value&&(this.nodesToEdit[r].operationError="",this.nodesToEdit[r].processing=!0,e.push(this.nodesToEdit[r]))}),this.nodesToEdit=e;const i=this.form.get("address").value;this.form.get("address").disable(),this.currentlyProcessed=0,this.operationSubscriptions=[],this.nodesToEdit.forEach((o,r)=>{let s=this.nodeService.setRewardsAddress(o.key,i);i||(s=this.nodeService.deleteRewardsAddress(o.key)),this.operationSubscriptions.push(ae(0).pipe(li(100),It(()=>s)).subscribe(a=>{this.nodesToEdit[r].processing=!1,this.currentlyProcessed+=1,this.currentlyProcessed===this.nodesToEdit.length&&(this.processingFinished=!0,this.button.reset())},a=>{this.nodesToEdit[r].processing=!1,this.nodesToEdit[r].operationError=a.translatableErrorMsg?a.translatableErrorMsg:a.originalServerErrorMsg,this.currentlyProcessed+=1,this.currentlyProcessed===this.nodesToEdit.length&&(this.processingFinished=!0,this.button.reset())}))})}ngOnDestroy(){this.closeoperationSubscriptions()}closeoperationSubscriptions(){this.operationSubscriptions&&this.operationSubscriptions.forEach(e=>e.unsubscribe())}closeModal(){this.dialogRef.close()}static{this.\u0275fac=function(i){return new(i||t)(O(Bt),O(En),O(Io),O(di),O(Ot))}}static{this.\u0275cmp=re({type:t,selectors:[["app-bulk-reward-address-changer"]],viewQuery:function(i,o){if(1&i&&ot(pge,5),2&i){let r;he(r=fe())&&(o.button=r.first)}},standalone:!1,decls:31,vars:27,consts:[["button",""],[3,"headline","dialog","disableDismiss"],[3,"formGroup"],[1,"text-container"],["href","https://github.com/skycoin/skywire/blob/develop/rewards/mainnet_rules.md","target","_blank","rel","noreferrer nofollow noopener"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","address","maxlength","112","matInput","",3,"ngClass"],["formArrayName","nodes",1,"list-container"],[1,"list-element",3,"ngClass"],[1,"buttons"],["type","mat-raised-button","color","primary",3,"action","disabled"],[3,"formGroupName"],["color","primary","formControlName","selected"],[1,"contents"],[1,"address","contents"],[1,"address-label"],[1,"blinking"],[1,"red-text"],[1,"left-area"],[1,"right-area","contents"],[1,"address"],[1,"green-text"]],template:function(i,o){1&i&&(h(0,"app-dialog",1),b(1,"translate"),h(2,"form",2)(3,"div",3)(4,"span"),p(5),b(6,"translate"),u(),h(7,"a",4),p(8),b(9,"translate"),u()(),h(10,"mat-form-field")(11,"div",5)(12,"label",6),p(13),b(14,"translate"),u(),B(15,"input",7),u(),h(16,"mat-error")(17,"span"),p(18),b(19,"translate"),u()()(),h(20,"div",3),p(21),b(22,"translate"),u(),h(23,"div",8),ve(24,Dge,3,5,"div",9,Fe),u()(),h(26,"div",10)(27,"app-button",11,0),F("action",function(){return o.processingStarted?o.closeModal():o.checkBeforeProcessing()}),x(29,Mge,2,3),x(30,Tge,2,3),u()()()),2&i&&(C("headline",y(1,13,"bulk-rewards.title"))("dialog",o.dialogRef)("disableDismiss",o.disableDismiss),d(2),C("formGroup",o.form),d(3),E("",y(6,15,"bulk-rewards.info")," "),d(3),E(" ",y(9,17,"bulk-rewards.more-info-link")," "),d(5),M(y(14,19,"rewards-address-config.address")),d(2),C("ngClass",se(25,mge,o.processingStarted)),d(3),M(y(19,21,"rewards-address-config.address-error")),d(3),E(" ",y(22,23,"bulk-rewards.select-visors")," "),d(3),ye(o.nodesToEdit),d(3),C("disabled",!o.formValid()),d(2),S(o.processingStarted?-1:29),d(),S(o.processingStarted?30:-1))},dependencies:[$t,xn,Gt,qt,wn,wi,on,mn,sc,du,sn,Ma,In,kr,ui,gn,xe],styles:[".text-container[_ngcontent-%COMP%]{word-break:break-word}mat-form-field[_ngcontent-%COMP%]{margin-top:10px}.list-container[_ngcontent-%COMP%]{font-size:14px;margin:10px;color:#215f9e;word-break:break-word}.list-container[_ngcontent-%COMP%] .element-margin[_ngcontent-%COMP%]{margin:15px 0}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%]{display:flex}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-area[_ngcontent-%COMP%]{width:12px;flex-grow:0;flex-shrink:0}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .right-area[_ngcontent-%COMP%]{flex-grow:1}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .contents[_ngcontent-%COMP%]{white-space:normal;line-height:1.2}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .address[_ngcontent-%COMP%]{font-size:.7rem;color:#777}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .address[_ngcontent-%COMP%] .address-label[_ngcontent-%COMP%]{opacity:.7}.buttons[_ngcontent-%COMP%]{margin-top:15px;text-align:right}.buttons[_ngcontent-%COMP%] app-button[_ngcontent-%COMP%]{margin-left:5px}"]})}}return t})(),np=(()=>{class t{constructor(e){this.dom=e}copy(e){let i=null;try{return i=this.dom.createElement("textarea"),i.style.height="0px",i.style.left="-100px",i.style.opacity="0",i.style.position="fixed",i.style.top="-100px",i.style.width="0px",this.dom.body.appendChild(i),i.value=e,i.select(),this.dom.execCommand("copy"),!0}catch{return!1}finally{i&&i.parentNode&&i.parentNode.removeChild(i)}}static{this.\u0275fac=function(i){return new(i||t)(ce(et))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac})}}return t})(),Pge=(()=>{class t{constructor(e){this.http=e,this.rewardSystemUrl="/api/rewards",this.rewardDataCache=new Map,this.cachedDates=[],this.fetching=!1}getLastNDays(e){const i=[];for(let o=0;o0}fetchRewardData(e){return this.hasCache()?ae(this.rewardDataCache):(this.fetching=!0,zf(e.map(o=>this.http.get(`${this.rewardSystemUrl}/skycoin-rewards/visor/${o}?days=7`).pipe(Se(r=>({pk:o,history:r&&r.history?r.history:[]})),Ui(()=>ae({pk:o,history:[]}))))).pipe(Se(o=>{const r=new Map;for(const{pk:s,history:a}of o){const l={pk:s,rewardAddress:"",dailyAmounts:{},dailySent:{},weekTotal:0};for(const c of a)c.date&&(l.dailyAmounts[c.date]=c.amount||0,l.dailySent[c.date]=c.sent||!1,l.weekTotal+=c.amount||0);r.set(s,l)}return this.rewardDataCache=r,this.cachedDates=this.getLastNDays(7),this.fetching=!1,r}),Ui(o=>(this.fetching=!1,ae(new Map)))))}clearCache(){this.rewardDataCache=new Map,this.cachedDates=[]}static{this.\u0275fac=function(i){return new(i||t)(ce(ba))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();class iV extends JB{_origin="program";setFocusOrigin(n){return this._origin=n,this}setActiveItem(n){super.setActiveItem(n),this.activeItem&&this.activeItem.focus(this._origin)}}const Ige=["mat-menu-item",""],Oge=[[["mat-icon"],["","matMenuItemIcon",""]],"*"],Age=["mat-icon, [matMenuItemIcon]","*"];function Rge(t,n){1&t&&(rl(),h(0,"svg",2),B(1,"polygon",3),u())}const Fge=["*"];function Nge(t,n){if(1&t){const e=oe();vs(0,"div",0),qg("click",function(){return j(e),U(v().closed.emit("click"))})("animationstart",function(o){return j(e),U(v()._onAnimationStart(o.animationName))})("animationend",function(o){return j(e),U(v()._onAnimationDone(o.animationName))})("animationcancel",function(o){return j(e),U(v()._onAnimationDone(o.animationName))}),vs(1,"div",1),Pt(2),Ol()()}if(2&t){const e=v();Ze(e._classList),Ie("mat-menu-panel-animations-disabled",e._animationsDisabled)("mat-menu-panel-exit-animation","void"===e._panelAnimationState)("mat-menu-panel-animating",e._isAnimating()),ur("id",e.panelId),$e("aria-label",e.ariaLabel||null)("aria-labelledby",e.ariaLabelledby||null)("aria-describedby",e.ariaDescribedby||null)}}const Sk=new Z("MAT_MENU_PANEL");let As=(()=>{class t{_elementRef=D(Re);_document=D(et);_focusMonitor=D(ec);_parentMenu=D(Sk,{optional:!0});_changeDetectorRef=D(Jt);role="menuitem";disabled=!1;disableRipple=!1;_hovered=new me;_focused=new me;_highlighted=!1;_triggersSubmenu=!1;constructor(){D(zo).load(tu),this._parentMenu?.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({overlapTrigger:!1,xPosition:"after",yPosition:"below",backdropClass:"cdk-overlay-transparent-backdrop"})}),kk="_mat-menu-enter",pv="_mat-menu-exit";let Jr=(()=>{class t{_elementRef=D(Re);_changeDetectorRef=D(Jt);_injector=D(He);_keyManager;_xPosition;_yPosition;_firstItemFocusRef;_exitFallbackTimeout;_animationsDisabled=ci();_allItems;_directDescendantItems=new id;_classList={};_panelAnimationState="void";_animationDone=new me;_isAnimating=yt(!1);parentMenu;direction;overlayPanelClass;backdropClass;ariaLabel;ariaLabelledby;ariaDescribedby;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()}templateRef;items;lazyContent;overlapTrigger=!1;hasBackdrop;set panelClass(e){const i=this._previousPanelClass,o={...this._classList};i&&i.length&&i.split(" ").forEach(r=>{o[r]=!1}),this._previousPanelClass=e,e&&e.length&&(e.split(" ").forEach(r=>{o[r]=!0}),this._elementRef.nativeElement.className=""),this._classList=o}_previousPanelClass;get classList(){return this.panelClass}set classList(e){this.panelClass=e}closed=new we;close=this.closed;panelId=D(ni).getId("mat-menu-panel-");constructor(){const e=D(Bge);this.overlayPanelClass=e.overlayPanelClass||"",this._xPosition=e.xPosition,this._yPosition=e.yPosition,this.backdropClass=e.backdropClass,this.overlapTrigger=e.overlapTrigger,this.hasBackdrop=e.hasBackdrop}ngOnInit(){this.setPositionClasses()}ngAfterContentInit(){this._updateDirectDescendants(),this._keyManager=new iV(this._directDescendantItems).withWrap().withTypeAhead().withHomeAndEnd(),this._keyManager.tabOut.subscribe(()=>this.closed.emit("tab")),this._directDescendantItems.changes.pipe(si(this._directDescendantItems),tn(e=>Cr(...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._firstItemFocusRef?.destroy(),clearTimeout(this._exitFallbackTimeout)}_hovered(){return this._directDescendantItems.changes.pipe(si(this._directDescendantItems),tn(i=>Cr(...i.map(o=>o._hovered))))}addItem(e){}removeItem(e){}_handleKeydown(e){const i=e.keyCode,o=this._keyManager;switch(i){case 27:yr(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)}}focusFirstItem(e="program"){this._firstItemFocusRef?.destroy(),this._firstItemFocusRef=Vi(()=>{const i=this._resolvePanel();if(!i||!i.contains(document.activeElement)){const o=this._keyManager;o.setFocusOrigin(e).setFirstItemActive(),!o.activeItem&&i&&i.focus()}},{injector:this._injector})}resetActiveItem(){this._keyManager.setActiveItem(-1)}setElevation(e){}setPositionClasses(e=this.xPosition,i=this.yPosition){this._classList={...this._classList,"mat-menu-before":"before"===e,"mat-menu-after":"after"===e,"mat-menu-above":"above"===i,"mat-menu-below":"below"===i},this._changeDetectorRef.markForCheck()}_onAnimationDone(e){const i=e===pv;(i||e===kk)&&(i&&(clearTimeout(this._exitFallbackTimeout),this._exitFallbackTimeout=void 0),this._animationDone.next(i?"void":"enter"),this._isAnimating.set(!1))}_onAnimationStart(e){(e===kk||e===pv)&&this._isAnimating.set(!0)}_setIsOpen(e){if(this._panelAnimationState=e?"enter":"void",e){if(0===this._keyManager.activeItemIndex){const i=this._resolvePanel();i&&(i.scrollTop=0)}}else this._animationsDisabled||(this._exitFallbackTimeout=setTimeout(()=>this._onAnimationDone(pv),200));this._animationsDisabled&&setTimeout(()=>{this._onAnimationDone(e?kk:pv)}),this._changeDetectorRef.markForCheck()}_updateDirectDescendants(){this._allItems.changes.pipe(si(this._allItems)).subscribe(e=>{this._directDescendantItems.reset(e.filter(i=>i._parentMenu===this)),this._directDescendantItems.notifyOnChanges()})}_resolvePanel(){let e=null;return this._directDescendantItems.length&&(e=this._directDescendantItems.first._getHostElement().closest('[role="menu"]')),e}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["mat-menu"]],contentQueries:function(i,o,r){if(1&i&&ys(r,Lge,5)(r,As,5)(r,As,4),2&i){let s;he(s=fe())&&(o.lazyContent=s.first),he(s=fe())&&(o._allItems=s),he(s=fe())&&(o.items=s)}},viewQuery:function(i,o){if(1&i&&ot(Ti,5),2&i){let r;he(r=fe())&&(o.templateRef=r.first)}},hostVars:3,hostBindings:function(i,o){2&i&&$e("aria-label",null)("aria-labelledby",null)("aria-describedby",null)},inputs:{backdropClass:"backdropClass",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],xPosition:"xPosition",yPosition:"yPosition",overlapTrigger:[2,"overlapTrigger","overlapTrigger",De],hasBackdrop:[2,"hasBackdrop","hasBackdrop",e=>null==e?null:De(e)],panelClass:[0,"class","panelClass"],classList:"classList"},outputs:{closed:"closed",close:"close"},exportAs:["matMenu"],features:[lt([{provide:Sk,useExisting:t}])],ngContentSelectors:Fge,decls:1,vars:0,consts:[["tabindex","-1","role","menu",1,"mat-mdc-menu-panel",3,"click","animationstart","animationend","animationcancel","id"],[1,"mat-mdc-menu-content"]],template:function(i,o){1&i&&(yi(),Eg(0,Nge,3,12,"ng-template"))},styles:['mat-menu{display:none}.mat-mdc-menu-content{margin:0;padding:8px 0;outline:0}.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;flex:1;white-space:normal;font-family:var(--mat-menu-item-label-text-font, var(--mat-sys-label-large-font));line-height:var(--mat-menu-item-label-text-line-height, var(--mat-sys-label-large-line-height));font-size:var(--mat-menu-item-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mat-menu-item-label-text-tracking, var(--mat-sys-label-large-tracking));font-weight:var(--mat-menu-item-label-text-weight, var(--mat-sys-label-large-weight))}@keyframes _mat-menu-enter{from{opacity:0;transform:scale(0.8)}to{opacity:1;transform:none}}@keyframes _mat-menu-exit{from{opacity:1}to{opacity:0}}.mat-mdc-menu-panel{min-width:112px;max-width:280px;overflow:auto;box-sizing:border-box;outline:0;animation:_mat-menu-enter 120ms cubic-bezier(0, 0, 0.2, 1);border-radius:var(--mat-menu-container-shape, var(--mat-sys-corner-extra-small));background-color:var(--mat-menu-container-color, var(--mat-sys-surface-container));box-shadow:var(--mat-menu-container-elevation-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));will-change:transform,opacity}.mat-mdc-menu-panel.mat-menu-panel-exit-animation{animation:_mat-menu-exit 100ms 25ms linear forwards}.mat-mdc-menu-panel.mat-menu-panel-animations-disabled{animation:none}.mat-mdc-menu-panel.mat-menu-panel-animating{pointer-events:none}.mat-mdc-menu-panel.mat-menu-panel-animating:has(.mat-mdc-menu-content:empty){display:none}@media(forced-colors: active){.mat-mdc-menu-panel{outline:solid 1px}}.mat-mdc-menu-panel .mat-divider{border-top-color:var(--mat-menu-divider-color, var(--mat-sys-surface-variant));margin-bottom:var(--mat-menu-divider-bottom-spacing, 8px);margin-top:var(--mat-menu-divider-top-spacing, 8px)}.mat-mdc-menu-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;cursor:pointer;width:100%;text-align:left;box-sizing:border-box;color:inherit;font-size:inherit;background:none;text-decoration:none;margin:0;min-height:48px;padding-left:var(--mat-menu-item-leading-spacing, 12px);padding-right:var(--mat-menu-item-trailing-spacing, 12px);-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-menu-item::-moz-focus-inner{border:0}[dir=rtl] .mat-mdc-menu-item{padding-left:var(--mat-menu-item-trailing-spacing, 12px);padding-right:var(--mat-menu-item-leading-spacing, 12px)}.mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]){padding-left:var(--mat-menu-item-with-icon-leading-spacing, 12px);padding-right:var(--mat-menu-item-with-icon-trailing-spacing, 12px)}[dir=rtl] .mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]){padding-left:var(--mat-menu-item-with-icon-trailing-spacing, 12px);padding-right:var(--mat-menu-item-with-icon-leading-spacing, 12px)}.mat-mdc-menu-item,.mat-mdc-menu-item:visited,.mat-mdc-menu-item:link{color:var(--mat-menu-item-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-menu-item .mat-icon-no-color,.mat-mdc-menu-item .mat-mdc-menu-submenu-icon{color:var(--mat-menu-item-icon-color, var(--mat-sys-on-surface-variant))}.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:focus{outline:0}.mat-mdc-menu-item .mat-icon{flex-shrink:0;margin-right:var(--mat-menu-item-spacing, 12px);height:var(--mat-menu-item-icon-size, 24px);width:var(--mat-menu-item-icon-size, 24px)}[dir=rtl] .mat-mdc-menu-item{text-align:right}[dir=rtl] .mat-mdc-menu-item .mat-icon{margin-right:0;margin-left:var(--mat-menu-item-spacing, 12px)}.mat-mdc-menu-item:not([disabled]):hover{background-color:var(--mat-menu-item-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}.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, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent))}@media(forced-colors: active){.mat-mdc-menu-item{margin-top:1px}}.mat-mdc-menu-submenu-icon{width:var(--mat-menu-item-icon-size, 24px);height:10px;fill:currentColor;padding-left:var(--mat-menu-item-spacing, 12px)}[dir=rtl] .mat-mdc-menu-submenu-icon{padding-right:var(--mat-menu-item-spacing, 12px);padding-left:0}[dir=rtl] .mat-mdc-menu-submenu-icon polygon{transform:scaleX(-1);transform-origin:center}@media(forced-colors: 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}\n'],encapsulation:2,changeDetection:0})}return t})();const Vge=new Z("mat-menu-scroll-strategy",{providedIn:"root",factory:()=>{const t=D(He);return()=>Bf(t)}}),bu=new WeakMap;let Hge=(()=>{class t{_canHaveBackdrop;_element=D(Re);_viewContainerRef=D(Ei);_menuItemInstance=D(As,{optional:!0,self:!0});_dir=D(br,{optional:!0});_focusMonitor=D(ec);_ngZone=D(_e);_injector=D(He);_scrollStrategy=D(Vge);_changeDetectorRef=D(Jt);_animationsDisabled=ci();_portal;_overlayRef=null;_menuOpen=!1;_closingActionsSubscription=pt.EMPTY;_menuCloseSubscription=pt.EMPTY;_pendingRemoval;_parentMaterialMenu;_parentInnerPadding;_openedBy=void 0;get _menu(){return this._menuInternal}set _menu(e){e!==this._menuInternal&&(this._menuInternal=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()))}_menuInternal=null;constructor(e){this._canHaveBackdrop=e;const i=D(Sk,{optional:!0});this._parentMaterialMenu=i instanceof Jr?i:void 0}ngOnDestroy(){this._menu&&this._ownsMenu(this._menu)&&bu.delete(this._menu),this._pendingRemoval?.unsubscribe(),this._menuCloseSubscription.unsubscribe(),this._closingActionsSubscription.unsubscribe(),this._overlayRef&&(this._overlayRef.dispose(),this._overlayRef=null)}get menuOpen(){return this._menuOpen}get dir(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}_triggersSubmenu(){return!!(this._menuItemInstance&&this._parentMaterialMenu&&this._menu)}_closeMenu(){this._menu?.close.emit()}_openMenu(e){if(this._triggerIsAriaDisabled())return;const i=this._menu;if(this._menuOpen||!i)return;this._pendingRemoval?.unsubscribe();const o=bu.get(i);bu.set(i,this),o&&o!==this&&o._closeMenu();const r=this._createOverlay(i),s=r.getConfig(),a=s.positionStrategy;this._setPosition(i,a),s.hasBackdrop=this._canHaveBackdrop?null==i.hasBackdrop?!this._triggersSubmenu():i.hasBackdrop:i.hasBackdrop??!1,r.hasAttached()||(r.attach(this._getPortal(i)),i.lazyContent?.attach(this.menuData)),this._closingActionsSubscription=this._menuClosingActions().subscribe(()=>this._closeMenu()),i.parentMenu=this._triggersSubmenu()?this._parentMaterialMenu:void 0,i.direction=this.dir,e&&i.focusFirstItem(this._openedBy||"program"),this._setIsMenuOpen(!0),i instanceof Jr&&(i._setIsOpen(!0),i._directDescendantItems.changes.pipe(fn(i.close)).subscribe(()=>{a.withLockedPosition(!1).reapplyLastPosition(),a.withLockedPosition(!0)}))}focus(e,i){this._focusMonitor&&e?this._focusMonitor.focusVia(this._element,e,i):this._element.nativeElement.focus(i)}_destroyMenu(e){const i=this._overlayRef,o=this._menu;!i||!this.menuOpen||(this._closingActionsSubscription.unsubscribe(),this._pendingRemoval?.unsubscribe(),o instanceof Jr&&this._ownsMenu(o)?(this._pendingRemoval=o._animationDone.pipe(Cn(1)).subscribe(()=>{i.detach(),bu.has(o)||o.lazyContent?.detach()}),o._setIsOpen(!1)):(i.detach(),o?.lazyContent?.detach()),o&&this._ownsMenu(o)&&bu.delete(o),this.restoreFocus&&("keydown"===e||!this._openedBy||!this._triggersSubmenu())&&this.focus(this._openedBy),this._openedBy=void 0,this._setIsMenuOpen(!1))}_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=Xd(this._injector,i),this._overlayRef.keydownEvents().subscribe(o=>{this._menu instanceof Jr&&this._menu._handleKeydown(o)})}return this._overlayRef}_getOverlayConfig(e){return new Vf({positionStrategy:xb(this._injector,this._getOverlayOrigin()).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||"ltr",disableAnimations:this._animationsDisabled})}_subscribeToPositions(e,i){e.setPositionClasses&&i.positionChanges.subscribe(o=>{this._ngZone.run(()=>{e.setPositionClasses("start"===o.connectionPair.overlayX?"after":"before","top"===o.connectionPair.overlayY?"below":"above")})})}_setPosition(e,i){let[o,r]="before"===e.xPosition?["end","start"]:["start","end"],[s,a]="above"===e.yPosition?["bottom","top"]:["top","bottom"],[l,c]=[s,a],[f,m]=[o,r],g=0;if(this._triggersSubmenu()){if(m=o="before"===e.xPosition?"start":"end",r=f="end"===o?"start":"end",this._parentMaterialMenu){if(null==this._parentInnerPadding){const _=this._parentMaterialMenu.items.first;this._parentInnerPadding=_?_._getHostElement().offsetTop:0}g="bottom"===s?this._parentInnerPadding:-this._parentInnerPadding}}else e.overlapTrigger||(l="top"===s?"bottom":"top",c="top"===a?"bottom":"top");i.withPositions([{originX:o,originY:l,overlayX:f,overlayY:s,offsetY:g},{originX:r,originY:l,overlayX:m,overlayY:s,offsetY:g},{originX:o,originY:c,overlayX:f,overlayY:a,offsetY:-g},{originX:r,originY:c,overlayX:m,overlayY:a,offsetY:-g}])}_menuClosingActions(){const e=this._getOutsideClickStream(this._overlayRef),i=this._overlayRef.detachments();return Cr(e,this._parentMaterialMenu?this._parentMaterialMenu.closed:ae(),this._parentMaterialMenu?this._parentMaterialMenu._hovered().pipe(Tn(s=>this._menuOpen&&s!==this._menuItemInstance)):ae(),i)}_getPortal(e){return(!this._portal||this._portal.templateRef!==e.templateRef)&&(this._portal=new Yl(e.templateRef,this._viewContainerRef)),this._portal}_ownsMenu(e){return bu.get(e)===this}_triggerIsAriaDisabled(){return De(this._element.nativeElement.getAttribute("aria-disabled"))}static \u0275fac=function(i){B1()};static \u0275dir=de({type:t})}return t})(),vu=(()=>{class t extends Hge{_cleanupTouchstart;_hoverSubscription=pt.EMPTY;get _deprecatedMatMenuTriggerFor(){return this.menu}set _deprecatedMatMenuTriggerFor(e){this.menu=e}get menu(){return this._menu}set menu(e){this._menu=e}menuData;restoreFocus=!0;menuOpened=new we;onMenuOpen=this.menuOpened;menuClosed=new we;onMenuClose=this.menuClosed;constructor(){super(!0);const e=D(Qn);this._cleanupTouchstart=e.listen(this._element.nativeElement,"touchstart",i=>{CS(i)||(this._openedBy="touch")},{passive:!0})}triggersSubmenu(){return super._triggersSubmenu()}toggleMenu(){return this.menuOpen?this.closeMenu():this.openMenu()}openMenu(){this._openMenu(!0)}closeMenu(){this._closeMenu()}updatePosition(){this._overlayRef?.updatePosition()}ngAfterContentInit(){this._handleHover()}ngOnDestroy(){super.ngOnDestroy(),this._cleanupTouchstart(),this._hoverSubscription.unsubscribe()}_getOverlayOrigin(){return this._element}_getOutsideClickStream(e){return e.backdropClick()}_handleMousedown(e){yS(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().subscribe(e=>{e===this._menuItemInstance&&!e.disabled&&"void"!==this._parentMaterialMenu?._panelAnimationState&&(this._openedBy="mouse",this._openMenu(!1))}))}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","mat-menu-trigger-for",""],["","matMenuTriggerFor",""]],hostAttrs:[1,"mat-mdc-menu-trigger"],hostVars:3,hostBindings:function(i,o){1&i&&F("click",function(s){return o._handleClick(s)})("mousedown",function(s){return o._handleMousedown(s)})("keydown",function(s){return o._handleKeydown(s)}),2&i&&$e("aria-haspopup",o.menu?"menu":null)("aria-expanded",o.menuOpen)("aria-controls",o.menuOpen?null==o.menu?null:o.menu.panelId:null)},inputs:{_deprecatedMatMenuTriggerFor:[0,"mat-menu-trigger-for","_deprecatedMatMenuTriggerFor"],menu:[0,"matMenuTriggerFor","menu"],menuData:[0,"matMenuTriggerData","menuData"],restoreFocus:[0,"matMenuTriggerRestoreFocus","restoreFocus"]},outputs:{menuOpened:"menuOpened",onMenuOpen:"onMenuOpen",menuClosed:"menuClosed",onMenuClose:"onMenuClose"},exportAs:["matMenuTrigger"],features:[be]})}return t})(),jge=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({imports:[IS,Zd,ii,Rf]})}return t})();const oV=()=>["1"],Ia=t=>[t],rV=t=>({number:t});function Uge(t,n){if(1&t&&(h(0,"a",4)(1,"mat-icon",10),p(2,"chevron_left"),u(),p(3),b(4,"translate"),u()),2&t){const e=v();C("routerLink",e.linkParts.concat(Ct(6,oV)))("queryParams",e.queryParams),d(),C("inline",!0),d(2),E(" ",y(4,4,"paginator.first")," ")}}function zge(t,n){if(1&t&&(h(0,"a",5)(1,"mat-icon",10),p(2,"chevron_left"),u(),h(3,"span",11),p(4),b(5,"translate"),u()()),2&t){const e=v();C("routerLink",e.linkParts.concat(Ct(6,oV)))("queryParams",e.queryParams),d(),C("inline",!0),d(3),M(y(5,4,"paginator.first"))}}function $ge(t,n){if(1&t&&(h(0,"a",4)(1,"div")(2,"mat-icon",10),p(3,"chevron_left"),u()()()),2&t){const e=v();C("routerLink",e.linkParts.concat(se(3,Ia,(e.currentPage-1).toString())))("queryParams",e.queryParams),d(2),C("inline",!0)}}function Wge(t,n){if(1&t&&(h(0,"a",4),p(1),u()),2&t){const e=v();C("routerLink",e.linkParts.concat(se(3,Ia,(e.currentPage-2).toString())))("queryParams",e.queryParams),d(),M(e.currentPage-2)}}function Gge(t,n){if(1&t&&(h(0,"a",6),p(1),u()),2&t){const e=v();C("routerLink",e.linkParts.concat(se(3,Ia,(e.currentPage-1).toString())))("queryParams",e.queryParams),d(),M(e.currentPage-1)}}function qge(t,n){if(1&t&&(h(0,"a",6),p(1),u()),2&t){const e=v();C("routerLink",e.linkParts.concat(se(3,Ia,(e.currentPage+1).toString())))("queryParams",e.queryParams),d(),M(e.currentPage+1)}}function Kge(t,n){if(1&t&&(h(0,"a",4),p(1),u()),2&t){const e=v();C("routerLink",e.linkParts.concat(se(3,Ia,(e.currentPage+2).toString())))("queryParams",e.queryParams),d(),M(e.currentPage+2)}}function Yge(t,n){if(1&t&&(h(0,"a",4)(1,"div")(2,"mat-icon",10),p(3,"chevron_right"),u()()()),2&t){const e=v();C("routerLink",e.linkParts.concat(se(3,Ia,(e.currentPage+1).toString())))("queryParams",e.queryParams),d(2),C("inline",!0)}}function Xge(t,n){if(1&t&&(h(0,"a",4),p(1),b(2,"translate"),h(3,"mat-icon",10),p(4,"chevron_right"),u()()),2&t){const e=v();C("routerLink",e.linkParts.concat(se(6,Ia,e.numberOfPages.toString())))("queryParams",e.queryParams),d(),E(" ",y(2,4,"paginator.last")," "),d(2),C("inline",!0)}}function Zge(t,n){if(1&t&&(h(0,"a",5)(1,"mat-icon",10),p(2,"chevron_right"),u(),h(3,"span",11),p(4),b(5,"translate"),u()()),2&t){const e=v();C("routerLink",e.linkParts.concat(se(6,Ia,e.numberOfPages.toString())))("queryParams",e.queryParams),d(),C("inline",!0),d(3),M(y(5,4,"paginator.last"))}}function Qge(t,n){if(1&t&&(h(0,"div",8),p(1),b(2,"translate"),u()),2&t){const e=v();d(),M(pe(2,1,"paginator.total",se(4,rV,e.numberOfPages)))}}function Jge(t,n){if(1&t&&(h(0,"div",9),p(1),b(2,"translate"),u()),2&t){const e=v();d(),M(pe(2,1,"paginator.total",se(4,rV,e.numberOfPages)))}}let mv=(()=>{class t{constructor(e,i){this.dialog=e,this.router=i,this.linkParts=[""],this.queryParams={}}openSelectionDialog(){const e=[];for(let i=1;i<=this.numberOfPages;i++)e.push({label:i.toString()});ao.openDialog(this.dialog,e,"paginator.select-page-title").afterClosed().subscribe(i=>{i&&this.router.navigate(this.linkParts.concat([i.toString()]),{queryParams:this.queryParams})})}static{this.\u0275fac=function(i){return new(i||t)(O(Ot),O(vt))}}static{this.\u0275cmp=re({type:t,selectors:[["app-paginator"]],inputs:{currentPage:"currentPage",numberOfPages:"numberOfPages",linkParts:"linkParts",queryParams:"queryParams"},standalone:!1,decls:21,vars:13,consts:[[1,"main-container"],[1,"d-inline-block","small-rounded-elevated-box","mt-3"],[1,"d-flex"],[1,"responsive-height","d-md-none"],[1,"d-none","d-md-flex",3,"routerLink","queryParams"],[1,"d-flex","d-md-none","flex-column",3,"routerLink","queryParams"],[3,"routerLink","queryParams"],[1,"selected",3,"click"],[1,"d-none","d-md-block","total-pages"],[1,"d-block","d-md-none","total-pages"],[3,"inline"],[1,"label"]],template:function(i,o){1&i&&(h(0,"div",0)(1,"div",1)(2,"div",2)(3,"div",3),p(4,"\xa0"),B(5,"br"),p(6,"\xa0"),u(),x(7,Uge,5,7,"a",4),x(8,zge,6,7,"a",5),x(9,$ge,4,5,"a",4),x(10,Wge,2,5,"a",4),x(11,Gge,2,5,"a",6),h(12,"a",7),F("click",function(){return o.openSelectionDialog()}),p(13),u(),x(14,qge,2,5,"a",6),x(15,Kge,2,5,"a",4),x(16,Yge,4,5,"a",4),x(17,Xge,5,8,"a",4),x(18,Zge,6,8,"a",5),u()(),x(19,Qge,3,6,"div",8),x(20,Jge,3,6,"div",9),u()),2&i&&(d(7),S(o.currentPage>3?7:-1),d(),S(o.currentPage>2?8:-1),d(),S(o.currentPage>1?9:-1),d(),S(o.currentPage>2?10:-1),d(),S(o.currentPage>1?11:-1),d(2),M(o.currentPage),d(),S(o.currentPage3?19:-1),d(),S(o.numberOfPages>2?20:-1))},dependencies:[Is,We,xe],styles:[".main-container[_ngcontent-%COMP%]{text-align:right}.main-container[_ngcontent-%COMP%] .responsive-height[_ngcontent-%COMP%]{padding:10px 0;width:0px}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{padding:10px;border-right:rgba(255,255,255,.15) solid 1px;border-left:rgba(255,255,255,.15) solid 1px;min-width:40px;text-align:center;color:#f8f9f980;text-decoration:none;display:flex;align-items:center;justify-content:center}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{background:#0003}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:2px}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{font-size:.7rem}.main-container[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%]{color:#f8f9f9;background:#0000005c;padding:10px 20px;cursor:pointer}.main-container[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%]:hover{background:#0009}.main-container[_ngcontent-%COMP%] .total-pages[_ngcontent-%COMP%]{font-size:.6rem;margin-top:-3px;margin-right:4px}"]})}}return t})();function ip(t){return Mn((n,e)=>{let i,r,o=!1;const s=()=>{i=n.subscribe(dn(e,void 0,void 0,a=>{r||(r=new me,ji(t(r)).subscribe(dn(e,()=>i?s():o=!0))),r&&r.next(a)})),o&&(i.unsubscribe(),i=null,o=!1,s())};s()})}const es={AF:"Afghanistan",AX:"Aland Islands",AL:"Albania",DZ:"Algeria",AS:"American Samoa",AD:"Andorra",AO:"Angola",AI:"Anguilla",AQ:"Antarctica",AG:"Antigua and Barbuda",AR:"Argentina",AM:"Armenia",AW:"Aruba",AU:"Australia",AT:"Austria",AZ:"Azerbaijan",BS:"Bahamas",BH:"Bahrain",BD:"Bangladesh",BB:"Barbados",BY:"Belarus",BE:"Belgium",BZ:"Belize",BJ:"Benin",BM:"Bermuda",BT:"Bhutan",BO:"Bolivia",BA:"Bosnia and Herzegovina",BW:"Botswana",BV:"Bouvet Island",BR:"Brazil",IO:"British Indian Ocean Territory",BN:"Brunei Darussalam",BG:"Bulgaria",BF:"Burkina Faso",BI:"Burundi",KH:"Cambodia",CM:"Cameroon",CA:"Canada",CV:"Cape Verde",KY:"Cayman Islands",CF:"Central African Republic",TD:"Chad",CL:"Chile",CN:"China",CX:"Christmas Island",CC:"Cocos (Keeling) Islands",CO:"Colombia",KM:"Comoros",CG:"Congo",CD:"Congo, Democratic Republic",CK:"Cook Islands",CR:"Costa Rica",CI:"Cote D'Ivoire",HR:"Croatia",CU:"Cuba",CY:"Cyprus",CZ:"Czech Republic",DK:"Denmark",DJ:"Djibouti",DM:"Dominica",DO:"Dominican Republic",EC:"Ecuador",EG:"Egypt",SV:"El Salvador",GQ:"Equatorial Guinea",ER:"Eritrea",EE:"Estonia",ET:"Ethiopia",FK:"Falkland Islands (Malvinas)",FO:"Faroe Islands",FJ:"Fiji",FI:"Finland",FR:"France",GF:"French Guiana",PF:"French Polynesia",TF:"French Southern Territories",GA:"Gabon",GM:"Gambia",GE:"Georgia",DE:"Germany",GH:"Ghana",GI:"Gibraltar",GR:"Greece",GL:"Greenland",GD:"Grenada",GP:"Guadeloupe",GU:"Guam",GT:"Guatemala",GG:"Guernsey",GN:"Guinea",GW:"Guinea-Bissau",GY:"Guyana",HT:"Haiti",HM:"Heard Island and Mcdonald Islands",VA:"Holy See (Vatican City State)",HN:"Honduras",HK:"Hong Kong",HU:"Hungary",IS:"Iceland",IN:"India",ID:"Indonesia",IR:"Iran",IQ:"Iraq",IE:"Ireland",IM:"Isle of Man",IL:"Israel",IT:"Italy",JM:"Jamaica",JP:"Japan",JE:"Jersey",JO:"Jordan",KZ:"Kazakhstan",KE:"Kenya",KI:"Kiribati",KP:"Korea (North)",KR:"Korea (South)",XK:"Kosovo",KW:"Kuwait",KG:"Kyrgyzstan",LA:"Laos",LV:"Latvia",LB:"Lebanon",LS:"Lesotho",LR:"Liberia",LY:"Libyan Arab Jamahiriya",LI:"Liechtenstein",LT:"Lithuania",LU:"Luxembourg",MO:"Macao",MK:"Macedonia",MG:"Madagascar",MW:"Malawi",MY:"Malaysia",MV:"Maldives",ML:"Mali",MT:"Malta",MH:"Marshall Islands",MQ:"Martinique",MR:"Mauritania",MU:"Mauritius",YT:"Mayotte",MX:"Mexico",FM:"Micronesia",MD:"Moldova",MC:"Monaco",MN:"Mongolia",MS:"Montserrat",MA:"Morocco",MZ:"Mozambique",MM:"Myanmar",NA:"Namibia",NR:"Nauru",NP:"Nepal",NL:"Netherlands",AN:"Netherlands Antilles",NC:"New Caledonia",NZ:"New Zealand",NI:"Nicaragua",NE:"Niger",NG:"Nigeria",NU:"Niue",NF:"Norfolk Island",MP:"Northern Mariana Islands",NO:"Norway",OM:"Oman",PK:"Pakistan",PW:"Palau",PS:"Palestinian Territory, Occupied",PA:"Panama",PG:"Papua New Guinea",PY:"Paraguay",PE:"Peru",PH:"Philippines",PN:"Pitcairn",PL:"Poland",PT:"Portugal",PR:"Puerto Rico",QA:"Qatar",RE:"Reunion",RO:"Romania",RU:"Russian Federation",RW:"Rwanda",SH:"Saint Helena",KN:"Saint Kitts and Nevis",LC:"Saint Lucia",PM:"Saint Pierre and Miquelon",VC:"Saint Vincent and the Grenadines",WS:"Samoa",SM:"San Marino",ST:"Sao Tome and Principe",SA:"Saudi Arabia",SN:"Senegal",RS:"Serbia",ME:"Montenegro",SC:"Seychelles",SL:"Sierra Leone",SG:"Singapore",SK:"Slovakia",SI:"Slovenia",SB:"Solomon Islands",SO:"Somalia",ZA:"South Africa",GS:"South Georgia and the South Sandwich Islands",ES:"Spain",LK:"Sri Lanka",SD:"Sudan",SR:"Suriname",SJ:"Svalbard and Jan Mayen",SZ:"Swaziland",SE:"Sweden",CH:"Switzerland",SY:"Syrian Arab Republic",TW:"Taiwan, Province of China",TJ:"Tajikistan",TZ:"Tanzania",TH:"Thailand",TL:"Timor-Leste",TG:"Togo",TK:"Tokelau",TO:"Tonga",TT:"Trinidad and Tobago",TN:"Tunisia",TR:"Turkey",TM:"Turkmenistan",TC:"Turks and Caicos Islands",TV:"Tuvalu",UG:"Uganda",UA:"Ukraine",AE:"United Arab Emirates",GB:"United Kingdom",US:"United States",UM:"United States Minor Outlying Islands",UY:"Uruguay",UZ:"Uzbekistan",VU:"Vanuatu",VE:"Venezuela",VN:"Viet Nam",VG:"Virgin Islands, British",VI:"Virgin Islands, U.S.",WF:"Wallis and Futuna",EH:"Western Sahara",YE:"Yemen",ZM:"Zambia",ZW:"Zimbabwe",ZZ:"Unknown"};let Rs=(()=>{class t{constructor(e){this.apiService=e}changeAppState(e,i,o){return this.apiService.put(`visors/${e}/apps/${encodeURIComponent(i)}`,{status:o?1:0})}changeAppAutostart(e,i,o){return this.changeAppSettings(e,i,{autostart:o})}changeAppSettings(e,i,o){return this.apiService.put(`visors/${e}/apps/${encodeURIComponent(i)}`,o)}getLogMessages(e,i,o){const s=EF(-1!==o?Date.now()-864e5*o:0,"yyyy-MM-ddTHH:mm:ssZZZZZ","en-US");return this.apiService.get(this.getLogMessagesUrl(e,i)+`?since=${s}`).pipe(Se(a=>a.logs))}getLogMessagesUrl(e,i){return`visors/${e}/apps/${encodeURIComponent(i)}/logs`}static{this.\u0275fac=function(i){return new(i||t)(ce(zi))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();var _n=function(t){return t.None="None",t.Favorite="Favorite",t.Blocked="Blocked",t}(_n||{}),Zo=function(t){return t.BitsSpeedAndBytesVolume="BitsSpeedAndBytesVolume",t.OnlyBytes="OnlyBytes",t.OnlyBits="OnlyBits",t}(Zo||{});let uc=(()=>{class t{constructor(e,i){this.router=e,this.storageService=i,this.maxHistoryElements=30,this.savedServersStorageKey="VpnServers",this.checkIpSettingStorageKey="VpnGetIp",this.dataUnitsSettingStorageKey="VpnDataUnits",this.serversMap=new Map,this.savedDataVersion=0,this.currentServerSubject=new oo(1),this.historySubject=new oo(1),this.favoritesSubject=new oo(1),this.blockedSubject=new oo(1)}initialize(){this.migrateDataToHvStorage(),this.serversMap=new Map;const e=this.storageService.getDataForHv(this.savedServersStorageKey);if(e){const i=JSON.parse(e);i.serverList.forEach(o=>{this.serversMap.set(o.pk,o)}),this.savedDataVersion=i.version,i.selectedServerPk&&this.updateCurrentServerPk(i.selectedServerPk)}this.launchListEvents()}migrateDataToHvStorage(){const e=localStorage.getItem(this.savedServersStorageKey);e&&(this.storageService.setDataForHv(this.savedServersStorageKey,e),localStorage.removeItem(this.savedServersStorageKey));const i=localStorage.getItem(this.checkIpSettingStorageKey);i&&(this.storageService.setDataForHv(this.checkIpSettingStorageKey,i),localStorage.removeItem(this.checkIpSettingStorageKey));const o=localStorage.getItem(this.dataUnitsSettingStorageKey);o&&(this.storageService.setDataForHv(this.dataUnitsSettingStorageKey,o),localStorage.removeItem(this.dataUnitsSettingStorageKey))}get currentServer(){return this.serversMap.get(this.currentServerPk)}get currentServerObservable(){return this.currentServerSubject.asObservable()}get history(){return this.historySubject.asObservable()}get favorites(){return this.favoritesSubject.asObservable()}get blocked(){return this.blockedSubject.asObservable()}getSavedVersion(e,i){return i&&this.checkIfDataWasChanged(),this.serversMap.get(e)}getCheckIpSetting(){const e=this.storageService.getDataForHv(this.checkIpSettingStorageKey);return null==e||"false"!==e}setCheckIpSetting(e){this.storageService.setDataForHv(this.checkIpSettingStorageKey,e?"true":"false")}getDataUnitsSetting(){return this.storageService.getDataForHv(this.dataUnitsSettingStorageKey)??Zo.BitsSpeedAndBytesVolume}setDataUnitsSetting(e){this.storageService.setDataForHv(this.dataUnitsSettingStorageKey,e)}updateFromDiscovery(e){this.checkIfDataWasChanged(),e.forEach(i=>{if(this.serversMap.has(i.pk)){const o=this.serversMap.get(i.pk);o.countryCode=i.countryCode,o.name=i.name,o.location=i.location,o.note=i.note}}),this.saveData()}updateServer(e){this.serversMap.set(e.pk,e),this.cleanServers(),this.saveData()}processFromDiscovery(e){this.checkIfDataWasChanged();const i=this.serversMap.get(e.pk);return i?(i.countryCode=e.countryCode,i.name=e.name,i.location=e.location,i.note=e.note,this.saveData(),i):{countryCode:e.countryCode,name:e.name,customName:null,pk:e.pk,lastUsed:0,inHistory:!1,flag:_n.None,location:e.location,personalNote:null,note:e.note,enteredManually:!1,usedWithPassword:!1}}processFromManual(e){this.checkIfDataWasChanged();const i=this.serversMap.get(e.pk);return i?(i.customName=e.name,i.personalNote=e.note,i.enteredManually=!0,this.saveData(),i):{countryCode:"zz",name:"",customName:e.name,pk:e.pk,lastUsed:0,inHistory:!1,flag:_n.None,location:"",personalNote:e.note,note:"",enteredManually:!0,usedWithPassword:!1}}changeFlag(e,i){this.checkIfDataWasChanged();const o=this.serversMap.get(e.pk);o&&(e=o),e.flag!==i&&(e.flag=i,this.serversMap.has(e.pk)||this.serversMap.set(e.pk,e),this.cleanServers(),this.saveData())}removeFromHistory(e){this.checkIfDataWasChanged();const i=this.serversMap.get(e);!i||!i.inHistory||(i.inHistory=!1,this.cleanServers(),this.saveData())}modifyCurrentServer(e){this.checkIfDataWasChanged(),e.pk!==this.currentServerPk&&(this.serversMap.has(e.pk)||this.serversMap.set(e.pk,e),this.updateCurrentServerPk(e.pk),this.cleanServers(),this.saveData())}compareCurrentServer(e){if(this.checkIfDataWasChanged(),e){if(!this.currentServerPk||this.currentServerPk!==e){if(this.currentServerPk=e,!this.serversMap.get(e)){const o=this.processFromManual({pk:e});this.serversMap.set(o.pk,o),this.cleanServers()}this.saveData(),this.currentServerSubject.next(this.currentServer)}}else this.currentServerPk&&(this.currentServerPk=null,this.saveData(),this.currentServerSubject.next(this.currentServer))}updateHistory(){this.checkIfDataWasChanged(),this.currentServer.lastUsed=Date.now(),this.currentServer.inHistory=!0;let e=[];this.serversMap.forEach(o=>{o.inHistory&&e.push(o)}),e=e.sort((o,r)=>r.lastUsed-o.lastUsed);let i=0;e.forEach(o=>{i{!i.inHistory&&i.flag===_n.None&&i.pk!==this.currentServerPk&&!i.customName&&!i.personalNote&&e.push(i.pk)}),e.forEach(i=>{this.serversMap.delete(i)})}saveData(){let e=0;const i=this.storageService.getDataForHv(this.savedServersStorageKey);if(i&&(e=JSON.parse(i).version),e!==this.savedDataVersion)return void this.router.navigate(["vpn","unavailable"],{queryParams:{problem:"storage"}});this.savedDataVersion+=1;const o={version:this.savedDataVersion,serverList:Array.from(this.serversMap.values()),selectedServerPk:this.currentServerPk},r=JSON.stringify(o);this.storageService.setDataForHv(this.savedServersStorageKey,r),this.launchListEvents()}checkIfDataWasChanged(){let e=0;const i=this.storageService.getDataForHv(this.savedServersStorageKey);i&&(e=JSON.parse(i).version),e!==this.savedDataVersion&&this.initialize()}launchListEvents(){const e=[],i=[],o=[];this.serversMap.forEach(r=>{r.inHistory&&e.push(r),r.flag===_n.Favorite&&i.push(r),r.flag===_n.Blocked&&o.push(r)}),this.historySubject.next(e),this.favoritesSubject.next(i),this.blockedSubject.next(o)}updateCurrentServerPk(e){this.currentServerPk=e,this.currentServerSubject.next(this.currentServer)}static{this.\u0275fac=function(i){return new(i||t)(ce(vt),ce(ti))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();var an=function(t){return t.Stopped="stopped",t.Connecting="Connecting",t.Running="Running",t.ShuttingDown="Shutting down",t.Reconnecting="Connection failed, reconnecting",t}(an||{});class e_e{constructor(){this.updateDate=Date.now()}}class t_e{}class n_e{constructor(){this.latency=0,this.uploadSpeed=0,this.downloadSpeed=0,this.totalUploaded=0,this.totalDownloaded=0,this.connectionDuration=0,this.error=""}}var Ri=function(t){return t[t.PerformingInitialCheck=1]="PerformingInitialCheck",t[t.Off=10]="Off",t[t.Starting=20]="Starting",t[t.Running=100]="Running",t[t.Disconnecting=200]="Disconnecting",t}(Ri||{}),Dr=function(t){return t[t.Busy=1]="Busy",t[t.Ok=2]="Ok",t[t.MustStop=3]="MustStop",t[t.SamePkRunning=4]="SamePkRunning",t[t.SamePkStopped=5]="SamePkStopped",t}(Dr||{});let hc=(()=>{class t{constructor(e,i,o,r,s,a,l){this.apiService=e,this.appsService=i,this.router=o,this.vpnSavedDataService=r,this.http=s,this.snackbarService=a,this.translateService=l,this.vpnClientAppName="vpn-client",this.standardWaitTime=2e3,this.stateSubject=new ki(null),this.errorSubject=new ki(!1),this.working=!0,this.requestedServer=null,this.requestedPassword=null,this.updatesStopped=!1,this.currentEventData=new e_e,this.currentEventData.busy=!0,this.lastServiceState=Ri.PerformingInitialCheck}initialize(e){e&&(this.nodeKey?e!==this.nodeKey?this.router.navigate(["vpn","unavailable"],{queryParams:{problem:"pkChange"}}):this.updatesStopped&&(this.updatesStopped=!1,this.updateData()):(this.nodeKey=e,this.vpnSavedDataService.initialize(),this.updateData()))}get backendState(){return this.stateSubject.asObservable()}get errorsConnecting(){return this.errorSubject.asObservable()}updateData(){this.continuallyUpdateData(0)}start(){return!this.working&&this.lastServiceState<20&&(this.changeAppState(!0),!0)}stop(){return!this.working&&this.lastServiceState>=20&&this.lastServiceState<200&&(this.changeAppState(!1),!0)}getIpData(){return this.http.request("GET",window.location.protocol+"//ip.skycoin.com/").pipe(ip(e=>Ts(e.pipe(li(this.standardWaitTime),Cn(4)),mr(""))),Se(e=>[e&&e.ip_address?e.ip_address:this.translateService.instant("common.unknown"),e&&e.country_name?e.country_name:this.translateService.instant("common.unknown")]))}changeServerUsingHistory(e,i){return this.requestedServer=e,this.requestedPassword=i,this.updateRequestedServerPasswordSetting(),this.changeServer()}changeServerUsingDiscovery(e,i){return this.requestedServer=this.vpnSavedDataService.processFromDiscovery(e),this.requestedPassword=i,this.updateRequestedServerPasswordSetting(),this.changeServer()}changeServerManually(e,i){return this.requestedServer=this.vpnSavedDataService.processFromManual(e),this.requestedPassword=i,this.updateRequestedServerPasswordSetting(),this.changeServer()}updateRequestedServerPasswordSetting(){this.requestedServer.usedWithPassword=!!this.requestedPassword&&""!==this.requestedPassword;const e=this.vpnSavedDataService.getSavedVersion(this.requestedServer.pk,!0);e&&(e.usedWithPassword=this.requestedServer.usedWithPassword,this.vpnSavedDataService.updateServer(e))}changeServer(){return!this.working&&(this.stop()||this.processServerChange(),!0)}checkNewPk(e){return this.working?Dr.Busy:this.lastServiceState!==Ri.Off?e===this.vpnSavedDataService.currentServer.pk?Dr.SamePkRunning:Dr.MustStop:this.vpnSavedDataService.currentServer&&e===this.vpnSavedDataService.currentServer.pk?Dr.SamePkStopped:Dr.Ok}processServerChange(){this.dataSubscription&&this.dataSubscription.unsubscribe();const e={pk:this.requestedServer.pk};e.passcode=this.requestedPassword?this.requestedPassword:"",this.stopContinuallyUpdatingData(),this.working=!0,this.sendUpdate(),this.dataSubscription=this.appsService.changeAppSettings(this.nodeKey,this.vpnClientAppName,e).subscribe(()=>{this.vpnSavedDataService.modifyCurrentServer(this.requestedServer),this.requestedServer=null,this.requestedPassword=null,this.working=!1,this.start()},i=>{i=Qe(i),this.snackbarService.showError("vpn.server-change.backend-error",null,!1,i.originalServerErrorMsg),this.working=!1,this.requestedServer=null,this.requestedPassword=null,this.sendUpdate(),this.updateData()})}changeAppState(e){if(this.working)return;this.stopContinuallyUpdatingData(),this.working=!0,this.sendUpdate();const i={status:1};e?(this.lastServiceState=Ri.Starting,this.connectionHistoryPk=null):(this.lastServiceState=Ri.Disconnecting,i.status=0),this.dataSubscription&&this.dataSubscription.unsubscribe(),this.dataSubscription=this.appsService.changeAppSettings(this.nodeKey,this.vpnClientAppName,i).pipe(Ui(o=>this.getVpnClientState().pipe(It(r=>{if(r){if(e&&r.running)return ae(!0);if(!e&&!r.running)return ae(!0)}return mr(o)}))),ip(o=>Ts(o.pipe(li(this.standardWaitTime),Cn(3)),o.pipe(It(r=>mr(r)))))).subscribe(o=>{this.working=!1;const r=this.processAppData(o);this.lastServiceState=r.running?Ri.Running:Ri.Off,this.currentEventData.vpnClientAppData=r,this.currentEventData.updateDate=Date.now(),this.sendUpdate(),this.updateData(),!e&&this.requestedServer&&this.processServerChange()},o=>{o=Qe(o),this.snackbarService.showError(this.lastServiceState===Ri.Starting?"vpn.status-page.problem-starting-error":this.lastServiceState===Ri.Disconnecting?"vpn.status-page.problem-stopping-error":"vpn.status-page.generic-problem-error",null,!1,o.originalServerErrorMsg),this.working=!1,this.sendUpdate(),this.updateData()})}continuallyUpdateData(e){if(this.working&&this.lastServiceState!==Ri.PerformingInitialCheck)return;this.continuousUpdateSubscription&&this.continuousUpdateSubscription.unsubscribe();let i=0;this.continuousUpdateSubscription=ae(0).pipe(li(e),It(()=>this.getVpnClientState()),ip(o=>o.pipe(It(r=>(this.errorSubject.next(!0),Xr.currentInstance.showDataProblemMsg(),(r=Qe(r)).originalError&&r.originalError.status&&401===r.originalError.status?mr(r):this.lastServiceState!==Ri.PerformingInitialCheck||i<4?(i+=1,ae(r).pipe(li(this.standardWaitTime))):mr(r)))))).subscribe(o=>{o?(this.errorSubject.next(!1),Xr.currentInstance.hideDataProblemMsg(),this.lastServiceState===Ri.PerformingInitialCheck&&(this.working=!1),this.vpnSavedDataService.compareCurrentServer(o.serverPk),this.lastServiceState=o.running?Ri.Running:Ri.Off,this.currentEventData.vpnClientAppData=o,this.currentEventData.updateDate=Date.now(),this.sendUpdate()):this.lastServiceState===Ri.PerformingInitialCheck&&(this.router.navigate(["vpn","unavailable"]),this.nodeKey=null,this.updatesStopped=!0),this.continuallyUpdateData(this.standardWaitTime)},o=>{(o=Qe(o)).originalError&&o.originalError.status&&401===o.originalError.status||(this.router.navigate(["vpn","unavailable"]),this.nodeKey=null),this.updatesStopped=!0})}stopContinuallyUpdatingData(){this.continuousUpdateSubscription&&this.continuousUpdateSubscription.unsubscribe()}getVpnClientState(){let e;const i=new qo;return i.vpnKeyForAuth=this.nodeKey,this.apiService.get(`visors/${this.nodeKey}/summary`,i).pipe(It(o=>{let r;if(o&&o.overview)if(this.visorPublicIp=o.overview.public_ip&&o.overview.public_ip.trim()?o.overview.public_ip:null,o.overview.country_code){this.visorCountryCode=o.overview.country_code;const s=es[o.overview.country_code.toUpperCase()];this.visorCountryName=s||o.overview.country_code}else this.visorCountryCode=null,this.visorCountryName=null;if(o&&o.overview&&o.overview.apps&&o.overview.apps.length>0&&o.overview.apps.forEach(s=>{s.name===this.vpnClientAppName&&(r=s)}),r&&(e=this.processAppData(r)),e.minHops=o.min_hops?o.min_hops:0,e&&e.running){const s=new qo;return s.vpnKeyForAuth=this.nodeKey,this.apiService.get(`visors/${this.nodeKey}/apps/${this.vpnClientAppName}/connections`,s)}return ae(null)}),Se(o=>{if(o&&o.length>0){const r=new n_e;o.forEach(s=>{r.latency+=s.latency/o.length,r.uploadSpeed+=s.upload_speed/o.length,r.downloadSpeed+=s.download_speed/o.length,r.totalUploaded+=s.bandwidth_sent,r.totalDownloaded+=s.bandwidth_received,s.error&&(r.error=s.error),s.connection_duration>r.connectionDuration&&(r.connectionDuration=s.connection_duration)}),(!this.connectionHistoryPk||this.connectionHistoryPk!==e.serverPk)&&(this.connectionHistoryPk=e.serverPk,this.uploadSpeedHistory=[0,0,0,0,0,0,0,0,0,0],this.downloadSpeedHistory=[0,0,0,0,0,0,0,0,0,0],this.latencyHistory=[0,0,0,0,0,0,0,0,0,0]),r.latency=Math.round(r.latency),r.uploadSpeed=Math.round(r.uploadSpeed),r.downloadSpeed=Math.round(r.downloadSpeed),r.totalUploaded=Math.round(r.totalUploaded),r.totalDownloaded=Math.round(r.totalDownloaded),this.uploadSpeedHistory.splice(0,1),this.uploadSpeedHistory.push(r.uploadSpeed),r.uploadSpeedHistory=this.uploadSpeedHistory,this.downloadSpeedHistory.splice(0,1),this.downloadSpeedHistory.push(r.downloadSpeed),r.downloadSpeedHistory=this.downloadSpeedHistory,this.latencyHistory.splice(0,1),this.latencyHistory.push(r.latency),r.latencyHistory=this.latencyHistory,e.connectionData=r}return e}))}processAppData(e){const i=new t_e;if(i.running=0!==e.status&&2!==e.status,i.connectionDuration=e.connection_duration,i.appState=an.Stopped,i.running?e.detailed_status===an.Connecting||3===e.status?i.appState=an.Connecting:e.detailed_status===an.Running?i.appState=an.Running:e.detailed_status===an.ShuttingDown?i.appState=an.ShuttingDown:e.detailed_status===an.Reconnecting&&(i.appState=an.Reconnecting):2===e.status&&(i.lastErrorMsg=e.detailed_status,i.lastErrorMsg||(i.lastErrorMsg=this.translateService.instant("vpn.status-page.unknown-error"))),i.killswitch=!1,e.args&&e.args.length>0)for(let o=0;o{class t{static openDialog(e,i){const o=new nn;return o.data=i,o.autoFocus=!1,o.width=rt.mediumModalWidth,e.open(t,o)}constructor(e,i,o,r,s){this.dialogRef=e,this.data=i,this.formBuilder=o,this.snackbarService=r,this.vpnSavedDataService=s}ngOnInit(){this.form=this.formBuilder.group({value:[(this.data.editName?this.data.server.customName:this.data.server.personalNote)||""]}),setTimeout(()=>this.firstInput.nativeElement.focus())}process(){let e=this.vpnSavedDataService.getSavedVersion(this.data.server.pk,!0);e=e||this.data.server;const i=this.form.get("value").value;i!==(this.data.editName?this.data.server.customName:this.data.server.personalNote)?(this.data.editName?e.customName=i:e.personalNote=i,this.vpnSavedDataService.updateServer(e),this.snackbarService.showDone("vpn.server-options.edit-value.changes-made-confirmation"),this.dialogRef.close(!0)):this.dialogRef.close()}static{this.\u0275fac=function(i){return new(i||t)(O(Bt),O(En),O(di),O(ct),O(uc))}}static{this.\u0275cmp=re({type:t,selectors:[["app-edit-vpn-server-value"]],viewQuery:function(i,o){if(1&i&&ot(i_e,5),2&i){let r;he(r=fe())&&(o.firstInput=r.first)}},standalone:!1,decls:13,vars:11,consts:[["firstInput",""],[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","value","maxlength","100","matInput",""],["color","primary",1,"float-right",3,"action"]],template:function(i,o){1&i&&(h(0,"app-dialog",1),b(1,"translate"),h(2,"form",2)(3,"mat-form-field")(4,"div",3)(5,"label",4),p(6),b(7,"translate"),u(),B(8,"input",5,0),u()()(),h(10,"app-button",6),F("action",function(){return o.process()}),p(11),b(12,"translate"),u()()),2&i&&(C("headline",y(1,5,"vpn.server-options.edit-value."+(o.data.editName?"name":"note")+"-title"))("dialog",o.dialogRef),d(2),C("formGroup",o.form),d(4),M(y(7,7,"vpn.server-options.edit-value."+(o.data.editName?"name":"note")+"-label")),d(5),E(" ",y(12,9,"vpn.server-options.edit-value.apply-button")," "))},dependencies:[xn,Gt,qt,wn,wi,on,mn,sn,In,ui,gn,xe],encapsulation:2})}}return t})();const r_e=["firstInput"];let sV=(()=>{class t{static openDialog(e,i){const o=new nn;return o.data=i,o.autoFocus=!1,o.width=rt.mediumModalWidth,e.open(t,o)}constructor(e,i,o){this.dialogRef=e,this.data=i,this.formBuilder=o}ngOnInit(){this.form=this.formBuilder.group({password:["",this.data?void 0:Ne.required]}),setTimeout(()=>this.firstInput.nativeElement.focus())}process(){this.dialogRef.close("-"+this.form.get("password").value)}static{this.\u0275fac=function(i){return new(i||t)(O(Bt),O(En),O(di))}}static{this.\u0275cmp=re({type:t,selectors:[["app-enter-vpn-server-password"]],viewQuery:function(i,o){if(1&i&&ot(r_e,5),2&i){let r;he(r=fe())&&(o.firstInput=r.first)}},standalone:!1,decls:13,vars:12,consts:[["firstInput",""],[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","password","type","password","matInput",""],["color","primary",1,"float-right",3,"action","disabled"]],template:function(i,o){1&i&&(h(0,"app-dialog",1),b(1,"translate"),h(2,"form",2)(3,"mat-form-field")(4,"div",3)(5,"label",4),p(6),b(7,"translate"),u(),B(8,"input",5,0),u()()(),h(10,"app-button",6),F("action",function(){return o.process()}),p(11),b(12,"translate"),u()()),2&i&&(C("headline",y(1,6,"vpn.server-list.password-dialog.title"))("dialog",o.dialogRef),d(2),C("formGroup",o.form),d(4),M(y(7,8,"vpn.server-list.password-dialog.password"+(o.data?"-if-any":"")+"-label")),d(4),C("disabled",!o.form.valid),d(),E(" ",y(12,10,"vpn.server-list.password-dialog.continue-button")," "))},dependencies:[xn,Gt,qt,wn,on,mn,sn,In,ui,gn,xe],encapsulation:2})}}return t})(),hi=(()=>{class t{static{this.serverListTabStorageKey="ServerListTab"}static{this.currentPk=""}static changeCurrentPk(e){this.currentPk=e}static setDefaultTabForServerList(e){sessionStorage.setItem(t.serverListTabStorageKey,e)}static get vpnTabsData(){const e=sessionStorage.getItem(t.serverListTabStorageKey);return[{icon:"power_settings_new",label:"vpn.start",linkParts:["/vpn",this.currentPk,"status"]},{icon:"list",label:"vpn.servers",linkParts:e?["/vpn",this.currentPk,"servers",e,"1"]:["/vpn",this.currentPk,"servers"]},{icon:"settings",label:"vpn.settings",linkParts:["/vpn",this.currentPk,"settings"]}]}static getLatencyValueString(e){return e<1e3?"time-in-ms":"time-in-segs"}static getPrintableLatency(e){return e<1e3?e+"":(e/1e3).toFixed(1)}static processServerChange(e,i,o,r,s,a,l,c,f,m,g){let _;if(c&&(f||m)||f&&(c||m)||m&&(c||f))throw new Error("Invalid call");if(c)_=c.pk;else if(f)_=f.pk;else{if(!m)throw new Error("Invalid call");_=m.pk}const w=o.getSavedVersion(_,!0),k=w&&(g||w.usedWithPassword),T=i.checkNewPk(_);if(T!==Dr.Busy)if(T!==Dr.SamePkRunning||k){if(T===Dr.MustStop||T===Dr.SamePkRunning&&k){const I=Rt.createConfirmationDialog(s,"vpn.server-change.change-server-while-connected-confirmation");return void I.componentInstance.operationAccepted.subscribe(()=>{I.componentInstance.closeModal(),c?i.changeServerUsingHistory(c,g):f?i.changeServerUsingDiscovery(f,g):m&&i.changeServerManually(m,g),t.redirectAfterServerChange(e,a,l)})}if(T===Dr.SamePkStopped&&!k){const I=Rt.createConfirmationDialog(s,"vpn.server-change.start-same-server-confirmation");return void I.componentInstance.operationAccepted.subscribe(()=>{I.componentInstance.closeModal(),m&&w&&o.processFromManual(m),i.start(),t.redirectAfterServerChange(e,a,l)})}c?i.changeServerUsingHistory(c,g):f?i.changeServerUsingDiscovery(f,g):m&&i.changeServerManually(m,g),t.redirectAfterServerChange(e,a,l)}else r.showWarning("vpn.server-change.already-selected-warning");else r.showError("vpn.server-change.busy-error")}static redirectAfterServerChange(e,i,o){i&&i.close(),e.navigate(["vpn",o,"status"])}static openServerOptions(e,i,o,r,s,a){const l=[],c=[];return e.usedWithPassword?(l.push({icon:"lock_open",label:"vpn.server-options.connect-without-password"}),c.push(201),l.push({icon:"lock_outlined",label:"vpn.server-options.connect-using-another-password"}),c.push(202)):e.enteredManually&&(l.push({icon:"lock_outlined",label:"vpn.server-options.connect-using-password"}),c.push(202)),l.push({icon:"edit",label:"vpn.server-options.edit-name"}),c.push(101),l.push({icon:"subject",label:"vpn.server-options.edit-label"}),c.push(102),(!e||e.flag!==_n.Favorite)&&(l.push({icon:"star",label:"vpn.server-options.make-favorite"}),c.push(1)),e&&e.flag===_n.Favorite&&(l.push({icon:"star_outline",label:"vpn.server-options.remove-from-favorites"}),c.push(-1)),(!e||e.flag!==_n.Blocked)&&(l.push({icon:"pan_tool",label:"vpn.server-options.block"}),c.push(2)),e&&e.flag===_n.Blocked&&(l.push({icon:"thumb_up",label:"vpn.server-options.unblock"}),c.push(-2)),e&&e.inHistory&&(l.push({icon:"delete",label:"vpn.server-options.remove-from-history"}),c.push(-3)),ao.openDialog(a,l,"common.options").afterClosed().pipe(It(f=>{if(f){const m=o.getSavedVersion(e.pk,!0);if(e=m||e,c[f-=1]>200){if(201===c[f]){let g=!1;const _=Rt.createConfirmationDialog(a,"vpn.server-options.connect-without-password-confirmation");return _.componentInstance.operationAccepted.subscribe(()=>{g=!0,t.processServerChange(i,r,o,s,a,null,t.currentPk,e,null,null,null),_.componentInstance.closeModal()}),_.afterClosed().pipe(Se(()=>g))}return sV.openDialog(a,!1).afterClosed().pipe(Se(g=>!(!g||"-"===g||(t.processServerChange(i,r,o,s,a,null,t.currentPk,e,null,null,g.substr(1)),0))))}if(c[f]>100)return o_e.openDialog(a,{editName:101===c[f],server:e}).afterClosed();if(1===c[f])return t.makeFavorite(e,o,s,a);if(-1===c[f])return o.changeFlag(e,_n.None),s.showDone("vpn.server-options.remove-from-favorites-done"),ae(!0);if(2===c[f])return t.blockServer(e,o,r,s,a);if(-2===c[f])return o.changeFlag(e,_n.None),s.showDone("vpn.server-options.unblock-done"),ae(!0);if(-3===c[f])return t.removeFromHistory(e,o,s,a)}return ae(!1)}))}static removeFromHistory(e,i,o,r){let s=!1;const a=Rt.createConfirmationDialog(r,"vpn.server-options.remove-from-history-confirmation");return a.componentInstance.operationAccepted.subscribe(()=>{s=!0,i.removeFromHistory(e.pk),o.showDone("vpn.server-options.remove-from-history-done"),a.componentInstance.closeModal()}),a.afterClosed().pipe(Se(()=>s))}static makeFavorite(e,i,o,r){if(e.flag!==_n.Blocked)return i.changeFlag(e,_n.Favorite),o.showDone("vpn.server-options.make-favorite-done"),ae(!0);let s=!1;const a=Rt.createConfirmationDialog(r,"vpn.server-options.make-favorite-confirmation");return a.componentInstance.operationAccepted.subscribe(()=>{s=!0,i.changeFlag(e,_n.Favorite),o.showDone("vpn.server-options.make-favorite-done"),a.componentInstance.closeModal()}),a.afterClosed().pipe(Se(()=>s))}static blockServer(e,i,o,r,s){if(e.flag!==_n.Favorite&&(!i.currentServer||i.currentServer.pk!==e.pk))return i.changeFlag(e,_n.Blocked),r.showDone("vpn.server-options.block-done"),ae(!0);let a=!1;const l=i.currentServer&&i.currentServer.pk===e.pk;let c;c=e.flag!==_n.Favorite?"vpn.server-options.block-selected-confirmation":l?"vpn.server-options.block-selected-favorite-confirmation":"vpn.server-options.block-confirmation";const f=Rt.createConfirmationDialog(s,c);return f.componentInstance.operationAccepted.subscribe(()=>{a=!0,i.changeFlag(e,_n.Blocked),r.showDone("vpn.server-options.block-done"),l&&o.stop(),f.componentInstance.closeModal()}),f.afterClosed().pipe(Se(()=>a))}}return t})(),s_e=(()=>{class t{constructor(e){this.clipboardService=e,this.copyEvent=new we,this.errorEvent=new we,this.value=""}ngOnDestroy(){this.copyEvent.complete(),this.errorEvent.complete()}copyToClipboard(){this.clipboardService.copy(this.value)?this.copyEvent.emit(this.value):this.errorEvent.emit()}static{this.\u0275fac=function(i){return new(i||t)(O(np))}}static{this.\u0275dir=de({type:t,selectors:[["","clipboard",""]],hostBindings:function(i,o){1&i&&F("click",function(){return o.copyToClipboard()})},inputs:{value:[0,"clipboard","value"]},outputs:{copyEvent:"copyEvent",errorEvent:"errorEvent"},standalone:!1})}}return t})();const a_e=()=>({"tooltip-word-break":!0});function l_e(t,n){if(1&t&&(h(0,"span",1),p(1),u()),2&t){const e=v();d(),M(e.shortText)}}function c_e(t,n){if(1&t&&(h(0,"span"),p(1),u()),2&t){const e=v();d(),M(e.text)}}let aV=(()=>{class t{constructor(){this.short=!1,this.showTooltip=!0,this.shortTextLength=5}get shortText(){if(this.text.length>2*this.shortTextLength){const e=this.text.length;return`${this.text.slice(0,this.shortTextLength)}...${this.text.slice(e-this.shortTextLength,e)}`}return this.text}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=re({type:t,selectors:[["app-truncated-text"]],inputs:{short:"short",showTooltip:"showTooltip",text:"text",shortTextLength:"shortTextLength"},standalone:!1,decls:3,vars:5,consts:[[1,"wrapper",3,"matTooltip","matTooltipClass"],[1,"nowrap"]],template:function(i,o){1&i&&(h(0,"div",0),x(1,l_e,2,1,"span",1),x(2,c_e,2,1,"span"),u()),2&i&&(C("matTooltip",o.short&&o.showTooltip?o.text:"")("matTooltipClass",Ct(4,a_e)),d(),S(o.short?1:-1),d(),S(o.short?-1:2))},dependencies:[Kt],styles:['.cursor-pointer[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%], .wrapper[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media(max-width:767px),(min-width:992px)and (max-width:1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media(max-width:767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}.nowrap[_ngcontent-%COMP%]{white-space:nowrap}.wrapper[_ngcontent-%COMP%]{display:inline}']})}}return t})();const d_e=t=>({text:t}),u_e=()=>({"tooltip-word-break":!0});function h_e(t,n){if(1&t&&(B(0,"app-truncated-text",2),h(1,"mat-icon",3),p(2,"filter_none"),u()),2&t){const e=v();C("short",e.short)("showTooltip",!1)("shortTextLength",e.shortTextLength)("text",e.text),d(),C("inline",!0)}}function f_e(t,n){if(1&t&&(h(0,"div",1)(1,"div",4),p(2),u(),h(3,"mat-icon",3),p(4,"filter_none"),u()()),2&t){const e=v();d(2),M(e.text),d(),C("inline",!0)}}let op=(()=>{class t{constructor(e){this.snackbarService=e,this.short=!1,this.shortSimple=!1,this.shortTextLength=5}onCopyToClipboardClicked(){this.snackbarService.showDone("copy.copied")}static{this.\u0275fac=function(i){return new(i||t)(O(ct))}}static{this.\u0275cmp=re({type:t,selectors:[["app-copy-to-clipboard-text"]],inputs:{text:"text",short:"short",shortSimple:"shortSimple",shortTextLength:"shortTextLength"},standalone:!1,decls:4,vars:11,consts:[[1,"wrapper","highlight-internal-icon",3,"copyEvent","clipboard","matTooltip","matTooltipClass"],[1,"d-flex"],[1,"text-margin",3,"short","showTooltip","shortTextLength","text"],[3,"inline"],[1,"single-line","text-margin"]],template:function(i,o){1&i&&(h(0,"div",0),b(1,"translate"),F("copyEvent",function(){return o.onCopyToClipboardClicked()}),x(2,h_e,3,5),x(3,f_e,5,2,"div",1),u()),2&i&&(C("clipboard",o.text)("matTooltip",pe(1,5,o.short||o.shortSimple?"copy.tooltip-with-text":"copy.tooltip",se(8,d_e,o.text)))("matTooltipClass",Ct(10,u_e)),d(2),S(o.shortSimple?-1:2),d(),S(o.shortSimple?3:-1))},dependencies:[We,Kt,s_e,aV,xe],styles:['.cursor-pointer[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%], .wrapper[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media(max-width:767px),(min-width:992px)and (max-width:1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media(max-width:767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}.wrapper[_ngcontent-%COMP%]{display:inline}.wrapper[_ngcontent-%COMP%] .text-margin[_ngcontent-%COMP%]{margin-right:5px}.wrapper[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:.6rem;-webkit-user-select:none;user-select:none;flex-shrink:0;display:inline!important}']})}}return t})();var fc=function(t){return t[t.Seconds=0]="Seconds",t[t.Minutes=1]="Minutes",t[t.Hours=2]="Hours",t[t.Days=3]="Days",t[t.Weeks=4]="Weeks",t}(fc||{});class p_e{}class gv{static getElapsedTime(n){const e=new p_e;e.timeRepresentation=fc.Seconds,e.totalMinutes=Math.floor(n/60).toString(),e.translationVarName="second";let i=1;n>=60&&n<3600?(e.timeRepresentation=fc.Minutes,i=60,e.translationVarName="minute"):n>=3600&&n<86400?(e.timeRepresentation=fc.Hours,i=3600,e.translationVarName="hour"):n>=86400&&n<604800?(e.timeRepresentation=fc.Days,i=86400,e.translationVarName="day"):n>=604800&&(e.timeRepresentation=fc.Weeks,i=604800,e.translationVarName="week");const o=Math.floor(n/i);return e.elapsedTime=o.toString(),(e.timeRepresentation===fc.Seconds||o>1)&&(e.translationVarName=e.translationVarName+"s"),e}}const m_e=t=>({"grey-button-background":t}),lV=t=>({time:t});function g_e(t,n){1&t&&B(0,"mat-spinner",2),2&t&&C("diameter",14)}function __e(t,n){1&t&&B(0,"mat-spinner",3),2&t&&C("diameter",18)}function b_e(t,n){1&t&&(h(0,"mat-icon",5),p(1,"refresh"),u()),2&t&&C("inline",!0)}function v_e(t,n){1&t&&(h(0,"mat-icon",6),p(1,"warning"),u()),2&t&&C("inline",!0)}function y_e(t,n){if(1&t&&(x(0,b_e,2,1,"mat-icon",5),x(1,v_e,2,1,"mat-icon",6)),2&t){const e=v();S(e.showAlert?-1:0),d(),S(e.showAlert?1:-1)}}function C_e(t,n){if(1&t&&(h(0,"span",4),p(1),b(2,"translate"),u()),2&t){const e=v();d(),M(pe(2,1,"refresh-button."+e.elapsedTime.translationVarName,se(4,lV,e.elapsedTime.elapsedTime)))}}let w_e=(()=>{class t{constructor(){this.refeshRate=-1}set secondsSinceLastUpdate(e){this.elapsedTime=gv.getElapsedTime(e)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=re({type:t,selectors:[["app-refresh-button"]],inputs:{secondsSinceLastUpdate:"secondsSinceLastUpdate",showLoading:"showLoading",showAlert:"showAlert",refeshRate:"refeshRate"},standalone:!1,decls:7,vars:14,consts:[["mat-button","",1,"time-button","subtle-transparent-button","white-theme",3,"disabled","ngClass","matTooltip"],[1,"internal-container"],[1,"icon","d-none","d-md-inline-block",3,"diameter"],[1,"icon","d-md-none",3,"diameter"],[1,"d-none","d-md-inline"],[1,"icon",3,"inline"],[1,"icon","alert",3,"inline"]],template:function(i,o){1&i&&(h(0,"button",0),b(1,"translate"),h(2,"div",1),x(3,g_e,1,1,"mat-spinner",2),x(4,__e,1,1,"mat-spinner",3),x(5,y_e,2,2),x(6,C_e,3,6,"span",4),u()()),2&i&&(C("disabled",o.showLoading)("ngClass",se(10,m_e,!o.showLoading))("matTooltip",o.showAlert?pe(1,7,"refresh-button.error-tooltip",se(12,lV,o.refeshRate)):""),d(3),S(o.showLoading?3:-1),d(),S(o.showLoading?4:-1),d(),S(o.showLoading?-1:5),d(),S(o.elapsedTime?6:-1))},dependencies:[$t,Pn,We,Kt,so,xe],styles:[".time-button[_ngcontent-%COMP%]{color:#f8f9f9;border-radius:10px;height:40px}.time-button[disabled][_ngcontent-%COMP%]{opacity:.7!important;color:#f8f9f9}.time-button[disabled][_ngcontent-%COMP%] span[_ngcontent-%COMP%]{opacity:.7}.time-button[_ngcontent-%COMP%] .internal-container[_ngcontent-%COMP%]{display:flex;align-items:center}.time-button[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{font-size:16px;margin-right:5px;opacity:.5;display:inline-block}@media(max-width:767px){.time-button[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{font-size:22px;margin-right:0;opacity:.75}}.time-button[_ngcontent-%COMP%] .alert[_ngcontent-%COMP%]{color:orange;opacity:1}.time-button[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:.6rem}"]})}}return t})(),rp=(()=>{class t{static{this.accumulatedMeasurements=["B","KB","MB","GB","TB","PB","EB","ZB","YB"]}static{this.measurementsPerSec=["B/s","KB/s","MB/s","GB/s","TB/s","PB/s","EB/s","ZB/s","YB/s"]}static{this.accumulatedMeasurementsInBits=["b","Kb","Mb","Gb","Tb","Pb","Eb","Zb","Yb"]}static{this.measurementsPerSecInBits=["b/s","Kb/s","Mb/s","Gb/s","Tb/s","Pb/s","Eb/s","Zb/s","Yb/s"]}transform(e,i){let r,o=!0;i?i.showPerSecond?i.useBits?(r=t.measurementsPerSecInBits,o=!1):r=t.measurementsPerSec:i.useBits?(r=t.accumulatedMeasurementsInBits,o=!1):r=t.accumulatedMeasurements:r=t.accumulatedMeasurements;let s=new bk(e);o||(s=s.multipliedBy(8));let a=r[0],l=0;for(;s.dividedBy(1024).isGreaterThan(1);)s=s.dividedBy(1024),l+=1,a=r[l];let c="";return(!i||i.showValue)&&(c=i&&i.limitDecimals?new bk(s).decimalPlaces(1).toString():s.toFixed(2)),(!i||i.showValue&&i.showUnit)&&(c+=" "),(!i||i.showUnit)&&(c+=a),c}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275pipe=Hi({name:"autoScale",type:t,pure:!0,standalone:!1})}}return t})();const cV=(t,n)=>({"d-lg-none":t,"d-none":n}),x_e=t=>({"normal-height":t}),S_e=(t,n)=>({"d-none d-lg-flex":t,"d-flex":n}),k_e=t=>({transparent:t}),D_e=(t,n)=>({"d-lg-none":t,"d-none d-md-inline-block":n}),Dk=(t,n)=>({"mouse-disabled":t,"grey-button-background":n}),M_e=t=>({"d-none":t}),T_e=(t,n)=>({"animation-container":t,"d-none":n}),E_e=t=>({time:t}),dV=t=>({showValue:!0,showUnit:!0,showPerSecond:!0,useBits:t});function P_e(t,n){if(1&t){const e=oe();h(0,"button",21),F("click",function(){return j(e),U(v().requestAction(null))}),h(1,"mat-icon"),p(2,"chevron_left"),u()()}}function I_e(t,n){if(1&t&&(h(0,"span",5),p(1),u()),2&t){const e=v();d(),M(e.pageHeaderLabel)}}function O_e(t,n){if(1&t&&(p(0),b(1,"translate")),2&t){const e=v();E(" ",y(1,1,e.titleParts[e.titleParts.length-1])," ")}}function A_e(t,n){1&t&&B(0,"img",6)}function R_e(t,n){if(1&t){const e=oe();h(0,"div",23),F("click",function(){const o=j(e).$implicit;return U(v(2).requestAction(o.actionName))}),h(1,"mat-icon",24),p(2),u(),p(3),b(4,"translate"),u()}if(2&t){const e=n.$implicit;C("disabled",e.disabled),d(),C("ngClass",se(6,k_e,e.disabled)),d(),M(e.icon),d(),E(" ",y(4,4,e.name)," ")}}function F_e(t,n){1&t&&B(0,"div",10)}function N_e(t,n){if(1&t&&(ve(0,R_e,5,8,"div",22,Fe),x(2,F_e,1,0,"div",10)),2&t){const e=v();ye(e.optionsData),d(2),S(e.returnText?2:-1)}}function L_e(t,n){1&t&&B(0,"div",10)}function B_e(t,n){1&t&&B(0,"img",26),2&t&&C("src","assets/img/lang/"+v(2).language.iconName,mo)}function V_e(t,n){if(1&t){const e=oe();h(0,"div",25),F("click",function(){return j(e),U(v().openLanguageWindow())}),x(1,B_e,1,1,"img",26),p(2),b(3,"translate"),u()}if(2&t){const e=v();d(),S(e.language?1:-1),d(),E(" ",y(3,2,e.language?e.language.name:"")," ")}}function H_e(t,n){if(1&t){const e=oe();h(0,"div",15)(1,"a",27),b(2,"translate"),F("click",function(){return j(e),U(v().requestAction(null))}),h(3,"mat-icon",28),p(4,"chevron_left"),u()()()}if(2&t){const e=v();d(),C("matTooltip",y(2,2,e.returnText)),d(2),C("inline",!0)}}function j_e(t,n){if(1&t&&(h(0,"span",31),p(1),u()),2&t){const e=v(3);d(),M(e.pageHeaderLabel)}}function U_e(t,n){1&t&&B(0,"app-copy-to-clipboard-text",32),2&t&&C("text",Qt(v(3).pageHeaderIdentifier))("short",!1)}function z_e(t,n){if(1&t&&(h(0,"span",29),x(1,j_e,2,1,"span",31),x(2,U_e,1,3,"app-copy-to-clipboard-text",32),u()),2&t){const e=v(2);d(),S(e.pageHeaderLabel?1:-1),d(),S(e.pageHeaderIdentifier?2:-1)}}function $_e(t,n){if(1&t&&(h(0,"span",30),p(1),b(2,"translate"),u()),2&t){const e=v(2);d(),E(" ",y(2,1,e.titleParts[e.titleParts.length-1])," ")}}function W_e(t,n){if(1&t&&x(0,z_e,3,2,"span",29)(1,$_e,3,3,"span",30),2&t){const e=v();S(e.pageHeaderLabel||e.pageHeaderIdentifier?0:1)}}function G_e(t,n){1&t&&B(0,"img",16)}function q_e(t,n){1&t&&B(0,"span",33)}function K_e(t,n){if(1&t&&(h(0,"a",34)(1,"mat-icon",28),p(2),u(),h(3,"span"),p(4),b(5,"translate"),u()()),2&t){const e=v().$implicit,i=v();C("href",e.externalUrl,mo)("ngClass",_t(7,Dk,i.disableMouse,!i.disableMouse)),d(),C("inline",!0),d(),M(e.icon),d(2),M(y(5,5,e.label))}}function Y_e(t,n){if(1&t&&(h(0,"a",35)(1,"mat-icon",28),p(2),u(),h(3,"span"),p(4),b(5,"translate"),u()()),2&t){const e=v(),i=e.$implicit,o=e.$index,r=v();C("disabled",o===r.selectedTabIndex)("routerLink",i.linkParts)("ngClass",_t(8,Dk,r.disableMouse,!r.disableMouse&&o!==r.selectedTabIndex)),d(),C("inline",!0),d(),M(i.icon),d(2),M(y(5,6,i.label))}}function X_e(t,n){if(1&t&&(x(0,q_e,1,0,"span",33),h(1,"div",24),x(2,K_e,6,10,"a",34),x(3,Y_e,6,11,"a",35),u()),2&t){const e=n.$implicit,i=n.$index,o=v();S(i>0&&o.tabsData[i-1].group!==e.group?0:-1),d(),C("ngClass",_t(4,D_e,e.onlyIfLessThanLg,1!==o.tabsData.length)),d(),S(e.externalUrl?2:-1),d(),S(e.externalUrl?-1:3)}}function Z_e(t,n){if(1&t){const e=oe();h(0,"div",18)(1,"button",36),F("click",function(){return j(e),U(v().openTabSelector())}),h(2,"div",37)(3,"mat-icon",28),p(4),u(),h(5,"span"),p(6),b(7,"translate"),u(),h(8,"mat-icon",28),p(9,"keyboard_arrow_down"),u()()()()}if(2&t){const e=v();C("ngClass",se(8,M_e,1===e.tabsData.length)),d(),C("ngClass",_t(10,Dk,e.disableMouse,!e.disableMouse)),d(2),C("inline",!0),d(),M(e.tabsData[e.selectedTabIndex].icon),d(2),M(y(7,6,e.tabsData[e.selectedTabIndex].label)),d(2),C("inline",!0)}}function Q_e(t,n){if(1&t){const e=oe();h(0,"app-refresh-button",41),F("click",function(){return j(e),U(v(2).sendRefreshEvent())}),u()}if(2&t){const e=v(2);C("secondsSinceLastUpdate",e.secondsSinceLastUpdate)("showLoading",e.showLoading)("showAlert",e.showAlert)("refeshRate",e.refeshRate)}}function J_e(t,n){if(1&t&&(h(0,"div",19),x(1,Q_e,1,4,"app-refresh-button",38),h(2,"button",39)(3,"div",40)(4,"mat-icon",28),p(5,"menu"),u()()()()),2&t){const e=v(),i=Hn(13);d(),S(e.showUpdateButton?1:-1),d(),C("matMenuTriggerFor",i),d(2),C("inline",!0)}}function ebe(t,n){if(1&t){const e=oe();h(0,"div",43)(1,"div",49),F("click",function(){return j(e),U(v(2).openLanguageWindow())}),B(2,"img",50),p(3),b(4,"translate"),u()()}if(2&t){const e=v(2);d(2),C("src","assets/img/lang/"+e.language.iconName,mo),d(),E(" ",y(4,2,e.language?e.language.name:"")," ")}}function tbe(t,n){1&t&&(h(0,"div",45),b(1,"translate"),h(2,"mat-icon",28),p(3,"warning"),u(),p(4),b(5,"translate"),u()),2&t&&(C("matTooltip",y(1,3,"vpn.connection-error.info")),d(2),C("inline",!0),d(2),E(" ",y(5,5,"vpn.connection-error.text")," "))}function nbe(t,n){1&t&&(h(0,"div",55)(1,"mat-icon",54),p(2,"brightness_1"),u()()),2&t&&(d(),C("inline",!0))}function ibe(t,n){if(1&t&&(h(0,"table",47)(1,"tr")(2,"td",51),b(3,"translate"),h(4,"div",24)(5,"div",52)(6,"div",53)(7,"mat-icon",54),p(8,"brightness_1"),u(),p(9),b(10,"translate"),u()()(),x(11,nbe,3,1,"div",55),h(12,"mat-icon",54),p(13,"brightness_1"),u(),p(14),b(15,"translate"),u(),h(16,"td",51),b(17,"translate"),h(18,"mat-icon",28),p(19,"swap_horiz"),u(),p(20),b(21,"translate"),u()(),h(22,"tr")(23,"td",51),b(24,"translate"),h(25,"mat-icon",28),p(26,"arrow_upward"),u(),p(27),b(28,"autoScale"),u(),h(29,"td",51),b(30,"translate"),h(31,"mat-icon",28),p(32,"arrow_downward"),u(),p(33),b(34,"autoScale"),u()()()),2&t){const e=v(2);d(2),Ze(e.vpnData.stateClass+" state-td"),C("matTooltip",y(3,18,e.vpnData.state+"-info")),d(2),C("ngClass",_t(39,T_e,e.showVpnStateAnimation,!e.showVpnStateAnimation)),d(3),C("inline",!0),d(2),E(" ",y(10,20,e.vpnData.state)," "),d(2),S(e.showVpnStateAnimatedDot?11:-1),d(),C("inline",!0),d(2),E(" ",y(15,22,e.vpnData.state)," "),d(2),C("matTooltip",y(17,24,"vpn.connection-info.latency-info")),d(2),C("inline",!0),d(2),E(" ",pe(21,26,"common."+e.getLatencyValueString(e.vpnData.latency),se(42,E_e,e.getPrintableLatency(e.vpnData.latency)))," "),d(3),C("matTooltip",y(24,29,"vpn.connection-info.upload-info")),d(2),C("inline",!0),d(2),E(" ",pe(28,31,e.vpnData.uploadSpeed,se(44,dV,e.showVpnDataStatsInBits))," "),d(2),C("matTooltip",y(30,34,"vpn.connection-info.download-info")),d(2),C("inline",!0),d(2),E(" ",pe(34,36,e.vpnData.downloadSpeed,se(46,dV,e.showVpnDataStatsInBits))," ")}}function obe(t,n){1&t&&B(0,"mat-spinner",48),2&t&&C("diameter",20)}function rbe(t,n){if(1&t&&(h(0,"div")(1,"div",42),x(2,ebe,5,4,"div",43),B(3,"div",44),x(4,tbe,6,7,"div",45),u(),h(5,"div",46),x(6,ibe,35,48,"table",47),x(7,obe,1,1,"mat-spinner",48),u()()),2&t){const e=v();d(2),S(!e.hideLanguageButton&&e.language?2:-1),d(2),S(e.errorsConnectingToVpn?4:-1),d(2),S(e.vpnData?6:-1),d(),S(e.vpnData?-1:7)}}function sbe(t,n){1&t&&(h(0,"div",20)(1,"div",56)(2,"mat-icon",28),p(3,"error_outline"),u(),p(4),b(5,"translate"),u(),h(6,"div",57),p(7),b(8,"translate"),u()()),2&t&&(d(2),C("inline",!0),d(2),E(" ",y(5,3,"vpn.remote-access-title")," "),d(3),E(" ",y(8,5,"vpn.remote-access-text")," "))}let Mr=(()=>{class t{set localVpnKey(e){this.localVpnKeyInternal=e,e?this.startGettingVpnInfo():this.stopGettingVpnInfo()}constructor(e,i,o,r,s){this.languageService=e,this.dialog=i,this.router=o,this.vpnClientService=r,this.vpnSavedDataService=s,this.disableMouse=!1,this.selectedTabIndex=0,this.refeshRate=-1,this.showUpdateButton=!0,this.localVpnKeyInternal="",this.refreshRequested=new we,this.optionSelected=new we,this.hideLanguageButton=!0,this.showVpnInfo=!1,this.initialVpnStateObtained=!1,this.lastVpnState="",this.showVpnStateAnimation=!1,this.showVpnStateAnimatedDot=!0,this.showVpnDataStatsInBits=!0,this.remoteAccess=!1,this.errorsConnectingToVpn=!1,this.langSubscriptionsGroup=[]}ngOnInit(){this.langSubscriptionsGroup.push(this.languageService.currentLanguage.subscribe(i=>{this.language=i})),this.langSubscriptionsGroup.push(this.languageService.languages.subscribe(i=>{this.hideLanguageButton=!(i.length>1)}));const e=window.location.hostname;!e.toLowerCase().includes("localhost")&&!e.toLowerCase().includes("127.0.0.1")&&(this.remoteAccess=!0)}ngOnDestroy(){this.langSubscriptionsGroup.forEach(e=>e.unsubscribe()),this.refreshRequested.complete(),this.optionSelected.complete(),this.stopGettingVpnInfo()}startGettingVpnInfo(){this.showVpnInfo=!0,this.vpnClientService.initialize(this.localVpnKeyInternal),this.updateVpnDataStatsUnit(),this.vpnDataSubscription=this.vpnClientService.backendState.subscribe(e=>{e&&(this.vpnData={state:"",stateClass:"",latency:e.vpnClientAppData.connectionData?e.vpnClientAppData.connectionData.latency:0,downloadSpeed:e.vpnClientAppData.connectionData?e.vpnClientAppData.connectionData.downloadSpeed:0,uploadSpeed:e.vpnClientAppData.connectionData?e.vpnClientAppData.connectionData.uploadSpeed:0},e.vpnClientAppData.appState===an.Stopped?(this.vpnData.state="vpn.connection-info.state-disconnected",this.vpnData.stateClass="red-clear-text"):e.vpnClientAppData.appState===an.Connecting?(this.vpnData.state="vpn.connection-info.state-connecting",this.vpnData.stateClass="yellow-clear-text"):e.vpnClientAppData.appState===an.Running?(this.vpnData.state="vpn.connection-info.state-connected",this.vpnData.stateClass="green-clear-text"):e.vpnClientAppData.appState===an.ShuttingDown?(this.vpnData.state="vpn.connection-info.state-disconnecting",this.vpnData.stateClass="yellow-clear-text"):e.vpnClientAppData.appState===an.Reconnecting&&(this.vpnData.state="vpn.connection-info.state-reconnecting",this.vpnData.stateClass="yellow-clear-text"),this.initialVpnStateObtained?this.lastVpnState!==this.vpnData.state&&(this.lastVpnState=this.vpnData.state,this.showVpnStateAnimation=!1,this.showVpnStateChangeAnimationSubscription&&this.showVpnStateChangeAnimationSubscription.unsubscribe(),this.showVpnStateChangeAnimationSubscription=ae(0).pipe(li(1)).subscribe(()=>this.showVpnStateAnimation=!0)):(this.initialVpnStateObtained=!0,this.lastVpnState=this.vpnData.state),this.showVpnStateAnimatedDot=!1,this.showVpnStateAnimatedDotSubscription&&this.showVpnStateAnimatedDotSubscription.unsubscribe(),this.showVpnStateAnimatedDotSubscription=ae(0).pipe(li(1)).subscribe(()=>this.showVpnStateAnimatedDot=!0))}),this.errorsConnectingToVpnSubscription=this.vpnClientService.errorsConnecting.subscribe(e=>{this.errorsConnectingToVpn=e})}stopGettingVpnInfo(){this.showVpnInfo=!1,this.vpnDataSubscription&&this.vpnDataSubscription.unsubscribe(),this.errorsConnectingToVpnSubscription&&this.errorsConnectingToVpnSubscription.unsubscribe()}getLatencyValueString(e){return hi.getLatencyValueString(e)}getPrintableLatency(e){return hi.getPrintableLatency(e)}requestAction(e){this.optionSelected.emit(e)}openLanguageWindow(){YB.openDialog(this.dialog)}sendRefreshEvent(){this.refreshRequested.emit()}openTabSelector(){const e=[];this.tabsData.forEach(i=>{e.push({label:i.label,icon:i.icon})}),ao.openDialog(this.dialog,e,"tabs-window.title").afterClosed().subscribe(i=>{i&&(i-=1)!==this.selectedTabIndex&&this.router.navigate(this.tabsData[i].linkParts)})}updateVpnDataStatsUnit(){const e=this.vpnSavedDataService.getDataUnitsSetting();this.showVpnDataStatsInBits=e===Zo.BitsSpeedAndBytesVolume||e===Zo.OnlyBits}static{this.\u0275fac=function(i){return new(i||t)(O($b),O(Ot),O(vt),O(hc),O(uc))}}static{this.\u0275cmp=re({type:t,selectors:[["app-top-bar"]],inputs:{disableMouse:"disableMouse",titleParts:"titleParts",pageHeaderLabel:"pageHeaderLabel",pageHeaderIdentifier:"pageHeaderIdentifier",tabsData:"tabsData",selectedTabIndex:"selectedTabIndex",optionsData:"optionsData",returnText:"returnText",secondsSinceLastUpdate:"secondsSinceLastUpdate",showLoading:"showLoading",showAlert:"showAlert",refeshRate:"refeshRate",showUpdateButton:"showUpdateButton",localVpnKey:"localVpnKey"},outputs:{refreshRequested:"refreshRequested",optionSelected:"optionSelected"},standalone:!1,decls:30,vars:29,consts:[["menu","matMenu"],[1,"top-bar",3,"ngClass"],[1,"button-container"],["mat-icon-button","",1,"transparent-button"],[1,"logo-container"],[1,"page-header-label-mobile"],["src","/assets/img/logo-s.png"],["mat-icon-button","",1,"transparent-button",3,"matMenuTriggerFor"],[1,"top-bar-margin",3,"ngClass"],[3,"overlapTrigger"],[1,"menu-separator"],["mat-menu-item",""],[1,"main-container",3,"ngClass"],[1,"main-area"],[1,"title",3,"ngClass"],[1,"return-container"],["src","./assets/img/logo-vpn.png",1,"title-image"],[1,"lower-container"],[1,"d-md-none",3,"ngClass"],[1,"right-container"],[1,"remote-vpn-alert-container"],["mat-icon-button","",1,"transparent-button",3,"click"],["mat-menu-item","",3,"disabled"],["mat-menu-item","",3,"click","disabled"],[3,"ngClass"],["mat-menu-item","",3,"click"],[1,"flag",3,"src"],[1,"return-button","transparent-button",3,"click","matTooltip"],[3,"inline"],[1,"page-header"],[1,"title-text"],[1,"page-header-label"],[1,"page-header-id",3,"text","short"],["aria-hidden","true",1,"tab-group-separator","d-none","d-md-inline-block"],["mat-button","","target","_blank","rel","noreferrer nofollow noopener",1,"tab-button","white-theme",3,"href","ngClass"],["mat-button","",1,"tab-button","white-theme",3,"disabled","routerLink","ngClass"],["mat-button","",1,"tab-button","select-tab-button","white-theme",3,"click","ngClass"],[1,"d-flex"],[3,"secondsSinceLastUpdate","showLoading","showAlert","refeshRate"],["mat-button","",1,"menu-button","subtle-transparent-button","d-none","d-lg-block",3,"matMenuTriggerFor"],[1,"icon-container"],[3,"click","secondsSinceLastUpdate","showLoading","showAlert","refeshRate"],[1,"top-text-vpn-container"],[1,"languaje-button-vpn"],[1,"elements-separator"],[1,"connection-error-msg-vpn","blinking",3,"matTooltip"],[1,"vpn-info","vpn-dark-box-radius"],["cellspacing","0","cellpadding","0"],[3,"diameter"],[1,"text-container",3,"click"],[1,"language-flag",3,"src"],[3,"matTooltip"],[1,"internal-animation-container"],[1,"animation-area"],[1,"state-icon",3,"inline"],[1,"aminated-state-icon-container"],[1,"top-line"],[1,"bottom-line"]],template:function(i,o){if(1&i&&(h(0,"div",1)(1,"div",2),x(2,P_e,3,0,"button",3),u(),h(3,"div",4),x(4,I_e,2,1,"span",5)(5,O_e,2,3)(6,A_e,1,0,"img",6),u(),h(7,"div",2)(8,"button",7)(9,"mat-icon"),p(10,"menu"),u()()()(),B(11,"div",8),h(12,"mat-menu",9,0),x(14,N_e,3,1),x(15,L_e,1,0,"div",10),x(16,V_e,4,4,"div",11),u(),h(17,"div",12)(18,"div",13)(19,"div",14),x(20,H_e,5,4,"div",15),x(21,W_e,2,1),x(22,G_e,1,0,"img",16),u(),h(23,"div",17),ve(24,X_e,4,7,null,null,Fe),x(26,Z_e,10,13,"div",18),x(27,J_e,6,3,"div",19),u()(),x(28,rbe,8,4,"div"),u(),x(29,sbe,9,7,"div",20)),2&i){const r=Hn(13);C("ngClass",_t(18,cV,!o.showVpnInfo,o.showVpnInfo)),d(2),S(o.returnText?2:-1),d(2),S(o.pageHeaderLabel?4:o.titleParts&&o.titleParts.length>=2?5:6),d(4),C("matMenuTriggerFor",r),d(3),C("ngClass",_t(21,cV,!o.showVpnInfo,o.showVpnInfo)),d(),C("overlapTrigger",!1),d(2),S(o.optionsData&&o.optionsData.length>=1?14:-1),d(),S(!o.hideLanguageButton&&o.optionsData&&o.optionsData.length>=1?15:-1),d(),S(o.hideLanguageButton?-1:16),d(),C("ngClass",se(24,x_e,!o.showVpnInfo)),d(2),C("ngClass",_t(26,S_e,!o.showVpnInfo,o.showVpnInfo)),d(),S(o.returnText?20:-1),d(),S(o.showVpnInfo?-1:21),d(),S(o.showVpnInfo?22:-1),d(2),ye(o.tabsData),d(2),S(o.tabsData&&o.tabsData[o.selectedTabIndex]?26:-1),d(),S(o.showVpnInfo?-1:27),d(),S(o.showVpnInfo?28:-1),d(),S(o.showVpnInfo&&o.remoteAccess?29:-1)}},dependencies:[$t,Is,Pn,Wo,We,Kt,Jr,As,vu,so,op,w_e,xe,rp],styles:["@media(max-width:991px){.normal-height[_ngcontent-%COMP%]{height:55px!important}}.main-container[_ngcontent-%COMP%]{border-bottom:1px solid rgba(255,255,255,.15);padding-bottom:10px;margin-bottom:-5px;height:100px;display:flex}.main-container[_ngcontent-%COMP%] .main-area[_ngcontent-%COMP%]{flex-grow:1}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-size:.875rem;margin-bottom:15px;margin-left:5px;flex-direction:row;align-items:center}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] .title-text[_ngcontent-%COMP%]{z-index:1}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] .title-image[_ngcontent-%COMP%]{width:124px;height:21px}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] .return-container[_ngcontent-%COMP%]{width:30px;position:relative;top:2px}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] .return-container[_ngcontent-%COMP%] .return-button[_ngcontent-%COMP%]{line-height:1;font-size:25px;position:relative;top:2px;width:100%;margin-right:4px;cursor:pointer}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%]{display:flex;flex-wrap:nowrap;align-items:center;gap:2px}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-group-separator[_ngcontent-%COMP%]{width:1px;height:20px;background:#fff3;margin:0 8px;align-self:center}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{flex:0 0 auto;min-width:0}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[_ngcontent-%COMP%]{color:#f8f9f9;border-radius:10px;opacity:.5;margin-right:0;text-decoration:none;height:40px;display:flex;align-items:center}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[_ngcontent-%COMP%]:hover{opacity:.75}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[disabled][_ngcontent-%COMP%]{opacity:1!important;color:#f8f9f9;background:#000000b3!important}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[_ngcontent-%COMP%] .mat-icon[_ngcontent-%COMP%]{margin-right:2px;opacity:.75;font-size:18px}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:1rem;margin:0 4px;position:relative;top:-1px}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .select-tab-button[_ngcontent-%COMP%]{opacity:.75!important}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .select-tab-button[_ngcontent-%COMP%]:hover{opacity:1!important}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .right-container[_ngcontent-%COMP%]{display:flex;align-items:center;margin-left:auto}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .right-container[_ngcontent-%COMP%] app-refresh-button[_ngcontent-%COMP%]{align-self:flex-end}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .right-container[_ngcontent-%COMP%] .menu-button[_ngcontent-%COMP%]{height:32px;width:32px;min-width:0px!important;background-color:#f8f9f9;border-radius:100%;padding:0!important;line-height:normal;color:#929292;font-size:20px}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .right-container[_ngcontent-%COMP%] .menu-button[_ngcontent-%COMP%] .icon-container[_ngcontent-%COMP%]{display:flex;place-content:center}.menu-separator[_ngcontent-%COMP%]{width:100%;height:1px;background-color:#0000001f}.flag[_ngcontent-%COMP%]{width:24px;margin-right:16px}.transparent[_ngcontent-%COMP%]{opacity:.5}.top-bar[_ngcontent-%COMP%]{position:fixed;z-index:10;width:100%;height:56px;background-color:#f8f9f9;top:0;left:0;right:0;color:#202226;display:flex}.top-bar[_ngcontent-%COMP%] .logo-container[_ngcontent-%COMP%]{flex-grow:1;display:flex;justify-content:center;align-items:center}.top-bar[_ngcontent-%COMP%] .logo-container[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{height:28px}.top-bar[_ngcontent-%COMP%] .button-container[_ngcontent-%COMP%]{flex-shrink:0;width:56px}.top-bar[_ngcontent-%COMP%] .button-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:56px;height:56px}.top-bar-margin[_ngcontent-%COMP%]{margin-top:56px;flex-shrink:0}.vpn-info[_ngcontent-%COMP%]{font-size:.7rem;background:#000000b3;padding:15px 20px;align-self:center}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] .state-td[_ngcontent-%COMP%]{font-weight:700}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:2px 0;min-width:90px}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:3px;font-size:12px;position:relative;top:1px;-webkit-user-select:none;user-select:none;width:auto;line-height:1}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .state-icon[_ngcontent-%COMP%]{transform:scale(.75)}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .aminated-state-icon-container[_ngcontent-%COMP%]{width:0px;height:0px}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .aminated-state-icon-container[_ngcontent-%COMP%] .state-icon[_ngcontent-%COMP%]{height:auto;animation:_ngcontent-%COMP%_state-icon-animation 1s linear 1}@keyframes _ngcontent-%COMP%_state-icon-animation{0%{transform:perspective(1px) scale(1);opacity:.8}to{transform:scale(2);opacity:0}}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .animation-container[_ngcontent-%COMP%]{width:0px;height:0px}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .animation-container[_ngcontent-%COMP%] .internal-animation-container[_ngcontent-%COMP%]{width:200px}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .animation-container[_ngcontent-%COMP%] .internal-animation-container[_ngcontent-%COMP%] .animation-area[_ngcontent-%COMP%]{display:inline-block;animation:_ngcontent-%COMP%_state-animation 1s linear 1;opacity:0}@keyframes _ngcontent-%COMP%_state-animation{0%{transform:scale(1);opacity:1}to{transform:scale(2.5);opacity:0}}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:first-of-type{padding-right:30px}.vpn-info[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}.top-text-vpn-container[_ngcontent-%COMP%]{display:flex;flex-direction:row-reverse;font-size:.6rem}.top-text-vpn-container[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:3px}.top-text-vpn-container[_ngcontent-%COMP%] .connection-error-msg-vpn[_ngcontent-%COMP%]{margin:-5px 5px 5px 10px;color:orange}.top-text-vpn-container[_ngcontent-%COMP%] .elements-separator[_ngcontent-%COMP%]{flex-grow:1}.top-text-vpn-container[_ngcontent-%COMP%] .languaje-button-vpn[_ngcontent-%COMP%]{margin:-5px 10px 5px 0}.top-text-vpn-container[_ngcontent-%COMP%] .languaje-button-vpn[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]{cursor:pointer;display:inline;opacity:.8}.top-text-vpn-container[_ngcontent-%COMP%] .languaje-button-vpn[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]:hover{opacity:1}.top-text-vpn-container[_ngcontent-%COMP%] .languaje-button-vpn[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .language-flag[_ngcontent-%COMP%]{width:11px;height:11px;margin-right:2px}.remote-vpn-alert-container[_ngcontent-%COMP%]{background-color:#da3439;margin:0 -21px;padding:10px 20px 15px;text-align:center}.remote-vpn-alert-container[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:14px}.remote-vpn-alert-container[_ngcontent-%COMP%] .top-line[_ngcontent-%COMP%]{font-size:1.25rem}.remote-vpn-alert-container[_ngcontent-%COMP%] .bottom-line[_ngcontent-%COMP%]{font-size:.8rem}.page-header[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;line-height:1.1;gap:2px;min-width:0}.page-header-label[_ngcontent-%COMP%]{font-size:18px;font-weight:500;letter-spacing:.2px}.page-header-id[_ngcontent-%COMP%]{display:inline-block;font-size:12px;opacity:.65;font-family:monospace;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page-header-label-mobile[_ngcontent-%COMP%]{font-weight:500;font-size:14px}"]})}}return t})();const uV=()=>["start.title"],abe=t=>({"paginator-icons-fixer":t}),hV=()=>["/nodes","rewards"],fV=()=>["/nodes","list"],lbe=()=>({"click-effect":!0}),cbe=t=>["/nodes",t,"rewards"],dbe=(t,n)=>({"click-effect":t,"non-selectable":n}),pV=t=>["/nodes",t],ube=t=>({"selectable click-effect":t}),hbe=(t,n)=>n.type;function fbe(t,n){if(1&t&&(h(0,"div",1)(1,"div"),B(2,"app-top-bar",3),u(),B(3,"app-loading-indicator",4),u()),2&t){const e=v();d(2),C("titleParts",Ct(4,uV))("tabsData",e.tabsData)("selectedTabIndex",e.showRewardsInfo?1:0)("showUpdateButton",!1)}}function pbe(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,v().$implicit.translatableValue)," ")}function mbe(t,n){1&t&&p(0),2&t&&E(" ",v().$implicit.value," ")}function gbe(t,n){if(1&t&&(h(0,"div",19)(1,"span"),p(2),b(3,"translate"),u(),x(4,pbe,2,3),x(5,mbe,1,1),u()),2&t){const e=n.$implicit;d(2),E("",y(3,3,e.filterName),": "),d(2),S(e.translatableValue?4:-1),d(),S(e.value?5:-1)}}function _be(t,n){if(1&t){const e=oe();h(0,"div",18),F("click",function(){return j(e),U(v(2).dataFilterer.removeFilters())}),ve(1,gbe,6,5,"div",19,Fe),h(3,"div",20),p(4),b(5,"translate"),u()()}if(2&t){const e=v(2);d(),ye(e.dataFilterer.currentFiltersTexts),d(3),M(y(5,1,"filters.press-to-remove"))}}function bbe(t,n){if(1&t){const e=oe();h(0,"mat-icon",21),b(1,"translate"),F("click",function(){return j(e),U(v(2).dataFilterer.changeFilters())}),p(2,"filter_list"),u()}2&t&&C("inline",!0)("matTooltip",y(1,2,"filters.filter-action"))}function vbe(t,n){1&t&&(h(0,"mat-icon",13),p(1,"more_horiz"),u()),2&t&&(v(),C("matMenuTriggerFor",Hn(12)))}function ybe(t,n){if(1&t&&B(0,"app-paginator",16),2&t){const e=v(2);C("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",e.showRewardsInfo?Ct(4,hV):Ct(5,fV))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function Cbe(t,n){if(1&t&&(h(0,"mat-icon",27),p(1),u()),2&t){const e=v(4);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function wbe(t,n){if(1&t&&(h(0,"mat-icon",27),p(1),u()),2&t){const e=v(4);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function xbe(t,n){if(1&t&&(h(0,"mat-icon",27),p(1),u()),2&t){const e=v(4);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function Sbe(t,n){if(1&t&&(h(0,"mat-icon",27),p(1),u()),2&t){const e=v(4);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function kbe(t,n){if(1&t&&(h(0,"th",33),p(1),u()),2&t){const e=n.$implicit;d(),E(" ",e," ")}}function Dbe(t,n){1&t&&(ve(0,kbe,2,1,"th",33,Fe),h(2,"th",34),p(3),b(4,"translate"),u()),2&t&&(ye(v(4).rewardDateHeaders),d(3),E(" ",y(4,1,"nodes.reward-total")," "))}function Mbe(t,n){1&t&&(h(0,"th"),p(1),b(2,"translate"),u()),2&t&&(d(),E(" ",y(2,1,"nodes.rewards-loading")," "))}function Tbe(t,n){1&t&&(h(0,"mat-icon",35),b(1,"translate"),p(2,"star"),u()),2&t&&C("inline",!0)("matTooltip",y(1,2,"nodes.hypervisor-info"))}function Ebe(t,n){if(1&t&&(h(0,"td",33)(1,"span",37),p(2),u()()),2&t){const e=n.$implicit,i=v(2).$implicit,o=v(4);d(),Ze(o.getRewardClass(i.localPk,e)),d(),M(o.getRewardAmount(i.localPk,e))}}function Pbe(t,n){if(1&t&&(ve(0,Ebe,3,3,"td",33,Fe),h(2,"td",34)(3,"span",40),p(4),u()()),2&t){const e=v().$implicit,i=v(4);ye(i.rewardDates),d(4),M(i.getWeekTotal(e.localPk))}}function Ibe(t,n){1&t&&(h(0,"td")(1,"span",37),p(2,"..."),u()())}function Obe(t,n){1&t&&(h(0,"button",39),b(1,"translate"),h(2,"mat-icon",27),p(3,"chevron_right"),u()()),2&t&&(C("matTooltip",y(1,2,"nodes.view-node")),d(2),C("inline",!0))}function Abe(t,n){if(1&t){const e=oe();h(0,"button",38),b(1,"translate"),F("click",function(o){j(e);const r=v().$implicit,s=v(4);return o.stopPropagation(),o.preventDefault(),U(s.deleteNode(r))}),h(2,"mat-icon"),p(3,"close"),u()()}2&t&&C("matTooltip",y(1,1,"nodes.delete-node"))}function Rbe(t,n){if(1&t){const e=oe();h(0,"a",32)(1,"td"),x(2,Tbe,3,4,"mat-icon",35),u(),h(3,"td"),B(4,"span",36),b(5,"translate"),u(),h(6,"td"),p(7),u(),h(8,"td"),p(9),u(),h(10,"td")(11,"span",37),p(12),u()(),x(13,Pbe,5,1),x(14,Ibe,3,0,"td"),h(15,"td",31)(16,"button",38),b(17,"translate"),F("click",function(o){const r=j(e).$implicit,s=v(4);return o.stopPropagation(),o.preventDefault(),U(s.copyToClipboard(r))}),h(18,"mat-icon",27),p(19,"filter_none"),u()(),h(20,"button",38),b(21,"translate"),F("click",function(o){const r=j(e).$implicit,s=v(4);return o.stopPropagation(),o.preventDefault(),U(s.showEditLabelDialog(r))}),h(22,"mat-icon",27),p(23,"short_text"),u()(),x(24,Obe,4,4,"button",39),x(25,Abe,4,3,"button",39),u()()}if(2&t){const e=n.$implicit,i=v(4);C("ngClass",Ct(23,lbe))("routerLink",se(24,cbe,e.localPk)),d(2),S(e.isHypervisor?2:-1),d(2),Ze(i.nodeStatusClass(e,!0)),C("matTooltip",y(5,17,i.nodeStatusText(e,!0))),d(3),E(" ",e.label," "),d(2),E(" ",e.localPk," "),d(3),M(i.getRewardAddress(e.localPk)),d(),S(i.rewardDataLoaded?13:-1),d(),S(i.rewardDataLoading?14:-1),d(2),C("matTooltip",y(17,19,"nodes.copy-key")),d(2),C("inline",!0),d(2),C("matTooltip",y(21,21,"labeled-element.edit-label")),d(2),C("inline",!0),d(2),S(e.online?24:-1),d(),S(e.online?-1:25)}}function Fbe(t,n){if(1&t){const e=oe();h(0,"table",23)(1,"tr")(2,"th",25),b(3,"translate"),F("click",function(){j(e);const o=v(3);return U(o.dataSorter.changeSortingOrder(o.hypervisorSortData))}),h(4,"mat-icon",26),p(5,"star_outline"),u(),x(6,Cbe,2,2,"mat-icon",27),u(),h(7,"th",25),b(8,"translate"),F("click",function(){j(e);const o=v(3);return U(o.dataSorter.changeSortingOrder(o.stateSortData))}),B(9,"span",28),x(10,wbe,2,2,"mat-icon",27),u(),h(11,"th",29),F("click",function(){j(e);const o=v(3);return U(o.dataSorter.changeSortingOrder(o.labelSortData))}),p(12),b(13,"translate"),x(14,xbe,2,2,"mat-icon",27),u(),h(15,"th",30),F("click",function(){j(e);const o=v(3);return U(o.dataSorter.changeSortingOrder(o.keySortData))}),p(16),b(17,"translate"),x(18,Sbe,2,2,"mat-icon",27),u(),h(19,"th"),p(20),b(21,"translate"),u(),x(22,Dbe,5,3),x(23,Mbe,3,3,"th"),B(24,"th",31),u(),ve(25,Rbe,26,26,"a",32,Fe),u()}if(2&t){const e=v(3);d(2),C("matTooltip",y(3,11,"nodes.hypervisor")),d(4),S(e.dataSorter.currentSortingColumn===e.hypervisorSortData?6:-1),d(),C("matTooltip",y(8,13,"nodes.state-tooltip")),d(3),S(e.dataSorter.currentSortingColumn===e.stateSortData?10:-1),d(2),E(" ",y(13,15,"nodes.label")," "),d(2),S(e.dataSorter.currentSortingColumn===e.labelSortData?14:-1),d(2),E(" ",y(17,17,"nodes.key")," "),d(2),S(e.dataSorter.currentSortingColumn===e.keySortData?18:-1),d(2),E(" ",y(21,19,"nodes.reward-address")," "),d(2),S(e.rewardDataLoaded?22:-1),d(),S(e.rewardDataLoading?23:-1),d(2),ye(e.dataSource)}}function Nbe(t,n){if(1&t&&(h(0,"mat-icon",27),p(1),u()),2&t){const e=v(4);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function Lbe(t,n){if(1&t&&(h(0,"mat-icon",27),p(1),u()),2&t){const e=v(4);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function Bbe(t,n){if(1&t&&(h(0,"mat-icon",27),p(1),u()),2&t){const e=v(4);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function Vbe(t,n){if(1&t&&(h(0,"mat-icon",27),p(1),u()),2&t){const e=v(4);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function Hbe(t,n){if(1&t&&(h(0,"mat-icon",27),p(1),u()),2&t){const e=v(4);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function jbe(t,n){1&t&&(h(0,"mat-icon",35),b(1,"translate"),p(2,"star"),u()),2&t&&C("inline",!0)("matTooltip",y(1,2,"nodes.hypervisor-info"))}function Ube(t,n){if(1&t&&(h(0,"div",37),p(1),u(),h(2,"div",37),p(3),u()),2&t){const e=v(2).$implicit;d(),M(e.ip),d(2),M(e.publicIp)}}function zbe(t,n){if(1&t&&(h(0,"div",37),p(1),u()),2&t){const e=v(2).$implicit;d(),M(e.publicIp)}}function $be(t,n){if(1&t&&(h(0,"div",37),p(1),u()),2&t){const e=v(2).$implicit;d(),M(e.ip)}}function Wbe(t,n){if(1&t&&(h(0,"div",37),p(1),u()),2&t){const e=v(2).$implicit;d(),Uh("",e.cityName?e.cityName+", ":"","",e.regionName?e.regionName+", ":"","",e.countryCode)}}function Gbe(t,n){if(1&t&&(x(0,Ube,4,2)(1,zbe,2,1,"div",37)(2,$be,2,1,"div",37),x(3,Wbe,2,3,"div",37)),2&t){const e=v().$implicit;S(e.ip&&e.publicIp&&e.ip!==e.publicIp?0:e.publicIp?1:e.ip?2:-1),d(3),S(e.countryCode?3:-1)}}function qbe(t,n){1&t&&(h(0,"span"),p(1,"-"),u())}function Kbe(t,n){if(1&t&&(h(0,"div",37),p(1),u()),2&t){const e=n.$implicit;d(),gt("",e.type,": ",e.count)}}function Ybe(t,n){if(1&t&&(ve(0,Kbe,2,2,"div",37,hbe),h(2,"div",37),p(3),u()),2&t){const e=v().$implicit;ye(v(4).getTransportCounts(e)),d(3),E("Total: ",e.transports.length)}}function Xbe(t,n){1&t&&(h(0,"span",37),p(1,"Total: 0"),u())}function Zbe(t,n){1&t&&(h(0,"span"),p(1,"-"),u())}function Qbe(t,n){if(1&t&&(h(0,"div",37),p(1),u()),2&t){const e=v().$implicit;d(),M(e.version)}}function Jbe(t,n){if(1&t&&(h(0,"div",37),p(1),b(2,"translate"),u(),h(3,"div",37),p(4),b(5,"translate"),u()),2&t){const e=v().$implicit;d(),gt("",y(2,4,"nodes.visor-version"),": ",e.version||"-"),d(3),gt("",y(5,6,"nodes.config-label"),": ",e.configVersion||"-")}}function eve(t,n){if(1&t&&(h(0,"div",37),p(1),u()),2&t){const e=n.$implicit;d(),M(e)}}function tve(t,n){if(1&t&&ve(0,eve,2,1,"div",37,Fe),2&t){const e=v().$implicit;ye(v(4).getNodeServices(e))}}function nve(t,n){1&t&&(h(0,"span"),p(1,"-"),u())}function ive(t,n){1&t&&(h(0,"mat-icon",41),p(1,"check_circle"),u()),2&t&&C("matTooltip",v().$implicit.rewardsAddress)}function ove(t,n){1&t&&(h(0,"mat-icon",42),b(1,"translate"),p(2,"cancel"),u()),2&t&&C("matTooltip",y(1,1,"nodes.reward-not-set"))}function rve(t,n){1&t&&(h(0,"button",39),b(1,"translate"),h(2,"mat-icon",27),p(3,"chevron_right"),u()()),2&t&&(C("matTooltip",y(1,2,"nodes.view-node")),d(2),C("inline",!0))}function sve(t,n){if(1&t){const e=oe();h(0,"button",38),b(1,"translate"),F("click",function(o){j(e);const r=v().$implicit,s=v(4);return o.stopPropagation(),o.preventDefault(),U(s.deleteNode(r))}),h(2,"mat-icon"),p(3,"close"),u()()}2&t&&C("matTooltip",y(1,1,"nodes.delete-node"))}function ave(t,n){if(1&t){const e=oe();h(0,"a",32)(1,"td"),x(2,jbe,3,4,"mat-icon",35),u(),h(3,"td"),B(4,"span",36),b(5,"translate"),u(),h(6,"td"),p(7),u(),h(8,"td"),x(9,Gbe,4,2),x(10,qbe,2,0,"span"),u(),h(11,"td"),x(12,Ybe,4,1),x(13,Xbe,2,0,"span",37),x(14,Zbe,2,0,"span"),u(),h(15,"td"),p(16),u(),h(17,"td"),x(18,Qbe,2,1,"div",37)(19,Jbe,6,8),u(),h(20,"td"),x(21,tve,2,0),x(22,nve,2,0,"span"),u(),h(23,"td"),x(24,ive,2,1,"mat-icon",41),x(25,ove,3,3,"mat-icon",42),u(),h(26,"td",31)(27,"button",38),b(28,"translate"),F("click",function(o){const r=j(e).$implicit,s=v(4);return o.stopPropagation(),o.preventDefault(),U(s.copyToClipboard(r))}),h(29,"mat-icon",27),p(30,"filter_none"),u()(),h(31,"button",38),b(32,"translate"),F("click",function(o){const r=j(e).$implicit,s=v(4);return o.stopPropagation(),o.preventDefault(),U(s.showEditLabelDialog(r))}),h(33,"mat-icon",27),p(34,"short_text"),u()(),x(35,rve,4,4,"button",39),x(36,sve,4,3,"button",39),u()()}if(2&t){const e=n.$implicit,i=v(4);C("ngClass",_t(30,dbe,e.online,!e.online))("routerLink",e.online?se(33,pV,e.localPk):null),d(2),S(e.isHypervisor?2:-1),d(2),Ze(i.nodeStatusClass(e,!0)),C("matTooltip",y(5,24,i.nodeStatusText(e,!0))),d(3),E(" ",e.label," "),d(2),S(e.ip||e.publicIp||e.countryCode?9:-1),d(),S(e.ip||e.publicIp||e.countryCode?-1:10),d(2),S(e.transports&&e.transports.length>0?12:-1),d(),S(e.transports&&0===e.transports.length?13:-1),d(),S(e.transports?-1:14),d(2),E(" ",e.localPk," "),d(2),S(e.version&&e.configVersion&&e.version===e.configVersion?18:19),d(3),S(i.getNodeServices(e).length>0?21:-1),d(),S(0===i.getNodeServices(e).length?22:-1),d(2),S(e.rewardsAddress?24:-1),d(),S(e.rewardsAddress?-1:25),d(2),C("matTooltip",y(28,26,"nodes.copy-key")),d(2),C("inline",!0),d(2),C("matTooltip",y(32,28,"labeled-element.edit-label")),d(2),C("inline",!0),d(2),S(e.online?35:-1),d(),S(e.online?-1:36)}}function lve(t,n){if(1&t){const e=oe();h(0,"table",23)(1,"tr")(2,"th",25),b(3,"translate"),F("click",function(){j(e);const o=v(3);return U(o.dataSorter.changeSortingOrder(o.hypervisorSortData))}),h(4,"mat-icon",26),p(5,"star_outline"),u(),x(6,Nbe,2,2,"mat-icon",27),u(),h(7,"th",25),b(8,"translate"),F("click",function(){j(e);const o=v(3);return U(o.dataSorter.changeSortingOrder(o.stateSortData))}),B(9,"span",28),x(10,Lbe,2,2,"mat-icon",27),u(),h(11,"th",29),F("click",function(){j(e);const o=v(3);return U(o.dataSorter.changeSortingOrder(o.labelSortData))}),p(12),b(13,"translate"),x(14,Bbe,2,2,"mat-icon",27),u(),h(15,"th"),p(16),b(17,"translate"),u(),h(18,"th"),p(19),b(20,"translate"),u(),h(21,"th",30),F("click",function(){j(e);const o=v(3);return U(o.dataSorter.changeSortingOrder(o.keySortData))}),p(22),b(23,"translate"),x(24,Vbe,2,2,"mat-icon",27),u(),h(25,"th",30),F("click",function(){j(e);const o=v(3);return U(o.dataSorter.changeSortingOrder(o.versionSortData))}),p(26),b(27,"translate"),x(28,Hbe,2,2,"mat-icon",27),u(),h(29,"th"),p(30),b(31,"translate"),u(),h(32,"th"),p(33),b(34,"translate"),u(),B(35,"th",31),u(),ve(36,ave,37,35,"a",32,Fe),u()}if(2&t){const e=v(3);d(2),C("matTooltip",y(3,14,"nodes.hypervisor")),d(4),S(e.dataSorter.currentSortingColumn===e.hypervisorSortData?6:-1),d(),C("matTooltip",y(8,16,"nodes.state-tooltip")),d(3),S(e.dataSorter.currentSortingColumn===e.stateSortData?10:-1),d(2),E(" ",y(13,18,"nodes.label")," "),d(2),S(e.dataSorter.currentSortingColumn===e.labelSortData?14:-1),d(2),E(" ",y(17,20,"nodes.ip-location")," "),d(3),E(" ",y(20,22,"nodes.transports")," "),d(3),E(" ",y(23,24,"nodes.key")," "),d(2),S(e.dataSorter.currentSortingColumn===e.keySortData?24:-1),d(2),E(" ",y(27,26,"nodes.version")," "),d(2),S(e.dataSorter.currentSortingColumn===e.versionSortData?28:-1),d(2),E(" ",y(31,28,"nodes.services")," "),d(3),E(" ",y(34,30,"nodes.reward")," "),d(3),ye(e.dataSource)}}function cve(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"tables.label")," ")}function dve(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"tables.inverted-order")," ")}function uve(t,n){1&t&&(h(0,"div",49)(1,"mat-icon",53),p(2,"star"),u(),p(3,"\xa0 "),h(4,"span",54),p(5),b(6,"translate"),u()()),2&t&&(d(),C("inline",!0),d(4),M(y(6,2,"nodes.hypervisor")))}function hve(t,n){if(1&t&&(h(0,"span"),p(1),u()),2&t){const e=v(2).$implicit;d(),M(e.ip)}}function fve(t,n){1&t&&(h(0,"span"),p(1," / "),u())}function pve(t,n){if(1&t&&(h(0,"span"),p(1),u()),2&t){const e=v(2).$implicit;d(),M(e.publicIp)}}function mve(t,n){if(1&t&&(h(0,"div",49)(1,"span",8),p(2),b(3,"translate"),u(),p(4,": "),x(5,hve,2,1,"span"),x(6,fve,2,0,"span"),x(7,pve,2,1,"span"),u()),2&t){const e=v().$implicit;d(2),M(y(3,4,"nodes.ip")),d(3),S(e.ip?5:-1),d(),S(e.ip&&e.publicIp?6:-1),d(),S(e.publicIp?7:-1)}}function gve(t,n){if(1&t&&(h(0,"span"),p(1),u()),2&t){const e=v(2).$implicit;d(),E("",e.cityName,", ")}}function _ve(t,n){if(1&t&&(h(0,"span"),p(1),u()),2&t){const e=v(2).$implicit;d(),E("",e.regionName,", ")}}function bve(t,n){if(1&t&&(h(0,"div",49)(1,"span",8),p(2),b(3,"translate"),u(),p(4,": "),x(5,gve,2,1,"span"),x(6,_ve,2,1,"span"),p(7),u()),2&t){const e=v().$implicit;d(2),M(y(3,4,"nodes.location")),d(3),S(e.cityName?5:-1),d(),S(e.regionName?6:-1),d(),E("",e.countryCode," ")}}function vve(t,n){if(1&t&&(h(0,"div",49)(1,"span",8),p(2),b(3,"translate"),u(),p(4),u()),2&t){const e=v().$implicit;d(2),M(y(3,2,"nodes.version")),d(2),E(": ",e.version," ")}}function yve(t,n){if(1&t&&(h(0,"div",49)(1,"span",8),p(2),b(3,"translate"),u(),p(4),u()),2&t){const e=v().$implicit;d(2),M(y(3,2,"nodes.config-version")),d(2),E(": ",e.configVersion," ")}}function Cve(t,n){if(1&t){const e=oe();h(0,"a",47)(1,"tr",48)(2,"td",48)(3,"div",44)(4,"div",45),x(5,uve,7,4,"div",49),h(6,"div",49)(7,"span",8),p(8),b(9,"translate"),u(),p(10,": "),h(11,"span"),p(12),b(13,"translate"),u()(),h(14,"div",49)(15,"span",8),p(16),b(17,"translate"),u(),p(18),u(),x(19,mve,8,6,"div",49),x(20,bve,8,6,"div",49),h(21,"div",50)(22,"span",8),p(23),b(24,"translate"),u(),p(25),u(),x(26,vve,5,4,"div",49),x(27,yve,5,4,"div",49),u(),B(28,"div",51),h(29,"div",46)(30,"button",52),b(31,"translate"),F("click",function(o){const r=j(e).$implicit,s=v(4);return o.stopPropagation(),o.preventDefault(),U(s.showOptionsDialog(r))}),h(32,"mat-icon"),p(33),u()()()()()()()}if(2&t){const e=n.$implicit,i=v(4);C("ngClass",se(27,ube,e.online))("routerLink",e.online?se(29,pV,e.localPk):null),d(5),S(e.isHypervisor?5:-1),d(3),M(y(9,17,"nodes.state")),d(3),Ze(i.nodeStatusClass(e,!1)+" title"),d(),M(y(13,19,i.nodeStatusText(e,!1))),d(4),M(y(17,21,"nodes.label")),d(2),E(": ",e.label," "),d(),S(e.ip||e.publicIp?19:-1),d(),S(e.countryCode?20:-1),d(3),M(y(24,23,"nodes.key")),d(2),E(": ",e.localPk," "),d(),S(e.version?26:-1),d(),S(e.configVersion?27:-1),d(3),C("matTooltip",y(31,25,"common.options")),d(3),M("add")}}function wve(t,n){if(1&t){const e=oe();h(0,"table",24)(1,"tr",43),F("click",function(){return j(e),U(v(3).dataSorter.openSortingOrderModal())}),h(2,"td")(3,"div",44)(4,"div",45)(5,"div",8),p(6),b(7,"translate"),u(),h(8,"div"),p(9),b(10,"translate"),x(11,cve,2,3),x(12,dve,2,3),u()(),h(13,"div",46)(14,"mat-icon",27),p(15,"keyboard_arrow_down"),u()()()()(),ve(16,Cve,34,31,"a",47,Fe),u()}if(2&t){const e=v(3);d(6),M(y(7,5,"tables.sorting-title")),d(3),E("",y(10,7,e.dataSorter.currentSortingColumn.label)," "),d(2),S(e.dataSorter.currentlySortingByLabel?11:-1),d(),S(e.dataSorter.sortingInReverseOrder?12:-1),d(2),C("inline",!0),d(2),ye(e.dataSource)}}function xve(t,n){if(1&t&&(h(0,"div",17)(1,"div",22),x(2,Fbe,27,21,"table",23),x(3,lve,38,32,"table",23),x(4,wve,18,9,"table",24),u()()),2&t){const e=v(2);d(2),S(e.showRewardsInfo&&e.dataSource.length>0?2:-1),d(),S(!e.showRewardsInfo&&e.dataSource.length>0?3:-1),d(),S(e.dataSource.length>0?4:-1)}}function Sve(t,n){if(1&t&&B(0,"app-paginator",16),2&t){const e=v(2);C("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",e.showRewardsInfo?Ct(4,hV):Ct(5,fV))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function kve(t,n){1&t&&(h(0,"span",57),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"nodes.empty")))}function Dve(t,n){1&t&&(h(0,"span",57),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"nodes.empty-with-filter")))}function Mve(t,n){if(1&t&&(h(0,"div",17)(1,"div",55)(2,"mat-icon",56),p(3,"warning"),u(),x(4,kve,3,3,"span",57),x(5,Dve,3,3,"span",57),u()()),2&t){const e=v(2);d(2),C("inline",!0),d(2),S(0===e.allNodes.length?4:-1),d(),S(0!==e.allNodes.length?5:-1)}}function Tve(t,n){if(1&t){const e=oe();h(0,"div",2)(1,"div",5)(2,"app-top-bar",6),F("refreshRequested",function(){return j(e),U(v().forceDataRefresh(!0))})("optionSelected",function(o){return j(e),U(v().performAction(o))}),u()(),h(3,"div",5)(4,"div",7)(5,"div",8),x(6,_be,6,3,"div",9),u(),h(7,"div",10)(8,"div",11),x(9,bbe,3,4,"mat-icon",12),x(10,vbe,2,1,"mat-icon",13),h(11,"mat-menu",14,0)(13,"div",15),F("click",function(){return j(e),U(v().removeOffline())}),p(14),b(15,"translate"),u()()(),x(16,ybe,1,6,"app-paginator",16),u()(),x(17,xve,5,3,"div",17),x(18,Sve,1,6,"app-paginator",16),x(19,Mve,6,3,"div",17),u()()}if(2&t){const e=v();d(2),C("titleParts",Ct(22,uV))("tabsData",e.tabsData)("selectedTabIndex",e.showRewardsInfo?1:0)("secondsSinceLastUpdate",e.secondsSinceLastUpdate)("showLoading",e.updating)("showAlert",e.errorsUpdating)("refeshRate",e.storageService.getRefreshTime())("optionsData",e.options),d(2),C("ngClass",se(23,abe,e.numberOfPages>1)),d(2),S(e.dataFilterer.currentFiltersTexts&&e.dataFilterer.currentFiltersTexts.length>0?6:-1),d(3),S(e.allNodes&&e.allNodes.length>0?9:-1),d(),S(e.dataSource.length>0?10:-1),d(),C("overlapTrigger",!1),d(2),C("disabled",Qt(!e.hasOfflineNodes)),d(),E(" ",y(15,20,"nodes.delete-all-offline")," "),d(2),S(e.numberOfPages>1?16:-1),d(),S(0!==e.dataSource.length?17:-1),d(),S(e.numberOfPages>1?18:-1),d(),S(0===e.dataSource.length?19:-1)}}let mV=(()=>{class t extends pn{constructor(e,i,o,r,s,a,l,c,f,m,g,_){super(),this.nodeService=e,this.multipleNodeDataService=i,this.router=o,this.dialog=r,this.authService=s,this.storageService=a,this.ngZone=l,this.snackbarService=c,this.clipboardService=f,this.translateService=m,this.rewardService=g,this.persistentServerDataResponseKey="serv-dat-response",this.nodesListId="nl",this.dmsgListId="dl",this.hypervisorSortData=new Dt(["isHypervisor"],"nodes.hypervisor",st.Boolean),this.stateSortData=new Dt(["online"],"nodes.state",st.Boolean),this.labelSortData=new Dt(["label"],"nodes.label",st.Text),this.keySortData=new Dt(["localPk"],"nodes.key",st.Text),this.versionSortData=new Dt(["version"],"nodes.version",st.Text),this.configVersionSortData=new Dt(["configVersion"],"nodes.config-version",st.Text),this.dmsgServerSortData=new Dt(["dmsgServerPk"],"nodes.dmsg-server",st.Text,["dmsgServerPk_label"]),this.pingSortData=new Dt(["roundTripPing"],"nodes.ping",st.Number),this.loading=!0,this.dataSource=[],this.tabsData=[],this.options=[],this.showDmsgInfo=!1,this.showRewardsInfo=!1,this.canLogOut=!0,this.rewardDataMap=new Map,this.rewardDates=[],this.rewardDateHeaders=[],this.rewardDataLoading=!1,this.rewardDataLoaded=!1,this.hasOfflineNodes=!1,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.filterProperties=[{filterName:"nodes.filter-dialog.online",keyNameInElementsArray:"online",type:Sn.Select,printableLabelsForValues:[{value:"",label:"nodes.filter-dialog.online-options.any"},{value:"true",label:"nodes.filter-dialog.online-options.online"},{value:"false",label:"nodes.filter-dialog.online-options.offline"}]},{filterName:"nodes.filter-dialog.label",keyNameInElementsArray:"label",type:Sn.TextInput,maxlength:100},{filterName:"nodes.filter-dialog.key",keyNameInElementsArray:"localPk",type:Sn.TextInput,maxlength:66},{filterName:"nodes.filter-dialog.dmsg",keyNameInElementsArray:"dmsgServerPk",secondaryKeyNameInElementsArray:"dmsgServerPk_label",type:Sn.TextInput,maxlength:66}],this.secondsSinceLastUpdate=0,this.lastUpdate=Date.now(),this.updating=!1,this.errorsUpdating=!1,this.lastUpdateRequestedManually=!1,this.labeledElementTypes=ro,this.updateOptionsMenu(),this.authVerificationSubscription=this.authService.checkLogin().subscribe(T=>{this.canLogOut=T!==ka.AuthDisabled,this.updateOptionsMenu()}),this.showRewardsInfo=-1!==this.router.url.indexOf("rewards"),this.showDmsgInfo=!1,this.filterProperties.splice(this.filterProperties.length-1);const k=this.showRewardsInfo?"rl":this.nodesListId;this.dataSorter=new gu(this.dialog,this.translateService,this.storageService,[this.hypervisorSortData,this.stateSortData,this.labelSortData,this.keySortData,this.versionSortData,this.configVersionSortData],3,k),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataFilterer=new _u(this.dialog,_,this.router,this.filterProperties,k),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(T=>{this.filteredNodes=T,this.hasOfflineNodes=!1,this.filteredNodes.forEach(I=>{I.online||(this.hasOfflineNodes=!0)}),this.dataSorter.setData(this.filteredNodes)}),this.navigationsSubscription=_.paramMap.subscribe(T=>{if(T.has("page")){let I=Number.parseInt(T.get("page"),10);(isNaN(I)||I<1)&&(I=1),this.currentPageInUrl=I,this.recalculateElementsToShow()}}),this.tabsData=[{icon:"view_headline",label:"nodes.title",linkParts:["/nodes"],group:"local"},{icon:"monetization_on",label:"nodes.rewards-title",linkParts:["/nodes","rewards"],group:"local"},{icon:"memory",label:"nodes.resources-title",linkParts:["/nodes","resources"],group:"local"},{icon:"swap_horiz",label:"nodes.transports-title",linkParts:["/nodes","transports"],group:"network"},{icon:"public",label:"nodes.network-title",linkParts:["/nodes","network"],group:"network"},{icon:"bubble_chart",label:"node.details.tpviz.title",linkParts:[],externalUrl:"/tp-viz/",group:"network"},{icon:"check_circle",label:"nodes.services-health-title",linkParts:["/nodes","services-health"],group:"network"},{icon:"settings",label:"settings.title",linkParts:["/settings"]}],this.languageSubscription=this.translateService.onLangChange.subscribe(()=>{this.multipleNodeDataService.forceRefresh()})}updateOptionsMenu(){this.options=[],this.options.push({name:"nodes.modify-rewards-all",actionName:"modifyRewardsAll",icon:"edit"}),this.canLogOut&&this.options.push({name:"common.logout",actionName:"logout",icon:"power_settings_new"})}ngOnInit(){return this.startGettingData(!0),this.ngZone.runOutsideAngular(()=>{this.updateTimeSubscription=xa(5e3,5e3).subscribe(()=>this.ngZone.run(()=>{this.secondsSinceLastUpdate=Math.floor((Date.now()-this.lastUpdate)/1e3)}))}),super.ngOnInit()}ngOnDestroy(){this.authVerificationSubscription.unsubscribe(),this.dataSubscription.unsubscribe(),this.updateTimeSubscription.unsubscribe(),this.navigationsSubscription.unsubscribe(),this.languageSubscription.unsubscribe(),this.updateSubscription&&this.updateSubscription.unsubscribe(),this.dataSortedSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFiltererSubscription.unsubscribe(),this.dataFilterer.dispose()}performAction(e){"logout"===e?this.logout():"updateAll"===e?this.updateAll():"modifyRewardsAll"===e&&this.changeRewardsToAll()}nodeStatusClass(e,i){return e.online?e.health&&e.health.servicesHealth===fu.Unhealthy?i?"dot-yellow blinking":"yellow-text":e.health&&e.health.servicesHealth===fu.Healthy?i?"dot-green":"green-text":i?"dot-outline-gray":"":i?"dot-red":"red-text"}nodeStatusText(e,i){return e.online?e.health&&e.health.servicesHealth===fu.Healthy?"node.statuses.online"+(i?"-tooltip":""):e.health&&e.health.servicesHealth===fu.Unhealthy?"node.statuses.partially-online"+(i?"-tooltip":""):e.health&&e.health.servicesHealth===fu.Connecting?"node.statuses.connecting"+(i?"-tooltip":""):"node.statuses.unknown"+(i?"-tooltip":""):"node.statuses.offline"+(i?"-tooltip":"")}forceDataRefresh(e=!1){e&&(this.lastUpdateRequestedManually=!0),this.multipleNodeDataService.forceRefresh()}startGettingData(e){const i=e?this.getLocalValue(this.persistentServerDataResponseKey):null;let o=this.multipleNodeDataService.startRequestingData();i&&(o=ae(JSON.parse(i.value))),this.dataSubscription=o.subscribe(r=>{i||this.saveLocalValue(this.persistentServerDataResponseKey,JSON.stringify(r)),this.updating=!r||r.updating,r&&!r.updating&&(r.data&&!r.error?(this.allNodes=r.data,this.dataFilterer.setData(this.allNodes),this.showRewardsInfo&&!this.rewardDataLoaded&&!this.rewardDataLoading&&this.loadRewardData(),this.loading=!1,this.snackbarService.closeCurrentIfTemporaryError(),this.lastUpdate=r.momentOfLastCorrectUpdate,this.secondsSinceLastUpdate=Math.floor((Date.now()-r.momentOfLastCorrectUpdate)/1e3),this.errorsUpdating=!1,Xr.currentInstance.hideDataProblemMsg(),this.lastUpdateRequestedManually&&(this.snackbarService.showDone("common.refreshed",null),this.lastUpdateRequestedManually=!1)):r.error&&(this.errorsUpdating||this.snackbarService.showError(this.loading?"common.loading-error":"nodes.error-load",null,!0,r.error),this.loading=!1,this.errorsUpdating=!0,Xr.currentInstance.showDataProblemMsg())),i&&this.startGettingData(!1)})}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredNodes){const e=rt.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredNodes.length/e),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const i=e*(this.currentPage-1);this.nodesToShow=this.filteredNodes.slice(i,i+e)}else this.nodesToShow=null;this.nodesToShow&&(this.dataSource=this.nodesToShow)}logout(){const e=Rt.createConfirmationDialog(this.dialog,"common.logout-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.closeModal(),this.authService.logout().subscribe(()=>this.router.navigate(["login"]),()=>this.snackbarService.showError("common.logout-error"))})}updateAll(){if(!this.dataSource||0===this.dataSource.length)return void this.snackbarService.showError("nodes.no-visors-to-update");const e=[],i=[];this.dataSource.forEach(o=>{if(o.online){const r={key:o.localPk,label:o.label,version:o.version,tag:o.buildTag};Rt.checkIfTagIsUpdatable(o.buildTag)?e.push(r):i.push(r)}}),rge.openDialog(this.dialog,e,i)}changeRewardsToAll(){if(!this.dataSource||0===this.dataSource.length)return void this.snackbarService.showError("nodes.no-visors-to-modify");const e=[];this.dataSource.forEach(o=>{o.online&&e.push({key:o.localPk,label:o.label})}),Ege.openDialog(this.dialog,{nodes:e})}recursivelyUpdateWallets(e,i,o=0){return this.nodeService.update(e[e.length-1]).pipe(Ui(()=>ae(null)),It(r=>(r&&r.updated&&!r.error?this.snackbarService.showDone(this.translateService.instant("nodes.update.done",{name:i[i.length-1]})):(this.snackbarService.showError(this.translateService.instant("nodes.update.update-error",{name:i[i.length-1]})),o+=1),e.pop(),i.pop(),e.length>=1?this.recursivelyUpdateWallets(e,i,o):ae(o))))}showOptionsDialog(e){const i=[{icon:"filter_none",label:"nodes.copy-key"}];i.push({icon:"short_text",label:"labeled-element.edit-label"}),e.online||i.push({icon:"close",label:"nodes.delete-node"}),ao.openDialog(this.dialog,i,"common.options").afterClosed().subscribe(o=>{1===o?this.copySpecificTextToClipboard(e.localPk):2===o?this.showEditLabelDialog(e):3===o&&this.deleteNode(e)})}copyToClipboard(e){this.copySpecificTextToClipboard(e.localPk)}copySpecificTextToClipboard(e){this.clipboardService.copy(e)&&this.snackbarService.showDone("copy.copied")}showEditLabelDialog(e){let i=this.storageService.getLabelInfo(e.localPk);i||(i={id:e.localPk,label:"",identifiedElementType:ro.Node}),wk.openDialog(this.dialog,i).afterClosed().subscribe(o=>{o&&this.forceDataRefresh()})}deleteNode(e){const i=Rt.createConfirmationDialog(this.dialog,"nodes.delete-node-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.close(),this.storageService.setLocalNodesAsHidden([e.localPk],[e.ip]),this.forceDataRefresh(),this.snackbarService.showDone("nodes.deleted")})}getTransportCounts(e){if(!e.transports||0===e.transports.length)return[];const i={};return e.transports.forEach(o=>{const r=(o.type||"unknown").toUpperCase();i[r]=(i[r]||0)+1}),Object.keys(i).sort().map(o=>({type:o,count:i[o]}))}getNodeServices(e){const i=[];return e.apps&&e.apps.forEach(o=>{1===o.status&&("skysocks"===o.name?i.push("Proxy Server"):"vpn-server"===o.name&&i.push("VPN Server"))}),e.isPublic&&i.push("Public Visor"),e.autoconnectTransports&&i.push("Autoconnect"),i}loadRewardData(){if(!this.allNodes||0===this.allNodes.length)return;this.rewardDataLoading=!0;const e=this.allNodes.map(i=>i.localPk);this.rewardService.fetchRewardData(e).subscribe(i=>{this.rewardDataMap=i,this.rewardDates=this.rewardService.getCachedDates(),this.rewardDateHeaders=this.rewardDates.map(o=>this.rewardService.formatDateShort(o)),this.rewardDataLoading=!1,this.rewardDataLoaded=!0})}getRewardData(e){return this.rewardDataMap.get(e)||null}getRewardAmount(e,i){const o=this.rewardDataMap.get(e);return o&&o.dailyAmounts[i]&&0!==o.dailyAmounts[i]?o.dailyAmounts[i].toFixed(2):"-"}getRewardClass(e,i){const o=this.rewardDataMap.get(e);return o&&o.dailyAmounts[i]&&0!==o.dailyAmounts[i]?o.dailySent[i]?"reward-sent":"reward-pending":""}getWeekTotal(e){const i=this.rewardDataMap.get(e);return i&&0!==i.weekTotal?i.weekTotal.toFixed(2):"-"}getRewardAddress(e){const i=this.allNodes?.find(r=>r.localPk===e);if(i?.rewardsAddress)return i.rewardsAddress;const o=this.rewardDataMap.get(e);return o?.rewardAddress?o.rewardAddress:"-"}removeOffline(){let e="nodes.delete-all-offline-confirmation";this.dataFilterer.currentFiltersTexts&&this.dataFilterer.currentFiltersTexts.length>0&&(e="nodes.delete-all-filtered-offline-confirmation");const i=Rt.createConfirmationDialog(this.dialog,e);i.componentInstance.operationAccepted.subscribe(()=>{i.close();const o=[],r=[];this.filteredNodes.forEach(s=>{s.online||(o.push(s.localPk),r.push(s.ip))}),o.length>0&&(this.storageService.setLocalNodesAsHidden(o,r),this.forceDataRefresh(),1===o.length?this.snackbarService.showDone("nodes.deleted-singular"):this.snackbarService.showDone("nodes.deleted-plural",{number:o.length}))})}static{this.\u0275fac=function(i){return new(i||t)(O(Io),O(KB),O(vt),O(Ot),O(Yf),O(ti),O(_e),O(ct),O(np),O(Go),O(Pge),O(Ai))}}static{this.\u0275cmp=re({type:t,selectors:[["app-node-list"]],standalone:!1,features:[be],decls:2,vars:2,consts:[["selectionMenu","matMenu"],[1,"d-flex","flex-column","h-100","w-100"],[1,"row"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton"],[1,"h-100"],[1,"col-12"],[3,"refreshRequested","optionSelected","titleParts","tabsData","selectedTabIndex","secondsSinceLastUpdate","showLoading","showAlert","refeshRate","optionsData"],[1,"generic-title-container","mt-4.5","d-flex",3,"ngClass"],[1,"title"],[1,"filter-label","subtle-transparent-button","cursor-pointer"],[1,"options"],[1,"options-container"],[1,"small-icon",3,"inline","matTooltip"],[3,"matMenuTriggerFor"],[3,"overlapTrigger"],["mat-menu-item","",3,"click","disabled"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"rounded-elevated-box","mt-3"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],[1,"item"],[1,"transparent-50"],[1,"small-icon",3,"click","inline","matTooltip"],[1,"box-internal-container","overflow","full-node-list-margins"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none","nowrap"],[1,"sortable-column","small-column",3,"click","matTooltip"],[1,"hypervisor-icon","grey-text"],[3,"inline"],[1,"dot-outline-gray"],[1,"sortable-column","labels",3,"click"],[1,"sortable-column",3,"click"],[1,"actions"],[1,"selectable","link-row",3,"ngClass","routerLink"],[1,"reward-day-column"],[1,"reward-total-column"],[1,"hypervisor-icon",3,"inline","matTooltip"],[3,"matTooltip"],[2,"font-size","0.85em"],["mat-button","",1,"big-action-button","transparent-button",3,"click","matTooltip"],["mat-button","",1,"big-action-button","transparent-button",3,"matTooltip"],[2,"font-size","0.85em","font-weight","bold"],[2,"color","#4caf50","font-size","20px",3,"matTooltip"],[2,"color","#f44336","font-size","20px",3,"matTooltip"],[1,"selectable","click-effect",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],[1,"link-row",3,"ngClass","routerLink"],[1,"d-block"],[1,"list-row"],[1,"list-row","long-content"],[1,"margin-part"],["mat-icon-button","",1,"transparent-button",3,"click","matTooltip"],[1,"hypervisor-icon",3,"inline"],[1,"yellow-clear-text","title"],[1,"box-internal-container","font-sm"],[1,"alert-icon",3,"inline"],[1,"font-sm"]],template:function(i,o){1&i&&(x(0,fbe,4,5,"div",1),x(1,Tve,20,25,"div",2)),2&i&&(S(o.loading?0:-1),d(),S(o.loading?-1:1))},dependencies:[$t,Is,Pn,Wo,We,Kt,Jr,As,vu,Yr,mv,Mr,xe],styles:[".labels[_ngcontent-%COMP%]{width:15%}.actions[_ngcontent-%COMP%]{text-align:right;width:120px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}.hypervisor-icon[_ngcontent-%COMP%]{font-size:14px!important;line-height:14px!important;position:relative;top:2px;margin-left:2px;color:#d48b05}.small-column[_ngcontent-%COMP%]{width:1px}.non-selectable[_ngcontent-%COMP%]{cursor:not-allowed}.reward-day-column[_ngcontent-%COMP%]{text-align:center;white-space:nowrap;min-width:60px}.reward-total-column[_ngcontent-%COMP%]{text-align:center;white-space:nowrap;min-width:70px}.reward-sent[_ngcontent-%COMP%]{color:#4caf50}.reward-pending[_ngcontent-%COMP%]{color:#ff9800}"]})}}return t})();function Eve(t,n){1&t&&(h(0,"div",6),B(1,"mat-spinner",7),u())}function Pve(t,n){if(1&t&&(h(0,"tr")(1,"td"),p(2,".dmsg"),u(),h(3,"td"),p(4),u(),h(5,"td"),p(6),u(),h(7,"td"),p(8),u()()),2&t){const e=v(4);d(3),Ze(e.proxyStatus.dmsg_web.running?"status-ok":"status-off"),d(),E(" ",e.proxyStatus.dmsg_web.running?"Yes":"No"," "),d(2),M(e.proxyStatus.dmsg_web.socks_addr||"-"),d(2),M(e.proxyStatus.dmsg_web.upstream_socks||"direct")}}function Ive(t,n){if(1&t&&(h(0,"tr")(1,"td"),p(2,".skynet"),u(),h(3,"td"),p(4),u(),h(5,"td"),p(6),u(),h(7,"td"),p(8),u()()),2&t){const e=v(4);d(3),Ze(e.proxyStatus.skynet_web.running?"status-ok":"status-off"),d(),E(" ",e.proxyStatus.skynet_web.running?"Yes":"No"," "),d(2),M(e.proxyStatus.skynet_web.socks_addr||"-"),d(2),M(e.proxyStatus.skynet_web.upstream_socks||"direct")}}function Ove(t,n){if(1&t&&(h(0,"table",21)(1,"tr")(2,"th"),p(3,"Resolver"),u(),h(4,"th"),p(5,"Running"),u(),h(6,"th"),p(7,"SOCKS"),u(),h(8,"th"),p(9,"Upstream"),u()(),it(10,Pve,9,5,"tr",3)(11,Ive,9,5,"tr",3),u()),2&t){const e=v(3);d(10),C("ngIf",e.proxyStatus.dmsg_web),d(),C("ngIf",e.proxyStatus.skynet_web)}}function Ave(t,n){if(1&t&&(h(0,"div",19),it(1,Ove,12,2,"table",20),u()),2&t){const e=v(2);d(),C("ngIf",e.proxyStatus.dmsg_web||e.proxyStatus.skynet_web)}}function Rve(t,n){if(1&t){const e=oe();h(0,"div")(1,"h3",8),p(2,"Resolving Proxy"),u(),h(3,"p",9),p(4," Browse "),h(5,"strong"),p(6,".skynet"),u(),p(7," and "),h(8,"strong"),p(9,".dmsg"),u(),p(10," domains. Set an upstream SOCKS5 proxy to route all other traffic through skysocks. "),u(),it(11,Ave,2,1,"div",10),h(12,"div",11)(13,"div",12)(14,"mat-checkbox",13),F("change",function(o){j(e);const r=v();return r.form.get("skynetEnabled").setValue(o.checked),U(r.toggleProxy())}),p(15," Enable resolving proxy (.skynet + .dmsg) "),u()(),h(16,"form",14)(17,"div",15)(18,"mat-form-field",16)(19,"mat-label"),p(20,"Upstream SOCKS5 (e.g. 127.0.0.1:1080)"),u(),B(21,"input",17),u(),h(22,"button",18),F("click",function(){return j(e),U(v().setUpstream())}),p(23," Set "),u()()()()()}if(2&t){const e=v();d(11),C("ngIf",e.proxyStatus),d(3),C("checked",e.form.get("skynetEnabled").value)("disabled",e.loading),d(2),C("formGroup",e.form),d(6),C("disabled",e.loading)}}let Fve=(()=>{class t{constructor(e,i,o,r){this.dialogRef=e,this.data=i,this.nodeService=o,this.snackbarService=r,this.loading=!1,this.proxyStatus=null,this.skynetPorts=[],this.newPort="",this.form=new nk({skynetEnabled:new lu(!1),upstream:new lu("")}),this.loadStatus(),this.loadPorts()}loadStatus(){this.loading=!0,this.nodeService.getProxies(this.data.nodeKey).subscribe(e=>{this.proxyStatus=e,this.loading=!1;const i=e?.skynet_web?.running||!1,o=e?.skynet_web?.upstream_socks||"";this.form.get("skynetEnabled").setValue(i),this.form.get("upstream").setValue(o)},()=>{this.loading=!1})}loadPorts(){this.nodeService.getSkynetPorts(this.data.nodeKey).subscribe(e=>{this.skynetPorts=(e||[]).sort((i,o)=>i-o)},()=>{})}toggleProxy(){const e=this.form.get("skynetEnabled").value;this.loading=!0,this.nodeService.setProxyEnabled(this.data.nodeKey,"skynet",e).subscribe(()=>{this.nodeService.setProxyEnabled(this.data.nodeKey,"dmsg",e).subscribe(()=>{this.loading=!1,this.snackbarService.showDone(e?"Resolving proxy enabled":"Resolving proxy disabled"),this.loadStatus()},()=>{this.loading=!1})},()=>{this.loading=!1,this.snackbarService.showError("Failed to toggle proxy")})}setUpstream(){const e=this.form.get("upstream").value.trim();this.loading=!0,this.nodeService.setProxyUpstream(this.data.nodeKey,"skynet",e).subscribe(()=>{this.loading=!1,this.snackbarService.showDone(e?`Upstream set to ${e}`:"Upstream cleared"),this.loadStatus()},()=>{this.loading=!1,this.snackbarService.showError("Failed to set upstream")})}addPort(){const e=parseInt(this.newPort,10);isNaN(e)||e<1||e>65535?this.snackbarService.showError("Invalid port number"):this.nodeService.registerSkynetPort(this.data.nodeKey,e).subscribe(()=>{this.newPort="",this.snackbarService.showDone(`Port ${e} forwarded`),this.loadPorts()},i=>{this.snackbarService.showError(i?.error?.error||"Failed to register port")})}removePort(e){this.nodeService.deregisterSkynetPort(this.data.nodeKey,e).subscribe(()=>{this.snackbarService.showDone(`Port ${e} removed`),this.loadPorts()},()=>{this.snackbarService.showError("Failed to deregister port")})}close(){this.dialogRef.close()}static{this.\u0275fac=function(i){return new(i||t)(O(Bt),O(En),O(Io),O(ct))}}static{this.\u0275cmp=re({type:t,selectors:[["app-proxy-settings"]],standalone:!1,decls:9,vars:2,consts:[[1,"generic-dialog-container"],["mat-dialog-title",""],["class","text-center py-3",4,"ngIf"],[4,"ngIf"],["align","end"],["mat-button","",3,"click"],[1,"text-center","py-3"],["diameter","30",1,"mx-auto"],[1,"section-title"],[1,"help-text"],["class","proxy-status",4,"ngIf"],[1,"proxy-form"],[1,"form-row","toggle-row"],[3,"change","checked","disabled"],[3,"formGroup"],[1,"form-row","upstream-row"],["appearance","outline",1,"upstream-field"],["matInput","","formControlName","upstream","placeholder","127.0.0.1:1080"],["mat-raised-button","","color","primary",3,"click","disabled"],[1,"proxy-status"],["class","status-table",4,"ngIf"],[1,"status-table"]],template:function(i,o){1&i&&(h(0,"div",0)(1,"h2",1),p(2,"Skynet Settings"),u(),h(3,"mat-dialog-content"),it(4,Eve,2,0,"div",2)(5,Rve,24,5,"div",3),u(),h(6,"mat-dialog-actions",4)(7,"button",5),F("click",function(){return o.close()}),p(8,"Close"),u()()()),2&i&&(d(4),C("ngIf",o.loading),d(),C("ngIf",!o.loading))},dependencies:[tf,xn,Gt,qt,wn,on,mn,MS,T4,Jd,sn,Os,In,Pn,so,kr],styles:[".section-title[_ngcontent-%COMP%]{font-size:15px;font-weight:500;margin:16px 0 4px;color:#000000de}.section-title[_ngcontent-%COMP%]:first-of-type{margin-top:0}.help-text[_ngcontent-%COMP%]{color:#0009;font-size:13px;margin-bottom:12px}.help-text[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{background:#0000000f;padding:1px 4px;border-radius:3px;font-size:12px}.status-table[_ngcontent-%COMP%]{width:100%;margin-bottom:12px;border-collapse:collapse}.status-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%], .status-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:5px 8px;text-align:left;border-bottom:1px solid rgba(0,0,0,.08);font-size:13px}.status-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{color:#00000080;font-weight:500}.status-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{color:#000000de}.status-table[_ngcontent-%COMP%] .status-ok[_ngcontent-%COMP%]{color:#4caf50;font-weight:500}.status-table[_ngcontent-%COMP%] .status-off[_ngcontent-%COMP%]{color:#00000061}.proxy-form[_ngcontent-%COMP%]{margin-top:8px;margin-bottom:8px}.form-row[_ngcontent-%COMP%]{margin-bottom:12px}.upstream-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.upstream-row[_ngcontent-%COMP%] .upstream-field[_ngcontent-%COMP%]{flex:1}.no-ports[_ngcontent-%COMP%]{color:#00000061;font-style:italic;font-size:13px}.port-list[_ngcontent-%COMP%]{margin-bottom:8px}.port-item[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;border-bottom:1px solid rgba(0,0,0,.06)}.port-item[_ngcontent-%COMP%] .port-number[_ngcontent-%COMP%]{font-family:monospace;font-size:14px;font-weight:500}.add-port-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.add-port-row[_ngcontent-%COMP%] .port-field[_ngcontent-%COMP%]{width:120px}"]})}}return t})();const Nve=["content"],Mk=t=>({number:t}),Lve=t=>({count:t}),Bve=t=>({time:t});function Vve(t,n){if(1&t&&(h(0,"div",15),p(1),b(2,"translate"),u()),2&t){const e=v(2);d(),E(" ",pe(2,1,"node.logs.filter-ignored",se(4,Mk,e.logEntries.length-e.filteredLogEntries.length))," ")}}function Hve(t,n){if(1&t){const e=oe();h(0,"div",12),F("click",function(){return j(e),U(v().showFilters())}),h(1,"div",13)(2,"div")(3,"span"),p(4),b(5,"translate"),u(),h(6,"span",14),p(7),b(8,"translate"),u()(),x(9,Vve,3,6,"div",15),u(),B(10,"div",16),u()}if(2&t){const e=v();d(4),E("",y(5,3,"node.logs.selected-filter")," "),d(3),M(y(8,5,"node.logs."+e.levelDetails.get(e.currentMinimumLevel).levelFilterName)),d(2),S(e.logEntries.length>e.filteredLogEntries.length?9:-1)}}function jve(t,n){if(1&t&&(h(0,"div",3)(1,"mat-icon",17),p(2,"history"),u(),p(3),b(4,"translate"),u()),2&t){const e=v();d(),C("inline",!0),d(2),E(" ",pe(4,2,"node.logs.dropped",se(5,Lve,e.totalDropped))," ")}}function Uve(t,n){if(1&t&&(h(0,"div",4)(1,"a",18),p(2),b(3,"translate"),u()()),2&t){const e=v();d(),C("href",e.getFullLogsUrl(),mo),d(),E(" ",pe(3,2,"node.logs.view-rest",se(5,Mk,e.totalLogs))," ")}}function zve(t,n){1&t&&p(0," : ")}function $ve(t,n){if(1&t&&(h(0,"span"),p(1),u()),2&t){const e=v().$implicit;d(),E(" ",e.msg," ")}}function Wve(t,n){if(1&t&&(h(0,"span",21),p(1),u(),h(2,"span"),p(3),u()),2&t){const e=n.$implicit;d(),E(" ",e.name," "),d(2),E(' ="',e.value,'" ')}}function Gve(t,n){if(1&t&&(h(0,"div",4)(1,"span",19),p(2),u(),h(3,"span"),p(4),u(),p(5," [ "),h(6,"span",19),p(7),u(),h(8,"span",20),p(9),u(),p(10," ]"),x(11,zve,1,0),x(12,$ve,2,1,"span"),ve(13,Wve,4,2,null,null,Fe),u()),2&t){const e=n.$implicit,i=v(2);d(2),E(" ",e.time," "),d(),Ze(i.levelDetails.get(e.level).colorClass),d(),E(" ",i.levelDetails.get(e.level).name," "),d(3),E(" ",e.func," "),d(2),E(" ",e._module," "),d(2),S(e.msg?11:-1),d(),S(e.msg?12:-1),d(),ye(e.extra)}}function qve(t,n){1&t&&ve(0,Gve,15,8,"div",4,Fe),2&t&&ye(v().filteredLogEntries)}function Kve(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"node.logs.view-all")," ")}function Yve(t,n){if(1&t&&(p(0),b(1,"translate")),2&t){const e=v(2);E(" ",pe(1,1,"node.logs.view-rest",se(4,Mk,e.totalLogs))," ")}}function Xve(t,n){if(1&t&&(h(0,"div",4)(1,"a",18),x(2,Kve,2,3),x(3,Yve,2,6),u()()),2&t){const e=v();d(),C("href",e.getFullLogsUrl(),mo),d(),S(e.hasMoreLogMessages?-1:2),d(),S(e.hasMoreLogMessages?3:-1)}}function Zve(t,n){1&t&&(h(0,"div",5),p(1),b(2,"translate"),u()),2&t&&(d(),E(" ",y(2,1,"node.logs.no-logs")," "))}function Qve(t,n){1&t&&(h(0,"div",5),p(1),b(2,"translate"),u()),2&t&&(d(),E(" ",y(2,1,"node.logs.no-logs-for-filter")," "))}function Jve(t,n){1&t&&B(0,"app-loading-indicator",6),2&t&&C("showWhite",!1)}function eye(t,n){if(1&t&&(h(0,"div",11)(1,"mat-icon",9),p(2,"refresh"),u(),h(3,"span"),p(4),b(5,"translate"),u()()),2&t){const e=v();d(),C("inline",!0),d(3),M(pe(5,2,"refresh-button."+e.elapsedTime.translationVarName,se(5,Bve,e.elapsedTime.elapsedTime)))}}var bn=function(t){return t[t.PanicLevel=0]="PanicLevel",t[t.FatalLevel=1]="FatalLevel",t[t.ErrorLevel=2]="ErrorLevel",t[t.WarnLevel=3]="WarnLevel",t[t.InfoLevel=4]="InfoLevel",t[t.DebugLevel=5]="DebugLevel",t[t.TraceLevel=6]="TraceLevel",t[t.Unknown=7]="Unknown",t}(bn||{});class tye{constructor(){this.extra=[]}}let nye=(()=>{class t{static openDialog(e){const i=new nn;return i.autoFocus=!1,i.width=rt.largeModalWidth,e.open(t,i)}constructor(e,i,o,r,s){this.dialogRef=e,this.nodeService=i,this.snackbarService=o,this.ngZone=r,this.dialog=s,this.levelDetails=new Map([[bn.PanicLevel,{name:"PANIC",colorClass:"panic-level-color",levelFilterName:"filter-panic",importance:8}],[bn.FatalLevel,{name:"FATAL",colorClass:"fatal-level-color",levelFilterName:"filter-faltal",importance:7}],[bn.ErrorLevel,{name:"ERROR",colorClass:"error-level-color",levelFilterName:"filter-error",importance:6}],[bn.WarnLevel,{name:"WARNING",colorClass:"warning-level-color",levelFilterName:"filter-warning",importance:5}],[bn.InfoLevel,{name:"INFO",colorClass:"info-level-color",levelFilterName:"filter-info",importance:4}],[bn.DebugLevel,{name:"DEBUG",colorClass:"debug-level-color",levelFilterName:"filter-debug",importance:3}],[bn.TraceLevel,{name:"TRACE",colorClass:"trace-level-color",levelFilterName:"filter-all",importance:2}],[bn.Unknown,{name:"UNKNOWN LOG",colorClass:"unknown-level-color",levelFilterName:"filter-all",importance:1}]]),this.currentMinimumLevel=bn.Unknown,this.loading=!0,this.LoadingMoment=0,this.liveTail=!0,this.livePollMs=2e3,this.logCursor=0,this.totalDropped=0,this.wasAtBottom=!0,this.maxElementsPerPage=1e3,this.logEntries=[],this.filteredLogEntries=[],this.hasMoreLogMessages=!1,this.totalLogs=0,this.shouldShowError=!0}ngOnInit(){this.loadData(0)}ngOnDestroy(){this.removeSubscription(),this.removeTimeSubscription()}showFilters(){const e=[{icon:"",label:"node.logs.filter-all"},{icon:"",label:"node.logs.filter-debug"},{icon:"",label:"node.logs.filter-info"},{icon:"",label:"node.logs.filter-warning"},{icon:"",label:"node.logs.filter-error"},{icon:"",label:"node.logs.filter-faltal"},{icon:"",label:"node.logs.filter-panic"}],i=[bn.Unknown,bn.DebugLevel,bn.InfoLevel,bn.WarnLevel,bn.ErrorLevel,bn.FatalLevel,bn.PanicLevel];for(let o=0;o<=i.length;o++)this.currentMinimumLevel===i[o]&&(e[o].icon="check");ao.openDialog(this.dialog,e,"node.logs.filter-title").afterClosed().subscribe(o=>{this.currentMinimumLevel=i[o-1],this.filter()})}loadData(e){this.removeSubscription(),this.captureScrollTailState(),this.loading=0===this.logEntries.length;const i=this.logCursor;this.subscription=ae(1).pipe(li(e),It(()=>this.nodeService.getRuntimeLogsSince(ke.getCurrentNodeKey(),i))).subscribe(o=>this.onLogsDeltaReceived(o),o=>this.onLogsError(o))}toggleLiveTail(){this.liveTail=!this.liveTail,this.liveTail?this.loadData(0):this.removeSubscription()}captureScrollTailState(){if(!this.content)return void(this.wasAtBottom=!0);const e=this.content.nativeElement;this.wasAtBottom=e.scrollHeight-e.scrollTop-e.clientHeight<40}removeSubscription(){this.subscription&&this.subscription.unsubscribe()}removeTimeSubscription(){this.timeUpdateSubscription&&this.timeUpdateSubscription.unsubscribe()}onLogsDeltaReceived(e){if(!e)return this.loading=!1,void this.scheduleNextPoll();const i=0===this.logCursor;this.logCursor="number"==typeof e.latest?e.latest:this.logCursor,"number"==typeof e.dropped&&e.dropped>0&&(this.totalDropped+=e.dropped);const o=Array.isArray(e.entries)?e.entries:[];if(0===o.length)return this.loading=!1,this.LoadingMoment=Date.now(),this.shouldShowError=!0,this.startUpdatingTime(),void this.scheduleNextPoll();const r=[];for(const s of o)try{r.push(JSON.parse(s))}catch{}i&&(this.logEntries=[]),this.appendParsedEntries(r),this.logEntries.length>this.maxElementsPerPage&&(this.logEntries=this.logEntries.slice(this.logEntries.length-this.maxElementsPerPage),this.hasMoreLogMessages=!0),this.totalLogs=this.logCursor,this.loading=!1,this.LoadingMoment=Date.now(),this.shouldShowError=!0,this.startUpdatingTime(),this.filter(),this.scheduleNextPoll()}scheduleNextPoll(){this.liveTail&&this.loadData(this.livePollMs)}appendParsedEntries(e){e.forEach(i=>{const o=new tye;o.time=i.time,o._module=i._module,o.msg=i.msg,o.func=i.func;const r=i.level?i.level.toLowerCase():"";if(o.level=r.includes("panic")?bn.PanicLevel:r.includes("fatal")?bn.FatalLevel:r.includes("error")?bn.ErrorLevel:r.includes("warn")?bn.WarnLevel:r.includes("info")?bn.InfoLevel:r.includes("debug")?bn.DebugLevel:r.includes("trace")?bn.TraceLevel:bn.Unknown,i.current_backoff){const a=Math.floor(i.current_backoff/1e9),l=Math.floor(a/60),c=Math.floor(a%60);o.extra.push(l?{name:"current_backoff",value:l+"m"+c+"s"}:{name:"current_backoff",value:c+"s"})}i.error&&o.extra.push({name:"error",value:i.error});const s=new Set;s.add("time"),s.add("_module"),s.add("msg"),s.add("func"),s.add("level"),s.add("current_backoff"),s.add("error"),s.add("log_line");for(const a in i)s.has(a)||o.extra.push({name:a,value:i[a]});this.logEntries.push(o)})}filter(){this.filteredLogEntries=[];const e=this.levelDetails.get(this.currentMinimumLevel).importance;this.logEntries.forEach(i=>{const o=this.levelDetails.get(i.level).importance;e<=o&&this.filteredLogEntries.push(i)}),this.wasAtBottom&&setTimeout(()=>{this.content&&(this.content.nativeElement.scrollTop=this.content.nativeElement.scrollHeight)})}startUpdatingTime(){this.elapsedTime=gv.getElapsedTime(Math.floor((Date.now()-this.LoadingMoment)/1e3)),this.removeTimeSubscription(),this.timeUpdateSubscription=xa(5e3,5e3).subscribe(()=>this.ngZone.run(()=>{this.elapsedTime=gv.getElapsedTime(Math.floor((Date.now()-this.LoadingMoment)/1e3))}))}getFullLogsUrl(){return window.location.origin+"/api/visors/"+ke.getCurrentNodeKey()+"/runtime-logs"}onLogsError(e){e=Qe(e),this.shouldShowError&&(this.snackbarService.showError("common.loading-error",null,!0,e),this.shouldShowError=!1),this.loadData(rt.connectionRetryDelay)}static{this.\u0275fac=function(i){return new(i||t)(O(Bt),O(Io),O(ct),O(_e),O(Ot))}}static{this.\u0275cmp=re({type:t,selectors:[["app-node-logs"]],viewQuery:function(i,o){if(1&i&&ot(Nve,5),2&i){let r;he(r=fe())&&(o.content=r.first)}},standalone:!1,decls:21,vars:20,consts:[["content",""],[3,"headline","includeVerticalMargins","includeScrollableArea","dialog"],[1,"top-dialog-button"],[1,"logs-dropped-banner"],[1,"log-entry"],[1,"log-empty-msg"],[3,"showWhite"],[1,"logs-footer"],[1,"live-tail-toggle","subtle-transparent-button",3,"click"],[1,"icon",3,"inline"],[1,"update-button","subtle-transparent-button",3,"click"],[1,"update-time"],[1,"top-dialog-button",3,"click"],[1,"top-dialog-button-content"],[1,"actual-value"],[1,"small"],[1,"top-dialog-button-margin"],[3,"inline"],["target","_blank",1,"view-raw-link",3,"href"],[1,"transparent"],[1,"module-color"],[1,"extra-data-color"]],template:function(i,o){1&i&&(h(0,"app-dialog",1),b(1,"translate"),x(2,Hve,11,7,"div",2),x(3,jve,5,7,"div",3),h(4,"mat-dialog-content",null,0),x(6,Uve,4,7,"div",4),x(7,qve,2,0),x(8,Xve,4,3,"div",4),x(9,Zve,3,3,"div",5),x(10,Qve,3,3,"div",5),x(11,Jve,1,1,"app-loading-indicator",6),h(12,"div",7)(13,"div",8),F("click",function(){return o.toggleLiveTail()}),h(14,"mat-icon",9),p(15),u(),h(16,"span"),p(17),b(18,"translate"),u()(),h(19,"div",10),F("click",function(){return o.loadData(0)}),x(20,eye,6,7,"div",11),u()()()()),2&i&&(C("headline",y(1,16,"node.logs.title"))("includeVerticalMargins",!1)("includeScrollableArea",!1)("dialog",o.dialogRef),d(2),S(!o.loading&&o.logEntries&&o.logEntries.length>0?2:-1),d(),S(o.totalDropped>0?3:-1),d(3),S(!o.loading&&o.hasMoreLogMessages?6:-1),d(),S(o.loading?-1:7),d(),S(!o.loading&&o.logEntries&&o.logEntries.length>0?8:-1),d(),S(o.loading||o.logEntries&&0!==o.logEntries.length?-1:9),d(),S(!o.loading&&o.logEntries&&o.logEntries.length>0&&o.filteredLogEntries.length<1?10:-1),d(),S(o.loading?11:-1),d(3),C("inline",!0),d(),M(o.liveTail?"pause":"play_arrow"),d(2),M(y(18,18,o.liveTail?"node.logs.live-on":"node.logs.live-off")),d(3),S(o.loading?-1:20))},dependencies:[Jd,We,gn,Yr,xe],styles:[".top-dialog-button[_ngcontent-%COMP%]{color:#777!important}.top-dialog-button[_ngcontent-%COMP%] .top-dialog-button-content[_ngcontent-%COMP%]{text-align:center}.top-dialog-button[_ngcontent-%COMP%] .top-dialog-button-content[_ngcontent-%COMP%] .actual-value[_ngcontent-%COMP%]{color:#202226}.top-dialog-button[_ngcontent-%COMP%] .top-dialog-button-content[_ngcontent-%COMP%] .small[_ngcontent-%COMP%]{font-size:.6rem}.log-entry[_ngcontent-%COMP%]{margin-top:15px;word-break:break-word}.log-entry[_ngcontent-%COMP%] .transparent[_ngcontent-%COMP%]{color:#999}.log-entry[_ngcontent-%COMP%]:first-of-type{margin-top:0}.log-entry[_ngcontent-%COMP%]:last-of-type{margin-bottom:24px}.log-empty-msg[_ngcontent-%COMP%]{text-align:center}.view-raw-link[_ngcontent-%COMP%]{color:#215f9e}.update-button[_ngcontent-%COMP%]{display:flex;justify-content:center;cursor:pointer}.update-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:5px;margin-right:5px}.update-button[_ngcontent-%COMP%] .update-time[_ngcontent-%COMP%]{text-align:center;font-size:.7rem;color:#202226;margin:0 5px}.panic-level-color[_ngcontent-%COMP%], .fatal-level-color[_ngcontent-%COMP%]{color:red}.error-level-color[_ngcontent-%COMP%]{color:#d10000}.warning-level-color[_ngcontent-%COMP%]{color:#e27505}.info-level-color[_ngcontent-%COMP%]{color:#0d9519}.debug-level-color[_ngcontent-%COMP%]{color:#0065ff}.trace-level-color[_ngcontent-%COMP%]{color:#468cf5}.unknown-level-color[_ngcontent-%COMP%]{color:#e27505}.module-color[_ngcontent-%COMP%]{color:#a119fc}.extra-data-color[_ngcontent-%COMP%]{color:#ad8021}.logs-footer[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;border-top:1px solid rgba(255,255,255,.08)}.live-tail-toggle[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:4px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:13px}.live-tail-toggle[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{font-size:18px}.logs-dropped-banner[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;padding:6px 10px;background:#ffc80014;border-bottom:1px solid rgba(255,200,0,.2);font-size:12px;opacity:.9}.logs-dropped-banner[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:16px}"]})}}return t})();class gV{constructor(n,e){this.canBeUpdated=!1,this.canOpenTerminal=!1,this.options=[],this.dialog=n.get(Ot),this.router=n.get(vt),this.snackbarService=n.get(ct),this.nodeService=n.get(Io),this.storageService=n.get(ti),this.showingFullList=e,this.returnButtonText=e?"node.title":"nodes.title",this.updateOptions()}updateOptions(){this.options=[],this.canOpenTerminal&&this.options.push({name:"actions.menu.terminal",actionName:"terminal",icon:"laptop"}),this.options.push({name:"actions.menu.logs",actionName:"logs",icon:"subject"}),this.options.push({name:"actions.menu.proxy",actionName:"proxy",icon:"vpn_lock"}),this.options.push({name:"actions.menu.turn-off",actionName:"shutdown",icon:"power_settings_new"})}setCurrentNode(n){this.currentNode=n,this.canBeUpdated=!!Rt.checkIfTagIsUpdatable(n.buildTag),this.canOpenTerminal=Rt.checkIfTagCanOpenterminal(n.buildTag),this.updateOptions()}setCurrentNodeKey(n){this.currentNodeKey=n}performAction(n,e){"terminal"===n?this.terminal():"update"===n?this.update():"logs"===n?this.runtimeLogs():"proxy"===n?this.openProxySettings():"shutdown"===n?this.shutdown():null===n&&this.back()}dispose(){this.updateSubscription&&this.updateSubscription.unsubscribe(),this.shutdownSubscription&&this.shutdownSubscription.unsubscribe()}shutdown(){const n=Rt.createConfirmationDialog(this.dialog,"actions.turn-off.confirmation");n.componentInstance.operationAccepted.subscribe(()=>{n.componentInstance.showProcessing(),this.shutdownSubscription=this.nodeService.shutdown(this.currentNodeKey).subscribe(()=>{this.snackbarService.showDone("actions.turn-off.done"),n.close(),this.router.navigate(["nodes"])},e=>{e=Qe(e),n.componentInstance.showDone("confirmation.error-header-text",e.translatableErrorMsg)})})}update(){const n=Rt.createConfirmationDialog(this.dialog,"actions.update.confirmation");n.componentInstance.operationAccepted.subscribe(()=>{const e=window.location.protocol,i=window.location.host.replace("localhost:4200","127.0.0.1:8000");window.open(e+"//"+i+"/pty/"+this.currentNodeKey+"?commands=update","_blank","noopener noreferrer"),n.close()})}terminal(){const n=window.location.protocol,e=window.location.host.replace("localhost:4200","127.0.0.1:8000");window.open(n+"//"+e+"/pty/"+this.currentNodeKey,"_blank","noopener noreferrer")}runtimeLogs(){nye.openDialog(this.dialog)}openProxySettings(){this.dialog.open(Fve,{width:"550px",data:{nodeKey:this.currentNodeKey}})}back(){this.router.navigate(this.showingFullList?["nodes",this.currentNodeKey]:["nodes"])}}class iye{constructor(){this.trafficData=new oye}}class oye{constructor(){this.totalSent=0,this.totalReceived=0,this.sentHistory=[],this.receivedHistory=[]}}class rye{constructor(){this.lastEmitedData=new iye,this.dataSubject=new ki(null),this.whenUpdateWasScheduled=0,this.stopRequestedDate=-1,this.consecutiveErrors=0}}let sye=(()=>{class t{constructor(e,i){this.storageService=e,this.nodeService=i,this.maxTrafficHistorySlots=10,this.expirationTime=6e4,this.nodesMap=new Map,this.storageService.getRefreshTimeObservable().subscribe(o=>{this.dataRefreshDelay=1e3*o,this.nodesMap.forEach(r=>{this.forceSpecificNodeRefresh(r.pk)})}),this.checkForExpired()}checkForExpired(){setInterval(()=>{try{this.nodesMap.forEach(e=>{this.finishIfExpired(e)})}catch{}},5e3)}startRequestingData(e){let i=this.nodesMap.get(e);return i?i.stopRequestedDate=-1:(i=new rye,i.pk=e,this.nodesMap.set(e,i),this.startDataSubscription(0,i)),i.dataSubject.asObservable()}stopRequestingSpecificNode(e){const i=this.nodesMap.get(e);i&&(i.stopRequestedDate=Date.now())}startDataSubscription(e,i){i.updateSubscription&&i.updateSubscription.unsubscribe();let o=0;i.updateSubscription=ae(1).pipe(li(e),ai(()=>{i.lastEmitedData.updating=!0,i.dataSubject.next(i.lastEmitedData)}),li(120),ai(()=>{o=performance.now(),console.log("[HV-DIAG] fetching node data for",i.pk.substring(0,8)+"...")}),It(()=>this.nodeService.getNode(i.pk))).subscribe(r=>{console.log("[HV-DIAG] fetch completed in",(performance.now()-o).toFixed(0),"ms for",i.pk.substring(0,8)+"..."),i.consecutiveErrors=0,this.updateTrafficData(r.transports,i.lastEmitedData.trafficData,i.whenUpdateWasScheduled);let s=this.calculateRemainingTime(i.whenUpdateWasScheduled);s<1e3&&(i.whenUpdateWasScheduled=Date.now(),s=this.dataRefreshDelay),i.lastEmitedData={data:r,error:null,momentOfLastCorrectUpdate:Date.now(),updating:!1,trafficData:i.lastEmitedData.trafficData},i.dataSubject.next(i.lastEmitedData),this.startDataSubscription(s,i)},r=>{if(r=Qe(r),i.consecutiveErrors=(i.consecutiveErrors||0)+1,i.lastEmitedData={data:i.lastEmitedData.data,error:r,momentOfLastCorrectUpdate:i.lastEmitedData.momentOfLastCorrectUpdate,updating:!1,trafficData:i.lastEmitedData.trafficData},i.dataSubject.next(i.lastEmitedData),r.originalError&&400===r.originalError.status)i.dataSubject.complete(),i.updateSubscription.unsubscribe(),this.nodesMap.delete(i.pk);else{const a=Math.min(rt.connectionRetryDelay*Math.pow(2,i.consecutiveErrors-1),3e4);this.startDataSubscription(a,i)}})}calculateRemainingTime(e){if(e<1)return 0;let i=this.dataRefreshDelay-(Date.now()-e);return i<0&&(i=0),i}updateTrafficData(e,i,o){if(i.totalSent=0,i.totalReceived=0,e&&e.length>0&&(i.totalSent=e.reduce((r,s)=>r+s.sent,0),i.totalReceived=e.reduce((r,s)=>r+s.recv,0)),0===i.sentHistory.length)for(let r=0;rthis.maxTrafficHistorySlots&&(s=this.maxTrafficHistorySlots),0===s)i.sentHistory[i.sentHistory.length-1]=i.totalSent,i.receivedHistory[i.receivedHistory.length-1]=i.totalReceived;else for(let a=0;athis.maxTrafficHistorySlots&&(i.sentHistory.splice(0,i.sentHistory.length-this.maxTrafficHistorySlots),i.receivedHistory.splice(0,i.receivedHistory.length-this.maxTrafficHistorySlots))}}forceSpecificNodeRefresh(e){const i=this.nodesMap.get(e);i&&this.startDataSubscription(0,i)}finishIfExpired(e){e.stopRequestedDate>0&&Date.now()-e.stopRequestedDate>this.expirationTime&&(e.dataSubject.complete(),e.updateSubscription.unsubscribe(),this.nodesMap.delete(e.pk))}static{this.\u0275fac=function(i){return new(i||t)(ce(ti),ce(Io))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();function aye(t,n){if(1&t){const e=oe();Vr(0),h(1,"div",2)(2,"div",3)(3,"app-top-bar",4),F("optionSelected",function(o){return j(e),U(v().performAction(o))})("refreshRequested",function(){return j(e),U(v().forceDataRefresh(!0))}),u()(),h(4,"div",3)(5,"div",5)(6,"div",6),B(7,"router-outlet"),u()()()(),cr()}if(2&t){const e=v();d(3),C("titleParts",e.titleParts)("pageHeaderLabel",e.headerLabel)("pageHeaderIdentifier",e.headerIdentifier)("tabsData",e.tabsData)("selectedTabIndex",e.selectedTabIndex)("secondsSinceLastUpdate",e.secondsSinceLastUpdate)("showLoading",e.updating)("showAlert",e.errorsUpdating)("refeshRate",e.storageService.getRefreshTime())("optionsData",e.nodeActionsHelper?e.nodeActionsHelper.options:null)("returnText",e.nodeActionsHelper?e.nodeActionsHelper.returnButtonText:"")}}function lye(t,n){1&t&&(Vr(0),B(1,"app-loading-indicator"),cr())}function cye(t,n){1&t&&(Vr(0),h(1,"div",10)(2,"div")(3,"mat-icon",11),p(4,"error"),u(),p(5),b(6,"translate"),u()(),cr()),2&t&&(d(3),C("inline",!0),d(2),E(" ",y(6,2,"node.not-found")," "))}function dye(t,n){if(1&t){const e=oe();Vr(0),h(1,"div",10)(2,"div")(3,"mat-icon",11),p(4,"error"),u(),p(5),b(6,"translate"),B(7,"br"),h(8,"button",12),F("click",function(){return j(e),U(v(2).retryLoading())}),p(9),b(10,"translate"),u()()(),cr()}2&t&&(d(3),C("inline",!0),d(2),E(" ",y(6,3,"node.error-load")," "),d(4),E(" ",y(10,5,"common.refresh")," "))}function uye(t,n){if(1&t){const e=oe();h(0,"div",7)(1,"div")(2,"app-top-bar",8),F("optionSelected",function(o){return j(e),U(v().performAction(o))}),u()(),it(3,lye,2,0,"ng-container",9)(4,cye,7,4,"ng-container",9)(5,dye,11,7,"ng-container",9),u()}if(2&t){const e=v();d(2),C("titleParts",e.titleParts)("pageHeaderLabel",e.headerLabel)("pageHeaderIdentifier",e.headerIdentifier)("tabsData",e.tabsData)("selectedTabIndex",e.selectedTabIndex)("showUpdateButton",!1)("optionsData",e.nodeActionsHelper?e.nodeActionsHelper.options:null)("returnText",e.nodeActionsHelper?e.nodeActionsHelper.returnButtonText:""),d(),C("ngIf",!e.notFound&&!e.loadFailed),d(),C("ngIf",e.notFound),d(),C("ngIf",e.loadFailed)}}let ke=(()=>{class t extends pn{static refreshCurrentDisplayedData(){t.currentInstanceInternal&&t.currentInstanceInternal.forceDataRefresh(!1)}static getCurrentNodeKey(){return t.currentNodeKey}static get currentNode(){return t.nodeSubject.asObservable()}static get currentTrafficData(){return t.trafficDataSubject.asObservable()}constructor(e,i,o,r,s,a,l,c){super(),this.storageService=e,this.singleNodeDataService=i,this.route=o,this.ngZone=r,this.snackbarService=s,this.injector=a,this.cdr=l,this.persistentDataResponseKey="serv-dat-response",this.nodeLoaded=!1,this.notFound=!1,this.titleParts=[],this.tabsData=[],this.selectedTabIndex=-1,this.headerLabel="",this.headerIdentifier="",this.showingFullList=!1,this.initialRouteEventFired=!1,this.secondsSinceLastUpdate=0,this.lastUpdate=Date.now(),this.updating=!1,this.errorsUpdating=!1,this.lastUpdateRequestedManually=!1,this.loadFailed=!1,this.consecutiveLoadErrors=0,this.instanceId="",t.nodeSubject=new oo(1),t.trafficDataSubject=new oo(1),t.currentInstanceInternal=this,this.instanceId=Math.random().toString(36).substring(7),console.log("[HV-DIAG] NodeComponent constructor, instance:",this.instanceId),this.navigationsSubscription=c.events.subscribe(f=>{f.urlAfterRedirects&&(this.lastUrl=f.urlAfterRedirects,this.processRouteUpdate(),this.initialRouteEventFired=!0)})}ngOnInit(){return this.ngZone.runOutsideAngular(()=>{this.updateTimeSubscription=xa(5e3,5e3).subscribe(()=>this.ngZone.run(()=>{this.secondsSinceLastUpdate=Math.floor((Date.now()-this.lastUpdate)/1e3)}))}),this.initSubscription=ae(0).pipe(li(500)).subscribe(()=>{this.initialRouteEventFired||(this.lastUrl=window.location.href,this.processRouteUpdate())}),super.ngOnInit()}processRouteUpdate(){console.log("[HV-DIAG] processRouteUpdate called, instance id:",this.instanceId),t.currentNodeKey=this.route.snapshot.params.key,this.nodeActionsHelper&&this.nodeActionsHelper.setCurrentNodeKey(t.currentNodeKey),this.updateTabBar(),this.navigationsSubscription.unsubscribe(),this.startGettingData(!0)}refreshHeader(){if(!this.node)return this.headerLabel="",void(this.headerIdentifier="");const e=this.storageService.getLabelInfo(this.node.localPk);this.headerLabel=e&&e.label?e.label:this.node.label||(this.node.localPk?this.node.localPk.slice(0,8)+"\u2026":""),this.headerIdentifier=this.node.localPk||""}updateTabBar(){if(this.lastUrl&&(this.lastUrl.includes("/info")||this.lastUrl.includes("/routing")||this.lastUrl.includes("/transports")||this.lastUrl.includes("/rewards")||this.lastUrl.includes("/skynet")||this.lastUrl.includes("/resources")||this.lastUrl.includes("/chat")||this.lastUrl.includes("/dmsg")||this.lastUrl.includes("/apps")&&!this.lastUrl.includes("/apps-list")))this.titleParts=["nodes.title","node.title"],this.tabsData=[{icon:"info",label:"node.tabs.info",linkParts:t.currentNodeKey?["/nodes",t.currentNodeKey,"info"]:null},{icon:"shuffle",label:"node.tabs.routing",linkParts:t.currentNodeKey?["/nodes",t.currentNodeKey,"routing"]:null},{icon:"swap_horiz",label:"node.tabs.transports",linkParts:t.currentNodeKey?["/nodes",t.currentNodeKey,"transports"]:null},{icon:"apps",label:"node.tabs.apps",linkParts:t.currentNodeKey?["/nodes",t.currentNodeKey,"apps"]:null},{icon:"monetization_on",label:"node.tabs.rewards",linkParts:t.currentNodeKey?["/nodes",t.currentNodeKey,"rewards"]:null},{icon:"public",label:"node.tabs.skynet",linkParts:t.currentNodeKey?["/nodes",t.currentNodeKey,"skynet"]:null},{icon:"memory",label:"node.tabs.resources",linkParts:t.currentNodeKey?["/nodes",t.currentNodeKey,"resources"]:null},{icon:"forum",label:"node.tabs.chat",linkParts:t.currentNodeKey?["/nodes",t.currentNodeKey,"chat"]:null},{icon:"device_hub",label:"node.tabs.dmsg",linkParts:t.currentNodeKey?["/nodes",t.currentNodeKey,"dmsg"]:null}],this.selectedTabIndex=0,this.lastUrl.includes("/routing")&&(this.selectedTabIndex=1),this.lastUrl.includes("/transports")&&(this.selectedTabIndex=2),this.lastUrl.includes("/apps")&&!this.lastUrl.includes("/apps-list")&&(this.selectedTabIndex=3),this.lastUrl.includes("/rewards")&&(this.selectedTabIndex=4),this.lastUrl.includes("/skynet")&&(this.selectedTabIndex=5),this.lastUrl.includes("/resources")&&(this.selectedTabIndex=6),this.lastUrl.includes("/chat")&&(this.selectedTabIndex=7),this.lastUrl.includes("/dmsg")&&(this.selectedTabIndex=8),this.showingFullList=!1,this.nodeActionsHelper=new gV(this.injector,this.showingFullList),this.nodeActionsHelper.setCurrentNodeKey(t.currentNodeKey),this.node&&this.nodeActionsHelper.setCurrentNode(this.node);else if(this.lastUrl&&this.lastUrl.includes("/apps-list")){this.showingFullList=!0,this.nodeActionsHelper=new gV(this.injector,this.showingFullList),this.nodeActionsHelper.setCurrentNodeKey(t.currentNodeKey),this.node&&this.nodeActionsHelper.setCurrentNode(this.node);const e="apps.apps-list";this.titleParts=["nodes.title","node.title",e+".title"],this.tabsData=[{icon:"view_headline",label:e+".list-title",linkParts:[]}],this.selectedTabIndex=0}else this.titleParts=[],this.tabsData=[]}performAction(e){this.nodeActionsHelper.performAction(e,t.currentNodeKey)}forceDataRefresh(e=!1){e&&(this.lastUpdateRequestedManually=!0),this.singleNodeDataService.forceSpecificNodeRefresh(t.currentNodeKey)}retryLoading(){this.loadFailed=!1,this.consecutiveLoadErrors=0,this.startGettingData(!1)}startGettingData(e){const i=e?this.getLocalValue(this.persistentDataResponseKey):null;let o=this.singleNodeDataService.startRequestingData(t.currentNodeKey);i&&(o=ae(JSON.parse(i.value))),this.dataSubscription=o.subscribe(r=>{if(performance.now(),console.log("[HV-DIAG] data event received",{updating:r?.updating,hasData:!!r?.data,hasError:!!r?.error,transports:r?.data?.transports?.length??"n/a",routes:r?.data?.routes?.length??"n/a",apps:r?.data?.apps?.length??"n/a"}),!i){const a=performance.now();this.saveLocalValue(this.persistentDataResponseKey,JSON.stringify(r)),console.log("[HV-DIAG] saveLocalValue took",(performance.now()-a).toFixed(1),"ms")}if(this.updating=!r||r.updating,console.log("[HV-DIAG] updating:",this.updating,"node set:",!!this.node,"notFound:",this.notFound,"loadFailed:",this.loadFailed),r&&!r.updating)if(r.data&&!r.error){const a=performance.now();this.ngZone.run(()=>{this.node=r.data,this.trafficData=r.trafficData,this.nodeLoaded=!0,this.refreshHeader()}),console.log("[HV-DIAG] node assigned, instance:",this.instanceId,"nodeLoaded:",this.nodeLoaded,"node.localPk:",this.node?.localPk?.substring(0,8),"transports:",this.node?.transports?.length,"routes:",this.node?.routes?.length);try{t.nodeSubject.next(this.node)}catch(l){console.error("[HV-DIAG] ERROR in nodeSubject.next:",l)}t.trafficDataSubject.next(this.trafficData),this.nodeActionsHelper&&this.nodeActionsHelper.setCurrentNode(this.node),this.snackbarService.closeCurrentIfTemporaryError(),this.lastUpdate=r.momentOfLastCorrectUpdate,this.secondsSinceLastUpdate=Math.floor((Date.now()-r.momentOfLastCorrectUpdate)/1e3),this.errorsUpdating=!1,this.consecutiveLoadErrors=0,this.loadFailed=!1,Xr.currentInstance.hideDataProblemMsg(),console.log("[HV-DIAG] data processing took",(performance.now()-a).toFixed(1),"ms"),console.log("[HV-DIAG] AFTER ASSIGNMENT: this.node is",this.node?"SET":"NULL","this.notFound:",this.notFound,"this.loadFailed:",this.loadFailed),this.cdr.detectChanges(),this.lastUpdateRequestedManually&&(this.snackbarService.showDone("common.refreshed",null),this.lastUpdateRequestedManually=!1)}else if(r.error){if(r.error.originalError&&400===r.error.originalError.status)return void(this.notFound=!0);if(this.consecutiveLoadErrors++,!this.node&&this.consecutiveLoadErrors>=3)return this.loadFailed=!0,this.singleNodeDataService.stopRequestingSpecificNode(t.currentNodeKey),this.snackbarService.showError("common.loading-error",null,!0,r.error),void Xr.currentInstance.showDataProblemMsg();this.errorsUpdating||this.snackbarService.showError(this.node?"node.error-load":"common.loading-error",null,!0,r.error),this.errorsUpdating=!0,Xr.currentInstance.showDataProblemMsg()}i&&this.startGettingData(!1)})}ngOnDestroy(){console.log("[HV-DIAG] ngOnDestroy, instance:",this.instanceId),this.singleNodeDataService.stopRequestingSpecificNode(t.currentNodeKey),this.dataSubscription.unsubscribe(),this.updateTimeSubscription.unsubscribe(),this.navigationsSubscription.unsubscribe(),this.initSubscription.unsubscribe(),t.currentInstanceInternal=void 0,t.currentNodeKey=void 0,t.nodeSubject.complete(),t.nodeSubject=void 0,t.trafficDataSubject.complete(),t.trafficDataSubject=void 0,this.nodeActionsHelper.dispose()}static{this.\u0275fac=function(i){return new(i||t)(O(ti),O(sye),O(Ai),O(_e),O(ct),O(He),O(Jt),O(vt))}}static{this.\u0275cmp=re({type:t,selectors:[["app-node"]],standalone:!1,features:[be],decls:3,vars:2,consts:[["loadingBlock",""],[4,"ngIf","ngIfElse"],[1,"row"],[1,"col-12"],[3,"optionSelected","refreshRequested","titleParts","pageHeaderLabel","pageHeaderIdentifier","tabsData","selectedTabIndex","secondsSinceLastUpdate","showLoading","showAlert","refeshRate","optionsData","returnText"],[1,"full-size-main-area"],[1,"d-flex","flex-column","h-100"],[1,"d-flex","flex-column","h-100","w-100"],[3,"optionSelected","titleParts","pageHeaderLabel","pageHeaderIdentifier","tabsData","selectedTabIndex","showUpdateButton","optionsData","returnText"],[4,"ngIf"],[1,"w-100","h-100","d-flex","not-found-label"],[3,"inline"],["mat-raised-button","","color","primary",2,"margin-top","16px",3,"click"]],template:function(i,o){if(1&i&&it(0,aye,8,11,"ng-container",1)(1,uye,6,11,"ng-template",null,0,Rl),2&i){const r=Hn(2);C("ngIf",o.nodeLoaded)("ngIfElse",r)}},dependencies:[tf,eb,Pn,We,Yr,Mr,xe],styles:[".not-found-label[_ngcontent-%COMP%]{align-items:center;justify-content:center;font-size:1rem;position:relative}.not-found-label[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:5px;font-size:22px;opacity:.5;margin-right:3px}.full-size-main-area[_ngcontent-%COMP%], .main-area[_ngcontent-%COMP%]{width:100%}@media(min-width:992px){.main-area[_ngcontent-%COMP%]{width:73%;padding-right:20px;float:left}}.right-bar[_ngcontent-%COMP%]{width:27%;float:right;display:none}@media(min-width:992px){.right-bar[_ngcontent-%COMP%]{display:block;width:27%;float:right}}"]})}}return t})();function hye(t,n){if(1&t&&(h(0,"mat-option",9),p(1),b(2,"translate"),u()),2&t){const e=n.$implicit;C("value",Qt(e)),d(),gt(" ",e," ",y(2,4,"settings.seconds")," ")}}let fye=(()=>{class t{constructor(e,i,o){this.formBuilder=e,this.storageService=i,this.snackbarService=o,this.timesList=["3","5","10","15","30","60","90","150","300"]}ngOnInit(){this.form=this.formBuilder.group({refreshRate:[this.storageService.getRefreshTime().toString()]}),this.subscription=this.form.get("refreshRate").valueChanges.subscribe(e=>{this.storageService.setRefreshTime(e),this.snackbarService.showDone("settings.refresh-rate-confirmation")})}ngOnDestroy(){this.subscription.unsubscribe()}static{this.\u0275fac=function(i){return new(i||t)(O(di),O(ti),O(ct))}}static{this.\u0275cmp=re({type:t,selectors:[["app-refresh-rate"]],standalone:!1,decls:15,vars:8,consts:[[1,"rounded-elevated-box"],[1,"box-internal-container","overflow"],[1,"white-form-help-icon-container"],[1,"help-icon",3,"inline","matTooltip"],[3,"formGroup"],[1,"white-form-field"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","refreshRate"],[3,"value"]],template:function(i,o){1&i&&(h(0,"div",0)(1,"div",1)(2,"div",2)(3,"mat-icon",3),b(4,"translate"),p(5," help "),u()(),h(6,"form",4)(7,"mat-form-field",5)(8,"div",6)(9,"label",7),p(10),b(11,"translate"),u(),h(12,"mat-select",8),ve(13,hye,3,6,"mat-option",9,Fe),u()()()()()()),2&i&&(d(3),C("inline",!0)("matTooltip",y(4,4,"settings.refresh-rate-help")),d(3),C("formGroup",o.form),d(4),M(y(11,6,"settings.refresh-rate")),d(3),ye(o.timesList))},dependencies:[xn,qt,wn,on,mn,sn,We,Kt,Pa,Qr,xe],styles:[".help-icon[_ngcontent-%COMP%]{display:inline}mat-form-field[_ngcontent-%COMP%]{margin-right:32px}mat-form-field[_ngcontent-%COMP%] .mat-mdc-form-field-bottom-align{margin-bottom:0!important}"]})}}return t})();const pye=t=>({number:t});let _V=(()=>{class t{constructor(){this.numberOfElements=0,this.linkParts=[""],this.queryParams={}}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=re({type:t,selectors:[["app-view-all-link"]],inputs:{numberOfElements:"numberOfElements",linkParts:"linkParts",queryParams:"queryParams"},standalone:!1,decls:6,vars:9,consts:[[1,"main-container"],[3,"routerLink","queryParams"],[3,"inline"]],template:function(i,o){1&i&&(h(0,"div",0)(1,"a",1),p(2),b(3,"translate"),h(4,"mat-icon",2),p(5,"chevron_right"),u()()()),2&i&&(d(),C("routerLink",o.linkParts)("queryParams",o.queryParams),d(),E(" ",pe(3,4,"view-all-link.label",se(7,pye,o.numberOfElements))," "),d(2),C("inline",!0))},dependencies:[Is,We,xe],styles:[".main-container[_ngcontent-%COMP%]{padding-top:20px;margin-bottom:4px;text-align:right;font-size:.875rem}@media(max-width:767px),(min-width:992px)and (max-width:1299px){.main-container[_ngcontent-%COMP%]{margin:0;padding:16px}}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:#f8f9f9;text-decoration:none}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:7px}"]})}}return t})();const mye=t=>({"paginator-icons-fixer":t}),Tk=()=>["/settings","labels"],gye=(t,n)=>({"small-node-list-margins":t,"full-node-list-margins":n}),_ye=t=>({"d-lg-none d-xl-table":t}),bye=t=>({"d-lg-table d-xl-none":t});function vye(t,n){1&t&&(h(0,"span",3),p(1),b(2,"translate"),h(3,"mat-icon",14),b(4,"translate"),p(5,"help"),u()()),2&t&&(d(),E(" ",y(2,3,"labels.title")," "),d(2),C("inline",!0)("matTooltip",y(4,5,"labels.info")))}function yye(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,v().$implicit.translatableValue)," ")}function Cye(t,n){1&t&&p(0),2&t&&E(" ",v().$implicit.value," ")}function wye(t,n){if(1&t&&(h(0,"div",16)(1,"span"),p(2),b(3,"translate"),u(),x(4,yye,2,3),x(5,Cye,1,1),u()),2&t){const e=n.$implicit;d(2),E("",y(3,3,e.filterName),": "),d(2),S(e.translatableValue?4:-1),d(),S(e.value?5:-1)}}function xye(t,n){if(1&t){const e=oe();h(0,"div",15),F("click",function(){return j(e),U(v().dataFilterer.removeFilters())}),ve(1,wye,6,5,"div",16,Fe),h(3,"div",17),p(4),b(5,"translate"),u()()}if(2&t){const e=v();d(),ye(e.dataFilterer.currentFiltersTexts),d(3),M(y(5,1,"filters.press-to-remove"))}}function Sye(t,n){if(1&t){const e=oe();h(0,"mat-icon",18),b(1,"translate"),F("click",function(){return j(e),U(v().dataFilterer.changeFilters())}),p(2,"filter_list"),u()}2&t&&C("inline",!0)("matTooltip",y(1,2,"filters.filter-action"))}function kye(t,n){if(1&t&&(h(0,"mat-icon",8),p(1,"more_horiz"),u()),2&t){v();const e=Hn(9);C("inline",!0)("matMenuTriggerFor",e)}}function Dye(t,n){if(1&t&&B(0,"app-paginator",12),2&t){const e=v();C("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",Ct(4,Tk))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function Mye(t,n){if(1&t&&(h(0,"mat-icon",22),p(1),u()),2&t){const e=v(2);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function Tye(t,n){if(1&t&&(h(0,"mat-icon",22),p(1),u()),2&t){const e=v(2);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function Eye(t,n){if(1&t&&(h(0,"mat-icon",22),p(1),u()),2&t){const e=v(2);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function Pye(t,n){if(1&t){const e=oe();h(0,"tr")(1,"td",30)(2,"mat-checkbox",31),F("change",function(){const o=j(e).$implicit;return U(v(2).changeSelection(o))}),u()(),h(3,"td"),p(4),u(),h(5,"td"),p(6),u(),h(7,"td"),p(8),b(9,"translate"),u(),h(10,"td",23)(11,"button",32),b(12,"translate"),F("click",function(){const o=j(e).$implicit;return U(v(2).delete(o.id))}),h(13,"mat-icon",22),p(14,"close"),u()()()()}if(2&t){const e=n.$implicit,i=v(2);d(2),C("checked",i.selections.get(e.id)),d(2),E(" ",e.label," "),d(2),E(" ",e.id," "),d(2),gt(" ",i.getLabelTypeIdentification(e)[0]," - ",y(9,7,i.getLabelTypeIdentification(e)[1])," "),d(3),C("matTooltip",y(12,9,"labels.delete")),d(2),C("inline",!0)}}function Iye(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"tables.label")," ")}function Oye(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"tables.inverted-order")," ")}function Aye(t,n){if(1&t){const e=oe();h(0,"tr")(1,"td")(2,"div",26)(3,"div",33)(4,"mat-checkbox",31),F("change",function(){const o=j(e).$implicit;return U(v(2).changeSelection(o))}),u()(),h(5,"div",27)(6,"div",34)(7,"span",2),p(8),b(9,"translate"),u(),p(10),u(),h(11,"div",35)(12,"span",2),p(13),b(14,"translate"),u(),p(15),u(),h(16,"div",34)(17,"span",2),p(18),b(19,"translate"),u(),p(20),b(21,"translate"),u()(),B(22,"div",36),h(23,"div",28)(24,"button",37),b(25,"translate"),F("click",function(o){const r=j(e).$implicit,s=v(2);return o.stopPropagation(),U(s.showOptionsDialog(r))}),h(26,"mat-icon"),p(27),u()()()()()()}if(2&t){const e=n.$implicit,i=v(2);d(4),C("checked",i.selections.get(e.id)),d(4),M(y(9,10,"labels.label")),d(2),E(": ",e.label," "),d(3),M(y(14,12,"labels.id")),d(2),E(": ",e.id," "),d(3),M(y(19,14,"labels.type")),d(2),gt(": ",i.getLabelTypeIdentification(e)[0]," - ",y(21,16,i.getLabelTypeIdentification(e)[1])," "),d(4),C("matTooltip",y(25,18,"common.options")),d(3),M("add")}}function Rye(t,n){if(1&t&&B(0,"app-view-all-link",29),2&t){const e=v(2);C("numberOfElements",e.filteredLabels.length)("linkParts",Ct(3,Tk))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function Fye(t,n){if(1&t){const e=oe();h(0,"div",13)(1,"div",19)(2,"table",20)(3,"tr"),B(4,"th"),h(5,"th",21),F("click",function(){j(e);const o=v();return U(o.dataSorter.changeSortingOrder(o.labelSortData))}),p(6),b(7,"translate"),x(8,Mye,2,2,"mat-icon",22),u(),h(9,"th",21),F("click",function(){j(e);const o=v();return U(o.dataSorter.changeSortingOrder(o.idSortData))}),p(10),b(11,"translate"),x(12,Tye,2,2,"mat-icon",22),u(),h(13,"th",21),F("click",function(){j(e);const o=v();return U(o.dataSorter.changeSortingOrder(o.typeSortData))}),p(14),b(15,"translate"),x(16,Eye,2,2,"mat-icon",22),u(),B(17,"th",23),u(),ve(18,Pye,15,11,"tr",null,Fe),u(),h(20,"table",24)(21,"tr",25),F("click",function(){return j(e),U(v().dataSorter.openSortingOrderModal())}),h(22,"td")(23,"div",26)(24,"div",27)(25,"div",2),p(26),b(27,"translate"),u(),h(28,"div"),p(29),b(30,"translate"),x(31,Iye,2,3),x(32,Oye,2,3),u()(),h(33,"div",28)(34,"mat-icon",22),p(35,"keyboard_arrow_down"),u()()()()(),ve(36,Aye,28,20,"tr",null,Fe),u(),x(38,Rye,1,4,"app-view-all-link",29),u()()}if(2&t){const e=v();d(),C("ngClass",_t(25,gye,e.showShortList_,!e.showShortList_)),d(),C("ngClass",se(28,_ye,e.showShortList_)),d(4),E(" ",y(7,15,"labels.label")," "),d(2),S(e.dataSorter.currentSortingColumn===e.labelSortData?8:-1),d(2),E(" ",y(11,17,"labels.id")," "),d(2),S(e.dataSorter.currentSortingColumn===e.idSortData?12:-1),d(2),E(" ",y(15,19,"labels.type")," "),d(2),S(e.dataSorter.currentSortingColumn===e.typeSortData?16:-1),d(2),ye(e.dataSource),d(2),C("ngClass",se(30,bye,e.showShortList_)),d(6),M(y(27,21,"tables.sorting-title")),d(3),E("",y(30,23,e.dataSorter.currentSortingColumn.label)," "),d(2),S(e.dataSorter.currentlySortingByLabel?31:-1),d(),S(e.dataSorter.sortingInReverseOrder?32:-1),d(2),C("inline",!0),d(2),ye(e.dataSource),d(2),S(e.showShortList_&&e.numberOfPages>1?38:-1)}}function Nye(t,n){1&t&&(h(0,"span",40),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"labels.empty")))}function Lye(t,n){1&t&&(h(0,"span",40),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"labels.empty-with-filter")))}function Bye(t,n){if(1&t&&(h(0,"div",13)(1,"div",38)(2,"mat-icon",39),p(3,"warning"),u(),x(4,Nye,3,3,"span",40),x(5,Lye,3,3,"span",40),u()()),2&t){const e=v();d(2),C("inline",!0),d(2),S(0===e.allLabels.length?4:-1),d(),S(0!==e.allLabels.length?5:-1)}}function Vye(t,n){if(1&t&&B(0,"app-paginator",12),2&t){const e=v();C("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",Ct(4,Tk))("queryParams",e.dataFilterer.currentUrlQueryParams)}}let bV=(()=>{class t{set showShortList(e){this.showShortList_=e,this.dataSorter.setData(this.filteredLabels)}constructor(e,i,o,r,s,a){this.dialog=e,this.route=i,this.router=o,this.snackbarService=r,this.translateService=s,this.storageService=a,this.listId="ll",this.labelSortData=new Dt(["label"],"labels.label",st.Text),this.idSortData=new Dt(["id"],"labels.id",st.Text),this.typeSortData=new Dt(["identifiedElementType_sort"],"labels.type",st.Text),this.selections=new Map,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.filterProperties=[{filterName:"labels.filter-dialog.label",keyNameInElementsArray:"label",type:Sn.TextInput,maxlength:100},{filterName:"labels.filter-dialog.id",keyNameInElementsArray:"id",type:Sn.TextInput,maxlength:66},{filterName:"labels.filter-dialog.type",keyNameInElementsArray:"identifiedElementType",type:Sn.Select,printableLabelsForValues:[{value:"",label:"labels.filter-dialog.type-options.any"},{value:ro.Node,label:"labels.filter-dialog.type-options.visor"},{value:ro.DmsgServer,label:"labels.filter-dialog.type-options.dmsg-server"},{value:ro.Transport,label:"labels.filter-dialog.type-options.transport"}]}],this.dataSorter=new gu(this.dialog,this.translateService,this.storageService,[this.labelSortData,this.idSortData,this.typeSortData],0,this.listId),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataFilterer=new _u(this.dialog,this.route,this.router,this.filterProperties,this.listId),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(c=>{this.filteredLabels=c,this.dataSorter.setData(this.filteredLabels)}),this.loadData(),this.navigationsSubscription=this.route.paramMap.subscribe(c=>{if(c.has("page")){let f=Number.parseInt(c.get("page"),10);(isNaN(f)||f<1)&&(f=1),this.currentPageInUrl=f,this.recalculateElementsToShow()}})}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.dataSortedSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFiltererSubscription.unsubscribe(),this.dataFilterer.dispose()}loadData(){this.allLabels=this.storageService.getSavedLabels(),this.allLabels.forEach(e=>{e.identifiedElementType_sort=this.getLabelTypeIdentification(e)[0]}),this.dataFilterer.setData(this.allLabels)}getLabelTypeIdentification(e){return e.identifiedElementType===ro.Node?["1","labels.filter-dialog.type-options.visor"]:e.identifiedElementType===ro.DmsgServer?["2","labels.filter-dialog.type-options.dmsg-server"]:e.identifiedElementType===ro.Transport?["3","labels.filter-dialog.type-options.transport"]:void 0}changeSelection(e){this.selections.get(e.id)?this.selections.set(e.id,!1):this.selections.set(e.id,!0)}hasSelectedElements(){if(!this.selections)return!1;let e=!1;return this.selections.forEach(i=>{i&&(e=!0)}),e}changeAllSelections(e){this.selections.forEach((i,o)=>{this.selections.set(o,e)})}deleteSelected(){const e=Rt.createConfirmationDialog(this.dialog,"labels.delete-selected-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.close(),this.selections.forEach((i,o)=>{i&&this.storageService.saveLabel(o,"",null)}),this.snackbarService.showDone("labels.deleted"),this.loadData()})}showOptionsDialog(e){ao.openDialog(this.dialog,[{icon:"close",label:"labels.delete"}],"common.options").afterClosed().subscribe(o=>{1===o&&this.delete(e.id)})}delete(e){const i=Rt.createConfirmationDialog(this.dialog,"labels.delete-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.close(),this.storageService.saveLabel(e,"",null),this.snackbarService.showDone("labels.deleted"),this.loadData()})}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredLabels){const e=this.showShortList_?rt.maxShortListElements:rt.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredLabels.length/e),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const i=e*(this.currentPage-1);this.labelsToShow=this.filteredLabels.slice(i,i+e);const r=new Map;this.labelsToShow.forEach(a=>{r.set(a.id,!0),this.selections.has(a.id)||this.selections.set(a.id,!1)});const s=[];this.selections.forEach((a,l)=>{r.has(l)||s.push(l)}),s.forEach(a=>{this.selections.delete(a)})}else this.labelsToShow=null,this.selections=new Map;this.dataSource=this.labelsToShow}static{this.\u0275fac=function(i){return new(i||t)(O(Ot),O(Ai),O(vt),O(ct),O(Go),O(ti))}}static{this.\u0275cmp=re({type:t,selectors:[["app-label-list"]],inputs:{showShortList:"showShortList"},standalone:!1,decls:23,vars:23,consts:[["selectionMenu","matMenu"],[1,"generic-title-container","mt-4.5","d-flex",3,"ngClass"],[1,"title"],[1,"uppercase"],[1,"filter-label","subtle-transparent-button","cursor-pointer"],[1,"options"],[1,"options-container"],[1,"small-icon",3,"inline","matTooltip"],[3,"inline","matMenuTriggerFor"],[3,"overlapTrigger"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"click","disabled"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"rounded-elevated-box","mt-3"],[1,"help","d-none","d-md-inline",3,"inline","matTooltip"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],[1,"item"],[1,"transparent-50"],[1,"small-icon",3,"click","inline","matTooltip"],[1,"box-internal-container","overflow",3,"ngClass"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table",3,"ngClass"],[1,"sortable-column",3,"click"],[3,"inline"],[1,"actions"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none",3,"ngClass"],[1,"selectable",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],[3,"numberOfElements","linkParts","queryParams"],[1,"selection-col"],[3,"change","checked"],["mat-button","",1,"action-button","transparent-button",3,"click","matTooltip"],[1,"check-part"],[1,"list-row"],[1,"list-row","long-content"],[1,"margin-part"],["mat-icon-button","",1,"transparent-button",3,"click","matTooltip"],[1,"box-internal-container"],[1,"alert-icon",3,"inline"],[1,"font-sm"]],template:function(i,o){1&i&&(h(0,"div",1)(1,"div",2),x(2,vye,6,7,"span",3),x(3,xye,6,3,"div",4),u(),h(4,"div",5)(5,"div",6),x(6,Sye,3,4,"mat-icon",7),x(7,kye,2,2,"mat-icon",8),h(8,"mat-menu",9,0)(10,"div",10),F("click",function(){return o.changeAllSelections(!0)}),p(11),b(12,"translate"),u(),h(13,"div",10),F("click",function(){return o.changeAllSelections(!1)}),p(14),b(15,"translate"),u(),h(16,"div",11),F("click",function(){return o.deleteSelected()}),p(17),b(18,"translate"),u()()(),x(19,Dye,1,5,"app-paginator",12),u()(),x(20,Fye,39,32,"div",13),x(21,Bye,6,3,"div",13),x(22,Vye,1,5,"app-paginator",12)),2&i&&(C("ngClass",se(21,mye,!o.showShortList_&&o.numberOfPages>1&&o.dataSource)),d(2),S(o.showShortList_?2:-1),d(),S(o.dataFilterer.currentFiltersTexts&&o.dataFilterer.currentFiltersTexts.length>0?3:-1),d(3),S(o.allLabels&&o.allLabels.length>0?6:-1),d(),S(o.dataSource&&o.dataSource.length>0?7:-1),d(),C("overlapTrigger",!1),d(3),E(" ",y(12,15,"selection.select-all")," "),d(3),E(" ",y(15,17,"selection.unselect-all")," "),d(2),C("disabled",Qt(!o.hasSelectedElements())),d(),E(" ",y(18,19,"selection.delete-all")," "),d(2),S(!o.showShortList_&&o.numberOfPages>1&&o.dataSource?19:-1),d(),S(o.dataSource&&o.dataSource.length>0?20:-1),d(),S(o.dataSource&&0!==o.dataSource.length?-1:21),d(),S(!o.showShortList_&&o.numberOfPages>1&&o.dataSource?22:-1))},dependencies:[$t,Pn,Wo,We,Kt,Jr,As,vu,kr,_V,mv,xe],styles:[".overflow[_ngcontent-%COMP%]{display:block;width:100%;overflow-x:auto}.overflow[_ngcontent-%COMP%] table[_ngcontent-%COMP%]{width:100%}.actions[_ngcontent-%COMP%]{text-align:right;width:90px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}"]})}}return t})();const Hye=()=>["start.title"];function jye(t,n){1&t&&B(0,"app-password")}function Uye(t,n){1&t&&(h(0,"div",5),B(1,"mat-spinner",7),p(2),b(3,"translate"),u()),2&t&&(d(),C("diameter",11),d(),E(" ",y(3,2,"settings.checking-auth")," "))}let zye=(()=>{class t extends pn{constructor(e,i,o,r){super(),this.authService=e,this.router=i,this.snackbarService=o,this.dialog=r,this.persistentAuthDataResponseKey="serv-aut-response",this.tabsData=[],this.options=[],this.waitBeforeShowingLoading=!0,this.authChecked=!1,this.authActive=!1,this.tabsData=[{icon:"view_headline",label:"nodes.title",linkParts:["/nodes"],group:"local"},{icon:"monetization_on",label:"nodes.rewards-title",linkParts:["/nodes","rewards"],group:"local"},{icon:"memory",label:"nodes.resources-title",linkParts:["/nodes","resources"],group:"local"},{icon:"swap_horiz",label:"nodes.transports-title",linkParts:["/nodes","transports"],group:"network"},{icon:"public",label:"nodes.network-title",linkParts:["/nodes","network"],group:"network"},{icon:"bubble_chart",label:"node.details.tpviz.title",linkParts:[],externalUrl:"/tp-viz/",group:"network"},{icon:"check_circle",label:"nodes.services-health-title",linkParts:["/nodes","services-health"],group:"network"},{icon:"settings",label:"settings.title",linkParts:["/settings"]}],this.updateOptionsMenu()}ngOnInit(){return setTimeout(()=>{this.waitBeforeShowingLoading=!1},500),this.checkAuth(0,!0),super.ngOnInit()}checkAuth(e,i){const o=i?this.getLocalValue(this.persistentAuthDataResponseKey):null;let r=this.authService.checkLogin();o&&(r=ae(JSON.parse(o.value))),this.authSubscription=ae(1).pipe(li(e),It(()=>r)).subscribe(s=>{o||this.saveLocalValue(this.persistentAuthDataResponseKey,JSON.stringify(s)),this.authChecked=!0,this.authActive=s===ka.Logged,this.updateOptionsMenu(),o&&this.checkAuth(0,!1)},()=>{this.checkAuth(15e3,!1)})}ngOnDestroy(){this.authSubscription.unsubscribe()}updateOptionsMenu(){this.options=[],this.authActive&&(this.options=[{name:"common.logout",actionName:"logout",icon:"power_settings_new"}])}performAction(e){"logout"===e&&this.logout()}logout(){const e=Rt.createConfirmationDialog(this.dialog,"common.logout-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.closeModal(),this.authService.logout().subscribe(()=>this.router.navigate(["login"]),()=>this.snackbarService.showError("common.logout-error"))})}static{this.\u0275fac=function(i){return new(i||t)(O(Yf),O(vt),O(ct),O(Ot))}}static{this.\u0275cmp=re({type:t,selectors:[["app-settings"]],standalone:!1,features:[be],decls:8,vars:9,consts:[[1,"row"],[1,"col-12"],[3,"optionSelected","titleParts","tabsData","selectedTabIndex","showUpdateButton","optionsData"],[1,"content","col-12","mt-4.5"],[1,"d-block","mb-4"],[1,"white-theme","checking-container"],[3,"showShortList"],[3,"diameter"]],template:function(i,o){1&i&&(h(0,"div",0)(1,"div",1)(2,"app-top-bar",2),F("optionSelected",function(s){return o.performAction(s)}),u()(),h(3,"div",3),B(4,"app-refresh-rate",4),x(5,jye,1,0,"app-password"),x(6,Uye,4,4,"div",5),B(7,"app-label-list",6),u()()),2&i&&(d(2),C("titleParts",Ct(8,Hye))("tabsData",o.tabsData)("selectedTabIndex",7)("showUpdateButton",!1)("optionsData",o.options),d(3),S(o.authChecked&&o.authActive?5:-1),d(),S(o.authChecked||o.waitBeforeShowingLoading?-1:6),d(),C("showShortList",!0))},dependencies:[so,$B,fye,Mr,bV,xe],styles:[".checking-container[_ngcontent-%COMP%]{font-size:10px;opacity:.5}.checking-container[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%]{display:inline-block}.show-link[_ngcontent-%COMP%]{cursor:pointer;font-size:.8rem}"]})}}return t})(),Ek=(()=>{class t{constructor(e){this.apiService=e}get(e,i){return this.apiService.get(`visors/${e}/routes/${i}`)}delete(e,i){return this.apiService.delete(`visors/${e}/routes/${i}`)}setMinHops(e,i){return this.apiService.post(`visors/${e}/min-hops`,{min_hops:i})}static{this.\u0275fac=function(i){return new(i||t)(ce(zi))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();function yu(t){return t+.5|0}const Fs=(t,n,e)=>Math.max(Math.min(t,e),n);function sp(t){return Fs(yu(2.55*t),0,255)}function Oa(t){return Fs(yu(255*t),0,255)}function Ns(t){return Fs(yu(t/2.55)/100,0,1)}function vV(t){return Fs(yu(100*t),0,100)}const Qo={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},Pk=[..."0123456789ABCDEF"],$ye=t=>Pk[15&t],Wye=t=>Pk[(240&t)>>4]+Pk[15&t],_v=t=>(240&t)>>4==(15&t);const Xye=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function yV(t,n,e){const i=n*Math.min(e,1-e),o=(r,s=(r+t/30)%12)=>e-i*Math.max(Math.min(s-3,9-s,1),-1);return[o(0),o(8),o(4)]}function Zye(t,n,e){const i=(o,r=(o+t/60)%6)=>e-e*n*Math.max(Math.min(r,4-r,1),0);return[i(5),i(3),i(1)]}function Qye(t,n,e){const i=yV(t,1,.5);let o;for(n+e>1&&(o=1/(n+e),n*=o,e*=o),o=0;o<3;o++)i[o]*=1-n-e,i[o]+=n;return i}function Ik(t){const e=t.r/255,i=t.g/255,o=t.b/255,r=Math.max(e,i,o),s=Math.min(e,i,o),a=(r+s)/2;let l,c,f;return r!==s&&(f=r-s,c=a>.5?f/(2-r-s):f/(r+s),l=function Jye(t,n,e,i,o){return t===o?(n-e)/i+(nt<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055,Cu=t=>t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4);function vv(t,n,e){if(t){let i=Ik(t);i[n]=Math.max(0,Math.min(i[n]+i[n]*e,0===n?360:1)),i=Ak(i),t.r=i[0],t.g=i[1],t.b=i[2]}}function SV(t,n){return t&&Object.assign(n||{},t)}function kV(t){var n={r:0,g:0,b:0,a:255};return Array.isArray(t)?t.length>=3&&(n={r:t[0],g:t[1],b:t[2],a:255},t.length>3&&(n.a=Oa(t[3]))):(n=SV(t,{r:0,g:0,b:0,a:1})).a=Oa(n.a),n}function uCe(t){return"r"===t.charAt(0)?function lCe(t){const n=aCe.exec(t);let i,o,r,e=255;if(n){if(n[7]!==i){const s=+n[7];e=n[8]?sp(s):Fs(255*s,0,255)}return i=+n[1],o=+n[3],r=+n[5],i=255&(n[2]?sp(i):Fs(i,0,255)),o=255&(n[4]?sp(o):Fs(o,0,255)),r=255&(n[6]?sp(r):Fs(r,0,255)),{r:i,g:o,b:r,a:e}}}(t):function nCe(t){const n=Xye.exec(t);let i,e=255;if(!n)return;n[5]!==i&&(e=n[6]?sp(+n[5]):Oa(+n[5]));const o=CV(+n[2]),r=+n[3]/100,s=+n[4]/100;return i="hwb"===n[1]?function eCe(t,n,e){return Ok(Qye,t,n,e)}(o,r,s):"hsv"===n[1]?function tCe(t,n,e){return Ok(Zye,t,n,e)}(o,r,s):Ak(o,r,s),{r:i[0],g:i[1],b:i[2],a:e}}(t)}class wu{constructor(n){if(n instanceof wu)return n;const e=typeof n;let i;"object"===e?i=kV(n):"string"===e&&(i=function qye(t){var e,n=t.length;return"#"===t[0]&&(4===n||5===n?e={r:255&17*Qo[t[1]],g:255&17*Qo[t[2]],b:255&17*Qo[t[3]],a:5===n?17*Qo[t[4]]:255}:(7===n||9===n)&&(e={r:Qo[t[1]]<<4|Qo[t[2]],g:Qo[t[3]]<<4|Qo[t[4]],b:Qo[t[5]]<<4|Qo[t[6]],a:9===n?Qo[t[7]]<<4|Qo[t[8]]:255})),e}(n)||function sCe(t){bv||(bv=function rCe(){const t={},n=Object.keys(xV),e=Object.keys(wV);let i,o,r,s,a;for(i=0;i>16&255,r>>8&255,255&r]}return t}(),bv.transparent=[0,0,0,0]);const n=bv[t.toLowerCase()];return n&&{r:n[0],g:n[1],b:n[2],a:4===n.length?n[3]:255}}(n)||uCe(n)),this._rgb=i,this._valid=!!i}get valid(){return this._valid}get rgb(){var n=SV(this._rgb);return n&&(n.a=Ns(n.a)),n}set rgb(n){this._rgb=kV(n)}rgbString(){return this._valid?function cCe(t){return t&&(t.a<255?`rgba(${t.r}, ${t.g}, ${t.b}, ${Ns(t.a)})`:`rgb(${t.r}, ${t.g}, ${t.b})`)}(this._rgb):void 0}hexString(){return this._valid?function Yye(t){var n=(t=>_v(t.r)&&_v(t.g)&&_v(t.b)&&_v(t.a))(t)?$ye:Wye;return t?"#"+n(t.r)+n(t.g)+n(t.b)+((t,n)=>t<255?n(t):"")(t.a,n):void 0}(this._rgb):void 0}hslString(){return this._valid?function oCe(t){if(!t)return;const n=Ik(t),e=n[0],i=vV(n[1]),o=vV(n[2]);return t.a<255?`hsla(${e}, ${i}%, ${o}%, ${Ns(t.a)})`:`hsl(${e}, ${i}%, ${o}%)`}(this._rgb):void 0}mix(n,e){if(n){const i=this.rgb,o=n.rgb;let r;const s=e===r?.5:e,a=2*s-1,l=i.a-o.a,c=((a*l===-1?a:(a+l)/(1+a*l))+1)/2;r=1-c,i.r=255&c*i.r+r*o.r+.5,i.g=255&c*i.g+r*o.g+.5,i.b=255&c*i.b+r*o.b+.5,i.a=s*i.a+(1-s)*o.a,this.rgb=i}return this}interpolate(n,e){return n&&(this._rgb=function dCe(t,n,e){const i=Cu(Ns(t.r)),o=Cu(Ns(t.g)),r=Cu(Ns(t.b));return{r:Oa(Rk(i+e*(Cu(Ns(n.r))-i))),g:Oa(Rk(o+e*(Cu(Ns(n.g))-o))),b:Oa(Rk(r+e*(Cu(Ns(n.b))-r))),a:t.a+e*(n.a-t.a)}}(this._rgb,n._rgb,e)),this}clone(){return new wu(this.rgb)}alpha(n){return this._rgb.a=Oa(n),this}clearer(n){return this._rgb.a*=1-n,this}greyscale(){const n=this._rgb,e=yu(.3*n.r+.59*n.g+.11*n.b);return n.r=n.g=n.b=e,this}opaquer(n){return this._rgb.a*=1+n,this}negate(){const n=this._rgb;return n.r=255-n.r,n.g=255-n.g,n.b=255-n.b,this}lighten(n){return vv(this._rgb,2,n),this}darken(n){return vv(this._rgb,2,-n),this}saturate(n){return vv(this._rgb,1,n),this}desaturate(n){return vv(this._rgb,1,-n),this}rotate(n){return function iCe(t,n){var e=Ik(t);e[0]=CV(e[0]+n),e=Ak(e),t.r=e[0],t.g=e[1],t.b=e[2]}(this._rgb,n),this}}const hCe=(()=>{let t=0;return()=>t++})();function dt(t){return null==t}function vn(t){if(Array.isArray&&Array.isArray(t))return!0;const n=Object.prototype.toString.call(t);return"[object"===n.slice(0,7)&&"Array]"===n.slice(-6)}function ft(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)}function jn(t){return("number"==typeof t||t instanceof Number)&&isFinite(+t)}function Oo(t,n){return jn(t)?t:n}function Ge(t,n){return typeof t>"u"?n:t}function ln(t,n,e){if(t&&"function"==typeof t.call)return t.apply(e,n)}function Vt(t,n,e,i){let o,r,s;if(vn(t))if(r=t.length,i)for(o=r-1;o>=0;o--)n.call(e,t[o],o);else for(o=0;ot,x:t=>t.x,y:t=>t.y};function Aa(t,n){return(TV[n]||(TV[n]=function _Ce(t){const n=function gCe(t){const n=t.split("."),e=[];let i="";for(const o of n)i+=o,i.endsWith("\\")?i=i.slice(0,-1)+".":(e.push(i),i="");return e}(t);return e=>{for(const i of n){if(""===i)break;e=e&&e[i]}return e}}(n)))(t)}function Fk(t){return t.charAt(0).toUpperCase()+t.slice(1)}const cp=t=>typeof t<"u",Ra=t=>"function"==typeof t,EV=(t,n)=>{if(t.size!==n.size)return!1;for(const e of t)if(!n.has(e))return!1;return!0},Mt=Math.PI,yn=2*Mt,vCe=yn+Mt,wv=Number.POSITIVE_INFINITY,yCe=Mt/180,Xn=Mt/2,pc=Mt/4,PV=2*Mt/3,Fa=Math.log10,ts=Math.sign;function dp(t,n,e){return Math.abs(t-n)l&&c=Math.min(n,e)-i&&t<=Math.max(n,e)+i}function Bk(t,n,e){e=e||(s=>t[s]1;)r=o+i>>1,e(r)?o=r:i=r;return{lo:o,hi:i}}const Vs=(t,n,e,i)=>Bk(t,e,i?o=>{const r=t[o][n];return rt[o][n]Bk(t,e,i=>t[i][n]>=e),FV=["push","pop","shift","splice","unshift"];function NV(t,n){const e=t._chartjs;if(!e)return;const i=e.listeners,o=i.indexOf(n);-1!==o&&i.splice(o,1),!(i.length>0)&&(FV.forEach(r=>{delete t[r]}),delete t._chartjs)}const BV=typeof window>"u"?function(t){return t()}:window.requestAnimationFrame;function VV(t,n){let e=[],i=!1;return function(...o){e=o,i||(i=!0,BV.call(window,()=>{i=!1,t.apply(n,e)}))}}const qi=(t,n,e)=>"start"===t?n:"end"===t?e:(n+e)/2;const xv=t=>0===t||1===t,UV=(t,n,e)=>-Math.pow(2,10*(t-=1))*Math.sin((t-n)*yn/e),zV=(t,n,e)=>Math.pow(2,-10*t)*Math.sin((t-n)*yn/e)+1,hp={linear:t=>t,easeInQuad:t=>t*t,easeOutQuad:t=>-t*(t-2),easeInOutQuad:t=>(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1),easeInCubic:t=>t*t*t,easeOutCubic:t=>(t-=1)*t*t+1,easeInOutCubic:t=>(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2),easeInQuart:t=>t*t*t*t,easeOutQuart:t=>-((t-=1)*t*t*t-1),easeInOutQuart:t=>(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2),easeInQuint:t=>t*t*t*t*t,easeOutQuint:t=>(t-=1)*t*t*t*t+1,easeInOutQuint:t=>(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2),easeInSine:t=>1-Math.cos(t*Xn),easeOutSine:t=>Math.sin(t*Xn),easeInOutSine:t=>-.5*(Math.cos(Mt*t)-1),easeInExpo:t=>0===t?0:Math.pow(2,10*(t-1)),easeOutExpo:t=>1===t?1:1-Math.pow(2,-10*t),easeInOutExpo:t=>xv(t)?t:t<.5?.5*Math.pow(2,10*(2*t-1)):.5*(2-Math.pow(2,-10*(2*t-1))),easeInCirc:t=>t>=1?t:-(Math.sqrt(1-t*t)-1),easeOutCirc:t=>Math.sqrt(1-(t-=1)*t),easeInOutCirc:t=>(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1),easeInElastic:t=>xv(t)?t:UV(t,.075,.3),easeOutElastic:t=>xv(t)?t:zV(t,.075,.3),easeInOutElastic:t=>xv(t)?t:t<.5?.5*UV(2*t,.1125,.45):.5+.5*zV(2*t-1,.1125,.45),easeInBack:t=>t*t*(2.70158*t-1.70158),easeOutBack:t=>(t-=1)*t*(2.70158*t+1.70158)+1,easeInOutBack(t){let n=1.70158;return(t/=.5)<1?t*t*((1+(n*=1.525))*t-n)*.5:.5*((t-=2)*t*((1+(n*=1.525))*t+n)+2)},easeInBounce:t=>1-hp.easeOutBounce(1-t),easeOutBounce:t=>t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375,easeInOutBounce:t=>t<.5?.5*hp.easeInBounce(2*t):.5*hp.easeOutBounce(2*t-1)+.5};function Hk(t){if(t&&"object"==typeof t){const n=t.toString();return"[object CanvasPattern]"===n||"[object CanvasGradient]"===n}return!1}function $V(t){return Hk(t)?t:new wu(t)}function jk(t){return Hk(t)?t:new wu(t).saturate(.5).darken(.1).hexString()}const ICe=["x","y","borderWidth","radius","tension"],OCe=["color","borderColor","backgroundColor"],WV=new Map;function fp(t,n,e){return function FCe(t,n){n=n||{};const e=t+JSON.stringify(n);let i=WV.get(e);return i||(i=new Intl.NumberFormat(t,n),WV.set(e,i)),i}(n,e).format(t)}const GV={values:t=>vn(t)?t:""+t,numeric(t,n,e){if(0===t)return"0";const i=this.chart.options.locale;let o,r=t;if(e.length>1){const c=Math.max(Math.abs(e[0].value),Math.abs(e[e.length-1].value));(c<1e-4||c>1e15)&&(o="scientific"),r=function NCe(t,n){let e=n.length>3?n[2].value-n[1].value:n[1].value-n[0].value;return Math.abs(e)>=1&&t!==Math.floor(t)&&(e=t-Math.floor(t)),e}(t,e)}const s=Fa(Math.abs(r)),a=isNaN(s)?1:Math.max(Math.min(-1*Math.floor(s),20),0),l={notation:o,minimumFractionDigits:a,maximumFractionDigits:a};return Object.assign(l,this.options.ticks.format),fp(t,i,l)},logarithmic(t,n,e){if(0===t)return"0";const i=e[n].significand||t/Math.pow(10,Math.floor(Fa(t)));return[1,2,3,5,10,15].includes(i)||n>.8*e.length?GV.numeric.call(this,t,n,e):""}};var Sv={formatters:GV};const mc=Object.create(null),Uk=Object.create(null);function pp(t,n){if(!n)return t;const e=n.split(".");for(let i=0,o=e.length;ii.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(i,o)=>jk(o.backgroundColor),this.hoverBorderColor=(i,o)=>jk(o.borderColor),this.hoverColor=(i,o)=>jk(o.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(n),this.apply(e)}set(n,e){return zk(this,n,e)}get(n){return pp(this,n)}describe(n,e){return zk(Uk,n,e)}override(n,e){return zk(mc,n,e)}route(n,e,i,o){const r=pp(this,n),s=pp(this,i),a="_"+e;Object.defineProperties(r,{[a]:{value:r[e],writable:!0},[e]:{enumerable:!0,get(){const l=this[a],c=s[o];return ft(l)?Object.assign({},c,l):Ge(l,c)},set(l){this[a]=l}}})}apply(n){n.forEach(e=>e(this))}}var kn=new BCe({_scriptable:t=>!t.startsWith("on"),_indexable:t=>"events"!==t,hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}},[function ACe(t){t.set("animation",{delay:void 0,duration:1e3,easing:"easeOutQuart",fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),t.describe("animation",{_fallback:!1,_indexable:!1,_scriptable:n=>"onProgress"!==n&&"onComplete"!==n&&"fn"!==n}),t.set("animations",{colors:{type:"color",properties:OCe},numbers:{type:"number",properties:ICe}}),t.describe("animations",{_fallback:"animation"}),t.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:n=>0|n}}}})},function RCe(t){t.set("layout",{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})},function LCe(t){t.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:"ticks",clip:!0,grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(n,e)=>e.lineWidth,tickColor:(n,e)=>e.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:Sv.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}}),t.route("scale.ticks","color","","color"),t.route("scale.grid","color","","borderColor"),t.route("scale.border","color","","borderColor"),t.route("scale.title","color","","color"),t.describe("scale",{_fallback:!1,_scriptable:n=>!n.startsWith("before")&&!n.startsWith("after")&&"callback"!==n&&"parser"!==n,_indexable:n=>"borderDash"!==n&&"tickBorderDash"!==n&&"dash"!==n}),t.describe("scales",{_fallback:"scale"}),t.describe("scale.ticks",{_scriptable:n=>"backdropPadding"!==n&&"callback"!==n,_indexable:n=>"backdropPadding"!==n})}]);function kv(t,n,e,i,o){let r=n[o];return r||(r=n[o]=t.measureText(o).width,e.push(o)),r>i&&(i=r),i}function gc(t,n,e){const i=t.currentDevicePixelRatio,o=0!==e?Math.max(e/2,.5):0;return Math.round((n-o)*i)/i+o}function qV(t,n){!n&&!t||((n=n||t.getContext("2d")).save(),n.resetTransform(),n.clearRect(0,0,t.width,t.height),n.restore())}function $k(t,n,e,i){!function KV(t,n,e,i,o){let r,s,a,l,c,f,m,g;const _=n.pointStyle,w=n.rotation,k=n.radius;let T=(w||0)*yCe;if(_&&"object"==typeof _&&(r=_.toString(),"[object HTMLImageElement]"===r||"[object HTMLCanvasElement]"===r))return t.save(),t.translate(e,i),t.rotate(T),t.drawImage(_,-_.width/2,-_.height/2,_.width,_.height),void t.restore();if(!(isNaN(k)||k<=0)){switch(t.beginPath(),_){default:o?t.ellipse(e,i,o/2,k,0,0,yn):t.arc(e,i,k,0,yn),t.closePath();break;case"triangle":f=o?o/2:k,t.moveTo(e+Math.sin(T)*f,i-Math.cos(T)*k),T+=PV,t.lineTo(e+Math.sin(T)*f,i-Math.cos(T)*k),T+=PV,t.lineTo(e+Math.sin(T)*f,i-Math.cos(T)*k),t.closePath();break;case"rectRounded":c=.516*k,l=k-c,s=Math.cos(T+pc)*l,m=Math.cos(T+pc)*(o?o/2-c:l),a=Math.sin(T+pc)*l,g=Math.sin(T+pc)*(o?o/2-c:l),t.arc(e-m,i-a,c,T-Mt,T-Xn),t.arc(e+g,i-s,c,T-Xn,T),t.arc(e+m,i+a,c,T,T+Xn),t.arc(e-g,i+s,c,T+Xn,T+Mt),t.closePath();break;case"rect":if(!w){l=Math.SQRT1_2*k,f=o?o/2:l,t.rect(e-f,i-l,2*f,2*l);break}T+=pc;case"rectRot":m=Math.cos(T)*(o?o/2:k),s=Math.cos(T)*k,a=Math.sin(T)*k,g=Math.sin(T)*(o?o/2:k),t.moveTo(e-m,i-a),t.lineTo(e+g,i-s),t.lineTo(e+m,i+a),t.lineTo(e-g,i+s),t.closePath();break;case"crossRot":T+=pc;case"cross":m=Math.cos(T)*(o?o/2:k),s=Math.cos(T)*k,a=Math.sin(T)*k,g=Math.sin(T)*(o?o/2:k),t.moveTo(e-m,i-a),t.lineTo(e+m,i+a),t.moveTo(e+g,i-s),t.lineTo(e-g,i+s);break;case"star":m=Math.cos(T)*(o?o/2:k),s=Math.cos(T)*k,a=Math.sin(T)*k,g=Math.sin(T)*(o?o/2:k),t.moveTo(e-m,i-a),t.lineTo(e+m,i+a),t.moveTo(e+g,i-s),t.lineTo(e-g,i+s),T+=pc,m=Math.cos(T)*(o?o/2:k),s=Math.cos(T)*k,a=Math.sin(T)*k,g=Math.sin(T)*(o?o/2:k),t.moveTo(e-m,i-a),t.lineTo(e+m,i+a),t.moveTo(e+g,i-s),t.lineTo(e-g,i+s);break;case"line":s=o?o/2:Math.cos(T)*k,a=Math.sin(T)*k,t.moveTo(e-s,i-a),t.lineTo(e+s,i+a);break;case"dash":t.moveTo(e,i),t.lineTo(e+Math.cos(T)*(o?o/2:k),i+Math.sin(T)*k);break;case!1:t.closePath()}t.fill(),n.borderWidth>0&&t.stroke()}}(t,n,e,i,null)}function Hs(t,n,e){return e=e||.5,!n||t&&t.x>n.left-e&&t.xn.top-e&&t.y0&&""!==r.strokeColor;let l,c;for(t.save(),t.font=o.string,function zCe(t,n){n.translation&&t.translate(n.translation[0],n.translation[1]),dt(n.rotation)||t.rotate(n.rotation),n.color&&(t.fillStyle=n.color),n.textAlign&&(t.textAlign=n.textAlign),n.textBaseline&&(t.textBaseline=n.textBaseline)}(t,r),l=0;l+t||0;function YV(t){return function Wk(t,n){const e={},i=ft(n),o=i?Object.keys(n):n,r=ft(t)?i?s=>Ge(t[s],t[n[s]]):s=>t[s]:()=>t;for(const s of o)e[s]=YCe(r(s));return e}(t,{top:"y",right:"x",bottom:"y",left:"x"})}function Ki(t){const n=YV(t);return n.width=n.left+n.right,n.height=n.top+n.bottom,n}function fi(t,n){let e=Ge((t=t||{}).size,(n=n||kn.font).size);"string"==typeof e&&(e=parseInt(e,10));let i=Ge(t.style,n.style);i&&!(""+i).match(qCe)&&(console.warn('Invalid font style specified: "'+i+'"'),i=void 0);const o={family:Ge(t.family,n.family),lineHeight:KCe(Ge(t.lineHeight,n.lineHeight),e),size:e,style:i,weight:Ge(t.weight,n.weight),string:""};return o.string=function VCe(t){return!t||dt(t.size)||dt(t.family)?null:(t.style?t.style+" ":"")+(t.weight?t.weight+" ":"")+t.size+"px "+t.family}(o),o}function gp(t,n,e,i){let r,s,a,o=!0;for(r=0,s=t.length;rt[0]){const r=e||t;typeof i>"u"&&(i=e8("_fallback",t));const s={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:t,_rootScopes:r,_fallback:i,_getTarget:o,override:a=>Gk([a,...t],n,r,i)};return new Proxy(s,{deleteProperty:(a,l)=>(delete a[l],delete a._keys,delete t[0][l],!0),get:(a,l)=>ZV(a,l,()=>function o1e(t,n,e,i){let o;for(const r of n)if(o=e8(ZCe(r,t),e),typeof o<"u")return qk(t,o)?Kk(e,i,t,o):o}(l,n,t,a)),getOwnPropertyDescriptor:(a,l)=>Reflect.getOwnPropertyDescriptor(a._scopes[0],l),getPrototypeOf:()=>Reflect.getPrototypeOf(t[0]),has:(a,l)=>t8(a).includes(l),ownKeys:a=>t8(a),set(a,l,c){const f=a._storage||(a._storage=o());return a[l]=f[l]=c,delete a._keys,!0}})}function Su(t,n,e,i){const o={_cacheable:!1,_proxy:t,_context:n,_subProxy:e,_stack:new Set,_descriptors:XV(t,i),setContext:r=>Su(t,r,e,i),override:r=>Su(t.override(r),n,e,i)};return new Proxy(o,{deleteProperty:(r,s)=>(delete r[s],delete t[s],!0),get:(r,s,a)=>ZV(r,s,()=>function QCe(t,n,e){const{_proxy:i,_context:o,_subProxy:r,_descriptors:s}=t;let a=i[n];return Ra(a)&&s.isScriptable(n)&&(a=function JCe(t,n,e,i){const{_proxy:o,_context:r,_subProxy:s,_stack:a}=e;if(a.has(t))throw new Error("Recursion detected: "+Array.from(a).join("->")+"->"+t);a.add(t);let l=n(r,s||i);return a.delete(t),qk(t,l)&&(l=Kk(o._scopes,o,t,l)),l}(n,a,t,e)),vn(a)&&a.length&&(a=function e1e(t,n,e,i){const{_proxy:o,_context:r,_subProxy:s,_descriptors:a}=e;if(typeof r.index<"u"&&i(t))return n[r.index%n.length];if(ft(n[0])){const l=n,c=o._scopes.filter(f=>f!==l);n=[];for(const f of l){const m=Kk(c,o,t,f);n.push(Su(m,r,s&&s[t],a))}}return n}(n,a,t,s.isIndexable)),qk(n,a)&&(a=Su(a,o,r&&r[n],s)),a}(r,s,a)),getOwnPropertyDescriptor:(r,s)=>r._descriptors.allKeys?Reflect.has(t,s)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(t,s),getPrototypeOf:()=>Reflect.getPrototypeOf(t),has:(r,s)=>Reflect.has(t,s),ownKeys:()=>Reflect.ownKeys(t),set:(r,s,a)=>(t[s]=a,delete r[s],!0)})}function XV(t,n={scriptable:!0,indexable:!0}){const{_scriptable:e=n.scriptable,_indexable:i=n.indexable,_allKeys:o=n.allKeys}=t;return{allKeys:o,scriptable:e,indexable:i,isScriptable:Ra(e)?e:()=>e,isIndexable:Ra(i)?i:()=>i}}const ZCe=(t,n)=>t?t+Fk(n):n,qk=(t,n)=>ft(n)&&"adapters"!==t&&(null===Object.getPrototypeOf(n)||n.constructor===Object);function ZV(t,n,e){if(Object.prototype.hasOwnProperty.call(t,n)||"constructor"===n)return t[n];const i=e();return t[n]=i,i}function QV(t,n,e){return Ra(t)?t(n,e):t}const t1e=(t,n)=>!0===t?n:"string"==typeof t?Aa(n,t):void 0;function n1e(t,n,e,i,o){for(const r of n){const s=t1e(e,r);if(s){t.add(s);const a=QV(s._fallback,e,o);if(typeof a<"u"&&a!==e&&a!==i)return a}else if(!1===s&&typeof i<"u"&&e!==i)return null}return!1}function Kk(t,n,e,i){const o=n._rootScopes,r=QV(n._fallback,e,i),s=[...t,...o],a=new Set;a.add(i);let l=JV(a,s,e,r||e,i);return!(null===l||typeof r<"u"&&r!==e&&(l=JV(a,s,r,l,i),null===l))&&Gk(Array.from(a),[""],o,r,()=>function i1e(t,n,e){const i=t._getTarget();n in i||(i[n]={});const o=i[n];return vn(o)&&ft(e)?e:o||{}}(n,e,i))}function JV(t,n,e,i,o){for(;e;)e=n1e(t,n,e,i,o);return e}function e8(t,n){for(const e of n){if(!e)continue;const i=e[t];if(typeof i<"u")return i}}function t8(t){let n=t._keys;return n||(n=t._keys=function r1e(t){const n=new Set;for(const e of t)for(const i of Object.keys(e).filter(o=>!o.startsWith("_")))n.add(i);return Array.from(n)}(t._scopes)),n}const s1e=Number.EPSILON||1e-14,ku=(t,n)=>n"x"===t?"y":"x";function a1e(t,n,e,i){const o=t.skip?n:t,r=n,s=e.skip?n:e,a=Lk(r,o),l=Lk(s,r);let c=a/(a+l),f=l/(a+l);c=isNaN(c)?0:c,f=isNaN(f)?0:f;const m=i*c,g=i*f;return{previous:{x:r.x-m*(s.x-o.x),y:r.y-m*(s.y-o.y)},next:{x:r.x+g*(s.x-o.x),y:r.y+g*(s.y-o.y)}}}function Tv(t,n,e){return Math.max(Math.min(t,e),n)}function h1e(t,n,e,i,o){let r,s,a,l;if(n.spanGaps&&(t=t.filter(c=>!c.skip)),"monotone"===n.cubicInterpolationMode)!function d1e(t,n="x"){const e=i8(n),i=t.length,o=Array(i).fill(0),r=Array(i);let s,a,l,c=ku(t,0);for(s=0;st.ownerDocument.defaultView.getComputedStyle(t,null),p1e=["top","right","bottom","left"];function vc(t,n,e){const i={};e=e?"-"+e:"";for(let o=0;o<4;o++){const r=p1e[o];i[r]=parseFloat(t[n+"-"+r+e])||0}return i.width=i.left+i.right,i.height=i.top+i.bottom,i}function yc(t,n){if("native"in t)return t;const{canvas:e,currentDevicePixelRatio:i}=n,o=Pv(e),r="border-box"===o.boxSizing,s=vc(o,"padding"),a=vc(o,"border","width"),{x:l,y:c,box:f}=function g1e(t,n){const e=t.touches,i=e&&e.length?e[0]:t,{offsetX:o,offsetY:r}=i;let a,l,s=!1;if(((t,n,e)=>(t>0||n>0)&&(!e||!e.shadowRoot))(o,r,t.target))a=o,l=r;else{const c=n.getBoundingClientRect();a=i.clientX-c.left,l=i.clientY-c.top,s=!0}return{x:a,y:l,box:s}}(t,e),m=s.left+(f&&a.left),g=s.top+(f&&a.top);let{width:_,height:w}=n;return r&&(_-=s.width+a.width,w-=s.height+a.height),{x:Math.round((l-m)/_*e.width/i),y:Math.round((c-g)/w*e.height/i)}}const La=t=>Math.round(10*t)/10;function o8(t,n,e){const i=n||1,o=La(t.height*i),r=La(t.width*i);t.height=La(t.height),t.width=La(t.width);const s=t.canvas;return s.style&&(e||!s.style.height&&!s.style.width)&&(s.style.height=`${t.height}px`,s.style.width=`${t.width}px`),(t.currentDevicePixelRatio!==i||s.height!==o||s.width!==r)&&(t.currentDevicePixelRatio=i,s.height=o,s.width=r,t.ctx.setTransform(i,0,0,i,0,0),!0)}const v1e=function(){let t=!1;try{const n={get passive(){return t=!0,!1}};Yk()&&(window.addEventListener("test",null,n),window.removeEventListener("test",null,n))}catch{}return t}();function r8(t,n){const e=function f1e(t,n){return Pv(t).getPropertyValue(n)}(t,n),i=e&&e.match(/^(\d+)(\.\d+)?px$/);return i?+i[1]:void 0}function Cc(t,n,e,i){return{x:t.x+e*(n.x-t.x),y:t.y+e*(n.y-t.y)}}function y1e(t,n,e,i){return{x:t.x+e*(n.x-t.x),y:"middle"===i?e<.5?t.y:n.y:"after"===i?e<1?t.y:n.y:e>0?n.y:t.y}}function C1e(t,n,e,i){const o={x:t.cp2x,y:t.cp2y},r={x:n.cp1x,y:n.cp1y},s=Cc(t,o,e),a=Cc(o,r,e),l=Cc(r,n,e),c=Cc(s,a,e),f=Cc(a,l,e);return Cc(c,f,e)}function l8(t){return"angle"===t?{between:up,compare:SCe,normalize:Gi}:{between:Bs,compare:(n,e)=>n-e,normalize:n=>n}}function c8({start:t,end:n,count:e,loop:i,style:o}){return{start:t%e,end:n%e,loop:i&&(n-t+1)%e==0,style:o}}function d8(t,n,e){if(!e)return[t];const{property:i,start:o,end:r}=e,s=n.length,{compare:a,between:l,normalize:c}=l8(i),{start:f,end:m,loop:g,style:_}=function S1e(t,n,e){const{property:i,start:o,end:r}=e,{between:s,normalize:a}=l8(i),l=n.length;let g,_,{start:c,end:f,loop:m}=t;if(m){for(c+=l,f+=l,g=0,_=l;g<_&&s(a(n[c%l][i]),o,r);++g)c--,f--;c%=l,f%=l}return fk||l(o,W,I)&&0!==a(o,W),ie=()=>!k||0===a(r,I)||l(r,W,I);for(let P=f,A=f;P<=m;++P)R=n[P%s],!R.skip&&(I=c(R[i]),I!==W&&(k=l(I,o,r),null===T&&ee()&&(T=0===a(I,o)?P:A),null!==T&&ie()&&(w.push(c8({start:T,end:P,loop:g,count:s,style:_})),T=null),A=P,W=I));return null!==T&&w.push(c8({start:T,end:m,loop:g,count:s,style:_})),w}function u8(t,n){const e=[],i=t.segments;for(let o=0;oa({chart:n,initial:e.initial,numSteps:s,currentStep:Math.min(i-e.start,s)}))}_refresh(){this._request||(this._running=!0,this._request=BV.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(n=Date.now()){let e=0;this._charts.forEach((i,o)=>{if(!i.running||!i.items.length)return;const r=i.items;let l,s=r.length-1,a=!1;for(;s>=0;--s)l=r[s],l._active?(l._total>i.duration&&(i.duration=l._total),l.tick(n),a=!0):(r[s]=r[r.length-1],r.pop());a&&(o.draw(),this._notify(o,i,n,"progress")),r.length||(i.running=!1,this._notify(o,i,n,"complete"),i.initial=!1),e+=r.length}),this._lastDate=n,0===e&&(this._running=!1)}_getAnims(n){const e=this._charts;let i=e.get(n);return i||(i={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},e.set(n,i)),i}listen(n,e,i){this._getAnims(n).listeners[e].push(i)}add(n,e){!e||!e.length||this._getAnims(n).items.push(...e)}has(n){return this._getAnims(n).items.length>0}start(n){const e=this._charts.get(n);e&&(e.running=!0,e.start=Date.now(),e.duration=e.items.reduce((i,o)=>Math.max(i,o._duration),0),this._refresh())}running(n){if(!this._running)return!1;const e=this._charts.get(n);return!(!e||!e.running||!e.items.length)}stop(n){const e=this._charts.get(n);if(!e||!e.items.length)return;const i=e.items;let o=i.length-1;for(;o>=0;--o)i[o].cancel();e.items=[],this._notify(n,e,Date.now(),"complete")}remove(n){return this._charts.delete(n)}}var js=new I1e;const m8="transparent",O1e={boolean:(t,n,e)=>e>.5?n:t,color(t,n,e){const i=$V(t||m8),o=i.valid&&$V(n||m8);return o&&o.valid?o.mix(i,e).hexString():n},number:(t,n,e)=>t+(n-t)*e};class A1e{constructor(n,e,i,o){const r=e[i];o=gp([n.to,o,r,n.from]);const s=gp([n.from,r,o]);this._active=!0,this._fn=n.fn||O1e[n.type||typeof s],this._easing=hp[n.easing]||hp.linear,this._start=Math.floor(Date.now()+(n.delay||0)),this._duration=this._total=Math.floor(n.duration),this._loop=!!n.loop,this._target=e,this._prop=i,this._from=s,this._to=o,this._promises=void 0}active(){return this._active}update(n,e,i){if(this._active){this._notify(!1);const o=this._target[this._prop],r=i-this._start,s=this._duration-r;this._start=i,this._duration=Math.floor(Math.max(s,n.duration)),this._total+=r,this._loop=!!n.loop,this._to=gp([n.to,e,o,n.from]),this._from=gp([n.from,o,e])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(n){const e=n-this._start,i=this._duration,o=this._prop,r=this._from,s=this._loop,a=this._to;let l;if(this._active=r!==a&&(s||e1?2-l:l,l=this._easing(Math.min(1,Math.max(0,l))),this._target[o]=this._fn(r,a,l))}wait(){const n=this._promises||(this._promises=[]);return new Promise((e,i)=>{n.push({res:e,rej:i})})}_notify(n){const e=n?"res":"rej",i=this._promises||[];for(let o=0;o{const r=n[o];if(!ft(r))return;const s={};for(const a of e)s[a]=r[a];(vn(r.properties)&&r.properties||[o]).forEach(a=>{(a===o||!i.has(a))&&i.set(a,s)})})}_animateOptions(n,e){const i=e.options,o=function F1e(t,n){if(!n)return;let e=t.options;if(e)return e.$shared&&(t.options=e=Object.assign({},e,{$shared:!1,$animations:{}})),e;t.options=n}(n,i);if(!o)return[];const r=this._createAnimations(o,i);return i.$shared&&function R1e(t,n){const e=[],i=Object.keys(n);for(let o=0;o{n.options=i},()=>{}),r}_createAnimations(n,e){const i=this._properties,o=[],r=n.$animations||(n.$animations={}),s=Object.keys(e),a=Date.now();let l;for(l=s.length-1;l>=0;--l){const c=s[l];if("$"===c.charAt(0))continue;if("options"===c){o.push(...this._animateOptions(n,e));continue}const f=e[c];let m=r[c];const g=i.get(c);if(m){if(g&&m.active()){m.update(g,f,a);continue}m.cancel()}g&&g.duration?(r[c]=m=new A1e(g,n,c,f),o.push(m)):n[c]=f}return o}update(n,e){if(0===this._properties.size)return void Object.assign(n,e);const i=this._createAnimations(n,e);return i.length?(js.add(this._chart,i),!0):void 0}}function _8(t,n){const e=t&&t.options||{},i=e.reverse,o=void 0===e.min?n:0,r=void 0===e.max?n:0;return{start:i?r:o,end:i?o:r}}function b8(t,n){const e=[],i=t._getSortedDatasetMetas(n);let o,r;for(o=0,r=i.length;o0||!e&&r<0)return o.index}return null}function C8(t,n){const{chart:e,_cachedMeta:i}=t,o=e._stacks||(e._stacks={}),{iScale:r,vScale:s,index:a}=i,l=r.axis,c=s.axis,f=function V1e(t,n,e){return`${t.id}.${n.id}.${e.stack||e.type}`}(r,s,i),m=n.length;let g;for(let _=0;_e[i].axis===n).shift()}function _p(t,n){const e=t.controller.index,i=t.vScale&&t.vScale.axis;if(i){n=n||t._parsed;for(const o of n){const r=o._stacks;if(!r||void 0===r[i]||void 0===r[i][e])return;delete r[i][e],void 0!==r[i]._visualValues&&void 0!==r[i]._visualValues[e]&&delete r[i]._visualValues[e]}}}const Jk=t=>"reset"===t||"none"===t,w8=(t,n)=>n?t:Object.assign({},t);let Ba=(()=>class t{static defaults={};static datasetElementType=null;static dataElementType=null;constructor(e,i){this.chart=e,this._ctx=e.ctx,this.index=i,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const e=this._cachedMeta;this.configure(),this.linkScales(),e._stacked=Zk(e.vScale,e),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(e){this.index!==e&&_p(this._cachedMeta),this.index=e}linkScales(){const e=this.chart,i=this._cachedMeta,o=this.getDataset(),r=(g,_,w,k)=>"x"===g?_:"r"===g?k:w,s=i.xAxisID=Ge(o.xAxisID,Qk(e,"x")),a=i.yAxisID=Ge(o.yAxisID,Qk(e,"y")),l=i.rAxisID=Ge(o.rAxisID,Qk(e,"r")),c=i.indexAxis,f=i.iAxisID=r(c,s,a,l),m=i.vAxisID=r(c,a,s,l);i.xScale=this.getScaleForId(s),i.yScale=this.getScaleForId(a),i.rScale=this.getScaleForId(l),i.iScale=this.getScaleForId(f),i.vScale=this.getScaleForId(m)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(e){return this.chart.scales[e]}_getOtherScale(e){const i=this._cachedMeta;return e===i.iScale?i.vScale:i.iScale}reset(){this._update("reset")}_destroy(){const e=this._cachedMeta;this._data&&NV(this._data,this),e._stacked&&_p(e)}_dataCheck(){const e=this.getDataset(),i=e.data||(e.data=[]),o=this._data;if(ft(i))this._data=function B1e(t,n){const{iScale:e,vScale:i}=n,o="x"===e.axis?"x":"y",r="x"===i.axis?"x":"y",s=Object.keys(t),a=new Array(s.length);let l,c,f;for(l=0,c=s.length;l{const i="_onData"+Fk(e),o=t[e];Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value(...r){const s=o.apply(this,r);return t._chartjs.listeners.forEach(a=>{"function"==typeof a[i]&&a[i](...r)}),s}})}))}(i,this),this._syncList=[],this._data=i}}addElements(){const e=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(e.dataset=new this.datasetElementType)}buildOrUpdateElements(e){const i=this._cachedMeta,o=this.getDataset();let r=!1;this._dataCheck();const s=i._stacked;i._stacked=Zk(i.vScale,i),i.stack!==o.stack&&(r=!0,_p(i),i.stack=o.stack),this._resyncElements(e),(r||s!==i._stacked)&&(C8(this,i._parsed),i._stacked=Zk(i.vScale,i))}configure(){const e=this.chart.config,i=e.datasetScopeKeys(this._type),o=e.getOptionScopes(this.getDataset(),i,!0);this.options=e.createResolver(o,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(e,i){const{_cachedMeta:o,_data:r}=this,{iScale:s,_stacked:a}=o,l=s.axis;let m,g,_,c=0===e&&i===r.length||o._sorted,f=e>0&&o._parsed[e-1];if(!1===this._parsing)o._parsed=r,o._sorted=!0,_=r;else{_=vn(r[e])?this.parseArrayData(o,r,e,i):ft(r[e])?this.parseObjectData(o,r,e,i):this.parsePrimitiveData(o,r,e,i);const w=()=>null===g[l]||f&&g[l]t&&!n.hidden&&n._stacked&&{keys:b8(this.chart,!0),values:null})(i,o),f={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY},{min:m,max:g}=function H1e(t){const{min:n,max:e,minDefined:i,maxDefined:o}=t.getUserBounds();return{min:i?n:Number.NEGATIVE_INFINITY,max:o?e:Number.POSITIVE_INFINITY}}(l);let _,w;function k(){w=r[_];const T=w[l.axis];return!jn(w[e.axis])||m>T||g=0;--_)if(!k()){this.updateRangeFromParsed(f,e,w,c);break}return f}getAllParsedValues(e){const i=this._cachedMeta._parsed,o=[];let r,s,a;for(r=0,s=i.length;r=0&&ethis.getContext(o,r,i),g);return T.$shared&&(T.$shared=c,s[a]=Object.freeze(w8(T,c))),T}_resolveAnimations(e,i,o){const r=this.chart,s=this._cachedDataOpts,a=`animation-${i}`,l=s[a];if(l)return l;let c;if(!1!==r.options.animation){const m=this.chart.config,g=m.datasetAnimationScopeKeys(this._type,i),_=m.getOptionScopes(this.getDataset(),g);c=m.createResolver(_,this.getContext(e,o,i))}const f=new g8(r,c&&c.animations);return c&&c._cacheable&&(s[a]=Object.freeze(f)),f}getSharedOptions(e){if(e.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},e))}includeOptions(e,i){return!i||Jk(e)||this.chart._animationsDisabled}_getSharedOptions(e,i){const o=this.resolveDataElementOptions(e,i),r=this._sharedOptions,s=this.getSharedOptions(o),a=this.includeOptions(i,s)||s!==r;return this.updateSharedOptions(s,i,o),{sharedOptions:s,includeOptions:a}}updateElement(e,i,o,r){Jk(r)?Object.assign(e,o):this._resolveAnimations(i,r).update(e,o)}updateSharedOptions(e,i,o){e&&!Jk(i)&&this._resolveAnimations(void 0,i).update(e,o)}_setStyle(e,i,o,r){e.active=r;const s=this.getStyle(i,r);this._resolveAnimations(i,o,r).update(e,{options:!r&&this.getSharedOptions(s)||s})}removeHoverStyle(e,i,o){this._setStyle(e,o,"active",!1)}setHoverStyle(e,i,o){this._setStyle(e,o,"active",!0)}_removeDatasetHoverStyle(){const e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!1)}_setDatasetHoverStyle(){const e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!0)}_resyncElements(e){const i=this._data,o=this._cachedMeta.data;for(const[l,c,f]of this._syncList)this[l](c,f);this._syncList=[];const r=o.length,s=i.length,a=Math.min(s,r);a&&this.parse(0,a),s>r?this._insertElements(r,s-r,e):s{for(f.length+=i,l=f.length-1;l>=a;l--)f[l]=f[l-i]};for(c(s),l=e;lclass t extends Ba{static id="line";static defaults={datasetElementType:"line",dataElementType:"point",showLine:!0,spanGaps:!1};static overrides={scales:{_index_:{type:"category"},_value_:{type:"linear"}}};initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(e){const i=this._cachedMeta,{dataset:o,data:r=[],_dataset:s}=i,a=this.chart._animationsDisabled;let{start:l,count:c}=function HV(t,n,e){const i=n.length;let o=0,r=i;if(t._sorted){const{iScale:s,vScale:a,_parsed:l}=t,c=t.dataset&&t.dataset.options?t.dataset.options.spanGaps:null,f=s.axis,{min:m,max:g,minDefined:_,maxDefined:w}=s.getUserBounds();if(_){if(o=Math.min(Vs(l,f,m).lo,e?i:Vs(n,f,s.getPixelForValue(m)).lo),c){const k=l.slice(0,o+1).reverse().findIndex(T=>!dt(T[a.axis]));o-=Math.max(0,k)}o=Si(o,0,i-1)}if(w){let k=Math.max(Vs(l,s.axis,g,!0).hi+1,e?0:Vs(n,f,s.getPixelForValue(g),!0).hi+1);if(c){const T=l.slice(k-1).findIndex(I=>!dt(I[a.axis]));k+=Math.max(0,T)}r=Si(k,o,i)-o}else r=i-o}return{start:o,count:r}}(i,r,a);this._drawStart=l,this._drawCount=c,function jV(t){const{xScale:n,yScale:e,_scaleRanges:i}=t,o={xmin:n.min,xmax:n.max,ymin:e.min,ymax:e.max};if(!i)return t._scaleRanges=o,!0;const r=i.xmin!==n.min||i.xmax!==n.max||i.ymin!==e.min||i.ymax!==e.max;return Object.assign(i,o),r}(i)&&(l=0,c=r.length),o._chart=this.chart,o._datasetIndex=this.index,o._decimated=!!s._decimated,o.points=r;const f=this.resolveDatasetElementOptions(e);this.options.showLine||(f.borderWidth=0),f.segment=this.options.segment,this.updateElement(o,void 0,{animated:!a,options:f},e),this.updateElements(r,l,c,e)}updateElements(e,i,o,r){const s="reset"===r,{iScale:a,vScale:l,_stacked:c,_dataset:f}=this._cachedMeta,{sharedOptions:m,includeOptions:g}=this._getSharedOptions(i,r),_=a.axis,w=l.axis,{spanGaps:k,segment:T}=this.options,I=xu(k)?k:Number.POSITIVE_INFINITY,R=this.chart._animationsDisabled||s||"none"===r,W=i+o,Y=e.length;let K=i>0&&this.getParsed(i-1);for(let ee=0;ee=W){P.skip=!0;continue}const A=this.getParsed(ee),L=dt(A[w]),$=P[_]=a.getPixelForValue(A[_],ee),H=P[w]=s||L?l.getBasePixel():l.getPixelForValue(c?this.applyStack(l,A,c):A[w],ee);P.skip=isNaN($)||isNaN(H)||L,P.stop=ee>0&&Math.abs(A[_]-K[_])>I,T&&(P.parsed=A,P.raw=f.data[ee]),g&&(P.options=m||this.resolveDataElementOptions(ee,ie.active?"active":r)),R||this.updateElement(ie,ee,P,r),K=A}}getMaxOverflow(){const e=this._cachedMeta,i=e.dataset,o=i.options&&i.options.borderWidth||0,r=e.data||[];if(!r.length)return o;const s=r[0].size(this.resolveDataElementOptions(0)),a=r[r.length-1].size(this.resolveDataElementOptions(r.length-1));return Math.max(o,s,a)/2}draw(){const e=this._cachedMeta;e.dataset.updateControlPoints(this.chart.chartArea,e.iScale.axis),super.draw()}})();function s0e(t,n,e,i){const{controller:o,data:r,_sorted:s}=t,a=o._cachedMeta.iScale,l=t.dataset&&t.dataset.options?t.dataset.options.spanGaps:null;if(a&&n===a.axis&&"r"!==n&&s&&r.length){const c=a._reversePixels?DCe:Vs;if(!i){const f=c(r,n,e);if(l){const{vScale:m}=o._cachedMeta,{_parsed:g}=t,_=g.slice(0,f.lo+1).reverse().findIndex(k=>!dt(k[m.axis]));f.lo-=Math.max(0,_);const w=g.slice(f.hi).findIndex(k=>!dt(k[m.axis]));f.hi+=Math.max(0,w)}return f}if(o._sharedOptions){const f=r[0],m="function"==typeof f.getRange&&f.getRange(n);if(m){const g=c(r,n,e-m),_=c(r,n,e+m);return{lo:g.lo,hi:_.hi}}}}return{lo:0,hi:r.length-1}}function bp(t,n,e,i,o){const r=t.getSortedVisibleDatasetMetas(),s=e[n];for(let a=0,l=r.length;a{l[s]&&l[s](n[e],o)&&(r.push({element:l,datasetIndex:c,index:f}),a=a||l.inRange(n.x,n.y,o))}),i&&!a?[]:r}var d0e={evaluateInteractionItems:bp,modes:{index(t,n,e,i){const o=yc(n,t),r=e.axis||"x",s=e.includeInvisible||!1,a=e.intersect?iD(t,o,r,i,s):oD(t,o,r,!1,i,s),l=[];return a.length?(t.getSortedVisibleDatasetMetas().forEach(c=>{const f=a[0].index,m=c.data[f];m&&!m.skip&&l.push({element:m,datasetIndex:c.index,index:f})}),l):[]},dataset(t,n,e,i){const o=yc(n,t),r=e.axis||"xy",s=e.includeInvisible||!1;let a=e.intersect?iD(t,o,r,i,s):oD(t,o,r,!1,i,s);if(a.length>0){const l=a[0].datasetIndex,c=t.getDatasetMeta(l).data;a=[];for(let f=0;fiD(t,yc(n,t),e.axis||"xy",i,e.includeInvisible||!1),nearest:(t,n,e,i)=>oD(t,yc(n,t),e.axis||"xy",e.intersect,i,e.includeInvisible||!1),x:(t,n,e,i)=>E8(t,yc(n,t),"x",e.intersect,i),y:(t,n,e,i)=>E8(t,yc(n,t),"y",e.intersect,i)}};const P8=["left","top","right","bottom"];function vp(t,n){return t.filter(e=>e.pos===n)}function I8(t,n){return t.filter(e=>-1===P8.indexOf(e.pos)&&e.box.axis===n)}function yp(t,n){return t.sort((e,i)=>{const o=n?i:e,r=n?e:i;return o.weight===r.weight?o.index-r.index:o.weight-r.weight})}function O8(t,n,e,i){return Math.max(t[e],n[e])+Math.max(t[i],n[i])}function A8(t,n){t.top=Math.max(t.top,n.top),t.left=Math.max(t.left,n.left),t.bottom=Math.max(t.bottom,n.bottom),t.right=Math.max(t.right,n.right)}function m0e(t,n,e,i){const{pos:o,box:r}=e,s=t.maxPadding;if(!ft(o)){e.size&&(t[o]-=e.size);const m=i[e.stack]||{size:0,count:1};m.size=Math.max(m.size,e.horizontal?r.height:r.width),e.size=m.size/m.count,t[o]+=e.size}r.getPadding&&A8(s,r.getPadding());const a=Math.max(0,n.outerWidth-O8(s,t,"left","right")),l=Math.max(0,n.outerHeight-O8(s,t,"top","bottom")),c=a!==t.w,f=l!==t.h;return t.w=a,t.h=l,e.horizontal?{same:c,other:f}:{same:f,other:c}}function _0e(t,n){const e=n.maxPadding;return function i(o){const r={left:0,top:0,right:0,bottom:0};return o.forEach(s=>{r[s]=Math.max(n[s],e[s])}),r}(t?["left","right"]:["top","bottom"])}function Cp(t,n,e,i){const o=[];let r,s,a,l,c,f;for(r=0,s=t.length,c=0;rc.box.fullSize),!0),i=yp(vp(n,"left"),!0),o=yp(vp(n,"right")),r=yp(vp(n,"top"),!0),s=yp(vp(n,"bottom")),a=I8(n,"x"),l=I8(n,"y");return{fullSize:e,leftAndTop:i.concat(r),rightAndBottom:o.concat(l).concat(s).concat(a),chartArea:vp(n,"chartArea"),vertical:i.concat(o).concat(l),horizontal:r.concat(s).concat(a)}}(t.boxes),l=a.vertical,c=a.horizontal;Vt(t.boxes,k=>{"function"==typeof k.beforeLayout&&k.beforeLayout()});const f=l.reduce((k,T)=>T.box.options&&!1===T.box.options.display?k:k+1,0)||1,m=Object.freeze({outerWidth:n,outerHeight:e,padding:o,availableWidth:r,availableHeight:s,vBoxMaxWidth:r/2/f,hBoxMaxHeight:s/2}),g=Object.assign({},o);A8(g,Ki(i));const _=Object.assign({maxPadding:g,w:r,h:s,x:o.left,y:o.top},o),w=function f0e(t,n){const e=function h0e(t){const n={};for(const e of t){const{stack:i,pos:o,stackWeight:r}=e;if(!i||!P8.includes(o))continue;const s=n[i]||(n[i]={count:0,placed:0,weight:0,size:0});s.count++,s.weight+=r}return n}(t),{vBoxMaxWidth:i,hBoxMaxHeight:o}=n;let r,s,a;for(r=0,s=t.length;r{const T=k.box;Object.assign(T,t.chartArea),T.update(_.w,_.h,{left:0,top:0,right:0,bottom:0})})}};class F8{acquireContext(n,e){}releaseContext(n){return!1}addEventListener(n,e,i){}removeEventListener(n,e,i){}getDevicePixelRatio(){return 1}getMaximumSize(n,e,i,o){return e=Math.max(0,e||n.width),i=i||n.height,{width:e,height:Math.max(0,o?Math.floor(e/o):i)}}isAttached(n){return!0}updateConfig(n){}}class b0e extends F8{acquireContext(n){return n&&n.getContext&&n.getContext("2d")||null}updateConfig(n){n.options.animation=!1}}const Av="$chartjs",v0e={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},N8=t=>null===t||""===t,L8=!!v1e&&{passive:!0};function w0e(t,n,e){t&&t.canvas&&t.canvas.removeEventListener(n,e,L8)}function Rv(t,n){for(const e of t)if(e===n||e.contains(n))return!0}function S0e(t,n,e){const i=t.canvas,o=new MutationObserver(r=>{let s=!1;for(const a of r)s=s||Rv(a.addedNodes,i),s=s&&!Rv(a.removedNodes,i);s&&e()});return o.observe(document,{childList:!0,subtree:!0}),o}function k0e(t,n,e){const i=t.canvas,o=new MutationObserver(r=>{let s=!1;for(const a of r)s=s||Rv(a.removedNodes,i),s=s&&!Rv(a.addedNodes,i);s&&e()});return o.observe(document,{childList:!0,subtree:!0}),o}const wp=new Map;let B8=0;function V8(){const t=window.devicePixelRatio;t!==B8&&(B8=t,wp.forEach((n,e)=>{e.currentDevicePixelRatio!==t&&n()}))}function T0e(t,n,e){const i=t.canvas,o=i&&Xk(i);if(!o)return;const r=VV((a,l)=>{const c=o.clientWidth;e(a,l),c{const l=a[0],c=l.contentRect.width,f=l.contentRect.height;0===c&&0===f||r(c,f)});return s.observe(o),function D0e(t,n){wp.size||window.addEventListener("resize",V8),wp.set(t,n)}(t,r),s}function rD(t,n,e){e&&e.disconnect(),"resize"===n&&function M0e(t){wp.delete(t),wp.size||window.removeEventListener("resize",V8)}(t)}function E0e(t,n,e){const i=t.canvas,o=VV(r=>{null!==t.ctx&&e(function x0e(t,n){const e=v0e[t.type]||t.type,{x:i,y:o}=yc(t,n);return{type:e,chart:n,native:t,x:void 0!==i?i:null,y:void 0!==o?o:null}}(r,t))},t);return function C0e(t,n,e){t&&t.addEventListener(n,e,L8)}(i,n,o),o}class P0e extends F8{acquireContext(n,e){const i=n&&n.getContext&&n.getContext("2d");return i&&i.canvas===n?(function y0e(t,n){const e=t.style,i=t.getAttribute("height"),o=t.getAttribute("width");if(t[Av]={initial:{height:i,width:o,style:{display:e.display,height:e.height,width:e.width}}},e.display=e.display||"block",e.boxSizing=e.boxSizing||"border-box",N8(o)){const r=r8(t,"width");void 0!==r&&(t.width=r)}if(N8(i))if(""===t.style.height)t.height=t.width/(n||2);else{const r=r8(t,"height");void 0!==r&&(t.height=r)}}(n,e),i):null}releaseContext(n){const e=n.canvas;if(!e[Av])return!1;const i=e[Av].initial;["height","width"].forEach(r=>{const s=i[r];dt(s)?e.removeAttribute(r):e.setAttribute(r,s)});const o=i.style||{};return Object.keys(o).forEach(r=>{e.style[r]=o[r]}),e.width=e.width,delete e[Av],!0}addEventListener(n,e,i){this.removeEventListener(n,e),(n.$proxies||(n.$proxies={}))[e]=({attach:S0e,detach:k0e,resize:T0e}[e]||E0e)(n,e,i)}removeEventListener(n,e){const i=n.$proxies||(n.$proxies={}),o=i[e];o&&(({attach:rD,detach:rD,resize:rD}[e]||w0e)(n,e,o),i[e]=void 0)}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(n,e,i,o){return function b1e(t,n,e,i){const o=Pv(t),r=vc(o,"margin"),s=Ev(o.maxWidth,t,"clientWidth")||wv,a=Ev(o.maxHeight,t,"clientHeight")||wv,l=function _1e(t,n,e){let i,o;if(void 0===n||void 0===e){const r=t&&Xk(t);if(r){const s=r.getBoundingClientRect(),a=Pv(r),l=vc(a,"border","width"),c=vc(a,"padding");n=s.width-c.width-l.width,e=s.height-c.height-l.height,i=Ev(a.maxWidth,r,"clientWidth"),o=Ev(a.maxHeight,r,"clientHeight")}else n=t.clientWidth,e=t.clientHeight}return{width:n,height:e,maxWidth:i||wv,maxHeight:o||wv}}(t,n,e);let{width:c,height:f}=l;if("content-box"===o.boxSizing){const g=vc(o,"border","width"),_=vc(o,"padding");c-=_.width+g.width,f-=_.height+g.height}return c=Math.max(0,c-r.width),f=Math.max(0,i?c/i:f-r.height),c=La(Math.min(c,s,l.maxWidth)),f=La(Math.min(f,a,l.maxHeight)),c&&!f&&(f=La(c/2)),(void 0!==n||void 0!==e)&&i&&l.height&&f>l.height&&(f=l.height,c=La(Math.floor(f*i))),{width:c,height:f}}(n,e,i,o)}isAttached(n){const e=n&&Xk(n);return!(!e||!e.isConnected)}}class Us{static defaults={};static defaultRoutes=void 0;x;y;active=!1;options;$animations;tooltipPosition(n){const{x:e,y:i}=this.getProps(["x","y"],n);return{x:e,y:i}}hasValue(){return xu(this.x)&&xu(this.y)}getProps(n,e){const i=this.$animations;if(!e||!i)return this;const o={};return n.forEach(r=>{o[r]=i[r]&&i[r].active()?i[r]._to:this[r]}),o}}function Fv(t,n,e,i,o){const r=Ge(i,0),s=Math.min(Ge(o,t.length),t.length);let l,c,f,a=0;for(e=Math.ceil(e),o&&(l=o-i,e=l/Math.floor(l/e)),f=r;f<0;)a++,f=Math.round(r+a*e);for(c=Math.max(r,0);c"top"===n||"left"===n?t[n]+e:t[n]-e,j8=(t,n)=>Math.min(n||t,t);function U8(t,n){const e=[],i=t.length/n,o=t.length;let r=0;for(;rs+a)))return l}function xp(t){return t.drawTicks?t.tickLength:0}function z8(t,n){if(!t.display)return 0;const e=fi(t.font,n),i=Ki(t.padding);return(vn(t.text)?t.text.length:1)*e.lineHeight+i.height}function z0e(t,n,e){let i=(t=>"start"===t?"left":"end"===t?"right":"center")(t);return(e&&"right"!==n||!e&&"right"===n)&&(i=(t=>"left"===t?"right":"right"===t?"left":t)(i)),i}class xc extends Us{constructor(n){super(),this.id=n.id,this.type=n.type,this.options=void 0,this.ctx=n.ctx,this.chart=n.chart,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this._margins={left:0,right:0,top:0,bottom:0},this.maxWidth=void 0,this.maxHeight=void 0,this.paddingTop=void 0,this.paddingBottom=void 0,this.paddingLeft=void 0,this.paddingRight=void 0,this.axis=void 0,this.labelRotation=void 0,this.min=void 0,this.max=void 0,this._range=void 0,this.ticks=[],this._gridLineItems=null,this._labelItems=null,this._labelSizes=null,this._length=0,this._maxLength=0,this._longestTextCache={},this._startPixel=void 0,this._endPixel=void 0,this._reversePixels=!1,this._userMax=void 0,this._userMin=void 0,this._suggestedMax=void 0,this._suggestedMin=void 0,this._ticksLength=0,this._borderValue=0,this._cache={},this._dataLimitsCached=!1,this.$context=void 0}init(n){this.options=n.setContext(this.getContext()),this.axis=n.axis,this._userMin=this.parse(n.min),this._userMax=this.parse(n.max),this._suggestedMin=this.parse(n.suggestedMin),this._suggestedMax=this.parse(n.suggestedMax)}parse(n,e){return n}getUserBounds(){let{_userMin:n,_userMax:e,_suggestedMin:i,_suggestedMax:o}=this;return n=Oo(n,Number.POSITIVE_INFINITY),e=Oo(e,Number.NEGATIVE_INFINITY),i=Oo(i,Number.POSITIVE_INFINITY),o=Oo(o,Number.NEGATIVE_INFINITY),{min:Oo(n,i),max:Oo(e,o),minDefined:jn(n),maxDefined:jn(e)}}getMinMax(n){let s,{min:e,max:i,minDefined:o,maxDefined:r}=this.getUserBounds();if(o&&r)return{min:e,max:i};const a=this.getMatchingVisibleMetas();for(let l=0,c=a.length;li?i:e,i=o&&e>i?e:i,{min:Oo(e,Oo(i,e)),max:Oo(i,Oo(e,i))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const n=this.chart.data;return this.options.labels||(this.isHorizontal()?n.xLabels:n.yLabels)||n.labels||[]}getLabelItems(n=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(n))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){ln(this.options.beforeUpdate,[this])}update(n,e,i){const{beginAtZero:o,grace:r,ticks:s}=this.options,a=s.sampleSize;this.beforeUpdate(),this.maxWidth=n,this.maxHeight=e,this._margins=i=Object.assign({left:0,right:0,top:0,bottom:0},i),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+i.left+i.right:this.height+i.top+i.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=function XCe(t,n,e){const{min:i,max:o}=t,r=((t,n)=>"string"==typeof t&&t.endsWith("%")?parseFloat(t)/100*n:+t)(n,(o-i)/2),s=(a,l)=>e&&0===a?0:a+l;return{min:s(i,-Math.abs(r)),max:s(o,r)}}(this,r,o),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const l=ao)return function N0e(t,n,e,i){let s,o=0,r=e[0];for(i=Math.ceil(i),s=0;so-r).pop(),n}(i);for(let s=0,a=r.length-1;so)return l}return Math.max(o,1)}(r,n,o);if(s>0){let m,g;const _=s>1?Math.round((l-a)/(s-1)):null;for(Fv(n,c,f,dt(_)?0:a-_,a),m=0,g=s-1;m=r||i<=1||!this.isHorizontal())return void(this.labelRotation=o);const f=this._getLabelSizes(),m=f.widest.width,g=f.highest.height,_=Si(this.chart.width-m,0,this.maxWidth);a=n.offset?this.maxWidth/i:_/(i-1),m+6>a&&(a=_/(i-(n.offset?.5:1)),l=this.maxHeight-xp(n.grid)-e.padding-z8(n.title,this.chart.options.font),c=Math.sqrt(m*m+g*g),s=function Nk(t){return t*(180/Mt)}(Math.min(Math.asin(Si((f.highest.height+6)/a,-1,1)),Math.asin(Si(l/c,-1,1))-Math.asin(Si(g/c,-1,1)))),s=Math.max(o,Math.min(r,s))),this.labelRotation=s}afterCalculateLabelRotation(){ln(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){ln(this.options.beforeFit,[this])}fit(){const n={width:0,height:0},{chart:e,options:{ticks:i,title:o,grid:r}}=this,s=this._isVisible(),a=this.isHorizontal();if(s){const l=z8(o,e.options.font);if(a?(n.width=this.maxWidth,n.height=xp(r)+l):(n.height=this.maxHeight,n.width=xp(r)+l),i.display&&this.ticks.length){const{first:c,last:f,widest:m,highest:g}=this._getLabelSizes(),_=2*i.padding,w=Tr(this.labelRotation),k=Math.cos(w),T=Math.sin(w);a?n.height=Math.min(this.maxHeight,n.height+(i.mirror?0:T*m.width+k*g.height)+_):n.width=Math.min(this.maxWidth,n.width+(i.mirror?0:k*m.width+T*g.height)+_),this._calculatePadding(c,f,T,k)}}this._handleMargins(),a?(this.width=this._length=e.width-this._margins.left-this._margins.right,this.height=n.height):(this.width=n.width,this.height=this._length=e.height-this._margins.top-this._margins.bottom)}_calculatePadding(n,e,i,o){const{ticks:{align:r,padding:s},position:a}=this.options,l=0!==this.labelRotation,c="top"!==a&&"x"===this.axis;if(this.isHorizontal()){const f=this.getPixelForTick(0)-this.left,m=this.right-this.getPixelForTick(this.ticks.length-1);let g=0,_=0;l?c?(g=o*n.width,_=i*e.height):(g=i*n.height,_=o*e.width):"start"===r?_=e.width:"end"===r?g=n.width:"inner"!==r&&(g=n.width/2,_=e.width/2),this.paddingLeft=Math.max((g-f+s)*this.width/(this.width-f),0),this.paddingRight=Math.max((_-m+s)*this.width/(this.width-m),0)}else{let f=e.height/2,m=n.height/2;"start"===r?(f=0,m=n.height):"end"===r&&(f=e.height,m=0),this.paddingTop=f+s,this.paddingBottom=m+s}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){ln(this.options.afterFit,[this])}isHorizontal(){const{axis:n,position:e}=this.options;return"top"===e||"bottom"===e||"x"===n}isFullSize(){return this.options.fullSize}_convertTicksToLabels(n){let e,i;for(this.beforeTickToLabelConversion(),this.generateTickLabels(n),e=0,i=n.length;e{const i=e.gc,o=i.length/2;let r;if(o>n){for(r=0;r({width:s[A]||0,height:a[A]||0});return{first:P(0),last:P(e-1),widest:P(ee),highest:P(ie),widths:s,heights:a}}getLabelForValue(n){return n}getPixelForValue(n,e){return NaN}getValueForPixel(n){}getPixelForTick(n){const e=this.ticks;return n<0||n>e.length-1?null:this.getPixelForValue(e[n].value)}getPixelForDecimal(n){this._reversePixels&&(n=1-n);const e=this._startPixel+n*this._length;return function kCe(t){return Si(t,-32768,32767)}(this._alignToPixels?gc(this.chart,e,0):e)}getDecimalForPixel(n){const e=(n-this._startPixel)/this._length;return this._reversePixels?1-e:e}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:n,max:e}=this;return n<0&&e<0?e:n>0&&e>0?n:0}getContext(n){const e=this.ticks||[];if(n>=0&&na*o?a/i:l/o:l*o0}_computeGridLineItems(n){const e=this.axis,i=this.chart,o=this.options,{grid:r,position:s,border:a}=o,l=r.offset,c=this.isHorizontal(),m=this.ticks.length+(l?1:0),g=xp(r),_=[],w=a.setContext(this.getContext()),k=w.display?w.width:0,T=k/2,I=function(N){return gc(i,N,k)};let R,W,Y,K,ee,ie,P,A,L,$,H,G;if("top"===s)R=I(this.bottom),ie=this.bottom-g,A=R-T,$=I(n.top)+T,G=n.bottom;else if("bottom"===s)R=I(this.top),$=n.top,G=I(n.bottom)-T,ie=R+T,A=this.top+g;else if("left"===s)R=I(this.right),ee=this.right-g,P=R-T,L=I(n.left)+T,H=n.right;else if("right"===s)R=I(this.left),L=n.left,H=I(n.right)-T,ee=R+T,P=this.left+g;else if("x"===e){if("center"===s)R=I((n.top+n.bottom)/2+.5);else if(ft(s)){const N=Object.keys(s)[0];R=I(this.chart.scales[N].getPixelForValue(s[N]))}$=n.top,G=n.bottom,ie=R+T,A=ie+g}else if("y"===e){if("center"===s)R=I((n.left+n.right)/2);else if(ft(s)){const N=Object.keys(s)[0];R=I(this.chart.scales[N].getPixelForValue(s[N]))}ee=R-T,P=ee-g,L=n.left,H=n.right}const J=Ge(o.ticks.maxTicksLimit,m),V=Math.max(1,Math.ceil(m/J));for(W=0;W0&&(at-=Oe/2)}Ce={left:at,top:Xe,width:Oe+Ee.width,height:ut+Ee.height,color:V.backdropColor}}T.push({label:Y,font:A,textOffset:H,options:{rotation:k,color:q,strokeColor:z,strokeWidth:Q,textAlign:ue,textBaseline:G,translation:[K,ee],backdrop:Ce}})}return T}_getXAxisLabelAlignment(){const{position:n,ticks:e}=this.options;if(-Tr(this.labelRotation))return"top"===n?"left":"right";let o="center";return"start"===e.align?o="left":"end"===e.align?o="right":"inner"===e.align&&(o="inner"),o}_getYAxisLabelAlignment(n){const{position:e,ticks:{crossAlign:i,mirror:o,padding:r}}=this.options,a=n+r,l=this._getLabelSizes().widest.width;let c,f;return"left"===e?o?(f=this.right+r,"near"===i?c="left":"center"===i?(c="center",f+=l/2):(c="right",f+=l)):(f=this.right-a,"near"===i?c="right":"center"===i?(c="center",f-=l/2):(c="left",f=this.left)):"right"===e?o?(f=this.left+r,"near"===i?c="right":"center"===i?(c="center",f-=l/2):(c="left",f-=l)):(f=this.left+a,"near"===i?c="left":"center"===i?(c="center",f+=l/2):(c="right",f=this.right)):c="right",{textAlign:c,x:f}}_computeLabelArea(){if(this.options.ticks.mirror)return;const n=this.chart,e=this.options.position;return"left"===e||"right"===e?{top:0,left:this.left,bottom:n.height,right:this.right}:"top"===e||"bottom"===e?{top:this.top,left:0,bottom:this.bottom,right:n.width}:void 0}drawBackground(){const{ctx:n,options:{backgroundColor:e},left:i,top:o,width:r,height:s}=this;e&&(n.save(),n.fillStyle=e,n.fillRect(i,o,r,s),n.restore())}getLineWidthForValue(n){const e=this.options.grid;if(!this._isVisible()||!e.display)return 0;const o=this.ticks.findIndex(r=>r.value===n);return o>=0?e.setContext(this.getContext(o)).lineWidth:0}drawGrid(n){const e=this.options.grid,i=this.ctx,o=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(n));let r,s;const a=(l,c,f)=>{!f.width||!f.color||(i.save(),i.lineWidth=f.width,i.strokeStyle=f.color,i.setLineDash(f.borderDash||[]),i.lineDashOffset=f.borderDashOffset,i.beginPath(),i.moveTo(l.x,l.y),i.lineTo(c.x,c.y),i.stroke(),i.restore())};if(e.display)for(r=0,s=o.length;r{this.drawBackground(),this.drawGrid(r),this.drawTitle()}},{z:o,draw:()=>{this.drawBorder()}},{z:e,draw:r=>{this.drawLabels(r)}}]:[{z:e,draw:r=>{this.draw(r)}}]}getMatchingVisibleMetas(n){const e=this.chart.getSortedVisibleDatasetMetas(),i=this.axis+"AxisID",o=[];let r,s;for(r=0,s=e.length;r{const i=e.split("."),o=i.pop(),r=[t].concat(i).join("."),s=n[e].split("."),a=s.pop(),l=s.join(".");kn.route(r,o,l,a)})}(n,t.defaultRoutes),t.descriptors&&kn.describe(n,t.descriptors)}(n,s,i),this.override&&kn.override(n.id,n.overrides)),s}get(n){return this.items[n]}unregister(n){const e=this.items,i=n.id,o=this.scope;i in e&&delete e[i],o&&i in kn[o]&&(delete kn[o][i],this.override&&delete mc[i])}}class K0e{constructor(){this.controllers=new Nv(Ba,"datasets",!0),this.elements=new Nv(Us,"elements"),this.plugins=new Nv(Object,"plugins"),this.scales=new Nv(xc,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...n){this._each("register",n)}remove(...n){this._each("unregister",n)}addControllers(...n){this._each("register",n,this.controllers)}addElements(...n){this._each("register",n,this.elements)}addPlugins(...n){this._each("register",n,this.plugins)}addScales(...n){this._each("register",n,this.scales)}getController(n){return this._get(n,this.controllers,"controller")}getElement(n){return this._get(n,this.elements,"element")}getPlugin(n){return this._get(n,this.plugins,"plugin")}getScale(n){return this._get(n,this.scales,"scale")}removeControllers(...n){this._each("unregister",n,this.controllers)}removeElements(...n){this._each("unregister",n,this.elements)}removePlugins(...n){this._each("unregister",n,this.plugins)}removeScales(...n){this._each("unregister",n,this.scales)}_each(n,e,i){[...e].forEach(o=>{const r=i||this._getRegistryForType(o);i||r.isForType(o)||r===this.plugins&&o.id?this._exec(n,r,o):Vt(o,s=>{const a=i||this._getRegistryForType(s);this._exec(n,a,s)})})}_exec(n,e,i){const o=Fk(n);ln(i["before"+o],[],i),e[n](i),ln(i["after"+o],[],i)}_getRegistryForType(n){for(let e=0;er.filter(a=>!s.some(l=>a.plugin.id===l.plugin.id));this._notify(o(e,i),n,"stop"),this._notify(o(i,e),n,"start")}}function Z0e(t,n){return n||!1!==t?!0===t?{}:t:null}function J0e(t,{plugin:n,local:e},i,o){const r=t.pluginScopeKeys(n),s=t.getOptionScopes(i,r);return e&&n.defaults&&s.push(n.defaults),t.createResolver(s,o,[""],{scriptable:!1,indexable:!1,allKeys:!0})}function sD(t,n){return((n.datasets||{})[t]||{}).indexAxis||n.indexAxis||(kn.datasets[t]||{}).indexAxis||"x"}function $8(t){if("x"===t||"y"===t||"r"===t)return t}function nwe(t){return"top"===t||"bottom"===t?"x":"left"===t||"right"===t?"y":void 0}function aD(t,...n){if($8(t))return t;for(const e of n){const i=e.axis||nwe(e.position)||t.length>1&&$8(t[0].toLowerCase());if(i)return i}throw new Error(`Cannot determine type of '${t}' axis. Please provide 'axis' or 'position' option.`)}function W8(t,n,e){if(e[n+"AxisID"]===t)return{axis:n}}function G8(t){const n=t.options||(t.options={});n.plugins=Ge(n.plugins,{}),n.scales=function owe(t,n){const e=mc[t.type]||{scales:{}},i=n.scales||{},o=sD(t.type,n),r=Object.create(null);return Object.keys(i).forEach(s=>{const a=i[s];if(!ft(a))return console.error(`Invalid scale configuration for scale: ${s}`);if(a._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${s}`);const l=aD(s,a,function iwe(t,n){if(n.data&&n.data.datasets){const e=n.data.datasets.filter(i=>i.xAxisID===t||i.yAxisID===t);if(e.length)return W8(t,"x",e[0])||W8(t,"y",e[0])}return{}}(s,t),kn.scales[a.type]),c=function twe(t,n){return t===n?"_index_":"_value_"}(l,o),f=e.scales||{};r[s]=lp(Object.create(null),[{axis:l},a,f[l],f[c]])}),t.data.datasets.forEach(s=>{const a=s.type||t.type,l=s.indexAxis||sD(a,n),f=(mc[a]||{}).scales||{};Object.keys(f).forEach(m=>{const g=function ewe(t,n){let e=t;return"_index_"===t?e=n:"_value_"===t&&(e="x"===n?"y":"x"),e}(m,l),_=s[g+"AxisID"]||g;r[_]=r[_]||Object.create(null),lp(r[_],[{axis:g},i[_],f[m]])})}),Object.keys(r).forEach(s=>{const a=r[s];lp(a,[kn.scales[a.type],kn.scale])}),r}(t,n)}function q8(t){return(t=t||{}).datasets=t.datasets||[],t.labels=t.labels||[],t}const K8=new Map,Y8=new Set;function Lv(t,n){let e=K8.get(t);return e||(e=n(),K8.set(t,e),Y8.add(e)),e}const Sp=(t,n,e)=>{const i=Aa(n,e);void 0!==i&&t.add(i)};class swe{constructor(n){this._config=function rwe(t){return(t=t||{}).data=q8(t.data),G8(t),t}(n),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(n){this._config.type=n}get data(){return this._config.data}set data(n){this._config.data=q8(n)}get options(){return this._config.options}set options(n){this._config.options=n}get plugins(){return this._config.plugins}update(){const n=this._config;this.clearCache(),G8(n)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(n){return Lv(n,()=>[[`datasets.${n}`,""]])}datasetAnimationScopeKeys(n,e){return Lv(`${n}.transition.${e}`,()=>[[`datasets.${n}.transitions.${e}`,`transitions.${e}`],[`datasets.${n}`,""]])}datasetElementScopeKeys(n,e){return Lv(`${n}-${e}`,()=>[[`datasets.${n}.elements.${e}`,`datasets.${n}`,`elements.${e}`,""]])}pluginScopeKeys(n){const e=n.id;return Lv(`${this.type}-plugin-${e}`,()=>[[`plugins.${e}`,...n.additionalOptionScopes||[]]])}_cachedScopes(n,e){const i=this._scopeCache;let o=i.get(n);return(!o||e)&&(o=new Map,i.set(n,o)),o}getOptionScopes(n,e,i){const{options:o,type:r}=this,s=this._cachedScopes(n,i),a=s.get(e);if(a)return a;const l=new Set;e.forEach(f=>{n&&(l.add(n),f.forEach(m=>Sp(l,n,m))),f.forEach(m=>Sp(l,o,m)),f.forEach(m=>Sp(l,mc[r]||{},m)),f.forEach(m=>Sp(l,kn,m)),f.forEach(m=>Sp(l,Uk,m))});const c=Array.from(l);return 0===c.length&&c.push(Object.create(null)),Y8.has(e)&&s.set(e,c),c}chartOptionScopes(){const{options:n,type:e}=this;return[n,mc[e]||{},kn.datasets[e]||{},{type:e},kn,Uk]}resolveNamedOptions(n,e,i,o=[""]){const r={$shared:!0},{resolver:s,subPrefixes:a}=X8(this._resolverCache,n,o);let l=s;(function lwe(t,n){const{isScriptable:e,isIndexable:i}=XV(t);for(const o of n){const r=e(o),s=i(o),a=(s||r)&&t[o];if(r&&(Ra(a)||awe(a))||s&&vn(a))return!0}return!1})(s,e)&&(r.$shared=!1,l=Su(s,i=Ra(i)?i():i,this.createResolver(n,i,a)));for(const c of e)r[c]=l[c];return r}createResolver(n,e,i=[""],o){const{resolver:r}=X8(this._resolverCache,n,i);return ft(e)?Su(r,e,void 0,o):r}}function X8(t,n,e){let i=t.get(n);i||(i=new Map,t.set(n,i));const o=e.join();let r=i.get(o);return r||(r={resolver:Gk(n,e),subPrefixes:e.filter(a=>!a.toLowerCase().includes("hover"))},i.set(o,r)),r}const awe=t=>ft(t)&&Object.getOwnPropertyNames(t).some(n=>Ra(t[n])),dwe=["top","bottom","left","right","chartArea"];function Z8(t,n){return"top"===t||"bottom"===t||-1===dwe.indexOf(t)&&"x"===n}function Q8(t,n){return function(e,i){return e[t]===i[t]?e[n]-i[n]:e[t]-i[t]}}function J8(t){const n=t.chart,e=n.options.animation;n.notifyPlugins("afterRender"),ln(e&&e.onComplete,[t],n)}function uwe(t){const n=t.chart,e=n.options.animation;ln(e&&e.onProgress,[t],n)}function eH(t){return Yk()&&"string"==typeof t?t=document.getElementById(t):t&&t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas),t}const Bv={},tH=t=>{const n=eH(t);return Object.values(Bv).filter(e=>e.canvas===n).pop()};function hwe(t,n,e){const i=Object.keys(t);for(const o of i){const r=+o;if(r>=n){const s=t[o];delete t[o],(e>0||r>n)&&(t[r+e]=s)}}}let lD=(()=>class t{static defaults=kn;static instances=Bv;static overrides=mc;static registry=ns;static version="4.5.1";static getChart=tH;static register(...e){ns.add(...e),nH()}static unregister(...e){ns.remove(...e),nH()}constructor(e,i){const o=this.config=new swe(i),r=eH(e),s=tH(r);if(s)throw new Error("Canvas is already in use. Chart with ID '"+s.id+"' must be destroyed before the canvas with ID '"+s.canvas.id+"' can be reused.");const a=o.createResolver(o.chartOptionScopes(),this.getContext());this.platform=new(o.platform||function I0e(t){return!Yk()||typeof OffscreenCanvas<"u"&&t instanceof OffscreenCanvas?b0e:P0e}(r)),this.platform.updateConfig(o);const l=this.platform.acquireContext(r,a.aspectRatio),c=l&&l.canvas,f=c&&c.height,m=c&&c.width;this.id=hCe(),this.ctx=l,this.canvas=c,this.width=m,this.height=f,this._options=a,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new Y0e,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=function ECe(t,n){let e;return function(...i){return n?(clearTimeout(e),e=setTimeout(t,n,i)):t.apply(this,i),n}}(g=>this.update(g),a.resizeDelay||0),this._dataChanges=[],Bv[this.id]=this,l&&c?(js.listen(this,"complete",J8),js.listen(this,"progress",uwe),this._initialize(),this.attached&&this.update()):console.error("Failed to create chart: can't acquire context from the given item")}get aspectRatio(){const{options:{aspectRatio:e,maintainAspectRatio:i},width:o,height:r,_aspectRatio:s}=this;return dt(e)?i&&s?s:r?o/r:null:e}get data(){return this.config.data}set data(e){this.config.data=e}get options(){return this._options}set options(e){this.config.options=e}get registry(){return ns}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():o8(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return qV(this.canvas,this.ctx),this}stop(){return js.stop(this),this}resize(e,i){js.running(this)?this._resizeBeforeDraw={width:e,height:i}:this._resize(e,i)}_resize(e,i){const o=this.options,a=this.platform.getMaximumSize(this.canvas,e,i,o.maintainAspectRatio&&this.aspectRatio),l=o.devicePixelRatio||this.platform.getDevicePixelRatio(),c=this.width?"resize":"attach";this.width=a.width,this.height=a.height,this._aspectRatio=this.aspectRatio,o8(this,l,!0)&&(this.notifyPlugins("resize",{size:a}),ln(o.onResize,[this,a],this),this.attached&&this._doResize(c)&&this.render())}ensureScalesHaveIDs(){Vt(this.options.scales||{},(o,r)=>{o.id=r})}buildOrUpdateScales(){const e=this.options,i=e.scales,o=this.scales,r=Object.keys(o).reduce((a,l)=>(a[l]=!1,a),{});let s=[];i&&(s=s.concat(Object.keys(i).map(a=>{const l=i[a],c=aD(a,l),f="r"===c,m="x"===c;return{options:l,dposition:f?"chartArea":m?"bottom":"left",dtype:f?"radialLinear":m?"category":"linear"}}))),Vt(s,a=>{const l=a.options,c=l.id,f=aD(c,l),m=Ge(l.type,a.dtype);(void 0===l.position||Z8(l.position,f)!==Z8(a.dposition))&&(l.position=a.dposition),r[c]=!0;let g=null;c in o&&o[c].type===m?g=o[c]:(g=new(ns.getScale(m))({id:c,type:m,ctx:this.ctx,chart:this}),o[g.id]=g),g.init(l,e)}),Vt(r,(a,l)=>{a||delete o[l]}),Vt(o,a=>{Yi.configure(this,a,a.options),Yi.addBox(this,a)})}_updateMetasets(){const e=this._metasets,i=this.data.datasets.length,o=e.length;if(e.sort((r,s)=>r.index-s.index),o>i){for(let r=i;ri.length&&delete this._stacks,e.forEach((o,r)=>{0===i.filter(s=>s===o._dataset).length&&this._destroyDatasetMeta(r)})}buildOrUpdateControllers(){const e=[],i=this.data.datasets;let o,r;for(this._removeUnreferencedMetasets(),o=0,r=i.length;o{this.getDatasetMeta(i).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(e){const i=this.config;i.update();const o=this._options=i.createResolver(i.chartOptionScopes(),this.getContext()),r=this._animationsDisabled=!o.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),!1===this.notifyPlugins("beforeUpdate",{mode:e,cancelable:!0}))return;const s=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let a=0;for(let f=0,m=this.data.datasets.length;f{f.reset()}),this._updateDatasets(e),this.notifyPlugins("afterUpdate",{mode:e}),this._layers.sort(Q8("z","_idx"));const{_active:l,_lastEvent:c}=this;c?this._eventHandler(c,!0):l.length&&this._updateHoverStyles(l,l,!0),this.render()}_updateScales(){Vt(this.scales,e=>{Yi.removeBox(this,e)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const e=this.options,i=new Set(Object.keys(this._listeners)),o=new Set(e.events);(!EV(i,o)||!!this._responsiveListeners!==e.responsive)&&(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:e}=this,i=this._getUniformDataChanges()||[];for(const{method:o,start:r,count:s}of i)hwe(e,r,"_removeElements"===o?-s:s)}_getUniformDataChanges(){const e=this._dataChanges;if(!e||!e.length)return;this._dataChanges=[];const i=this.data.datasets.length,o=s=>new Set(e.filter(a=>a[0]===s).map((a,l)=>l+","+a.splice(1).join(","))),r=o(0);for(let s=1;ss.split(",")).map(s=>({method:s[1],start:+s[2],count:+s[3]}))}_updateLayout(e){if(!1===this.notifyPlugins("beforeLayout",{cancelable:!0}))return;Yi.update(this,this.width,this.height,e);const i=this.chartArea,o=i.width<=0||i.height<=0;this._layers=[],Vt(this.boxes,r=>{o&&"chartArea"===r.position||(r.configure&&r.configure(),this._layers.push(...r._layers()))},this),this._layers.forEach((r,s)=>{r._idx=s}),this.notifyPlugins("afterLayout")}_updateDatasets(e){if(!1!==this.notifyPlugins("beforeDatasetsUpdate",{mode:e,cancelable:!0})){for(let i=0,o=this.data.datasets.length;i=0;--i)this._drawDataset(e[i]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(e){const i=this.ctx,o={meta:e,index:e.index,cancelable:!0},r=p8(this,e);!1!==this.notifyPlugins("beforeDatasetDraw",o)&&(r&&Dv(i,r),e.controller.draw(),r&&Mv(i),o.cancelable=!1,this.notifyPlugins("afterDatasetDraw",o))}isPointInArea(e){return Hs(e,this.chartArea,this._minPadding)}getElementsAtEventForMode(e,i,o,r){const s=d0e.modes[i];return"function"==typeof s?s(this,e,o,r):[]}getDatasetMeta(e){const i=this.data.datasets[e],o=this._metasets;let r=o.filter(s=>s&&s._dataset===i).pop();return r||(r={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:i&&i.order||0,index:e,_dataset:i,_parsed:[],_sorted:!1},o.push(r)),r}getContext(){return this.$context||(this.$context=Na(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(e){const i=this.data.datasets[e];if(!i)return!1;const o=this.getDatasetMeta(e);return"boolean"==typeof o.hidden?!o.hidden:!i.hidden}setDatasetVisibility(e,i){this.getDatasetMeta(e).hidden=!i}toggleDataVisibility(e){this._hiddenIndices[e]=!this._hiddenIndices[e]}getDataVisibility(e){return!this._hiddenIndices[e]}_updateVisibility(e,i,o){const r=o?"show":"hide",s=this.getDatasetMeta(e),a=s.controller._resolveAnimations(void 0,r);cp(i)?(s.data[i].hidden=!o,this.update()):(this.setDatasetVisibility(e,o),a.update(s,{visible:o}),this.update(l=>l.datasetIndex===e?r:void 0))}hide(e,i){this._updateVisibility(e,i,!1)}show(e,i){this._updateVisibility(e,i,!0)}_destroyDatasetMeta(e){const i=this._metasets[e];i&&i.controller&&i.controller._destroy(),delete this._metasets[e]}_stop(){let e,i;for(this.stop(),js.remove(this),e=0,i=this.data.datasets.length;e{i.addEventListener(this,s,a),e[s]=a},r=(s,a,l)=>{s.offsetX=a,s.offsetY=l,this._eventHandler(s)};Vt(this.options.events,s=>o(s,r))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const e=this._responsiveListeners,i=this.platform,o=(c,f)=>{i.addEventListener(this,c,f),e[c]=f},r=(c,f)=>{e[c]&&(i.removeEventListener(this,c,f),delete e[c])},s=(c,f)=>{this.canvas&&this.resize(c,f)};let a;const l=()=>{r("attach",l),this.attached=!0,this.resize(),o("resize",s),o("detach",a)};a=()=>{this.attached=!1,r("resize",s),this._stop(),this._resize(0,0),o("attach",l)},i.isAttached(this.canvas)?l():a()}unbindEvents(){Vt(this._listeners,(e,i)=>{this.platform.removeEventListener(this,i,e)}),this._listeners={},Vt(this._responsiveListeners,(e,i)=>{this.platform.removeEventListener(this,i,e)}),this._responsiveListeners=void 0}updateHoverStyle(e,i,o){const r=o?"set":"remove";let s,a,l,c;for("dataset"===i&&(s=this.getDatasetMeta(e[0].datasetIndex),s.controller["_"+r+"DatasetHoverStyle"]()),l=0,c=e.length;l{const l=this.getDatasetMeta(s);if(!l)throw new Error("No dataset found at index "+s);return{datasetIndex:s,element:l.data[a],index:a}});!yv(o,i)&&(this._active=o,this._lastEvent=null,this._updateHoverStyles(o,i))}notifyPlugins(e,i,o){return this._plugins.notify(this,e,i,o)}isPluginEnabled(e){return 1===this._plugins._cache.filter(i=>i.plugin.id===e).length}_updateHoverStyles(e,i,o){const r=this.options.hover,s=(c,f)=>c.filter(m=>!f.some(g=>m.datasetIndex===g.datasetIndex&&m.index===g.index)),a=s(i,e),l=o?e:s(e,i);a.length&&this.updateHoverStyle(a,r.mode,!1),l.length&&r.mode&&this.updateHoverStyle(l,r.mode,!0)}_eventHandler(e,i){const o={event:e,replay:i,cancelable:!0,inChartArea:this.isPointInArea(e)},r=a=>(a.options.events||this.options.events).includes(e.native.type);if(!1===this.notifyPlugins("beforeEvent",o,r))return;const s=this._handleEvent(e,i,o.inChartArea);return o.cancelable=!1,this.notifyPlugins("afterEvent",o,r),(s||o.changed)&&this.render(),this}_handleEvent(e,i,o){const{_active:r=[],options:s}=this,l=this._getActiveElements(e,r,o,i),c=function bCe(t){return"mouseup"===t.type||"click"===t.type||"contextmenu"===t.type}(e),f=function fwe(t,n,e,i){return e&&"mouseout"!==t.type?i?n:t:null}(e,this._lastEvent,o,c);o&&(this._lastEvent=null,ln(s.onHover,[e,l,this],this),c&&ln(s.onClick,[e,l,this],this));const m=!yv(l,r);return(m||i)&&(this._active=l,this._updateHoverStyles(l,r,i)),this._lastEvent=f,m}_getActiveElements(e,i,o,r){if("mouseout"===e.type)return[];if(!o)return i;const s=this.options.hover;return this.getElementsAtEventForMode(e,s.mode,s,r)}})();function nH(){return Vt(lD.instances,t=>t._plugins.invalidate())}function iH(t,n,e=n){t.lineCap=Ge(e.borderCapStyle,n.borderCapStyle),t.setLineDash(Ge(e.borderDash,n.borderDash)),t.lineDashOffset=Ge(e.borderDashOffset,n.borderDashOffset),t.lineJoin=Ge(e.borderJoinStyle,n.borderJoinStyle),t.lineWidth=Ge(e.borderWidth,n.borderWidth),t.strokeStyle=Ge(e.borderColor,n.borderColor)}function Cwe(t,n,e){t.lineTo(e.x,e.y)}function oH(t,n,e={}){const i=t.length,{start:o=0,end:r=i-1}=e,{start:s,end:a}=n,l=Math.max(o,s),c=Math.min(r,a);return{count:i,start:l,loop:n.loop,ilen:ca&&r>a)?i+c-l:c-l}}function xwe(t,n,e,i){const{points:o,options:r}=n,{count:s,start:a,loop:l,ilen:c}=oH(o,e,i),f=function wwe(t){return t.stepped?jCe:t.tension||"monotone"===t.cubicInterpolationMode?UCe:Cwe}(r);let _,w,k,{move:m=!0,reverse:g}=i||{};for(_=0;_<=c;++_)w=o[(a+(g?c-_:_))%s],!w.skip&&(m?(t.moveTo(w.x,w.y),m=!1):f(t,k,w,g,r.stepped),k=w);return l&&(w=o[(a+(g?c:0))%s],f(t,k,w,g,r.stepped)),!!l}function Swe(t,n,e,i){const o=n.points,{count:r,start:s,ilen:a}=oH(o,e,i),{move:l=!0,reverse:c}=i||{};let g,_,w,k,T,I,f=0,m=0;const R=Y=>(s+(c?a-Y:Y))%r,W=()=>{k!==T&&(t.lineTo(f,T),t.lineTo(f,k),t.lineTo(f,I))};for(l&&(_=o[R(0)],t.moveTo(_.x,_.y)),g=0;g<=a;++g){if(_=o[R(g)],_.skip)continue;const Y=_.x,K=_.y,ee=0|Y;ee===w?(KT&&(T=K),f=(m*f+Y)/++m):(W(),t.lineTo(Y,K),w=ee,m=0,k=T=K),I=K}W()}function cD(t){const n=t.options;return t._decimated||t._loop||n.tension||"monotone"===n.cubicInterpolationMode||n.stepped||n.borderDash&&n.borderDash.length?xwe:Swe}const Twe="function"==typeof Path2D;let kp=(()=>class t extends Us{static id="line";static defaults={borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:3,capBezierPoints:!0,cubicInterpolationMode:"default",fill:!1,spanGaps:!1,stepped:!1,tension:0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};static descriptors={_scriptable:!0,_indexable:e=>"borderDash"!==e&&"fill"!==e};constructor(e){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,e&&Object.assign(this,e)}updateControlPoints(e,i){const o=this.options;!o.tension&&"monotone"!==o.cubicInterpolationMode||o.stepped||this._pointsUpdated||(h1e(this._points,o,e,o.spanGaps?this._loop:this._fullLoop,i),this._pointsUpdated=!0)}set points(e){this._points=e,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=function M1e(t,n){const e=t.points,i=t.options.spanGaps,o=e.length;if(!o)return[];const r=!!t._loop,{start:s,end:a}=function k1e(t,n,e,i){let o=0,r=n-1;if(e&&!i)for(;oo&&t[r%n].skip;)r--;return r%=n,{start:o,end:r}}(e,o,r,i);return function h8(t,n,e,i){return i&&i.setContext&&e?function T1e(t,n,e,i){const o=t._chart.getContext(),r=f8(t.options),{_datasetIndex:s,options:{spanGaps:a}}=t,l=e.length,c=[];let f=r,m=n[0].start,g=m;function _(w,k,T,I){const R=a?-1:1;if(w!==k){for(w+=l;e[w%l].skip;)w-=R;for(;e[k%l].skip;)k+=R;w%l!==k%l&&(c.push({start:w%l,end:k%l,loop:T,style:I}),f=I,m=k%l)}}for(const w of n){m=a?m:w.start;let T,k=e[m%l];for(g=m+1;g<=w.end;g++){const I=e[g%l];T=f8(i.setContext(Na(o,{type:"segment",p0:k,p1:I,p0DataIndex:(g-1)%l,p1DataIndex:g%l,datasetIndex:s}))),E1e(T,f)&&_(m,g-1,w.loop,f),k=I,f=T}mclass t extends Us{static id="point";parsed;skip;stop;static defaults={borderWidth:1,hitRadius:1,hoverBorderWidth:1,hoverRadius:4,pointStyle:"circle",radius:3,rotation:0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};constructor(e){super(),this.options=void 0,this.parsed=void 0,this.skip=void 0,this.stop=void 0,e&&Object.assign(this,e)}inRange(e,i,o){const r=this.options,{x:s,y:a}=this.getProps(["x","y"],o);return Math.pow(e-s,2)+Math.pow(i-a,2)t;n--){const i=e[n];if(!isNaN(i.x)&&!isNaN(i.y))break}return n}function pH(t,n,e,i){return t&&n?i(t[e],n[e]):t?t[e]:n?n[e]:0}function mH(t,n){let e=[],i=!1;return vn(t)?(i=!0,e=t):e=function Ywe(t,n){const{x:e=null,y:i=null}=t||{},o=n.points,r=[];return n.segments.forEach(({start:s,end:a})=>{a=Hv(s,a,o);const l=o[s],c=o[a];null!==i?(r.push({x:l.x,y:i}),r.push({x:c.x,y:i})):null!==e&&(r.push({x:e,y:l.y}),r.push({x:e,y:c.y}))}),r}(t,n),e.length?new kp({points:e,options:{tension:0},_loop:i,_fullLoop:i}):null}function gH(t){return t&&!1!==t.fill}function Xwe(t,n,e){let o=t[n].fill;const r=[n];let s;if(!e)return o;for(;!1!==o&&-1===r.indexOf(o);){if(!jn(o))return o;if(s=t[o],!s)return!1;if(s.visible)return o;r.push(o),o=s.fill}return!1}function Zwe(t,n,e){const i=function txe(t){const n=t.options,e=n.fill;let i=Ge(e&&e.target,e);return void 0===i&&(i=!!n.backgroundColor),!1!==i&&null!==i&&(!0===i?"origin":i)}(t);if(ft(i))return!isNaN(i.value)&&i;let o=parseFloat(i);return jn(o)&&Math.floor(o)===o?function Qwe(t,n,e,i){return("-"===t||"+"===t)&&(e=n+e),!(e===n||e<0||e>=i)&&e}(i[0],n,o,e):["origin","start","end","stack","shape"].indexOf(i)>=0&&i}function oxe(t,n,e){const i=[];for(let o=0;o=0;--s){const a=o[s].$filler;a&&(a.line.updateControlPoints(r,a.axis),i&&a.fill&&pD(t.ctx,a,r))}},beforeDatasetsDraw(t,n,e){if("beforeDatasetsDraw"!==e.drawTime)return;const i=t.getSortedVisibleDatasetMetas();for(let o=i.length-1;o>=0;--o){const r=i[o].$filler;gH(r)&&pD(t.ctx,r,t.chartArea)}},beforeDatasetDraw(t,n,e){const i=n.meta.$filler;!gH(i)||"beforeDatasetDraw"!==e.drawTime||pD(t.ctx,i,t.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};function OH(t){const n=this.getLabels();return t>=0&&tclass t extends xc{static id="category";static defaults={ticks:{callback:OH}};constructor(e){super(e),this._startValue=void 0,this._valueRange=0,this._addedLabels=[]}init(e){const i=this._addedLabels;if(i.length){const o=this.getLabels();for(const{index:r,label:s}of i)o[r]===s&&o.splice(r,1);this._addedLabels=[]}super.init(e)}parse(e,i){if(dt(e))return null;const o=this.getLabels();return((t,n)=>null===t?null:Si(Math.round(t),0,n))(i=isFinite(i)&&o[i]===e?i:function Oxe(t,n,e,i){const o=t.indexOf(n);return-1===o?((t,n,e,i)=>("string"==typeof n?(e=t.push(n)-1,i.unshift({index:e,label:n})):isNaN(n)&&(e=null),e))(t,n,e,i):o!==t.lastIndexOf(n)?e:o}(o,e,Ge(i,e),this._addedLabels),o.length-1)}determineDataLimits(){const{minDefined:e,maxDefined:i}=this.getUserBounds();let{min:o,max:r}=this.getMinMax(!0);"ticks"===this.options.bounds&&(e||(o=0),i||(r=this.getLabels().length-1)),this.min=o,this.max=r}buildTicks(){const e=this.min,i=this.max,o=this.options.offset,r=[];let s=this.getLabels();s=0===e&&i===s.length-1?s:s.slice(e,i+1),this._valueRange=Math.max(s.length-(o?0:1),1),this._startValue=this.min-(o?.5:0);for(let a=e;a<=i;a++)r.push({value:a});return r}getLabelForValue(e){return OH.call(this,e)}configure(){super.configure(),this.isHorizontal()||(this._reversePixels=!this._reversePixels)}getPixelForValue(e){return"number"!=typeof e&&(e=this.parse(e)),null===e?NaN:this.getPixelForDecimal((e-this._startValue)/this._valueRange)}getPixelForTick(e){const i=this.ticks;return e<0||e>i.length-1?null:this.getPixelForValue(i[e].value)}getValueForPixel(e){return Math.round(this._startValue+this.getDecimalForPixel(e)*this._valueRange)}getBasePixel(){return this.bottom}})();function RH(t,n,{horizontal:e,minRotation:i}){const o=Tr(i),r=(e?Math.sin(o):Math.cos(o))||.001;return Math.min(n/r,.75*n*(""+t).length)}class zv extends xc{constructor(n){super(n),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(n,e){return dt(n)||("number"==typeof n||n instanceof Number)&&!isFinite(+n)?null:+n}handleTickRangeOptions(){const{beginAtZero:n}=this.options,{minDefined:e,maxDefined:i}=this.getUserBounds();let{min:o,max:r}=this;const s=l=>o=e?o:l,a=l=>r=i?r:l;if(n){const l=ts(o),c=ts(r);l<0&&c<0?a(0):l>0&&c>0&&s(0)}if(o===r){let l=0===r?1:Math.abs(.05*r);a(r+l),n||s(o-l)}this.min=o,this.max=r}getTickLimit(){const n=this.options.ticks;let o,{maxTicksLimit:e,stepSize:i}=n;return i?(o=Math.ceil(this.max/i)-Math.floor(this.min/i)+1,o>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${i} would result generating up to ${o} ticks. Limiting to 1000.`),o=1e3)):(o=this.computeTickLimit(),e=e||11),e&&(o=Math.min(e,o)),o}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const n=this.options,e=n.ticks;let i=this.getTickLimit();i=Math.max(2,i);const s=function Rxe(t,n){const e=[],{bounds:o,step:r,min:s,max:a,precision:l,count:c,maxTicks:f,maxDigits:m,includeBounds:g}=t,_=r||1,w=f-1,{min:k,max:T}=n,I=!dt(s),R=!dt(a),W=!dt(c),Y=(T-k)/(m+1);let ee,ie,P,A,K=IV((T-k)/w/_)*_;if(K<1e-14&&!I&&!R)return[{value:k},{value:T}];A=Math.ceil(T/K)-Math.floor(k/K),A>w&&(K=IV(A*K/w/_)*_),dt(l)||(ee=Math.pow(10,l),K=Math.ceil(K*ee)/ee),"ticks"===o?(ie=Math.floor(k/K)*K,P=Math.ceil(T/K)*K):(ie=k,P=T),I&&R&&r&&function xCe(t,n){const e=Math.round(t);return e-n<=t&&e+n>=t}((a-s)/r,K/1e3)?(A=Math.round(Math.min((a-s)/K,f)),K=(a-s)/A,ie=s,P=a):W?(ie=I?s:ie,P=R?a:P,A=c-1,K=(P-ie)/A):(A=(P-ie)/K,A=dp(A,Math.round(A),K/1e3)?Math.round(A):Math.ceil(A));const L=Math.max(AV(K),AV(ie));ee=Math.pow(10,dt(l)?L:l),ie=Math.round(ie*ee)/ee,P=Math.round(P*ee)/ee;let $=0;for(I&&(g&&ie!==s?(e.push({value:s}),iea)break;e.push({value:H})}return R&&g&&P!==a?e.length&&dp(e[e.length-1].value,a,RH(a,Y,t))?e[e.length-1].value=a:e.push({value:a}):(!R||P===a)&&e.push({value:P}),e}({maxTicks:i,bounds:n.bounds,min:n.min,max:n.max,precision:e.precision,step:e.stepSize,count:e.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:e.minRotation||0,includeBounds:!1!==e.includeBounds},this._range||this);return"ticks"===n.bounds&&function OV(t,n,e){let i,o,r;for(i=0,o=t.length;i{class t{static{this.topInternalMargin=5}constructor(e){this.height=100,this.animated=!1,this.min=void 0,this.max=void 0,this.differ=e.find([]).create(null)}ngAfterViewInit(){this.chart=new lD(this.chartElement.nativeElement,{type:"line",data:{labels:Array.from(Array(this.data.length).keys()),datasets:[{data:this.data,backgroundColor:"rgba(10, 15, 22, 0.4)",borderColor:"rgba(10, 15, 22, 0.4)",borderWidth:1}]},options:{maintainAspectRatio:!1,events:[],plugins:{legend:{display:!1},tooltip:{enabled:!1}},scales:{y:{display:!1,suggestedMin:0},x:{display:!1}},elements:{point:{radius:0}},layout:{padding:{left:0,right:0,top:t.topInternalMargin,bottom:0}},animation:!!this.animated&&void 0}}),void 0!==this.min&&void 0!==this.max&&(this.updateMinAndMax(),this.chart.update())}ngDoCheck(){this.differ.diff(this.data)&&this.chart&&(void 0!==this.min&&void 0!==this.max&&this.updateMinAndMax(),this.animated?this.chart.update():this.chart.update("none"))}ngOnDestroy(){this.chart&&this.chart.destroy()}updateMinAndMax(){this.chart.options.scales.y.min=this.min,this.chart.options.scales.y.max=this.max}static{this.\u0275fac=function(i){return new(i||t)(O(h_))}}static{this.\u0275cmp=re({type:t,selectors:[["app-line-chart"]],viewQuery:function(i,o){if(1&i&&ot(iSe,5),2&i){let r;he(r=fe())&&(o.chartElement=r.first)}},inputs:{data:"data",height:"height",animated:"animated",min:"min",max:"max"},standalone:!1,decls:3,vars:2,consts:[["chart",""],[1,"chart-container"]],template:function(i,o){1&i&&(h(0,"div",1),B(1,"canvas",null,0),u()),2&i&&no("height: "+o.height+"px;")},styles:[".chart-container[_ngcontent-%COMP%]{position:relative;width:100%;overflow:hidden;border-radius:10px}"]})}}return t})();const WH=()=>({showValue:!0}),GH=()=>({showUnit:!0});function oSe(t,n){if(1&t&&(h(0,"div",0),B(1,"app-line-chart",1),h(2,"div",2)(3,"span",3),p(4),b(5,"translate"),u(),h(6,"span",4)(7,"span",5),p(8),b(9,"autoScale"),u(),h(10,"span",6),p(11),b(12,"autoScale"),u()()()()),2&t){const e=v();d(),C("data",e.trafficData.sentHistory),d(3),M(y(5,4,"common.uploaded")),d(4),M(pe(9,6,e.trafficData.totalSent,Ct(12,WH))),d(3),M(pe(12,9,e.trafficData.totalSent,Ct(13,GH)))}}function rSe(t,n){if(1&t&&(h(0,"div",0),B(1,"app-line-chart",1),h(2,"div",2)(3,"span",3),p(4),b(5,"translate"),u(),h(6,"span",4)(7,"span",5),p(8),b(9,"autoScale"),u(),h(10,"span",6),p(11),b(12,"autoScale"),u()()()()),2&t){const e=v();d(),C("data",e.trafficData.receivedHistory),d(3),M(y(5,4,"common.downloaded")),d(4),M(pe(9,6,e.trafficData.totalReceived,Ct(12,WH))),d(3),M(pe(12,9,e.trafficData.totalReceived,Ct(13,GH)))}}let sSe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=re({type:t,selectors:[["app-charts"]],inputs:{trafficData:"trafficData"},standalone:!1,decls:2,vars:2,consts:[[1,"small-rounded-elevated-box","chart"],[3,"data"],[1,"info"],[1,"text"],[1,"rate"],[1,"value"],[1,"unit"]],template:function(i,o){1&i&&(x(0,oSe,13,14,"div",0),x(1,rSe,13,14,"div",0)),2&i&&(S(o.trafficData?0:-1),d(),S(o.trafficData?1:-1))},dependencies:[Gv,xe,rp],styles:[".chart[_ngcontent-%COMP%]{position:relative;margin-bottom:20px}.chart[_ngcontent-%COMP%]:last-child{margin-bottom:10px}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%]{position:absolute;bottom:0;left:0;display:flex;justify-content:space-between;align-items:flex-end;padding:10px;width:100%}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:#f8f9f9}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] span.text[_ngcontent-%COMP%]{font-size:.8rem;text-transform:uppercase;font-weight:700}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] span.rate[_ngcontent-%COMP%] .value[_ngcontent-%COMP%]{font-size:1.25rem;font-weight:700}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] span.rate[_ngcontent-%COMP%] .unit[_ngcontent-%COMP%]{font-size:.8rem;padding-left:5px}"]})}}return t})();function aSe(t,n){1&t&&(h(0,"div",4)(1,"mat-icon",2),p(2,"settings"),u(),p(3),b(4,"translate"),u()),2&t&&(d(),C("inline",!0),d(2),E("",y(4,2,"routes.details.specific-fields-titles.app")," "))}function lSe(t,n){1&t&&(h(0,"div",4)(1,"mat-icon",2),p(2,"swap_horiz"),u(),p(3),b(4,"translate"),u()),2&t&&(d(),C("inline",!0),d(2),E("",y(4,2,"routes.details.specific-fields-titles.forward")," "))}function cSe(t,n){1&t&&(h(0,"div",4)(1,"mat-icon",2),p(2,"arrow_forward"),u(),p(3),b(4,"translate"),u()),2&t&&(d(),C("inline",!0),d(2),E("",y(4,2,"routes.details.specific-fields-titles.intermediary-forward")," "))}function dSe(t,n){if(1&t&&(h(0,"div")(1,"div",3)(2,"span"),p(3),b(4,"translate"),u(),p(5),u(),h(6,"div",3)(7,"span"),p(8),b(9,"translate"),u(),p(10),u()()),2&t){const e=v(2);d(3),M(y(4,5,"routes.details.specific-fields.route-id")),d(2),E(" ",e.routeRule.forwardFields?e.routeRule.forwardFields.nextRid:e.routeRule.intermediaryForwardFields.nextRid," "),d(3),M(y(9,7,"routes.details.specific-fields.transport-id")),d(2),gt(" ",e.routeRule.forwardFields?e.routeRule.forwardFields.nextTid:e.routeRule.intermediaryForwardFields.nextTid," ",e.getLabel(e.routeRule.forwardFields?e.routeRule.forwardFields.nextTid:e.routeRule.intermediaryForwardFields.nextTid)," ")}}function uSe(t,n){if(1&t&&(h(0,"div")(1,"div",3)(2,"span"),p(3),b(4,"translate"),u(),p(5),u(),h(6,"div",3)(7,"span"),p(8),b(9,"translate"),u(),p(10),u(),h(11,"div",3)(12,"span"),p(13),b(14,"translate"),u(),p(15),u(),h(16,"div",3)(17,"span"),p(18),b(19,"translate"),u(),p(20),u()()),2&t){const e=v(2);d(3),M(y(4,10,"routes.details.specific-fields.destination-pk")),d(2),gt(" ",e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.dstPk:e.routeRule.forwardFields.routeDescriptor.dstPk," ",e.getLabel(e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.dstPk:e.routeRule.forwardFields.routeDescriptor.dstPk)," "),d(3),M(y(9,12,"routes.details.specific-fields.source-pk")),d(2),gt(" ",e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.srcPk:e.routeRule.forwardFields.routeDescriptor.srcPk," ",e.getLabel(e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.srcPk:e.routeRule.forwardFields.routeDescriptor.srcPk)," "),d(3),M(y(14,14,"routes.details.specific-fields.destination-port")),d(2),E(" ",e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.dstPort:e.routeRule.forwardFields.routeDescriptor.dstPort," "),d(3),M(y(19,16,"routes.details.specific-fields.source-port")),d(2),E(" ",e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.srcPort:e.routeRule.forwardFields.routeDescriptor.srcPort," ")}}function hSe(t,n){if(1&t&&(h(0,"div")(1,"div",4)(2,"mat-icon",2),p(3,"list"),u(),p(4),b(5,"translate"),u(),h(6,"div",3)(7,"span"),p(8),b(9,"translate"),u(),p(10),u(),h(11,"div",3)(12,"span"),p(13),b(14,"translate"),u(),p(15),u(),h(16,"div",3)(17,"span"),p(18),b(19,"translate"),u(),p(20),u(),x(21,aSe,5,4,"div",4),x(22,lSe,5,4,"div",4),x(23,cSe,5,4,"div",4),x(24,dSe,11,9,"div"),x(25,uSe,21,18,"div"),u()),2&t){const e=v();d(2),C("inline",!0),d(2),E("",y(5,13,"routes.details.summary.title")," "),d(4),M(y(9,15,"routes.details.summary.keep-alive")),d(2),E(" ",e.routeRule.ruleSummary.keepAlive," "),d(3),M(y(14,17,"routes.details.summary.type")),d(2),E(" ",e.getRuleTypeName(e.routeRule.ruleSummary.ruleType)," "),d(3),M(y(19,19,"routes.details.summary.key-route-id")),d(2),E(" ",e.routeRule.ruleSummary.keyRouteId," "),d(),S(e.routeRule.appFields?21:-1),d(),S(e.routeRule.forwardFields?22:-1),d(),S(e.routeRule.intermediaryForwardFields?23:-1),d(),S(e.routeRule.forwardFields||e.routeRule.intermediaryForwardFields?24:-1),d(),S(e.routeRule.appFields&&e.routeRule.appFields.routeDescriptor||e.routeRule.forwardFields&&e.routeRule.forwardFields.routeDescriptor?25:-1)}}let fSe=(()=>{class t{static openDialog(e,i){const o=new nn;return o.data=i,o.autoFocus=!1,o.width=rt.largeModalWidth,e.open(t,o)}constructor(e,i,o){this.dialogRef=i,this.storageService=o,this.ruleTypes=new Map([[0,"App"],[1,"Forward"],[2,"Intermediary forward"]]),this.routeRule=e}getRuleTypeName(e){return this.ruleTypes.has(e)?this.ruleTypes.get(e):e.toString()}closePopup(){this.dialogRef.close()}getLabel(e){const i=this.storageService.getLabelInfo(e);return i?" ("+i.label+")":""}static{this.\u0275fac=function(i){return new(i||t)(O(En),O(Bt),O(ti))}}static{this.\u0275cmp=re({type:t,selectors:[["app-route-details"]],standalone:!1,decls:19,vars:17,consts:[[1,"info-dialog",3,"headline","dialog"],[1,"title","mt-0"],[3,"inline"],[1,"item"],[1,"title"]],template:function(i,o){1&i&&(h(0,"app-dialog",0),b(1,"translate"),h(2,"div")(3,"div",1)(4,"mat-icon",2),p(5,"list"),u(),p(6),b(7,"translate"),u(),h(8,"div",3)(9,"span"),p(10),b(11,"translate"),u(),p(12),u(),h(13,"div",3)(14,"span"),p(15),b(16,"translate"),u(),p(17),u(),x(18,hSe,26,21,"div"),u()()),2&i&&(C("headline",y(1,9,"routes.details.title"))("dialog",o.dialogRef),d(4),C("inline",!0),d(2),E("",y(7,11,"routes.details.basic.title")," "),d(4),M(y(11,13,"routes.details.basic.key")),d(2),E(" ",o.routeRule.key," "),d(3),M(y(16,15,"routes.details.basic.rule")),d(2),E(" ",o.routeRule.rule," "),d(),S(o.routeRule.ruleSummary?18:-1))},dependencies:[We,gn,xe],encapsulation:2})}}return t})();const pSe=t=>({text:t}),mSe=()=>({"tooltip-word-break":!0});function gSe(t,n){if(1&t&&(h(0,"span"),p(1),b(2,"translate"),u()),2&t){const e=v();d(),E(" ",y(2,1,e.labelComponents.prefix)," ")}}function _Se(t,n){if(1&t&&(h(0,"span"),p(1),u()),2&t){const e=v();d(),E(" ",e.labelComponents.prefixSeparator," ")}}function bSe(t,n){if(1&t&&(h(0,"span"),p(1),u()),2&t){const e=v();d(),E(" ",e.labelComponents.label," ")}}function vSe(t,n){if(1&t&&(h(0,"span"),p(1),b(2,"translate"),u()),2&t){const e=v();d(),E(" ",y(2,1,e.labelComponents.translatableLabel)," ")}}class ySe{constructor(){this.prefix="",this.prefixSeparator="",this.label="",this.translatableLabel=""}}let kc=(()=>{class t{set id(e){this.idInternal=e,this.labelComponents=t.getLabelComponents(this.storageService,this.id)}get id(){return this.idInternal?this.idInternal:""}static getLabelComponents(e,i){let o;o=!!e.getSavedVisibleLocalNodes().has(i);const r=new ySe;return r.labelInfo=e.getLabelInfo(i),r.labelInfo&&r.labelInfo.label?(o&&(r.prefix="labeled-element.local-element",r.prefixSeparator=" - "),r.label=r.labelInfo.label):e.getSavedVisibleLocalNodes().has(i)?r.prefix="labeled-element.unnamed-local-visor":r.translatableLabel="labeled-element.unnamed-element",r}static getCompleteLabel(e,i,o){const r=t.getLabelComponents(e,o);return(r.prefix?i.instant(r.prefix):"")+r.prefixSeparator+r.label+(r.translatableLabel?i.instant(r.translatableLabel):"")}constructor(e,i,o,r,s){this.dialog=e,this.storageService=i,this.clipboardService=o,this.snackbarService=r,this.router=s,this.short=!1,this.shortTextLength=5,this.elementType=ro.Node,this.labelEdited=new we}ngOnDestroy(){this.labelEdited.complete()}processClick(){const e=[{icon:"filter_none",label:"labeled-element.copy"},{icon:"edit",label:"labeled-element.edit-label"}];this.labelComponents.labelInfo&&e.push({icon:"close",label:"labeled-element.remove-label"}),e.push({icon:"list",label:"labeled-element.view-all-labels"}),ao.openDialog(this.dialog,e,"common.options").afterClosed().subscribe(i=>{if(1===i)this.clipboardService.copy(this.id)&&this.snackbarService.showDone("copy.copied");else if(i>2)if(3===i&&this.labelComponents.labelInfo){const o=Rt.createConfirmationDialog(this.dialog,"labeled-element.remove-label-confirmation");o.componentInstance.operationAccepted.subscribe(()=>{o.componentInstance.closeModal(),this.storageService.saveLabel(this.id,null,this.elementType),this.snackbarService.showDone("edit-label.label-removed-warning"),this.labelEdited.emit()})}else this.router.navigate(["/settings","labels"]);else if(2===i){let o=this.labelComponents.labelInfo;o||(o={id:this.id,label:"",identifiedElementType:this.elementType}),wk.openDialog(this.dialog,o).afterClosed().subscribe(r=>{r&&this.labelEdited.emit()})}})}static{this.\u0275fac=function(i){return new(i||t)(O(Ot),O(ti),O(np),O(ct),O(vt))}}static{this.\u0275cmp=re({type:t,selectors:[["app-labeled-element-text"]],inputs:{id:"id",short:"short",shortTextLength:"shortTextLength",elementType:"elementType"},outputs:{labelEdited:"labelEdited"},standalone:!1,decls:12,vars:17,consts:[[1,"wrapper","highlight-internal-icon",3,"click","matTooltip","matTooltipClass"],[1,"label"],[3,"short","showTooltip","shortTextLength","text"],[3,"inline"]],template:function(i,o){1&i&&(h(0,"div",0),b(1,"translate"),F("click",function(s){return s.stopPropagation(),s.preventDefault(),o.processClick()}),h(2,"span",1),x(3,gSe,3,3,"span"),x(4,_Se,2,1,"span"),x(5,bSe,2,1,"span"),x(6,vSe,3,3,"span"),u(),B(7,"br")(8,"app-truncated-text",2),p(9," \xa0"),h(10,"mat-icon",3),p(11,"settings"),u()()),2&i&&(C("matTooltip",pe(1,11,o.short?"labeled-element.tooltip-with-text":"labeled-element.tooltip",se(14,pSe,o.id)))("matTooltipClass",Ct(16,mSe)),d(3),S(o.labelComponents&&o.labelComponents.prefix?3:-1),d(),S(o.labelComponents&&o.labelComponents.prefixSeparator?4:-1),d(),S(o.labelComponents&&o.labelComponents.label?5:-1),d(),S(o.labelComponents&&o.labelComponents.translatableLabel?6:-1),d(2),C("short",o.short)("showTooltip",!1)("shortTextLength",o.shortTextLength)("text",o.id),d(2),C("inline",!0))},dependencies:[We,Kt,aV,xe],styles:['.cursor-pointer[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%], .wrapper[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media(max-width:767px),(min-width:992px)and (max-width:1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media(max-width:767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}.wrapper[_ngcontent-%COMP%]{display:inline}.wrapper[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:.8rem;-webkit-user-select:none;user-select:none}.label[_ngcontent-%COMP%]{opacity:.7;font-size:.8rem}']})}}return t})();const CSe=(t,n)=>({"small-node-list-margins":t,"full-node-list-margins":n}),wSe=t=>({"d-lg-none d-xl-table":t}),xSe=t=>({"d-lg-table d-xl-none":t});function SSe(t,n){1&t&&(h(0,"span",3),p(1),b(2,"translate"),h(3,"mat-icon",13),b(4,"translate"),p(5,"help"),u()()),2&t&&(d(),E(" ",y(2,3,"routes.title")," "),d(2),C("inline",!0)("matTooltip",y(4,5,"routes.info")))}function kSe(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,v().$implicit.translatableValue)," ")}function DSe(t,n){1&t&&p(0),2&t&&E(" ",v().$implicit.value," ")}function MSe(t,n){if(1&t&&(h(0,"div",15)(1,"span"),p(2),b(3,"translate"),u(),x(4,kSe,2,3),x(5,DSe,1,1),u()),2&t){const e=n.$implicit;d(2),E("",y(3,3,e.filterName),": "),d(2),S(e.translatableValue?4:-1),d(),S(e.value?5:-1)}}function TSe(t,n){if(1&t){const e=oe();h(0,"div",14),F("click",function(){return j(e),U(v().dataFilterer.removeFilters())}),ve(1,MSe,6,5,"div",15,Fe),h(3,"div",16),p(4),b(5,"translate"),u()()}if(2&t){const e=v();d(),ye(e.dataFilterer.currentFiltersTexts),d(3),M(y(5,1,"filters.press-to-remove"))}}function ESe(t,n){if(1&t){const e=oe();h(0,"mat-icon",17),b(1,"translate"),F("click",function(){return j(e),U(v().dataFilterer.changeFilters())}),p(2,"filter_list"),u()}2&t&&C("inline",!0)("matTooltip",y(1,2,"filters.filter-action"))}function PSe(t,n){1&t&&(h(0,"mat-icon",8),p(1,"more_horiz"),u()),2&t&&(v(),C("matMenuTriggerFor",Hn(9)))}function ISe(t,n){if(1&t&&(h(0,"mat-icon",21),p(1),u()),2&t){const e=v(2);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function OSe(t,n){if(1&t&&(h(0,"mat-icon",21),p(1),u()),2&t){const e=v(2);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function ASe(t,n){if(1&t&&(h(0,"mat-icon",21),p(1),u()),2&t){const e=v(2);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function RSe(t,n){1&t&&p(0),2&t&&E(" ",v().$implicit.appFields.routeDescriptor.srcPort," ")}function FSe(t,n){1&t&&p(0),2&t&&E(" ",v().$implicit.forwardFields.routeDescriptor.srcPort," ")}function NSe(t,n){1&t&&(h(0,"span",16),p(1,"-"),u())}function LSe(t,n){1&t&&p(0),2&t&&E(" ",v().$implicit.appFields.routeDescriptor.dstPort," ")}function BSe(t,n){1&t&&p(0),2&t&&E(" ",v().$implicit.forwardFields.routeDescriptor.dstPort," ")}function VSe(t,n){1&t&&(h(0,"span",16),p(1,"-"),u())}function HSe(t,n){if(1&t){const e=oe();h(0,"app-labeled-element-text",33),F("labelEdited",function(){return j(e),U(v(3).refreshData())}),u()}if(2&t){const e=v().$implicit,i=v(2);C("id",Qt(e.dst))("elementType",i.labeledElementTypes.Node)}}function jSe(t,n){1&t&&(h(0,"span",16),p(1,"-"),u())}function USe(t,n){1&t&&p(0),2&t&&E(" ",v().$implicit.forwardFields.nextRid," ")}function zSe(t,n){1&t&&p(0),2&t&&E(" ",v().$implicit.intermediaryForwardFields.nextRid," ")}function $Se(t,n){1&t&&(h(0,"span",16),p(1,"-"),u())}function WSe(t,n){if(1&t){const e=oe();h(0,"app-labeled-element-text",33),F("labelEdited",function(){return j(e),U(v(3).refreshData())}),u()}if(2&t){const e=v().$implicit,i=v(2);C("id",Qt(e.forwardFields.nextTid))("elementType",i.labeledElementTypes.Transport)}}function GSe(t,n){if(1&t){const e=oe();h(0,"app-labeled-element-text",33),F("labelEdited",function(){return j(e),U(v(3).refreshData())}),u()}if(2&t){const e=v().$implicit,i=v(2);C("id",Qt(e.intermediaryForwardFields.nextTid))("elementType",i.labeledElementTypes.Transport)}}function qSe(t,n){1&t&&(h(0,"span",16),p(1,"-"),u())}function KSe(t,n){1&t&&(p(0),b(1,"number")),2&t&&E(" ",pe(1,1,v().$implicit.ruleSummary.keepAlive/1e9,"1.0-1"),"s ")}function YSe(t,n){1&t&&(h(0,"span",16),p(1,"-"),u())}function XSe(t,n){if(1&t){const e=oe();h(0,"tr")(1,"td",28)(2,"mat-checkbox",29),F("change",function(){const o=j(e).$implicit;return U(v(2).changeSelection(o))}),u()(),h(3,"td",30),p(4),u(),h(5,"td"),p(6),u(),h(7,"td",30),x(8,RSe,1,1)(9,FSe,1,1)(10,NSe,2,0,"span",16),u(),h(11,"td",30),x(12,LSe,1,1)(13,BSe,1,1)(14,VSe,2,0,"span",16),u(),h(15,"td"),x(16,HSe,1,3,"app-labeled-element-text",31)(17,jSe,2,0,"span",16),u(),h(18,"td",30),x(19,USe,1,1)(20,zSe,1,1)(21,$Se,2,0,"span",16),u(),h(22,"td"),x(23,WSe,1,3,"app-labeled-element-text",31)(24,GSe,1,3,"app-labeled-element-text",31)(25,qSe,2,0,"span",16),u(),h(26,"td",30),x(27,KSe,2,4)(28,YSe,2,0,"span",16),u(),h(29,"td",22)(30,"button",32),b(31,"translate"),F("click",function(){const o=j(e).$implicit;return U(v(2).details(o))}),h(32,"mat-icon",21),p(33,"visibility"),u()(),h(34,"button",32),b(35,"translate"),F("click",function(){const o=j(e).$implicit;return U(v(2).delete(o.key))}),h(36,"mat-icon",21),p(37,"close"),u()()()()}if(2&t){const e=n.$implicit,i=v(2);d(2),C("checked",i.selections.get(e.key)),d(2),M(e.key),d(2),M(i.getTypeName(e.type)),d(2),S(null!=e.appFields&&e.appFields.routeDescriptor?8:null!=e.forwardFields&&e.forwardFields.routeDescriptor?9:10),d(4),S(null!=e.appFields&&e.appFields.routeDescriptor?12:null!=e.forwardFields&&e.forwardFields.routeDescriptor?13:14),d(4),S(e.appFields||e.forwardFields?16:17),d(3),S(null!=e.forwardFields&&e.forwardFields.nextRid||0===(null==e.forwardFields?null:e.forwardFields.nextRid)?19:null!=e.intermediaryForwardFields&&e.intermediaryForwardFields.nextRid||0===(null==e.intermediaryForwardFields?null:e.intermediaryForwardFields.nextRid)?20:21),d(4),S(null!=e.forwardFields&&e.forwardFields.nextTid?23:null!=e.intermediaryForwardFields&&e.intermediaryForwardFields.nextTid?24:25),d(4),S(null!=e.ruleSummary&&e.ruleSummary.keepAlive?27:28),d(3),C("matTooltip",y(31,13,"routes.details.title")),d(2),C("inline",!0),d(2),C("matTooltip",y(35,15,"routes.delete")),d(2),C("inline",!0)}}function ZSe(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"tables.label")," ")}function QSe(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"tables.inverted-order")," ")}function JSe(t,n){if(1&t){const e=oe();h(0,"div",35)(1,"span",2),p(2),b(3,"translate"),u(),p(4),u(),h(5,"div",35)(6,"span",2),p(7),b(8,"translate"),u(),p(9),u(),h(10,"div",35)(11,"span",2),p(12),b(13,"translate"),u(),p(14,": "),h(15,"app-labeled-element-text",33),F("labelEdited",function(){return j(e),U(v(3).refreshData())}),u()()}if(2&t){const e=v().$implicit,i=v(2);d(2),M(y(3,8,"routes.local-port")),d(2),E(": ",null==((null==e.appFields?null:e.appFields.routeDescriptor)||(null==e.forwardFields?null:e.forwardFields.routeDescriptor))?null:((null==e.appFields?null:e.appFields.routeDescriptor)||(null==e.forwardFields?null:e.forwardFields.routeDescriptor)).srcPort," "),d(3),M(y(8,10,"routes.remote-port")),d(2),E(": ",null==((null==e.appFields?null:e.appFields.routeDescriptor)||(null==e.forwardFields?null:e.forwardFields.routeDescriptor))?null:((null==e.appFields?null:e.appFields.routeDescriptor)||(null==e.forwardFields?null:e.forwardFields.routeDescriptor)).dstPort," "),d(3),M(y(13,12,"routes.remote-pk")),d(3),C("id",Qt(e.dst))("elementType",i.labeledElementTypes.Node)}}function eke(t,n){if(1&t){const e=oe();h(0,"div",35)(1,"span",2),p(2),b(3,"translate"),u(),p(4),u(),h(5,"div",35)(6,"span",2),p(7),b(8,"translate"),u(),p(9,": "),h(10,"app-labeled-element-text",33),F("labelEdited",function(){return j(e),U(v(3).refreshData())}),u()()}if(2&t){const e=v().$implicit,i=v(2);d(2),M(y(3,6,"routes.next-rid")),d(2),E(": ",(null==e.forwardFields?null:e.forwardFields.nextRid)??(null==e.intermediaryForwardFields?null:e.intermediaryForwardFields.nextRid)," "),d(3),M(y(8,8,"routes.next-tp")),d(3),C("id",Qt((null==e.forwardFields?null:e.forwardFields.nextTid)||(null==e.intermediaryForwardFields?null:e.intermediaryForwardFields.nextTid)))("elementType",i.labeledElementTypes.Transport)}}function tke(t,n){if(1&t&&(h(0,"div",35)(1,"span",2),p(2),b(3,"translate"),u(),p(4),b(5,"number"),u()),2&t){const e=v().$implicit;d(2),M(y(3,2,"routes.keep-alive")),d(2),E(": ",pe(5,4,e.ruleSummary.keepAlive/1e9,"1.0-1"),"s ")}}function nke(t,n){if(1&t){const e=oe();h(0,"tr")(1,"td")(2,"div",25)(3,"div",34)(4,"mat-checkbox",29),F("change",function(){const o=j(e).$implicit;return U(v(2).changeSelection(o))}),u()(),h(5,"div",26)(6,"div",35)(7,"span",2),p(8),b(9,"translate"),u(),p(10),u(),h(11,"div",35)(12,"span",2),p(13),b(14,"translate"),u(),p(15),u(),x(16,JSe,16,14),x(17,eke,11,10),x(18,tke,6,7,"div",35),u(),B(19,"div",36),h(20,"div",27)(21,"button",37),b(22,"translate"),F("click",function(o){const r=j(e).$implicit,s=v(2);return o.stopPropagation(),U(s.showOptionsDialog(r))}),h(23,"mat-icon"),p(24),u()()()()()()}if(2&t){const e=n.$implicit,i=v(2);d(4),C("checked",i.selections.get(e.key)),d(4),M(y(9,10,"routes.key")),d(2),E(": ",e.key," "),d(3),M(y(14,12,"routes.type")),d(2),E(": ",i.getTypeName(e.type)," "),d(),S(null!=e.appFields&&e.appFields.routeDescriptor||null!=e.forwardFields&&e.forwardFields.routeDescriptor?16:-1),d(),S(null!=e.forwardFields&&e.forwardFields.nextTid||null!=e.intermediaryForwardFields&&e.intermediaryForwardFields.nextTid?17:-1),d(),S(null!=e.ruleSummary&&e.ruleSummary.keepAlive?18:-1),d(3),C("matTooltip",y(22,14,"common.options")),d(3),M("add")}}function ike(t,n){if(1&t){const e=oe();h(0,"div",12)(1,"div",18)(2,"table",19)(3,"tr"),B(4,"th"),h(5,"th",20),F("click",function(){j(e);const o=v();return U(o.dataSorter.changeSortingOrder(o.keySortData))}),p(6),b(7,"translate"),x(8,ISe,2,2,"mat-icon",21),u(),h(9,"th",20),F("click",function(){j(e);const o=v();return U(o.dataSorter.changeSortingOrder(o.typeSortData))}),p(10),b(11,"translate"),x(12,OSe,2,2,"mat-icon",21),u(),h(13,"th"),p(14),b(15,"translate"),u(),h(16,"th"),p(17),b(18,"translate"),u(),h(19,"th",20),F("click",function(){j(e);const o=v();return U(o.dataSorter.changeSortingOrder(o.destinationSortData))}),p(20),b(21,"translate"),x(22,ASe,2,2,"mat-icon",21),u(),h(23,"th"),p(24),b(25,"translate"),u(),h(26,"th"),p(27),b(28,"translate"),u(),h(29,"th"),p(30),b(31,"translate"),u(),B(32,"th",22),u(),ve(33,XSe,38,17,"tr",null,Fe),u(),h(35,"table",23)(36,"tr",24),F("click",function(){return j(e),U(v().dataSorter.openSortingOrderModal())}),h(37,"td")(38,"div",25)(39,"div",26)(40,"div",2),p(41),b(42,"translate"),u(),h(43,"div"),p(44),b(45,"translate"),x(46,ZSe,2,3),x(47,QSe,2,3),u()(),h(48,"div",27)(49,"mat-icon",21),p(50,"keyboard_arrow_down"),u()()()()(),ve(51,nke,25,16,"tr",null,Fe),u()()()}if(2&t){const e=v();d(),C("ngClass",_t(39,CSe,e.showShortList_,!e.showShortList_)),d(),C("ngClass",se(42,wSe,e.showShortList_)),d(4),E(" ",y(7,19,"routes.key")," "),d(2),S(e.dataSorter.currentSortingColumn===e.keySortData?8:-1),d(2),E(" ",y(11,21,"routes.type")," "),d(2),S(e.dataSorter.currentSortingColumn===e.typeSortData?12:-1),d(2),M(y(15,23,"routes.local-port")),d(3),M(y(18,25,"routes.remote-port")),d(3),E(" ",y(21,27,"routes.remote-pk")," "),d(2),S(e.dataSorter.currentSortingColumn===e.destinationSortData?22:-1),d(2),M(y(25,29,"routes.next-rid")),d(3),M(y(28,31,"routes.next-tp")),d(3),M(y(31,33,"routes.keep-alive")),d(3),ye(e.dataSource),d(2),C("ngClass",se(44,xSe,e.showShortList_)),d(6),M(y(42,35,"tables.sorting-title")),d(3),E("",y(45,37,e.dataSorter.currentSortingColumn.label)," "),d(2),S(e.dataSorter.currentlySortingByLabel?46:-1),d(),S(e.dataSorter.sortingInReverseOrder?47:-1),d(2),C("inline",!0),d(2),ye(e.dataSource)}}function oke(t,n){1&t&&(h(0,"span",40),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"routes.empty")))}function rke(t,n){1&t&&(h(0,"span",40),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"routes.empty-with-filter")))}function ske(t,n){if(1&t&&(h(0,"div",12)(1,"div",38)(2,"mat-icon",39),p(3,"warning"),u(),x(4,oke,3,3,"span",40),x(5,rke,3,3,"span",40),u()()),2&t){const e=v();d(2),C("inline",!0),d(2),S(0===e.allRoutes.length?4:-1),d(),S(0!==e.allRoutes.length?5:-1)}}let ake=(()=>{class t{set showShortList(e){this.showShortList_=e,this.dataSorter.setData(this.filteredRoutes)}set routes(e){if(!e)return;const i=performance.now();console.log("[HV-DIAG] route-list setter called, routes:",e.length);const o=e.map(r=>r.key).sort().join(",");if(o===this.lastRouteKeys&&e.length===this.lastRouteCount)return this.cdr.markForCheck(),void console.log("[HV-DIAG] route-list skip (unchanged) took",(performance.now()-i).toFixed(1),"ms");console.log("[HV-DIAG] route-list FULL reprocessing",e.length,"routes"),this.lastRouteCount=e.length,this.lastRouteKeys=o,this.allRoutes=e,this.allRoutes.forEach(r=>{if(r.type=r.ruleSummary.ruleType||0===r.ruleSummary.ruleType?r.ruleSummary.ruleType:"",r.appFields||r.forwardFields){const s=r.appFields?r.appFields.routeDescriptor:r.forwardFields.routeDescriptor;r.src=s.srcPk,r.src_label=kc.getCompleteLabel(this.storageService,this.translateService,r.src),r.dst=s.dstPk,r.dst_label=kc.getCompleteLabel(this.storageService,this.translateService,r.dst)}else r.intermediaryForwardFields?(r.src="",r.src_label="",r.dst=r.intermediaryForwardFields.nextTid,r.dst_label=kc.getCompleteLabel(this.storageService,this.translateService,r.dst)):(r.src="",r.src_label="",r.dst="",r.dst_label="")}),this.dataFilterer.setData(this.allRoutes)}constructor(e,i,o,r,s,a,l,c){this.routeService=e,this.dialog=i,this.route=o,this.router=r,this.snackbarService=s,this.translateService=a,this.storageService=l,this.cdr=c,this.listId="rl",this.keySortData=new Dt(["key"],"routes.key",st.Number),this.typeSortData=new Dt(["type"],"routes.type",st.Number),this.sourceSortData=new Dt(["src"],"routes.source",st.Text,["src_label"]),this.destinationSortData=new Dt(["dst"],"routes.destination",st.Text,["dst_label"]),this.labeledElementTypes=ro,this.selections=new Map,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.lastRouteCount=-1,this.lastRouteKeys="",this.filterProperties=[{filterName:"routes.filter-dialog.key",keyNameInElementsArray:"key",type:Sn.TextInput,maxlength:8},{filterName:"routes.filter-dialog.source",keyNameInElementsArray:"src",secondaryKeyNameInElementsArray:"src_label",type:Sn.TextInput,maxlength:66},{filterName:"routes.filter-dialog.destination",keyNameInElementsArray:"dst",secondaryKeyNameInElementsArray:"dst_label",type:Sn.TextInput,maxlength:66}],this.ruleTypes=new Map([[0,"App"],[1,"Forward"],[2,"Int. forward"]]),this.operationSubscriptionsGroup=[],this.dataSorter=new gu(this.dialog,this.translateService,this.storageService,[this.keySortData,this.typeSortData,this.sourceSortData,this.destinationSortData],0,this.listId),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()});const m={filterName:"routes.filter-dialog.type",keyNameInElementsArray:"type",type:Sn.Select,printableLabelsForValues:[{value:"",label:"routes.filter-dialog.any-type-option"}]};this.ruleTypes.forEach((g,_)=>{m.printableLabelsForValues.push({value:_+"",label:g})}),this.filterProperties=[m].concat(this.filterProperties),this.dataFilterer=new _u(this.dialog,this.route,this.router,this.filterProperties,this.listId),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(g=>{this.filteredRoutes=g,this.dataSorter.setData(this.filteredRoutes)}),this.navigationsSubscription=this.route.paramMap.subscribe(g=>{if(g.has("page")){let _=Number.parseInt(g.get("page"),10);(isNaN(_)||_<1)&&(_=1),this.currentPageInUrl=_,this.recalculateElementsToShow()}})}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.operationSubscriptionsGroup.forEach(e=>e.unsubscribe()),this.dataSortedSubscription.unsubscribe(),this.dataFiltererSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFilterer.dispose()}refreshData(){ke.refreshCurrentDisplayedData()}getTypeName(e){return this.ruleTypes.has(e)?this.ruleTypes.get(e):"Unknown"}changeSelection(e){this.selections.get(e.key)?this.selections.set(e.key,!1):this.selections.set(e.key,!0)}hasSelectedElements(){if(!this.selections)return!1;let e=!1;return this.selections.forEach(i=>{i&&(e=!0)}),e}changeAllSelections(e){this.selections.forEach((i,o)=>{this.selections.set(o,e)})}deleteSelected(){const e=[];this.selections.forEach((i,o)=>{i&&e.push(o)}),0!==e.length&&this.deleteRecursively(e,null)}showOptionsDialog(e){ao.openDialog(this.dialog,[{icon:"visibility",label:"routes.details.title"},{icon:"close",label:"routes.delete"}],"common.options").afterClosed().subscribe(o=>{1===o?this.details(e):2===o&&this.delete(e.key)})}details(e){fSe.openDialog(this.dialog,e)}delete(e){this.operationSubscriptionsGroup.push(this.startDeleting(e).subscribe(()=>{ke.refreshCurrentDisplayedData(),this.snackbarService.showDone("routes.deleted")},i=>{i=Qe(i),this.snackbarService.showError(i)}))}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredRoutes){this.numberOfPages=1,this.currentPage=1,this.routesToShow=this.filteredRoutes.slice();const e=new Map;this.routesToShow.forEach(o=>{e.set(o.key,!0),this.selections.has(o.key)||this.selections.set(o.key,!1)});const i=[];this.selections.forEach((o,r)=>{e.has(r)||i.push(r)}),i.forEach(o=>{this.selections.delete(o)})}else this.routesToShow=null,this.selections=new Map;this.dataSource=this.routesToShow,this.cdr.markForCheck()}startDeleting(e){return this.routeService.delete(ke.getCurrentNodeKey(),e.toString())}deleteRecursively(e,i){this.operationSubscriptionsGroup.push(this.startDeleting(e[e.length-1]).subscribe(()=>{e.pop(),0===e.length?(i&&i.close(),ke.refreshCurrentDisplayedData(),this.snackbarService.showDone("routes.deleted")):this.deleteRecursively(e,i)},o=>{ke.refreshCurrentDisplayedData(),o=Qe(o),i?i.componentInstance.showDone("confirmation.error-header-text",o.translatableErrorMsg):this.snackbarService.showError(o)}))}static{this.\u0275fac=function(i){return new(i||t)(O(Ek),O(Ot),O(Ai),O(vt),O(ct),O(Go),O(ti),O(Jt))}}static{this.\u0275cmp=re({type:t,selectors:[["app-route-list"]],inputs:{nodePK:"nodePK",showShortList:"showShortList",routes:"routes"},standalone:!1,decls:21,vars:18,consts:[["selectionMenu","matMenu"],[1,"generic-title-container","mt-4.5","d-flex"],[1,"title"],[1,"uppercase"],[1,"filter-label","subtle-transparent-button","cursor-pointer"],[1,"options"],[1,"options-container"],[1,"small-icon",3,"inline","matTooltip"],[3,"matMenuTriggerFor"],[3,"overlapTrigger"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"click","disabled"],[1,"rounded-elevated-box","mt-3"],[1,"help","d-none","d-md-inline",3,"inline","matTooltip"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],[1,"item"],[1,"transparent-50"],[1,"small-icon",3,"click","inline","matTooltip"],[1,"box-internal-container","overflow",3,"ngClass"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table",3,"ngClass"],[1,"sortable-column",3,"click"],[3,"inline"],[1,"actions"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none",3,"ngClass"],[1,"selectable",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],[1,"selection-col"],[3,"change","checked"],[1,"mono"],[3,"id","elementType"],["mat-button","",1,"action-button","transparent-button",3,"click","matTooltip"],[3,"labelEdited","id","elementType"],[1,"check-part"],[1,"list-row","long-content"],[1,"margin-part"],["mat-icon-button","",1,"transparent-button",3,"click","matTooltip"],[1,"box-internal-container"],[1,"alert-icon",3,"inline"],[1,"font-sm"]],template:function(i,o){1&i&&(h(0,"div",1)(1,"div",2),x(2,SSe,6,7,"span",3),x(3,TSe,6,3,"div",4),u(),h(4,"div",5)(5,"div",6),x(6,ESe,3,4,"mat-icon",7),x(7,PSe,2,1,"mat-icon",8),h(8,"mat-menu",9,0)(10,"div",10),F("click",function(){return o.changeAllSelections(!0)}),p(11),b(12,"translate"),u(),h(13,"div",10),F("click",function(){return o.changeAllSelections(!1)}),p(14),b(15,"translate"),u(),h(16,"div",11),F("click",function(){return o.deleteSelected()}),p(17),b(18,"translate"),u()()()()(),x(19,ike,53,46,"div",12),x(20,ske,6,3,"div",12)),2&i&&(d(2),S(o.showShortList_?2:-1),d(),S(o.dataFilterer.currentFiltersTexts&&o.dataFilterer.currentFiltersTexts.length>0?3:-1),d(3),S(o.allRoutes&&o.allRoutes.length>0?6:-1),d(),S(o.dataSource&&o.dataSource.length>0?7:-1),d(),C("overlapTrigger",!1),d(3),E(" ",y(12,12,"selection.select-all")," "),d(3),E(" ",y(15,14,"selection.unselect-all")," "),d(2),C("disabled",Qt(!o.hasSelectedElements())),d(),E(" ",y(18,16,"selection.delete-all")," "),d(2),S(o.dataSource&&o.dataSource.length>0?19:-1),d(),S(o.dataSource&&0!==o.dataSource.length?-1:20))},dependencies:[$t,Pn,Wo,We,Kt,Jr,As,vu,kr,kc,Vl,xe],styles:[".actions[_ngcontent-%COMP%]{text-align:right;width:90px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}"],changeDetection:0})}}return t})();function lke(t,n){if(1&t){const e=oe();h(0,"form",12),F("ngSubmit",function(){return j(e),U(v(2).submitRouterConfig())}),h(1,"mat-form-field",13)(2,"mat-label"),p(3),b(4,"translate"),u(),B(5,"input",14),u(),h(6,"div",15)(7,"button",16),p(8),b(9,"translate"),u(),h(10,"button",17),F("click",function(){return j(e),U(v(2).toggleRouterForm())}),p(11),b(12,"translate"),u()()()}if(2&t){const e=v(2);C("formGroup",e.routerForm),d(3),M(y(4,5,"node.details.router-info.min-hops")),d(4),C("disabled",!e.routerForm.valid),d(),E(" ",y(9,7,"common.save")," "),d(3),E(" ",y(12,9,"common.cancel")," ")}}function cke(t,n){if(1&t){const e=oe();h(0,"div",0)(1,"div",6)(2,"span",4),p(3),b(4,"translate"),u(),h(5,"span",7)(6,"span",8),p(7),b(8,"translate"),u(),p(9),h(10,"button",9),F("click",function(){return j(e),U(v().toggleRouterForm())}),h(11,"mat-icon",10),p(12),u()()(),x(13,lke,13,11,"form",11),u()()}if(2&t){const e=v();d(3),M(y(4,6,"node.details.router-info.title")),d(4),E("",y(8,8,"node.details.router-info.min-hops")," "),d(2),E(" ",e.node.minHops," "),d(2),C("inline",!0),d(),M(e.showRouterForm?"close":"edit"),d(),S(e.showRouterForm?13:-1)}}let dke=(()=>{class t extends pn{constructor(e,i,o){super(),this.formBuilder=e,this.routeService=i,this.snackbarService=o,this.showRouterForm=!1,this.routerForm=this.formBuilder.group({min:[1,Ne.compose([Ne.required,Ne.maxLength(3),Ne.pattern("^[0-9]+$")])]})}ngOnInit(){return this.dataSubscription=ke.currentNode.subscribe(e=>{this.nodePK=e.localPk,this.node=e,this.routes=e.routes}),this.trafficSubscription=ke.currentTrafficData.subscribe(e=>{this.trafficData=e}),super.ngOnInit()}ngOnDestroy(){this.dataSubscription.unsubscribe(),this.trafficSubscription?.unsubscribe(),this.saveRouterSubscription?.unsubscribe()}toggleRouterForm(){this.showRouterForm=!this.showRouterForm,this.showRouterForm&&this.node&&this.routerForm.get("min").setValue(this.node.minHops)}submitRouterConfig(){if(!this.routerForm.valid||!this.node)return;const e=parseInt(this.routerForm.get("min").value,10);this.saveRouterSubscription=this.routeService.setMinHops(this.node.localPk,e).subscribe({next:()=>{this.snackbarService.showDone("router-config.done"),this.showRouterForm=!1,ke.refreshCurrentDisplayedData()},error:i=>{i=Qe(i),this.snackbarService.showError(i)}})}static{this.\u0275fac=function(i){return new(i||t)(O(di),O(Ek),O(ct))}}static{this.\u0275cmp=re({type:t,selectors:[["app-routing"]],standalone:!1,features:[be],decls:8,vars:8,consts:[[1,"rounded-elevated-box","mt-3"],[3,"routes","showShortList","nodePK"],[1,"rounded-elevated-box","mt-3","traffic-box"],[1,"box-internal-container"],[1,"section-title"],[1,"d-flex","flex-column","justify-content-end","mt-3",3,"trafficData"],[1,"box-internal-container","overflow","font-smaller"],[1,"info-line"],[1,"title"],["mat-icon-button","",1,"inline-edit-btn",3,"click"],[3,"inline"],[1,"inline-form",3,"formGroup"],[1,"inline-form",3,"ngSubmit","formGroup"],["appearance","outline",1,"inline-form-field-sm"],["matInput","","type","number","formControlName","min","min","0","max","999"],[1,"inline-form-actions"],["mat-raised-button","","color","primary","type","submit",3,"disabled"],["mat-button","","type","button",3,"click"]],template:function(i,o){1&i&&(x(0,cke,14,10,"div",0),B(1,"app-route-list",1),h(2,"div",2)(3,"div",3)(4,"span",4),p(5),b(6,"translate"),u(),B(7,"app-charts",5),u()()),2&i&&(S(o.node?0:-1),d(),C("routes",o.routes)("showShortList",!0)("nodePK",o.nodePK),d(4),M(y(6,6,"node.details.node-traffic-data")),d(2),C("trafficData",o.trafficData))},dependencies:[xn,Gt,rc,qt,wn,tp,sv,on,mn,sn,Os,In,Pn,Wo,We,sSe,ake,xe],encapsulation:2})}}return t})();function uke(t,n){if(1&t&&(h(0,"mat-option",5),p(1),b(2,"translate"),u()),2&t){const e=n.$implicit;C("value",e.days),d(),M(y(2,2,e.text))}}let hke=(()=>{class t{static openDialog(e,i){const o=new nn;return o.data=i,o.autoFocus=!1,o.width=rt.smallModalWidth,e.open(t,o)}constructor(e,i,o){this.data=e,this.dialogRef=i,this.formBuilder=o}ngOnInit(){this.filters=[{text:"apps.log.filter.7-days",days:7},{text:"apps.log.filter.1-month",days:30},{text:"apps.log.filter.3-months",days:90},{text:"apps.log.filter.6-months",days:180},{text:"apps.log.filter.1-year",days:365},{text:"apps.log.filter.all",days:-1}],this.form=this.formBuilder.group({filter:[this.data.days]}),this.formSubscription=this.form.get("filter").valueChanges.subscribe(e=>{this.dialogRef.close(this.filters.find(i=>i.days===e))})}ngOnDestroy(){this.formSubscription.unsubscribe()}static{this.\u0275fac=function(i){return new(i||t)(O(En),O(Bt),O(di))}}static{this.\u0275cmp=re({type:t,selectors:[["app-log-filter"]],standalone:!1,decls:11,vars:8,consts:[[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","filter"],[3,"value"]],template:function(i,o){1&i&&(h(0,"app-dialog",0),b(1,"translate"),h(2,"form",1)(3,"mat-form-field")(4,"div",2)(5,"label",3),p(6),b(7,"translate"),u(),h(8,"mat-select",4),ve(9,uke,3,4,"mat-option",5,Fe),u()()()()()),2&i&&(C("headline",y(1,4,"apps.log.filter.title"))("dialog",o.dialogRef),d(2),C("formGroup",o.form),d(4),M(y(7,6,"apps.log.filter.filter")),d(3),ye(o.filters))},dependencies:[xn,qt,wn,on,mn,sn,Pa,Qr,gn,xe],styles:["mat-form-field[_ngcontent-%COMP%]{margin-bottom:-24px}"]})}}return t})();const fke=["content"],pke=t=>({totalLogs:t});function mke(t,n){if(1&t&&(h(0,"app-button",7)(1,"div",11),p(2),b(3,"translate"),u()()),2&t){const e=v();d(2),E(" ",pe(3,1,"apps.log.view-all",se(4,pke,e.totalLogs))," ")}}function gke(t,n){if(1&t&&(h(0,"div",8)(1,"span",12),p(2),u(),p(3),u()),2&t){const e=n.$implicit;d(2),E(" ",e.time," "),d(),E(" ",e.msg," ")}}function _ke(t,n){1&t&&(h(0,"div",9),p(1),b(2,"translate"),u()),2&t&&(d(),E(" ",y(2,1,"apps.log.empty")," "))}function bke(t,n){1&t&&B(0,"app-loading-indicator",10),2&t&&C("showWhite",!1)}let vke=(()=>{class t{static openDialog(e,i){const o=new nn;return o.data=i,o.autoFocus=!1,o.width=rt.largeModalWidth,e.open(t,o)}constructor(e,i,o,r,s,a){this.data=e,this.dialogRef=i,this.appsService=o,this.dialog=r,this.snackbarService=s,this.apiService=a,this.logMessages=[],this.hasMoreLogMessages=!1,this.totalLogs=0,this.loading=!1,this.currentFilter={text:"apps.log.filter.7-days",days:7},this.shouldShowError=!0}ngOnInit(){this.loadData(0)}ngOnDestroy(){this.removeSubscription()}filter(){hke.openDialog(this.dialog,this.currentFilter).afterClosed().subscribe(e=>{e&&(this.currentFilter=e,this.logMessages=[],this.loadData(0))})}getLogsUrl(){return"/"+this.apiService.apiPrefix+this.appsService.getLogMessagesUrl(ke.getCurrentNodeKey(),this.data.name)}loadData(e){this.removeSubscription(),this.loading=!0,this.subscription=ae(1).pipe(li(e),It(()=>this.appsService.getLogMessages(ke.getCurrentNodeKey(),this.data.name,this.currentFilter.days))).subscribe(i=>this.onLogsReceived(i),i=>this.onLogsError(i))}removeSubscription(){this.subscription&&this.subscription.unsubscribe()}onLogsReceived(e=[]){this.loading=!1,this.shouldShowError=!0,this.snackbarService.closeCurrentIfTemporaryError();let i=0;this.hasMoreLogMessages=!1,this.totalLogs=e.length,e.forEach(o=>{if(i<5e3){const r=o.startsWith("[")?0:-1,s=-1!==r?o.indexOf("]"):-1;this.logMessages.push(-1!==r&&-1!==s?{time:o.substr(r,s+1),msg:o.substr(s+1)}:{time:"",msg:o})}else this.hasMoreLogMessages=!0;i+=1}),setTimeout(()=>{this.content.nativeElement.scrollTop=this.content.nativeElement.scrollHeight})}onLogsError(e){e=Qe(e),this.shouldShowError&&(this.snackbarService.showError("common.loading-error",null,!0,e),this.shouldShowError=!1),this.loadData(rt.connectionRetryDelay)}static{this.\u0275fac=function(i){return new(i||t)(O(En),O(Bt),O(Rs),O(Ot),O(ct),O(zi))}}static{this.\u0275cmp=re({type:t,selectors:[["app-log"]],viewQuery:function(i,o){if(1&i&&ot(fke,5),2&i){let r;he(r=fe())&&(o.content=r.first)}},standalone:!1,decls:20,vars:16,consts:[["content",""],[3,"headline","includeVerticalMargins","includeScrollableArea","dialog"],[1,"top-dialog-button",3,"click"],[1,"top-dialog-button-content"],[1,"actual-value"],[1,"top-dialog-button-margin"],["target","_blank",3,"href"],["color","primary",1,"full-logs-button"],[1,"app-log-message"],[1,"app-log-empty","mt-3"],[3,"showWhite"],[1,"text-container"],[1,"transparent"]],template:function(i,o){1&i&&(h(0,"app-dialog",1),b(1,"translate"),h(2,"div",2),F("click",function(){return o.filter()}),h(3,"div",3)(4,"div")(5,"span"),p(6),b(7,"translate"),u(),h(8,"span",4),p(9),b(10,"translate"),u()()(),B(11,"div",5),u(),h(12,"mat-dialog-content",null,0)(14,"a",6),x(15,mke,4,6,"app-button",7),u(),ve(16,gke,4,2,"div",8,Fe),x(18,_ke,3,3,"div",9),x(19,bke,1,1,"app-loading-indicator",10),u()()),2&i&&(C("headline",y(1,10,"apps.log.title"))("includeVerticalMargins",!1)("includeScrollableArea",!1)("dialog",o.dialogRef),d(6),E("",y(7,12,"apps.log.filter-button")," "),d(3),M(y(10,14,o.currentFilter.text)),d(5),C("href",o.getLogsUrl(),mo),d(),S(o.hasMoreLogMessages?15:-1),d(),ye(o.logMessages),d(2),S(o.loading||o.logMessages&&0!==o.logMessages.length?-1:18),d(),S(o.loading?19:-1))},dependencies:[Jd,ui,gn,Yr,xe],styles:[".mat-mdc-dialog-content[_ngcontent-%COMP%]{font-size:.875rem}.app-log-message[_ngcontent-%COMP%]{margin-top:15px;word-break:break-word}.app-log-message[_ngcontent-%COMP%] .transparent[_ngcontent-%COMP%]{color:#999}.app-log-message[_ngcontent-%COMP%]:first-of-type{margin-top:0}.app-log-message[_ngcontent-%COMP%]:last-of-type{margin-bottom:24px}.top-dialog-button[_ngcontent-%COMP%]{color:#777!important}.top-dialog-button[_ngcontent-%COMP%] .top-dialog-button-content[_ngcontent-%COMP%]{text-align:center}.top-dialog-button[_ngcontent-%COMP%] .top-dialog-button-content[_ngcontent-%COMP%] .actual-value[_ngcontent-%COMP%]{color:#202226}.full-logs-button[_ngcontent-%COMP%] button{width:100%!important;display:block;text-align:center;margin-bottom:15px}.full-logs-button[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]{width:100%}"]})}}return t})();const yke=["button"],Cke=["firstInput"],vD=t=>({"element-disabled":t});function wke(t,n){if(1&t&&(h(0,"mat-form-field",4)(1,"div",5)(2,"label",10),p(3),b(4,"translate"),u(),B(5,"input",11),u()()),2&t){const e=v();C("ngClass",se(4,vD,e.disableDismiss)),d(3),M(y(4,2,"apps.vpn-socks-server-settings.netifc"))}}function xke(t,n){if(1&t){const e=oe();h(0,"div",8)(1,"mat-checkbox",12),F("change",function(o){return j(e),U(v().setSecureMode(o))}),p(2),b(3,"translate"),h(4,"mat-icon",13),b(5,"translate"),p(6,"help"),u()()()}if(2&t){const e=v();d(),C("checked",e.secureMode)("ngClass",se(9,vD,e.disableDismiss)),d(),E(" ",y(3,5,"apps.vpn-socks-server-settings.secure-mode-check")," "),d(2),C("inline",!0)("matTooltip",y(5,7,"apps.vpn-socks-server-settings.secure-mode-info"))}}let Ske=(()=>{class t{static openDialog(e,i){const o=new nn;return o.data=i,o.autoFocus=!1,o.width=rt.mediumModalWidth,e.open(t,o)}constructor(e,i,o,r,s,a){this.data=e,this.appsService=i,this.formBuilder=o,this.dialogRef=r,this.snackbarService=s,this.dialog=a,this.configuringVpn=!1,this.secureMode=!1,-1!==e.name.toLocaleLowerCase().indexOf("vpn")&&(this.configuringVpn=!0)}ngOnInit(){if(this.form=this.formBuilder.group({whitelist:["",this.validateWhitelist.bind(this)],netifc:[""]}),this.data.args&&this.data.args.length>0)for(let e=0;ethis.firstInput.nativeElement.focus())}ngOnDestroy(){this.formSubscription&&this.formSubscription.unsubscribe(),this.operationSubscription&&this.operationSubscription.unsubscribe()}get disableDismiss(){return!!this.button&&this.button.isLoading}setSecureMode(e){this.button.disabled||(this.secureMode=!!e.checked)}saveChanges(){if(!this.form.valid||this.button.disabled)return;const i=this.normalizedWhitelist()?"apps.vpn-socks-server-settings.set-whitelist-confirmation":"apps.vpn-socks-server-settings.clear-whitelist-confirmation",o=Rt.createConfirmationDialog(this.dialog,i);o.componentInstance.operationAccepted.subscribe(()=>{o.close(),this.continueSavingChanges()})}continueSavingChanges(){this.button.showLoading();const e={whitelist:this.normalizedWhitelist()};this.configuringVpn&&(e.secure=this.secureMode,e.netifc=this.form.get("netifc").value),this.operationSubscription=this.appsService.changeAppSettings(ke.getCurrentNodeKey(),this.data.name,e).subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)})}normalizedWhitelist(){const e=(this.form.get("whitelist").value||"").trim();return""===e?"":e.split(/[\s,]+/).filter(i=>i.length>0).join(",")}onSuccess(){ke.refreshCurrentDisplayedData(),this.snackbarService.showDone("apps.vpn-socks-server-settings.changes-made"),this.dialogRef.close()}onError(e){this.button.showError(),e=Qe(e),this.snackbarService.showError(e)}validateWhitelist(e){const i=(e&&(e.value||"")).trim();if(""===i)return null;for(const o of i.split(/[\s,]+/))if(""!==o&&(66!==o.length||!/^[0-9a-fA-F]+$/.test(o)))return{invalid:!0};return null}static{this.\u0275fac=function(i){return new(i||t)(O(En),O(Rs),O(di),O(Bt),O(ct),O(Ot))}}static{this.\u0275cmp=re({type:t,selectors:[["app-skysocks-settings"]],viewQuery:function(i,o){if(1&i&&ot(yke,5)(Cke,5),2&i){let r;he(r=fe())&&(o.button=r.first),he(r=fe())&&(o.firstInput=r.first)}},standalone:!1,decls:23,vars:24,consts:[["firstInput",""],["button",""],[3,"headline","dialog","disableDismiss"],[3,"formGroup"],[3,"ngClass"],[1,"field-container"],["for","whitelist",1,"field-label"],["id","whitelist","formControlName","whitelist","rows","3","matInput","","placeholder","02abc..., 03def..."],[1,"main-theme","settings-option"],["color","primary",1,"float-right",3,"action","disabled"],["for","remoteKey",1,"field-label"],["id","netifc","type","text","formControlName","netifc","matInput",""],["color","primary",3,"change","checked","ngClass"],[1,"help-icon",3,"inline","matTooltip"]],template:function(i,o){1&i&&(h(0,"app-dialog",2),b(1,"translate"),h(2,"form",3)(3,"mat-form-field",4)(4,"div",5)(5,"label",6),p(6),b(7,"translate"),u(),B(8,"textarea",7,0),u(),h(10,"mat-hint"),p(11),b(12,"translate"),u(),h(13,"mat-error")(14,"span"),p(15),b(16,"translate"),u()()(),x(17,wke,6,6,"mat-form-field",4),x(18,xke,7,11,"div",8),u(),h(19,"app-button",9,1),F("action",function(){return o.saveChanges()}),p(21),b(22,"translate"),u()()),2&i&&(C("headline",y(1,12,"apps.vpn-socks-server-settings."+(o.configuringVpn?"vpn-title":"socks-title")))("dialog",o.dialogRef)("disableDismiss",o.disableDismiss),d(2),C("formGroup",o.form),d(),C("ngClass",se(22,vD,o.disableDismiss)),d(3),M(y(7,14,"apps.vpn-socks-server-settings.whitelist")),d(5),M(y(12,16,"apps.vpn-socks-server-settings.whitelist-help")),d(4),M(y(16,18,"apps.vpn-socks-server-settings.whitelist-invalid-pk")),d(2),S(o.configuringVpn?17:-1),d(),S(o.configuringVpn?18:-1),d(),C("disabled",!o.form.valid),d(2),E(" ",y(22,20,"apps.vpn-socks-server-settings.save")," "))},dependencies:[$t,xn,Gt,qt,wn,on,mn,sn,uk,Ma,In,We,Kt,kr,ui,gn,xe],styles:["mat-checkbox[_ngcontent-%COMP%]{margin-bottom:15px}"]})}}return t})();const kke=["firstInput"];let Dke=(()=>{class t{static openDialog(e,i){const o=new nn;return o.data=i||"",o.autoFocus=!1,o.width=rt.smallModalWidth,e.open(t,o)}constructor(e,i,o){this.dialogRef=e,this.data=i,this.formBuilder=o}ngOnInit(){this.form=this.formBuilder.group({note:[this.data]}),setTimeout(()=>this.firstInput.nativeElement.focus())}finish(){const e=this.form.get("note").value.trim();this.dialogRef.close("-"+e)}static{this.\u0275fac=function(i){return new(i||t)(O(Bt),O(En),O(di))}}static{this.\u0275cmp=re({type:t,selectors:[["app-edit-skysocks-client-note"]],viewQuery:function(i,o){if(1&i&&ot(kke,5),2&i){let r;he(r=fe())&&(o.firstInput=r.first)}},standalone:!1,decls:13,vars:11,consts:[["firstInput",""],[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","note","maxlength","100","matInput",""],["color","primary","type","mat-raised-button",1,"float-right",3,"action"]],template:function(i,o){1&i&&(h(0,"app-dialog",1),b(1,"translate"),h(2,"form",2)(3,"mat-form-field")(4,"div",3)(5,"label",4),p(6),b(7,"translate"),u(),B(8,"input",5,0),u()()(),h(10,"app-button",6),F("action",function(){return o.finish()}),p(11),b(12,"translate"),u()()),2&i&&(C("headline",y(1,5,"apps.vpn-socks-client-settings.change-note-dialog.title"))("dialog",o.dialogRef),d(2),C("formGroup",o.form),d(4),M(y(7,7,"apps.vpn-socks-client-settings.change-note-dialog.note")),d(5),M(y(12,9,"common.save")))},dependencies:[xn,Gt,qt,wn,wi,on,mn,sn,In,ui,gn,xe],encapsulation:2})}}return t})();function Mke(t,n){if(1&t&&p(0),2&t){const e=v().$implicit;E(" ",v(2).completeCountriesList[e.toUpperCase()]," ")}}function Tke(t,n){1&t&&p(0),2&t&&E(" ",v().$implicit.toUpperCase()," ")}function Eke(t,n){if(1&t&&(h(0,"mat-option",9)(1,"div",10),B(2,"div"),u(),x(3,Mke,1,1),x(4,Tke,1,1),u()),2&t){const e=n.$implicit,i=v(2);C("value",e.toUpperCase()),d(2),no("background-image: url('assets/img/flags/"+e.toLocaleLowerCase()+".png');"),d(),S(i.completeCountriesList[e.toUpperCase()]?3:-1),d(),S(i.completeCountriesList[e.toUpperCase()]?-1:4)}}function Pke(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"apps.vpn-socks-client-settings.filter-dialog.any-country")," ")}function Ike(t,n){if(1&t&&p(0),2&t){const e=v(3);E(" ",e.completeCountriesList[e.form.get("country").value]," ")}}function Oke(t,n){1&t&&p(0),2&t&&E(" ",v(3).form.get("country").value," ")}function Ake(t,n){if(1&t&&(h(0,"div",10),B(1,"div"),u(),x(2,Ike,1,1),x(3,Oke,1,1)),2&t){const e=v(2);d(),no("background-image: url('assets/img/flags/"+e.form.get("country").value.toLocaleLowerCase()+".png');"),d(),S(e.completeCountriesList[e.form.get("country").value]?2:-1),d(),S(e.completeCountriesList[e.form.get("country").value]?-1:3)}}function Rke(t,n){if(1&t&&(h(0,"mat-form-field")(1,"div",3)(2,"label",4),p(3),b(4,"translate"),u(),h(5,"mat-select",8)(6,"mat-option",9),p(7),b(8,"translate"),u(),ve(9,Eke,5,5,"mat-option",9,Fe),h(11,"mat-select-trigger"),x(12,Pke,2,3),x(13,Ake,4,4),u()()()()),2&t){const e=v();d(3),M(y(4,5,"apps.vpn-socks-client-settings.filter-dialog.country")),d(3),C("value","-"),d(),M(y(8,7,"apps.vpn-socks-client-settings.filter-dialog.any-country")),d(2),ye(e.data.availableCountries),d(3),S("-"===e.form.get("country").value?12:-1),d(),S("-"!==e.form.get("country").value?13:-1)}}class qH{constructor(){this.country="",this.location="",this.key=""}}let Fke=(()=>{class t{static openDialog(e,i){const o=new nn;return o.data=i,o.autoFocus=!1,o.width=rt.smallModalWidth,e.open(t,o)}constructor(e,i,o){this.data=e,this.dialogRef=i,this.formBuilder=o,this.completeCountriesList=es}ngOnInit(){this.form=this.formBuilder.group({country:[this.data.currentFilters.country?this.data.currentFilters.country:"-"],"location-text":[this.data.currentFilters.location],"key-text":[this.data.currentFilters.key]})}apply(){const e=new qH;let i=this.form.get("country").value.trim();"-"===i&&(i=""),e.country=i,e.location=this.form.get("location-text").value.trim(),e.key=this.form.get("key-text").value.trim(),this.dialogRef.close(e)}static{this.\u0275fac=function(i){return new(i||t)(O(En),O(Bt),O(di))}}static{this.\u0275cmp=re({type:t,selectors:[["app-skysocks-client-filter"]],standalone:!1,decls:20,vars:15,consts:[["button",""],[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","location-text","maxlength","100","matInput",""],["formControlName","key-text","maxlength","66","matInput",""],["type","mat-raised-button","color","primary",1,"float-right",3,"action"],["formControlName","country","id","country"],[3,"value"],[1,"flag-container"]],template:function(i,o){1&i&&(h(0,"app-dialog",1),b(1,"translate"),h(2,"form",2),x(3,Rke,14,9,"mat-form-field"),h(4,"mat-form-field")(5,"div",3)(6,"label",4),p(7),b(8,"translate"),u(),B(9,"input",5),u()(),h(10,"mat-form-field")(11,"div",3)(12,"label",4),p(13),b(14,"translate"),u(),B(15,"input",6),u()()(),h(16,"app-button",7,0),F("action",function(){return o.apply()}),p(18),b(19,"translate"),u()()),2&i&&(C("headline",y(1,7,"apps.vpn-socks-client-settings.filter-dialog.title"))("dialog",o.dialogRef),d(2),C("formGroup",o.form),d(),S(o.data.availableCountries.length>0?3:-1),d(4),M(y(8,9,"apps.vpn-socks-client-settings.filter-dialog.location")),d(6),M(y(14,11,"apps.vpn-socks-client-settings.filter-dialog.pub-key")),d(5),E(" ",y(19,13,"apps.vpn-socks-client-settings.filter-dialog.apply")," "))},dependencies:[xn,Gt,qt,wn,wi,on,mn,sn,In,Pa,Gme,Qr,ui,gn,xe],encapsulation:2})}}return t})();const Nke=["firstInput"];let Lke=(()=>{class t{static openDialog(e){const i=new nn;return i.autoFocus=!1,i.width=rt.smallModalWidth,e.open(t,i)}constructor(e,i){this.dialogRef=e,this.formBuilder=i}ngOnInit(){this.form=this.formBuilder.group({password:[""]}),setTimeout(()=>this.firstInput.nativeElement.focus())}finish(){const e=this.form.get("password").value;this.dialogRef.close("-"+e)}static{this.\u0275fac=function(i){return new(i||t)(O(Bt),O(di))}}static{this.\u0275cmp=re({type:t,selectors:[["app-skysocks-client-password"]],viewQuery:function(i,o){if(1&i&&ot(Nke,5),2&i){let r;he(r=fe())&&(o.firstInput=r.first)}},standalone:!1,decls:16,vars:14,consts:[["firstInput",""],[3,"headline","dialog"],[3,"formGroup"],[1,"info"],[1,"field-container"],["for","remoteKey",1,"field-label"],["type","password","id","password","formControlName","password","maxlength","100","matInput",""],["color","primary","type","mat-raised-button",1,"float-right",3,"action"]],template:function(i,o){1&i&&(h(0,"app-dialog",1),b(1,"translate"),h(2,"form",2)(3,"div",3),p(4),b(5,"translate"),u(),h(6,"mat-form-field")(7,"div",4)(8,"label",5),p(9),b(10,"translate"),u(),B(11,"input",6,0),u()()(),h(13,"app-button",7),F("action",function(){return o.finish()}),p(14),b(15,"translate"),u()()),2&i&&(C("headline",y(1,6,"apps.vpn-socks-client-settings.password-dialog.title"))("dialog",o.dialogRef),d(2),C("formGroup",o.form),d(2),M(y(5,8,"apps.vpn-socks-client-settings.password-dialog.info")),d(5),M(y(10,10,"apps.vpn-socks-client-settings.password-dialog.password")),d(5),E(" ",y(15,12,"apps.vpn-socks-client-settings.password-dialog.continue-button")," "))},dependencies:[xn,Gt,qt,wn,wi,on,mn,sn,In,ui,gn,xe],styles:[".info[_ngcontent-%COMP%]{font-size:.7rem;margin-bottom:15px}"]})}}return t})(),Bke=(()=>{class t{constructor(e){this.http=e,this.discoveryServiceUrl="https://sd.skycoin.com/api/services?type="}getServices(e){const i=[];return this.http.get(this.discoveryServiceUrl+(e?"proxy":"vpn")).pipe(ip(o=>o.pipe(li(4e3))),Se(o=>(o||(o=[]),o.forEach(r=>{const s=new nme,a=r.address.split(":");2===a.length&&(s.address=r.address,s.pk=a[0],s.port=a[1],s.location="",r.geo&&(r.geo.country&&(s.country=r.geo.country,s.location+=es[r.geo.country.toUpperCase()]?es[r.geo.country.toUpperCase()]:r.geo.country),r.geo.region&&r.geo.country&&(s.location+=", "),r.geo.region&&(s.region=r.geo.region,s.location+=s.region)),i.push(s))}),i)))}static{this.\u0275fac=function(i){return new(i||t)(ce(ba))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const yD=["*"];function Vke(t,n){1&t&&Pt(0)}const Hke=["tabListContainer"],jke=["tabList"],Uke=["tabListInner"],zke=["nextPaginator"],$ke=["previousPaginator"],Wke=["content"];function Gke(t,n){}const qke=["tabBodyWrapper"],Kke=["tabHeader"];function Yke(t,n){}function Xke(t,n){1&t&&it(0,Yke,0,0,"ng-template",12),2&t&&C("cdkPortalOutlet",v().$implicit.templateLabel)}function Zke(t,n){1&t&&p(0),2&t&&M(v().$implicit.textLabel)}function Qke(t,n){if(1&t){const e=oe();h(0,"div",7,2),F("click",function(){const o=j(e),r=o.$implicit,s=o.$index,a=v(),l=Hn(1);return U(a._handleClick(r,l,s))})("cdkFocusChange",function(o){const r=j(e).$index;return U(v()._tabFocusChanged(o,r))}),B(2,"span",8)(3,"div",9),h(4,"span",10)(5,"span",11),x(6,Xke,1,1,null,12)(7,Zke,1,1),u()()()}if(2&t){const e=n.$implicit,i=n.$index,o=Hn(1),r=v();Ze(e.labelClass),Ie("mdc-tab--active",r.selectedIndex===i),C("id",r._getTabLabelId(e,i))("disabled",e.disabled)("fitInkBarToContent",r.fitInkBarToContent),$e("tabIndex",r._getTabIndex(i))("aria-posinset",i+1)("aria-setsize",r._tabs.length)("aria-controls",r._getTabContentId(i))("aria-selected",r.selectedIndex===i)("aria-label",e.ariaLabel||null)("aria-labelledby",!e.ariaLabel&&e.ariaLabelledby?e.ariaLabelledby:null),d(3),C("matRippleTrigger",o)("matRippleDisabled",e.disabled||r.disableRipple),d(3),S(e.templateLabel?6:7)}}function Jke(t,n){1&t&&Pt(0)}function eDe(t,n){if(1&t){const e=oe();h(0,"mat-tab-body",13),F("_onCentered",function(){return j(e),U(v()._removeTabBodyWrapperHeight())})("_onCentering",function(o){return j(e),U(v()._setTabBodyWrapperHeight(o))})("_beforeCentering",function(o){return j(e),U(v()._bodyCentered(o))}),u()}if(2&t){const e=n.$implicit,i=n.$index,o=v();Ze(e.bodyClass),C("id",o._getTabContentId(i))("content",e.content)("position",e.position)("animationDuration",o.animationDuration)("preserveContent",o.preserveContent),$e("tabindex",null!=o.contentTabIndex&&o.selectedIndex===i?o.contentTabIndex:null)("aria-labelledby",o._getTabLabelId(e,i))("aria-hidden",o.selectedIndex!==i)}}const tDe=new Z("MatTabContent");let nDe=(()=>{class t{template=D(Ti);constructor(){}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","matTabContent",""]],features:[lt([{provide:tDe,useExisting:t}])]})}return t})();const iDe=new Z("MatTabLabel"),KH=new Z("MAT_TAB");let oDe=(()=>{class t extends Bce{_closestTab=D(KH,{optional:!0});static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275dir=de({type:t,selectors:[["","mat-tab-label",""],["","matTabLabel",""]],features:[lt([{provide:iDe,useExisting:t}]),be]})}return t})();const YH=new Z("MAT_TAB_GROUP");let XH=(()=>{class t{_viewContainerRef=D(Ei);_closestTabGroup=D(YH,{optional:!0});disabled=!1;get templateLabel(){return this._templateLabel}set templateLabel(e){this._setTemplateLabelInput(e)}_templateLabel;_explicitContent=void 0;_implicitContent;textLabel="";ariaLabel;ariaLabelledby;labelClass;bodyClass;id=null;_contentPortal=null;get content(){return this._contentPortal}_stateChanges=new me;position=null;origin=null;isActive=!1;constructor(){D(zo).load(tu)}ngOnChanges(e){(e.hasOwnProperty("textLabel")||e.hasOwnProperty("disabled"))&&this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}ngOnInit(){this._contentPortal=new Yl(this._explicitContent||this._implicitContent,this._viewContainerRef)}_setTemplateLabelInput(e){e&&e._closestTab===this&&(this._templateLabel=e)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["mat-tab"]],contentQueries:function(i,o,r){if(1&i&&ys(r,oDe,5)(r,nDe,7,Ti),2&i){let s;he(s=fe())&&(o.templateLabel=s.first),he(s=fe())&&(o._explicitContent=s.first)}},viewQuery:function(i,o){if(1&i&&ot(Ti,7),2&i){let r;he(r=fe())&&(o._implicitContent=r.first)}},hostAttrs:["hidden",""],hostVars:1,hostBindings:function(i,o){2&i&&$e("id",null)},inputs:{disabled:[2,"disabled","disabled",De],textLabel:[0,"label","textLabel"],ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],labelClass:"labelClass",bodyClass:"bodyClass",id:"id"},exportAs:["matTab"],features:[lt([{provide:KH,useExisting:t}]),_i],ngContentSelectors:yD,decls:1,vars:0,template:function(i,o){1&i&&(yi(),Eg(0,Vke,1,0,"ng-template"))},encapsulation:2})}return t})();const CD="mdc-tab-indicator--active",ZH="mdc-tab-indicator--no-transition";class rDe{_items;_currentItem;constructor(n){this._items=n}hide(){this._items.forEach(n=>n.deactivateInkBar()),this._currentItem=void 0}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}}}let sDe=(()=>{class t{_elementRef=D(Re);_inkBarElement=null;_inkBarContentElement=null;_fitToContent=!1;get fitInkBarToContent(){return this._fitToContent}set fitInkBarToContent(e){this._fitToContent!==e&&(this._fitToContent=e,this._inkBarElement&&this._appendInkBarElement())}activateInkBar(e){const i=this._elementRef.nativeElement;if(!e||!i.getBoundingClientRect||!this._inkBarContentElement)return void i.classList.add(CD);const o=i.getBoundingClientRect(),r=e.width/o.width,s=e.left-o.left;i.classList.add(ZH),this._inkBarContentElement.style.setProperty("transform",`translateX(${s}px) scaleX(${r})`),i.getBoundingClientRect(),i.classList.remove(ZH),i.classList.add(CD),this._inkBarContentElement.style.setProperty("transform","")}deactivateInkBar(){this._elementRef.nativeElement.classList.remove(CD)}ngOnInit(){this._createInkBarElement()}ngOnDestroy(){this._inkBarElement?.remove(),this._inkBarElement=this._inkBarContentElement=null}_createInkBarElement(){const e=this._elementRef.nativeElement.ownerDocument||document,i=this._inkBarElement=e.createElement("span"),o=this._inkBarContentElement=e.createElement("span");i.className="mdc-tab-indicator",o.className="mdc-tab-indicator__content mdc-tab-indicator__content--underline",i.appendChild(this._inkBarContentElement),this._appendInkBarElement()}_appendInkBarElement(){(this._fitToContent?this._elementRef.nativeElement.querySelector(".mdc-tab__content"):this._elementRef.nativeElement).appendChild(this._inkBarElement)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,inputs:{fitInkBarToContent:[2,"fitInkBarToContent","fitInkBarToContent",De]}})}return t})(),QH=(()=>{class t extends sDe{elementRef=D(Re);disabled=!1;focus(){this.elementRef.nativeElement.focus()}getOffsetLeft(){return this.elementRef.nativeElement.offsetLeft}getOffsetWidth(){return this.elementRef.nativeElement.offsetWidth}static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275dir=de({type:t,selectors:[["","matTabLabelWrapper",""]],hostVars:3,hostBindings:function(i,o){2&i&&($e("aria-disabled",!!o.disabled),Ie("mat-mdc-tab-disabled",o.disabled))},inputs:{disabled:[2,"disabled","disabled",De]},features:[be]})}return t})();const JH={passive:!0};let cDe=(()=>{class t{_elementRef=D(Re);_changeDetectorRef=D(Jt);_viewportRuler=D(qd);_dir=D(br,{optional:!0});_ngZone=D(_e);_platform=D(Yn);_sharedResizeObserver=D(yB);_injector=D(He);_renderer=D(Qn);_animationsDisabled=ci();_eventCleanups;_scrollDistance=0;_selectedIndexChanged=!1;_destroyed=new me;_showPaginationControls=!1;_disableScrollAfter=!0;_disableScrollBefore=!0;_tabLabelCount;_scrollDistanceChanged=!1;_keyManager;_currentTextContent;_stopScrolling=new me;disablePagination=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(e){const i=isNaN(e)?0:e;this._selectedIndex!=i&&(this._selectedIndexChanged=!0,this._selectedIndex=i,this._keyManager&&this._keyManager.updateActiveItem(i))}_selectedIndex=0;selectFocusedIndex=new we;indexFocused=new we;constructor(){this._eventCleanups=this._ngZone.runOutsideAngular(()=>[this._renderer.listen(this._elementRef.nativeElement,"mouseleave",()=>this._stopInterval())])}ngAfterViewInit(){this._eventCleanups.push(this._renderer.listen(this._previousPaginator.nativeElement,"touchstart",()=>this._handlePaginatorPress("before"),JH),this._renderer.listen(this._nextPaginator.nativeElement,"touchstart",()=>this._handlePaginatorPress("after"),JH))}ngAfterContentInit(){const e=this._dir?this._dir.change:ae("ltr"),i=this._sharedResizeObserver.observe(this._elementRef.nativeElement).pipe(Mb(32),fn(this._destroyed)),o=this._viewportRuler.change(150).pipe(fn(this._destroyed)),r=()=>{this.updatePagination(),this._alignInkBarToSelectedTab()};this._keyManager=new iV(this._items).withHorizontalOrientation(this._getLayoutDirection()).withHomeAndEnd().withWrap().skipPredicate(()=>!1),this._keyManager.updateActiveItem(Math.max(this._selectedIndex,0)),Vi(r,{injector:this._injector}),Cr(e,o,i,this._items.changes,this._itemsResized()).pipe(fn(this._destroyed)).subscribe(()=>{this._ngZone.run(()=>{Promise.resolve().then(()=>{this._scrollDistance=Math.max(0,Math.min(this._getMaxScrollDistance(),this._scrollDistance)),r()})}),this._keyManager?.withHorizontalOrientation(this._getLayoutDirection())}),this._keyManager.change.subscribe(s=>{this.indexFocused.emit(s),this._setTabFocus(s)})}_itemsResized(){return"function"!=typeof ResizeObserver?Oi:this._items.changes.pipe(si(this._items),tn(e=>new Ft(i=>this._ngZone.runOutsideAngular(()=>{const o=new ResizeObserver(r=>i.next(r));return e.forEach(r=>o.observe(r.elementRef.nativeElement)),()=>{o.disconnect()}}))),_S(1),Tn(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._eventCleanups.forEach(e=>e()),this._keyManager?.destroy(),this._destroyed.next(),this._destroyed.complete(),this._stopScrolling.complete()}_handleKeydown(e){if(!yr(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:s}=i.elementRef.nativeElement;let a,l;"ltr"==this._getLayoutDirection()?(a=r,l=a+s):(l=this._tabListInner.nativeElement.offsetWidth-r,a=l-s);const c=this.scrollDistance,f=this.scrollDistance+o;af&&(this.scrollDistance+=Math.min(l-f,a-c))}_checkPaginationEnabled(){if(this.disablePagination)this._showPaginationControls=!1;else{const o=this._tabListInner.nativeElement.scrollWidth-this._elementRef.nativeElement.offsetWidth>=5;o||(this.scrollDistance=0),o!==this._showPaginationControls&&(this._showPaginationControls=o,this._changeDetectorRef.markForCheck())}}_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(),xa(650,100).pipe(fn(Cr(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 \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,inputs:{disablePagination:[2,"disablePagination","disablePagination",De],selectedIndex:[2,"selectedIndex","selectedIndex",hr]},outputs:{selectFocusedIndex:"selectFocusedIndex",indexFocused:"indexFocused"}})}return t})(),dDe=(()=>{class t extends cDe{_items;_tabListContainer;_tabList;_tabListInner;_nextPaginator;_previousPaginator;_inkBar;ariaLabel;ariaLabelledby;disableRipple=!1;ngAfterContentInit(){this._inkBar=new rDe(this._items),super.ngAfterContentInit()}_itemSelected(e){e.preventDefault()}static \u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})();static \u0275cmp=re({type:t,selectors:[["mat-tab-header"]],contentQueries:function(i,o,r){if(1&i&&ys(r,QH,4),2&i){let s;he(s=fe())&&(o._items=s)}},viewQuery:function(i,o){if(1&i&&ot(Hke,7)(jke,7)(Uke,7)(zke,5)($ke,5),2&i){let r;he(r=fe())&&(o._tabListContainer=r.first),he(r=fe())&&(o._tabList=r.first),he(r=fe())&&(o._tabListInner=r.first),he(r=fe())&&(o._nextPaginator=r.first),he(r=fe())&&(o._previousPaginator=r.first)}},hostAttrs:[1,"mat-mdc-tab-header"],hostVars:4,hostBindings:function(i,o){2&i&&Ie("mat-mdc-tab-header-pagination-controls-enabled",o._showPaginationControls)("mat-mdc-tab-header-rtl","rtl"==o._getLayoutDirection())},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],disableRipple:[2,"disableRipple","disableRipple",De]},features:[be],ngContentSelectors:yD,decls:13,vars:10,consts:[["previousPaginator",""],["tabListContainer",""],["tabList",""],["tabListInner",""],["nextPaginator",""],["mat-ripple","",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-before",3,"click","mousedown","touchend","matRippleDisabled"],[1,"mat-mdc-tab-header-pagination-chevron"],[1,"mat-mdc-tab-label-container",3,"keydown"],["role","tablist",1,"mat-mdc-tab-list",3,"cdkObserveContent"],[1,"mat-mdc-tab-labels"],["mat-ripple","",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-after",3,"mousedown","click","touchend","matRippleDisabled"]],template:function(i,o){1&i&&(yi(),h(0,"div",5,0),F("click",function(){return o._handlePaginatorClick("before")})("mousedown",function(s){return o._handlePaginatorPress("before",s)})("touchend",function(){return o._stopInterval()}),B(2,"div",6),u(),h(3,"div",7,1),F("keydown",function(s){return o._handleKeydown(s)}),h(5,"div",8,2),F("cdkObserveContent",function(){return o._onContentChanges()}),h(7,"div",9,3),Pt(9),u()()(),h(10,"div",10,4),F("mousedown",function(s){return o._handlePaginatorPress("after",s)})("click",function(){return o._handlePaginatorClick("after")})("touchend",function(){return o._stopInterval()}),B(12,"div",6),u()),2&i&&(Ie("mat-mdc-tab-header-pagination-disabled",o._disableScrollBefore),C("matRippleDisabled",o._disableScrollBefore||o.disableRipple),d(3),Ie("_mat-animation-noopable",o._animationsDisabled),d(2),$e("aria-label",o.ariaLabel||null)("aria-labelledby",o.ariaLabelledby||null),d(5),Ie("mat-mdc-tab-header-pagination-disabled",o._disableScrollAfter),C("matRippleDisabled",o._disableScrollAfter||o.disableRipple))},dependencies:[eu,xde],styles:[".mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.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;outline: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-inactive-ripple-color, var(--mat-sys-on-surface))}.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-pagination-icon-color, var(--mat-sys-on-surface))}.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-mdc-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1;border-bottom-style:solid;border-bottom-width:var(--mat-tab-divider-height, 1px);border-bottom-color:var(--mat-tab-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-group-inverted-header .mat-mdc-tab-label-container{border-bottom:none;border-top-style:solid;border-top-width:var(--mat-tab-divider-height, 1px);border-top-color:var(--mat-tab-divider-color, var(--mat-sys-surface-variant))}.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}.cdk-drop-list .mat-mdc-tab-labels,.mat-mdc-tab-labels.cdk-drop-list{min-height:var(--mat-tab-container-height, 48px)}.mat-mdc-tab::before{margin:5px}@media(forced-colors: active){.mat-mdc-tab[aria-disabled=true]{color:GrayText}}\n"],encapsulation:2})}return t})();const uDe=new Z("MAT_TABS_CONFIG");let e6=(()=>{class t extends Xl{_host=D(wD);_ngZone=D(_e);_centeringSub=pt.EMPTY;_leavingSub=pt.EMPTY;constructor(){super()}ngOnInit(){super.ngOnInit(),this._centeringSub=this._host._beforeCentering.pipe(si(this._host._isCenterPosition())).subscribe(e=>{this._host._content&&e&&!this.hasAttached()&&this._ngZone.run(()=>{Promise.resolve().then(),this.attach(this._host._content)})}),this._leavingSub=this._host._afterLeavingCenter.subscribe(()=>{this._host.preserveContent||this._ngZone.run(()=>this.detach())})}ngOnDestroy(){super.ngOnDestroy(),this._centeringSub.unsubscribe(),this._leavingSub.unsubscribe()}static \u0275fac=function(i){return new(i||t)};static \u0275dir=de({type:t,selectors:[["","matTabBodyHost",""]],features:[be]})}return t})(),wD=(()=>{class t{_elementRef=D(Re);_dir=D(br,{optional:!0});_ngZone=D(_e);_injector=D(He);_renderer=D(Qn);_diAnimationsDisabled=ci();_eventCleanups;_initialized=!1;_fallbackTimer;_positionIndex;_dirChangeSubscription=pt.EMPTY;_position;_previousPosition;_onCentering=new we;_beforeCentering=new we;_afterLeavingCenter=new we;_onCentered=new we(!0);_portalHost;_contentElement;_content;animationDuration="500ms";preserveContent=!1;set position(e){this._positionIndex=e,this._computePositionAnimationState()}constructor(){if(this._dir){const e=D(Jt);this._dirChangeSubscription=this._dir.change.subscribe(i=>{this._computePositionAnimationState(i),e.markForCheck()})}}ngOnInit(){this._bindTransitionEvents(),"center"===this._position&&(this._setActiveClass(!0),Vi(()=>this._onCentering.emit(this._elementRef.nativeElement.clientHeight),{injector:this._injector})),this._initialized=!0}ngOnDestroy(){clearTimeout(this._fallbackTimer),this._eventCleanups?.forEach(e=>e()),this._dirChangeSubscription.unsubscribe()}_bindTransitionEvents(){this._ngZone.runOutsideAngular(()=>{const e=this._elementRef.nativeElement,i=o=>{o.target===this._contentElement?.nativeElement&&(this._elementRef.nativeElement.classList.remove("mat-tab-body-animating"),"transitionend"===o.type&&this._transitionDone())};this._eventCleanups=[this._renderer.listen(e,"transitionstart",o=>{o.target===this._contentElement?.nativeElement&&(this._elementRef.nativeElement.classList.add("mat-tab-body-animating"),this._transitionStarted())}),this._renderer.listen(e,"transitionend",i),this._renderer.listen(e,"transitioncancel",i)]})}_transitionStarted(){clearTimeout(this._fallbackTimer);const e="center"===this._position;this._beforeCentering.emit(e),e&&this._onCentering.emit(this._elementRef.nativeElement.clientHeight)}_transitionDone(){"center"===this._position?this._onCentered.emit():"center"===this._previousPosition&&this._afterLeavingCenter.emit()}_setActiveClass(e){this._elementRef.nativeElement.classList.toggle("mat-mdc-tab-body-active",e)}_getLayoutDirection(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}_isCenterPosition(){return 0===this._positionIndex}_computePositionAnimationState(e=this._getLayoutDirection()){this._previousPosition=this._position,this._position=this._positionIndex<0?"ltr"==e?"left":"right":this._positionIndex>0?"ltr"==e?"right":"left":"center",this._animationsDisabled()?this._simulateTransitionEvents():this._initialized&&("center"===this._position||"center"===this._previousPosition)&&(clearTimeout(this._fallbackTimer),this._fallbackTimer=this._ngZone.runOutsideAngular(()=>setTimeout(()=>this._simulateTransitionEvents(),100)))}_simulateTransitionEvents(){this._transitionStarted(),Vi(()=>this._transitionDone(),{injector:this._injector})}_animationsDisabled(){return this._diAnimationsDisabled||"0ms"===this.animationDuration||"0s"===this.animationDuration}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["mat-tab-body"]],viewQuery:function(i,o){if(1&i&&ot(e6,5)(Wke,5),2&i){let r;he(r=fe())&&(o._portalHost=r.first),he(r=fe())&&(o._contentElement=r.first)}},hostAttrs:[1,"mat-mdc-tab-body"],hostVars:1,hostBindings:function(i,o){2&i&&$e("inert","center"===o._position?null:"")},inputs:{_content:[0,"content","_content"],animationDuration:"animationDuration",preserveContent:"preserveContent",position:"position"},outputs:{_onCentering:"_onCentering",_beforeCentering:"_beforeCentering",_onCentered:"_onCentered"},decls:3,vars:6,consts:[["content",""],["cdkScrollable","",1,"mat-mdc-tab-body-content"],["matTabBodyHost",""]],template:function(i,o){1&i&&(h(0,"div",1,0),it(2,Gke,0,0,"ng-template",2),u()),2&i&&Ie("mat-tab-body-content-left","left"===o._position)("mat-tab-body-content-right","right"===o._position)("mat-tab-body-content-can-animate","center"===o._position||"center"===o._previousPosition)},dependencies:[e6,H3],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;transform:none;visibility:hidden}.mat-tab-body-animating>.mat-mdc-tab-body-content,.mat-mdc-tab-body-active>.mat-mdc-tab-body-content{visibility:visible}.mat-tab-body-animating>.mat-mdc-tab-body-content{min-height:1px}.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{overflow:hidden}.mat-tab-body-content-can-animate{transition:transform var(--mat-tab-animation-duration) 1ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable .mat-tab-body-content-can-animate{transition:none}.mat-tab-body-content-left{transform:translate3d(-100%, 0, 0)}.mat-tab-body-content-right{transform:translate3d(100%, 0, 0)}\n"],encapsulation:2})}return t})(),hDe=(()=>{class t{_elementRef=D(Re);_changeDetectorRef=D(Jt);_ngZone=D(_e);_tabsSubscription=pt.EMPTY;_tabLabelSubscription=pt.EMPTY;_tabBodySubscription=pt.EMPTY;_diAnimationsDisabled=ci();_allTabs;_tabBodies;_tabBodyWrapper;_tabHeader;_tabs=new id;_indexToSelect=0;_lastFocusedTabIndex=null;_tabBodyWrapperHeight=0;color;get fitInkBarToContent(){return this._fitInkBarToContent}set fitInkBarToContent(e){this._fitInkBarToContent=e,this._changeDetectorRef.markForCheck()}_fitInkBarToContent=!1;stretchTabs=!0;alignTabs=null;dynamicHeight=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(e){this._indexToSelect=isNaN(e)?null:e}_selectedIndex=null;headerPosition="above";get animationDuration(){return this._animationDuration}set animationDuration(e){const i=e+"";this._animationDuration=/^\d+$/.test(i)?e+"ms":i}_animationDuration;get contentTabIndex(){return this._contentTabIndex}set contentTabIndex(e){this._contentTabIndex=isNaN(e)?null:e}_contentTabIndex=null;disablePagination=!1;disableRipple=!1;preserveContent=!1;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}_backgroundColor;ariaLabel;ariaLabelledby;selectedIndexChange=new we;focusChange=new we;animationDone=new we;selectedTabChange=new we(!0);_groupId;_isServer=!D(Yn).isBrowser;constructor(){const e=D(uDe,{optional:!0});this._groupId=D(ni).getId("mat-tab-group-"),this.animationDuration=e&&e.animationDuration?e.animationDuration:"500ms",this.disablePagination=!(!e||null==e.disablePagination)&&e.disablePagination,this.dynamicHeight=!(!e||null==e.dynamicHeight)&&e.dynamicHeight,null!=e?.contentTabIndex&&(this.contentTabIndex=e.contentTabIndex),this.preserveContent=!!e?.preserveContent,this.fitInkBarToContent=!(!e||null==e.fitInkBarToContent)&&e.fitInkBarToContent,this.stretchTabs=!e||null==e.stretchTabs||e.stretchTabs,this.alignTabs=e&&null!=e.alignTabs?e.alignTabs:null}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()})}ngAfterViewInit(){this._tabBodySubscription=this._tabBodies.changes.subscribe(()=>this._bodyCentered(!0))}_subscribeToAllTabChanges(){this._allTabs.changes.pipe(si(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(),this._tabBodySubscription.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 fDe;return i.index=e,this._tabs&&this._tabs.length&&(i.tab=this._tabs.toArray()[e]),i}_subscribeToTabLabels(){this._tabLabelSubscription&&this._tabLabelSubscription.unsubscribe(),this._tabLabelSubscription=Cr(...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,i){return e.id||`${this._groupId}-label-${i}`}_getTabContentId(e){return`${this._groupId}-content-${e}`}_setTabBodyWrapperHeight(e){if(!this.dynamicHeight||!this._tabBodyWrapperHeight)return void(this._tabBodyWrapperHeight=e);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._ngZone.run(()=>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)}_bodyCentered(e){e&&this._tabBodies?.forEach((i,o)=>i._setActiveClass(o===this._selectedIndex))}_animationsDisabled(){return this._diAnimationsDisabled||"0"===this.animationDuration||"0ms"===this.animationDuration}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["mat-tab-group"]],contentQueries:function(i,o,r){if(1&i&&ys(r,XH,5),2&i){let s;he(s=fe())&&(o._allTabs=s)}},viewQuery:function(i,o){if(1&i&&ot(qke,5)(Kke,5)(wD,5),2&i){let r;he(r=fe())&&(o._tabBodyWrapper=r.first),he(r=fe())&&(o._tabHeader=r.first),he(r=fe())&&(o._tabBodies=r)}},hostAttrs:[1,"mat-mdc-tab-group"],hostVars:11,hostBindings:function(i,o){2&i&&($e("mat-align-tabs",o.alignTabs),Ze("mat-"+(o.color||"primary")),Md("--mat-tab-animation-duration",o.animationDuration),Ie("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",fitInkBarToContent:[2,"fitInkBarToContent","fitInkBarToContent",De],stretchTabs:[2,"mat-stretch-tabs","stretchTabs",De],alignTabs:[0,"mat-align-tabs","alignTabs"],dynamicHeight:[2,"dynamicHeight","dynamicHeight",De],selectedIndex:[2,"selectedIndex","selectedIndex",hr],headerPosition:"headerPosition",animationDuration:"animationDuration",contentTabIndex:[2,"contentTabIndex","contentTabIndex",hr],disablePagination:[2,"disablePagination","disablePagination",De],disableRipple:[2,"disableRipple","disableRipple",De],preserveContent:[2,"preserveContent","preserveContent",De],backgroundColor:"backgroundColor",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"]},outputs:{selectedIndexChange:"selectedIndexChange",focusChange:"focusChange",animationDone:"animationDone",selectedTabChange:"selectedTabChange"},exportAs:["matTabGroup"],features:[lt([{provide:YH,useExisting:t}])],ngContentSelectors:yD,decls:9,vars:8,consts:[["tabHeader",""],["tabBodyWrapper",""],["tabNode",""],[3,"indexFocused","selectFocusedIndex","selectedIndex","disableRipple","disablePagination","aria-label","aria-labelledby"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-focus-indicator",3,"id","mdc-tab--active","class","disabled","fitInkBarToContent"],[1,"mat-mdc-tab-body-wrapper"],["role","tabpanel",3,"id","class","content","position","animationDuration","preserveContent"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-focus-indicator",3,"click","cdkFocusChange","id","disabled","fitInkBarToContent"],[1,"mdc-tab__ripple"],["mat-ripple","",1,"mat-mdc-tab-ripple",3,"matRippleTrigger","matRippleDisabled"],[1,"mdc-tab__content"],[1,"mdc-tab__text-label"],[3,"cdkPortalOutlet"],["role","tabpanel",3,"_onCentered","_onCentering","_beforeCentering","id","content","position","animationDuration","preserveContent"]],template:function(i,o){1&i&&(yi(),h(0,"mat-tab-header",3,0),F("indexFocused",function(s){return o._focusChanged(s)})("selectFocusedIndex",function(s){return o.selectedIndex=s}),ve(2,Qke,8,17,"div",4,Fe),u(),x(4,Jke,1,0),h(5,"div",5,1),ve(7,eDe,1,10,"mat-tab-body",6,Fe),u()),2&i&&(C("selectedIndex",o.selectedIndex||0)("disableRipple",o.disableRipple)("disablePagination",o.disablePagination),y0("aria-label",o.ariaLabel)("aria-labelledby",o.ariaLabelledby),d(2),ye(o._tabs),d(2),S(o._isServer?4:-1),d(),Ie("_mat-animation-noopable",o._animationsDisabled()),d(2),ye(o._tabs))},dependencies:[dDe,QH,Gde,eu,Xl,wD],styles:['.mdc-tab{min-width:90px;padding:0 24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;z-index:1;touch-action:manipulation}.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--active .mdc-tab__text-label{transition-delay:100ms}._mat-animation-noopable .mdc-tab__text-label{transition:none}.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{transition:var(--mat-tab-animation-duration, 250ms) transform cubic-bezier(0.4, 0, 0.2, 1);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--active .mdc-tab-indicator__content{opacity:1}._mat-animation-noopable .mdc-tab-indicator__content,.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mat-mdc-tab-ripple.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;height:var(--mat-tab-container-height, 48px);font-family:var(--mat-tab-label-text-font, var(--mat-sys-title-small-font));font-size:var(--mat-tab-label-text-size, var(--mat-sys-title-small-size));letter-spacing:var(--mat-tab-label-text-tracking, var(--mat-sys-title-small-tracking));line-height:var(--mat-tab-label-text-line-height, var(--mat-sys-title-small-line-height));font-weight:var(--mat-tab-label-text-weight, var(--mat-sys-title-small-weight))}.mat-mdc-tab.mdc-tab{flex-grow:0}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-active-indicator-color, var(--mat-sys-primary));border-top-width:var(--mat-tab-active-indicator-height, 2px);border-radius:var(--mat-tab-active-indicator-shape, 0)}.mat-mdc-tab:hover .mdc-tab__text-label{color:var(--mat-tab-inactive-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab:focus .mdc-tab__text-label{color:var(--mat-tab-inactive-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__text-label{color:var(--mat-tab-active-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__ripple::before,.mat-mdc-tab.mdc-tab--active .mat-ripple-element{background-color:var(--mat-tab-active-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab__text-label{color:var(--mat-tab-active-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-active-hover-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab__text-label{color:var(--mat-tab-active-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-active-focus-indicator-color, var(--mat-sys-primary))}.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-disabled-ripple-color, var(--mat-sys-on-surface-variant))}.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-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-inactive-label-text-color, var(--mat-sys-on-surface));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-inactive-ripple-color, var(--mat-sys-on-surface))}.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-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-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-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-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-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-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-focus-indicator::before{border-color:var(--mat-tab-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-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-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}\n'],encapsulation:2})}return t})();class fDe{index;tab}let pDe=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({imports:[ii]})}return t})(),mDe=(()=>{class t{constructor(e){this.dialog=e,this.tabNames=[""],this.selectedTab=0,this.tabChanged=new we}ngOnDestroy(){this.tabChanged.complete()}showTabSelector(){const e=[];this.tabNames.forEach((i,o)=>{e.push({icon:o===this.selectedTab?"check":"",label:i})}),ao.openDialog(this.dialog,e,"node.logs.filter-title").afterClosed().subscribe(i=>{this.tabChanged.emit(i-1)})}static{this.\u0275fac=function(i){return new(i||t)(O(Ot))}}static{this.\u0275cmp=re({type:t,selectors:[["app-tab-selector"]],inputs:{tabNames:"tabNames",selectedTab:"selectedTab"},outputs:{tabChanged:"tabChanged"},standalone:!1,decls:9,vars:4,consts:[[1,"top-dialog-button",3,"click"],[1,"top-dialog-button-content"],[1,"tab-name"],[1,"icon",3,"inline"],[1,"top-dialog-button-margin"]],template:function(i,o){1&i&&(h(0,"div",0),F("click",function(){return o.showTabSelector()}),h(1,"div",1)(2,"div",2)(3,"span"),p(4),b(5,"translate"),u()(),h(6,"mat-icon",3),p(7,"expand_more"),u()(),B(8,"div",4),u()),2&i&&(d(4),M(y(5,2,o.tabNames[o.selectedTab])),d(2),C("inline",!0))},dependencies:[We,xe],styles:[".top-dialog-button[_ngcontent-%COMP%] .top-dialog-button-content[_ngcontent-%COMP%]{display:flex}.top-dialog-button[_ngcontent-%COMP%] .top-dialog-button-content[_ngcontent-%COMP%] .tab-name[_ngcontent-%COMP%]{flex-grow:1;margin-right:10px;align-self:center}.top-dialog-button[_ngcontent-%COMP%] .top-dialog-button-content[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{font-size:20px;flex-shrink:0;align-self:center}"]})}}return t})();const gDe=["button"],_De=["settingsButton"],bDe=["firstInput"],vDe=["tabGroup"],Dc=t=>({"element-disabled":t}),t6=t=>({highlighted:t}),yDe=(t,n)=>({currentElementsRange:t,totalElements:n}),CDe=t=>({number:t});function wDe(t,n){1&t&&(h(0,"span"),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"apps.vpn-socks-client-settings.remote-key-length-error")))}function xDe(t,n){1&t&&(h(0,"span"),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"apps.vpn-socks-client-settings.remote-key-chars-error")))}function SDe(t,n){if(1&t&&(h(0,"mat-form-field",10)(1,"div",11)(2,"label",12),p(3),b(4,"translate"),u(),B(5,"input",20),u()()),2&t){const e=v();C("ngClass",se(4,Dc,e.disableDismiss)),d(3),M(y(4,2,"apps.vpn-socks-client-settings.password"))}}function kDe(t,n){1&t&&(h(0,"div",14)(1,"mat-icon",21),p(2,"warning"),u(),p(3),b(4,"translate"),u()),2&t&&(d(),C("inline",!0),d(2),E(" ",y(4,2,"apps.vpn-socks-client-settings.password-history-warning")," "))}function DDe(t,n){1&t&&B(0,"app-loading-indicator",16),2&t&&C("showWhite",!1)}function MDe(t,n){1&t&&(h(0,"div",17)(1,"mat-icon",21),p(2,"error"),u(),p(3),b(4,"translate"),u()),2&t&&(d(),C("inline",!0),d(2),E(" ",y(4,2,"apps.vpn-socks-client-settings.no-elements")," "))}function TDe(t,n){1&t&&(h(0,"div",25),p(1),b(2,"translate"),u()),2&t&&(d(),E(" ",y(2,1,"apps.vpn-socks-client-settings.no-filter")," "))}function EDe(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,v().$implicit[1])," ")}function PDe(t,n){1&t&&p(0),2&t&&E(" ",v().$implicit[2]," ")}function IDe(t,n){if(1&t&&(h(0,"div",25)(1,"span"),p(2),b(3,"translate"),u(),x(4,EDe,2,3),x(5,PDe,1,1),u()),2&t){const e=n.$implicit;d(2),E("",y(3,3,e[0])," "),d(2),S(e[1]?4:-1),d(),S(e[2]?5:-1)}}function ODe(t,n){1&t&&(h(0,"div",17)(1,"mat-icon",21),p(2,"error"),u(),p(3),b(4,"translate"),u()),2&t&&(d(),C("inline",!0),d(2),E(" ",y(4,2,"apps.vpn-socks-client-settings.no-elements-for-filters")," "))}function ADe(t,n){if(1&t&&(h(0,"span",10),p(1),u()),2&t){const e=n.$implicit;C("ngClass",se(2,t6,n.$index%2!=0)),d(),M(e)}}function RDe(t,n){if(1&t&&(h(0,"div",31),B(1,"div"),u()),2&t){const e=v(2).$implicit;d(),no("background-image: url('assets/img/flags/"+e.country.toLocaleLowerCase()+".png');")}}function FDe(t,n){if(1&t&&(h(0,"span",10),p(1),u()),2&t){const e=n.$implicit;C("ngClass",se(2,t6,n.$index%2!=0)),d(),M(e)}}function NDe(t,n){if(1&t&&(h(0,"div",25)(1,"span"),p(2),b(3,"translate"),u(),h(4,"span"),p(5,"\xa0 "),x(6,RDe,2,2,"div",31),ve(7,FDe,2,4,"span",10,Fe),u()()),2&t){const e=v().$implicit,i=v(2);d(2),M(y(3,2,"apps.vpn-socks-client-settings.location")),d(4),S(e.country?6:-1),d(),ye(i.getHighlightedTextParts(e.location,i.currentFilters.location))}}function LDe(t,n){if(1&t){const e=oe();h(0,"div",19)(1,"button",27),F("click",function(){const o=j(e).$implicit;return U(v(2).saveChanges(o.pk,null,!1,o.location))}),h(2,"div",28)(3,"div",25)(4,"span"),p(5),b(6,"translate"),u(),h(7,"span"),p(8,"\xa0"),ve(9,ADe,2,4,"span",10,Fe),u()(),x(11,NDe,9,4,"div",25),u()(),h(12,"button",29),b(13,"translate"),F("click",function(){const o=j(e).$implicit;return U(v(2).copyPk(o.pk))}),h(14,"mat-icon",30),p(15,"filter_none"),u()()()}if(2&t){const e=n.$implicit,i=v(2);d(),C("ngClass",se(9,Dc,i.disableDismiss)),d(4),M(y(6,5,"apps.vpn-socks-client-settings.key")),d(4),ye(i.getHighlightedTextParts(e.pk,i.currentFilters.key)),d(2),S(e.location?11:-1),d(),C("matTooltip",y(13,7,"apps.vpn-socks-client-settings.copy-pk-info")),d(2),C("inline",!0)}}function BDe(t,n){if(1&t){const e=oe();h(0,"button",22),F("click",function(){return j(e),U(v().changeFilters())}),h(1,"div",23)(2,"div",24)(3,"mat-icon",21),p(4,"filter_list"),u()(),h(5,"div"),x(6,TDe,3,3,"div",25),ve(7,IDe,6,5,"div",25,Fe),h(9,"div",26),p(10),b(11,"translate"),u()()()(),x(12,ODe,5,4,"div",17),ve(13,LDe,16,11,"div",19,Fe)}if(2&t){const e=v();d(3),C("inline",!0),d(3),S(0===e.currentFiltersTexts.length?6:-1),d(),ye(e.currentFiltersTexts),d(3),M(y(11,4,"apps.vpn-socks-client-settings.click-to-change")),d(2),S(0===e.filteredProxiesFromDiscovery.length?12:-1),d(),ye(e.proxiesFromDiscoveryToShow)}}function VDe(t,n){if(1&t){const e=oe();h(0,"div",18)(1,"span"),p(2),b(3,"translate"),u(),h(4,"button",32),F("click",function(){return j(e),U(v().goToPreviousPage())}),h(5,"mat-icon"),p(6,"chevron_left"),u()(),h(7,"button",32),F("click",function(){return j(e),U(v().goToNextPage())}),h(8,"mat-icon"),p(9,"chevron_right"),u()()()}if(2&t){const e=v();d(2),M(pe(3,1,"apps.vpn-socks-client-settings.pagination-info",_t(4,yDe,e.currentRange,e.filteredProxiesFromDiscovery.length)))}}function HDe(t,n){if(1&t&&(h(0,"div")(1,"div",17)(2,"mat-icon",21),p(3,"error"),u(),p(4),b(5,"translate"),u()()),2&t){const e=v();d(2),C("inline",!0),d(2),E(" ",pe(5,2,"apps.vpn-socks-client-settings.no-history",se(5,CDe,e.maxHistoryElements))," ")}}function jDe(t,n){1&t&&dr(0)}function UDe(t,n){1&t&&dr(0)}function zDe(t,n){if(1&t&&(h(0,"span"),p(1),u()),2&t){const e=v(2).$implicit;d(),E(" ",e.note)}}function $De(t,n){1&t&&(h(0,"span"),p(1),b(2,"translate"),u()),2&t&&(d(),E(" ",y(2,1,"apps.vpn-socks-client-settings.note-entered-manually")))}function WDe(t,n){if(1&t&&(h(0,"span"),p(1),u()),2&t){const e=v(4).$implicit;d(),E(" (",e.location,")")}}function GDe(t,n){if(1&t&&(h(0,"span"),p(1),b(2,"translate"),u(),x(3,WDe,2,1,"span")),2&t){const e=v(3).$implicit;d(),E(" ",y(2,2,"apps.vpn-socks-client-settings.note-obtained")),d(2),S(e.location?3:-1)}}function qDe(t,n){if(1&t&&(x(0,$De,3,3,"span"),x(1,GDe,4,4)),2&t){const e=v(2).$implicit;S(e.enteredManually?0:-1),d(),S(e.enteredManually?-1:1)}}function KDe(t,n){if(1&t&&(h(0,"div",37)(1,"div",38)(2,"div",25)(3,"span"),p(4),b(5,"translate"),u(),h(6,"span"),p(7),u()(),h(8,"div",25)(9,"span"),p(10),b(11,"translate"),u(),x(12,zDe,2,1,"span"),x(13,qDe,2,2),u()(),h(14,"div",39)(15,"div",40)(16,"mat-icon",21),p(17,"add"),u()()()()),2&t){const e=v().$implicit;d(4),M(y(5,6,"apps.vpn-socks-client-settings.key")),d(3),E(" ",e.key),d(3),M(y(11,8,"apps.vpn-socks-client-settings.note")),d(2),S(e.note?12:-1),d(),S(e.note?-1:13),d(3),C("inline",!0)}}function YDe(t,n){if(1&t){const e=oe();h(0,"div",19)(1,"button",33),F("click",function(){const o=j(e).$implicit;return U(v().useFromHistory(o))}),it(2,jDe,1,0,"ng-container",34),u(),h(3,"button",35),b(4,"translate"),F("click",function(){const o=j(e).$implicit;return U(v().changeNote(o))}),h(5,"mat-icon",30),p(6,"edit"),u()(),h(7,"button",35),b(8,"translate"),F("click",function(){const o=j(e).$implicit;return U(v().removeFromHistory(o.key))}),h(9,"mat-icon",30),p(10,"close"),u()(),h(11,"button",36),F("click",function(){const o=j(e).$implicit;return U(v().openHistoryOptions(o))}),it(12,UDe,1,0,"ng-container",34),u(),it(13,KDe,18,10,"ng-template",null,0,Rl),u()}if(2&t){const e=Hn(14),i=v();d(),C("ngClass",se(12,Dc,i.disableDismiss)),d(),C("ngTemplateOutlet",e),d(),C("matTooltip",y(4,8,"apps.vpn-socks-client-settings.change-note")),d(2),C("inline",!0),d(2),C("matTooltip",y(8,10,"apps.vpn-socks-client-settings.remove-entry")),d(2),C("inline",!0),d(2),C("ngClass",se(14,Dc,i.disableDismiss)),d(),C("ngTemplateOutlet",e)}}function XDe(t,n){1&t&&(h(0,"span"),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"apps.vpn-socks-client-settings.dns-error")))}function ZDe(t,n){1&t&&(h(0,"div",45)(1,"mat-icon",21),p(2,"warning"),u(),p(3),b(4,"translate"),u()),2&t&&(d(),C("inline",!0),d(2),E(" ",y(4,2,"apps.vpn-socks-client-settings.settings-changed-alert")," "))}function QDe(t,n){if(1&t){const e=oe();h(0,"mat-tab",8),b(1,"translate"),h(2,"form",9)(3,"mat-form-field",10)(4,"div",11)(5,"label",12),p(6),b(7,"translate"),u(),B(8,"input",41),u(),h(9,"mat-error"),x(10,XDe,3,3,"span"),u()(),h(11,"div",42)(12,"mat-checkbox",43),p(13),b(14,"translate"),h(15,"mat-icon",44),b(16,"translate"),p(17,"help"),u()()(),x(18,ZDe,5,4,"div",45),h(19,"app-button",15,4),F("action",function(){return j(e),U(v().saveSettings())}),p(21),b(22,"translate"),u()()()}if(2&t){const e=v();C("label",y(1,12,e.tabLabels[3])),d(2),C("formGroup",e.settingsForm),d(),C("ngClass",se(22,Dc,e.disableDismiss)),d(3),M(y(7,14,"apps.vpn-socks-client-settings.dns")),d(4),S(e.settingsForm.get("dns").valid?-1:10),d(2),C("ngClass",se(24,Dc,e.disableDismiss)),d(),E(" ",y(14,16,"apps.vpn-socks-client-settings.killswitch-check")," "),d(2),C("inline",!0)("matTooltip",y(16,18,"apps.vpn-socks-client-settings.killswitch-info")),d(3),S(e.settingsChanged?18:-1),d(),C("disabled",!e.settingsForm.valid||!e.settingsChanged||e.working),d(2),E(" ",y(22,20,"apps.vpn-socks-client-settings.save-settings")," ")}}let JDe=(()=>{class t{static openDialog(e,i){const o=new nn;return o.data=i,o.autoFocus=!1,o.width=rt.largeModalWidth,e.open(t,o)}constructor(e,i,o,r,s,a,l,c,f){this.data=e,this.dialogRef=i,this.appsService=o,this.formBuilder=r,this.snackbarService=s,this.dialog=a,this.proxyDiscoveryService=l,this.clipboardService=c,this.storageService=f,this.socksHistoryStorageKey="SkysocksClientHistory_",this.vpnHistoryStorageKey="VpnClientHistory_",this.maxHistoryElements=10,this.maxElementsPerPage=10,this.tabLabels=[],this.currentTab=0,this.countriesFromDiscovery=new Set,this.loadingFromDiscovery=!0,this.numberOfPages=1,this.currentPage=1,this.currentRange="1 - 1",this.currentFilters=new qH,this.currentFiltersTexts=[],this.configuringVpn=!1,this.initialKillswitchSetting=!1,this.initialDnsSetting="",this.working=!1,-1!==e.name.toLocaleLowerCase().indexOf("vpn")?(this.configuringVpn=!0,this.tabLabels=["apps.vpn-socks-client-settings.remote-visor-tab","apps.vpn-socks-client-settings.discovery-tab","apps.vpn-socks-client-settings.history-tab","apps.vpn-socks-client-settings.settings-tab"]):this.tabLabels=["apps.vpn-socks-client-settings.remote-visor-tab","apps.vpn-socks-client-settings.discovery-tab","apps.vpn-socks-client-settings.history-tab"]}ngOnInit(){this.migrateDataToHvStorage(),this.discoverySubscription=this.proxyDiscoveryService.getServices(!this.configuringVpn).subscribe(o=>{this.proxiesFromDiscovery=o,this.proxiesFromDiscovery.forEach(r=>{r.country&&this.countriesFromDiscovery.add(r.country.toUpperCase())}),this.filterProxies(),this.loadingFromDiscovery=!1});const e=this.storageService.getDataForHv(this.configuringVpn?this.vpnHistoryStorageKey:this.socksHistoryStorageKey);this.history=e?JSON.parse(e):[];let i="";if(this.data.args&&this.data.args.length>0)for(let o=0;othis.firstInput.nativeElement.focus())}ngOnDestroy(){this.discoverySubscription.unsubscribe(),this.operationSubscription&&this.operationSubscription.unsubscribe()}migrateDataToHvStorage(){const e=localStorage.getItem(this.socksHistoryStorageKey);e&&(this.storageService.setDataForHv(this.socksHistoryStorageKey,e),localStorage.removeItem(this.socksHistoryStorageKey));const i=localStorage.getItem(this.vpnHistoryStorageKey);i&&(this.storageService.setDataForHv(this.vpnHistoryStorageKey,i),localStorage.removeItem(this.vpnHistoryStorageKey))}get disableDismiss(){return this.button&&this.button.isLoading||this.settingsButton&&this.settingsButton.isLoading}tabChangeRequested(e){this.tabGroup.selectedIndex=e}tabIdexChanged(){this.currentTab=this.tabGroup.selectedIndex}validateIp(){if(this.settingsForm){const e=this.settingsForm.get("dns").value;return Rt.checkIfIpValidOrEmpty(e)?null:{invalid:!0}}return null}get settingsChanged(){return this.initialKillswitchSetting!==this.settingsForm.get("killswitch").value||this.initialDnsSetting!==this.settingsForm.get("dns").value}changeFilters(){const e=[];this.countriesFromDiscovery.forEach(o=>e.push(o)),Fke.openDialog(this.dialog,{currentFilters:this.currentFilters,availableCountries:e}).afterClosed().subscribe(o=>{o&&(this.currentFilters=o,this.filterProxies())})}getHighlightedTextParts(e,i){if(!i)return[e];const o=e.toLowerCase(),r=i.toLowerCase();let s=!0,a=0;const l=[];for(;s;){const c=o.indexOf(r,a);-1===c?s=!1:(l.push(e.substring(a,c)),l.push(e.substring(c,c+i.length)),a=c+i.length)}return l.push(e.substring(a)),l}filterProxies(){this.filteredProxiesFromDiscovery=this.currentFilters.country||this.currentFilters.location||this.currentFilters.key?this.proxiesFromDiscovery.filter(e=>!(this.currentFilters.country&&(!e.country||!e.country.toUpperCase().includes(this.currentFilters.country.toUpperCase()))||this.currentFilters.location&&!e.location.toLowerCase().includes(this.currentFilters.location.toLowerCase())||this.currentFilters.key&&!e.address.toLowerCase().includes(this.currentFilters.key.toLowerCase()))):this.proxiesFromDiscovery,this.updateCurrentFilters(),this.updatePagination()}updateCurrentFilters(){if(this.currentFiltersTexts=[],this.currentFilters.country){const e=es[this.currentFilters.country.toUpperCase()]?es[this.currentFilters.country.toUpperCase()]:this.currentFilters.country.toUpperCase();this.currentFiltersTexts.push(["apps.vpn-socks-client-settings.filter-dialog.country","",e])}this.currentFilters.location&&this.currentFiltersTexts.push(["apps.vpn-socks-client-settings.filter-dialog.location","",this.currentFilters.location]),this.currentFilters.key&&this.currentFiltersTexts.push(["apps.vpn-socks-client-settings.filter-dialog.pub-key","",this.currentFilters.key])}updatePagination(){this.currentPage=1,this.numberOfPages=Math.ceil(this.filteredProxiesFromDiscovery.length/this.maxElementsPerPage),this.showCurrentPage()}goToNextPage(){this.currentPage>=this.numberOfPages||(this.currentPage+=1,this.showCurrentPage())}goToPreviousPage(){this.currentPage<=1||(this.currentPage-=1,this.showCurrentPage())}showCurrentPage(){this.proxiesFromDiscoveryToShow=this.filteredProxiesFromDiscovery.slice((this.currentPage-1)*this.maxElementsPerPage,this.currentPage*this.maxElementsPerPage),this.currentRange=(this.currentPage-1)*this.maxElementsPerPage+1+" - ",this.currentRange+=this.currentPage{1===o?this.useFromHistory(e):2===o?this.changeNote(e):3===o&&this.removeFromHistory(e.key)})}removeFromHistory(e){const o=Rt.createConfirmationDialog(this.dialog,"apps.vpn-socks-client-settings.remove-from-history-confirmation");o.componentInstance.operationAccepted.subscribe(()=>{this.history=this.history.filter(s=>s.key!==e);const r=JSON.stringify(this.history);this.storageService.setDataForHv(this.configuringVpn?this.vpnHistoryStorageKey:this.socksHistoryStorageKey,r),o.close()})}changeNote(e){Dke.openDialog(this.dialog,e.note).afterClosed().subscribe(i=>{if(i){i=i.substr(1,i.length-1),this.history.forEach(r=>{r.key===e.key&&(r.note=i)});const o=JSON.stringify(this.history);this.storageService.setDataForHv(this.configuringVpn?this.vpnHistoryStorageKey:this.socksHistoryStorageKey,o),i?this.snackbarService.showDone("apps.vpn-socks-client-settings.changes-made"):this.snackbarService.showWarning("apps.vpn-socks-client-settings.default-note-warning")}})}useFromHistory(e){e.hasPassword?Lke.openDialog(this.dialog).afterClosed().subscribe(i=>{i&&(i=i.substr(1,i.length-1),this.saveChanges(e.key,i,e.enteredManually,e.location,e.note))}):this.saveChanges(e.key,null,e.enteredManually,e.location,e.note)}saveChanges(e=null,i=null,o=null,r=null,s=null){if(!this.form.valid&&!e||this.working)return;o=!e||o,i=e?i:this.form.get("password").value,e=e||this.form.get("pk").value;const l=Rt.createConfirmationDialog(this.dialog,"apps.vpn-socks-client-settings.change-key-confirmation");l.componentInstance.operationAccepted.subscribe(()=>{l.close(),this.continueSavingChanges(e,i,o,r,s)})}saveSettings(){if(this.working)return;const e={killswitch:this.settingsForm.get("killswitch").value,dns:this.settingsForm.get("dns").value};this.settingsButton.showLoading(!1),this.button.showLoading(!1),this.working=!0,this.operationSubscription=this.appsService.changeAppSettings(ke.getCurrentNodeKey(),this.data.name,e).subscribe(()=>{this.initialKillswitchSetting=e.killswitch,this.initialDnsSetting=e.dns,this.snackbarService.showDone("apps.vpn-socks-client-settings.changes-made"),this.working=!1,this.settingsButton.reset(!1),this.button.reset(!1),ke.refreshCurrentDisplayedData()},i=>{this.working=!1,this.settingsButton.showError(!1),this.button.reset(!1),i=Qe(i),this.snackbarService.showError(i)})}copyPk(e){this.clipboardService.copy(e)?this.snackbarService.showDone("apps.vpn-socks-client-settings.copied-pk-info"):this.snackbarService.showError("apps.vpn-socks-client-settings.copy-pk-error")}continueSavingChanges(e,i,o,r,s){if(this.working)return;this.button.showLoading(!1),this.settingsButton&&this.settingsButton.showLoading(!1),this.working=!0;const a={pk:e};this.configuringVpn&&(a.passcode=i||""),this.operationSubscription=this.appsService.changeAppSettings(ke.getCurrentNodeKey(),this.data.name,a).subscribe(()=>this.onServerDataChangeSuccess(e,!!i,o,r,s),l=>this.onServerDataChangeError(l))}onServerDataChangeSuccess(e,i,o,r,s){this.history=this.history.filter(c=>c.key!==e);const a={key:e,enteredManually:o};if(i&&(a.hasPassword=i),r&&(a.location=r),s&&(a.note=s),this.history=[a].concat(this.history),this.history.length>this.maxHistoryElements){const c=this.history.length-this.maxHistoryElements;this.history.splice(this.history.length-c,c)}this.form.get("pk").setValue(e);const l=JSON.stringify(this.history);this.storageService.setDataForHv(this.configuringVpn?this.vpnHistoryStorageKey:this.socksHistoryStorageKey,l),ke.refreshCurrentDisplayedData(),this.snackbarService.showDone("apps.vpn-socks-client-settings.changes-made"),this.working=!1,this.button.reset(!1),this.settingsButton&&this.settingsButton.reset(!1)}onServerDataChangeError(e){this.working=!1,this.button.showError(!1),this.settingsButton&&this.settingsButton.reset(!1),e=Qe(e),this.snackbarService.showError(e)}static{this.\u0275fac=function(i){return new(i||t)(O(En),O(Bt),O(Rs),O(di),O(ct),O(Ot),O(Bke),O(np),O(ti))}}static{this.\u0275cmp=re({type:t,selectors:[["app-skysocks-client-settings"]],viewQuery:function(i,o){if(1&i&&ot(gDe,5)(_De,5)(bDe,5)(vDe,5),2&i){let r;he(r=fe())&&(o.button=r.first),he(r=fe())&&(o.settingsButton=r.first),he(r=fe())&&(o.firstInput=r.first),he(r=fe())&&(o.tabGroup=r.first)}},standalone:!1,decls:38,vars:38,consts:[["content",""],["tabGroup",""],["firstInput",""],["button",""],["settingsButton",""],[3,"headline","dialog","disableDismiss","includeVerticalMargins","includeScrollableArea"],[3,"tabChanged","tabNames","selectedTab"],[3,"selectedIndexChange"],[3,"label"],[3,"formGroup"],[3,"ngClass"],[1,"field-container"],["for","remoteKey",1,"field-label"],["id","pk","formControlName","pk","maxlength","66","matInput",""],[1,"password-history-warning"],["color","primary",1,"float-right",3,"action","disabled"],[1,"loading-indicator",3,"showWhite"],[1,"info-text"],[1,"paginator"],[1,"d-flex"],["id","password","type","password","formControlName","password","maxlength","100","matInput",""],[3,"inline"],["mat-button","",1,"list-button","grey-button-background","w-100",3,"click"],[1,"filter-button-content"],[1,"icon-area"],[1,"item"],[1,"blue-part"],["mat-button","",1,"list-button","grey-button-background","w-100",3,"click","ngClass"],[1,"button-content"],["mat-button","",1,"list-button","grey-button-background",3,"click","matTooltip"],[1,"option-button-icon",3,"inline"],[1,"flag-container"],["mat-icon-button","",1,"hard-grey-button-background",3,"click"],["mat-button","",1,"list-button","grey-button-background","w-100","d-none","d-md-inline",3,"click","ngClass"],[4,"ngTemplateOutlet"],["mat-button","",1,"list-button","grey-button-background","d-none","d-md-inline",3,"click","matTooltip"],["mat-button","",1,"list-button","grey-button-background","w-100","d-md-none",3,"click","ngClass"],[1,"button-content","d-flex"],[1,"full-size-area"],[1,"options-container"],[1,"small-button","d-md-none"],["formControlName","dns","maxlength","15","matInput",""],[1,"main-theme","settings-option"],["color","primary","formControlName","killswitch",3,"ngClass"],[1,"help-icon",3,"inline","matTooltip"],[1,"settings-changed-warning"]],template:function(i,o){1&i&&(h(0,"app-dialog",5),b(1,"translate"),h(2,"app-tab-selector",6),F("tabChanged",function(s){return o.tabChangeRequested(s)}),u(),h(3,"mat-dialog-content",null,0)(5,"mat-tab-group",7,1),F("selectedIndexChange",function(){return o.tabIdexChanged()}),h(7,"mat-tab",8),b(8,"translate"),h(9,"form",9)(10,"mat-form-field",10)(11,"div",11)(12,"label",12),p(13),b(14,"translate"),u(),B(15,"input",13,2),u(),h(17,"mat-error"),x(18,wDe,3,3,"span")(19,xDe,3,3,"span"),u()(),x(20,SDe,6,6,"mat-form-field",10),x(21,kDe,5,4,"div",14),h(22,"app-button",15,3),F("action",function(){return o.saveChanges()}),p(24),b(25,"translate"),u()()(),h(26,"mat-tab",8),b(27,"translate"),x(28,DDe,1,1,"app-loading-indicator",16),x(29,MDe,5,4,"div",17),x(30,BDe,15,6),x(31,VDe,10,7,"div",18),u(),h(32,"mat-tab",8),b(33,"translate"),x(34,HDe,6,7,"div"),ve(35,YDe,15,16,"div",19,Fe),u(),x(37,QDe,23,26,"mat-tab",8),u()()()),2&i&&(C("headline",y(1,24,"apps.vpn-socks-client-settings."+(o.configuringVpn?"vpn-title":"socks-title")))("dialog",o.dialogRef)("disableDismiss",o.disableDismiss)("includeVerticalMargins",!1)("includeScrollableArea",!1),d(2),C("tabNames",o.tabLabels)("selectedTab",o.currentTab),d(5),C("label",y(8,26,o.tabLabels[0])),d(2),C("formGroup",o.form),d(),C("ngClass",se(36,Dc,o.disableDismiss)),d(3),M(y(14,28,"apps.vpn-socks-client-settings.public-key")),d(5),S(o.form.get("pk").hasError("pattern")?19:18),d(2),S(o.configuringVpn?20:-1),d(),S(o.form&&o.form.get("password").value?21:-1),d(),C("disabled",!o.form.valid||o.working),d(2),E(" ",y(25,30,"apps.vpn-socks-client-settings.save")," "),d(2),C("label",y(27,32,o.tabLabels[1])),d(2),S(o.loadingFromDiscovery?28:-1),d(),S(o.loadingFromDiscovery||0!==o.proxiesFromDiscovery.length?-1:29),d(),S(!o.loadingFromDiscovery&&o.proxiesFromDiscovery.length>0?30:-1),d(),S(o.numberOfPages>1?31:-1),d(),C("label",y(33,34,o.tabLabels[2])),d(2),S(0===o.history.length?34:-1),d(),ye(o.history),d(2),S(o.configuringVpn?37:-1))},dependencies:[$t,Ld,xn,Gt,qt,wn,wi,on,mn,Jd,sn,Ma,In,XH,hDe,Pn,Wo,We,Kt,kr,ui,gn,Yr,mDe,xe],styles:["mat-tab-header{border-bottom:solid 1px rgba(0,0,0,.12)}@media(max-width:767px){ mat-tab-header{display:none!important}}app-tab-selector[_ngcontent-%COMP%]{display:none}@media(max-width:767px){app-tab-selector[_ngcontent-%COMP%]{display:block!important}}form[_ngcontent-%COMP%]{margin-top:15px}.info-text[_ngcontent-%COMP%]{margin-top:20px;margin-bottom:2px;text-align:center;color:#202226}.info-text[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:5px}.loading-indicator[_ngcontent-%COMP%]{height:100px}.password-history-warning[_ngcontent-%COMP%]{font-size:.7rem;opacity:.7;position:relative;top:-5px}.list-button[_ngcontent-%COMP%]{border-bottom:solid 1px rgba(0,0,0,.12);height:auto;justify-content:left}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%]{padding:15px 0;white-space:normal;line-height:1.3;color:#202226;text-align:left;display:flex;font-size:.8rem;word-break:break-word}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%] .icon-area[_ngcontent-%COMP%]{font-size:20px;margin-right:15px;color:#999;opacity:.4;align-self:center}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]{margin:4px 0}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:first-of-type{color:#999}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%] .blue-part[_ngcontent-%COMP%]{color:#215f9e}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%]{text-align:left;padding:15px 0;white-space:normal}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .full-size-area[_ngcontent-%COMP%]{flex-grow:1}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]{line-height:1.3;margin:4px 0;font-size:.8rem;color:#202226;word-break:break-all}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]:first-of-type{color:#999}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .highlighted[_ngcontent-%COMP%]{background-color:#ff0}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .options-container[_ngcontent-%COMP%]{flex-shrink:0;margin-left:5px;text-align:right;line-height:1}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .options-container[_ngcontent-%COMP%] .small-button[_ngcontent-%COMP%]{width:24px;height:24px;line-height:14px;font-size:14px;margin-left:5px}.list-button[_ngcontent-%COMP%] .option-button-icon[_ngcontent-%COMP%]{font-size:14px;margin:0!important;overflow:visible!important}.paginator[_ngcontent-%COMP%]{float:right;margin-top:15px;display:flex;align-items:center}@media(max-width:767px){.paginator[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{font-size:.7rem}}.paginator[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-left:5px;display:flex}.settings-option[_ngcontent-%COMP%]{margin-top:20px}.settings-option[_ngcontent-%COMP%] mat-checkbox[_ngcontent-%COMP%]{margin-bottom:15px}.settings-changed-warning[_ngcontent-%COMP%]{font-size:.7rem;opacity:.7;position:relative}"]})}}return t})();const eMe=["button"],tMe=t=>({name:t}),n6=t=>({"element-disabled":t}),i6=t=>({number:t});function nMe(t,n){if(1&t){const e=oe();Vr(0,4),h(1,"div",7)(2,"mat-form-field",8)(3,"div",9)(4,"label",10),p(5),b(6,"translate"),u(),B(7,"input",11),u()(),h(8,"mat-form-field",8)(9,"div",9)(10,"label",12),p(11),b(12,"translate"),u(),B(13,"input",13),u()(),h(14,"button",14),b(15,"translate"),F("click",function(){const o=j(e).$index;return U(v().removeSetting(o))}),h(16,"mat-icon",15),p(17,"close"),u()()(),cr()}if(2&t){const e=n.$index,i=v();d(),C("formGroupName",e),d(),C("ngClass",se(15,n6,i.disableDismiss)),d(3),M(pe(6,7,"apps.user-app-settings.name",se(17,i6,e+1))),d(3),C("ngClass",se(19,n6,i.disableDismiss)),d(3),M(pe(12,10,"apps.user-app-settings.value",se(21,i6,e+1))),d(3),C("matTooltip",y(15,13,"apps.user-app-settings.remove")),d(2),C("inline",!0)}}let iMe=(()=>{class t{static openDialog(e,i){const o=new nn;return o.data=i,o.autoFocus=!1,o.width=rt.mediumModalWidth,e.open(t,o)}constructor(e,i,o,r,s,a){this.data=e,this.appsService=i,this.formBuilder=o,this.dialogRef=r,this.snackbarService=s,this.dialog=a,this.appName="",this.appName=e.name}ngOnInit(){if(this.form=this.formBuilder.group({settings:this.formBuilder.array([])}),this.data.args&&this.data.args.length>0)for(let e=0;e{let s=r.get("name").value,a=r.get("value").value;s=s&&s.trim(),a=a&&a.trim(),s?(o[s]=a,i+=1):e=!0}),e||0===i){const s=Rt.createConfirmationDialog(this.dialog,"apps.user-app-settings."+(0===i?"empty-confirmation":"invalid-confirmation"));s.componentInstance.operationAccepted.subscribe(()=>{s.close(),this.continueSavingChanges(o)})}else this.continueSavingChanges(o)}continueSavingChanges(e){this.button.showLoading();const i={custom_setting:e};this.operationSubscription=this.appsService.changeAppSettings(ke.getCurrentNodeKey(),this.data.name,i).subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)})}onSuccess(){ke.refreshCurrentDisplayedData(),this.snackbarService.showDone("apps.user-app-settings.changes-made"),this.dialogRef.close()}onError(e){this.button.showError(),e=Qe(e),this.snackbarService.showError(e)}static{this.\u0275fac=function(i){return new(i||t)(O(En),O(Rs),O(di),O(Bt),O(ct),O(Ot))}}static{this.\u0275cmp=re({type:t,selectors:[["app-user-app-settings"]],viewQuery:function(i,o){if(1&i&&ot(eMe,5),2&i){let r;he(r=fe())&&(o.button=r.first)}},standalone:!1,decls:16,vars:19,consts:[["button",""],[3,"headline","dialog","disableDismiss"],[1,"info-container"],[3,"formGroup"],["formArrayName","settings"],[1,"add-setting",3,"click"],["color","primary",1,"float-right",3,"action","disabled"],[1,"settings-row",3,"formGroupName"],[3,"ngClass"],[1,"field-container"],["for","name",1,"field-label"],["id","name","formControlName","name","matInput",""],["for","value",1,"field-label"],["id","value","formControlName","value","matInput",""],["mat-button","",1,"transparent-button",3,"click","matTooltip"],[3,"inline"]],template:function(i,o){1&i&&(h(0,"app-dialog",1),b(1,"translate"),h(2,"div",2),p(3),b(4,"translate"),u(),h(5,"form",3),ve(6,nMe,18,23,"ng-container",4,Fe),u(),h(8,"div")(9,"a",5),F("click",function(){return o.addSetting()}),p(10),b(11,"translate"),u()(),h(12,"app-button",6,0),F("action",function(){return o.saveChanges()}),p(14),b(15,"translate"),u()()),2&i&&(C("headline",pe(1,8,"apps.user-app-settings.title",se(17,tMe,o.appName)))("dialog",o.dialogRef)("disableDismiss",o.disableDismiss),d(3),M(y(4,11,"apps.user-app-settings.info")),d(2),C("formGroup",o.form),d(),ye(o.settingsControls),d(4),E("+ ",y(11,13,"apps.user-app-settings.add")),d(2),C("disabled",!o.form.valid),d(2),E(" ",y(15,15,"apps.user-app-settings.save")," "))},dependencies:[$t,xn,Gt,qt,wn,on,mn,sc,du,sn,In,Pn,We,Kt,ui,gn,xe],styles:[".info-container[_ngcontent-%COMP%]{margin-bottom:10px}.settings-row[_ngcontent-%COMP%]{display:flex}mat-form-field[_ngcontent-%COMP%]{flex-grow:1;margin-right:10px}button[_ngcontent-%COMP%]{flex-shrink:0;width:50px;padding:0!important;align-self:center;border-radius:10px}button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin:0!important}.add-setting[_ngcontent-%COMP%]{color:#215f9e!important;cursor:pointer}"]})}}return t})();const oMe=["button"],o6=t=>({"element-disabled":t});let rMe=(()=>{class t{static openDialog(e,i){const o=new nn;return o.data=i,o.autoFocus=!1,o.width=rt.mediumModalWidth,e.open(t,o)}constructor(e,i,o,r,s,a){this.data=e,this.appsService=i,this.formBuilder=o,this.dialogRef=r,this.snackbarService=s,this.dialog=a}ngOnInit(){if(this.form=this.formBuilder.group({localhostOnly:[!0],port:["",Ne.compose([Ne.required,Ne.min(1025),Ne.max(65536)])]}),this.formSubscription=this.form.get("localhostOnly").valueChanges.subscribe(e=>{if(!e){this.form.get("localhostOnly").setValue(!0);const i=Rt.createConfirmationDialog(this.dialog,"apps.skychat-settings.non-localhost-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.componentInstance.closeModal(),this.form.get("localhostOnly").setValue(!1,{emitEvent:!1})})}}),this.data.args&&this.data.args.length>0)for(let e=0;e({"paginator-icons-fixer":t}),r6=(t,n)=>["/nodes",t,"apps-list",n],aMe=(t,n)=>({"small-node-list-margins":t,"full-node-list-margins":n}),lMe=t=>({"d-lg-none d-xl-table":t}),cMe=t=>({"d-lg-table d-xl-none":t}),s6=t=>({error:t}),dMe=(t,n)=>["/nodes",t,"apps-list",n,"1"];function uMe(t,n){1&t&&(h(0,"span",3),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"apps.apps-list.title-official")))}function hMe(t,n){1&t&&(h(0,"span",3),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"apps.apps-list.title-user")))}function fMe(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,v().$implicit.translatableValue)," ")}function pMe(t,n){1&t&&p(0),2&t&&E(" ",v().$implicit.value," ")}function mMe(t,n){if(1&t&&(h(0,"div",15)(1,"span"),p(2),b(3,"translate"),u(),x(4,fMe,2,3),x(5,pMe,1,1),u()),2&t){const e=n.$implicit;d(2),E("",y(3,3,e.filterName),": "),d(2),S(e.translatableValue?4:-1),d(),S(e.value?5:-1)}}function gMe(t,n){if(1&t){const e=oe();h(0,"div",14),F("click",function(){return j(e),U(v().dataFilterer.removeFilters())}),ve(1,mMe,6,5,"div",15,Fe),h(3,"div",16),p(4),b(5,"translate"),u()()}if(2&t){const e=v();d(),ye(e.dataFilterer.currentFiltersTexts),d(3),M(y(5,1,"filters.press-to-remove"))}}function _Me(t,n){if(1&t){const e=oe();h(0,"mat-icon",17),b(1,"translate"),F("click",function(){return j(e),U(v().dataFilterer.changeFilters())}),p(2,"filter_list"),u()}2&t&&C("inline",!0)("matTooltip",y(1,2,"filters.filter-action"))}function bMe(t,n){1&t&&(h(0,"mat-icon",8),p(1,"more_horiz"),u()),2&t&&(v(),C("matMenuTriggerFor",Hn(10)))}function vMe(t,n){if(1&t&&B(0,"app-paginator",12),2&t){const e=v();C("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",_t(4,r6,e.nodePK,e.showOfficialApps))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function yMe(t,n){if(1&t&&(h(0,"mat-icon",22),p(1),u()),2&t){const e=v(2);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function CMe(t,n){if(1&t&&(h(0,"mat-icon",22),p(1),u()),2&t){const e=v(2);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function wMe(t,n){if(1&t&&(h(0,"mat-icon",22),p(1),u()),2&t){const e=v(2);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function xMe(t,n){if(1&t&&(h(0,"mat-icon",22),p(1),u()),2&t){const e=v(2);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function SMe(t,n){if(1&t&&(B(0,"i",38),b(1,"translate")),2&t){const e=v().$implicit,i=v(2);Ze(i.getStateClass(e)),C("matTooltip",y(1,3,i.getStateTooltip(e)))}}function kMe(t,n){if(1&t&&(h(0,"mat-icon",34),b(1,"translate"),p(2,"warning"),u()),2&t){const e=v().$implicit;C("inline",!0)("matTooltip",pe(1,2,"apps.status-failed-tooltip",se(5,s6,e.detailedStatus?e.detailedStatus:"")))}}function DMe(t,n){if(1&t&&(h(0,"a",36)(1,"button",37),b(2,"translate"),h(3,"mat-icon",22),p(4,"open_in_browser"),u()()()),2&t){const e=v().$implicit;C("href",v(2).getLink(e),mo),d(),C("matTooltip",y(2,3,"apps.open")),d(2),C("inline",!0)}}function MMe(t,n){if(1&t){const e=oe();h(0,"button",35),b(1,"translate"),F("click",function(){j(e);const o=v().$implicit;return U(v(2).config(o))}),h(2,"mat-icon",22),p(3,"settings"),u()()}2&t&&(C("matTooltip",y(1,2,"apps.settings")),d(2),C("inline",!0))}function TMe(t,n){if(1&t){const e=oe();h(0,"tr")(1,"td",31)(2,"mat-checkbox",32),F("change",function(){const o=j(e).$implicit;return U(v(2).changeSelection(o))}),u()(),h(3,"td"),x(4,SMe,2,5,"i",33),x(5,kMe,3,7,"mat-icon",34),u(),h(6,"td"),p(7),u(),h(8,"td"),p(9),u(),h(10,"td")(11,"button",35),b(12,"translate"),F("click",function(){const o=j(e).$implicit;return U(v(2).changeAppAutostart(o))}),h(13,"mat-icon",22),p(14),u()()(),h(15,"td",24),x(16,DMe,5,5,"a",36),x(17,MMe,4,4,"button",37),h(18,"button",35),b(19,"translate"),F("click",function(){const o=j(e).$implicit;return U(v(2).viewLogs(o))}),h(20,"mat-icon",22),p(21,"list"),u()(),h(22,"button",35),b(23,"translate"),F("click",function(){const o=j(e).$implicit;return U(v(2).changeAppState(o))}),h(24,"mat-icon",22),p(25),u()()()()}if(2&t){const e=n.$implicit,i=v(2);d(2),C("checked",i.selections.get(e.name)),d(2),S(2!==e.status?4:-1),d(),S(2===e.status?5:-1),d(2),E(" ",e.name," "),d(2),E(" ",e.port," "),d(2),C("matTooltip",y(12,15,e.autostart?"apps.apps-list.disable-autostart":"apps.apps-list.enable-autostart")),d(2),C("inline",!0),d(),M(e.autostart?"done":"close"),d(2),S(i.getLink(e)?16:-1),d(),S(i.appsWithoutConfig.has(e.name)?-1:17),d(),C("matTooltip",y(19,17,"apps.view-logs")),d(2),C("inline",!0),d(2),C("matTooltip",y(23,19,"apps."+(0===e.status||2===e.status?"start-app":"stop-app"))),d(2),C("inline",!0),d(),M(0===e.status||2===e.status?"play_arrow":"stop")}}function EMe(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"tables.label")," ")}function PMe(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"tables.inverted-order")," ")}function IMe(t,n){if(1&t&&(h(0,"a",43),F("click",function(i){return i.stopPropagation()}),h(1,"button",44),b(2,"translate"),h(3,"mat-icon"),p(4,"open_in_browser"),u()()()),2&t){const e=v().$implicit;C("href",v(2).getLink(e),mo),d(),C("matTooltip",y(2,2,"apps.open"))}}function OMe(t,n){if(1&t){const e=oe();h(0,"tr")(1,"td")(2,"div",27)(3,"div",39)(4,"mat-checkbox",32),F("change",function(){const o=j(e).$implicit;return U(v(2).changeSelection(o))}),u()(),h(5,"div",28)(6,"div",40)(7,"span",2),p(8),b(9,"translate"),u(),p(10),u(),h(11,"div",40)(12,"span",2),p(13),b(14,"translate"),u(),p(15),u(),h(16,"div",40)(17,"span",2),p(18),b(19,"translate"),u(),p(20,": "),h(21,"span"),p(22),b(23,"translate"),u()(),h(24,"div",40)(25,"span",2),p(26),b(27,"translate"),u(),p(28,": "),h(29,"span"),p(30),b(31,"translate"),u()()(),B(32,"div",41),h(33,"div",29),x(34,IMe,5,4,"a",36),h(35,"button",42),b(36,"translate"),F("click",function(o){const r=j(e).$implicit,s=v(2);return o.stopPropagation(),U(s.showOptionsDialog(r))}),h(37,"mat-icon"),p(38),u()()()()()()}if(2&t){const e=n.$implicit,i=v(2);d(4),C("checked",i.selections.get(e.name)),d(4),M(y(9,16,"apps.apps-list.app-name")),d(2),E(": ",e.name," "),d(3),M(y(14,18,"apps.apps-list.port")),d(2),E(": ",e.port," "),d(3),M(y(19,20,"apps.apps-list.state")),d(3),Ze(i.getSmallScreenStateClass(e)+" title"),d(),E(" ",pe(23,22,i.getSmallScreenStateTextVar(e),se(31,s6,e.detailedStatus?e.detailedStatus:""))," "),d(4),M(y(27,25,"apps.apps-list.auto-start")),d(3),Ze((e.autostart?"green-clear-text":"red-clear-text")+" title"),d(),E(" ",y(31,27,e.autostart?"apps.apps-list.autostart-enabled":"apps.apps-list.autostart-disabled")," "),d(4),S(i.getLink(e)?34:-1),d(),C("matTooltip",y(36,29,"common.options")),d(3),M("add")}}function AMe(t,n){if(1&t&&B(0,"app-view-all-link",30),2&t){const e=v(2);C("numberOfElements",e.filteredApps.length)("linkParts",_t(3,dMe,e.nodePK,e.showOfficialApps))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function RMe(t,n){if(1&t){const e=oe();h(0,"div",13)(1,"div",18)(2,"table",19)(3,"tr"),B(4,"th"),h(5,"th",20),b(6,"translate"),F("click",function(){j(e);const o=v();return U(o.dataSorter.changeSortingOrder(o.stateSortData))}),B(7,"span",21),x(8,yMe,2,2,"mat-icon",22),u(),h(9,"th",23),F("click",function(){j(e);const o=v();return U(o.dataSorter.changeSortingOrder(o.nameSortData))}),p(10),b(11,"translate"),x(12,CMe,2,2,"mat-icon",22),u(),h(13,"th",23),F("click",function(){j(e);const o=v();return U(o.dataSorter.changeSortingOrder(o.portSortData))}),p(14),b(15,"translate"),x(16,wMe,2,2,"mat-icon",22),u(),h(17,"th",23),F("click",function(){j(e);const o=v();return U(o.dataSorter.changeSortingOrder(o.autoStartSortData))}),p(18),b(19,"translate"),x(20,xMe,2,2,"mat-icon",22),u(),B(21,"th",24),u(),ve(22,TMe,26,21,"tr",null,Fe),u(),h(24,"table",25)(25,"tr",26),F("click",function(){return j(e),U(v().dataSorter.openSortingOrderModal())}),h(26,"td")(27,"div",27)(28,"div",28)(29,"div",2),p(30),b(31,"translate"),u(),h(32,"div"),p(33),b(34,"translate"),x(35,EMe,2,3),x(36,PMe,2,3),u()(),h(37,"div",29)(38,"mat-icon",22),p(39,"keyboard_arrow_down"),u()()()()(),ve(40,OMe,39,33,"tr",null,Fe),u(),x(42,AMe,1,6,"app-view-all-link",30),u()()}if(2&t){const e=v();d(),C("ngClass",_t(29,aMe,e.showShortList_,!e.showShortList_)),d(),C("ngClass",se(32,lMe,e.showShortList_)),d(3),C("matTooltip",y(6,17,"apps.apps-list.state-tooltip")),d(3),S(e.dataSorter.currentSortingColumn===e.stateSortData?8:-1),d(2),E(" ",y(11,19,"apps.apps-list.app-name")," "),d(2),S(e.dataSorter.currentSortingColumn===e.nameSortData?12:-1),d(2),E(" ",y(15,21,"apps.apps-list.port")," "),d(2),S(e.dataSorter.currentSortingColumn===e.portSortData?16:-1),d(2),E(" ",y(19,23,"apps.apps-list.auto-start")," "),d(2),S(e.dataSorter.currentSortingColumn===e.autoStartSortData?20:-1),d(2),ye(e.dataSource),d(2),C("ngClass",se(34,cMe,e.showShortList_)),d(6),M(y(31,25,"tables.sorting-title")),d(3),E("",y(34,27,e.dataSorter.currentSortingColumn.label)," "),d(2),S(e.dataSorter.currentlySortingByLabel?35:-1),d(),S(e.dataSorter.sortingInReverseOrder?36:-1),d(2),C("inline",!0),d(2),ye(e.dataSource),d(2),S(e.showShortList_&&e.numberOfPages>1?42:-1)}}function FMe(t,n){1&t&&(h(0,"span",47),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"apps.apps-list.empty-official")))}function NMe(t,n){1&t&&(h(0,"span",47),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"apps.apps-list.empty-user")))}function LMe(t,n){1&t&&(h(0,"span",47),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"apps.apps-list.empty-with-filter")))}function BMe(t,n){if(1&t&&(h(0,"div",13)(1,"div",45)(2,"mat-icon",46),p(3,"warning"),u(),x(4,FMe,3,3,"span",47),x(5,NMe,3,3,"span",47),x(6,LMe,3,3,"span",47),u()()),2&t){const e=v();d(2),C("inline",!0),d(2),S(0===e.allAppsForType.length&&e.showOfficialApps?4:-1),d(),S(0!==e.allAppsForType.length||e.showOfficialApps?-1:5),d(),S(0!==e.allAppsForType.length?6:-1)}}function VMe(t,n){if(1&t&&B(0,"app-paginator",12),2&t){const e=v();C("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",_t(4,r6,e.nodePK,e.showOfficialApps))("queryParams",e.dataFilterer.currentUrlQueryParams)}}let a6=(()=>{class t{set showShortList(e){this.showShortList_=e,this.dataSorter&&this.dataSorter.setData(this.filteredApps)}set apps(e){this.allApps=e||[],this.allApps&&(this.allAppsForType=[],this.allApps.forEach(i=>{(this.showOfficialApps&&this.officialAppsList.has(i.name)||!this.showOfficialApps&&!this.officialAppsList.has(i.name))&&this.allAppsForType.push(i)}),this.dataFilterer&&this.dataFilterer.setData(this.allAppsForType))}constructor(e,i,o,r,s,a,l){this.appsService=e,this.dialog=i,this.route=o,this.router=r,this.snackbarService=s,this.translateService=a,this.storageService=l,this.listIdForOfficialApps="op",this.listIdForUserApps="up",this.officialAppsList=new Set(["skychat","skysocks","skysocks-client","vpn-client","vpn-server"]),this.showOfficialApps=!0,this.stateSortData=new Dt(["status"],"apps.apps-list.state",st.NumberReversed),this.nameSortData=new Dt(["name"],"apps.apps-list.app-name",st.Text),this.portSortData=new Dt(["port"],"apps.apps-list.port",st.Number),this.autoStartSortData=new Dt(["autostart"],"apps.apps-list.auto-start",st.Boolean),this.selections=new Map,this.appsWithoutConfig=new Set,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.filterProperties=[{filterName:"apps.apps-list.filter-dialog.state",keyNameInElementsArray:"status",type:Sn.Select,printableLabelsForValues:[{value:"",label:"apps.apps-list.filter-dialog.state-options.any"},{value:"1",label:"apps.apps-list.filter-dialog.state-options.running"},{value:"0",label:"apps.apps-list.filter-dialog.state-options.stopped"}]},{filterName:"apps.apps-list.filter-dialog.name",keyNameInElementsArray:"name",type:Sn.TextInput,maxlength:50},{filterName:"apps.apps-list.filter-dialog.port",keyNameInElementsArray:"port",type:Sn.TextInput,maxlength:8},{filterName:"apps.apps-list.filter-dialog.autostart",keyNameInElementsArray:"autostart",type:Sn.Select,printableLabelsForValues:[{value:"",label:"apps.apps-list.filter-dialog.autostart-options.any"},{value:"true",label:"apps.apps-list.filter-dialog.autostart-options.enabled"},{value:"false",label:"apps.apps-list.filter-dialog.autostart-options.disabled"}]}],this.refreshAgain=!1,this.operationSubscriptionsGroup=[],this.navigationsSubscription=this.route.paramMap.subscribe(c=>{if(c.has("showOfficialApps")&&(this.showOfficialApps=c.get("showOfficialApps").toUpperCase()==="true".toUpperCase()),c.has("page")){let f=Number.parseInt(c.get("page"),10);(isNaN(f)||f<1)&&(f=1),this.currentPageInUrl=f,this.recalculateElementsToShow()}})}ngOnInit(){const e=this.showOfficialApps?this.listIdForOfficialApps:this.listIdForUserApps;this.dataSorter=new gu(this.dialog,this.translateService,this.storageService,[this.stateSortData,this.nameSortData,this.portSortData,this.autoStartSortData],1,e),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataSorter&&this.dataSorter.setData(this.filteredApps),this.dataFilterer=new _u(this.dialog,this.route,this.router,this.filterProperties,e),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(o=>{this.filteredApps=o,this.dataSorter.setData(this.filteredApps)}),this.allAppsForType&&this.dataFilterer.setData(this.allAppsForType)}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.operationSubscriptionsGroup.forEach(e=>e.unsubscribe()),this.dataSortedSubscription.unsubscribe(),this.dataFiltererSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFilterer.dispose()}getLink(e){if("skychat"===e.name.toLocaleLowerCase()&&this.nodeIp&&0!==e.status&&2!==e.status){let i="8001",o="127.0.0.1";if(e.args)for(let r=0;r{i&&(e=!0)}),e}changeAllSelections(e){this.selections.forEach((i,o)=>{this.selections.set(o,e)})}changeStateOfSelected(e){const i=[];this.selections.forEach((o,r)=>{o&&(e&&(0===this.appsMap.get(r).status||2===this.appsMap.get(r).status)||!e&&0!==this.appsMap.get(r).status&&2!==this.appsMap.get(r).status)&&i.push(r)}),this.changeAppsValRecursively(i,!1,e)}changeAutostartOfSelected(e){const i=[];this.selections.forEach((o,r)=>{o&&(e&&!this.appsMap.get(r).autostart||!e&&this.appsMap.get(r).autostart)&&i.push(r)}),0!==i.length&&this.changeAppsValRecursively(i,!0,e,null)}showOptionsDialog(e){const i=[{icon:"list",label:"apps.view-logs"},{icon:0===e.status||2===e.status?"play_arrow":"stop",label:"apps."+(0===e.status||2===e.status?"start-app":"stop-app")},{icon:e.autostart?"close":"done",label:e.autostart?"apps.apps-list.disable-autostart":"apps.apps-list.enable-autostart"}];this.appsWithoutConfig.has(e.name)||i.push({icon:"settings",label:"apps.settings"}),ao.openDialog(this.dialog,i,"common.options").afterClosed().subscribe(o=>{1===o?this.viewLogs(e):2===o?this.changeAppState(e):3===o?this.changeAppAutostart(e):4===o&&this.config(e)})}changeAppState(e){this.changeSingleAppVal(this.startChangingAppState(e.name,0===e.status||2===e.status))}changeAppAutostart(e){this.changeSingleAppVal(this.startChangingAppAutostart(e.name,!e.autostart))}changeSingleAppVal(e,i=null){this.operationSubscriptionsGroup.push(e.subscribe(()=>{i&&i.close(),setTimeout(()=>{this.refreshAgain=!0,ke.refreshCurrentDisplayedData()},50),this.snackbarService.showDone("apps.operation-completed")},o=>{o=Qe(o),setTimeout(()=>{this.refreshAgain=!0,ke.refreshCurrentDisplayedData()},50),i?i.componentInstance.showDone("confirmation.error-header-text",o.translatableErrorMsg):this.snackbarService.showError(o)}))}viewLogs(e){0!==e.status&&2!==e.status?vke.openDialog(this.dialog,e):this.snackbarService.showError("apps.apps-list.unavailable-logs-error")}config(e){"skychat"===e.name?rMe.openDialog(this.dialog,e):"skysocks"===e.name||"vpn-server"===e.name?Ske.openDialog(this.dialog,e):"skysocks-client"===e.name||"vpn-client"===e.name?JDe.openDialog(this.dialog,e):iMe.openDialog(this.dialog,e)}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredApps){const e=this.showShortList_?rt.maxShortListElements:rt.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredApps.length/e),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const i=e*(this.currentPage-1);this.appsToShow=this.filteredApps.slice(i,i+e),this.appsMap=new Map,this.appsToShow.forEach(s=>{this.appsMap.set(s.name,s),this.selections.has(s.name)||this.selections.set(s.name,!1)});const r=[];this.selections.forEach((s,a)=>{this.appsMap.has(a)||r.push(a)}),r.forEach(s=>{this.selections.delete(s)})}else this.appsToShow=null,this.selections=new Map;this.dataSource=this.appsToShow,this.refreshAgain&&(this.refreshAgain=!1,setTimeout(()=>ke.refreshCurrentDisplayedData(),2e3))}startChangingAppState(e,i){return this.appsService.changeAppState(ke.getCurrentNodeKey(),e,i).pipe(Se(o=>(null!=o.status&&this.dataSource.forEach(r=>{r.name===e&&(r.status=o.status,r.detailedStatus=o.detailed_status)}),o)))}startChangingAppAutostart(e,i){return this.appsService.changeAppAutostart(ke.getCurrentNodeKey(),e,i)}changeAppsValRecursively(e,i,o,r=null){if(!e||0===e.length)return setTimeout(()=>ke.refreshCurrentDisplayedData(),50),this.snackbarService.showWarning("apps.operation-unnecessary"),void(r&&r.close());let s;s=i?this.startChangingAppAutostart(e[e.length-1],o):this.startChangingAppState(e[e.length-1],o),this.operationSubscriptionsGroup.push(s.subscribe(()=>{e.pop(),0===e.length?(r&&r.close(),setTimeout(()=>{this.refreshAgain=!0,ke.refreshCurrentDisplayedData()},50),this.snackbarService.showDone("apps.operation-completed")):this.changeAppsValRecursively(e,i,o,r)},a=>{a=Qe(a),setTimeout(()=>{this.refreshAgain=!0,ke.refreshCurrentDisplayedData()},50),r?r.componentInstance.showDone("confirmation.error-header-text",a.translatableErrorMsg):this.snackbarService.showError(a)}))}static{this.\u0275fac=function(i){return new(i||t)(O(Rs),O(Ot),O(Ai),O(vt),O(ct),O(Go),O(ti))}}static{this.\u0275cmp=re({type:t,selectors:[["app-node-app-list"]],inputs:{nodePK:"nodePK",nodeIp:"nodeIp",showOfficialApps:"showOfficialApps",showShortList:"showShortList",apps:"apps"},standalone:!1,decls:33,vars:39,consts:[["selectionMenu","matMenu"],[1,"generic-title-container","mt-4.5","d-flex",3,"ngClass"],[1,"title"],[1,"uppercase"],[1,"filter-label","subtle-transparent-button","cursor-pointer"],[1,"options"],[1,"options-container"],[1,"small-icon",3,"inline","matTooltip"],[3,"matMenuTriggerFor"],[3,"overlapTrigger"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"click","disabled"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"rounded-elevated-box","mt-3"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],[1,"item"],[1,"transparent-50"],[1,"small-icon",3,"click","inline","matTooltip"],[1,"box-internal-container","overflow",3,"ngClass"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table",3,"ngClass"],[1,"sortable-column",3,"click","matTooltip"],[1,"dot-outline-white"],[3,"inline"],[1,"sortable-column",3,"click"],[1,"actions"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none",3,"ngClass"],[1,"selectable",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],[3,"numberOfElements","linkParts","queryParams"],[1,"selection-col"],[3,"change","checked"],[3,"class","matTooltip"],[1,"red-text",3,"inline","matTooltip"],["mat-button","",1,"big-action-button","transparent-button",3,"click","matTooltip"],["target","_blank","rel","noreferrer nofollow noopener",1,"skychat-link",3,"href"],["mat-button","",1,"big-action-button","transparent-button",3,"matTooltip"],[3,"matTooltip"],[1,"check-part"],[1,"list-row"],[1,"margin-part"],["mat-icon-button","",1,"transparent-button",3,"click","matTooltip"],["target","_blank","rel","noreferrer nofollow noopener",1,"skychat-link",3,"click","href"],["mat-icon-button","",1,"transparent-button",3,"matTooltip"],[1,"box-internal-container"],[1,"alert-icon",3,"inline"],[1,"font-sm"]],template:function(i,o){1&i&&(h(0,"div",1)(1,"div",2),x(2,uMe,3,3,"span",3),x(3,hMe,3,3,"span",3),x(4,gMe,6,3,"div",4),u(),h(5,"div",5)(6,"div",6),x(7,_Me,3,4,"mat-icon",7),x(8,bMe,2,1,"mat-icon",8),h(9,"mat-menu",9,0)(11,"div",10),F("click",function(){return o.changeAllSelections(!0)}),p(12),b(13,"translate"),u(),h(14,"div",10),F("click",function(){return o.changeAllSelections(!1)}),p(15),b(16,"translate"),u(),h(17,"div",11),F("click",function(){return o.changeStateOfSelected(!0)}),p(18),b(19,"translate"),u(),h(20,"div",11),F("click",function(){return o.changeStateOfSelected(!1)}),p(21),b(22,"translate"),u(),h(23,"div",11),F("click",function(){return o.changeAutostartOfSelected(!0)}),p(24),b(25,"translate"),u(),h(26,"div",11),F("click",function(){return o.changeAutostartOfSelected(!1)}),p(27),b(28,"translate"),u()()(),x(29,vMe,1,7,"app-paginator",12),u()(),x(30,RMe,43,36,"div",13),x(31,BMe,7,4,"div",13),x(32,VMe,1,7,"app-paginator",12)),2&i&&(C("ngClass",se(37,sMe,!o.showShortList_&&o.numberOfPages>1&&o.dataSource)),d(2),S(o.showShortList_&&o.showOfficialApps?2:-1),d(),S(o.showShortList_&&!o.showOfficialApps?3:-1),d(),S(o.dataFilterer.currentFiltersTexts&&o.dataFilterer.currentFiltersTexts.length>0?4:-1),d(3),S(o.allAppsForType&&o.allAppsForType.length>0?7:-1),d(),S(o.dataSource&&o.dataSource.length>0?8:-1),d(),C("overlapTrigger",!1),d(3),E(" ",y(13,25,"selection.select-all")," "),d(3),E(" ",y(16,27,"selection.unselect-all")," "),d(2),C("disabled",Qt(!o.hasSelectedElements())),d(),E(" ",y(19,29,"selection.start-all")," "),d(2),C("disabled",Qt(!o.hasSelectedElements())),d(),E(" ",y(22,31,"selection.stop-all")," "),d(2),C("disabled",Qt(!o.hasSelectedElements())),d(),E(" ",y(25,33,"selection.enable-autostart-all")," "),d(2),C("disabled",Qt(!o.hasSelectedElements())),d(),E(" ",y(28,35,"selection.disable-autostart-all")," "),d(2),S(!o.showShortList_&&o.numberOfPages>1&&o.dataSource?29:-1),d(),S(o.dataSource&&o.dataSource.length>0?30:-1),d(),S(o.dataSource&&0!==o.dataSource.length?-1:31),d(),S(!o.showShortList_&&o.numberOfPages>1&&o.dataSource?32:-1))},dependencies:[$t,Pn,Wo,We,Kt,Jr,As,vu,kr,_V,mv,xe],styles:[".actions[_ngcontent-%COMP%]{text-align:right;width:150px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}.skychat-link[_ngcontent-%COMP%]{color:#f8f9f9;text-decoration:none}.skychat-link[_ngcontent-%COMP%] .big-action-button[_ngcontent-%COMP%]{margin-right:5px}"]})}}return t})(),HMe=(()=>{class t extends pn{ngOnInit(){return this.dataSubscription=ke.currentNode.subscribe(e=>{this.nodePK=e.localPk,this.apps=e.apps,this.nodeIp=e.ip}),super.ngOnInit()}ngOnDestroy(){this.dataSubscription.unsubscribe()}static{this.\u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})()}static{this.\u0275cmp=re({type:t,selectors:[["app-apps"]],standalone:!1,features:[be],decls:2,vars:10,consts:[[3,"showOfficialApps","apps","showShortList","nodePK","nodeIp"]],template:function(i,o){1&i&&B(0,"app-node-app-list",0)(1,"app-node-app-list",0),2&i&&(C("showOfficialApps",!0)("apps",o.apps)("showShortList",!0)("nodePK",o.nodePK)("nodeIp",o.nodeIp),d(),C("showOfficialApps",!1)("apps",o.apps)("showShortList",!0)("nodePK",o.nodePK)("nodeIp",o.nodeIp))},dependencies:[a6],encapsulation:2})}}return t})();function jMe(t,n){if(1&t&&(h(0,"span",4),p(1),u()),2&t){const e=v();d(),Xg(" ",e.host.hostname," \xb7 ",e.host.platform||e.host.os," ",e.host.arch," \xb7 uptime ",e.fmtUptime(e.host.uptime_seconds)," ")}}function UMe(t,n){if(1&t&&(h(0,"div",13),p(1),b(2,"number"),u()),2&t){const e=v(3);d(),gt("",e.host.cpu_logical_count," cores \xb7 visor ",pe(2,2,e.procCPUPercent,"1.0-1"),"%")}}function zMe(t,n){if(1&t&&(h(0,"div",13),p(1),b(2,"number"),u()),2&t){const e=v(3);d(),Uh(" ",e.fmtBytes(e.host.mem_used)," / ",e.fmtBytes(e.host.mem_total)," \xb7 visor RSS ",pe(2,3,e.procMemRssMB,"1.0-0"),"M ")}}function $Me(t,n){if(1&t&&(h(0,"div",13),p(1),u()),2&t){const e=v(3);d(),gt("",e.fmtBytes(e.host.disk_used)," / ",e.fmtBytes(e.host.disk_total)," on /")}}function WMe(t,n){if(1&t&&(h(0,"div",13),p(1),u()),2&t){const e=v(3);d(),gt(" fds ",e.host.process.num_fds||"-"," \xb7 conns ",e.host.process.open_conns||0," ")}}function GMe(t,n){if(1&t&&(h(0,"div",7)(1,"div",8)(2,"div",9)(3,"span",10),p(4),b(5,"translate"),u(),h(6,"span",11),p(7),b(8,"number"),u()(),B(9,"app-line-chart",12),x(10,UMe,3,5,"div",13),u(),h(11,"div",8)(12,"div",9)(13,"span",10),p(14),b(15,"translate"),u(),h(16,"span",11),p(17),b(18,"number"),u()(),B(19,"app-line-chart",12),x(20,zMe,3,6,"div",13),u(),h(21,"div",8)(22,"div",9)(23,"span",10),p(24),b(25,"translate"),u(),h(26,"span",11),p(27),b(28,"number"),u()(),B(29,"app-line-chart",12),x(30,$Me,2,2,"div",13),u(),h(31,"div",8)(32,"div",9)(33,"span",10),p(34),b(35,"translate"),u(),h(36,"span",11),p(37),u()(),B(38,"app-line-chart",14),h(39,"div",13),p(40),u()(),h(41,"div",8)(42,"div",9)(43,"span",10),p(44),b(45,"translate"),u(),h(46,"span",11),p(47),u()(),B(48,"app-line-chart",14),h(49,"div",13),p(50),u()(),h(51,"div",8)(52,"div",9)(53,"span",10),p(54),b(55,"translate"),u(),h(56,"span",11),p(57),u()(),B(58,"app-line-chart",14),x(59,WMe,2,2,"div",13),u()()),2&t){const e=v(2);d(4),M(y(5,36,"node.resource-monitor.cpu")),d(3),E("",e.host?pe(8,38,e.host.cpu_percent,"1.0-1"):"-","%"),d(2),C("data",e.cpuPctSeries)("min",0)("max",100)("height",60),d(),S(e.host?10:-1),d(4),M(y(15,41,"node.resource-monitor.memory")),d(3),E("",e.host?pe(18,43,e.host.mem_percent,"1.0-1"):"-","%"),d(2),C("data",e.memPctSeries)("min",0)("max",100)("height",60),d(),S(e.host?20:-1),d(4),M(y(25,46,"node.resource-monitor.disk")),d(3),E("",e.host&&e.host.disk_percent?pe(28,48,e.host.disk_percent,"1.0-1"):"-","%"),d(2),C("data",e.diskPctSeries)("min",0)("max",100)("height",60),d(),S(e.host&&e.host.disk_total?30:-1),d(4),M(y(35,51,"node.resource-monitor.net-rx")),d(3),M(e.fmtBps(e.netRxBpsSeries[e.netRxBpsSeries.length-1])),d(),C("data",e.netRxBpsSeries)("height",60),d(2),E("",e.host?e.fmtBytes(e.host.net_bytes_recv):"-"," total"),d(4),M(y(45,53,"node.resource-monitor.net-tx")),d(3),M(e.fmtBps(e.netTxBpsSeries[e.netTxBpsSeries.length-1])),d(),C("data",e.netTxBpsSeries)("height",60),d(2),E("",e.host?e.fmtBytes(e.host.net_bytes_sent):"-"," total"),d(4),M(y(55,55,"node.resource-monitor.threads")),d(3),M(e.host&&e.host.process?e.host.process.num_threads:"-"),d(),C("data",e.threadsSeries)("height",60),d(),S(e.host&&e.host.process?59:-1)}}function qMe(t,n){if(1&t&&(h(0,"div",13),p(1),u()),2&t){const e=v(3);d(),gt("heap_sys ",e.fmtBytes(e.proc.mem_heap_sys)," \xb7 sys ",e.fmtBytes(e.proc.mem_sys))}}function KMe(t,n){if(1&t&&(h(0,"div",13),p(1),u()),2&t){const e=v(3);d(),gt("GOMAXPROCS ",e.proc.gomaxprocs," \xb7 ",e.proc.go_version)}}function YMe(t,n){if(1&t&&(h(0,"div",13),p(1),u()),2&t){const e=v(3);d(),gt("total ",e.proc.num_gc," GCs \xb7 alloc ",e.fmtBytes(e.proc.mem_total_alloc)," since start")}}function XMe(t,n){if(1&t&&(h(0,"div",7)(1,"div",8)(2,"div",9)(3,"span",10),p(4),b(5,"translate"),u(),h(6,"span",11),p(7),b(8,"number"),u()(),B(9,"app-line-chart",14),x(10,qMe,2,2,"div",13),u(),h(11,"div",8)(12,"div",9)(13,"span",10),p(14),b(15,"translate"),u(),h(16,"span",11),p(17),u()(),B(18,"app-line-chart",14),x(19,KMe,2,2,"div",13),u(),h(20,"div",8)(21,"div",9)(22,"span",10),p(23),b(24,"translate"),u(),h(25,"span",11),p(26),u()(),B(27,"app-line-chart",14),x(28,YMe,2,2,"div",13),u()()),2&t){const e=v(2);d(4),M(y(5,15,"node.resource-monitor.heap")),d(3),E("",e.proc?pe(8,17,e.proc.mem_heap_alloc/1024/1024,"1.0-1"):"-","M"),d(2),C("data",e.heapMbSeries)("height",60),d(),S(e.proc?10:-1),d(4),M(y(15,20,"node.resource-monitor.goroutines")),d(3),M(e.proc?e.proc.num_goroutine:"-"),d(),C("data",e.goroutinesSeries)("height",60),d(),S(e.proc?19:-1),d(4),M(y(24,22,"node.resource-monitor.gc")),d(3),E("",e.gcSeries[e.gcSeries.length-1]||0,"/s"),d(),C("data",e.gcSeries)("height",60),d(),S(e.proc?28:-1)}}function ZMe(t,n){if(1&t){const e=oe();h(0,"div",5)(1,"span",6),F("click",function(){return j(e),U(v().setTab("host"))}),p(2),b(3,"translate"),u(),h(4,"span",6),F("click",function(){return j(e),U(v().setTab("process"))}),p(5),b(6,"translate"),u()(),x(7,GMe,60,57,"div",7),x(8,XMe,29,24,"div",7)}if(2&t){const e=v();d(),Ie("active","host"===e.activeTab),d(),E(" ",y(3,8,"node.resource-monitor.tab-host")," "),d(2),Ie("active","process"===e.activeTab),d(),E(" ",y(6,10,"node.resource-monitor.tab-process")," "),d(2),S("host"===e.activeTab?7:-1),d(),S("process"===e.activeTab?8:-1)}}let JMe=(()=>{class t{constructor(e,i){this.nodeService=e,this.cdr=i,this.openByDefault=!1,this.expanded=!1,this.activeTab="host",this.host=null,this.proc=null,this.procCPUPercent=0,this.procMemRssMB=0,this.cpuPctSeries=[],this.memPctSeries=[],this.diskPctSeries=[],this.netRxBpsSeries=[],this.netTxBpsSeries=[],this.goroutinesSeries=[],this.heapMbSeries=[],this.gcSeries=[],this.threadsSeries=[],this.prevNetRx=0,this.prevNetTx=0,this.prevGc=0,this.prevSampleAtMs=0,this.firstHostSample=!0,this.firstProcSample=!0}ngOnInit(){this.openByDefault&&(this.expanded=!0,this.startPolling())}ngOnDestroy(){this.stopPolling()}toggleExpanded(){this.expanded=!this.expanded,this.expanded?this.startPolling():this.stopPolling()}setTab(e){this.activeTab=e}fmtBytes(e){return null==e||isNaN(e)?"-":e>=1e9?(e/1e9).toFixed(1)+"G":e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":e.toFixed(0)+"B"}fmtBps(e){return null==e||isNaN(e)||e<0?"0B/s":this.fmtBytes(e)+"/s"}fmtUptime(e){if(!e)return"-";const i=Math.floor(e/86400),o=Math.floor(e%86400/3600),r=Math.floor(e%3600/60);return i>0?`${i}d ${o}h`:o>0?`${o}h ${r}m`:`${r}m`}startPolling(){this.stopPolling(),this.firstHostSample=!0,this.firstProcSample=!0,this.prevSampleAtMs=0,this.pollSub=xa(0,1e3).subscribe(()=>{this.pollHost(),this.pollProc()})}stopPolling(){this.pollSub&&(this.pollSub.unsubscribe(),this.pollSub=null),this.hostSub&&(this.hostSub.unsubscribe(),this.hostSub=null),this.procSub&&(this.procSub.unsubscribe(),this.procSub=null)}pollHost(){this.nodeKey&&(this.hostSub&&this.hostSub.unsubscribe(),this.hostSub=this.nodeService.getHostStats(this.nodeKey).subscribe(e=>this.onHostStats(e),()=>{}))}pollProc(){this.nodeKey&&(this.procSub&&this.procSub.unsubscribe(),this.procSub=this.nodeService.getRuntimeStats(this.nodeKey).subscribe(e=>this.onRuntimeStats(e),()=>{}))}onHostStats(e){this.host=e,this.procCPUPercent=e.process?e.process.cpu_percent:0,this.procMemRssMB=e.process?e.process.mem_rss/1024/1024:0;const i=Date.now();let o=(i-this.prevSampleAtMs)/1e3;if((o<=0||o>5)&&(o=1),this.prevSampleAtMs=i,this.push(this.cpuPctSeries,e.cpu_percent),this.push(this.memPctSeries,e.mem_percent),this.push(this.diskPctSeries,e.disk_percent||0),this.push(this.threadsSeries,e.process&&e.process.num_threads||0),this.firstHostSample)this.firstHostSample=!1;else{const r=Math.max(0,e.net_bytes_recv-this.prevNetRx)/o,s=Math.max(0,e.net_bytes_sent-this.prevNetTx)/o;this.push(this.netRxBpsSeries,r),this.push(this.netTxBpsSeries,s)}this.prevNetRx=e.net_bytes_recv,this.prevNetTx=e.net_bytes_sent,this.cdr.markForCheck()}onRuntimeStats(e){this.proc=e,this.push(this.goroutinesSeries,e.num_goroutine),this.push(this.heapMbSeries,e.mem_heap_alloc/1024/1024),this.firstProcSample?this.firstProcSample=!1:this.push(this.gcSeries,Math.max(0,e.num_gc-this.prevGc)),this.prevGc=e.num_gc,this.cdr.markForCheck()}push(e,i){e.push(i),e.length>60&&e.shift()}static{this.\u0275fac=function(i){return new(i||t)(O(Io),O(Jt))}}static{this.\u0275cmp=re({type:t,selectors:[["app-resource-monitor"]],inputs:{nodeKey:"nodeKey",openByDefault:"openByDefault"},standalone:!1,decls:9,vars:7,consts:[[1,"resource-monitor","mt-3"],[1,"rm-header",3,"click"],[1,"rm-toggle-icon",3,"inline"],[1,"section-title"],[1,"rm-host-summary"],[1,"rm-tabs"],[1,"rm-tab",3,"click"],[1,"rm-grid"],[1,"rm-cell"],[1,"rm-cell-header"],[1,"rm-cell-label"],[1,"rm-cell-value"],[3,"data","min","max","height"],[1,"rm-cell-foot"],[3,"data","height"]],template:function(i,o){1&i&&(h(0,"div",0)(1,"div",1),F("click",function(){return o.toggleExpanded()}),h(2,"mat-icon",2),p(3),u(),h(4,"span",3),p(5),b(6,"translate"),u(),x(7,jMe,2,4,"span",4),u(),x(8,ZMe,9,12),u()),2&i&&(d(2),C("inline",!0),d(),M(o.expanded?"expand_less":"expand_more"),d(2),M(y(6,5,"node.resource-monitor.title")),d(2),S(o.host?7:-1),d(),S(o.expanded?8:-1))},dependencies:[We,Gv,Vl,xe],styles:[".resource-monitor[_ngcontent-%COMP%]{border-top:1px solid rgba(255,255,255,.08);padding-top:12px}.rm-header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;padding:4px 0}.rm-toggle-icon[_ngcontent-%COMP%]{font-size:22px}.rm-host-summary[_ngcontent-%COMP%]{margin-left:auto;opacity:.6;font-size:12px}.rm-tabs[_ngcontent-%COMP%]{display:flex;gap:16px;margin:8px 0 12px;font-size:13px}.rm-tab[_ngcontent-%COMP%]{cursor:pointer;padding:4px 8px;border-radius:4px;opacity:.6}.rm-tab.active[_ngcontent-%COMP%]{opacity:1;background:#ffffff0f}.rm-tab[_ngcontent-%COMP%]:hover{opacity:.9}.rm-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.rm-cell[_ngcontent-%COMP%]{background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:6px;padding:8px 10px;min-height:110px;display:flex;flex-direction:column}.rm-cell-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:2px}.rm-cell-label[_ngcontent-%COMP%]{font-size:11px;text-transform:uppercase;opacity:.7;letter-spacing:.5px}.rm-cell-value[_ngcontent-%COMP%]{font-size:14px;font-weight:500;font-variant-numeric:tabular-nums}.rm-cell-foot[_ngcontent-%COMP%]{margin-top:2px;font-size:11px;opacity:.5;font-variant-numeric:tabular-nums}"]})}}return t})();function eTe(t,n){1&t&&B(0,"app-resource-monitor",0),2&t&&C("nodeKey",v().node.localPk)("openByDefault",!0)}let tTe=(()=>{class t extends pn{ngOnInit(){return this.dataSubscription=ke.currentNode.subscribe(e=>{this.node=e}),super.ngOnInit()}ngOnDestroy(){this.dataSubscription&&this.dataSubscription.unsubscribe()}static{this.\u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})()}static{this.\u0275cmp=re({type:t,selectors:[["app-node-resources"]],standalone:!1,features:[be],decls:1,vars:1,consts:[[3,"nodeKey","openByDefault"]],template:function(i,o){1&i&&x(0,eTe,1,2,"app-resource-monitor",0),2&i&&S(o.node?0:-1)},dependencies:[JMe],encapsulation:2})}}return t})();const nTe=["logEl"],iTe=t=>({active:t});function oTe(t,n){if(1&t&&(h(0,"span",8),p(1),u()),2&t){const e=v(2);d(),E("\xb7 ",e.errorText)}}function rTe(t,n){1&t&&(h(0,"span",9),p(1),b(2,"translate"),u()),2&t&&(d(),E("\xb7 ",y(2,1,"skychat.no-history")))}function sTe(t,n){if(1&t){const e=oe();h(0,"mat-form-field",34)(1,"mat-label"),p(2),b(3,"translate"),u(),h(4,"input",35),zt("ngModelChange",function(o){j(e);const r=v(3);return Zt(r.pwOld,o)||(r.pwOld=o),U(o)}),u()()}if(2&t){const e=v(3);d(2),M(y(3,2,"skychat.password.old")),d(2),Ut("ngModel",e.pwOld)}}function aTe(t,n){if(1&t){const e=oe();h(0,"button",39),F("click",function(){return j(e),U(v(3).clearPassword())}),p(1),b(2,"translate"),u()}if(2&t){const e=v(3);C("disabled",e.pwBusy||!e.pwOld),d(),E(" ",y(2,2,"skychat.password.clear")," ")}}function lTe(t,n){if(1&t){const e=oe();h(0,"div",13)(1,"div",33),p(2),b(3,"translate"),u(),x(4,sTe,5,4,"mat-form-field",34),h(5,"mat-form-field",34)(6,"mat-label"),p(7),b(8,"translate"),u(),h(9,"input",35),zt("ngModelChange",function(o){j(e);const r=v(2);return Zt(r.pwNew,o)||(r.pwNew=o),U(o)}),u()(),h(10,"mat-form-field",34)(11,"mat-label"),p(12),b(13,"translate"),u(),h(14,"input",35),zt("ngModelChange",function(o){j(e);const r=v(2);return Zt(r.pwConfirm,o)||(r.pwConfirm=o),U(o)}),u()(),h(15,"div",36)(16,"button",37),F("click",function(){return j(e),U(v(2).applyPassword())}),p(17),b(18,"translate"),u(),x(19,aTe,3,4,"button",38),u()()}if(2&t){const e=v(2);d(2),E(" ",y(3,9,e.pwIsSet?"skychat.password.help-set":"skychat.password.help-unset")," "),d(2),S(e.pwIsSet?4:-1),d(3),M(y(8,11,"skychat.password.new")),d(2),Ut("ngModel",e.pwNew),d(3),M(y(13,13,"skychat.password.confirm")),d(2),Ut("ngModel",e.pwConfirm),d(2),C("disabled",e.pwBusy||!e.pwNew),d(),E(" ",y(18,15,e.pwIsSet?"skychat.password.change":"skychat.password.set")," "),d(2),S(e.pwIsSet?19:-1)}}function cTe(t,n){1&t&&(h(0,"div",17),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"skychat.peers-empty")))}function dTe(t,n){if(1&t){const e=oe();h(0,"div",40),F("click",function(){const o=j(e).$implicit;return U(v(2).pickRecipient(o))}),h(1,"span",41),p(2),u()()}if(2&t){const e=n.$implicit,i=v(2);C("ngClass",se(3,iTe,i.toPK===e))("matTooltip",e),d(2),M(e)}}function uTe(t,n){1&t&&(h(0,"div",21),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"skychat.empty")))}function hTe(t,n){if(1&t){const e=oe();h(0,"div",22)(1,"div",42)(2,"span",43),F("click",function(){const o=j(e).$implicit;return U(v(2).pickRecipient(o.peer))}),p(3),u(),h(4,"span",44),p(5),b(6,"date"),u()(),h(7,"div",45),p(8),u()()}if(2&t){const e=n.$implicit;C("ngClass",e.direction),d(2),C("matTooltip",e.peer),d(),gt(" ","out"===e.direction?"\u2192":"\u2190"," ",e.peer," "),d(2),M(pe(6,6,e.ts,"mediumTime")),d(3),M(e.text)}}function fTe(t,n){if(1&t){const e=oe();h(0,"div",1)(1,"div",2)(2,"div",3),B(3,"span",4),h(4,"span",5),p(5),b(6,"translate"),u(),h(7,"span",6),p(8,"\xb7"),u(),h(9,"span",7),p(10),b(11,"translate"),b(12,"translate"),u(),x(13,oTe,2,1,"span",8),x(14,rTe,3,3,"span",9),B(15,"span",10),h(16,"button",11),F("click",function(){return j(e),U(v().togglePassword())}),h(17,"mat-icon",12),p(18),u(),p(19),b(20,"translate"),u()(),x(21,lTe,20,17,"div",13),h(22,"div",14)(23,"aside",15)(24,"div",16),p(25),b(26,"translate"),u(),x(27,cTe,3,3,"div",17),ve(28,dTe,3,5,"div",18,Fe),u(),h(30,"section",19)(31,"div",20,0),x(33,uTe,3,3,"div",21),ve(34,hTe,9,9,"div",22,mO),u(),h(36,"div",23)(37,"mat-form-field",24)(38,"mat-label"),p(39),b(40,"translate"),u(),h(41,"input",25),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.toPK,o)||(r.toPK=o),U(o)}),u()(),h(42,"mat-form-field",26)(43,"mat-label"),p(44),b(45,"translate"),u(),h(46,"mat-select",27),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.network,o)||(r.network=o),U(o)}),h(47,"mat-option",28),p(48,"skynet"),u(),h(49,"mat-option",29),p(50,"dmsg"),u()()()(),h(51,"div",23)(52,"mat-form-field",30)(53,"mat-label"),p(54),b(55,"translate"),u(),h(56,"textarea",31),b(57,"translate"),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.message,o)||(r.message=o),U(o)}),F("keydown.enter",function(o){j(e);const r=v();return U(o.ctrlKey&&r.send())}),u()(),h(58,"button",32),F("click",function(){return j(e),U(v().send())}),h(59,"mat-icon"),p(60,"send"),u(),p(61),b(62,"translate"),u()()()()()()}if(2&t){const e=v();d(3),C("ngClass",e.connected?"dot-green":"dot-outline-gray"),d(2),M(y(6,21,"skychat.title")),d(5),M(e.connected?y(11,23,"skychat.connected"):y(12,25,"skychat.disconnected")),d(3),S(e.errorText?13:-1),d(),S(e.historyAvailable?-1:14),d(3),C("inline",!0),d(),M(e.pwIsSet?"lock":"lock_open"),d(),E(" ",y(20,27,e.pwOpen?"skychat.password.hide":e.pwIsSet?"skychat.password.change":"skychat.password.set")," "),d(2),S(e.pwOpen?21:-1),d(4),M(y(26,29,"skychat.peers")),d(2),S(0===e.peers.length?27:-1),d(),ye(e.peers),d(5),S(0===e.messages.length?33:-1),d(),ye(e.messages),d(5),M(y(40,31,"skychat.to")),d(2),Ut("ngModel",e.toPK),d(3),M(y(45,33,"skychat.network")),d(2),Ut("ngModel",e.network),d(8),M(y(55,35,"skychat.message")),d(2),Ut("ngModel",e.message),C("placeholder",y(57,37,"skychat.placeholder")),d(2),C("disabled",e.sending||!e.message.trim()||!e.toPK.trim()),d(3),E(" ",y(62,39,"skychat.send")," ")}}let pTe=(()=>{class t extends pn{get peers(){const e=[],i=new Set;for(let o=this.messages.length-1;o>=0;o--){const r=this.messages[o].peer;!r||i.has(r)||(i.add(r),e.push(r))}return e}constructor(e,i,o){super(),this.api=e,this.snackbar=i,this.cdr=o,this.toPK="",this.message="",this.network="skynet",this.sending=!1,this.messages=[],this.connected=!1,this.errorText="",this.historyAvailable=!0,this.wasAtBottom=!0,this.es=null,this.pwOpen=!1,this.pwIsSet=!1,this.pwOld="",this.pwNew="",this.pwConfirm="",this.pwBusy=!1}ngOnInit(){return this.nodeSub=ke.currentNode.subscribe(e=>{const i=!this.node;this.node=e,i&&(this.connectSSE(),this.tryLoadPeers(),this.refreshPasswordState())}),super.ngOnInit()}ngOnDestroy(){this.nodeSub&&this.nodeSub.unsubscribe(),this.disconnectSSE()}ngAfterViewChecked(){if(this.wasAtBottom&&this.logEl){const e=this.logEl.nativeElement;e.scrollTop=e.scrollHeight}}proxyUrl(e){return`/api/visors/${this.node.localPk}/skychat/proxy/${e.replace(/^\/+/,"")}`}connectSSE(){if(this.node&&!this.es)try{this.es=new EventSource(this.proxyUrl("sse")),this.es.onopen=()=>{this.connected=!0,this.errorText="",this.cdr.markForCheck()},this.es.onerror=()=>{this.connected=!1,this.errorText="Disconnected \u2014 retrying\u2026",this.cdr.markForCheck()},this.es.onmessage=e=>this.handleSSE(e.data)}catch(e){this.errorText=`SSE setup failed: ${e?.message||e}`}}disconnectSSE(){this.es&&(this.es.close(),this.es=null)}handleSSE(e){let i=null;try{i=JSON.parse(e)}catch{}if(!i||"object"!=typeof i)return;const o={peer:i.sender||i.from||"",direction:"in",text:"string"==typeof i.message?i.message:i.text||"",ts:Date.now()};!o.peer||!o.text||(this.captureScroll(),this.messages.push(o),this.messages.length>500&&this.messages.shift(),this.cdr.markForCheck())}send(){var e=this;if(this.sending)return;const i=this.toPK.trim(),o=this.message.trim();if(i&&o){if(66!==i.length||!/^[0-9a-fA-F]+$/.test(i))return void this.snackbar.showError("Recipient must be a 66-char hex public key");this.sending=!0,fetch(this.proxyUrl("message"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({recipient:i,message:o,network:this.network})}).then(function(){var r=Et(function*(s){if(!s.ok){const a=yield s.text();throw new Error(a||`HTTP ${s.status}`)}e.captureScroll(),e.messages.push({peer:i,direction:"out",text:o,ts:Date.now()}),e.messages.length>500&&e.messages.shift(),e.message="",e.cdr.markForCheck()});return function(s){return r.apply(this,arguments)}}()).catch(r=>{this.snackbar.showError(r?.message||String(r))}).finally(()=>{this.sending=!1,this.cdr.markForCheck()})}}tryLoadPeers(){var e=this;!this.node||!this.historyAvailable||fetch(this.proxyUrl("history?limit=100")).then(function(){var i=Et(function*(o){if(503===o.status)return e.historyAvailable=!1,null;if(!o.ok)throw new Error(`HTTP ${o.status}`);return o.json()});return function(o){return i.apply(this,arguments)}}()).then(i=>{if(!Array.isArray(i))return;const o=i.map(r=>({peer:r.peer||r.sender||"",direction:"out"===r.direction?"out":"in",text:r.message||r.text||"",ts:r.timestamp||r.ts||Date.now()})).filter(r=>r.peer&&r.text);this.messages=o.concat(this.messages),this.cdr.markForCheck()}).catch(()=>{})}pickRecipient(e){this.toPK=e}captureScroll(){if(!this.logEl)return void(this.wasAtBottom=!0);const e=this.logEl.nativeElement;this.wasAtBottom=e.scrollHeight-e.scrollTop-e.clientHeight<40}togglePassword(){this.pwOpen=!this.pwOpen,this.pwOpen?this.refreshPasswordState():this.resetPasswordForm()}refreshPasswordState(){this.node&&this.api.get(`visors/${this.node.localPk}/skychat/password`).subscribe(e=>{this.pwIsSet=!(!e||!e.set),this.cdr.markForCheck()},()=>{})}resetPasswordForm(){this.pwOld="",this.pwNew="",this.pwConfirm=""}validateNewPassword(){return this.pwNew.length<6||this.pwNew.length>64?"skychat.password.errors.length":this.pwNew!==this.pwConfirm?"skychat.password.errors.mismatch":null}applyPassword(){if(!this.node||this.pwBusy)return;const e=this.validateNewPassword();e?this.snackbar.showError(e):(this.pwBusy=!0,this.api.put(`visors/${this.node.localPk}/skychat/password`,{old_password:this.pwIsSet?this.pwOld:"",new_password:this.pwNew}).subscribe(()=>{this.pwBusy=!1,this.pwIsSet=!0,this.resetPasswordForm(),this.snackbar.showDone("skychat.password.saved"),this.cdr.markForCheck()},i=>{this.pwBusy=!1,this.snackbar.showError(i?.originalError?.error?.error||i?.message||String(i)),this.cdr.markForCheck()}))}clearPassword(){if(this.node&&!this.pwBusy&&this.pwIsSet){if(!this.pwOld)return void this.snackbar.showError("skychat.password.errors.old-required");this.pwBusy=!0,this.api.delete(`visors/${this.node.localPk}/skychat/password?old_password=${encodeURIComponent(this.pwOld)}`).subscribe(()=>{this.pwBusy=!1,this.pwIsSet=!1,this.resetPasswordForm(),this.snackbar.showDone("skychat.password.cleared"),this.cdr.markForCheck()},e=>{this.pwBusy=!1,this.snackbar.showError(e?.originalError?.error?.error||e?.message||String(e)),this.cdr.markForCheck()})}}static{this.\u0275fac=function(i){return new(i||t)(O(zi),O(ct),O(Jt))}}static{this.\u0275cmp=re({type:t,selectors:[["app-skychat"]],viewQuery:function(i,o){if(1&i&&ot(nTe,5),2&i){let r;he(r=fe())&&(o.logEl=r.first)}},standalone:!1,features:[be],decls:1,vars:1,consts:[["logEl",""],[1,"rounded-elevated-box","mt-3","skychat-box"],[1,"box-internal-container","sc-shell"],[1,"sc-status"],[1,"dot",3,"ngClass"],[1,"status-text"],[1,"status-sep"],[1,"status-conn"],[1,"error"],[1,"hint"],[1,"sc-status-spacer"],["mat-button","","type","button",1,"sc-password-toggle",3,"click"],[1,"lock-icon",3,"inline"],[1,"sc-password"],[1,"sc-body"],[1,"sc-sidebar"],[1,"sc-sidebar-title"],[1,"sc-sidebar-empty"],[1,"sc-peer",3,"ngClass","matTooltip"],[1,"sc-chat"],[1,"sc-log"],[1,"sc-empty"],[1,"sc-msg",3,"ngClass"],[1,"sc-composer"],["appearance","outline",1,"field-pk"],["matInput","","placeholder","02abc\u2026",3,"ngModelChange","ngModel"],["appearance","outline",1,"field-sm"],["panelClass","skynet-select-panel",3,"ngModelChange","ngModel"],["value","skynet"],["value","dmsg"],["appearance","outline",1,"field-msg"],["matInput","","rows","2",3,"ngModelChange","keydown.enter","ngModel","placeholder"],["mat-raised-button","","color","primary",1,"send-btn",3,"click","disabled"],[1,"sc-password-help"],["appearance","outline",1,"field-pw"],["matInput","","type","password","maxlength","64",3,"ngModelChange","ngModel"],[1,"sc-password-actions"],["mat-raised-button","","color","primary",3,"click","disabled"],["mat-stroked-button","","color","warn",3,"disabled"],["mat-stroked-button","","color","warn",3,"click","disabled"],[1,"sc-peer",3,"click","ngClass","matTooltip"],[1,"peer-pk","mono","small"],[1,"sc-msg-meta"],[1,"peer","mono","small",3,"click","matTooltip"],[1,"ts"],[1,"sc-msg-text"]],template:function(i,o){1&i&&x(0,fTe,63,41,"div",1),2&i&&S(o.node?0:-1)},dependencies:[$t,Gt,qt,wi,sn,Os,In,Pn,We,Kt,cu,Pa,Qr,fa,xe],styles:[".skychat-box[_ngcontent-%COMP%]{display:flex;flex-direction:column}.sc-shell[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px}.sc-status[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;font-size:13px;padding:6px 4px}.sc-status[_ngcontent-%COMP%] .status-text[_ngcontent-%COMP%]{font-weight:600;font-size:14px}.sc-status[_ngcontent-%COMP%] .status-sep[_ngcontent-%COMP%]{opacity:.5}.sc-status[_ngcontent-%COMP%] .status-conn[_ngcontent-%COMP%]{font-weight:500}.sc-status[_ngcontent-%COMP%] .error[_ngcontent-%COMP%]{opacity:.85;color:#e53935e6}.sc-status[_ngcontent-%COMP%] .hint[_ngcontent-%COMP%]{opacity:.6}.sc-status[_ngcontent-%COMP%] .dot[_ngcontent-%COMP%]{display:inline-block;width:8px;height:8px;border-radius:50%}.sc-status[_ngcontent-%COMP%] .dot-green[_ngcontent-%COMP%]{background:#4caf50}.sc-status[_ngcontent-%COMP%] .dot-outline-gray[_ngcontent-%COMP%]{border:1px solid rgba(255,255,255,.4)}.sc-status[_ngcontent-%COMP%] .sc-status-spacer[_ngcontent-%COMP%]{flex:1 1 auto}.sc-status[_ngcontent-%COMP%] .sc-password-toggle[_ngcontent-%COMP%]{font-size:12px;line-height:1.2}.sc-status[_ngcontent-%COMP%] .sc-password-toggle[_ngcontent-%COMP%] .lock-icon[_ngcontent-%COMP%]{font-size:16px;vertical-align:middle;margin-right:4px}.sc-password[_ngcontent-%COMP%]{margin:8px 0 4px;padding:12px;background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:6px;display:flex;flex-wrap:wrap;gap:12px 16px;align-items:flex-end}.sc-password[_ngcontent-%COMP%] .sc-password-help[_ngcontent-%COMP%]{flex:1 1 100%;font-size:12px;opacity:.75;margin-bottom:4px}.sc-password[_ngcontent-%COMP%] .field-pw[_ngcontent-%COMP%]{flex:1 1 200px;min-width:180px}.sc-password[_ngcontent-%COMP%] .sc-password-actions[_ngcontent-%COMP%]{flex:1 1 100%;display:flex;gap:8px;justify-content:flex-end}.sc-body[_ngcontent-%COMP%]{display:flex;gap:12px;align-items:stretch}.sc-sidebar[_ngcontent-%COMP%]{flex:0 0 220px;max-width:240px;display:flex;flex-direction:column;gap:4px;padding:8px;background:#0000002e;border:1px solid rgba(255,255,255,.06);border-radius:6px;overflow-y:auto;max-height:60vh}.sc-sidebar[_ngcontent-%COMP%] .sc-sidebar-title[_ngcontent-%COMP%]{font-size:11px;text-transform:uppercase;letter-spacing:.5px;opacity:.6;padding:2px 4px 6px}.sc-sidebar[_ngcontent-%COMP%] .sc-sidebar-empty[_ngcontent-%COMP%]{padding:8px 4px;font-size:12px;opacity:.5}.sc-sidebar[_ngcontent-%COMP%] .sc-peer[_ngcontent-%COMP%]{cursor:pointer;padding:6px 8px;border-radius:4px;border:1px solid transparent;background:#ffffff08}.sc-sidebar[_ngcontent-%COMP%] .sc-peer[_ngcontent-%COMP%]:hover{background:#ffffff0f}.sc-sidebar[_ngcontent-%COMP%] .sc-peer.active[_ngcontent-%COMP%]{background:#2196f32e;border-color:#2196f373}.sc-sidebar[_ngcontent-%COMP%] .sc-peer[_ngcontent-%COMP%] .peer-pk[_ngcontent-%COMP%]{display:block;word-break:break-all;line-height:1.25;font-size:10px}@media(max-width:720px){.sc-body[_ngcontent-%COMP%]{flex-direction:column}.sc-sidebar[_ngcontent-%COMP%]{flex:0 0 auto;max-width:none;max-height:140px}}.sc-chat[_ngcontent-%COMP%]{flex:1 1 auto;display:flex;flex-direction:column;min-width:0}.sc-log[_ngcontent-%COMP%]{background:#0000002e;border:1px solid rgba(255,255,255,.06);border-radius:6px;padding:8px;height:50vh;min-height:320px;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.sc-empty[_ngcontent-%COMP%]{margin:auto;opacity:.5;font-size:13px}.sc-msg[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2px;padding:6px 10px;border-radius:6px;background:#ffffff08;max-width:80%}.sc-msg.in[_ngcontent-%COMP%]{align-self:flex-start}.sc-msg.out[_ngcontent-%COMP%]{align-self:flex-end;background:#2196f32e}.sc-msg-meta[_ngcontent-%COMP%]{display:flex;gap:8px;align-items:center;font-size:11px;opacity:.7;flex-wrap:wrap}.sc-msg-meta[_ngcontent-%COMP%] .peer[_ngcontent-%COMP%]{cursor:pointer;-webkit-text-decoration:underline dotted transparent;text-decoration:underline dotted transparent;word-break:break-all}.sc-msg-meta[_ngcontent-%COMP%] .peer[_ngcontent-%COMP%]:hover{text-decoration-color:currentColor}.sc-msg-text[_ngcontent-%COMP%]{white-space:pre-wrap;word-break:break-word;font-size:13px}.sc-composer[_ngcontent-%COMP%]{display:flex;gap:12px;align-items:flex-start;margin-top:8px}.sc-composer[_ngcontent-%COMP%] .field-pk[_ngcontent-%COMP%]{flex:1 1 360px}.sc-composer[_ngcontent-%COMP%] .field-sm[_ngcontent-%COMP%]{flex:0 1 130px}.sc-composer[_ngcontent-%COMP%] .field-msg[_ngcontent-%COMP%]{flex:1 1 auto;min-width:0}.sc-composer[_ngcontent-%COMP%] .send-btn[_ngcontent-%COMP%]{flex:0 0 auto;align-self:center;height:56px;white-space:nowrap}"]})}}return t})(),l6=(()=>{class t{constructor(e){this.apiService=e}create(e,i,o){const r={remote_pk:i};return o&&(r.transport_type=o),this.apiService.post(`visors/${e}/transports`,r)}delete(e,i){return this.apiService.delete(`visors/${e}/transports/${i}`)}savePersistentTransportsData(e,i){return this.apiService.put(`visors/${e}/persistent-transports`,i)}getPersistentTransports(e){return this.apiService.get(`visors/${e}/persistent-transports`)}types(e){return this.apiService.get(`visors/${e}/transport-types`)}changeAutoconnectSetting(e,i){const o={};return o.public_autoconnect=i,this.apiService.put(`visors/${e}/public-autoconnect`,o)}static{this.\u0275fac=function(i){return new(i||t)(ce(zi))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const mTe=["switch"],gTe=["*"];function _Te(t,n){1&t&&(h(0,"span",11),rl(),h(1,"svg",13),B(2,"path",14),u(),h(3,"svg",15),B(4,"path",16),u()())}const bTe=new Z("mat-slide-toggle-default-options",{providedIn:"root",factory:()=>({disableToggleValue:!1,hideIcon:!1,disabledInteractive:!1})});class c6{source;checked;constructor(n,e){this.source=n,this.checked=e}}let d6=(()=>{class t{_elementRef=D(Re);_focusMonitor=D(ec);_changeDetectorRef=D(Jt);defaults=D(bTe);_onChange=e=>{};_onTouched=()=>{};_validatorOnChange=()=>{};_uniqueId;_checked=!1;_createChangeEvent(e){return new c6(this,e)}_labelId;get buttonId(){return`${this.id||this._uniqueId}-button`}_switchElement;focus(){this._switchElement.nativeElement.focus()}_noopAnimations=ci();_focused=!1;name=null;id;labelPosition="after";ariaLabel=null;ariaLabelledby=null;ariaDescribedby;required=!1;color;disabled=!1;disableRipple=!1;tabIndex=0;get checked(){return this._checked}set checked(e){this._checked=e,this._changeDetectorRef.markForCheck()}hideIcon;disabledInteractive;change=new we;toggleChange=new we;get inputId(){return`${this.id||this._uniqueId}-input`}constructor(){D(zo).load(tu);const e=D(new Yh("tabindex"),{optional:!0}),i=this.defaults;this.tabIndex=null==e?0:parseInt(e)||0,this.color=i.color||"accent",this.id=this._uniqueId=D(ni).getId("mat-mdc-slide-toggle-"),this.hideIcon=i.hideIcon??!1,this.disabledInteractive=i.disabledInteractive??!1,this._labelId=this._uniqueId+"-label"}ngAfterContentInit(){this._focusMonitor.monitor(this._elementRef,!0).subscribe(e=>{"keyboard"===e||"program"===e?(this._focused=!0,this._changeDetectorRef.markForCheck()):e||Promise.resolve().then(()=>{this._focused=!1,this._onTouched(),this._changeDetectorRef.markForCheck()})})}ngOnChanges(e){e.required&&this._validatorOnChange()}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef)}writeValue(e){this.checked=!!e}registerOnChange(e){this._onChange=e}registerOnTouched(e){this._onTouched=e}validate(e){return this.required&&!0!==e.value?{required:!0}:null}registerOnValidatorChange(e){this._validatorOnChange=e}setDisabledState(e){this.disabled=e,this._changeDetectorRef.markForCheck()}toggle(){this.checked=!this.checked,this._onChange(this.checked)}_emitChangeEvent(){this._onChange(this.checked),this.change.emit(this._createChangeEvent(this.checked))}_handleClick(){this.disabled||(this.toggleChange.emit(),this.defaults.disableToggleValue||(this.checked=!this.checked,this._onChange(this.checked),this.change.emit(new c6(this,this.checked))))}_getAriaLabelledBy(){return this.ariaLabelledby?this.ariaLabelledby:this.ariaLabel?null:this._labelId}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=re({type:t,selectors:[["mat-slide-toggle"]],viewQuery:function(i,o){if(1&i&&ot(mTe,5),2&i){let r;he(r=fe())&&(o._switchElement=r.first)}},hostAttrs:[1,"mat-mdc-slide-toggle"],hostVars:13,hostBindings:function(i,o){2&i&&(ur("id",o.id),$e("tabindex",null)("aria-label",null)("name",null)("aria-labelledby",null),Ze(o.color?"mat-"+o.color:""),Ie("mat-mdc-slide-toggle-focused",o._focused)("mat-mdc-slide-toggle-checked",o.checked)("_mat-animation-noopable",o._noopAnimations))},inputs:{name:"name",id:"id",labelPosition:"labelPosition",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],required:[2,"required","required",De],color:"color",disabled:[2,"disabled","disabled",De],disableRipple:[2,"disableRipple","disableRipple",De],tabIndex:[2,"tabIndex","tabIndex",e=>null==e?0:hr(e)],checked:[2,"checked","checked",De],hideIcon:[2,"hideIcon","hideIcon",De],disabledInteractive:[2,"disabledInteractive","disabledInteractive",De]},outputs:{change:"change",toggleChange:"toggleChange"},exportAs:["matSlideToggle"],features:[lt([{provide:Yo,useExisting:Nt(()=>t),multi:!0},{provide:Ci,useExisting:t,multi:!0}]),_i],ngContentSelectors:gTe,decls:14,vars:27,consts:[["switch",""],["mat-internal-form-field","",3,"labelPosition"],["role","switch","type","button",1,"mdc-switch",3,"click","tabIndex","disabled"],[1,"mat-mdc-slide-toggle-touch-target"],[1,"mdc-switch__track"],[1,"mdc-switch__handle-track"],[1,"mdc-switch__handle"],[1,"mdc-switch__shadow"],[1,"mdc-elevation-overlay"],[1,"mdc-switch__ripple"],["mat-ripple","",1,"mat-mdc-slide-toggle-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-switch__icons"],[1,"mdc-label",3,"click","for"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--on"],["d","M19.69,5.23L8.96,15.96l-4.23-4.23L2.96,13.5l6,6L21.46,7L19.69,5.23z"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--off"],["d","M20 13H4v-2h16v2z"]],template:function(i,o){if(1&i&&(yi(),h(0,"div",1)(1,"button",2,0),F("click",function(){return o._handleClick()}),B(3,"div",3)(4,"span",4),h(5,"span",5)(6,"span",6)(7,"span",7),B(8,"span",8),u(),h(9,"span",9),B(10,"span",10),u(),x(11,_Te,5,0,"span",11),u()()(),h(12,"label",12),F("click",function(s){return s.stopPropagation()}),Pt(13),u()()),2&i){const r=Hn(2);C("labelPosition",o.labelPosition),d(),Ie("mdc-switch--selected",o.checked)("mdc-switch--unselected",!o.checked)("mdc-switch--checked",o.checked)("mdc-switch--disabled",o.disabled)("mat-mdc-slide-toggle-disabled-interactive",o.disabledInteractive),C("tabIndex",o.disabled&&!o.disabledInteractive?-1:o.tabIndex)("disabled",o.disabled&&!o.disabledInteractive),$e("id",o.buttonId)("name",o.name)("aria-label",o.ariaLabel)("aria-labelledby",o._getAriaLabelledBy())("aria-describedby",o.ariaDescribedby)("aria-required",o.required||null)("aria-checked",o.checked)("aria-disabled",o.disabled&&o.disabledInteractive?"true":null),d(9),C("matRippleTrigger",r)("matRippleDisabled",o.disableRipple||o.disabled)("matRippleCentered",!0),d(),S(o.hideIcon?-1:11),d(),C("for",o.buttonId),$e("id",o._labelId)}},dependencies:[eu,nV],styles:['.mdc-switch{align-items:center;background:none;border:none;cursor:pointer;display:inline-flex;flex-shrink:0;margin:0;outline:none;overflow:visible;padding:0;position:relative;width:var(--mat-slide-toggle-track-width, 52px)}.mdc-switch.mdc-switch--disabled{cursor:default;pointer-events:none}.mdc-switch.mat-mdc-slide-toggle-disabled-interactive{pointer-events:auto}.mdc-switch__track{overflow:hidden;position:relative;width:100%;height:var(--mat-slide-toggle-track-height, 32px);border-radius:var(--mat-slide-toggle-track-shape, var(--mat-sys-corner-full))}.mdc-switch--disabled.mdc-switch .mdc-switch__track{opacity:var(--mat-slide-toggle-disabled-track-opacity, 0.12)}.mdc-switch__track::before,.mdc-switch__track::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";height:100%;left:0;position:absolute;width:100%;border-width:var(--mat-slide-toggle-track-outline-width, 2px);border-color:var(--mat-slide-toggle-track-outline-color, var(--mat-sys-outline))}.mdc-switch--selected .mdc-switch__track::before,.mdc-switch--selected .mdc-switch__track::after{border-width:var(--mat-slide-toggle-selected-track-outline-width, 2px);border-color:var(--mat-slide-toggle-selected-track-outline-color, transparent)}.mdc-switch--disabled .mdc-switch__track::before,.mdc-switch--disabled .mdc-switch__track::after{border-width:var(--mat-slide-toggle-disabled-unselected-track-outline-width, 2px);border-color:var(--mat-slide-toggle-disabled-unselected-track-outline-color, var(--mat-sys-on-surface))}@media(forced-colors: active){.mdc-switch__track{border-color:currentColor}}.mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1);transform:translateX(0);background:var(--mat-slide-toggle-unselected-track-color, var(--mat-sys-surface-variant))}.mdc-switch--selected .mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.6, 1);transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch--selected .mdc-switch__track::before{transform:translateX(-100%)}.mdc-switch--selected .mdc-switch__track::before{opacity:var(--mat-slide-toggle-hidden-track-opacity, 0);transition:var(--mat-slide-toggle-hidden-track-transition, opacity 75ms)}.mdc-switch--unselected .mdc-switch__track::before{opacity:var(--mat-slide-toggle-visible-track-opacity, 1);transition:var(--mat-slide-toggle-visible-track-transition, opacity 75ms)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::before{background:var(--mat-slide-toggle-unselected-hover-track-color, var(--mat-sys-surface-variant))}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::before{background:var(--mat-slide-toggle-unselected-focus-track-color, var(--mat-sys-surface-variant))}.mdc-switch:enabled:active .mdc-switch__track::before{background:var(--mat-slide-toggle-unselected-pressed-track-color, var(--mat-sys-surface-variant))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__track::before,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__track::before,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__track::before,.mdc-switch.mdc-switch--disabled .mdc-switch__track::before{background:var(--mat-slide-toggle-disabled-unselected-track-color, var(--mat-sys-surface-variant))}.mdc-switch__track::after{transform:translateX(-100%);background:var(--mat-slide-toggle-selected-track-color, var(--mat-sys-primary))}[dir=rtl] .mdc-switch__track::after{transform:translateX(100%)}.mdc-switch--selected .mdc-switch__track::after{transform:translateX(0)}.mdc-switch--selected .mdc-switch__track::after{opacity:var(--mat-slide-toggle-visible-track-opacity, 1);transition:var(--mat-slide-toggle-visible-track-transition, opacity 75ms)}.mdc-switch--unselected .mdc-switch__track::after{opacity:var(--mat-slide-toggle-hidden-track-opacity, 0);transition:var(--mat-slide-toggle-hidden-track-transition, opacity 75ms)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::after{background:var(--mat-slide-toggle-selected-hover-track-color, var(--mat-sys-primary))}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::after{background:var(--mat-slide-toggle-selected-focus-track-color, var(--mat-sys-primary))}.mdc-switch:enabled:active .mdc-switch__track::after{background:var(--mat-slide-toggle-selected-pressed-track-color, var(--mat-sys-primary))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__track::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__track::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__track::after,.mdc-switch.mdc-switch--disabled .mdc-switch__track::after{background:var(--mat-slide-toggle-disabled-selected-track-color, var(--mat-sys-on-surface))}.mdc-switch__handle-track{height:100%;pointer-events:none;position:absolute;top:0;transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);left:0;right:auto;transform:translateX(0);width:calc(100% - var(--mat-slide-toggle-handle-width))}[dir=rtl] .mdc-switch__handle-track{left:auto;right:0}.mdc-switch--selected .mdc-switch__handle-track{transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch__handle-track{transform:translateX(-100%)}.mdc-switch__handle{display:flex;pointer-events:auto;position:absolute;top:50%;transform:translateY(-50%);left:0;right:auto;transition:width 75ms cubic-bezier(0.4, 0, 0.2, 1),height 75ms cubic-bezier(0.4, 0, 0.2, 1),margin 75ms cubic-bezier(0.4, 0, 0.2, 1);width:var(--mat-slide-toggle-handle-width);height:var(--mat-slide-toggle-handle-height);border-radius:var(--mat-slide-toggle-handle-shape, var(--mat-sys-corner-full))}[dir=rtl] .mdc-switch__handle{left:auto;right:0}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle{width:var(--mat-slide-toggle-unselected-handle-size, 16px);height:var(--mat-slide-toggle-unselected-handle-size, 16px);margin:var(--mat-slide-toggle-unselected-handle-horizontal-margin, 0 8px)}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-slide-toggle-unselected-with-icon-handle-horizontal-margin, 0 4px)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle{width:var(--mat-slide-toggle-selected-handle-size, 24px);height:var(--mat-slide-toggle-selected-handle-size, 24px);margin:var(--mat-slide-toggle-selected-handle-horizontal-margin, 0 24px)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-slide-toggle-selected-with-icon-handle-horizontal-margin, 0 24px)}.mat-mdc-slide-toggle .mdc-switch__handle:has(.mdc-switch__icons){width:var(--mat-slide-toggle-with-icon-handle-size, 24px);height:var(--mat-slide-toggle-with-icon-handle-size, 24px)}.mat-mdc-slide-toggle .mdc-switch:active:not(.mdc-switch--disabled) .mdc-switch__handle{width:var(--mat-slide-toggle-pressed-handle-size, 28px);height:var(--mat-slide-toggle-pressed-handle-size, 28px)}.mat-mdc-slide-toggle .mdc-switch--selected:active:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-slide-toggle-selected-pressed-handle-horizontal-margin, 0 22px)}.mat-mdc-slide-toggle .mdc-switch--unselected:active:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-slide-toggle-unselected-pressed-handle-horizontal-margin, 0 2px)}.mdc-switch--disabled.mdc-switch--selected .mdc-switch__handle::after{opacity:var(--mat-slide-toggle-disabled-selected-handle-opacity, 1)}.mdc-switch--disabled.mdc-switch--unselected .mdc-switch__handle::after{opacity:var(--mat-slide-toggle-disabled-unselected-handle-opacity, 0.38)}.mdc-switch__handle::before,.mdc-switch__handle::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";width:100%;height:100%;left:0;position:absolute;top:0;transition:background-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1),border-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);z-index:-1}@media(forced-colors: active){.mdc-switch__handle::before,.mdc-switch__handle::after{border-color:currentColor}}.mdc-switch--selected:enabled .mdc-switch__handle::after{background:var(--mat-slide-toggle-selected-handle-color, var(--mat-sys-on-primary))}.mdc-switch--selected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mat-slide-toggle-selected-hover-handle-color, var(--mat-sys-primary-container))}.mdc-switch--selected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mat-slide-toggle-selected-focus-handle-color, var(--mat-sys-primary-container))}.mdc-switch--selected:enabled:active .mdc-switch__handle::after{background:var(--mat-slide-toggle-selected-pressed-handle-color, var(--mat-sys-primary-container))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:hover:not(:focus):not(:active) .mdc-switch__handle::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:focus:not(:active) .mdc-switch__handle::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:active .mdc-switch__handle::after,.mdc-switch--selected.mdc-switch--disabled .mdc-switch__handle::after{background:var(--mat-slide-toggle-disabled-selected-handle-color, var(--mat-sys-surface))}.mdc-switch--unselected:enabled .mdc-switch__handle::after{background:var(--mat-slide-toggle-unselected-handle-color, var(--mat-sys-outline))}.mdc-switch--unselected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mat-slide-toggle-unselected-hover-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mat-slide-toggle-unselected-focus-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected:enabled:active .mdc-switch__handle::after{background:var(--mat-slide-toggle-unselected-pressed-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected.mdc-switch--disabled .mdc-switch__handle::after{background:var(--mat-slide-toggle-disabled-unselected-handle-color, var(--mat-sys-on-surface))}.mdc-switch__handle::before{background:var(--mat-slide-toggle-handle-surface-color)}.mdc-switch__shadow{border-radius:inherit;bottom:0;left:0;position:absolute;right:0;top:0}.mdc-switch:enabled .mdc-switch__shadow{box-shadow:var(--mat-slide-toggle-handle-elevation-shadow)}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__shadow,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__shadow,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__shadow,.mdc-switch.mdc-switch--disabled .mdc-switch__shadow{box-shadow:var(--mat-slide-toggle-disabled-handle-elevation-shadow)}.mdc-switch__ripple{left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);z-index:-1;width:var(--mat-slide-toggle-state-layer-size, 40px);height:var(--mat-slide-toggle-state-layer-size, 40px)}.mdc-switch__ripple::after{content:"";opacity:0}.mdc-switch--disabled .mdc-switch__ripple::after{display:none}.mat-mdc-slide-toggle-disabled-interactive .mdc-switch__ripple::after{display:block}.mdc-switch:hover .mdc-switch__ripple::after{transition:75ms opacity cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:focus .mdc-switch__ripple::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:active .mdc-switch__ripple::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:hover:not(:focus) .mdc-switch__ripple::after,.mdc-switch--unselected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background:var(--mat-slide-toggle-unselected-hover-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mat-slide-toggle-unselected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mdc-switch--unselected:enabled:focus .mdc-switch__ripple::after{background:var(--mat-slide-toggle-unselected-focus-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mat-slide-toggle-unselected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mdc-switch--unselected:enabled:active .mdc-switch__ripple::after{background:var(--mat-slide-toggle-unselected-pressed-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mat-slide-toggle-unselected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));transition:opacity 75ms linear}.mdc-switch--selected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background:var(--mat-slide-toggle-selected-hover-state-layer-color, var(--mat-sys-primary));opacity:var(--mat-slide-toggle-selected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mdc-switch--selected:enabled:focus .mdc-switch__ripple::after{background:var(--mat-slide-toggle-selected-focus-state-layer-color, var(--mat-sys-primary));opacity:var(--mat-slide-toggle-selected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mdc-switch--selected:enabled:active .mdc-switch__ripple::after{background:var(--mat-slide-toggle-selected-pressed-state-layer-color, var(--mat-sys-primary));opacity:var(--mat-slide-toggle-selected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));transition:opacity 75ms linear}.mdc-switch__icons{position:relative;height:100%;width:100%;z-index:1;transform:translateZ(0)}.mdc-switch--disabled.mdc-switch--unselected .mdc-switch__icons{opacity:var(--mat-slide-toggle-disabled-unselected-icon-opacity, 0.38)}.mdc-switch--disabled.mdc-switch--selected .mdc-switch__icons{opacity:var(--mat-slide-toggle-disabled-selected-icon-opacity, 0.38)}.mdc-switch__icon{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;opacity:0;transition:opacity 30ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-switch--unselected .mdc-switch__icon{width:var(--mat-slide-toggle-unselected-icon-size, 16px);height:var(--mat-slide-toggle-unselected-icon-size, 16px);fill:var(--mat-slide-toggle-unselected-icon-color, var(--mat-sys-surface-variant))}.mdc-switch--unselected.mdc-switch--disabled .mdc-switch__icon{fill:var(--mat-slide-toggle-disabled-unselected-icon-color, var(--mat-sys-surface-variant))}.mdc-switch--selected .mdc-switch__icon{width:var(--mat-slide-toggle-selected-icon-size, 16px);height:var(--mat-slide-toggle-selected-icon-size, 16px);fill:var(--mat-slide-toggle-selected-icon-color, var(--mat-sys-on-primary-container))}.mdc-switch--selected.mdc-switch--disabled .mdc-switch__icon{fill:var(--mat-slide-toggle-disabled-selected-icon-color, var(--mat-sys-on-surface))}.mdc-switch--selected .mdc-switch__icon--on,.mdc-switch--unselected .mdc-switch__icon--off{opacity:1;transition:opacity 45ms 30ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle{-webkit-user-select:none;user-select:none;display:inline-block;-webkit-tap-highlight-color:rgba(0,0,0,0);outline:0}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple,.mat-mdc-slide-toggle .mdc-switch__ripple::after{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple:not(:empty),.mat-mdc-slide-toggle .mdc-switch__ripple::after:not(:empty){transform:translateZ(0)}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mat-focus-indicator::before{content:""}.mat-mdc-slide-toggle .mat-internal-form-field{color:var(--mat-slide-toggle-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-slide-toggle-label-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-slide-toggle-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-slide-toggle-label-text-size, var(--mat-sys-body-medium-size));letter-spacing:var(--mat-slide-toggle-label-text-tracking, var(--mat-sys-body-medium-tracking));font-weight:var(--mat-slide-toggle-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-slide-toggle .mat-ripple-element{opacity:.12}.mat-mdc-slide-toggle .mat-focus-indicator::before{border-radius:50%}.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle-track,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__icon,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::after,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::after{transition:none}.mat-mdc-slide-toggle .mdc-switch:enabled+.mdc-label{cursor:pointer}.mat-mdc-slide-toggle .mdc-switch--disabled+label{color:var(--mat-slide-toggle-disabled-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-slide-toggle label:empty{display:none}.mat-mdc-slide-toggle-touch-target{position:absolute;top:50%;left:50%;height:var(--mat-slide-toggle-touch-target-size, 48px);width:100%;transform:translate(-50%, -50%);display:var(--mat-slide-toggle-touch-target-display, block)}[dir=rtl] .mat-mdc-slide-toggle-touch-target{left:auto;right:50%;transform:translate(50%, -50%)}\n'],encapsulation:2,changeDetection:0})}return t})(),vTe=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({imports:[d6,ii]})}return t})();function yTe(t,n){1&t&&(p(0),b(1,"translate"),h(2,"mat-icon",5),b(3,"translate"),p(4,"help"),u()),2&t&&(E(" ",y(1,3,"common.yes")," "),d(2),C("inline",!0)("matTooltip",y(3,5,"transports.persistent-transport-tooltip")))}function CTe(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"common.no")," ")}function wTe(t,n){1&t&&(p(0),b(1,"number")),2&t&&E(" ",pe(1,1,v().data.latencyMs,"1.0-0")," ms ")}function xTe(t,n){1&t&&p(0," - ")}let STe=(()=>{class t{static openDialog(e,i){const o=new nn;return o.data=i,o.autoFocus=!1,o.width=rt.largeModalWidth,e.open(t,o)}constructor(e,i){this.data=e,this.dialogRef=i}static{this.\u0275fac=function(i){return new(i||t)(O(En),O(Bt))}}static{this.\u0275cmp=re({type:t,selectors:[["app-transport-details"]],standalone:!1,decls:57,vars:50,consts:[[1,"info-dialog",3,"headline","dialog"],[1,"title","mt-0"],[3,"inline"],[1,"item"],[1,"title"],[1,"help-icon","d-none","d-md-inline",3,"inline","matTooltip"]],template:function(i,o){1&i&&(h(0,"app-dialog",0),b(1,"translate"),h(2,"div")(3,"div",1)(4,"mat-icon",2),p(5,"list"),u(),p(6),b(7,"translate"),u(),h(8,"div",3)(9,"span"),p(10),b(11,"translate"),u(),x(12,yTe,5,7),x(13,CTe,2,3),u(),h(14,"div",3)(15,"span"),p(16),b(17,"translate"),u(),p(18),u(),h(19,"div",3)(20,"span"),p(21),b(22,"translate"),u(),p(23),u(),h(24,"div",3)(25,"span"),p(26),b(27,"translate"),u(),p(28),u(),h(29,"div",3)(30,"span"),p(31),b(32,"translate"),u(),p(33),u(),h(34,"div",4)(35,"mat-icon",2),p(36,"import_export"),u(),p(37),b(38,"translate"),u(),h(39,"div",3)(40,"span"),p(41),b(42,"translate"),u(),p(43),b(44,"autoScale"),u(),h(45,"div",3)(46,"span"),p(47),b(48,"translate"),u(),p(49),b(50,"autoScale"),u(),h(51,"div",3)(52,"span"),p(53),b(54,"translate"),u(),x(55,wTe,2,4),x(56,xTe,1,0),u()()()),2&i&&(C("headline",y(1,24,"transports.details.title"))("dialog",o.dialogRef),d(4),C("inline",!0),d(2),E("",y(7,26,"transports.details.basic.title")," "),d(4),M(y(11,28,"transports.details.basic.persistent")),d(2),S(o.data.isPersistent?12:-1),d(),S(o.data.isPersistent?-1:13),d(3),M(y(17,30,"transports.details.basic.id")),d(2),E(" ",o.data.id," "),d(3),M(y(22,32,"transports.details.basic.local-pk")),d(2),E(" ",o.data.localPk," "),d(3),M(y(27,34,"transports.details.basic.remote-pk")),d(2),E(" ",o.data.remotePk," "),d(3),M(y(32,36,"transports.details.basic.type")),d(2),E(" ",o.data.type," "),d(2),C("inline",!0),d(2),E("",y(38,38,"transports.details.data.title")," "),d(4),M(y(42,40,"transports.details.data.uploaded")),d(2),E(" ",y(44,42,o.data.sent)," "),d(4),M(y(48,44,"transports.details.data.downloaded")),d(2),E(" ",y(50,46,o.data.recv)," "),d(4),M(y(54,48,"transports.latency")),d(2),S(o.data.latencyMs&&o.data.latencyMs>0?55:-1),d(),S(o.data.latencyMs&&0!==o.data.latencyMs?-1:56))},dependencies:[We,Kt,gn,Vl,xe,rp],styles:[".help-icon[_ngcontent-%COMP%]{opacity:.5;font-size:14px;cursor:default}"]})}}return t})();const kTe=(t,n)=>({"small-node-list-margins":t,"full-node-list-margins":n}),DTe=t=>({"d-lg-none d-xl-table":t}),MTe=t=>({"d-lg-table d-xl-none":t}),u6=t=>({offline:t});function TTe(t,n){1&t&&(h(0,"span",3),p(1),b(2,"translate"),h(3,"mat-icon",14),b(4,"translate"),p(5,"help"),u()()),2&t&&(d(),E(" ",y(2,3,"transports.title")," "),d(2),C("inline",!0)("matTooltip",y(4,5,"transports.info")))}function ETe(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,v().$implicit.translatableValue)," ")}function PTe(t,n){1&t&&p(0),2&t&&E(" ",v().$implicit.value," ")}function ITe(t,n){if(1&t&&(h(0,"div",16)(1,"span"),p(2),b(3,"translate"),u(),x(4,ETe,2,3),x(5,PTe,1,1),u()),2&t){const e=n.$implicit;d(2),E("",y(3,3,e.filterName),": "),d(2),S(e.translatableValue?4:-1),d(),S(e.value?5:-1)}}function OTe(t,n){if(1&t){const e=oe();h(0,"div",15),F("click",function(){return j(e),U(v().dataFilterer.removeFilters())}),ve(1,ITe,6,5,"div",16,Fe),h(3,"div",17),p(4),b(5,"translate"),u()()}if(2&t){const e=v();d(),ye(e.dataFilterer.currentFiltersTexts),d(3),M(y(5,1,"filters.press-to-remove"))}}function ATe(t,n){if(1&t){const e=oe();h(0,"mat-icon",18),F("click",function(){return j(e),U(v().dataFilterer.changeFilters())}),p(1,"filter_list"),u()}2&t&&C("inline",!0)}function RTe(t,n){if(1&t&&(h(0,"mat-icon",9),p(1,"more_horiz"),u()),2&t){v();const e=Hn(12);C("inline",!0)("matMenuTriggerFor",e)}}function FTe(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"transports.dialog.errors.remote-key-length-error")," ")}function NTe(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"transports.dialog.errors.remote-key-chars-error")," ")}function LTe(t,n){if(1&t&&(h(0,"mat-option",32),p(1),u()),2&t){const e=n.$implicit;C("value",e),d(),M(e)}}function BTe(t,n){1&t&&ve(0,LTe,2,2,"mat-option",32,Fe),2&t&&ye(v(2).addAvailableTypes)}function VTe(t,n){if(1&t){const e=oe();h(0,"div",13)(1,"div",19)(2,"form",20),F("ngSubmit",function(){return j(e),U(v().submitAddForm())}),h(3,"div",21)(4,"mat-form-field",22)(5,"mat-label"),p(6),b(7,"translate"),u(),B(8,"input",23),h(9,"mat-error"),x(10,FTe,2,3)(11,NTe,2,3),u()(),h(12,"mat-form-field",24)(13,"mat-label"),p(14),b(15,"translate"),u(),B(16,"input",25),u(),h(17,"mat-form-field",26)(18,"mat-label"),p(19),b(20,"translate"),u(),h(21,"mat-select",27),x(22,BTe,2,0),u()()(),h(23,"div",21)(24,"mat-checkbox",28),F("change",function(o){return j(e),U(v().setAddPersistent(o))}),p(25),b(26,"translate"),h(27,"mat-icon",29),b(28,"translate"),p(29,"help"),u()(),h(30,"button",30)(31,"mat-icon"),p(32,"add"),u(),p(33),b(34,"translate"),u(),h(35,"button",31),F("click",function(){return j(e),U(v().cancelAddForm())}),p(36),b(37,"translate"),u()()()()()}if(2&t){const e=v();d(2),C("formGroup",e.addForm),d(4),M(y(7,14,"transports.dialog.remote-key")),d(4),S(e.addForm.get("remoteKey").hasError("pattern")?11:10),d(4),M(y(15,16,"transports.dialog.label")),d(5),M(y(20,18,"transports.dialog.transport-type")),d(3),S(e.addAvailableTypes?22:-1),d(2),C("checked",e.addingPersistent),d(),E(" ",y(26,20,"transports.dialog.make-persistent")," "),d(2),C("inline",!0)("matTooltip",y(28,22,"transports.dialog.persistent-tooltip")),d(3),C("disabled",!e.addForm.valid||e.addBusy),d(3),E(" ",y(34,24,"transports.create")," "),d(2),C("disabled",e.addBusy),d(),E(" ",y(37,26,"common.cancel")," ")}}function HTe(t,n){if(1&t&&(h(0,"mat-icon",37),p(1),u()),2&t){const e=v(2);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function jTe(t,n){1&t&&p(0," * ")}function UTe(t,n){if(1&t&&(h(0,"mat-icon",37),p(1),u(),x(2,jTe,1,0)),2&t){const e=v(2);C("inline",!0),d(),M(e.dataSorter.sortingArrow),d(),S(e.dataSorter.currentlySortingByLabel?2:-1)}}function zTe(t,n){1&t&&p(0," * ")}function $Te(t,n){if(1&t&&(h(0,"mat-icon",37),p(1),u(),x(2,zTe,1,0)),2&t){const e=v(2);C("inline",!0),d(),M(e.dataSorter.sortingArrow),d(),S(e.dataSorter.currentlySortingByLabel?2:-1)}}function WTe(t,n){if(1&t&&(h(0,"mat-icon",37),p(1),u()),2&t){const e=v(2);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function GTe(t,n){if(1&t&&(h(0,"mat-icon",37),p(1),u()),2&t){const e=v(2);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function qTe(t,n){if(1&t&&(h(0,"mat-icon",37),p(1),u()),2&t){const e=v(2);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function KTe(t,n){if(1&t&&(h(0,"mat-icon",37),p(1),u()),2&t){const e=v(2);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function YTe(t,n){if(1&t){const e=oe();h(0,"button",51),b(1,"translate"),F("click",function(){j(e);const o=v().$implicit;return U(v(2).changeIfPersistent([o],!1))}),h(2,"mat-icon",52),p(3,"star"),u()()}2&t&&(C("matTooltip",y(1,2,"transports.persistent-transport-button-tooltip")),d(2),C("inline",!0))}function XTe(t,n){if(1&t){const e=oe();h(0,"button",51),b(1,"translate"),F("click",function(){j(e);const o=v().$implicit;return U(v(2).changeIfPersistent([o],!0))}),h(2,"mat-icon",53),p(3,"star_outline"),u()()}2&t&&(C("matTooltip",y(1,2,"transports.non-persistent-transport-button-tooltip")),d(2),C("inline",!0))}function ZTe(t,n){1&t&&(h(0,"span"),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"transports.offline")))}function QTe(t,n){if(1&t){const e=oe();h(0,"td")(1,"app-labeled-element-text",54),F("labelEdited",function(){return j(e),U(v(3).refreshData())}),u(),x(2,ZTe,3,3,"span"),u()}if(2&t){const e=v().$implicit,i=v(2);d(),C("id",Qt(e.id))("elementType",i.labeledElementTypes.Transport),d(),S(e.notFound?2:-1)}}function JTe(t,n){1&t&&(h(0,"td"),p(1),b(2,"translate"),u()),2&t&&(d(),E(" ",y(2,1,"transports.offline")," "))}function e2e(t,n){if(1&t&&(h(0,"td"),p(1),b(2,"autoScale"),u()),2&t){const e=v().$implicit;d(),E(" ",y(2,1,e.sent)," ")}}function t2e(t,n){if(1&t&&(h(0,"td"),p(1),b(2,"autoScale"),u()),2&t){const e=v().$implicit;d(),E(" ",y(2,1,e.recv)," ")}}function n2e(t,n){1&t&&(h(0,"td"),p(1),b(2,"translate"),u()),2&t&&(d(),E(" ",y(2,1,"transports.offline")," "))}function i2e(t,n){1&t&&(h(0,"td"),p(1),b(2,"translate"),u()),2&t&&(d(),E(" ",y(2,1,"transports.offline")," "))}function o2e(t,n){1&t&&(p(0),b(1,"number")),2&t&&E(" ",pe(1,1,v(2).$implicit.latencyMs,"1.0-0")," ms ")}function r2e(t,n){1&t&&(h(0,"span",17),p(1,"-"),u())}function s2e(t,n){if(1&t&&(h(0,"td"),x(1,o2e,2,4),x(2,r2e,2,0,"span",17),u()),2&t){const e=v().$implicit;d(),S(e.latencyMs&&e.latencyMs>0?1:-1),d(),S(e.latencyMs&&0!==e.latencyMs?-1:2)}}function a2e(t,n){1&t&&(h(0,"td"),p(1),b(2,"translate"),u()),2&t&&(d(),E(" ",y(2,1,"transports.offline")," "))}function l2e(t,n){if(1&t){const e=oe();h(0,"button",55),b(1,"translate"),F("click",function(){j(e);const o=v().$implicit;return U(v(2).details(o))}),h(2,"mat-icon",37),p(3,"visibility"),u()()}2&t&&(C("matTooltip",y(1,2,"transports.details.title")),d(2),C("inline",!0))}function c2e(t,n){if(1&t){const e=oe();h(0,"button",55),b(1,"translate"),F("click",function(){j(e);const o=v().$implicit;return U(v(2).delete(o))}),h(2,"mat-icon",37),p(3,"close"),u()()}2&t&&(C("matTooltip",y(1,2,"transports.delete")),d(2),C("inline",!0))}function d2e(t,n){if(1&t){const e=oe();h(0,"tr",40)(1,"td",46)(2,"mat-checkbox",47),F("change",function(){const o=j(e).$implicit;return U(v(2).changeSelection(o))}),u()(),h(3,"td"),x(4,YTe,4,4,"button",48),x(5,XTe,4,4,"button",48),u(),x(6,QTe,3,4,"td"),x(7,JTe,3,3,"td"),h(8,"td")(9,"app-labeled-element-text",49),F("labelEdited",function(){return j(e),U(v(2).refreshData())}),u()(),h(10,"td"),p(11),u(),x(12,e2e,3,3,"td"),x(13,t2e,3,3,"td"),x(14,n2e,3,3,"td"),x(15,i2e,3,3,"td"),x(16,s2e,3,2,"td"),x(17,a2e,3,3,"td"),h(18,"td",39),x(19,l2e,4,4,"button",50),x(20,c2e,4,4,"button",50),u()()}if(2&t){const e=n.$implicit,i=v(2);C("ngClass",se(17,u6,e.notFound)),d(2),C("checked",i.selections.get(e.id)),d(2),S(e.isPersistent?4:-1),d(),S(e.isPersistent?-1:5),d(),S(e.notFound?-1:6),d(),S(e.notFound?7:-1),d(2),C("id",Qt(e.remotePk)),d(2),E(" ",e.type," "),d(),S(e.notFound?-1:12),d(),S(e.notFound?-1:13),d(),S(e.notFound?14:-1),d(),S(e.notFound?15:-1),d(),S(e.notFound?-1:16),d(),S(e.notFound?17:-1),d(2),S(e.notFound?-1:19),d(),S(e.notFound?-1:20)}}function u2e(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"tables.label")," ")}function h2e(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"tables.inverted-order")," ")}function f2e(t,n){1&t&&(h(0,"div",58)(1,"div",58)(2,"mat-icon",63),p(3,"star"),u(),p(4,"\xa0 "),h(5,"span",64),p(6),b(7,"translate"),u()()()),2&t&&(d(2),C("inline",!0),d(4),M(y(7,2,"transports.persistent")))}function p2e(t,n){if(1&t){const e=oe();h(0,"app-labeled-element-text",54),F("labelEdited",function(){return j(e),U(v(3).refreshData())}),u()}if(2&t){const e=v().$implicit,i=v(2);C("id",Qt(e.id))("elementType",i.labeledElementTypes.Transport)}}function m2e(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"transports.offline")," ")}function g2e(t,n){1&t&&(p(0),b(1,"autoScale")),2&t&&E(" ",y(1,1,v().$implicit.sent)," ")}function _2e(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"transports.offline")," ")}function b2e(t,n){1&t&&(p(0),b(1,"autoScale")),2&t&&E(" ",y(1,1,v().$implicit.recv)," ")}function v2e(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"transports.offline")," ")}function y2e(t,n){1&t&&(p(0),b(1,"number")),2&t&&E(" ",pe(1,1,v(2).$implicit.latencyMs,"1.0-0")," ms ")}function C2e(t,n){1&t&&p(0," - ")}function w2e(t,n){if(1&t&&(x(0,y2e,2,4),x(1,C2e,1,0)),2&t){const e=v().$implicit;S(e.latencyMs&&e.latencyMs>0?0:-1),d(),S(e.latencyMs&&0!==e.latencyMs?-1:1)}}function x2e(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"transports.offline")," ")}function S2e(t,n){if(1&t){const e=oe();h(0,"tr")(1,"td")(2,"div",56)(3,"div",57)(4,"mat-checkbox",47),F("change",function(){const o=j(e).$implicit;return U(v(2).changeSelection(o))}),u()(),h(5,"div",44),x(6,f2e,8,4,"div",58),h(7,"div",59)(8,"span",2),p(9),b(10,"translate"),u(),p(11,": "),x(12,p2e,1,3,"app-labeled-element-text",60),x(13,m2e,2,3),u(),h(14,"div",59)(15,"span",2),p(16),b(17,"translate"),u(),p(18,": "),h(19,"app-labeled-element-text",49),F("labelEdited",function(){return j(e),U(v(2).refreshData())}),u()(),h(20,"div",58)(21,"span",2),p(22),b(23,"translate"),u(),p(24),u(),h(25,"div",58)(26,"span",2),p(27),b(28,"translate"),u(),p(29,": "),x(30,g2e,2,3),x(31,_2e,2,3),u(),h(32,"div",58)(33,"span",2),p(34),b(35,"translate"),u(),p(36,": "),x(37,b2e,2,3),x(38,v2e,2,3),u(),h(39,"div",58)(40,"span",2),p(41),b(42,"translate"),u(),p(43,": "),x(44,w2e,2,2),x(45,x2e,2,3),u()(),B(46,"div",61),h(47,"div",45)(48,"button",62),b(49,"translate"),F("click",function(o){const r=j(e).$implicit,s=v(2);return o.stopPropagation(),U(s.showOptionsDialog(r))}),h(50,"mat-icon"),p(51),u()()()()()()}if(2&t){const e=n.$implicit,i=v(2);d(2),C("ngClass",se(36,u6,e.notFound)),d(2),C("checked",i.selections.get(e.id)),d(2),S(e.isPersistent?6:-1),d(3),M(y(10,22,"transports.id")),d(3),S(e.notFound?-1:12),d(),S(e.notFound?13:-1),d(3),M(y(17,24,"transports.remote-node")),d(3),C("id",Qt(e.remotePk)),d(3),M(y(23,26,"transports.type")),d(2),E(": ",e.type," "),d(3),M(y(28,28,"common.uploaded")),d(3),S(e.notFound?-1:30),d(),S(e.notFound?31:-1),d(3),M(y(35,30,"common.downloaded")),d(3),S(e.notFound?-1:37),d(),S(e.notFound?38:-1),d(3),M(y(42,32,"transports.latency")),d(3),S(e.notFound?-1:44),d(),S(e.notFound?45:-1),d(3),C("matTooltip",y(49,34,"common.options")),d(3),M("add")}}function k2e(t,n){if(1&t){const e=oe();h(0,"div",13)(1,"div",33)(2,"table",34)(3,"tr"),B(4,"th"),h(5,"th",35),b(6,"translate"),F("click",function(){j(e);const o=v();return U(o.dataSorter.changeSortingOrder(o.persistentSortData))}),h(7,"mat-icon",36),p(8,"star_outline"),u(),x(9,HTe,2,2,"mat-icon",37),u(),h(10,"th",38),F("click",function(){j(e);const o=v();return U(o.dataSorter.changeSortingOrder(o.idSortData))}),p(11),b(12,"translate"),x(13,UTe,3,3),u(),h(14,"th",38),F("click",function(){j(e);const o=v();return U(o.dataSorter.changeSortingOrder(o.remotePkSortData))}),p(15),b(16,"translate"),x(17,$Te,3,3),u(),h(18,"th",38),F("click",function(){j(e);const o=v();return U(o.dataSorter.changeSortingOrder(o.typeSortData))}),p(19),b(20,"translate"),x(21,WTe,2,2,"mat-icon",37),u(),h(22,"th",38),F("click",function(){j(e);const o=v();return U(o.dataSorter.changeSortingOrder(o.uploadedSortData))}),p(23),b(24,"translate"),x(25,GTe,2,2,"mat-icon",37),u(),h(26,"th",38),F("click",function(){j(e);const o=v();return U(o.dataSorter.changeSortingOrder(o.downloadedSortData))}),p(27),b(28,"translate"),x(29,qTe,2,2,"mat-icon",37),u(),h(30,"th",38),F("click",function(){j(e);const o=v();return U(o.dataSorter.changeSortingOrder(o.latencySortData))}),p(31),b(32,"translate"),x(33,KTe,2,2,"mat-icon",37),u(),B(34,"th",39),u(),ve(35,d2e,21,19,"tr",40,Fe),u(),h(37,"table",41)(38,"tr",42),F("click",function(){return j(e),U(v().dataSorter.openSortingOrderModal())}),h(39,"td")(40,"div",43)(41,"div",44)(42,"div",2),p(43),b(44,"translate"),u(),h(45,"div"),p(46),b(47,"translate"),x(48,u2e,2,3),x(49,h2e,2,3),u()(),h(50,"div",45)(51,"mat-icon",37),p(52,"keyboard_arrow_down"),u()()()()(),ve(53,S2e,52,38,"tr",null,Fe),u()()()}if(2&t){const e=v();d(),C("ngClass",_t(40,kTe,e.showShortList_,!e.showShortList_)),d(),C("ngClass",se(43,DTe,e.showShortList_)),d(3),C("matTooltip",y(6,22,"transports.persistent-tooltip")),d(4),S(e.dataSorter.currentSortingColumn===e.persistentSortData?9:-1),d(2),E(" ",y(12,24,"transports.id")," "),d(2),S(e.dataSorter.currentSortingColumn===e.idSortData?13:-1),d(2),E(" ",y(16,26,"transports.remote-node")," "),d(2),S(e.dataSorter.currentSortingColumn===e.remotePkSortData?17:-1),d(2),E(" ",y(20,28,"transports.type")," "),d(2),S(e.dataSorter.currentSortingColumn===e.typeSortData?21:-1),d(2),E(" ",y(24,30,"common.uploaded")," "),d(2),S(e.dataSorter.currentSortingColumn===e.uploadedSortData?25:-1),d(2),E(" ",y(28,32,"common.downloaded")," "),d(2),S(e.dataSorter.currentSortingColumn===e.downloadedSortData?29:-1),d(2),E(" ",y(32,34,"transports.latency")," "),d(2),S(e.dataSorter.currentSortingColumn===e.latencySortData?33:-1),d(2),ye(e.dataSource),d(2),C("ngClass",se(45,MTe,e.showShortList_)),d(6),M(y(44,36,"tables.sorting-title")),d(3),E("",y(47,38,e.dataSorter.currentSortingColumn.label)," "),d(2),S(e.dataSorter.currentlySortingByLabel?48:-1),d(),S(e.dataSorter.sortingInReverseOrder?49:-1),d(2),C("inline",!0),d(2),ye(e.dataSource)}}function D2e(t,n){1&t&&(h(0,"span",67),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"transports.empty")))}function M2e(t,n){1&t&&(h(0,"span",67),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"transports.empty-with-filter")))}function T2e(t,n){if(1&t&&(h(0,"div",13)(1,"div",65)(2,"mat-icon",66),p(3,"warning"),u(),x(4,D2e,3,3,"span",67),x(5,M2e,3,3,"span",67),u()()),2&t){const e=v();d(2),C("inline",!0),d(2),S(0===e.allTransports.length?4:-1),d(),S(0!==e.allTransports.length?5:-1)}}let E2e=(()=>{class t{set showShortList(e){this.showShortList_=e,this.dataSorter.setData(this.filteredTransports)}set node(e){const i=performance.now();console.log("[HV-DIAG] transport-list setter called, transports:",e.transports?.length,"persistentTransports:",e.persistentTransports?.length);const o=e.transports.map(s=>s.id).sort().join(",");if(o===this.lastTransportIds&&e.transports.length===this.lastTransportCount)return this.allTransports&&(e.transports.forEach(s=>{const a=this.allTransports.find(l=>l.id===s.id);a&&(a.sent=s.sent,a.recv=s.recv)}),this.cdr.markForCheck()),void console.log("[HV-DIAG] transport-list stats-only update took",(performance.now()-i).toFixed(1),"ms");console.log("[HV-DIAG] transport-list FULL reprocessing",e.transports.length,"transports"),this.lastTransportCount=e.transports.length,this.lastTransportIds=o,this.currentNode=e,this.allTransports=e.transports,this.nodePK=e.localPk;const r=new Map;e.persistentTransports.forEach(s=>r.set(this.getPersistentTransportID(s.pk,s.type),s)),this.allTransports.forEach(s=>{r.has(this.getPersistentTransportID(s.remotePk,s.type))?(s.isPersistent=!0,r.delete(this.getPersistentTransportID(s.remotePk,s.type))):s.isPersistent=!1}),r.forEach((s,a)=>{this.allTransports.push({id:this.getPersistentTransportID(s.pk,s.type),localPk:e.localPk,remotePk:s.pk,type:s.type,recv:0,sent:0,isPersistent:!0,notFound:!0})}),this.allTransports.forEach(s=>{s.id_label=kc.getCompleteLabel(this.storageService,this.translateService,s.id),s.remote_pk_label=kc.getCompleteLabel(this.storageService,this.translateService,s.remotePk)}),this.dataFilterer.setData(this.allTransports),this.cdr.markForCheck()}constructor(e,i,o,r,s,a,l,c,f,m){this.dialog=e,this.transportService=i,this.route=o,this.router=r,this.snackbarService=s,this.translateService=a,this.storageService=l,this.nodeService=c,this.cdr=f,this.formBuilder=m,this.listId="tr",this.persistentSortData=new Dt(["isPersistent"],"transports.persistent",st.Boolean),this.idSortData=new Dt(["id"],"transports.id",st.Text,["id_label"]),this.remotePkSortData=new Dt(["remotePk"],"transports.remote-node",st.Text,["remote_pk_label"]),this.typeSortData=new Dt(["type"],"transports.type",st.Text),this.uploadedSortData=new Dt(["sent"],"common.uploaded",st.NumberReversed),this.downloadedSortData=new Dt(["recv"],"common.downloaded",st.NumberReversed),this.latencySortData=new Dt(["latencyMs"],"transports.latency",st.Number),this.selections=new Map,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.lastTransportCount=-1,this.lastTransportIds="",this.filterProperties=[{filterName:"transports.filter-dialog.persistent",keyNameInElementsArray:"isPersistent",type:Sn.Select,printableLabelsForValues:[{value:"",label:"transports.filter-dialog.persistent-options.any"},{value:"true",label:"transports.filter-dialog.persistent-options.persistent"},{value:"false",label:"transports.filter-dialog.persistent-options.non-persistent"}]},{filterName:"transports.filter-dialog.id",keyNameInElementsArray:"id",secondaryKeyNameInElementsArray:"id_label",type:Sn.TextInput,maxlength:36},{filterName:"transports.filter-dialog.remote-node",keyNameInElementsArray:"remotePk",secondaryKeyNameInElementsArray:"remote_pk_label",type:Sn.TextInput,maxlength:66}],this.labeledElementTypes=ro,this.showAddForm=!1,this.addingPersistent=!1,this.addAvailableTypes=null,this.addBusy=!1,this.operationSubscriptionsGroup=[],this.addForm=this.formBuilder.group({remoteKey:["",Ne.compose([Ne.required,Ne.minLength(66),Ne.maxLength(66),Ne.pattern("^[0-9a-fA-F]+$")])],label:[""],type:["",Ne.required]}),this.dataSorter=new gu(this.dialog,this.translateService,this.storageService,[this.persistentSortData,this.idSortData,this.remotePkSortData,this.typeSortData,this.uploadedSortData,this.downloadedSortData,this.latencySortData],1,this.listId),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataFilterer=new _u(this.dialog,this.route,this.router,this.filterProperties,this.listId),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(_=>{this.filteredTransports=_,this.dataSorter.setData(this.filteredTransports)}),this.navigationsSubscription=this.route.paramMap.subscribe(_=>{if(_.has("page")){let w=Number.parseInt(_.get("page"),10);(isNaN(w)||w<1)&&(w=1),this.currentPageInUrl=w,this.recalculateElementsToShow()}}),this.languageSubscription=this.translateService.onLangChange.subscribe(()=>{this.node=this.currentNode})}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.operationSubscriptionsGroup.forEach(e=>e.unsubscribe()),this.languageSubscription.unsubscribe(),this.dataSortedSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFiltererSubscription.unsubscribe(),this.dataFilterer.dispose(),this.persistentTransportSubscription&&this.persistentTransportSubscription.unsubscribe(),this.addOperationSubscription&&this.addOperationSubscription.unsubscribe(),this.addTypesSubscription&&this.addTypesSubscription.unsubscribe()}changeSelection(e){this.selections.get(e.id)?this.selections.set(e.id,!1):this.selections.set(e.id,!0)}hasSelectedElements(){if(!this.selections)return!1;let e=!1;return this.selections.forEach(i=>{i&&(e=!0)}),e}changeAllSelections(e){this.selections.forEach((i,o)=>{this.selections.set(o,e)})}deleteSelected(){const e=[];this.selections.forEach((i,o)=>{i&&e.push(o)}),0!==e.length&&this.deleteRecursively(e,null)}toggleAddForm(){this.showAddForm=!this.showAddForm,this.showAddForm&&null===this.addAvailableTypes&&this.loadAddTypes(),this.showAddForm||this.resetAddForm()}cancelAddForm(){this.showAddForm=!1,this.resetAddForm()}setAddPersistent(e){this.addingPersistent=!!e.checked}submitAddForm(){if(!this.addForm.valid||this.addBusy)return;const e=this.addForm.get("remoteKey").value,i=this.addForm.get("type").value,o=this.addForm.get("label").value;this.addBusy=!0,this.addingPersistent?this.addOperationSubscription=this.transportService.getPersistentTransports(ke.getCurrentNodeKey()).subscribe(r=>{const s=r||[];s.some(l=>l.pk.toUpperCase()===e.toUpperCase()&&l.type.toUpperCase()===i.toUpperCase())?this.doCreateTransport(e,i,o,!0):(s.push({pk:e,type:i}),this.addOperationSubscription=this.transportService.savePersistentTransportsData(ke.getCurrentNodeKey(),s).subscribe(()=>{this.doCreateTransport(e,i,o,!0)},l=>this.onAddError(l)))},r=>this.onAddError(r)):this.doCreateTransport(e,i,o,!1)}doCreateTransport(e,i,o,r){this.addOperationSubscription=this.transportService.create(ke.getCurrentNodeKey(),e,i).subscribe(s=>{let a=!1;o&&(s&&s.id?this.storageService.saveLabel(s.id,o,ro.Transport):a=!0),this.addBusy=!1,this.cancelAddForm(),ke.refreshCurrentDisplayedData(),a?this.snackbarService.showWarning("transports.dialog.success-without-label"):this.snackbarService.showDone("transports.dialog.success")},s=>{r?(this.addBusy=!1,this.cancelAddForm(),ke.refreshCurrentDisplayedData(),this.snackbarService.showWarning("transports.dialog.only-persistent-created")):this.onAddError(s)})}onAddError(e){this.addBusy=!1,e=Qe(e),this.snackbarService.showError(e)}resetAddForm(){this.addForm.reset({remoteKey:"",label:"",type:this.addAvailableTypes&&this.addAvailableTypes[0]||""}),this.addingPersistent=!1,this.addBusy=!1}loadAddTypes(){this.addTypesSubscription=ae(1).pipe(li(0),It(()=>this.transportService.types(ke.getCurrentNodeKey()))).subscribe(e=>{e.sort((o,r)=>"stcp"===o.toLowerCase()?1:"stcp"===r.toLowerCase()?-1:o.localeCompare(r));let i=e.findIndex(o=>"dmsg"===o.toLowerCase());i=-1!==i?i:0,this.addAvailableTypes=e,this.addForm.get("type").setValue(e[i]||""),this.cdr.markForCheck()},e=>{e=Qe(e),this.snackbarService.showError(e),this.addAvailableTypes=[],this.cdr.markForCheck()})}showOptionsDialog(e){const i=[];i.push(e.isPersistent?{icon:"star_outline",label:"transports.make-non-persistent"}:{icon:"star",label:"transports.make-persistent"}),e.notFound||(i.push({icon:"visibility",label:"transports.details.title"}),i.push({icon:"close",label:"transports.delete"})),ao.openDialog(this.dialog,i,"common.options").afterClosed().subscribe(o=>{1===o?this.changeIfPersistent([e],!e.isPersistent):2===o?this.details(e):3===o&&this.delete(e)})}changeIfPersistentOfSelected(e){const i=[];this.allTransports.forEach(o=>{this.selections.has(o.id)&&this.selections.get(o.id)&&i.push(o)}),this.changeIfPersistent(i,e)}changeIfPersistent(e,i){e.length<1||(this.persistentTransportSubscription=this.transportService.getPersistentTransports(this.nodePK).subscribe(o=>{const r=o||[];let s;const a=new Map;if(e.forEach(l=>a.set(this.getPersistentTransportID(l.remotePk,l.type),l)),i)r.forEach(l=>{a.has(this.getPersistentTransportID(l.pk,l.type))&&a.delete(this.getPersistentTransportID(l.pk,l.type))}),s=0===a.size,s||a.forEach(l=>r.push({pk:l.remotePk,type:l.type}));else{s=!0;for(let l=0;l{ke.refreshCurrentDisplayedData(),this.snackbarService.showDone("transports.changes-made")},l=>{l=Qe(l),this.snackbarService.showError(l)})},o=>{o=Qe(o),this.snackbarService.showError(o)}))}details(e){STe.openDialog(this.dialog,e)}delete(e){this.operationSubscriptionsGroup.push(this.startDeleting(e.id).subscribe(()=>{ke.refreshCurrentDisplayedData(),this.snackbarService.showDone("transports.deleted")},i=>{i=Qe(i),this.snackbarService.showError(i)}))}refreshData(){ke.refreshCurrentDisplayedData()}getPersistentTransportID(e,i){return e.toUpperCase()+i.toUpperCase()}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredTransports){this.numberOfPages=1,this.currentPage=1,this.transportsToShow=this.filteredTransports.slice();const e=new Map;this.transportsToShow.forEach(o=>{e.set(o.id,!0),this.selections.has(o.id)||this.selections.set(o.id,!1)});const i=[];this.selections.forEach((o,r)=>{e.has(r)||i.push(r)}),i.forEach(o=>{this.selections.delete(o)})}else this.transportsToShow=null,this.selections=new Map;this.dataSource=this.transportsToShow,this.cdr.markForCheck()}startDeleting(e){return this.transportService.delete(ke.getCurrentNodeKey(),e)}deleteRecursively(e,i){this.operationSubscriptionsGroup.push(this.startDeleting(e[e.length-1]).subscribe(()=>{e.pop(),0===e.length?(i&&i.close(),ke.refreshCurrentDisplayedData(),this.snackbarService.showDone("transports.deleted")):this.deleteRecursively(e,i)},o=>{ke.refreshCurrentDisplayedData(),o=Qe(o),i?i.componentInstance.showDone("confirmation.error-header-text",o.translatableErrorMsg):this.snackbarService.showError(o)}))}static{this.\u0275fac=function(i){return new(i||t)(O(Ot),O(l6),O(Ai),O(vt),O(ct),O(Go),O(ti),O(Io),O(Jt),O(di))}}static{this.\u0275cmp=re({type:t,selectors:[["app-transport-list"]],inputs:{showShortList:"showShortList",node:"node"},standalone:!1,decls:31,vars:34,consts:[["selectionMenu","matMenu"],[1,"generic-title-container","mt-4.5","d-flex"],[1,"title"],[1,"uppercase"],[1,"filter-label","subtle-transparent-button","cursor-pointer"],[1,"options"],[1,"options-container"],[3,"click","inline","matTooltip"],[1,"small-icon",3,"inline"],[3,"inline","matMenuTriggerFor"],[3,"overlapTrigger"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"click","disabled"],[1,"rounded-elevated-box","mt-3"],[1,"help","d-none","d-md-inline",3,"inline","matTooltip"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],[1,"item"],[1,"transparent-50"],[1,"small-icon",3,"click","inline"],[1,"box-internal-container","small-node-list-margins"],[1,"inline-add-transport",3,"ngSubmit","formGroup"],[1,"add-row"],["appearance","outline",1,"field-pk"],["matInput","","formControlName","remoteKey","maxlength","66","placeholder","02abc..."],["appearance","outline",1,"field-md"],["matInput","","formControlName","label","maxlength","66"],["appearance","outline",1,"field-sm"],["formControlName","type","panelClass","skynet-select-panel"],["color","primary",3,"change","checked"],[1,"help-icon",3,"inline","matTooltip"],["mat-raised-button","","color","primary","type","submit",3,"disabled"],["mat-button","","type","button",3,"click","disabled"],[3,"value"],[1,"box-internal-container","overflow",3,"ngClass"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table",3,"ngClass"],[1,"sortable-column","small-column",3,"click","matTooltip"],[1,"persistent-icon","grey-text"],[3,"inline"],[1,"sortable-column",3,"click"],[1,"actions"],[3,"ngClass"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none",3,"ngClass"],[1,"selectable",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],[1,"selection-col"],[3,"change","checked"],["mat-button","",1,"action-button","subtle-transparent-button",3,"matTooltip"],[3,"labelEdited","id"],["mat-button","",1,"action-button","transparent-button",3,"matTooltip"],["mat-button","",1,"action-button","subtle-transparent-button",3,"click","matTooltip"],[1,"persistent-icon","default-cursor",3,"inline"],[1,"persistent-icon","grey-text",3,"inline"],[3,"labelEdited","id","elementType"],["mat-button","",1,"action-button","transparent-button",3,"click","matTooltip"],[1,"list-item-container",3,"ngClass"],[1,"check-part"],[1,"list-row"],[1,"list-row","long-content"],[3,"id","elementType"],[1,"margin-part"],["mat-icon-button","",1,"transparent-button",3,"click","matTooltip"],[1,"persistent-icon",3,"inline"],[1,"yellow-clear-text","title"],[1,"box-internal-container"],[1,"alert-icon",3,"inline"],[1,"font-sm"]],template:function(i,o){1&i&&(h(0,"div",1)(1,"div",2),x(2,TTe,6,7,"span",3),x(3,OTe,6,3,"div",4),u(),h(4,"div",5)(5,"div",6)(6,"mat-icon",7),b(7,"translate"),F("click",function(){return o.toggleAddForm()}),p(8),u(),x(9,ATe,2,1,"mat-icon",8),x(10,RTe,2,2,"mat-icon",9),h(11,"mat-menu",10,0)(13,"div",11),F("click",function(){return o.changeAllSelections(!0)}),p(14),b(15,"translate"),u(),h(16,"div",11),F("click",function(){return o.changeAllSelections(!1)}),p(17),b(18,"translate"),u(),h(19,"div",12),F("click",function(){return o.changeIfPersistentOfSelected(!0)}),p(20),b(21,"translate"),u(),h(22,"div",12),F("click",function(){return o.changeIfPersistentOfSelected(!1)}),p(23),b(24,"translate"),u(),h(25,"div",12),F("click",function(){return o.deleteSelected()}),p(26),b(27,"translate"),u()()()()(),x(28,VTe,38,28,"div",13),x(29,k2e,55,47,"div",13),x(30,T2e,6,3,"div",13)),2&i&&(d(2),S(o.showShortList_?2:-1),d(),S(o.dataFilterer.currentFiltersTexts&&o.dataFilterer.currentFiltersTexts.length>0?3:-1),d(3),C("inline",!0)("matTooltip",y(7,22,o.showAddForm?"common.cancel":"transports.create")),d(2),M(o.showAddForm?"remove":"add"),d(),S(o.allTransports&&o.allTransports.length>0?9:-1),d(),S(o.dataSource&&o.dataSource.length>0?10:-1),d(),C("overlapTrigger",!1),d(3),E(" ",y(15,24,"selection.select-all")," "),d(3),E(" ",y(18,26,"selection.unselect-all")," "),d(2),C("disabled",Qt(!o.hasSelectedElements())),d(),E(" ",y(21,28,"transports.make-selected-persistent")," "),d(2),C("disabled",Qt(!o.hasSelectedElements())),d(),E(" ",y(24,30,"transports.make-selected-non-persistent")," "),d(2),C("disabled",Qt(!o.hasSelectedElements())),d(),E(" ",y(27,32,"selection.delete-all")," "),d(2),S(o.showAddForm?28:-1),d(),S(o.dataSource&&o.dataSource.length>0?29:-1),d(),S(o.dataSource&&0!==o.dataSource.length?-1:30))},dependencies:[$t,xn,Gt,qt,wn,wi,on,mn,sn,Os,Ma,In,Pn,Wo,We,Kt,Jr,As,vu,Pa,Qr,kr,kc,Vl,xe,rp],styles:[".overflow[_ngcontent-%COMP%]{display:block;width:100%;overflow-x:auto}.overflow[_ngcontent-%COMP%] table[_ngcontent-%COMP%]{width:100%}.actions[_ngcontent-%COMP%]{text-align:right;width:90px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}.small-column[_ngcontent-%COMP%]{width:1px;text-align:center}.persistent-icon[_ngcontent-%COMP%]{font-size:14px!important;color:#d48b05}.offline[_ngcontent-%COMP%]{opacity:.35}.inline-add-transport[_ngcontent-%COMP%] .add-row[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:8px}.inline-add-transport[_ngcontent-%COMP%] .add-row[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{flex:1 1 220px}.inline-add-transport[_ngcontent-%COMP%] .add-row[_ngcontent-%COMP%] .field-pk[_ngcontent-%COMP%]{flex:2 1 360px}.inline-add-transport[_ngcontent-%COMP%] .add-row[_ngcontent-%COMP%] .field-md[_ngcontent-%COMP%]{flex:1 1 180px}.inline-add-transport[_ngcontent-%COMP%] .add-row[_ngcontent-%COMP%] .field-sm[_ngcontent-%COMP%]{flex:0 1 140px}.inline-add-transport[_ngcontent-%COMP%] .add-row[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-left:auto}.inline-add-transport[_ngcontent-%COMP%] .help-icon[_ngcontent-%COMP%]{margin-left:4px;opacity:.6;cursor:help}"],changeDetection:0})}}return t})();function P2e(t,n){1&t&&(h(0,"span"),p(1,", "),u())}function I2e(t,n){if(1&t&&(h(0,"span")(1,"span",11),p(2),u(),p(3,": "),h(4,"span",6),p(5),u(),x(6,P2e,2,0,"span"),u()),2&t){const e=n.$implicit,i=n.$index,o=n.$count;d(2),M(e.type),d(3),M(e.count),d(),S(i!==o-1?6:-1)}}function O2e(t,n){if(1&t&&(p(0," ("),ve(1,I2e,7,3,"span",null,Fe),p(3,") ")),2&t){const e=v(2);d(),ye(e.transportStats.byType)}}function A2e(t,n){if(1&t){const e=oe();h(0,"div",0)(1,"div",1)(2,"span",2),p(3),b(4,"translate"),u(),h(5,"span",3)(6,"span",4),p(7),b(8,"translate"),u(),h(9,"span",5)(10,"span",6),p(11),u(),x(12,O2e,4,0),u()(),h(13,"span",7)(14,"span",4),p(15),b(16,"translate"),u(),h(17,"mat-slide-toggle",8),F("change",function(){return j(e),U(v().changeTransportsConfig())}),u(),h(18,"mat-icon",9),b(19,"translate"),p(20,"info"),u()(),h(21,"span",7)(22,"span",4),p(23),b(24,"translate"),u(),h(25,"mat-slide-toggle",8),F("change",function(){return j(e),U(v().changePublicConfig())}),u(),h(26,"mat-icon",9),b(27,"translate"),p(28,"info"),u()()()(),B(29,"app-transport-list",10)}if(2&t){const e=v();d(3),M(y(4,14,"node.details.transports-info.title")),d(4),E("",y(8,16,"node.details.transports-info.total")," "),d(4),M(e.transportStats.total),d(),S(e.transportStats.byType.length>0?12:-1),d(3),M(y(16,18,"node.details.transports-info.autoconnect")),d(2),C("checked",!!e.node.autoconnectTransports),d(),C("inline",!0)("matTooltip",y(19,20,"node.details.transports-info.autoconnect-info")),d(5),M(y(24,22,"node.details.transports-info.is-public")),d(2),C("checked",!!e.isPublic),d(),C("inline",!0)("matTooltip",y(27,24,"node.details.transports-info.is-public-info")),d(3),C("node",e.node)("showShortList",!1)}}let R2e=(()=>{class t extends pn{constructor(e,i,o){super(),this.apiService=e,this.transportService=i,this.snackbarService=o,this.transportStats={total:0,byType:[]},this.isPublic=!1}ngOnInit(){return this.dataSubscription=ke.currentNode.subscribe(e=>{this.node=e,this.transportStats=this.computeTransportStats(e),e&&this.fetchPublicStatus(e.localPk)}),super.ngOnInit()}ngOnDestroy(){this.dataSubscription?.unsubscribe(),this.autoconnectSubscription?.unsubscribe(),this.publicToggleSubscription?.unsubscribe()}computeTransportStats(e){if(!e||!e.transports)return{total:0,byType:[]};const i={};for(const r of e.transports)i[r.type]=(i[r.type]||0)+1;const o=Object.entries(i).map(([r,s])=>({type:r,count:s})).sort((r,s)=>s.count-r.count);return{total:e.transports.length,byType:o}}fetchPublicStatus(e){this.apiService.get(`visors/${e}/public`).subscribe(i=>{this.isPublic=!(!i||!0!==i.is_public)},()=>{this.isPublic=!1})}changeTransportsConfig(){if(!this.node)return;const e=!this.node.autoconnectTransports;this.autoconnectSubscription=this.transportService.changeAutoconnectSetting(this.node.localPk,e).subscribe(()=>{this.snackbarService.showDone(e?"node.details.transports-info.enable-done":"node.details.transports-info.disable-done"),ke.refreshCurrentDisplayedData()},i=>{i=Qe(i),this.snackbarService.showError(i)})}changePublicConfig(){if(!this.node)return;const e=!this.isPublic;this.publicToggleSubscription=this.apiService.put(`visors/${this.node.localPk}/public`,{is_public:e}).subscribe(()=>{this.isPublic=e,this.snackbarService.showDone(e?"node.details.transports-info.public-enable-done":"node.details.transports-info.public-disable-done")},i=>{i=Qe(i),this.snackbarService.showError(i)})}static{this.\u0275fac=function(i){return new(i||t)(O(zi),O(l6),O(ct))}}static{this.\u0275cmp=re({type:t,selectors:[["app-all-transports"]],standalone:!1,features:[be],decls:1,vars:1,consts:[[1,"rounded-elevated-box","mt-3"],[1,"box-internal-container","overflow","font-smaller"],[1,"section-title"],[1,"info-line"],[1,"title"],[1,"transport-stats"],[1,"transport-count"],[1,"info-line","toggle-line"],["color","primary",3,"change","checked"],[1,"info-tip",3,"inline","matTooltip"],[3,"node","showShortList"],[1,"transport-type"]],template:function(i,o){1&i&&x(0,A2e,30,26),2&i&&S(o.node?0:-1)},dependencies:[We,Kt,d6,E2e,xe],encapsulation:2})}}return t})();const F2e=(t,n)=>n.date;function N2e(t,n){1&t&&(h(0,"a",23)(1,"mat-icon",24),b(2,"translate"),p(3," open_in_browser "),u()()),2&t&&(C("href","https://explorer.skycoin.com/app/address/"+v(2).rewardsAddress,mo),d(),C("inline",!0)("matTooltip",y(2,3,"node.details.rewards-info.open-in-explorer")))}function L2e(t,n){if(1&t&&(B(0,"app-copy-to-clipboard-text",22),x(1,N2e,4,5,"a",23)),2&t){const e=v();C("text",Qt(e.rewardsAddress)),d(),S(e.rewardsAddressIsXpub?-1:1)}}function B2e(t,n){1&t&&(p(0),b(1,"translate"),h(2,"mat-icon",25),b(3,"translate"),p(4,"info"),u()),2&t&&(E(" ",y(1,3,"node.details.rewards-info.not-registered")," "),d(2),C("inline",!0)("matTooltip",y(3,5,"node.details.rewards-info.not-registered-info")))}function V2e(t,n){if(1&t){const e=oe();h(0,"form",26),F("ngSubmit",function(){return j(e),U(v().submitRewardAddress())}),h(1,"mat-form-field",27)(2,"mat-label"),p(3),b(4,"translate"),u(),B(5,"input",28),u(),h(6,"div",29)(7,"button",30),p(8),b(9,"translate"),u(),h(10,"button",31),F("click",function(){return j(e),U(v().toggleRewardForm())}),p(11),b(12,"translate"),u()()()}if(2&t){const e=v();C("formGroup",e.rewardForm),d(3),M(y(4,5,"node.details.rewards-info.rewards-address")),d(4),C("disabled",!e.rewardForm.valid),d(),E(" ",y(9,7,"common.save")," "),d(3),E(" ",y(12,9,"common.cancel")," ")}}function H2e(t,n){if(1&t&&(h(0,"pre",9),p(1),b(2,"translate"),u()),2&t){const e=v();d(),M(e.rewardRules||y(2,1,"common.loading"))}}function j2e(t,n){if(1&t&&(h(0,"span",11),p(1),u()),2&t){const e=v();d(),E("(",e.label,")")}}function U2e(t,n){if(1&t&&(h(0,"div",17)(1,"span",32),p(2),u(),h(3,"span",33),p(4),u()()),2&t){const e=v();d(2),E(" Total: ",e.total.toFixed(2)," SKY "),d(2),E(" (",e.days," days) ")}}function z2e(t,n){1&t&&(h(0,"div",18),B(1,"mat-spinner",34),u())}function $2e(t,n){if(1&t&&(h(0,"div",19),p(1),u()),2&t){const e=v();d(),M(e.errorMsg)}}function W2e(t,n){1&t&&p(0),2&t&&E(" ",v().$implicit.amount.toFixed(6)," ")}function G2e(t,n){1&t&&(h(0,"span",36),p(1,"-"),u())}function q2e(t,n){1&t&&p(0),2&t&&E(" ",v().$implicit.share.toFixed(4),"% ")}function K2e(t,n){1&t&&(h(0,"span",36),p(1,"-"),u())}function Y2e(t,n){if(1&t&&(h(0,"a",37),p(1),u()),2&t){const e=v().$implicit;C("href","https://explorer.skycoin.com/app/transaction/"+e.txid,mo),d(),E(" ",e.txid.substring(0,12),"... ")}}function X2e(t,n){1&t&&(h(0,"span",36),p(1,"-"),u())}function Z2e(t,n){if(1&t&&(h(0,"tr")(1,"td"),p(2),u(),h(3,"td"),x(4,W2e,1,1)(5,G2e,2,0,"span",36),u(),h(6,"td"),x(7,q2e,1,1)(8,K2e,2,0,"span",36),u(),h(9,"td")(10,"span"),p(11),u()(),h(12,"td"),x(13,Y2e,2,2,"a",37)(14,X2e,2,0,"span",36),u()()),2&t){const e=n.$implicit,i=v(2);Ze(i.statusClass(e)),d(2),M(i.formatDate(e.date)),d(2),S(e.amount>0?4:5),d(3),S(e.share>0?7:8),d(3),Ze("status-badge "+i.statusClass(e)),d(),M(i.statusText(e)),d(2),S(e.txid?13:14)}}function Q2e(t,n){if(1&t&&(h(0,"table",20)(1,"tr")(2,"th"),p(3,"Date"),u(),h(4,"th"),p(5,"Amount (SKY)"),u(),h(6,"th"),p(7,"Share (%)"),u(),h(8,"th"),p(9,"Status"),u(),h(10,"th"),p(11,"Transaction"),u()(),ve(12,Z2e,15,9,"tr",35,F2e),u()),2&t){const e=v();d(12),ye(e.history)}}function J2e(t,n){1&t&&(h(0,"div",21),p(1," No reward data available for this visor. "),u())}let eEe=(()=>{class t{constructor(e,i,o,r,s,a,l){this.http=e,this.route=i,this.nodeComponent=o,this.storageService=r,this.nodeService=s,this.snackbarService=a,this.formBuilder=l,this.pk="",this.label="",this.rewardsAddress="",this.history=[],this.loading=!1,this.days=30,this.total=0,this.errorMsg="",this.showRewardForm=!1,this.showRewardRules=!1,this.rewardRules=null,this.rewardForm=this.formBuilder.group({address:["",Ne.compose([Ne.minLength(20),Ne.maxLength(112)])]})}ngOnInit(){this.pk=this.nodeComponent.node?.localPk||this.route.snapshot.parent?.paramMap.get("key")||"";const e=this.storageService.getLabelInfo(this.pk);this.label=e?.label||"",this.nodeSub=ke.currentNode.subscribe(i=>{this.rewardsAddress=i?.rewardsAddress||""}),this.loadHistory()}ngOnDestroy(){this.nodeSub?.unsubscribe(),this.dataSub?.unsubscribe(),this.saveRewardsSubscription?.unsubscribe(),this.rewardRulesSubscription?.unsubscribe()}loadHistory(){this.pk&&(this.loading=!0,this.errorMsg="",this.dataSub=this.http.get(`/api/rewards/skycoin-rewards/visor/${this.pk}?days=${this.days}`).pipe(Ui(e=>(this.errorMsg="Failed to load reward data",ae({history:[]})))).subscribe(e=>{this.history=e?.history||[],this.total=this.history.reduce((i,o)=>i+(o.amount||0),0),this.loading=!1}))}changeDays(e){this.days=e,this.loadHistory()}formatDate(e){return new Date(e+"T00:00:00").toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}statusClass(e){return e.amount&&0!==e.amount?e.sent?"sent":"pending":"no-reward"}statusText(e){return e.amount&&0!==e.amount?e.sent?"Sent":"Pending":"No reward"}get rewardsAddressIsXpub(){return!!this.rewardsAddress&&this.rewardsAddress.startsWith("xpub")}toggleRewardForm(){this.showRewardForm=!this.showRewardForm,this.showRewardForm&&this.rewardForm.get("address").setValue(this.rewardsAddress||"")}submitRewardAddress(){if(!this.rewardForm.valid)return;const e=(this.rewardForm.get("address").value||"").trim(),i=e?this.nodeService.setRewardsAddress(this.pk,e):this.nodeService.deleteRewardsAddress(this.pk);this.saveRewardsSubscription=i.subscribe({next:()=>{this.snackbarService.showDone("rewards-address-config.done"),this.showRewardForm=!1,ke.refreshCurrentDisplayedData()},error:o=>{o=Qe(o),this.snackbarService.showError(o)}})}toggleRewardRules(){this.showRewardRules=!this.showRewardRules,this.showRewardRules&&null===this.rewardRules&&(this.rewardRulesSubscription=this.nodeService.getRewardRules().subscribe(e=>{this.rewardRules=e||""},()=>{this.rewardRules="",this.snackbarService.showError("common.loading-error")}))}static{this.\u0275fac=function(i){return new(i||t)(O(ba),O(Ai),O(ke),O(ti),O(Io),O(ct),O(di))}}static{this.\u0275cmp=re({type:t,selectors:[["app-node-rewards"]],standalone:!1,decls:46,vars:33,consts:[[1,"rounded-elevated-box","mt-3"],[1,"box-internal-container","overflow"],[1,"section-title"],[1,"info-line"],[1,"title"],["mat-icon-button","",1,"inline-edit-btn",3,"click","matTooltip"],[3,"inline"],[1,"inline-form",3,"formGroup"],[1,"info-line","collapsible-link",3,"click"],[1,"reward-rules"],[1,"d-flex","justify-content-between","align-items-center","mb-3"],[1,"label-text","ml-2"],[1,"d-flex","align-items-center"],[1,"mr-2",2,"font-size","0.85em","color","#ccc"],["mat-button","",3,"click"],[1,"pk-row","mb-3"],[2,"font-size","0.75em","color","#999"],[1,"total-row","mb-3"],[1,"d-flex","justify-content-center","py-4"],[1,"error-msg","py-2"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid"],[1,"py-4","text-center",2,"color","#999"],[1,"text-with-right-margin",3,"text"],["target","_blank","rel","noreferrer nofollow noopener",3,"href"],[1,"link-icon","transparent-button",3,"inline","matTooltip"],[3,"inline","matTooltip"],[1,"inline-form",3,"ngSubmit","formGroup"],["appearance","outline",1,"inline-form-field"],["matInput","","formControlName","address","maxlength","112","placeholder","2\u2026"],[1,"inline-form-actions"],["mat-raised-button","","color","primary","type","submit",3,"disabled"],["mat-button","","type","button",3,"click"],[2,"font-size","1.1em","font-weight","bold","color","#4caf50"],[2,"font-size","0.85em","color","#999","margin-left","12px"],["diameter","30"],[3,"class"],[2,"color","#666"],["target","_blank","rel","noopener",2,"font-size","0.8em","color","#3399ff",3,"href"]],template:function(i,o){1&i&&(h(0,"div",0)(1,"div",1)(2,"span",2),p(3),b(4,"translate"),u(),h(5,"span",3)(6,"span",4),p(7),b(8,"translate"),u(),x(9,L2e,2,3),x(10,B2e,5,7),h(11,"button",5),b(12,"translate"),F("click",function(){return o.toggleRewardForm()}),h(13,"mat-icon",6),p(14),u()()(),x(15,V2e,13,11,"form",7),h(16,"span",8),F("click",function(){return o.toggleRewardRules()}),h(17,"mat-icon",6),p(18),u(),p(19),b(20,"translate"),u(),x(21,H2e,3,3,"pre",9),u()(),h(22,"div",0)(23,"div",1)(24,"div",10)(25,"div")(26,"span",4),p(27,"Reward History"),u(),x(28,j2e,2,1,"span",11),u(),h(29,"div",12)(30,"span",13),p(31,"Show:"),u(),h(32,"button",14),F("click",function(){return o.changeDays(7)}),p(33,"7d"),u(),h(34,"button",14),F("click",function(){return o.changeDays(30)}),p(35,"30d"),u(),h(36,"button",14),F("click",function(){return o.changeDays(90)}),p(37,"90d"),u()()(),h(38,"div",15)(39,"span",16),p(40),u()(),x(41,U2e,5,2,"div",17),x(42,z2e,2,0,"div",18),x(43,$2e,2,1,"div",19),x(44,Q2e,14,0,"table",20),x(45,J2e,2,0,"div",21),u()()),2&i&&(d(3),M(y(4,25,"node.details.rewards-info.title")),d(4),E("",y(8,27,"node.details.rewards-info.rewards-address")," "),d(2),S(o.rewardsAddress?9:-1),d(),S(o.rewardsAddress?-1:10),d(),C("matTooltip",y(12,29,o.rewardsAddress?"node.details.rewards-info.change-address-button":"node.details.rewards-info.set-address-button")),d(2),C("inline",!0),d(),M(o.showRewardForm?"close":"edit"),d(),S(o.showRewardForm?15:-1),d(2),C("inline",!0),d(),M(o.showRewardRules?"expand_more":"chevron_right"),d(),E(" ",y(20,31,"node.details.rewards-info.show-rules")," "),d(2),S(o.showRewardRules?21:-1),d(7),S(o.label?28:-1),d(4),Ie("active-days",7===o.days),d(2),Ie("active-days",30===o.days),d(2),Ie("active-days",90===o.days),d(4),M(o.pk),d(),S(!o.loading&&o.history.length>0?41:-1),d(),S(o.loading?42:-1),d(),S(o.errorMsg?43:-1),d(),S(!o.loading&&o.history.length>0?44:-1),d(),S(o.loading||0!==o.history.length||o.errorMsg?-1:45))},dependencies:[xn,Gt,qt,wn,wi,on,mn,sn,Os,In,Pn,Wo,We,Kt,so,op,xe],styles:[".title[_ngcontent-%COMP%]{font-size:1.1em;font-weight:700;color:#f8f9f9}.label-text[_ngcontent-%COMP%]{font-size:.9em;color:#aaa}.active-days[_ngcontent-%COMP%]{color:#4caf50!important;font-weight:700}.total-row[_ngcontent-%COMP%]{padding:8px 0;border-bottom:1px solid rgba(255,255,255,.1)}.error-msg[_ngcontent-%COMP%]{color:#f44336;text-align:center}.status-badge[_ngcontent-%COMP%]{padding:2px 8px;border-radius:4px;font-size:.8em}.status-badge.sent[_ngcontent-%COMP%]{background:#4caf5033;color:#4caf50}.status-badge.pending[_ngcontent-%COMP%]{background:#ffc10733;color:#ffc107}.status-badge.no-reward[_ngcontent-%COMP%]{color:#666}tr.sent[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border-left:2px solid rgba(76,175,80,.3)}tr.pending[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border-left:2px solid rgba(255,193,7,.3)}"]})}}return t})();function Mc(t=0,n=Pf){return t<0&&(t=0),xa(t,t,n)}let tEe=(()=>{class t{constructor(e){this.apiService=e}get(){return this.apiService.get("service-health")}static{this.\u0275fac=function(i){return new(i||t)(ce(zi))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const nEe=()=>["nodes.services-health-title"],iEe=(t,n)=>n.reason;function oEe(t,n){1&t&&(h(0,"div",4),B(1,"mat-spinner",10),h(2,"span",11),p(3),b(4,"translate"),u()()),2&t&&(d(),C("diameter",16),d(2),M(y(4,2,"services-health.loading")))}function rEe(t,n){if(1&t&&(h(0,"div",5)(1,"mat-icon"),p(2,"error_outline"),u(),h(3,"span",11),p(4),u()()),2&t){const e=v();d(4),M(e.error)}}function sEe(t,n){1&t&&(h(0,"mat-icon",18),p(1,"warning"),u(),h(2,"span"),p(3),b(4,"translate"),u()),2&t&&(d(3),M(y(4,1,"services-health.degraded")))}function aEe(t,n){1&t&&(h(0,"mat-icon",19),p(1,"check_circle"),u(),h(2,"span"),p(3),b(4,"translate"),u()),2&t&&(d(3),M(y(4,1,"services-health.all-ok")))}function lEe(t,n){if(1&t&&(h(0,"span",13),p(1),b(2,"translate"),b(3,"date"),u()),2&t){const e=v(2);d(),gt(" \u2014 ",y(2,2,"services-health.last-updated"),": ",pe(3,4,e.lastUpdated,"HH:mm:ss")," ")}}function cEe(t,n){if(1&t&&(h(0,"code"),p(1),u()),2&t){const e=v().$implicit;d(),M(e.version)}}function dEe(t,n){1&t&&(h(0,"span",8),p(1,"\u2014"),u())}function uEe(t,n){if(1&t&&(h(0,"tr")(1,"td"),B(2,"span"),u(),h(3,"td")(4,"strong"),p(5),u()(),h(6,"td"),p(7),u(),h(8,"td"),p(9),u(),h(10,"td"),x(11,cEe,2,1,"code")(12,dEe,2,0,"span",8),u(),h(13,"td")(14,"code",8),p(15),u()()()),2&t){const e=n.$implicit,i=v(2);d(2),Ze(i.statusClass(e)),d(3),M(e.name),d(2),E(" ",e.status," "),d(),Ze(i.latencyClass(e)),d(),E(" ",e.latency_ms,"\xa0ms "),d(2),S(e.version?11:12),d(4),M(i.shortUrl(e.url))}}function hEe(t,n){if(1&t&&(h(0,"div",22)(1,"span",8),p(2),b(3,"translate"),u(),h(4,"code"),p(5),u()()),2&t){const e=v().$implicit;d(2),E("",y(3,2,"services-health.version"),":"),d(3),M(e.version)}}function fEe(t,n){if(1&t&&(h(0,"div",23),p(1),u()),2&t){const e=v().$implicit;d(),M(e.error)}}function pEe(t,n){if(1&t&&(h(0,"div",17)(1,"div",20),B(2,"span"),h(3,"strong",11),p(4),u(),h(5,"span",21),p(6),u()(),h(7,"div",22)(8,"span",8),p(9),b(10,"translate"),u(),p(11),u(),x(12,hEe,6,4,"div",22),h(13,"div",22)(14,"span",8),p(15),b(16,"translate"),u(),h(17,"code",8),p(18),u()(),x(19,fEe,2,1,"div",23),u()),2&t){const e=n.$implicit,i=v(2);d(2),Ze(i.statusClass(e)),d(2),M(e.name),d(),Ze(i.latencyClass(e)),d(),E("",e.latency_ms,"\xa0ms"),d(3),E("",y(10,12,"services-health.status"),":"),d(2),E(" ",e.status," "),d(),S(e.version?12:-1),d(3),E("",y(16,14,"services-health.endpoint"),":"),d(3),M(i.shortUrl(e.url)),d(),S(e.error?19:-1)}}function mEe(t,n){if(1&t&&(h(0,"div",12),x(1,sEe,5,3)(2,aEe,5,3),x(3,lEe,4,7,"span",13),u(),h(4,"table",14)(5,"tr"),B(6,"th",15),h(7,"th"),p(8),b(9,"translate"),u(),h(10,"th"),p(11),b(12,"translate"),u(),h(13,"th"),p(14),b(15,"translate"),u(),h(16,"th"),p(17),b(18,"translate"),u(),h(19,"th"),p(20),b(21,"translate"),u()(),ve(22,uEe,16,9,"tr",null,Br().trackByName,!0),u(),h(24,"div",16),ve(25,pEe,20,16,"div",17,Br().trackByName,!0),u()),2&t){const e=v();d(),S(e.anyDown()?1:2),d(2),S(e.lastUpdated?3:-1),d(5),M(y(9,7,"services-health.service")),d(3),M(y(12,9,"services-health.status")),d(3),M(y(15,11,"services-health.latency")),d(3),M(y(18,13,"services-health.version")),d(3),M(y(21,15,"services-health.endpoint")),d(2),ye(e.entries),d(3),ye(e.entries)}}function gEe(t,n){1&t&&(h(0,"div",4),B(1,"mat-spinner",10),h(2,"span",11),p(3,"\u2026"),u()()),2&t&&(d(),C("diameter",14))}function _Ee(t,n){1&t&&(h(0,"div",8),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"services-health.rsn-empty")))}function bEe(t,n){if(1&t&&(h(0,"span",28),p(1),b(2,"number"),u()),2&t){const e=v().$implicit;Ze(v().successClass(e.snapshot)),d(),E(" ",pe(2,3,e.snapshot.success_rate_pct,"1.0-1"),"% ")}}function vEe(t,n){if(1&t&&(h(0,"div",23),p(1),b(2,"translate"),u()),2&t){const e=v().$implicit;d(),gt("",y(2,2,"services-health.rsn-error"),": ",e.error)}}function yEe(t,n){if(1&t&&(h(0,"div")(1,"span",8),p(2),b(3,"translate"),u(),h(4,"span"),p(5),b(6,"date"),u()()),2&t){const e=v(2).$implicit;d(2),E("",y(3,2,"services-health.rsn-last-success"),":"),d(3),M(pe(6,4,e.snapshot.last_success_at,"HH:mm:ss"))}}function CEe(t,n){if(1&t&&(h(0,"div")(1,"span",8),p(2),b(3,"translate"),u(),h(4,"span"),p(5),b(6,"date"),u()()),2&t){const e=v(2).$implicit;d(2),E("",y(3,2,"services-health.rsn-last-failure"),":"),d(3),M(pe(6,4,e.snapshot.last_failure_at,"HH:mm:ss"))}}function wEe(t,n){if(1&t&&(h(0,"span",31),p(1),u()),2&t){const e=n.$implicit;d(),gt("",e.reason," (",e.count,")")}}function xEe(t,n){if(1&t&&(h(0,"div",30)(1,"span",8),p(2),b(3,"translate"),u(),ve(4,wEe,2,2,"span",31,iEe),u()),2&t){const e=v(2).$implicit,i=v();d(2),E("",y(3,1,"services-health.rsn-failure-reasons"),":"),d(2),ye(i.topFailureReasons(e.snapshot))}}function SEe(t,n){if(1&t&&(h(0,"div",29)(1,"div")(2,"span",8),p(3),b(4,"translate"),u(),h(5,"strong"),p(6),u()(),h(7,"div")(8,"span",8),p(9),b(10,"translate"),u(),h(11,"strong"),p(12),u()(),h(13,"div")(14,"span",8),p(15),b(16,"translate"),u(),h(17,"strong"),p(18),u()(),h(19,"div")(20,"span",8),p(21),b(22,"translate"),u(),h(23,"strong"),p(24),u()(),h(25,"div")(26,"span",8),p(27),b(28,"translate"),u(),h(29,"strong"),p(30),u()(),h(31,"div")(32,"span",8),p(33),b(34,"translate"),u(),h(35,"strong"),p(36),u()(),x(37,yEe,7,7,"div"),x(38,CEe,7,7,"div"),u(),x(39,xEe,6,3,"div",30)),2&t){const e=v().$implicit,i=v();d(3),E("",y(4,15,"services-health.rsn-success"),":"),d(3),M(e.snapshot.successful||0),d(3),E("",y(10,17,"services-health.rsn-failed"),":"),d(3),M(e.snapshot.failed||0),d(3),E("",y(16,19,"services-health.rsn-active"),":"),d(3),M(e.snapshot.active_requests||0),d(3),E("",y(22,21,"services-health.rsn-latency-p50"),":"),d(3),E("",(null==e.snapshot.latency_ms?null:e.snapshot.latency_ms.p50_ms)||0," ms"),d(3),E("",y(28,23,"services-health.rsn-latency-p95"),":"),d(3),E("",(null==e.snapshot.latency_ms?null:e.snapshot.latency_ms.p95_ms)||0," ms"),d(3),E("",y(34,25,"services-health.rsn-latency-p99"),":"),d(3),E("",(null==e.snapshot.latency_ms?null:e.snapshot.latency_ms.p99_ms)||0," ms"),d(),S(e.snapshot.last_success_at?37:-1),d(),S(e.snapshot.last_failure_at?38:-1),d(),S(i.topFailureReasons(e.snapshot).length>0?39:-1)}}function kEe(t,n){if(1&t&&(h(0,"div",9)(1,"div",24),B(2,"span",25),h(3,"code",26),p(4),u(),x(5,bEe,3,6,"span",27),u(),x(6,vEe,3,4,"div",23),x(7,SEe,40,27),u()),2&t){const e=n.$implicit;d(2),C("ngClass",e.snapshot?"dot-green":"dot-red"),d(2),M(e.pk),d(),S(e.snapshot?5:-1),d(),S(e.error?6:-1),d(),S(e.snapshot?7:-1)}}let DEe=(()=>{class t extends pn{constructor(e,i){super(),this.healthSvc=e,this.api=i,this.tabsData=[],this.entries=[],this.loading=!0,this.error=null,this.lastUpdated=null,this.rsnStats=[],this.rsnLoading=!0,this.tabsData=[{icon:"view_headline",label:"nodes.title",linkParts:["/nodes"],group:"local"},{icon:"monetization_on",label:"nodes.rewards-title",linkParts:["/nodes","rewards"],group:"local"},{icon:"memory",label:"nodes.resources-title",linkParts:["/nodes","resources"],group:"local"},{icon:"swap_horiz",label:"nodes.transports-title",linkParts:["/nodes","transports"],group:"network"},{icon:"public",label:"nodes.network-title",linkParts:["/nodes","network"],group:"network"},{icon:"bubble_chart",label:"node.details.tpviz.title",linkParts:[],externalUrl:"/tp-viz/",group:"network"},{icon:"check_circle",label:"nodes.services-health-title",linkParts:["/nodes","services-health"],group:"network"},{icon:"settings",label:"settings.title",linkParts:["/settings"]}]}ngOnInit(){return this.sub=Mc(15e3).pipe(si(0),tn(()=>this.healthSvc.get())).subscribe({next:e=>{this.entries=e||[],this.loading=!1,this.error=null,this.lastUpdated=new Date},error:e=>{this.loading=!1,this.error=e?.message||"Failed to fetch services health"}}),this.rsnSub=Mc(3e4).pipe(si(0),tn(()=>this.api.get("route-setup-nodes/stats"))).subscribe({next:e=>{this.rsnStats=Array.isArray(e)?e:[],this.rsnLoading=!1},error:()=>{this.rsnLoading=!1}}),super.ngOnInit()}ngOnDestroy(){this.sub?.unsubscribe(),this.rsnSub?.unsubscribe()}topFailureReasons(e){return e?.failures_by_reason?Object.entries(e.failures_by_reason).map(([i,o])=>({reason:i,count:o})).filter(i=>i.count>0).sort((i,o)=>o.count-i.count).slice(0,3):[]}successClass(e){const i=e?.success_rate_pct??0;return i>=90?"latency-fast":i>=70?"latency-medium":"latency-slow"}trackRSN(e,i){return i.pk}statusClass(e){const i=(e?.status||"").toUpperCase();return"OK"===i?"dot-green":"DOWN"===i?"dot-red":"dot-outline-gray"}anyDown(){return this.entries.some(e=>"OK"!==(e?.status||"").toUpperCase())}latencyClass(e){const i=e?.latency_ms??0;return i<500?"latency-fast":i<2e3?"latency-medium":"latency-slow"}shortUrl(e){if(!e)return"";try{return new URL(e).host}catch{return e}}trackByName(e,i){return i.name}static{this.\u0275fac=function(i){return new(i||t)(O(tEe),O(zi))}}static{this.\u0275cmp=re({type:t,selectors:[["app-services-health"]],standalone:!1,features:[be],decls:15,vars:13,consts:[[1,"row"],[1,"col-12"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton"],[1,"content","col-12","mt-4.5"],[1,"loading-row"],[1,"error-row"],[1,"rsn-section","mt-4"],[1,"rsn-title"],[1,"dim"],[1,"rsn-card"],[3,"diameter"],[1,"ml-2"],[1,"summary-line"],[1,"last-updated"],[1,"responsive-table-translucid","d-none","d-md-table","mt-3"],[1,"small-column"],[1,"d-md-none","mt-3"],[1,"mobile-card"],[1,"warn"],[1,"ok"],[1,"mobile-header"],[1,"ml-auto"],[1,"mobile-row"],[1,"error-detail"],[1,"rsn-card-header"],[1,"dot",3,"ngClass"],[1,"rsn-pk","mono","small"],[1,"rsn-rate",3,"class"],[1,"rsn-rate"],[1,"rsn-grid"],[1,"rsn-failures"],[1,"rsn-fail-pill"]],template:function(i,o){1&i&&(h(0,"div",0)(1,"div",1),B(2,"app-top-bar",2),u(),h(3,"div",3),x(4,oEe,5,4,"div",4),x(5,rEe,5,1,"div",5),x(6,mEe,27,17),h(7,"div",6)(8,"h3",7),p(9),b(10,"translate"),u(),x(11,gEe,4,1,"div",4),x(12,_Ee,3,3,"div",8),ve(13,kEe,8,5,"div",9,o.trackRSN,!0),u()()()),2&i&&(d(2),C("titleParts",Ct(12,nEe))("tabsData",o.tabsData)("selectedTabIndex",6)("showUpdateButton",!1),d(2),S(o.loading&&0===o.entries.length?4:-1),d(),S(o.error&&0===o.entries.length?5:-1),d(),S(o.entries.length>0?6:-1),d(3),M(y(10,10,"services-health.rsn-section")),d(2),S(o.rsnLoading&&0===o.rsnStats.length?11:-1),d(),S(o.rsnLoading||0!==o.rsnStats.length?-1:12),d(),ye(o.rsnStats))},dependencies:[$t,We,so,Mr,Vl,fa,xe],styles:[".loading-row[_ngcontent-%COMP%]{display:flex;align-items:center;color:#ffffffbf;padding:24px 0}.error-row[_ngcontent-%COMP%]{display:flex;align-items:center;color:#f87171;padding:24px 0}.summary-line[_ngcontent-%COMP%]{display:flex;align-items:center;color:#ffffffe6;font-size:.95em}.summary-line[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:20px;width:20px;height:20px;margin-right:6px}.summary-line[_ngcontent-%COMP%] mat-icon.ok[_ngcontent-%COMP%]{color:#4ade80}.summary-line[_ngcontent-%COMP%] mat-icon.warn[_ngcontent-%COMP%]{color:#fbbf24}.summary-line[_ngcontent-%COMP%] .last-updated[_ngcontent-%COMP%]{color:#ffffff8c;font-size:.85em;margin-left:8px}.small-column[_ngcontent-%COMP%]{width:24px}.dim[_ngcontent-%COMP%]{color:#ffffff8c}.latency-fast[_ngcontent-%COMP%]{color:#4ade80}.latency-medium[_ngcontent-%COMP%]{color:#fbbf24}.latency-slow[_ngcontent-%COMP%]{color:#f87171}.error-detail[_ngcontent-%COMP%]{color:#f87171;font-size:.8em;margin-top:4px}.mobile-card[_ngcontent-%COMP%]{background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:6px;padding:12px;margin-bottom:10px}.mobile-card[_ngcontent-%COMP%] .mobile-header[_ngcontent-%COMP%]{display:flex;align-items:center;margin-bottom:8px;font-size:1em}.mobile-card[_ngcontent-%COMP%] .mobile-row[_ngcontent-%COMP%]{font-size:.85em;color:#ffffffd9;padding:2px 0}.mobile-card[_ngcontent-%COMP%] .mobile-row[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{color:#ffffffd9}code[_ngcontent-%COMP%]{font-family:monospace;font-size:.9em}.rsn-section[_ngcontent-%COMP%] .rsn-title[_ngcontent-%COMP%]{font-size:1em;font-weight:600;color:#fffffff2;margin:0 0 10px}.rsn-section[_ngcontent-%COMP%] .rsn-card[_ngcontent-%COMP%]{background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:6px;padding:10px 14px;margin-bottom:10px}.rsn-section[_ngcontent-%COMP%] .rsn-card-header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}.rsn-section[_ngcontent-%COMP%] .rsn-card-header[_ngcontent-%COMP%] .dot[_ngcontent-%COMP%]{width:8px;height:8px;border-radius:50%;display:inline-block}.rsn-section[_ngcontent-%COMP%] .rsn-card-header[_ngcontent-%COMP%] .dot-green[_ngcontent-%COMP%]{background:#4caf50}.rsn-section[_ngcontent-%COMP%] .rsn-card-header[_ngcontent-%COMP%] .dot-red[_ngcontent-%COMP%]{background:#f44336}.rsn-section[_ngcontent-%COMP%] .rsn-card-header[_ngcontent-%COMP%] .rsn-pk[_ngcontent-%COMP%]{font-family:monospace;font-size:11px;color:#ffffffb3;word-break:break-all;flex:1 1 auto;min-width:0}.rsn-section[_ngcontent-%COMP%] .rsn-card-header[_ngcontent-%COMP%] .rsn-rate[_ngcontent-%COMP%]{font-weight:600;font-size:13px}.rsn-section[_ngcontent-%COMP%] .rsn-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:6px 16px;font-size:12px}.rsn-section[_ngcontent-%COMP%] .rsn-grid[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{margin-left:6px;color:#fffffff2}.rsn-section[_ngcontent-%COMP%] .rsn-failures[_ngcontent-%COMP%]{margin-top:8px;font-size:11px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.rsn-section[_ngcontent-%COMP%] .rsn-failures[_ngcontent-%COMP%] .rsn-fail-pill[_ngcontent-%COMP%]{background:#e5393526;border:1px solid rgba(229,57,53,.35);color:#ffc8c8f2;padding:1px 6px;border-radius:3px}"]})}}return t})();const MEe=()=>["nodes.network-title"],h6=(t,n)=>n.pk;function TEe(t,n){1&t&&(h(0,"div",4),B(1,"mat-spinner",7),h(2,"span",8),p(3),b(4,"translate"),u()()),2&t&&(d(),C("diameter",16),d(2),M(y(4,2,"network-view.loading")))}function EEe(t,n){if(1&t&&(h(0,"div",5)(1,"mat-icon"),p(2,"error_outline"),u(),h(3,"span",8),p(4),u()()),2&t){const e=v();d(4),M(e.error)}}function PEe(t,n){if(1&t&&(h(0,"div",15),p(1),b(2,"translate"),b(3,"date"),u()),2&t){const e=v(2);d(),gt(" ",y(2,2,"network-view.last-updated"),": ",pe(3,4,e.lastUpdated,"mediumTime")," ")}}function IEe(t,n){if(1&t&&(h(0,"tr",32)(1,"td",36),p(2),u(),h(3,"td"),p(4),u(),h(5,"td"),p(6),u(),h(7,"td"),p(8),u(),h(9,"td",31),p(10),u(),h(11,"td",31),p(12),u(),h(13,"td",31),p(14),u(),h(15,"td",31),p(16),u(),h(17,"td",31)(18,"strong"),p(19),u()(),h(20,"td"),p(21),u()()),2&t){const e=n.$implicit;C("ngClass",v(2).rowClass(e)),d(),C("matTooltip",e.pk),d(),M(e.pk),d(2),M(e.country||"-"),d(2),M(e.version||"-"),d(2),M(e.services||"-"),d(2),M(e.stcpr),d(2),M(e.sudph),d(2),M(e.dmsg),d(2),M(e.stcp),d(3),M(e.total),d(2),M(e.ut_status||"-")}}function OEe(t,n){if(1&t&&(h(0,"div",34)(1,"div",37),p(2),u(),h(3,"div",38),p(4),u(),h(5,"div",39),p(6),h(7,"strong"),p(8),u(),p(9),u()()),2&t){const e=n.$implicit;C("ngClass",v(2).rowClass(e)),d(),C("matTooltip",e.pk),d(),M(e.pk),d(2),Uh(" ",e.country||"-"," \xb7 ",e.version||"-"," \xb7 ",e.services||"-"," "),d(2),Xg(" stcpr ",e.stcpr," \xb7 sudph ",e.sudph," \xb7 dmsg ",e.dmsg," \xb7 stcp ",e.stcp," \xb7 "),d(2),E("total ",e.total),d(),E(" \xb7 ",e.ut_status||"-"," ")}}function AEe(t,n){1&t&&(h(0,"p",35),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"network-view.empty")))}function REe(t,n){if(1&t){const e=oe();h(0,"div",6)(1,"div",9)(2,"div",10)(3,"div",11)(4,"span")(5,"strong"),p(6),u(),p(7," visors"),u(),B(8,"span",12),h(9,"span"),p(10),u(),B(11,"span",13),h(12,"span"),p(13),u(),B(14,"span",14),h(15,"span"),p(16),u()(),x(17,PEe,4,7,"div",15),h(18,"button",16),b(19,"translate"),F("click",function(){return j(e),U(v().refreshNow())}),h(20,"mat-icon",17),p(21,"refresh"),u()()(),h(22,"div",18)(23,"mat-form-field",19)(24,"mat-label"),p(25),b(26,"translate"),u(),h(27,"input",20),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.searchTerm,o)||(r.searchTerm=o),U(o)}),F("ngModelChange",function(){return j(e),U(v().applyFilters())}),u()(),h(28,"mat-form-field",21)(29,"mat-label"),p(30),b(31,"translate"),u(),h(32,"input",22),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.filterCountry,o)||(r.filterCountry=o),U(o)}),F("ngModelChange",function(){return j(e),U(v().applyFilters())}),u()(),h(33,"mat-form-field",21)(34,"mat-label"),p(35),b(36,"translate"),u(),h(37,"input",23),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.filterVersion,o)||(r.filterVersion=o),U(o)}),F("ngModelChange",function(){return j(e),U(v().applyFilters())}),u()(),h(38,"mat-form-field",21)(39,"mat-label"),p(40),b(41,"translate"),u(),h(42,"input",24),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.filterMinTransports,o)||(r.filterMinTransports=o),U(o)}),F("ngModelChange",function(){return j(e),U(v().applyFilters())}),u()(),h(43,"mat-checkbox",25),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.showOnlineOnly,o)||(r.showOnlineOnly=o),U(o)}),F("ngModelChange",function(){return j(e),U(v().applyFilters())}),p(44),b(45,"translate"),u()(),h(46,"div",26),B(47,"span",27),h(48,"span"),p(49),b(50,"translate"),u(),B(51,"span",28),h(52,"span"),p(53),b(54,"translate"),u(),B(55,"span",29),h(56,"span"),p(57),b(58,"translate"),u()(),h(59,"table",30)(60,"tr")(61,"th"),p(62),b(63,"translate"),u(),h(64,"th"),p(65),b(66,"translate"),u(),h(67,"th"),p(68),b(69,"translate"),u(),h(70,"th"),p(71),b(72,"translate"),u(),h(73,"th",31),p(74,"stcpr"),u(),h(75,"th",31),p(76,"sudph"),u(),h(77,"th",31),p(78,"dmsg"),u(),h(79,"th",31),p(80,"stcp"),u(),h(81,"th",31),p(82),b(83,"translate"),u(),h(84,"th"),p(85),b(86,"translate"),u()(),ve(87,IEe,22,12,"tr",32,h6),u(),h(89,"div",33),ve(90,OEe,10,12,"div",34,h6),u(),x(92,AEe,3,3,"p",35),u()()}if(2&t){const e=v();d(6),M(e.totals.all),d(4),E("",e.totals.online," online"),d(3),E("",e.totals.offline," offline"),d(3),E("",e.totals.notInUT," not in UT"),d(),S(e.lastUpdated?17:-1),d(),C("matTooltip",y(19,27,"network-view.refresh")),d(2),C("inline",!0),d(5),M(y(26,29,"network-view.search")),d(2),Ut("ngModel",e.searchTerm),d(3),M(y(31,31,"network-view.country")),d(2),Ut("ngModel",e.filterCountry),d(3),M(y(36,33,"network-view.version")),d(2),Ut("ngModel",e.filterVersion),d(3),M(y(41,35,"network-view.min-transports")),d(2),Ut("ngModel",e.filterMinTransports),d(),Ut("ngModel",e.showOnlineOnly),d(),E(" ",y(45,37,"network-view.online-only")," "),d(5),M(y(50,39,"network-view.legend.offline")),d(4),M(y(54,41,"network-view.legend.not-in-ut")),d(4),M(y(58,43,"network-view.legend.low-transports")),d(5),M(y(63,45,"network-view.col.pk")),d(3),M(y(66,47,"network-view.col.country")),d(3),M(y(69,49,"network-view.col.version")),d(3),M(y(72,51,"network-view.col.services")),d(11),M(y(83,53,"network-view.col.total")),d(3),M(y(86,55,"network-view.col.status")),d(2),ye(e.filteredEntries),d(3),ye(e.filteredEntries),d(2),S(0===e.filteredEntries.length?92:-1)}}let FEe=(()=>{class t extends pn{constructor(e){super(),this.nodeService=e,this.tabsData=[],this.entries=[],this.filteredEntries=[],this.loading=!0,this.error=null,this.lastUpdated=null,this.filterCountry="",this.filterVersion="",this.filterMinTransports=null,this.showOnlineOnly=!0,this.searchTerm="",this.tabsData=[{icon:"view_headline",label:"nodes.title",linkParts:["/nodes"],group:"local"},{icon:"monetization_on",label:"nodes.rewards-title",linkParts:["/nodes","rewards"],group:"local"},{icon:"memory",label:"nodes.resources-title",linkParts:["/nodes","resources"],group:"local"},{icon:"swap_horiz",label:"nodes.transports-title",linkParts:["/nodes","transports"],group:"network"},{icon:"public",label:"nodes.network-title",linkParts:["/nodes","network"],group:"network"},{icon:"bubble_chart",label:"node.details.tpviz.title",linkParts:[],externalUrl:"/tp-viz/",group:"network"},{icon:"check_circle",label:"nodes.services-health-title",linkParts:["/nodes","services-health"],group:"network"},{icon:"settings",label:"settings.title",linkParts:["/settings"]}]}ngOnInit(){return this.sub=Mc(3e5).pipe(si(0),tn(()=>this.nodeService.getNetworkView())).subscribe({next:e=>this.onResponse(e),error:e=>{this.loading=!1,this.error=e?.message||"Failed to fetch network view"}}),super.ngOnInit()}refreshNow(){this.loading=0===this.entries.length,this.nodeService.getNetworkView(!0).subscribe({next:e=>this.onResponse(e),error:e=>{this.loading=!1,this.error=e?.message||"Failed to fetch network view"}})}onResponse(e){this.entries=e?.entries||[],this.loading=!1,this.error=null,this.lastUpdated=new Date,this.applyFilters()}ngOnDestroy(){this.sub&&this.sub.unsubscribe()}applyFilters(){const e=(this.searchTerm||"").trim().toLowerCase(),i=(this.filterCountry||"").trim().toUpperCase(),o=(this.filterVersion||"").trim(),r=this.filterMinTransports||0;this.filteredEntries=this.entries.filter(s=>!(this.showOnlineOnly&&"online"!==(s.ut_status||"")||i&&(s.country||"").toUpperCase()!==i||o&&(s.version||"")!==o||r>0&&(s.total||0)0?6:-1))},dependencies:[$t,Gt,rc,qt,wi,tp,sn,Os,In,Wo,We,Kt,cu,so,kr,Mr,fa,xe],styles:[".nv-header[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;gap:16px;padding:8px 4px 4px}.nv-header[_ngcontent-%COMP%] .nv-totals[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;font-size:13px}.nv-header[_ngcontent-%COMP%] .nv-fetched[_ngcontent-%COMP%]{margin-left:auto;font-size:12px;opacity:.6}.nv-header[_ngcontent-%COMP%] .dot[_ngcontent-%COMP%]{display:inline-block;width:8px;height:8px;border-radius:50%;margin-left:8px}.nv-header[_ngcontent-%COMP%] .dot-green[_ngcontent-%COMP%]{background:#4caf50}.nv-header[_ngcontent-%COMP%] .dot-red[_ngcontent-%COMP%]{background:#e53935}.nv-header[_ngcontent-%COMP%] .dot-outline-gray[_ngcontent-%COMP%]{border:1px solid rgba(255,255,255,.4)}.nv-filters[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:12px;align-items:center;padding:8px 4px;border-bottom:1px solid rgba(255,255,255,.06)}.nv-filters[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{flex:0 1 200px}.nv-filters[_ngcontent-%COMP%] .field-sm[_ngcontent-%COMP%]{flex:0 1 130px}.nv-filters[_ngcontent-%COMP%] .field-md[_ngcontent-%COMP%]{flex:1 1 280px}.nv-legend[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:12px;padding:8px 4px;opacity:.8}.nv-legend[_ngcontent-%COMP%] .row-marker[_ngcontent-%COMP%]{display:inline-block;width:16px;height:12px;border-radius:2px;margin-left:6px}.responsive-table-translucid[_ngcontent-%COMP%] th.num[_ngcontent-%COMP%], .responsive-table-translucid[_ngcontent-%COMP%] td.num[_ngcontent-%COMP%]{text-align:right;font-variant-numeric:tabular-nums}.row-offline[_ngcontent-%COMP%]{color:#e53935d9!important}.row-not-in-ut[_ngcontent-%COMP%]{background:#e539351f!important;color:#ffffffe6!important}.row-low-transports[_ngcontent-%COMP%]{background:#ffa7261f!important;color:#ffdc96f2!important}.row-marker.row-offline[_ngcontent-%COMP%]{background:#e5393580}.row-marker.row-not-in-ut[_ngcontent-%COMP%]{background:#e5393540}.row-marker.row-low-transports[_ngcontent-%COMP%]{background:#ffa7264d}.nv-cards[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:8px;padding:8px 0}.nv-card[_ngcontent-%COMP%]{border:1px solid rgba(255,255,255,.08);border-radius:6px;padding:8px 10px}.nv-card[_ngcontent-%COMP%] .nv-card-pk[_ngcontent-%COMP%]{font-weight:600}.nv-card[_ngcontent-%COMP%] .nv-card-meta[_ngcontent-%COMP%]{opacity:.7;font-size:12px}.nv-card[_ngcontent-%COMP%] .nv-card-tps[_ngcontent-%COMP%]{font-size:12px;margin-top:2px;font-variant-numeric:tabular-nums}.nv-empty[_ngcontent-%COMP%]{text-align:center;opacity:.6;padding:24px}"]})}}return t})();const NEe=()=>["nodes.resources-title"],LEe=t=>({count:t}),f6=t=>["/nodes",t,"resources"];function BEe(t,n){1&t&&(h(0,"div",4),B(1,"mat-spinner",6),h(2,"span",7),p(3),b(4,"translate"),u()()),2&t&&(d(),C("diameter",16),d(2),M(y(4,2,"multi-resources.loading")))}function VEe(t,n){if(1&t&&(h(0,"div",5)(1,"mat-icon"),p(2,"error_outline"),u(),h(3,"span",7),p(4),u()()),2&t){const e=v();d(4),M(e.error)}}function HEe(t,n){if(1&t&&(h(0,"span",10),p(1),b(2,"translate"),b(3,"date"),u()),2&t){const e=v(2);d(),gt(" \u2014 ",y(2,2,"multi-resources.last-updated"),": ",pe(3,4,e.lastUpdated,"HH:mm:ss")," ")}}function jEe(t,n){if(1&t&&(h(0,"div",17),p(1),u()),2&t){const e=v().$implicit;d(),M(e.error)}}function UEe(t,n){1&t&&(p(0),b(1,"number")),2&t&&E(" ",pe(1,1,v().$implicit.stats.cpu_percent,"1.0-1"),"% ")}function zEe(t,n){1&t&&(h(0,"span",18),p(1,"-"),u())}function $Ee(t,n){if(1&t&&(p(0),b(1,"number"),h(2,"span",19),p(3),u()),2&t){const e=v().$implicit,i=v(2);E(" ",pe(1,3,e.stats.mem_percent,"1.0-1"),"% "),d(3),gt("(",i.formatBytes(e.stats.mem_used)," / ",i.formatBytes(e.stats.mem_total),")")}}function WEe(t,n){1&t&&(h(0,"span",18),p(1,"-"),u())}function GEe(t,n){1&t&&(p(0),b(1,"number")),2&t&&E(" ",pe(1,1,v().$implicit.stats.disk_percent,"1.0-1"),"% ")}function qEe(t,n){1&t&&(h(0,"span",18),p(1,"-"),u())}function KEe(t,n){if(1&t&&(h(0,"tr")(1,"td"),B(2,"span",14),u(),h(3,"td")(4,"a",15)(5,"strong"),p(6),u()(),h(7,"div",16),p(8),u(),x(9,jEe,2,1,"div",17),u(),h(10,"td"),x(11,UEe,2,4)(12,zEe,2,0,"span",18),u(),h(13,"td"),x(14,$Ee,4,6)(15,WEe,2,0,"span",18),u(),h(16,"td"),x(17,GEe,2,4)(18,qEe,2,0,"span",18),u(),h(19,"td"),p(20),u(),h(21,"td"),p(22),u(),h(23,"td"),p(24),u()()),2&t){const e=n.$implicit,i=v(2);d(2),C("ngClass",e.node.online?"dot-green":"dot-red"),d(2),C("routerLink",se(17,f6,e.node.localPk)),d(2),M(e.node.label||e.node.localPk),d(2),M(e.node.localPk),d(),S(e.error?9:-1),d(),Ze(i.pctClass(null==e.stats?null:e.stats.cpu_percent)),d(),S(void 0!==(null==e.stats?null:e.stats.cpu_percent)?11:12),d(2),Ze(i.pctClass(null==e.stats?null:e.stats.mem_percent)),d(),S(void 0!==(null==e.stats?null:e.stats.mem_percent)?14:15),d(2),Ze(i.pctClass(null==e.stats?null:e.stats.disk_percent)),d(),S(void 0!==(null==e.stats?null:e.stats.disk_percent)?17:18),d(3),M(i.formatRate(e.txRate)),d(2),M(i.formatRate(e.rxRate)),d(2),M(i.formatBytes(null==e.stats||null==e.stats.process?null:e.stats.process.mem_rss))}}function YEe(t,n){if(1&t&&(h(0,"div",17),p(1),u()),2&t){const e=v().$implicit;d(),M(e.error)}}function XEe(t,n){if(1&t&&(h(0,"div",23)(1,"div")(2,"span",18),p(3),b(4,"translate"),u(),h(5,"strong"),p(6),b(7,"number"),u()(),h(8,"div")(9,"span",18),p(10),b(11,"translate"),u(),h(12,"strong"),p(13),b(14,"number"),u()(),h(15,"div")(16,"span",18),p(17),b(18,"translate"),u(),h(19,"strong"),p(20),b(21,"number"),u()(),h(22,"div")(23,"span",18),p(24),b(25,"translate"),u(),h(26,"strong"),p(27),u()(),h(28,"div")(29,"span",18),p(30),b(31,"translate"),u(),h(32,"strong"),p(33),u()(),h(34,"div")(35,"span",18),p(36),b(37,"translate"),u(),h(38,"strong"),p(39),u()()()),2&t){const e=v().$implicit,i=v(2);d(3),E("",y(4,18,"multi-resources.cpu"),":"),d(2),Ze(i.pctClass(e.stats.cpu_percent)),d(),E("",pe(7,20,e.stats.cpu_percent,"1.0-1"),"%"),d(4),E("",y(11,23,"multi-resources.mem"),":"),d(2),Ze(i.pctClass(e.stats.mem_percent)),d(),E("",pe(14,25,e.stats.mem_percent,"1.0-1"),"%"),d(4),E("",y(18,28,"multi-resources.disk"),":"),d(2),Ze(i.pctClass(e.stats.disk_percent)),d(),E("",pe(21,30,e.stats.disk_percent,"1.0-1"),"%"),d(4),E("",y(25,33,"multi-resources.tx"),":"),d(3),M(i.formatRate(e.txRate)),d(3),E("",y(31,35,"multi-resources.rx"),":"),d(3),M(i.formatRate(e.rxRate)),d(3),E("",y(37,37,"multi-resources.proc-rss"),":"),d(3),M(i.formatBytes(null==e.stats.process?null:e.stats.process.mem_rss))}}function ZEe(t,n){if(1&t&&(h(0,"div",13)(1,"div",20),B(2,"span",14),h(3,"a",21)(4,"strong"),p(5),u()()(),h(6,"div",22),p(7),u(),x(8,YEe,2,1,"div",17),x(9,XEe,40,39,"div",23),u()),2&t){const e=n.$implicit;d(2),C("ngClass",e.node.online?"dot-green":"dot-red"),d(),C("routerLink",se(6,f6,e.node.localPk)),d(2),M(e.node.label||e.node.localPk),d(2),M(e.node.localPk),d(),S(e.error?8:-1),d(),S(e.stats?9:-1)}}function QEe(t,n){if(1&t&&(h(0,"div",8)(1,"mat-icon"),p(2,"memory"),u(),h(3,"span",9),p(4),b(5,"translate"),u(),x(6,HEe,4,7,"span",10),u(),h(7,"table",11)(8,"tr"),B(9,"th"),h(10,"th"),p(11),b(12,"translate"),u(),h(13,"th"),p(14),b(15,"translate"),u(),h(16,"th"),p(17),b(18,"translate"),u(),h(19,"th"),p(20),b(21,"translate"),u(),h(22,"th"),p(23),b(24,"translate"),u(),h(25,"th"),p(26),b(27,"translate"),u(),h(28,"th"),p(29),b(30,"translate"),u()(),ve(31,KEe,25,19,"tr",null,Br().trackRow,!0),u(),h(33,"div",12),ve(34,ZEe,10,8,"div",13,Br().trackRow,!0),u()),2&t){const e=v();d(4),M(pe(5,9,"multi-resources.summary",se(26,LEe,e.rows.length))),d(2),S(e.lastUpdated?6:-1),d(5),M(y(12,12,"multi-resources.visor")),d(3),M(y(15,14,"multi-resources.cpu")),d(3),M(y(18,16,"multi-resources.mem")),d(3),M(y(21,18,"multi-resources.disk")),d(3),M(y(24,20,"multi-resources.tx")),d(3),M(y(27,22,"multi-resources.rx")),d(3),M(y(30,24,"multi-resources.proc-rss")),d(2),ye(e.rows),d(3),ye(e.rows)}}let JEe=(()=>{class t extends pn{constructor(e,i,o){super(),this.nodeService=e,this.api=i,this.cdr=o,this.tabsData=[],this.rows=[],this.loading=!0,this.error=null,this.lastUpdated=null,this.tabsData=[{icon:"view_headline",label:"nodes.title",linkParts:["/nodes"],group:"local"},{icon:"monetization_on",label:"nodes.rewards-title",linkParts:["/nodes","rewards"],group:"local"},{icon:"memory",label:"nodes.resources-title",linkParts:["/nodes","resources"],group:"local"},{icon:"swap_horiz",label:"nodes.transports-title",linkParts:["/nodes","transports"],group:"network"},{icon:"public",label:"nodes.network-title",linkParts:["/nodes","network"],group:"network"},{icon:"bubble_chart",label:"node.details.tpviz.title",linkParts:[],externalUrl:"/tp-viz/",group:"network"},{icon:"check_circle",label:"nodes.services-health-title",linkParts:["/nodes","services-health"],group:"network"},{icon:"settings",label:"settings.title",linkParts:["/settings"]}]}ngOnInit(){return this.sub=Mc(5e3).pipe(si(0),tn(()=>this.nodeService.getNodes()),tn(e=>{const i=(e||[]).filter(r=>r.online);return 0===i.length?ae({nodes:e||[],stats:[]}):zf(i.map(r=>this.api.get(`visors/${r.localPk}/host-stats`).pipe(Ui(s=>ae({__error:s?.message||"failed"}))))).pipe(tn(r=>ae({nodes:e||[],stats:r.map((s,a)=>({pk:i[a].localPk,stats:s&&!s.__error?s:void 0,error:s&&s.__error?s.__error:void 0}))})))})).subscribe({next:({nodes:e,stats:i})=>{this.mergeStats(e,i),this.loading=!1,this.error=null,this.lastUpdated=new Date,this.cdr.markForCheck()},error:e=>{this.loading=!1,this.error=e?.message||"Failed to fetch resources"}}),super.ngOnInit()}ngOnDestroy(){this.sub?.unsubscribe()}mergeStats(e,i){const o=new Map;i.forEach(a=>o.set(a.pk,{stats:a.stats,error:a.error}));const r=new Map;this.rows.forEach(a=>r.set(a.node.localPk,a));const s=Date.now();this.rows=e.map(a=>{const l=o.get(a.localPk),c=r.get(a.localPk),f={node:a,...l};if(l?.stats){const m=l.stats.net_bytes_sent||0,g=l.stats.net_bytes_recv||0;if(c?.lastSampleAt&&void 0!==c.prevSent&&void 0!==c.prevRecv){const _=(s-c.lastSampleAt)/1e3;if(_>0){const w=Math.max(0,(m-c.prevSent)/_),k=Math.max(0,(g-c.prevRecv)/_);f.txRate=w,f.rxRate=k}}f.prevSent=m,f.prevRecv=g,f.lastSampleAt=s}return f})}pctClass(e){return null==e?"pct-na":e>=90?"pct-bad":e>=70?"pct-warn":"pct-ok"}formatRate(e){if(null==e||e<0)return"-";const i=["B/s","KB/s","MB/s","GB/s"];let o=0,r=e;for(;r>=1024&&o=1024&&o0?6:-1))},dependencies:[$t,Is,We,so,Mr,Vl,fa,xe],styles:[".loading-row[_ngcontent-%COMP%]{display:flex;align-items:center;color:#ffffffbf;padding:24px 0}.error-row[_ngcontent-%COMP%]{display:flex;align-items:center;color:#f87171;padding:24px 0}.summary-line[_ngcontent-%COMP%]{display:flex;align-items:center;color:#ffffffe6;font-size:.95em}.summary-line[_ngcontent-%COMP%] .last-updated[_ngcontent-%COMP%]{color:#ffffff8c;font-size:.85em;margin-left:8px}.dot[_ngcontent-%COMP%]{width:8px;height:8px;border-radius:50%;display:inline-block}.dot-green[_ngcontent-%COMP%]{background:#4caf50}.dot-red[_ngcontent-%COMP%]{background:#f44336}.visor-link[_ngcontent-%COMP%]{color:#fffffff2;text-decoration:none}.visor-link[_ngcontent-%COMP%]:hover{text-decoration:underline}.visor-pk[_ngcontent-%COMP%]{color:#ffffff8c;font-size:11px;word-break:break-all;font-family:monospace}.visor-err[_ngcontent-%COMP%]{color:#f87171;font-size:12px;margin-top:2px}.dim[_ngcontent-%COMP%]{color:#fff9}.small[_ngcontent-%COMP%]{font-size:.85em}.pct-ok[_ngcontent-%COMP%]{color:#4caf50;font-weight:500}.pct-warn[_ngcontent-%COMP%]{color:#ff9800;font-weight:500}.pct-bad[_ngcontent-%COMP%]{color:#f44336;font-weight:600}.pct-na[_ngcontent-%COMP%]{color:#ffffff80}.mobile-card[_ngcontent-%COMP%]{background:#ffffff0a;border-radius:4px;padding:12px;margin-bottom:10px}.mobile-card[_ngcontent-%COMP%] .mobile-header[_ngcontent-%COMP%]{display:flex;align-items:center}.mobile-card[_ngcontent-%COMP%] .mobile-pk[_ngcontent-%COMP%]{color:#ffffff8c;font-size:11px;word-break:break-all;font-family:monospace;margin:4px 0 6px}.mobile-card[_ngcontent-%COMP%] .mobile-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;font-size:12px}"]})}}return t})();const ePe=()=>["nodes.transports-title"],tPe=(t,n,e)=>({transports:t,bandwidth:n,days:e});function nPe(t,n){1&t&&(h(0,"div",10),B(1,"mat-spinner",12),h(2,"span",13),p(3),b(4,"translate"),u()()),2&t&&(d(),C("diameter",16),d(2),M(y(4,2,"network-transports.loading")))}function iPe(t,n){if(1&t&&(h(0,"div",11)(1,"mat-icon"),p(2,"error_outline"),u(),h(3,"span",13),p(4),u()()),2&t){const e=v();d(4),M(e.error)}}function oPe(t,n){if(1&t&&(h(0,"span",16),p(1),b(2,"translate"),b(3,"date"),u()),2&t){const e=v(2);d(),gt(" \u2014 ",y(2,2,"network-transports.last-updated"),": ",pe(3,4,e.lastUpdated,"HH:mm:ss")," ")}}function rPe(t,n){if(1&t&&(h(0,"tr")(1,"td",20),p(2),u(),h(3,"td"),p(4),u(),h(5,"td",20),p(6),u(),h(7,"td",20),p(8),u(),h(9,"td",19),p(10),u(),h(11,"td",19),p(12),u(),h(13,"td",19)(14,"strong"),p(15),u()(),h(16,"td",21),p(17),u()()),2&t){const e=n.$implicit,i=v(3);d(2),M(e.id),d(2),M(e.type),d(2),M(e.edge_a),d(2),M(e.edge_b),d(2),M(i.fmtBytes(e.sent)),d(2),M(i.fmtBytes(e.recv)),d(3),M(i.fmtBytes(e.bandwidth)),d(),C("matTooltip",i.fmtLatencyFull(e.latency)),d(),M(i.fmtLatency(e.latency))}}function sPe(t,n){if(1&t&&(h(0,"table",17)(1,"tr")(2,"th"),p(3),b(4,"translate"),u(),h(5,"th"),p(6),b(7,"translate"),u(),h(8,"th"),p(9),b(10,"translate"),u(),h(11,"th"),p(12),b(13,"translate"),u(),h(14,"th",19),p(15),b(16,"translate"),u(),h(17,"th",19),p(18),b(19,"translate"),u(),h(20,"th",19),p(21),b(22,"translate"),u(),h(23,"th",19),p(24),b(25,"translate"),u()(),ve(26,rPe,18,9,"tr",null,Br().trackTpId,!0),u()),2&t){const e=v(2);d(3),M(y(4,8,"network-transports.tp-id")),d(3),M(y(7,10,"network-transports.type")),d(3),M(y(10,12,"network-transports.edge-a")),d(3),M(y(13,14,"network-transports.edge-b")),d(3),M(y(16,16,"network-transports.sent")),d(3),M(y(19,18,"network-transports.recv")),d(3),M(y(22,20,"network-transports.total")),d(3),M(y(25,22,"network-transports.latency")),d(2),ye(e.byTransport)}}function aPe(t,n){if(1&t&&(h(0,"span",35),p(1),u()),2&t){const e=v().$implicit,i=v(5);C("matTooltip",i.fmtLatencyFull(e.latency)),d(),M(i.fmtLatency(e.latency))}}function lPe(t,n){if(1&t&&(h(0,"div",29)(1,"span",30),p(2),u(),h(3,"span",31),p(4),u(),h(5,"span",32),p(6),u(),h(7,"span",33),p(8,"\u2192"),u(),h(9,"span",34),p(10),u(),h(11,"span",27),p(12),u(),h(13,"span",27),p(14),u(),h(15,"span")(16,"strong"),p(17),u()(),x(18,aPe,2,2,"span",35),u()),2&t){const e=n.$implicit,i=n.$index,o=n.$count,r=v(5);d(2),M(i===o-1?"\u2514\u2500\u2500":"\u251c\u2500\u2500"),d(2),M(e.id),d(2),M(e.type),d(4),M(e.remote),d(2),E("\u2191 ",r.fmtBytes(e.sent)),d(2),E("\u2193 ",r.fmtBytes(e.recv)),d(3),M(r.fmtBytes(e.bandwidth)),d(),S(e.latency&&e.latency.avg?18:-1)}}function cPe(t,n){if(1&t&&(h(0,"div",28),ve(1,lPe,19,8,"div",29,Br().trackChildId,!0),u()),2&t){const e=v().$implicit;d(),ye(e.transports)}}function dPe(t,n){if(1&t){const e=oe();h(0,"div",22)(1,"div",23),F("click",function(){const o=j(e).$implicit;return U(v(3).toggleVisor(o))}),h(2,"mat-icon",24),p(3),u(),h(4,"span",25),p(5),u(),h(6,"span",26)(7,"strong"),p(8),u()(),h(9,"span",27),p(10),u(),h(11,"span",27),p(12),u()(),x(13,cPe,3,0,"div",28),u()}if(2&t){const e=n.$implicit,i=v(3);d(2),C("inline",!0),d(),M(e.expanded?"expand_more":"chevron_right"),d(2),M(e.pk),d(3),M(i.fmtBytes(e.bandwidth)),d(2),gt("\u2191 ",i.fmtBytes(e.sent)," \u2193 ",i.fmtBytes(e.recv)),d(2),E("\xb7 ",e.transports.length," tp"),d(),S(e.expanded?13:-1)}}function uPe(t,n){if(1&t&&(h(0,"div",18),ve(1,dPe,14,8,"div",22,Br().trackVisorPk,!0),u()),2&t){const e=v(2);d(),ye(e.byVisor)}}function hPe(t,n){if(1&t&&(h(0,"div",14)(1,"mat-icon"),p(2,"swap_horiz"),u(),h(3,"span",15),p(4),b(5,"translate"),u(),x(6,oPe,4,7,"span",16),u(),x(7,sPe,28,24,"table",17),x(8,uPe,3,0,"div",18)),2&t){const e=v();d(4),E(" ",pe(5,4,"network-transports.summary",SA(7,tPe,e.rawCount,e.fmtBytes(e.networkBandwidth),e.days))," "),d(2),S(e.lastUpdated?6:-1),d(),S("compact"===e.viewMode?7:-1),d(),S("tree"===e.viewMode?8:-1)}}let fPe=(()=>{class t extends pn{constructor(e,i){super(),this.api=e,this.cdr=i,this.tabsData=[],this.loading=!0,this.error=null,this.lastUpdated=null,this.days=1,this.viewMode="compact",this.rawCount=0,this.networkBandwidth=0,this.byTransport=[],this.byVisor=[],this.tabsData=[{icon:"view_headline",label:"nodes.title",linkParts:["/nodes"],group:"local"},{icon:"monetization_on",label:"nodes.rewards-title",linkParts:["/nodes","rewards"],group:"local"},{icon:"memory",label:"nodes.resources-title",linkParts:["/nodes","resources"],group:"local"},{icon:"swap_horiz",label:"nodes.transports-title",linkParts:["/nodes","transports"],group:"network"},{icon:"public",label:"nodes.network-title",linkParts:["/nodes","network"],group:"network"},{icon:"bubble_chart",label:"node.details.tpviz.title",linkParts:[],externalUrl:"/tp-viz/",group:"network"},{icon:"check_circle",label:"nodes.services-health-title",linkParts:["/nodes","services-health"],group:"network"},{icon:"settings",label:"settings.title",linkParts:["/settings"]}]}ngOnInit(){return this.sub=Mc(3e5).pipe(si(0),tn(()=>this.fetch())).subscribe(),super.ngOnInit()}ngOnDestroy(){this.sub?.unsubscribe()}refreshNow(){this.fetch().subscribe()}setDays(e){e!==this.days&&(this.days=e,this.fetch().subscribe())}setViewMode(e){this.viewMode=e}toggleVisor(e){e.expanded=!e.expanded}fetch(){return this.loading=0===this.byTransport.length&&0===this.byVisor.length,this.api.get(`network/transports?days=${this.days}`).pipe(Ui(e=>(this.error=e?.message||"Failed to fetch transports",this.loading=!1,this.cdr.markForCheck(),ae(null))),tn(e=>null===e?ae(null):(this.consume(Array.isArray(e)?e:[]),ae(e))))}consume(e){this.rawCount=e.length;let i=0;const o=[],r=new Map;for(const a of e){if(!a.edges||a.edges.length<2)continue;const[l,c]=this.verifiedBandwidth(a),f=l+c;if(i+=f,0===f&&!a.latency)continue;o.push({id:a.id,type:a.type,edge_a:a.edges[0],edge_b:a.edges[1],sent:l,recv:c,bandwidth:f,latency:a.latency});const m=r.get(a.edges[0])||this.newVisorNode(a.edges[0]);m.sent+=l,m.recv+=c,m.bandwidth+=f,m.transports.push({id:a.id,type:a.type,remote:a.edges[1],sent:l,recv:c,bandwidth:f,latency:a.latency}),r.set(a.edges[0],m);const g=r.get(a.edges[1])||this.newVisorNode(a.edges[1]);g.sent+=c,g.recv+=l,g.bandwidth+=f,g.transports.push({id:a.id,type:a.type,remote:a.edges[0],sent:c,recv:l,bandwidth:f,latency:a.latency}),r.set(a.edges[1],g)}o.sort((a,l)=>l.bandwidth-a.bandwidth);const s=Array.from(r.values()).sort((a,l)=>l.bandwidth-a.bandwidth);s.forEach(a=>a.transports.sort((l,c)=>c.bandwidth-l.bandwidth)),this.byTransport=o,this.byVisor=s,this.networkBandwidth=i,this.loading=!1,this.error=null,this.lastUpdated=new Date,this.cdr.markForCheck()}newVisorNode(e){return{pk:e,sent:0,recv:0,bandwidth:0,transports:[],expanded:!1}}verifiedBandwidth(e){let i=0,o=0;for(const r of e.daily||[]){const s=!!r.a&&((r.a.sent||0)>0||(r.a.recv||0)>0),a=!!r.b&&((r.b.sent||0)>0||(r.b.recv||0)>0);s&&a?(i+=Math.min(r.a.sent||0,r.b.recv||0),o+=Math.min(r.a.recv||0,r.b.sent||0)):s?(i+=r.a.sent||0,o+=r.a.recv||0):a&&(i+=r.b.recv||0,o+=r.b.sent||0)}return[i,o]}fmtBytes(e){if(!e||e<0)return"-";const i=["B","KB","MB","GB","TB"];let o=0,r=e;for(;r>=1024&&o0||o.byVisor.length>0?36:-1))},dependencies:[Pn,We,Kt,so,Mr,fa,xe],styles:[".controls[_ngcontent-%COMP%]{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:12px;padding:10px 14px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:6px}.controls[_ngcontent-%COMP%] .control-group[_ngcontent-%COMP%]{display:flex;align-items:center;gap:4px}.controls[_ngcontent-%COMP%] .control-group[_ngcontent-%COMP%] .control-label[_ngcontent-%COMP%]{font-size:.85em;color:#ffffffa6;margin-right:4px}.controls[_ngcontent-%COMP%] .control-group[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{min-width:0;padding:0 12px!important;opacity:.6}.controls[_ngcontent-%COMP%] .control-group[_ngcontent-%COMP%] button.active[_ngcontent-%COMP%]{opacity:1;background:#2196f32e!important;color:#fff}.controls[_ngcontent-%COMP%] .refresh-btn[_ngcontent-%COMP%]{margin-left:auto}.loading-row[_ngcontent-%COMP%], .error-row[_ngcontent-%COMP%]{display:flex;align-items:center;padding:24px 0}.error-row[_ngcontent-%COMP%]{color:#f87171}.summary-line[_ngcontent-%COMP%]{display:flex;align-items:center;color:#ffffffe6;font-size:.95em}.summary-line[_ngcontent-%COMP%] .last-updated[_ngcontent-%COMP%]{color:#ffffff8c;font-size:.85em;margin-left:8px}.dim[_ngcontent-%COMP%]{color:#fff9}.small[_ngcontent-%COMP%]{font-size:.85em}.mono[_ngcontent-%COMP%]{font-family:monospace;word-break:break-all}.num[_ngcontent-%COMP%]{text-align:right}.nt-compact[_ngcontent-%COMP%]{table-layout:auto}.nt-compact[_ngcontent-%COMP%] td.mono[_ngcontent-%COMP%]{font-size:11px}.nt-compact[_ngcontent-%COMP%] th.num[_ngcontent-%COMP%], .nt-compact[_ngcontent-%COMP%] td.num[_ngcontent-%COMP%]{white-space:nowrap}.nt-tree[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2px}.nt-visor[_ngcontent-%COMP%]{background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:4px}.nt-visor[_ngcontent-%COMP%] .nt-visor-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;padding:6px 10px;cursor:pointer;flex-wrap:wrap}.nt-visor[_ngcontent-%COMP%] .nt-visor-row[_ngcontent-%COMP%]:hover{background:#ffffff0a}.nt-visor[_ngcontent-%COMP%] .nt-visor-row[_ngcontent-%COMP%] .exp[_ngcontent-%COMP%]{color:#fff9}.nt-visor[_ngcontent-%COMP%] .nt-visor-row[_ngcontent-%COMP%] .nt-pk[_ngcontent-%COMP%]{flex:1 1 320px;min-width:0;font-size:11px;color:#ffffffd9}.nt-visor[_ngcontent-%COMP%] .nt-visor-row[_ngcontent-%COMP%] .nt-bw[_ngcontent-%COMP%]{font-size:13px}.nt-visor[_ngcontent-%COMP%] .nt-visor-row[_ngcontent-%COMP%] .dim[_ngcontent-%COMP%]{font-size:12px}.nt-visor[_ngcontent-%COMP%] .nt-children[_ngcontent-%COMP%]{padding:4px 12px 8px 36px;display:flex;flex-direction:column;gap:4px}.nt-visor[_ngcontent-%COMP%] .nt-children[_ngcontent-%COMP%] .nt-child[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;padding:2px 0}.nt-visor[_ngcontent-%COMP%] .nt-children[_ngcontent-%COMP%] .nt-child[_ngcontent-%COMP%] .nt-prefix[_ngcontent-%COMP%]{font-family:monospace;color:#ffffff73}.nt-visor[_ngcontent-%COMP%] .nt-children[_ngcontent-%COMP%] .nt-child[_ngcontent-%COMP%] .nt-tp-id[_ngcontent-%COMP%]{font-size:11px;color:#ffffffd9}.nt-visor[_ngcontent-%COMP%] .nt-children[_ngcontent-%COMP%] .nt-child[_ngcontent-%COMP%] .nt-tp-type[_ngcontent-%COMP%]{background:#2196f32e;border:1px solid rgba(33,150,243,.35);padding:0 6px;border-radius:3px;font-size:10px;text-transform:lowercase}.nt-visor[_ngcontent-%COMP%] .nt-children[_ngcontent-%COMP%] .nt-child[_ngcontent-%COMP%] .nt-arrow[_ngcontent-%COMP%]{color:#ffffff73}.nt-visor[_ngcontent-%COMP%] .nt-children[_ngcontent-%COMP%] .nt-child[_ngcontent-%COMP%] .nt-tp-remote[_ngcontent-%COMP%]{font-size:11px;color:#ffffffb3}"]})}}return t})(),pPe=(()=>{class t{constructor(e){this.apiService=e}getSessions(e){return this.apiService.get(`visors/${e}/dmsg/sessions`)}connectAll(e){return this.apiService.post(`visors/${e}/dmsg/connect-all`)}setSessionsCount(e,i){return this.apiService.put(`visors/${e}/dmsg/sessions-count`,{count:i})}static{this.\u0275fac=function(i){return new(i||t)(ce(zi))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();function mPe(t,n){1&t&&(h(0,"div",1),B(1,"mat-spinner",3),h(2,"span",4),p(3),b(4,"translate"),u()()),2&t&&(d(),C("diameter",16),d(2),M(y(4,2,"dmsg-settings.loading")))}function gPe(t,n){if(1&t&&(h(0,"div",2)(1,"mat-icon"),p(2,"error_outline"),u(),h(3,"span",4),p(4),u()()),2&t){const e=v();d(4),M(e.error)}}function _Pe(t,n){if(1&t&&(h(0,"span",7),p(1),b(2,"translate"),b(3,"date"),u()),2&t){const e=v(2);d(),gt(" \u2014 ",y(2,2,"dmsg-settings.last-updated"),": ",pe(3,4,e.lastUpdated,"HH:mm:ss")," ")}}function bPe(t,n){1&t&&B(0,"mat-spinner",11),2&t&&C("diameter",14)}function vPe(t,n){1&t&&B(0,"mat-spinner",11),2&t&&C("diameter",14)}function yPe(t,n){if(1&t&&(h(0,"div",19),p(1),b(2,"translate"),u()),2&t){const e=v(3);d(),gt(" ",y(2,2,"dmsg-settings.result-failed"),": ",e.objectKeys(e.lastActionResult.failed).length," ")}}function CPe(t,n){if(1&t&&(h(0,"div",15)(1,"span",18),p(2),u(),p(3),b(4,"translate"),b(5,"translate"),b(6,"translate"),x(7,yPe,3,4,"div",19),u()),2&t){const e=v(2);d(2),E("",e.lastActionLabel,":"),d(),H0(" ",y(4,8,"dmsg-settings.result-total")," ",e.lastActionResult.total,", ",y(5,10,"dmsg-settings.result-already")," ",e.lastActionResult.already_connected,", ",y(6,12,"dmsg-settings.result-new")," ",e.lastActionResult.newly_connected," "),d(4),S(e.lastActionResult.failed&&e.objectKeys(e.lastActionResult.failed).length>0?7:-1)}}function wPe(t,n){if(1&t&&(h(0,"div",26),p(1),u()),2&t){const e=n.$implicit;d(),M(e)}}function xPe(t,n){if(1&t&&(h(0,"div",24),ve(1,wPe,2,1,"div",26,Br().trackByPk,!0),u()),2&t){const e=v().$implicit;d(),ye(e.servers)}}function SPe(t,n){1&t&&(h(0,"div",25),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"dmsg-settings.no-sessions")))}function kPe(t,n){if(1&t&&(h(0,"div",16)(1,"div",20)(2,"span",21),p(3),u(),h(4,"span",22),p(5),b(6,"translate"),u()(),h(7,"div",23),p(8),u(),x(9,xPe,3,0,"div",24)(10,SPe,3,3,"div",25),u()),2&t){const e=n.$implicit,i=v(2);d(3),M(i.roleLabel(e.role)),d(2),gt("",e.count," ",y(6,5,"dmsg-settings.sessions")),d(3),M(e.pk),d(),S(e.servers&&e.servers.length>0?9:10)}}function DPe(t,n){1&t&&(h(0,"div",17)(1,"div",25),p(2),b(3,"translate"),u()()),2&t&&(d(2),M(y(3,1,"dmsg-settings.no-clients")))}function MPe(t,n){if(1&t){const e=oe();h(0,"div",5)(1,"mat-icon"),p(2,"hub"),u(),h(3,"span",6),p(4),b(5,"translate"),u(),x(6,_Pe,4,7,"span",7),u(),h(7,"div",8)(8,"div",9)(9,"button",10),F("click",function(){return j(e),U(v().connectAll())}),x(10,bPe,1,1,"mat-spinner",11),p(11),b(12,"translate"),u()(),h(13,"span",12),p(14,"|"),u(),h(15,"div",9)(16,"label",13),p(17),b(18,"translate"),u(),h(19,"input",14),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.sessionsCountInput,o)||(r.sessionsCountInput=o),U(o)}),u(),h(20,"button",10),F("click",function(){return j(e),U(v().applySessionsCount())}),x(21,vPe,1,1,"mat-spinner",11),p(22),b(23,"translate"),u()()(),x(24,CPe,8,14,"div",15),ve(25,kPe,11,7,"div",16,Br().trackByRole,!0),x(27,DPe,4,3,"div",17)}if(2&t){const e=v();d(4),M(y(5,13,"dmsg-settings.summary")),d(2),S(e.lastUpdated?6:-1),d(3),C("disabled",e.connectAllInFlight||e.setCountInFlight),d(),S(e.connectAllInFlight?10:-1),d(),E(" ",y(12,15,"dmsg-settings.connect-all")," "),d(6),E("",y(18,17,"dmsg-settings.sessions-count-label"),":"),d(2),Ut("ngModel",e.sessionsCountInput),C("disabled",e.setCountInFlight||e.connectAllInFlight),d(),C("disabled",e.setCountInFlight||e.connectAllInFlight),d(),S(e.setCountInFlight?21:-1),d(),E(" ",y(23,19,"dmsg-settings.apply-count")," "),d(2),S(e.lastActionResult?24:-1),d(),ye(e.clientList()),d(2),S(0===e.clientList().length?27:-1)}}let TPe=(()=>{class t extends pn{constructor(e,i){super(),this.dmsgSvc=e,this.snackbar=i,this.pk="",this.sessions=null,this.loading=!0,this.error=null,this.lastUpdated=null,this.sessionsCountInput=0,this.connectAllInFlight=!1,this.setCountInFlight=!1,this.lastActionResult=null,this.lastActionLabel=""}ngOnInit(){return this.nodeSub=ke.currentNode.subscribe(e=>{const i=!this.pk;this.pk=e?.localPk||"",i&&this.pk&&this.startPolling()}),super.ngOnInit()}ngOnDestroy(){this.nodeSub?.unsubscribe(),this.pollSub?.unsubscribe()}startPolling(){this.pollSub=Mc(2e4).pipe(si(0),tn(()=>this.dmsgSvc.getSessions(this.pk))).subscribe({next:e=>{this.sessions=e||{},this.loading=!1,this.error=null,this.lastUpdated=new Date},error:e=>{this.loading=!1,this.error=e?.message||"Failed to fetch dmsg sessions"}})}refresh(){this.pk&&this.dmsgSvc.getSessions(this.pk).subscribe({next:e=>{this.sessions=e||{},this.lastUpdated=new Date},error:()=>{}})}connectAll(){this.connectAllInFlight||!this.pk||(this.connectAllInFlight=!0,this.lastActionResult=null,this.dmsgSvc.connectAll(this.pk).subscribe({next:e=>{this.connectAllInFlight=!1,this.lastActionResult=e,this.lastActionLabel="Connect to all",this.snackbar.showDone(`Opened ${e.newly_connected} new session(s); already had ${e.already_connected}.`),this.refresh()},error:e=>{this.connectAllInFlight=!1,this.snackbar.showError(`connect-all failed: ${e?.message||"unknown error"}`)}}))}applySessionsCount(){if(!this.setCountInFlight&&this.pk){if(this.sessionsCountInput<0)return void this.snackbar.showError("Sessions count must be >= 0");this.setCountInFlight=!0,this.lastActionResult=null,this.dmsgSvc.setSessionsCount(this.pk,this.sessionsCountInput).subscribe({next:e=>{this.setCountInFlight=!1,this.lastActionResult=e,this.lastActionLabel=`Set sessions_count = ${this.sessionsCountInput}`,this.snackbar.showDone(`Persisted sessions_count=${this.sessionsCountInput}; opened ${e.newly_connected} new session(s).`),this.refresh()},error:e=>{this.setCountInFlight=!1,this.snackbar.showError(`set-sessions failed: ${e?.message||"unknown error"}`)}})}}clientList(){const e=[];return this.sessions&&(this.sessions.main&&e.push(this.sessions.main),this.sessions.route_setup&&e.push(this.sessions.route_setup),this.sessions.transport_setup&&e.push(this.sessions.transport_setup)),e}roleLabel(e){switch(e){case"main":return"Main visor";case"route_setup":return"Route Setup Node";case"transport_setup":return"Transport Setup Node";default:return e}}trackByRole(e,i){return i.role}trackByPk(e,i){return i}objectKeys(e){return e?Object.keys(e):[]}static{this.\u0275fac=function(i){return new(i||t)(O(pPe),O(ct))}}static{this.\u0275cmp=re({type:t,selectors:[["app-dmsg-settings"]],standalone:!1,features:[be],decls:4,vars:3,consts:[[1,"dmsg-tab-body"],[1,"loading-row"],[1,"error-row"],[3,"diameter"],[1,"ml-2"],[1,"summary-line"],[1,"ml-1"],[1,"last-updated"],[1,"actions","mt-3"],[1,"action-group"],["mat-raised-button","","color","primary",3,"click","disabled"],[1,"d-inline-block","mr-2",3,"diameter"],[1,"divider"],["for","sessions-count"],["id","sessions-count","type","number","min","0","max","99",3,"ngModelChange","ngModel","disabled"],[1,"action-result"],[1,"client-card"],[1,"client-card","missing"],[1,"result-label"],[1,"result-failed"],[1,"client-header"],[1,"role"],[1,"count"],[1,"client-pk"],[1,"server-list"],[1,"empty"],[1,"server"]],template:function(i,o){1&i&&(h(0,"div",0),x(1,mPe,5,4,"div",1),x(2,gPe,5,1,"div",2),x(3,MPe,28,21),u()),2&i&&(d(),S(o.loading&&!o.sessions?1:-1),d(),S(o.error&&!o.sessions?2:-1),d(),S(o.sessions?3:-1))},dependencies:[Gt,rc,qt,tp,sv,Pn,We,cu,so,fa,xe],styles:['@charset "UTF-8";.dmsg-tab-body[_ngcontent-%COMP%]{margin-top:1.5rem}.loading-row[_ngcontent-%COMP%]{display:flex;align-items:center;color:#ffffffbf;padding:24px 0}.error-row[_ngcontent-%COMP%]{display:flex;align-items:center;color:#f87171;padding:24px 0}.summary-line[_ngcontent-%COMP%]{display:flex;align-items:center;color:#ffffffe6;font-size:.95em}.summary-line[_ngcontent-%COMP%] .last-updated[_ngcontent-%COMP%]{color:#ffffff8c;font-size:.85em;margin-left:8px}.actions[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:16px 0 24px;padding:14px 16px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:6px}.actions[_ngcontent-%COMP%] .action-group[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.actions[_ngcontent-%COMP%] .action-group[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{color:#ffffffbf;font-size:.9em}.actions[_ngcontent-%COMP%] .action-group[_ngcontent-%COMP%] input[type=number][_ngcontent-%COMP%]{width:72px;background:#ffffff14;border:1px solid rgba(255,255,255,.15);color:#fff;padding:4px 8px;border-radius:4px;font-size:.95em}.actions[_ngcontent-%COMP%] .divider[_ngcontent-%COMP%]{color:#ffffff40;padding:0 6px}.action-result[_ngcontent-%COMP%]{margin:8px 0 20px;padding:10px 14px;background:#4ade8014;border-left:3px solid #4ade80;border-radius:4px;font-size:.9em;color:#ffffffe6}.action-result[_ngcontent-%COMP%] .result-label[_ngcontent-%COMP%]{font-weight:600;margin-right:8px}.action-result[_ngcontent-%COMP%] .result-failed[_ngcontent-%COMP%]{color:#f87171;margin-top:4px;font-size:.85em}.client-card[_ngcontent-%COMP%]{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:6px;padding:14px 16px;margin-bottom:14px}.client-card[_ngcontent-%COMP%] .client-header[_ngcontent-%COMP%]{display:flex;align-items:baseline;margin-bottom:10px;gap:10px}.client-card[_ngcontent-%COMP%] .client-header[_ngcontent-%COMP%] .role[_ngcontent-%COMP%]{font-size:1.1em;font-weight:600;color:#fff}.client-card[_ngcontent-%COMP%] .client-header[_ngcontent-%COMP%] .count[_ngcontent-%COMP%]{color:#ffffffa6;font-size:.85em}.client-card[_ngcontent-%COMP%] .client-pk[_ngcontent-%COMP%]{font-family:monospace;font-size:.8em;color:#ffffff8c;margin-bottom:10px;word-break:break-all}.client-card[_ngcontent-%COMP%] .server-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:3px}.client-card[_ngcontent-%COMP%] .server-list[_ngcontent-%COMP%] .server[_ngcontent-%COMP%]{font-family:monospace;font-size:.82em;color:#ffffffd9;padding:2px 0}.client-card[_ngcontent-%COMP%] .server-list[_ngcontent-%COMP%] .server[_ngcontent-%COMP%]:before{content:"\\2022";margin-right:8px;color:#4ade80}.client-card[_ngcontent-%COMP%] .empty[_ngcontent-%COMP%]{color:#ffffff80;font-size:.9em;font-style:italic}.client-card.missing[_ngcontent-%COMP%]{opacity:.55}']})}}return t})();function EPe(t,n){if(1&t&&B(0,"app-node-app-list",0),2&t){const e=v();C("apps",e.apps)("showShortList",!1)("nodePK",e.nodePK)}}let PPe=(()=>{class t extends pn{ngOnInit(){return this.dataSubscription=ke.currentNode.subscribe(e=>{this.nodePK=e.localPk,this.apps=e.apps}),super.ngOnInit()}ngOnDestroy(){this.dataSubscription.unsubscribe()}static{this.\u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})()}static{this.\u0275cmp=re({type:t,selectors:[["app-all-apps"]],standalone:!1,features:[be],decls:1,vars:1,consts:[[3,"apps","showShortList","nodePK"]],template:function(i,o){1&i&&x(0,EPe,1,3,"app-node-app-list",0),2&i&&S(o.apps?0:-1)},dependencies:[a6],encapsulation:2})}}return t})();const xD=t=>({time:t}),IPe=(t,n)=>({"latency-high":t,"latency-very-high":n}),OPe=(t,n)=>n.name;function APe(t,n){if(1&t&&(h(0,"span",3)(1,"span",4),p(2),b(3,"translate"),u(),B(4,"app-copy-to-clipboard-text",8),u()),2&t){const e=v(2);d(2),E("",y(3,3,"node.details.node-info.public-ip")," "),d(2),C("text",Qt(e.node.publicIp))}}function RPe(t,n){if(1&t&&(h(0,"span",3)(1,"span",4),p(2),b(3,"translate"),u(),B(4,"app-copy-to-clipboard-text",8),u()),2&t){const e=v(2);d(2),E("",y(3,3,"node.details.node-info.ip")," "),d(2),C("text",Qt(e.node.ip))}}function FPe(t,n){1&t&&(p(0),b(1,"translate")),2&t&>(" ",v(2).node.dmsgServers.length," ",y(1,2,"node.details.node-info.connected")," ")}function NPe(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"node.details.node-info.no-dmsg-server")," ")}function LPe(t,n){if(1&t&&(h(0,"span",16),p(1),u()),2&t){const e=v().$implicit,i=v(3);C("ngClass",_t(2,IPe,e.latency>3e8,e.latency>8e8)),d(),E(" ",i.formatLatency(e.latency)," ")}}function BPe(t,n){if(1&t&&(h(0,"div",15),B(1,"app-copy-to-clipboard-text",8),x(2,LPe,2,5,"span",16),u()),2&t){const e=n.$implicit;d(),C("text",Qt(e.pk)),d(),S(e.latency>0?2:-1)}}function VPe(t,n){if(1&t&&(h(0,"div",9),ve(1,BPe,3,3,"div",15,Fe),u()),2&t){const e=v(2);d(),ye(e.node.dmsgServers)}}function HPe(t,n){if(1&t&&(h(0,"span",3)(1,"span",4),p(2),b(3,"translate"),u(),p(4),u()),2&t){const e=v(2);d(2),E("",y(3,2,"node.details.node-info.skybian-version")," "),d(2),E(" ",e.node.skybianBuildVersion," ")}}function jPe(t,n){if(1&t&&(h(0,"mat-icon",10),b(1,"translate"),p(2," info "),u()),2&t){const e=v(2);C("inline",!0)("matTooltip",pe(1,2,"node.details.node-info.time.minutes",se(5,xD,e.timeOnline.totalMinutes)))}}function UPe(t,n){if(1&t&&(h(0,"span",3)(1,"span",4),p(2),u(),p(3),u()),2&t){const e=n.$implicit;d(2),E("",e.name,": "),d(),E(" ",e.value," ")}}function zPe(t,n){1&t&&ve(0,UPe,4,2,"span",3,OPe),2&t&&ye(v(3).ports)}function $Pe(t,n){if(1&t){const e=oe();B(0,"div",11),h(1,"div",1)(2,"span",12),F("click",function(){j(e);const o=v(2);return U(o.showPorts=!o.showPorts)}),h(3,"mat-icon",13),p(4),u(),p(5),b(6,"translate"),h(7,"span",17),p(8),u()(),x(9,zPe,2,0),u()}if(2&t){const e=v(2);d(3),C("inline",!0),d(),M(e.showPorts?"expand_more":"chevron_right"),d(),E(" ",y(6,5,"node.details.ports.title")," "),d(3),E("(",e.ports.length,")"),d(),S(e.showPorts?9:-1)}}function WPe(t,n){if(1&t&&(h(0,"pre",14),p(1),u()),2&t){const e=v(2);d(),M(e.rawConfig)}}function GPe(t,n){if(1&t){const e=oe();h(0,"div",0)(1,"div",1)(2,"span",2),p(3),b(4,"translate"),u(),h(5,"span",3)(6,"span",4),p(7),b(8,"translate"),u(),h(9,"span",5),F("click",function(){return j(e),U(v().showEditLabelDialog())}),h(10,"span",6),p(11),u(),h(12,"mat-icon",7),p(13,"edit"),u()()(),h(14,"span",3)(15,"span",4),p(16),b(17,"translate"),u(),B(18,"app-copy-to-clipboard-text",8),u(),h(19,"span",3)(20,"span",4),p(21),b(22,"translate"),u(),p(23),b(24,"translate"),u(),x(25,APe,5,5,"span",3),x(26,RPe,5,5,"span",3),h(27,"span",3)(28,"span",4),p(29),b(30,"translate"),u(),x(31,FPe,2,4),x(32,NPe,2,3),u(),x(33,VPe,3,0,"div",9),h(34,"span",3)(35,"span",4),p(36),b(37,"translate"),u(),p(38),b(39,"translate"),u(),h(40,"span",3)(41,"span",4),p(42),b(43,"translate"),u(),p(44),b(45,"translate"),u(),h(46,"span",3)(47,"span",4),p(48),b(49,"translate"),u(),p(50),b(51,"translate"),u(),h(52,"span",3)(53,"span",4),p(54),b(55,"translate"),u(),p(56),b(57,"translate"),u(),h(58,"span",3)(59,"span",4),p(60),b(61,"translate"),u(),p(62),b(63,"translate"),u(),x(64,HPe,5,4,"span",3),h(65,"span",3)(66,"span",4),p(67),b(68,"translate"),u(),p(69),b(70,"translate"),x(71,jPe,3,7,"mat-icon",10),u()(),x(72,$Pe,10,7),B(73,"div",11),h(74,"div",1)(75,"span",12),F("click",function(){return j(e),U(v().onConfigToggle())}),h(76,"mat-icon",13),p(77),u(),p(78),b(79,"translate"),u(),x(80,WPe,2,1,"pre",14),u()()}if(2&t){const e=v();d(3),M(y(4,34,e.node.isHypervisor?"node.details.node-info.title-local":"node.details.node-info.title")),d(4),E("",y(8,36,"node.details.node-info.label")," "),d(4),M(e.node.label),d(),C("inline",!0),d(4),E("",y(17,38,"node.details.node-info.public-key")," "),d(2),C("text",Qt(e.node.localPk)),d(3),E("",y(22,40,"node.details.node-info.symmetic-nat")," "),d(2),E(" ",y(24,42,e.node.isSymmeticNat?"common.yes":"common.no")," "),d(2),S(e.node.isSymmeticNat?-1:25),d(),S(e.node.ip?26:-1),d(3),E("",y(30,44,"node.details.node-info.dmsg-servers")," "),d(2),S(e.node.dmsgServers&&e.node.dmsgServers.length>0?31:-1),d(),S(e.node.dmsgServers&&0!==e.node.dmsgServers.length?-1:32),d(),S(e.node.dmsgServers&&e.node.dmsgServers.length>0?33:-1),d(3),E("",y(37,46,"node.details.node-info.ping")," "),d(2),E(" ",pe(39,48,"common.time-in-ms",se(74,xD,e.node.roundTripPing))," "),d(4),E("",y(43,51,"node.details.node-info.node-version")," "),d(2),E(" ",e.node.version?e.node.version:y(45,53,"common.unknown")," "),d(4),E("",y(49,55,"node.details.node-info.config-version")," "),d(2),E(" ",e.node.configVersion?e.node.configVersion:y(51,57,"common.unknown")," "),d(4),E("",y(55,59,"node.details.node-info.os")," "),d(2),E(" ",e.node.os?e.node.os:y(57,61,"common.unknown")," "),d(4),E("",y(61,63,"node.details.node-info.arch")," "),d(2),E(" ",e.node.arch?e.node.arch:y(63,65,"common.unknown")," "),d(2),S(e.node.skybianBuildVersion?64:-1),d(3),E("",y(68,67,"node.details.node-info.time.title")," "),d(2),E(" ",pe(70,69,"node.details.node-info.time."+e.timeOnline.translationVarName,se(76,xD,e.timeOnline.elapsedTime))," "),d(2),S(e.timeOnline.totalMinutes>60?71:-1),d(),S(e.ports.length>0?72:-1),d(4),C("inline",!0),d(),M(e.showConfigSection?"expand_more":"chevron_right"),d(),E(" ",y(79,72,"node.details.config.title")," "),d(2),S(e.showConfigSection&&e.rawConfig?80:-1)}}let qPe=(()=>{class t{set nodeInfo(e){this.node=e,this.timeOnline=gv.getElapsedTime(e.secondsOnline),this.fetchPorts(e.localPk)}constructor(e,i,o,r){this.dialog=e,this.storageService=i,this.snackbarService=o,this.apiService=r,this.ports=[],this.showPorts=!1,this.rawConfig="",this.showConfigSection=!1}ngOnDestroy(){}showEditLabelDialog(){let e=this.storageService.getLabelInfo(this.node.localPk);e||(e={id:this.node.localPk,label:"",identifiedElementType:ro.Node}),wk.openDialog(this.dialog,e).afterClosed().subscribe(i=>{i&&ke.refreshCurrentDisplayedData()})}hasDmsgServer(){return!(!this.node||0===this.node.dmsgServerPk.replace(/0/g,"").length)}formatLatency(e){const i=e/1e6;return i<10?i.toFixed(2)+"ms":Math.round(i)+"ms"}fetchPorts(e){this.apiService.get(`visors/${e}/ports`).subscribe(i=>{this.ports=i&&"object"==typeof i?Object.entries(i).map(([o,r])=>({name:o,value:JSON.stringify(r)})):[]},()=>{this.ports=[]})}onConfigToggle(){this.showConfigSection=!this.showConfigSection,this.showConfigSection&&!this.rawConfig&&this.apiService.get(`visors/${this.node.localPk}/runtime-config`).subscribe(e=>{this.rawConfig=JSON.stringify(e,null,2)},()=>{this.snackbarService.showError("common.loading-error")})}static{this.\u0275fac=function(i){return new(i||t)(O(Ot),O(ti),O(ct),O(zi))}}static{this.\u0275cmp=re({type:t,selectors:[["app-node-info-content"]],inputs:{nodeInfo:"nodeInfo"},standalone:!1,decls:1,vars:1,consts:[[1,"font-smaller","d-flex","flex-column","mt-4.5"],[1,"d-flex","flex-column"],[1,"section-title"],[1,"info-line"],[1,"title"],[1,"highlight-internal-icon",3,"click"],[1,"text-with-small-right-margin"],[1,"edit-icon",3,"inline"],[3,"text"],[1,"dmsg-servers-list"],[3,"inline","matTooltip"],[1,"separator"],[1,"section-title","collapsible-header",2,"cursor","pointer",3,"click"],[3,"inline"],[1,"raw-config"],[1,"dmsg-server-item"],[1,"dmsg-latency",3,"ngClass"],[1,"count-badge"]],template:function(i,o){1&i&&x(0,GPe,81,78,"div",0),2&i&&S(o.node?0:-1)},dependencies:[$t,We,Kt,op,xe],styles:[".section-title[_ngcontent-%COMP%]{font-size:1rem;font-weight:700;text-transform:uppercase;color:#00d4ff;text-shadow:0 0 10px rgba(0,212,255,.5),0 0 20px rgba(0,212,255,.3);letter-spacing:1px;margin-bottom:8px}.info-table[_ngcontent-%COMP%]{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;align-items:baseline;margin-top:8px}.info-table[_ngcontent-%COMP%] .info-label[_ngcontent-%COMP%]{opacity:.7;white-space:nowrap;font-size:.9em}.info-table[_ngcontent-%COMP%] .info-value[_ngcontent-%COMP%]{word-break:break-word}.info-line[_ngcontent-%COMP%]{word-break:break-word;margin-top:7px;display:flex;align-items:baseline;gap:6px}.info-line[_ngcontent-%COMP%] .text-with-right-margin[_ngcontent-%COMP%]{margin-right:5px}.info-line[_ngcontent-%COMP%] .text-with-small-right-margin[_ngcontent-%COMP%]{margin-right:3px}.info-line[_ngcontent-%COMP%] .link-icon[_ngcontent-%COMP%]{font-size:20px;line-height:1;color:#fff!important;cursor:pointer}.info-line[_ngcontent-%COMP%] .edit-icon[_ngcontent-%COMP%]{display:inline!important}.info-line[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:3px;-webkit-user-select:none;user-select:none}.info-line[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{margin-left:7px}.info-line[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{opacity:.7;white-space:nowrap;min-width:120px;font-size:.9em}.separator[_ngcontent-%COMP%]{width:100%;height:0px;margin:1rem 0;border-top:1px solid rgba(255,255,255,.15);opacity:.5}.config-button-container[_ngcontent-%COMP%]{margin-top:10px;margin-left:-4px}.dmsg-servers-list[_ngcontent-%COMP%]{margin-left:0;margin-top:8px;display:flex;flex-direction:column;gap:4px;padding:10px 12px;background:#00d4ff0d;border-radius:6px;border-left:2px solid rgba(0,212,255,.3)}.dmsg-servers-list[_ngcontent-%COMP%] .dmsg-server-item[_ngcontent-%COMP%]{font-family:Consolas,Monaco,Courier New,monospace;font-size:.82em;display:flex;align-items:center;gap:10px;padding:4px 0;color:#fffffff2;transition:all .2s ease}.dmsg-servers-list[_ngcontent-%COMP%] .dmsg-server-item[_ngcontent-%COMP%]:hover{color:#00d4ff;text-shadow:0 0 8px rgba(0,212,255,.4)}.dmsg-servers-list[_ngcontent-%COMP%] .dmsg-server-item[_ngcontent-%COMP%] .dmsg-latency[_ngcontent-%COMP%]{color:#4ade80;font-weight:500;font-size:.95em;text-shadow:0 0 6px rgba(74,222,128,.3)}.dmsg-servers-list[_ngcontent-%COMP%] .dmsg-server-item[_ngcontent-%COMP%] .dmsg-latency.latency-high[_ngcontent-%COMP%]{color:#fbbf24;text-shadow:0 0 6px rgba(251,191,36,.3)}.dmsg-servers-list[_ngcontent-%COMP%] .dmsg-server-item[_ngcontent-%COMP%] .dmsg-latency.latency-very-high[_ngcontent-%COMP%]{color:#f87171;text-shadow:0 0 6px rgba(248,113,113,.3)}.glow-value[_ngcontent-%COMP%]{color:#e0f2fe;text-shadow:0 0 4px rgba(224,242,254,.2)}.status-online[_ngcontent-%COMP%]{color:#4ade80;text-shadow:0 0 8px rgba(74,222,128,.5)}.status-offline[_ngcontent-%COMP%]{color:#f87171;text-shadow:0 0 8px rgba(248,113,113,.5)}.raw-config[_ngcontent-%COMP%]{margin-top:10px;padding:12px;background:#0000004d;border:1px solid rgba(0,212,255,.2);border-radius:6px;font-family:Consolas,Monaco,Courier New,monospace;font-size:.8em;color:#ffffffe6;overflow-x:auto;max-height:400px;overflow-y:auto;white-space:pre-wrap;word-break:break-all}.sub-health[_ngcontent-%COMP%]{padding-left:12px;font-size:.9em;color:#ffffffd9}.collapsible-header[_ngcontent-%COMP%]{display:flex;align-items:center;-webkit-user-select:none;user-select:none}.collapsible-header[_ngcontent-%COMP%]:hover{color:#a5b4fc}.collapsible-header[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:4px;font-size:18px;width:18px;height:18px}.collapsible-header[_ngcontent-%COMP%] .count-badge[_ngcontent-%COMP%]{margin-left:6px;color:#ffffff8c;font-weight:400;font-size:.85em}.transport-stats[_ngcontent-%COMP%]{color:#ffffffd9}.transport-stats[_ngcontent-%COMP%] .transport-type[_ngcontent-%COMP%]{color:#a5b4fc;font-weight:500}.transport-stats[_ngcontent-%COMP%] .transport-count[_ngcontent-%COMP%]{color:#4ade80;font-weight:600}.inline-edit-btn[_ngcontent-%COMP%]{margin-left:4px;height:24px;width:24px;line-height:24px;opacity:.7}.inline-edit-btn[_ngcontent-%COMP%]:hover{opacity:1}.toggle-line[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.toggle-line[_ngcontent-%COMP%] .info-tip[_ngcontent-%COMP%]{opacity:.5;font-size:16px;cursor:help}.inline-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:8px;margin-top:6px;margin-bottom:6px}.inline-form[_ngcontent-%COMP%] .inline-form-field[_ngcontent-%COMP%]{width:100%}.inline-form[_ngcontent-%COMP%] .inline-form-field-sm[_ngcontent-%COMP%]{width:120px}.inline-form[_ngcontent-%COMP%] .inline-form-actions[_ngcontent-%COMP%]{display:flex;gap:8px}.collapsible-link[_ngcontent-%COMP%]{cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:4px;margin-top:6px;opacity:.8}.collapsible-link[_ngcontent-%COMP%]:hover{opacity:1}.reward-rules[_ngcontent-%COMP%]{background:#00000040;padding:8px 10px;margin:6px 0;font-size:12px;max-height:360px;overflow:auto;white-space:pre-wrap;word-break:break-word}"]})}}return t})(),KPe=(()=>{class t extends pn{ngOnInit(){return this.nodeSubscription=ke.currentNode.subscribe(e=>{this.node=e}),super.ngOnInit()}ngOnDestroy(){this.nodeSubscription.unsubscribe()}static{this.\u0275fac=(()=>{let e;return function(o){return(e||(e=ht(t)))(o||t)}})()}static{this.\u0275cmp=re({type:t,selectors:[["app-node-info"]],standalone:!1,features:[be],decls:1,vars:1,consts:[[3,"nodeInfo"]],template:function(i,o){1&i&&B(0,"app-node-info-content",0),2&i&&C("nodeInfo",o.node)},dependencies:[qPe],encapsulation:2})}}return t})();const YPe=()=>[];function XPe(t,n){1&t&&(h(0,"div",6),B(1,"mat-spinner",7),u())}function ZPe(t,n){1&t&&(h(0,"span"),p(1,"open"),u())}function QPe(t,n){1&t&&(h(0,"span"),p(1,"s"),u())}function JPe(t,n){if(1&t&&(h(0,"span"),p(1),it(2,QPe,2,0,"span",5),u()),2&t){const e=v().$implicit;d(),E(" ",e.whitelist.length," PK"),d(),C("ngIf",1!==e.whitelist.length)}}function eIe(t,n){if(1&t){const e=oe();h(0,"button",41),F("click",function(){j(e);const o=v(2).$implicit;return U(v(3).clearWhitelist(o))}),p(1," Clear "),u()}}function tIe(t,n){if(1&t){const e=oe();h(0,"tr",32)(1,"td",33)(2,"div",34)(3,"p",35),p(4," Comma- or whitespace-separated public keys. Empty = accessible to all authenticated peers. "),u(),h(5,"mat-form-field",36)(6,"mat-label"),p(7),u(),h(8,"textarea",37),zt("ngModelChange",function(o){j(e);const r=v(4);return Zt(r.whitelistInput,o)||(r.whitelistInput=o),U(o)}),u()(),h(9,"div",38)(10,"button",22),F("click",function(){j(e);const o=v().$implicit;return U(v(3).saveWhitelist(o))}),h(11,"mat-icon"),p(12,"save"),u(),p(13," Save "),u(),it(14,eIe,2,0,"button",39),h(15,"button",40),F("click",function(){return j(e),U(v(4).cancelEditWhitelist())}),p(16,"Cancel"),u()()()()()}if(2&t){const e=v().$implicit,i=v(3);d(7),E("Allowed PKs for port ",e.port),d(),Ut("ngModel",i.whitelistInput),d(6),C("ngIf",e.whitelist&&e.whitelist.length>0)}}function nIe(t,n){if(1&t){const e=oe();Vr(0),h(1,"tr")(2,"td",25),p(3),u(),h(4,"td",25),p(5),u(),h(6,"td"),p(7),u(),h(8,"td")(9,"mat-checkbox",26),F("change",function(){const o=j(e).$implicit;return U(v(3).toggleSkynet(o))}),u()(),h(10,"td")(11,"mat-checkbox",26),F("change",function(){const o=j(e).$implicit;return U(v(3).toggleDmsg(o))}),u()(),h(12,"td")(13,"mat-checkbox",26),F("change",function(){const o=j(e).$implicit;return U(v(3).toggleLanding(o))}),u()(),h(14,"td")(15,"button",27),F("click",function(){const o=j(e).$implicit;return U(v(3).startEditWhitelist(o))}),it(16,ZPe,2,0,"span",5)(17,JPe,3,2,"span",5),h(18,"mat-icon",28),p(19,"edit"),u()()(),h(20,"td",29)(21,"button",30),F("click",function(){const o=j(e).$implicit;return U(v(3).removePort(o.port))}),h(22,"mat-icon"),p(23,"close"),u()()()(),it(24,tIe,17,3,"tr",31),cr()}if(2&t){const e=n.$implicit,i=v(3);d(3),M(e.port),d(2),M(e.proxy_addr||"localhost:"+(e.local_port||e.port)),d(2),M(e.label||"-"),d(2),C("checked",e.skynet),d(2),C("checked",e.dmsg),d(2),C("checked",e.show_on_landing),d(2),C("matTooltip",(e.whitelist||Ct(10,YPe)).join(", ")||"Open to all peers"),d(),C("ngIf",!e.whitelist||0===e.whitelist.length),d(),C("ngIf",e.whitelist&&e.whitelist.length>0),d(7),C("ngIf",i.editingWhitelistPort===e.port)}}function iIe(t,n){if(1&t&&(h(0,"table",23)(1,"tr")(2,"th"),p(3,"Port"),u(),h(4,"th"),p(5,"Target"),u(),h(6,"th"),p(7,"Label"),u(),h(8,"th"),p(9,"Skynet"),u(),h(10,"th"),p(11,"DMSG"),u(),h(12,"th"),p(13,"Landing"),u(),h(14,"th"),p(15,"Whitelist"),u(),B(16,"th"),u(),it(17,nIe,25,11,"ng-container",24),u()),2&t){const e=v(2);d(17),C("ngForOf",e.ports)}}function oIe(t,n){1&t&&(h(0,"p",42),p(1,"No ports forwarded."),u())}function rIe(t,n){if(1&t){const e=oe();h(0,"div"),it(1,iIe,18,1,"table",8)(2,oIe,2,0,"p",9),h(3,"div",10)(4,"div",11)(5,"mat-form-field",12)(6,"mat-label"),p(7,"Skynet Port"),u(),h(8,"input",13),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.newPort,o)||(r.newPort=o),U(o)}),u()(),h(9,"mat-form-field",12)(10,"mat-label"),p(11,"Local Port"),u(),h(12,"input",14),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.newLocalPort,o)||(r.newLocalPort=o),U(o)}),u()(),h(13,"mat-form-field",15)(14,"mat-label"),p(15,"Target Address"),u(),h(16,"input",16),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.newProxyAddr,o)||(r.newProxyAddr=o),U(o)}),u()(),h(17,"mat-form-field",15)(18,"mat-label"),p(19,"Label"),u(),h(20,"input",17),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.newLabel,o)||(r.newLabel=o),U(o)}),u()()(),h(21,"div",11)(22,"mat-form-field",18)(23,"mat-label"),p(24,"Description"),u(),h(25,"input",19),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.newDesc,o)||(r.newDesc=o),U(o)}),u()(),h(26,"mat-form-field",18)(27,"mat-label"),p(28,"Whitelist (optional)"),u(),h(29,"textarea",20),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.newWhitelist,o)||(r.newWhitelist=o),U(o)}),u()()(),h(30,"div",11)(31,"mat-checkbox",21),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.newSkynet,o)||(r.newSkynet=o),U(o)}),p(32,"Skynet"),u(),h(33,"mat-checkbox",21),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.newDmsg,o)||(r.newDmsg=o),U(o)}),p(34,"DMSG"),u(),h(35,"mat-checkbox",21),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.newShowLanding,o)||(r.newShowLanding=o),U(o)}),p(36,"Show on landing page"),u(),h(37,"button",22),F("click",function(){return j(e),U(v().addPort())}),h(38,"mat-icon"),p(39,"add"),u(),p(40," Forward "),u()(),h(41,"p",3),p(42," Target Address overrides Local Port \u2014 set it to forward to a host:port elsewhere on the LAN (e.g. "),h(43,"code"),p(44,"192.168.1.20:5432"),u(),p(45,") instead of localhost. Whitelist accepts comma- or whitespace-separated 66-char hex public keys; leave empty to allow all authenticated peers (you can edit the whitelist per-row later, on the table above). "),u()()()}if(2&t){const e=v();d(),C("ngIf",e.ports.length>0),d(),C("ngIf",0===e.ports.length),d(6),Ut("ngModel",e.newPort),d(4),Ut("ngModel",e.newLocalPort),d(4),Ut("ngModel",e.newProxyAddr),d(4),Ut("ngModel",e.newLabel),d(5),Ut("ngModel",e.newDesc),d(4),Ut("ngModel",e.newWhitelist),d(2),Ut("ngModel",e.newSkynet),d(2),Ut("ngModel",e.newDmsg),d(2),Ut("ngModel",e.newShowLanding)}}function sIe(t,n){1&t&&(h(0,"div",6),B(1,"mat-spinner",7),u())}function aIe(t,n){if(1&t){const e=oe();h(0,"tr")(1,"td",25),p(2),u(),h(3,"td",49),p(4),u(),h(5,"td",25),p(6),u(),h(7,"td",25),p(8),u(),h(9,"td",29)(10,"button",50),F("click",function(){const o=j(e).$implicit;return U(v(3).disconnect(o.id))}),h(11,"mat-icon"),p(12,"close"),u()()()()}if(2&t){const e=n.$implicit;d(2),M(e.network||"skynet"),d(2),M(e.remotePK),d(2),M(e.remotePort),d(2),M(e.localPort)}}function lIe(t,n){if(1&t&&(h(0,"table",23)(1,"tr")(2,"th"),p(3,"Network"),u(),h(4,"th"),p(5,"Remote PK"),u(),h(6,"th"),p(7,"Remote Port"),u(),h(8,"th"),p(9,"Local Port"),u(),B(10,"th"),u(),it(11,aIe,13,4,"tr",24),u()),2&t){const e=v(2);d(11),C("ngForOf",e.forwards)}}function cIe(t,n){1&t&&(h(0,"p",42),p(1,"No active reverse proxies."),u())}function dIe(t,n){if(1&t){const e=oe();h(0,"div"),it(1,lIe,12,1,"table",8)(2,cIe,2,0,"p",9),h(3,"div",11)(4,"mat-form-field",12)(5,"mat-label"),p(6,"Network"),u(),h(7,"mat-select",43),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.connectNetwork,o)||(r.connectNetwork=o),U(o)}),h(8,"mat-option",44),p(9,"skynet"),u(),h(10,"mat-option",45),p(11,"dmsg"),u()()(),h(12,"mat-form-field",46)(13,"mat-label"),p(14,"Remote Public Key"),u(),h(15,"input",47),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.connectPK,o)||(r.connectPK=o),U(o)}),u()()(),h(16,"div",11)(17,"mat-form-field",12)(18,"mat-label"),p(19,"Remote Port"),u(),h(20,"input",13),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.connectRemotePort,o)||(r.connectRemotePort=o),U(o)}),u()(),h(21,"mat-form-field",12)(22,"mat-label"),p(23,"Local Port"),u(),h(24,"input",48),zt("ngModelChange",function(o){j(e);const r=v();return Zt(r.connectLocalPort,o)||(r.connectLocalPort=o),U(o)}),u()(),h(25,"button",22),F("click",function(){return j(e),U(v().connect())}),h(26,"mat-icon"),p(27,"link"),u(),p(28," Connect "),u()()()}if(2&t){const e=v();d(),C("ngIf",e.forwards.length>0),d(),C("ngIf",0===e.forwards.length),d(5),Ut("ngModel",e.connectNetwork),d(8),Ut("ngModel",e.connectPK),d(5),Ut("ngModel",e.connectRemotePort),d(4),Ut("ngModel",e.connectLocalPort)}}let uIe=(()=>{class t extends pn{constructor(e,i){super(),this.nodeService=e,this.snackbarService=i,this.ports=[],this.portsLoading=!0,this.newPort="",this.newLocalPort="",this.newProxyAddr="",this.newLabel="",this.newDesc="",this.newWhitelist="",this.newSkynet=!0,this.newDmsg=!0,this.newShowLanding=!0,this.editingWhitelistPort=null,this.whitelistInput="",this.forwards=[],this.forwardsLoading=!0,this.connectNetwork="skynet",this.connectPK="",this.connectRemotePort="",this.connectLocalPort="",this.nodeKey=""}ngOnInit(){return this.nodeKey=ke.getCurrentNodeKey(),this.loadPorts(),this.loadForwards(),super.ngOnInit()}ngOnDestroy(){this.portsSub&&this.portsSub.unsubscribe(),this.fwdsSub&&this.fwdsSub.unsubscribe()}loadPorts(){this.portsLoading=!0,this.portsSub=this.nodeService.getForwardedPorts(this.nodeKey).subscribe(e=>{this.ports=(e||[]).sort((i,o)=>i.port-o.port),this.portsLoading=!1},()=>{this.ports=[],this.portsLoading=!1})}addPort(){const e=parseInt(this.newPort,10);if(isNaN(e)||e<1||e>65535)return void this.snackbarService.showError("Enter a valid port (1-65535)");const i=this.newLocalPort?parseInt(this.newLocalPort,10):0,o=(this.newProxyAddr||"").trim();let r=[];const s=(this.newWhitelist||"").trim();if(""!==s){r=s.split(/[\s,]+/).map(l=>l.trim()).filter(l=>l.length>0);for(const l of r)if(66!==l.length||!/^[0-9a-fA-F]+$/.test(l))return void this.snackbarService.showError(`Invalid public key in whitelist: ${l}`)}this.nodeService.registerForwardedPort(this.nodeKey,{port:e,local_port:i||void 0,proxy_addr:o||void 0,label:this.newLabel,description:this.newDesc,show_on_landing:this.newShowLanding,skynet:this.newSkynet,dmsg:this.newDmsg,whitelist:r.length>0?r:void 0}).subscribe(()=>{this.newPort="",this.newLocalPort="",this.newProxyAddr="",this.newLabel="",this.newDesc="",this.newWhitelist="",this.snackbarService.showDone(`Port ${e} forwarded`),this.loadPorts()},l=>{this.snackbarService.showError(l?.error?.error||"Failed")})}removePort(e){this.nodeService.deregisterSkynetPort(this.nodeKey,e).subscribe(()=>{this.snackbarService.showDone(`Port ${e} removed`),this.loadPorts()},()=>{this.snackbarService.showError("Failed to remove port")})}toggleLanding(e){e.show_on_landing=!e.show_on_landing,this.nodeService.updateForwardedPort(this.nodeKey,e).subscribe(()=>{},()=>{this.snackbarService.showError("Failed to update"),this.loadPorts()})}toggleSkynet(e){e.skynet=!e.skynet,this.nodeService.updateForwardedPort(this.nodeKey,e).subscribe(()=>{},()=>{this.snackbarService.showError("Failed to update"),this.loadPorts()})}toggleDmsg(e){e.dmsg=!e.dmsg,this.nodeService.updateForwardedPort(this.nodeKey,e).subscribe(()=>{},()=>{this.snackbarService.showError("Failed to update"),this.loadPorts()})}startEditWhitelist(e){this.editingWhitelistPort=e.port,this.whitelistInput=(e.whitelist||[]).join(", ")}cancelEditWhitelist(){this.editingWhitelistPort=null,this.whitelistInput=""}saveWhitelist(e){const i=(this.whitelistInput||"").trim();let o=[];if(""!==i){o=i.split(/[\s,]+/).map(s=>s.trim()).filter(s=>s.length>0);for(const s of o)if(66!==s.length||!/^[0-9a-fA-F]+$/.test(s))return void this.snackbarService.showError(`Invalid public key: ${s}`)}const r={...e,whitelist:o};this.nodeService.updateForwardedPort(this.nodeKey,r).subscribe(()=>{this.snackbarService.showDone(0===o.length?`Whitelist cleared on port ${e.port}`:`Whitelist set on port ${e.port} (${o.length} PK${1===o.length?"":"s"})`),this.cancelEditWhitelist(),this.loadPorts()},s=>{this.snackbarService.showError(s?.error?.error||"Failed to update whitelist")})}clearWhitelist(e){const i={...e,whitelist:[]};this.nodeService.updateForwardedPort(this.nodeKey,i).subscribe(()=>{this.snackbarService.showDone(`Whitelist cleared on port ${e.port}`),this.cancelEditWhitelist(),this.loadPorts()},o=>{this.snackbarService.showError(o?.error?.error||"Failed to clear whitelist")})}loadForwards(){this.forwardsLoading=!0,this.fwdsSub=this.nodeService.getSkynetForwards(this.nodeKey).subscribe(e=>{if(this.forwards=[],e)for(const[i,o]of Object.entries(e))this.forwards.push({id:i,network:o.network||"skynet",remotePK:o.remote_pk||"",remotePort:o.remote_port||0,localPort:o.local_port||0});this.forwardsLoading=!1},()=>{this.forwards=[],this.forwardsLoading=!1})}connect(){const e=parseInt(this.connectRemotePort,10),i=parseInt(this.connectLocalPort,10);this.connectPK&&66===this.connectPK.length?isNaN(e)||e<1?this.snackbarService.showError("Enter a valid remote port"):isNaN(i)||i<1?this.snackbarService.showError("Enter a valid local port"):"skynet"===this.connectNetwork||"dmsg"===this.connectNetwork?this.nodeService.skynetConnect(this.nodeKey,this.connectNetwork,this.connectPK,e,i).subscribe(()=>{this.connectPK="",this.connectRemotePort="",this.connectLocalPort="",this.snackbarService.showDone(`Connected via ${this.connectNetwork}: remote ${e} \u2192 localhost:${i}`),this.loadForwards()},o=>{this.snackbarService.showError(o?.error?.error||"Failed")}):this.snackbarService.showError("Network must be skynet or dmsg"):this.snackbarService.showError("Enter a valid public key")}disconnect(e){this.nodeService.skynetDisconnect(this.nodeKey,e).subscribe(()=>{this.snackbarService.showDone("Disconnected"),this.loadForwards()},()=>{this.snackbarService.showError("Failed")})}static{this.\u0275fac=function(i){return new(i||t)(O(Io),O(ct))}}static{this.\u0275cmp=re({type:t,selectors:[["app-skynet"]],standalone:!1,features:[be],decls:21,vars:4,consts:[[1,"container-elevated-translucid","mt-4.5","skynet-container"],[1,"section"],[1,"section-title"],[1,"section-desc"],["class","text-center py-2",4,"ngIf"],[4,"ngIf"],[1,"text-center","py-2"],["diameter","24",1,"mx-auto"],["class","data-table",4,"ngIf"],["class","empty-msg",4,"ngIf"],[1,"add-form"],[1,"add-row"],["appearance","outline",1,"field-sm"],["matInput","","placeholder","80","type","number",3,"ngModelChange","ngModel"],["matInput","","placeholder","3000","type","number",3,"ngModelChange","ngModel"],["appearance","outline",1,"field-md"],["matInput","","placeholder","192.168.1.20:5432",3,"ngModelChange","ngModel"],["matInput","","placeholder","My Service",3,"ngModelChange","ngModel"],["appearance","outline",1,"field-lg"],["matInput","","placeholder","Optional description",3,"ngModelChange","ngModel"],["matInput","","rows","2","placeholder","02abc..., 03def... (empty = open to all)",3,"ngModelChange","ngModel"],["color","primary",3,"ngModelChange","ngModel"],["mat-raised-button","","color","primary",3,"click"],[1,"data-table"],[4,"ngFor","ngForOf"],[1,"mono"],["color","primary",3,"change","checked"],["mat-button","",3,"click","matTooltip"],[1,"edit-icon"],[1,"action-col"],["mat-icon-button","","color","warn","matTooltip","Remove",3,"click"],["class","whitelist-edit-row",4,"ngIf"],[1,"whitelist-edit-row"],["colspan","8"],[1,"whitelist-edit"],[1,"whitelist-help"],["appearance","outline",1,"whitelist-input"],["matInput","","rows","3","placeholder","02abc..., 03def...",3,"ngModelChange","ngModel"],[1,"whitelist-actions"],["mat-stroked-button","",3,"click",4,"ngIf"],["mat-button","",3,"click"],["mat-stroked-button","",3,"click"],[1,"empty-msg"],["panelClass","skynet-select-panel",3,"ngModelChange","ngModel"],["value","skynet"],["value","dmsg"],["appearance","outline",1,"field-pk"],["matInput","","placeholder","02abc...",3,"ngModelChange","ngModel"],["matInput","","placeholder","9090","type","number",3,"ngModelChange","ngModel"],[1,"mono","small"],["mat-icon-button","","color","warn","matTooltip","Disconnect",3,"click"]],template:function(i,o){1&i&&(h(0,"div",0)(1,"div",1)(2,"h4",2),p(3,"Forwarded Ports"),u(),h(4,"p",3),p(5," Expose local TCP ports over skynet and/or DMSG. "),u(),it(6,XPe,2,0,"div",4)(7,rIe,46,11,"div",5),u(),h(8,"div",1)(9,"h4",2),p(10,"Reverse Proxy"),u(),h(11,"p",3),p(12," Map a remote visor's port to a local port. The Network selector picks the transport: "),h(13,"code"),p(14,"skynet"),u(),p(15," goes through the routing layer; "),h(16,"code"),p(17,"dmsg"),u(),p(18," opens a direct DMSG stream. A single forward uses one network at a time. "),u(),it(19,sIe,2,0,"div",4)(20,dIe,29,6,"div",5),u()()),2&i&&(d(6),C("ngIf",o.portsLoading),d(),C("ngIf",!o.portsLoading),d(12),C("ngIf",o.forwardsLoading),d(),C("ngIf",!o.forwardsLoading))},dependencies:[LF,tf,Gt,rc,qt,sn,Os,In,Pn,Wo,We,Kt,cu,Pa,Qr,so,kr],styles:[".skynet-container[_ngcontent-%COMP%]{padding:20px;max-width:900px}.section[_ngcontent-%COMP%]{margin-bottom:28px}.section-title[_ngcontent-%COMP%]{font-size:16px;font-weight:500;margin-bottom:4px}.section-desc[_ngcontent-%COMP%]{color:#fff9;font-size:13px;margin-bottom:16px}.section-desc[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{background:#ffffff1a;padding:1px 4px;border-radius:3px;font-size:12px}.data-table[_ngcontent-%COMP%]{width:100%;border-collapse:collapse;margin-bottom:16px}.data-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%], .data-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:8px 12px;text-align:left;border-bottom:1px solid rgba(255,255,255,.08)}.data-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{color:#ffffff80;font-weight:500;font-size:13px}.data-table[_ngcontent-%COMP%] .mono[_ngcontent-%COMP%]{font-family:monospace}.data-table[_ngcontent-%COMP%] .small[_ngcontent-%COMP%]{font-size:12px;color:#ffffffb3;word-break:break-all}.data-table[_ngcontent-%COMP%] .action-col[_ngcontent-%COMP%]{width:48px;text-align:right}.empty-msg[_ngcontent-%COMP%]{color:#ffffff61;font-style:italic;margin-bottom:16px}.add-form[_ngcontent-%COMP%]{margin-top:8px}.add-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}.field-sm[_ngcontent-%COMP%]{width:120px}.field-md[_ngcontent-%COMP%]{width:200px}.field-lg[_ngcontent-%COMP%]{width:300px}.field-pk[_ngcontent-%COMP%]{width:100%;max-width:580px}.edit-icon[_ngcontent-%COMP%]{font-size:14px;width:14px;height:14px;vertical-align:middle;margin-left:4px;opacity:.6}.whitelist-edit-row[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{background:#ffffff08;padding:12px 16px!important}.whitelist-edit[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:8px}.whitelist-help[_ngcontent-%COMP%]{margin:0;color:#fff9;font-size:12px}.whitelist-input[_ngcontent-%COMP%]{width:100%;max-width:720px}.whitelist-actions[_ngcontent-%COMP%]{display:flex;gap:8px;align-items:center}[_nghost-%COMP%] .mat-mdc-text-field-wrapper{background:#ffffff14!important}[_nghost-%COMP%] .mdc-text-field--outlined .mdc-notched-outline__leading, [_nghost-%COMP%] .mdc-text-field--outlined .mdc-notched-outline__notch, [_nghost-%COMP%] .mdc-text-field--outlined .mdc-notched-outline__trailing{border-color:#ffffff4d!important}[_nghost-%COMP%] .mat-mdc-input-element, [_nghost-%COMP%] .mdc-text-field__input{color:#fff!important;caret-color:#fff!important}[_nghost-%COMP%] .mdc-floating-label{color:#fff9!important}[_nghost-%COMP%] .mdc-label, [_nghost-%COMP%] .mdc-form-field>label, [_nghost-%COMP%] .mat-mdc-checkbox label{color:#ffffffde!important}"]})}}return t})();const hIe=()=>["settings.title","labels.title"];let fIe=(()=>{class t{constructor(e){this.router=e,this.tabsData=[],this.returnButtonText="settings.title",this.tabsData=[{icon:"view_headline",label:"labels.list-title",linkParts:[]}]}performAction(e){null===e&&this.router.navigate(["settings"])}static{this.\u0275fac=function(i){return new(i||t)(O(vt))}}static{this.\u0275cmp=re({type:t,selectors:[["app-all-labels"]],standalone:!1,decls:5,vars:6,consts:[[1,"row"],[1,"col-12"],[3,"optionSelected","titleParts","tabsData","showUpdateButton","returnText"],[1,"content","col-12"],[3,"showShortList"]],template:function(i,o){1&i&&(h(0,"div",0)(1,"div",1)(2,"app-top-bar",2),F("optionSelected",function(s){return o.performAction(s)}),u()(),h(3,"div",3),B(4,"app-label-list",4),u()()),2&i&&(d(2),C("titleParts",Ct(5,hIe))("tabsData",o.tabsData)("showUpdateButton",!1)("returnText",o.returnButtonText),d(2),C("showShortList",!1))},dependencies:[Mr,bV],encapsulation:2})}}return t})();const pIe=["firstInput"];function mIe(t,n){1&t&&(h(0,"span"),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"vpn.server-list.add-server-dialog.pk-length-error")))}function gIe(t,n){1&t&&(h(0,"span"),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"vpn.server-list.add-server-dialog.pk-chars-error")))}let _Ie=(()=>{class t{static openDialog(e,i){const o=new nn;return o.data=i,o.autoFocus=!1,o.width=rt.mediumModalWidth,e.open(t,o)}constructor(e,i,o,r,s,a,l,c){this.dialogRef=e,this.data=i,this.formBuilder=o,this.dialog=r,this.router=s,this.vpnClientService=a,this.vpnSavedDataService=l,this.snackbarService=c}ngOnInit(){this.form=this.formBuilder.group({pk:["",Ne.compose([Ne.required,Ne.minLength(66),Ne.maxLength(66),Ne.pattern("^[0-9a-fA-F]+$")])],password:[""],name:[""],note:[""]}),setTimeout(()=>this.firstInput.nativeElement.focus())}process(){if(!this.form.valid)return;const e={pk:this.form.get("pk").value,name:this.form.get("name").value,note:this.form.get("note").value};hi.processServerChange(this.router,this.vpnClientService,this.vpnSavedDataService,this.snackbarService,this.dialog,this.dialogRef,this.data,null,null,e,this.form.get("password").value)}static{this.\u0275fac=function(i){return new(i||t)(O(Bt),O(En),O(di),O(Ot),O(vt),O(hc),O(uc),O(ct))}}static{this.\u0275cmp=re({type:t,selectors:[["app-add-vpn-server"]],viewQuery:function(i,o){if(1&i&&ot(pIe,5),2&i){let r;he(r=fe())&&(o.firstInput=r.first)}},standalone:!1,decls:34,vars:22,consts:[["firstInput",""],[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","pk","maxlength","66","matInput",""],["formControlName","password","type","password","matInput",""],["formControlName","name","maxlength","100","matInput",""],["formControlName","note","maxlength","100","matInput",""],["color","primary",1,"float-right",3,"action","disabled"]],template:function(i,o){1&i&&(h(0,"app-dialog",1),b(1,"translate"),h(2,"form",2)(3,"mat-form-field")(4,"div",3)(5,"label",4),p(6),b(7,"translate"),u(),B(8,"input",5,0),u(),h(10,"mat-error"),x(11,mIe,3,3,"span")(12,gIe,3,3,"span"),u()(),h(13,"mat-form-field")(14,"div",3)(15,"label",4),p(16),b(17,"translate"),u(),B(18,"input",6),u()(),h(19,"mat-form-field")(20,"div",3)(21,"label",4),p(22),b(23,"translate"),u(),B(24,"input",7),u()(),h(25,"mat-form-field")(26,"div",3)(27,"label",4),p(28),b(29,"translate"),u(),B(30,"input",8),u()()(),h(31,"app-button",9),F("action",function(){return o.process()}),p(32),b(33,"translate"),u()()),2&i&&(C("headline",y(1,10,"vpn.server-list.add-server-dialog.title"))("dialog",o.dialogRef),d(2),C("formGroup",o.form),d(4),M(y(7,12,"vpn.server-list.add-server-dialog.pk-label")),d(5),S(o.form.get("pk").hasError("pattern")?12:11),d(5),M(y(17,14,"vpn.server-list.add-server-dialog.password-label")),d(6),M(y(23,16,"vpn.server-list.add-server-dialog.name-label")),d(6),M(y(29,18,"vpn.server-list.add-server-dialog.note-label")),d(3),C("disabled",!o.form.valid),d(),E(" ",y(33,20,"vpn.server-list.add-server-dialog.use-server-button")," "))},dependencies:[xn,Gt,qt,wn,wi,on,mn,sn,Ma,In,ui,gn,xe],encapsulation:2})}}return t})();class bIe{constructor(){this.countryCode="ZZ"}}let vIe=(()=>{class t{constructor(e){this.http=e,this.discoveryServiceUrl="https://sd.skycoin.com/api/services?type=vpn"}getServers(){return this.servers?ae(this.servers):this.http.get(this.discoveryServiceUrl).pipe(ip(e=>e.pipe(li(4e3))),Se(e=>{const i=[];return e&&e.forEach(o=>{const r=new bIe,s=o.address.split(":");2===s.length&&(r.pk=s[0],r.location="",o.geo&&(o.geo.country&&(r.countryCode=o.geo.country),o.geo.region&&(r.location=o.geo.region)),r.name=s[0],r.note="",i.push(r))}),this.servers=i,i}))}static{this.\u0275fac=function(i){return new(i||t)(ce(ba))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const p6=()=>["vpn.title"],yIe=t=>({deactivated:t}),qv=(t,n)=>["/vpn",t,"servers",n,1],CIe=t=>({"mb-3":t}),wIe=(t,n)=>({"public-pk-column":t,"history-pk-column":n}),xIe=t=>({"selectable click-effect":t}),SIe=(t,n)=>({custom:t,original:n}),kIe=(t,n)=>["/vpn",t,"servers",n];function DIe(t,n){1&t&&dr(0)}function MIe(t,n){if(1&t&&(h(0,"div",1)(1,"div",3),B(2,"app-top-bar",4),h(3,"div",5)(4,"div",6)(5,"div",7),it(6,DIe,1,0,"ng-container",8),u()()()(),B(7,"app-loading-indicator",9),u()),2&t){const e=v(),i=Hn(2);d(2),C("titleParts",Ct(6,p6))("tabsData",e.tabsData)("selectedTabIndex",1)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk),d(4),C("ngTemplateOutlet",i)}}function TIe(t,n){1&t&&(h(0,"div",14)(1,"span"),p(2),b(3,"translate"),u()()),2&t&&(d(2),M(y(3,1,"vpn.server-list.tabs.public")))}function EIe(t,n){if(1&t&&(h(0,"a",15)(1,"span"),p(2),b(3,"translate"),u()()),2&t){const e=v(2);C("routerLink",_t(4,qv,e.currentLocalPk,e.lists.Public)),d(2),M(y(3,2,"vpn.server-list.tabs.public"))}}function PIe(t,n){1&t&&(h(0,"div",14)(1,"span"),p(2),b(3,"translate"),u()()),2&t&&(d(2),M(y(3,1,"vpn.server-list.tabs.history")))}function IIe(t,n){if(1&t&&(h(0,"a",15)(1,"span"),p(2),b(3,"translate"),u()()),2&t){const e=v(2);C("routerLink",_t(4,qv,e.currentLocalPk,e.lists.History)),d(2),M(y(3,2,"vpn.server-list.tabs.history"))}}function OIe(t,n){1&t&&(h(0,"div",14)(1,"span"),p(2),b(3,"translate"),u()()),2&t&&(d(2),M(y(3,1,"vpn.server-list.tabs.favorites")))}function AIe(t,n){if(1&t&&(h(0,"a",15)(1,"span"),p(2),b(3,"translate"),u()()),2&t){const e=v(2);C("routerLink",_t(4,qv,e.currentLocalPk,e.lists.Favorites)),d(2),M(y(3,2,"vpn.server-list.tabs.favorites"))}}function RIe(t,n){1&t&&(h(0,"div",14)(1,"span"),p(2),b(3,"translate"),u()()),2&t&&(d(2),M(y(3,1,"vpn.server-list.tabs.blocked")))}function FIe(t,n){if(1&t&&(h(0,"a",15)(1,"span"),p(2),b(3,"translate"),u()()),2&t){const e=v(2);C("routerLink",_t(4,qv,e.currentLocalPk,e.lists.Blocked)),d(2),M(y(3,2,"vpn.server-list.tabs.blocked"))}}function NIe(t,n){1&t&&B(0,"br")}function LIe(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,v().$implicit.translatableValue)," ")}function BIe(t,n){1&t&&p(0),2&t&&E(" ",v().$implicit.value," ")}function VIe(t,n){if(1&t&&(h(0,"div",23)(1,"span"),p(2),b(3,"translate"),u(),x(4,LIe,2,3),x(5,BIe,1,1),u()),2&t){const e=n.$implicit;d(2),E("",y(3,3,e.filterName),": "),d(2),S(e.translatableValue?4:-1),d(),S(e.value?5:-1)}}function HIe(t,n){if(1&t){const e=oe();h(0,"div",21),F("click",function(){return j(e),U(v(3).dataFilterer.removeFilters())}),h(1,"div",22)(2,"mat-icon",18),p(3,"search"),u(),p(4),b(5,"translate"),u(),ve(6,VIe,6,5,"div",23,Fe),u()}if(2&t){const e=v(3);d(2),C("inline",!0),d(2),E(" ",y(5,2,"vpn.server-list.current-filters")),d(2),ye(e.dataFilterer.currentFiltersTexts)}}function jIe(t,n){if(1&t&&(x(0,NIe,1,0,"br"),x(1,HIe,8,4,"div",20)),2&t){const e=v(2);S(e.dataFilterer.currentFiltersTexts&&e.dataFilterer.currentFiltersTexts.length>0?0:-1),d(),S(e.dataFilterer.currentFiltersTexts&&e.dataFilterer.currentFiltersTexts.length>0?1:-1)}}function UIe(t,n){if(1&t){const e=oe();h(0,"div",10)(1,"div",11)(2,"div",12)(3,"div",13),x(4,TIe,4,3,"div",14),x(5,EIe,4,7,"a",15),x(6,PIe,4,3,"div",14),x(7,IIe,4,7,"a",15),x(8,OIe,4,3,"div",14),x(9,AIe,4,7,"a",15),x(10,RIe,4,3,"div",14),x(11,FIe,4,7,"a",15),u()()()(),h(12,"div",16)(13,"div",11)(14,"div",12)(15,"div",13)(16,"div",17),b(17,"translate"),F("click",function(){j(e);const o=v();return U(o.dataFilterer?o.dataFilterer.changeFilters():null)}),h(18,"span")(19,"mat-icon",18),p(20,"search"),u()()()()()()(),h(21,"div",19)(22,"div",11)(23,"div",12)(24,"div",13)(25,"div",17),b(26,"translate"),F("click",function(){return j(e),U(v().enterManually())}),h(27,"span")(28,"mat-icon",18),p(29,"add"),u()()()()()()(),x(30,jIe,2,2)}if(2&t){const e=v();d(4),S(e.currentList===e.lists.Public?4:-1),d(),S(e.currentList!==e.lists.Public?5:-1),d(),S(e.currentList===e.lists.History?6:-1),d(),S(e.currentList!==e.lists.History?7:-1),d(),S(e.currentList===e.lists.Favorites?8:-1),d(),S(e.currentList!==e.lists.Favorites?9:-1),d(),S(e.currentList===e.lists.Blocked?10:-1),d(),S(e.currentList!==e.lists.Blocked?11:-1),d(),C("ngClass",se(18,yIe,e.loading)),d(4),C("matTooltip",y(17,14,"filters.filter-info")),d(3),C("inline",!0),d(6),C("matTooltip",y(26,16,"vpn.server-list.add-manually-info")),d(3),C("inline",!0),d(2),S(e.dataFilterer?30:-1)}}function zIe(t,n){1&t&&dr(0)}function $Ie(t,n){if(1&t&&(h(0,"mat-icon",18),p(1),u()),2&t){const e=v(5);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function WIe(t,n){if(1&t){const e=oe();h(0,"th",41),b(1,"translate"),F("click",function(){j(e);const o=v(4);return U(o.dataSorter.changeSortingOrder(o.dateSortData))}),h(2,"div",34)(3,"div",35),p(4),b(5,"translate"),u(),x(6,$Ie,2,2,"mat-icon",18),u()()}if(2&t){const e=v(4);C("matTooltip",y(1,3,"vpn.server-list.date-info")),d(4),E(" ",y(5,5,"vpn.server-list.date-small-table-label")," "),d(2),S(e.dataSorter.currentSortingColumn===e.dateSortData?6:-1)}}function GIe(t,n){if(1&t&&(h(0,"mat-icon",18),p(1),u()),2&t){const e=v(4);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function qIe(t,n){if(1&t&&(h(0,"mat-icon",18),p(1),u()),2&t){const e=v(4);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function KIe(t,n){if(1&t&&(h(0,"mat-icon",18),p(1),u()),2&t){const e=v(4);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function YIe(t,n){if(1&t&&(h(0,"mat-icon",18),p(1),u()),2&t){const e=v(4);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function XIe(t,n){if(1&t&&(h(0,"mat-icon",18),p(1),u()),2&t){const e=v(4);C("inline",!0),d(),M(e.dataSorter.sortingArrow)}}function ZIe(t,n){if(1&t&&(h(0,"td",43),p(1),b(2,"date"),u()),2&t){const e=v().$implicit;d(),E(" ",pe(2,1,e.lastUsed,"yyyy/MM/dd, H:mm a")," ")}}function QIe(t,n){1&t&&p(0),2&t&&E(" ",v().$implicit.location," ")}function JIe(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"vpn.server-list.unknown")," ")}function eOe(t,n){if(1&t&&(h(0,"mat-icon",55),b(1,"translate"),F("click",function(i){return i.stopPropagation()}),p(2,"info_outline"),u()),2&t){const e=v().$implicit,i=v(4);C("inline",!0)("matTooltip",pe(1,2,i.getNoteVar(e),_t(5,SIe,e.personalNote,e.note)))}}function tOe(t,n){if(1&t){const e=oe();h(0,"tr",42),F("click",function(){const o=j(e).$implicit,r=v(4);return U(r.currentList!==r.lists.Blocked?r.selectServer(o):null)}),x(1,ZIe,3,4,"td",43),h(2,"td",44)(3,"div",45),B(4,"div",46),u()(),h(5,"td",47),B(6,"app-vpn-server-name",48),u(),h(7,"td",49),x(8,QIe,1,1),x(9,JIe,2,3),u(),h(10,"td",50)(11,"app-copy-to-clipboard-text",51),F("click",function(o){return o.stopPropagation()}),u()(),h(12,"td",52),x(13,eOe,3,8,"mat-icon",53),u(),h(14,"td",39)(15,"button",54),b(16,"translate"),F("click",function(o){const r=j(e).$implicit,s=v(4);return o.stopPropagation(),U(s.openOptions(r))}),h(17,"mat-icon",18),p(18,"settings"),u()()()()}if(2&t){const e=n.$implicit,i=v(4);C("ngClass",se(23,xIe,i.currentList!==i.lists.Blocked)),d(),S(i.currentList===i.lists.History?1:-1),d(3),no("background-image: url('assets/img/big-flags/"+e.countryCode.toLocaleLowerCase()+".png');"),C("matTooltip",i.getCountryName(e.countryCode)),d(2),C("isCurrentServer",i.currentServer&&e.pk===i.currentServer.pk)("isFavorite",e.flag===i.serverFlags.Favorite&&i.currentList!==i.lists.Favorites)("isBlocked",e.flag===i.serverFlags.Blocked&&i.currentList!==i.lists.Blocked)("isInHistory",e.inHistory&&i.currentList!==i.lists.History)("hasPassword",e.usedWithPassword)("name",e.name)("pk",e.pk)("customName",e.customName)("defaultName","vpn.server-list.none"),d(2),S(e.location?8:-1),d(),S(e.location?-1:9),d(2),C("shortSimple",!0)("text",e.pk),d(2),S(e.note||e.personalNote?13:-1),d(2),C("matTooltip",y(16,21,"vpn.server-options.tooltip")),d(2),C("inline",!0)}}function nOe(t,n){if(1&t){const e=oe();h(0,"table",30)(1,"tr"),x(2,WIe,7,7,"th",31),h(3,"th",32),b(4,"translate"),F("click",function(){j(e);const o=v(3);return U(o.dataSorter.changeSortingOrder(o.countrySortData))}),h(5,"mat-icon",18),p(6,"flag"),u(),x(7,GIe,2,2,"mat-icon",18),u(),h(8,"th",33),F("click",function(){j(e);const o=v(3);return U(o.dataSorter.changeSortingOrder(o.nameSortData))}),h(9,"div",34)(10,"div",35),p(11),b(12,"translate"),u(),x(13,qIe,2,2,"mat-icon",18),u()(),h(14,"th",36),F("click",function(){j(e);const o=v(3);return U(o.dataSorter.changeSortingOrder(o.locationSortData))}),h(15,"div",34)(16,"div",35),p(17),b(18,"translate"),u(),x(19,KIe,2,2,"mat-icon",18),u()(),h(20,"th",37),b(21,"translate"),F("click",function(){j(e);const o=v(3);return U(o.dataSorter.changeSortingOrder(o.pkSortData))}),h(22,"div",34)(23,"div",35),p(24),b(25,"translate"),u(),x(26,YIe,2,2,"mat-icon",18),u()(),h(27,"th",38),b(28,"translate"),F("click",function(){j(e);const o=v(3);return U(o.dataSorter.changeSortingOrder(o.noteSortData))}),h(29,"div",34)(30,"mat-icon",18),p(31,"info_outline"),u(),x(32,XIe,2,2,"mat-icon",18),u()(),B(33,"th",39),u(),ve(34,tOe,19,25,"tr",40,Fe),u()}if(2&t){const e=v(3);d(2),S(e.currentList===e.lists.History?2:-1),d(),C("matTooltip",y(4,15,"vpn.server-list.country-info")),d(2),C("inline",!0),d(2),S(e.dataSorter.currentSortingColumn===e.countrySortData?7:-1),d(4),E(" ",y(12,17,"vpn.server-list.name-small-table-label")," "),d(2),S(e.dataSorter.currentSortingColumn===e.nameSortData?13:-1),d(4),E(" ",y(18,19,"vpn.server-list.location-small-table-label")," "),d(2),S(e.dataSorter.currentSortingColumn===e.locationSortData?19:-1),d(),C("ngClass",_t(27,wIe,e.currentList===e.lists.Public,e.currentList===e.lists.History))("matTooltip",y(21,21,"vpn.server-list.public-key-info")),d(4),E(" ",y(25,23,"vpn.server-list.public-key-small-table-label")," "),d(2),S(e.dataSorter.currentSortingColumn===e.pkSortData?26:-1),d(),C("matTooltip",y(28,25,"vpn.server-list.note-info")),d(3),C("inline",!0),d(2),S(e.dataSorter.currentSortingColumn===e.noteSortData?32:-1),d(2),ye(e.dataSource)}}function iOe(t,n){if(1&t&&(h(0,"div",27)(1,"div",29),x(2,nOe,36,30,"table",30),u()()),2&t){const e=v(2);d(2),S(e.dataSource.length>0?2:-1)}}function oOe(t,n){if(1&t&&B(0,"app-paginator",28),2&t){const e=v(2);C("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",_t(4,kIe,e.currentLocalPk,e.currentList))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function rOe(t,n){1&t&&(h(0,"span",58),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"vpn.server-list.empty-discovery")))}function sOe(t,n){1&t&&(h(0,"span",58),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"vpn.server-list.empty-history")))}function aOe(t,n){1&t&&(h(0,"span",58),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"vpn.server-list.empty-favorites")))}function lOe(t,n){1&t&&(h(0,"span",58),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"vpn.server-list.empty-blocked")))}function cOe(t,n){1&t&&(h(0,"span",58),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"vpn.server-list.empty-with-filter")))}function dOe(t,n){if(1&t&&(h(0,"div",27)(1,"div",56)(2,"mat-icon",57),p(3,"warning"),u(),x(4,rOe,3,3,"span",58),x(5,sOe,3,3,"span",58),x(6,aOe,3,3,"span",58),x(7,lOe,3,3,"span",58),x(8,cOe,3,3,"span",58),u()()),2&t){const e=v(2);d(2),C("inline",!0),d(2),S(0===e.allServers.length&&e.currentList===e.lists.Public?4:-1),d(),S(0===e.allServers.length&&e.currentList===e.lists.History?5:-1),d(),S(0===e.allServers.length&&e.currentList===e.lists.Favorites?6:-1),d(),S(0===e.allServers.length&&e.currentList===e.lists.Blocked?7:-1),d(),S(0!==e.allServers.length?8:-1)}}function uOe(t,n){if(1&t&&(h(0,"div",2)(1,"div",24),B(2,"app-top-bar",4),u(),h(3,"div",25)(4,"div",6)(5,"div",26),it(6,zIe,1,0,"ng-container",8),u(),x(7,iOe,3,1,"div",27),x(8,oOe,1,7,"app-paginator",28),x(9,dOe,9,6,"div",27),u()()()),2&t){const e=v(),i=Hn(2);d(2),C("titleParts",Ct(10,p6))("tabsData",e.tabsData)("selectedTabIndex",1)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk),d(3),C("ngClass",se(11,CIe,!e.dataFilterer.currentFiltersTexts||e.dataFilterer.currentFiltersTexts.length<1)),d(),C("ngTemplateOutlet",i),d(),S(0!==e.dataSource.length?7:-1),d(),S(e.numberOfPages>1?8:-1),d(),S(0===e.dataSource.length?9:-1)}}var pi=function(t){return t.Public="public",t.History="history",t.Favorites="favorites",t.Blocked="blocked",t}(pi||{});let m6=(()=>{class t extends pn{constructor(e,i,o,r,s,a,l,c,f){super(),this.dialog=e,this.router=i,this.translateService=o,this.route=r,this.vpnClientDiscoveryService=s,this.vpnClientService=a,this.vpnSavedDataService=l,this.snackbarService=c,this.storageService=f,this.persistentServerDataResponseKey="serv-dat-response",this.maxFullListElements=50,this.dateSortData=new Dt(["lastUsed"],"vpn.server-list.date-small-table-label",st.NumberReversed),this.countrySortData=new Dt(["countryName"],"vpn.server-list.country-small-table-label",st.Text),this.nameSortData=new Dt(["name"],"vpn.server-list.name-small-table-label",st.Text),this.locationSortData=new Dt(["location"],"vpn.server-list.location-small-table-label",st.Text),this.pkSortData=new Dt(["pk"],"vpn.server-list.public-key-small-table-label",st.Text),this.noteSortData=new Dt(["note"],"vpn.server-list.note-small-table-label",st.Text),this.loading=!0,this.loadingBackendData=!0,this.tabsData=hi.vpnTabsData,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.currentList=pi.Public,this.vpnRunning=!1,this.serverFlags=_n,this.lists=pi,this.initialLoadStarted=!1,this.navigationsSubscription=r.paramMap.subscribe(m=>{if(m.has("type")?m.get("type")===pi.Favorites?(this.currentList=pi.Favorites,this.listId="vfs"):m.get("type")===pi.Blocked?(this.currentList=pi.Blocked,this.listId="vbs"):m.get("type")===pi.History?(this.currentList=pi.History,this.listId="vhs"):(this.currentList=pi.Public,this.listId="vps"):(this.currentList=pi.Public,this.listId="vps"),hi.setDefaultTabForServerList(this.currentList),m.has("key")&&(this.currentLocalPk=m.get("key"),hi.changeCurrentPk(this.currentLocalPk),this.tabsData=hi.vpnTabsData),m.has("page")){let g=Number.parseInt(m.get("page"),10);(isNaN(g)||g<1)&&(g=1),this.currentPageInUrl=g,this.recalculateElementsToShow()}this.initialLoadStarted||(this.initialLoadStarted=!0,this.loadData(!0))}),this.currentServerSubscription=this.vpnSavedDataService.currentServerObservable.subscribe(m=>this.currentServer=m),this.backendDataSubscription=this.vpnClientService.backendState.subscribe(m=>{m&&(this.loadingBackendData=!1,this.vpnRunning=m.vpnClientAppData.running)})}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.currentServerSubscription.unsubscribe(),this.backendDataSubscription.unsubscribe(),this.dataSortedSubscription&&this.dataSortedSubscription.unsubscribe(),this.dataFiltererSubscription&&this.dataFiltererSubscription.unsubscribe(),this.dataSubscription&&this.dataSubscription.unsubscribe(),this.dataFilterer&&this.dataFilterer.dispose(),this.dataSorter&&this.dataSorter.dispose()}enterManually(){_Ie.openDialog(this.dialog,this.currentLocalPk)}getNoteVar(e){return e.note&&e.personalNote?"vpn.server-list.notes-info":!e.note&&e.personalNote?e.personalNote:e.note}selectServer(e){const i=this.vpnSavedDataService.getSavedVersion(e.pk,!0);if(this.snackbarService.closeCurrentIfTemporaryError(),i&&i.flag===_n.Blocked)this.snackbarService.showError("vpn.starting-blocked-server-error",{},!0);else{if(this.currentServer&&this.currentServer.pk===e.pk){if(this.vpnRunning)this.snackbarService.showWarning("vpn.server-change.already-selected-warning");else{const o=Rt.createConfirmationDialog(this.dialog,"vpn.server-change.start-same-server-confirmation");o.componentInstance.operationAccepted.subscribe(()=>{o.componentInstance.closeModal(),this.vpnClientService.start(),hi.redirectAfterServerChange(this.router,null,this.currentLocalPk)})}return}if(i&&i.usedWithPassword)return void sV.openDialog(this.dialog,!0).afterClosed().subscribe(o=>{o&&this.makeServerChange(e,"-"===o?null:o.substr(1))});this.makeServerChange(e,null)}}makeServerChange(e,i){hi.processServerChange(this.router,this.vpnClientService,this.vpnSavedDataService,this.snackbarService,this.dialog,null,this.currentLocalPk,e.originalLocalData,e.originalDiscoveryData,null,i)}openOptions(e){let i=this.vpnSavedDataService.getSavedVersion(e.pk,!0);i||(i=this.vpnSavedDataService.processFromDiscovery(e.originalDiscoveryData)),i?hi.openServerOptions(i,this.router,this.vpnSavedDataService,this.vpnClientService,this.snackbarService,this.dialog).subscribe(o=>{o&&this.processAllServers()}):this.snackbarService.showError("vpn.unexpedted-error")}loadData(e){if(this.currentList===pi.Public){const i=e?this.getLocalValue(this.persistentServerDataResponseKey):null;let o=this.vpnClientDiscoveryService.getServers();i&&(o=ae(JSON.parse(i.value))),this.dataSubscription=o.subscribe(r=>{i||this.saveLocalValue(this.persistentServerDataResponseKey,JSON.stringify(r)),this.allServers=r.map(s=>({countryCode:s.countryCode,countryName:this.getCountryName(s.countryCode),name:s.name,customName:null,location:s.location,pk:s.pk,note:s.note,personalNote:null,originalDiscoveryData:s})),this.vpnSavedDataService.updateFromDiscovery(r),this.loading=!1,this.processAllServers(),i&&this.loadData(!1)})}else{let i;i=this.currentList===pi.History?this.vpnSavedDataService.history:this.currentList===pi.Favorites?this.vpnSavedDataService.favorites:this.vpnSavedDataService.blocked,this.dataSubscription=i.subscribe(o=>{const r=[];o.forEach(s=>{r.push({countryCode:s.countryCode,countryName:this.getCountryName(s.countryCode),name:s.name,customName:null,location:s.location,pk:s.pk,note:s.note,personalNote:null,lastUsed:s.lastUsed,inHistory:s.inHistory,flag:s.flag,originalLocalData:s})}),this.allServers=r,this.loading=!1,this.processAllServers()})}}processAllServers(){this.fillFilterPropertiesArray();const e=new Set;this.allServers.forEach((c,f)=>{e.add(c.countryCode);const m=this.vpnSavedDataService.getSavedVersion(c.pk,0===f);c.customName=m?m.customName:null,c.personalNote=m?m.personalNote:null,c.inHistory=!!m&&m.inHistory,c.flag=m?m.flag:_n.None,c.enteredManually=!!m&&m.enteredManually,c.usedWithPassword=!!m&&m.usedWithPassword});let i=[];e.forEach(c=>{i.push({label:this.getCountryName(c),value:c,image:"/assets/img/big-flags/"+c.toLowerCase()+".png"})}),i.sort((c,f)=>c.label.localeCompare(f.label)),i=[{label:"vpn.server-list.filter-dialog.country-options.any",value:""}].concat(i),this.filterProperties=[{filterName:"vpn.server-list.filter-dialog.country",keyNameInElementsArray:"countryCode",type:Sn.Select,printableLabelsForValues:i,printableLabelGeneralSettings:{defaultImage:"/assets/img/big-flags/unknown.png",imageWidth:20,imageHeight:15}}].concat(this.filterProperties);const r=[];let s,a,l;this.currentList===pi.Public?(r.push(this.countrySortData),r.push(this.nameSortData),r.push(this.locationSortData),r.push(this.pkSortData),r.push(this.noteSortData),s=0,a=1):(this.currentList===pi.History&&r.push(this.dateSortData),r.push(this.countrySortData),r.push(this.nameSortData),r.push(this.locationSortData),r.push(this.pkSortData),r.push(this.noteSortData),s=this.currentList===pi.History?0:1,a=this.currentList===pi.History?2:3),this.dataSorter=new gu(this.dialog,this.translateService,this.storageService,r,s,this.listId),this.dataSorter.setTieBreakerColumnIndex(a),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataFilterer=new _u(this.dialog,this.route,this.router,this.filterProperties,this.listId),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(c=>{this.filteredServers=c,this.dataSorter.setData(this.filteredServers)}),l=this.currentList===pi.Public?this.allServers.filter(c=>c.flag!==_n.Blocked):this.allServers,this.dataFilterer.setData(l)}fillFilterPropertiesArray(){this.filterProperties=[{filterName:"vpn.server-list.filter-dialog.name",keyNameInElementsArray:"name",secondaryKeyNameInElementsArray:"customName",type:Sn.TextInput,maxlength:100},{filterName:"vpn.server-list.filter-dialog.location",keyNameInElementsArray:"location",type:Sn.TextInput,maxlength:100},{filterName:"vpn.server-list.filter-dialog.public-key",keyNameInElementsArray:"pk",type:Sn.TextInput,maxlength:100}]}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredServers){const e=this.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredServers.length/e),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const i=e*(this.currentPage-1);this.serversToShow=this.filteredServers.slice(i,i+e)}else this.serversToShow=null;this.dataSource=this.serversToShow}getCountryName(e){return es[e.toUpperCase()]?es[e.toUpperCase()]:e}static{this.\u0275fac=function(i){return new(i||t)(O(Ot),O(vt),O(Go),O(Ai),O(vIe),O(hc),O(uc),O(ct),O(ti))}}static{this.\u0275cmp=re({type:t,selectors:[["app-vpn-server-list"]],standalone:!1,features:[be],decls:4,vars:2,consts:[["topPart",""],[1,"d-flex","flex-column","h-100","w-100"],[1,"row"],[1,"loading-top-container"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton","localVpnKey"],[1,"main-container"],[1,"width-limiter"],[1,"center-container","mt-4.5"],[4,"ngTemplateOutlet"],[1,"h-100","loading-indicator"],[1,"option-bar-container"],[1,"rounded-elevated-box","mt-3"],[1,"box-internal-container","allow-overflow"],[1,"option-bar"],[1,"text-option","selected"],[1,"text-option",3,"routerLink"],[1,"option-bar-container","option-bar-margin",3,"ngClass"],[1,"icon-option",3,"click","matTooltip"],[3,"inline"],[1,"option-bar-container","option-bar-margin"],[1,"filter-label","subtle-transparent-button","cursor-pointer"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],[1,"transparent-50"],[1,"item"],[1,"col-12"],[1,"col-12","vpn-table-container"],[1,"center-container","mt-4.5",3,"ngClass"],[1,"rounded-elevated-box"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"box-internal-container"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table"],[1,"sortable-column","date-column","click-effect",3,"matTooltip"],[1,"sortable-column","flag-column","center","click-effect",3,"click","matTooltip"],[1,"sortable-column","name-column","click-effect",3,"click"],[1,"header-container"],[1,"header-text"],[1,"sortable-column","location-column","click-effect",3,"click"],[1,"sortable-column","pk-column","click-effect",3,"click","ngClass","matTooltip"],[1,"sortable-column","note-column","center","click-effect",3,"click","matTooltip"],[1,"actions"],[3,"ngClass"],[1,"sortable-column","date-column","click-effect",3,"click","matTooltip"],[3,"click","ngClass"],[1,"date-column"],[1,"flag-column","icon-fixer"],[1,"flag"],[3,"matTooltip"],[1,"name-column"],[3,"isCurrentServer","isFavorite","isBlocked","isInHistory","hasPassword","name","pk","customName","defaultName"],[1,"location-column"],[1,"pk-column","history-pk-column"],[1,"d-inline-block","w-100",3,"click","shortSimple","text"],[1,"center","note-column"],[1,"note-icon",3,"inline","matTooltip"],["mat-button","",1,"big-action-button","transparent-button","vpn-small-button",3,"click","matTooltip"],[1,"note-icon",3,"click","inline","matTooltip"],[1,"box-internal-container","font-sm"],[1,"alert-icon",3,"inline"],[1,"font-sm"]],template:function(i,o){1&i&&(x(0,MIe,8,7,"div",1),it(1,UIe,31,20,"ng-template",null,0,Rl),x(3,uOe,10,13,"div",2)),2&i&&(S(o.loading||o.loadingBackendData?0:-1),d(3),S(o.loading||o.loadingBackendData?-1:3))},styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .header-container[_ngcontent-%COMP%] .header-text[_ngcontent-%COMP%], .note-column[_ngcontent-%COMP%], .pk-column[_ngcontent-%COMP%], .location-column[_ngcontent-%COMP%], .name-column[_ngcontent-%COMP%], .date-column[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}.center-container[_ngcontent-%COMP%]{text-align:center}.center-container[_ngcontent-%COMP%] app-paginator[_ngcontent-%COMP%]{display:inline-block}.loading-top-container[_ngcontent-%COMP%]{z-index:1}.loading-indicator[_ngcontent-%COMP%]{padding-top:30px;padding-bottom:20px}.deactivated[_ngcontent-%COMP%]{opacity:.5;pointer-events:none}.option-bar-container[_ngcontent-%COMP%]{display:inline-block}.option-bar-container[_ngcontent-%COMP%] .allow-overflow[_ngcontent-%COMP%]{overflow:visible}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%]{display:flex;margin:-17px}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] > div[_ngcontent-%COMP%], .option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{height:55px;line-height:55px;cursor:pointer;color:#fff;text-decoration:none;-webkit-user-select:none;user-select:none}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:hover, .option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{background:#0003}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] > .icon-option[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] a[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:inline-block}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] > .icon-option[_ngcontent-%COMP%]:active span[_ngcontent-%COMP%], .option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:active span[_ngcontent-%COMP%]{transform:scale(.95)}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] .text-option[_ngcontent-%COMP%]{padding:0 40px;font-size:1rem}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] .icon-option[_ngcontent-%COMP%]{width:55px;font-size:24px}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%]{background:#0000005c;cursor:unset!important}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%]:hover{background:#0009}.option-bar-margin[_ngcontent-%COMP%]{margin-left:10px}.filter-label[_ngcontent-%COMP%]{font-size:.7rem;display:inline-block;padding:5px 10px;margin-bottom:7px}.filter-label[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{vertical-align:middle}table[_ngcontent-%COMP%]{width:100%}tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:2px 5px!important;font-size:12px!important;font-weight:400!important}tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{padding-left:5px!important;padding-right:5px!important}.date-column[_ngcontent-%COMP%]{width:150px}.name-column[_ngcontent-%COMP%]{max-width:0;width:20%}.location-column[_ngcontent-%COMP%]{max-width:0;min-width:72px}.pk-column[_ngcontent-%COMP%]{max-width:0;width:25%}.history-pk-column[_ngcontent-%COMP%]{width:20%!important}.icon-fixer[_ngcontent-%COMP%]{line-height:0px}.note-column[_ngcontent-%COMP%]{max-width:0;width:3%;min-width:60px}.note-column[_ngcontent-%COMP%] .note-icon[_ngcontent-%COMP%]{opacity:.55;font-size:16px!important;display:inline}.flag-column[_ngcontent-%COMP%]{width:1px;line-height:0px}.actions[_ngcontent-%COMP%]{width:1px}.header-container[_ngcontent-%COMP%]{max-width:100%;display:inline-flex}.header-container[_ngcontent-%COMP%] .header-text[_ngcontent-%COMP%]{flex-grow:1}.flag[_ngcontent-%COMP%]{width:20px;height:15px;display:inline-block;margin-right:5px;background-image:url(/assets/img/big-flags/unknown.png);background-size:contain}.flag[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{width:20px;height:15px;background-size:contain}.center[_ngcontent-%COMP%]{text-align:center}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}"]})}}return t})();const Tp=(t,n)=>({"small-text-icon":t,"big-text-icon":n});function hOe(t,n){if(1&t&&(h(0,"mat-icon",0),b(1,"translate"),p(2,"done"),u()),2&t){const e=v();C("ngClass",_t(5,Tp,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",y(1,3,"vpn.server-conditions.selected-info"))}}function fOe(t,n){if(1&t&&(h(0,"mat-icon",1),b(1,"translate"),p(2,"clear"),u()),2&t){const e=v();C("ngClass",_t(5,Tp,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",y(1,3,"vpn.server-conditions.blocked-info"))}}function pOe(t,n){if(1&t&&(h(0,"mat-icon",2),b(1,"translate"),p(2,"star"),u()),2&t){const e=v();C("ngClass",_t(5,Tp,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",y(1,3,"vpn.server-conditions.favorite-info"))}}function mOe(t,n){if(1&t&&(h(0,"mat-icon",0),b(1,"translate"),p(2,"history"),u()),2&t){const e=v();C("ngClass",_t(5,Tp,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",y(1,3,"vpn.server-conditions.history-info"))}}function gOe(t,n){if(1&t&&(h(0,"mat-icon",0),b(1,"translate"),p(2,"lock_outlined"),u()),2&t){const e=v();C("ngClass",_t(5,Tp,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",y(1,3,"vpn.server-conditions.has-password-info"))}}function _Oe(t,n){if(1&t&&(p(0),h(1,"mat-icon",3),p(2,"fiber_manual_record"),u(),p(3)),2&t){const e=v();E(" ",e.customName," "),d(),C("inline",!0),d(2),E(" ",e.name,"\n")}}function bOe(t,n){1&t&&p(0),2&t&&E(" ",v().customName,"\n")}function vOe(t,n){1&t&&p(0),2&t&&E(" ",v().name,"\n")}function yOe(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,v().defaultName),"\n")}let g6=(()=>{class t{constructor(){this.isCurrentServer=!1,this.isFavorite=!1,this.isBlocked=!1,this.isInHistory=!1,this.hasPassword=!1,this.name="",this.customName="",this.pk="",this.defaultName="",this.adjustIconsForBigText=!1}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=re({type:t,selectors:[["app-vpn-server-name"]],inputs:{isCurrentServer:"isCurrentServer",isFavorite:"isFavorite",isBlocked:"isBlocked",isInHistory:"isInHistory",hasPassword:"hasPassword",name:"name",customName:"customName",pk:"pk",defaultName:"defaultName",adjustIconsForBigText:"adjustIconsForBigText"},standalone:!1,decls:9,vars:9,consts:[[1,"server-condition-icon",3,"ngClass","inline","matTooltip"],[1,"server-condition-icon","red-clear-text",3,"ngClass","inline","matTooltip"],[1,"server-condition-icon","yellow-clear-text",3,"ngClass","inline","matTooltip"],[1,"name-separator",3,"inline"]],template:function(i,o){1&i&&(x(0,hOe,3,8,"mat-icon",0),x(1,fOe,3,8,"mat-icon",1),x(2,pOe,3,8,"mat-icon",2),x(3,mOe,3,8,"mat-icon",0),x(4,gOe,3,8,"mat-icon",0),x(5,_Oe,4,3),x(6,bOe,1,1),x(7,vOe,1,1),x(8,yOe,2,3)),2&i&&(S(o.isCurrentServer?0:-1),d(),S(o.isBlocked?1:-1),d(),S(o.isFavorite?2:-1),d(),S(o.isInHistory?3:-1),d(),S(o.hasPassword?4:-1),d(),S(!o.customName||!o.name||o.pk&&o.name===o.pk?-1:5),d(),S((!o.name||o.pk&&o.name===o.pk)&&o.customName?6:-1),d(),S(!o.name||o.pk&&o.name===o.pk||o.customName?-1:7),d(),S(o.name&&(!o.pk||o.name!==o.pk)||o.customName?-1:8))},dependencies:[$t,We,Kt,xe],styles:[".server-condition-icon[_ngcontent-%COMP%]{font-size:14px!important;line-height:14px!important;margin-right:3px;position:relative;width:14px!important;-webkit-user-select:none;user-select:none;cursor:default}.small-text-icon[_ngcontent-%COMP%]{top:2px}.big-text-icon[_ngcontent-%COMP%]{top:0}.name-separator[_ngcontent-%COMP%]{display:inline!important;font-size:8px!important;opacity:.5!important}"]})}}return t})();const _6=()=>["vpn.title"],b6=t=>({"disabled-button":t}),COe=(t,n)=>({custom:t,original:n}),Tu=t=>({showValue:!0,showUnit:!0,showPerSecond:!0,limitDecimals:!0,useBits:t}),v6=t=>({showValue:!0,showUnit:!0,showPerSecond:!0,useBits:t}),y6=t=>({showValue:!0,showUnit:!0,useBits:t}),Kv=t=>({time:t});function wOe(t,n){if(1&t&&(h(0,"div",0)(1,"div"),B(2,"app-top-bar",2),u(),B(3,"app-loading-indicator"),u()),2&t){const e=v();d(2),C("titleParts",Ct(5,_6))("tabsData",e.tabsData)("selectedTabIndex",0)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk)}}function xOe(t,n){1&t&&B(0,"mat-spinner",22),2&t&&C("diameter",40)}function SOe(t,n){1&t&&(h(0,"mat-icon",23),p(1,"power_settings_new"),u()),2&t&&C("inline",!0)}function kOe(t,n){if(1&t){const e=oe();h(0,"div",28),B(1,"div",29),u(),h(2,"div",30)(3,"div",31),B(4,"app-vpn-server-name",32),u(),h(5,"div",33),B(6,"app-copy-to-clipboard-text",34),u()(),h(7,"div",35),B(8,"div"),u(),h(9,"div",36)(10,"mat-icon",37),b(11,"translate"),F("click",function(){return j(e),U(v(3).openServerOptions())}),p(12,"settings"),u()()}if(2&t){const e=v(3);d(),no("background-image: url('assets/img/big-flags/"+e.currentRemoteServer.countryCode.toLocaleLowerCase()+".png');"),C("matTooltip",e.getCountryName(e.currentRemoteServer.countryCode)),d(3),C("isFavorite",e.currentRemoteServer.flag===e.serverFlags.Favorite)("isBlocked",e.currentRemoteServer.flag===e.serverFlags.Blocked)("hasPassword",e.currentRemoteServer.usedWithPassword)("name",e.currentRemoteServer.name)("pk",e.currentRemoteServer.pk)("customName",e.currentRemoteServer.customName),d(2),C("shortSimple",!0)("text",e.currentRemoteServer.pk),d(4),C("inline",!0)("matTooltip",y(11,13,"vpn.server-options.tooltip"))}}function DOe(t,n){1&t&&(h(0,"div",25),p(1),b(2,"translate"),u()),2&t&&(d(),M(y(2,1,"vpn.status-page.no-server")))}function MOe(t,n){if(1&t&&(h(0,"div",26)(1,"mat-icon",23),p(2,"info_outline"),u(),p(3),b(4,"translate"),u()),2&t){const e=v(3);d(),C("inline",!0),d(2),E(" ",pe(4,2,e.getNoteVar(),_t(5,COe,e.currentRemoteServer.personalNote,e.currentRemoteServer.note))," ")}}function TOe(t,n){if(1&t&&(h(0,"div",27)(1,"mat-icon",23),p(2,"cancel"),u(),p(3),b(4,"translate"),u()),2&t){const e=v(3);d(),C("inline",!0),d(2),gt(" ",y(4,3,"vpn.status-page.last-error")," ",e.backendState.vpnClientAppData.lastErrorMsg," ")}}function EOe(t,n){if(1&t){const e=oe();h(0,"div",6)(1,"div",9)(2,"div",11),p(3),b(4,"translate"),u(),h(5,"div")(6,"div",18),F("click",function(){return j(e),U(v(2).start())}),h(7,"div",19),B(8,"div",20),u(),h(9,"div",19),B(10,"div",21),u(),x(11,xOe,1,1,"mat-spinner",22),x(12,SOe,2,1,"mat-icon",23),u()(),h(13,"div",24),x(14,kOe,13,15),x(15,DOe,3,3,"div",25),u(),h(16,"div"),x(17,MOe,5,8,"div",26),u(),h(18,"div"),x(19,TOe,5,5,"div",27),u()()()}if(2&t){const e=v(2);d(3),M(y(4,8,"vpn.status-page.start-title")),d(3),C("ngClass",se(10,b6,e.showBusy)),d(5),S(e.showBusy?11:-1),d(),S(e.showBusy?-1:12),d(2),S(e.currentRemoteServer?14:-1),d(),S(e.currentRemoteServer?-1:15),d(2),S(e.currentRemoteServer&&(e.currentRemoteServer.note||e.currentRemoteServer.personalNote)?17:-1),d(2),S(e.backendState&&e.backendState.vpnClientAppData&&e.backendState.vpnClientAppData.lastErrorMsg?19:-1)}}function POe(t,n){if(1&t&&(h(0,"div",44)(1,"mat-icon",23),p(2,"cancel"),u(),p(3),b(4,"translate"),u()),2&t){const e=v(3);d(),C("inline",!0),d(2),gt(" ",y(4,3,"vpn.status-page.last-error")," ",e.backendState.vpnClientAppData.connectionData.error," ")}}function IOe(t,n){1&t&&(h(0,"div"),B(1,"mat-spinner",22),u()),2&t&&(d(),C("diameter",24))}function OOe(t,n){1&t&&(h(0,"mat-icon",23),p(1,"power_settings_new"),u()),2&t&&C("inline",!0)}function AOe(t,n){if(1&t){const e=oe();h(0,"div",7)(1,"div",9)(2,"div",38)(3,"div",39)(4,"mat-icon",23),p(5,"timer"),u(),h(6,"span"),p(7),u()()(),h(8,"div",40),p(9),b(10,"translate"),u(),h(11,"div",41)(12,"div",42),p(13),b(14,"translate"),u(),B(15,"div"),u(),h(16,"div",43),p(17),b(18,"translate"),u(),x(19,POe,5,5,"div",44),h(20,"div",45)(21,"div",46),b(22,"translate"),h(23,"div",47),B(24,"app-line-chart",48),u(),h(25,"div",49)(26,"div",50)(27,"div",51),p(28),b(29,"autoScale"),u(),B(30,"div",52),u()(),h(31,"div",49)(32,"div",53)(33,"div",51),p(34),b(35,"autoScale"),u(),B(36,"div",52),u()(),h(37,"div",49)(38,"div",54)(39,"div",51),p(40),b(41,"autoScale"),u()()(),h(42,"div",55)(43,"mat-icon",56),p(44,"keyboard_backspace"),u(),h(45,"div",57),p(46),b(47,"autoScale"),u(),h(48,"div",58),p(49),b(50,"autoScale"),b(51,"translate"),u()()(),h(52,"div",46),b(53,"translate"),h(54,"div",47),B(55,"app-line-chart",48),u(),h(56,"div",59)(57,"div",50)(58,"div",51),p(59),b(60,"autoScale"),u(),B(61,"div",52),u()(),h(62,"div",49)(63,"div",53)(64,"div",51),p(65),b(66,"autoScale"),u(),B(67,"div",52),u()(),h(68,"div",49)(69,"div",54)(70,"div",51),p(71),b(72,"autoScale"),u()()(),h(73,"div",55)(74,"mat-icon",60),p(75,"keyboard_backspace"),u(),h(76,"div",57),p(77),b(78,"autoScale"),u(),h(79,"div",58),p(80),b(81,"autoScale"),b(82,"translate"),u()()()(),h(83,"div",61)(84,"div",62),b(85,"translate"),h(86,"div",47),B(87,"app-line-chart",63),u(),h(88,"div",59)(89,"div",50)(90,"div",51),p(91),b(92,"translate"),u(),B(93,"div",52),u()(),h(94,"div",49)(95,"div",53)(96,"div",51),p(97),b(98,"translate"),u(),B(99,"div",52),u()(),h(100,"div",49)(101,"div",54)(102,"div",51),p(103),b(104,"translate"),u()()(),h(105,"div",55)(106,"mat-icon",23),p(107,"swap_horiz"),u(),h(108,"div"),p(109),b(110,"translate"),u()()()(),h(111,"div",64),F("click",function(){return j(e),U(v(2).stop())}),h(112,"div",65)(113,"div",66),x(114,IOe,2,1,"div"),x(115,OOe,2,1,"mat-icon",23),h(116,"span"),p(117),b(118,"translate"),u()()()()()()}if(2&t){const e=v(2);d(4),C("inline",!0),d(3),M(e.connectionTimeString),d(2),M(y(10,58,"vpn.connection-info.state-title")),d(4),M(y(14,60,e.currentStateText)),d(2),Ze("state-line "+e.currentStateLineClass),d(2),M(y(18,62,e.currentStateText+"-info")),d(2),S(e.backendState&&e.backendState.vpnClientAppData&&e.backendState.vpnClientAppData.connectionData&&e.backendState.vpnClientAppData.connectionData.error?19:-1),d(2),C("matTooltip",y(22,64,"vpn.status-page.upload-info")),d(3),C("animated",!1)("data",e.sentHistory)("min",e.minUploadInGraph)("max",e.maxUploadInGraph),d(4),E(" ",pe(29,66,e.maxUploadInGraph,se(118,Tu,e.showSpeedsInBits))," "),d(2),no("margin-top: "+e.graphsTopInternalMargin+"px;"),d(4),E(" ",pe(35,69,e.midUploadInGraph,se(120,Tu,e.showSpeedsInBits))," "),d(2),no("margin-top: "+e.graphsTopInternalMargin/2+"px;"),d(4),E(" ",pe(41,72,e.minUploadInGraph,se(122,Tu,e.showSpeedsInBits))," "),d(3),C("inline",!0),d(3),M(pe(47,75,e.uploadSpeed,se(124,v6,e.showSpeedsInBits))),d(3),gt(" ",pe(50,78,e.totalUploaded,se(126,y6,e.showTotalsInBits))," ",y(51,81,"vpn.status-page.total-data-label")," "),d(3),C("matTooltip",y(53,83,"vpn.status-page.download-info")),d(3),C("animated",!1)("data",e.receivedHistory)("min",e.minDownloadInGraph)("max",e.maxDownloadInGraph),d(4),E(" ",pe(60,85,e.maxDownloadInGraph,se(128,Tu,e.showSpeedsInBits))," "),d(2),no("margin-top: "+e.graphsTopInternalMargin+"px;"),d(4),E(" ",pe(66,88,e.midDownloadInGraph,se(130,Tu,e.showSpeedsInBits))," "),d(2),no("margin-top: "+e.graphsTopInternalMargin/2+"px;"),d(4),E(" ",pe(72,91,e.minDownloadInGraph,se(132,Tu,e.showSpeedsInBits))," "),d(3),C("inline",!0),d(3),M(pe(78,94,e.downloadSpeed,se(134,v6,e.showSpeedsInBits))),d(3),gt(" ",pe(81,97,e.totalDownloaded,se(136,y6,e.showTotalsInBits))," ",y(82,100,"vpn.status-page.total-data-label")," "),d(4),C("matTooltip",y(85,102,"vpn.status-page.latency-info")),d(3),C("animated",!1)("data",e.latencyHistory)("min",e.minLatencyInGraph)("max",e.maxLatencyInGraph),d(4),E(" ",pe(92,104,"common."+e.getLatencyValueString(e.maxLatencyInGraph),se(138,Kv,e.getPrintableLatency(e.maxLatencyInGraph)))," "),d(2),no("margin-top: "+e.graphsTopInternalMargin+"px;"),d(4),E(" ",pe(98,107,"common."+e.getLatencyValueString(e.midLatencyInGraph),se(140,Kv,e.getPrintableLatency(e.midLatencyInGraph)))," "),d(2),no("margin-top: "+e.graphsTopInternalMargin/2+"px;"),d(4),E(" ",pe(104,110,"common."+e.getLatencyValueString(e.minLatencyInGraph),se(142,Kv,e.getPrintableLatency(e.minLatencyInGraph)))," "),d(3),C("inline",!0),d(3),M(pe(110,113,"common."+e.getLatencyValueString(e.latency),se(144,Kv,e.getPrintableLatency(e.latency)))),d(2),C("ngClass",se(146,b6,e.showBusy)),d(3),S(e.showBusy?114:-1),d(),S(e.showBusy?-1:115),d(2),M(y(118,116,"vpn.status-page.disconnect"))}}function ROe(t,n){1&t&&p(0),2&t&&E(" ",v(3).currentIp," ")}function FOe(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"common.unknown")," ")}function NOe(t,n){1&t&&B(0,"mat-spinner",22),2&t&&C("diameter",20)}function LOe(t,n){1&t&&(h(0,"mat-icon",67),b(1,"translate"),p(2,"warning"),u()),2&t&&C("inline",!0)("matTooltip",y(1,2,"vpn.status-page.data.ip-problem-info"))}function BOe(t,n){if(1&t){const e=oe();h(0,"mat-icon",69),b(1,"translate"),F("click",function(){return j(e),U(v(3).getIp())}),p(2,"refresh"),u()}2&t&&C("inline",!0)("matTooltip",y(1,2,"vpn.status-page.data.ip-refresh-info"))}function VOe(t,n){if(1&t&&(h(0,"div",12),x(1,ROe,1,1),x(2,FOe,2,3),x(3,NOe,1,1,"mat-spinner",22),x(4,LOe,3,4,"mat-icon",67),x(5,BOe,3,4,"mat-icon",68),u()),2&t){const e=v(2);d(),S(e.currentIp?1:-1),d(),S(e.currentIp||e.loadingCurrentIp?-1:2),d(),S(e.loadingCurrentIp?3:-1),d(),S(e.problemGettingIp?4:-1),d(),S(e.loadingCurrentIp?-1:5)}}function HOe(t,n){1&t&&(h(0,"div",12),p(1),b(2,"translate"),u()),2&t&&(d(),E(" ",y(2,1,"vpn.status-page.data.unavailable")," "))}function jOe(t,n){1&t&&p(0),2&t&&E(" ",v(3).ipCountry," ")}function UOe(t,n){1&t&&(p(0),b(1,"translate")),2&t&&E(" ",y(1,1,"common.unknown")," ")}function zOe(t,n){1&t&&B(0,"mat-spinner",22),2&t&&C("diameter",20)}function $Oe(t,n){1&t&&(h(0,"mat-icon",67),b(1,"translate"),p(2,"warning"),u()),2&t&&C("inline",!0)("matTooltip",y(1,2,"vpn.status-page.data.ip-country-problem-info"))}function WOe(t,n){if(1&t&&(h(0,"div",12),x(1,jOe,1,1),x(2,UOe,2,3),x(3,zOe,1,1,"mat-spinner",22),x(4,$Oe,3,4,"mat-icon",67),u()),2&t){const e=v(2);d(),S(e.ipCountry?1:-1),d(),S(e.ipCountry||e.loadingCurrentIp?-1:2),d(),S(e.loadingCurrentIp?3:-1),d(),S(e.problemGettingIp?4:-1)}}function GOe(t,n){1&t&&(h(0,"div",12),p(1),b(2,"translate"),u()),2&t&&(d(),E(" ",y(2,1,"vpn.status-page.data.unavailable")," "))}function qOe(t,n){if(1&t){const e=oe();h(0,"div")(1,"div",11),p(2),b(3,"translate"),u(),h(4,"div",12),B(5,"app-vpn-server-name",70),h(6,"mat-icon",69),b(7,"translate"),F("click",function(){return j(e),U(v(2).openServerOptions())}),p(8,"settings"),u()()()}if(2&t){const e=v(2);d(2),M(y(3,10,"vpn.status-page.data.server")),d(3),C("isFavorite",e.currentRemoteServer.flag===e.serverFlags.Favorite)("isBlocked",e.currentRemoteServer.flag===e.serverFlags.Blocked)("hasPassword",e.currentRemoteServer.usedWithPassword)("adjustIconsForBigText",!0)("name",e.currentRemoteServer.name)("pk",e.currentRemoteServer.pk)("customName",e.currentRemoteServer.customName),d(),C("inline",!0)("matTooltip",y(7,12,"vpn.server-options.tooltip"))}}function KOe(t,n){1&t&&B(0,"div",13)}function YOe(t,n){if(1&t&&(h(0,"div")(1,"div",11),p(2),b(3,"translate"),u(),h(4,"div",16),p(5),u()()),2&t){const e=v(2);d(2),M(y(3,2,"vpn.status-page.data.server-note")),d(3),E(" ",e.currentRemoteServer.personalNote," ")}}function XOe(t,n){1&t&&B(0,"div",13)}function ZOe(t,n){if(1&t&&(h(0,"div")(1,"div",11),p(2),b(3,"translate"),u(),h(4,"div",16),p(5),u()()),2&t){const e=v(2);d(2),M(y(3,2,"vpn.status-page.data."+(e.currentRemoteServer.personalNote?"original-":"")+"server-note")),d(3),E(" ",e.currentRemoteServer.note," ")}}function QOe(t,n){1&t&&B(0,"div",13)}function JOe(t,n){if(1&t&&(h(0,"div")(1,"div",11),p(2),b(3,"translate"),u(),h(4,"div",16),B(5,"app-copy-to-clipboard-text",17),u()()),2&t){const e=v(2);d(2),M(y(3,2,"vpn.status-page.data.remote-pk")),d(3),C("text",e.currentRemoteServer.pk)}}function eAe(t,n){1&t&&B(0,"div",13)}function tAe(t,n){if(1&t&&(h(0,"div",1)(1,"div",3)(2,"div",4),B(3,"app-top-bar",2),u()(),h(4,"div",5),x(5,EOe,20,12,"div",6),x(6,AOe,119,148,"div",7),h(7,"div",8)(8,"div",9)(9,"div",10)(10,"div")(11,"div",11),p(12),b(13,"translate"),u(),x(14,VOe,6,5,"div",12),x(15,HOe,3,3,"div",12),u(),B(16,"div",13),h(17,"div")(18,"div",11),p(19),b(20,"translate"),u(),x(21,WOe,5,4,"div",12),x(22,GOe,3,3,"div",12),u(),B(23,"div",14)(24,"div",15)(25,"div",14),x(26,qOe,9,14,"div"),x(27,KOe,1,0,"div",13),x(28,YOe,6,4,"div"),x(29,XOe,1,0,"div",13),x(30,ZOe,6,4,"div"),x(31,QOe,1,0,"div",13),x(32,JOe,6,4,"div"),x(33,eAe,1,0,"div",13),h(34,"div")(35,"div",11),p(36),b(37,"translate"),u(),h(38,"div",16),B(39,"app-copy-to-clipboard-text",17),u()()()()()()()),2&t){const e=v();d(3),C("titleParts",Ct(29,_6))("tabsData",e.tabsData)("selectedTabIndex",0)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk),d(2),S(e.showStarted?-1:5),d(),S(e.showStarted?6:-1),d(6),M(y(13,23,"vpn.status-page.data.ip")),d(2),S(e.ipInfoAllowed?14:-1),d(),S(e.ipInfoAllowed?-1:15),d(4),M(y(20,25,"vpn.status-page.data.country")),d(2),S(e.ipInfoAllowed?21:-1),d(),S(e.ipInfoAllowed?-1:22),d(4),S(e.showStarted&&e.currentRemoteServer?26:-1),d(),S(e.showStarted&&e.currentRemoteServer?27:-1),d(),S(e.showStarted&&e.currentRemoteServer&&e.currentRemoteServer.personalNote?28:-1),d(),S(e.showStarted&&e.currentRemoteServer&&e.currentRemoteServer.personalNote?29:-1),d(),S(e.showStarted&&e.currentRemoteServer&&e.currentRemoteServer.note?30:-1),d(),S(e.showStarted&&e.currentRemoteServer&&e.currentRemoteServer.note?31:-1),d(),S(e.showStarted&&e.currentRemoteServer?32:-1),d(),S(e.showStarted&&e.currentRemoteServer?33:-1),d(3),M(y(37,27,"vpn.status-page.data.local-pk")),d(3),C("text",e.currentLocalPk)}}let nAe=(()=>{class t extends pn{constructor(e,i,o,r,s,a){super(),this.vpnClientService=e,this.vpnSavedDataService=i,this.snackbarService=o,this.route=r,this.dialog=s,this.router=a,this.persistentServerDataResponseKey="serv-dat-response",this.tabsData=hi.vpnTabsData,this.sentHistory=[0,0,0,0,0,0,0,0,0,0],this.receivedHistory=[0,0,0,0,0,0,0,0,0,0],this.latencyHistory=[0,0,0,0,0,0,0,0,0,0],this.minUploadInGraph=0,this.midUploadInGraph=0,this.maxUploadInGraph=0,this.minDownloadInGraph=0,this.midDownloadInGraph=0,this.maxDownloadInGraph=0,this.minLatencyInGraph=0,this.midLatencyInGraph=0,this.maxLatencyInGraph=0,this.graphsTopInternalMargin=Gv.topInternalMargin,this.connectionTimeString="00:00:00",this.calculatedSegs=-1,this.uploadSpeed=0,this.downloadSpeed=0,this.totalUploaded=0,this.totalDownloaded=0,this.latency=0,this.showSpeedsInBits=!0,this.showTotalsInBits=!1,this.loading=!0,this.showStartedLastValue=!1,this.showStarted=!1,this.lastAppState=null,this.showBusy=!1,this.stopRequested=!1,this.loadingCurrentIp=!0,this.problemGettingIp=!1,this.serverFlags=_n,this.ipInfoAllowed=this.vpnSavedDataService.getCheckIpSetting();const l=this.vpnSavedDataService.getDataUnitsSetting();l===Zo.OnlyBits?(this.showSpeedsInBits=!0,this.showTotalsInBits=!0):l===Zo.OnlyBytes?(this.showSpeedsInBits=!1,this.showTotalsInBits=!1):(this.showSpeedsInBits=!0,this.showTotalsInBits=!1)}ngOnInit(){return this.navigationsSubscription=this.route.paramMap.subscribe(e=>{e.has("key")&&(this.currentLocalPk=e.get("key"),hi.changeCurrentPk(this.currentLocalPk),this.tabsData=hi.vpnTabsData),setTimeout(()=>this.navigationsSubscription.unsubscribe()),this.startGettingData(!0),this.currentRemoteServerSubscription=this.vpnSavedDataService.currentServerObservable.subscribe(i=>{this.currentRemoteServer=i})}),super.ngOnInit()}startGettingData(e){const i=e?this.getLocalValue(this.persistentServerDataResponseKey):null;let o=this.vpnClientService.backendState;i&&(o=ae(JSON.parse(i.value))),this.dataSubscription=o.subscribe(r=>{if(i||this.saveLocalValue(this.persistentServerDataResponseKey,JSON.stringify(r)),r&&r.serviceState!==Ri.PerformingInitialCheck){if(this.backendState=r,r.publicIp?(this.currentIp=r.publicIp,this.problemGettingIp=!1):this.currentIp=null,this.ipCountry=r.countryName?r.countryName:null,this.loadingCurrentIp=!1,this.showStarted=r.vpnClientAppData.running||r.vpnClientAppData.appState!==an.Stopped,this.showStartedLastValue!==this.showStarted){for(let s=0;s<10;s++)this.receivedHistory[s]=0,this.sentHistory[s]=0,this.latencyHistory[s]=0;this.updateGraphLimits(),this.uploadSpeed=0,this.downloadSpeed=0,this.totalUploaded=0,this.totalDownloaded=0,this.latency=0}if(this.lastAppState=r.vpnClientAppData.appState,this.showStartedLastValue=this.showStarted,this.stopRequested?this.showStarted||(this.stopRequested=!1,this.showBusy=r.busy):this.showBusy=r.busy,r.vpnClientAppData.connectionData){for(let s=0;s<10;s++)this.receivedHistory[s]=r.vpnClientAppData.connectionData.downloadSpeedHistory[s],this.sentHistory[s]=r.vpnClientAppData.connectionData.uploadSpeedHistory[s],this.latencyHistory[s]=r.vpnClientAppData.connectionData.latencyHistory[s];this.updateGraphLimits(),this.uploadSpeed=r.vpnClientAppData.connectionData.uploadSpeed,this.downloadSpeed=r.vpnClientAppData.connectionData.downloadSpeed,this.totalUploaded=r.vpnClientAppData.connectionData.totalUploaded,this.totalDownloaded=r.vpnClientAppData.connectionData.totalDownloaded,this.latency=r.vpnClientAppData.connectionData.latency}r.vpnClientAppData.running&&r.vpnClientAppData.appState===an.Running&&r.vpnClientAppData.connectionData&&r.vpnClientAppData.connectionData.connectionDuration?(-1===this.calculatedSegs||r.vpnClientAppData.connectionData.connectionDuration>this.calculatedSegs+2||r.vpnClientAppData.connectionData.connectionDuration{this.calculatedSegs+=1,this.refreshConnectionTimeString()})):this.timeUpdateSubscription&&(this.timeUpdateSubscription.unsubscribe(),this.timeUpdateSubscription=null,this.calculatedSegs=-1,this.connectionTimeString="00:00:00"),this.loading=!1}i&&this.startGettingData(!1)})}refreshConnectionTimeString(){const e=this.calculatedSegs%60,i=Math.floor(this.calculatedSegs/60),o=i%60,r=Math.floor(i/60);this.connectionTimeString=String(r).padStart(2,"0")+":"+String(o).padStart(2,"0")+":"+String(e).padStart(2,"0")}ngOnDestroy(){this.dataSubscription.unsubscribe(),this.navigationsSubscription.unsubscribe(),this.currentRemoteServerSubscription.unsubscribe(),this.closeOperationSubscription(),this.timeUpdateSubscription&&this.timeUpdateSubscription.unsubscribe()}start(){if(!this.currentRemoteServer)return this.router.navigate(["vpn",this.currentLocalPk,"servers"]),void setTimeout(()=>this.snackbarService.showWarning("vpn.status-page.select-server-warning"),100);this.currentRemoteServer.flag!==_n.Blocked?(this.showBusy=!0,this.vpnClientService.start()):this.snackbarService.showError("vpn.starting-blocked-server-error")}stop(){if(!this.backendState.vpnClientAppData.killswitch)return void this.finishStoppingVpn();const e=Rt.createConfirmationDialog(this.dialog,"vpn.status-page.disconnect-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.closeModal(),this.finishStoppingVpn()})}finishStoppingVpn(){this.stopRequested=!0,this.showBusy=!0,this.vpnClientService.stop()}openServerOptions(){hi.openServerOptions(this.currentRemoteServer,this.router,this.vpnSavedDataService,this.vpnClientService,this.snackbarService,this.dialog).subscribe()}getCountryName(e){return es[e.toUpperCase()]?es[e.toUpperCase()]:e}getNoteVar(){return this.currentRemoteServer.note&&this.currentRemoteServer.personalNote?"vpn.server-list.notes-info":!this.currentRemoteServer.note&&this.currentRemoteServer.personalNote?this.currentRemoteServer.personalNote:this.currentRemoteServer.note}getLatencyValueString(e){return hi.getLatencyValueString(e)}getPrintableLatency(e){return hi.getPrintableLatency(e)}get currentStateText(){return this.backendState.vpnClientAppData.appState===an.Stopped?"vpn.connection-info.state-disconnected":this.backendState.vpnClientAppData.appState===an.Connecting?"vpn.connection-info.state-connecting":this.backendState.vpnClientAppData.appState===an.Running?"vpn.connection-info.state-connected":this.backendState.vpnClientAppData.appState===an.ShuttingDown?"vpn.connection-info.state-disconnecting":this.backendState.vpnClientAppData.appState===an.Reconnecting?"vpn.connection-info.state-reconnecting":void 0}get currentStateLineClass(){return this.backendState.vpnClientAppData.appState===an.Stopped?"red-line":this.backendState.vpnClientAppData.appState===an.Connecting?"yellow-line":this.backendState.vpnClientAppData.appState===an.Running?"green-line":"yellow-line"}closeOperationSubscription(){this.operationSubscription&&this.operationSubscription.unsubscribe()}updateGraphLimits(){const e=this.calculateGraphLimits(this.sentHistory);this.minUploadInGraph=e[0],this.midUploadInGraph=e[1],this.maxUploadInGraph=e[2];const i=this.calculateGraphLimits(this.receivedHistory);this.minDownloadInGraph=i[0],this.midDownloadInGraph=i[1],this.maxDownloadInGraph=i[2];const o=this.calculateGraphLimits(this.latencyHistory);this.minLatencyInGraph=o[0],this.midLatencyInGraph=o[1],this.maxLatencyInGraph=o[2]}calculateGraphLimits(e){let o=0;return e.forEach(s=>{s>o&&(o=s)}),0===o&&(o+=1),[0,new fv(o).minus(0).dividedBy(2).plus(0).decimalPlaces(1).toNumber(),o]}getIp(){this.ipInfoAllowed&&(this.vpnClientService.updateData(),this.snackbarService.showDone("common.refreshed"))}static{this.\u0275fac=function(i){return new(i||t)(O(hc),O(uc),O(ct),O(Ai),O(Ot),O(vt))}}static{this.\u0275cmp=re({type:t,selectors:[["app-vpn-status"]],standalone:!1,features:[be],decls:2,vars:2,consts:[[1,"d-flex","flex-column","h-100","w-100"],[1,"general-container"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton","localVpnKey"],[1,"row"],[1,"col-12"],[1,"row","flex-1"],[1,"col-7","column","left-area"],[1,"col-7","column","left-area-connected"],[1,"col-5","column","right-area"],[1,"column-container"],[1,"content-area"],[1,"title"],[1,"big-text"],[1,"margin"],[1,"big-margin"],[1,"separator"],[1,"small-text"],[3,"text"],[1,"start-button",3,"click","ngClass"],[1,"start-button-img-container"],[1,"start-button-img"],[1,"start-button-img","animated-button"],[3,"diameter"],[3,"inline"],[1,"current-server"],[1,"none"],[1,"lower-text","current-server-note"],[1,"lower-text","last-error"],[1,"flag"],[3,"matTooltip"],[1,"text-container"],[1,"top-line"],["defaultName","vpn.unnamed",3,"isFavorite","isBlocked","hasPassword","name","pk","customName"],[1,"bottom-line"],[3,"shortSimple","text"],[1,"icon-button-separator"],[1,"icon-button"],[1,"transparent-button","vpn-small-button",3,"click","inline","matTooltip"],[1,"time-container"],[1,"time-content"],[1,"state-title"],[1,"d-inline-block"],[1,"state-text"],[1,"state-explanation"],[1,"last-connected-error"],[1,"data-container"],[1,"rounded-elevated-box","data-box","big-box",3,"matTooltip"],[1,"chart-container"],["height","140","color","#00000080",3,"animated","data","min","max"],[1,"chart-label"],[1,"label-container","label-top"],[1,"label"],[1,"line"],[1,"label-container","label-mid"],[1,"label-container","label-bottom"],[1,"content"],[1,"upload",3,"inline"],[1,"speed"],[1,"total"],[1,"chart-label","top-chart-label"],[1,"download",3,"inline"],[1,"latency-container"],[1,"rounded-elevated-box","data-box","small-box",3,"matTooltip"],["height","50","color","#00000080",3,"animated","data","min","max"],[1,"disconnect-button",3,"click","ngClass"],[1,"disconnect-button-container"],[1,"d-inline-flex"],[1,"small-icon","blinking",3,"inline","matTooltip"],[1,"big-icon","transparent-button","vpn-small-button",3,"inline","matTooltip"],[1,"big-icon","transparent-button","vpn-small-button",3,"click","inline","matTooltip"],["defaultName","vpn.unnamed",3,"isFavorite","isBlocked","hasPassword","adjustIconsForBigText","name","pk","customName"]],template:function(i,o){1&i&&(x(0,wOe,4,6,"div",0),x(1,tAe,40,30,"div",1)),2&i&&(S(o.loading?0:-1),d(),S(o.loading?-1:1))},dependencies:[$t,We,Kt,so,op,Gv,Yr,Mr,g6,xe,rp],styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .bottom-line[_ngcontent-%COMP%], .left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .top-line[_ngcontent-%COMP%], .left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .none[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}.general-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%}.column[_ngcontent-%COMP%]{height:100%;display:flex;align-items:center;padding-top:40px;padding-bottom:20px}.column[_ngcontent-%COMP%] .column-container[_ngcontent-%COMP%]{width:100%;text-align:center}.left-area-connected[_ngcontent-%COMP%] .time-container[_ngcontent-%COMP%]{background:#000000b3;border-radius:100px;font-size:.8rem;padding:8px 15px;display:inline-block}.left-area-connected[_ngcontent-%COMP%] .time-container[_ngcontent-%COMP%] .time-content[_ngcontent-%COMP%]{color:#bbb}.left-area-connected[_ngcontent-%COMP%] .time-container[_ngcontent-%COMP%] .time-content[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:10px}.left-area-connected[_ngcontent-%COMP%] .time-container[_ngcontent-%COMP%] .time-content[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{vertical-align:top}.left-area-connected[_ngcontent-%COMP%] .state-title[_ngcontent-%COMP%]{font-size:1rem;color:#bbb}.left-area-connected[_ngcontent-%COMP%] .state-text[_ngcontent-%COMP%]{font-size:2rem;text-transform:uppercase}.left-area-connected[_ngcontent-%COMP%] .state-line[_ngcontent-%COMP%]{height:1px;width:100%;margin-bottom:5px}.left-area-connected[_ngcontent-%COMP%] .green-line[_ngcontent-%COMP%]{background-color:#2ecc54}.left-area-connected[_ngcontent-%COMP%] .yellow-line[_ngcontent-%COMP%]{background-color:#d48b05}.left-area-connected[_ngcontent-%COMP%] .red-line[_ngcontent-%COMP%]{background-color:#da3439}.left-area-connected[_ngcontent-%COMP%] .state-explanation[_ngcontent-%COMP%]{font-size:.7rem}.left-area-connected[_ngcontent-%COMP%] .last-connected-error[_ngcontent-%COMP%]{margin-top:15px;font-size:.8rem;color:#ff393f}.left-area-connected[_ngcontent-%COMP%] .last-connected-error[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:2px;display:inline;-webkit-user-select:none;user-select:none}.left-area-connected[_ngcontent-%COMP%] .data-container[_ngcontent-%COMP%]{margin-top:20px}.left-area-connected[_ngcontent-%COMP%] .latency-container[_ngcontent-%COMP%]{margin-bottom:20px}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%]{cursor:default;display:inline-block}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-container[_ngcontent-%COMP%]{height:0px;position:relative;top:-3px;left:-3px}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%]{height:0px;text-align:left}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%]{position:relative;top:-3px;left:-3px;display:flex;margin-right:-6px}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{font-size:.6rem;margin-left:5px;opacity:.2}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%] .line[_ngcontent-%COMP%]{height:1px;width:10px;background-color:#fff;flex-grow:1;opacity:.1;margin-left:10px;margin-right:5px}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-top[_ngcontent-%COMP%]{align-items:flex-start}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-mid[_ngcontent-%COMP%]{align-items:center}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-bottom[_ngcontent-%COMP%]{align-items:flex-end;position:relative;top:-6px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%]{width:170px;height:140px;margin:5px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .chart-container[_ngcontent-%COMP%]{width:170px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]{width:170px;height:140px;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;padding-bottom:20px;position:relative;top:-3px;left:-3px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:25px;transform:rotate(-90deg);width:40px;height:40px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .download[_ngcontent-%COMP%]{transform:rotate(-90deg)}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .upload[_ngcontent-%COMP%]{transform:rotate(90deg)}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .speed[_ngcontent-%COMP%]{font-size:.875rem}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .total[_ngcontent-%COMP%]{font-size:.8rem;color:#bbb}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%]{height:140px}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%]{width:352px;height:50px}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%] .chart-container[_ngcontent-%COMP%]{width:352px}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]{display:inline-flex;align-items:center;height:100%;font-size:.875rem;position:relative}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px;height:25px;margin-right:5px}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%]{height:50px}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%]{background:linear-gradient(#940000,#7b0000) no-repeat!important;box-shadow:5px 5px 7px #00000080;width:352px;font-size:24px;display:inline-block;border-radius:10px;overflow:hidden;cursor:pointer;-webkit-user-select:none;user-select:none}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%]:hover{background:linear-gradient(#a10000,#900000) no-repeat!important}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%]:active{transform:scale(.98);box-shadow:0 0 7px #00000080}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%]{background-image:url(/assets/img/background-pattern.png);padding:12px}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:10px;align-self:center}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%]{display:inline-block;position:relative;top:4px;margin-right:10px;align-self:center}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{position:relative;top:-2px;line-height:1.7}.left-area[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-size:1.25rem;font-weight:700;text-align:center;text-transform:uppercase}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%]{text-align:center;margin:10px 0;cursor:pointer;display:inline-block;width:140px;height:140px}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%]:active mat-icon[_ngcontent-%COMP%]{transform:scale(.9)}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%]:hover .start-button-img-container[_ngcontent-%COMP%]{opacity:1}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{text-shadow:0px 0px 5px white}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .start-button-img-container[_ngcontent-%COMP%]{width:0px;height:0px;opacity:.7}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .start-button-img-container[_ngcontent-%COMP%] .start-button-img[_ngcontent-%COMP%]{display:inline-block;background-image:url(/assets/img/start-button.png);background-size:contain;width:140px;height:140px}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .start-button-img-container[_ngcontent-%COMP%] .animated-button[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_button-animation 4s linear infinite;pointer-events:none}@keyframes _ngcontent-%COMP%_button-animation{0%{transform:scale(1.5);opacity:0}25%{transform:scale(1);opacity:.8}50%{transform:scale(1.5);opacity:0}to{transform:scale(1.5);opacity:0}}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{line-height:140px;font-size:50px;-webkit-user-select:none;user-select:none;text-shadow:0px 0px 2px white}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%]{display:inline-block;margin-top:50px;opacity:.5}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%]{display:inline-flex;background:#000000b3;border-radius:10px;padding:10px 15px;max-width:280px;text-align:left}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .none[_ngcontent-%COMP%]{font-size:.875rem}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .flag[_ngcontent-%COMP%]{background-image:url(/assets/img/big-flags/unknown.png);width:20px;height:15px;background-size:contain;align-self:center;flex-shrink:0;margin-right:12px}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .flag[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{width:20px;height:15px;background-size:contain}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]{overflow:hidden}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .top-line[_ngcontent-%COMP%]{font-size:.875rem}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .bottom-line[_ngcontent-%COMP%]{font-size:.7rem;color:#bbb}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .icon-button-separator[_ngcontent-%COMP%]{display:flex;align-items:center}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .icon-button-separator[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{width:1px;height:30px;background:#ffffff26;margin-left:12px}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .icon-button[_ngcontent-%COMP%]{font-size:22px;line-height:1;display:flex;align-items:center;padding-left:12px}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .icon-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{cursor:pointer}.left-area[_ngcontent-%COMP%] .lower-text[_ngcontent-%COMP%]{display:inline-block;max-width:280px;margin-top:10px}.left-area[_ngcontent-%COMP%] .lower-text[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:2px;display:inline;-webkit-user-select:none;user-select:none}.left-area[_ngcontent-%COMP%] .current-server-note[_ngcontent-%COMP%]{font-size:.8rem;color:#bbb}.left-area[_ngcontent-%COMP%] .last-error[_ngcontent-%COMP%]{font-size:.8rem;color:#ff393f}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%]{background:#3d67a226;padding:30px;text-align:left;max-width:420px;opacity:.95}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-size:.8rem;color:#bbb}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%]{font-size:1.25rem;overflow-wrap:break-word}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%]{display:inline-block;opacity:.5;margin-left:5px;position:relative;top:2px}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%] .small-icon[_ngcontent-%COMP%]{color:#d48b05;opacity:.7;font-size:.875rem;cursor:default;margin-left:5px}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%] .big-icon[_ngcontent-%COMP%]{font-size:1.125rem;margin-left:5px;position:relative;top:2px;line-height:1}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .small-text[_ngcontent-%COMP%]{font-size:.7rem;margin-top:1px;overflow-wrap:break-word}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .margin[_ngcontent-%COMP%]{height:12px}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-margin[_ngcontent-%COMP%]{height:15px}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .separator[_ngcontent-%COMP%]{height:1px;width:100%;background:#ffffff26}.disabled-button[_ngcontent-%COMP%]{opacity:.5;pointer-events:none}"]})}}return t})(),SD=(()=>{class t{set lastError(e){this.lastErrorInternal=e}constructor(e){this.router=e}canActivate(e,i){return this.checkIfCanActivate()}canActivateChild(e,i){return this.checkIfCanActivate()}checkIfCanActivate(){return this.lastErrorInternal?(this.router.navigate(["vpn","unavailable"],{queryParams:{problem:this.lastErrorInternal}}),ae(!1)):ae(!0)}static{this.\u0275fac=function(i){return new(i||t)(ce(vt))}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();var Ha=function(t){return t.UnableToConnectWithTheVpnClientApp="unavailable",t.NoLocalVisorPkProvided="pk",t.InvalidStorageState="storage",t.LocalVisorPkChangedDuringUsage="pkChange",t}(Ha||{});let iAe=(()=>{class t extends pn{constructor(e,i,o){super(),this.route=e,this.vpnAuthGuardService=i,this.vpnClientService=o,this.problem=null,this.navigationsSubscription=this.route.queryParamMap.subscribe(r=>{this.problem=r.get("problem"),this.problem||(this.problem=Ha.UnableToConnectWithTheVpnClientApp),this.vpnAuthGuardService.lastError=this.problem,this.vpnClientService.stopContinuallyUpdatingData(),setTimeout(()=>this.navigationsSubscription.unsubscribe())})}getTitle(){return this.problem===Ha.NoLocalVisorPkProvided?"vpn.error-page.text-pk":this.problem===Ha.InvalidStorageState?"vpn.error-page.text-storage":this.problem===Ha.LocalVisorPkChangedDuringUsage?"vpn.error-page.text-pk-change":"vpn.error-page.text"}getInfo(){return this.problem===Ha.NoLocalVisorPkProvided?"vpn.error-page.more-info-pk":this.problem===Ha.InvalidStorageState?"vpn.error-page.more-info-storage":this.problem===Ha.LocalVisorPkChangedDuringUsage?"vpn.error-page.more-info-pk-change":"vpn.error-page.more-info"}static{this.\u0275fac=function(i){return new(i||t)(O(Ai),O(SD),O(hc))}}static{this.\u0275cmp=re({type:t,selectors:[["app-vpn-error"]],standalone:!1,features:[be],decls:12,vars:7,consts:[[1,"main-container"],[1,"text-container"],[1,"inner-container"],[1,"error-icon"],[3,"inline"],[1,"more-info"]],template:function(i,o){1&i&&(h(0,"div",0)(1,"div",1)(2,"div",2)(3,"div",3)(4,"mat-icon",4),p(5,"error_outline"),u()(),h(6,"div"),p(7),b(8,"translate"),u(),h(9,"div",5),p(10),b(11,"translate"),u()()()()),2&i&&(d(4),C("inline",!0),d(3),M(y(8,3,o.getTitle())),d(3),M(y(11,5,o.getInfo())))},dependencies:[We,xe],styles:[".main-container[_ngcontent-%COMP%]{height:100%;display:flex}.main-container[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]{width:100%;align-self:center;text-align:center}.main-container[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .inner-container[_ngcontent-%COMP%]{max-width:550px;display:inline-block;font-size:1.25rem}.main-container[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .inner-container[_ngcontent-%COMP%] .error-icon[_ngcontent-%COMP%]{font-size:80px}.main-container[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .inner-container[_ngcontent-%COMP%] .more-info[_ngcontent-%COMP%]{font-size:.8rem;opacity:.75;margin-top:10px}"]})}}return t})();const oAe=["button"],rAe=["firstInput"],sAe=t=>({"element-disabled":t});let aAe=(()=>{class t{static openDialog(e,i){const o=new nn;return o.data=i,o.autoFocus=!1,o.width=rt.smallModalWidth,e.open(t,o)}constructor(e,i,o,r,s){this.dialogRef=e,this.data=i,this.formBuilder=o,this.snackbarService=r,this.routeService=s}ngOnInit(){this.form=this.formBuilder.group({min:[this.data.minHops,Ne.compose([Ne.required,Ne.maxLength(3),Ne.pattern("^[0-9]+$")])]}),setTimeout(()=>this.firstInput.nativeElement.focus())}ngOnDestroy(){this.operationSubscription&&this.operationSubscription.unsubscribe()}get disableDismiss(){return!!this.button&&this.button.isLoading}save(){!this.form.valid||this.operationSubscription||(this.button.showLoading(),this.operationSubscription=this.routeService.setMinHops(this.data.nodePk,Number.parseInt(this.form.get("min").value,10)).subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)}))}onSuccess(e){this.dialogRef.close(!0),this.snackbarService.showDone("router-config.done")}onError(e){this.button.showError(),this.operationSubscription=null,e=Qe(e),this.snackbarService.showError(e)}static{this.\u0275fac=function(i){return new(i||t)(O(Bt),O(En),O(di),O(ct),O(Ek))}}static{this.\u0275cmp=re({type:t,selectors:[["app-router-config"]],viewQuery:function(i,o){if(1&i&&ot(oAe,5)(rAe,5),2&i){let r;he(r=fe())&&(o.button=r.first),he(r=fe())&&(o.firstInput=r.first)}},standalone:!1,decls:21,vars:22,consts:[["firstInput",""],["button",""],[3,"headline","dialog","disableDismiss"],[1,"info-container"],[3,"formGroup","ngClass"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","min","maxlength","3","matInput",""],["color","primary",1,"float-right",3,"action","disabled"]],template:function(i,o){1&i&&(h(0,"app-dialog",2),b(1,"translate"),h(2,"div",3),p(3),b(4,"translate"),u(),h(5,"form",4)(6,"mat-form-field")(7,"div",5)(8,"label",6),p(9),b(10,"translate"),u(),B(11,"input",7,0),u(),h(13,"mat-error")(14,"span"),p(15),b(16,"translate"),u()()()(),h(17,"app-button",8,1),F("action",function(){return o.save()}),p(19),b(20,"translate"),u()()),2&i&&(C("headline",y(1,10,"router-config.title"))("dialog",o.dialogRef)("disableDismiss",o.disableDismiss),d(3),M(y(4,12,"router-config.info")),d(2),C("formGroup",o.form)("ngClass",se(20,sAe,o.disableDismiss)),d(4),M(y(10,14,"router-config.min-hops")),d(6),M(y(16,16,"router-config.min-hops-error")),d(2),C("disabled",!o.form.valid),d(2),E(" ",y(20,18,"router-config.save-config-button")," "))},dependencies:[$t,xn,Gt,qt,wn,wi,on,mn,sn,Ma,In,ui,gn,xe],styles:[".info-container[_ngcontent-%COMP%]{margin-bottom:10px}"]})}}return t})();const lAe=["button"],cAe=["firstInput"];let dAe=(()=>{class t{static openDialog(e,i){const o=new nn;return o.data=i,o.autoFocus=!1,o.width=rt.smallModalWidth,e.open(t,o)}constructor(e,i,o,r,s,a){this.dialogRef=e,this.data=i,this.formBuilder=o,this.snackbarService=r,this.appsService=s,this.vpnClientService=a}ngOnInit(){this.form=this.formBuilder.group({ip:[this.data.ip,Ne.compose([Ne.maxLength(15),this.validateIp.bind(this)])]}),setTimeout(()=>this.firstInput.nativeElement.focus())}ngOnDestroy(){this.operationSubscription&&this.operationSubscription.unsubscribe()}validateIp(){if(this.form){const e=this.form.get("ip").value;return Rt.checkIfIpValidOrEmpty(e)?null:{invalid:!0}}return null}save(){!this.form.valid||this.operationSubscription||(this.button.showLoading(),this.operationSubscription=this.appsService.changeAppSettings(this.data.nodePk,this.vpnClientService.vpnClientAppName,{dns:this.form.get("ip").value}).subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)}))}onSuccess(e){this.dialogRef.close(!0),this.snackbarService.showDone("vpn.dns-config.done")}onError(e){this.button.showError(),this.operationSubscription=null,e=Qe(e),this.snackbarService.showError(e)}static{this.\u0275fac=function(i){return new(i||t)(O(Bt),O(En),O(vB),O(ct),O(Rs),O(hc))}}static{this.\u0275cmp=re({type:t,selectors:[["app-vpn-dns-config"]],viewQuery:function(i,o){if(1&i&&ot(lAe,5)(cAe,5),2&i){let r;he(r=fe())&&(o.button=r.first),he(r=fe())&&(o.firstInput=r.first)}},standalone:!1,decls:14,vars:11,consts:[["firstInput",""],["button",""],[3,"headline"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","ip","maxlength","15","matInput",""],["color","primary",1,"float-right",3,"action","disabled"]],template:function(i,o){1&i&&(h(0,"app-dialog",2),b(1,"translate"),h(2,"form",3)(3,"mat-form-field")(4,"div",4)(5,"label",5),p(6),b(7,"translate"),u(),B(8,"input",6,0),u()()(),h(10,"app-button",7,1),F("action",function(){return o.save()}),p(12),b(13,"translate"),u()()),2&i&&(C("headline",y(1,5,"vpn.dns-config.title")),d(2),C("formGroup",o.form),d(4),M(y(7,7,"vpn.dns-config.ip")),d(4),C("disabled",!o.form.valid),d(2),E(" ",y(13,9,"vpn.dns-config.save-config-button")," "))},dependencies:[xn,Gt,qt,wn,wi,on,mn,sn,In,ui,gn,xe],encapsulation:2})}}return t})();const uAe=["topBarLoading"],hAe=["topBarLoaded"],C6=()=>["vpn.title"];function fAe(t,n){if(1&t&&(h(0,"div",2)(1,"div"),B(2,"app-top-bar",4,0),u(),B(4,"app-loading-indicator",5),u()),2&t){const e=v();d(2),C("titleParts",Ct(5,C6))("tabsData",e.tabsData)("selectedTabIndex",2)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk)}}function pAe(t,n){1&t&&B(0,"mat-spinner",17),2&t&&C("diameter",12)}function mAe(t,n){if(1&t){const e=oe();h(0,"div",3)(1,"div",6),B(2,"app-top-bar",4,1),u(),h(4,"div",7)(5,"div",8)(6,"div",9)(7,"div",10)(8,"table",11)(9,"tr")(10,"th",12)(11,"div",13)(12,"div",14),p(13),b(14,"translate"),u()()(),h(15,"th",12),p(16),b(17,"translate"),u()(),h(18,"tr",15),F("click",function(){return j(e),U(v().changeKillswitchOption())}),h(19,"td",12)(20,"div"),p(21),b(22,"translate"),h(23,"mat-icon",16),b(24,"translate"),p(25,"help"),u()()(),h(26,"td",12),B(27,"span"),p(28),b(29,"translate"),x(30,pAe,1,1,"mat-spinner",17),u()(),h(31,"tr",15),F("click",function(){return j(e),U(v().changeGetIpOption())}),h(32,"td",12)(33,"div"),p(34),b(35,"translate"),h(36,"mat-icon",16),b(37,"translate"),p(38,"help"),u()()(),h(39,"td",12),B(40,"span"),p(41),b(42,"translate"),u()(),h(43,"tr",15),F("click",function(){return j(e),U(v().changeDataUnits())}),h(44,"td",12)(45,"div"),p(46),b(47,"translate"),h(48,"mat-icon",16),b(49,"translate"),p(50,"help"),u()()(),h(51,"td",12),p(52),b(53,"translate"),u()(),h(54,"tr",15),F("click",function(){return j(e),U(v().changeHops())}),h(55,"td",12)(56,"div"),p(57),b(58,"translate"),h(59,"mat-icon",16),b(60,"translate"),p(61,"help"),u()()(),h(62,"td",12),p(63),u()(),h(64,"tr",15),F("click",function(){return j(e),U(v().changeDns())}),h(65,"td",12)(66,"div"),p(67),b(68,"translate"),h(69,"mat-icon",16),b(70,"translate"),p(71,"help"),u()()(),h(72,"td",12),p(73),b(74,"translate"),u()()()()()()()()}if(2&t){const e=v();d(2),C("titleParts",Ct(64,C6))("tabsData",e.tabsData)("selectedTabIndex",2)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk),d(11),E(" ",y(14,32,"vpn.settings-page.setting-small-table-label")," "),d(3),E(" ",y(17,34,"vpn.settings-page.value-small-table-label")," "),d(5),E(" ",y(22,36,"vpn.settings-page.killswitch")," "),d(2),C("inline",!0)("matTooltip",y(24,38,"vpn.settings-page.killswitch-info")),d(4),Ze(e.getStatusClass(e.backendData.vpnClientAppData.killswitch)),d(),E(" ",y(29,40,e.getStatusText(e.backendData.vpnClientAppData.killswitch))," "),d(2),S(e.working===e.workingOptions.Killswitch?30:-1),d(4),E(" ",y(35,42,"vpn.settings-page.get-ip")," "),d(2),C("inline",!0)("matTooltip",y(37,44,"vpn.settings-page.get-ip-info")),d(4),Ze(e.getStatusClass(e.getIpOption)),d(),E(" ",y(42,46,e.getStatusText(e.getIpOption))," "),d(5),E(" ",y(47,48,"vpn.settings-page.data-units")," "),d(2),C("inline",!0)("matTooltip",y(49,50,"vpn.settings-page.data-units-info")),d(4),E(" ",y(53,52,e.getUnitsOptionText(e.dataUnitsOption))," "),d(5),E(" ",y(58,54,"vpn.settings-page.minimum-hops")," "),d(2),C("inline",!0)("matTooltip",y(60,56,"vpn.settings-page.minimum-hops-info")),d(4),E(" ",e.backendData.vpnClientAppData.minHops," "),d(4),E(" ",y(68,58,"vpn.settings-page.dns")," "),d(2),C("inline",!0)("matTooltip",y(70,60,"vpn.settings-page.dns-info")),d(4),E(" ",e.backendData.vpnClientAppData.dns?e.backendData.vpnClientAppData.dns:y(74,62,"vpn.settings-page.setting-none")," ")}}var Tc=function(t){return t[t.None=0]="None",t[t.Killswitch=1]="Killswitch",t}(Tc||{});const gAe=[{path:"",component:Ahe},{path:"login",component:XB},{path:"nodes",canActivate:[Kf],canActivateChild:[Kf],children:[{path:"",redirectTo:"list/1",pathMatch:"full"},{path:"list",redirectTo:"list/1",pathMatch:"full"},{path:"list/:page",component:mV},{path:"dmsg",redirectTo:"rewards/1",pathMatch:"full"},{path:"dmsg/:page",redirectTo:"rewards/1"},{path:"rewards",redirectTo:"rewards/1",pathMatch:"full"},{path:"rewards/:page",component:mV},{path:"services-health",component:DEe},{path:"network",component:FEe},{path:"resources",component:JEe},{path:"transports",component:fPe},{path:"dmsg-settings",redirectTo:"list/1"},{path:":key",component:ke,children:[{path:"",redirectTo:"info",pathMatch:"full"},{path:"info",component:KPe},{path:"routing",component:dke},{path:"apps",component:HMe},{path:"resources",component:tTe},{path:"chat",component:pTe},{path:"dmsg",component:TPe},{path:"transports",component:R2e},{path:"transports/:page",redirectTo:"transports"},{path:"routes",redirectTo:"routing",pathMatch:"full"},{path:"routes/:page",redirectTo:"routing"},{path:"rewards",component:eEe},{path:"skynet",component:uIe},{path:"apps-list/:showOfficialApps/:page",component:PPe}]}]},{path:"settings",canActivate:[Kf],canActivateChild:[Kf],children:[{path:"",component:zye},{path:"labels",redirectTo:"labels/1",pathMatch:"full"},{path:"labels/:page",component:fIe}]},{path:"vpnlogin/:key",component:XB},{path:"vpn",canActivate:[SD],canActivateChild:[SD],children:[{path:"unavailable",component:iAe},{path:":key",children:[{path:"status",component:nAe},{path:"servers",redirectTo:"servers/public/1",pathMatch:"full"},{path:"servers/:type/:page",component:m6},{path:"settings",component:(()=>{class t extends pn{constructor(e,i,o,r,s,a){super(),this.vpnClientService=e,this.snackbarService=i,this.appsService=o,this.vpnSavedDataService=r,this.dialog=s,this.loading=!0,this.tabsData=hi.vpnTabsData,this.working=Tc.None,this.workingOptions=Tc,this.navigationsSubscription=a.paramMap.subscribe(l=>{l.has("key")&&(this.currentLocalPk=l.get("key"),hi.changeCurrentPk(this.currentLocalPk),this.tabsData=hi.vpnTabsData)}),this.dataSubscription=this.vpnClientService.backendState.subscribe(l=>{l&&l.serviceState!==Ri.PerformingInitialCheck&&(this.backendData=l,this.loading=!1)}),this.getIpOption=this.vpnSavedDataService.getCheckIpSetting(),this.dataUnitsOption=this.vpnSavedDataService.getDataUnitsSetting()}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.dataSubscription.unsubscribe(),this.operationSubscription&&this.operationSubscription.unsubscribe()}getStatusClass(e){return!0===e?"dot-green":"dot-red"}getStatusText(e){return!0===e?"vpn.settings-page.setting-on":"vpn.settings-page.setting-off"}getUnitsOptionText(e){switch(e){case Zo.OnlyBits:return"vpn.settings-page.data-units-modal.only-bits";case Zo.OnlyBytes:return"vpn.settings-page.data-units-modal.only-bytes";default:return"vpn.settings-page.data-units-modal.bits-speed-and-bytes-volume"}}changeKillswitchOption(){if(this.working===Tc.None)if(this.backendData.vpnClientAppData.running){const e=Rt.createConfirmationDialog(this.dialog,"vpn.settings-page.change-while-connected-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.closeModal(),this.finishChangingKillswitchOption()})}else this.finishChangingKillswitchOption();else this.snackbarService.showWarning("vpn.settings-page.working-warning")}finishChangingKillswitchOption(){this.working=Tc.Killswitch,this.operationSubscription=this.appsService.changeAppSettings(this.currentLocalPk,this.vpnClientService.vpnClientAppName,{killswitch:!this.backendData.vpnClientAppData.killswitch}).subscribe(()=>{this.working=Tc.None,this.vpnClientService.updateData()},e=>{this.working=Tc.None,e=Qe(e),this.snackbarService.showError(e)})}changeGetIpOption(){this.getIpOption=!this.getIpOption,this.vpnSavedDataService.setCheckIpSetting(this.getIpOption)}changeDataUnits(){const e=[],i=[];Object.keys(Zo).forEach(o=>{const r={label:this.getUnitsOptionText(Zo[o])};this.dataUnitsOption===Zo[o]&&(r.icon="done"),e.push(r),i.push(Zo[o])}),ao.openDialog(this.dialog,e,"vpn.settings-page.data-units-modal.title").afterClosed().subscribe(o=>{o&&(this.dataUnitsOption=i[o-1],this.vpnSavedDataService.setDataUnitsSetting(this.dataUnitsOption),this.topBarLoading&&this.topBarLoading.updateVpnDataStatsUnit(),this.topBarLoaded&&this.topBarLoaded.updateVpnDataStatsUnit())})}changeHops(){aAe.openDialog(this.dialog,{nodePk:this.currentLocalPk,minHops:this.backendData.vpnClientAppData.minHops}).afterClosed().subscribe()}changeDns(){dAe.openDialog(this.dialog,{nodePk:this.currentLocalPk,ip:this.backendData.vpnClientAppData.dns}).afterClosed().subscribe()}static{this.\u0275fac=function(i){return new(i||t)(O(hc),O(ct),O(Rs),O(uc),O(Ot),O(Ai))}}static{this.\u0275cmp=re({type:t,selectors:[["app-vpn-settings-list"]],viewQuery:function(i,o){if(1&i&&ot(uAe,5)(hAe,5),2&i){let r;he(r=fe())&&(o.topBarLoading=r.first),he(r=fe())&&(o.topBarLoaded=r.first)}},standalone:!1,features:[be],decls:2,vars:2,consts:[["topBarLoading",""],["topBarLoaded",""],[1,"d-flex","flex-column","h-100","w-100"],[1,"row"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton","localVpnKey"],[1,"h-100"],[1,"col-12"],[1,"col-12","mt-4.5","vpn-table-container"],[1,"width-limiter"],[1,"rounded-elevated-box"],[1,"box-internal-container"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table"],[1,"data-column"],[1,"header-container"],[1,"header-text"],[1,"selectable",3,"click"],[1,"help-icon",3,"inline","matTooltip"],[3,"diameter"]],template:function(i,o){1&i&&(x(0,fAe,5,6,"div",2),x(1,mAe,75,65,"div",3)),2&i&&(S(o.loading?0:-1),d(),S(o.loading?-1:1))},dependencies:[We,Kt,so,Yr,Mr,xe],styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .header-container[_ngcontent-%COMP%] .header-text[_ngcontent-%COMP%], .data-column[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}table[_ngcontent-%COMP%]{width:100%}table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding-top:7px!important;padding-bottom:7px!important;font-size:12px!important;font-weight:400!important}.data-column[_ngcontent-%COMP%]{max-width:0;width:50%}.header-container[_ngcontent-%COMP%]{max-width:100%;display:inline-flex}.header-container[_ngcontent-%COMP%] .header-text[_ngcontent-%COMP%]{flex-grow:1}mat-spinner[_ngcontent-%COMP%]{display:inline-block;opacity:.5;margin-left:2px;position:relative;top:2px}mat-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}"]})}}return t})()},{path:"**",redirectTo:"status"}]},{path:"**",redirectTo:"/vpn/unavailable?problem=pk"}]},{path:"**",redirectTo:""}];let _Ae=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=tt({type:t})}static{this.\u0275inj=Je({imports:[b5.forRoot(gAe,{useHash:!0}),b5]})}}return t})(),vAe=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({imports:[ii]})}return t})(),yAe=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=tt({type:t});static \u0275inj=Je({imports:[f4,Zd,ii,Rf]})}return t})();class CAe{getTranslation(n){return Kn(Ec(995)(`./${n}.json`))}}let wAe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=tt({type:t})}static{this.\u0275inj=Je({imports:[l5.forRoot({loader:{provide:$f,useClass:CAe}}),l5]})}}return t})(),xAe=(()=>{class t{shouldDetach(e){return!1}store(e,i){}shouldAttach(e){return!1}retrieve(e){return null}shouldReuseRoute(e,i){return!1}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=te({token:t,factory:t.\u0275fac})}}return t})();const SAe={disabled:!0};let kAe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=tt({type:t,bootstrap:[Xr]})}static{this.\u0275inj=Je({providers:[np,{provide:$4,useValue:{duration:3e3,verticalPosition:"top"}},{provide:k4,useValue:{width:"600px",hasBackdrop:!0}},{provide:pk,useClass:gpe},{provide:O3,useClass:xAe},{provide:TS,useValue:SAe},Sse($l(va.LegacyInterceptors,[{provide:xL,useFactory:mse},{provide:pf,useExisting:xL,multi:!0}]))],imports:[oN,dre,Afe,_Ae,wAe,Due,oue,lv,vpe,pDe,B4,Fue,yAe,jge,Ofe,vAe,qme,Xue,fge,vTe]})}}return t})();(function wA(t,n,e){const i=t.\u0275cmp;i.directiveDefs=Tg(n,dI),i.pipeDefs=Tg(e,tr)})(m6,[$t,Ld,Is,Pn,We,Kt,op,Yr,mv,Mr,g6],[fa,xe]),mie().bootstrapModule(kAe,{applicationProviders:[function fee(t){const n=t?.scheduleInRootZone,e=function hee({ngZoneFactory:t,scheduleInRootZone:n}){return t??=()=>new _e({...VR(),scheduleInRootZone:n}),[{provide:um,useValue:!1},{provide:_e,useFactory:t},{provide:ss,multi:!0,useFactory:()=>{const e=D(dee,{optional:!0});return()=>e.initialize()}},{provide:ss,multi:!0,useFactory:()=>{const e=D(pee);return()=>{e.initialize()}}},{provide:zM,useValue:n??BM}]}({ngZoneFactory:()=>{const i=VR(t);return i.scheduleInRootZone=n,i.shouldCoalesceEventChangeDetection&&vi("NgZone_CoalesceEvent"),new _e(i)},scheduleInRootZone:n});return Hu([{provide:uee,useValue:!0},e])}()]}).catch(t=>console.log(t))},995(Eu,Yv,Ec){var An={"./de.json":[229,[229]],"./de_base.json":[735,[735]],"./en.json":[473,[473]],"./es.json":[18,[18]],"./es_base.json":[434,[434]],"./pt.json":[750,[750]],"./pt_base.json":[718,[718]]};function os(Ua){if(!Ec.o(An,Ua))return Promise.resolve().then(()=>{var Te=new Error("Cannot find module '"+Ua+"'");throw Te.code="MODULE_NOT_FOUND",Te});var Pc=An[Ua],Rn=Pc[0];return Ec.e(Pc[1][0]).then(()=>Ec.t(Rn,19))}os.keys=()=>Object.keys(An),os.id=995,Eu.exports=os}},Eu=>{Eu(Eu.s=398)}]); \ No newline at end of file diff --git a/pkg/visor/static/runtime.fcf9ddd63eec892b.js b/static/skywire-manager-src/dist/runtime.5f5290bb093e7f9b.js similarity index 65% rename from pkg/visor/static/runtime.fcf9ddd63eec892b.js rename to static/skywire-manager-src/dist/runtime.5f5290bb093e7f9b.js index 537f1a743c..e9b59d6e88 100644 --- a/pkg/visor/static/runtime.fcf9ddd63eec892b.js +++ b/static/skywire-manager-src/dist/runtime.5f5290bb093e7f9b.js @@ -1 +1 @@ -(()=>{"use strict";var e,g={},v={};function r(e){var n=v[e];if(void 0!==n)return n.exports;var t=v[e]={exports:{}};return g[e](t,t.exports,r),t.exports}r.m=g,e=[],r.O=(n,t,f,i)=>{if(!t){var a=1/0;for(o=0;o=i)&&Object.keys(r.O).every(b=>r.O[b](t[d]))?t.splice(d--,1):(l=!1,i0&&e[o-1][2]>i;o--)e[o]=e[o-1];e[o]=[t,f,i]},r.n=e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return r.d(n,{a:n}),n},(()=>{var n,e=Object.getPrototypeOf?t=>Object.getPrototypeOf(t):t=>t.__proto__;r.t=function(t,f){if(1&f&&(t=this(t)),8&f||"object"==typeof t&&t&&(4&f&&t.__esModule||16&f&&"function"==typeof t.then))return t;var i=Object.create(null);r.r(i);var o={};n=n||[null,e({}),e([]),e(e)];for(var a=2&f&&t;("object"==typeof a||"function"==typeof a)&&!~n.indexOf(a);a=e(a))Object.getOwnPropertyNames(a).forEach(l=>o[l]=()=>t[l]);return o.default=()=>t,r.d(i,o),i}})(),r.d=(e,n)=>{for(var t in n)r.o(n,t)&&!r.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((n,t)=>(r.f[t](e,n),n),[])),r.u=e=>e+"."+{18:"b642409e5ce7396b",229:"c28b198c7e8c3360",434:"1689f9ef170dbe39",473:"9dde3f487a9cd6dc",718:"f6f4ca927aabc898",735:"1d822507e38df57b",750:"320ee2a84d46217c"}[e]+".js",r.miniCssF=e=>{},r.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),(()=>{var e={},n="skywire-manager:";r.l=(t,f,i,o)=>{if(e[t])e[t].push(f);else{var a,l;if(void 0!==i)for(var d=document.getElementsByTagName("script"),s=0;s{a.onerror=a.onload=null,clearTimeout(p);var _=e[t];if(delete e[t],a.parentNode&&a.parentNode.removeChild(a),_&&_.forEach(m=>m(b)),y)return y(b)},p=setTimeout(c.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=c.bind(null,a.onerror),a.onload=c.bind(null,a.onload),l&&document.head.appendChild(a)}}})(),r.r=e=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;r.tt=()=>(void 0===e&&(e={createScriptURL:n=>n},typeof trustedTypes<"u"&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("angular#bundler",e))),e)})(),r.tu=e=>r.tt().createScriptURL(e),r.p="",(()=>{var e={121:0};r.f.j=(f,i)=>{var o=r.o(e,f)?e[f]:void 0;if(0!==o)if(o)i.push(o[2]);else if(121!=f){var a=new Promise((u,c)=>o=e[f]=[u,c]);i.push(o[2]=a);var l=r.p+r.u(f),d=new Error;r.l(l,u=>{if(r.o(e,f)&&(0!==(o=e[f])&&(e[f]=void 0),o)){var c=u&&("load"===u.type?"missing":u.type),p=u&&u.target&&u.target.src;d.message="Loading chunk "+f+" failed.\n("+c+": "+p+")",d.name="ChunkLoadError",d.type=c,d.request=p,o[1](d)}},"chunk-"+f,f)}else e[f]=0},r.O.j=f=>0===e[f];var n=(f,i)=>{var d,s,[o,a,l]=i,u=0;if(o.some(p=>0!==e[p])){for(d in a)r.o(a,d)&&(r.m[d]=a[d]);if(l)var c=l(r)}for(f&&f(i);u{"use strict";var e,g={},v={};function r(e){var n=v[e];if(void 0!==n)return n.exports;var t=v[e]={exports:{}};return g[e](t,t.exports,r),t.exports}r.m=g,e=[],r.O=(n,t,f,i)=>{if(!t){var a=1/0;for(o=0;o=i)&&Object.keys(r.O).every(b=>r.O[b](t[d]))?t.splice(d--,1):(c=!1,i0&&e[o-1][2]>i;o--)e[o]=e[o-1];e[o]=[t,f,i]},r.n=e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return r.d(n,{a:n}),n},(()=>{var n,e=Object.getPrototypeOf?t=>Object.getPrototypeOf(t):t=>t.__proto__;r.t=function(t,f){if(1&f&&(t=this(t)),8&f||"object"==typeof t&&t&&(4&f&&t.__esModule||16&f&&"function"==typeof t.then))return t;var i=Object.create(null);r.r(i);var o={};n=n||[null,e({}),e([]),e(e)];for(var a=2&f&&t;("object"==typeof a||"function"==typeof a)&&!~n.indexOf(a);a=e(a))Object.getOwnPropertyNames(a).forEach(c=>o[c]=()=>t[c]);return o.default=()=>t,r.d(i,o),i}})(),r.d=(e,n)=>{for(var t in n)r.o(n,t)&&!r.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((n,t)=>(r.f[t](e,n),n),[])),r.u=e=>e+"."+{18:"b642409e5ce7396b",229:"c28b198c7e8c3360",434:"1689f9ef170dbe39",473:"112ef2b987479257",718:"f6f4ca927aabc898",735:"1d822507e38df57b",750:"320ee2a84d46217c"}[e]+".js",r.miniCssF=e=>{},r.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),(()=>{var e={},n="skywire-manager:";r.l=(t,f,i,o)=>{if(e[t])e[t].push(f);else{var a,c;if(void 0!==i)for(var d=document.getElementsByTagName("script"),s=0;s{a.onerror=a.onload=null,clearTimeout(p);var _=e[t];if(delete e[t],a.parentNode&&a.parentNode.removeChild(a),_&&_.forEach(m=>m(b)),y)return y(b)},p=setTimeout(l.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=l.bind(null,a.onerror),a.onload=l.bind(null,a.onload),c&&document.head.appendChild(a)}}})(),r.r=e=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;r.tt=()=>(void 0===e&&(e={createScriptURL:n=>n},typeof trustedTypes<"u"&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("angular#bundler",e))),e)})(),r.tu=e=>r.tt().createScriptURL(e),r.p="",(()=>{var e={121:0};r.f.j=(f,i)=>{var o=r.o(e,f)?e[f]:void 0;if(0!==o)if(o)i.push(o[2]);else if(121!=f){var a=new Promise((u,l)=>o=e[f]=[u,l]);i.push(o[2]=a);var c=r.p+r.u(f),d=new Error;r.l(c,u=>{if(r.o(e,f)&&(0!==(o=e[f])&&(e[f]=void 0),o)){var l=u&&("load"===u.type?"missing":u.type),p=u&&u.target&&u.target.src;d.message="Loading chunk "+f+" failed.\n("+l+": "+p+")",d.name="ChunkLoadError",d.type=l,d.request=p,o[1](d)}},"chunk-"+f,f)}else e[f]=0},r.O.j=f=>0===e[f];var n=(f,i)=>{var d,s,[o,a,c]=i,u=0;if(o.some(p=>0!==e[p])){for(d in a)r.o(a,d)&&(r.m[d]=a[d]);if(c)var l=c(r)}for(f&&f(i);umat-icon,.generic-title-container .icon-button{opacity:.85}.subtle-transparent-button:hover,.generic-title-container .options .options-container>mat-icon:hover,.generic-title-container .icon-button:hover{opacity:1}@media(max-width:767px),(min-width:992px)and (max-width:1299px){.small-node-list-margins{padding:0!important}}@media(max-width:767px){.full-node-list-margins{padding:0!important}}@font-face{font-family:Skycoin;font-style:normal;font-weight:300;src:url(/assets/fonts/skycoin/skycoin-light-webfont.woff2) format("woff2"),url(/assets/fonts/skycoin/skycoin-light-webfont.woff) format("woff")}@font-face{font-family:Skycoin;font-style:normal;font-weight:400;src:url(/assets/fonts/skycoin/skycoin-regular-webfont.woff2) format("woff2"),url(/assets/fonts/skycoin/skycoin-regular-webfont.woff) format("woff")}@font-face{font-family:Skycoin;font-style:normal;font-weight:700;src:url(/assets/fonts/skycoin/skycoin-bold-webfont.woff2) format("woff2"),url(/assets/fonts/skycoin/skycoin-bold-webfont.woff) format("woff")}span{overflow-wrap:break-word}.font-sm{font-size:.875rem!important;font-weight:lighter!important}.font-smaller{font-size:.8rem!important;font-weight:lighter!important}.uppercase{text-transform:uppercase}.single-line,.options-list-button-container button .internal-container{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text{color:#2ecc54}.green-clear-text{color:#84c826}.yellow-text{color:#d48b05}.yellow-clear-text{color:orange}.red-text{color:#da3439}.red-clear-text{color:#ff393f}.grey-text{color:#777!important}.dot-green{height:10px;width:10px;background-color:#2ecc54;border-radius:50%;display:inline-block}.dot-green.sm{height:7px;width:7px}.dot-red{height:10px;width:10px;background-color:#da3439;border-radius:50%;display:inline-block}.dot-red.sm{height:7px;width:7px}.dot-yellow{height:10px;width:10px;background-color:#d48b05;border-radius:50%;display:inline-block}.dot-yellow.sm{height:7px;width:7px}.dot-outline-white{height:10px;width:10px;border-radius:50%;border:solid 1px #F8F9F9;display:inline-block}.dot-outline-white.sm{height:7px;width:7px}.dot-outline-gray{height:10px;width:10px;border-radius:50%;border:solid 1px #777;display:inline-block}.dot-outline-gray.sm{height:7px;width:7px}.mat-mdc-menu-panel{border-radius:10px!important;max-width:none!important}.mat-mdc-menu-item{width:auto!important}.mat-mdc-menu-item mat-icon{opacity:.5}.responsive-table-translucid{background:transparent!important;margin-left:auto;margin-right:auto;border-collapse:separate!important;width:100%;word-break:break-all;color:#f8f9f9!important}.responsive-table-translucid td,.responsive-table-translucid th{color:#f8f9f9!important;padding:12px 10px;border-bottom:1px solid rgba(255,255,255,.15)}.responsive-table-translucid th{font-size:.875rem!important;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;height:48px}.responsive-table-translucid td{font-size:.8rem!important;font-weight:lighter!important}.responsive-table-translucid tr .sortable-column mat-icon{display:inline;position:relative;top:2px}.responsive-table-translucid .link-row{display:table-row;text-decoration:none}.responsive-table-translucid .link-row:hover{text-decoration:none}.responsive-table-translucid td{vertical-align:middle}.responsive-table-translucid .selection-col{width:30px;padding-top:0;padding-bottom:0}.responsive-table-translucid .selection-col .mat-mdc-checkbox{vertical-align:super}.responsive-table-translucid .action-button,.responsive-table-translucid .big-action-button{width:28px!important;height:28px!important;line-height:16px;font-size:16px;margin-right:5px;padding:0!important;color:#fff!important;min-width:0!important}.responsive-table-translucid .action-button:last-child,.responsive-table-translucid .big-action-button:last-child{margin-right:0}.responsive-table-translucid .action-button .mat-icon,.responsive-table-translucid .big-action-button .mat-icon{margin-right:0!important}.responsive-table-translucid .big-action-button{line-height:18px;font-size:18px}.responsive-table-translucid .selectable,.responsive-table-translucid tr .sortable-column{cursor:pointer}.responsive-table-translucid .selectable:hover,.responsive-table-translucid tr .sortable-column:hover{background:#0003}.responsive-table-translucid .click-effect:active{background:#0006!important}.responsive-table-translucid mat-checkbox>label{margin-bottom:0}.responsive-table-translucid mat-checkbox .mdc-checkbox__background{box-sizing:border-box;width:18px;height:18px;background:#0000004d!important;border-radius:6px;border-width:2px;border-color:#00000080}.responsive-table-translucid mat-checkbox .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background{background-color:#0000004d!important;border-color:#00000080!important}.responsive-table-translucid mat-checkbox svg{color:#fff!important}.responsive-table-translucid .list-item-container{display:flex;padding:10px 0 10px 15px}.responsive-table-translucid .list-item-container .check-part{width:50px;flex-shrink:0;margin-left:-20px}.responsive-table-translucid .list-item-container .left-part{flex-grow:1}.responsive-table-translucid .list-item-container .left-part .list-row{margin-bottom:5px;word-break:break-word}.responsive-table-translucid .list-item-container .left-part .list-row:last-of-type{margin-bottom:0}.responsive-table-translucid .list-item-container .left-part .long-content{word-break:break-all}.responsive-table-translucid .list-item-container .margin-part{width:5px;height:5px;flex-shrink:0}.responsive-table-translucid .list-item-container .right-part{width:60px;text-align:center;flex-shrink:0}.responsive-table-translucid .list-item-container .right-part button{width:60px;height:60px}.responsive-table-translucid .list-item-container .right-part mat-icon{display:inline;font-size:20px}.responsive-table-translucid .title{font-size:.875rem!important;font-weight:700}@media(min-width:768px){.generic-title-container{padding-right:5px}}@media(max-width:767px){.generic-title-container{margin-right:-15px}}.generic-title-container .title{margin-right:auto;font-size:1rem;font-weight:700}@media(min-width:768px){.generic-title-container .title{margin-left:1.25rem!important}}.generic-title-container .title .filter-label{font-size:.7rem;font-weight:lighter}.generic-title-container .title .help{opacity:.5;font-size:14px;cursor:default}.generic-title-container .icon-button{display:flex;line-height:18px!important;margin-right:15px;background:#f8f9f9;color:#154b6c;border-radius:1000px;cursor:pointer;padding:1px 7px;font-weight:400;border:0;font-size:.8rem;align-items:center}.generic-title-container .icon-button mat-icon{margin-right:2px;font-size:18px;height:auto;width:auto}@media(max-width:767px){.generic-title-container .icon-button{padding:1px 10px;line-height:24px!important;font-size:.875rem!important}.generic-title-container .icon-button mat-icon{margin-right:3px;font-size:22px}}.generic-title-container .options{text-align:right}.generic-title-container .options .options-container{text-align:right;display:inline-flex}.generic-title-container .options .options-container>mat-icon{width:18px!important;height:18px!important;line-height:18px!important;font-size:18px!important;margin-right:15px;background:#f8f9f9;color:#154b6c;border-radius:1000px;cursor:pointer}@media(max-width:767px){.generic-title-container .options .options-container>mat-icon{width:24px!important;height:24px!important;line-height:24px!important;font-size:24px!important}}.generic-title-container .options .options-container .small-icon{font-size:14px!important;text-align:center}.paginator-icons-fixer{margin-right:0!important}mat-form-field{display:block!important}.white-form-field{color:#f8f9f9}.white-form-field .mat-mdc-select-value,.white-form-field .mat-mdc-select-arrow{color:#f8f9f9!important}.white-form-field .mdc-line-ripple:before{border-bottom-color:#f8f9f980!important}.white-form-field input{color:#f8f9f9!important}.white-form-field .mat-mdc-input-element{caret-color:#f8f9f9}.form-help-icon-container,.white-form-help-icon-container{height:0px;text-align:right;color:#215f9e}.white-form-help-icon-container{color:#f8f9f9cc}.element-disabled{pointer-events:none!important;opacity:.5!important}.app-background{width:100%;height:100%;top:0;left:0;position:fixed;background:linear-gradient(#060a10,#0a1421) no-repeat fixed!important;box-shadow:inset 0 0 200px #608dcd40;z-index:-1}.no-gradient-for-elevated-box{box-shadow:5px 5px 7px #00000059!important}.elevated-box,.rounded-elevated-box,.small-rounded-elevated-box{background-image:url(/assets/img/background-pattern.png);box-shadow:inset 0 0 55px #35578666,5px 5px 7px #00000059;border:rgba(156,197,255,.33) solid 1px}.rounded-elevated-box,.small-rounded-elevated-box{width:100%;border-radius:10px;overflow:hidden;padding:3px}.rounded-elevated-box .box-internal-container,.small-rounded-elevated-box .box-internal-container{border-radius:10px;padding:12px;border:rgba(156,197,255,.1155) solid 1px;overflow:hidden}.small-rounded-elevated-box{width:unset;padding:0;box-shadow:inset 0 0 20px #35578666,5px 5px 7px #00000059}.mat-mdc-dialog-surface{border-radius:10px!important;background-image:url(/assets/img/modal-background-pattern.png)!important;box-shadow:inset 0 0 100px #ffffff80,5px 5px 15px #000!important;background-color:#e0e5ec!important;overflow:hidden;padding:24px!important}.mat-mdc-dialog-content{font-family:Skycoin!important;margin:0 -24px -24px!important;padding:24px!important;color:#202226!important;line-height:1.5!important}app-dialog app-loading-indicator{margin-top:32px;margin-bottom:24px}.options-list-button-container{margin:0 -24px}.options-list-button-container button{width:100%}.options-list-button-container button .internal-container{text-align:left;padding:5px 7px}.options-list-button-container button mat-icon{margin-right:10px;position:relative;top:2px;opacity:.5}.options-list-button-container:first-of-type{margin-top:-24px!important}.options-list-button-container:last-of-type{margin-bottom:-24px!important}.info-dialog{word-break:break-all;font-size:.875rem;color:#202226}.info-dialog .title{margin-bottom:2px;font-size:1rem;margin-top:25px;color:#215f9e;display:flex}.info-dialog .title mat-icon{margin-right:5px;position:relative;top:2px}.info-dialog .item{margin-top:2px}.info-dialog .item span{color:#999}.top-dialog-button{margin-left:-24px;margin-right:-24px;font-size:.8rem;background-color:#d9deeb;color:#202226;cursor:pointer}.top-dialog-button:hover{background-color:#cfd5e6}.top-dialog-button .top-dialog-button-content{padding:10px 24px}.top-dialog-button .top-dialog-button-margin{height:1px;background-color:#215f9e33;margin:0 12px}.vpn-small-button{cursor:pointer;-webkit-user-select:none;user-select:none}.vpn-small-button:active{transform:scale(.9)}.vpn-dark-box-radius{border-radius:10px}.vpn-table-container{text-align:center}.vpn-table-container .width-limiter{width:inherit;max-width:1250px;display:inline-block;text-align:initial}*,*:before,*:after{box-sizing:border-box}@media(prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(32,34,38,0)}hr{margin:1rem 0;color:inherit;border:0;border-top:var(--bs-border-width) solid;opacity:.25}h6,.h6,h5,.h5,h4,.h4,h3,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color)}h1,.h1{font-size:calc(1.375rem + 1.5vw)}@media(min-width:1200px){h1,.h1{font-size:2.5rem}}h2,.h2{font-size:calc(1.325rem + .9vw)}@media(min-width:1200px){h2,.h2{font-size:2rem}}h3,.h3{font-size:calc(1.3rem + .6vw)}@media(min-width:1200px){h3,.h3{font-size:1.75rem}}h4,.h4{font-size:calc(1.275rem + .3vw)}@media(min-width:1200px){h4,.h4{font-size:1.5rem}}h5,.h5{font-size:1.25rem}h6,.h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small,.small{font-size:.875em}mark,.mark{padding:.1875em;color:var(--bs-highlight-color);background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity, 1));text-decoration:underline}a:hover{--bs-link-color-rgb: var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-secondary-color);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;line-height:inherit;font-size:calc(1.275rem + .3vw)}@media(min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button{cursor:pointer;filter:grayscale(1)}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.list-group{--bs-list-group-color: var(--bs-body-color);--bs-list-group-bg: var(--bs-body-bg);--bs-list-group-border-color: var(--bs-border-color);--bs-list-group-border-width: var(--bs-border-width);--bs-list-group-border-radius: var(--bs-border-radius);--bs-list-group-item-padding-x: 1rem;--bs-list-group-item-padding-y: .5rem;--bs-list-group-action-color: var(--bs-secondary-color);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-tertiary-bg);--bs-list-group-action-active-color: var(--bs-body-color);--bs-list-group-action-active-bg: var(--bs-secondary-bg);--bs-list-group-disabled-color: var(--bs-secondary-color);--bs-list-group-disabled-bg: var(--bs-body-bg);--bs-list-group-active-color: #F8F9F9;--bs-list-group-active-bg: #0d6efd;--bs-list-group-active-border-color: #0d6efd;display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item:before{content:counters(section,".") ". ";counter-increment:section}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1 * var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:not(.active):hover,.list-group-item-action:not(.active):focus{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:not(.active):active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media(min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width:1300px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-green{--bs-list-group-color: var(--bs-green-text-emphasis);--bs-list-group-bg: var(--bs-green-bg-subtle);--bs-list-group-border-color: var(--bs-green-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-green-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-green-border-subtle);--bs-list-group-active-color: var(--bs-green-bg-subtle);--bs-list-group-active-bg: var(--bs-green-text-emphasis);--bs-list-group-active-border-color: var(--bs-green-text-emphasis)}.list-group-item-red{--bs-list-group-color: var(--bs-red-text-emphasis);--bs-list-group-bg: var(--bs-red-bg-subtle);--bs-list-group-border-color: var(--bs-red-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-red-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-red-border-subtle);--bs-list-group-active-color: var(--bs-red-bg-subtle);--bs-list-group-active-bg: var(--bs-red-text-emphasis);--bs-list-group-active-border-color: var(--bs-red-text-emphasis)}.list-group-item-yellow{--bs-list-group-color: var(--bs-yellow-text-emphasis);--bs-list-group-bg: var(--bs-yellow-bg-subtle);--bs-list-group-border-color: var(--bs-yellow-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-yellow-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-yellow-border-subtle);--bs-list-group-active-color: var(--bs-yellow-bg-subtle);--bs-list-group-active-bg: var(--bs-yellow-text-emphasis);--bs-list-group-active-border-color: var(--bs-yellow-text-emphasis)}.list-group-item-translucid-hover{--bs-list-group-color: var(--bs-translucid-hover-text-emphasis);--bs-list-group-bg: var(--bs-translucid-hover-bg-subtle);--bs-list-group-border-color: var(--bs-translucid-hover-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-translucid-hover-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-translucid-hover-border-subtle);--bs-list-group-active-color: var(--bs-translucid-hover-bg-subtle);--bs-list-group-active-bg: var(--bs-translucid-hover-text-emphasis);--bs-list-group-active-border-color: var(--bs-translucid-hover-text-emphasis)}.list-group-item-translucid-hover-hard{--bs-list-group-color: var(--bs-translucid-hover-hard-text-emphasis);--bs-list-group-bg: var(--bs-translucid-hover-hard-bg-subtle);--bs-list-group-border-color: var(--bs-translucid-hover-hard-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-translucid-hover-hard-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-translucid-hover-hard-border-subtle);--bs-list-group-active-color: var(--bs-translucid-hover-hard-bg-subtle);--bs-list-group-active-bg: var(--bs-translucid-hover-hard-text-emphasis);--bs-list-group-active-border-color: var(--bs-translucid-hover-hard-text-emphasis)}.list-group-item-white{--bs-list-group-color: var(--bs-white-text-emphasis);--bs-list-group-bg: var(--bs-white-bg-subtle);--bs-list-group-border-color: var(--bs-white-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-white-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-white-border-subtle);--bs-list-group-active-color: var(--bs-white-bg-subtle);--bs-list-group-active-bg: var(--bs-white-text-emphasis);--bs-list-group-active-border-color: var(--bs-white-text-emphasis)}.list-group-item-light-gray{--bs-list-group-color: var(--bs-light-gray-text-emphasis);--bs-list-group-bg: var(--bs-light-gray-bg-subtle);--bs-list-group-border-color: var(--bs-light-gray-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-light-gray-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-light-gray-border-subtle);--bs-list-group-active-color: var(--bs-light-gray-bg-subtle);--bs-list-group-active-bg: var(--bs-light-gray-text-emphasis);--bs-list-group-active-border-color: var(--bs-light-gray-text-emphasis)}.lead{font-size:1.25rem;font-weight:300}.display-1{font-weight:300;line-height:1.2;font-size:calc(1.625rem + 4.5vw)}@media(min-width:1200px){.display-1{font-size:5rem}}.display-2{font-weight:300;line-height:1.2;font-size:calc(1.575rem + 3.9vw)}@media(min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-weight:300;line-height:1.2;font-size:calc(1.525rem + 3.3vw)}@media(min-width:1200px){.display-3{font-size:4rem}}.display-4{font-weight:300;line-height:1.2;font-size:calc(1.475rem + 2.7vw)}@media(min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-weight:300;line-height:1.2;font-size:calc(1.425rem + 2.1vw)}@media(min-width:1200px){.display-5{font-size:3rem}}.display-6{font-weight:300;line-height:1.2;font-size:calc(1.375rem + 1.5vw)}@media(min-width:1200px){.display-6{font-size:2.5rem}}.list-unstyled,.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer:before{content:"\2014\a0"}/*! + * Bootstrap Grid v5.3.8 (https://getbootstrap.com/) + * Copyright 2011-2025 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */.container,.container-fluid,.container-xxl,.container-xl,.container-lg,.container-md,.container-sm{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media(min-width:576px){.container-sm,.container{max-width:540px}}@media(min-width:768px){.container-md,.container-sm,.container{max-width:720px}}@media(min-width:992px){.container-lg,.container-md,.container-sm,.container{max-width:960px}}@media(min-width:1300px){.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1140px}}.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1320px}:root{--bs-breakpoint-xs: 0;--bs-breakpoint-sm: 576px;--bs-breakpoint-md: 768px;--bs-breakpoint-lg: 992px;--bs-breakpoint-xl: 1300px}.row{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{box-sizing:border-box;flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.66666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x: 0}.g-0,.gy-0{--bs-gutter-y: 0}.g-1,.gx-1{--bs-gutter-x: .25rem}.g-1,.gy-1{--bs-gutter-y: .25rem}.g-2,.gx-2{--bs-gutter-x: .5rem}.g-2,.gy-2{--bs-gutter-y: .5rem}.g-3,.gx-3{--bs-gutter-x: 1rem}.g-3,.gy-3{--bs-gutter-y: 1rem}.g-4,.gx-4{--bs-gutter-x: 1.5rem}.g-4,.gy-4{--bs-gutter-y: 1.5rem}.g-5,.gx-5{--bs-gutter-x: 3rem}.g-5,.gy-5{--bs-gutter-y: 3rem}@media(min-width:576px){.col-sm{flex:1 0 0}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.66666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x: 0}.g-sm-0,.gy-sm-0{--bs-gutter-y: 0}.g-sm-1,.gx-sm-1{--bs-gutter-x: .25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y: .25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x: .5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y: .5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x: 1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y: 1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x: 1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y: 1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x: 3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y: 3rem}}@media(min-width:768px){.col-md{flex:1 0 0}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.66666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x: 0}.g-md-0,.gy-md-0{--bs-gutter-y: 0}.g-md-1,.gx-md-1{--bs-gutter-x: .25rem}.g-md-1,.gy-md-1{--bs-gutter-y: .25rem}.g-md-2,.gx-md-2{--bs-gutter-x: .5rem}.g-md-2,.gy-md-2{--bs-gutter-y: .5rem}.g-md-3,.gx-md-3{--bs-gutter-x: 1rem}.g-md-3,.gy-md-3{--bs-gutter-y: 1rem}.g-md-4,.gx-md-4{--bs-gutter-x: 1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y: 1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x: 3rem}.g-md-5,.gy-md-5{--bs-gutter-y: 3rem}}@media(min-width:992px){.col-lg{flex:1 0 0}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.66666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x: 0}.g-lg-0,.gy-lg-0{--bs-gutter-y: 0}.g-lg-1,.gx-lg-1{--bs-gutter-x: .25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y: .25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x: .5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y: .5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x: 1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y: 1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x: 1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y: 1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x: 3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y: 3rem}}@media(min-width:1300px){.col-xl{flex:1 0 0}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.66666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x: 0}.g-xl-0,.gy-xl-0{--bs-gutter-y: 0}.g-xl-1,.gx-xl-1{--bs-gutter-x: .25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y: .25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x: .5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y: .5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x: 1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y: 1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x: 1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y: 1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x: 3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y: 3rem}}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-inline-grid{display:inline-grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}@media(min-width:576px){.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-inline-grid{display:inline-grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}}@media(min-width:768px){.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-inline-grid{display:inline-grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}}@media(min-width:992px){.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-inline-grid{display:inline-grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}}@media(min-width:1300px){.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-inline-grid{display:inline-grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-inline-grid{display:inline-grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}}.navbar{--bs-navbar-padding-x: 0;--bs-navbar-padding-y: .5rem;--bs-navbar-color: rgba(var(--bs-emphasis-color-rgb), .65);--bs-navbar-hover-color: rgba(var(--bs-emphasis-color-rgb), .8);--bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), .3);--bs-navbar-active-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-padding-y: .3125rem;--bs-navbar-brand-margin-end: 1rem;--bs-navbar-brand-font-size: 1.25rem;--bs-navbar-brand-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-hover-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-nav-link-padding-x: .5rem;--bs-navbar-toggler-padding-y: .25rem;--bs-navbar-toggler-padding-x: .75rem;--bs-navbar-toggler-font-size: 1.25rem;--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), .15);--bs-navbar-toggler-border-radius: var(--bs-border-radius);--bs-navbar-toggler-focus-width: .25rem;--bs-navbar-toggler-transition: box-shadow .15s ease-in-out;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-sm,.navbar>.container-md,.navbar>.container-lg,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x: 0;--bs-nav-link-padding-y: .5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-navbar-color);--bs-nav-link-hover-color: var(--bs-navbar-hover-color);--bs-nav-link-disabled-color: var(--bs-navbar-disabled-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:hover,.navbar-text a:focus{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-grow:1;flex-basis:100%;align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@media(prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height, 75vh);overflow-y:auto}@media(min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media(min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media(min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media(min-width:1300px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-bs-theme=dark]{--bs-navbar-color: rgba(248, 249, 249, .55);--bs-navbar-hover-color: rgba(248, 249, 249, .75);--bs-navbar-disabled-color: rgba(248, 249, 249, .25);--bs-navbar-active-color: #F8F9F9;--bs-navbar-brand-color: #F8F9F9;--bs-navbar-brand-hover-color: #F8F9F9;--bs-navbar-toggler-border-color: rgba(248, 249, 249, .1);--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28248, 249, 249, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-bs-theme=dark] .navbar-toggler-icon{--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28248, 249, 249, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}html,body{height:100%;min-height:100%;font-family:Skycoin;margin:0;color:#f8f9f9!important;font-size:1rem;backface-visibility:hidden}button:focus{outline:0}.mat-mdc-button{min-width:40px!important;padding:0 16px!important}.mat-mdc-button .mat-icon{height:auto!important;width:auto!important}.mdc-snackbar__surface{background-color:transparent!important;box-shadow:none!important}.mat-mdc-form-field-infix{display:flex}.mat-mdc-form-field input.mat-mdc-input-element,.mat-mdc-form-field textarea.mat-mdc-input-element{color:#ffffffeb!important;caret-color:#ffffffeb!important}.mat-mdc-form-field input.mat-mdc-input-element::placeholder,.mat-mdc-form-field textarea.mat-mdc-input-element::placeholder{color:#ffffff73!important}.mat-mdc-form-field .mdc-floating-label,.mat-mdc-form-field .mat-mdc-floating-label{color:#ffffffb3}.mat-mdc-form-field .mdc-notched-outline__leading,.mat-mdc-form-field .mdc-notched-outline__notch,.mat-mdc-form-field .mdc-notched-outline__trailing{border-color:#ffffff40!important}.mdc-text-field--filled{background-color:transparent!important;padding:0!important}.mdc-text-field--filled .mat-mdc-form-field-focus-overlay{opacity:0!important}.mdc-text-field--filled .mat-mdc-form-field-infix{padding:0!important;min-height:45px!important}.mdc-text-field--filled .mat-mdc-form-field-infix .field-container{width:100%}.mdc-text-field--filled .mat-mdc-form-field-infix .field-container .field-label{margin:0 0 5px;font-size:.7rem;opacity:.55}.mdc-text-field--filled .mat-mdc-form-field-infix .mat-mdc-form-field-input-control{font-family:Skycoin!important;font-size:.875rem!important}.mat-mdc-form-field-bottom-align{margin-bottom:15px}.mat-mdc-form-field-bottom-align:before{display:none!important}.mat-mdc-form-field-error-wrapper{padding:0!important;position:inherit!important;line-height:1.2;margin-top:3px}.mat-mdc-select{display:flex!important;font-family:Skycoin!important;font-size:.875rem!important}.mat-mdc-select .mat-mdc-select-value{line-height:1.5}.mat-mdc-select-value,.mat-mdc-select-min-line,.mat-mdc-select-placeholder,.mat-mdc-select-arrow{color:#ffffffde!important}.cdk-overlay-pane .skynet-select-panel.mdc-menu-surface,.cdk-overlay-pane .skynet-select-panel.mat-mdc-select-panel,.mat-mdc-select-panel.skynet-select-panel{background-color:#1f2533!important;--mat-app-surface: #1f2533;--mdc-theme-surface: #1f2533;--mat-mdc-select-panel-background-color: #1f2533;--mdc-list-list-item-label-text-color: rgba(255, 255, 255, .87);--mdc-list-list-item-hover-label-text-color: #ffffff;--mdc-list-list-item-focus-label-text-color: #ffffff;--mdc-list-list-item-hover-state-layer-color: rgba(255, 255, 255, .08);--mdc-list-list-item-focus-state-layer-color: rgba(255, 255, 255, .12);--mat-option-label-text-color: rgba(255, 255, 255, .87);--mat-option-selected-state-label-text-color: #ffffff}.cdk-overlay-pane .skynet-select-panel.mdc-menu-surface .mat-mdc-option,.cdk-overlay-pane .skynet-select-panel.mdc-menu-surface .mat-mdc-option .mdc-list-item__primary-text,.cdk-overlay-pane .skynet-select-panel.mdc-menu-surface .mdc-list-item__primary-text,.cdk-overlay-pane .skynet-select-panel.mat-mdc-select-panel .mat-mdc-option,.cdk-overlay-pane .skynet-select-panel.mat-mdc-select-panel .mat-mdc-option .mdc-list-item__primary-text,.cdk-overlay-pane .skynet-select-panel.mat-mdc-select-panel .mdc-list-item__primary-text,.mat-mdc-select-panel.skynet-select-panel .mat-mdc-option,.mat-mdc-select-panel.skynet-select-panel .mat-mdc-option .mdc-list-item__primary-text,.mat-mdc-select-panel.skynet-select-panel .mdc-list-item__primary-text{color:#ffffffde!important}.cdk-overlay-pane .skynet-select-panel.mdc-menu-surface .mat-mdc-option:hover:not(.mdc-list-item--disabled),.cdk-overlay-pane .skynet-select-panel.mdc-menu-surface .mat-mdc-option.mat-mdc-option-active,.cdk-overlay-pane .skynet-select-panel.mdc-menu-surface .mat-mdc-option.mdc-list-item--selected,.cdk-overlay-pane .skynet-select-panel.mat-mdc-select-panel .mat-mdc-option:hover:not(.mdc-list-item--disabled),.cdk-overlay-pane .skynet-select-panel.mat-mdc-select-panel .mat-mdc-option.mat-mdc-option-active,.cdk-overlay-pane .skynet-select-panel.mat-mdc-select-panel .mat-mdc-option.mdc-list-item--selected,.mat-mdc-select-panel.skynet-select-panel .mat-mdc-option:hover:not(.mdc-list-item--disabled),.mat-mdc-select-panel.skynet-select-panel .mat-mdc-option.mat-mdc-option-active,.mat-mdc-select-panel.skynet-select-panel .mat-mdc-option.mdc-list-item--selected{background-color:#ffffff14!important;color:#fff!important}.grey-button-background:hover{background-color:#0000000d!important}.flex-1{flex:1}.mat-mdc-snack-bar-container{max-width:90vw!important}.transparent-50{opacity:.5}.flag-container{width:16px;height:11px;display:inline-block;margin-right:5px;background-image:url(/assets/img/flags/unknown.png)}.flag-container div{width:16px;height:11px}.help-icon{opacity:.4;font-size:14px;cursor:default;position:relative;top:1px}.blinking{animation:alert-blinking 1s linear infinite}@keyframes alert-blinking{50%{opacity:.5}}.snackbar-container{padding:0!important;background:transparent!important}.mdc-tooltip__surface{font-size:11px!important;line-height:1.8;padding:7px 14px!important}.mat-mdc-tooltip-panel{pointer-events:none!important}.tooltip-word-break{word-break:break-word}.mat-mdc-button-touch-target{height:100%!important}.mat-mdc-button:not(:disabled){color:#202226}.mat-accent .mdc-button__label{color:#fff!important}html{--mat-badge-text-font: Skycoin;--mat-badge-line-height: 22px;--mat-badge-text-size: 12px;--mat-badge-text-weight: 600;--mat-badge-small-size-text-size: 9px;--mat-badge-small-size-line-height: 16px;--mat-badge-large-size-text-size: 24px;--mat-badge-large-size-line-height: 28px}.mat-h1,.mat-headline-5,.mat-typography .mat-h1,.mat-typography .mat-headline-5,.mat-typography h1{font:400 24px/32px Skycoin;letter-spacing:normal;margin:0 0 16px}.mat-h2,.mat-headline-6,.mat-typography .mat-h2,.mat-typography .mat-headline-6,.mat-typography h2{font:500 20px/32px Skycoin;letter-spacing:.0125em;margin:0 0 16px}.mat-h3,.mat-subtitle-1,.mat-typography .mat-h3,.mat-typography .mat-subtitle-1,.mat-typography h3,.mat-h4,.mat-body-1,.mat-typography .mat-h4,.mat-typography .mat-body-1,.mat-typography h4{font:400 .875rem/1 Skycoin;letter-spacing:normal;margin:0 0 16px}.mat-h5,.mat-typography .mat-h5,.mat-typography h5{font:400 11.62px/20px Skycoin;margin:0 0 12px}.mat-h6,.mat-typography .mat-h6,.mat-typography h6{font:400 9.38px/20px Skycoin;margin:0 0 12px}.mat-body-strong,.mat-subtitle-2,.mat-typography .mat-body-strong,.mat-typography .mat-subtitle-2{font:500 14px/22px Skycoin;letter-spacing:.0071428571em}.mat-body,.mat-body-2,.mat-typography .mat-body,.mat-typography .mat-body-2,.mat-typography{font:400 14px/20px Skycoin;letter-spacing:.0178571429em}.mat-body p,.mat-body-2 p,.mat-typography .mat-body p,.mat-typography .mat-body-2 p,.mat-typography p{margin:0 0 12px}.mat-small,.mat-caption,.mat-typography .mat-small,.mat-typography .mat-caption{font:400 12px/20px Skycoin;letter-spacing:.0333333333em}.mat-headline-1,.mat-typography .mat-headline-1{font:300 96px/96px Skycoin;letter-spacing:-.015625em;margin:0 0 56px}.mat-headline-2,.mat-typography .mat-headline-2{font:300 60px/60px Skycoin;letter-spacing:-.0083333333em;margin:0 0 64px}.mat-headline-3,.mat-typography .mat-headline-3{font:400 48px/50px Skycoin;letter-spacing:normal;margin:0 0 64px}.mat-headline-4,.mat-typography .mat-headline-4{font:400 34px/40px Skycoin;letter-spacing:.0073529412em;margin:0 0 64px}html{--mat-bottom-sheet-container-text-font: Skycoin;--mat-bottom-sheet-container-text-line-height: 20px;--mat-bottom-sheet-container-text-size: 14px;--mat-bottom-sheet-container-text-tracking: .0178571429em;--mat-bottom-sheet-container-text-weight: 400}html{--mat-button-toggle-label-text-font: Skycoin;--mat-button-toggle-label-text-line-height: 1;--mat-button-toggle-label-text-size: .875rem;--mat-button-toggle-label-text-tracking: normal;--mat-button-toggle-label-text-weight: 400;--mat-button-toggle-legacy-label-text-font: Skycoin;--mat-button-toggle-legacy-label-text-line-height: 1;--mat-button-toggle-legacy-label-text-size: .875rem;--mat-button-toggle-legacy-label-text-tracking: normal;--mat-button-toggle-legacy-label-text-weight: 400}html{--mat-datepicker-calendar-text-font: Skycoin;--mat-datepicker-calendar-text-size: 13px;--mat-datepicker-calendar-body-label-text-size: .875rem;--mat-datepicker-calendar-body-label-text-weight: 400;--mat-datepicker-calendar-period-button-text-size: .875rem;--mat-datepicker-calendar-period-button-text-weight: 400;--mat-datepicker-calendar-header-text-size: 11px;--mat-datepicker-calendar-header-text-weight: 400}html{--mat-expansion-header-text-font: Skycoin;--mat-expansion-header-text-size: 14px;--mat-expansion-header-text-weight: 500;--mat-expansion-header-text-line-height: inherit;--mat-expansion-header-text-tracking: inherit;--mat-expansion-container-text-font: Skycoin;--mat-expansion-container-text-line-height: 20px;--mat-expansion-container-text-size: 14px;--mat-expansion-container-text-tracking: .0178571429em;--mat-expansion-container-text-weight: 400}html{--mat-grid-list-tile-header-primary-text-size: 14px;--mat-grid-list-tile-header-secondary-text-size: 12px;--mat-grid-list-tile-footer-primary-text-size: 14px;--mat-grid-list-tile-footer-secondary-text-size: 12px}html{--mat-stepper-container-text-font: Skycoin;--mat-stepper-header-label-text-font: Skycoin;--mat-stepper-header-label-text-size: 14px;--mat-stepper-header-label-text-weight: 400;--mat-stepper-header-error-state-label-text-size: .875rem;--mat-stepper-header-selected-state-label-text-size: .875rem;--mat-stepper-header-selected-state-label-text-weight: 400}html{--mat-toolbar-title-text-font: Skycoin;--mat-toolbar-title-text-line-height: 32px;--mat-toolbar-title-text-size: 20px;--mat-toolbar-title-text-tracking: .0125em;--mat-toolbar-title-text-weight: 500}html{--mat-tree-node-text-font: Skycoin;--mat-tree-node-text-size: 14px;--mat-tree-node-text-weight: 400}html{--mat-option-label-text-font: Skycoin;--mat-option-label-text-line-height: 1;--mat-option-label-text-size: .875rem;--mat-option-label-text-tracking: normal;--mat-option-label-text-weight: 400}html{--mat-optgroup-label-text-font: Skycoin;--mat-optgroup-label-text-line-height: 1;--mat-optgroup-label-text-size: .875rem;--mat-optgroup-label-text-tracking: normal;--mat-optgroup-label-text-weight: 400}html{--mat-card-title-text-font: Skycoin;--mat-card-title-text-line-height: 32px;--mat-card-title-text-size: 20px;--mat-card-title-text-tracking: .0125em;--mat-card-title-text-weight: 500;--mat-card-subtitle-text-font: Skycoin;--mat-card-subtitle-text-line-height: 22px;--mat-card-subtitle-text-size: 14px;--mat-card-subtitle-text-tracking: .0071428571em;--mat-card-subtitle-text-weight: 500}html{--mat-tooltip-supporting-text-font: Skycoin;--mat-tooltip-supporting-text-size: 12px;--mat-tooltip-supporting-text-weight: 400;--mat-tooltip-supporting-text-tracking: .0333333333em}html{--mat-form-field-container-text-font: Skycoin;--mat-form-field-container-text-line-height: 1;--mat-form-field-container-text-size: .875rem;--mat-form-field-container-text-tracking: normal;--mat-form-field-container-text-weight: 400;--mat-form-field-outlined-label-text-populated-size: .875rem;--mat-form-field-subscript-text-font: Skycoin;--mat-form-field-subscript-text-line-height: 20px;--mat-form-field-subscript-text-size: 12px;--mat-form-field-subscript-text-tracking: .0333333333em;--mat-form-field-subscript-text-weight: 400;--mat-form-field-filled-label-text-font: Skycoin;--mat-form-field-filled-label-text-size: .875rem;--mat-form-field-filled-label-text-tracking: normal;--mat-form-field-filled-label-text-weight: 400;--mat-form-field-outlined-label-text-font: Skycoin;--mat-form-field-outlined-label-text-size: .875rem;--mat-form-field-outlined-label-text-tracking: normal;--mat-form-field-outlined-label-text-weight: 400}html{--mat-select-trigger-text-font: Skycoin;--mat-select-trigger-text-line-height: 1;--mat-select-trigger-text-size: .875rem;--mat-select-trigger-text-tracking: normal;--mat-select-trigger-text-weight: 400}html{--mat-dialog-subhead-font: Skycoin;--mat-dialog-subhead-line-height: 32px;--mat-dialog-subhead-size: 20px;--mat-dialog-subhead-weight: 500;--mat-dialog-subhead-tracking: .0125em;--mat-dialog-supporting-text-font: Skycoin;--mat-dialog-supporting-text-line-height: 1;--mat-dialog-supporting-text-size: .875rem;--mat-dialog-supporting-text-weight: 400;--mat-dialog-supporting-text-tracking: normal}.mat-mdc-standard-chip{--mat-chip-label-text-font: Skycoin;--mat-chip-label-text-line-height: 20px;--mat-chip-label-text-size: 14px;--mat-chip-label-text-tracking: .0178571429em;--mat-chip-label-text-weight: 400}html,html .mat-mdc-slide-toggle{--mat-slide-toggle-label-text-font: Skycoin;--mat-slide-toggle-label-text-line-height: 20px;--mat-slide-toggle-label-text-size: 14px;--mat-slide-toggle-label-text-tracking: .0178571429em;--mat-slide-toggle-label-text-weight: 400}html{--mat-radio-label-text-font: Skycoin;--mat-radio-label-text-line-height: 20px;--mat-radio-label-text-size: 14px;--mat-radio-label-text-tracking: .0178571429em;--mat-radio-label-text-weight: 400}html{--mat-slider-label-label-text-font: Skycoin;--mat-slider-label-label-text-size: 14px;--mat-slider-label-label-text-line-height: 22px;--mat-slider-label-label-text-tracking: .0071428571em;--mat-slider-label-label-text-weight: 500}html{--mat-menu-item-label-text-font: Skycoin;--mat-menu-item-label-text-size: .875rem;--mat-menu-item-label-text-tracking: normal;--mat-menu-item-label-text-line-height: 1;--mat-menu-item-label-text-weight: 400}html{--mat-list-list-item-label-text-font: Skycoin;--mat-list-list-item-label-text-line-height: 1;--mat-list-list-item-label-text-size: .875rem;--mat-list-list-item-label-text-tracking: normal;--mat-list-list-item-label-text-weight: 400;--mat-list-list-item-supporting-text-font: Skycoin;--mat-list-list-item-supporting-text-line-height: 20px;--mat-list-list-item-supporting-text-size: 14px;--mat-list-list-item-supporting-text-tracking: .0178571429em;--mat-list-list-item-supporting-text-weight: 400;--mat-list-list-item-trailing-supporting-text-font: Skycoin;--mat-list-list-item-trailing-supporting-text-line-height: 20px;--mat-list-list-item-trailing-supporting-text-size: 12px;--mat-list-list-item-trailing-supporting-text-tracking: .0333333333em;--mat-list-list-item-trailing-supporting-text-weight: 400}.mdc-list-group__subheader{font:400 .875rem/1 Skycoin;letter-spacing:normal}html{--mat-paginator-container-text-font: Skycoin;--mat-paginator-container-text-line-height: 20px;--mat-paginator-container-text-size: 12px;--mat-paginator-container-text-tracking: .0333333333em;--mat-paginator-container-text-weight: 400;--mat-paginator-select-trigger-text-size: 12px}.mat-mdc-tab-header{--mat-tab-label-text-font: Skycoin;--mat-tab-label-text-size: .875rem;--mat-tab-label-text-tracking: normal;--mat-tab-label-text-line-height: .875rem;--mat-tab-label-text-weight: 400}html{--mat-checkbox-label-text-font: Skycoin;--mat-checkbox-label-text-line-height: 20px;--mat-checkbox-label-text-size: 14px;--mat-checkbox-label-text-tracking: .0178571429em;--mat-checkbox-label-text-weight: 400}html{--mat-button-filled-label-text-font: Skycoin;--mat-button-filled-label-text-size: .875rem;--mat-button-filled-label-text-tracking: normal;--mat-button-filled-label-text-transform: none;--mat-button-filled-label-text-weight: 400;--mat-button-outlined-label-text-font: Skycoin;--mat-button-outlined-label-text-size: .875rem;--mat-button-outlined-label-text-tracking: normal;--mat-button-outlined-label-text-transform: none;--mat-button-outlined-label-text-weight: 400;--mat-button-protected-label-text-font: Skycoin;--mat-button-protected-label-text-size: .875rem;--mat-button-protected-label-text-tracking: normal;--mat-button-protected-label-text-transform: none;--mat-button-protected-label-text-weight: 400;--mat-button-text-label-text-font: Skycoin;--mat-button-text-label-text-size: .875rem;--mat-button-text-label-text-tracking: normal;--mat-button-text-label-text-transform: none;--mat-button-text-label-text-weight: 400;--mat-button-tonal-label-text-font: Skycoin;--mat-button-tonal-label-text-size: .875rem;--mat-button-tonal-label-text-tracking: normal;--mat-button-tonal-label-text-transform: none;--mat-button-tonal-label-text-weight: 400}html{--mat-fab-extended-label-text-font: Skycoin;--mat-fab-extended-label-text-size: .875rem;--mat-fab-extended-label-text-tracking: normal;--mat-fab-extended-label-text-weight: 400}html{--mat-snack-bar-supporting-text-font: Skycoin;--mat-snack-bar-supporting-text-line-height: 20px;--mat-snack-bar-supporting-text-size: 14px;--mat-snack-bar-supporting-text-weight: 400}html{--mat-table-header-headline-font: Skycoin;--mat-table-header-headline-line-height: 22px;--mat-table-header-headline-size: 14px;--mat-table-header-headline-weight: 500;--mat-table-header-headline-tracking: .0071428571em;--mat-table-row-item-label-text-font: Skycoin;--mat-table-row-item-label-text-line-height: 20px;--mat-table-row-item-label-text-size: 14px;--mat-table-row-item-label-text-weight: 400;--mat-table-row-item-label-text-tracking: .0178571429em;--mat-table-footer-supporting-text-font: Skycoin;--mat-table-footer-supporting-text-line-height: 20px;--mat-table-footer-supporting-text-size: 14px;--mat-table-footer-supporting-text-weight: 400;--mat-table-footer-supporting-text-tracking: .0178571429em}.mat-elevation-z0,.mat-mdc-elevation-specific.mat-elevation-z0{box-shadow:var(--mat-app-elevation-shadow-level-0, 0px 0px 0px 0px --mat-sys-shadow, 0px 0px 0px 0px --mat-sys-shadow, 0px 0px 0px 0px --mat-sys-shadow)}.mat-elevation-z1,.mat-mdc-elevation-specific.mat-elevation-z1{box-shadow:var(--mat-app-elevation-shadow-level-1, 0px 2px 1px -1px --mat-sys-shadow, 0px 1px 1px 0px --mat-sys-shadow, 0px 1px 3px 0px --mat-sys-shadow)}.mat-elevation-z2,.mat-mdc-elevation-specific.mat-elevation-z2{box-shadow:var(--mat-app-elevation-shadow-level-2, 0px 3px 1px -2px --mat-sys-shadow, 0px 2px 2px 0px --mat-sys-shadow, 0px 1px 5px 0px --mat-sys-shadow)}.mat-elevation-z3,.mat-mdc-elevation-specific.mat-elevation-z3{box-shadow:var(--mat-app-elevation-shadow-level-3, 0px 3px 3px -2px --mat-sys-shadow, 0px 3px 4px 0px --mat-sys-shadow, 0px 1px 8px 0px --mat-sys-shadow)}.mat-elevation-z4,.mat-mdc-elevation-specific.mat-elevation-z4{box-shadow:var(--mat-app-elevation-shadow-level-4, 0px 2px 4px -1px --mat-sys-shadow, 0px 4px 5px 0px --mat-sys-shadow, 0px 1px 10px 0px --mat-sys-shadow)}.mat-elevation-z5,.mat-mdc-elevation-specific.mat-elevation-z5{box-shadow:var(--mat-app-elevation-shadow-level-5, 0px 3px 5px -1px --mat-sys-shadow, 0px 5px 8px 0px --mat-sys-shadow, 0px 1px 14px 0px --mat-sys-shadow)}.mat-elevation-z6,.mat-mdc-elevation-specific.mat-elevation-z6{box-shadow:var(--mat-app-elevation-shadow-level-6, 0px 3px 5px -1px --mat-sys-shadow, 0px 6px 10px 0px --mat-sys-shadow, 0px 1px 18px 0px --mat-sys-shadow)}.mat-elevation-z7,.mat-mdc-elevation-specific.mat-elevation-z7{box-shadow:var(--mat-app-elevation-shadow-level-7, 0px 4px 5px -2px --mat-sys-shadow, 0px 7px 10px 1px --mat-sys-shadow, 0px 2px 16px 1px --mat-sys-shadow)}.mat-elevation-z8,.mat-mdc-elevation-specific.mat-elevation-z8{box-shadow:var(--mat-app-elevation-shadow-level-8, 0px 5px 5px -3px --mat-sys-shadow, 0px 8px 10px 1px --mat-sys-shadow, 0px 3px 14px 2px --mat-sys-shadow)}.mat-elevation-z9,.mat-mdc-elevation-specific.mat-elevation-z9{box-shadow:var(--mat-app-elevation-shadow-level-9, 0px 5px 6px -3px --mat-sys-shadow, 0px 9px 12px 1px --mat-sys-shadow, 0px 3px 16px 2px --mat-sys-shadow)}.mat-elevation-z10,.mat-mdc-elevation-specific.mat-elevation-z10{box-shadow:var(--mat-app-elevation-shadow-level-10, 0px 6px 6px -3px --mat-sys-shadow, 0px 10px 14px 1px --mat-sys-shadow, 0px 4px 18px 3px --mat-sys-shadow)}.mat-elevation-z11,.mat-mdc-elevation-specific.mat-elevation-z11{box-shadow:var(--mat-app-elevation-shadow-level-11, 0px 6px 7px -4px --mat-sys-shadow, 0px 11px 15px 1px --mat-sys-shadow, 0px 4px 20px 3px --mat-sys-shadow)}.mat-elevation-z12,.mat-mdc-elevation-specific.mat-elevation-z12{box-shadow:var(--mat-app-elevation-shadow-level-12, 0px 7px 8px -4px --mat-sys-shadow, 0px 12px 17px 2px --mat-sys-shadow, 0px 5px 22px 4px --mat-sys-shadow)}.mat-elevation-z13,.mat-mdc-elevation-specific.mat-elevation-z13{box-shadow:var(--mat-app-elevation-shadow-level-13, 0px 7px 8px -4px --mat-sys-shadow, 0px 13px 19px 2px --mat-sys-shadow, 0px 5px 24px 4px --mat-sys-shadow)}.mat-elevation-z14,.mat-mdc-elevation-specific.mat-elevation-z14{box-shadow:var(--mat-app-elevation-shadow-level-14, 0px 7px 9px -4px --mat-sys-shadow, 0px 14px 21px 2px --mat-sys-shadow, 0px 5px 26px 4px --mat-sys-shadow)}.mat-elevation-z15,.mat-mdc-elevation-specific.mat-elevation-z15{box-shadow:var(--mat-app-elevation-shadow-level-15, 0px 8px 9px -5px --mat-sys-shadow, 0px 15px 22px 2px --mat-sys-shadow, 0px 6px 28px 5px --mat-sys-shadow)}.mat-elevation-z16,.mat-mdc-elevation-specific.mat-elevation-z16{box-shadow:var(--mat-app-elevation-shadow-level-16, 0px 8px 10px -5px --mat-sys-shadow, 0px 16px 24px 2px --mat-sys-shadow, 0px 6px 30px 5px --mat-sys-shadow)}.mat-elevation-z17,.mat-mdc-elevation-specific.mat-elevation-z17{box-shadow:var(--mat-app-elevation-shadow-level-17, 0px 8px 11px -5px --mat-sys-shadow, 0px 17px 26px 2px --mat-sys-shadow, 0px 6px 32px 5px --mat-sys-shadow)}.mat-elevation-z18,.mat-mdc-elevation-specific.mat-elevation-z18{box-shadow:var(--mat-app-elevation-shadow-level-18, 0px 9px 11px -5px --mat-sys-shadow, 0px 18px 28px 2px --mat-sys-shadow, 0px 7px 34px 6px --mat-sys-shadow)}.mat-elevation-z19,.mat-mdc-elevation-specific.mat-elevation-z19{box-shadow:var(--mat-app-elevation-shadow-level-19, 0px 9px 12px -6px --mat-sys-shadow, 0px 19px 29px 2px --mat-sys-shadow, 0px 7px 36px 6px --mat-sys-shadow)}.mat-elevation-z20,.mat-mdc-elevation-specific.mat-elevation-z20{box-shadow:var(--mat-app-elevation-shadow-level-20, 0px 10px 13px -6px --mat-sys-shadow, 0px 20px 31px 3px --mat-sys-shadow, 0px 8px 38px 7px --mat-sys-shadow)}.mat-elevation-z21,.mat-mdc-elevation-specific.mat-elevation-z21{box-shadow:var(--mat-app-elevation-shadow-level-21, 0px 10px 13px -6px --mat-sys-shadow, 0px 21px 33px 3px --mat-sys-shadow, 0px 8px 40px 7px --mat-sys-shadow)}.mat-elevation-z22,.mat-mdc-elevation-specific.mat-elevation-z22{box-shadow:var(--mat-app-elevation-shadow-level-22, 0px 10px 14px -6px --mat-sys-shadow, 0px 22px 35px 3px --mat-sys-shadow, 0px 8px 42px 7px --mat-sys-shadow)}.mat-elevation-z23,.mat-mdc-elevation-specific.mat-elevation-z23{box-shadow:var(--mat-app-elevation-shadow-level-23, 0px 11px 14px -7px --mat-sys-shadow, 0px 23px 36px 3px --mat-sys-shadow, 0px 9px 44px 8px --mat-sys-shadow)}.mat-elevation-z24,.mat-mdc-elevation-specific.mat-elevation-z24{box-shadow:var(--mat-app-elevation-shadow-level-24, 0px 11px 15px -7px --mat-sys-shadow, 0px 24px 38px 3px --mat-sys-shadow, 0px 9px 46px 8px --mat-sys-shadow)}html{--mat-sys-on-surface: initial}.mat-app-background{background-color:var(--mat-app-background-color, var(--mat-sys-background, transparent));color:var(--mat-app-text-color, var(--mat-sys-on-background, inherit))}html{--mat-app-background-color: #fafafa;--mat-app-text-color: rgba(0, 0, 0, .87);--mat-app-elevation-shadow-level-0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-2: 0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-3: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-4: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-5: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 5px 8px 0px rgba(0, 0, 0, .14), 0px 1px 14px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-6: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-7: 0px 4px 5px -2px rgba(0, 0, 0, .2), 0px 7px 10px 1px rgba(0, 0, 0, .14), 0px 2px 16px 1px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-8: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-9: 0px 5px 6px -3px rgba(0, 0, 0, .2), 0px 9px 12px 1px rgba(0, 0, 0, .14), 0px 3px 16px 2px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-10: 0px 6px 6px -3px rgba(0, 0, 0, .2), 0px 10px 14px 1px rgba(0, 0, 0, .14), 0px 4px 18px 3px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-11: 0px 6px 7px -4px rgba(0, 0, 0, .2), 0px 11px 15px 1px rgba(0, 0, 0, .14), 0px 4px 20px 3px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-12: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-13: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 13px 19px 2px rgba(0, 0, 0, .14), 0px 5px 24px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-14: 0px 7px 9px -4px rgba(0, 0, 0, .2), 0px 14px 21px 2px rgba(0, 0, 0, .14), 0px 5px 26px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-15: 0px 8px 9px -5px rgba(0, 0, 0, .2), 0px 15px 22px 2px rgba(0, 0, 0, .14), 0px 6px 28px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-16: 0px 8px 10px -5px rgba(0, 0, 0, .2), 0px 16px 24px 2px rgba(0, 0, 0, .14), 0px 6px 30px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-17: 0px 8px 11px -5px rgba(0, 0, 0, .2), 0px 17px 26px 2px rgba(0, 0, 0, .14), 0px 6px 32px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-18: 0px 9px 11px -5px rgba(0, 0, 0, .2), 0px 18px 28px 2px rgba(0, 0, 0, .14), 0px 7px 34px 6px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-19: 0px 9px 12px -6px rgba(0, 0, 0, .2), 0px 19px 29px 2px rgba(0, 0, 0, .14), 0px 7px 36px 6px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-20: 0px 10px 13px -6px rgba(0, 0, 0, .2), 0px 20px 31px 3px rgba(0, 0, 0, .14), 0px 8px 38px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-21: 0px 10px 13px -6px rgba(0, 0, 0, .2), 0px 21px 33px 3px rgba(0, 0, 0, .14), 0px 8px 40px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-22: 0px 10px 14px -6px rgba(0, 0, 0, .2), 0px 22px 35px 3px rgba(0, 0, 0, .14), 0px 8px 42px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-23: 0px 11px 14px -7px rgba(0, 0, 0, .2), 0px 23px 36px 3px rgba(0, 0, 0, .14), 0px 9px 44px 8px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-24: 0px 11px 15px -7px rgba(0, 0, 0, .2), 0px 24px 38px 3px rgba(0, 0, 0, .14), 0px 9px 46px 8px rgba(0, 0, 0, .12)}html{--mat-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent)}html{--mat-option-selected-state-label-text-color: #215f9e;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-option-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-option-selected-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent)}.mat-accent{--mat-option-selected-state-label-text-color: #a7a7a7;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-option-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-option-selected-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent)}.mat-warn{--mat-option-selected-state-label-text-color: #f44336;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-option-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-option-selected-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent)}html{--mat-optgroup-label-text-color: rgba(0, 0, 0, .87)}html{--mat-pseudo-checkbox-full-selected-icon-color: #a7a7a7;--mat-pseudo-checkbox-full-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-unselected-icon-color: rgba(0, 0, 0, .54);--mat-pseudo-checkbox-full-disabled-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-full-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-minimal-selected-checkmark-color: #a7a7a7;--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}.mat-primary{--mat-pseudo-checkbox-full-selected-icon-color: #215f9e;--mat-pseudo-checkbox-full-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-unselected-icon-color: rgba(0, 0, 0, .54);--mat-pseudo-checkbox-full-disabled-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-full-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-minimal-selected-checkmark-color: #215f9e;--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}.mat-accent{--mat-pseudo-checkbox-full-selected-icon-color: #a7a7a7;--mat-pseudo-checkbox-full-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-unselected-icon-color: rgba(0, 0, 0, .54);--mat-pseudo-checkbox-full-disabled-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-full-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-minimal-selected-checkmark-color: #a7a7a7;--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}.mat-warn{--mat-pseudo-checkbox-full-selected-icon-color: #f44336;--mat-pseudo-checkbox-full-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-unselected-icon-color: rgba(0, 0, 0, .54);--mat-pseudo-checkbox-full-disabled-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-full-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-minimal-selected-checkmark-color: #f44336;--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}html{--mat-card-elevated-container-shape: 4px;--mat-card-outlined-container-shape: 4px;--mat-card-filled-container-shape: 4px;--mat-card-outlined-outline-width: 1px}html{--mat-card-elevated-container-color: white;--mat-card-elevated-container-elevation: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-card-outlined-container-color: white;--mat-card-outlined-container-elevation: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-card-outlined-outline-color: rgba(0, 0, 0, .12);--mat-card-subtitle-text-color: rgba(0, 0, 0, .54);--mat-card-filled-container-color: white;--mat-card-filled-container-elevation: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12)}html{--mat-progress-bar-active-indicator-height: 4px;--mat-progress-bar-track-height: 4px;--mat-progress-bar-track-shape: 0}.mat-mdc-progress-bar{--mat-progress-bar-active-indicator-color: #215f9e;--mat-progress-bar-track-color: rgba(33, 95, 158, .25)}.mat-mdc-progress-bar.mat-accent{--mat-progress-bar-active-indicator-color: #a7a7a7;--mat-progress-bar-track-color: rgba(167, 167, 167, .25)}.mat-mdc-progress-bar.mat-warn{--mat-progress-bar-active-indicator-color: #f44336;--mat-progress-bar-track-color: rgba(244, 67, 54, .25)}html{--mat-tooltip-container-shape: 4px;--mat-tooltip-supporting-text-line-height: 16px}html{--mat-tooltip-container-color: #424242;--mat-tooltip-supporting-text-color: white}html{--mat-form-field-filled-active-indicator-height: 1px;--mat-form-field-filled-focus-active-indicator-height: 2px;--mat-form-field-filled-container-shape: 4px;--mat-form-field-outlined-outline-width: 1px;--mat-form-field-outlined-focus-outline-width: 2px;--mat-form-field-outlined-container-shape: 4px}html{--mat-form-field-focus-select-arrow-color: color-mix(in srgb, #215f9e 87%, transparent);--mat-form-field-filled-caret-color: #215f9e;--mat-form-field-filled-focus-active-indicator-color: #215f9e;--mat-form-field-filled-focus-label-text-color: color-mix(in srgb, #215f9e 87%, transparent);--mat-form-field-outlined-caret-color: #215f9e;--mat-form-field-outlined-focus-outline-color: #215f9e;--mat-form-field-outlined-focus-label-text-color: color-mix(in srgb, #215f9e 87%, transparent);--mat-form-field-disabled-input-text-placeholder-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-state-layer-color: rgba(0, 0, 0, .87);--mat-form-field-error-text-color: #f44336;--mat-form-field-select-option-text-color: inherit;--mat-form-field-select-disabled-option-text-color: GrayText;--mat-form-field-leading-icon-color: unset;--mat-form-field-disabled-leading-icon-color: unset;--mat-form-field-trailing-icon-color: unset;--mat-form-field-disabled-trailing-icon-color: unset;--mat-form-field-error-focus-trailing-icon-color: unset;--mat-form-field-error-hover-trailing-icon-color: unset;--mat-form-field-error-trailing-icon-color: unset;--mat-form-field-enabled-select-arrow-color: rgba(0, 0, 0, .54);--mat-form-field-disabled-select-arrow-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-hover-state-layer-opacity: .04;--mat-form-field-focus-state-layer-opacity: .12;--mat-form-field-filled-container-color: #f6f6f6;--mat-form-field-filled-disabled-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-form-field-filled-label-text-color: rgba(0, 0, 0, .54);--mat-form-field-filled-hover-label-text-color: rgba(0, 0, 0, .54);--mat-form-field-filled-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-filled-input-text-color: rgba(0, 0, 0, .87);--mat-form-field-filled-disabled-input-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-filled-input-text-placeholder-color: rgba(0, 0, 0, .54);--mat-form-field-filled-error-hover-label-text-color: #f44336;--mat-form-field-filled-error-focus-label-text-color: #f44336;--mat-form-field-filled-error-label-text-color: #f44336;--mat-form-field-filled-error-caret-color: #f44336;--mat-form-field-filled-active-indicator-color: rgba(0, 0, 0, .54);--mat-form-field-filled-disabled-active-indicator-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-form-field-filled-hover-active-indicator-color: rgba(0, 0, 0, .87);--mat-form-field-filled-error-active-indicator-color: #f44336;--mat-form-field-filled-error-focus-active-indicator-color: #f44336;--mat-form-field-filled-error-hover-active-indicator-color: #f44336;--mat-form-field-outlined-label-text-color: rgba(0, 0, 0, .54);--mat-form-field-outlined-hover-label-text-color: rgba(0, 0, 0, .87);--mat-form-field-outlined-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-outlined-input-text-color: rgba(0, 0, 0, .87);--mat-form-field-outlined-disabled-input-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-outlined-input-text-placeholder-color: rgba(0, 0, 0, .54);--mat-form-field-outlined-error-caret-color: #f44336;--mat-form-field-outlined-error-focus-label-text-color: #f44336;--mat-form-field-outlined-error-label-text-color: #f44336;--mat-form-field-outlined-error-hover-label-text-color: #f44336;--mat-form-field-outlined-outline-color: rgba(0, 0, 0, .38);--mat-form-field-outlined-disabled-outline-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-form-field-outlined-hover-outline-color: rgba(0, 0, 0, .87);--mat-form-field-outlined-error-focus-outline-color: #f44336;--mat-form-field-outlined-error-hover-outline-color: #f44336;--mat-form-field-outlined-error-outline-color: #f44336}.mat-mdc-form-field.mat-accent{--mat-form-field-focus-select-arrow-color: color-mix(in srgb, #a7a7a7 87%, transparent);--mat-form-field-filled-caret-color: #a7a7a7;--mat-form-field-filled-focus-active-indicator-color: #a7a7a7;--mat-form-field-filled-focus-label-text-color: color-mix(in srgb, #a7a7a7 87%, transparent);--mat-form-field-outlined-caret-color: #a7a7a7;--mat-form-field-outlined-focus-outline-color: #a7a7a7;--mat-form-field-outlined-focus-label-text-color: color-mix(in srgb, #a7a7a7 87%, transparent)}.mat-mdc-form-field.mat-warn{--mat-form-field-focus-select-arrow-color: color-mix(in srgb, #f44336 87%, transparent);--mat-form-field-filled-caret-color: #f44336;--mat-form-field-filled-focus-active-indicator-color: #f44336;--mat-form-field-filled-focus-label-text-color: color-mix(in srgb, #f44336 87%, transparent);--mat-form-field-outlined-caret-color: #f44336;--mat-form-field-outlined-focus-outline-color: #f44336;--mat-form-field-outlined-focus-label-text-color: color-mix(in srgb, #f44336 87%, transparent)}html{--mat-form-field-container-height: 56px;--mat-form-field-filled-label-display: block;--mat-form-field-container-vertical-padding: 16px;--mat-form-field-filled-with-label-container-padding-top: 24px;--mat-form-field-filled-with-label-container-padding-bottom: 8px}html{--mat-select-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-placeholder-text-color: rgba(0, 0, 0, .54);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-focused-arrow-color: #215f9e;--mat-select-invalid-arrow-color: #f44336}.mat-mdc-form-field.mat-accent{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-placeholder-text-color: rgba(0, 0, 0, .54);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-focused-arrow-color: #a7a7a7;--mat-select-invalid-arrow-color: #f44336}.mat-mdc-form-field.mat-warn{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-placeholder-text-color: rgba(0, 0, 0, .54);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-focused-arrow-color: #f44336;--mat-select-invalid-arrow-color: #f44336}html{--mat-select-arrow-transform: translateY(-8px)}html{--mat-autocomplete-container-shape: 4px;--mat-autocomplete-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-autocomplete-background-color: white}html{--mat-dialog-container-shape: 4px;--mat-dialog-container-elevation-shadow: 0px 11px 15px -7px rgba(0, 0, 0, .2), 0px 24px 38px 3px rgba(0, 0, 0, .14), 0px 9px 46px 8px rgba(0, 0, 0, .12);--mat-dialog-container-max-width: 80vw;--mat-dialog-container-small-max-width: 80vw;--mat-dialog-container-min-width: 0;--mat-dialog-actions-alignment: start;--mat-dialog-actions-padding: 8px;--mat-dialog-content-padding: 20px 24px;--mat-dialog-with-actions-content-padding: 20px 24px;--mat-dialog-headline-padding: 0 24px 9px}html{--mat-dialog-container-color: white;--mat-dialog-subhead-color: rgba(0, 0, 0, .87);--mat-dialog-supporting-text-color: rgba(0, 0, 0, .54)}.mat-mdc-standard-chip{--mat-chip-container-shape-radius: 16px;--mat-chip-disabled-container-opacity: .4;--mat-chip-disabled-outline-color: transparent;--mat-chip-flat-selected-outline-width: 0;--mat-chip-focus-outline-color: transparent;--mat-chip-hover-state-layer-opacity: .04;--mat-chip-outline-color: transparent;--mat-chip-outline-width: 0;--mat-chip-selected-hover-state-layer-opacity: .04;--mat-chip-selected-trailing-action-state-layer-color: transparent;--mat-chip-trailing-action-focus-opacity: 1;--mat-chip-trailing-action-focus-state-layer-opacity: 0;--mat-chip-trailing-action-hover-state-layer-opacity: 0;--mat-chip-trailing-action-opacity: .54;--mat-chip-trailing-action-state-layer-color: transparent;--mat-chip-with-avatar-avatar-shape-radius: 14px;--mat-chip-with-avatar-avatar-size: 28px;--mat-chip-with-avatar-disabled-avatar-opacity: 1;--mat-chip-with-icon-disabled-icon-opacity: 1;--mat-chip-with-icon-icon-size: 18px;--mat-chip-with-trailing-icon-disabled-trailing-icon-opacity: 1}.mat-mdc-standard-chip{--mat-chip-disabled-label-text-color: rgba(0, 0, 0, .87);--mat-chip-elevated-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-chip-elevated-disabled-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-chip-elevated-selected-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-chip-flat-disabled-selected-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-chip-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-focus-state-layer-opacity: .12;--mat-chip-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-label-text-color: rgba(0, 0, 0, .87);--mat-chip-selected-disabled-trailing-icon-color: rgba(0, 0, 0, .87);--mat-chip-selected-focus-state-layer-color: .12;--mat-chip-selected-focus-state-layer-opacity: .12;--mat-chip-selected-hover-state-layer-color: .04;--mat-chip-selected-label-text-color: rgba(0, 0, 0, .87);--mat-chip-selected-trailing-icon-color: rgba(0, 0, 0, .87);--mat-chip-with-icon-disabled-icon-color: rgba(0, 0, 0, .87);--mat-chip-with-icon-icon-color: rgba(0, 0, 0, .87);--mat-chip-with-icon-selected-icon-color: rgba(0, 0, 0, .87);--mat-chip-with-trailing-icon-disabled-trailing-icon-color: rgba(0, 0, 0, .87);--mat-chip-with-trailing-icon-trailing-icon-color: rgba(0, 0, 0, .87)}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-primary,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-primary{--mat-chip-disabled-label-text-color: #F8F9F9;--mat-chip-elevated-container-color: #215f9e;--mat-chip-elevated-disabled-container-color: #215f9e;--mat-chip-elevated-selected-container-color: #215f9e;--mat-chip-flat-disabled-selected-container-color: #215f9e;--mat-chip-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-focus-state-layer-opacity: .12;--mat-chip-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-label-text-color: #F8F9F9;--mat-chip-selected-disabled-trailing-icon-color: #F8F9F9;--mat-chip-selected-focus-state-layer-color: .12;--mat-chip-selected-focus-state-layer-opacity: .12;--mat-chip-selected-hover-state-layer-color: .04;--mat-chip-selected-label-text-color: #F8F9F9;--mat-chip-selected-trailing-icon-color: #F8F9F9;--mat-chip-with-icon-disabled-icon-color: #F8F9F9;--mat-chip-with-icon-icon-color: #F8F9F9;--mat-chip-with-icon-selected-icon-color: #F8F9F9;--mat-chip-with-trailing-icon-disabled-trailing-icon-color: #F8F9F9;--mat-chip-with-trailing-icon-trailing-icon-color: #F8F9F9}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-accent,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-accent{--mat-chip-disabled-label-text-color: #F8F9F9;--mat-chip-elevated-container-color: #a7a7a7;--mat-chip-elevated-disabled-container-color: #a7a7a7;--mat-chip-elevated-selected-container-color: #a7a7a7;--mat-chip-flat-disabled-selected-container-color: #a7a7a7;--mat-chip-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-focus-state-layer-opacity: .12;--mat-chip-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-label-text-color: #F8F9F9;--mat-chip-selected-disabled-trailing-icon-color: #F8F9F9;--mat-chip-selected-focus-state-layer-color: .12;--mat-chip-selected-focus-state-layer-opacity: .12;--mat-chip-selected-hover-state-layer-color: .04;--mat-chip-selected-label-text-color: #F8F9F9;--mat-chip-selected-trailing-icon-color: #F8F9F9;--mat-chip-with-icon-disabled-icon-color: #F8F9F9;--mat-chip-with-icon-icon-color: #F8F9F9;--mat-chip-with-icon-selected-icon-color: #F8F9F9;--mat-chip-with-trailing-icon-disabled-trailing-icon-color: #F8F9F9;--mat-chip-with-trailing-icon-trailing-icon-color: #F8F9F9}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-warn,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-warn{--mat-chip-disabled-label-text-color: white;--mat-chip-elevated-container-color: #f44336;--mat-chip-elevated-disabled-container-color: #f44336;--mat-chip-elevated-selected-container-color: #f44336;--mat-chip-flat-disabled-selected-container-color: #f44336;--mat-chip-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-focus-state-layer-opacity: .12;--mat-chip-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-label-text-color: white;--mat-chip-selected-disabled-trailing-icon-color: white;--mat-chip-selected-focus-state-layer-color: .12;--mat-chip-selected-focus-state-layer-opacity: .12;--mat-chip-selected-hover-state-layer-color: .04;--mat-chip-selected-label-text-color: white;--mat-chip-selected-trailing-icon-color: white;--mat-chip-with-icon-disabled-icon-color: white;--mat-chip-with-icon-icon-color: white;--mat-chip-with-icon-selected-icon-color: white;--mat-chip-with-trailing-icon-disabled-trailing-icon-color: white;--mat-chip-with-trailing-icon-trailing-icon-color: white}.mat-mdc-chip.mat-mdc-standard-chip{--mat-chip-container-height: 32px}html{--mat-slide-toggle-disabled-handle-opacity: .38;--mat-slide-toggle-disabled-selected-handle-opacity: .38;--mat-slide-toggle-disabled-selected-icon-opacity: .38;--mat-slide-toggle-disabled-track-opacity: .12;--mat-slide-toggle-disabled-unselected-handle-opacity: .38;--mat-slide-toggle-disabled-unselected-icon-opacity: .38;--mat-slide-toggle-disabled-unselected-track-outline-color: transparent;--mat-slide-toggle-disabled-unselected-track-outline-width: 1px;--mat-slide-toggle-handle-height: 20px;--mat-slide-toggle-handle-shape: 10px;--mat-slide-toggle-handle-width: 20px;--mat-slide-toggle-hidden-track-opacity: 1;--mat-slide-toggle-hidden-track-transition: transform 75ms 0ms cubic-bezier(.4, 0, .6, 1);--mat-slide-toggle-pressed-handle-size: 20px;--mat-slide-toggle-selected-focus-state-layer-opacity: .12;--mat-slide-toggle-selected-handle-horizontal-margin: 0;--mat-slide-toggle-selected-handle-size: 20px;--mat-slide-toggle-selected-hover-state-layer-opacity: .04;--mat-slide-toggle-selected-icon-size: 18px;--mat-slide-toggle-selected-pressed-handle-horizontal-margin: 0;--mat-slide-toggle-selected-pressed-state-layer-opacity: .12;--mat-slide-toggle-selected-track-outline-color: transparent;--mat-slide-toggle-selected-track-outline-width: 1px;--mat-slide-toggle-selected-with-icon-handle-horizontal-margin: 0;--mat-slide-toggle-track-height: 14px;--mat-slide-toggle-track-outline-color: transparent;--mat-slide-toggle-track-outline-width: 1px;--mat-slide-toggle-track-shape: 7px;--mat-slide-toggle-track-width: 36px;--mat-slide-toggle-unselected-focus-state-layer-opacity: .12;--mat-slide-toggle-unselected-handle-horizontal-margin: 0;--mat-slide-toggle-unselected-handle-size: 20px;--mat-slide-toggle-unselected-hover-state-layer-opacity: .12;--mat-slide-toggle-unselected-icon-size: 18px;--mat-slide-toggle-unselected-pressed-handle-horizontal-margin: 0;--mat-slide-toggle-unselected-pressed-state-layer-opacity: .1;--mat-slide-toggle-unselected-with-icon-handle-horizontal-margin: 0;--mat-slide-toggle-visible-track-opacity: 1;--mat-slide-toggle-visible-track-transition: transform 75ms 0ms cubic-bezier(0, 0, .2, 1);--mat-slide-toggle-with-icon-handle-size: 20px;--mat-slide-toggle-touch-target-size: 48px}html{--mat-slide-toggle-selected-icon-color: #F8F9F9;--mat-slide-toggle-disabled-selected-icon-color: #F8F9F9;--mat-slide-toggle-selected-focus-state-layer-color: #215f9e;--mat-slide-toggle-selected-handle-color: #215f9e;--mat-slide-toggle-selected-hover-state-layer-color: #215f9e;--mat-slide-toggle-selected-pressed-state-layer-color: #215f9e;--mat-slide-toggle-selected-focus-handle-color: #215f9e;--mat-slide-toggle-selected-hover-handle-color: #215f9e;--mat-slide-toggle-selected-pressed-handle-color: #215f9e;--mat-slide-toggle-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-slide-toggle-disabled-handle-elevation-shadow: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-slide-toggle-disabled-selected-handle-color: rgba(0, 0, 0, .87);--mat-slide-toggle-disabled-selected-track-color: rgba(0, 0, 0, .87);--mat-slide-toggle-disabled-unselected-handle-color: rgba(0, 0, 0, .87);--mat-slide-toggle-disabled-unselected-icon-color: #f6f6f6;--mat-slide-toggle-disabled-unselected-track-color: rgba(0, 0, 0, .87);--mat-slide-toggle-handle-elevation-shadow: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-slide-toggle-handle-surface-color: white;--mat-slide-toggle-label-text-color: rgba(0, 0, 0, .87);--mat-slide-toggle-unselected-hover-handle-color: #424242;--mat-slide-toggle-unselected-focus-handle-color: #424242;--mat-slide-toggle-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-slide-toggle-unselected-focus-track-color: rgba(0, 0, 0, .12);--mat-slide-toggle-unselected-icon-color: #f6f6f6;--mat-slide-toggle-unselected-handle-color: rgba(0, 0, 0, .54);--mat-slide-toggle-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-slide-toggle-unselected-hover-track-color: rgba(0, 0, 0, .12);--mat-slide-toggle-unselected-pressed-handle-color: #424242;--mat-slide-toggle-unselected-pressed-track-color: rgba(0, 0, 0, .12);--mat-slide-toggle-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87);--mat-slide-toggle-unselected-track-color: rgba(0, 0, 0, .12)}.mat-mdc-slide-toggle.mat-accent{--mat-slide-toggle-selected-icon-color: #F8F9F9;--mat-slide-toggle-disabled-selected-icon-color: #F8F9F9;--mat-slide-toggle-selected-focus-state-layer-color: #a7a7a7;--mat-slide-toggle-selected-handle-color: #a7a7a7;--mat-slide-toggle-selected-hover-state-layer-color: #a7a7a7;--mat-slide-toggle-selected-pressed-state-layer-color: #a7a7a7;--mat-slide-toggle-selected-focus-handle-color: #a7a7a7;--mat-slide-toggle-selected-hover-handle-color: #a7a7a7;--mat-slide-toggle-selected-pressed-handle-color: #a7a7a7}.mat-mdc-slide-toggle.mat-warn{--mat-slide-toggle-selected-icon-color: white;--mat-slide-toggle-disabled-selected-icon-color: white;--mat-slide-toggle-selected-focus-state-layer-color: #f44336;--mat-slide-toggle-selected-handle-color: #f44336;--mat-slide-toggle-selected-hover-state-layer-color: #f44336;--mat-slide-toggle-selected-pressed-state-layer-color: #f44336;--mat-slide-toggle-selected-focus-handle-color: #f44336;--mat-slide-toggle-selected-hover-handle-color: #f44336;--mat-slide-toggle-selected-pressed-handle-color: #f44336;--mat-slide-toggle-selected-focus-track-color: #e57373;--mat-slide-toggle-selected-hover-track-color: #e57373;--mat-slide-toggle-selected-pressed-track-color: #e57373;--mat-slide-toggle-selected-track-color: #e57373}html{--mat-slide-toggle-state-layer-size: 40px;--mat-slide-toggle-touch-target-display: block}html{--mat-radio-disabled-selected-icon-opacity: .38;--mat-radio-disabled-unselected-icon-opacity: .38;--mat-radio-state-layer-size: 40px;--mat-radio-touch-target-size: 48px}.mat-mdc-radio-button.mat-primary{--mat-radio-checked-ripple-color: #215f9e;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: #215f9e;--mat-radio-selected-hover-icon-color: #215f9e;--mat-radio-selected-icon-color: #215f9e;--mat-radio-selected-pressed-icon-color: #215f9e;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.mat-mdc-radio-button.mat-accent{--mat-radio-checked-ripple-color: #a7a7a7;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: #a7a7a7;--mat-radio-selected-hover-icon-color: #a7a7a7;--mat-radio-selected-icon-color: #a7a7a7;--mat-radio-selected-pressed-icon-color: #a7a7a7;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.mat-mdc-radio-button.mat-warn{--mat-radio-checked-ripple-color: #f44336;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: #f44336;--mat-radio-selected-hover-icon-color: #f44336;--mat-radio-selected-icon-color: #f44336;--mat-radio-selected-pressed-icon-color: #f44336;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}html{--mat-radio-state-layer-size: 40px;--mat-radio-touch-target-display: block}html{--mat-slider-active-track-height: 6px;--mat-slider-active-track-shape: 9999px;--mat-slider-handle-elevation: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-slider-handle-height: 20px;--mat-slider-handle-shape: 50%;--mat-slider-handle-width: 20px;--mat-slider-inactive-track-height: 4px;--mat-slider-inactive-track-shape: 9999px;--mat-slider-value-indicator-border-radius: 4px;--mat-slider-value-indicator-caret-display: block;--mat-slider-value-indicator-container-transform: translateX(-50%);--mat-slider-value-indicator-height: 32px;--mat-slider-value-indicator-padding: 0 12px;--mat-slider-value-indicator-text-transform: none;--mat-slider-value-indicator-width: auto;--mat-slider-with-overlap-handle-outline-width: 1px;--mat-slider-with-tick-marks-active-container-opacity: .6;--mat-slider-with-tick-marks-container-shape: 50%;--mat-slider-with-tick-marks-container-size: 2px;--mat-slider-with-tick-marks-inactive-container-opacity: .6;--mat-slider-value-indicator-transform-origin: bottom}html{--mat-slider-active-track-color: #215f9e;--mat-slider-focus-handle-color: #215f9e;--mat-slider-handle-color: #215f9e;--mat-slider-hover-handle-color: #215f9e;--mat-slider-focus-state-layer-color: color-mix(in srgb, #215f9e 12%, transparent);--mat-slider-hover-state-layer-color: color-mix(in srgb, #215f9e 4%, transparent);--mat-slider-inactive-track-color: #215f9e;--mat-slider-ripple-color: #215f9e;--mat-slider-with-tick-marks-active-container-color: #F8F9F9;--mat-slider-with-tick-marks-inactive-container-color: #215f9e;--mat-slider-disabled-active-track-color: rgba(0, 0, 0, .87);--mat-slider-disabled-handle-color: rgba(0, 0, 0, .87);--mat-slider-disabled-inactive-track-color: rgba(0, 0, 0, .87);--mat-slider-label-container-color: #424242;--mat-slider-label-label-text-color: white;--mat-slider-value-indicator-opacity: 1;--mat-slider-with-overlap-handle-outline-color: rgba(0, 0, 0, .87);--mat-slider-with-tick-marks-disabled-container-color: rgba(0, 0, 0, .87)}.mat-accent{--mat-slider-active-track-color: #a7a7a7;--mat-slider-focus-handle-color: #a7a7a7;--mat-slider-handle-color: #a7a7a7;--mat-slider-hover-handle-color: #a7a7a7;--mat-slider-focus-state-layer-color: color-mix(in srgb, #a7a7a7 12%, transparent);--mat-slider-hover-state-layer-color: color-mix(in srgb, #a7a7a7 4%, transparent);--mat-slider-inactive-track-color: #a7a7a7;--mat-slider-ripple-color: #a7a7a7;--mat-slider-with-tick-marks-active-container-color: #F8F9F9;--mat-slider-with-tick-marks-inactive-container-color: #a7a7a7}.mat-warn{--mat-slider-active-track-color: #f44336;--mat-slider-focus-handle-color: #f44336;--mat-slider-handle-color: #f44336;--mat-slider-hover-handle-color: #f44336;--mat-slider-focus-state-layer-color: color-mix(in srgb, #f44336 12%, transparent);--mat-slider-hover-state-layer-color: color-mix(in srgb, #f44336 4%, transparent);--mat-slider-inactive-track-color: #f44336;--mat-slider-ripple-color: #f44336;--mat-slider-with-tick-marks-active-container-color: white;--mat-slider-with-tick-marks-inactive-container-color: #f44336}html{--mat-menu-container-shape: 4px;--mat-menu-divider-bottom-spacing: 0;--mat-menu-divider-top-spacing: 0;--mat-menu-item-spacing: 16px;--mat-menu-item-icon-size: 24px;--mat-menu-item-leading-spacing: 16px;--mat-menu-item-trailing-spacing: 16px;--mat-menu-item-with-icon-leading-spacing: 16px;--mat-menu-item-with-icon-trailing-spacing: 16px;--mat-menu-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-menu-item-label-text-color: rgba(0, 0, 0, .87);--mat-menu-item-icon-color: rgba(0, 0, 0, .87);--mat-menu-item-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-menu-item-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-menu-container-color: white;--mat-menu-divider-color: rgba(0, 0, 0, .12)}html{--mat-list-active-indicator-color: transparent;--mat-list-active-indicator-shape: 4px;--mat-list-list-item-container-shape: 0;--mat-list-list-item-leading-avatar-shape: 50%;--mat-list-list-item-container-color: transparent;--mat-list-list-item-selected-container-color: transparent;--mat-list-list-item-leading-avatar-color: transparent;--mat-list-list-item-leading-icon-size: 24px;--mat-list-list-item-leading-avatar-size: 40px;--mat-list-list-item-trailing-icon-size: 24px;--mat-list-list-item-disabled-state-layer-color: transparent;--mat-list-list-item-disabled-state-layer-opacity: 0;--mat-list-list-item-disabled-label-text-opacity: .38;--mat-list-list-item-disabled-leading-icon-opacity: .38;--mat-list-list-item-disabled-trailing-icon-opacity: .38}html{--mat-list-list-item-label-text-color: rgba(0, 0, 0, .87);--mat-list-list-item-supporting-text-color: rgba(0, 0, 0, .54);--mat-list-list-item-leading-icon-color: rgba(0, 0, 0, .54);--mat-list-list-item-trailing-supporting-text-color: rgba(0, 0, 0, .54);--mat-list-list-item-trailing-icon-color: rgba(0, 0, 0, .54);--mat-list-list-item-selected-trailing-icon-color: rgba(0, 0, 0, .54);--mat-list-list-item-disabled-label-text-color: rgba(0, 0, 0, .87);--mat-list-list-item-disabled-leading-icon-color: rgba(0, 0, 0, .87);--mat-list-list-item-disabled-trailing-icon-color: rgba(0, 0, 0, .87);--mat-list-list-item-hover-label-text-color: rgba(0, 0, 0, .87);--mat-list-list-item-hover-leading-icon-color: rgba(0, 0, 0, .54);--mat-list-list-item-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-list-list-item-hover-state-layer-opacity: .04;--mat-list-list-item-hover-trailing-icon-color: rgba(0, 0, 0, .54);--mat-list-list-item-focus-label-text-color: rgba(0, 0, 0, .87);--mat-list-list-item-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-list-list-item-focus-state-layer-opacity: .12}.mdc-list-item__start,.mdc-list-item__end{--mat-radio-checked-ripple-color: #215f9e;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: #215f9e;--mat-radio-selected-hover-icon-color: #215f9e;--mat-radio-selected-icon-color: #215f9e;--mat-radio-selected-pressed-icon-color: #215f9e;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.mat-accent .mdc-list-item__start,.mat-accent .mdc-list-item__end{--mat-radio-checked-ripple-color: #a7a7a7;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: #a7a7a7;--mat-radio-selected-hover-icon-color: #a7a7a7;--mat-radio-selected-icon-color: #a7a7a7;--mat-radio-selected-pressed-icon-color: #a7a7a7;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.mat-warn .mdc-list-item__start,.mat-warn .mdc-list-item__end{--mat-radio-checked-ripple-color: #f44336;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: #f44336;--mat-radio-selected-hover-icon-color: #f44336;--mat-radio-selected-icon-color: #f44336;--mat-radio-selected-pressed-icon-color: #f44336;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.mat-mdc-list-option{--mat-checkbox-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-label-text-color: rgba(0, 0, 0, .87);--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: #F8F9F9;--mat-checkbox-selected-focus-icon-color: #215f9e;--mat-checkbox-selected-hover-icon-color: #215f9e;--mat-checkbox-selected-icon-color: #215f9e;--mat-checkbox-selected-pressed-icon-color: #215f9e;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: #215f9e;--mat-checkbox-selected-hover-state-layer-color: #215f9e;--mat-checkbox-selected-pressed-state-layer-color: #215f9e;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.mat-mdc-list-option.mat-accent{--mat-checkbox-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-label-text-color: rgba(0, 0, 0, .87);--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: #F8F9F9;--mat-checkbox-selected-focus-icon-color: #a7a7a7;--mat-checkbox-selected-hover-icon-color: #a7a7a7;--mat-checkbox-selected-icon-color: #a7a7a7;--mat-checkbox-selected-pressed-icon-color: #a7a7a7;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: #a7a7a7;--mat-checkbox-selected-hover-state-layer-color: #a7a7a7;--mat-checkbox-selected-pressed-state-layer-color: #a7a7a7;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.mat-mdc-list-option.mat-warn{--mat-checkbox-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-label-text-color: rgba(0, 0, 0, .87);--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: white;--mat-checkbox-selected-focus-icon-color: #f44336;--mat-checkbox-selected-hover-icon-color: #f44336;--mat-checkbox-selected-icon-color: #f44336;--mat-checkbox-selected-pressed-icon-color: #f44336;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: #f44336;--mat-checkbox-selected-hover-state-layer-color: #f44336;--mat-checkbox-selected-pressed-state-layer-color: #f44336;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected .mdc-list-item__primary-text,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected .mdc-list-item__start,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated .mdc-list-item__primary-text,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated .mdc-list-item__start{color:#215f9e}.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__start,.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__content,.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__end{opacity:1}html{--mat-list-list-item-leading-icon-start-space: 16px;--mat-list-list-item-leading-icon-end-space: 32px;--mat-list-list-item-one-line-container-height: 48px;--mat-list-list-item-two-line-container-height: 64px;--mat-list-list-item-three-line-container-height: 88px}.mdc-list-item__start,.mdc-list-item__end{--mat-radio-state-layer-size: 40px;--mat-radio-touch-target-display: block}.mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-one-line,.mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-one-line,.mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-one-line{height:56px}.mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines,.mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines,.mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines{height:72px}html{--mat-paginator-page-size-select-width: 84px;--mat-paginator-page-size-select-touch-target-height: 48px}html{--mat-paginator-container-text-color: rgba(0, 0, 0, .87);--mat-paginator-container-background-color: white;--mat-paginator-enabled-icon-color: rgba(0, 0, 0, .54);--mat-paginator-disabled-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}html{--mat-paginator-container-size: 56px;--mat-paginator-form-field-container-height: 40px;--mat-paginator-form-field-container-vertical-padding: 8px;--mat-paginator-touch-target-display: block}html{--mat-tab-container-height: 48px;--mat-tab-divider-color: transparent;--mat-tab-divider-height: 0;--mat-tab-active-indicator-height: 2px;--mat-tab-active-indicator-shape: 0}.mat-mdc-tab-group,.mat-mdc-tab-nav-bar{--mat-tab-disabled-ripple-color: rgba(0, 0, 0, .54);--mat-tab-pagination-icon-color: rgba(0, 0, 0, .87);--mat-tab-inactive-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-label-text-color: #215f9e;--mat-tab-active-ripple-color: #215f9e;--mat-tab-inactive-ripple-color: #215f9e;--mat-tab-inactive-focus-label-text-color: rgba(0, 0, 0, .54);--mat-tab-inactive-hover-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-focus-label-text-color: #215f9e;--mat-tab-active-hover-label-text-color: #215f9e;--mat-tab-active-focus-indicator-color: #215f9e;--mat-tab-active-hover-indicator-color: #215f9e;--mat-tab-active-indicator-color: #215f9e}.mat-mdc-tab-group.mat-accent,.mat-mdc-tab-nav-bar.mat-accent{--mat-tab-disabled-ripple-color: rgba(0, 0, 0, .54);--mat-tab-pagination-icon-color: rgba(0, 0, 0, .87);--mat-tab-inactive-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-label-text-color: #a7a7a7;--mat-tab-active-ripple-color: #a7a7a7;--mat-tab-inactive-ripple-color: #a7a7a7;--mat-tab-inactive-focus-label-text-color: rgba(0, 0, 0, .54);--mat-tab-inactive-hover-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-focus-label-text-color: #a7a7a7;--mat-tab-active-hover-label-text-color: #a7a7a7;--mat-tab-active-focus-indicator-color: #a7a7a7;--mat-tab-active-hover-indicator-color: #a7a7a7;--mat-tab-active-indicator-color: #a7a7a7}.mat-mdc-tab-group.mat-warn,.mat-mdc-tab-nav-bar.mat-warn{--mat-tab-disabled-ripple-color: rgba(0, 0, 0, .54);--mat-tab-pagination-icon-color: rgba(0, 0, 0, .87);--mat-tab-inactive-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-label-text-color: #f44336;--mat-tab-active-ripple-color: #f44336;--mat-tab-inactive-ripple-color: #f44336;--mat-tab-inactive-focus-label-text-color: rgba(0, 0, 0, .54);--mat-tab-inactive-hover-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-focus-label-text-color: #f44336;--mat-tab-active-hover-label-text-color: #f44336;--mat-tab-active-focus-indicator-color: #f44336;--mat-tab-active-hover-indicator-color: #f44336;--mat-tab-active-indicator-color: #f44336}.mat-mdc-tab-group.mat-background-primary,.mat-mdc-tab-nav-bar.mat-background-primary{--mat-tab-background-color: #215f9e;--mat-tab-foreground-color: #F8F9F9}.mat-mdc-tab-group.mat-background-accent,.mat-mdc-tab-nav-bar.mat-background-accent{--mat-tab-background-color: #a7a7a7;--mat-tab-foreground-color: #F8F9F9}.mat-mdc-tab-group.mat-background-warn,.mat-mdc-tab-nav-bar.mat-background-warn{--mat-tab-background-color: #f44336;--mat-tab-foreground-color: white}.mat-mdc-tab-header{--mat-tab-container-height: 48px}html{--mat-checkbox-disabled-selected-checkmark-color: white;--mat-checkbox-selected-focus-state-layer-opacity: .12;--mat-checkbox-selected-hover-state-layer-opacity: .04;--mat-checkbox-selected-pressed-state-layer-opacity: .12;--mat-checkbox-unselected-focus-state-layer-opacity: .12;--mat-checkbox-unselected-hover-state-layer-opacity: .04;--mat-checkbox-unselected-pressed-state-layer-opacity: .12;--mat-checkbox-touch-target-size: 48px}html{--mat-checkbox-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-label-text-color: rgba(0, 0, 0, .87);--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: #F8F9F9;--mat-checkbox-selected-focus-icon-color: #a7a7a7;--mat-checkbox-selected-hover-icon-color: #a7a7a7;--mat-checkbox-selected-icon-color: #a7a7a7;--mat-checkbox-selected-pressed-icon-color: #a7a7a7;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: #a7a7a7;--mat-checkbox-selected-hover-state-layer-color: #a7a7a7;--mat-checkbox-selected-pressed-state-layer-color: #a7a7a7;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.mat-mdc-checkbox.mat-primary{--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: #F8F9F9;--mat-checkbox-selected-focus-icon-color: #215f9e;--mat-checkbox-selected-hover-icon-color: #215f9e;--mat-checkbox-selected-icon-color: #215f9e;--mat-checkbox-selected-pressed-icon-color: #215f9e;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: #215f9e;--mat-checkbox-selected-hover-state-layer-color: #215f9e;--mat-checkbox-selected-pressed-state-layer-color: #215f9e;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.mat-mdc-checkbox.mat-warn{--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: white;--mat-checkbox-selected-focus-icon-color: #f44336;--mat-checkbox-selected-hover-icon-color: #f44336;--mat-checkbox-selected-icon-color: #f44336;--mat-checkbox-selected-pressed-icon-color: #f44336;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: #f44336;--mat-checkbox-selected-hover-state-layer-color: #f44336;--mat-checkbox-selected-pressed-state-layer-color: #f44336;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}html{--mat-checkbox-touch-target-display: block;--mat-checkbox-state-layer-size: 40px}html{--mat-button-filled-container-shape: 4px;--mat-button-filled-horizontal-padding: 16px;--mat-button-filled-icon-offset: -4px;--mat-button-filled-icon-spacing: 8px;--mat-button-filled-touch-target-size: 48px;--mat-button-outlined-container-shape: 4px;--mat-button-outlined-horizontal-padding: 15px;--mat-button-outlined-icon-offset: -4px;--mat-button-outlined-icon-spacing: 8px;--mat-button-outlined-keep-touch-target: false;--mat-button-outlined-outline-width: 1px;--mat-button-outlined-touch-target-size: 48px;--mat-button-protected-container-elevation-shadow: 0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mat-button-protected-container-shape: 4px;--mat-button-protected-disabled-container-elevation-shadow: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-button-protected-focus-container-elevation-shadow: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mat-button-protected-horizontal-padding: 16px;--mat-button-protected-hover-container-elevation-shadow: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mat-button-protected-icon-offset: -4px;--mat-button-protected-icon-spacing: 8px;--mat-button-protected-pressed-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-button-protected-touch-target-size: 48px;--mat-button-text-container-shape: 4px;--mat-button-text-horizontal-padding: 8px;--mat-button-text-icon-offset: 0;--mat-button-text-icon-spacing: 8px;--mat-button-text-with-icon-horizontal-padding: 8px;--mat-button-text-touch-target-size: 48px;--mat-button-tonal-container-shape: 4px;--mat-button-tonal-horizontal-padding: 16px;--mat-button-tonal-icon-offset: -4px;--mat-button-tonal-icon-spacing: 8px;--mat-button-tonal-touch-target-size: 48px}html{--mat-button-filled-container-color: white;--mat-button-filled-disabled-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-filled-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-filled-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-button-filled-focus-state-layer-opacity: .12;--mat-button-filled-hover-state-layer-opacity: .04;--mat-button-filled-label-text-color: rgba(0, 0, 0, .87);--mat-button-filled-pressed-state-layer-opacity: .12;--mat-button-filled-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-filled-state-layer-color: rgba(0, 0, 0, .87);--mat-button-outlined-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-outlined-disabled-outline-color: rgba(0, 0, 0, .12);--mat-button-outlined-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-button-outlined-focus-state-layer-opacity: .12;--mat-button-outlined-hover-state-layer-opacity: .04;--mat-button-outlined-label-text-color: rgba(0, 0, 0, .87);--mat-button-outlined-outline-color: rgba(0, 0, 0, .12);--mat-button-outlined-pressed-state-layer-opacity: .12;--mat-button-outlined-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-outlined-state-layer-color: rgba(0, 0, 0, .87);--mat-button-protected-container-color: white;--mat-button-protected-disabled-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-protected-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-protected-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-button-protected-focus-state-layer-opacity: .12;--mat-button-protected-hover-state-layer-opacity: .04;--mat-button-protected-label-text-color: rgba(0, 0, 0, .87);--mat-button-protected-pressed-state-layer-opacity: .12;--mat-button-protected-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-protected-state-layer-color: rgba(0, 0, 0, .87);--mat-button-text-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-text-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-button-text-focus-state-layer-opacity: .12;--mat-button-text-hover-state-layer-opacity: .04;--mat-button-text-label-text-color: rgba(0, 0, 0, .87);--mat-button-text-pressed-state-layer-opacity: .12;--mat-button-text-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-text-state-layer-color: rgba(0, 0, 0, .87);--mat-button-tonal-container-color: white;--mat-button-tonal-disabled-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-tonal-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-tonal-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-button-tonal-focus-state-layer-opacity: .12;--mat-button-tonal-hover-state-layer-opacity: .04;--mat-button-tonal-label-text-color: rgba(0, 0, 0, .87);--mat-button-tonal-pressed-state-layer-opacity: .12;--mat-button-tonal-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-tonal-state-layer-color: rgba(0, 0, 0, .87)}.mat-mdc-button.mat-primary,.mat-mdc-unelevated-button.mat-primary,.mat-mdc-raised-button.mat-primary,.mat-mdc-outlined-button.mat-primary,.mat-tonal-button.mat-primary{--mat-button-filled-container-color: #215f9e;--mat-button-filled-label-text-color: #F8F9F9;--mat-button-filled-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-button-filled-state-layer-color: #F8F9F9;--mat-button-outlined-label-text-color: #215f9e;--mat-button-outlined-outline-color: rgba(0, 0, 0, .12);--mat-button-outlined-ripple-color: color-mix(in srgb, #215f9e 12%, transparent);--mat-button-outlined-state-layer-color: #215f9e;--mat-button-protected-container-color: #215f9e;--mat-button-protected-label-text-color: #F8F9F9;--mat-button-protected-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-button-protected-state-layer-color: #F8F9F9;--mat-button-text-label-text-color: #215f9e;--mat-button-text-ripple-color: color-mix(in srgb, #215f9e 12%, transparent);--mat-button-text-state-layer-color: #215f9e;--mat-button-tonal-container-color: #215f9e;--mat-button-tonal-label-text-color: #F8F9F9;--mat-button-tonal-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-button-tonal-state-layer-color: #F8F9F9}.mat-mdc-button.mat-accent,.mat-mdc-unelevated-button.mat-accent,.mat-mdc-raised-button.mat-accent,.mat-mdc-outlined-button.mat-accent,.mat-tonal-button.mat-accent{--mat-button-filled-container-color: #a7a7a7;--mat-button-filled-label-text-color: #F8F9F9;--mat-button-filled-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-button-filled-state-layer-color: #F8F9F9;--mat-button-outlined-label-text-color: #a7a7a7;--mat-button-outlined-outline-color: rgba(0, 0, 0, .12);--mat-button-outlined-ripple-color: color-mix(in srgb, #a7a7a7 12%, transparent);--mat-button-outlined-state-layer-color: #a7a7a7;--mat-button-protected-container-color: #a7a7a7;--mat-button-protected-label-text-color: #F8F9F9;--mat-button-protected-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-button-protected-state-layer-color: #F8F9F9;--mat-button-text-label-text-color: #a7a7a7;--mat-button-text-ripple-color: color-mix(in srgb, #a7a7a7 12%, transparent);--mat-button-text-state-layer-color: #a7a7a7;--mat-button-tonal-container-color: #a7a7a7;--mat-button-tonal-label-text-color: #F8F9F9;--mat-button-tonal-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-button-tonal-state-layer-color: #F8F9F9}.mat-mdc-button.mat-warn,.mat-mdc-unelevated-button.mat-warn,.mat-mdc-raised-button.mat-warn,.mat-mdc-outlined-button.mat-warn,.mat-tonal-button.mat-warn{--mat-button-filled-container-color: #f44336;--mat-button-filled-label-text-color: white;--mat-button-filled-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-filled-state-layer-color: white;--mat-button-outlined-label-text-color: #f44336;--mat-button-outlined-outline-color: rgba(0, 0, 0, .12);--mat-button-outlined-ripple-color: color-mix(in srgb, #f44336 12%, transparent);--mat-button-outlined-state-layer-color: #f44336;--mat-button-protected-container-color: #f44336;--mat-button-protected-label-text-color: white;--mat-button-protected-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-protected-state-layer-color: white;--mat-button-text-label-text-color: #f44336;--mat-button-text-ripple-color: color-mix(in srgb, #f44336 12%, transparent);--mat-button-text-state-layer-color: #f44336;--mat-button-tonal-container-color: #f44336;--mat-button-tonal-label-text-color: white;--mat-button-tonal-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-tonal-state-layer-color: white}html{--mat-button-filled-container-height: 36px;--mat-button-filled-touch-target-display: block;--mat-button-outlined-container-height: 36px;--mat-button-outlined-touch-target-display: block;--mat-button-protected-container-height: 36px;--mat-button-protected-touch-target-display: block;--mat-button-text-container-height: 36px;--mat-button-text-touch-target-display: block;--mat-button-tonal-container-height: 36px;--mat-button-tonal-touch-target-display: block}html{--mat-icon-button-icon-size: 24px;--mat-icon-button-container-shape: 50%;--mat-icon-button-touch-target-size: 48px}html{--mat-icon-button-disabled-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-icon-button-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-icon-button-focus-state-layer-opacity: .12;--mat-icon-button-hover-state-layer-opacity: .04;--mat-icon-button-icon-color: inherit;--mat-icon-button-pressed-state-layer-opacity: .12;--mat-icon-button-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-icon-button-state-layer-color: rgba(0, 0, 0, .87)}.mat-mdc-icon-button.mat-primary{--mat-icon-button-icon-color: #215f9e;--mat-icon-button-state-layer-color: #215f9e;--mat-icon-button-ripple-color: color-mix(in srgb, #215f9e 12%, transparent)}.mat-mdc-icon-button.mat-accent{--mat-icon-button-icon-color: #a7a7a7;--mat-icon-button-state-layer-color: #a7a7a7;--mat-icon-button-ripple-color: color-mix(in srgb, #a7a7a7 12%, transparent)}.mat-mdc-icon-button.mat-warn{--mat-icon-button-icon-color: #f44336;--mat-icon-button-state-layer-color: #f44336;--mat-icon-button-ripple-color: color-mix(in srgb, #f44336 12%, transparent)}html{--mat-icon-button-touch-target-display: block}.mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size: 48px;--mat-icon-button-state-layer-size: 48px;width:var(--mat-icon-button-state-layer-size);height:var(--mat-icon-button-state-layer-size);padding:12px}html{--mat-fab-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-fab-container-shape: 50%;--mat-fab-touch-target-size: 48px;--mat-fab-extended-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-fab-extended-container-height: 48px;--mat-fab-extended-container-shape: 24px;--mat-fab-extended-focus-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-fab-extended-hover-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-fab-extended-pressed-container-elevation-shadow: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-fab-focus-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-fab-hover-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-fab-pressed-container-elevation-shadow: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-fab-small-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-fab-small-container-shape: 50%;--mat-fab-small-touch-target-size: 48px;--mat-fab-small-focus-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-fab-small-hover-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-fab-small-pressed-container-elevation-shadow: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12)}html{--mat-fab-container-color: white;--mat-fab-disabled-state-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-fab-disabled-state-foreground-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-fab-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-fab-focus-state-layer-opacity: .12;--mat-fab-foreground-color: rgba(0, 0, 0, .87);--mat-fab-hover-state-layer-opacity: .04;--mat-fab-pressed-state-layer-opacity: .12;--mat-fab-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-fab-small-container-color: white;--mat-fab-small-disabled-state-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-fab-small-disabled-state-foreground-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-fab-small-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-fab-small-focus-state-layer-opacity: .12;--mat-fab-small-foreground-color: rgba(0, 0, 0, .87);--mat-fab-small-hover-state-layer-opacity: .04;--mat-fab-small-pressed-state-layer-opacity: .12;--mat-fab-small-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-fab-small-state-layer-color: rgba(0, 0, 0, .87);--mat-fab-state-layer-color: rgba(0, 0, 0, .87)}.mat-mdc-fab.mat-primary,.mat-mdc-mini-fab.mat-primary{--mat-fab-container-color: #215f9e;--mat-fab-foreground-color: #F8F9F9;--mat-fab-ripple-color: color-mix(in srgb, #215f9e 12%, transparent);--mat-fab-small-container-color: #215f9e;--mat-fab-small-foreground-color: #F8F9F9;--mat-fab-small-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-fab-small-state-layer-color: #F8F9F9;--mat-fab-state-layer-color: #F8F9F9}.mat-mdc-fab.mat-accent,.mat-mdc-mini-fab.mat-accent{--mat-fab-container-color: #a7a7a7;--mat-fab-foreground-color: #F8F9F9;--mat-fab-ripple-color: color-mix(in srgb, #a7a7a7 12%, transparent);--mat-fab-small-container-color: #a7a7a7;--mat-fab-small-foreground-color: #F8F9F9;--mat-fab-small-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-fab-small-state-layer-color: #F8F9F9;--mat-fab-state-layer-color: #F8F9F9}.mat-mdc-fab.mat-warn,.mat-mdc-mini-fab.mat-warn{--mat-fab-container-color: #f44336;--mat-fab-foreground-color: white;--mat-fab-ripple-color: color-mix(in srgb, #f44336 12%, transparent);--mat-fab-small-container-color: #f44336;--mat-fab-small-foreground-color: white;--mat-fab-small-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-fab-small-state-layer-color: white;--mat-fab-state-layer-color: white}html{--mat-fab-small-touch-target-display: block;--mat-fab-touch-target-display: block}html{--mat-snack-bar-container-shape: 4px}html{--mat-snack-bar-container-color: #424242;--mat-snack-bar-supporting-text-color: white}html{--mat-table-row-item-outline-width: 1px}html{--mat-table-background-color: white;--mat-table-header-headline-color: rgba(0, 0, 0, .87);--mat-table-row-item-label-text-color: rgba(0, 0, 0, .87);--mat-table-row-item-outline-color: rgba(0, 0, 0, .12)}html{--mat-table-header-container-height: 56px;--mat-table-footer-container-height: 52px;--mat-table-row-item-container-height: 52px}html{--mat-progress-spinner-active-indicator-width: 4px;--mat-progress-spinner-size: 48px}html{--mat-progress-spinner-active-indicator-color: #215f9e}.mat-accent{--mat-progress-spinner-active-indicator-color: #a7a7a7}.mat-warn{--mat-progress-spinner-active-indicator-color: #f44336}html{--mat-badge-container-shape: 50%;--mat-badge-container-size: unset;--mat-badge-small-size-container-size: unset;--mat-badge-large-size-container-size: unset;--mat-badge-legacy-container-size: 22px;--mat-badge-legacy-small-size-container-size: 16px;--mat-badge-legacy-large-size-container-size: 28px;--mat-badge-container-offset: -11px 0;--mat-badge-small-size-container-offset: -8px 0;--mat-badge-large-size-container-offset: -14px 0;--mat-badge-container-overlap-offset: -11px;--mat-badge-small-size-container-overlap-offset: -8px;--mat-badge-large-size-container-overlap-offset: -14px;--mat-badge-container-padding: 0;--mat-badge-small-size-container-padding: 0;--mat-badge-large-size-container-padding: 0}html{--mat-badge-background-color: #215f9e;--mat-badge-text-color: #F8F9F9;--mat-badge-disabled-state-background-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-badge-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}.mat-badge-accent{--mat-badge-background-color: #a7a7a7;--mat-badge-text-color: #F8F9F9}.mat-badge-warn{--mat-badge-background-color: #f44336;--mat-badge-text-color: white}html{--mat-bottom-sheet-container-shape: 4px}html{--mat-bottom-sheet-container-text-color: rgba(0, 0, 0, .87);--mat-bottom-sheet-container-background-color: white}html{--mat-button-toggle-focus-state-layer-opacity: .12;--mat-button-toggle-hover-state-layer-opacity: .04;--mat-button-toggle-legacy-focus-state-layer-opacity: 1;--mat-button-toggle-legacy-height: 36px;--mat-button-toggle-legacy-shape: 2px;--mat-button-toggle-shape: 4px}html{--mat-button-toggle-background-color: white;--mat-button-toggle-disabled-selected-state-background-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-toggle-disabled-selected-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-toggle-disabled-state-background-color: white;--mat-button-toggle-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-toggle-divider-color: rgba(0, 0, 0, .12);--mat-button-toggle-legacy-disabled-selected-state-background-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-toggle-legacy-disabled-state-background-color: white;--mat-button-toggle-legacy-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-toggle-legacy-selected-state-background-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-toggle-legacy-selected-state-text-color: rgba(0, 0, 0, .87);--mat-button-toggle-legacy-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-toggle-legacy-text-color: rgba(0, 0, 0, .87);--mat-button-toggle-selected-state-background-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-toggle-selected-state-text-color: rgba(0, 0, 0, .87);--mat-button-toggle-state-layer-color: rgba(0, 0, 0, .87);--mat-button-toggle-text-color: rgba(0, 0, 0, .87)}html{--mat-button-toggle-height: 48px}html{--mat-datepicker-calendar-container-shape: 4px;--mat-datepicker-calendar-container-touch-shape: 4px;--mat-datepicker-calendar-container-elevation-shadow: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mat-datepicker-calendar-container-touch-elevation-shadow: 0px 11px 15px -7px rgba(0, 0, 0, .2), 0px 24px 38px 3px rgba(0, 0, 0, .14), 0px 9px 46px 8px rgba(0, 0, 0, .12)}html{--mat-datepicker-calendar-date-in-range-state-background-color: color-mix(in srgb, #215f9e 20%, transparent);--mat-datepicker-calendar-date-in-comparison-range-state-background-color: color-mix(in srgb, #a7a7a7 20%, transparent);--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: rgb(69.5241935484, 163.4758064516, 93.9516129032);--mat-datepicker-calendar-date-selected-state-text-color: #F8F9F9;--mat-datepicker-calendar-date-selected-state-background-color: #215f9e;--mat-datepicker-calendar-date-selected-disabled-state-background-color: color-mix(in srgb, #215f9e 38%, transparent);--mat-datepicker-calendar-date-today-selected-state-outline-color: #F8F9F9;--mat-datepicker-calendar-date-focus-state-background-color: color-mix(in srgb, #215f9e 12%, transparent);--mat-datepicker-calendar-date-hover-state-background-color: color-mix(in srgb, #215f9e 4%, transparent);--mat-datepicker-toggle-active-state-icon-color: #215f9e;--mat-datepicker-toggle-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-body-label-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-period-button-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-period-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-navigation-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-header-divider-color: rgba(0, 0, 0, .12);--mat-datepicker-calendar-header-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-disabled-state-outline-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-date-outline-color: transparent;--mat-datepicker-calendar-date-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-preview-state-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-range-input-separator-color: rgba(0, 0, 0, .87);--mat-datepicker-range-input-disabled-state-separator-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-range-input-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-container-background-color: white;--mat-datepicker-calendar-container-text-color: rgba(0, 0, 0, .87)}.mat-datepicker-content.mat-accent,.mat-datepicker-toggle-active.mat-accent{--mat-datepicker-calendar-date-in-range-state-background-color: color-mix(in srgb, #a7a7a7 20%, transparent);--mat-datepicker-calendar-date-in-comparison-range-state-background-color: color-mix(in srgb, #a7a7a7 20%, transparent);--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: rgb(69.5241935484, 163.4758064516, 93.9516129032);--mat-datepicker-calendar-date-selected-state-text-color: #F8F9F9;--mat-datepicker-calendar-date-selected-state-background-color: #a7a7a7;--mat-datepicker-calendar-date-selected-disabled-state-background-color: color-mix(in srgb, #a7a7a7 38%, transparent);--mat-datepicker-calendar-date-today-selected-state-outline-color: #F8F9F9;--mat-datepicker-calendar-date-focus-state-background-color: color-mix(in srgb, #a7a7a7 12%, transparent);--mat-datepicker-calendar-date-hover-state-background-color: color-mix(in srgb, #a7a7a7 4%, transparent);--mat-datepicker-toggle-active-state-icon-color: #a7a7a7;--mat-datepicker-toggle-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-body-label-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-period-button-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-period-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-navigation-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-header-divider-color: rgba(0, 0, 0, .12);--mat-datepicker-calendar-header-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-disabled-state-outline-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-date-outline-color: transparent;--mat-datepicker-calendar-date-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-preview-state-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-range-input-separator-color: rgba(0, 0, 0, .87);--mat-datepicker-range-input-disabled-state-separator-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-range-input-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-container-background-color: white;--mat-datepicker-calendar-container-text-color: rgba(0, 0, 0, .87)}.mat-datepicker-content.mat-warn,.mat-datepicker-toggle-active.mat-warn{--mat-datepicker-calendar-date-in-range-state-background-color: color-mix(in srgb, #f44336 20%, transparent);--mat-datepicker-calendar-date-in-comparison-range-state-background-color: color-mix(in srgb, #a7a7a7 20%, transparent);--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: rgb(69.5241935484, 163.4758064516, 93.9516129032);--mat-datepicker-calendar-date-selected-state-text-color: white;--mat-datepicker-calendar-date-selected-state-background-color: #f44336;--mat-datepicker-calendar-date-selected-disabled-state-background-color: color-mix(in srgb, #f44336 38%, transparent);--mat-datepicker-calendar-date-today-selected-state-outline-color: white;--mat-datepicker-calendar-date-focus-state-background-color: color-mix(in srgb, #f44336 12%, transparent);--mat-datepicker-calendar-date-hover-state-background-color: color-mix(in srgb, #f44336 4%, transparent);--mat-datepicker-toggle-active-state-icon-color: #f44336;--mat-datepicker-toggle-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-body-label-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-period-button-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-period-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-navigation-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-header-divider-color: rgba(0, 0, 0, .12);--mat-datepicker-calendar-header-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-disabled-state-outline-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-date-outline-color: transparent;--mat-datepicker-calendar-date-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-preview-state-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-range-input-separator-color: rgba(0, 0, 0, .87);--mat-datepicker-range-input-disabled-state-separator-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-range-input-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-container-background-color: white;--mat-datepicker-calendar-container-text-color: rgba(0, 0, 0, .87)}.mat-calendar-controls{--mat-icon-button-touch-target-display: none}.mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size: 40px;--mat-icon-button-state-layer-size: 40px;width:var(--mat-icon-button-state-layer-size);height:var(--mat-icon-button-state-layer-size);padding:8px}html{--mat-divider-width: 1px}html{--mat-divider-color: rgba(0, 0, 0, .12)}html{--mat-expansion-container-shape: 4px;--mat-expansion-container-elevation-shadow: 0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mat-expansion-legacy-header-indicator-display: inline-block;--mat-expansion-header-indicator-display: none}html{--mat-expansion-container-background-color: white;--mat-expansion-container-text-color: rgba(0, 0, 0, .87);--mat-expansion-actions-divider-color: rgba(0, 0, 0, .12);--mat-expansion-header-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-expansion-header-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-expansion-header-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-expansion-header-text-color: rgba(0, 0, 0, .87);--mat-expansion-header-description-color: rgba(0, 0, 0, .54);--mat-expansion-header-indicator-color: rgba(0, 0, 0, .54)}html{--mat-expansion-header-collapsed-state-height: 48px;--mat-expansion-header-expanded-state-height: 64px}html{--mat-icon-color: inherit}.mat-icon.mat-primary{--mat-icon-color: #215f9e}.mat-icon.mat-accent{--mat-icon-color: #a7a7a7}.mat-icon.mat-warn{--mat-icon-color: #f44336}html{--mat-sidenav-container-shape: 0;--mat-sidenav-container-elevation-shadow: 0px 8px 10px -5px rgba(0, 0, 0, .2), 0px 16px 24px 2px rgba(0, 0, 0, .14), 0px 6px 30px 5px rgba(0, 0, 0, .12);--mat-sidenav-container-width: auto}html{--mat-sidenav-container-divider-color: rgba(0, 0, 0, .12);--mat-sidenav-container-background-color: white;--mat-sidenav-container-text-color: rgba(0, 0, 0, .87);--mat-sidenav-content-background-color: #fafafa;--mat-sidenav-content-text-color: rgba(0, 0, 0, .87);--mat-sidenav-scrim-color: rgba(0, 0, 0, .6)}html{--mat-stepper-header-focus-state-layer-shape: 0;--mat-stepper-header-hover-state-layer-shape: 0}html{--mat-stepper-header-icon-foreground-color: #F8F9F9;--mat-stepper-header-selected-state-icon-background-color: #215f9e;--mat-stepper-header-selected-state-icon-foreground-color: #F8F9F9;--mat-stepper-header-done-state-icon-background-color: #215f9e;--mat-stepper-header-done-state-icon-foreground-color: #F8F9F9;--mat-stepper-header-edit-state-icon-background-color: #215f9e;--mat-stepper-header-edit-state-icon-foreground-color: #F8F9F9;--mat-stepper-container-color: white;--mat-stepper-line-color: rgba(0, 0, 0, .12);--mat-stepper-header-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-stepper-header-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-stepper-header-label-text-color: rgba(0, 0, 0, .54);--mat-stepper-header-optional-label-text-color: rgba(0, 0, 0, .54);--mat-stepper-header-selected-state-label-text-color: rgba(0, 0, 0, .87);--mat-stepper-header-error-state-label-text-color: #f44336;--mat-stepper-header-icon-background-color: rgba(0, 0, 0, .54);--mat-stepper-header-error-state-icon-foreground-color: #f44336;--mat-stepper-header-error-state-icon-background-color: transparent}.mat-step-header.mat-accent{--mat-stepper-header-icon-foreground-color: #F8F9F9;--mat-stepper-header-selected-state-icon-background-color: #a7a7a7;--mat-stepper-header-selected-state-icon-foreground-color: #F8F9F9;--mat-stepper-header-done-state-icon-background-color: #a7a7a7;--mat-stepper-header-done-state-icon-foreground-color: #F8F9F9;--mat-stepper-header-edit-state-icon-background-color: #a7a7a7;--mat-stepper-header-edit-state-icon-foreground-color: #F8F9F9}.mat-step-header.mat-warn{--mat-stepper-header-icon-foreground-color: white;--mat-stepper-header-selected-state-icon-background-color: #f44336;--mat-stepper-header-selected-state-icon-foreground-color: white;--mat-stepper-header-done-state-icon-background-color: #f44336;--mat-stepper-header-done-state-icon-foreground-color: white;--mat-stepper-header-edit-state-icon-background-color: #f44336;--mat-stepper-header-edit-state-icon-foreground-color: white}html{--mat-stepper-header-height: 72px}html{--mat-sort-arrow-color: rgba(0, 0, 0, .87)}html{--mat-toolbar-container-background-color: white;--mat-toolbar-container-text-color: rgba(0, 0, 0, .87)}.mat-toolbar.mat-primary{--mat-toolbar-container-background-color: #215f9e;--mat-toolbar-container-text-color: #F8F9F9}.mat-toolbar.mat-accent{--mat-toolbar-container-background-color: #a7a7a7;--mat-toolbar-container-text-color: #F8F9F9}.mat-toolbar.mat-warn{--mat-toolbar-container-background-color: #f44336;--mat-toolbar-container-text-color: white}html{--mat-toolbar-standard-height: 64px;--mat-toolbar-mobile-height: 56px}html{--mat-tree-container-background-color: white;--mat-tree-node-text-color: rgba(0, 0, 0, .87)}html{--mat-tree-node-min-height: 48px}html{--mat-timepicker-container-shape: 4px;--mat-timepicker-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-timepicker-container-background-color: white}.white-theme{--mat-app-background-color: #fafafa;--mat-app-text-color: rgba(0, 0, 0, .87);--mat-app-elevation-shadow-level-0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-2: 0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-3: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-4: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-5: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 5px 8px 0px rgba(0, 0, 0, .14), 0px 1px 14px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-6: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-7: 0px 4px 5px -2px rgba(0, 0, 0, .2), 0px 7px 10px 1px rgba(0, 0, 0, .14), 0px 2px 16px 1px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-8: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-9: 0px 5px 6px -3px rgba(0, 0, 0, .2), 0px 9px 12px 1px rgba(0, 0, 0, .14), 0px 3px 16px 2px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-10: 0px 6px 6px -3px rgba(0, 0, 0, .2), 0px 10px 14px 1px rgba(0, 0, 0, .14), 0px 4px 18px 3px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-11: 0px 6px 7px -4px rgba(0, 0, 0, .2), 0px 11px 15px 1px rgba(0, 0, 0, .14), 0px 4px 20px 3px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-12: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-13: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 13px 19px 2px rgba(0, 0, 0, .14), 0px 5px 24px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-14: 0px 7px 9px -4px rgba(0, 0, 0, .2), 0px 14px 21px 2px rgba(0, 0, 0, .14), 0px 5px 26px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-15: 0px 8px 9px -5px rgba(0, 0, 0, .2), 0px 15px 22px 2px rgba(0, 0, 0, .14), 0px 6px 28px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-16: 0px 8px 10px -5px rgba(0, 0, 0, .2), 0px 16px 24px 2px rgba(0, 0, 0, .14), 0px 6px 30px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-17: 0px 8px 11px -5px rgba(0, 0, 0, .2), 0px 17px 26px 2px rgba(0, 0, 0, .14), 0px 6px 32px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-18: 0px 9px 11px -5px rgba(0, 0, 0, .2), 0px 18px 28px 2px rgba(0, 0, 0, .14), 0px 7px 34px 6px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-19: 0px 9px 12px -6px rgba(0, 0, 0, .2), 0px 19px 29px 2px rgba(0, 0, 0, .14), 0px 7px 36px 6px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-20: 0px 10px 13px -6px rgba(0, 0, 0, .2), 0px 20px 31px 3px rgba(0, 0, 0, .14), 0px 8px 38px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-21: 0px 10px 13px -6px rgba(0, 0, 0, .2), 0px 21px 33px 3px rgba(0, 0, 0, .14), 0px 8px 40px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-22: 0px 10px 14px -6px rgba(0, 0, 0, .2), 0px 22px 35px 3px rgba(0, 0, 0, .14), 0px 8px 42px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-23: 0px 11px 14px -7px rgba(0, 0, 0, .2), 0px 23px 36px 3px rgba(0, 0, 0, .14), 0px 9px 44px 8px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-24: 0px 11px 15px -7px rgba(0, 0, 0, .2), 0px 24px 38px 3px rgba(0, 0, 0, .14), 0px 9px 46px 8px rgba(0, 0, 0, .12);--mat-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-option-selected-state-label-text-color: white;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-option-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-option-selected-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent)}.white-theme .mat-accent{--mat-option-selected-state-label-text-color: #a7a7a7;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-option-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-option-selected-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent)}.white-theme .mat-warn{--mat-option-selected-state-label-text-color: #f44336;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-option-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-option-selected-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent)}.white-theme{--mat-optgroup-label-text-color: rgba(0, 0, 0, .87);--mat-pseudo-checkbox-full-selected-icon-color: #a7a7a7;--mat-pseudo-checkbox-full-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-unselected-icon-color: rgba(0, 0, 0, .54);--mat-pseudo-checkbox-full-disabled-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-full-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-minimal-selected-checkmark-color: #a7a7a7;--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}.white-theme .mat-primary{--mat-pseudo-checkbox-full-selected-icon-color: white;--mat-pseudo-checkbox-full-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-unselected-icon-color: rgba(0, 0, 0, .54);--mat-pseudo-checkbox-full-disabled-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-full-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-minimal-selected-checkmark-color: white;--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}.white-theme .mat-accent{--mat-pseudo-checkbox-full-selected-icon-color: #a7a7a7;--mat-pseudo-checkbox-full-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-unselected-icon-color: rgba(0, 0, 0, .54);--mat-pseudo-checkbox-full-disabled-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-full-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-minimal-selected-checkmark-color: #a7a7a7;--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}.white-theme .mat-warn{--mat-pseudo-checkbox-full-selected-icon-color: #f44336;--mat-pseudo-checkbox-full-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-unselected-icon-color: rgba(0, 0, 0, .54);--mat-pseudo-checkbox-full-disabled-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-full-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-minimal-selected-checkmark-color: #f44336;--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}.white-theme{--mat-card-elevated-container-color: white;--mat-card-elevated-container-elevation: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-card-outlined-container-color: white;--mat-card-outlined-container-elevation: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-card-outlined-outline-color: rgba(0, 0, 0, .12);--mat-card-subtitle-text-color: rgba(0, 0, 0, .54);--mat-card-filled-container-color: white;--mat-card-filled-container-elevation: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12)}.white-theme .mat-mdc-progress-bar{--mat-progress-bar-active-indicator-color: white;--mat-progress-bar-track-color: rgba(255, 255, 255, .25)}.white-theme .mat-mdc-progress-bar.mat-accent{--mat-progress-bar-active-indicator-color: #a7a7a7;--mat-progress-bar-track-color: rgba(167, 167, 167, .25)}.white-theme .mat-mdc-progress-bar.mat-warn{--mat-progress-bar-active-indicator-color: #f44336;--mat-progress-bar-track-color: rgba(244, 67, 54, .25)}.white-theme{--mat-tooltip-container-color: #424242;--mat-tooltip-supporting-text-color: white;--mat-form-field-focus-select-arrow-color: color-mix(in srgb, white 87%, transparent);--mat-form-field-filled-caret-color: white;--mat-form-field-filled-focus-active-indicator-color: white;--mat-form-field-filled-focus-label-text-color: color-mix(in srgb, white 87%, transparent);--mat-form-field-outlined-caret-color: white;--mat-form-field-outlined-focus-outline-color: white;--mat-form-field-outlined-focus-label-text-color: color-mix(in srgb, white 87%, transparent);--mat-form-field-disabled-input-text-placeholder-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-state-layer-color: rgba(0, 0, 0, .87);--mat-form-field-error-text-color: #f44336;--mat-form-field-select-option-text-color: inherit;--mat-form-field-select-disabled-option-text-color: GrayText;--mat-form-field-leading-icon-color: unset;--mat-form-field-disabled-leading-icon-color: unset;--mat-form-field-trailing-icon-color: unset;--mat-form-field-disabled-trailing-icon-color: unset;--mat-form-field-error-focus-trailing-icon-color: unset;--mat-form-field-error-hover-trailing-icon-color: unset;--mat-form-field-error-trailing-icon-color: unset;--mat-form-field-enabled-select-arrow-color: rgba(0, 0, 0, .54);--mat-form-field-disabled-select-arrow-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-hover-state-layer-opacity: .04;--mat-form-field-focus-state-layer-opacity: .12;--mat-form-field-filled-container-color: #f6f6f6;--mat-form-field-filled-disabled-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-form-field-filled-label-text-color: rgba(0, 0, 0, .54);--mat-form-field-filled-hover-label-text-color: rgba(0, 0, 0, .54);--mat-form-field-filled-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-filled-input-text-color: rgba(0, 0, 0, .87);--mat-form-field-filled-disabled-input-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-filled-input-text-placeholder-color: rgba(0, 0, 0, .54);--mat-form-field-filled-error-hover-label-text-color: #f44336;--mat-form-field-filled-error-focus-label-text-color: #f44336;--mat-form-field-filled-error-label-text-color: #f44336;--mat-form-field-filled-error-caret-color: #f44336;--mat-form-field-filled-active-indicator-color: rgba(0, 0, 0, .54);--mat-form-field-filled-disabled-active-indicator-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-form-field-filled-hover-active-indicator-color: rgba(0, 0, 0, .87);--mat-form-field-filled-error-active-indicator-color: #f44336;--mat-form-field-filled-error-focus-active-indicator-color: #f44336;--mat-form-field-filled-error-hover-active-indicator-color: #f44336;--mat-form-field-outlined-label-text-color: rgba(0, 0, 0, .54);--mat-form-field-outlined-hover-label-text-color: rgba(0, 0, 0, .87);--mat-form-field-outlined-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-outlined-input-text-color: rgba(0, 0, 0, .87);--mat-form-field-outlined-disabled-input-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-outlined-input-text-placeholder-color: rgba(0, 0, 0, .54);--mat-form-field-outlined-error-caret-color: #f44336;--mat-form-field-outlined-error-focus-label-text-color: #f44336;--mat-form-field-outlined-error-label-text-color: #f44336;--mat-form-field-outlined-error-hover-label-text-color: #f44336;--mat-form-field-outlined-outline-color: rgba(0, 0, 0, .38);--mat-form-field-outlined-disabled-outline-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-form-field-outlined-hover-outline-color: rgba(0, 0, 0, .87);--mat-form-field-outlined-error-focus-outline-color: #f44336;--mat-form-field-outlined-error-hover-outline-color: #f44336;--mat-form-field-outlined-error-outline-color: #f44336}.white-theme .mat-mdc-form-field.mat-accent{--mat-form-field-focus-select-arrow-color: color-mix(in srgb, #a7a7a7 87%, transparent);--mat-form-field-filled-caret-color: #a7a7a7;--mat-form-field-filled-focus-active-indicator-color: #a7a7a7;--mat-form-field-filled-focus-label-text-color: color-mix(in srgb, #a7a7a7 87%, transparent);--mat-form-field-outlined-caret-color: #a7a7a7;--mat-form-field-outlined-focus-outline-color: #a7a7a7;--mat-form-field-outlined-focus-label-text-color: color-mix(in srgb, #a7a7a7 87%, transparent)}.white-theme .mat-mdc-form-field.mat-warn{--mat-form-field-focus-select-arrow-color: color-mix(in srgb, #f44336 87%, transparent);--mat-form-field-filled-caret-color: #f44336;--mat-form-field-filled-focus-active-indicator-color: #f44336;--mat-form-field-filled-focus-label-text-color: color-mix(in srgb, #f44336 87%, transparent);--mat-form-field-outlined-caret-color: #f44336;--mat-form-field-outlined-focus-outline-color: #f44336;--mat-form-field-outlined-focus-label-text-color: color-mix(in srgb, #f44336 87%, transparent)}.white-theme{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-placeholder-text-color: rgba(0, 0, 0, .54);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-focused-arrow-color: white;--mat-select-invalid-arrow-color: #f44336}.white-theme .mat-mdc-form-field.mat-accent{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-placeholder-text-color: rgba(0, 0, 0, .54);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-focused-arrow-color: #a7a7a7;--mat-select-invalid-arrow-color: #f44336}.white-theme .mat-mdc-form-field.mat-warn{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-placeholder-text-color: rgba(0, 0, 0, .54);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-focused-arrow-color: #f44336;--mat-select-invalid-arrow-color: #f44336}.white-theme{--mat-autocomplete-background-color: white;--mat-dialog-container-color: white;--mat-dialog-subhead-color: rgba(0, 0, 0, .87);--mat-dialog-supporting-text-color: rgba(0, 0, 0, .54)}.white-theme .mat-mdc-standard-chip{--mat-chip-disabled-label-text-color: rgba(0, 0, 0, .87);--mat-chip-elevated-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-chip-elevated-disabled-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-chip-elevated-selected-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-chip-flat-disabled-selected-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-chip-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-focus-state-layer-opacity: .12;--mat-chip-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-label-text-color: rgba(0, 0, 0, .87);--mat-chip-selected-disabled-trailing-icon-color: rgba(0, 0, 0, .87);--mat-chip-selected-focus-state-layer-color: .12;--mat-chip-selected-focus-state-layer-opacity: .12;--mat-chip-selected-hover-state-layer-color: .04;--mat-chip-selected-label-text-color: rgba(0, 0, 0, .87);--mat-chip-selected-trailing-icon-color: rgba(0, 0, 0, .87);--mat-chip-with-icon-disabled-icon-color: rgba(0, 0, 0, .87);--mat-chip-with-icon-icon-color: rgba(0, 0, 0, .87);--mat-chip-with-icon-selected-icon-color: rgba(0, 0, 0, .87);--mat-chip-with-trailing-icon-disabled-trailing-icon-color: rgba(0, 0, 0, .87);--mat-chip-with-trailing-icon-trailing-icon-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-standard-chip.mat-mdc-chip-selected.mat-primary,.white-theme .mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-primary{--mat-chip-disabled-label-text-color: white;--mat-chip-elevated-container-color: white;--mat-chip-elevated-disabled-container-color: white;--mat-chip-elevated-selected-container-color: white;--mat-chip-flat-disabled-selected-container-color: white;--mat-chip-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-focus-state-layer-opacity: .12;--mat-chip-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-label-text-color: white;--mat-chip-selected-disabled-trailing-icon-color: white;--mat-chip-selected-focus-state-layer-color: .12;--mat-chip-selected-focus-state-layer-opacity: .12;--mat-chip-selected-hover-state-layer-color: .04;--mat-chip-selected-label-text-color: white;--mat-chip-selected-trailing-icon-color: white;--mat-chip-with-icon-disabled-icon-color: white;--mat-chip-with-icon-icon-color: white;--mat-chip-with-icon-selected-icon-color: white;--mat-chip-with-trailing-icon-disabled-trailing-icon-color: white;--mat-chip-with-trailing-icon-trailing-icon-color: white}.white-theme .mat-mdc-standard-chip.mat-mdc-chip-selected.mat-accent,.white-theme .mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-accent{--mat-chip-disabled-label-text-color: #F8F9F9;--mat-chip-elevated-container-color: #a7a7a7;--mat-chip-elevated-disabled-container-color: #a7a7a7;--mat-chip-elevated-selected-container-color: #a7a7a7;--mat-chip-flat-disabled-selected-container-color: #a7a7a7;--mat-chip-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-focus-state-layer-opacity: .12;--mat-chip-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-label-text-color: #F8F9F9;--mat-chip-selected-disabled-trailing-icon-color: #F8F9F9;--mat-chip-selected-focus-state-layer-color: .12;--mat-chip-selected-focus-state-layer-opacity: .12;--mat-chip-selected-hover-state-layer-color: .04;--mat-chip-selected-label-text-color: #F8F9F9;--mat-chip-selected-trailing-icon-color: #F8F9F9;--mat-chip-with-icon-disabled-icon-color: #F8F9F9;--mat-chip-with-icon-icon-color: #F8F9F9;--mat-chip-with-icon-selected-icon-color: #F8F9F9;--mat-chip-with-trailing-icon-disabled-trailing-icon-color: #F8F9F9;--mat-chip-with-trailing-icon-trailing-icon-color: #F8F9F9}.white-theme .mat-mdc-standard-chip.mat-mdc-chip-selected.mat-warn,.white-theme .mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-warn{--mat-chip-disabled-label-text-color: white;--mat-chip-elevated-container-color: #f44336;--mat-chip-elevated-disabled-container-color: #f44336;--mat-chip-elevated-selected-container-color: #f44336;--mat-chip-flat-disabled-selected-container-color: #f44336;--mat-chip-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-focus-state-layer-opacity: .12;--mat-chip-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-label-text-color: white;--mat-chip-selected-disabled-trailing-icon-color: white;--mat-chip-selected-focus-state-layer-color: .12;--mat-chip-selected-focus-state-layer-opacity: .12;--mat-chip-selected-hover-state-layer-color: .04;--mat-chip-selected-label-text-color: white;--mat-chip-selected-trailing-icon-color: white;--mat-chip-with-icon-disabled-icon-color: white;--mat-chip-with-icon-icon-color: white;--mat-chip-with-icon-selected-icon-color: white;--mat-chip-with-trailing-icon-disabled-trailing-icon-color: white;--mat-chip-with-trailing-icon-trailing-icon-color: white}.white-theme{--mat-slide-toggle-selected-icon-color: white;--mat-slide-toggle-disabled-selected-icon-color: white;--mat-slide-toggle-selected-focus-state-layer-color: white;--mat-slide-toggle-selected-handle-color: white;--mat-slide-toggle-selected-hover-state-layer-color: white;--mat-slide-toggle-selected-pressed-state-layer-color: white;--mat-slide-toggle-selected-focus-handle-color: white;--mat-slide-toggle-selected-hover-handle-color: white;--mat-slide-toggle-selected-pressed-handle-color: white;--mat-slide-toggle-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-slide-toggle-disabled-handle-elevation-shadow: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-slide-toggle-disabled-selected-handle-color: rgba(0, 0, 0, .87);--mat-slide-toggle-disabled-selected-track-color: rgba(0, 0, 0, .87);--mat-slide-toggle-disabled-unselected-handle-color: rgba(0, 0, 0, .87);--mat-slide-toggle-disabled-unselected-icon-color: #f6f6f6;--mat-slide-toggle-disabled-unselected-track-color: rgba(0, 0, 0, .87);--mat-slide-toggle-handle-elevation-shadow: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-slide-toggle-handle-surface-color: white;--mat-slide-toggle-label-text-color: rgba(0, 0, 0, .87);--mat-slide-toggle-unselected-hover-handle-color: #424242;--mat-slide-toggle-unselected-focus-handle-color: #424242;--mat-slide-toggle-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-slide-toggle-unselected-focus-track-color: rgba(0, 0, 0, .12);--mat-slide-toggle-unselected-icon-color: #f6f6f6;--mat-slide-toggle-unselected-handle-color: rgba(0, 0, 0, .54);--mat-slide-toggle-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-slide-toggle-unselected-hover-track-color: rgba(0, 0, 0, .12);--mat-slide-toggle-unselected-pressed-handle-color: #424242;--mat-slide-toggle-unselected-pressed-track-color: rgba(0, 0, 0, .12);--mat-slide-toggle-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87);--mat-slide-toggle-unselected-track-color: rgba(0, 0, 0, .12)}.white-theme .mat-mdc-slide-toggle.mat-accent{--mat-slide-toggle-selected-icon-color: #F8F9F9;--mat-slide-toggle-disabled-selected-icon-color: #F8F9F9;--mat-slide-toggle-selected-focus-state-layer-color: #a7a7a7;--mat-slide-toggle-selected-handle-color: #a7a7a7;--mat-slide-toggle-selected-hover-state-layer-color: #a7a7a7;--mat-slide-toggle-selected-pressed-state-layer-color: #a7a7a7;--mat-slide-toggle-selected-focus-handle-color: #a7a7a7;--mat-slide-toggle-selected-hover-handle-color: #a7a7a7;--mat-slide-toggle-selected-pressed-handle-color: #a7a7a7}.white-theme .mat-mdc-slide-toggle.mat-warn{--mat-slide-toggle-selected-icon-color: white;--mat-slide-toggle-disabled-selected-icon-color: white;--mat-slide-toggle-selected-focus-state-layer-color: #f44336;--mat-slide-toggle-selected-handle-color: #f44336;--mat-slide-toggle-selected-hover-state-layer-color: #f44336;--mat-slide-toggle-selected-pressed-state-layer-color: #f44336;--mat-slide-toggle-selected-focus-handle-color: #f44336;--mat-slide-toggle-selected-hover-handle-color: #f44336;--mat-slide-toggle-selected-pressed-handle-color: #f44336;--mat-slide-toggle-selected-focus-track-color: #e57373;--mat-slide-toggle-selected-hover-track-color: #e57373;--mat-slide-toggle-selected-pressed-track-color: #e57373;--mat-slide-toggle-selected-track-color: #e57373}.white-theme .mat-mdc-radio-button.mat-primary{--mat-radio-checked-ripple-color: white;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: white;--mat-radio-selected-hover-icon-color: white;--mat-radio-selected-icon-color: white;--mat-radio-selected-pressed-icon-color: white;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-radio-button.mat-accent{--mat-radio-checked-ripple-color: #a7a7a7;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: #a7a7a7;--mat-radio-selected-hover-icon-color: #a7a7a7;--mat-radio-selected-icon-color: #a7a7a7;--mat-radio-selected-pressed-icon-color: #a7a7a7;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-radio-button.mat-warn{--mat-radio-checked-ripple-color: #f44336;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: #f44336;--mat-radio-selected-hover-icon-color: #f44336;--mat-radio-selected-icon-color: #f44336;--mat-radio-selected-pressed-icon-color: #f44336;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.white-theme{--mat-slider-active-track-color: white;--mat-slider-focus-handle-color: white;--mat-slider-handle-color: white;--mat-slider-hover-handle-color: white;--mat-slider-focus-state-layer-color: color-mix(in srgb, white 12%, transparent);--mat-slider-hover-state-layer-color: color-mix(in srgb, white 4%, transparent);--mat-slider-inactive-track-color: white;--mat-slider-ripple-color: white;--mat-slider-with-tick-marks-active-container-color: white;--mat-slider-with-tick-marks-inactive-container-color: white;--mat-slider-disabled-active-track-color: rgba(0, 0, 0, .87);--mat-slider-disabled-handle-color: rgba(0, 0, 0, .87);--mat-slider-disabled-inactive-track-color: rgba(0, 0, 0, .87);--mat-slider-label-container-color: #424242;--mat-slider-label-label-text-color: white;--mat-slider-value-indicator-opacity: 1;--mat-slider-with-overlap-handle-outline-color: rgba(0, 0, 0, .87);--mat-slider-with-tick-marks-disabled-container-color: rgba(0, 0, 0, .87)}.white-theme .mat-accent{--mat-slider-active-track-color: #a7a7a7;--mat-slider-focus-handle-color: #a7a7a7;--mat-slider-handle-color: #a7a7a7;--mat-slider-hover-handle-color: #a7a7a7;--mat-slider-focus-state-layer-color: color-mix(in srgb, #a7a7a7 12%, transparent);--mat-slider-hover-state-layer-color: color-mix(in srgb, #a7a7a7 4%, transparent);--mat-slider-inactive-track-color: #a7a7a7;--mat-slider-ripple-color: #a7a7a7;--mat-slider-with-tick-marks-active-container-color: #F8F9F9;--mat-slider-with-tick-marks-inactive-container-color: #a7a7a7}.white-theme .mat-warn{--mat-slider-active-track-color: #f44336;--mat-slider-focus-handle-color: #f44336;--mat-slider-handle-color: #f44336;--mat-slider-hover-handle-color: #f44336;--mat-slider-focus-state-layer-color: color-mix(in srgb, #f44336 12%, transparent);--mat-slider-hover-state-layer-color: color-mix(in srgb, #f44336 4%, transparent);--mat-slider-inactive-track-color: #f44336;--mat-slider-ripple-color: #f44336;--mat-slider-with-tick-marks-active-container-color: white;--mat-slider-with-tick-marks-inactive-container-color: #f44336}.white-theme{--mat-menu-item-label-text-color: rgba(0, 0, 0, .87);--mat-menu-item-icon-color: rgba(0, 0, 0, .87);--mat-menu-item-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-menu-item-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-menu-container-color: white;--mat-menu-divider-color: rgba(0, 0, 0, .12);--mat-list-list-item-label-text-color: rgba(0, 0, 0, .87);--mat-list-list-item-supporting-text-color: rgba(0, 0, 0, .54);--mat-list-list-item-leading-icon-color: rgba(0, 0, 0, .54);--mat-list-list-item-trailing-supporting-text-color: rgba(0, 0, 0, .54);--mat-list-list-item-trailing-icon-color: rgba(0, 0, 0, .54);--mat-list-list-item-selected-trailing-icon-color: rgba(0, 0, 0, .54);--mat-list-list-item-disabled-label-text-color: rgba(0, 0, 0, .87);--mat-list-list-item-disabled-leading-icon-color: rgba(0, 0, 0, .87);--mat-list-list-item-disabled-trailing-icon-color: rgba(0, 0, 0, .87);--mat-list-list-item-hover-label-text-color: rgba(0, 0, 0, .87);--mat-list-list-item-hover-leading-icon-color: rgba(0, 0, 0, .54);--mat-list-list-item-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-list-list-item-hover-state-layer-opacity: .04;--mat-list-list-item-hover-trailing-icon-color: rgba(0, 0, 0, .54);--mat-list-list-item-focus-label-text-color: rgba(0, 0, 0, .87);--mat-list-list-item-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-list-list-item-focus-state-layer-opacity: .12}.white-theme .mdc-list-item__start,.white-theme .mdc-list-item__end{--mat-radio-checked-ripple-color: white;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: white;--mat-radio-selected-hover-icon-color: white;--mat-radio-selected-icon-color: white;--mat-radio-selected-pressed-icon-color: white;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.white-theme .mat-accent .mdc-list-item__start,.white-theme .mat-accent .mdc-list-item__end{--mat-radio-checked-ripple-color: #a7a7a7;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: #a7a7a7;--mat-radio-selected-hover-icon-color: #a7a7a7;--mat-radio-selected-icon-color: #a7a7a7;--mat-radio-selected-pressed-icon-color: #a7a7a7;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.white-theme .mat-warn .mdc-list-item__start,.white-theme .mat-warn .mdc-list-item__end{--mat-radio-checked-ripple-color: #f44336;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: #f44336;--mat-radio-selected-hover-icon-color: #f44336;--mat-radio-selected-icon-color: #f44336;--mat-radio-selected-pressed-icon-color: #f44336;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-list-option{--mat-checkbox-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-label-text-color: rgba(0, 0, 0, .87);--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: white;--mat-checkbox-selected-focus-icon-color: white;--mat-checkbox-selected-hover-icon-color: white;--mat-checkbox-selected-icon-color: white;--mat-checkbox-selected-pressed-icon-color: white;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: white;--mat-checkbox-selected-hover-state-layer-color: white;--mat-checkbox-selected-pressed-state-layer-color: white;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-list-option.mat-accent{--mat-checkbox-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-label-text-color: rgba(0, 0, 0, .87);--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: #F8F9F9;--mat-checkbox-selected-focus-icon-color: #a7a7a7;--mat-checkbox-selected-hover-icon-color: #a7a7a7;--mat-checkbox-selected-icon-color: #a7a7a7;--mat-checkbox-selected-pressed-icon-color: #a7a7a7;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: #a7a7a7;--mat-checkbox-selected-hover-state-layer-color: #a7a7a7;--mat-checkbox-selected-pressed-state-layer-color: #a7a7a7;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-list-option.mat-warn{--mat-checkbox-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-label-text-color: rgba(0, 0, 0, .87);--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: white;--mat-checkbox-selected-focus-icon-color: #f44336;--mat-checkbox-selected-hover-icon-color: #f44336;--mat-checkbox-selected-icon-color: #f44336;--mat-checkbox-selected-pressed-icon-color: #f44336;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: #f44336;--mat-checkbox-selected-hover-state-layer-color: #f44336;--mat-checkbox-selected-pressed-state-layer-color: #f44336;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected .mdc-list-item__primary-text,.white-theme .mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected .mdc-list-item__start,.white-theme .mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated .mdc-list-item__primary-text,.white-theme .mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated .mdc-list-item__start{color:#fff}.white-theme .mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__start,.white-theme .mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__content,.white-theme .mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__end{opacity:1}.white-theme{--mat-paginator-container-text-color: rgba(0, 0, 0, .87);--mat-paginator-container-background-color: white;--mat-paginator-enabled-icon-color: rgba(0, 0, 0, .54);--mat-paginator-disabled-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}.white-theme .mat-mdc-tab-group,.white-theme .mat-mdc-tab-nav-bar{--mat-tab-disabled-ripple-color: rgba(0, 0, 0, .54);--mat-tab-pagination-icon-color: rgba(0, 0, 0, .87);--mat-tab-inactive-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-label-text-color: white;--mat-tab-active-ripple-color: white;--mat-tab-inactive-ripple-color: white;--mat-tab-inactive-focus-label-text-color: rgba(0, 0, 0, .54);--mat-tab-inactive-hover-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-focus-label-text-color: white;--mat-tab-active-hover-label-text-color: white;--mat-tab-active-focus-indicator-color: white;--mat-tab-active-hover-indicator-color: white;--mat-tab-active-indicator-color: white}.white-theme .mat-mdc-tab-group.mat-accent,.white-theme .mat-mdc-tab-nav-bar.mat-accent{--mat-tab-disabled-ripple-color: rgba(0, 0, 0, .54);--mat-tab-pagination-icon-color: rgba(0, 0, 0, .87);--mat-tab-inactive-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-label-text-color: #a7a7a7;--mat-tab-active-ripple-color: #a7a7a7;--mat-tab-inactive-ripple-color: #a7a7a7;--mat-tab-inactive-focus-label-text-color: rgba(0, 0, 0, .54);--mat-tab-inactive-hover-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-focus-label-text-color: #a7a7a7;--mat-tab-active-hover-label-text-color: #a7a7a7;--mat-tab-active-focus-indicator-color: #a7a7a7;--mat-tab-active-hover-indicator-color: #a7a7a7;--mat-tab-active-indicator-color: #a7a7a7}.white-theme .mat-mdc-tab-group.mat-warn,.white-theme .mat-mdc-tab-nav-bar.mat-warn{--mat-tab-disabled-ripple-color: rgba(0, 0, 0, .54);--mat-tab-pagination-icon-color: rgba(0, 0, 0, .87);--mat-tab-inactive-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-label-text-color: #f44336;--mat-tab-active-ripple-color: #f44336;--mat-tab-inactive-ripple-color: #f44336;--mat-tab-inactive-focus-label-text-color: rgba(0, 0, 0, .54);--mat-tab-inactive-hover-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-focus-label-text-color: #f44336;--mat-tab-active-hover-label-text-color: #f44336;--mat-tab-active-focus-indicator-color: #f44336;--mat-tab-active-hover-indicator-color: #f44336;--mat-tab-active-indicator-color: #f44336}.white-theme .mat-mdc-tab-group.mat-background-primary,.white-theme .mat-mdc-tab-nav-bar.mat-background-primary{--mat-tab-background-color: white;--mat-tab-foreground-color: white}.white-theme .mat-mdc-tab-group.mat-background-accent,.white-theme .mat-mdc-tab-nav-bar.mat-background-accent{--mat-tab-background-color: #a7a7a7;--mat-tab-foreground-color: #F8F9F9}.white-theme .mat-mdc-tab-group.mat-background-warn,.white-theme .mat-mdc-tab-nav-bar.mat-background-warn{--mat-tab-background-color: #f44336;--mat-tab-foreground-color: white}.white-theme{--mat-checkbox-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-label-text-color: rgba(0, 0, 0, .87);--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: #F8F9F9;--mat-checkbox-selected-focus-icon-color: #a7a7a7;--mat-checkbox-selected-hover-icon-color: #a7a7a7;--mat-checkbox-selected-icon-color: #a7a7a7;--mat-checkbox-selected-pressed-icon-color: #a7a7a7;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: #a7a7a7;--mat-checkbox-selected-hover-state-layer-color: #a7a7a7;--mat-checkbox-selected-pressed-state-layer-color: #a7a7a7;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-checkbox.mat-primary{--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: white;--mat-checkbox-selected-focus-icon-color: white;--mat-checkbox-selected-hover-icon-color: white;--mat-checkbox-selected-icon-color: white;--mat-checkbox-selected-pressed-icon-color: white;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: white;--mat-checkbox-selected-hover-state-layer-color: white;--mat-checkbox-selected-pressed-state-layer-color: white;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-checkbox.mat-warn{--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: white;--mat-checkbox-selected-focus-icon-color: #f44336;--mat-checkbox-selected-hover-icon-color: #f44336;--mat-checkbox-selected-icon-color: #f44336;--mat-checkbox-selected-pressed-icon-color: #f44336;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: #f44336;--mat-checkbox-selected-hover-state-layer-color: #f44336;--mat-checkbox-selected-pressed-state-layer-color: #f44336;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.white-theme{--mat-button-filled-container-color: white;--mat-button-filled-disabled-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-filled-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-filled-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-button-filled-focus-state-layer-opacity: .12;--mat-button-filled-hover-state-layer-opacity: .04;--mat-button-filled-label-text-color: rgba(0, 0, 0, .87);--mat-button-filled-pressed-state-layer-opacity: .12;--mat-button-filled-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-filled-state-layer-color: rgba(0, 0, 0, .87);--mat-button-outlined-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-outlined-disabled-outline-color: rgba(0, 0, 0, .12);--mat-button-outlined-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-button-outlined-focus-state-layer-opacity: .12;--mat-button-outlined-hover-state-layer-opacity: .04;--mat-button-outlined-label-text-color: rgba(0, 0, 0, .87);--mat-button-outlined-outline-color: rgba(0, 0, 0, .12);--mat-button-outlined-pressed-state-layer-opacity: .12;--mat-button-outlined-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-outlined-state-layer-color: rgba(0, 0, 0, .87);--mat-button-protected-container-color: white;--mat-button-protected-disabled-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-protected-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-protected-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-button-protected-focus-state-layer-opacity: .12;--mat-button-protected-hover-state-layer-opacity: .04;--mat-button-protected-label-text-color: rgba(0, 0, 0, .87);--mat-button-protected-pressed-state-layer-opacity: .12;--mat-button-protected-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-protected-state-layer-color: rgba(0, 0, 0, .87);--mat-button-text-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-text-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-button-text-focus-state-layer-opacity: .12;--mat-button-text-hover-state-layer-opacity: .04;--mat-button-text-label-text-color: rgba(0, 0, 0, .87);--mat-button-text-pressed-state-layer-opacity: .12;--mat-button-text-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-text-state-layer-color: rgba(0, 0, 0, .87);--mat-button-tonal-container-color: white;--mat-button-tonal-disabled-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-tonal-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-tonal-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-button-tonal-focus-state-layer-opacity: .12;--mat-button-tonal-hover-state-layer-opacity: .04;--mat-button-tonal-label-text-color: rgba(0, 0, 0, .87);--mat-button-tonal-pressed-state-layer-opacity: .12;--mat-button-tonal-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-tonal-state-layer-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-button.mat-primary,.white-theme .mat-mdc-unelevated-button.mat-primary,.white-theme .mat-mdc-raised-button.mat-primary,.white-theme .mat-mdc-outlined-button.mat-primary,.white-theme .mat-tonal-button.mat-primary{--mat-button-filled-container-color: white;--mat-button-filled-label-text-color: white;--mat-button-filled-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-filled-state-layer-color: white;--mat-button-outlined-label-text-color: white;--mat-button-outlined-outline-color: rgba(0, 0, 0, .12);--mat-button-outlined-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-outlined-state-layer-color: white;--mat-button-protected-container-color: white;--mat-button-protected-label-text-color: white;--mat-button-protected-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-protected-state-layer-color: white;--mat-button-text-label-text-color: white;--mat-button-text-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-text-state-layer-color: white;--mat-button-tonal-container-color: white;--mat-button-tonal-label-text-color: white;--mat-button-tonal-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-tonal-state-layer-color: white}.white-theme .mat-mdc-button.mat-accent,.white-theme .mat-mdc-unelevated-button.mat-accent,.white-theme .mat-mdc-raised-button.mat-accent,.white-theme .mat-mdc-outlined-button.mat-accent,.white-theme .mat-tonal-button.mat-accent{--mat-button-filled-container-color: #a7a7a7;--mat-button-filled-label-text-color: #F8F9F9;--mat-button-filled-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-button-filled-state-layer-color: #F8F9F9;--mat-button-outlined-label-text-color: #a7a7a7;--mat-button-outlined-outline-color: rgba(0, 0, 0, .12);--mat-button-outlined-ripple-color: color-mix(in srgb, #a7a7a7 12%, transparent);--mat-button-outlined-state-layer-color: #a7a7a7;--mat-button-protected-container-color: #a7a7a7;--mat-button-protected-label-text-color: #F8F9F9;--mat-button-protected-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-button-protected-state-layer-color: #F8F9F9;--mat-button-text-label-text-color: #a7a7a7;--mat-button-text-ripple-color: color-mix(in srgb, #a7a7a7 12%, transparent);--mat-button-text-state-layer-color: #a7a7a7;--mat-button-tonal-container-color: #a7a7a7;--mat-button-tonal-label-text-color: #F8F9F9;--mat-button-tonal-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-button-tonal-state-layer-color: #F8F9F9}.white-theme .mat-mdc-button.mat-warn,.white-theme .mat-mdc-unelevated-button.mat-warn,.white-theme .mat-mdc-raised-button.mat-warn,.white-theme .mat-mdc-outlined-button.mat-warn,.white-theme .mat-tonal-button.mat-warn{--mat-button-filled-container-color: #f44336;--mat-button-filled-label-text-color: white;--mat-button-filled-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-filled-state-layer-color: white;--mat-button-outlined-label-text-color: #f44336;--mat-button-outlined-outline-color: rgba(0, 0, 0, .12);--mat-button-outlined-ripple-color: color-mix(in srgb, #f44336 12%, transparent);--mat-button-outlined-state-layer-color: #f44336;--mat-button-protected-container-color: #f44336;--mat-button-protected-label-text-color: white;--mat-button-protected-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-protected-state-layer-color: white;--mat-button-text-label-text-color: #f44336;--mat-button-text-ripple-color: color-mix(in srgb, #f44336 12%, transparent);--mat-button-text-state-layer-color: #f44336;--mat-button-tonal-container-color: #f44336;--mat-button-tonal-label-text-color: white;--mat-button-tonal-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-tonal-state-layer-color: white}.white-theme{--mat-icon-button-disabled-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-icon-button-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-icon-button-focus-state-layer-opacity: .12;--mat-icon-button-hover-state-layer-opacity: .04;--mat-icon-button-icon-color: inherit;--mat-icon-button-pressed-state-layer-opacity: .12;--mat-icon-button-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-icon-button-state-layer-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-icon-button.mat-primary{--mat-icon-button-icon-color: white;--mat-icon-button-state-layer-color: white;--mat-icon-button-ripple-color: color-mix(in srgb, white 12%, transparent)}.white-theme .mat-mdc-icon-button.mat-accent{--mat-icon-button-icon-color: #a7a7a7;--mat-icon-button-state-layer-color: #a7a7a7;--mat-icon-button-ripple-color: color-mix(in srgb, #a7a7a7 12%, transparent)}.white-theme .mat-mdc-icon-button.mat-warn{--mat-icon-button-icon-color: #f44336;--mat-icon-button-state-layer-color: #f44336;--mat-icon-button-ripple-color: color-mix(in srgb, #f44336 12%, transparent)}.white-theme{--mat-fab-container-color: white;--mat-fab-disabled-state-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-fab-disabled-state-foreground-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-fab-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-fab-focus-state-layer-opacity: .12;--mat-fab-foreground-color: rgba(0, 0, 0, .87);--mat-fab-hover-state-layer-opacity: .04;--mat-fab-pressed-state-layer-opacity: .12;--mat-fab-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-fab-small-container-color: white;--mat-fab-small-disabled-state-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-fab-small-disabled-state-foreground-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-fab-small-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-fab-small-focus-state-layer-opacity: .12;--mat-fab-small-foreground-color: rgba(0, 0, 0, .87);--mat-fab-small-hover-state-layer-opacity: .04;--mat-fab-small-pressed-state-layer-opacity: .12;--mat-fab-small-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-fab-small-state-layer-color: rgba(0, 0, 0, .87);--mat-fab-state-layer-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-fab.mat-primary,.white-theme .mat-mdc-mini-fab.mat-primary{--mat-fab-container-color: white;--mat-fab-foreground-color: white;--mat-fab-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-fab-small-container-color: white;--mat-fab-small-foreground-color: white;--mat-fab-small-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-fab-small-state-layer-color: white;--mat-fab-state-layer-color: white}.white-theme .mat-mdc-fab.mat-accent,.white-theme .mat-mdc-mini-fab.mat-accent{--mat-fab-container-color: #a7a7a7;--mat-fab-foreground-color: #F8F9F9;--mat-fab-ripple-color: color-mix(in srgb, #a7a7a7 12%, transparent);--mat-fab-small-container-color: #a7a7a7;--mat-fab-small-foreground-color: #F8F9F9;--mat-fab-small-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-fab-small-state-layer-color: #F8F9F9;--mat-fab-state-layer-color: #F8F9F9}.white-theme .mat-mdc-fab.mat-warn,.white-theme .mat-mdc-mini-fab.mat-warn{--mat-fab-container-color: #f44336;--mat-fab-foreground-color: white;--mat-fab-ripple-color: color-mix(in srgb, #f44336 12%, transparent);--mat-fab-small-container-color: #f44336;--mat-fab-small-foreground-color: white;--mat-fab-small-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-fab-small-state-layer-color: white;--mat-fab-state-layer-color: white}.white-theme{--mat-snack-bar-container-color: #424242;--mat-snack-bar-supporting-text-color: white;--mat-table-background-color: white;--mat-table-header-headline-color: rgba(0, 0, 0, .87);--mat-table-row-item-label-text-color: rgba(0, 0, 0, .87);--mat-table-row-item-outline-color: rgba(0, 0, 0, .12);--mat-progress-spinner-active-indicator-color: white}.white-theme .mat-accent{--mat-progress-spinner-active-indicator-color: #a7a7a7}.white-theme .mat-warn{--mat-progress-spinner-active-indicator-color: #f44336}.white-theme{--mat-badge-background-color: white;--mat-badge-text-color: white;--mat-badge-disabled-state-background-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-badge-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}.white-theme .mat-badge-accent{--mat-badge-background-color: #a7a7a7;--mat-badge-text-color: #F8F9F9}.white-theme .mat-badge-warn{--mat-badge-background-color: #f44336;--mat-badge-text-color: white}.white-theme{--mat-bottom-sheet-container-text-color: rgba(0, 0, 0, .87);--mat-bottom-sheet-container-background-color: white;--mat-button-toggle-background-color: white;--mat-button-toggle-disabled-selected-state-background-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-toggle-disabled-selected-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-toggle-disabled-state-background-color: white;--mat-button-toggle-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-toggle-divider-color: rgba(0, 0, 0, .12);--mat-button-toggle-legacy-disabled-selected-state-background-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-toggle-legacy-disabled-state-background-color: white;--mat-button-toggle-legacy-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-toggle-legacy-selected-state-background-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-toggle-legacy-selected-state-text-color: rgba(0, 0, 0, .87);--mat-button-toggle-legacy-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-toggle-legacy-text-color: rgba(0, 0, 0, .87);--mat-button-toggle-selected-state-background-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-toggle-selected-state-text-color: rgba(0, 0, 0, .87);--mat-button-toggle-state-layer-color: rgba(0, 0, 0, .87);--mat-button-toggle-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-date-in-range-state-background-color: color-mix(in srgb, white 20%, transparent);--mat-datepicker-calendar-date-in-comparison-range-state-background-color: color-mix(in srgb, #a7a7a7 20%, transparent);--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: rgb(69.5241935484, 163.4758064516, 93.9516129032);--mat-datepicker-calendar-date-selected-state-text-color: white;--mat-datepicker-calendar-date-selected-state-background-color: white;--mat-datepicker-calendar-date-selected-disabled-state-background-color: color-mix(in srgb, white 38%, transparent);--mat-datepicker-calendar-date-today-selected-state-outline-color: white;--mat-datepicker-calendar-date-focus-state-background-color: color-mix(in srgb, white 12%, transparent);--mat-datepicker-calendar-date-hover-state-background-color: color-mix(in srgb, white 4%, transparent);--mat-datepicker-toggle-active-state-icon-color: white;--mat-datepicker-toggle-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-body-label-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-period-button-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-period-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-navigation-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-header-divider-color: rgba(0, 0, 0, .12);--mat-datepicker-calendar-header-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-disabled-state-outline-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-date-outline-color: transparent;--mat-datepicker-calendar-date-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-preview-state-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-range-input-separator-color: rgba(0, 0, 0, .87);--mat-datepicker-range-input-disabled-state-separator-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-range-input-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-container-background-color: white;--mat-datepicker-calendar-container-text-color: rgba(0, 0, 0, .87)}.white-theme .mat-datepicker-content.mat-accent,.white-theme .mat-datepicker-toggle-active.mat-accent{--mat-datepicker-calendar-date-in-range-state-background-color: color-mix(in srgb, #a7a7a7 20%, transparent);--mat-datepicker-calendar-date-in-comparison-range-state-background-color: color-mix(in srgb, #a7a7a7 20%, transparent);--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: rgb(69.5241935484, 163.4758064516, 93.9516129032);--mat-datepicker-calendar-date-selected-state-text-color: #F8F9F9;--mat-datepicker-calendar-date-selected-state-background-color: #a7a7a7;--mat-datepicker-calendar-date-selected-disabled-state-background-color: color-mix(in srgb, #a7a7a7 38%, transparent);--mat-datepicker-calendar-date-today-selected-state-outline-color: #F8F9F9;--mat-datepicker-calendar-date-focus-state-background-color: color-mix(in srgb, #a7a7a7 12%, transparent);--mat-datepicker-calendar-date-hover-state-background-color: color-mix(in srgb, #a7a7a7 4%, transparent);--mat-datepicker-toggle-active-state-icon-color: #a7a7a7;--mat-datepicker-toggle-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-body-label-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-period-button-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-period-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-navigation-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-header-divider-color: rgba(0, 0, 0, .12);--mat-datepicker-calendar-header-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-disabled-state-outline-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-date-outline-color: transparent;--mat-datepicker-calendar-date-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-preview-state-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-range-input-separator-color: rgba(0, 0, 0, .87);--mat-datepicker-range-input-disabled-state-separator-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-range-input-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-container-background-color: white;--mat-datepicker-calendar-container-text-color: rgba(0, 0, 0, .87)}.white-theme .mat-datepicker-content.mat-warn,.white-theme .mat-datepicker-toggle-active.mat-warn{--mat-datepicker-calendar-date-in-range-state-background-color: color-mix(in srgb, #f44336 20%, transparent);--mat-datepicker-calendar-date-in-comparison-range-state-background-color: color-mix(in srgb, #a7a7a7 20%, transparent);--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: rgb(69.5241935484, 163.4758064516, 93.9516129032);--mat-datepicker-calendar-date-selected-state-text-color: white;--mat-datepicker-calendar-date-selected-state-background-color: #f44336;--mat-datepicker-calendar-date-selected-disabled-state-background-color: color-mix(in srgb, #f44336 38%, transparent);--mat-datepicker-calendar-date-today-selected-state-outline-color: white;--mat-datepicker-calendar-date-focus-state-background-color: color-mix(in srgb, #f44336 12%, transparent);--mat-datepicker-calendar-date-hover-state-background-color: color-mix(in srgb, #f44336 4%, transparent);--mat-datepicker-toggle-active-state-icon-color: #f44336;--mat-datepicker-toggle-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-body-label-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-period-button-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-period-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-navigation-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-header-divider-color: rgba(0, 0, 0, .12);--mat-datepicker-calendar-header-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-disabled-state-outline-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-date-outline-color: transparent;--mat-datepicker-calendar-date-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-preview-state-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-range-input-separator-color: rgba(0, 0, 0, .87);--mat-datepicker-range-input-disabled-state-separator-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-range-input-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-container-background-color: white;--mat-datepicker-calendar-container-text-color: rgba(0, 0, 0, .87)}.white-theme{--mat-divider-color: rgba(0, 0, 0, .12);--mat-expansion-container-background-color: white;--mat-expansion-container-text-color: rgba(0, 0, 0, .87);--mat-expansion-actions-divider-color: rgba(0, 0, 0, .12);--mat-expansion-header-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-expansion-header-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-expansion-header-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-expansion-header-text-color: rgba(0, 0, 0, .87);--mat-expansion-header-description-color: rgba(0, 0, 0, .54);--mat-expansion-header-indicator-color: rgba(0, 0, 0, .54);--mat-icon-color: inherit}.white-theme .mat-icon.mat-primary{--mat-icon-color: white}.white-theme .mat-icon.mat-accent{--mat-icon-color: #a7a7a7}.white-theme .mat-icon.mat-warn{--mat-icon-color: #f44336}.white-theme{--mat-sidenav-container-divider-color: rgba(0, 0, 0, .12);--mat-sidenav-container-background-color: white;--mat-sidenav-container-text-color: rgba(0, 0, 0, .87);--mat-sidenav-content-background-color: #fafafa;--mat-sidenav-content-text-color: rgba(0, 0, 0, .87);--mat-sidenav-scrim-color: rgba(0, 0, 0, .6);--mat-stepper-header-icon-foreground-color: white;--mat-stepper-header-selected-state-icon-background-color: white;--mat-stepper-header-selected-state-icon-foreground-color: white;--mat-stepper-header-done-state-icon-background-color: white;--mat-stepper-header-done-state-icon-foreground-color: white;--mat-stepper-header-edit-state-icon-background-color: white;--mat-stepper-header-edit-state-icon-foreground-color: white;--mat-stepper-container-color: white;--mat-stepper-line-color: rgba(0, 0, 0, .12);--mat-stepper-header-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-stepper-header-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-stepper-header-label-text-color: rgba(0, 0, 0, .54);--mat-stepper-header-optional-label-text-color: rgba(0, 0, 0, .54);--mat-stepper-header-selected-state-label-text-color: rgba(0, 0, 0, .87);--mat-stepper-header-error-state-label-text-color: #f44336;--mat-stepper-header-icon-background-color: rgba(0, 0, 0, .54);--mat-stepper-header-error-state-icon-foreground-color: #f44336;--mat-stepper-header-error-state-icon-background-color: transparent}.white-theme .mat-step-header.mat-accent{--mat-stepper-header-icon-foreground-color: #F8F9F9;--mat-stepper-header-selected-state-icon-background-color: #a7a7a7;--mat-stepper-header-selected-state-icon-foreground-color: #F8F9F9;--mat-stepper-header-done-state-icon-background-color: #a7a7a7;--mat-stepper-header-done-state-icon-foreground-color: #F8F9F9;--mat-stepper-header-edit-state-icon-background-color: #a7a7a7;--mat-stepper-header-edit-state-icon-foreground-color: #F8F9F9}.white-theme .mat-step-header.mat-warn{--mat-stepper-header-icon-foreground-color: white;--mat-stepper-header-selected-state-icon-background-color: #f44336;--mat-stepper-header-selected-state-icon-foreground-color: white;--mat-stepper-header-done-state-icon-background-color: #f44336;--mat-stepper-header-done-state-icon-foreground-color: white;--mat-stepper-header-edit-state-icon-background-color: #f44336;--mat-stepper-header-edit-state-icon-foreground-color: white}.white-theme{--mat-sort-arrow-color: rgba(0, 0, 0, .87);--mat-toolbar-container-background-color: white;--mat-toolbar-container-text-color: rgba(0, 0, 0, .87)}.white-theme .mat-toolbar.mat-primary{--mat-toolbar-container-background-color: white;--mat-toolbar-container-text-color: white}.white-theme .mat-toolbar.mat-accent{--mat-toolbar-container-background-color: #a7a7a7;--mat-toolbar-container-text-color: #F8F9F9}.white-theme .mat-toolbar.mat-warn{--mat-toolbar-container-background-color: #f44336;--mat-toolbar-container-text-color: white}.white-theme{--mat-tree-container-background-color: white;--mat-tree-node-text-color: rgba(0, 0, 0, .87);--mat-timepicker-container-background-color: white} diff --git a/static/skywire-manager-src/dist/styles.ecb746519c449178.css b/static/skywire-manager-src/dist/styles.ecb746519c449178.css deleted file mode 100644 index 4acd71b3ce..0000000000 --- a/static/skywire-manager-src/dist/styles.ecb746519c449178.css +++ /dev/null @@ -1,5 +0,0 @@ -@font-face{font-family:Material Icons;font-style:normal;font-weight:400;src:url(MaterialIcons-Regular.1e50f5c2ffa6aba4.eot);src:local("Material Icons"),local("MaterialIcons-Regular"),url(MaterialIcons-Regular.7ea2023eeca07427.woff2) format("woff2"),url(MaterialIcons-Regular.db852539204b1a34.woff) format("woff"),url(MaterialIcons-Regular.196fa4a92dd6fa73.ttf) format("truetype")}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga"}@charset "UTF-8";.cursor-pointer,.highlight-internal-icon{cursor:pointer}.reactivate-mouse{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled{pointer-events:none}.clearfix:after{content:"";display:block;clear:both}.mt-4\.5{margin-top:2rem!important}.highlight-internal-icon mat-icon{opacity:.5}.highlight-internal-icon:hover mat-icon{opacity:.8}.transparent-button{opacity:.5}.transparent-button:hover{opacity:1}.subtle-transparent-button,.generic-title-container .options .options-container>mat-icon,.generic-title-container .icon-button{opacity:.85}.subtle-transparent-button:hover,.generic-title-container .options .options-container>mat-icon:hover,.generic-title-container .icon-button:hover{opacity:1}@media(max-width:767px),(min-width:992px)and (max-width:1299px){.small-node-list-margins{padding:0!important}}@media(max-width:767px){.full-node-list-margins{padding:0!important}}@font-face{font-family:Skycoin;font-style:normal;font-weight:300;src:url(/assets/fonts/skycoin/skycoin-light-webfont.woff2) format("woff2"),url(/assets/fonts/skycoin/skycoin-light-webfont.woff) format("woff")}@font-face{font-family:Skycoin;font-style:normal;font-weight:400;src:url(/assets/fonts/skycoin/skycoin-regular-webfont.woff2) format("woff2"),url(/assets/fonts/skycoin/skycoin-regular-webfont.woff) format("woff")}@font-face{font-family:Skycoin;font-style:normal;font-weight:700;src:url(/assets/fonts/skycoin/skycoin-bold-webfont.woff2) format("woff2"),url(/assets/fonts/skycoin/skycoin-bold-webfont.woff) format("woff")}span{overflow-wrap:break-word}.font-sm{font-size:.875rem!important;font-weight:lighter!important}.font-smaller{font-size:.8rem!important;font-weight:lighter!important}.uppercase{text-transform:uppercase}.single-line,.options-list-button-container button .internal-container{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text{color:#2ecc54}.green-clear-text{color:#84c826}.yellow-text{color:#d48b05}.yellow-clear-text{color:orange}.red-text{color:#da3439}.red-clear-text{color:#ff393f}.grey-text{color:#777!important}.dot-green{height:10px;width:10px;background-color:#2ecc54;border-radius:50%;display:inline-block}.dot-green.sm{height:7px;width:7px}.dot-red{height:10px;width:10px;background-color:#da3439;border-radius:50%;display:inline-block}.dot-red.sm{height:7px;width:7px}.dot-yellow{height:10px;width:10px;background-color:#d48b05;border-radius:50%;display:inline-block}.dot-yellow.sm{height:7px;width:7px}.dot-outline-white{height:10px;width:10px;border-radius:50%;border:solid 1px #F8F9F9;display:inline-block}.dot-outline-white.sm{height:7px;width:7px}.dot-outline-gray{height:10px;width:10px;border-radius:50%;border:solid 1px #777;display:inline-block}.dot-outline-gray.sm{height:7px;width:7px}.mat-mdc-menu-panel{border-radius:10px!important;max-width:none!important}.mat-mdc-menu-item{width:auto!important}.mat-mdc-menu-item mat-icon{opacity:.5}.responsive-table-translucid{background:transparent!important;margin-left:auto;margin-right:auto;border-collapse:separate!important;width:100%;word-break:break-all;color:#f8f9f9!important}.responsive-table-translucid td,.responsive-table-translucid th{color:#f8f9f9!important;padding:12px 10px;border-bottom:1px solid rgba(255,255,255,.15)}.responsive-table-translucid th{font-size:.875rem!important;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;height:48px}.responsive-table-translucid td{font-size:.8rem!important;font-weight:lighter!important}.responsive-table-translucid tr .sortable-column mat-icon{display:inline;position:relative;top:2px}.responsive-table-translucid .link-row{display:table-row;text-decoration:none}.responsive-table-translucid .link-row:hover{text-decoration:none}.responsive-table-translucid td{vertical-align:middle}.responsive-table-translucid .selection-col{width:30px;padding-top:0;padding-bottom:0}.responsive-table-translucid .selection-col .mat-mdc-checkbox{vertical-align:super}.responsive-table-translucid .action-button,.responsive-table-translucid .big-action-button{width:28px!important;height:28px!important;line-height:16px;font-size:16px;margin-right:5px;padding:0!important;color:#fff!important;min-width:0!important}.responsive-table-translucid .action-button:last-child,.responsive-table-translucid .big-action-button:last-child{margin-right:0}.responsive-table-translucid .action-button .mat-icon,.responsive-table-translucid .big-action-button .mat-icon{margin-right:0!important}.responsive-table-translucid .big-action-button{line-height:18px;font-size:18px}.responsive-table-translucid .selectable,.responsive-table-translucid tr .sortable-column{cursor:pointer}.responsive-table-translucid .selectable:hover,.responsive-table-translucid tr .sortable-column:hover{background:#0003}.responsive-table-translucid .click-effect:active{background:#0006!important}.responsive-table-translucid mat-checkbox>label{margin-bottom:0}.responsive-table-translucid mat-checkbox .mdc-checkbox__background{box-sizing:border-box;width:18px;height:18px;background:#0000004d!important;border-radius:6px;border-width:2px;border-color:#00000080}.responsive-table-translucid mat-checkbox .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background{background-color:#0000004d!important;border-color:#00000080!important}.responsive-table-translucid mat-checkbox svg{color:#fff!important}.responsive-table-translucid .list-item-container{display:flex;padding:10px 0 10px 15px}.responsive-table-translucid .list-item-container .check-part{width:50px;flex-shrink:0;margin-left:-20px}.responsive-table-translucid .list-item-container .left-part{flex-grow:1}.responsive-table-translucid .list-item-container .left-part .list-row{margin-bottom:5px;word-break:break-word}.responsive-table-translucid .list-item-container .left-part .list-row:last-of-type{margin-bottom:0}.responsive-table-translucid .list-item-container .left-part .long-content{word-break:break-all}.responsive-table-translucid .list-item-container .margin-part{width:5px;height:5px;flex-shrink:0}.responsive-table-translucid .list-item-container .right-part{width:60px;text-align:center;flex-shrink:0}.responsive-table-translucid .list-item-container .right-part button{width:60px;height:60px}.responsive-table-translucid .list-item-container .right-part mat-icon{display:inline;font-size:20px}.responsive-table-translucid .title{font-size:.875rem!important;font-weight:700}@media(min-width:768px){.generic-title-container{padding-right:5px}}@media(max-width:767px){.generic-title-container{margin-right:-15px}}.generic-title-container .title{margin-right:auto;font-size:1rem;font-weight:700}@media(min-width:768px){.generic-title-container .title{margin-left:1.25rem!important}}.generic-title-container .title .filter-label{font-size:.7rem;font-weight:lighter}.generic-title-container .title .help{opacity:.5;font-size:14px;cursor:default}.generic-title-container .icon-button{display:flex;line-height:18px!important;margin-right:15px;background:#f8f9f9;color:#154b6c;border-radius:1000px;cursor:pointer;padding:1px 7px;font-weight:400;border:0;font-size:.8rem;align-items:center}.generic-title-container .icon-button mat-icon{margin-right:2px;font-size:18px;height:auto;width:auto}@media(max-width:767px){.generic-title-container .icon-button{padding:1px 10px;line-height:24px!important;font-size:.875rem!important}.generic-title-container .icon-button mat-icon{margin-right:3px;font-size:22px}}.generic-title-container .options{text-align:right}.generic-title-container .options .options-container{text-align:right;display:inline-flex}.generic-title-container .options .options-container>mat-icon{width:18px!important;height:18px!important;line-height:18px!important;font-size:18px!important;margin-right:15px;background:#f8f9f9;color:#154b6c;border-radius:1000px;cursor:pointer}@media(max-width:767px){.generic-title-container .options .options-container>mat-icon{width:24px!important;height:24px!important;line-height:24px!important;font-size:24px!important}}.generic-title-container .options .options-container .small-icon{font-size:14px!important;text-align:center}.paginator-icons-fixer{margin-right:0!important}mat-form-field{display:block!important}.white-form-field{color:#f8f9f9}.white-form-field .mat-mdc-select-value,.white-form-field .mat-mdc-select-arrow{color:#f8f9f9!important}.white-form-field .mdc-line-ripple:before{border-bottom-color:#f8f9f980!important}.white-form-field input{color:#f8f9f9!important}.white-form-field .mat-mdc-input-element{caret-color:#f8f9f9}.form-help-icon-container,.white-form-help-icon-container{height:0px;text-align:right;color:#215f9e}.white-form-help-icon-container{color:#f8f9f9cc}.element-disabled{pointer-events:none!important;opacity:.5!important}.app-background{width:100%;height:100%;top:0;left:0;position:fixed;background:linear-gradient(#060a10,#0a1421) no-repeat fixed!important;box-shadow:inset 0 0 200px #608dcd40;z-index:-1}.no-gradient-for-elevated-box{box-shadow:5px 5px 7px #00000059!important}.elevated-box,.rounded-elevated-box,.small-rounded-elevated-box{background-image:url(/assets/img/background-pattern.png);box-shadow:inset 0 0 55px #35578666,5px 5px 7px #00000059;border:rgba(156,197,255,.33) solid 1px}.rounded-elevated-box,.small-rounded-elevated-box{width:100%;border-radius:10px;overflow:hidden;padding:3px}.rounded-elevated-box .box-internal-container,.small-rounded-elevated-box .box-internal-container{border-radius:10px;padding:12px;border:rgba(156,197,255,.1155) solid 1px;overflow:hidden}.small-rounded-elevated-box{width:unset;padding:0;box-shadow:inset 0 0 20px #35578666,5px 5px 7px #00000059}.mat-mdc-dialog-surface{border-radius:10px!important;background-image:url(/assets/img/modal-background-pattern.png)!important;box-shadow:inset 0 0 100px #ffffff80,5px 5px 15px #000!important;background-color:#e0e5ec!important;overflow:hidden;padding:24px!important}.mat-mdc-dialog-content{font-family:Skycoin!important;margin:0 -24px -24px!important;padding:24px!important;color:#202226!important;line-height:1.5!important}app-dialog app-loading-indicator{margin-top:32px;margin-bottom:24px}.options-list-button-container{margin:0 -24px}.options-list-button-container button{width:100%}.options-list-button-container button .internal-container{text-align:left;padding:5px 7px}.options-list-button-container button mat-icon{margin-right:10px;position:relative;top:2px;opacity:.5}.options-list-button-container:first-of-type{margin-top:-24px!important}.options-list-button-container:last-of-type{margin-bottom:-24px!important}.info-dialog{word-break:break-all;font-size:.875rem;color:#202226}.info-dialog .title{margin-bottom:2px;font-size:1rem;margin-top:25px;color:#215f9e;display:flex}.info-dialog .title mat-icon{margin-right:5px;position:relative;top:2px}.info-dialog .item{margin-top:2px}.info-dialog .item span{color:#999}.top-dialog-button{margin-left:-24px;margin-right:-24px;font-size:.8rem;background-color:#d9deeb;color:#202226;cursor:pointer}.top-dialog-button:hover{background-color:#cfd5e6}.top-dialog-button .top-dialog-button-content{padding:10px 24px}.top-dialog-button .top-dialog-button-margin{height:1px;background-color:#215f9e33;margin:0 12px}.vpn-small-button{cursor:pointer;-webkit-user-select:none;user-select:none}.vpn-small-button:active{transform:scale(.9)}.vpn-dark-box-radius{border-radius:10px}.vpn-table-container{text-align:center}.vpn-table-container .width-limiter{width:inherit;max-width:1250px;display:inline-block;text-align:initial}*,*:before,*:after{box-sizing:border-box}@media(prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(32,34,38,0)}hr{margin:1rem 0;color:inherit;border:0;border-top:var(--bs-border-width) solid;opacity:.25}h6,.h6,h5,.h5,h4,.h4,h3,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color)}h1,.h1{font-size:calc(1.375rem + 1.5vw)}@media(min-width:1200px){h1,.h1{font-size:2.5rem}}h2,.h2{font-size:calc(1.325rem + .9vw)}@media(min-width:1200px){h2,.h2{font-size:2rem}}h3,.h3{font-size:calc(1.3rem + .6vw)}@media(min-width:1200px){h3,.h3{font-size:1.75rem}}h4,.h4{font-size:calc(1.275rem + .3vw)}@media(min-width:1200px){h4,.h4{font-size:1.5rem}}h5,.h5{font-size:1.25rem}h6,.h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small,.small{font-size:.875em}mark,.mark{padding:.1875em;color:var(--bs-highlight-color);background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity, 1));text-decoration:underline}a:hover{--bs-link-color-rgb: var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-secondary-color);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;line-height:inherit;font-size:calc(1.275rem + .3vw)}@media(min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button{cursor:pointer;filter:grayscale(1)}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.list-group{--bs-list-group-color: var(--bs-body-color);--bs-list-group-bg: var(--bs-body-bg);--bs-list-group-border-color: var(--bs-border-color);--bs-list-group-border-width: var(--bs-border-width);--bs-list-group-border-radius: var(--bs-border-radius);--bs-list-group-item-padding-x: 1rem;--bs-list-group-item-padding-y: .5rem;--bs-list-group-action-color: var(--bs-secondary-color);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-tertiary-bg);--bs-list-group-action-active-color: var(--bs-body-color);--bs-list-group-action-active-bg: var(--bs-secondary-bg);--bs-list-group-disabled-color: var(--bs-secondary-color);--bs-list-group-disabled-bg: var(--bs-body-bg);--bs-list-group-active-color: #F8F9F9;--bs-list-group-active-bg: #0d6efd;--bs-list-group-active-border-color: #0d6efd;display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item:before{content:counters(section,".") ". ";counter-increment:section}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1 * var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:not(.active):hover,.list-group-item-action:not(.active):focus{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:not(.active):active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media(min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width:1300px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-green{--bs-list-group-color: var(--bs-green-text-emphasis);--bs-list-group-bg: var(--bs-green-bg-subtle);--bs-list-group-border-color: var(--bs-green-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-green-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-green-border-subtle);--bs-list-group-active-color: var(--bs-green-bg-subtle);--bs-list-group-active-bg: var(--bs-green-text-emphasis);--bs-list-group-active-border-color: var(--bs-green-text-emphasis)}.list-group-item-red{--bs-list-group-color: var(--bs-red-text-emphasis);--bs-list-group-bg: var(--bs-red-bg-subtle);--bs-list-group-border-color: var(--bs-red-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-red-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-red-border-subtle);--bs-list-group-active-color: var(--bs-red-bg-subtle);--bs-list-group-active-bg: var(--bs-red-text-emphasis);--bs-list-group-active-border-color: var(--bs-red-text-emphasis)}.list-group-item-yellow{--bs-list-group-color: var(--bs-yellow-text-emphasis);--bs-list-group-bg: var(--bs-yellow-bg-subtle);--bs-list-group-border-color: var(--bs-yellow-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-yellow-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-yellow-border-subtle);--bs-list-group-active-color: var(--bs-yellow-bg-subtle);--bs-list-group-active-bg: var(--bs-yellow-text-emphasis);--bs-list-group-active-border-color: var(--bs-yellow-text-emphasis)}.list-group-item-translucid-hover{--bs-list-group-color: var(--bs-translucid-hover-text-emphasis);--bs-list-group-bg: var(--bs-translucid-hover-bg-subtle);--bs-list-group-border-color: var(--bs-translucid-hover-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-translucid-hover-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-translucid-hover-border-subtle);--bs-list-group-active-color: var(--bs-translucid-hover-bg-subtle);--bs-list-group-active-bg: var(--bs-translucid-hover-text-emphasis);--bs-list-group-active-border-color: var(--bs-translucid-hover-text-emphasis)}.list-group-item-translucid-hover-hard{--bs-list-group-color: var(--bs-translucid-hover-hard-text-emphasis);--bs-list-group-bg: var(--bs-translucid-hover-hard-bg-subtle);--bs-list-group-border-color: var(--bs-translucid-hover-hard-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-translucid-hover-hard-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-translucid-hover-hard-border-subtle);--bs-list-group-active-color: var(--bs-translucid-hover-hard-bg-subtle);--bs-list-group-active-bg: var(--bs-translucid-hover-hard-text-emphasis);--bs-list-group-active-border-color: var(--bs-translucid-hover-hard-text-emphasis)}.list-group-item-white{--bs-list-group-color: var(--bs-white-text-emphasis);--bs-list-group-bg: var(--bs-white-bg-subtle);--bs-list-group-border-color: var(--bs-white-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-white-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-white-border-subtle);--bs-list-group-active-color: var(--bs-white-bg-subtle);--bs-list-group-active-bg: var(--bs-white-text-emphasis);--bs-list-group-active-border-color: var(--bs-white-text-emphasis)}.list-group-item-light-gray{--bs-list-group-color: var(--bs-light-gray-text-emphasis);--bs-list-group-bg: var(--bs-light-gray-bg-subtle);--bs-list-group-border-color: var(--bs-light-gray-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-light-gray-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-light-gray-border-subtle);--bs-list-group-active-color: var(--bs-light-gray-bg-subtle);--bs-list-group-active-bg: var(--bs-light-gray-text-emphasis);--bs-list-group-active-border-color: var(--bs-light-gray-text-emphasis)}.lead{font-size:1.25rem;font-weight:300}.display-1{font-weight:300;line-height:1.2;font-size:calc(1.625rem + 4.5vw)}@media(min-width:1200px){.display-1{font-size:5rem}}.display-2{font-weight:300;line-height:1.2;font-size:calc(1.575rem + 3.9vw)}@media(min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-weight:300;line-height:1.2;font-size:calc(1.525rem + 3.3vw)}@media(min-width:1200px){.display-3{font-size:4rem}}.display-4{font-weight:300;line-height:1.2;font-size:calc(1.475rem + 2.7vw)}@media(min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-weight:300;line-height:1.2;font-size:calc(1.425rem + 2.1vw)}@media(min-width:1200px){.display-5{font-size:3rem}}.display-6{font-weight:300;line-height:1.2;font-size:calc(1.375rem + 1.5vw)}@media(min-width:1200px){.display-6{font-size:2.5rem}}.list-unstyled,.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer:before{content:"\2014\a0"}/*! - * Bootstrap Grid v5.3.8 (https://getbootstrap.com/) - * Copyright 2011-2025 The Bootstrap Authors - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */.container,.container-fluid,.container-xxl,.container-xl,.container-lg,.container-md,.container-sm{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media(min-width:576px){.container-sm,.container{max-width:540px}}@media(min-width:768px){.container-md,.container-sm,.container{max-width:720px}}@media(min-width:992px){.container-lg,.container-md,.container-sm,.container{max-width:960px}}@media(min-width:1300px){.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1140px}}.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1320px}:root{--bs-breakpoint-xs: 0;--bs-breakpoint-sm: 576px;--bs-breakpoint-md: 768px;--bs-breakpoint-lg: 992px;--bs-breakpoint-xl: 1300px}.row{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{box-sizing:border-box;flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.66666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x: 0}.g-0,.gy-0{--bs-gutter-y: 0}.g-1,.gx-1{--bs-gutter-x: .25rem}.g-1,.gy-1{--bs-gutter-y: .25rem}.g-2,.gx-2{--bs-gutter-x: .5rem}.g-2,.gy-2{--bs-gutter-y: .5rem}.g-3,.gx-3{--bs-gutter-x: 1rem}.g-3,.gy-3{--bs-gutter-y: 1rem}.g-4,.gx-4{--bs-gutter-x: 1.5rem}.g-4,.gy-4{--bs-gutter-y: 1.5rem}.g-5,.gx-5{--bs-gutter-x: 3rem}.g-5,.gy-5{--bs-gutter-y: 3rem}@media(min-width:576px){.col-sm{flex:1 0 0}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.66666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x: 0}.g-sm-0,.gy-sm-0{--bs-gutter-y: 0}.g-sm-1,.gx-sm-1{--bs-gutter-x: .25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y: .25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x: .5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y: .5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x: 1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y: 1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x: 1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y: 1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x: 3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y: 3rem}}@media(min-width:768px){.col-md{flex:1 0 0}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.66666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x: 0}.g-md-0,.gy-md-0{--bs-gutter-y: 0}.g-md-1,.gx-md-1{--bs-gutter-x: .25rem}.g-md-1,.gy-md-1{--bs-gutter-y: .25rem}.g-md-2,.gx-md-2{--bs-gutter-x: .5rem}.g-md-2,.gy-md-2{--bs-gutter-y: .5rem}.g-md-3,.gx-md-3{--bs-gutter-x: 1rem}.g-md-3,.gy-md-3{--bs-gutter-y: 1rem}.g-md-4,.gx-md-4{--bs-gutter-x: 1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y: 1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x: 3rem}.g-md-5,.gy-md-5{--bs-gutter-y: 3rem}}@media(min-width:992px){.col-lg{flex:1 0 0}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.66666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x: 0}.g-lg-0,.gy-lg-0{--bs-gutter-y: 0}.g-lg-1,.gx-lg-1{--bs-gutter-x: .25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y: .25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x: .5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y: .5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x: 1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y: 1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x: 1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y: 1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x: 3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y: 3rem}}@media(min-width:1300px){.col-xl{flex:1 0 0}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.66666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x: 0}.g-xl-0,.gy-xl-0{--bs-gutter-y: 0}.g-xl-1,.gx-xl-1{--bs-gutter-x: .25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y: .25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x: .5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y: .5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x: 1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y: 1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x: 1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y: 1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x: 3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y: 3rem}}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-inline-grid{display:inline-grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}@media(min-width:576px){.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-inline-grid{display:inline-grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}}@media(min-width:768px){.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-inline-grid{display:inline-grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}}@media(min-width:992px){.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-inline-grid{display:inline-grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}}@media(min-width:1300px){.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-inline-grid{display:inline-grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-inline-grid{display:inline-grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}}.navbar{--bs-navbar-padding-x: 0;--bs-navbar-padding-y: .5rem;--bs-navbar-color: rgba(var(--bs-emphasis-color-rgb), .65);--bs-navbar-hover-color: rgba(var(--bs-emphasis-color-rgb), .8);--bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), .3);--bs-navbar-active-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-padding-y: .3125rem;--bs-navbar-brand-margin-end: 1rem;--bs-navbar-brand-font-size: 1.25rem;--bs-navbar-brand-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-hover-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-nav-link-padding-x: .5rem;--bs-navbar-toggler-padding-y: .25rem;--bs-navbar-toggler-padding-x: .75rem;--bs-navbar-toggler-font-size: 1.25rem;--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), .15);--bs-navbar-toggler-border-radius: var(--bs-border-radius);--bs-navbar-toggler-focus-width: .25rem;--bs-navbar-toggler-transition: box-shadow .15s ease-in-out;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-sm,.navbar>.container-md,.navbar>.container-lg,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x: 0;--bs-nav-link-padding-y: .5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-navbar-color);--bs-nav-link-hover-color: var(--bs-navbar-hover-color);--bs-nav-link-disabled-color: var(--bs-navbar-disabled-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:hover,.navbar-text a:focus{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-grow:1;flex-basis:100%;align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@media(prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height, 75vh);overflow-y:auto}@media(min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media(min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media(min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media(min-width:1300px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-bs-theme=dark]{--bs-navbar-color: rgba(248, 249, 249, .55);--bs-navbar-hover-color: rgba(248, 249, 249, .75);--bs-navbar-disabled-color: rgba(248, 249, 249, .25);--bs-navbar-active-color: #F8F9F9;--bs-navbar-brand-color: #F8F9F9;--bs-navbar-brand-hover-color: #F8F9F9;--bs-navbar-toggler-border-color: rgba(248, 249, 249, .1);--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28248, 249, 249, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-bs-theme=dark] .navbar-toggler-icon{--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28248, 249, 249, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}html,body{height:100%;min-height:100%;font-family:Skycoin;margin:0;color:#f8f9f9!important;font-size:1rem;backface-visibility:hidden}button:focus{outline:0}.mat-mdc-button{min-width:40px!important;padding:0 16px!important}.mat-mdc-button .mat-icon{height:auto!important;width:auto!important}.mdc-snackbar__surface{background-color:transparent!important;box-shadow:none!important}.mat-mdc-form-field-infix{display:flex}.mdc-text-field--filled{background-color:transparent!important;padding:0!important}.mdc-text-field--filled .mat-mdc-form-field-focus-overlay{opacity:0!important}.mdc-text-field--filled .mat-mdc-form-field-infix{padding:0!important;min-height:45px!important}.mdc-text-field--filled .mat-mdc-form-field-infix .field-container{width:100%}.mdc-text-field--filled .mat-mdc-form-field-infix .field-container .field-label{margin:0 0 5px;font-size:.7rem;opacity:.55}.mdc-text-field--filled .mat-mdc-form-field-infix .mat-mdc-form-field-input-control{font-family:Skycoin!important;font-size:.875rem!important}.mat-mdc-form-field-bottom-align{margin-bottom:15px}.mat-mdc-form-field-bottom-align:before{display:none!important}.mat-mdc-form-field-error-wrapper{padding:0!important;position:inherit!important;line-height:1.2;margin-top:3px}.mat-mdc-select{display:flex!important;font-family:Skycoin!important;font-size:.875rem!important}.mat-mdc-select .mat-mdc-select-value{line-height:1.5}.mat-mdc-select-value,.mat-mdc-select-min-line,.mat-mdc-select-placeholder,.mat-mdc-select-arrow{color:#ffffffde!important}.cdk-overlay-pane .skynet-select-panel.mdc-menu-surface,.cdk-overlay-pane .skynet-select-panel.mat-mdc-select-panel,.mat-mdc-select-panel.skynet-select-panel{background-color:#1f2533!important;--mat-app-surface: #1f2533;--mdc-theme-surface: #1f2533;--mat-mdc-select-panel-background-color: #1f2533;--mdc-list-list-item-label-text-color: rgba(255, 255, 255, .87);--mdc-list-list-item-hover-label-text-color: #ffffff;--mdc-list-list-item-focus-label-text-color: #ffffff;--mdc-list-list-item-hover-state-layer-color: rgba(255, 255, 255, .08);--mdc-list-list-item-focus-state-layer-color: rgba(255, 255, 255, .12);--mat-option-label-text-color: rgba(255, 255, 255, .87);--mat-option-selected-state-label-text-color: #ffffff}.cdk-overlay-pane .skynet-select-panel.mdc-menu-surface .mat-mdc-option,.cdk-overlay-pane .skynet-select-panel.mdc-menu-surface .mat-mdc-option .mdc-list-item__primary-text,.cdk-overlay-pane .skynet-select-panel.mdc-menu-surface .mdc-list-item__primary-text,.cdk-overlay-pane .skynet-select-panel.mat-mdc-select-panel .mat-mdc-option,.cdk-overlay-pane .skynet-select-panel.mat-mdc-select-panel .mat-mdc-option .mdc-list-item__primary-text,.cdk-overlay-pane .skynet-select-panel.mat-mdc-select-panel .mdc-list-item__primary-text,.mat-mdc-select-panel.skynet-select-panel .mat-mdc-option,.mat-mdc-select-panel.skynet-select-panel .mat-mdc-option .mdc-list-item__primary-text,.mat-mdc-select-panel.skynet-select-panel .mdc-list-item__primary-text{color:#ffffffde!important}.cdk-overlay-pane .skynet-select-panel.mdc-menu-surface .mat-mdc-option:hover:not(.mdc-list-item--disabled),.cdk-overlay-pane .skynet-select-panel.mdc-menu-surface .mat-mdc-option.mat-mdc-option-active,.cdk-overlay-pane .skynet-select-panel.mdc-menu-surface .mat-mdc-option.mdc-list-item--selected,.cdk-overlay-pane .skynet-select-panel.mat-mdc-select-panel .mat-mdc-option:hover:not(.mdc-list-item--disabled),.cdk-overlay-pane .skynet-select-panel.mat-mdc-select-panel .mat-mdc-option.mat-mdc-option-active,.cdk-overlay-pane .skynet-select-panel.mat-mdc-select-panel .mat-mdc-option.mdc-list-item--selected,.mat-mdc-select-panel.skynet-select-panel .mat-mdc-option:hover:not(.mdc-list-item--disabled),.mat-mdc-select-panel.skynet-select-panel .mat-mdc-option.mat-mdc-option-active,.mat-mdc-select-panel.skynet-select-panel .mat-mdc-option.mdc-list-item--selected{background-color:#ffffff14!important;color:#fff!important}.grey-button-background:hover{background-color:#0000000d!important}.flex-1{flex:1}.mat-mdc-snack-bar-container{max-width:90vw!important}.transparent-50{opacity:.5}.flag-container{width:16px;height:11px;display:inline-block;margin-right:5px;background-image:url(/assets/img/flags/unknown.png)}.flag-container div{width:16px;height:11px}.help-icon{opacity:.4;font-size:14px;cursor:default;position:relative;top:1px}.blinking{animation:alert-blinking 1s linear infinite}@keyframes alert-blinking{50%{opacity:.5}}.snackbar-container{padding:0!important;background:transparent!important}.mdc-tooltip__surface{font-size:11px!important;line-height:1.8;padding:7px 14px!important}.mat-mdc-tooltip-panel{pointer-events:none!important}.tooltip-word-break{word-break:break-word}.mat-mdc-button-touch-target{height:100%!important}.mat-mdc-button:not(:disabled){color:#202226}.mat-accent .mdc-button__label{color:#fff!important}html{--mat-badge-text-font: Skycoin;--mat-badge-line-height: 22px;--mat-badge-text-size: 12px;--mat-badge-text-weight: 600;--mat-badge-small-size-text-size: 9px;--mat-badge-small-size-line-height: 16px;--mat-badge-large-size-text-size: 24px;--mat-badge-large-size-line-height: 28px}.mat-h1,.mat-headline-5,.mat-typography .mat-h1,.mat-typography .mat-headline-5,.mat-typography h1{font:400 24px/32px Skycoin;letter-spacing:normal;margin:0 0 16px}.mat-h2,.mat-headline-6,.mat-typography .mat-h2,.mat-typography .mat-headline-6,.mat-typography h2{font:500 20px/32px Skycoin;letter-spacing:.0125em;margin:0 0 16px}.mat-h3,.mat-subtitle-1,.mat-typography .mat-h3,.mat-typography .mat-subtitle-1,.mat-typography h3,.mat-h4,.mat-body-1,.mat-typography .mat-h4,.mat-typography .mat-body-1,.mat-typography h4{font:400 .875rem/1 Skycoin;letter-spacing:normal;margin:0 0 16px}.mat-h5,.mat-typography .mat-h5,.mat-typography h5{font:400 11.62px/20px Skycoin;margin:0 0 12px}.mat-h6,.mat-typography .mat-h6,.mat-typography h6{font:400 9.38px/20px Skycoin;margin:0 0 12px}.mat-body-strong,.mat-subtitle-2,.mat-typography .mat-body-strong,.mat-typography .mat-subtitle-2{font:500 14px/22px Skycoin;letter-spacing:.0071428571em}.mat-body,.mat-body-2,.mat-typography .mat-body,.mat-typography .mat-body-2,.mat-typography{font:400 14px/20px Skycoin;letter-spacing:.0178571429em}.mat-body p,.mat-body-2 p,.mat-typography .mat-body p,.mat-typography .mat-body-2 p,.mat-typography p{margin:0 0 12px}.mat-small,.mat-caption,.mat-typography .mat-small,.mat-typography .mat-caption{font:400 12px/20px Skycoin;letter-spacing:.0333333333em}.mat-headline-1,.mat-typography .mat-headline-1{font:300 96px/96px Skycoin;letter-spacing:-.015625em;margin:0 0 56px}.mat-headline-2,.mat-typography .mat-headline-2{font:300 60px/60px Skycoin;letter-spacing:-.0083333333em;margin:0 0 64px}.mat-headline-3,.mat-typography .mat-headline-3{font:400 48px/50px Skycoin;letter-spacing:normal;margin:0 0 64px}.mat-headline-4,.mat-typography .mat-headline-4{font:400 34px/40px Skycoin;letter-spacing:.0073529412em;margin:0 0 64px}html{--mat-bottom-sheet-container-text-font: Skycoin;--mat-bottom-sheet-container-text-line-height: 20px;--mat-bottom-sheet-container-text-size: 14px;--mat-bottom-sheet-container-text-tracking: .0178571429em;--mat-bottom-sheet-container-text-weight: 400}html{--mat-button-toggle-label-text-font: Skycoin;--mat-button-toggle-label-text-line-height: 1;--mat-button-toggle-label-text-size: .875rem;--mat-button-toggle-label-text-tracking: normal;--mat-button-toggle-label-text-weight: 400;--mat-button-toggle-legacy-label-text-font: Skycoin;--mat-button-toggle-legacy-label-text-line-height: 1;--mat-button-toggle-legacy-label-text-size: .875rem;--mat-button-toggle-legacy-label-text-tracking: normal;--mat-button-toggle-legacy-label-text-weight: 400}html{--mat-datepicker-calendar-text-font: Skycoin;--mat-datepicker-calendar-text-size: 13px;--mat-datepicker-calendar-body-label-text-size: .875rem;--mat-datepicker-calendar-body-label-text-weight: 400;--mat-datepicker-calendar-period-button-text-size: .875rem;--mat-datepicker-calendar-period-button-text-weight: 400;--mat-datepicker-calendar-header-text-size: 11px;--mat-datepicker-calendar-header-text-weight: 400}html{--mat-expansion-header-text-font: Skycoin;--mat-expansion-header-text-size: 14px;--mat-expansion-header-text-weight: 500;--mat-expansion-header-text-line-height: inherit;--mat-expansion-header-text-tracking: inherit;--mat-expansion-container-text-font: Skycoin;--mat-expansion-container-text-line-height: 20px;--mat-expansion-container-text-size: 14px;--mat-expansion-container-text-tracking: .0178571429em;--mat-expansion-container-text-weight: 400}html{--mat-grid-list-tile-header-primary-text-size: 14px;--mat-grid-list-tile-header-secondary-text-size: 12px;--mat-grid-list-tile-footer-primary-text-size: 14px;--mat-grid-list-tile-footer-secondary-text-size: 12px}html{--mat-stepper-container-text-font: Skycoin;--mat-stepper-header-label-text-font: Skycoin;--mat-stepper-header-label-text-size: 14px;--mat-stepper-header-label-text-weight: 400;--mat-stepper-header-error-state-label-text-size: .875rem;--mat-stepper-header-selected-state-label-text-size: .875rem;--mat-stepper-header-selected-state-label-text-weight: 400}html{--mat-toolbar-title-text-font: Skycoin;--mat-toolbar-title-text-line-height: 32px;--mat-toolbar-title-text-size: 20px;--mat-toolbar-title-text-tracking: .0125em;--mat-toolbar-title-text-weight: 500}html{--mat-tree-node-text-font: Skycoin;--mat-tree-node-text-size: 14px;--mat-tree-node-text-weight: 400}html{--mat-option-label-text-font: Skycoin;--mat-option-label-text-line-height: 1;--mat-option-label-text-size: .875rem;--mat-option-label-text-tracking: normal;--mat-option-label-text-weight: 400}html{--mat-optgroup-label-text-font: Skycoin;--mat-optgroup-label-text-line-height: 1;--mat-optgroup-label-text-size: .875rem;--mat-optgroup-label-text-tracking: normal;--mat-optgroup-label-text-weight: 400}html{--mat-card-title-text-font: Skycoin;--mat-card-title-text-line-height: 32px;--mat-card-title-text-size: 20px;--mat-card-title-text-tracking: .0125em;--mat-card-title-text-weight: 500;--mat-card-subtitle-text-font: Skycoin;--mat-card-subtitle-text-line-height: 22px;--mat-card-subtitle-text-size: 14px;--mat-card-subtitle-text-tracking: .0071428571em;--mat-card-subtitle-text-weight: 500}html{--mat-tooltip-supporting-text-font: Skycoin;--mat-tooltip-supporting-text-size: 12px;--mat-tooltip-supporting-text-weight: 400;--mat-tooltip-supporting-text-tracking: .0333333333em}html{--mat-form-field-container-text-font: Skycoin;--mat-form-field-container-text-line-height: 1;--mat-form-field-container-text-size: .875rem;--mat-form-field-container-text-tracking: normal;--mat-form-field-container-text-weight: 400;--mat-form-field-outlined-label-text-populated-size: .875rem;--mat-form-field-subscript-text-font: Skycoin;--mat-form-field-subscript-text-line-height: 20px;--mat-form-field-subscript-text-size: 12px;--mat-form-field-subscript-text-tracking: .0333333333em;--mat-form-field-subscript-text-weight: 400;--mat-form-field-filled-label-text-font: Skycoin;--mat-form-field-filled-label-text-size: .875rem;--mat-form-field-filled-label-text-tracking: normal;--mat-form-field-filled-label-text-weight: 400;--mat-form-field-outlined-label-text-font: Skycoin;--mat-form-field-outlined-label-text-size: .875rem;--mat-form-field-outlined-label-text-tracking: normal;--mat-form-field-outlined-label-text-weight: 400}html{--mat-select-trigger-text-font: Skycoin;--mat-select-trigger-text-line-height: 1;--mat-select-trigger-text-size: .875rem;--mat-select-trigger-text-tracking: normal;--mat-select-trigger-text-weight: 400}html{--mat-dialog-subhead-font: Skycoin;--mat-dialog-subhead-line-height: 32px;--mat-dialog-subhead-size: 20px;--mat-dialog-subhead-weight: 500;--mat-dialog-subhead-tracking: .0125em;--mat-dialog-supporting-text-font: Skycoin;--mat-dialog-supporting-text-line-height: 1;--mat-dialog-supporting-text-size: .875rem;--mat-dialog-supporting-text-weight: 400;--mat-dialog-supporting-text-tracking: normal}.mat-mdc-standard-chip{--mat-chip-label-text-font: Skycoin;--mat-chip-label-text-line-height: 20px;--mat-chip-label-text-size: 14px;--mat-chip-label-text-tracking: .0178571429em;--mat-chip-label-text-weight: 400}html,html .mat-mdc-slide-toggle{--mat-slide-toggle-label-text-font: Skycoin;--mat-slide-toggle-label-text-line-height: 20px;--mat-slide-toggle-label-text-size: 14px;--mat-slide-toggle-label-text-tracking: .0178571429em;--mat-slide-toggle-label-text-weight: 400}html{--mat-radio-label-text-font: Skycoin;--mat-radio-label-text-line-height: 20px;--mat-radio-label-text-size: 14px;--mat-radio-label-text-tracking: .0178571429em;--mat-radio-label-text-weight: 400}html{--mat-slider-label-label-text-font: Skycoin;--mat-slider-label-label-text-size: 14px;--mat-slider-label-label-text-line-height: 22px;--mat-slider-label-label-text-tracking: .0071428571em;--mat-slider-label-label-text-weight: 500}html{--mat-menu-item-label-text-font: Skycoin;--mat-menu-item-label-text-size: .875rem;--mat-menu-item-label-text-tracking: normal;--mat-menu-item-label-text-line-height: 1;--mat-menu-item-label-text-weight: 400}html{--mat-list-list-item-label-text-font: Skycoin;--mat-list-list-item-label-text-line-height: 1;--mat-list-list-item-label-text-size: .875rem;--mat-list-list-item-label-text-tracking: normal;--mat-list-list-item-label-text-weight: 400;--mat-list-list-item-supporting-text-font: Skycoin;--mat-list-list-item-supporting-text-line-height: 20px;--mat-list-list-item-supporting-text-size: 14px;--mat-list-list-item-supporting-text-tracking: .0178571429em;--mat-list-list-item-supporting-text-weight: 400;--mat-list-list-item-trailing-supporting-text-font: Skycoin;--mat-list-list-item-trailing-supporting-text-line-height: 20px;--mat-list-list-item-trailing-supporting-text-size: 12px;--mat-list-list-item-trailing-supporting-text-tracking: .0333333333em;--mat-list-list-item-trailing-supporting-text-weight: 400}.mdc-list-group__subheader{font:400 .875rem/1 Skycoin;letter-spacing:normal}html{--mat-paginator-container-text-font: Skycoin;--mat-paginator-container-text-line-height: 20px;--mat-paginator-container-text-size: 12px;--mat-paginator-container-text-tracking: .0333333333em;--mat-paginator-container-text-weight: 400;--mat-paginator-select-trigger-text-size: 12px}.mat-mdc-tab-header{--mat-tab-label-text-font: Skycoin;--mat-tab-label-text-size: .875rem;--mat-tab-label-text-tracking: normal;--mat-tab-label-text-line-height: .875rem;--mat-tab-label-text-weight: 400}html{--mat-checkbox-label-text-font: Skycoin;--mat-checkbox-label-text-line-height: 20px;--mat-checkbox-label-text-size: 14px;--mat-checkbox-label-text-tracking: .0178571429em;--mat-checkbox-label-text-weight: 400}html{--mat-button-filled-label-text-font: Skycoin;--mat-button-filled-label-text-size: .875rem;--mat-button-filled-label-text-tracking: normal;--mat-button-filled-label-text-transform: none;--mat-button-filled-label-text-weight: 400;--mat-button-outlined-label-text-font: Skycoin;--mat-button-outlined-label-text-size: .875rem;--mat-button-outlined-label-text-tracking: normal;--mat-button-outlined-label-text-transform: none;--mat-button-outlined-label-text-weight: 400;--mat-button-protected-label-text-font: Skycoin;--mat-button-protected-label-text-size: .875rem;--mat-button-protected-label-text-tracking: normal;--mat-button-protected-label-text-transform: none;--mat-button-protected-label-text-weight: 400;--mat-button-text-label-text-font: Skycoin;--mat-button-text-label-text-size: .875rem;--mat-button-text-label-text-tracking: normal;--mat-button-text-label-text-transform: none;--mat-button-text-label-text-weight: 400;--mat-button-tonal-label-text-font: Skycoin;--mat-button-tonal-label-text-size: .875rem;--mat-button-tonal-label-text-tracking: normal;--mat-button-tonal-label-text-transform: none;--mat-button-tonal-label-text-weight: 400}html{--mat-fab-extended-label-text-font: Skycoin;--mat-fab-extended-label-text-size: .875rem;--mat-fab-extended-label-text-tracking: normal;--mat-fab-extended-label-text-weight: 400}html{--mat-snack-bar-supporting-text-font: Skycoin;--mat-snack-bar-supporting-text-line-height: 20px;--mat-snack-bar-supporting-text-size: 14px;--mat-snack-bar-supporting-text-weight: 400}html{--mat-table-header-headline-font: Skycoin;--mat-table-header-headline-line-height: 22px;--mat-table-header-headline-size: 14px;--mat-table-header-headline-weight: 500;--mat-table-header-headline-tracking: .0071428571em;--mat-table-row-item-label-text-font: Skycoin;--mat-table-row-item-label-text-line-height: 20px;--mat-table-row-item-label-text-size: 14px;--mat-table-row-item-label-text-weight: 400;--mat-table-row-item-label-text-tracking: .0178571429em;--mat-table-footer-supporting-text-font: Skycoin;--mat-table-footer-supporting-text-line-height: 20px;--mat-table-footer-supporting-text-size: 14px;--mat-table-footer-supporting-text-weight: 400;--mat-table-footer-supporting-text-tracking: .0178571429em}.mat-elevation-z0,.mat-mdc-elevation-specific.mat-elevation-z0{box-shadow:var(--mat-app-elevation-shadow-level-0, 0px 0px 0px 0px --mat-sys-shadow, 0px 0px 0px 0px --mat-sys-shadow, 0px 0px 0px 0px --mat-sys-shadow)}.mat-elevation-z1,.mat-mdc-elevation-specific.mat-elevation-z1{box-shadow:var(--mat-app-elevation-shadow-level-1, 0px 2px 1px -1px --mat-sys-shadow, 0px 1px 1px 0px --mat-sys-shadow, 0px 1px 3px 0px --mat-sys-shadow)}.mat-elevation-z2,.mat-mdc-elevation-specific.mat-elevation-z2{box-shadow:var(--mat-app-elevation-shadow-level-2, 0px 3px 1px -2px --mat-sys-shadow, 0px 2px 2px 0px --mat-sys-shadow, 0px 1px 5px 0px --mat-sys-shadow)}.mat-elevation-z3,.mat-mdc-elevation-specific.mat-elevation-z3{box-shadow:var(--mat-app-elevation-shadow-level-3, 0px 3px 3px -2px --mat-sys-shadow, 0px 3px 4px 0px --mat-sys-shadow, 0px 1px 8px 0px --mat-sys-shadow)}.mat-elevation-z4,.mat-mdc-elevation-specific.mat-elevation-z4{box-shadow:var(--mat-app-elevation-shadow-level-4, 0px 2px 4px -1px --mat-sys-shadow, 0px 4px 5px 0px --mat-sys-shadow, 0px 1px 10px 0px --mat-sys-shadow)}.mat-elevation-z5,.mat-mdc-elevation-specific.mat-elevation-z5{box-shadow:var(--mat-app-elevation-shadow-level-5, 0px 3px 5px -1px --mat-sys-shadow, 0px 5px 8px 0px --mat-sys-shadow, 0px 1px 14px 0px --mat-sys-shadow)}.mat-elevation-z6,.mat-mdc-elevation-specific.mat-elevation-z6{box-shadow:var(--mat-app-elevation-shadow-level-6, 0px 3px 5px -1px --mat-sys-shadow, 0px 6px 10px 0px --mat-sys-shadow, 0px 1px 18px 0px --mat-sys-shadow)}.mat-elevation-z7,.mat-mdc-elevation-specific.mat-elevation-z7{box-shadow:var(--mat-app-elevation-shadow-level-7, 0px 4px 5px -2px --mat-sys-shadow, 0px 7px 10px 1px --mat-sys-shadow, 0px 2px 16px 1px --mat-sys-shadow)}.mat-elevation-z8,.mat-mdc-elevation-specific.mat-elevation-z8{box-shadow:var(--mat-app-elevation-shadow-level-8, 0px 5px 5px -3px --mat-sys-shadow, 0px 8px 10px 1px --mat-sys-shadow, 0px 3px 14px 2px --mat-sys-shadow)}.mat-elevation-z9,.mat-mdc-elevation-specific.mat-elevation-z9{box-shadow:var(--mat-app-elevation-shadow-level-9, 0px 5px 6px -3px --mat-sys-shadow, 0px 9px 12px 1px --mat-sys-shadow, 0px 3px 16px 2px --mat-sys-shadow)}.mat-elevation-z10,.mat-mdc-elevation-specific.mat-elevation-z10{box-shadow:var(--mat-app-elevation-shadow-level-10, 0px 6px 6px -3px --mat-sys-shadow, 0px 10px 14px 1px --mat-sys-shadow, 0px 4px 18px 3px --mat-sys-shadow)}.mat-elevation-z11,.mat-mdc-elevation-specific.mat-elevation-z11{box-shadow:var(--mat-app-elevation-shadow-level-11, 0px 6px 7px -4px --mat-sys-shadow, 0px 11px 15px 1px --mat-sys-shadow, 0px 4px 20px 3px --mat-sys-shadow)}.mat-elevation-z12,.mat-mdc-elevation-specific.mat-elevation-z12{box-shadow:var(--mat-app-elevation-shadow-level-12, 0px 7px 8px -4px --mat-sys-shadow, 0px 12px 17px 2px --mat-sys-shadow, 0px 5px 22px 4px --mat-sys-shadow)}.mat-elevation-z13,.mat-mdc-elevation-specific.mat-elevation-z13{box-shadow:var(--mat-app-elevation-shadow-level-13, 0px 7px 8px -4px --mat-sys-shadow, 0px 13px 19px 2px --mat-sys-shadow, 0px 5px 24px 4px --mat-sys-shadow)}.mat-elevation-z14,.mat-mdc-elevation-specific.mat-elevation-z14{box-shadow:var(--mat-app-elevation-shadow-level-14, 0px 7px 9px -4px --mat-sys-shadow, 0px 14px 21px 2px --mat-sys-shadow, 0px 5px 26px 4px --mat-sys-shadow)}.mat-elevation-z15,.mat-mdc-elevation-specific.mat-elevation-z15{box-shadow:var(--mat-app-elevation-shadow-level-15, 0px 8px 9px -5px --mat-sys-shadow, 0px 15px 22px 2px --mat-sys-shadow, 0px 6px 28px 5px --mat-sys-shadow)}.mat-elevation-z16,.mat-mdc-elevation-specific.mat-elevation-z16{box-shadow:var(--mat-app-elevation-shadow-level-16, 0px 8px 10px -5px --mat-sys-shadow, 0px 16px 24px 2px --mat-sys-shadow, 0px 6px 30px 5px --mat-sys-shadow)}.mat-elevation-z17,.mat-mdc-elevation-specific.mat-elevation-z17{box-shadow:var(--mat-app-elevation-shadow-level-17, 0px 8px 11px -5px --mat-sys-shadow, 0px 17px 26px 2px --mat-sys-shadow, 0px 6px 32px 5px --mat-sys-shadow)}.mat-elevation-z18,.mat-mdc-elevation-specific.mat-elevation-z18{box-shadow:var(--mat-app-elevation-shadow-level-18, 0px 9px 11px -5px --mat-sys-shadow, 0px 18px 28px 2px --mat-sys-shadow, 0px 7px 34px 6px --mat-sys-shadow)}.mat-elevation-z19,.mat-mdc-elevation-specific.mat-elevation-z19{box-shadow:var(--mat-app-elevation-shadow-level-19, 0px 9px 12px -6px --mat-sys-shadow, 0px 19px 29px 2px --mat-sys-shadow, 0px 7px 36px 6px --mat-sys-shadow)}.mat-elevation-z20,.mat-mdc-elevation-specific.mat-elevation-z20{box-shadow:var(--mat-app-elevation-shadow-level-20, 0px 10px 13px -6px --mat-sys-shadow, 0px 20px 31px 3px --mat-sys-shadow, 0px 8px 38px 7px --mat-sys-shadow)}.mat-elevation-z21,.mat-mdc-elevation-specific.mat-elevation-z21{box-shadow:var(--mat-app-elevation-shadow-level-21, 0px 10px 13px -6px --mat-sys-shadow, 0px 21px 33px 3px --mat-sys-shadow, 0px 8px 40px 7px --mat-sys-shadow)}.mat-elevation-z22,.mat-mdc-elevation-specific.mat-elevation-z22{box-shadow:var(--mat-app-elevation-shadow-level-22, 0px 10px 14px -6px --mat-sys-shadow, 0px 22px 35px 3px --mat-sys-shadow, 0px 8px 42px 7px --mat-sys-shadow)}.mat-elevation-z23,.mat-mdc-elevation-specific.mat-elevation-z23{box-shadow:var(--mat-app-elevation-shadow-level-23, 0px 11px 14px -7px --mat-sys-shadow, 0px 23px 36px 3px --mat-sys-shadow, 0px 9px 44px 8px --mat-sys-shadow)}.mat-elevation-z24,.mat-mdc-elevation-specific.mat-elevation-z24{box-shadow:var(--mat-app-elevation-shadow-level-24, 0px 11px 15px -7px --mat-sys-shadow, 0px 24px 38px 3px --mat-sys-shadow, 0px 9px 46px 8px --mat-sys-shadow)}html{--mat-sys-on-surface: initial}.mat-app-background{background-color:var(--mat-app-background-color, var(--mat-sys-background, transparent));color:var(--mat-app-text-color, var(--mat-sys-on-background, inherit))}html{--mat-app-background-color: #fafafa;--mat-app-text-color: rgba(0, 0, 0, .87);--mat-app-elevation-shadow-level-0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-2: 0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-3: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-4: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-5: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 5px 8px 0px rgba(0, 0, 0, .14), 0px 1px 14px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-6: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-7: 0px 4px 5px -2px rgba(0, 0, 0, .2), 0px 7px 10px 1px rgba(0, 0, 0, .14), 0px 2px 16px 1px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-8: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-9: 0px 5px 6px -3px rgba(0, 0, 0, .2), 0px 9px 12px 1px rgba(0, 0, 0, .14), 0px 3px 16px 2px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-10: 0px 6px 6px -3px rgba(0, 0, 0, .2), 0px 10px 14px 1px rgba(0, 0, 0, .14), 0px 4px 18px 3px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-11: 0px 6px 7px -4px rgba(0, 0, 0, .2), 0px 11px 15px 1px rgba(0, 0, 0, .14), 0px 4px 20px 3px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-12: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-13: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 13px 19px 2px rgba(0, 0, 0, .14), 0px 5px 24px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-14: 0px 7px 9px -4px rgba(0, 0, 0, .2), 0px 14px 21px 2px rgba(0, 0, 0, .14), 0px 5px 26px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-15: 0px 8px 9px -5px rgba(0, 0, 0, .2), 0px 15px 22px 2px rgba(0, 0, 0, .14), 0px 6px 28px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-16: 0px 8px 10px -5px rgba(0, 0, 0, .2), 0px 16px 24px 2px rgba(0, 0, 0, .14), 0px 6px 30px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-17: 0px 8px 11px -5px rgba(0, 0, 0, .2), 0px 17px 26px 2px rgba(0, 0, 0, .14), 0px 6px 32px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-18: 0px 9px 11px -5px rgba(0, 0, 0, .2), 0px 18px 28px 2px rgba(0, 0, 0, .14), 0px 7px 34px 6px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-19: 0px 9px 12px -6px rgba(0, 0, 0, .2), 0px 19px 29px 2px rgba(0, 0, 0, .14), 0px 7px 36px 6px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-20: 0px 10px 13px -6px rgba(0, 0, 0, .2), 0px 20px 31px 3px rgba(0, 0, 0, .14), 0px 8px 38px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-21: 0px 10px 13px -6px rgba(0, 0, 0, .2), 0px 21px 33px 3px rgba(0, 0, 0, .14), 0px 8px 40px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-22: 0px 10px 14px -6px rgba(0, 0, 0, .2), 0px 22px 35px 3px rgba(0, 0, 0, .14), 0px 8px 42px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-23: 0px 11px 14px -7px rgba(0, 0, 0, .2), 0px 23px 36px 3px rgba(0, 0, 0, .14), 0px 9px 44px 8px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-24: 0px 11px 15px -7px rgba(0, 0, 0, .2), 0px 24px 38px 3px rgba(0, 0, 0, .14), 0px 9px 46px 8px rgba(0, 0, 0, .12)}html{--mat-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent)}html{--mat-option-selected-state-label-text-color: #215f9e;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-option-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-option-selected-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent)}.mat-accent{--mat-option-selected-state-label-text-color: #a7a7a7;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-option-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-option-selected-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent)}.mat-warn{--mat-option-selected-state-label-text-color: #f44336;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-option-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-option-selected-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent)}html{--mat-optgroup-label-text-color: rgba(0, 0, 0, .87)}html{--mat-pseudo-checkbox-full-selected-icon-color: #a7a7a7;--mat-pseudo-checkbox-full-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-unselected-icon-color: rgba(0, 0, 0, .54);--mat-pseudo-checkbox-full-disabled-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-full-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-minimal-selected-checkmark-color: #a7a7a7;--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}.mat-primary{--mat-pseudo-checkbox-full-selected-icon-color: #215f9e;--mat-pseudo-checkbox-full-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-unselected-icon-color: rgba(0, 0, 0, .54);--mat-pseudo-checkbox-full-disabled-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-full-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-minimal-selected-checkmark-color: #215f9e;--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}.mat-accent{--mat-pseudo-checkbox-full-selected-icon-color: #a7a7a7;--mat-pseudo-checkbox-full-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-unselected-icon-color: rgba(0, 0, 0, .54);--mat-pseudo-checkbox-full-disabled-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-full-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-minimal-selected-checkmark-color: #a7a7a7;--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}.mat-warn{--mat-pseudo-checkbox-full-selected-icon-color: #f44336;--mat-pseudo-checkbox-full-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-unselected-icon-color: rgba(0, 0, 0, .54);--mat-pseudo-checkbox-full-disabled-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-full-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-minimal-selected-checkmark-color: #f44336;--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}html{--mat-card-elevated-container-shape: 4px;--mat-card-outlined-container-shape: 4px;--mat-card-filled-container-shape: 4px;--mat-card-outlined-outline-width: 1px}html{--mat-card-elevated-container-color: white;--mat-card-elevated-container-elevation: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-card-outlined-container-color: white;--mat-card-outlined-container-elevation: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-card-outlined-outline-color: rgba(0, 0, 0, .12);--mat-card-subtitle-text-color: rgba(0, 0, 0, .54);--mat-card-filled-container-color: white;--mat-card-filled-container-elevation: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12)}html{--mat-progress-bar-active-indicator-height: 4px;--mat-progress-bar-track-height: 4px;--mat-progress-bar-track-shape: 0}.mat-mdc-progress-bar{--mat-progress-bar-active-indicator-color: #215f9e;--mat-progress-bar-track-color: rgba(33, 95, 158, .25)}.mat-mdc-progress-bar.mat-accent{--mat-progress-bar-active-indicator-color: #a7a7a7;--mat-progress-bar-track-color: rgba(167, 167, 167, .25)}.mat-mdc-progress-bar.mat-warn{--mat-progress-bar-active-indicator-color: #f44336;--mat-progress-bar-track-color: rgba(244, 67, 54, .25)}html{--mat-tooltip-container-shape: 4px;--mat-tooltip-supporting-text-line-height: 16px}html{--mat-tooltip-container-color: #424242;--mat-tooltip-supporting-text-color: white}html{--mat-form-field-filled-active-indicator-height: 1px;--mat-form-field-filled-focus-active-indicator-height: 2px;--mat-form-field-filled-container-shape: 4px;--mat-form-field-outlined-outline-width: 1px;--mat-form-field-outlined-focus-outline-width: 2px;--mat-form-field-outlined-container-shape: 4px}html{--mat-form-field-focus-select-arrow-color: color-mix(in srgb, #215f9e 87%, transparent);--mat-form-field-filled-caret-color: #215f9e;--mat-form-field-filled-focus-active-indicator-color: #215f9e;--mat-form-field-filled-focus-label-text-color: color-mix(in srgb, #215f9e 87%, transparent);--mat-form-field-outlined-caret-color: #215f9e;--mat-form-field-outlined-focus-outline-color: #215f9e;--mat-form-field-outlined-focus-label-text-color: color-mix(in srgb, #215f9e 87%, transparent);--mat-form-field-disabled-input-text-placeholder-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-state-layer-color: rgba(0, 0, 0, .87);--mat-form-field-error-text-color: #f44336;--mat-form-field-select-option-text-color: inherit;--mat-form-field-select-disabled-option-text-color: GrayText;--mat-form-field-leading-icon-color: unset;--mat-form-field-disabled-leading-icon-color: unset;--mat-form-field-trailing-icon-color: unset;--mat-form-field-disabled-trailing-icon-color: unset;--mat-form-field-error-focus-trailing-icon-color: unset;--mat-form-field-error-hover-trailing-icon-color: unset;--mat-form-field-error-trailing-icon-color: unset;--mat-form-field-enabled-select-arrow-color: rgba(0, 0, 0, .54);--mat-form-field-disabled-select-arrow-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-hover-state-layer-opacity: .04;--mat-form-field-focus-state-layer-opacity: .12;--mat-form-field-filled-container-color: #f6f6f6;--mat-form-field-filled-disabled-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-form-field-filled-label-text-color: rgba(0, 0, 0, .54);--mat-form-field-filled-hover-label-text-color: rgba(0, 0, 0, .54);--mat-form-field-filled-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-filled-input-text-color: rgba(0, 0, 0, .87);--mat-form-field-filled-disabled-input-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-filled-input-text-placeholder-color: rgba(0, 0, 0, .54);--mat-form-field-filled-error-hover-label-text-color: #f44336;--mat-form-field-filled-error-focus-label-text-color: #f44336;--mat-form-field-filled-error-label-text-color: #f44336;--mat-form-field-filled-error-caret-color: #f44336;--mat-form-field-filled-active-indicator-color: rgba(0, 0, 0, .54);--mat-form-field-filled-disabled-active-indicator-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-form-field-filled-hover-active-indicator-color: rgba(0, 0, 0, .87);--mat-form-field-filled-error-active-indicator-color: #f44336;--mat-form-field-filled-error-focus-active-indicator-color: #f44336;--mat-form-field-filled-error-hover-active-indicator-color: #f44336;--mat-form-field-outlined-label-text-color: rgba(0, 0, 0, .54);--mat-form-field-outlined-hover-label-text-color: rgba(0, 0, 0, .87);--mat-form-field-outlined-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-outlined-input-text-color: rgba(0, 0, 0, .87);--mat-form-field-outlined-disabled-input-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-outlined-input-text-placeholder-color: rgba(0, 0, 0, .54);--mat-form-field-outlined-error-caret-color: #f44336;--mat-form-field-outlined-error-focus-label-text-color: #f44336;--mat-form-field-outlined-error-label-text-color: #f44336;--mat-form-field-outlined-error-hover-label-text-color: #f44336;--mat-form-field-outlined-outline-color: rgba(0, 0, 0, .38);--mat-form-field-outlined-disabled-outline-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-form-field-outlined-hover-outline-color: rgba(0, 0, 0, .87);--mat-form-field-outlined-error-focus-outline-color: #f44336;--mat-form-field-outlined-error-hover-outline-color: #f44336;--mat-form-field-outlined-error-outline-color: #f44336}.mat-mdc-form-field.mat-accent{--mat-form-field-focus-select-arrow-color: color-mix(in srgb, #a7a7a7 87%, transparent);--mat-form-field-filled-caret-color: #a7a7a7;--mat-form-field-filled-focus-active-indicator-color: #a7a7a7;--mat-form-field-filled-focus-label-text-color: color-mix(in srgb, #a7a7a7 87%, transparent);--mat-form-field-outlined-caret-color: #a7a7a7;--mat-form-field-outlined-focus-outline-color: #a7a7a7;--mat-form-field-outlined-focus-label-text-color: color-mix(in srgb, #a7a7a7 87%, transparent)}.mat-mdc-form-field.mat-warn{--mat-form-field-focus-select-arrow-color: color-mix(in srgb, #f44336 87%, transparent);--mat-form-field-filled-caret-color: #f44336;--mat-form-field-filled-focus-active-indicator-color: #f44336;--mat-form-field-filled-focus-label-text-color: color-mix(in srgb, #f44336 87%, transparent);--mat-form-field-outlined-caret-color: #f44336;--mat-form-field-outlined-focus-outline-color: #f44336;--mat-form-field-outlined-focus-label-text-color: color-mix(in srgb, #f44336 87%, transparent)}html{--mat-form-field-container-height: 56px;--mat-form-field-filled-label-display: block;--mat-form-field-container-vertical-padding: 16px;--mat-form-field-filled-with-label-container-padding-top: 24px;--mat-form-field-filled-with-label-container-padding-bottom: 8px}html{--mat-select-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-placeholder-text-color: rgba(0, 0, 0, .54);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-focused-arrow-color: #215f9e;--mat-select-invalid-arrow-color: #f44336}.mat-mdc-form-field.mat-accent{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-placeholder-text-color: rgba(0, 0, 0, .54);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-focused-arrow-color: #a7a7a7;--mat-select-invalid-arrow-color: #f44336}.mat-mdc-form-field.mat-warn{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-placeholder-text-color: rgba(0, 0, 0, .54);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-focused-arrow-color: #f44336;--mat-select-invalid-arrow-color: #f44336}html{--mat-select-arrow-transform: translateY(-8px)}html{--mat-autocomplete-container-shape: 4px;--mat-autocomplete-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-autocomplete-background-color: white}html{--mat-dialog-container-shape: 4px;--mat-dialog-container-elevation-shadow: 0px 11px 15px -7px rgba(0, 0, 0, .2), 0px 24px 38px 3px rgba(0, 0, 0, .14), 0px 9px 46px 8px rgba(0, 0, 0, .12);--mat-dialog-container-max-width: 80vw;--mat-dialog-container-small-max-width: 80vw;--mat-dialog-container-min-width: 0;--mat-dialog-actions-alignment: start;--mat-dialog-actions-padding: 8px;--mat-dialog-content-padding: 20px 24px;--mat-dialog-with-actions-content-padding: 20px 24px;--mat-dialog-headline-padding: 0 24px 9px}html{--mat-dialog-container-color: white;--mat-dialog-subhead-color: rgba(0, 0, 0, .87);--mat-dialog-supporting-text-color: rgba(0, 0, 0, .54)}.mat-mdc-standard-chip{--mat-chip-container-shape-radius: 16px;--mat-chip-disabled-container-opacity: .4;--mat-chip-disabled-outline-color: transparent;--mat-chip-flat-selected-outline-width: 0;--mat-chip-focus-outline-color: transparent;--mat-chip-hover-state-layer-opacity: .04;--mat-chip-outline-color: transparent;--mat-chip-outline-width: 0;--mat-chip-selected-hover-state-layer-opacity: .04;--mat-chip-selected-trailing-action-state-layer-color: transparent;--mat-chip-trailing-action-focus-opacity: 1;--mat-chip-trailing-action-focus-state-layer-opacity: 0;--mat-chip-trailing-action-hover-state-layer-opacity: 0;--mat-chip-trailing-action-opacity: .54;--mat-chip-trailing-action-state-layer-color: transparent;--mat-chip-with-avatar-avatar-shape-radius: 14px;--mat-chip-with-avatar-avatar-size: 28px;--mat-chip-with-avatar-disabled-avatar-opacity: 1;--mat-chip-with-icon-disabled-icon-opacity: 1;--mat-chip-with-icon-icon-size: 18px;--mat-chip-with-trailing-icon-disabled-trailing-icon-opacity: 1}.mat-mdc-standard-chip{--mat-chip-disabled-label-text-color: rgba(0, 0, 0, .87);--mat-chip-elevated-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-chip-elevated-disabled-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-chip-elevated-selected-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-chip-flat-disabled-selected-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-chip-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-focus-state-layer-opacity: .12;--mat-chip-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-label-text-color: rgba(0, 0, 0, .87);--mat-chip-selected-disabled-trailing-icon-color: rgba(0, 0, 0, .87);--mat-chip-selected-focus-state-layer-color: .12;--mat-chip-selected-focus-state-layer-opacity: .12;--mat-chip-selected-hover-state-layer-color: .04;--mat-chip-selected-label-text-color: rgba(0, 0, 0, .87);--mat-chip-selected-trailing-icon-color: rgba(0, 0, 0, .87);--mat-chip-with-icon-disabled-icon-color: rgba(0, 0, 0, .87);--mat-chip-with-icon-icon-color: rgba(0, 0, 0, .87);--mat-chip-with-icon-selected-icon-color: rgba(0, 0, 0, .87);--mat-chip-with-trailing-icon-disabled-trailing-icon-color: rgba(0, 0, 0, .87);--mat-chip-with-trailing-icon-trailing-icon-color: rgba(0, 0, 0, .87)}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-primary,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-primary{--mat-chip-disabled-label-text-color: #F8F9F9;--mat-chip-elevated-container-color: #215f9e;--mat-chip-elevated-disabled-container-color: #215f9e;--mat-chip-elevated-selected-container-color: #215f9e;--mat-chip-flat-disabled-selected-container-color: #215f9e;--mat-chip-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-focus-state-layer-opacity: .12;--mat-chip-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-label-text-color: #F8F9F9;--mat-chip-selected-disabled-trailing-icon-color: #F8F9F9;--mat-chip-selected-focus-state-layer-color: .12;--mat-chip-selected-focus-state-layer-opacity: .12;--mat-chip-selected-hover-state-layer-color: .04;--mat-chip-selected-label-text-color: #F8F9F9;--mat-chip-selected-trailing-icon-color: #F8F9F9;--mat-chip-with-icon-disabled-icon-color: #F8F9F9;--mat-chip-with-icon-icon-color: #F8F9F9;--mat-chip-with-icon-selected-icon-color: #F8F9F9;--mat-chip-with-trailing-icon-disabled-trailing-icon-color: #F8F9F9;--mat-chip-with-trailing-icon-trailing-icon-color: #F8F9F9}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-accent,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-accent{--mat-chip-disabled-label-text-color: #F8F9F9;--mat-chip-elevated-container-color: #a7a7a7;--mat-chip-elevated-disabled-container-color: #a7a7a7;--mat-chip-elevated-selected-container-color: #a7a7a7;--mat-chip-flat-disabled-selected-container-color: #a7a7a7;--mat-chip-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-focus-state-layer-opacity: .12;--mat-chip-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-label-text-color: #F8F9F9;--mat-chip-selected-disabled-trailing-icon-color: #F8F9F9;--mat-chip-selected-focus-state-layer-color: .12;--mat-chip-selected-focus-state-layer-opacity: .12;--mat-chip-selected-hover-state-layer-color: .04;--mat-chip-selected-label-text-color: #F8F9F9;--mat-chip-selected-trailing-icon-color: #F8F9F9;--mat-chip-with-icon-disabled-icon-color: #F8F9F9;--mat-chip-with-icon-icon-color: #F8F9F9;--mat-chip-with-icon-selected-icon-color: #F8F9F9;--mat-chip-with-trailing-icon-disabled-trailing-icon-color: #F8F9F9;--mat-chip-with-trailing-icon-trailing-icon-color: #F8F9F9}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-warn,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-warn{--mat-chip-disabled-label-text-color: white;--mat-chip-elevated-container-color: #f44336;--mat-chip-elevated-disabled-container-color: #f44336;--mat-chip-elevated-selected-container-color: #f44336;--mat-chip-flat-disabled-selected-container-color: #f44336;--mat-chip-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-focus-state-layer-opacity: .12;--mat-chip-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-label-text-color: white;--mat-chip-selected-disabled-trailing-icon-color: white;--mat-chip-selected-focus-state-layer-color: .12;--mat-chip-selected-focus-state-layer-opacity: .12;--mat-chip-selected-hover-state-layer-color: .04;--mat-chip-selected-label-text-color: white;--mat-chip-selected-trailing-icon-color: white;--mat-chip-with-icon-disabled-icon-color: white;--mat-chip-with-icon-icon-color: white;--mat-chip-with-icon-selected-icon-color: white;--mat-chip-with-trailing-icon-disabled-trailing-icon-color: white;--mat-chip-with-trailing-icon-trailing-icon-color: white}.mat-mdc-chip.mat-mdc-standard-chip{--mat-chip-container-height: 32px}html{--mat-slide-toggle-disabled-handle-opacity: .38;--mat-slide-toggle-disabled-selected-handle-opacity: .38;--mat-slide-toggle-disabled-selected-icon-opacity: .38;--mat-slide-toggle-disabled-track-opacity: .12;--mat-slide-toggle-disabled-unselected-handle-opacity: .38;--mat-slide-toggle-disabled-unselected-icon-opacity: .38;--mat-slide-toggle-disabled-unselected-track-outline-color: transparent;--mat-slide-toggle-disabled-unselected-track-outline-width: 1px;--mat-slide-toggle-handle-height: 20px;--mat-slide-toggle-handle-shape: 10px;--mat-slide-toggle-handle-width: 20px;--mat-slide-toggle-hidden-track-opacity: 1;--mat-slide-toggle-hidden-track-transition: transform 75ms 0ms cubic-bezier(.4, 0, .6, 1);--mat-slide-toggle-pressed-handle-size: 20px;--mat-slide-toggle-selected-focus-state-layer-opacity: .12;--mat-slide-toggle-selected-handle-horizontal-margin: 0;--mat-slide-toggle-selected-handle-size: 20px;--mat-slide-toggle-selected-hover-state-layer-opacity: .04;--mat-slide-toggle-selected-icon-size: 18px;--mat-slide-toggle-selected-pressed-handle-horizontal-margin: 0;--mat-slide-toggle-selected-pressed-state-layer-opacity: .12;--mat-slide-toggle-selected-track-outline-color: transparent;--mat-slide-toggle-selected-track-outline-width: 1px;--mat-slide-toggle-selected-with-icon-handle-horizontal-margin: 0;--mat-slide-toggle-track-height: 14px;--mat-slide-toggle-track-outline-color: transparent;--mat-slide-toggle-track-outline-width: 1px;--mat-slide-toggle-track-shape: 7px;--mat-slide-toggle-track-width: 36px;--mat-slide-toggle-unselected-focus-state-layer-opacity: .12;--mat-slide-toggle-unselected-handle-horizontal-margin: 0;--mat-slide-toggle-unselected-handle-size: 20px;--mat-slide-toggle-unselected-hover-state-layer-opacity: .12;--mat-slide-toggle-unselected-icon-size: 18px;--mat-slide-toggle-unselected-pressed-handle-horizontal-margin: 0;--mat-slide-toggle-unselected-pressed-state-layer-opacity: .1;--mat-slide-toggle-unselected-with-icon-handle-horizontal-margin: 0;--mat-slide-toggle-visible-track-opacity: 1;--mat-slide-toggle-visible-track-transition: transform 75ms 0ms cubic-bezier(0, 0, .2, 1);--mat-slide-toggle-with-icon-handle-size: 20px;--mat-slide-toggle-touch-target-size: 48px}html{--mat-slide-toggle-selected-icon-color: #F8F9F9;--mat-slide-toggle-disabled-selected-icon-color: #F8F9F9;--mat-slide-toggle-selected-focus-state-layer-color: #215f9e;--mat-slide-toggle-selected-handle-color: #215f9e;--mat-slide-toggle-selected-hover-state-layer-color: #215f9e;--mat-slide-toggle-selected-pressed-state-layer-color: #215f9e;--mat-slide-toggle-selected-focus-handle-color: #215f9e;--mat-slide-toggle-selected-hover-handle-color: #215f9e;--mat-slide-toggle-selected-pressed-handle-color: #215f9e;--mat-slide-toggle-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-slide-toggle-disabled-handle-elevation-shadow: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-slide-toggle-disabled-selected-handle-color: rgba(0, 0, 0, .87);--mat-slide-toggle-disabled-selected-track-color: rgba(0, 0, 0, .87);--mat-slide-toggle-disabled-unselected-handle-color: rgba(0, 0, 0, .87);--mat-slide-toggle-disabled-unselected-icon-color: #f6f6f6;--mat-slide-toggle-disabled-unselected-track-color: rgba(0, 0, 0, .87);--mat-slide-toggle-handle-elevation-shadow: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-slide-toggle-handle-surface-color: white;--mat-slide-toggle-label-text-color: rgba(0, 0, 0, .87);--mat-slide-toggle-unselected-hover-handle-color: #424242;--mat-slide-toggle-unselected-focus-handle-color: #424242;--mat-slide-toggle-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-slide-toggle-unselected-focus-track-color: rgba(0, 0, 0, .12);--mat-slide-toggle-unselected-icon-color: #f6f6f6;--mat-slide-toggle-unselected-handle-color: rgba(0, 0, 0, .54);--mat-slide-toggle-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-slide-toggle-unselected-hover-track-color: rgba(0, 0, 0, .12);--mat-slide-toggle-unselected-pressed-handle-color: #424242;--mat-slide-toggle-unselected-pressed-track-color: rgba(0, 0, 0, .12);--mat-slide-toggle-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87);--mat-slide-toggle-unselected-track-color: rgba(0, 0, 0, .12)}.mat-mdc-slide-toggle.mat-accent{--mat-slide-toggle-selected-icon-color: #F8F9F9;--mat-slide-toggle-disabled-selected-icon-color: #F8F9F9;--mat-slide-toggle-selected-focus-state-layer-color: #a7a7a7;--mat-slide-toggle-selected-handle-color: #a7a7a7;--mat-slide-toggle-selected-hover-state-layer-color: #a7a7a7;--mat-slide-toggle-selected-pressed-state-layer-color: #a7a7a7;--mat-slide-toggle-selected-focus-handle-color: #a7a7a7;--mat-slide-toggle-selected-hover-handle-color: #a7a7a7;--mat-slide-toggle-selected-pressed-handle-color: #a7a7a7}.mat-mdc-slide-toggle.mat-warn{--mat-slide-toggle-selected-icon-color: white;--mat-slide-toggle-disabled-selected-icon-color: white;--mat-slide-toggle-selected-focus-state-layer-color: #f44336;--mat-slide-toggle-selected-handle-color: #f44336;--mat-slide-toggle-selected-hover-state-layer-color: #f44336;--mat-slide-toggle-selected-pressed-state-layer-color: #f44336;--mat-slide-toggle-selected-focus-handle-color: #f44336;--mat-slide-toggle-selected-hover-handle-color: #f44336;--mat-slide-toggle-selected-pressed-handle-color: #f44336;--mat-slide-toggle-selected-focus-track-color: #e57373;--mat-slide-toggle-selected-hover-track-color: #e57373;--mat-slide-toggle-selected-pressed-track-color: #e57373;--mat-slide-toggle-selected-track-color: #e57373}html{--mat-slide-toggle-state-layer-size: 40px;--mat-slide-toggle-touch-target-display: block}html{--mat-radio-disabled-selected-icon-opacity: .38;--mat-radio-disabled-unselected-icon-opacity: .38;--mat-radio-state-layer-size: 40px;--mat-radio-touch-target-size: 48px}.mat-mdc-radio-button.mat-primary{--mat-radio-checked-ripple-color: #215f9e;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: #215f9e;--mat-radio-selected-hover-icon-color: #215f9e;--mat-radio-selected-icon-color: #215f9e;--mat-radio-selected-pressed-icon-color: #215f9e;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.mat-mdc-radio-button.mat-accent{--mat-radio-checked-ripple-color: #a7a7a7;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: #a7a7a7;--mat-radio-selected-hover-icon-color: #a7a7a7;--mat-radio-selected-icon-color: #a7a7a7;--mat-radio-selected-pressed-icon-color: #a7a7a7;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.mat-mdc-radio-button.mat-warn{--mat-radio-checked-ripple-color: #f44336;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: #f44336;--mat-radio-selected-hover-icon-color: #f44336;--mat-radio-selected-icon-color: #f44336;--mat-radio-selected-pressed-icon-color: #f44336;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}html{--mat-radio-state-layer-size: 40px;--mat-radio-touch-target-display: block}html{--mat-slider-active-track-height: 6px;--mat-slider-active-track-shape: 9999px;--mat-slider-handle-elevation: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-slider-handle-height: 20px;--mat-slider-handle-shape: 50%;--mat-slider-handle-width: 20px;--mat-slider-inactive-track-height: 4px;--mat-slider-inactive-track-shape: 9999px;--mat-slider-value-indicator-border-radius: 4px;--mat-slider-value-indicator-caret-display: block;--mat-slider-value-indicator-container-transform: translateX(-50%);--mat-slider-value-indicator-height: 32px;--mat-slider-value-indicator-padding: 0 12px;--mat-slider-value-indicator-text-transform: none;--mat-slider-value-indicator-width: auto;--mat-slider-with-overlap-handle-outline-width: 1px;--mat-slider-with-tick-marks-active-container-opacity: .6;--mat-slider-with-tick-marks-container-shape: 50%;--mat-slider-with-tick-marks-container-size: 2px;--mat-slider-with-tick-marks-inactive-container-opacity: .6;--mat-slider-value-indicator-transform-origin: bottom}html{--mat-slider-active-track-color: #215f9e;--mat-slider-focus-handle-color: #215f9e;--mat-slider-handle-color: #215f9e;--mat-slider-hover-handle-color: #215f9e;--mat-slider-focus-state-layer-color: color-mix(in srgb, #215f9e 12%, transparent);--mat-slider-hover-state-layer-color: color-mix(in srgb, #215f9e 4%, transparent);--mat-slider-inactive-track-color: #215f9e;--mat-slider-ripple-color: #215f9e;--mat-slider-with-tick-marks-active-container-color: #F8F9F9;--mat-slider-with-tick-marks-inactive-container-color: #215f9e;--mat-slider-disabled-active-track-color: rgba(0, 0, 0, .87);--mat-slider-disabled-handle-color: rgba(0, 0, 0, .87);--mat-slider-disabled-inactive-track-color: rgba(0, 0, 0, .87);--mat-slider-label-container-color: #424242;--mat-slider-label-label-text-color: white;--mat-slider-value-indicator-opacity: 1;--mat-slider-with-overlap-handle-outline-color: rgba(0, 0, 0, .87);--mat-slider-with-tick-marks-disabled-container-color: rgba(0, 0, 0, .87)}.mat-accent{--mat-slider-active-track-color: #a7a7a7;--mat-slider-focus-handle-color: #a7a7a7;--mat-slider-handle-color: #a7a7a7;--mat-slider-hover-handle-color: #a7a7a7;--mat-slider-focus-state-layer-color: color-mix(in srgb, #a7a7a7 12%, transparent);--mat-slider-hover-state-layer-color: color-mix(in srgb, #a7a7a7 4%, transparent);--mat-slider-inactive-track-color: #a7a7a7;--mat-slider-ripple-color: #a7a7a7;--mat-slider-with-tick-marks-active-container-color: #F8F9F9;--mat-slider-with-tick-marks-inactive-container-color: #a7a7a7}.mat-warn{--mat-slider-active-track-color: #f44336;--mat-slider-focus-handle-color: #f44336;--mat-slider-handle-color: #f44336;--mat-slider-hover-handle-color: #f44336;--mat-slider-focus-state-layer-color: color-mix(in srgb, #f44336 12%, transparent);--mat-slider-hover-state-layer-color: color-mix(in srgb, #f44336 4%, transparent);--mat-slider-inactive-track-color: #f44336;--mat-slider-ripple-color: #f44336;--mat-slider-with-tick-marks-active-container-color: white;--mat-slider-with-tick-marks-inactive-container-color: #f44336}html{--mat-menu-container-shape: 4px;--mat-menu-divider-bottom-spacing: 0;--mat-menu-divider-top-spacing: 0;--mat-menu-item-spacing: 16px;--mat-menu-item-icon-size: 24px;--mat-menu-item-leading-spacing: 16px;--mat-menu-item-trailing-spacing: 16px;--mat-menu-item-with-icon-leading-spacing: 16px;--mat-menu-item-with-icon-trailing-spacing: 16px;--mat-menu-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-menu-item-label-text-color: rgba(0, 0, 0, .87);--mat-menu-item-icon-color: rgba(0, 0, 0, .87);--mat-menu-item-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-menu-item-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-menu-container-color: white;--mat-menu-divider-color: rgba(0, 0, 0, .12)}html{--mat-list-active-indicator-color: transparent;--mat-list-active-indicator-shape: 4px;--mat-list-list-item-container-shape: 0;--mat-list-list-item-leading-avatar-shape: 50%;--mat-list-list-item-container-color: transparent;--mat-list-list-item-selected-container-color: transparent;--mat-list-list-item-leading-avatar-color: transparent;--mat-list-list-item-leading-icon-size: 24px;--mat-list-list-item-leading-avatar-size: 40px;--mat-list-list-item-trailing-icon-size: 24px;--mat-list-list-item-disabled-state-layer-color: transparent;--mat-list-list-item-disabled-state-layer-opacity: 0;--mat-list-list-item-disabled-label-text-opacity: .38;--mat-list-list-item-disabled-leading-icon-opacity: .38;--mat-list-list-item-disabled-trailing-icon-opacity: .38}html{--mat-list-list-item-label-text-color: rgba(0, 0, 0, .87);--mat-list-list-item-supporting-text-color: rgba(0, 0, 0, .54);--mat-list-list-item-leading-icon-color: rgba(0, 0, 0, .54);--mat-list-list-item-trailing-supporting-text-color: rgba(0, 0, 0, .54);--mat-list-list-item-trailing-icon-color: rgba(0, 0, 0, .54);--mat-list-list-item-selected-trailing-icon-color: rgba(0, 0, 0, .54);--mat-list-list-item-disabled-label-text-color: rgba(0, 0, 0, .87);--mat-list-list-item-disabled-leading-icon-color: rgba(0, 0, 0, .87);--mat-list-list-item-disabled-trailing-icon-color: rgba(0, 0, 0, .87);--mat-list-list-item-hover-label-text-color: rgba(0, 0, 0, .87);--mat-list-list-item-hover-leading-icon-color: rgba(0, 0, 0, .54);--mat-list-list-item-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-list-list-item-hover-state-layer-opacity: .04;--mat-list-list-item-hover-trailing-icon-color: rgba(0, 0, 0, .54);--mat-list-list-item-focus-label-text-color: rgba(0, 0, 0, .87);--mat-list-list-item-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-list-list-item-focus-state-layer-opacity: .12}.mdc-list-item__start,.mdc-list-item__end{--mat-radio-checked-ripple-color: #215f9e;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: #215f9e;--mat-radio-selected-hover-icon-color: #215f9e;--mat-radio-selected-icon-color: #215f9e;--mat-radio-selected-pressed-icon-color: #215f9e;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.mat-accent .mdc-list-item__start,.mat-accent .mdc-list-item__end{--mat-radio-checked-ripple-color: #a7a7a7;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: #a7a7a7;--mat-radio-selected-hover-icon-color: #a7a7a7;--mat-radio-selected-icon-color: #a7a7a7;--mat-radio-selected-pressed-icon-color: #a7a7a7;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.mat-warn .mdc-list-item__start,.mat-warn .mdc-list-item__end{--mat-radio-checked-ripple-color: #f44336;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: #f44336;--mat-radio-selected-hover-icon-color: #f44336;--mat-radio-selected-icon-color: #f44336;--mat-radio-selected-pressed-icon-color: #f44336;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.mat-mdc-list-option{--mat-checkbox-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-label-text-color: rgba(0, 0, 0, .87);--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: #F8F9F9;--mat-checkbox-selected-focus-icon-color: #215f9e;--mat-checkbox-selected-hover-icon-color: #215f9e;--mat-checkbox-selected-icon-color: #215f9e;--mat-checkbox-selected-pressed-icon-color: #215f9e;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: #215f9e;--mat-checkbox-selected-hover-state-layer-color: #215f9e;--mat-checkbox-selected-pressed-state-layer-color: #215f9e;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.mat-mdc-list-option.mat-accent{--mat-checkbox-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-label-text-color: rgba(0, 0, 0, .87);--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: #F8F9F9;--mat-checkbox-selected-focus-icon-color: #a7a7a7;--mat-checkbox-selected-hover-icon-color: #a7a7a7;--mat-checkbox-selected-icon-color: #a7a7a7;--mat-checkbox-selected-pressed-icon-color: #a7a7a7;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: #a7a7a7;--mat-checkbox-selected-hover-state-layer-color: #a7a7a7;--mat-checkbox-selected-pressed-state-layer-color: #a7a7a7;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.mat-mdc-list-option.mat-warn{--mat-checkbox-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-label-text-color: rgba(0, 0, 0, .87);--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: white;--mat-checkbox-selected-focus-icon-color: #f44336;--mat-checkbox-selected-hover-icon-color: #f44336;--mat-checkbox-selected-icon-color: #f44336;--mat-checkbox-selected-pressed-icon-color: #f44336;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: #f44336;--mat-checkbox-selected-hover-state-layer-color: #f44336;--mat-checkbox-selected-pressed-state-layer-color: #f44336;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected .mdc-list-item__primary-text,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected .mdc-list-item__start,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated .mdc-list-item__primary-text,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated .mdc-list-item__start{color:#215f9e}.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__start,.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__content,.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__end{opacity:1}html{--mat-list-list-item-leading-icon-start-space: 16px;--mat-list-list-item-leading-icon-end-space: 32px;--mat-list-list-item-one-line-container-height: 48px;--mat-list-list-item-two-line-container-height: 64px;--mat-list-list-item-three-line-container-height: 88px}.mdc-list-item__start,.mdc-list-item__end{--mat-radio-state-layer-size: 40px;--mat-radio-touch-target-display: block}.mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-one-line,.mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-one-line,.mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-one-line{height:56px}.mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines,.mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines,.mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines{height:72px}html{--mat-paginator-page-size-select-width: 84px;--mat-paginator-page-size-select-touch-target-height: 48px}html{--mat-paginator-container-text-color: rgba(0, 0, 0, .87);--mat-paginator-container-background-color: white;--mat-paginator-enabled-icon-color: rgba(0, 0, 0, .54);--mat-paginator-disabled-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}html{--mat-paginator-container-size: 56px;--mat-paginator-form-field-container-height: 40px;--mat-paginator-form-field-container-vertical-padding: 8px;--mat-paginator-touch-target-display: block}html{--mat-tab-container-height: 48px;--mat-tab-divider-color: transparent;--mat-tab-divider-height: 0;--mat-tab-active-indicator-height: 2px;--mat-tab-active-indicator-shape: 0}.mat-mdc-tab-group,.mat-mdc-tab-nav-bar{--mat-tab-disabled-ripple-color: rgba(0, 0, 0, .54);--mat-tab-pagination-icon-color: rgba(0, 0, 0, .87);--mat-tab-inactive-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-label-text-color: #215f9e;--mat-tab-active-ripple-color: #215f9e;--mat-tab-inactive-ripple-color: #215f9e;--mat-tab-inactive-focus-label-text-color: rgba(0, 0, 0, .54);--mat-tab-inactive-hover-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-focus-label-text-color: #215f9e;--mat-tab-active-hover-label-text-color: #215f9e;--mat-tab-active-focus-indicator-color: #215f9e;--mat-tab-active-hover-indicator-color: #215f9e;--mat-tab-active-indicator-color: #215f9e}.mat-mdc-tab-group.mat-accent,.mat-mdc-tab-nav-bar.mat-accent{--mat-tab-disabled-ripple-color: rgba(0, 0, 0, .54);--mat-tab-pagination-icon-color: rgba(0, 0, 0, .87);--mat-tab-inactive-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-label-text-color: #a7a7a7;--mat-tab-active-ripple-color: #a7a7a7;--mat-tab-inactive-ripple-color: #a7a7a7;--mat-tab-inactive-focus-label-text-color: rgba(0, 0, 0, .54);--mat-tab-inactive-hover-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-focus-label-text-color: #a7a7a7;--mat-tab-active-hover-label-text-color: #a7a7a7;--mat-tab-active-focus-indicator-color: #a7a7a7;--mat-tab-active-hover-indicator-color: #a7a7a7;--mat-tab-active-indicator-color: #a7a7a7}.mat-mdc-tab-group.mat-warn,.mat-mdc-tab-nav-bar.mat-warn{--mat-tab-disabled-ripple-color: rgba(0, 0, 0, .54);--mat-tab-pagination-icon-color: rgba(0, 0, 0, .87);--mat-tab-inactive-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-label-text-color: #f44336;--mat-tab-active-ripple-color: #f44336;--mat-tab-inactive-ripple-color: #f44336;--mat-tab-inactive-focus-label-text-color: rgba(0, 0, 0, .54);--mat-tab-inactive-hover-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-focus-label-text-color: #f44336;--mat-tab-active-hover-label-text-color: #f44336;--mat-tab-active-focus-indicator-color: #f44336;--mat-tab-active-hover-indicator-color: #f44336;--mat-tab-active-indicator-color: #f44336}.mat-mdc-tab-group.mat-background-primary,.mat-mdc-tab-nav-bar.mat-background-primary{--mat-tab-background-color: #215f9e;--mat-tab-foreground-color: #F8F9F9}.mat-mdc-tab-group.mat-background-accent,.mat-mdc-tab-nav-bar.mat-background-accent{--mat-tab-background-color: #a7a7a7;--mat-tab-foreground-color: #F8F9F9}.mat-mdc-tab-group.mat-background-warn,.mat-mdc-tab-nav-bar.mat-background-warn{--mat-tab-background-color: #f44336;--mat-tab-foreground-color: white}.mat-mdc-tab-header{--mat-tab-container-height: 48px}html{--mat-checkbox-disabled-selected-checkmark-color: white;--mat-checkbox-selected-focus-state-layer-opacity: .12;--mat-checkbox-selected-hover-state-layer-opacity: .04;--mat-checkbox-selected-pressed-state-layer-opacity: .12;--mat-checkbox-unselected-focus-state-layer-opacity: .12;--mat-checkbox-unselected-hover-state-layer-opacity: .04;--mat-checkbox-unselected-pressed-state-layer-opacity: .12;--mat-checkbox-touch-target-size: 48px}html{--mat-checkbox-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-label-text-color: rgba(0, 0, 0, .87);--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: #F8F9F9;--mat-checkbox-selected-focus-icon-color: #a7a7a7;--mat-checkbox-selected-hover-icon-color: #a7a7a7;--mat-checkbox-selected-icon-color: #a7a7a7;--mat-checkbox-selected-pressed-icon-color: #a7a7a7;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: #a7a7a7;--mat-checkbox-selected-hover-state-layer-color: #a7a7a7;--mat-checkbox-selected-pressed-state-layer-color: #a7a7a7;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.mat-mdc-checkbox.mat-primary{--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: #F8F9F9;--mat-checkbox-selected-focus-icon-color: #215f9e;--mat-checkbox-selected-hover-icon-color: #215f9e;--mat-checkbox-selected-icon-color: #215f9e;--mat-checkbox-selected-pressed-icon-color: #215f9e;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: #215f9e;--mat-checkbox-selected-hover-state-layer-color: #215f9e;--mat-checkbox-selected-pressed-state-layer-color: #215f9e;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.mat-mdc-checkbox.mat-warn{--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: white;--mat-checkbox-selected-focus-icon-color: #f44336;--mat-checkbox-selected-hover-icon-color: #f44336;--mat-checkbox-selected-icon-color: #f44336;--mat-checkbox-selected-pressed-icon-color: #f44336;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: #f44336;--mat-checkbox-selected-hover-state-layer-color: #f44336;--mat-checkbox-selected-pressed-state-layer-color: #f44336;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}html{--mat-checkbox-touch-target-display: block;--mat-checkbox-state-layer-size: 40px}html{--mat-button-filled-container-shape: 4px;--mat-button-filled-horizontal-padding: 16px;--mat-button-filled-icon-offset: -4px;--mat-button-filled-icon-spacing: 8px;--mat-button-filled-touch-target-size: 48px;--mat-button-outlined-container-shape: 4px;--mat-button-outlined-horizontal-padding: 15px;--mat-button-outlined-icon-offset: -4px;--mat-button-outlined-icon-spacing: 8px;--mat-button-outlined-keep-touch-target: false;--mat-button-outlined-outline-width: 1px;--mat-button-outlined-touch-target-size: 48px;--mat-button-protected-container-elevation-shadow: 0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mat-button-protected-container-shape: 4px;--mat-button-protected-disabled-container-elevation-shadow: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-button-protected-focus-container-elevation-shadow: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mat-button-protected-horizontal-padding: 16px;--mat-button-protected-hover-container-elevation-shadow: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mat-button-protected-icon-offset: -4px;--mat-button-protected-icon-spacing: 8px;--mat-button-protected-pressed-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-button-protected-touch-target-size: 48px;--mat-button-text-container-shape: 4px;--mat-button-text-horizontal-padding: 8px;--mat-button-text-icon-offset: 0;--mat-button-text-icon-spacing: 8px;--mat-button-text-with-icon-horizontal-padding: 8px;--mat-button-text-touch-target-size: 48px;--mat-button-tonal-container-shape: 4px;--mat-button-tonal-horizontal-padding: 16px;--mat-button-tonal-icon-offset: -4px;--mat-button-tonal-icon-spacing: 8px;--mat-button-tonal-touch-target-size: 48px}html{--mat-button-filled-container-color: white;--mat-button-filled-disabled-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-filled-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-filled-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-button-filled-focus-state-layer-opacity: .12;--mat-button-filled-hover-state-layer-opacity: .04;--mat-button-filled-label-text-color: rgba(0, 0, 0, .87);--mat-button-filled-pressed-state-layer-opacity: .12;--mat-button-filled-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-filled-state-layer-color: rgba(0, 0, 0, .87);--mat-button-outlined-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-outlined-disabled-outline-color: rgba(0, 0, 0, .12);--mat-button-outlined-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-button-outlined-focus-state-layer-opacity: .12;--mat-button-outlined-hover-state-layer-opacity: .04;--mat-button-outlined-label-text-color: rgba(0, 0, 0, .87);--mat-button-outlined-outline-color: rgba(0, 0, 0, .12);--mat-button-outlined-pressed-state-layer-opacity: .12;--mat-button-outlined-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-outlined-state-layer-color: rgba(0, 0, 0, .87);--mat-button-protected-container-color: white;--mat-button-protected-disabled-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-protected-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-protected-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-button-protected-focus-state-layer-opacity: .12;--mat-button-protected-hover-state-layer-opacity: .04;--mat-button-protected-label-text-color: rgba(0, 0, 0, .87);--mat-button-protected-pressed-state-layer-opacity: .12;--mat-button-protected-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-protected-state-layer-color: rgba(0, 0, 0, .87);--mat-button-text-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-text-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-button-text-focus-state-layer-opacity: .12;--mat-button-text-hover-state-layer-opacity: .04;--mat-button-text-label-text-color: rgba(0, 0, 0, .87);--mat-button-text-pressed-state-layer-opacity: .12;--mat-button-text-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-text-state-layer-color: rgba(0, 0, 0, .87);--mat-button-tonal-container-color: white;--mat-button-tonal-disabled-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-tonal-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-tonal-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-button-tonal-focus-state-layer-opacity: .12;--mat-button-tonal-hover-state-layer-opacity: .04;--mat-button-tonal-label-text-color: rgba(0, 0, 0, .87);--mat-button-tonal-pressed-state-layer-opacity: .12;--mat-button-tonal-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-tonal-state-layer-color: rgba(0, 0, 0, .87)}.mat-mdc-button.mat-primary,.mat-mdc-unelevated-button.mat-primary,.mat-mdc-raised-button.mat-primary,.mat-mdc-outlined-button.mat-primary,.mat-tonal-button.mat-primary{--mat-button-filled-container-color: #215f9e;--mat-button-filled-label-text-color: #F8F9F9;--mat-button-filled-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-button-filled-state-layer-color: #F8F9F9;--mat-button-outlined-label-text-color: #215f9e;--mat-button-outlined-outline-color: rgba(0, 0, 0, .12);--mat-button-outlined-ripple-color: color-mix(in srgb, #215f9e 12%, transparent);--mat-button-outlined-state-layer-color: #215f9e;--mat-button-protected-container-color: #215f9e;--mat-button-protected-label-text-color: #F8F9F9;--mat-button-protected-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-button-protected-state-layer-color: #F8F9F9;--mat-button-text-label-text-color: #215f9e;--mat-button-text-ripple-color: color-mix(in srgb, #215f9e 12%, transparent);--mat-button-text-state-layer-color: #215f9e;--mat-button-tonal-container-color: #215f9e;--mat-button-tonal-label-text-color: #F8F9F9;--mat-button-tonal-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-button-tonal-state-layer-color: #F8F9F9}.mat-mdc-button.mat-accent,.mat-mdc-unelevated-button.mat-accent,.mat-mdc-raised-button.mat-accent,.mat-mdc-outlined-button.mat-accent,.mat-tonal-button.mat-accent{--mat-button-filled-container-color: #a7a7a7;--mat-button-filled-label-text-color: #F8F9F9;--mat-button-filled-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-button-filled-state-layer-color: #F8F9F9;--mat-button-outlined-label-text-color: #a7a7a7;--mat-button-outlined-outline-color: rgba(0, 0, 0, .12);--mat-button-outlined-ripple-color: color-mix(in srgb, #a7a7a7 12%, transparent);--mat-button-outlined-state-layer-color: #a7a7a7;--mat-button-protected-container-color: #a7a7a7;--mat-button-protected-label-text-color: #F8F9F9;--mat-button-protected-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-button-protected-state-layer-color: #F8F9F9;--mat-button-text-label-text-color: #a7a7a7;--mat-button-text-ripple-color: color-mix(in srgb, #a7a7a7 12%, transparent);--mat-button-text-state-layer-color: #a7a7a7;--mat-button-tonal-container-color: #a7a7a7;--mat-button-tonal-label-text-color: #F8F9F9;--mat-button-tonal-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-button-tonal-state-layer-color: #F8F9F9}.mat-mdc-button.mat-warn,.mat-mdc-unelevated-button.mat-warn,.mat-mdc-raised-button.mat-warn,.mat-mdc-outlined-button.mat-warn,.mat-tonal-button.mat-warn{--mat-button-filled-container-color: #f44336;--mat-button-filled-label-text-color: white;--mat-button-filled-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-filled-state-layer-color: white;--mat-button-outlined-label-text-color: #f44336;--mat-button-outlined-outline-color: rgba(0, 0, 0, .12);--mat-button-outlined-ripple-color: color-mix(in srgb, #f44336 12%, transparent);--mat-button-outlined-state-layer-color: #f44336;--mat-button-protected-container-color: #f44336;--mat-button-protected-label-text-color: white;--mat-button-protected-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-protected-state-layer-color: white;--mat-button-text-label-text-color: #f44336;--mat-button-text-ripple-color: color-mix(in srgb, #f44336 12%, transparent);--mat-button-text-state-layer-color: #f44336;--mat-button-tonal-container-color: #f44336;--mat-button-tonal-label-text-color: white;--mat-button-tonal-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-tonal-state-layer-color: white}html{--mat-button-filled-container-height: 36px;--mat-button-filled-touch-target-display: block;--mat-button-outlined-container-height: 36px;--mat-button-outlined-touch-target-display: block;--mat-button-protected-container-height: 36px;--mat-button-protected-touch-target-display: block;--mat-button-text-container-height: 36px;--mat-button-text-touch-target-display: block;--mat-button-tonal-container-height: 36px;--mat-button-tonal-touch-target-display: block}html{--mat-icon-button-icon-size: 24px;--mat-icon-button-container-shape: 50%;--mat-icon-button-touch-target-size: 48px}html{--mat-icon-button-disabled-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-icon-button-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-icon-button-focus-state-layer-opacity: .12;--mat-icon-button-hover-state-layer-opacity: .04;--mat-icon-button-icon-color: inherit;--mat-icon-button-pressed-state-layer-opacity: .12;--mat-icon-button-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-icon-button-state-layer-color: rgba(0, 0, 0, .87)}.mat-mdc-icon-button.mat-primary{--mat-icon-button-icon-color: #215f9e;--mat-icon-button-state-layer-color: #215f9e;--mat-icon-button-ripple-color: color-mix(in srgb, #215f9e 12%, transparent)}.mat-mdc-icon-button.mat-accent{--mat-icon-button-icon-color: #a7a7a7;--mat-icon-button-state-layer-color: #a7a7a7;--mat-icon-button-ripple-color: color-mix(in srgb, #a7a7a7 12%, transparent)}.mat-mdc-icon-button.mat-warn{--mat-icon-button-icon-color: #f44336;--mat-icon-button-state-layer-color: #f44336;--mat-icon-button-ripple-color: color-mix(in srgb, #f44336 12%, transparent)}html{--mat-icon-button-touch-target-display: block}.mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size: 48px;--mat-icon-button-state-layer-size: 48px;width:var(--mat-icon-button-state-layer-size);height:var(--mat-icon-button-state-layer-size);padding:12px}html{--mat-fab-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-fab-container-shape: 50%;--mat-fab-touch-target-size: 48px;--mat-fab-extended-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-fab-extended-container-height: 48px;--mat-fab-extended-container-shape: 24px;--mat-fab-extended-focus-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-fab-extended-hover-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-fab-extended-pressed-container-elevation-shadow: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-fab-focus-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-fab-hover-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-fab-pressed-container-elevation-shadow: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-fab-small-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-fab-small-container-shape: 50%;--mat-fab-small-touch-target-size: 48px;--mat-fab-small-focus-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-fab-small-hover-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-fab-small-pressed-container-elevation-shadow: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12)}html{--mat-fab-container-color: white;--mat-fab-disabled-state-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-fab-disabled-state-foreground-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-fab-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-fab-focus-state-layer-opacity: .12;--mat-fab-foreground-color: rgba(0, 0, 0, .87);--mat-fab-hover-state-layer-opacity: .04;--mat-fab-pressed-state-layer-opacity: .12;--mat-fab-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-fab-small-container-color: white;--mat-fab-small-disabled-state-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-fab-small-disabled-state-foreground-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-fab-small-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-fab-small-focus-state-layer-opacity: .12;--mat-fab-small-foreground-color: rgba(0, 0, 0, .87);--mat-fab-small-hover-state-layer-opacity: .04;--mat-fab-small-pressed-state-layer-opacity: .12;--mat-fab-small-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-fab-small-state-layer-color: rgba(0, 0, 0, .87);--mat-fab-state-layer-color: rgba(0, 0, 0, .87)}.mat-mdc-fab.mat-primary,.mat-mdc-mini-fab.mat-primary{--mat-fab-container-color: #215f9e;--mat-fab-foreground-color: #F8F9F9;--mat-fab-ripple-color: color-mix(in srgb, #215f9e 12%, transparent);--mat-fab-small-container-color: #215f9e;--mat-fab-small-foreground-color: #F8F9F9;--mat-fab-small-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-fab-small-state-layer-color: #F8F9F9;--mat-fab-state-layer-color: #F8F9F9}.mat-mdc-fab.mat-accent,.mat-mdc-mini-fab.mat-accent{--mat-fab-container-color: #a7a7a7;--mat-fab-foreground-color: #F8F9F9;--mat-fab-ripple-color: color-mix(in srgb, #a7a7a7 12%, transparent);--mat-fab-small-container-color: #a7a7a7;--mat-fab-small-foreground-color: #F8F9F9;--mat-fab-small-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-fab-small-state-layer-color: #F8F9F9;--mat-fab-state-layer-color: #F8F9F9}.mat-mdc-fab.mat-warn,.mat-mdc-mini-fab.mat-warn{--mat-fab-container-color: #f44336;--mat-fab-foreground-color: white;--mat-fab-ripple-color: color-mix(in srgb, #f44336 12%, transparent);--mat-fab-small-container-color: #f44336;--mat-fab-small-foreground-color: white;--mat-fab-small-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-fab-small-state-layer-color: white;--mat-fab-state-layer-color: white}html{--mat-fab-small-touch-target-display: block;--mat-fab-touch-target-display: block}html{--mat-snack-bar-container-shape: 4px}html{--mat-snack-bar-container-color: #424242;--mat-snack-bar-supporting-text-color: white}html{--mat-table-row-item-outline-width: 1px}html{--mat-table-background-color: white;--mat-table-header-headline-color: rgba(0, 0, 0, .87);--mat-table-row-item-label-text-color: rgba(0, 0, 0, .87);--mat-table-row-item-outline-color: rgba(0, 0, 0, .12)}html{--mat-table-header-container-height: 56px;--mat-table-footer-container-height: 52px;--mat-table-row-item-container-height: 52px}html{--mat-progress-spinner-active-indicator-width: 4px;--mat-progress-spinner-size: 48px}html{--mat-progress-spinner-active-indicator-color: #215f9e}.mat-accent{--mat-progress-spinner-active-indicator-color: #a7a7a7}.mat-warn{--mat-progress-spinner-active-indicator-color: #f44336}html{--mat-badge-container-shape: 50%;--mat-badge-container-size: unset;--mat-badge-small-size-container-size: unset;--mat-badge-large-size-container-size: unset;--mat-badge-legacy-container-size: 22px;--mat-badge-legacy-small-size-container-size: 16px;--mat-badge-legacy-large-size-container-size: 28px;--mat-badge-container-offset: -11px 0;--mat-badge-small-size-container-offset: -8px 0;--mat-badge-large-size-container-offset: -14px 0;--mat-badge-container-overlap-offset: -11px;--mat-badge-small-size-container-overlap-offset: -8px;--mat-badge-large-size-container-overlap-offset: -14px;--mat-badge-container-padding: 0;--mat-badge-small-size-container-padding: 0;--mat-badge-large-size-container-padding: 0}html{--mat-badge-background-color: #215f9e;--mat-badge-text-color: #F8F9F9;--mat-badge-disabled-state-background-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-badge-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}.mat-badge-accent{--mat-badge-background-color: #a7a7a7;--mat-badge-text-color: #F8F9F9}.mat-badge-warn{--mat-badge-background-color: #f44336;--mat-badge-text-color: white}html{--mat-bottom-sheet-container-shape: 4px}html{--mat-bottom-sheet-container-text-color: rgba(0, 0, 0, .87);--mat-bottom-sheet-container-background-color: white}html{--mat-button-toggle-focus-state-layer-opacity: .12;--mat-button-toggle-hover-state-layer-opacity: .04;--mat-button-toggle-legacy-focus-state-layer-opacity: 1;--mat-button-toggle-legacy-height: 36px;--mat-button-toggle-legacy-shape: 2px;--mat-button-toggle-shape: 4px}html{--mat-button-toggle-background-color: white;--mat-button-toggle-disabled-selected-state-background-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-toggle-disabled-selected-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-toggle-disabled-state-background-color: white;--mat-button-toggle-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-toggle-divider-color: rgba(0, 0, 0, .12);--mat-button-toggle-legacy-disabled-selected-state-background-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-toggle-legacy-disabled-state-background-color: white;--mat-button-toggle-legacy-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-toggle-legacy-selected-state-background-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-toggle-legacy-selected-state-text-color: rgba(0, 0, 0, .87);--mat-button-toggle-legacy-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-toggle-legacy-text-color: rgba(0, 0, 0, .87);--mat-button-toggle-selected-state-background-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-toggle-selected-state-text-color: rgba(0, 0, 0, .87);--mat-button-toggle-state-layer-color: rgba(0, 0, 0, .87);--mat-button-toggle-text-color: rgba(0, 0, 0, .87)}html{--mat-button-toggle-height: 48px}html{--mat-datepicker-calendar-container-shape: 4px;--mat-datepicker-calendar-container-touch-shape: 4px;--mat-datepicker-calendar-container-elevation-shadow: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mat-datepicker-calendar-container-touch-elevation-shadow: 0px 11px 15px -7px rgba(0, 0, 0, .2), 0px 24px 38px 3px rgba(0, 0, 0, .14), 0px 9px 46px 8px rgba(0, 0, 0, .12)}html{--mat-datepicker-calendar-date-in-range-state-background-color: color-mix(in srgb, #215f9e 20%, transparent);--mat-datepicker-calendar-date-in-comparison-range-state-background-color: color-mix(in srgb, #a7a7a7 20%, transparent);--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: rgb(69.5241935484, 163.4758064516, 93.9516129032);--mat-datepicker-calendar-date-selected-state-text-color: #F8F9F9;--mat-datepicker-calendar-date-selected-state-background-color: #215f9e;--mat-datepicker-calendar-date-selected-disabled-state-background-color: color-mix(in srgb, #215f9e 38%, transparent);--mat-datepicker-calendar-date-today-selected-state-outline-color: #F8F9F9;--mat-datepicker-calendar-date-focus-state-background-color: color-mix(in srgb, #215f9e 12%, transparent);--mat-datepicker-calendar-date-hover-state-background-color: color-mix(in srgb, #215f9e 4%, transparent);--mat-datepicker-toggle-active-state-icon-color: #215f9e;--mat-datepicker-toggle-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-body-label-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-period-button-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-period-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-navigation-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-header-divider-color: rgba(0, 0, 0, .12);--mat-datepicker-calendar-header-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-disabled-state-outline-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-date-outline-color: transparent;--mat-datepicker-calendar-date-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-preview-state-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-range-input-separator-color: rgba(0, 0, 0, .87);--mat-datepicker-range-input-disabled-state-separator-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-range-input-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-container-background-color: white;--mat-datepicker-calendar-container-text-color: rgba(0, 0, 0, .87)}.mat-datepicker-content.mat-accent,.mat-datepicker-toggle-active.mat-accent{--mat-datepicker-calendar-date-in-range-state-background-color: color-mix(in srgb, #a7a7a7 20%, transparent);--mat-datepicker-calendar-date-in-comparison-range-state-background-color: color-mix(in srgb, #a7a7a7 20%, transparent);--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: rgb(69.5241935484, 163.4758064516, 93.9516129032);--mat-datepicker-calendar-date-selected-state-text-color: #F8F9F9;--mat-datepicker-calendar-date-selected-state-background-color: #a7a7a7;--mat-datepicker-calendar-date-selected-disabled-state-background-color: color-mix(in srgb, #a7a7a7 38%, transparent);--mat-datepicker-calendar-date-today-selected-state-outline-color: #F8F9F9;--mat-datepicker-calendar-date-focus-state-background-color: color-mix(in srgb, #a7a7a7 12%, transparent);--mat-datepicker-calendar-date-hover-state-background-color: color-mix(in srgb, #a7a7a7 4%, transparent);--mat-datepicker-toggle-active-state-icon-color: #a7a7a7;--mat-datepicker-toggle-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-body-label-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-period-button-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-period-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-navigation-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-header-divider-color: rgba(0, 0, 0, .12);--mat-datepicker-calendar-header-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-disabled-state-outline-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-date-outline-color: transparent;--mat-datepicker-calendar-date-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-preview-state-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-range-input-separator-color: rgba(0, 0, 0, .87);--mat-datepicker-range-input-disabled-state-separator-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-range-input-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-container-background-color: white;--mat-datepicker-calendar-container-text-color: rgba(0, 0, 0, .87)}.mat-datepicker-content.mat-warn,.mat-datepicker-toggle-active.mat-warn{--mat-datepicker-calendar-date-in-range-state-background-color: color-mix(in srgb, #f44336 20%, transparent);--mat-datepicker-calendar-date-in-comparison-range-state-background-color: color-mix(in srgb, #a7a7a7 20%, transparent);--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: rgb(69.5241935484, 163.4758064516, 93.9516129032);--mat-datepicker-calendar-date-selected-state-text-color: white;--mat-datepicker-calendar-date-selected-state-background-color: #f44336;--mat-datepicker-calendar-date-selected-disabled-state-background-color: color-mix(in srgb, #f44336 38%, transparent);--mat-datepicker-calendar-date-today-selected-state-outline-color: white;--mat-datepicker-calendar-date-focus-state-background-color: color-mix(in srgb, #f44336 12%, transparent);--mat-datepicker-calendar-date-hover-state-background-color: color-mix(in srgb, #f44336 4%, transparent);--mat-datepicker-toggle-active-state-icon-color: #f44336;--mat-datepicker-toggle-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-body-label-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-period-button-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-period-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-navigation-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-header-divider-color: rgba(0, 0, 0, .12);--mat-datepicker-calendar-header-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-disabled-state-outline-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-date-outline-color: transparent;--mat-datepicker-calendar-date-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-preview-state-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-range-input-separator-color: rgba(0, 0, 0, .87);--mat-datepicker-range-input-disabled-state-separator-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-range-input-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-container-background-color: white;--mat-datepicker-calendar-container-text-color: rgba(0, 0, 0, .87)}.mat-calendar-controls{--mat-icon-button-touch-target-display: none}.mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size: 40px;--mat-icon-button-state-layer-size: 40px;width:var(--mat-icon-button-state-layer-size);height:var(--mat-icon-button-state-layer-size);padding:8px}html{--mat-divider-width: 1px}html{--mat-divider-color: rgba(0, 0, 0, .12)}html{--mat-expansion-container-shape: 4px;--mat-expansion-container-elevation-shadow: 0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mat-expansion-legacy-header-indicator-display: inline-block;--mat-expansion-header-indicator-display: none}html{--mat-expansion-container-background-color: white;--mat-expansion-container-text-color: rgba(0, 0, 0, .87);--mat-expansion-actions-divider-color: rgba(0, 0, 0, .12);--mat-expansion-header-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-expansion-header-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-expansion-header-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-expansion-header-text-color: rgba(0, 0, 0, .87);--mat-expansion-header-description-color: rgba(0, 0, 0, .54);--mat-expansion-header-indicator-color: rgba(0, 0, 0, .54)}html{--mat-expansion-header-collapsed-state-height: 48px;--mat-expansion-header-expanded-state-height: 64px}html{--mat-icon-color: inherit}.mat-icon.mat-primary{--mat-icon-color: #215f9e}.mat-icon.mat-accent{--mat-icon-color: #a7a7a7}.mat-icon.mat-warn{--mat-icon-color: #f44336}html{--mat-sidenav-container-shape: 0;--mat-sidenav-container-elevation-shadow: 0px 8px 10px -5px rgba(0, 0, 0, .2), 0px 16px 24px 2px rgba(0, 0, 0, .14), 0px 6px 30px 5px rgba(0, 0, 0, .12);--mat-sidenav-container-width: auto}html{--mat-sidenav-container-divider-color: rgba(0, 0, 0, .12);--mat-sidenav-container-background-color: white;--mat-sidenav-container-text-color: rgba(0, 0, 0, .87);--mat-sidenav-content-background-color: #fafafa;--mat-sidenav-content-text-color: rgba(0, 0, 0, .87);--mat-sidenav-scrim-color: rgba(0, 0, 0, .6)}html{--mat-stepper-header-focus-state-layer-shape: 0;--mat-stepper-header-hover-state-layer-shape: 0}html{--mat-stepper-header-icon-foreground-color: #F8F9F9;--mat-stepper-header-selected-state-icon-background-color: #215f9e;--mat-stepper-header-selected-state-icon-foreground-color: #F8F9F9;--mat-stepper-header-done-state-icon-background-color: #215f9e;--mat-stepper-header-done-state-icon-foreground-color: #F8F9F9;--mat-stepper-header-edit-state-icon-background-color: #215f9e;--mat-stepper-header-edit-state-icon-foreground-color: #F8F9F9;--mat-stepper-container-color: white;--mat-stepper-line-color: rgba(0, 0, 0, .12);--mat-stepper-header-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-stepper-header-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-stepper-header-label-text-color: rgba(0, 0, 0, .54);--mat-stepper-header-optional-label-text-color: rgba(0, 0, 0, .54);--mat-stepper-header-selected-state-label-text-color: rgba(0, 0, 0, .87);--mat-stepper-header-error-state-label-text-color: #f44336;--mat-stepper-header-icon-background-color: rgba(0, 0, 0, .54);--mat-stepper-header-error-state-icon-foreground-color: #f44336;--mat-stepper-header-error-state-icon-background-color: transparent}.mat-step-header.mat-accent{--mat-stepper-header-icon-foreground-color: #F8F9F9;--mat-stepper-header-selected-state-icon-background-color: #a7a7a7;--mat-stepper-header-selected-state-icon-foreground-color: #F8F9F9;--mat-stepper-header-done-state-icon-background-color: #a7a7a7;--mat-stepper-header-done-state-icon-foreground-color: #F8F9F9;--mat-stepper-header-edit-state-icon-background-color: #a7a7a7;--mat-stepper-header-edit-state-icon-foreground-color: #F8F9F9}.mat-step-header.mat-warn{--mat-stepper-header-icon-foreground-color: white;--mat-stepper-header-selected-state-icon-background-color: #f44336;--mat-stepper-header-selected-state-icon-foreground-color: white;--mat-stepper-header-done-state-icon-background-color: #f44336;--mat-stepper-header-done-state-icon-foreground-color: white;--mat-stepper-header-edit-state-icon-background-color: #f44336;--mat-stepper-header-edit-state-icon-foreground-color: white}html{--mat-stepper-header-height: 72px}html{--mat-sort-arrow-color: rgba(0, 0, 0, .87)}html{--mat-toolbar-container-background-color: white;--mat-toolbar-container-text-color: rgba(0, 0, 0, .87)}.mat-toolbar.mat-primary{--mat-toolbar-container-background-color: #215f9e;--mat-toolbar-container-text-color: #F8F9F9}.mat-toolbar.mat-accent{--mat-toolbar-container-background-color: #a7a7a7;--mat-toolbar-container-text-color: #F8F9F9}.mat-toolbar.mat-warn{--mat-toolbar-container-background-color: #f44336;--mat-toolbar-container-text-color: white}html{--mat-toolbar-standard-height: 64px;--mat-toolbar-mobile-height: 56px}html{--mat-tree-container-background-color: white;--mat-tree-node-text-color: rgba(0, 0, 0, .87)}html{--mat-tree-node-min-height: 48px}html{--mat-timepicker-container-shape: 4px;--mat-timepicker-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-timepicker-container-background-color: white}.white-theme{--mat-app-background-color: #fafafa;--mat-app-text-color: rgba(0, 0, 0, .87);--mat-app-elevation-shadow-level-0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-2: 0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-3: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-4: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-5: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 5px 8px 0px rgba(0, 0, 0, .14), 0px 1px 14px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-6: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-7: 0px 4px 5px -2px rgba(0, 0, 0, .2), 0px 7px 10px 1px rgba(0, 0, 0, .14), 0px 2px 16px 1px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-8: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-9: 0px 5px 6px -3px rgba(0, 0, 0, .2), 0px 9px 12px 1px rgba(0, 0, 0, .14), 0px 3px 16px 2px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-10: 0px 6px 6px -3px rgba(0, 0, 0, .2), 0px 10px 14px 1px rgba(0, 0, 0, .14), 0px 4px 18px 3px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-11: 0px 6px 7px -4px rgba(0, 0, 0, .2), 0px 11px 15px 1px rgba(0, 0, 0, .14), 0px 4px 20px 3px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-12: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-13: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 13px 19px 2px rgba(0, 0, 0, .14), 0px 5px 24px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-14: 0px 7px 9px -4px rgba(0, 0, 0, .2), 0px 14px 21px 2px rgba(0, 0, 0, .14), 0px 5px 26px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-15: 0px 8px 9px -5px rgba(0, 0, 0, .2), 0px 15px 22px 2px rgba(0, 0, 0, .14), 0px 6px 28px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-16: 0px 8px 10px -5px rgba(0, 0, 0, .2), 0px 16px 24px 2px rgba(0, 0, 0, .14), 0px 6px 30px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-17: 0px 8px 11px -5px rgba(0, 0, 0, .2), 0px 17px 26px 2px rgba(0, 0, 0, .14), 0px 6px 32px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-18: 0px 9px 11px -5px rgba(0, 0, 0, .2), 0px 18px 28px 2px rgba(0, 0, 0, .14), 0px 7px 34px 6px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-19: 0px 9px 12px -6px rgba(0, 0, 0, .2), 0px 19px 29px 2px rgba(0, 0, 0, .14), 0px 7px 36px 6px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-20: 0px 10px 13px -6px rgba(0, 0, 0, .2), 0px 20px 31px 3px rgba(0, 0, 0, .14), 0px 8px 38px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-21: 0px 10px 13px -6px rgba(0, 0, 0, .2), 0px 21px 33px 3px rgba(0, 0, 0, .14), 0px 8px 40px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-22: 0px 10px 14px -6px rgba(0, 0, 0, .2), 0px 22px 35px 3px rgba(0, 0, 0, .14), 0px 8px 42px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-23: 0px 11px 14px -7px rgba(0, 0, 0, .2), 0px 23px 36px 3px rgba(0, 0, 0, .14), 0px 9px 44px 8px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-24: 0px 11px 15px -7px rgba(0, 0, 0, .2), 0px 24px 38px 3px rgba(0, 0, 0, .14), 0px 9px 46px 8px rgba(0, 0, 0, .12);--mat-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-option-selected-state-label-text-color: white;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-option-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-option-selected-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent)}.white-theme .mat-accent{--mat-option-selected-state-label-text-color: #a7a7a7;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-option-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-option-selected-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent)}.white-theme .mat-warn{--mat-option-selected-state-label-text-color: #f44336;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-option-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-option-selected-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent)}.white-theme{--mat-optgroup-label-text-color: rgba(0, 0, 0, .87);--mat-pseudo-checkbox-full-selected-icon-color: #a7a7a7;--mat-pseudo-checkbox-full-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-unselected-icon-color: rgba(0, 0, 0, .54);--mat-pseudo-checkbox-full-disabled-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-full-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-minimal-selected-checkmark-color: #a7a7a7;--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}.white-theme .mat-primary{--mat-pseudo-checkbox-full-selected-icon-color: white;--mat-pseudo-checkbox-full-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-unselected-icon-color: rgba(0, 0, 0, .54);--mat-pseudo-checkbox-full-disabled-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-full-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-minimal-selected-checkmark-color: white;--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}.white-theme .mat-accent{--mat-pseudo-checkbox-full-selected-icon-color: #a7a7a7;--mat-pseudo-checkbox-full-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-unselected-icon-color: rgba(0, 0, 0, .54);--mat-pseudo-checkbox-full-disabled-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-full-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-minimal-selected-checkmark-color: #a7a7a7;--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}.white-theme .mat-warn{--mat-pseudo-checkbox-full-selected-icon-color: #f44336;--mat-pseudo-checkbox-full-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-unselected-icon-color: rgba(0, 0, 0, .54);--mat-pseudo-checkbox-full-disabled-selected-checkmark-color: #fafafa;--mat-pseudo-checkbox-full-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-full-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-pseudo-checkbox-minimal-selected-checkmark-color: #f44336;--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}.white-theme{--mat-card-elevated-container-color: white;--mat-card-elevated-container-elevation: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-card-outlined-container-color: white;--mat-card-outlined-container-elevation: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-card-outlined-outline-color: rgba(0, 0, 0, .12);--mat-card-subtitle-text-color: rgba(0, 0, 0, .54);--mat-card-filled-container-color: white;--mat-card-filled-container-elevation: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12)}.white-theme .mat-mdc-progress-bar{--mat-progress-bar-active-indicator-color: white;--mat-progress-bar-track-color: rgba(255, 255, 255, .25)}.white-theme .mat-mdc-progress-bar.mat-accent{--mat-progress-bar-active-indicator-color: #a7a7a7;--mat-progress-bar-track-color: rgba(167, 167, 167, .25)}.white-theme .mat-mdc-progress-bar.mat-warn{--mat-progress-bar-active-indicator-color: #f44336;--mat-progress-bar-track-color: rgba(244, 67, 54, .25)}.white-theme{--mat-tooltip-container-color: #424242;--mat-tooltip-supporting-text-color: white;--mat-form-field-focus-select-arrow-color: color-mix(in srgb, white 87%, transparent);--mat-form-field-filled-caret-color: white;--mat-form-field-filled-focus-active-indicator-color: white;--mat-form-field-filled-focus-label-text-color: color-mix(in srgb, white 87%, transparent);--mat-form-field-outlined-caret-color: white;--mat-form-field-outlined-focus-outline-color: white;--mat-form-field-outlined-focus-label-text-color: color-mix(in srgb, white 87%, transparent);--mat-form-field-disabled-input-text-placeholder-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-state-layer-color: rgba(0, 0, 0, .87);--mat-form-field-error-text-color: #f44336;--mat-form-field-select-option-text-color: inherit;--mat-form-field-select-disabled-option-text-color: GrayText;--mat-form-field-leading-icon-color: unset;--mat-form-field-disabled-leading-icon-color: unset;--mat-form-field-trailing-icon-color: unset;--mat-form-field-disabled-trailing-icon-color: unset;--mat-form-field-error-focus-trailing-icon-color: unset;--mat-form-field-error-hover-trailing-icon-color: unset;--mat-form-field-error-trailing-icon-color: unset;--mat-form-field-enabled-select-arrow-color: rgba(0, 0, 0, .54);--mat-form-field-disabled-select-arrow-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-hover-state-layer-opacity: .04;--mat-form-field-focus-state-layer-opacity: .12;--mat-form-field-filled-container-color: #f6f6f6;--mat-form-field-filled-disabled-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-form-field-filled-label-text-color: rgba(0, 0, 0, .54);--mat-form-field-filled-hover-label-text-color: rgba(0, 0, 0, .54);--mat-form-field-filled-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-filled-input-text-color: rgba(0, 0, 0, .87);--mat-form-field-filled-disabled-input-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-filled-input-text-placeholder-color: rgba(0, 0, 0, .54);--mat-form-field-filled-error-hover-label-text-color: #f44336;--mat-form-field-filled-error-focus-label-text-color: #f44336;--mat-form-field-filled-error-label-text-color: #f44336;--mat-form-field-filled-error-caret-color: #f44336;--mat-form-field-filled-active-indicator-color: rgba(0, 0, 0, .54);--mat-form-field-filled-disabled-active-indicator-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-form-field-filled-hover-active-indicator-color: rgba(0, 0, 0, .87);--mat-form-field-filled-error-active-indicator-color: #f44336;--mat-form-field-filled-error-focus-active-indicator-color: #f44336;--mat-form-field-filled-error-hover-active-indicator-color: #f44336;--mat-form-field-outlined-label-text-color: rgba(0, 0, 0, .54);--mat-form-field-outlined-hover-label-text-color: rgba(0, 0, 0, .87);--mat-form-field-outlined-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-outlined-input-text-color: rgba(0, 0, 0, .87);--mat-form-field-outlined-disabled-input-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-form-field-outlined-input-text-placeholder-color: rgba(0, 0, 0, .54);--mat-form-field-outlined-error-caret-color: #f44336;--mat-form-field-outlined-error-focus-label-text-color: #f44336;--mat-form-field-outlined-error-label-text-color: #f44336;--mat-form-field-outlined-error-hover-label-text-color: #f44336;--mat-form-field-outlined-outline-color: rgba(0, 0, 0, .38);--mat-form-field-outlined-disabled-outline-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-form-field-outlined-hover-outline-color: rgba(0, 0, 0, .87);--mat-form-field-outlined-error-focus-outline-color: #f44336;--mat-form-field-outlined-error-hover-outline-color: #f44336;--mat-form-field-outlined-error-outline-color: #f44336}.white-theme .mat-mdc-form-field.mat-accent{--mat-form-field-focus-select-arrow-color: color-mix(in srgb, #a7a7a7 87%, transparent);--mat-form-field-filled-caret-color: #a7a7a7;--mat-form-field-filled-focus-active-indicator-color: #a7a7a7;--mat-form-field-filled-focus-label-text-color: color-mix(in srgb, #a7a7a7 87%, transparent);--mat-form-field-outlined-caret-color: #a7a7a7;--mat-form-field-outlined-focus-outline-color: #a7a7a7;--mat-form-field-outlined-focus-label-text-color: color-mix(in srgb, #a7a7a7 87%, transparent)}.white-theme .mat-mdc-form-field.mat-warn{--mat-form-field-focus-select-arrow-color: color-mix(in srgb, #f44336 87%, transparent);--mat-form-field-filled-caret-color: #f44336;--mat-form-field-filled-focus-active-indicator-color: #f44336;--mat-form-field-filled-focus-label-text-color: color-mix(in srgb, #f44336 87%, transparent);--mat-form-field-outlined-caret-color: #f44336;--mat-form-field-outlined-focus-outline-color: #f44336;--mat-form-field-outlined-focus-label-text-color: color-mix(in srgb, #f44336 87%, transparent)}.white-theme{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-placeholder-text-color: rgba(0, 0, 0, .54);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-focused-arrow-color: white;--mat-select-invalid-arrow-color: #f44336}.white-theme .mat-mdc-form-field.mat-accent{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-placeholder-text-color: rgba(0, 0, 0, .54);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-focused-arrow-color: #a7a7a7;--mat-select-invalid-arrow-color: #f44336}.white-theme .mat-mdc-form-field.mat-warn{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-placeholder-text-color: rgba(0, 0, 0, .54);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-select-focused-arrow-color: #f44336;--mat-select-invalid-arrow-color: #f44336}.white-theme{--mat-autocomplete-background-color: white;--mat-dialog-container-color: white;--mat-dialog-subhead-color: rgba(0, 0, 0, .87);--mat-dialog-supporting-text-color: rgba(0, 0, 0, .54)}.white-theme .mat-mdc-standard-chip{--mat-chip-disabled-label-text-color: rgba(0, 0, 0, .87);--mat-chip-elevated-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-chip-elevated-disabled-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-chip-elevated-selected-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-chip-flat-disabled-selected-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-chip-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-focus-state-layer-opacity: .12;--mat-chip-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-label-text-color: rgba(0, 0, 0, .87);--mat-chip-selected-disabled-trailing-icon-color: rgba(0, 0, 0, .87);--mat-chip-selected-focus-state-layer-color: .12;--mat-chip-selected-focus-state-layer-opacity: .12;--mat-chip-selected-hover-state-layer-color: .04;--mat-chip-selected-label-text-color: rgba(0, 0, 0, .87);--mat-chip-selected-trailing-icon-color: rgba(0, 0, 0, .87);--mat-chip-with-icon-disabled-icon-color: rgba(0, 0, 0, .87);--mat-chip-with-icon-icon-color: rgba(0, 0, 0, .87);--mat-chip-with-icon-selected-icon-color: rgba(0, 0, 0, .87);--mat-chip-with-trailing-icon-disabled-trailing-icon-color: rgba(0, 0, 0, .87);--mat-chip-with-trailing-icon-trailing-icon-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-standard-chip.mat-mdc-chip-selected.mat-primary,.white-theme .mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-primary{--mat-chip-disabled-label-text-color: white;--mat-chip-elevated-container-color: white;--mat-chip-elevated-disabled-container-color: white;--mat-chip-elevated-selected-container-color: white;--mat-chip-flat-disabled-selected-container-color: white;--mat-chip-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-focus-state-layer-opacity: .12;--mat-chip-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-label-text-color: white;--mat-chip-selected-disabled-trailing-icon-color: white;--mat-chip-selected-focus-state-layer-color: .12;--mat-chip-selected-focus-state-layer-opacity: .12;--mat-chip-selected-hover-state-layer-color: .04;--mat-chip-selected-label-text-color: white;--mat-chip-selected-trailing-icon-color: white;--mat-chip-with-icon-disabled-icon-color: white;--mat-chip-with-icon-icon-color: white;--mat-chip-with-icon-selected-icon-color: white;--mat-chip-with-trailing-icon-disabled-trailing-icon-color: white;--mat-chip-with-trailing-icon-trailing-icon-color: white}.white-theme .mat-mdc-standard-chip.mat-mdc-chip-selected.mat-accent,.white-theme .mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-accent{--mat-chip-disabled-label-text-color: #F8F9F9;--mat-chip-elevated-container-color: #a7a7a7;--mat-chip-elevated-disabled-container-color: #a7a7a7;--mat-chip-elevated-selected-container-color: #a7a7a7;--mat-chip-flat-disabled-selected-container-color: #a7a7a7;--mat-chip-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-focus-state-layer-opacity: .12;--mat-chip-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-label-text-color: #F8F9F9;--mat-chip-selected-disabled-trailing-icon-color: #F8F9F9;--mat-chip-selected-focus-state-layer-color: .12;--mat-chip-selected-focus-state-layer-opacity: .12;--mat-chip-selected-hover-state-layer-color: .04;--mat-chip-selected-label-text-color: #F8F9F9;--mat-chip-selected-trailing-icon-color: #F8F9F9;--mat-chip-with-icon-disabled-icon-color: #F8F9F9;--mat-chip-with-icon-icon-color: #F8F9F9;--mat-chip-with-icon-selected-icon-color: #F8F9F9;--mat-chip-with-trailing-icon-disabled-trailing-icon-color: #F8F9F9;--mat-chip-with-trailing-icon-trailing-icon-color: #F8F9F9}.white-theme .mat-mdc-standard-chip.mat-mdc-chip-selected.mat-warn,.white-theme .mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-warn{--mat-chip-disabled-label-text-color: white;--mat-chip-elevated-container-color: #f44336;--mat-chip-elevated-disabled-container-color: #f44336;--mat-chip-elevated-selected-container-color: #f44336;--mat-chip-flat-disabled-selected-container-color: #f44336;--mat-chip-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-focus-state-layer-opacity: .12;--mat-chip-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-chip-label-text-color: white;--mat-chip-selected-disabled-trailing-icon-color: white;--mat-chip-selected-focus-state-layer-color: .12;--mat-chip-selected-focus-state-layer-opacity: .12;--mat-chip-selected-hover-state-layer-color: .04;--mat-chip-selected-label-text-color: white;--mat-chip-selected-trailing-icon-color: white;--mat-chip-with-icon-disabled-icon-color: white;--mat-chip-with-icon-icon-color: white;--mat-chip-with-icon-selected-icon-color: white;--mat-chip-with-trailing-icon-disabled-trailing-icon-color: white;--mat-chip-with-trailing-icon-trailing-icon-color: white}.white-theme{--mat-slide-toggle-selected-icon-color: white;--mat-slide-toggle-disabled-selected-icon-color: white;--mat-slide-toggle-selected-focus-state-layer-color: white;--mat-slide-toggle-selected-handle-color: white;--mat-slide-toggle-selected-hover-state-layer-color: white;--mat-slide-toggle-selected-pressed-state-layer-color: white;--mat-slide-toggle-selected-focus-handle-color: white;--mat-slide-toggle-selected-hover-handle-color: white;--mat-slide-toggle-selected-pressed-handle-color: white;--mat-slide-toggle-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-slide-toggle-disabled-handle-elevation-shadow: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-slide-toggle-disabled-selected-handle-color: rgba(0, 0, 0, .87);--mat-slide-toggle-disabled-selected-track-color: rgba(0, 0, 0, .87);--mat-slide-toggle-disabled-unselected-handle-color: rgba(0, 0, 0, .87);--mat-slide-toggle-disabled-unselected-icon-color: #f6f6f6;--mat-slide-toggle-disabled-unselected-track-color: rgba(0, 0, 0, .87);--mat-slide-toggle-handle-elevation-shadow: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-slide-toggle-handle-surface-color: white;--mat-slide-toggle-label-text-color: rgba(0, 0, 0, .87);--mat-slide-toggle-unselected-hover-handle-color: #424242;--mat-slide-toggle-unselected-focus-handle-color: #424242;--mat-slide-toggle-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-slide-toggle-unselected-focus-track-color: rgba(0, 0, 0, .12);--mat-slide-toggle-unselected-icon-color: #f6f6f6;--mat-slide-toggle-unselected-handle-color: rgba(0, 0, 0, .54);--mat-slide-toggle-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-slide-toggle-unselected-hover-track-color: rgba(0, 0, 0, .12);--mat-slide-toggle-unselected-pressed-handle-color: #424242;--mat-slide-toggle-unselected-pressed-track-color: rgba(0, 0, 0, .12);--mat-slide-toggle-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87);--mat-slide-toggle-unselected-track-color: rgba(0, 0, 0, .12)}.white-theme .mat-mdc-slide-toggle.mat-accent{--mat-slide-toggle-selected-icon-color: #F8F9F9;--mat-slide-toggle-disabled-selected-icon-color: #F8F9F9;--mat-slide-toggle-selected-focus-state-layer-color: #a7a7a7;--mat-slide-toggle-selected-handle-color: #a7a7a7;--mat-slide-toggle-selected-hover-state-layer-color: #a7a7a7;--mat-slide-toggle-selected-pressed-state-layer-color: #a7a7a7;--mat-slide-toggle-selected-focus-handle-color: #a7a7a7;--mat-slide-toggle-selected-hover-handle-color: #a7a7a7;--mat-slide-toggle-selected-pressed-handle-color: #a7a7a7}.white-theme .mat-mdc-slide-toggle.mat-warn{--mat-slide-toggle-selected-icon-color: white;--mat-slide-toggle-disabled-selected-icon-color: white;--mat-slide-toggle-selected-focus-state-layer-color: #f44336;--mat-slide-toggle-selected-handle-color: #f44336;--mat-slide-toggle-selected-hover-state-layer-color: #f44336;--mat-slide-toggle-selected-pressed-state-layer-color: #f44336;--mat-slide-toggle-selected-focus-handle-color: #f44336;--mat-slide-toggle-selected-hover-handle-color: #f44336;--mat-slide-toggle-selected-pressed-handle-color: #f44336;--mat-slide-toggle-selected-focus-track-color: #e57373;--mat-slide-toggle-selected-hover-track-color: #e57373;--mat-slide-toggle-selected-pressed-track-color: #e57373;--mat-slide-toggle-selected-track-color: #e57373}.white-theme .mat-mdc-radio-button.mat-primary{--mat-radio-checked-ripple-color: white;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: white;--mat-radio-selected-hover-icon-color: white;--mat-radio-selected-icon-color: white;--mat-radio-selected-pressed-icon-color: white;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-radio-button.mat-accent{--mat-radio-checked-ripple-color: #a7a7a7;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: #a7a7a7;--mat-radio-selected-hover-icon-color: #a7a7a7;--mat-radio-selected-icon-color: #a7a7a7;--mat-radio-selected-pressed-icon-color: #a7a7a7;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-radio-button.mat-warn{--mat-radio-checked-ripple-color: #f44336;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: #f44336;--mat-radio-selected-hover-icon-color: #f44336;--mat-radio-selected-icon-color: #f44336;--mat-radio-selected-pressed-icon-color: #f44336;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.white-theme{--mat-slider-active-track-color: white;--mat-slider-focus-handle-color: white;--mat-slider-handle-color: white;--mat-slider-hover-handle-color: white;--mat-slider-focus-state-layer-color: color-mix(in srgb, white 12%, transparent);--mat-slider-hover-state-layer-color: color-mix(in srgb, white 4%, transparent);--mat-slider-inactive-track-color: white;--mat-slider-ripple-color: white;--mat-slider-with-tick-marks-active-container-color: white;--mat-slider-with-tick-marks-inactive-container-color: white;--mat-slider-disabled-active-track-color: rgba(0, 0, 0, .87);--mat-slider-disabled-handle-color: rgba(0, 0, 0, .87);--mat-slider-disabled-inactive-track-color: rgba(0, 0, 0, .87);--mat-slider-label-container-color: #424242;--mat-slider-label-label-text-color: white;--mat-slider-value-indicator-opacity: 1;--mat-slider-with-overlap-handle-outline-color: rgba(0, 0, 0, .87);--mat-slider-with-tick-marks-disabled-container-color: rgba(0, 0, 0, .87)}.white-theme .mat-accent{--mat-slider-active-track-color: #a7a7a7;--mat-slider-focus-handle-color: #a7a7a7;--mat-slider-handle-color: #a7a7a7;--mat-slider-hover-handle-color: #a7a7a7;--mat-slider-focus-state-layer-color: color-mix(in srgb, #a7a7a7 12%, transparent);--mat-slider-hover-state-layer-color: color-mix(in srgb, #a7a7a7 4%, transparent);--mat-slider-inactive-track-color: #a7a7a7;--mat-slider-ripple-color: #a7a7a7;--mat-slider-with-tick-marks-active-container-color: #F8F9F9;--mat-slider-with-tick-marks-inactive-container-color: #a7a7a7}.white-theme .mat-warn{--mat-slider-active-track-color: #f44336;--mat-slider-focus-handle-color: #f44336;--mat-slider-handle-color: #f44336;--mat-slider-hover-handle-color: #f44336;--mat-slider-focus-state-layer-color: color-mix(in srgb, #f44336 12%, transparent);--mat-slider-hover-state-layer-color: color-mix(in srgb, #f44336 4%, transparent);--mat-slider-inactive-track-color: #f44336;--mat-slider-ripple-color: #f44336;--mat-slider-with-tick-marks-active-container-color: white;--mat-slider-with-tick-marks-inactive-container-color: #f44336}.white-theme{--mat-menu-item-label-text-color: rgba(0, 0, 0, .87);--mat-menu-item-icon-color: rgba(0, 0, 0, .87);--mat-menu-item-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-menu-item-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-menu-container-color: white;--mat-menu-divider-color: rgba(0, 0, 0, .12);--mat-list-list-item-label-text-color: rgba(0, 0, 0, .87);--mat-list-list-item-supporting-text-color: rgba(0, 0, 0, .54);--mat-list-list-item-leading-icon-color: rgba(0, 0, 0, .54);--mat-list-list-item-trailing-supporting-text-color: rgba(0, 0, 0, .54);--mat-list-list-item-trailing-icon-color: rgba(0, 0, 0, .54);--mat-list-list-item-selected-trailing-icon-color: rgba(0, 0, 0, .54);--mat-list-list-item-disabled-label-text-color: rgba(0, 0, 0, .87);--mat-list-list-item-disabled-leading-icon-color: rgba(0, 0, 0, .87);--mat-list-list-item-disabled-trailing-icon-color: rgba(0, 0, 0, .87);--mat-list-list-item-hover-label-text-color: rgba(0, 0, 0, .87);--mat-list-list-item-hover-leading-icon-color: rgba(0, 0, 0, .54);--mat-list-list-item-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-list-list-item-hover-state-layer-opacity: .04;--mat-list-list-item-hover-trailing-icon-color: rgba(0, 0, 0, .54);--mat-list-list-item-focus-label-text-color: rgba(0, 0, 0, .87);--mat-list-list-item-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-list-list-item-focus-state-layer-opacity: .12}.white-theme .mdc-list-item__start,.white-theme .mdc-list-item__end{--mat-radio-checked-ripple-color: white;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: white;--mat-radio-selected-hover-icon-color: white;--mat-radio-selected-icon-color: white;--mat-radio-selected-pressed-icon-color: white;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.white-theme .mat-accent .mdc-list-item__start,.white-theme .mat-accent .mdc-list-item__end{--mat-radio-checked-ripple-color: #a7a7a7;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: #a7a7a7;--mat-radio-selected-hover-icon-color: #a7a7a7;--mat-radio-selected-icon-color: #a7a7a7;--mat-radio-selected-pressed-icon-color: #a7a7a7;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.white-theme .mat-warn .mdc-list-item__start,.white-theme .mat-warn .mdc-list-item__end{--mat-radio-checked-ripple-color: #f44336;--mat-radio-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-radio-disabled-selected-icon-color: rgba(0, 0, 0, .87);--mat-radio-disabled-unselected-icon-color: rgba(0, 0, 0, .87);--mat-radio-label-text-color: rgba(0, 0, 0, .87);--mat-radio-ripple-color: rgba(0, 0, 0, .87);--mat-radio-selected-focus-icon-color: #f44336;--mat-radio-selected-hover-icon-color: #f44336;--mat-radio-selected-icon-color: #f44336;--mat-radio-selected-pressed-icon-color: #f44336;--mat-radio-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mat-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-list-option{--mat-checkbox-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-label-text-color: rgba(0, 0, 0, .87);--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: white;--mat-checkbox-selected-focus-icon-color: white;--mat-checkbox-selected-hover-icon-color: white;--mat-checkbox-selected-icon-color: white;--mat-checkbox-selected-pressed-icon-color: white;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: white;--mat-checkbox-selected-hover-state-layer-color: white;--mat-checkbox-selected-pressed-state-layer-color: white;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-list-option.mat-accent{--mat-checkbox-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-label-text-color: rgba(0, 0, 0, .87);--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: #F8F9F9;--mat-checkbox-selected-focus-icon-color: #a7a7a7;--mat-checkbox-selected-hover-icon-color: #a7a7a7;--mat-checkbox-selected-icon-color: #a7a7a7;--mat-checkbox-selected-pressed-icon-color: #a7a7a7;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: #a7a7a7;--mat-checkbox-selected-hover-state-layer-color: #a7a7a7;--mat-checkbox-selected-pressed-state-layer-color: #a7a7a7;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-list-option.mat-warn{--mat-checkbox-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-label-text-color: rgba(0, 0, 0, .87);--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: white;--mat-checkbox-selected-focus-icon-color: #f44336;--mat-checkbox-selected-hover-icon-color: #f44336;--mat-checkbox-selected-icon-color: #f44336;--mat-checkbox-selected-pressed-icon-color: #f44336;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: #f44336;--mat-checkbox-selected-hover-state-layer-color: #f44336;--mat-checkbox-selected-pressed-state-layer-color: #f44336;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected .mdc-list-item__primary-text,.white-theme .mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected .mdc-list-item__start,.white-theme .mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated .mdc-list-item__primary-text,.white-theme .mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated .mdc-list-item__start{color:#fff}.white-theme .mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__start,.white-theme .mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__content,.white-theme .mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__end{opacity:1}.white-theme{--mat-paginator-container-text-color: rgba(0, 0, 0, .87);--mat-paginator-container-background-color: white;--mat-paginator-enabled-icon-color: rgba(0, 0, 0, .54);--mat-paginator-disabled-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}.white-theme .mat-mdc-tab-group,.white-theme .mat-mdc-tab-nav-bar{--mat-tab-disabled-ripple-color: rgba(0, 0, 0, .54);--mat-tab-pagination-icon-color: rgba(0, 0, 0, .87);--mat-tab-inactive-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-label-text-color: white;--mat-tab-active-ripple-color: white;--mat-tab-inactive-ripple-color: white;--mat-tab-inactive-focus-label-text-color: rgba(0, 0, 0, .54);--mat-tab-inactive-hover-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-focus-label-text-color: white;--mat-tab-active-hover-label-text-color: white;--mat-tab-active-focus-indicator-color: white;--mat-tab-active-hover-indicator-color: white;--mat-tab-active-indicator-color: white}.white-theme .mat-mdc-tab-group.mat-accent,.white-theme .mat-mdc-tab-nav-bar.mat-accent{--mat-tab-disabled-ripple-color: rgba(0, 0, 0, .54);--mat-tab-pagination-icon-color: rgba(0, 0, 0, .87);--mat-tab-inactive-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-label-text-color: #a7a7a7;--mat-tab-active-ripple-color: #a7a7a7;--mat-tab-inactive-ripple-color: #a7a7a7;--mat-tab-inactive-focus-label-text-color: rgba(0, 0, 0, .54);--mat-tab-inactive-hover-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-focus-label-text-color: #a7a7a7;--mat-tab-active-hover-label-text-color: #a7a7a7;--mat-tab-active-focus-indicator-color: #a7a7a7;--mat-tab-active-hover-indicator-color: #a7a7a7;--mat-tab-active-indicator-color: #a7a7a7}.white-theme .mat-mdc-tab-group.mat-warn,.white-theme .mat-mdc-tab-nav-bar.mat-warn{--mat-tab-disabled-ripple-color: rgba(0, 0, 0, .54);--mat-tab-pagination-icon-color: rgba(0, 0, 0, .87);--mat-tab-inactive-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-label-text-color: #f44336;--mat-tab-active-ripple-color: #f44336;--mat-tab-inactive-ripple-color: #f44336;--mat-tab-inactive-focus-label-text-color: rgba(0, 0, 0, .54);--mat-tab-inactive-hover-label-text-color: rgba(0, 0, 0, .54);--mat-tab-active-focus-label-text-color: #f44336;--mat-tab-active-hover-label-text-color: #f44336;--mat-tab-active-focus-indicator-color: #f44336;--mat-tab-active-hover-indicator-color: #f44336;--mat-tab-active-indicator-color: #f44336}.white-theme .mat-mdc-tab-group.mat-background-primary,.white-theme .mat-mdc-tab-nav-bar.mat-background-primary{--mat-tab-background-color: white;--mat-tab-foreground-color: white}.white-theme .mat-mdc-tab-group.mat-background-accent,.white-theme .mat-mdc-tab-nav-bar.mat-background-accent{--mat-tab-background-color: #a7a7a7;--mat-tab-foreground-color: #F8F9F9}.white-theme .mat-mdc-tab-group.mat-background-warn,.white-theme .mat-mdc-tab-nav-bar.mat-background-warn{--mat-tab-background-color: #f44336;--mat-tab-foreground-color: white}.white-theme{--mat-checkbox-disabled-label-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-label-text-color: rgba(0, 0, 0, .87);--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: #F8F9F9;--mat-checkbox-selected-focus-icon-color: #a7a7a7;--mat-checkbox-selected-hover-icon-color: #a7a7a7;--mat-checkbox-selected-icon-color: #a7a7a7;--mat-checkbox-selected-pressed-icon-color: #a7a7a7;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: #a7a7a7;--mat-checkbox-selected-hover-state-layer-color: #a7a7a7;--mat-checkbox-selected-pressed-state-layer-color: #a7a7a7;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-checkbox.mat-primary{--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: white;--mat-checkbox-selected-focus-icon-color: white;--mat-checkbox-selected-hover-icon-color: white;--mat-checkbox-selected-icon-color: white;--mat-checkbox-selected-pressed-icon-color: white;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: white;--mat-checkbox-selected-hover-state-layer-color: white;--mat-checkbox-selected-pressed-state-layer-color: white;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-checkbox.mat-warn{--mat-checkbox-disabled-selected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-disabled-unselected-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-checkbox-selected-checkmark-color: white;--mat-checkbox-selected-focus-icon-color: #f44336;--mat-checkbox-selected-hover-icon-color: #f44336;--mat-checkbox-selected-icon-color: #f44336;--mat-checkbox-selected-pressed-icon-color: #f44336;--mat-checkbox-unselected-focus-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-icon-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-checkbox-selected-focus-state-layer-color: #f44336;--mat-checkbox-selected-hover-state-layer-color: #f44336;--mat-checkbox-selected-pressed-state-layer-color: #f44336;--mat-checkbox-unselected-focus-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-hover-state-layer-color: rgba(0, 0, 0, .87);--mat-checkbox-unselected-pressed-state-layer-color: rgba(0, 0, 0, .87)}.white-theme{--mat-button-filled-container-color: white;--mat-button-filled-disabled-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-filled-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-filled-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-button-filled-focus-state-layer-opacity: .12;--mat-button-filled-hover-state-layer-opacity: .04;--mat-button-filled-label-text-color: rgba(0, 0, 0, .87);--mat-button-filled-pressed-state-layer-opacity: .12;--mat-button-filled-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-filled-state-layer-color: rgba(0, 0, 0, .87);--mat-button-outlined-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-outlined-disabled-outline-color: rgba(0, 0, 0, .12);--mat-button-outlined-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-button-outlined-focus-state-layer-opacity: .12;--mat-button-outlined-hover-state-layer-opacity: .04;--mat-button-outlined-label-text-color: rgba(0, 0, 0, .87);--mat-button-outlined-outline-color: rgba(0, 0, 0, .12);--mat-button-outlined-pressed-state-layer-opacity: .12;--mat-button-outlined-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-outlined-state-layer-color: rgba(0, 0, 0, .87);--mat-button-protected-container-color: white;--mat-button-protected-disabled-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-protected-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-protected-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-button-protected-focus-state-layer-opacity: .12;--mat-button-protected-hover-state-layer-opacity: .04;--mat-button-protected-label-text-color: rgba(0, 0, 0, .87);--mat-button-protected-pressed-state-layer-opacity: .12;--mat-button-protected-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-protected-state-layer-color: rgba(0, 0, 0, .87);--mat-button-text-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-text-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-button-text-focus-state-layer-opacity: .12;--mat-button-text-hover-state-layer-opacity: .04;--mat-button-text-label-text-color: rgba(0, 0, 0, .87);--mat-button-text-pressed-state-layer-opacity: .12;--mat-button-text-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-text-state-layer-color: rgba(0, 0, 0, .87);--mat-button-tonal-container-color: white;--mat-button-tonal-disabled-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-tonal-disabled-label-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-tonal-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-button-tonal-focus-state-layer-opacity: .12;--mat-button-tonal-hover-state-layer-opacity: .04;--mat-button-tonal-label-text-color: rgba(0, 0, 0, .87);--mat-button-tonal-pressed-state-layer-opacity: .12;--mat-button-tonal-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-tonal-state-layer-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-button.mat-primary,.white-theme .mat-mdc-unelevated-button.mat-primary,.white-theme .mat-mdc-raised-button.mat-primary,.white-theme .mat-mdc-outlined-button.mat-primary,.white-theme .mat-tonal-button.mat-primary{--mat-button-filled-container-color: white;--mat-button-filled-label-text-color: white;--mat-button-filled-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-filled-state-layer-color: white;--mat-button-outlined-label-text-color: white;--mat-button-outlined-outline-color: rgba(0, 0, 0, .12);--mat-button-outlined-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-outlined-state-layer-color: white;--mat-button-protected-container-color: white;--mat-button-protected-label-text-color: white;--mat-button-protected-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-protected-state-layer-color: white;--mat-button-text-label-text-color: white;--mat-button-text-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-text-state-layer-color: white;--mat-button-tonal-container-color: white;--mat-button-tonal-label-text-color: white;--mat-button-tonal-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-tonal-state-layer-color: white}.white-theme .mat-mdc-button.mat-accent,.white-theme .mat-mdc-unelevated-button.mat-accent,.white-theme .mat-mdc-raised-button.mat-accent,.white-theme .mat-mdc-outlined-button.mat-accent,.white-theme .mat-tonal-button.mat-accent{--mat-button-filled-container-color: #a7a7a7;--mat-button-filled-label-text-color: #F8F9F9;--mat-button-filled-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-button-filled-state-layer-color: #F8F9F9;--mat-button-outlined-label-text-color: #a7a7a7;--mat-button-outlined-outline-color: rgba(0, 0, 0, .12);--mat-button-outlined-ripple-color: color-mix(in srgb, #a7a7a7 12%, transparent);--mat-button-outlined-state-layer-color: #a7a7a7;--mat-button-protected-container-color: #a7a7a7;--mat-button-protected-label-text-color: #F8F9F9;--mat-button-protected-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-button-protected-state-layer-color: #F8F9F9;--mat-button-text-label-text-color: #a7a7a7;--mat-button-text-ripple-color: color-mix(in srgb, #a7a7a7 12%, transparent);--mat-button-text-state-layer-color: #a7a7a7;--mat-button-tonal-container-color: #a7a7a7;--mat-button-tonal-label-text-color: #F8F9F9;--mat-button-tonal-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-button-tonal-state-layer-color: #F8F9F9}.white-theme .mat-mdc-button.mat-warn,.white-theme .mat-mdc-unelevated-button.mat-warn,.white-theme .mat-mdc-raised-button.mat-warn,.white-theme .mat-mdc-outlined-button.mat-warn,.white-theme .mat-tonal-button.mat-warn{--mat-button-filled-container-color: #f44336;--mat-button-filled-label-text-color: white;--mat-button-filled-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-filled-state-layer-color: white;--mat-button-outlined-label-text-color: #f44336;--mat-button-outlined-outline-color: rgba(0, 0, 0, .12);--mat-button-outlined-ripple-color: color-mix(in srgb, #f44336 12%, transparent);--mat-button-outlined-state-layer-color: #f44336;--mat-button-protected-container-color: #f44336;--mat-button-protected-label-text-color: white;--mat-button-protected-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-protected-state-layer-color: white;--mat-button-text-label-text-color: #f44336;--mat-button-text-ripple-color: color-mix(in srgb, #f44336 12%, transparent);--mat-button-text-state-layer-color: #f44336;--mat-button-tonal-container-color: #f44336;--mat-button-tonal-label-text-color: white;--mat-button-tonal-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-button-tonal-state-layer-color: white}.white-theme{--mat-icon-button-disabled-icon-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-icon-button-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-icon-button-focus-state-layer-opacity: .12;--mat-icon-button-hover-state-layer-opacity: .04;--mat-icon-button-icon-color: inherit;--mat-icon-button-pressed-state-layer-opacity: .12;--mat-icon-button-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-icon-button-state-layer-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-icon-button.mat-primary{--mat-icon-button-icon-color: white;--mat-icon-button-state-layer-color: white;--mat-icon-button-ripple-color: color-mix(in srgb, white 12%, transparent)}.white-theme .mat-mdc-icon-button.mat-accent{--mat-icon-button-icon-color: #a7a7a7;--mat-icon-button-state-layer-color: #a7a7a7;--mat-icon-button-ripple-color: color-mix(in srgb, #a7a7a7 12%, transparent)}.white-theme .mat-mdc-icon-button.mat-warn{--mat-icon-button-icon-color: #f44336;--mat-icon-button-state-layer-color: #f44336;--mat-icon-button-ripple-color: color-mix(in srgb, #f44336 12%, transparent)}.white-theme{--mat-fab-container-color: white;--mat-fab-disabled-state-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-fab-disabled-state-foreground-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-fab-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-fab-focus-state-layer-opacity: .12;--mat-fab-foreground-color: rgba(0, 0, 0, .87);--mat-fab-hover-state-layer-opacity: .04;--mat-fab-pressed-state-layer-opacity: .12;--mat-fab-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-fab-small-container-color: white;--mat-fab-small-disabled-state-container-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-fab-small-disabled-state-foreground-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-fab-small-disabled-state-layer-color: rgba(0, 0, 0, .54);--mat-fab-small-focus-state-layer-opacity: .12;--mat-fab-small-foreground-color: rgba(0, 0, 0, .87);--mat-fab-small-hover-state-layer-opacity: .04;--mat-fab-small-pressed-state-layer-opacity: .12;--mat-fab-small-ripple-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-fab-small-state-layer-color: rgba(0, 0, 0, .87);--mat-fab-state-layer-color: rgba(0, 0, 0, .87)}.white-theme .mat-mdc-fab.mat-primary,.white-theme .mat-mdc-mini-fab.mat-primary{--mat-fab-container-color: white;--mat-fab-foreground-color: white;--mat-fab-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-fab-small-container-color: white;--mat-fab-small-foreground-color: white;--mat-fab-small-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-fab-small-state-layer-color: white;--mat-fab-state-layer-color: white}.white-theme .mat-mdc-fab.mat-accent,.white-theme .mat-mdc-mini-fab.mat-accent{--mat-fab-container-color: #a7a7a7;--mat-fab-foreground-color: #F8F9F9;--mat-fab-ripple-color: color-mix(in srgb, #a7a7a7 12%, transparent);--mat-fab-small-container-color: #a7a7a7;--mat-fab-small-foreground-color: #F8F9F9;--mat-fab-small-ripple-color: color-mix(in srgb, #F8F9F9 12%, transparent);--mat-fab-small-state-layer-color: #F8F9F9;--mat-fab-state-layer-color: #F8F9F9}.white-theme .mat-mdc-fab.mat-warn,.white-theme .mat-mdc-mini-fab.mat-warn{--mat-fab-container-color: #f44336;--mat-fab-foreground-color: white;--mat-fab-ripple-color: color-mix(in srgb, #f44336 12%, transparent);--mat-fab-small-container-color: #f44336;--mat-fab-small-foreground-color: white;--mat-fab-small-ripple-color: color-mix(in srgb, white 12%, transparent);--mat-fab-small-state-layer-color: white;--mat-fab-state-layer-color: white}.white-theme{--mat-snack-bar-container-color: #424242;--mat-snack-bar-supporting-text-color: white;--mat-table-background-color: white;--mat-table-header-headline-color: rgba(0, 0, 0, .87);--mat-table-row-item-label-text-color: rgba(0, 0, 0, .87);--mat-table-row-item-outline-color: rgba(0, 0, 0, .12);--mat-progress-spinner-active-indicator-color: white}.white-theme .mat-accent{--mat-progress-spinner-active-indicator-color: #a7a7a7}.white-theme .mat-warn{--mat-progress-spinner-active-indicator-color: #f44336}.white-theme{--mat-badge-background-color: white;--mat-badge-text-color: white;--mat-badge-disabled-state-background-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-badge-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent)}.white-theme .mat-badge-accent{--mat-badge-background-color: #a7a7a7;--mat-badge-text-color: #F8F9F9}.white-theme .mat-badge-warn{--mat-badge-background-color: #f44336;--mat-badge-text-color: white}.white-theme{--mat-bottom-sheet-container-text-color: rgba(0, 0, 0, .87);--mat-bottom-sheet-container-background-color: white;--mat-button-toggle-background-color: white;--mat-button-toggle-disabled-selected-state-background-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-toggle-disabled-selected-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-toggle-disabled-state-background-color: white;--mat-button-toggle-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-toggle-divider-color: rgba(0, 0, 0, .12);--mat-button-toggle-legacy-disabled-selected-state-background-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-toggle-legacy-disabled-state-background-color: white;--mat-button-toggle-legacy-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-button-toggle-legacy-selected-state-background-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-toggle-legacy-selected-state-text-color: rgba(0, 0, 0, .87);--mat-button-toggle-legacy-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-toggle-legacy-text-color: rgba(0, 0, 0, .87);--mat-button-toggle-selected-state-background-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-button-toggle-selected-state-text-color: rgba(0, 0, 0, .87);--mat-button-toggle-state-layer-color: rgba(0, 0, 0, .87);--mat-button-toggle-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-date-in-range-state-background-color: color-mix(in srgb, white 20%, transparent);--mat-datepicker-calendar-date-in-comparison-range-state-background-color: color-mix(in srgb, #a7a7a7 20%, transparent);--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: rgb(69.5241935484, 163.4758064516, 93.9516129032);--mat-datepicker-calendar-date-selected-state-text-color: white;--mat-datepicker-calendar-date-selected-state-background-color: white;--mat-datepicker-calendar-date-selected-disabled-state-background-color: color-mix(in srgb, white 38%, transparent);--mat-datepicker-calendar-date-today-selected-state-outline-color: white;--mat-datepicker-calendar-date-focus-state-background-color: color-mix(in srgb, white 12%, transparent);--mat-datepicker-calendar-date-hover-state-background-color: color-mix(in srgb, white 4%, transparent);--mat-datepicker-toggle-active-state-icon-color: white;--mat-datepicker-toggle-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-body-label-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-period-button-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-period-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-navigation-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-header-divider-color: rgba(0, 0, 0, .12);--mat-datepicker-calendar-header-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-disabled-state-outline-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-date-outline-color: transparent;--mat-datepicker-calendar-date-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-preview-state-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-range-input-separator-color: rgba(0, 0, 0, .87);--mat-datepicker-range-input-disabled-state-separator-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-range-input-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-container-background-color: white;--mat-datepicker-calendar-container-text-color: rgba(0, 0, 0, .87)}.white-theme .mat-datepicker-content.mat-accent,.white-theme .mat-datepicker-toggle-active.mat-accent{--mat-datepicker-calendar-date-in-range-state-background-color: color-mix(in srgb, #a7a7a7 20%, transparent);--mat-datepicker-calendar-date-in-comparison-range-state-background-color: color-mix(in srgb, #a7a7a7 20%, transparent);--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: rgb(69.5241935484, 163.4758064516, 93.9516129032);--mat-datepicker-calendar-date-selected-state-text-color: #F8F9F9;--mat-datepicker-calendar-date-selected-state-background-color: #a7a7a7;--mat-datepicker-calendar-date-selected-disabled-state-background-color: color-mix(in srgb, #a7a7a7 38%, transparent);--mat-datepicker-calendar-date-today-selected-state-outline-color: #F8F9F9;--mat-datepicker-calendar-date-focus-state-background-color: color-mix(in srgb, #a7a7a7 12%, transparent);--mat-datepicker-calendar-date-hover-state-background-color: color-mix(in srgb, #a7a7a7 4%, transparent);--mat-datepicker-toggle-active-state-icon-color: #a7a7a7;--mat-datepicker-toggle-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-body-label-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-period-button-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-period-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-navigation-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-header-divider-color: rgba(0, 0, 0, .12);--mat-datepicker-calendar-header-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-disabled-state-outline-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-date-outline-color: transparent;--mat-datepicker-calendar-date-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-preview-state-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-range-input-separator-color: rgba(0, 0, 0, .87);--mat-datepicker-range-input-disabled-state-separator-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-range-input-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-container-background-color: white;--mat-datepicker-calendar-container-text-color: rgba(0, 0, 0, .87)}.white-theme .mat-datepicker-content.mat-warn,.white-theme .mat-datepicker-toggle-active.mat-warn{--mat-datepicker-calendar-date-in-range-state-background-color: color-mix(in srgb, #f44336 20%, transparent);--mat-datepicker-calendar-date-in-comparison-range-state-background-color: color-mix(in srgb, #a7a7a7 20%, transparent);--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: rgb(69.5241935484, 163.4758064516, 93.9516129032);--mat-datepicker-calendar-date-selected-state-text-color: white;--mat-datepicker-calendar-date-selected-state-background-color: #f44336;--mat-datepicker-calendar-date-selected-disabled-state-background-color: color-mix(in srgb, #f44336 38%, transparent);--mat-datepicker-calendar-date-today-selected-state-outline-color: white;--mat-datepicker-calendar-date-focus-state-background-color: color-mix(in srgb, #f44336 12%, transparent);--mat-datepicker-calendar-date-hover-state-background-color: color-mix(in srgb, #f44336 4%, transparent);--mat-datepicker-toggle-active-state-icon-color: #f44336;--mat-datepicker-toggle-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-body-label-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-period-button-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-period-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-navigation-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-header-divider-color: rgba(0, 0, 0, .12);--mat-datepicker-calendar-header-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-disabled-state-outline-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-date-outline-color: transparent;--mat-datepicker-calendar-date-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-date-preview-state-outline-color: rgba(0, 0, 0, .54);--mat-datepicker-range-input-separator-color: rgba(0, 0, 0, .87);--mat-datepicker-range-input-disabled-state-separator-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-range-input-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-datepicker-calendar-container-background-color: white;--mat-datepicker-calendar-container-text-color: rgba(0, 0, 0, .87)}.white-theme{--mat-divider-color: rgba(0, 0, 0, .12);--mat-expansion-container-background-color: white;--mat-expansion-container-text-color: rgba(0, 0, 0, .87);--mat-expansion-actions-divider-color: rgba(0, 0, 0, .12);--mat-expansion-header-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-expansion-header-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-expansion-header-disabled-state-text-color: color-mix(in srgb, rgba(0, 0, 0, .87) 38%, transparent);--mat-expansion-header-text-color: rgba(0, 0, 0, .87);--mat-expansion-header-description-color: rgba(0, 0, 0, .54);--mat-expansion-header-indicator-color: rgba(0, 0, 0, .54);--mat-icon-color: inherit}.white-theme .mat-icon.mat-primary{--mat-icon-color: white}.white-theme .mat-icon.mat-accent{--mat-icon-color: #a7a7a7}.white-theme .mat-icon.mat-warn{--mat-icon-color: #f44336}.white-theme{--mat-sidenav-container-divider-color: rgba(0, 0, 0, .12);--mat-sidenav-container-background-color: white;--mat-sidenav-container-text-color: rgba(0, 0, 0, .87);--mat-sidenav-content-background-color: #fafafa;--mat-sidenav-content-text-color: rgba(0, 0, 0, .87);--mat-sidenav-scrim-color: rgba(0, 0, 0, .6);--mat-stepper-header-icon-foreground-color: white;--mat-stepper-header-selected-state-icon-background-color: white;--mat-stepper-header-selected-state-icon-foreground-color: white;--mat-stepper-header-done-state-icon-background-color: white;--mat-stepper-header-done-state-icon-foreground-color: white;--mat-stepper-header-edit-state-icon-background-color: white;--mat-stepper-header-edit-state-icon-foreground-color: white;--mat-stepper-container-color: white;--mat-stepper-line-color: rgba(0, 0, 0, .12);--mat-stepper-header-hover-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 4%, transparent);--mat-stepper-header-focus-state-layer-color: color-mix(in srgb, rgba(0, 0, 0, .87) 12%, transparent);--mat-stepper-header-label-text-color: rgba(0, 0, 0, .54);--mat-stepper-header-optional-label-text-color: rgba(0, 0, 0, .54);--mat-stepper-header-selected-state-label-text-color: rgba(0, 0, 0, .87);--mat-stepper-header-error-state-label-text-color: #f44336;--mat-stepper-header-icon-background-color: rgba(0, 0, 0, .54);--mat-stepper-header-error-state-icon-foreground-color: #f44336;--mat-stepper-header-error-state-icon-background-color: transparent}.white-theme .mat-step-header.mat-accent{--mat-stepper-header-icon-foreground-color: #F8F9F9;--mat-stepper-header-selected-state-icon-background-color: #a7a7a7;--mat-stepper-header-selected-state-icon-foreground-color: #F8F9F9;--mat-stepper-header-done-state-icon-background-color: #a7a7a7;--mat-stepper-header-done-state-icon-foreground-color: #F8F9F9;--mat-stepper-header-edit-state-icon-background-color: #a7a7a7;--mat-stepper-header-edit-state-icon-foreground-color: #F8F9F9}.white-theme .mat-step-header.mat-warn{--mat-stepper-header-icon-foreground-color: white;--mat-stepper-header-selected-state-icon-background-color: #f44336;--mat-stepper-header-selected-state-icon-foreground-color: white;--mat-stepper-header-done-state-icon-background-color: #f44336;--mat-stepper-header-done-state-icon-foreground-color: white;--mat-stepper-header-edit-state-icon-background-color: #f44336;--mat-stepper-header-edit-state-icon-foreground-color: white}.white-theme{--mat-sort-arrow-color: rgba(0, 0, 0, .87);--mat-toolbar-container-background-color: white;--mat-toolbar-container-text-color: rgba(0, 0, 0, .87)}.white-theme .mat-toolbar.mat-primary{--mat-toolbar-container-background-color: white;--mat-toolbar-container-text-color: white}.white-theme .mat-toolbar.mat-accent{--mat-toolbar-container-background-color: #a7a7a7;--mat-toolbar-container-text-color: #F8F9F9}.white-theme .mat-toolbar.mat-warn{--mat-toolbar-container-background-color: #f44336;--mat-toolbar-container-text-color: white}.white-theme{--mat-tree-container-background-color: white;--mat-tree-node-text-color: rgba(0, 0, 0, .87);--mat-timepicker-container-background-color: white} diff --git a/static/skywire-manager-src/src/app/app-routing.module.ts b/static/skywire-manager-src/src/app/app-routing.module.ts index 779359cab3..27833b9ea9 100644 --- a/static/skywire-manager-src/src/app/app-routing.module.ts +++ b/static/skywire-manager-src/src/app/app-routing.module.ts @@ -9,10 +9,15 @@ import { AuthGuardService } from './services/auth-guard.service'; import { SettingsComponent } from './components/pages/settings/settings.component'; import { RoutingComponent } from './components/pages/node/routing/routing.component'; import { AppsComponent } from './components/pages/node/apps/apps.component'; +import { NodeResourcesComponent } from './components/pages/node/node-resources/node-resources.component'; +import { SkychatComponent } from './components/pages/node/skychat/skychat.component'; import { AllTransportsComponent } from './components/pages/node/routing/all-transports/all-transports.component'; import { AllRoutesComponent } from './components/pages/node/routing/all-routes/all-routes.component'; import { NodeRewardsComponent } from './components/pages/node/rewards/node-rewards.component'; import { ServicesHealthComponent } from './components/pages/services-health/services-health.component'; +import { NetworkViewComponent } from './components/pages/network-view/network-view.component'; +import { MultiVisorResourcesComponent } from './components/pages/multi-visor-resources/multi-visor-resources.component'; +import { NetworkTransportsComponent } from './components/pages/network-transports/network-transports.component'; import { DmsgSettingsComponent } from './components/pages/dmsg-settings/dmsg-settings.component'; import { AllAppsComponent } from './components/pages/node/apps/all-apps/all-apps.component'; import { NodeInfoComponent } from './components/pages/node/node-info/node-info.component'; @@ -74,9 +79,24 @@ const routes: Routes = [ path: 'services-health', component: ServicesHealthComponent }, + { + path: 'network', + component: NetworkViewComponent + }, + { + path: 'resources', + component: MultiVisorResourcesComponent + }, + { + path: 'transports', + component: NetworkTransportsComponent + }, + // /nodes/dmsg-settings was the old home-level DMSG page (local + // visor only). DMSG is a per-visor tab now — bounce the legacy + // URL to the home node list rather than 404. { path: 'dmsg-settings', - component: DmsgSettingsComponent + redirectTo: 'list/1' }, { path: ':key', @@ -84,7 +104,7 @@ const routes: Routes = [ children: [ { path: '', - redirectTo: 'routing', + redirectTo: 'info', pathMatch: 'full' }, { @@ -99,23 +119,36 @@ const routes: Routes = [ path: 'apps', component: AppsComponent }, + { + path: 'resources', + component: NodeResourcesComponent + }, + { + path: 'chat', + component: SkychatComponent + }, + { + path: 'dmsg', + component: DmsgSettingsComponent + }, { path: 'transports', - redirectTo: 'transports/1', - pathMatch: 'full' + component: AllTransportsComponent }, + // Legacy paginated URLs — bounce to the new tab. Old + // bookmarks (/.../transports/1, /.../routes/1) keep working. { path: 'transports/:page', - component: AllTransportsComponent + redirectTo: 'transports' }, { path: 'routes', - redirectTo: 'routes/1', + redirectTo: 'routing', pathMatch: 'full' }, { path: 'routes/:page', - component: AllRoutesComponent + redirectTo: 'routing' }, { path: 'rewards', diff --git a/static/skywire-manager-src/src/app/app.datatypes.ts b/static/skywire-manager-src/src/app/app.datatypes.ts index ca4ddcc89d..836fd16637 100644 --- a/static/skywire-manager-src/src/app/app.datatypes.ts +++ b/static/skywire-manager-src/src/app/app.datatypes.ts @@ -55,6 +55,10 @@ export interface Transport { type: string; recv: number|null; sent: number|null; + // Smoothed transport-level RTT in milliseconds. Populated from + // the visor's TransportSummary.latency_ms field. 0/undefined = + // no measurement yet (e.g., dmsg or freshly added transport). + latencyMs?: number; // Calculated internally isPersistent?: boolean; diff --git a/static/skywire-manager-src/src/app/app.module.ts b/static/skywire-manager-src/src/app/app.module.ts index 2851dce869..1610807259 100644 --- a/static/skywire-manager-src/src/app/app.module.ts +++ b/static/skywire-manager-src/src/app/app.module.ts @@ -21,6 +21,7 @@ import { MatMenuModule } from '@angular/material/menu'; import { MatProgressBarModule } from '@angular/material/progress-bar'; import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; import { MatSelectModule } from '@angular/material/select'; +import { MatSlideToggleModule } from '@angular/material/slide-toggle'; import { MatSnackBarModule, MAT_SNACK_BAR_DEFAULT_OPTIONS } from '@angular/material/snack-bar'; import { MatTabsModule } from '@angular/material/tabs'; import { MatTooltipModule } from '@angular/material/tooltip'; @@ -70,6 +71,12 @@ import { SelectLanguageComponent } from './components/layout/select-language/sel import { LangButtonComponent } from './components/layout/lang-button/lang-button.component'; import { TruncatedTextComponent } from './components/layout/truncated-text/truncated-text.component'; import { NodeInfoContentComponent } from './components/pages/node/node-info/node-info-content/node-info-content.component'; +import { ResourceMonitorComponent } from './components/pages/node/resource-monitor/resource-monitor.component'; +import { NodeResourcesComponent } from './components/pages/node/node-resources/node-resources.component'; +import { SkychatComponent } from './components/pages/node/skychat/skychat.component'; +import { NetworkViewComponent } from './components/pages/network-view/network-view.component'; +import { MultiVisorResourcesComponent } from './components/pages/multi-visor-resources/multi-visor-resources.component'; +import { NetworkTransportsComponent } from './components/pages/network-transports/network-transports.component'; import { NodeInfoComponent } from './components/pages/node/node-info/node-info.component'; import { SelectOptionComponent } from './components/layout/select-option/select-option.component'; import { SkysocksSettingsComponent } from './components/pages/node/apps/node-apps/skysocks-settings/skysocks-settings.component'; @@ -161,6 +168,12 @@ const globalRippleConfig: RippleGlobalOptions = { LangButtonComponent, TruncatedTextComponent, NodeInfoContentComponent, + ResourceMonitorComponent, + NodeResourcesComponent, + SkychatComponent, + NetworkViewComponent, + MultiVisorResourcesComponent, + NetworkTransportsComponent, NodeInfoComponent, SelectOptionComponent, SkysocksSettingsComponent, @@ -210,7 +223,8 @@ const globalRippleConfig: RippleGlobalOptions = { MatProgressBarModule, MatSelectModule, MatProgressSpinnerModule, - MatCheckboxModule], providers: [ + MatCheckboxModule, + MatSlideToggleModule], providers: [ ClipboardService, { provide: MAT_SNACK_BAR_DEFAULT_OPTIONS, useValue: { duration: 3000, verticalPosition: 'top' } }, { provide: MAT_DIALOG_DEFAULT_OPTIONS, useValue: { width: '600px', hasBackdrop: true } }, diff --git a/static/skywire-manager-src/src/app/components/layout/top-bar/top-bar.component.html b/static/skywire-manager-src/src/app/components/layout/top-bar/top-bar.component.html index 0632e3061b..3724150204 100644 --- a/static/skywire-manager-src/src/app/components/layout/top-bar/top-bar.component.html +++ b/static/skywire-manager-src/src/app/components/layout/top-bar/top-bar.component.html @@ -15,11 +15,12 @@ }
- @if (!titleParts || titleParts.length < 2) { - - } - @if (titleParts && titleParts.length >= 2) { + @if (pageHeaderLabel) { + {{ pageHeaderLabel }} + } @else if (titleParts && titleParts.length >= 2) { {{ titleParts[titleParts.length - 1] | translate }} + } @else { + }
@@ -73,9 +74,20 @@
} @if (!showVpnInfo) { - - {{ titleParts[titleParts.length - 1] | translate }} - + @if (pageHeaderLabel || pageHeaderIdentifier) { + + @if (pageHeaderLabel) { + {{ pageHeaderLabel }} + } + @if (pageHeaderIdentifier) { + + } + + } @else { + + {{ titleParts[titleParts.length - 1] | translate }} + + } } @if (showVpnInfo) { @@ -85,6 +97,9 @@
@for (tabData of tabsData; track tabData; let i = $index) { + @if (i > 0 && tabsData[i - 1].group !== tabData.group) { + + }
diff --git a/static/skywire-manager-src/src/app/components/layout/top-bar/top-bar.component.scss b/static/skywire-manager-src/src/app/components/layout/top-bar/top-bar.component.scss index a1856c2ef4..0f8633dbe7 100644 --- a/static/skywire-manager-src/src/app/components/layout/top-bar/top-bar.component.scss +++ b/static/skywire-manager-src/src/app/components/layout/top-bar/top-bar.component.scss @@ -58,12 +58,35 @@ $top-bar-height: 56px; .lower-container { display: flex; + flex-wrap: nowrap; + align-items: center; + gap: 2px; + + // Visual divider between tab groups (e.g. "this hypervisor" + // tabs vs network-wide tabs on the home top-bar). Inserted + // dynamically by top-bar.component.html when the `group` + // marker on TabButtonData changes between adjacent tabs. + .tab-group-separator { + width: 1px; + height: 20px; + background: rgba(255, 255, 255, 0.2); + margin: 0 8px; + align-self: center; + } + + // Each tab is wrapped in its own
. Force them to size by + // their content — without this, an unexplained gap can appear + // mid-strip on some viewports (likely a flex-item growth quirk). + > div { + flex: 0 0 auto; + min-width: 0; + } .tab-button { color: $white; border-radius: $mat-dialog-radius; opacity: 0.5; - margin-right: 2px; + margin-right: 0; text-decoration: none; height: $header-buttons-height; display: flex; @@ -331,3 +354,34 @@ $top-bar-height: 56px; font-size: $font-size-smaller; } } + + +// Page header (visor identity replaces title text). Used by the +// node-detail page so the visor's label + PK persist on every tab. +.page-header { + display: flex; + flex-direction: column; + align-items: flex-start; + line-height: 1.1; + gap: 2px; + min-width: 0; +} +.page-header-label { + font-size: 18px; + font-weight: 500; + letter-spacing: 0.2px; +} +.page-header-id { + display: inline-block; + font-size: 12px; + opacity: 0.65; + font-family: monospace; + max-width: 100%; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.page-header-label-mobile { + font-weight: 500; + font-size: 14px; +} diff --git a/static/skywire-manager-src/src/app/components/layout/top-bar/top-bar.component.ts b/static/skywire-manager-src/src/app/components/layout/top-bar/top-bar.component.ts index 6c99293338..8ee7e5fa70 100644 --- a/static/skywire-manager-src/src/app/components/layout/top-bar/top-bar.component.ts +++ b/static/skywire-manager-src/src/app/components/layout/top-bar/top-bar.component.ts @@ -29,6 +29,14 @@ export interface TabButtonData { * If set, clicking the tab opens this URL in a new window instead of navigating via the router. */ externalUrl?: string; + /** + * Optional grouping marker. The home top-bar uses 'local' vs + * 'network' to separate tabs that summarize the hypervisor's own + * visors from tabs that summarize the wider deployment. + * Consecutive tabs with the same group render as a cluster; a + * change in group inserts a visual separator in the tab strip. + */ + group?: string; } /** @@ -97,6 +105,15 @@ export class TopBarComponent implements OnInit, OnDestroy { * Elements to show in the title. The idea is to show the path of the current page. */ @Input() titleParts: string[]; + /** + * When set, replaces the translated titleParts text with a structured + * "label + identifier" pair — used by the visor detail page so the + * visor's identity (label + PK) stays visible across every tab. + * label renders large in the title slot; identifier renders below + * it as a copy-to-clipboard text. Either can be empty. + */ + @Input() pageHeaderLabel?: string; + @Input() pageHeaderIdentifier?: string; /** * List with the tabs to show. */ diff --git a/static/skywire-manager-src/src/app/components/pages/dmsg-settings/dmsg-settings.component.html b/static/skywire-manager-src/src/app/components/pages/dmsg-settings/dmsg-settings.component.html index 0e9bd740e9..ef8f1918d6 100644 --- a/static/skywire-manager-src/src/app/components/pages/dmsg-settings/dmsg-settings.component.html +++ b/static/skywire-manager-src/src/app/components/pages/dmsg-settings/dmsg-settings.component.html @@ -1,125 +1,114 @@ -
-
- -
+
+ @if (loading && !sessions) { +
+ + {{ 'dmsg-settings.loading' | translate }} +
+ } -
- @if (loading && !sessions) { -
- - {{ 'dmsg-settings.loading' | translate }} -
- } + @if (error && !sessions) { +
+ error_outline + {{ error }} +
+ } - @if (error && !sessions) { -
- error_outline - {{ error }} -
- } + @if (sessions) { + +
+ hub + {{ 'dmsg-settings.summary' | translate }} + @if (lastUpdated) { + + — {{ 'dmsg-settings.last-updated' | translate }}: {{ lastUpdated | date: 'HH:mm:ss' }} + + } +
- @if (sessions) { - -
- hub - {{ 'dmsg-settings.summary' | translate }} - @if (lastUpdated) { - - — {{ 'dmsg-settings.last-updated' | translate }}: {{ lastUpdated | date: 'HH:mm:ss' }} - - } + +
+
+
- -
-
- -
+ | - | +
+ + + +
+
-
- - - -
+ + @if (lastActionResult) { +
+ {{ lastActionLabel }}: + {{ 'dmsg-settings.result-total' | translate }} + {{ lastActionResult.total }}, + {{ 'dmsg-settings.result-already' | translate }} + {{ lastActionResult.already_connected }}, + {{ 'dmsg-settings.result-new' | translate }} + {{ lastActionResult.newly_connected }} + @if (lastActionResult.failed && objectKeys(lastActionResult.failed).length > 0) { +
+ {{ 'dmsg-settings.result-failed' | translate }}: {{ objectKeys(lastActionResult.failed).length }} +
+ }
+ } - - @if (lastActionResult) { -
- {{ lastActionLabel }}: - {{ 'dmsg-settings.result-total' | translate }} - {{ lastActionResult.total }}, - {{ 'dmsg-settings.result-already' | translate }} - {{ lastActionResult.already_connected }}, - {{ 'dmsg-settings.result-new' | translate }} - {{ lastActionResult.newly_connected }} - @if (lastActionResult.failed && objectKeys(lastActionResult.failed).length > 0) { -
- {{ 'dmsg-settings.result-failed' | translate }}: {{ objectKeys(lastActionResult.failed).length }} -
- } + + @for (client of clientList(); track trackByRole($index, client)) { +
+
+ {{ roleLabel(client.role) }} + {{ client.count }} {{ 'dmsg-settings.sessions' | translate }}
- } - - - @for (client of clientList(); track trackByRole($index, client)) { -
-
- {{ roleLabel(client.role) }} - {{ client.count }} {{ 'dmsg-settings.sessions' | translate }} +
{{ client.pk }}
+ @if (client.servers && client.servers.length > 0) { +
+ @for (server of client.servers; track trackByPk($index, server)) { +
{{ server }}
+ }
-
{{ client.pk }}
- @if (client.servers && client.servers.length > 0) { -
- @for (server of client.servers; track trackByPk($index, server)) { -
{{ server }}
- } -
- } @else { -
{{ 'dmsg-settings.no-sessions' | translate }}
- } -
- } + } @else { +
{{ 'dmsg-settings.no-sessions' | translate }}
+ } +
+ } - @if (clientList().length === 0) { -
-
{{ 'dmsg-settings.no-clients' | translate }}
-
- } + @if (clientList().length === 0) { +
+
{{ 'dmsg-settings.no-clients' | translate }}
+
} -
+ }
diff --git a/static/skywire-manager-src/src/app/components/pages/dmsg-settings/dmsg-settings.component.scss b/static/skywire-manager-src/src/app/components/pages/dmsg-settings/dmsg-settings.component.scss index d894c800c2..d1b569a994 100644 --- a/static/skywire-manager-src/src/app/components/pages/dmsg-settings/dmsg-settings.component.scss +++ b/static/skywire-manager-src/src/app/components/pages/dmsg-settings/dmsg-settings.component.scss @@ -1,5 +1,9 @@ @import "variables"; +.dmsg-tab-body { + margin-top: 1.5rem; +} + .loading-row { display: flex; align-items: center; diff --git a/static/skywire-manager-src/src/app/components/pages/dmsg-settings/dmsg-settings.component.ts b/static/skywire-manager-src/src/app/components/pages/dmsg-settings/dmsg-settings.component.ts index 6c1b4901fe..c4afcf71fd 100644 --- a/static/skywire-manager-src/src/app/components/pages/dmsg-settings/dmsg-settings.component.ts +++ b/static/skywire-manager-src/src/app/components/pages/dmsg-settings/dmsg-settings.component.ts @@ -8,16 +8,20 @@ import { DmsgConnectAllResult, DmsgSettingsService, } from 'src/app/services/dmsg-settings.service'; -import { TabButtonData } from '../../layout/top-bar/top-bar.component'; import { PageBaseComponent } from 'src/app/utils/page-base'; import { SnackbarService } from 'src/app/services/snackbar.service'; +import { NodeComponent } from '../node/node.component'; +import { Node } from '../../../app.datatypes'; /** - * DMSG settings dashboard. Shows the dmsg server session list for each - * of the visor's three independent dmsg clients (main, embedded route - * setup-node, embedded transport setup-node) and exposes two actions: - * "Connect to all servers" (one-shot) and "Set sessions count" (persist - * + connect-all). Polled every 20s. + * Per-visor DMSG tab content. Shows the dmsg server session list + * for each of the visor's three independent dmsg clients (main, + * embedded route setup-node, embedded transport setup-node) and + * exposes "Connect to all servers" + "Set sessions count" actions. + * + * Was a top-level page (/nodes/dmsg-settings) showing the local + * visor only — it's a per-visor tab now so the controls operate on + * whichever visor the user is looking at, including remote visors. */ @Component({ selector: 'app-dmsg-settings', @@ -26,7 +30,7 @@ import { SnackbarService } from 'src/app/services/snackbar.service'; standalone: false, }) export class DmsgSettingsComponent extends PageBaseComponent implements OnInit, OnDestroy { - tabsData: TabButtonData[] = []; + pk = ''; sessions: DmsgClientSessions | null = null; loading = true; error: string | null = null; @@ -43,56 +47,40 @@ export class DmsgSettingsComponent extends PageBaseComponent implements OnInit, lastActionResult: DmsgConnectAllResult | null = null; lastActionLabel = ''; - private sub: Subscription; + private nodeSub: Subscription; + private pollSub: Subscription; constructor( private dmsgSvc: DmsgSettingsService, private snackbar: SnackbarService, ) { super(); - this.tabsData = [ - { - icon: 'view_headline', - label: 'nodes.title', - linkParts: ['/nodes'], - }, - { - icon: 'monetization_on', - label: 'nodes.rewards-title', - linkParts: ['/nodes', 'rewards'], - }, - { - icon: 'health_and_safety', - label: 'nodes.services-health-title', - linkParts: ['/nodes', 'services-health'], - }, - { - icon: 'hub', - label: 'nodes.dmsg-settings-title', - linkParts: ['/nodes', 'dmsg-settings'], - }, - { - icon: 'bubble_chart', - label: 'node.details.tpviz.title', - linkParts: [], - externalUrl: '/tp-viz/', - }, - { - icon: 'settings', - label: 'settings.title', - linkParts: ['/settings'], - }, - ]; } ngOnInit() { - // Poll every 20s. 20s (not 15s like services-health) because the - // sessions list changes rarely and we want to keep RPC traffic to - // the visor low. - this.sub = interval(20000) + this.nodeSub = NodeComponent.currentNode.subscribe((node: Node) => { + const wasUnset = !this.pk; + this.pk = node?.localPk || ''; + if (wasUnset && this.pk) { + this.startPolling(); + } + }); + return super.ngOnInit(); + } + + ngOnDestroy(): void { + this.nodeSub?.unsubscribe(); + this.pollSub?.unsubscribe(); + } + + /** Poll every 20s. 20s (not 15s like services-health) because the + * sessions list changes rarely and we want to keep RPC traffic to + * the visor low. */ + private startPolling() { + this.pollSub = interval(20000) .pipe( startWith(0), - switchMap(() => this.dmsgSvc.getSessions()), + switchMap(() => this.dmsgSvc.getSessions(this.pk)), ) .subscribe({ next: (sessions) => { @@ -106,36 +94,24 @@ export class DmsgSettingsComponent extends PageBaseComponent implements OnInit, this.error = err?.message || 'Failed to fetch dmsg sessions'; }, }); - return super.ngOnInit(); - } - - ngOnDestroy(): void { - if (this.sub) { - this.sub.unsubscribe(); - } } - /** Refresh the session list immediately, bypassing the poll interval. */ refresh(): void { - this.dmsgSvc.getSessions().subscribe({ + if (!this.pk) { return; } + this.dmsgSvc.getSessions(this.pk).subscribe({ next: (sessions) => { this.sessions = sessions || {}; this.lastUpdated = new Date(); }, - error: () => { - /* swallow — the next poll will surface errors */ - }, + error: () => { /* next poll surfaces errors */ }, }); } - /** One-shot: open a dmsg session to every known server, no persistence. */ connectAll(): void { - if (this.connectAllInFlight) { - return; - } + if (this.connectAllInFlight || !this.pk) { return; } this.connectAllInFlight = true; this.lastActionResult = null; - this.dmsgSvc.connectAll().subscribe({ + this.dmsgSvc.connectAll(this.pk).subscribe({ next: (result) => { this.connectAllInFlight = false; this.lastActionResult = result; @@ -152,18 +128,15 @@ export class DmsgSettingsComponent extends PageBaseComponent implements OnInit, }); } - /** Persist sessions_count and trigger connect-all. */ applySessionsCount(): void { - if (this.setCountInFlight) { - return; - } + if (this.setCountInFlight || !this.pk) { return; } if (this.sessionsCountInput < 0) { this.snackbar.showError('Sessions count must be >= 0'); return; } this.setCountInFlight = true; this.lastActionResult = null; - this.dmsgSvc.setSessionsCount(this.sessionsCountInput).subscribe({ + this.dmsgSvc.setSessionsCount(this.pk, this.sessionsCountInput).subscribe({ next: (result) => { this.setCountInFlight = false; this.lastActionResult = result; @@ -180,47 +153,27 @@ export class DmsgSettingsComponent extends PageBaseComponent implements OnInit, }); } - /** Ordered list of the clients present for ngFor iteration. */ clientList(): DmsgClientSessionInfo[] { const out: DmsgClientSessionInfo[] = []; - if (!this.sessions) { - return out; - } - if (this.sessions.main) { - out.push(this.sessions.main); - } - if (this.sessions.route_setup) { - out.push(this.sessions.route_setup); - } - if (this.sessions.transport_setup) { - out.push(this.sessions.transport_setup); - } + if (!this.sessions) { return out; } + if (this.sessions.main) { out.push(this.sessions.main); } + if (this.sessions.route_setup) { out.push(this.sessions.route_setup); } + if (this.sessions.transport_setup) { out.push(this.sessions.transport_setup); } return out; } - /** Human-readable label for the role. */ roleLabel(role: string): string { switch (role) { - case 'main': - return 'Main visor'; - case 'route_setup': - return 'Route Setup Node'; - case 'transport_setup': - return 'Transport Setup Node'; - default: - return role; + case 'main': return 'Main visor'; + case 'route_setup': return 'Route Setup Node'; + case 'transport_setup': return 'Transport Setup Node'; + default: return role; } } - trackByRole(_: number, c: DmsgClientSessionInfo): string { - return c.role; - } - - trackByPk(_: number, pk: string): string { - return pk; - } + trackByRole(_: number, c: DmsgClientSessionInfo): string { return c.role; } + trackByPk(_: number, pk: string): string { return pk; } - /** Keys of a map for mobile iteration. */ objectKeys(o: { [k: string]: any } | undefined | null): string[] { return o ? Object.keys(o) : []; } diff --git a/static/skywire-manager-src/src/app/components/pages/multi-visor-resources/multi-visor-resources.component.html b/static/skywire-manager-src/src/app/components/pages/multi-visor-resources/multi-visor-resources.component.html new file mode 100644 index 0000000000..230d6685fe --- /dev/null +++ b/static/skywire-manager-src/src/app/components/pages/multi-visor-resources/multi-visor-resources.component.html @@ -0,0 +1,120 @@ +
+
+ +
+ +
+ @if (loading && rows.length === 0) { +
+ + {{ 'multi-resources.loading' | translate }} +
+ } + + @if (error && rows.length === 0) { +
+ error_outline + {{ error }} +
+ } + + @if (rows.length > 0) { +
+ memory + {{ 'multi-resources.summary' | translate:{ count: rows.length } }} + @if (lastUpdated) { + + — {{ 'multi-resources.last-updated' | translate }}: {{ lastUpdated | date: 'HH:mm:ss' }} + + } +
+ + + + + + + + + + + + + @for (r of rows; track trackRow($index, r)) { + + + + + + + + + + + } +
{{ 'multi-resources.visor' | translate }}{{ 'multi-resources.cpu' | translate }}{{ 'multi-resources.mem' | translate }}{{ 'multi-resources.disk' | translate }}{{ 'multi-resources.tx' | translate }}{{ 'multi-resources.rx' | translate }}{{ 'multi-resources.proc-rss' | translate }}
+ + + + {{ r.node.label || r.node.localPk }} + +
{{ r.node.localPk }}
+ @if (r.error) { +
{{ r.error }}
+ } +
+ @if (r.stats?.cpu_percent !== undefined) { + {{ r.stats.cpu_percent | number: '1.0-1' }}% + } @else { + - + } + + @if (r.stats?.mem_percent !== undefined) { + {{ r.stats.mem_percent | number: '1.0-1' }}% + ({{ formatBytes(r.stats.mem_used) }} / {{ formatBytes(r.stats.mem_total) }}) + } @else { + - + } + + @if (r.stats?.disk_percent !== undefined) { + {{ r.stats.disk_percent | number: '1.0-1' }}% + } @else { + - + } + {{ formatRate(r.txRate) }}{{ formatRate(r.rxRate) }}{{ formatBytes(r.stats?.process?.mem_rss) }}
+ + +
+ @for (r of rows; track trackRow($index, r)) { +
+ +
{{ r.node.localPk }}
+ @if (r.error) { +
{{ r.error }}
+ } + @if (r.stats) { +
+
{{ 'multi-resources.cpu' | translate }}: {{ r.stats.cpu_percent | number: '1.0-1' }}%
+
{{ 'multi-resources.mem' | translate }}: {{ r.stats.mem_percent | number: '1.0-1' }}%
+
{{ 'multi-resources.disk' | translate }}: {{ r.stats.disk_percent | number: '1.0-1' }}%
+
{{ 'multi-resources.tx' | translate }}: {{ formatRate(r.txRate) }}
+
{{ 'multi-resources.rx' | translate }}: {{ formatRate(r.rxRate) }}
+
{{ 'multi-resources.proc-rss' | translate }}: {{ formatBytes(r.stats.process?.mem_rss) }}
+
+ } +
+ } +
+ } +
+
diff --git a/static/skywire-manager-src/src/app/components/pages/multi-visor-resources/multi-visor-resources.component.scss b/static/skywire-manager-src/src/app/components/pages/multi-visor-resources/multi-visor-resources.component.scss new file mode 100644 index 0000000000..53407ed7db --- /dev/null +++ b/static/skywire-manager-src/src/app/components/pages/multi-visor-resources/multi-visor-resources.component.scss @@ -0,0 +1,90 @@ +@import "variables"; + +.loading-row { + display: flex; + align-items: center; + color: rgba(255, 255, 255, 0.75); + padding: 24px 0; +} + +.error-row { + display: flex; + align-items: center; + color: #f87171; + padding: 24px 0; +} + +.summary-line { + display: flex; + align-items: center; + color: rgba(255, 255, 255, 0.9); + font-size: 0.95em; + + .last-updated { + color: rgba(255, 255, 255, 0.55); + font-size: 0.85em; + margin-left: 8px; + } +} + +.dot { + width: 8px; + height: 8px; + border-radius: 50%; + display: inline-block; +} +.dot-green { background: #4caf50; } +.dot-red { background: #f44336; } + +.visor-link { + color: rgba(255, 255, 255, 0.95); + text-decoration: none; + + &:hover { text-decoration: underline; } +} + +.visor-pk { + color: rgba(255, 255, 255, 0.55); + font-size: 11px; + word-break: break-all; + font-family: monospace; +} + +.visor-err { + color: #f87171; + font-size: 12px; + margin-top: 2px; +} + +.dim { color: rgba(255, 255, 255, 0.6); } +.small { font-size: 0.85em; } + +.pct-ok { color: #4caf50; font-weight: 500; } +.pct-warn { color: #ff9800; font-weight: 500; } +.pct-bad { color: #f44336; font-weight: 600; } +.pct-na { color: rgba(255, 255, 255, 0.5); } + +.mobile-card { + background: rgba(255, 255, 255, 0.04); + border-radius: 4px; + padding: 12px; + margin-bottom: 10px; + + .mobile-header { + display: flex; + align-items: center; + } + .mobile-pk { + color: rgba(255, 255, 255, 0.55); + font-size: 11px; + word-break: break-all; + font-family: monospace; + margin: 4px 0 6px; + } + .mobile-grid { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 4px 12px; + font-size: 12px; + } +} diff --git a/static/skywire-manager-src/src/app/components/pages/multi-visor-resources/multi-visor-resources.component.ts b/static/skywire-manager-src/src/app/components/pages/multi-visor-resources/multi-visor-resources.component.ts new file mode 100644 index 0000000000..a854a87f7c --- /dev/null +++ b/static/skywire-manager-src/src/app/components/pages/multi-visor-resources/multi-visor-resources.component.ts @@ -0,0 +1,190 @@ +import { Component, OnDestroy, OnInit, ChangeDetectorRef } from '@angular/core'; +import { Subscription, interval, startWith, forkJoin, of } from 'rxjs'; +import { switchMap, catchError } from 'rxjs/operators'; + +import { TabButtonData } from '../../layout/top-bar/top-bar.component'; +import { PageBaseComponent } from 'src/app/utils/page-base'; +import { homeTabsData } from 'src/app/utils/home-tabs'; +import { NodeService } from 'src/app/services/node.service'; +import { ApiService } from 'src/app/services/api.service'; +import { Node } from 'src/app/app.datatypes'; + +/** + * Resources tab on the home page — fans out one host-stats request + * per connected visor and shows CPU/mem/disk/net at a glance for + * the entire fleet. The per-visor Resources tab on the visor detail + * page is the deep view (sparklines, runtime, network rates); this + * is the bird's-eye summary so an operator can spot a misbehaving + * visor without clicking into each one. + * + * Polling cadence is intentionally slower than the per-visor 1s — + * each host-stats fetch is a separate visor RPC, so a 5s cadence + * keeps the fan-out off the busy path even on a hypervisor with + * many connected visors. + */ + +interface HostProcess { + pid?: number; + cpu_percent?: number; + mem_rss?: number; + num_threads?: number; +} + +interface HostStats { + hostname?: string; + cpu_percent?: number; + cpu_count?: number; + mem_total?: number; + mem_used?: number; + mem_percent?: number; + disk_total?: number; + disk_used?: number; + disk_percent?: number; + net_bytes_sent?: number; + net_bytes_recv?: number; + process?: HostProcess; +} + +interface VisorRow { + node: Node; + stats?: HostStats; + prevSent?: number; + prevRecv?: number; + txRate?: number; // bytes/sec + rxRate?: number; + lastSampleAt?: number; + error?: string; +} + +@Component({ + selector: 'app-multi-visor-resources', + templateUrl: './multi-visor-resources.component.html', + styleUrls: ['./multi-visor-resources.component.scss'], + standalone: false, +}) +export class MultiVisorResourcesComponent extends PageBaseComponent implements OnInit, OnDestroy { + tabsData: TabButtonData[] = []; + rows: VisorRow[] = []; + loading = true; + error: string | null = null; + lastUpdated: Date | null = null; + + private sub: Subscription; + + constructor( + private nodeService: NodeService, + private api: ApiService, + private cdr: ChangeDetectorRef, + ) { + super(); + this.tabsData = homeTabsData(); + } + + ngOnInit() { + this.sub = interval(5000).pipe( + startWith(0), + switchMap(() => this.nodeService.getNodes()), + switchMap((nodes: Node[]) => { + const online = (nodes || []).filter((n) => n.online); + if (online.length === 0) { + return of({ nodes: nodes || [], stats: [] as ({ pk: string, stats?: HostStats, error?: string })[] }); + } + // Fan out per-visor host-stats. catchError per-stream so a + // single timeout doesn't kill the whole batch. + const fetches = online.map((n) => + this.api.get(`visors/${n.localPk}/host-stats`).pipe( + catchError((err) => of({ __error: err?.message || 'failed' })), + ), + ); + return forkJoin(fetches).pipe( + switchMap((results: any[]) => of({ + nodes: nodes || [], + stats: results.map((r, i) => ({ + pk: online[i].localPk, + stats: r && !r.__error ? (r as HostStats) : undefined, + error: r && r.__error ? r.__error : undefined, + })), + })), + ); + }), + ).subscribe({ + next: ({ nodes, stats }) => { + this.mergeStats(nodes, stats); + this.loading = false; + this.error = null; + this.lastUpdated = new Date(); + this.cdr.markForCheck(); + }, + error: (err) => { + this.loading = false; + this.error = err?.message || 'Failed to fetch resources'; + }, + }); + + return super.ngOnInit(); + } + + ngOnDestroy(): void { + this.sub?.unsubscribe(); + } + + private mergeStats(nodes: Node[], stats: { pk: string, stats?: HostStats, error?: string }[]) { + const byPk = new Map(); + stats.forEach((s) => byPk.set(s.pk, { stats: s.stats, error: s.error })); + + // Preserve previous samples to derive net rates. + const prevByPk = new Map(); + this.rows.forEach((r) => prevByPk.set(r.node.localPk, r)); + + const now = Date.now(); + this.rows = nodes.map((node) => { + const fresh = byPk.get(node.localPk); + const prev = prevByPk.get(node.localPk); + const row: VisorRow = { node, ...fresh }; + if (fresh?.stats) { + const sent = fresh.stats.net_bytes_sent || 0; + const recv = fresh.stats.net_bytes_recv || 0; + if (prev?.lastSampleAt && prev.prevSent !== undefined && prev.prevRecv !== undefined) { + const dt = (now - prev.lastSampleAt) / 1000; + if (dt > 0) { + const tx = Math.max(0, (sent - prev.prevSent) / dt); + const rx = Math.max(0, (recv - prev.prevRecv) / dt); + row.txRate = tx; + row.rxRate = rx; + } + } + row.prevSent = sent; + row.prevRecv = recv; + row.lastSampleAt = now; + } + return row; + }); + } + + /** Color class buckets — same thresholds as per-visor monitor. */ + pctClass(pct?: number): string { + if (pct === undefined || pct === null) { return 'pct-na'; } + if (pct >= 90) { return 'pct-bad'; } + if (pct >= 70) { return 'pct-warn'; } + return 'pct-ok'; + } + + /** Bytes-per-second → human readable. */ + formatRate(bps?: number): string { + if (bps === undefined || bps === null || bps < 0) { return '-'; } + const u = ['B/s', 'KB/s', 'MB/s', 'GB/s']; + let i = 0; let v = bps; + while (v >= 1024 && i < u.length - 1) { v /= 1024; i++; } + return v < 10 ? v.toFixed(1) + ' ' + u[i] : Math.round(v) + ' ' + u[i]; + } + + formatBytes(b?: number): string { + if (b === undefined || b === null) { return '-'; } + const u = ['B', 'KB', 'MB', 'GB', 'TB']; + let i = 0; let v = b; + while (v >= 1024 && i < u.length - 1) { v /= 1024; i++; } + return v < 10 ? v.toFixed(1) + ' ' + u[i] : Math.round(v) + ' ' + u[i]; + } + + trackRow(_: number, r: VisorRow): string { return r.node.localPk; } +} diff --git a/static/skywire-manager-src/src/app/components/pages/network-transports/network-transports.component.html b/static/skywire-manager-src/src/app/components/pages/network-transports/network-transports.component.html new file mode 100644 index 0000000000..a6cee9c0f6 --- /dev/null +++ b/static/skywire-manager-src/src/app/components/pages/network-transports/network-transports.component.html @@ -0,0 +1,133 @@ +
+
+ +
+ +
+ +
+
+ {{ 'network-transports.days' | translate }}: + + + +
+
+ {{ 'network-transports.view' | translate }}: + + +
+ +
+ + @if (loading && byTransport.length === 0 && byVisor.length === 0) { +
+ + {{ 'network-transports.loading' | translate }} +
+ } + + @if (error && byTransport.length === 0 && byVisor.length === 0) { +
+ error_outline + {{ error }} +
+ } + + @if (byTransport.length > 0 || byVisor.length > 0) { +
+ swap_horiz + + {{ 'network-transports.summary' | translate:{ + transports: rawCount, + bandwidth: fmtBytes(networkBandwidth), + days: days + } }} + + @if (lastUpdated) { + + — {{ 'network-transports.last-updated' | translate }}: {{ lastUpdated | date: 'HH:mm:ss' }} + + } +
+ + + @if (viewMode === 'compact') { + + + + + + + + + + + + @for (e of byTransport; track trackTpId($index, e)) { + + + + + + + + + + + } +
{{ 'network-transports.tp-id' | translate }}{{ 'network-transports.type' | translate }}{{ 'network-transports.edge-a' | translate }}{{ 'network-transports.edge-b' | translate }}{{ 'network-transports.sent' | translate }}{{ 'network-transports.recv' | translate }}{{ 'network-transports.total' | translate }}{{ 'network-transports.latency' | translate }}
{{ e.id }}{{ e.type }}{{ e.edge_a }}{{ e.edge_b }}{{ fmtBytes(e.sent) }}{{ fmtBytes(e.recv) }}{{ fmtBytes(e.bandwidth) }}{{ fmtLatency(e.latency) }}
+ } + + + @if (viewMode === 'tree') { +
+ @for (v of byVisor; track trackVisorPk($index, v)) { +
+
+ {{ v.expanded ? 'expand_more' : 'chevron_right' }} + {{ v.pk }} + {{ fmtBytes(v.bandwidth) }} + ↑ {{ fmtBytes(v.sent) }} ↓ {{ fmtBytes(v.recv) }} + · {{ v.transports.length }} tp +
+ @if (v.expanded) { +
+ @for (c of v.transports; track trackChildId($index, c); let last = $last) { +
+ {{ last ? '└──' : '├──' }} + {{ c.id }} + {{ c.type }} + + {{ c.remote }} + ↑ {{ fmtBytes(c.sent) }} + ↓ {{ fmtBytes(c.recv) }} + {{ fmtBytes(c.bandwidth) }} + @if (c.latency && c.latency.avg) { + {{ fmtLatency(c.latency) }} + } +
+ } +
+ } +
+ } +
+ } + } +
+
diff --git a/static/skywire-manager-src/src/app/components/pages/network-transports/network-transports.component.scss b/static/skywire-manager-src/src/app/components/pages/network-transports/network-transports.component.scss new file mode 100644 index 0000000000..fe80412d89 --- /dev/null +++ b/static/skywire-manager-src/src/app/components/pages/network-transports/network-transports.component.scss @@ -0,0 +1,130 @@ +@import "variables"; + +.controls { + display: flex; + align-items: center; + gap: 16px; + flex-wrap: wrap; + margin-bottom: 12px; + padding: 10px 14px; + background: rgba(255, 255, 255, 0.04); + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 6px; + + .control-group { + display: flex; + align-items: center; + gap: 4px; + + .control-label { + font-size: 0.85em; + color: rgba(255, 255, 255, 0.65); + margin-right: 4px; + } + + button { + min-width: 0; + padding: 0 12px !important; + opacity: 0.6; + &.active { + opacity: 1; + background: rgba(33, 150, 243, 0.18) !important; + color: #fff; + } + } + } + + .refresh-btn { + margin-left: auto; + } +} + +.loading-row, +.error-row { + display: flex; + align-items: center; + padding: 24px 0; +} +.error-row { color: #f87171; } + +.summary-line { + display: flex; + align-items: center; + color: rgba(255, 255, 255, 0.9); + font-size: 0.95em; + + .last-updated { + color: rgba(255, 255, 255, 0.55); + font-size: 0.85em; + margin-left: 8px; + } +} + +.dim { color: rgba(255, 255, 255, 0.6); } +.small { font-size: 0.85em; } +.mono { font-family: monospace; word-break: break-all; } +.num { text-align: right; } + +.nt-compact { + table-layout: auto; + + td.mono { font-size: 11px; } + th.num, td.num { white-space: nowrap; } +} + +.nt-tree { + display: flex; + flex-direction: column; + gap: 2px; +} + +.nt-visor { + background: rgba(255, 255, 255, 0.03); + border: 1px solid rgba(255, 255, 255, 0.06); + border-radius: 4px; + + .nt-visor-row { + display: flex; + align-items: center; + gap: 10px; + padding: 6px 10px; + cursor: pointer; + flex-wrap: wrap; + + &:hover { background: rgba(255, 255, 255, 0.04); } + + .exp { color: rgba(255, 255, 255, 0.6); } + .nt-pk { flex: 1 1 320px; min-width: 0; font-size: 11px; color: rgba(255, 255, 255, 0.85); } + .nt-bw { font-size: 13px; } + .dim { font-size: 12px; } + } + + .nt-children { + padding: 4px 12px 8px 36px; + display: flex; + flex-direction: column; + gap: 4px; + + .nt-child { + display: flex; + align-items: center; + gap: 8px; + flex-wrap: wrap; + font-size: 12px; + padding: 2px 0; + + .nt-prefix { font-family: monospace; color: rgba(255, 255, 255, 0.45); } + .nt-tp-id { font-size: 11px; color: rgba(255, 255, 255, 0.85); } + .nt-tp-type { + background: rgba(33, 150, 243, 0.18); + border: 1px solid rgba(33, 150, 243, 0.35); + padding: 0 6px; + border-radius: 3px; + font-size: 10px; + text-transform: lowercase; + } + .nt-arrow { color: rgba(255, 255, 255, 0.45); } + .nt-tp-remote { font-size: 11px; color: rgba(255, 255, 255, 0.7); } + } + } +} diff --git a/static/skywire-manager-src/src/app/components/pages/network-transports/network-transports.component.ts b/static/skywire-manager-src/src/app/components/pages/network-transports/network-transports.component.ts new file mode 100644 index 0000000000..9f3d1ce8b6 --- /dev/null +++ b/static/skywire-manager-src/src/app/components/pages/network-transports/network-transports.component.ts @@ -0,0 +1,252 @@ +import { Component, OnDestroy, OnInit, ChangeDetectorRef } from '@angular/core'; +import { Subscription, interval, startWith } from 'rxjs'; +import { switchMap, catchError } from 'rxjs/operators'; +import { of } from 'rxjs'; + +import { TabButtonData } from '../../layout/top-bar/top-bar.component'; +import { PageBaseComponent } from 'src/app/utils/page-base'; +import { ApiService } from 'src/app/services/api.service'; +import { homeTabsData } from 'src/app/utils/home-tabs'; + +/** Mirrors pkg/transport-discovery/store.TransportLatency. */ +interface TransportLatency { + min: number; // µs + max: number; + avg: number; +} + +/** Mirrors pkg/transport-discovery/store.EdgeBandwidth. */ +interface EdgeBandwidth { sent: number; recv: number; } +interface DailyEdgeBandwidth { date: string; a?: EdgeBandwidth; b?: EdgeBandwidth; } + +/** Mirrors pkg/transport-discovery/store.TransportMetric. */ +interface TransportMetric { + id: string; + type: string; + live: boolean; + edges?: string[]; + latency?: TransportLatency; + daily: DailyEdgeBandwidth[]; +} + +/** Compact "by transport" row: one per TPD transport. */ +interface ByTransportRow { + id: string; + type: string; + edge_a: string; + edge_b: string; + sent: number; + recv: number; + bandwidth: number; + latency?: TransportLatency; +} + +/** Tree node: one visor with its transports as children. */ +interface VisorNode { + pk: string; + sent: number; + recv: number; + bandwidth: number; + transports: VisorChildTp[]; + expanded: boolean; +} +interface VisorChildTp { + id: string; + type: string; + remote: string; + sent: number; + recv: number; + bandwidth: number; + latency?: TransportLatency; +} + +type ViewMode = 'compact' | 'tree'; + +/** + * Network-wide Transports view, fed by TPD's /metrics endpoint + * (proxied through the local visor's DmsgHTTP). Two render modes: + * - "compact": one row per transport id (mirrors `cli tp metrics -tv`) + * - "tree": visors as parents with their transports as children + * (mirrors `cli tp metrics --tree`) + */ +@Component({ + selector: 'app-network-transports', + templateUrl: './network-transports.component.html', + styleUrls: ['./network-transports.component.scss'], + standalone: false, +}) +export class NetworkTransportsComponent extends PageBaseComponent implements OnInit, OnDestroy { + tabsData: TabButtonData[] = []; + loading = true; + error: string | null = null; + lastUpdated: Date | null = null; + days = 1; + viewMode: ViewMode = 'compact'; + + rawCount = 0; + networkBandwidth = 0; + byTransport: ByTransportRow[] = []; + byVisor: VisorNode[] = []; + + private sub: Subscription; + + constructor(private api: ApiService, private cdr: ChangeDetectorRef) { + super(); + this.tabsData = homeTabsData(); + } + + ngOnInit() { + // 5min cadence: TPD metrics roll up daily, no benefit in + // anything tighter. The Refresh button below the table forces + // a fresh fetch when the user wants a current sample. + this.sub = interval(300000) + .pipe( + startWith(0), + switchMap(() => this.fetch()), + ) + .subscribe(); + return super.ngOnInit(); + } + + ngOnDestroy(): void { + this.sub?.unsubscribe(); + } + + refreshNow() { this.fetch().subscribe(); } + + setDays(d: number) { + if (d === this.days) { return; } + this.days = d; + this.fetch().subscribe(); + } + + setViewMode(m: ViewMode) { + this.viewMode = m; + } + + toggleVisor(v: VisorNode) { v.expanded = !v.expanded; } + + private fetch() { + this.loading = this.byTransport.length === 0 && this.byVisor.length === 0; + return this.api.get(`network/transports?days=${this.days}`).pipe( + catchError((err) => { + this.error = err?.message || 'Failed to fetch transports'; + this.loading = false; + this.cdr.markForCheck(); + return of(null); + }), + switchMap((rows) => { + if (rows === null) { return of(null); } + this.consume(Array.isArray(rows) ? rows : []); + return of(rows); + }), + ); + } + + private consume(metrics: TransportMetric[]) { + this.rawCount = metrics.length; + let networkBw = 0; + const byTp: ByTransportRow[] = []; + const byVisorMap = new Map(); + + for (const m of metrics) { + if (!m.edges || m.edges.length < 2) { continue; } + const [aToB, bToA] = this.verifiedBandwidth(m); + const bw = aToB + bToA; + networkBw += bw; + if (bw === 0 && !m.latency) { continue; } + + byTp.push({ + id: m.id, + type: m.type, + edge_a: m.edges[0], + edge_b: m.edges[1], + sent: aToB, + recv: bToA, + bandwidth: bw, + latency: m.latency, + }); + + // Edge A perspective. + const a = byVisorMap.get(m.edges[0]) || this.newVisorNode(m.edges[0]); + a.sent += aToB; a.recv += bToA; a.bandwidth += bw; + a.transports.push({ + id: m.id, type: m.type, remote: m.edges[1], + sent: aToB, recv: bToA, bandwidth: bw, latency: m.latency, + }); + byVisorMap.set(m.edges[0], a); + + // Edge B perspective. + const b = byVisorMap.get(m.edges[1]) || this.newVisorNode(m.edges[1]); + b.sent += bToA; b.recv += aToB; b.bandwidth += bw; + b.transports.push({ + id: m.id, type: m.type, remote: m.edges[0], + sent: bToA, recv: aToB, bandwidth: bw, latency: m.latency, + }); + byVisorMap.set(m.edges[1], b); + } + + byTp.sort((x, y) => y.bandwidth - x.bandwidth); + const visors = Array.from(byVisorMap.values()).sort((x, y) => y.bandwidth - x.bandwidth); + visors.forEach((v) => v.transports.sort((x, y) => y.bandwidth - x.bandwidth)); + + this.byTransport = byTp; + this.byVisor = visors; + this.networkBandwidth = networkBw; + this.loading = false; + this.error = null; + this.lastUpdated = new Date(); + this.cdr.markForCheck(); + } + + private newVisorNode(pk: string): VisorNode { + return { pk, sent: 0, recv: 0, bandwidth: 0, transports: [], expanded: false }; + } + + /** Mirrors verifiedBandwidth() in cmd/skywire-cli/commands/tp/tp-metrics.go. */ + private verifiedBandwidth(m: TransportMetric): [number, number] { + let aToB = 0, bToA = 0; + for (const d of m.daily || []) { + const aRep = !!d.a && ((d.a.sent || 0) > 0 || (d.a.recv || 0) > 0); + const bRep = !!d.b && ((d.b.sent || 0) > 0 || (d.b.recv || 0) > 0); + if (aRep && bRep) { + aToB += Math.min(d.a.sent || 0, d.b.recv || 0); + bToA += Math.min(d.a.recv || 0, d.b.sent || 0); + } else if (aRep) { + aToB += d.a.sent || 0; + bToA += d.a.recv || 0; + } else if (bRep) { + aToB += d.b.recv || 0; + bToA += d.b.sent || 0; + } + } + return [aToB, bToA]; + } + + /** Bytes → human readable (KiB/MiB/GiB). */ + fmtBytes(b: number): string { + if (!b || b < 0) { return '-'; } + const u = ['B', 'KB', 'MB', 'GB', 'TB']; + let i = 0, v = b; + while (v >= 1024 && i < u.length - 1) { v /= 1024; i++; } + return v < 10 ? v.toFixed(1) + ' ' + u[i] : Math.round(v) + ' ' + u[i]; + } + + /** Latency µs → "X.Xms" or "Yμs". */ + fmtLatency(l?: TransportLatency): string { + if (!l || !l.avg) { return '-'; } + const ms = l.avg / 1000; + if (ms < 1) { return Math.round(l.avg) + 'μs'; } + if (ms < 1000) { return ms.toFixed(1) + 'ms'; } + return (ms / 1000).toFixed(2) + 's'; + } + + fmtLatencyFull(l?: TransportLatency): string { + if (!l || !l.avg) { return '-'; } + return (l.min / 1000).toFixed(1) + ' / ' + (l.avg / 1000).toFixed(1) + ' / ' + (l.max / 1000).toFixed(1) + ' ms'; + } + + trackTpId(_: number, e: ByTransportRow): string { return e.id; } + trackVisorPk(_: number, n: VisorNode): string { return n.pk; } + trackChildId(_: number, c: VisorChildTp): string { return c.id; } +} diff --git a/static/skywire-manager-src/src/app/components/pages/network-view/network-view.component.html b/static/skywire-manager-src/src/app/components/pages/network-view/network-view.component.html new file mode 100644 index 0000000000..4aa1e88164 --- /dev/null +++ b/static/skywire-manager-src/src/app/components/pages/network-view/network-view.component.html @@ -0,0 +1,135 @@ +
+
+ +
+ +
+ @if (loading && entries.length === 0) { +
+ + {{ 'network-view.loading' | translate }} +
+ } + + @if (error && entries.length === 0) { +
+ error_outline + {{ error }} +
+ } + + @if (entries.length > 0) { +
+
+ + +
+
+ {{ totals.all }} visors + {{ totals.online }} online + {{ totals.offline }} offline + {{ totals.notInUT }} not in UT +
+ @if (lastUpdated) { +
+ {{ 'network-view.last-updated' | translate }}: {{ lastUpdated | date:'mediumTime' }} +
+ } + +
+ + +
+ + {{ 'network-view.search' | translate }} + + + + {{ 'network-view.country' | translate }} + + + + {{ 'network-view.version' | translate }} + + + + {{ 'network-view.min-transports' | translate }} + + + + {{ 'network-view.online-only' | translate }} + +
+ + +
+ + {{ 'network-view.legend.offline' | translate }} + + {{ 'network-view.legend.not-in-ut' | translate }} + + {{ 'network-view.legend.low-transports' | translate }} +
+ + + + + + + + + + + + + + + + @for (e of filteredEntries; track e.pk) { + + + + + + + + + + + + + } +
{{ 'network-view.col.pk' | translate }}{{ 'network-view.col.country' | translate }}{{ 'network-view.col.version' | translate }}{{ 'network-view.col.services' | translate }}stcprsudphdmsgstcp{{ 'network-view.col.total' | translate }}{{ 'network-view.col.status' | translate }}
{{ e.pk }}{{ e.country || '-' }}{{ e.version || '-' }}{{ e.services || '-' }}{{ e.stcpr }}{{ e.sudph }}{{ e.dmsg }}{{ e.stcp }}{{ e.total }}{{ e.ut_status || '-' }}
+ + +
+ @for (e of filteredEntries; track e.pk) { +
+
{{ e.pk }}
+
+ {{ e.country || '-' }} · {{ e.version || '-' }} · {{ e.services || '-' }} +
+
+ stcpr {{ e.stcpr }} · sudph {{ e.sudph }} · dmsg {{ e.dmsg }} · stcp {{ e.stcp }} + · total {{ e.total }} + · {{ e.ut_status || '-' }} +
+
+ } +
+ + @if (filteredEntries.length === 0) { +

{{ 'network-view.empty' | translate }}

+ } +
+
+ } +
+
diff --git a/static/skywire-manager-src/src/app/components/pages/network-view/network-view.component.scss b/static/skywire-manager-src/src/app/components/pages/network-view/network-view.component.scss new file mode 100644 index 0000000000..471d46949d --- /dev/null +++ b/static/skywire-manager-src/src/app/components/pages/network-view/network-view.component.scss @@ -0,0 +1,115 @@ +.nv-header { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 16px; + padding: 8px 4px 4px; + + .nv-totals { + display: flex; + align-items: center; + gap: 8px; + font-size: 13px; + } + + .nv-fetched { + margin-left: auto; + font-size: 12px; + opacity: 0.6; + } + + .dot { + display: inline-block; + width: 8px; + height: 8px; + border-radius: 50%; + margin-left: 8px; + } + + .dot-green { background: #4caf50; } + .dot-red { background: #e53935; } + .dot-outline-gray { border: 1px solid rgba(255, 255, 255, 0.4); } +} + +.nv-filters { + display: flex; + flex-wrap: wrap; + gap: 12px; + align-items: center; + padding: 8px 4px; + border-bottom: 1px solid rgba(255, 255, 255, 0.06); + + mat-form-field { + flex: 0 1 200px; + } + .field-sm { flex: 0 1 130px; } + .field-md { flex: 1 1 280px; } +} + +.nv-legend { + display: flex; + flex-wrap: wrap; + gap: 8px; + align-items: center; + font-size: 12px; + padding: 8px 4px; + opacity: 0.8; + + .row-marker { + display: inline-block; + width: 16px; + height: 12px; + border-radius: 2px; + margin-left: 6px; + } +} + +.responsive-table-translucid { + th.num, td.num { + text-align: right; + font-variant-numeric: tabular-nums; + } +} + +// Row health-state coloring (matches the CLI palette). +.row-offline { + color: rgba(229, 57, 53, 0.85) !important; +} + +.row-not-in-ut { + background: rgba(229, 57, 53, 0.12) !important; + color: rgba(255, 255, 255, 0.9) !important; +} + +.row-low-transports { + background: rgba(255, 167, 38, 0.12) !important; + color: rgba(255, 220, 150, 0.95) !important; +} + +// Markers in the legend reuse the same backgrounds. +.row-marker.row-offline { background: rgba(229, 57, 53, 0.5); } +.row-marker.row-not-in-ut { background: rgba(229, 57, 53, 0.25); } +.row-marker.row-low-transports { background: rgba(255, 167, 38, 0.3); } + +.nv-cards { + display: flex; + flex-direction: column; + gap: 8px; + padding: 8px 0; +} + +.nv-card { + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 6px; + padding: 8px 10px; + + .nv-card-pk { font-weight: 600; } + .nv-card-meta { opacity: 0.7; font-size: 12px; } + .nv-card-tps { font-size: 12px; margin-top: 2px; font-variant-numeric: tabular-nums; } +} + +.nv-empty { + text-align: center; + opacity: 0.6; + padding: 24px; +} diff --git a/static/skywire-manager-src/src/app/components/pages/network-view/network-view.component.ts b/static/skywire-manager-src/src/app/components/pages/network-view/network-view.component.ts new file mode 100644 index 0000000000..60ee23fd6b --- /dev/null +++ b/static/skywire-manager-src/src/app/components/pages/network-view/network-view.component.ts @@ -0,0 +1,161 @@ +import { Component, OnDestroy, OnInit } from '@angular/core'; +import { Subscription, interval, startWith } from 'rxjs'; +import { switchMap } from 'rxjs/operators'; + +import { NodeService } from '../../../services/node.service'; +import { TabButtonData } from '../../layout/top-bar/top-bar.component'; +import { homeTabsData } from 'src/app/utils/home-tabs'; +import { PageBaseComponent } from 'src/app/utils/page-base'; + +/** + * NetworkViewComponent — in-browser equivalent of `skywire cli sd`. + * Combines service-discovery (proxy/vpn/visor types), transport- + * discovery (all-transports), and uptime-tracker data into a per-PK + * table with country/version/services/transport-counts and online + * status. The aggregation runs server-side on the local visor and + * is cached for 30s; the page polls at 30s. + * + * Color coding mirrors the CLI: + * - normal: in UT and reporting "online", with ≥ 2 stcpr/sudph + * - amber: online but fewer than 2 real (stcpr+sudph) transports + * - red: offline in UT + * - gray: not in UT at all + */ + +interface NetworkEntry { + pk: string; + country?: string; + version?: string; + services?: string; + stcpr: number; + sudph: number; + dmsg: number; + stcp: number; + total: number; + ut_status?: string; // "online" | "offline" | "" (unknown) +} + +interface NetworkResponse { + entries: NetworkEntry[]; + fetched_at: string; +} + +@Component({ + selector: 'app-network-view', + templateUrl: './network-view.component.html', + styleUrls: ['./network-view.component.scss'], + standalone: false, +}) +export class NetworkViewComponent extends PageBaseComponent implements OnInit, OnDestroy { + tabsData: TabButtonData[] = []; + entries: NetworkEntry[] = []; + filteredEntries: NetworkEntry[] = []; + loading = true; + error: string | null = null; + lastUpdated: Date | null = null; + + // Filters + filterCountry = ''; + filterVersion = ''; + filterMinTransports: number | null = null; + showOnlineOnly = true; + searchTerm = ''; + + private sub: Subscription; + + constructor(private nodeService: NodeService) { + super(); + this.tabsData = homeTabsData(); + } + + ngOnInit() { + // Poll every 5min — the visor caches the aggregation for 5min, + // so anything finer-grained just hits the cache. The Refresh + // button below the table forces a fresh fetch when the user + // wants a current sample on demand. + this.sub = interval(300000) + .pipe( + startWith(0), + switchMap(() => this.nodeService.getNetworkView()), + ) + .subscribe({ + next: (resp: NetworkResponse) => this.onResponse(resp), + error: (err) => { + this.loading = false; + this.error = err?.message || 'Failed to fetch network view'; + }, + }); + return super.ngOnInit(); + } + + refreshNow() { + this.loading = this.entries.length === 0; + this.nodeService.getNetworkView(true).subscribe({ + next: (resp: NetworkResponse) => this.onResponse(resp), + error: (err) => { + this.loading = false; + this.error = err?.message || 'Failed to fetch network view'; + }, + }); + } + + private onResponse(resp: NetworkResponse) { + this.entries = resp?.entries || []; + this.loading = false; + this.error = null; + this.lastUpdated = new Date(); + this.applyFilters(); + } + + ngOnDestroy(): void { + if (this.sub) { this.sub.unsubscribe(); } + } + + applyFilters() { + const term = (this.searchTerm || '').trim().toLowerCase(); + const country = (this.filterCountry || '').trim().toUpperCase(); + const version = (this.filterVersion || '').trim(); + const minT = this.filterMinTransports || 0; + + this.filteredEntries = this.entries.filter((e) => { + if (this.showOnlineOnly && (e.ut_status || '') !== 'online') { + return false; + } + if (country && (e.country || '').toUpperCase() !== country) { + return false; + } + if (version && (e.version || '') !== version) { + return false; + } + if (minT > 0 && (e.total || 0) < minT) { + return false; + } + if (term) { + const haystack = [e.pk, e.country, e.version, e.services].join(' ').toLowerCase(); + if (!haystack.includes(term)) { return false; } + } + return true; + }); + } + + /** CSS class for a row based on health classification. */ + rowClass(e: NetworkEntry): string { + const realT = (e.stcpr || 0) + (e.sudph || 0); + if ((e.ut_status || '') === '') { return 'row-not-in-ut'; } + if ((e.ut_status || '') === 'offline') { return 'row-offline'; } + if (realT < 2) { return 'row-low-transports'; } + return ''; + } + + /** Counts shown in the header for at-a-glance health. */ + get totals() { + let online = 0, offline = 0, notInUT = 0; + for (const e of this.entries) { + const s = e.ut_status || ''; + if (s === 'online') { online++; } + else if (s === 'offline') { offline++; } + else { notInUT++; } + } + return { all: this.entries.length, online, offline, notInUT }; + } +} diff --git a/static/skywire-manager-src/src/app/components/pages/node-list/node-list.component.ts b/static/skywire-manager-src/src/app/components/pages/node-list/node-list.component.ts index 0da5faff1d..e7b8adc772 100644 --- a/static/skywire-manager-src/src/app/components/pages/node-list/node-list.component.ts +++ b/static/skywire-manager-src/src/app/components/pages/node-list/node-list.component.ts @@ -10,6 +10,7 @@ import { AuthService, AuthStates } from '../../../services/auth.service'; import { EditLabelComponent } from '../../layout/edit-label/edit-label.component'; import { StorageService, LabeledElementTypes } from '../../../services/storage.service'; import { TabButtonData, MenuOptionData } from '../../layout/top-bar/top-bar.component'; +import { homeTabsData } from 'src/app/utils/home-tabs'; import { SnackbarService } from '../../../services/snackbar.service'; import GeneralUtils from 'src/app/utils/generalUtils'; import { SelectOptionComponent, SelectableOption } from '../../layout/select-option/select-option.component'; @@ -225,40 +226,7 @@ export class NodeListComponent extends PageBaseComponent implements OnInit, OnDe } }); - // Data for populating the tab bar. - this.tabsData = [ - { - icon: 'view_headline', - label: 'nodes.title', - linkParts: ['/nodes'], - }, - { - icon: 'monetization_on', - label: 'nodes.rewards-title', - linkParts: ['/nodes', 'rewards'], - }, - { - icon: 'health_and_safety', - label: 'nodes.services-health-title', - linkParts: ['/nodes', 'services-health'], - }, - { - icon: 'hub', - label: 'nodes.dmsg-settings-title', - linkParts: ['/nodes', 'dmsg-settings'], - }, - { - icon: 'bubble_chart', - label: 'node.details.tpviz.title', - linkParts: [], - externalUrl: '/tp-viz/', - }, - { - icon: 'settings', - label: 'settings.title', - linkParts: ['/settings'], - } - ]; + this.tabsData = homeTabsData(); // Refresh the data after languaje changes, to ensure the labels used for filtering // are updated. diff --git a/static/skywire-manager-src/src/app/components/pages/node/actions/node-logs/node-logs.component.html b/static/skywire-manager-src/src/app/components/pages/node/actions/node-logs/node-logs.component.html index ad8184ed21..4bae3a8958 100644 --- a/static/skywire-manager-src/src/app/components/pages/node/actions/node-logs/node-logs.component.html +++ b/static/skywire-manager-src/src/app/components/pages/node/actions/node-logs/node-logs.component.html @@ -17,6 +17,12 @@
} + @if (totalDropped > 0) { +
+ history + {{ 'node.logs.dropped' | translate:{ count: totalDropped } }} +
+ } @if (!loading && hasMoreLogMessages) { @@ -97,16 +103,22 @@ } - -
- @if (!loading) { -
- @if (!showAlert) { + +
diff --git a/static/skywire-manager-src/src/app/components/pages/node/actions/node-logs/node-logs.component.scss b/static/skywire-manager-src/src/app/components/pages/node/actions/node-logs/node-logs.component.scss index dc607e837d..5952c71f42 100644 --- a/static/skywire-manager-src/src/app/components/pages/node/actions/node-logs/node-logs.component.scss +++ b/static/skywire-manager-src/src/app/components/pages/node/actions/node-logs/node-logs.component.scss @@ -99,3 +99,44 @@ .extra-data-color { color: #ad8021; } + + +.logs-footer { + display: flex; + justify-content: space-between; + align-items: center; + padding: 6px 10px; + border-top: 1px solid rgba(255, 255, 255, 0.08); +} + +.live-tail-toggle { + display: flex; + align-items: center; + gap: 6px; + padding: 4px 10px; + border-radius: 4px; + cursor: pointer; + user-select: none; + font-size: 13px; + + .icon { + font-size: 18px; + } +} + + +.logs-dropped-banner { + display: flex; + align-items: center; + gap: 6px; + padding: 6px 10px; + background: rgba(255, 200, 0, 0.08); + border-bottom: 1px solid rgba(255, 200, 0, 0.2); + font-size: 12px; + opacity: 0.9; + + mat-icon { + font-size: 16px; + } +} + diff --git a/static/skywire-manager-src/src/app/components/pages/node/actions/node-logs/node-logs.component.ts b/static/skywire-manager-src/src/app/components/pages/node/actions/node-logs/node-logs.component.ts index 768ff21522..0b3df5dbbc 100644 --- a/static/skywire-manager-src/src/app/components/pages/node/actions/node-logs/node-logs.component.ts +++ b/static/skywire-manager-src/src/app/components/pages/node/actions/node-logs/node-logs.component.ts @@ -115,6 +115,24 @@ export class NodeLogsComponent implements OnInit, OnDestroy { // How much time has passed since the data was loaded. elapsedTime: ElapsedTime; + // Live tail polling. When true, the dialog re-fetches every + // livePollMs and appends only the entries newer than its cursor. + // Toggleable so the user can pause to copy lines / scroll back. + liveTail = true; + livePollMs = 2000; + // Diff-streaming cursor: the highest log_line received so far. + // Sent as ?since= on the next poll; the response carries only + // entries with log_line > cursor (plus the new cursor value). + private logCursor = 0; + // Number of entries the visor reported as dropped — i.e., the + // ring buffer wrapped past our cursor between polls. Surfaced + // in the UI as a "skipped N entries" hint. + totalDropped = 0; + // Track whether the scroll viewport is pinned to the bottom so + // we only auto-scroll on each refresh when the user was already + // tailing — scrolling up to read history shouldn't get yanked. + private wasAtBottom = true; + // How many entries the modal window can show, to avoid performance problems. maxElementsPerPage = 1000; @@ -201,24 +219,54 @@ export class NodeLogsComponent implements OnInit, OnDestroy { } /** - * Gets the logs from the back-end. - * @param delayMilliseconds Delay before getting the data, for retries after errors.. + * Gets the logs from the back-end. First call (cursor=0) fetches + * the full buffer via the diff endpoint; subsequent calls receive + * only the entries that arrived since the previous cursor. + * @param delayMilliseconds Delay before getting the data; used both + * for the initial load and for the live-tail polling cadence. */ loadData(delayMilliseconds: number) { this.removeSubscription(); - this.loading = true; + // Capture scroll position before the fetch so the post-receive + // auto-scroll only fires when the user is tailing. + this.captureScrollTailState(); + + this.loading = this.logEntries.length === 0; + const cursor = this.logCursor; this.subscription = of(1).pipe( - // Wait the delay. delay(delayMilliseconds), - // Load the data. The node pk is obtained from the currently openned node page. - mergeMap(() => this.nodeService.getRuntimeLogs(NodeComponent.getCurrentNodeKey())) + mergeMap(() => this.nodeService.getRuntimeLogsSince(NodeComponent.getCurrentNodeKey(), cursor)) ).subscribe( - (log) => this.onLogsReceived(log), + (delta: any) => this.onLogsDeltaReceived(delta), (err: OperationError) => this.onLogsError(err) ); } + /** + * User-toggleable live tail. When off, polling stops and the + * displayed buffer freezes at whatever was last fetched. + */ + toggleLiveTail() { + this.liveTail = !this.liveTail; + if (this.liveTail) { + this.loadData(0); + } else { + this.removeSubscription(); + } + } + + private captureScrollTailState() { + if (!this.content) { + this.wasAtBottom = true; + return; + } + const el = this.content.nativeElement as HTMLElement; + // Treat "near the bottom" (within 40px) as still tailing — the + // last log line's height plus a margin shouldn't break stickiness. + this.wasAtBottom = (el.scrollHeight - el.scrollTop - el.clientHeight) < 40; + } + private removeSubscription() { if (this.subscription) { this.subscription.unsubscribe(); @@ -231,12 +279,79 @@ export class NodeLogsComponent implements OnInit, OnDestroy { } } - private onLogsReceived(logs: any[]) { - let amount = 0; - this.totalLogs = logs.length; - // Check if the modal window can show all the entries. - this.hasMoreLogMessages = this.totalLogs - this.maxElementsPerPage > 0; + /** + * Diff-streaming receive path. The visor returns: + * { entries: string[] // each is a JSON-encoded log line + * latest: number, // new cursor value + * dropped: number } // entries we missed (ring wrapped past us) + * + * On the first call (cursor=0) entries is the entire buffer, so + * we replace logEntries. On subsequent calls we append only the + * new lines and trim from the head if we exceed maxElementsPerPage. + */ + private onLogsDeltaReceived(delta: any) { + if (!delta) { + this.loading = false; + this.scheduleNextPoll(); + return; + } + const isInitial = this.logCursor === 0; + this.logCursor = (typeof delta.latest === 'number') ? delta.latest : this.logCursor; + if (typeof delta.dropped === 'number' && delta.dropped > 0) { + this.totalDropped += delta.dropped; + } + + const entriesRaw: string[] = Array.isArray(delta.entries) ? delta.entries : []; + if (entriesRaw.length === 0) { + this.loading = false; + this.LoadingMoment = Date.now(); + this.shouldShowError = true; + this.startUpdatingTime(); + this.scheduleNextPoll(); + return; + } + + // Each entry is a JSON-stringified object. Parse and feed + // through the existing entry-decoding pipeline (level mapping, + // extras, etc.). Wrap in a try so a single malformed line + // doesn't break the whole batch. + const parsed: any[] = []; + for (const raw of entriesRaw) { + try { + parsed.push(JSON.parse(raw)); + } catch { + // skip malformed + } + } + + if (isInitial) { + this.logEntries = []; + } + this.appendParsedEntries(parsed); + + // Trim to keep the buffer bounded; matches the maxElementsPerPage + // cap the old replace-buffer flow used. + if (this.logEntries.length > this.maxElementsPerPage) { + this.logEntries = this.logEntries.slice(this.logEntries.length - this.maxElementsPerPage); + this.hasMoreLogMessages = true; + } + this.totalLogs = this.logCursor; + + this.loading = false; + this.LoadingMoment = Date.now(); + this.shouldShowError = true; + this.startUpdatingTime(); + this.filter(); + this.scheduleNextPoll(); + } + + private scheduleNextPoll() { + if (this.liveTail) { + this.loadData(this.livePollMs); + } + } + private appendParsedEntries(logs: any[]) { logs.forEach(e => { // Save all the basic data. const entry = new LogEntry(); @@ -300,20 +415,10 @@ export class NodeLogsComponent implements OnInit, OnDestroy { } } - // Add to the list. - if (this.totalLogs - amount <= this.maxElementsPerPage) { - this.logEntries.push(entry); - } - - amount += 1; + // Append. Bound trimming is the caller's responsibility + // (onLogsDeltaReceived caps logEntries to maxElementsPerPage). + this.logEntries.push(entry); }); - - this.loading = false; - this.LoadingMoment = Date.now(); - - this.startUpdatingTime(); - - this.filter(); } // Removes all the entries that do not meet the filter criteria. @@ -329,10 +434,16 @@ export class NodeLogsComponent implements OnInit, OnDestroy { } }); - // Scroll to the bottom. Use a timer to wait for the UI to be updated. - setTimeout(() => { - (this.content.nativeElement as HTMLElement).scrollTop = (this.content.nativeElement as HTMLElement).scrollHeight; - }); + // Auto-scroll only if the user was already tailing before this + // refresh; otherwise leave their scroll position alone so they + // can read history without getting yanked. + if (this.wasAtBottom) { + setTimeout(() => { + if (this.content) { + (this.content.nativeElement as HTMLElement).scrollTop = (this.content.nativeElement as HTMLElement).scrollHeight; + } + }); + } } // Updates the text which says how much time has passed since the data was loaded. It does it diff --git a/static/skywire-manager-src/src/app/components/pages/node/apps/node-apps-list/node-apps-list.component.ts b/static/skywire-manager-src/src/app/components/pages/node/apps/node-apps-list/node-apps-list.component.ts index a441707202..48a8c19390 100644 --- a/static/skywire-manager-src/src/app/components/pages/node/apps/node-apps-list/node-apps-list.component.ts +++ b/static/skywire-manager-src/src/app/components/pages/node/apps/node-apps-list/node-apps-list.component.ts @@ -406,18 +406,9 @@ export class NodeAppsListComponent implements OnInit, OnDestroy { } }); - if (startApps) { - this.changeAppsValRecursively(elementsToChange, false, startApps); - } else { - // Ask for confirmation if the apps are going to be stopped. - const confirmationDialog = GeneralUtils.createConfirmationDialog(this.dialog, 'apps.stop-selected-confirmation'); - - confirmationDialog.componentInstance.operationAccepted.subscribe(() => { - confirmationDialog.componentInstance.showProcessing(); - - this.changeAppsValRecursively(elementsToChange, false, startApps, confirmationDialog); - }); - } + // No confirmation modal — start/stop are reversible (start the + // app again to undo a stop) and the snackbar reports completion. + this.changeAppsValRecursively(elementsToChange, false, startApps); } /** @@ -425,7 +416,7 @@ export class NodeAppsListComponent implements OnInit, OnDestroy { */ changeAutostartOfSelected(autostart: boolean) { const elementsToChange: string[] = []; - // Ignore all elements shich already have the desired settings applied. + // Ignore all elements which already have the desired settings applied. this.selections.forEach((val, key) => { if (val) { if ((autostart && !this.appsMap.get(key).autostart) || (!autostart && this.appsMap.get(key).autostart)) { @@ -433,17 +424,13 @@ export class NodeAppsListComponent implements OnInit, OnDestroy { } } }); + if (elementsToChange.length === 0) { + return; + } - // Ask for confirmation. - const confirmationDialog = GeneralUtils.createConfirmationDialog( - this.dialog, autostart ? 'apps.enable-autostart-selected-confirmation' : 'apps.disable-autostart-selected-confirmation' - ); - - confirmationDialog.componentInstance.operationAccepted.subscribe(() => { - confirmationDialog.componentInstance.showProcessing(); - - this.changeAppsValRecursively(elementsToChange, true, autostart, confirmationDialog); - }); + // No confirmation modal — autostart is reversible and the + // snackbar confirms each completed batch. + this.changeAppsValRecursively(elementsToChange, true, autostart, null); } /** @@ -486,44 +473,24 @@ export class NodeAppsListComponent implements OnInit, OnDestroy { } /** - * Starts or stops a specific app. + * Starts or stops a specific app. No confirmation modal — + * reversible by starting/stopping again; snackbar reports it. */ changeAppState(app: Application): void { - if (app.status === 0 || app.status === 2) { - this.changeSingleAppVal( - this.startChangingAppState(app.name, true) - ); - } else { - // Ask for confirmation if the app is going to be stopped. - const confirmationDialog = GeneralUtils.createConfirmationDialog(this.dialog, 'apps.stop-confirmation'); - - confirmationDialog.componentInstance.operationAccepted.subscribe(() => { - confirmationDialog.componentInstance.showProcessing(); - - this.changeSingleAppVal( - this.startChangingAppState(app.name, false), - confirmationDialog - ); - }); - } + const wantStart = (app.status === 0 || app.status === 2); + this.changeSingleAppVal( + this.startChangingAppState(app.name, wantStart), + ); } /** - * Changes the autostart setting of a specific app. + * Changes the autostart setting of a specific app. Reversible — + * flip + snackbar, no modal. */ changeAppAutostart(app: Application): void { - const confirmationDialog = GeneralUtils.createConfirmationDialog( - this.dialog, app.autostart ? 'apps.disable-autostart-confirmation' : 'apps.enable-autostart-confirmation' + this.changeSingleAppVal( + this.startChangingAppAutostart(app.name, !app.autostart), ); - - confirmationDialog.componentInstance.operationAccepted.subscribe(() => { - confirmationDialog.componentInstance.showProcessing(); - - this.changeSingleAppVal( - this.startChangingAppAutostart(app.name, !app.autostart), - confirmationDialog - ); - }); } /** diff --git a/static/skywire-manager-src/src/app/components/pages/node/node-info/node-info-content/node-info-content.component.html b/static/skywire-manager-src/src/app/components/pages/node/node-info/node-info-content/node-info-content.component.html index 44bf2b1607..9df88eb2e3 100644 --- a/static/skywire-manager-src/src/app/components/pages/node/node-info/node-info-content/node-info-content.component.html +++ b/static/skywire-manager-src/src/app/components/pages/node/node-info/node-info-content/node-info-content.component.html @@ -96,122 +96,7 @@ }
-
- -
- {{ 'node.details.rewards-info.title' | translate }} - - {{ 'node.details.rewards-info.rewards-address' | translate }} - @if (node.rewardsAddress) { - - @if (!rewardsAddressIsXpub) { - - - open_in_browser - - - } - } - @if (!node.rewardsAddress) { - {{ 'node.details.rewards-info.not-registered' | translate }} - info - } - -
- - @if (node.rewardsAddress) { - {{ 'node.details.rewards-info.change-address-button' | translate }} - } - @if (!node.rewardsAddress) { - {{ 'node.details.rewards-info.set-address-button' | translate }} - } - -
-
-
- -
- {{ 'node.details.transports-info.title' | translate }} - - {{ 'node.details.transports-info.total' | translate }} - - {{ transportStats.total }} - @if (transportStats.byType.length > 0) { - (@for (stat of transportStats.byType; track stat; let last = $last) { - {{ stat.type }}: {{ stat.count }}@if (!last) { - , - } - }) - } - - - - {{ 'node.details.transports-info.autoconnect' | translate }} - {{ ('node.details.transports-info.' + (node.autoconnectTransports ? 'enabled' : 'disabled')) | translate }} - info - -
- - {{ ('node.details.transports-info.' + (node.autoconnectTransports ? 'disable' : 'enable') + '-button') | translate }} - -
- - {{ 'node.details.transports-info.is-public' | translate }} - {{ ('node.details.transports-info.public-' + (isPublic ? 'enabled' : 'disabled')) | translate }} - info - -
- - {{ ('node.details.transports-info.public-' + (isPublic ? 'disable' : 'enable') + '-button') | translate }} - -
-
-
- -
- {{ 'node.details.router-info.title' | translate }} - - {{ 'node.details.router-info.min-hops' | translate }} - {{ node.minHops }} - -
- - {{ 'node.details.router-info.change-config-button' | translate }} - -
-
-
- -
- {{ 'node.details.node-health.title' | translate }} - - {{ 'node.details.node-health.services' | translate }} - - {{ nodeHealthText | translate }} - - @if (node.health?.uptimeTrackerHealth) { - - {{ 'node.details.node-health.uptime-tracker' | translate }} - - {{ subHealthText(node.health?.uptimeTrackerHealth) | translate }} - - } - @if (node.health?.autoconnectHealth) { - - {{ 'node.details.node-health.autoconnect' | translate }} - - {{ subHealthText(node.health?.autoconnectHealth) | translate }} - - } - @if (node.health?.transportabilityHealth) { - - {{ 'node.details.node-health.transportability' | translate }} - - {{ subHealthText(node.health?.transportabilityHealth) | translate }} - - } -
- + @if (ports.length > 0) {
@@ -230,36 +115,16 @@ }
} - +
- {{ 'node.details.config.title' | translate }} -
- - {{ 'node.details.config.view-button' | translate }} - -
- @if (showRawConfig && rawConfig) { + + {{ showConfigSection ? 'expand_more' : 'chevron_right' }} + {{ 'node.details.config.title' | translate }} + + @if (showConfigSection && rawConfig) {
{{ rawConfig }}
}
- - @if (node.isHypervisor) { -
-
- {{ 'node.details.tpviz.title' | translate }} -
- - {{ 'node.details.tpviz.open' | translate }} - -
-
- } -
- -
- {{ 'node.details.node-traffic-data' | translate }} - -
} diff --git a/static/skywire-manager-src/src/app/components/pages/node/node-info/node-info-content/node-info-content.component.scss b/static/skywire-manager-src/src/app/components/pages/node/node-info/node-info-content/node-info-content.component.scss index d68dc4a2b6..5ce9fc6466 100644 --- a/static/skywire-manager-src/src/app/components/pages/node/node-info/node-info-content/node-info-content.component.scss +++ b/static/skywire-manager-src/src/app/components/pages/node/node-info/node-info-content/node-info-content.component.scss @@ -210,3 +210,63 @@ font-weight: 600; } } + + +// Inline edit + form helpers (replaces several modal dialogs). +.inline-edit-btn { + margin-left: 4px; + height: 24px; + width: 24px; + line-height: 24px; + opacity: 0.7; + &:hover { opacity: 1; } +} + +.toggle-line { + display: flex; + align-items: center; + gap: 8px; + .info-tip { + opacity: 0.5; + font-size: 16px; + cursor: help; + } +} + +.inline-form { + display: flex; + flex-direction: column; + gap: 8px; + margin-top: 6px; + margin-bottom: 6px; + + .inline-form-field { width: 100%; } + .inline-form-field-sm { width: 120px; } + .inline-form-actions { + display: flex; + gap: 8px; + } +} + +.collapsible-link { + cursor: pointer; + user-select: none; + display: flex; + align-items: center; + gap: 4px; + margin-top: 6px; + opacity: 0.8; + &:hover { opacity: 1; } +} + +.reward-rules { + background: rgba(0, 0, 0, 0.25); + padding: 8px 10px; + margin: 6px 0; + font-size: 12px; + max-height: 360px; + overflow: auto; + white-space: pre-wrap; + word-break: break-word; +} + diff --git a/static/skywire-manager-src/src/app/components/pages/node/node-info/node-info-content/node-info-content.component.ts b/static/skywire-manager-src/src/app/components/pages/node/node-info/node-info-content/node-info-content.component.ts index 4e159de0e4..5af970fb85 100644 --- a/static/skywire-manager-src/src/app/components/pages/node/node-info/node-info-content/node-info-content.component.ts +++ b/static/skywire-manager-src/src/app/components/pages/node/node-info/node-info-content/node-info-content.component.ts @@ -7,19 +7,15 @@ import { EditLabelComponent } from 'src/app/components/layout/edit-label/edit-la import { NodeComponent } from '../../node.component'; import TimeUtils, { ElapsedTime } from 'src/app/utils/timeUtils'; import { LabeledElementTypes, StorageService } from 'src/app/services/storage.service'; -import { KnownHealthStatuses } from 'src/app/services/node.service'; -import { RouterConfigComponent, RouterConfigParams } from './router-config/router-config.component'; -import GeneralUtils from 'src/app/utils/generalUtils'; -import { TransportService } from 'src/app/services/transport.service'; import { SnackbarService } from 'src/app/services/snackbar.service'; import { ApiService } from 'src/app/services/api.service'; -import { OperationError } from 'src/app/utils/operation-error'; -import { processServiceError } from 'src/app/utils/errors'; -import { RewardsAddressComponent, RewardsAddressConfigParams } from './rewards-address-config/rewards-address-config.component'; -import { TrafficData } from 'src/app/services/single-node-data.service'; /** - * Shows the basic info of a node. + * Shows the basic info of a node. The reward-address management, + * transports summary + toggles, and router/min-hops control used to + * live here too — those moved out to their own dedicated tabs + * (Rewards / Transports / Routing) so the Info surface stays a + * read-only identity card. */ @Component({ selector: 'app-node-info-content', @@ -31,90 +27,27 @@ export class NodeInfoContentComponent implements OnDestroy { @Input() set nodeInfo(val: Node) { this.node = val; this.timeOnline = TimeUtils.getElapsedTime(val.secondsOnline); - this.transportStats = this.computeTransportStats(); - - if (val.health && val.health.servicesHealth === KnownHealthStatuses.Healthy) { - this.nodeHealthText = 'node.statuses.online'; - this.nodeHealthClass = 'dot-green'; - } else if (val.health && val.health.servicesHealth === KnownHealthStatuses.Unhealthy) { - this.nodeHealthText = 'node.statuses.partially-online'; - this.nodeHealthClass = 'dot-yellow blinking'; - } else if (val.health && val.health.servicesHealth === KnownHealthStatuses.Connecting) { - this.nodeHealthText = 'node.statuses.connecting'; - this.nodeHealthClass = 'dot-outline-gray'; - } else { - this.nodeHealthText = 'node.statuses.unknown'; - this.nodeHealthClass = 'dot-outline-gray'; - } - - // Fetch ports for this visor. this.fetchPorts(val.localPk); - // Fetch public visor status. - this.fetchPublicStatus(val.localPk); - } - - @Input() trafficData: TrafficData; - - // True when the configured reward "address" is actually a BIP44 - // extended public key (xpub...) rather than a plain Skycoin - // address. The Skycoin block explorer doesn't take xpubs, so the - // template suppresses the explorer link in that case. - get rewardsAddressIsXpub(): boolean { - const addr = (this.node && this.node.rewardsAddress) || ''; - return addr.startsWith('xpub'); } node: Node; timeOnline: ElapsedTime; - transportStats: { total: number, byType: { type: string, count: number }[] } = { total: 0, byType: [] }; - nodeHealthClass: string; - nodeHealthText: string; ports: { name: string, value: string }[] = []; showPorts = false; - isPublic = false; - showRawConfig = false; rawConfig = ''; - private autoconnectSubscription: Subscription; - private publicToggleSubscription: Subscription; + // Collapsible Runtime Configuration section (matches Ports pattern). + showConfigSection = false; constructor( private dialog: MatDialog, public storageService: StorageService, - private transportService: TransportService, private snackbarService: SnackbarService, private apiService: ApiService, - ) { } + ) {} ngOnDestroy() { - if (this.autoconnectSubscription) { - this.autoconnectSubscription.unsubscribe(); - } - if (this.publicToggleSubscription) { - this.publicToggleSubscription.unsubscribe(); - } - } - - // Map a per-subsystem health value string to a CSS dot class. - subHealthClass(v: string | undefined): string { - if (v === KnownHealthStatuses.Healthy) { - return 'dot-green'; - } - if (v === KnownHealthStatuses.Unhealthy) { - return 'dot-yellow blinking'; - } - return 'dot-outline-gray'; - } - - // Map a per-subsystem health value string to its translation key. - subHealthText(v: string | undefined): string { - if (v === KnownHealthStatuses.Healthy) { - return 'node.statuses.online'; - } - if (v === KnownHealthStatuses.Unhealthy) { - return 'node.statuses.partially-online'; - } - return 'node.statuses.connecting'; + // Nothing to unsubscribe — fetchPorts/fetchConfig use one-shot HTTP. } showEditLabelDialog() { @@ -134,33 +67,10 @@ export class NodeInfoContentComponent implements OnDestroy { }); } - // Opens the modal window for changing the rewards address. - changeRewardsAddressConfig() { - const params: RewardsAddressConfigParams = {nodePk: this.node.localPk, currentAddress: this.node.rewardsAddress}; - RewardsAddressComponent.openDialog(this.dialog, params).afterClosed().subscribe((changed: boolean) => { - if (changed) { - NodeComponent.refreshCurrentDisplayedData(); - } - }); - } - - changeRouterConfig() { - const params: RouterConfigParams = {nodePk: this.node.localPk, minHops: this.node.minHops}; - RouterConfigComponent.openDialog(this.dialog, params).afterClosed().subscribe((changed: boolean) => { - if (changed) { - NodeComponent.refreshCurrentDisplayedData(); - } - }); - } - - /** - * Returns if the node is connected to a valid DMSG server PK. - */ hasDmsgServer() { if (!this.node || this.node.dmsgServerPk.replace(/0/g, '').length === 0) { return false; } - return true; } @@ -172,35 +82,9 @@ export class NodeInfoContentComponent implements OnDestroy { if (ms < 10) { return ms.toFixed(2) + 'ms'; } - return Math.round(ms) + 'ms'; } - /** - * Returns transport statistics: total count and counts by type. - */ - private computeTransportStats(): { total: number, byType: { type: string, count: number }[] } { - if (!this.node || !this.node.transports) { - return { total: 0, byType: [] }; - } - - const typeCounts: { [key: string]: number } = {}; - for (const transport of this.node.transports) { - typeCounts[transport.type] = (typeCounts[transport.type] || 0) + 1; - } - - const byType = Object.entries(typeCounts) - .map(([type, count]) => { -return { type: type, count: count } -}) - .sort((a, b) => b.count - a.count); // Sort by count descending - - return { total: this.node.transports.length, byType: byType }; - } - - /** - * Fetches ports for the given visor. - */ private fetchPorts(pk: string) { this.apiService.get(`visors/${pk}/ports`).subscribe((result: any) => { if (result && typeof result === 'object') { @@ -216,90 +100,15 @@ return { type: type, count: count } }); } - /** - * Fetches public visor status. - */ - private fetchPublicStatus(pk: string) { - this.apiService.get(`visors/${pk}/public`).subscribe((result: any) => { - this.isPublic = result && result.is_public === true; - }, () => { - this.isPublic = false; - }); - } - - /** - * Toggles public visor status. - */ - changePublicConfig() { - const confirmationDialog = GeneralUtils.createConfirmationDialog( - this.dialog, - this.isPublic ? 'node.details.transports-info.public-disable-confirmation' : 'node.details.transports-info.public-enable-confirmation' - ); - - confirmationDialog.componentInstance.operationAccepted.subscribe(() => { - confirmationDialog.componentInstance.showProcessing(); - - this.publicToggleSubscription = this.apiService.put(`visors/${this.node.localPk}/public`, { is_public: !this.isPublic }).subscribe(() => { - confirmationDialog.close(); - this.snackbarService.showDone( - this.isPublic ? 'node.details.transports-info.public-disable-done' : 'node.details.transports-info.public-enable-done' - ); - this.isPublic = !this.isPublic; - }, (err: OperationError) => { - err = processServiceError(err); - confirmationDialog.componentInstance.showDone('confirmation.error-header-text', err.translatableErrorMsg); - }); - }); - } - - /** - * Fetches and displays the runtime config. - */ - viewConfig() { - if (this.showRawConfig) { - this.showRawConfig = false; - return; + /** Collapsible config section toggle. Fetches the runtime config + * the first time the section is opened, then caches it. */ + onConfigToggle() { + this.showConfigSection = !this.showConfigSection; + if (this.showConfigSection && !this.rawConfig) { + this.apiService.get(`visors/${this.node.localPk}/runtime-config`).subscribe( + (result: any) => { this.rawConfig = JSON.stringify(result, null, 2); }, + () => { this.snackbarService.showError('common.loading-error'); }, + ); } - this.apiService.get(`visors/${this.node.localPk}/runtime-config`).subscribe((result: any) => { - this.rawConfig = JSON.stringify(result, null, 2); - this.showRawConfig = true; - }, () => { - this.snackbarService.showError('common.loading-error'); - }); - } - - /** - * Opens the transport visualizer in a new window. - */ - openTpViz() { - window.open('/tp-viz/', '_blank'); - } - - /** - * Enables or disables the transport.public_autoconnect setting. - */ - changeTransportsConfig() { - const confirmationDialog = GeneralUtils.createConfirmationDialog( - this.dialog, - this.node.autoconnectTransports ? 'node.details.transports-info.disable-confirmation' : 'node.details.transports-info.enable-confirmation' - ); - - confirmationDialog.componentInstance.operationAccepted.subscribe(() => { - confirmationDialog.componentInstance.showProcessing(); - - const operation = this.transportService.changeAutoconnectSetting(this.node.localPk, !this.node.autoconnectTransports); - this.autoconnectSubscription = operation.subscribe(() => { - confirmationDialog.close(); - this.snackbarService.showDone( - this.node.autoconnectTransports ? 'node.details.transports-info.disable-done' : 'node.details.transports-info.enable-done' - ); - - NodeComponent.refreshCurrentDisplayedData(); - }, (err: OperationError) => { - err = processServiceError(err); - - confirmationDialog.componentInstance.showDone('confirmation.error-header-text', err.translatableErrorMsg); - }); - }); } } diff --git a/static/skywire-manager-src/src/app/components/pages/node/node-info/node-info.component.html b/static/skywire-manager-src/src/app/components/pages/node/node-info/node-info.component.html index e6966aa0e7..56b43149eb 100644 --- a/static/skywire-manager-src/src/app/components/pages/node/node-info/node-info.component.html +++ b/static/skywire-manager-src/src/app/components/pages/node/node-info/node-info.component.html @@ -1 +1 @@ - + diff --git a/static/skywire-manager-src/src/app/components/pages/node/node-info/node-info.component.ts b/static/skywire-manager-src/src/app/components/pages/node/node-info/node-info.component.ts index 725ef5b397..68feb5a961 100644 --- a/static/skywire-manager-src/src/app/components/pages/node/node-info/node-info.component.ts +++ b/static/skywire-manager-src/src/app/components/pages/node/node-info/node-info.component.ts @@ -1,6 +1,5 @@ import { Component, OnInit, OnDestroy } from '@angular/core'; import { Subscription } from 'rxjs'; -import { TrafficData } from 'src/app/services/single-node-data.service'; import { Node } from '../../../../app.datatypes'; import { NodeComponent } from '../node.component'; @@ -17,25 +16,18 @@ import { PageBaseComponent } from 'src/app/utils/page-base'; }) export class NodeInfoComponent extends PageBaseComponent implements OnInit, OnDestroy { node: Node; - trafficData: TrafficData; private nodeSubscription: Subscription; - private trafficDataSubscription: Subscription; ngOnInit() { - // Get the node and data transmission data from the parent page. this.nodeSubscription = NodeComponent.currentNode.subscribe((node: Node) => { this.node = node; }); - this.trafficDataSubscription = NodeComponent.currentTrafficData.subscribe((data: TrafficData) => { - this.trafficData = data; - }); return super.ngOnInit(); } ngOnDestroy() { this.nodeSubscription.unsubscribe(); - this.trafficDataSubscription.unsubscribe(); } } diff --git a/static/skywire-manager-src/src/app/components/pages/node/node-resources/node-resources.component.html b/static/skywire-manager-src/src/app/components/pages/node/node-resources/node-resources.component.html new file mode 100644 index 0000000000..12ed20b7b0 --- /dev/null +++ b/static/skywire-manager-src/src/app/components/pages/node/node-resources/node-resources.component.html @@ -0,0 +1,3 @@ +@if (node) { + +} diff --git a/static/skywire-manager-src/src/app/components/pages/node/node-resources/node-resources.component.ts b/static/skywire-manager-src/src/app/components/pages/node/node-resources/node-resources.component.ts new file mode 100644 index 0000000000..71073da8a7 --- /dev/null +++ b/static/skywire-manager-src/src/app/components/pages/node/node-resources/node-resources.component.ts @@ -0,0 +1,32 @@ +import { Component, OnDestroy, OnInit } from '@angular/core'; +import { Subscription } from 'rxjs'; + +import { Node } from '../../../../app.datatypes'; +import { NodeComponent } from '../node.component'; +import { PageBaseComponent } from 'src/app/utils/page-base'; + +/** + * Visor "Resources" tab — host + process resource monitor on its + * own page. Wraps app-resource-monitor with [expanded]=true so the + * panel polls immediately when the user navigates here. + */ +@Component({ + selector: 'app-node-resources', + templateUrl: './node-resources.component.html', + standalone: false, +}) +export class NodeResourcesComponent extends PageBaseComponent implements OnInit, OnDestroy { + node: Node; + private dataSubscription: Subscription; + + ngOnInit() { + this.dataSubscription = NodeComponent.currentNode.subscribe((node: Node) => { + this.node = node; + }); + return super.ngOnInit(); + } + + ngOnDestroy() { + if (this.dataSubscription) { this.dataSubscription.unsubscribe(); } + } +} diff --git a/static/skywire-manager-src/src/app/components/pages/node/node.component.html b/static/skywire-manager-src/src/app/components/pages/node/node.component.html index 4ed97474d4..d2dc3655e6 100644 --- a/static/skywire-manager-src/src/app/components/pages/node/node.component.html +++ b/static/skywire-manager-src/src/app/components/pages/node/node.component.html @@ -4,6 +4,8 @@
-
+ +
-
- -
- - - -
@@ -38,6 +36,8 @@
+
+ {{ expanded ? 'expand_less' : 'expand_more' }} + {{ 'node.resource-monitor.title' | translate }} + @if (host) { + + {{ host.hostname }} · {{ host.platform || host.os }} {{ host.arch }} · uptime {{ fmtUptime(host.uptime_seconds) }} + + } +
+ + @if (expanded) { +
+ + {{ 'node.resource-monitor.tab-host' | translate }} + + + {{ 'node.resource-monitor.tab-process' | translate }} + +
+ + @if (activeTab === 'host') { +
+
+
+ {{ 'node.resource-monitor.cpu' | translate }} + {{ host ? (host.cpu_percent | number:'1.0-1') : '-' }}% +
+ + @if (host) { +
{{ host.cpu_logical_count }} cores · visor {{ procCPUPercent | number:'1.0-1' }}%
+ } +
+ +
+
+ {{ 'node.resource-monitor.memory' | translate }} + {{ host ? (host.mem_percent | number:'1.0-1') : '-' }}% +
+ + @if (host) { +
+ {{ fmtBytes(host.mem_used) }} / {{ fmtBytes(host.mem_total) }} + · visor RSS {{ procMemRssMB | number:'1.0-0' }}M +
+ } +
+ +
+
+ {{ 'node.resource-monitor.disk' | translate }} + {{ host && host.disk_percent ? (host.disk_percent | number:'1.0-1') : '-' }}% +
+ + @if (host && host.disk_total) { +
{{ fmtBytes(host.disk_used) }} / {{ fmtBytes(host.disk_total) }} on /
+ } +
+ +
+
+ {{ 'node.resource-monitor.net-rx' | translate }} + {{ fmtBps(netRxBpsSeries[netRxBpsSeries.length - 1]) }} +
+ +
{{ host ? fmtBytes(host.net_bytes_recv) : '-' }} total
+
+ +
+
+ {{ 'node.resource-monitor.net-tx' | translate }} + {{ fmtBps(netTxBpsSeries[netTxBpsSeries.length - 1]) }} +
+ +
{{ host ? fmtBytes(host.net_bytes_sent) : '-' }} total
+
+ +
+
+ {{ 'node.resource-monitor.threads' | translate }} + {{ host && host.process ? host.process.num_threads : '-' }} +
+ + @if (host && host.process) { +
+ fds {{ host.process.num_fds || '-' }} · conns {{ host.process.open_conns || 0 }} +
+ } +
+
+ } + + @if (activeTab === 'process') { +
+
+
+ {{ 'node.resource-monitor.heap' | translate }} + {{ proc ? ((proc.mem_heap_alloc / 1024 / 1024) | number:'1.0-1') : '-' }}M +
+ + @if (proc) { +
heap_sys {{ fmtBytes(proc.mem_heap_sys) }} · sys {{ fmtBytes(proc.mem_sys) }}
+ } +
+ +
+
+ {{ 'node.resource-monitor.goroutines' | translate }} + {{ proc ? proc.num_goroutine : '-' }} +
+ + @if (proc) { +
GOMAXPROCS {{ proc.gomaxprocs }} · {{ proc.go_version }}
+ } +
+ +
+
+ {{ 'node.resource-monitor.gc' | translate }} + {{ gcSeries[gcSeries.length - 1] || 0 }}/s +
+ + @if (proc) { +
total {{ proc.num_gc }} GCs · alloc {{ fmtBytes(proc.mem_total_alloc) }} since start
+ } +
+
+ } + } +
diff --git a/static/skywire-manager-src/src/app/components/pages/node/resource-monitor/resource-monitor.component.scss b/static/skywire-manager-src/src/app/components/pages/node/resource-monitor/resource-monitor.component.scss new file mode 100644 index 0000000000..771e04c111 --- /dev/null +++ b/static/skywire-manager-src/src/app/components/pages/node/resource-monitor/resource-monitor.component.scss @@ -0,0 +1,89 @@ +.resource-monitor { + border-top: 1px solid rgba(255, 255, 255, 0.08); + padding-top: 12px; +} + +.rm-header { + display: flex; + align-items: center; + gap: 8px; + cursor: pointer; + user-select: none; + padding: 4px 0; +} + +.rm-toggle-icon { + font-size: 22px; +} + +.rm-host-summary { + margin-left: auto; + opacity: 0.6; + font-size: 12px; +} + +.rm-tabs { + display: flex; + gap: 16px; + margin: 8px 0 12px; + font-size: 13px; +} + +.rm-tab { + cursor: pointer; + padding: 4px 8px; + border-radius: 4px; + opacity: 0.6; + + &.active { + opacity: 1; + background: rgba(255, 255, 255, 0.06); + } + + &:hover { + opacity: 0.9; + } +} + +.rm-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); + gap: 12px; +} + +.rm-cell { + background: rgba(255, 255, 255, 0.03); + border: 1px solid rgba(255, 255, 255, 0.06); + border-radius: 6px; + padding: 8px 10px; + min-height: 110px; + display: flex; + flex-direction: column; +} + +.rm-cell-header { + display: flex; + justify-content: space-between; + align-items: baseline; + margin-bottom: 2px; +} + +.rm-cell-label { + font-size: 11px; + text-transform: uppercase; + opacity: 0.7; + letter-spacing: 0.5px; +} + +.rm-cell-value { + font-size: 14px; + font-weight: 500; + font-variant-numeric: tabular-nums; +} + +.rm-cell-foot { + margin-top: 2px; + font-size: 11px; + opacity: 0.5; + font-variant-numeric: tabular-nums; +} diff --git a/static/skywire-manager-src/src/app/components/pages/node/resource-monitor/resource-monitor.component.ts b/static/skywire-manager-src/src/app/components/pages/node/resource-monitor/resource-monitor.component.ts new file mode 100644 index 0000000000..7c178a8899 --- /dev/null +++ b/static/skywire-manager-src/src/app/components/pages/node/resource-monitor/resource-monitor.component.ts @@ -0,0 +1,266 @@ +import { Component, Input, OnDestroy, OnInit, ChangeDetectorRef } from '@angular/core'; +import { Subscription, timer } from 'rxjs'; + +import { NodeService } from '../../../../services/node.service'; + +/** + * Resource Monitor — psutil-style live view of host + visor process + * resource utilization. Backed by the visor's HostStats (gopsutil) + * and RuntimeStats endpoints, polled on a 1s cadence. + * + * Design notes: + * - Two tabs: "Host" (CPU%, mem%, disk%, net rate) and "Process" + * (heap MB, goroutines, GC count, num threads). + * - 60-second rolling window of samples per metric. Older samples + * drop off the front. + * - Network is rate-derived: HostStats returns cumulative byte + * totals; we diff successive samples to get Bps. Same shape + * for tx/rx; one chart with two series would be nicer than + * two separate charts but the existing line-chart component + * only takes a single series — keeping symmetry simple. + * - The panel collapses by default to keep the visor detail + * page light; toggling it open starts polling. + */ + +interface HostStats { + hostname?: string; + os?: string; + platform?: string; + arch?: string; + uptime_seconds?: number; + cpu_percent: number; + cpu_count: number; + cpu_logical_count: number; + mem_total: number; + mem_used: number; + mem_available: number; + mem_percent: number; + swap_total?: number; + swap_used?: number; + swap_percent?: number; + disk_total?: number; + disk_used?: number; + disk_free?: number; + disk_percent?: number; + net_bytes_sent: number; + net_bytes_recv: number; + net_packets_sent?: number; + net_packets_recv?: number; + process?: { + pid: number; + cpu_percent: number; + mem_rss: number; + mem_vms?: number; + num_threads?: number; + num_fds?: number; + start_time_ms?: number; + open_conns?: number; + }; +} + +interface RuntimeStats { + num_goroutine: number; + num_cpu: number; + gomaxprocs: number; + go_version: string; + mem_alloc: number; + mem_total_alloc: number; + mem_sys: number; + mem_heap_alloc: number; + mem_heap_sys: number; + num_gc: number; +} + +const WINDOW = 60; // samples kept (≈ 60s at 1s polling) + +@Component({ + selector: 'app-resource-monitor', + templateUrl: './resource-monitor.component.html', + styleUrls: ['./resource-monitor.component.scss'], + standalone: false, +}) +export class ResourceMonitorComponent implements OnInit, OnDestroy { + @Input() nodeKey: string; + /** When true, the panel starts expanded + polling on init. Used + * by the dedicated Resources tab; right-bar embeds keep the + * collapsed-by-default behavior. */ + @Input() openByDefault = false; + + // UI state + expanded = false; + activeTab: 'host' | 'process' = 'host'; + + // Latest absolute snapshots (for the "current value" labels next + // to each chart). + host: HostStats | null = null; + proc: RuntimeStats | null = null; + procCPUPercent = 0; + procMemRssMB = 0; + + // Rolling windows. Each is a number[] of length up to WINDOW. + cpuPctSeries: number[] = []; + memPctSeries: number[] = []; + diskPctSeries: number[] = []; + netRxBpsSeries: number[] = []; + netTxBpsSeries: number[] = []; + goroutinesSeries: number[] = []; + heapMbSeries: number[] = []; + gcSeries: number[] = []; // GCs/sec (derived) + threadsSeries: number[] = []; + + // Diff state for rate-derived series. + private prevNetRx = 0; + private prevNetTx = 0; + private prevGc = 0; + private prevSampleAtMs = 0; + private firstHostSample = true; + private firstProcSample = true; + + private hostSub: Subscription; + private procSub: Subscription; + private pollSub: Subscription; + + constructor( + private nodeService: NodeService, + private cdr: ChangeDetectorRef, + ) {} + + ngOnInit() { + if (this.openByDefault) { + this.expanded = true; + this.startPolling(); + } + } + + ngOnDestroy() { + this.stopPolling(); + } + + toggleExpanded() { + this.expanded = !this.expanded; + if (this.expanded) { + this.startPolling(); + } else { + this.stopPolling(); + } + } + + setTab(tab: 'host' | 'process') { + this.activeTab = tab; + } + + /** Format a byte count as a human-readable string (B/K/M/G). */ + fmtBytes(n: number): string { + if (n == null || isNaN(n)) { return '-'; } + if (n >= 1e9) { return (n / 1e9).toFixed(1) + 'G'; } + if (n >= 1e6) { return (n / 1e6).toFixed(1) + 'M'; } + if (n >= 1e3) { return (n / 1e3).toFixed(1) + 'K'; } + return n.toFixed(0) + 'B'; + } + + fmtBps(n: number): string { + if (n == null || isNaN(n) || n < 0) { return '0B/s'; } + return this.fmtBytes(n) + '/s'; + } + + fmtUptime(s?: number): string { + if (!s) { return '-'; } + const d = Math.floor(s / 86400); + const h = Math.floor((s % 86400) / 3600); + const m = Math.floor((s % 3600) / 60); + if (d > 0) { return `${d}d ${h}h`; } + if (h > 0) { return `${h}h ${m}m`; } + return `${m}m`; + } + + private startPolling() { + this.stopPolling(); + // Reset diff state so the first sample after re-open doesn't + // produce a giant rate jump. + this.firstHostSample = true; + this.firstProcSample = true; + this.prevSampleAtMs = 0; + + // Tick every second. Each tick fires both probes in parallel. + this.pollSub = timer(0, 1000).subscribe(() => { + this.pollHost(); + this.pollProc(); + }); + } + + private stopPolling() { + if (this.pollSub) { this.pollSub.unsubscribe(); this.pollSub = null; } + if (this.hostSub) { this.hostSub.unsubscribe(); this.hostSub = null; } + if (this.procSub) { this.procSub.unsubscribe(); this.procSub = null; } + } + + private pollHost() { + if (!this.nodeKey) { return; } + if (this.hostSub) { this.hostSub.unsubscribe(); } + this.hostSub = this.nodeService.getHostStats(this.nodeKey).subscribe( + (s: HostStats) => this.onHostStats(s), + // Silent error — keep polling; the snackbar would scream once + // per second on a broken visor connection. + () => {}, + ); + } + + private pollProc() { + if (!this.nodeKey) { return; } + if (this.procSub) { this.procSub.unsubscribe(); } + this.procSub = this.nodeService.getRuntimeStats(this.nodeKey).subscribe( + (s: RuntimeStats) => this.onRuntimeStats(s), + () => {}, + ); + } + + private onHostStats(s: HostStats) { + this.host = s; + this.procCPUPercent = s.process ? s.process.cpu_percent : 0; + this.procMemRssMB = s.process ? s.process.mem_rss / 1024 / 1024 : 0; + + const nowMs = Date.now(); + let dtSec = (nowMs - this.prevSampleAtMs) / 1000; + if (dtSec <= 0 || dtSec > 5) { dtSec = 1; } // clamp on cold-start + this.prevSampleAtMs = nowMs; + + // Gauges — push the absolute values straight in. + this.push(this.cpuPctSeries, s.cpu_percent); + this.push(this.memPctSeries, s.mem_percent); + this.push(this.diskPctSeries, s.disk_percent || 0); + this.push(this.threadsSeries, s.process ? s.process.num_threads || 0 : 0); + + // Rates — diff cumulative counters. Skip the first sample so we + // don't emit a spike based on an uninitialized previous value. + if (this.firstHostSample) { + this.firstHostSample = false; + } else { + const rx = Math.max(0, s.net_bytes_recv - this.prevNetRx) / dtSec; + const tx = Math.max(0, s.net_bytes_sent - this.prevNetTx) / dtSec; + this.push(this.netRxBpsSeries, rx); + this.push(this.netTxBpsSeries, tx); + } + this.prevNetRx = s.net_bytes_recv; + this.prevNetTx = s.net_bytes_sent; + this.cdr.markForCheck(); + } + + private onRuntimeStats(s: RuntimeStats) { + this.proc = s; + this.push(this.goroutinesSeries, s.num_goroutine); + this.push(this.heapMbSeries, s.mem_heap_alloc / 1024 / 1024); + if (this.firstProcSample) { + this.firstProcSample = false; + } else { + // GCs/sec since last sample (typically very small, sometimes 0). + this.push(this.gcSeries, Math.max(0, s.num_gc - this.prevGc)); + } + this.prevGc = s.num_gc; + this.cdr.markForCheck(); + } + + private push(arr: number[], v: number) { + arr.push(v); + if (arr.length > WINDOW) { arr.shift(); } + } +} diff --git a/static/skywire-manager-src/src/app/components/pages/node/rewards/node-rewards.component.html b/static/skywire-manager-src/src/app/components/pages/node/rewards/node-rewards.component.html index fbf6a49bb1..75eeaa0a5d 100644 --- a/static/skywire-manager-src/src/app/components/pages/node/rewards/node-rewards.component.html +++ b/static/skywire-manager-src/src/app/components/pages/node/rewards/node-rewards.component.html @@ -1,3 +1,55 @@ + +
+
+ {{ 'node.details.rewards-info.title' | translate }} + + {{ 'node.details.rewards-info.rewards-address' | translate }} + @if (rewardsAddress) { + + @if (!rewardsAddressIsXpub) { + + + open_in_browser + + + } + } + @if (!rewardsAddress) { + {{ 'node.details.rewards-info.not-registered' | translate }} + info + } + + + @if (showRewardForm) { +
+ + {{ 'node.details.rewards-info.rewards-address' | translate }} + + +
+ + +
+
+ } + + {{ showRewardRules ? 'expand_more' : 'chevron_right' }} + {{ 'node.details.rewards-info.show-rules' | translate }} + + @if (showRewardRules) { +
{{ rewardRules || ('common.loading' | translate) }}
+ } +
+
+ +
diff --git a/static/skywire-manager-src/src/app/components/pages/node/rewards/node-rewards.component.ts b/static/skywire-manager-src/src/app/components/pages/node/rewards/node-rewards.component.ts index 32033015cd..a84b5ac32c 100644 --- a/static/skywire-manager-src/src/app/components/pages/node/rewards/node-rewards.component.ts +++ b/static/skywire-manager-src/src/app/components/pages/node/rewards/node-rewards.component.ts @@ -1,12 +1,16 @@ import { Component, OnInit, OnDestroy } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { ActivatedRoute } from '@angular/router'; -import { Subscription } from 'rxjs'; +import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; +import { Subscription, of } from 'rxjs'; import { catchError } from 'rxjs/operators'; -import { of } from 'rxjs'; import { NodeComponent } from '../node.component'; import { LabeledElementTypes, StorageService } from 'src/app/services/storage.service'; +import { NodeService } from 'src/app/services/node.service'; +import { SnackbarService } from 'src/app/services/snackbar.service'; +import { OperationError } from 'src/app/utils/operation-error'; +import { processServiceError } from 'src/app/utils/errors'; interface RewardDay { date: string; @@ -25,32 +29,56 @@ interface RewardDay { export class NodeRewardsComponent implements OnInit, OnDestroy { pk = ''; label = ''; + rewardsAddress = ''; + history: RewardDay[] = []; loading = false; days = 30; total = 0; errorMsg = ''; - private routeSub: Subscription; + // Address management (moved here from the Info tab so the Rewards + // tab is the single surface for everything reward-related). + showRewardForm = false; + rewardForm: UntypedFormGroup; + showRewardRules = false; + rewardRules: string | null = null; + + private nodeSub: Subscription; private dataSub: Subscription; + private saveRewardsSubscription: Subscription; + private rewardRulesSubscription: Subscription; constructor( private http: HttpClient, private route: ActivatedRoute, private nodeComponent: NodeComponent, private storageService: StorageService, - ) {} + private nodeService: NodeService, + private snackbarService: SnackbarService, + private formBuilder: UntypedFormBuilder, + ) { + this.rewardForm = this.formBuilder.group({ + address: ['', Validators.compose([Validators.minLength(20), Validators.maxLength(112)])], + }); + } ngOnInit() { this.pk = this.nodeComponent.node?.localPk || this.route.snapshot.parent?.paramMap.get('key') || ''; const labelInfo = this.storageService.getLabelInfo(this.pk); this.label = labelInfo?.label || ''; + // Pull the current reward address from the live node feed. + this.nodeSub = NodeComponent.currentNode.subscribe(node => { + this.rewardsAddress = node?.rewardsAddress || ''; + }); this.loadHistory(); } ngOnDestroy() { - this.routeSub?.unsubscribe(); + this.nodeSub?.unsubscribe(); this.dataSub?.unsubscribe(); + this.saveRewardsSubscription?.unsubscribe(); + this.rewardRulesSubscription?.unsubscribe(); } loadHistory() { @@ -90,4 +118,47 @@ export class NodeRewardsComponent implements OnInit, OnDestroy { if (!day.amount || day.amount === 0) { return 'No reward'; } return day.sent ? 'Sent' : 'Pending'; } + + /** True when the configured reward address is actually a BIP44 + * extended public key (xpub...). The Skycoin block explorer + * doesn't accept xpubs, so the template hides the explorer link. */ + get rewardsAddressIsXpub(): boolean { + return !!this.rewardsAddress && this.rewardsAddress.startsWith('xpub'); + } + + toggleRewardForm() { + this.showRewardForm = !this.showRewardForm; + if (this.showRewardForm) { + this.rewardForm.get('address').setValue(this.rewardsAddress || ''); + } + } + + submitRewardAddress() { + if (!this.rewardForm.valid) { return; } + const newAddr = (this.rewardForm.get('address').value || '').trim(); + const op = newAddr + ? this.nodeService.setRewardsAddress(this.pk, newAddr) + : this.nodeService.deleteRewardsAddress(this.pk); + this.saveRewardsSubscription = op.subscribe({ + next: () => { + this.snackbarService.showDone('rewards-address-config.done'); + this.showRewardForm = false; + NodeComponent.refreshCurrentDisplayedData(); + }, + error: (err: OperationError) => { + err = processServiceError(err); + this.snackbarService.showError(err); + }, + }); + } + + toggleRewardRules() { + this.showRewardRules = !this.showRewardRules; + if (this.showRewardRules && this.rewardRules === null) { + this.rewardRulesSubscription = this.nodeService.getRewardRules().subscribe( + (text: string) => { this.rewardRules = text || ''; }, + () => { this.rewardRules = ''; this.snackbarService.showError('common.loading-error'); }, + ); + } + } } diff --git a/static/skywire-manager-src/src/app/components/pages/node/routing/all-transports/all-transports.component.html b/static/skywire-manager-src/src/app/components/pages/node/routing/all-transports/all-transports.component.html index 3df765d4bb..3b89b09528 100644 --- a/static/skywire-manager-src/src/app/components/pages/node/routing/all-transports/all-transports.component.html +++ b/static/skywire-manager-src/src/app/components/pages/node/routing/all-transports/all-transports.component.html @@ -1,4 +1,38 @@ @if (node) { + +
+
+ {{ 'node.details.transports-info.title' | translate }} + + {{ 'node.details.transports-info.total' | translate }} + + {{ transportStats.total }} + @if (transportStats.byType.length > 0) { + (@for (stat of transportStats.byType; track stat; let last = $last) { + {{ stat.type }}: {{ stat.count }}@if (!last) { + , + } + }) + } + + + + {{ 'node.details.transports-info.autoconnect' | translate }} + + info + + + {{ 'node.details.transports-info.is-public' | translate }} + + info + +
+
+ + diff --git a/static/skywire-manager-src/src/app/components/pages/node/routing/all-transports/all-transports.component.ts b/static/skywire-manager-src/src/app/components/pages/node/routing/all-transports/all-transports.component.ts index 4de55d0548..1eff2020f0 100644 --- a/static/skywire-manager-src/src/app/components/pages/node/routing/all-transports/all-transports.component.ts +++ b/static/skywire-manager-src/src/app/components/pages/node/routing/all-transports/all-transports.component.ts @@ -4,9 +4,18 @@ import { Subscription } from 'rxjs'; import { Node } from '../../../../../app.datatypes'; import { NodeComponent } from '../../node.component'; import { PageBaseComponent } from 'src/app/utils/page-base'; +import { ApiService } from 'src/app/services/api.service'; +import { TransportService } from 'src/app/services/transport.service'; +import { SnackbarService } from 'src/app/services/snackbar.service'; +import { OperationError } from 'src/app/utils/operation-error'; +import { processServiceError } from 'src/app/utils/errors'; /** - * Page for showing the complete list of the transports of a node. + * Transports tab content for a single visor: a summary block with + * total count + per-type breakdown + autoconnect / public-visor + * toggles, followed by the full transport list. Replaces both the + * old "preview on Routing tab" embed and the paginated full-list + * page (showShortList=false renders the same table without slicing). */ @Component({ selector: 'app-all-transports', @@ -16,17 +25,82 @@ import { PageBaseComponent } from 'src/app/utils/page-base'; }) export class AllTransportsComponent extends PageBaseComponent implements OnInit, OnDestroy { node: Node; + transportStats: { total: number, byType: { type: string, count: number }[] } = { total: 0, byType: [] }; + isPublic = false; private dataSubscription: Subscription; + private autoconnectSubscription: Subscription; + private publicToggleSubscription: Subscription; + + constructor( + private apiService: ApiService, + private transportService: TransportService, + private snackbarService: SnackbarService, + ) { + super(); + } ngOnInit() { - // Get the node data from the parent page. - this.dataSubscription = NodeComponent.currentNode.subscribe((node: Node) => this.node = node); + this.dataSubscription = NodeComponent.currentNode.subscribe((node: Node) => { + this.node = node; + this.transportStats = this.computeTransportStats(node); + if (node) { + this.fetchPublicStatus(node.localPk); + } + }); return super.ngOnInit(); } ngOnDestroy() { - this.dataSubscription.unsubscribe(); + this.dataSubscription?.unsubscribe(); + this.autoconnectSubscription?.unsubscribe(); + this.publicToggleSubscription?.unsubscribe(); + } + + private computeTransportStats(node: Node): { total: number, byType: { type: string, count: number }[] } { + if (!node || !node.transports) { return { total: 0, byType: [] }; } + const counts: { [k: string]: number } = {}; + for (const tp of node.transports) { counts[tp.type] = (counts[tp.type] || 0) + 1; } + const byType = Object.entries(counts) + .map(([type, count]) => ({ type, count })) + .sort((a, b) => b.count - a.count); + return { total: node.transports.length, byType }; + } + + private fetchPublicStatus(pk: string) { + this.apiService.get(`visors/${pk}/public`).subscribe((result: any) => { + this.isPublic = !!(result && result.is_public === true); + }, () => { this.isPublic = false; }); + } + + changeTransportsConfig() { + if (!this.node) { return; } + const next = !this.node.autoconnectTransports; + this.autoconnectSubscription = this.transportService.changeAutoconnectSetting( + this.node.localPk, next, + ).subscribe(() => { + this.snackbarService.showDone( + next ? 'node.details.transports-info.enable-done' : 'node.details.transports-info.disable-done' + ); + NodeComponent.refreshCurrentDisplayedData(); + }, (err: OperationError) => { + err = processServiceError(err); + this.snackbarService.showError(err); + }); + } + + changePublicConfig() { + if (!this.node) { return; } + const next = !this.isPublic; + this.publicToggleSubscription = this.apiService.put(`visors/${this.node.localPk}/public`, { is_public: next }).subscribe(() => { + this.isPublic = next; + this.snackbarService.showDone( + next ? 'node.details.transports-info.public-enable-done' : 'node.details.transports-info.public-disable-done' + ); + }, (err: OperationError) => { + err = processServiceError(err); + this.snackbarService.showError(err); + }); } } diff --git a/static/skywire-manager-src/src/app/components/pages/node/routing/route-list/route-list.component.html b/static/skywire-manager-src/src/app/components/pages/node/routing/route-list/route-list.component.html index 9f56f4d535..26a17477a2 100644 --- a/static/skywire-manager-src/src/app/components/pages/node/routing/route-list/route-list.component.html +++ b/static/skywire-manager-src/src/app/components/pages/node/routing/route-list/route-list.component.html @@ -1,5 +1,5 @@ -
+
@if (showShortList_) { @@ -51,15 +51,6 @@
- - @if (!showShortList_ && numberOfPages > 1 && dataSource) { - - - }
@@ -73,7 +64,9 @@ [ngClass]="{'d-lg-none d-xl-table': showShortList_}" cellspacing="0" cellpadding="0" > - + @@ -88,18 +81,17 @@ {{ dataSorter.sortingArrow }} } - - {{ 'routes.source' | translate }} - @if (dataSorter.currentSortingColumn === sourceSortData) { - {{ dataSorter.sortingArrow }} - } - + {{ 'routes.local-port' | translate }} + {{ 'routes.remote-port' | translate }} - {{ 'routes.destination' | translate }} + {{ 'routes.remote-pk' | translate }} @if (dataSorter.currentSortingColumn === destinationSortData) { {{ dataSorter.sortingArrow }} } + {{ 'routes.next-rid' | translate }} + {{ 'routes.next-tp' | translate }} + {{ 'routes.keep-alive' | translate }} @@ -111,51 +103,84 @@ (change)="changeSelection(route)"> - - {{ route.key }} + {{ route.key }} + {{ getTypeName(route.type) }} + + + + @if (route.appFields?.routeDescriptor) { + {{ route.appFields.routeDescriptor.srcPort }} + } @else if (route.forwardFields?.routeDescriptor) { + {{ route.forwardFields.routeDescriptor.srcPort }} + } @else { + - + } - - {{ getTypeName(route.type) }} + + + + @if (route.appFields?.routeDescriptor) { + {{ route.appFields.routeDescriptor.dstPort }} + } @else if (route.forwardFields?.routeDescriptor) { + {{ route.forwardFields.routeDescriptor.dstPort }} + } @else { + - + } - - @if (route.appFields || route.forwardFields) { - + + + + @if (route.appFields || route.forwardFields) { - - + } @else { + - + } + + + + + @if (route.forwardFields?.nextRid || route.forwardFields?.nextRid === 0) { + {{ route.forwardFields.nextRid }} + } @else if (route.intermediaryForwardFields?.nextRid || route.intermediaryForwardFields?.nextRid === 0) { + {{ route.intermediaryForwardFields.nextRid }} + } @else { + - + } + + + + + @if (route.forwardFields?.nextTid) { + [elementType]="labeledElementTypes.Transport"> - - } - - @if ((!route.appFields && !route.forwardFields) && route.intermediaryForwardFields) { - --- - + } @else if (route.intermediaryForwardFields?.nextTid) { - - } - - @if (!route.appFields && !route.forwardFields && !route.intermediaryForwardFields) { - --- - --- - } + } @else { + - + } + + + + + @if (route.ruleSummary?.keepAlive) { + {{ (route.ruleSummary.keepAlive / 1e9) | number:'1.0-1' }}s + } @else { + - + } + +
- - @if (route.appFields || route.forwardFields) { + @if (route.appFields?.routeDescriptor || route.forwardFields?.routeDescriptor) {
- {{ 'routes.source' | translate }}: - - + {{ 'routes.local-port' | translate }}: + {{ (route.appFields?.routeDescriptor || route.forwardFields?.routeDescriptor)?.srcPort }} +
+
+ {{ 'routes.remote-port' | translate }}: + {{ (route.appFields?.routeDescriptor || route.forwardFields?.routeDescriptor)?.dstPort }}
- {{ 'routes.destination' | translate }}: + {{ 'routes.remote-pk' | translate }}:
} - - @if ((!route.appFields && !route.forwardFields) && route.intermediaryForwardFields) { + @if (route.forwardFields?.nextTid || route.intermediaryForwardFields?.nextTid) {
- {{ 'routes.source' | translate }}: - --- + {{ 'routes.next-rid' | translate }}: + {{ route.forwardFields?.nextRid ?? route.intermediaryForwardFields?.nextRid }}
- {{ 'routes.destination' | translate }}: + {{ 'routes.next-tp' | translate }}:
} - - @if (!route.appFields && !route.forwardFields && !route.intermediaryForwardFields) { -
- {{ 'routes.source' | translate }}: - --- -
+ @if (route.ruleSummary?.keepAlive) {
- {{ 'routes.destination' | translate }}: - --- + {{ 'routes.keep-alive' | translate }}: + {{ (route.ruleSummary.keepAlive / 1e9) | number:'1.0-1' }}s
}
@@ -282,14 +300,6 @@ } - - @if (showShortList_ && numberOfPages > 1) { - - }
} @@ -308,12 +318,3 @@
} - -@if (!showShortList_ && numberOfPages > 1 && dataSource) { - - -} diff --git a/static/skywire-manager-src/src/app/components/pages/node/routing/route-list/route-list.component.ts b/static/skywire-manager-src/src/app/components/pages/node/routing/route-list/route-list.component.ts index 61b5843c11..a5b780ae35 100644 --- a/static/skywire-manager-src/src/app/components/pages/node/routing/route-list/route-list.component.ts +++ b/static/skywire-manager-src/src/app/components/pages/node/routing/route-list/route-list.component.ts @@ -305,24 +305,20 @@ export class RouteListComponent implements OnDestroy { } /** - * Deletes the selected elements. + * Deletes the selected elements. No modal — feedback via snackbar. + * Routing rules regenerate on next dial; misclicks are recoverable. */ deleteSelected() { - // Ask for confirmation. - const confirmationDialog = GeneralUtils.createConfirmationDialog(this.dialog, 'routes.delete-selected-confirmation'); - - confirmationDialog.componentInstance.operationAccepted.subscribe(() => { - confirmationDialog.componentInstance.showProcessing(); - - const elementsToRemove: number[] = []; - this.selections.forEach((val, key) => { - if (val) { - elementsToRemove.push(key); - } - }); - - this.deleteRecursively(elementsToRemove, confirmationDialog); + const elementsToRemove: number[] = []; + this.selections.forEach((val, key) => { + if (val) { + elementsToRemove.push(key); + } }); + if (elementsToRemove.length === 0) { + return; + } + this.deleteRecursively(elementsToRemove, null); } /** @@ -357,25 +353,16 @@ export class RouteListComponent implements OnDestroy { } /** - * Deletes a specific element. + * Deletes a specific element. No modal — see deleteSelected. */ delete(routeKey: number) { - const confirmationDialog = GeneralUtils.createConfirmationDialog(this.dialog, 'routes.delete-confirmation'); - - confirmationDialog.componentInstance.operationAccepted.subscribe(() => { - confirmationDialog.componentInstance.showProcessing(); - - // Start the operation and save it for posible cancellation. - this.operationSubscriptionsGroup.push(this.startDeleting(routeKey).subscribe(() => { - confirmationDialog.close(); - // Make the parent page reload the data. - NodeComponent.refreshCurrentDisplayedData(); - this.snackbarService.showDone('routes.deleted'); - }, (err: OperationError) => { - err = processServiceError(err); - confirmationDialog.componentInstance.showDone('confirmation.error-header-text', err.translatableErrorMsg); - })); - }); + this.operationSubscriptionsGroup.push(this.startDeleting(routeKey).subscribe(() => { + NodeComponent.refreshCurrentDisplayedData(); + this.snackbarService.showDone('routes.deleted'); + }, (err: OperationError) => { + err = processServiceError(err); + this.snackbarService.showError(err); + })); } /** @@ -387,17 +374,12 @@ export class RouteListComponent implements OnDestroy { // Needed to prevent racing conditions. if (this.filteredRoutes) { - // Calculate the pagination values. - const maxElements = this.showShortList_ ? AppConfig.maxShortListElements : AppConfig.maxFullListElements; - this.numberOfPages = Math.ceil(this.filteredRoutes.length / maxElements); - if (this.currentPage > this.numberOfPages) { - this.currentPage = this.numberOfPages; - } - - // Limit the elements to show. - const start = maxElements * (this.currentPage - 1); - const end = start + maxElements; - this.routesToShow = this.filteredRoutes.slice(start, end); + // Pagination removed — visors typically have a handful of + // routes; the paginator added clicks for nothing. The full + // routing surface shows everything in one scroll now. + this.numberOfPages = 1; + this.currentPage = 1; + this.routesToShow = this.filteredRoutes.slice(); // Create a map with the elements to show, as a helper. const currentElementsMap = new Map(); @@ -442,12 +424,13 @@ export class RouteListComponent implements OnDestroy { * @param ids List with the IDs of the elements to delete. * @param confirmationDialog Dialog used for requesting confirmation from the user. */ - deleteRecursively(ids: number[], confirmationDialog: MatDialogRef) { + deleteRecursively(ids: number[], confirmationDialog: MatDialogRef | null) { this.operationSubscriptionsGroup.push(this.startDeleting(ids[ids.length - 1]).subscribe(() => { ids.pop(); if (ids.length === 0) { - confirmationDialog.close(); - // Make the parent page reload the data. + if (confirmationDialog) { + confirmationDialog.close(); + } NodeComponent.refreshCurrentDisplayedData(); this.snackbarService.showDone('routes.deleted'); } else { @@ -455,9 +438,12 @@ export class RouteListComponent implements OnDestroy { } }, (err: OperationError) => { NodeComponent.refreshCurrentDisplayedData(); - err = processServiceError(err); - confirmationDialog.componentInstance.showDone('confirmation.error-header-text', err.translatableErrorMsg); + if (confirmationDialog) { + confirmationDialog.componentInstance.showDone('confirmation.error-header-text', err.translatableErrorMsg); + } else { + this.snackbarService.showError(err); + } })); } } diff --git a/static/skywire-manager-src/src/app/components/pages/node/routing/routing.component.html b/static/skywire-manager-src/src/app/components/pages/node/routing/routing.component.html index 54b16c449d..fee223f162 100644 --- a/static/skywire-manager-src/src/app/components/pages/node/routing/routing.component.html +++ b/static/skywire-manager-src/src/app/components/pages/node/routing/routing.component.html @@ -1,10 +1,48 @@ - - + +@if (node) { +
+
+ {{ 'node.details.router-info.title' | translate }} + + {{ 'node.details.router-info.min-hops' | translate }} + {{ node.minHops }} + + + @if (showRouterForm) { +
+ + {{ 'node.details.router-info.min-hops' | translate }} + + +
+ + +
+
+ } +
+
+} + + +
+
+ {{ 'node.details.node-traffic-data' | translate }} + +
+
diff --git a/static/skywire-manager-src/src/app/components/pages/node/routing/routing.component.ts b/static/skywire-manager-src/src/app/components/pages/node/routing/routing.component.ts index 030e934ef3..a5d6e114b4 100644 --- a/static/skywire-manager-src/src/app/components/pages/node/routing/routing.component.ts +++ b/static/skywire-manager-src/src/app/components/pages/node/routing/routing.component.ts @@ -1,12 +1,21 @@ import { Component, OnInit, OnDestroy } from '@angular/core'; +import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; import { Subscription } from 'rxjs'; import { Node, Route } from '../../../../app.datatypes'; import { NodeComponent } from '../node.component'; import { PageBaseComponent } from 'src/app/utils/page-base'; +import { TrafficData } from 'src/app/services/single-node-data.service'; +import { RouteService } from 'src/app/services/route.service'; +import { SnackbarService } from 'src/app/services/snackbar.service'; +import { OperationError } from 'src/app/utils/operation-error'; +import { processServiceError } from 'src/app/utils/errors'; /** - * Page that shows the routing summary. It is a subpage of the Node page. + * Routing tab content: routes list + traffic chart + the inline + * Min-hops editor (moved here from the Info tab so the routing + * surface is the single place for router configuration). The + * transport list lives on the dedicated Transports tab now. */ @Component({ selector: 'app-routing', @@ -18,21 +27,70 @@ export class RoutingComponent extends PageBaseComponent implements OnInit, OnDes node: Node; routes: Route[]; nodePK: string; + trafficData: TrafficData; + + // Inline router-config editor (replaces the dialog flow). + showRouterForm = false; + routerForm: UntypedFormGroup; private dataSubscription: Subscription; + private trafficSubscription: Subscription; + private saveRouterSubscription: Subscription; + + constructor( + private formBuilder: UntypedFormBuilder, + private routeService: RouteService, + private snackbarService: SnackbarService, + ) { + super(); + this.routerForm = this.formBuilder.group({ + min: [1, Validators.compose([ + Validators.required, + Validators.maxLength(3), + Validators.pattern('^[0-9]+$'), + ])], + }); + } ngOnInit() { - // Get the node data from the parent page. this.dataSubscription = NodeComponent.currentNode.subscribe((node: Node) => { this.nodePK = node.localPk; this.node = node; this.routes = node.routes; }); + this.trafficSubscription = NodeComponent.currentTrafficData.subscribe((td: TrafficData) => { + this.trafficData = td; + }); return super.ngOnInit(); } ngOnDestroy() { this.dataSubscription.unsubscribe(); + this.trafficSubscription?.unsubscribe(); + this.saveRouterSubscription?.unsubscribe(); + } + + toggleRouterForm() { + this.showRouterForm = !this.showRouterForm; + if (this.showRouterForm && this.node) { + this.routerForm.get('min').setValue(this.node.minHops); + } + } + + submitRouterConfig() { + if (!this.routerForm.valid || !this.node) { return; } + const min = parseInt(this.routerForm.get('min').value, 10); + this.saveRouterSubscription = this.routeService.setMinHops(this.node.localPk, min).subscribe({ + next: () => { + this.snackbarService.showDone('router-config.done'); + this.showRouterForm = false; + NodeComponent.refreshCurrentDisplayedData(); + }, + error: (err: OperationError) => { + err = processServiceError(err); + this.snackbarService.showError(err); + }, + }); } } diff --git a/static/skywire-manager-src/src/app/components/pages/node/routing/transport-list/transport-details/transport-details.component.html b/static/skywire-manager-src/src/app/components/pages/node/routing/transport-list/transport-details/transport-details.component.html index a77092ed5a..fd4d631c54 100644 --- a/static/skywire-manager-src/src/app/components/pages/node/routing/transport-list/transport-details/transport-details.component.html +++ b/static/skywire-manager-src/src/app/components/pages/node/routing/transport-list/transport-details/transport-details.component.html @@ -35,5 +35,14 @@
{{ 'transports.details.data.downloaded' | translate }} {{ data.recv | autoScale }}
+
+ {{ 'transports.latency' | translate }} + @if (data.latencyMs && data.latencyMs > 0) { + {{ data.latencyMs | number:'1.0-0' }} ms + } + @if (!data.latencyMs || data.latencyMs === 0) { + - + } +
diff --git a/static/skywire-manager-src/src/app/components/pages/node/routing/transport-list/transport-list.component.html b/static/skywire-manager-src/src/app/components/pages/node/routing/transport-list/transport-list.component.html index 7234037104..0eeb2bac30 100644 --- a/static/skywire-manager-src/src/app/components/pages/node/routing/transport-list/transport-list.component.html +++ b/static/skywire-manager-src/src/app/components/pages/node/routing/transport-list/transport-list.component.html @@ -1,5 +1,5 @@ -
+
@if (showShortList_) { @@ -28,8 +28,9 @@
add + (click)="toggleAddForm()" + [matTooltip]="(showAddForm ? 'common.cancel' : 'transports.create') | translate" + >{{ showAddForm ? 'remove' : 'add' }} @if (allTransports && allTransports.length > 0) {
- - @if (!showShortList_ && numberOfPages > 1 && dataSource) { - - - }
+@if (showAddForm) { +
+
+
+
+ + {{ 'transports.dialog.remote-key' | translate }} + + + @if (!addForm.get('remoteKey').hasError('pattern')) { + {{ 'transports.dialog.errors.remote-key-length-error' | translate }} + } @else { + {{ 'transports.dialog.errors.remote-key-chars-error' | translate }} + } + + + + {{ 'transports.dialog.label' | translate }} + + + + {{ 'transports.dialog.transport-type' | translate }} + + @if (addAvailableTypes) { + @for (type of addAvailableTypes; track type) { + {{ type }} + } + } + + +
+
+ + {{ 'transports.dialog.make-persistent' | translate }} + help + + + +
+
+
+
+} + @if (dataSource && dataSource.length > 0) {
{{ dataSorter.sortingArrow }} } + + {{ 'transports.latency' | translate }} + @if (dataSorter.currentSortingColumn === latencySortData) { + {{ dataSorter.sortingArrow }} + } + @@ -207,6 +253,21 @@ {{ 'transports.offline' | translate }} } + @if (!!!transport.notFound) { + + @if (transport.latencyMs && transport.latencyMs > 0) { + {{ transport.latencyMs | number:'1.0-0' }} ms + } + @if (!transport.latencyMs || transport.latencyMs === 0) { + - + } + + } + @if (transport.notFound) { + + {{ 'transports.offline' | translate }} + + } @if (!transport.notFound) {
@@ -334,14 +409,6 @@ } - - @if (showShortList_ && numberOfPages > 1) { - - }
} @@ -360,12 +427,3 @@
} - -@if (!showShortList_ && numberOfPages > 1 && dataSource) { - - -} diff --git a/static/skywire-manager-src/src/app/components/pages/node/routing/transport-list/transport-list.component.scss b/static/skywire-manager-src/src/app/components/pages/node/routing/transport-list/transport-list.component.scss index a6512a5e70..499cf41fc6 100644 --- a/static/skywire-manager-src/src/app/components/pages/node/routing/transport-list/transport-list.component.scss +++ b/static/skywire-manager-src/src/app/components/pages/node/routing/transport-list/transport-list.component.scss @@ -34,3 +34,32 @@ .offline { opacity: 0.35; } + + +.inline-add-transport { + .add-row { + display: flex; + flex-wrap: wrap; + gap: 12px; + align-items: center; + margin-bottom: 8px; + + mat-form-field { + flex: 1 1 220px; + } + .field-pk { flex: 2 1 360px; } + .field-md { flex: 1 1 180px; } + .field-sm { flex: 0 1 140px; } + + button { + margin-left: auto; + } + } + + .help-icon { + margin-left: 4px; + opacity: 0.6; + cursor: help; + } +} + diff --git a/static/skywire-manager-src/src/app/components/pages/node/routing/transport-list/transport-list.component.ts b/static/skywire-manager-src/src/app/components/pages/node/routing/transport-list/transport-list.component.ts index 5ca5ea5bbc..f5a8274809 100644 --- a/static/skywire-manager-src/src/app/components/pages/node/routing/transport-list/transport-list.component.ts +++ b/static/skywire-manager-src/src/app/components/pages/node/routing/transport-list/transport-list.component.ts @@ -1,11 +1,11 @@ import { Component, Input, OnDestroy, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core'; import { MatDialog, MatDialogRef } from '@angular/material/dialog'; -import { Observable, Subscription } from 'rxjs'; +import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; +import { Observable, Subscription, delay, mergeMap, of } from 'rxjs'; import { ActivatedRoute, Router } from '@angular/router'; import { TranslateService } from '@ngx-translate/core'; import { Node, PersistentTransport, Transport } from '../../../../../app.datatypes'; -import { CreateTransportComponent } from './create-transport/create-transport.component'; import { TransportService } from '../../../../../services/transport.service'; import { NodeComponent } from '../../node.component'; import { AppConfig } from '../../../../../app.config'; @@ -47,6 +47,7 @@ export class TransportListComponent implements OnDestroy { typeSortData = new SortingColumn(['type'], 'transports.type', SortingModes.Text); uploadedSortData = new SortingColumn(['sent'], 'common.uploaded', SortingModes.NumberReversed); downloadedSortData = new SortingColumn(['recv'], 'common.downloaded', SortingModes.NumberReversed); + latencySortData = new SortingColumn(['latencyMs'], 'transports.latency', SortingModes.Number); private dataSortedSubscription: Subscription; private dataFiltererSubscription: Subscription; @@ -188,6 +189,17 @@ export class TransportListComponent implements OnDestroy { labeledElementTypes = LabeledElementTypes; + // Inline add-transport form state. Replaces the previous modal + // create-transport dialog — same fields, same submit path, just + // anchored to the transport list page instead of opening a popup. + showAddForm = false; + addForm: UntypedFormGroup; + addingPersistent = false; + addAvailableTypes: string[] | null = null; + addBusy = false; + private addOperationSubscription: Subscription; + private addTypesSubscription: Subscription; + private persistentTransportSubscription: Subscription; private navigationsSubscription: Subscription; private operationSubscriptionsGroup: Subscription[] = []; @@ -203,7 +215,20 @@ export class TransportListComponent implements OnDestroy { private storageService: StorageService, private nodeService: NodeService, private cdr: ChangeDetectorRef, + private formBuilder: UntypedFormBuilder, ) { + // Build the add-transport form up front; populated with types + // when the user opens the inline form, not on every page load. + this.addForm = this.formBuilder.group({ + remoteKey: ['', Validators.compose([ + Validators.required, + Validators.minLength(66), + Validators.maxLength(66), + Validators.pattern('^[0-9a-fA-F]+$'), + ])], + label: [''], + type: ['', Validators.required], + }); // Initialize the data sorter. const sortableColumns: SortingColumn[] = [ this.persistentSortData, @@ -212,6 +237,7 @@ export class TransportListComponent implements OnDestroy { this.typeSortData, this.uploadedSortData, this.downloadedSortData, + this.latencySortData, ]; this.dataSorter = new DataSorter(this.dialog, this.translateService, this.storageService, sortableColumns, 1, this.listId); this.dataSortedSubscription = this.dataSorter.dataSorted.subscribe(() => { @@ -261,6 +287,12 @@ export class TransportListComponent implements OnDestroy { if (this.persistentTransportSubscription) { this.persistentTransportSubscription.unsubscribe(); } + if (this.addOperationSubscription) { + this.addOperationSubscription.unsubscribe(); + } + if (this.addTypesSubscription) { + this.addTypesSubscription.unsubscribe(); + } } /** @@ -302,31 +334,159 @@ export class TransportListComponent implements OnDestroy { } /** - * Deletes the selected elements. + * Deletes the selected elements. No confirmation modal — feedback + * comes from the post-action snackbar; user can re-add the + * transport via the inline form if it was a misclick. */ deleteSelected() { - // Ask for confirmation. - const confirmationDialog = GeneralUtils.createConfirmationDialog(this.dialog, 'transports.delete-selected-confirmation'); + const elementsToRemove: string[] = []; + this.selections.forEach((val, key) => { + if (val) { + elementsToRemove.push(key); + } + }); + if (elementsToRemove.length === 0) { + return; + } + this.deleteRecursively(elementsToRemove, null); + } + + /** + * Toggles the inline add-transport form. First open lazily fetches + * the supported transport types from the visor. + */ + toggleAddForm() { + this.showAddForm = !this.showAddForm; + if (this.showAddForm && this.addAvailableTypes === null) { + this.loadAddTypes(); + } + if (!this.showAddForm) { + this.resetAddForm(); + } + } + + cancelAddForm() { + this.showAddForm = false; + this.resetAddForm(); + } - confirmationDialog.componentInstance.operationAccepted.subscribe(() => { - confirmationDialog.componentInstance.showProcessing(); + setAddPersistent(event: any) { + this.addingPersistent = !!event.checked; + } - const elementsToRemove: string[] = []; - this.selections.forEach((val, key) => { - if (val) { - elementsToRemove.push(key); + /** + * Submits the inline add-transport form. Mirrors the logic the + * old CreateTransportComponent dialog ran: optionally append the + * (pk, type) pair to the persistent-transports list, then create + * the transport, then save the label if one was provided. + */ + submitAddForm() { + if (!this.addForm.valid || this.addBusy) { + return; + } + const newTransportPk: string = this.addForm.get('remoteKey').value; + const newTransportType: string = this.addForm.get('type').value; + const newTransportLabel: string = this.addForm.get('label').value; + + this.addBusy = true; + if (this.addingPersistent) { + this.addOperationSubscription = this.transportService.getPersistentTransports( + NodeComponent.getCurrentNodeKey(), + ).subscribe((list: any[]) => { + const dataToUse = list ? list : []; + const alreadyPersistent = dataToUse.some((t: any) => + t.pk.toUpperCase() === newTransportPk.toUpperCase() + && t.type.toUpperCase() === newTransportType.toUpperCase()); + if (alreadyPersistent) { + this.doCreateTransport(newTransportPk, newTransportType, newTransportLabel, true); + } else { + dataToUse.push({ pk: newTransportPk, type: newTransportType }); + this.addOperationSubscription = this.transportService.savePersistentTransportsData( + NodeComponent.getCurrentNodeKey(), + dataToUse, + ).subscribe(() => { + this.doCreateTransport(newTransportPk, newTransportType, newTransportLabel, true); + }, (err: OperationError) => this.onAddError(err)); } - }); + }, (err: OperationError) => this.onAddError(err)); + } else { + this.doCreateTransport(newTransportPk, newTransportType, newTransportLabel, false); + } + } - this.deleteRecursively(elementsToRemove, confirmationDialog); + private doCreateTransport(remotePk: string, type: string, label: string, creatingAfterPersistent: boolean) { + this.addOperationSubscription = this.transportService.create( + NodeComponent.getCurrentNodeKey(), + remotePk, + type, + ).subscribe((response: any) => { + let errorSavingLabel = false; + if (label) { + if (response && response.id) { + this.storageService.saveLabel(response.id, label, LabeledElementTypes.Transport); + } else { + errorSavingLabel = true; + } + } + this.addBusy = false; + this.cancelAddForm(); + NodeComponent.refreshCurrentDisplayedData(); + if (!errorSavingLabel) { + this.snackbarService.showDone('transports.dialog.success'); + } else { + this.snackbarService.showWarning('transports.dialog.success-without-label'); + } + }, (err: OperationError) => { + if (creatingAfterPersistent) { + this.addBusy = false; + this.cancelAddForm(); + NodeComponent.refreshCurrentDisplayedData(); + this.snackbarService.showWarning('transports.dialog.only-persistent-created'); + } else { + this.onAddError(err); + } }); } + private onAddError(err: OperationError) { + this.addBusy = false; + err = processServiceError(err); + this.snackbarService.showError(err); + } + + private resetAddForm() { + this.addForm.reset({ remoteKey: '', label: '', type: this.addAvailableTypes && this.addAvailableTypes[0] || '' }); + this.addingPersistent = false; + this.addBusy = false; + } + /** - * Shows the transport creation modal window. + * Loads the list of available transport types into addAvailableTypes. + * Mirrors the dialog's loadData logic but without the retry loop — + * the inline form just shows an empty type list on failure and + * the user can retry by reopening it. */ - create() { - CreateTransportComponent.openDialog(this.dialog); + private loadAddTypes() { + this.addTypesSubscription = of(1).pipe( + delay(0), + mergeMap(() => this.transportService.types(NodeComponent.getCurrentNodeKey())), + ).subscribe((types: string[]) => { + types.sort((a, b) => { + if (a.toLowerCase() === 'stcp') { return 1; } + if (b.toLowerCase() === 'stcp') { return -1; } + return a.localeCompare(b); + }); + let defaultIndex = types.findIndex(t => t.toLowerCase() === 'dmsg'); + defaultIndex = defaultIndex !== -1 ? defaultIndex : 0; + this.addAvailableTypes = types; + this.addForm.get('type').setValue(types[defaultIndex] || ''); + this.cdr.markForCheck(); + }, (err: any) => { + err = processServiceError(err); + this.snackbarService.showError(err); + this.addAvailableTypes = []; + this.cdr.markForCheck(); + }); } /** @@ -389,86 +549,57 @@ export class TransportListComponent implements OnDestroy { return; } - let confirmationText = 'transports.'; - if (transports.length === 1) { - if (makePersistent) { - confirmationText += 'make-persistent-confirmation'; - } else { - confirmationText += 'make' + (transports[0].notFound ? '-offline' : '') + '-non-persistent-confirmation'; - } - } else { - confirmationText += makePersistent ? 'make-selected-persistent-confirmation' : 'make-selected-non-persistent-confirmation'; - } - - const confirmationDialog = GeneralUtils.createConfirmationDialog(this.dialog, confirmationText); + // No confirmation modal — toggling whether a transport gets + // re-created on visor restart is reversible (just toggle back), + // and dialog spam on every star-click was the main complaint. + // Errors still surface via snackbar. + this.persistentTransportSubscription = this.transportService.getPersistentTransports(this.nodePK).subscribe((list: any[]) => { + const dataToUse = list ? list : []; + let nothingToDo: boolean; - confirmationDialog.componentInstance.operationAccepted.subscribe(() => { - confirmationDialog.componentInstance.showProcessing(); + const transportsMap: Map = new Map(); + transports.forEach(t => transportsMap.set(this.getPersistentTransportID(t.remotePk, t.type), t)); - this.persistentTransportSubscription = this.transportService.getPersistentTransports(this.nodePK).subscribe((list: any[]) => { - const dataToUse = list ? list : []; - let nothingToDo: boolean; - - const transportsMap: Map = new Map(); - transports.forEach(t => transportsMap.set(this.getPersistentTransportID(t.remotePk, t.type), t)); - - if (makePersistent) { - // Remove al transports that already are persistent. - dataToUse.forEach(tp => { - if (transportsMap.has(this.getPersistentTransportID(tp.pk, tp.type))) { - transportsMap.delete(this.getPersistentTransportID(tp.pk, tp.type)); - } - }); - - nothingToDo = transportsMap.size === 0; - - // Add the new transports to the persistent transports list. - if (!nothingToDo) { - transportsMap.forEach(t => { - dataToUse.push({ - pk: t.remotePk, - type: t.type, - }); - }); + if (makePersistent) { + dataToUse.forEach(tp => { + if (transportsMap.has(this.getPersistentTransportID(tp.pk, tp.type))) { + transportsMap.delete(this.getPersistentTransportID(tp.pk, tp.type)); } - } else { - nothingToDo = true; - // Remove all selected transports. - for (let i = 0; i < dataToUse.length; i++) { - if (transportsMap.has(this.getPersistentTransportID(dataToUse[i].pk, dataToUse[i].type))) { - dataToUse.splice(i, 1); - nothingToDo = false; - i--; - } + }); + nothingToDo = transportsMap.size === 0; + if (!nothingToDo) { + transportsMap.forEach(t => dataToUse.push({ pk: t.remotePk, type: t.type })); + } + } else { + nothingToDo = true; + for (let i = 0; i < dataToUse.length; i++) { + if (transportsMap.has(this.getPersistentTransportID(dataToUse[i].pk, dataToUse[i].type))) { + dataToUse.splice(i, 1); + nothingToDo = false; + i--; } } + } - if (!nothingToDo) { - // Update the list. - this.persistentTransportSubscription = this.transportService.savePersistentTransportsData( - NodeComponent.getCurrentNodeKey(), - dataToUse - ).subscribe(() => { - confirmationDialog.close(); - // Make the parent page reload the data. - NodeComponent.refreshCurrentDisplayedData(); - this.snackbarService.showDone('transports.changes-made'); - }, (err: OperationError) => { - err = processServiceError(err); - confirmationDialog.componentInstance.showDone('confirmation.error-header-text', err.translatableErrorMsg); - }); - } else { - // The persistent transport list already has or not (as needed) the transport. - confirmationDialog.close(); - this.snackbarService.showDone('transports.no-changes-needed'); + if (nothingToDo) { + this.snackbarService.showDone('transports.no-changes-needed'); + NodeComponent.refreshCurrentDisplayedData(); + return; + } - // Make the parent page reload the data, to make sure the UI shows the correct values. - NodeComponent.refreshCurrentDisplayedData(); - } + this.persistentTransportSubscription = this.transportService.savePersistentTransportsData( + NodeComponent.getCurrentNodeKey(), + dataToUse, + ).subscribe(() => { + NodeComponent.refreshCurrentDisplayedData(); + this.snackbarService.showDone('transports.changes-made'); }, (err: OperationError) => { err = processServiceError(err); - confirmationDialog.componentInstance.showDone('confirmation.error-header-text', err.translatableErrorMsg); + this.snackbarService.showError(err); }); + }, (err: OperationError) => { + err = processServiceError(err); + this.snackbarService.showError(err); }); } @@ -483,23 +614,17 @@ export class TransportListComponent implements OnDestroy { * Deletes a specific element. */ delete(transport: Transport) { - const confirmationMsg = 'transports.delete-' + (transport.isPersistent ? 'persistent-' : '') + 'confirmation'; - const confirmationDialog = GeneralUtils.createConfirmationDialog(this.dialog, confirmationMsg); - - confirmationDialog.componentInstance.operationAccepted.subscribe(() => { - confirmationDialog.componentInstance.showProcessing(); - - // Start the operation and save it for posible cancellation. - this.operationSubscriptionsGroup.push(this.startDeleting(transport.id).subscribe(() => { - confirmationDialog.close(); - // Make the parent page reload the data. - NodeComponent.refreshCurrentDisplayedData(); - this.snackbarService.showDone('transports.deleted'); - }, (err: OperationError) => { - err = processServiceError(err); - confirmationDialog.componentInstance.showDone('confirmation.error-header-text', err.translatableErrorMsg); - })); - }); + // No confirmation modal. The action is destructive but + // reversible (re-create via the inline add-transport form); + // dialog spam was making bulk pruning of stale transports + // unworkable. + this.operationSubscriptionsGroup.push(this.startDeleting(transport.id).subscribe(() => { + NodeComponent.refreshCurrentDisplayedData(); + this.snackbarService.showDone('transports.deleted'); + }, (err: OperationError) => { + err = processServiceError(err); + this.snackbarService.showError(err); + })); } /** @@ -522,17 +647,13 @@ export class TransportListComponent implements OnDestroy { // Needed to prevent racing conditions. if (this.filteredTransports) { - // Calculate the pagination values. - const maxElements = this.showShortList_ ? AppConfig.maxShortListElements : AppConfig.maxFullListElements; - this.numberOfPages = Math.ceil(this.filteredTransports.length / maxElements); - if (this.currentPage > this.numberOfPages) { - this.currentPage = this.numberOfPages; - } - - // Limit the elements to show. - const start = maxElements * (this.currentPage - 1); - const end = start + maxElements; - this.transportsToShow = this.filteredTransports.slice(start, end); + // Pagination removed — the short-list embed is gone, and the + // dedicated Transports tab shows the full list in one scroll. + // Visors typically have 10s of transports, not 100s; the + // paginator added clicks for nothing. + this.numberOfPages = 1; + this.currentPage = 1; + this.transportsToShow = this.filteredTransports.slice(); // Create a map with the elements to show, as a helper. const currentElementsMap = new Map(); @@ -574,16 +695,17 @@ export class TransportListComponent implements OnDestroy { } /** - * Recursively deletes a list of elements. - * @param ids List with the IDs of the elements to delete. - * @param confirmationDialog Dialog used for requesting confirmation from the user. + * Recursively deletes a list of elements. confirmationDialog is + * optional — when called from the inline (no-modal) flow it's + * null and we fall back to a snackbar for completion / error. */ - deleteRecursively(ids: string[], confirmationDialog: MatDialogRef) { + deleteRecursively(ids: string[], confirmationDialog: MatDialogRef | null) { this.operationSubscriptionsGroup.push(this.startDeleting(ids[ids.length - 1]).subscribe(() => { ids.pop(); if (ids.length === 0) { - confirmationDialog.close(); - // Make the parent page reload the data. + if (confirmationDialog) { + confirmationDialog.close(); + } NodeComponent.refreshCurrentDisplayedData(); this.snackbarService.showDone('transports.deleted'); } else { @@ -591,9 +713,12 @@ export class TransportListComponent implements OnDestroy { } }, (err: OperationError) => { NodeComponent.refreshCurrentDisplayedData(); - err = processServiceError(err); - confirmationDialog.componentInstance.showDone('confirmation.error-header-text', err.translatableErrorMsg); + if (confirmationDialog) { + confirmationDialog.componentInstance.showDone('confirmation.error-header-text', err.translatableErrorMsg); + } else { + this.snackbarService.showError(err); + } })); } } diff --git a/static/skywire-manager-src/src/app/components/pages/node/skychat/skychat.component.html b/static/skywire-manager-src/src/app/components/pages/node/skychat/skychat.component.html new file mode 100644 index 0000000000..7b1a614d38 --- /dev/null +++ b/static/skywire-manager-src/src/app/components/pages/node/skychat/skychat.component.html @@ -0,0 +1,124 @@ +@if (node) { +
+
+ + +
+ + {{ 'skychat.title' | translate }} + · + {{ connected ? ('skychat.connected' | translate) : ('skychat.disconnected' | translate) }} + @if (errorText) { + · {{ errorText }} + } + @if (!historyAvailable) { + · {{ 'skychat.no-history' | translate }} + } + + +
+ + + @if (pwOpen) { +
+
+ {{ (pwIsSet ? 'skychat.password.help-set' : 'skychat.password.help-unset') | translate }} +
+ @if (pwIsSet) { + + {{ 'skychat.password.old' | translate }} + + + } + + {{ 'skychat.password.new' | translate }} + + + + {{ 'skychat.password.confirm' | translate }} + + +
+ + @if (pwIsSet) { + + } +
+
+ } + + +
+ + + + +
+
+ @if (messages.length === 0) { +
{{ 'skychat.empty' | translate }}
+ } + @for (m of messages; track $index) { +
+
+ + {{ m.direction === 'out' ? '→' : '←' }} {{ m.peer }} + + {{ m.ts | date:'mediumTime' }} +
+
{{ m.text }}
+
+ } +
+ +
+ + {{ 'skychat.to' | translate }} + + + + {{ 'skychat.network' | translate }} + + skynet + dmsg + + +
+
+ + {{ 'skychat.message' | translate }} + + + +
+
+
+
+
+} diff --git a/static/skywire-manager-src/src/app/components/pages/node/skychat/skychat.component.scss b/static/skywire-manager-src/src/app/components/pages/node/skychat/skychat.component.scss new file mode 100644 index 0000000000..a7db53ce19 --- /dev/null +++ b/static/skywire-manager-src/src/app/components/pages/node/skychat/skychat.component.scss @@ -0,0 +1,214 @@ +.skychat-box { + display: flex; + flex-direction: column; +} + +.sc-shell { + display: flex; + flex-direction: column; + gap: 4px; +} + +.sc-status { + display: flex; + align-items: center; + gap: 8px; + font-size: 13px; + padding: 6px 4px; + + .status-text { font-weight: 600; font-size: 14px; } + .status-sep { opacity: 0.5; } + .status-conn { font-weight: 500; } + .error { opacity: 0.85; color: rgba(229, 57, 53, 0.9); } + .hint { opacity: 0.6; } + + .dot { + display: inline-block; + width: 8px; + height: 8px; + border-radius: 50%; + } + .dot-green { background: #4caf50; } + .dot-outline-gray { border: 1px solid rgba(255, 255, 255, 0.4); } + + .sc-status-spacer { flex: 1 1 auto; } + + .sc-password-toggle { + font-size: 12px; + line-height: 1.2; + .lock-icon { font-size: 16px; vertical-align: middle; margin-right: 4px; } + } +} + +.sc-password { + margin: 8px 0 4px; + padding: 12px; + background: rgba(255, 255, 255, 0.03); + border: 1px solid rgba(255, 255, 255, 0.06); + border-radius: 6px; + display: flex; + flex-wrap: wrap; + gap: 12px 16px; + align-items: flex-end; + + .sc-password-help { + flex: 1 1 100%; + font-size: 12px; + opacity: 0.75; + margin-bottom: 4px; + } + + .field-pw { flex: 1 1 200px; min-width: 180px; } + + .sc-password-actions { + flex: 1 1 100%; + display: flex; + gap: 8px; + justify-content: flex-end; + } +} + +.sc-body { + display: flex; + gap: 12px; + align-items: stretch; +} + +.sc-sidebar { + flex: 0 0 220px; + max-width: 240px; + display: flex; + flex-direction: column; + gap: 4px; + padding: 8px; + background: rgba(0, 0, 0, 0.18); + border: 1px solid rgba(255, 255, 255, 0.06); + border-radius: 6px; + overflow-y: auto; + max-height: 60vh; + + .sc-sidebar-title { + font-size: 11px; + text-transform: uppercase; + letter-spacing: 0.5px; + opacity: 0.6; + padding: 2px 4px 6px; + } + + .sc-sidebar-empty { + padding: 8px 4px; + font-size: 12px; + opacity: 0.5; + } + + .sc-peer { + cursor: pointer; + padding: 6px 8px; + border-radius: 4px; + border: 1px solid transparent; + background: rgba(255, 255, 255, 0.03); + + &:hover { background: rgba(255, 255, 255, 0.06); } + &.active { + background: rgba(33, 150, 243, 0.18); + border-color: rgba(33, 150, 243, 0.45); + } + // Full 66-char PK wraps onto multiple lines rather than getting + // truncated — operators need the whole key to copy/verify. + .peer-pk { + display: block; + word-break: break-all; + line-height: 1.25; + font-size: 10px; + } + } +} + +@media (max-width: 720px) { + .sc-body { flex-direction: column; } + .sc-sidebar { flex: 0 0 auto; max-width: none; max-height: 140px; } +} + +.sc-chat { + flex: 1 1 auto; + display: flex; + flex-direction: column; + min-width: 0; +} + +.sc-log { + background: rgba(0, 0, 0, 0.18); + border: 1px solid rgba(255, 255, 255, 0.06); + border-radius: 6px; + padding: 8px; + height: 50vh; + min-height: 320px; + overflow-y: auto; + display: flex; + flex-direction: column; + gap: 6px; +} + +.sc-empty { + margin: auto; + opacity: 0.5; + font-size: 13px; +} + +.sc-msg { + display: flex; + flex-direction: column; + gap: 2px; + padding: 6px 10px; + border-radius: 6px; + background: rgba(255, 255, 255, 0.03); + max-width: 80%; + + &.in { align-self: flex-start; } + &.out { + align-self: flex-end; + background: rgba(33, 150, 243, 0.18); + } +} + +.sc-msg-meta { + display: flex; + gap: 8px; + align-items: center; + font-size: 11px; + opacity: 0.7; + flex-wrap: wrap; + + .peer { + cursor: pointer; + text-decoration: underline dotted transparent; + word-break: break-all; + &:hover { text-decoration-color: currentColor; } + } +} + +.sc-msg-text { + white-space: pre-wrap; + word-break: break-word; + font-size: 13px; +} + +.sc-composer { + display: flex; + gap: 12px; + align-items: flex-start; + margin-top: 8px; + + .field-pk { flex: 1 1 360px; } + .field-sm { flex: 0 1 130px; } + .field-msg { flex: 1 1 auto; min-width: 0; } + + .send-btn { + flex: 0 0 auto; + align-self: center; + height: 56px; + white-space: nowrap; + } +} + +// (input/textarea contrast is handled globally in styles.scss now) diff --git a/static/skywire-manager-src/src/app/components/pages/node/skychat/skychat.component.ts b/static/skywire-manager-src/src/app/components/pages/node/skychat/skychat.component.ts new file mode 100644 index 0000000000..b888f7c053 --- /dev/null +++ b/static/skywire-manager-src/src/app/components/pages/node/skychat/skychat.component.ts @@ -0,0 +1,323 @@ +import { Component, OnDestroy, OnInit, ViewChild, ElementRef, AfterViewChecked, ChangeDetectorRef } from '@angular/core'; + +import { Node } from '../../../../app.datatypes'; +import { NodeComponent } from '../node.component'; +import { PageBaseComponent } from 'src/app/utils/page-base'; +import { ApiService } from 'src/app/services/api.service'; +import { SnackbarService } from 'src/app/services/snackbar.service'; +import { environment } from 'src/environments/environment'; + +/** + * Skychat tab inside the visor detail page. Talks to the local + * skychat HTTP server through the hypervisor's reverse-proxy at + * /api/visors//skychat/proxy/ + * which forwards to localhost:/. Same-origin + * (the hvui's port) so no CORS dance, and the proxy attaches an + * internal token that bypasses any password gate skychat has + * configured for its standalone :8001 surface. + * + * Minimal feature set: + * - Live message stream via SSE (works whether or not persistence + * is enabled in skychat). + * - Compose box: paste a peer PK + write a message + send. + * - Message log groups successive messages from the same peer. + * - Optional history fetch when --persist is enabled on skychat + * (silently skips when the backend returns 503). + */ + +interface ChatMessage { + peer: string; // remote PK + direction: 'in' | 'out'; + text: string; + // Local sender timestamp for outgoing; SSE doesn't carry one for + // incoming (we capture arrival time client-side). + ts: number; +} + +@Component({ + selector: 'app-skychat', + templateUrl: './skychat.component.html', + styleUrls: ['./skychat.component.scss'], + standalone: false, +}) +export class SkychatComponent extends PageBaseComponent implements OnInit, OnDestroy, AfterViewChecked { + @ViewChild('logEl') logEl: ElementRef; + + node: Node; + // Bound to the compose form. + toPK = ''; + message = ''; + network = 'skynet'; + sending = false; + // Display state. + messages: ChatMessage[] = []; + connected = false; + errorText = ''; + // Skychat returns 503 for /history* unless --persist is on. We + // detect the case once and stop trying. + historyAvailable = true; + + // Track scroll-tail like the runtime-logs viewer. + private wasAtBottom = true; + private es: EventSource | null = null; + private nodeSub: any; + + // --- Password gate management state. ---------------------------- + // Whether the password section is expanded. + pwOpen = false; + // Whether a password is currently set on the visor (drives copy / + // which fields are shown). + pwIsSet = false; + // Form fields. oldPassword is required when pwIsSet, ignored otherwise. + pwOld = ''; + pwNew = ''; + pwConfirm = ''; + // In-flight indicator for the apply / clear action. + pwBusy = false; + + // Distinct peers seen so far, in last-touched order. Drives the + // sidebar list. Recomputed lazily when messages change. + get peers(): string[] { + const seen: string[] = []; + const have = new Set(); + // Iterate newest-first so the most recently active peer is on top. + for (let i = this.messages.length - 1; i >= 0; i--) { + const pk = this.messages[i].peer; + if (!pk || have.has(pk)) { continue; } + have.add(pk); + seen.push(pk); + } + return seen; + } + + constructor( + private api: ApiService, + private snackbar: SnackbarService, + private cdr: ChangeDetectorRef, + ) { + super(); + } + + ngOnInit() { + this.nodeSub = NodeComponent.currentNode.subscribe((node: Node) => { + const wasUnset = !this.node; + this.node = node; + if (wasUnset) { + this.connectSSE(); + this.tryLoadPeers(); + this.refreshPasswordState(); + } + }); + return super.ngOnInit(); + } + + ngOnDestroy() { + if (this.nodeSub) { this.nodeSub.unsubscribe(); } + this.disconnectSSE(); + } + + ngAfterViewChecked() { + if (this.wasAtBottom && this.logEl) { + const el = this.logEl.nativeElement; + el.scrollTop = el.scrollHeight; + } + } + + /** Build the proxy URL for a skychat path. */ + private proxyUrl(path: string): string { + const apiPrefix = !environment.production && location.protocol.indexOf('http:') !== -1 ? 'http-api' : 'api'; + return `/${apiPrefix}/visors/${this.node.localPk}/skychat/proxy/${path.replace(/^\/+/, '')}`; + } + + private connectSSE() { + if (!this.node || this.es) { return; } + try { + this.es = new EventSource(this.proxyUrl('sse')); + this.es.onopen = () => { this.connected = true; this.errorText = ''; this.cdr.markForCheck(); }; + this.es.onerror = () => { this.connected = false; this.errorText = 'Disconnected — retrying…'; this.cdr.markForCheck(); }; + this.es.onmessage = (ev) => this.handleSSE(ev.data); + } catch (e: any) { + this.errorText = `SSE setup failed: ${e?.message || e}`; + } + } + + private disconnectSSE() { + if (this.es) { + this.es.close(); + this.es = null; + } + } + + /** Skychat /sse emits a stringified JSON {sender, message} payload + * per data: line. Capture arrival as 'in' regardless of who sent + * — sender is the peer's PK which is what we want to display. */ + private handleSSE(raw: string) { + let data: any = null; + try { data = JSON.parse(raw); } catch { /* ignore */ } + if (!data || typeof data !== 'object') { return; } + const msg: ChatMessage = { + peer: data.sender || data.from || '', + direction: 'in', + text: typeof data.message === 'string' ? data.message : (data.text || ''), + ts: Date.now(), + }; + if (!msg.peer || !msg.text) { return; } + this.captureScroll(); + this.messages.push(msg); + if (this.messages.length > 500) { this.messages.shift(); } + this.cdr.markForCheck(); + } + + /** Send the composed message. */ + send() { + if (this.sending) { return; } + const recipient = this.toPK.trim(); + const text = this.message.trim(); + if (!recipient || !text) { return; } + if (recipient.length !== 66 || !/^[0-9a-fA-F]+$/.test(recipient)) { + this.snackbar.showError('Recipient must be a 66-char hex public key'); + return; + } + this.sending = true; + fetch(this.proxyUrl('message'), { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ recipient, message: text, network: this.network }), + }).then(async (resp) => { + if (!resp.ok) { + const body = await resp.text(); + throw new Error(body || `HTTP ${resp.status}`); + } + this.captureScroll(); + this.messages.push({ peer: recipient, direction: 'out', text, ts: Date.now() }); + if (this.messages.length > 500) { this.messages.shift(); } + this.message = ''; + this.cdr.markForCheck(); + }).catch((err) => { + this.snackbar.showError(err?.message || String(err)); + }).finally(() => { + this.sending = false; + this.cdr.markForCheck(); + }); + } + + /** Try to seed the message list from skychat's history. Silently + * skips when persistence isn't enabled (skychat returns 503). */ + private tryLoadPeers() { + if (!this.node || !this.historyAvailable) { return; } + fetch(this.proxyUrl('history?limit=100')) + .then(async (resp) => { + if (resp.status === 503) { + this.historyAvailable = false; + return null; + } + if (!resp.ok) { throw new Error(`HTTP ${resp.status}`); } + return resp.json(); + }) + .then((rows: any) => { + if (!Array.isArray(rows)) { return; } + const seeded: ChatMessage[] = rows.map((m: any): ChatMessage => ({ + peer: m.peer || m.sender || '', + direction: m.direction === 'out' ? 'out' : 'in', + text: m.message || m.text || '', + ts: m.timestamp || m.ts || Date.now(), + })).filter((m: ChatMessage) => m.peer && m.text); + // Prepend so existing live tail keeps its order. + this.messages = seeded.concat(this.messages); + this.cdr.markForCheck(); + }) + .catch(() => { /* network glitch — live SSE will pick up new traffic anyway */ }); + } + + pickRecipient(pk: string) { + this.toPK = pk; + } + + private captureScroll() { + if (!this.logEl) { this.wasAtBottom = true; return; } + const el = this.logEl.nativeElement; + this.wasAtBottom = (el.scrollHeight - el.scrollTop - el.clientHeight) < 40; + } + + // --- Password gate management ---------------------------------- + + togglePassword() { + this.pwOpen = !this.pwOpen; + if (this.pwOpen) { + this.refreshPasswordState(); + } else { + this.resetPasswordForm(); + } + } + + private refreshPasswordState() { + if (!this.node) { return; } + this.api.get(`visors/${this.node.localPk}/skychat/password`).subscribe( + (resp: any) => { + this.pwIsSet = !!(resp && resp.set); + this.cdr.markForCheck(); + }, + () => { /* leave previous state — the form still works */ }, + ); + } + + private resetPasswordForm() { + this.pwOld = ''; + this.pwNew = ''; + this.pwConfirm = ''; + } + + private validateNewPassword(): string | null { + if (this.pwNew.length < 6 || this.pwNew.length > 64) { + return 'skychat.password.errors.length'; + } + if (this.pwNew !== this.pwConfirm) { + return 'skychat.password.errors.mismatch'; + } + return null; + } + + applyPassword() { + if (!this.node || this.pwBusy) { return; } + const err = this.validateNewPassword(); + if (err) { this.snackbar.showError(err); return; } + this.pwBusy = true; + this.api.put(`visors/${this.node.localPk}/skychat/password`, { + old_password: this.pwIsSet ? this.pwOld : '', + new_password: this.pwNew, + }).subscribe( + () => { + this.pwBusy = false; + this.pwIsSet = true; + this.resetPasswordForm(); + this.snackbar.showDone('skychat.password.saved'); + this.cdr.markForCheck(); + }, + (e: any) => { + this.pwBusy = false; + this.snackbar.showError(e?.originalError?.error?.error || e?.message || String(e)); + this.cdr.markForCheck(); + }, + ); + } + + clearPassword() { + if (!this.node || this.pwBusy || !this.pwIsSet) { return; } + if (!this.pwOld) { this.snackbar.showError('skychat.password.errors.old-required'); return; } + this.pwBusy = true; + this.api.delete(`visors/${this.node.localPk}/skychat/password?old_password=${encodeURIComponent(this.pwOld)}`).subscribe( + () => { + this.pwBusy = false; + this.pwIsSet = false; + this.resetPasswordForm(); + this.snackbar.showDone('skychat.password.cleared'); + this.cdr.markForCheck(); + }, + (e: any) => { + this.pwBusy = false; + this.snackbar.showError(e?.originalError?.error?.error || e?.message || String(e)); + this.cdr.markForCheck(); + }, + ); + } +} diff --git a/static/skywire-manager-src/src/app/components/pages/services-health/services-health.component.html b/static/skywire-manager-src/src/app/components/pages/services-health/services-health.component.html index 830c351b10..5d61b7b34c 100644 --- a/static/skywire-manager-src/src/app/components/pages/services-health/services-health.component.html +++ b/static/skywire-manager-src/src/app/components/pages/services-health/services-health.component.html @@ -3,7 +3,7 @@ @@ -108,5 +108,83 @@ } } + + +
+

{{ 'services-health.rsn-section' | translate }}

+ @if (rsnLoading && rsnStats.length === 0) { +
+ + +
+ } + @if (!rsnLoading && rsnStats.length === 0) { +
{{ 'services-health.rsn-empty' | translate }}
+ } + @for (rsn of rsnStats; track trackRSN($index, rsn)) { +
+
+ + {{ rsn.pk }} + @if (rsn.snapshot) { + + {{ rsn.snapshot.success_rate_pct | number: '1.0-1' }}% + + } +
+ @if (rsn.error) { +
{{ 'services-health.rsn-error' | translate }}: {{ rsn.error }}
+ } + @if (rsn.snapshot) { +
+
+ {{ 'services-health.rsn-success' | translate }}: + {{ rsn.snapshot.successful || 0 }} +
+
+ {{ 'services-health.rsn-failed' | translate }}: + {{ rsn.snapshot.failed || 0 }} +
+
+ {{ 'services-health.rsn-active' | translate }}: + {{ rsn.snapshot.active_requests || 0 }} +
+
+ {{ 'services-health.rsn-latency-p50' | translate }}: + {{ rsn.snapshot.latency_ms?.p50_ms || 0 }} ms +
+
+ {{ 'services-health.rsn-latency-p95' | translate }}: + {{ rsn.snapshot.latency_ms?.p95_ms || 0 }} ms +
+
+ {{ 'services-health.rsn-latency-p99' | translate }}: + {{ rsn.snapshot.latency_ms?.p99_ms || 0 }} ms +
+ @if (rsn.snapshot.last_success_at) { +
+ {{ 'services-health.rsn-last-success' | translate }}: + {{ rsn.snapshot.last_success_at | date: 'HH:mm:ss' }} +
+ } + @if (rsn.snapshot.last_failure_at) { +
+ {{ 'services-health.rsn-last-failure' | translate }}: + {{ rsn.snapshot.last_failure_at | date: 'HH:mm:ss' }} +
+ } +
+ @if (topFailureReasons(rsn.snapshot).length > 0) { +
+ {{ 'services-health.rsn-failure-reasons' | translate }}: + @for (f of topFailureReasons(rsn.snapshot); track f.reason; let last = $last) { + {{ f.reason }} ({{ f.count }}) + } +
+ } + } +
+ } +
diff --git a/static/skywire-manager-src/src/app/components/pages/services-health/services-health.component.scss b/static/skywire-manager-src/src/app/components/pages/services-health/services-health.component.scss index b3fcff75cc..0fb05e8069 100644 --- a/static/skywire-manager-src/src/app/components/pages/services-health/services-health.component.scss +++ b/static/skywire-manager-src/src/app/components/pages/services-health/services-health.component.scss @@ -98,3 +98,81 @@ code { font-family: monospace; font-size: 0.9em; } + +// Route Setup Node remote stats panel. +.rsn-section { + .rsn-title { + font-size: 1em; + font-weight: 600; + color: rgba(255, 255, 255, 0.95); + margin: 0 0 10px; + } + + .rsn-card { + background: rgba(255, 255, 255, 0.03); + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 6px; + padding: 10px 14px; + margin-bottom: 10px; + } + + .rsn-card-header { + display: flex; + align-items: center; + gap: 10px; + margin-bottom: 8px; + flex-wrap: wrap; + + .dot { + width: 8px; + height: 8px; + border-radius: 50%; + display: inline-block; + } + .dot-green { background: #4caf50; } + .dot-red { background: #f44336; } + + .rsn-pk { + font-family: monospace; + font-size: 11px; + color: rgba(255, 255, 255, 0.7); + word-break: break-all; + flex: 1 1 auto; + min-width: 0; + } + + .rsn-rate { + font-weight: 600; + font-size: 13px; + } + } + + .rsn-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); + gap: 6px 16px; + font-size: 12px; + + strong { + margin-left: 6px; + color: rgba(255, 255, 255, 0.95); + } + } + + .rsn-failures { + margin-top: 8px; + font-size: 11px; + display: flex; + align-items: center; + gap: 6px; + flex-wrap: wrap; + + .rsn-fail-pill { + background: rgba(229, 57, 53, 0.15); + border: 1px solid rgba(229, 57, 53, 0.35); + color: rgba(255, 200, 200, 0.95); + padding: 1px 6px; + border-radius: 3px; + } + } +} diff --git a/static/skywire-manager-src/src/app/components/pages/services-health/services-health.component.ts b/static/skywire-manager-src/src/app/components/pages/services-health/services-health.component.ts index ee7d968b0f..864f6e6186 100644 --- a/static/skywire-manager-src/src/app/components/pages/services-health/services-health.component.ts +++ b/static/skywire-manager-src/src/app/components/pages/services-health/services-health.component.ts @@ -5,6 +5,34 @@ import { switchMap } from 'rxjs/operators'; import { ServiceHealthEntry, ServiceHealthService } from 'src/app/services/service-health.service'; import { TabButtonData } from '../../layout/top-bar/top-bar.component'; import { PageBaseComponent } from 'src/app/utils/page-base'; +import { ApiService } from 'src/app/services/api.service'; +import { homeTabsData } from 'src/app/utils/home-tabs'; + +/** One RSN's remote /stats fetch result, mirrors pkg/visor.RSNRemoteStat. */ +interface RSNRemoteStat { + pk: string; + snapshot?: RSNSnapshot; + error?: string; + status?: number; +} +/** Subset of pkg/router/setupmetrics.StatsSnapshot we render. */ +interface RSNSnapshot { + started_at?: string; + uptime_sec?: number; + total_requests?: number; + successful?: number; + failed?: number; + concurrency_drops?: number; + active_requests?: number; + success_rate_pct?: number; + failures_by_reason?: { [reason: string]: number }; + latency_ms?: { + count?: number; min_ms?: number; max_ms?: number; mean_ms?: number; + p50_ms?: number; p95_ms?: number; p99_ms?: number; + }; + last_success_at?: string; + last_failure_at?: string; +} /** * Services health dashboard. Shows the reachability, latency and version @@ -25,43 +53,16 @@ export class ServicesHealthComponent extends PageBaseComponent implements OnInit error: string | null = null; lastUpdated: Date | null = null; + // Route setup node remote stats. + rsnStats: RSNRemoteStat[] = []; + rsnLoading = true; + private sub: Subscription; + private rsnSub: Subscription; - constructor(private healthSvc: ServiceHealthService) { + constructor(private healthSvc: ServiceHealthService, private api: ApiService) { super(); - this.tabsData = [ - { - icon: 'view_headline', - label: 'nodes.title', - linkParts: ['/nodes'], - }, - { - icon: 'monetization_on', - label: 'nodes.rewards-title', - linkParts: ['/nodes', 'rewards'], - }, - { - icon: 'health_and_safety', - label: 'nodes.services-health-title', - linkParts: ['/nodes', 'services-health'], - }, - { - icon: 'hub', - label: 'nodes.dmsg-settings-title', - linkParts: ['/nodes', 'dmsg-settings'], - }, - { - icon: 'bubble_chart', - label: 'node.details.tpviz.title', - linkParts: [], - externalUrl: '/tp-viz/', - }, - { - icon: 'settings', - label: 'settings.title', - linkParts: ['/settings'], - }, - ]; + this.tabsData = homeTabsData(); } ngOnInit() { @@ -83,15 +84,50 @@ export class ServicesHealthComponent extends PageBaseComponent implements OnInit this.error = err?.message || 'Failed to fetch services health'; }, }); + + // RSN stats poll on a slower cadence — each entry is a DMSG + // round-trip that the visor caches briefly anyway, and 30s is + // plenty for an at-a-glance view. + this.rsnSub = interval(30000) + .pipe( + startWith(0), + switchMap(() => this.api.get('route-setup-nodes/stats')), + ) + .subscribe({ + next: (rows: RSNRemoteStat[]) => { + this.rsnStats = Array.isArray(rows) ? rows : []; + this.rsnLoading = false; + }, + error: () => { this.rsnLoading = false; }, + }); + return super.ngOnInit(); } ngOnDestroy(): void { - if (this.sub) { - this.sub.unsubscribe(); - } + this.sub?.unsubscribe(); + this.rsnSub?.unsubscribe(); + } + + /** Top 3 failure reasons for one RSN, sorted by count desc. */ + topFailureReasons(snap?: RSNSnapshot): { reason: string, count: number }[] { + if (!snap?.failures_by_reason) { return []; } + return Object.entries(snap.failures_by_reason) + .map(([reason, count]) => ({ reason, count: count as number })) + .filter((x) => x.count > 0) + .sort((a, b) => b.count - a.count) + .slice(0, 3); } + successClass(snap?: RSNSnapshot): string { + const r = snap?.success_rate_pct ?? 0; + if (r >= 90) { return 'latency-fast'; } + if (r >= 70) { return 'latency-medium'; } + return 'latency-slow'; + } + + trackRSN(_: number, e: RSNRemoteStat): string { return e.pk; } + /** Map the backend status string to a CSS class for the status dot. */ statusClass(entry: ServiceHealthEntry): string { const s = (entry?.status || '').toUpperCase(); diff --git a/static/skywire-manager-src/src/app/components/pages/settings/settings.component.html b/static/skywire-manager-src/src/app/components/pages/settings/settings.component.html index 83e13feb2e..dc4a53005e 100644 --- a/static/skywire-manager-src/src/app/components/pages/settings/settings.component.html +++ b/static/skywire-manager-src/src/app/components/pages/settings/settings.component.html @@ -3,7 +3,7 @@ /dmsg/sessions — per-client session state + * POST /api/visors//dmsg/connect-all — one-shot reach-every-server + * PUT /api/visors//dmsg/sessions-count — persist sessions_count + connect-all + * for the visor identified by pk (the local hypervisor's own visor or + * any remote visor reachable through the hypervisor RPC channel). */ @Injectable({ providedIn: 'root', @@ -50,23 +52,21 @@ export interface DmsgConnectAllResult { export class DmsgSettingsService { constructor(private apiService: ApiService) {} - /** One-shot fetch of per-client session state. */ - getSessions(): Observable { - return this.apiService.get('dmsg/sessions') as Observable; + getSessions(pk: string): Observable { + return this.apiService.get(`visors/${pk}/dmsg/sessions`) as Observable; } - /** One-shot action: open a dmsg session to every known server. */ - connectAll(): Observable { - return this.apiService.post('dmsg/connect-all') as Observable; + connectAll(pk: string): Observable { + return this.apiService.post(`visors/${pk}/dmsg/connect-all`) as Observable; } /** - * Persist dmsg.sessions_count to the visor config file (so it survives + * Persist dmsg.sessions_count to the visor config (so it survives * restart) and trigger an immediate connect-all. A value of 0 means * "connect to every available dmsg server" — recommended for * visors hosting the embedded route or transport setup-node. */ - setSessionsCount(count: number): Observable { - return this.apiService.put('dmsg/sessions-count', { count }) as Observable; + setSessionsCount(pk: string, count: number): Observable { + return this.apiService.put(`visors/${pk}/dmsg/sessions-count`, { count }) as Observable; } } diff --git a/static/skywire-manager-src/src/app/services/node.service.ts b/static/skywire-manager-src/src/app/services/node.service.ts index 040ee9e8e7..7b8d58b71a 100644 --- a/static/skywire-manager-src/src/app/services/node.service.ts +++ b/static/skywire-manager-src/src/app/services/node.service.ts @@ -4,7 +4,7 @@ import BigNumber from 'bignumber.js'; import { StorageService } from './storage.service'; import { Node } from '../app.datatypes'; -import { ApiService } from './api.service'; +import { ApiService, RequestOptions, ResponseTypes } from './api.service'; /** * Known statuses the API returns in the health property of the visors. @@ -147,6 +147,7 @@ return { type: transport.type, recv: transport.log ? transport.log.recv : 0, sent: transport.log ? transport.log.sent : 0, + latencyMs: transport.latency_ms || 0, }); }); } @@ -307,6 +308,7 @@ return { type: transport.type, recv: transport.log.recv, sent: transport.log.sent, + latencyMs: transport.latency_ms || 0, }); }); } @@ -451,6 +453,45 @@ return { return this.apiService.get(`visors/${nodeKey}/runtime-logs`); } + /** + * Diff-streaming variant of getRuntimeLogs. Pass the previous + * response's `latest` as `since` to receive only newly-arrived + * entries; pass 0 for the full buffer. Returns the visor's + * RuntimeLogsDelta shape: { entries, latest, dropped }. + */ + getRuntimeLogsSince(nodeKey: string, since: number) { + return this.apiService.get(`visors/${nodeKey}/runtime-logs?since=${since}`); + } + + /** Visor process Go-runtime stats (heap, GC, goroutines). */ + getRuntimeStats(nodeKey: string) { + return this.apiService.get(`visors/${nodeKey}/runtime-stats`); + } + + /** Host system + visor process resource snapshot (CPU%, mem, disk, net). */ + getHostStats(nodeKey: string) { + return this.apiService.get(`visors/${nodeKey}/host-stats`); + } + + /** + * Aggregated SD/TPD/UT network view — the same combined table + * `skywire cli sd` prints. Hypervisor-scope (no nodeKey arg); + * cached on the visor for 5min by default. Pass refresh=true to + * force the visor to re-aggregate immediately. + */ + getNetworkView(refresh = false) { + const q = refresh ? '?refresh=true' : ''; + return this.apiService.get(`network-view${q}`); + } + + /** + * Embedded mainnet reward rules — same content `skywire cli + * reward rules` prints. Returned as raw markdown text. + */ + getRewardRules() { + return this.apiService.get(`reward-rules`, new RequestOptions({ responseType: ResponseTypes.Text })); + } + /** * Removes the rewards address of the node. */ diff --git a/static/skywire-manager-src/src/app/services/storage.service.ts b/static/skywire-manager-src/src/app/services/storage.service.ts index 6be23487a6..6adad088f7 100644 --- a/static/skywire-manager-src/src/app/services/storage.service.ts +++ b/static/skywire-manager-src/src/app/services/storage.service.ts @@ -462,7 +462,7 @@ export class StorageService { return node.ip; } - return node.localPk.substr(0, 8); + return node.localPk; } /** diff --git a/static/skywire-manager-src/src/app/utils/home-tabs.ts b/static/skywire-manager-src/src/app/utils/home-tabs.ts new file mode 100644 index 0000000000..2a54257261 --- /dev/null +++ b/static/skywire-manager-src/src/app/utils/home-tabs.ts @@ -0,0 +1,47 @@ +import { TabButtonData } from '../components/layout/top-bar/top-bar.component'; + +/** + * Single source of truth for the home top-bar's tab strip. + * Used by every home-level page (node-list, network-view, + * network-transports, multi-visor-resources, services-health, + * settings) so the order and grouping stay consistent. + * + * The `group` field drives the visual separator in the top-bar + * between local-hypervisor tabs and network-wide tabs. + * + * Indices (kept in sync with selectedTabIndex on each page): + * 0 Visor list + * 1 Rewards + * 2 Resources + * 3 Transports + * 4 Network + * 5 Network Visualizer + * 6 Deployment + * 7 Settings + */ +export const HOME_TAB_INDEX = { + visorList: 0, + rewards: 1, + resources: 2, + transports: 3, + network: 4, + tpviz: 5, + deployment: 6, + settings: 7, +}; + +export function homeTabsData(): TabButtonData[] { + return [ + // --- local: this hypervisor --- + { icon: 'view_headline', label: 'nodes.title', linkParts: ['/nodes'], group: 'local' }, + { icon: 'monetization_on', label: 'nodes.rewards-title', linkParts: ['/nodes', 'rewards'], group: 'local' }, + { icon: 'memory', label: 'nodes.resources-title', linkParts: ['/nodes', 'resources'], group: 'local' }, + // --- network-wide --- + { icon: 'swap_horiz', label: 'nodes.transports-title', linkParts: ['/nodes', 'transports'], group: 'network' }, + { icon: 'public', label: 'nodes.network-title', linkParts: ['/nodes', 'network'], group: 'network' }, + { icon: 'bubble_chart', label: 'node.details.tpviz.title', linkParts: [], externalUrl: '/tp-viz/', group: 'network' }, + { icon: 'check_circle', label: 'nodes.services-health-title', linkParts: ['/nodes', 'services-health'], group: 'network' }, + // --- meta --- + { icon: 'settings', label: 'settings.title', linkParts: ['/settings'] }, + ]; +} diff --git a/static/skywire-manager-src/src/assets/i18n/en.json b/static/skywire-manager-src/src/assets/i18n/en.json index d643ddff7a..ea49412e4f 100644 --- a/static/skywire-manager-src/src/assets/i18n/en.json +++ b/static/skywire-manager-src/src/assets/i18n/en.json @@ -2,6 +2,7 @@ "common": { "save": "Save", "cancel": "Cancel", + "loading": "Loading…", "downloaded": "Downloaded", "uploaded": "Uploaded", "loading-error": "There was an error getting the data. Retrying...", @@ -89,6 +90,20 @@ "node": { "title": "Visor details", "not-found": "Visor not found.", + "resource-monitor": { + "title": "Resource monitor", + "tab-host": "Host", + "tab-process": "Process", + "cpu": "CPU", + "memory": "Memory", + "disk": "Disk", + "net-rx": "Net rx", + "net-tx": "Net tx", + "threads": "Threads", + "heap": "Heap", + "goroutines": "Goroutines", + "gc": "GC rate" + }, "logs" : { "title": "Runtime Logs", "no-logs": "No runtime logs were found for this visor.", @@ -104,7 +119,10 @@ "filter-warning": "Warning or more important", "filter-error": "Error or more important", "filter-faltal": "Faltal or more important", - "filter-panic": "Panic" + "filter-panic": "Panic", + "live-on": "Live (pause)", + "live-off": "Paused (live)", + "dropped": "Skipped {{ count }} older entries that aged out of the visor's runtime buffer." }, "statuses": { "online": "Online", @@ -156,7 +174,8 @@ "not-registered-info": "You have not specified a Skycoin address for receiving rewards for this visor. If you want to register the visor for receiving rewards, press the \"Set address\" button and set a Skycoin address.", "open-in-explorer": "Open in blockchain explorer", "set-address-button": "Set address", - "change-address-button": "Change address" + "change-address-button": "Change address", + "show-rules": "Reward rules (embedded mainnet_rules.md)" }, "transports-info": { "title": "Transport", @@ -214,8 +233,12 @@ "info": "Info", "apps": "Apps", "routing": "Routing", + "transports": "Transports", "rewards": "Rewards", - "skynet": "Skynet" + "skynet": "Skynet", + "resources": "Resources", + "chat": "Skychat", + "dmsg": "DMSG" }, "error-load": "An error occurred while refreshing the data. Retrying..." }, @@ -244,7 +267,10 @@ "title": "Visor list", "dmsg-title": "DMSG", "rewards-title": "Rewards", - "services-health-title": "Services health", + "services-health-title": "Deployment", + "network-title": "Network", + "resources-title": "Resources", + "transports-title": "Transports", "dmsg-settings-title": "DMSG settings", "reward-address": "Reward Address", "reward-total": "Week Total", @@ -306,16 +332,121 @@ } }, + "network-transports": { + "loading": "Fetching transport metrics from TPD…", + "summary": "{{transports}} transports · {{bandwidth}} network bandwidth ({{days}} days)", + "last-updated": "last fetched", + "days": "Window", + "view": "View", + "view-compact": "Compact", + "view-tree": "Tree", + "refresh": "Refresh", + "tp-id": "Transport ID", + "type": "Type", + "edge-a": "Edge A", + "edge-b": "Edge B", + "sent": "Sent", + "recv": "Recv", + "total": "Total", + "latency": "Latency" + }, + + "multi-resources": { + "loading": "Polling visor host stats…", + "summary": "{{count}} visors", + "last-updated": "last sample", + "visor": "Visor", + "cpu": "CPU", + "mem": "Memory", + "disk": "Disk", + "tx": "TX", + "rx": "RX", + "proc-rss": "Process RSS" + }, + "services-health": { - "loading": "Checking services…", - "all-ok": "All services operational", - "degraded": "One or more services are degraded", + "loading": "Checking deployment services…", + "all-ok": "All deployment services operational", + "degraded": "One or more deployment services are degraded", "last-updated": "last checked", "service": "Service", "status": "Status", "latency": "Latency", "version": "Version", - "endpoint": "Endpoint" + "endpoint": "Endpoint", + "rsn-section": "Route Setup Nodes", + "rsn-empty": "No route setup nodes configured.", + "rsn-pk": "Public Key", + "rsn-success": "Successful", + "rsn-failed": "Failed", + "rsn-rate": "Success rate", + "rsn-latency-p50": "p50", + "rsn-latency-p95": "p95", + "rsn-latency-p99": "p99", + "rsn-active": "In flight", + "rsn-last-success": "Last success", + "rsn-last-failure": "Last failure", + "rsn-uptime": "Uptime", + "rsn-failure-reasons": "Top failure reasons", + "rsn-error": "Unreachable" + }, + + "skychat": { + "title": "Skychat", + "connected": "Connected", + "disconnected": "Disconnected", + "no-history": "history is disabled (--persist not set)", + "empty": "No messages yet — incoming chats from connected peers will appear here.", + "peers": "Peers", + "peers-empty": "No peers yet. Send a message or wait for an incoming chat.", + "to": "Recipient PK", + "network": "Network", + "message": "Message", + "placeholder": "Type a message; Ctrl+Enter to send", + "send": "Send", + "password": { + "set": "Set password", + "change": "Change password", + "clear": "Remove", + "hide": "Hide", + "saved": "Skychat password updated", + "cleared": "Skychat password removed", + "old": "Current password", + "new": "New password", + "confirm": "Repeat new password", + "help-unset": "Skychat is currently unprotected. Set a password to require basic auth on the standalone :8001 surface; this hypervisor session always bypasses it.", + "help-set": "A password is set on skychat's standalone :8001 surface. Change or remove it here.", + "errors": { + "length": "Skychat password must be 6-64 characters", + "mismatch": "Passwords do not match", + "old-required": "Current password is required to remove the gate" + } + } + }, + + "network-view": { + "loading": "Aggregating service-discovery, transport-discovery and uptime-tracker…", + "last-updated": "last fetched", + "empty": "No visors match the current filters.", + "search": "Search", + "country": "Country", + "version": "Version", + "min-transports": "Min tps", + "online-only": "Online only", + "refresh": "Refresh now", + "col": { + "pk": "PK", + "country": "Country", + "version": "Version", + "services": "Services", + "total": "Total", + "status": "UT" + }, + "legend": { + "offline": "offline (UT)", + "not-in-ut": "not in UT", + "low-transports": "online but <2 stcpr/sudph" + } }, "dmsg-settings": { @@ -671,6 +802,7 @@ "id": "ID", "remote-node": "Remote", "type": "Type", + "latency": "Latency", "create": "Create transport", "make-persistent-confirmation": "Are you sure you want to make the transport persistent?", "make-non-persistent-confirmation": "Are you sure you want to make the transport non-persistent?", @@ -736,6 +868,12 @@ "type": "Type", "source": "Source", "destination": "Destination", + "local-port": "Local port", + "remote-port": "Remote port", + "remote-pk": "Remote", + "next-rid": "Next RID", + "next-tp": "Next TP", + "keep-alive": "Keep-alive", "delete-confirmation": "Are you sure you want to delete the route?", "delete-selected-confirmation": "Are you sure you want to delete the selected routes?", "delete": "Delete route", diff --git a/static/skywire-manager-src/src/styles.scss b/static/skywire-manager-src/src/styles.scss index da0d11c593..48fedf49d1 100644 --- a/static/skywire-manager-src/src/styles.scss +++ b/static/skywire-manager-src/src/styles.scss @@ -72,6 +72,35 @@ button:focus { display: flex; } +// Global text-color fix for matInput / textarea on the dark hvui +// theme. Material 21's default outline-appearance picks the +// theme's foreground color, which renders as near-black on this +// theme — so user-typed text is invisible against the dark surface +// until you focus + start typing again. Force a readable tone +// everywhere; component-scoped overrides aren't enough for ::ng-deep +// reasons. (Mirrors the existing global mat-mdc-select-value fix +// further down.) +.mat-mdc-form-field input.mat-mdc-input-element, +.mat-mdc-form-field textarea.mat-mdc-input-element { + color: rgba(255, 255, 255, 0.92) !important; + caret-color: rgba(255, 255, 255, 0.92) !important; +} +.mat-mdc-form-field input.mat-mdc-input-element::placeholder, +.mat-mdc-form-field textarea.mat-mdc-input-element::placeholder { + color: rgba(255, 255, 255, 0.45) !important; +} +// Outline / floating label tone — slightly dimmer so it doesn't +// compete with the entered text. +.mat-mdc-form-field .mdc-floating-label, +.mat-mdc-form-field .mat-mdc-floating-label { + color: rgba(255, 255, 255, 0.7); +} +.mat-mdc-form-field .mdc-notched-outline__leading, +.mat-mdc-form-field .mdc-notched-outline__notch, +.mat-mdc-form-field .mdc-notched-outline__trailing { + border-color: rgba(255, 255, 255, 0.25) !important; +} + .mdc-text-field--filled { background-color: transparent !important; padding: 0 !important;