Replace UI grid and notify with Tailwind components

This commit is contained in:
thePR0M3TH3AN committed 2025-10-13 21:53:26 -04:00
1 parent 8506b76004
commit c3ba160ef8
14 files changed
+555 -687

No files matched your search

+1 -1
View File
@@ -1,3 +1,3 @@
:root{--color-page:#fff;--color-page-alt:#f9fafb;--color-surface:#0f172a;--color-surface-alt:#111827;--color-bg:var(--color-surface);--color-card:#1e293b;--color-card-private:#3b1d74;--color-card-critical:#3f0b13;--color-panel:#1f2937;--color-panel-hover:#334155;--color-border:#374151;--color-border-subtle:#d1d5db;--color-primary:#fe0032;--color-secondary:#ff93a5;--color-logo-accent:var(--color-primary);--color-logo-wordmark:var(--color-neutral-700);--color-logo-wordmark-inverse:var(--color-white);--color-logo-background:var(--color-neutral-700);--color-logo-background-inverse:var(--color-white);--color-info:#60a5fa;--color-info-strong:#2563eb;--color-info-pressed:#1d4ed8;--color-info-glass:rgba(37,99,235,.18);--color-muted-strong:#6b7280;--color-text:#f8fafc;--color-text-strong:#0f172a;--color-text-muted:var(--color-muted);--color-muted:#94a3b8;--color-muted-alt:#9ca3af;--color-subtle-text:#e2e8f0;--color-subtle:#e5e7eb;--color-critical:#7f1d1d;--color-critical-strong:#991b1b;--color-warning:#facc15;--color-warning-strong:#d97706;--color-warning-surface:rgba(146,64,14,.24);--color-warning-glass:rgba(250,204,21,.18);--color-neutral-700:#3f3f46;--color-neutral-600:#52525b;--color-white:#fff;--color-black:#000;--color-overlay:#1a2234;--color-overlay-black:rgba(0,0,0,.9);--color-overlay-muted:rgba(15,23,42,.55);--color-overlay-strong:rgba(15,23,42,.75);--color-overlay-darker:rgba(15,23,42,.88);--color-overlay-panel:rgba(26,34,52,.82);--color-overlay-panel-soft:rgba(26,34,52,.65);--color-overlay-panel-tint:rgba(31,41,55,.5);--color-overlay-panel-glass:rgba(28,37,58,.72);--color-overlay-panel-glass-soft:rgba(31,41,55,.55);--color-modal-backdrop:rgba(8,12,24,.58);--color-modal-surface:rgba(20,28,46,.78);--color-overlay-veil:rgba(11,17,32,.96);--color-overlay-banner:rgba(51,65,85,.95);--color-sidebar-surface:rgba(17,24,39,.94);--color-sidebar-surface-alt:rgba(11,22,48,.78);--color-sidebar-border:rgba(148,163,184,.28);--color-sidebar-border-strong:rgba(148,163,184,.42);--color-sidebar-hover:rgba(56,189,248,.18);--color-sidebar-hover-strong:rgba(129,140,248,.28);--color-sidebar-glow:rgba(56,189,248,.35);--color-sidebar-accent-start:rgba(56,189,248,.9);--color-sidebar-accent-end:rgba(129,140,248,.85);--color-sidebar-text-muted:rgba(203,213,225,.75);--color-overlay-panel-gradient-start:rgba(30,41,59,.92);--color-overlay-panel-gradient-end:rgba(15,23,42,.92);--color-surface-tint-subtle:rgba(148,163,184,.08);--color-border-translucent:rgba(148,163,184,.18);--color-border-translucent-strong:rgba(148,163,184,.25);--color-border-translucent-bright:rgba(148,163,184,.32);--color-border-translucent-stronger:rgba(148,163,184,.35);--color-border-translucent-strongest:rgba(148,163,184,.4);--color-border-translucent-glow:rgba(148,163,184,.55);--color-border-translucent-medium:rgba(148,163,184,.2);--color-border-neutral-soft:rgba(229,231,235,.35);--color-border-info-soft:rgba(96,165,250,.35);--color-border-sidebar-strong:rgba(55,65,81,.9);--color-ring-private:rgba(168,85,247,.55);--color-ring-private-hover:rgba(192,132,252,.65);--color-ring-critical:rgba(239,68,68,.4);--color-ring-critical-soft:rgba(239,68,68,.35);--color-ring-critical-hover:rgba(239,68,68,.45);--color-ring-critical-strong:rgba(239,68,68,.55);--color-ring-alert:rgba(220,38,38,.6);--color-gradient-visibility-start:rgba(129,140,248,.4);--color-gradient-visibility-end:rgba(192,132,252,.32);--color-white-soft:hsla(0,0%,100%,.1);--color-white-softer:hsla(0,0%,100%,.3);--color-white-softest:hsla(0,0%,100%,.4);--color-shadow-floating:rgba(8,11,30,.55);--color-shadow-elevated:rgba(8,11,30,.45);--color-shadow-panel:rgba(15,23,42,.35);--color-shadow-notification:rgba(15,23,42,.3);--color-shadow-sidebar:rgba(0,0,0,.45);--color-divider-strong:rgba(15,23,42,.35);--color-text-frosted-strong:rgba(226,232,240,.94);--color-text-frosted:rgba(226,232,240,.9);--color-text-frosted-soft:rgba(226,232,240,.82);--scrollbar-width:0.5rem;--scrollbar-track:var(--color-white-soft);--scrollbar-thumb:var(--color-white-softer);--scrollbar-thumb-hover:var(--color-white-softest);--z-sidebar-overlay:10;--z-sidebar:20;--z-modal-root:100;--z-modal-overlay:110;--z-modal-content:120;--z-modal-player:130;--sidebar-width-expanded:16rem;--sidebar-width-collapsed:4rem;--sidebar-width:var(--sidebar-width-expanded);--sidebar-control-size:2.75rem;--sidebar-content-gap:1rem;--space-sidebar-shell-inline:var(--space-lg);--space-sidebar-shell-block-start:var(--space-lg);--space-sidebar-shell-block-end:1.75rem;--space-sidebar-scroll-gap:1.75rem;--space-sidebar-panel-gap:1.35rem;--space-sidebar-panel-padding-block:1.35rem;--space-sidebar-panel-padding-inline:1.1rem;--space-sidebar-footer-gap:0.85rem;--space-sidebar-trigger-padding-block:0.78rem;--space-sidebar-popover-offset:0.85rem;--space-sidebar-popover-padding-block:0.85rem;--space-sidebar-popover-padding-inline:0.65rem;--space-sidebar-popover-gap:0.45rem;--space-sidebar-nav-padding-block:0.7rem;--space-sidebar-subnav-padding-block:0.55rem;--blog-embed-height:Line truncated
/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:var(--font-family-sans);font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--font-family-mono);font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}html{font-size:100%}@media (min-width:1024px){html{font-size:75%}}*,:after,:before{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) transparent}::-webkit-scrollbar{width:var(--scrollbar-width);height:var(--scrollbar-width)}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:.25rem}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}body{font-family:var(--font-family-sans);background-color:var(--color-page);color:var(--color-text-strong);line-height:1.5;margin:0;padding:0;overflow-x:hidden}#editNip71TagsFieldset>legend,#nip71TagsFieldset>legend{margin-left:0;padding:0}#app{background-color:var(--color-page);color:inherit}body.modal-open,html.modal-open{overflow:hidden;height:100%}body.modal-open #app{overflow:hidden}body.modal-open #sidebar,body.modal-open #sidebarOverlay{pointer-events:none;opacity:0;visibility:hidden}body.modal-open #sidebar{z-index:var(--z-sidebar-overlay)}body.modal-open #sidebarOverlay{z-index:calc(var(--z-sidebar-overlay) - 1)}.ng-cloak,.ng-hide:not(.ng-hide-animate),.x-ng-cloak,[data-ng-cloak],[ng-cloak],[ng\:cloak],[x-ng-cloak]{display:none!important}ng\:form{display:block}.ng-animate-shim{visibility:hidden}.ng-anchor{position:absolute}.\!container{width:100%!important}.container{width:100%}@media (min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}#playerModal.ds-header{display:flex}.ds-header{display:flex;align-items:center;justify-content:flex-start;padding-top:var(--space-md);padding-bottom:var(--space-md)}.focus-ring{outline:2px solid transparent;outline-offset:2px}.focus-ring:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-color:var(--color-info);--tw-ring-opacity:0.7;--tw-ring-offset-width:2px;--tw-ring-offset-color:var(--color-surface);transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;transition-duration:Line truncated
/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:var(--font-family-sans);font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--font-family-mono);font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}html{font-size:100%}@media (min-width:1024px){html{font-size:75%}}*,:after,:before{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) transparent}::-webkit-scrollbar{width:var(--scrollbar-width);height:var(--scrollbar-width)}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:.25rem}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}body{font-family:var(--font-family-sans);background-color:var(--color-page);color:var(--color-text-strong);line-height:1.5;margin:0;padding:0;overflow-x:hidden}#editNip71TagsFieldset>legend,#nip71TagsFieldset>legend{margin-left:0;padding:0}#app{background-color:var(--color-page);color:inherit}body.modal-open,html.modal-open{overflow:hidden;height:100%}body.modal-open #app{overflow:hidden}body.modal-open #sidebar,body.modal-open #sidebarOverlay{pointer-events:none;opacity:0;visibility:hidden}body.modal-open #sidebar{z-index:var(--z-sidebar-overlay)}body.modal-open #sidebarOverlay{z-index:calc(var(--z-sidebar-overlay) - 1)}.ng-cloak,.ng-hide:not(.ng-hide-animate),.x-ng-cloak,[data-ng-cloak],[ng-cloak],[ng\:cloak],[x-ng-cloak]{display:none!important}ng\:form{display:block}.ng-animate-shim{visibility:hidden}.ng-anchor{position:absolute}.\!container{width:100%!important}.container{width:100%}@media (min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}#playerModal.ds-header{display:flex}.ds-header{display:flex;align-items:center;justify-content:flex-start;padding-top:var(--space-md);padding-bottom:var(--space-md)}.focus-ring{outline:2px solid transparent;outline-offset:2px}.focus-ring:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-color:var(--color-info);--tw-ring-opacity:0.7;--tw-ring-offset-width:2px;--tw-ring-offset-color:var(--color-surface);transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;transition-duration:Line truncated
+13 -550
View File
@@ -1155,566 +1155,29 @@
pointer-events: none;
}
/* Angular UI Grid theming */
.ui-grid {
@apply relative w-full rounded-xl border border-border-translucent bg-surface text-sm text-text shadow-sm;
box-sizing: content-box;
transform: translateZ(0);
border-width: var(--grid-border-width);
.torrent-toast-motion {
transition-property: opacity, transform;
will-change: opacity, transform;
}
.ui-grid-render-container {
position: relative;
.torrent-toast {
@apply pointer-events-auto w-full max-w-md rounded-lg px-4 py-3 text-sm font-medium tracking-tight shadow-lg ring-1 ring-inset;
}
.ui-grid-render-container:focus,
.ui-grid-viewport:focus {
outline: none;
.torrent-toast--info {
@apply border border-border-translucent bg-surface text-text;
}
.ui-grid-vertical-bar {
position: absolute;
right: 0;
width: 0;
.torrent-toast--success {
@apply border border-info border-opacity-60 bg-info text-white;
}
.ui-grid-header-cell:not(:last-child) .ui-grid-vertical-bar,
.ui-grid-cell:not(:last-child) .ui-grid-vertical-bar {
width: var(--grid-border-width);
background-color: var(--color-border-translucent-medium);
.torrent-toast--error {
@apply border border-critical border-opacity-60 bg-critical text-white;
}
.ui-grid-contents-wrapper {
position: relative;
height: 100%;
width: 100%;
}
.ui-grid-top-panel-background,
.ui-grid-footer-panel-background {
background-color: var(--color-surface-alt);
}
.ui-grid-header {
border-bottom: var(--grid-border-width) solid var(--color-border-translucent-medium);
box-sizing: border-box;
}
.ui-grid-top-panel {
position: relative;
overflow: hidden;
font-weight: 600;
background-color: var(--color-surface-alt);
color: var(--color-muted-strong);
}
.ui-grid-header-viewport,
.ui-grid-footer-viewport {
overflow: hidden;
}
.ui-grid-header-canvas,
.ui-grid-footer-canvas {
display: table;
width: 100%;
}
.ui-grid-header-cell-wrapper,
.ui-grid-footer-cell-wrapper {
position: relative;
display: table;
box-sizing: border-box;
height: 100%;
width: 100%;
}
.ui-grid-header-cell-row,
.ui-grid-footer-cell-row {
display: table-row;
}
.ui-grid-header-cell,
.ui-grid-footer-cell {
position: relative;
display: table-cell;
box-sizing: border-box;
border-right: var(--grid-border-width) solid var(--color-border-translucent-medium);
background-color: inherit;
font-size: var(--grid-header-font-size);
letter-spacing: var(--grid-header-letter-spacing);
text-transform: uppercase;
padding-block: var(--grid-cell-padding-block);
}
.ui-grid-header-cell {
padding-inline: calc(var(--grid-cell-padding-inline) + var(--grid-sort-indicator-size));
}
.ui-grid-footer-cell {
padding-inline: var(--grid-cell-padding-inline);
}
.ui-grid-header-cell:last-child,
.ui-grid-footer-cell:last-child {
border-right: 0;
}
.ui-grid-header-cell .sortable {
cursor: pointer;
}
.ui-grid-header-cell .ui-grid-sort-priority-number {
margin-left: calc(var(--space-xs) * -1);
}
.ui-grid-sortarrow {
position: absolute;
inset-block: 0;
inset-inline-end: var(--grid-sort-indicator-offset);
width: var(--grid-sort-indicator-size);
display: flex;
align-items: center;
justify-content: center;
pointer-events: none;
}
.ui-grid-sortarrow::before {
content: "";
border-style: solid;
border-width: 0 var(--grid-sort-indicator-stroke) var(--grid-sort-indicator-stroke)
var(--grid-sort-indicator-stroke);
border-color: transparent transparent var(--color-muted-strong) transparent;
transition: transform var(--motion-duration-base) var(--motion-ease-out);
transform-origin: center;
}
.ui-grid-sortarrow.down::before {
transform: rotate(180deg);
}
.ui-grid-viewport {
min-height: var(--grid-viewport-min-height);
position: relative;
overflow-y: auto;
-webkit-overflow-scrolling: touch;
}
.ui-grid-canvas {
position: relative;
padding-top: var(--grid-canvas-padding-top);
}
.ui-grid-row {
border-bottom: var(--grid-border-width) solid var(--color-border-translucent);
}
.ui-grid-row:nth-child(odd) .ui-grid-cell {
background-color: var(--color-surface);
}
.ui-grid-row:nth-child(even) .ui-grid-cell {
background-color: var(--color-surface-alt);
}
.ui-grid-row:last-child .ui-grid-cell {
border-bottom: var(--grid-border-width) solid var(--color-border-translucent-medium);
}
.ui-grid-row:hover .ui-grid-cell {
background-color: var(--color-panel-hover);
}
.ui-grid-row-selected > [ui-grid-row] > .ui-grid-cell {
background-color: var(--color-info-glass);
color: var(--color-text);
}
.ui-grid-cell {
float: left;
overflow: hidden;
box-sizing: border-box;
border-right: var(--grid-border-width) solid var(--color-border-translucent-medium);
}
.ui-grid-cell:last-child {
border-right: 0;
}
.ui-grid-cell-contents {
box-sizing: border-box;
padding: var(--grid-cell-padding-block) var(--grid-cell-padding-inline);
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
height: 100%;
}
.ui-grid-cell-contents-hidden {
display: none;
visibility: hidden;
width: 0;
height: 0;
}
.ui-grid-cell-focus {
outline: none;
background-color: var(--color-info-glass);
}
.ui-grid-focuser {
position: absolute;
inset: 0;
z-index: -1;
width: 100%;
height: 100%;
}
.ui-grid-focuser:focus {
outline: none;
box-shadow: 0 0 0 var(--grid-border-width) var(--color-info-glass);
}
.ui-grid-offscreen {
position: absolute;
width: var(--grid-border-width);
height: var(--grid-border-width);
margin: calc(var(--grid-border-width) * -1);
border: 0;
clip: rect(0 0 0 0);
white-space: nowrap;
overflow: hidden;
}
.ui-grid-no-row-overlay {
position: absolute;
inset: 0;
margin: var(--grid-overlay-margin);
padding: var(--grid-overlay-padding-block) var(--grid-overlay-padding-inline);
display: grid;
place-items: center;
background-color: var(--color-surface-alt);
border-radius: var(--grid-overlay-radius);
border: var(--grid-border-width) solid var(--color-border-translucent-medium);
font-size: var(--grid-overlay-font-size);
text-align: center;
}
.ui-grid-no-row-overlay > * {
opacity: var(--grid-overlay-text-opacity);
}
.ui-grid-menu-button {
z-index: 2;
position: absolute;
inset-inline-end: 0;
inset-block-start: 0;
background-color: var(--color-surface-alt);
border: var(--grid-border-width) solid var(--color-border-translucent-medium);
cursor: pointer;
height: calc(var(--space-xl) + var(--space-xs));
font-weight: normal;
}
.ui-grid-menu {
z-index: 2;
position: absolute;
padding: var(--space-xs) var(--space-sm) var(--space-md);
box-sizing: border-box;
background-color: var(--color-surface-alt);
border: var(--grid-border-width) solid var(--color-border-translucent-medium);
border-radius: var(--radius-md);
box-shadow: var(--shadow-lg);
}
.ui-grid-column-resizer {
position: absolute;
inset-block: 0;
width: var(--grid-resizer-width);
cursor: col-resize;
}
.ui-grid-column-resizer.left {
inset-inline-start: 0;
}
.ui-grid-column-resizer.right {
inset-inline-end: 0;
}
.ui-grid.column-resizing {
cursor: col-resize;
user-select: none;
}
.ui-grid.column-resizing .ui-grid-resize-overlay {
position: absolute;
inset-block: 0;
width: var(--grid-resize-overlay-width);
background-color: var(--color-border-translucent-bright);
}
.ui-grid-row-saving .ui-grid-cell {
color: var(--color-muted-strong);
}
.ui-grid-row-dirty .ui-grid-cell {
color: var(--color-warning-strong);
}
.ui-grid-row-error .ui-grid-cell {
color: var(--color-critical-strong);
}
.ui-grid-disable-selection {
user-select: none;
cursor: default;
}
.ui-grid-animate-spin {
display: inline-block;
animation: ui-grid-spin var(--motion-duration-slow) linear infinite;
}
@keyframes ui-grid-spin {
to {
transform: rotate(360deg);
}
}
/* ng-notify overrides */
.ngn {
pointer-events: none;
position: fixed;
inset-inline: 0;
display: none;
z-index: var(--z-notify);
padding: var(--notify-padding-block) var(--notify-padding-inline);
text-align: center;
font-size: var(--notify-font-size);
font-weight: 600;
color: var(--color-text);
text-shadow: none;
user-select: none;
cursor: default;
}
.ngn.ngn-visible,
.ngn.ngn-enter-active,
.ngn.ngn-leave-active {
pointer-events: auto;
}
.ngn-component {
position: absolute;
}
.ngn-top {
inset-block-start: 0;
}
.ngn-bottom {
inset-block-end: 0;
}
.ngn-dismiss {
pointer-events: auto;
display: none;
margin-left: auto;
margin-right: var(--space-md);
border-radius: var(--notify-dismiss-radius);
border: 0;
background-color: var(--notify-dismiss-background);
color: var(--notify-dismiss-color);
font-size: var(--notify-dismiss-font-size);
font-weight: 700;
line-height: 1;
width: var(--notify-dismiss-size);
height: var(--notify-dismiss-size);
align-items: center;
justify-content: center;
transition: background-color var(--motion-duration-base) var(--motion-ease-out);
}
.ngn-sticky .ngn-dismiss {
display: inline-flex;
}
.ngn-dismiss:hover {
background-color: var(--notify-dismiss-background-hover);
}
.ngn-dismiss:active {
background-color: color-mix(
in srgb,
var(--notify-dismiss-background-hover) 80%,
var(--color-panel) 20%
);
}
.ngn-info {
background-color: var(--color-info-strong);
}
.ngn-error {
background-color: var(--color-critical-strong);
}
.ngn-success {
background-color: var(--color-info);
}
.ngn-warn {
background-color: var(--color-warning-strong);
color: var(--color-text-strong);
}
.ngn-grimace {
background-color: var(--color-secondary);
}
.ngn-prime {
color: var(--color-text);
}
.ngn-prime.ngn-info {
background-color: color-mix(
in srgb,
var(--color-info-strong) 85%,
var(--color-surface-alt) 15%
);
}
.ngn-prime.ngn-error {
background-color: color-mix(
in srgb,
var(--color-critical-strong) 85%,
var(--color-surface-alt) 15%
);
}
.ngn-prime.ngn-success {
background-color: color-mix(
in srgb,
var(--color-info) 85%,
var(--color-surface-alt) 15%
);
}
.ngn-prime.ngn-warn {
background-color: color-mix(
in srgb,
var(--color-warning-strong) 85%,
var(--color-surface-alt) 15%
);
}
.ngn-prime.ngn-grimace {
background-color: color-mix(
in srgb,
var(--color-secondary) 85%,
var(--color-surface-alt) 15%
);
}
.ngn-pastel {
color: var(--color-text-strong);
}
.ngn-pastel.ngn-info {
background-color: color-mix(
in srgb,
var(--color-info) 45%,
var(--color-surface) 55%
);
}
.ngn-pastel.ngn-error {
background-color: color-mix(
in srgb,
var(--color-critical-strong) 45%,
var(--color-surface) 55%
);
}
.ngn-pastel.ngn-success {
background-color: color-mix(
in srgb,
var(--color-info) 45%,
var(--color-surface) 55%
);
}
.ngn-pastel.ngn-warn {
background-color: color-mix(
in srgb,
var(--color-warning-strong) 45%,
var(--color-surface) 55%
);
}
.ngn-pastel.ngn-grimace {
background-color: color-mix(
in srgb,
var(--color-secondary) 45%,
var(--color-surface) 55%
);
}
.ngn-pitchy {
color: var(--color-text);
}
.ngn-pitchy.ngn-info {
background-color: color-mix(
in srgb,
var(--color-info-pressed) 75%,
var(--color-surface-alt) 25%
);
}
.ngn-pitchy.ngn-error {
background-color: color-mix(
in srgb,
var(--color-critical-strong) 75%,
var(--color-surface-alt) 25%
);
}
.ngn-pitchy.ngn-success {
background-color: color-mix(
in srgb,
var(--color-info) 75%,
var(--color-surface-alt) 25%
);
}
.ngn-pitchy.ngn-warn {
background-color: color-mix(
in srgb,
var(--color-warning-strong) 75%,
var(--color-surface-alt) 25%
);
}
.ngn-pitchy.ngn-grimace {
background-color: color-mix(
in srgb,
var(--color-secondary) 75%,
var(--color-surface-alt) 25%
);
}
@media (max-width: 30rem) {
.ngn {
font-size: var(--font-size-sm);
padding: var(--space-sm) var(--space-lg);
}
.ngn-dismiss {
width: var(--notify-dismiss-size-compact);
height: var(--notify-dismiss-size-compact);
font-size: var(--font-size-xs);
}
.torrent-toast--warn {
@apply border border-warning-strong border-opacity-70 bg-warning-strong text-warning-strong;
}
.profile-switcher {
-17
View File
@@ -12,10 +12,8 @@
"angular": "^1.8.3",
"angular-route": "^1.8.3",
"angular-sanitize": "^1.8.3",
"angular-ui-grid": "^4.12.7",
"moment": "^2.30.1",
"ng-file-upload": "^12.2.13",
"ng-notify": "^0.7.1",
"webtorrent": "^1.9.7"
},
"devDependencies": {
@@ -1051,15 +1049,6 @@
"deprecated": "For the actively supported Angular, see https://www.npmjs.com/package/@angular/core. AngularJS support has officially ended. For extended AngularJS support options, see https://goo.gle/angularjs-path-forward.",
"license": "MIT"
},
"node_modules/angular-ui-grid": {
"version": "4.12.7",
"resolved": "https://registry.npmjs.org/angular-ui-grid/-/angular-ui-grid-4.12.7.tgz",
"integrity": "sha512-l00dhM2/48xfnPcIaQZgxVoK4oAVA2erxHjjYke8Xli0Q06VYf/LJ41SQfNp3tGk7NCk2mBdSFD2GXfHakXHlA==",
"license": "MIT",
"dependencies": {
"angular": ">=1.4.0"
}
},
"node_modules/ansi-regex": {
"version": "6.2.2",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz",
@@ -3805,12 +3794,6 @@
"integrity": "sha512-YFjxwmVcNssYc8hq8eCbtYSliPnrObozSZRC9yg4GoDtI0xGKUeHgEcOh+nsMF/9cTzMB/lQZAYdf29oyQgF0g==",
"license": "MIT"
},
"node_modules/ng-notify": {
"version": "0.7.1",
"resolved": "https://registry.npmjs.org/ng-notify/-/ng-notify-0.7.1.tgz",
"integrity": "sha512-uju3NfrOW+Hg4u39yeiBG/kPRGVPX9f9z3dEEoKoBO7GqS0glSIeW78LLy9AEr7CAu8f/RHJGJzrZKMUwDmsew==",
"license": "MIT"
},
"node_modules/node-gyp-build": {
"version": "4.8.4",
"resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz",
-2
View File
@@ -39,10 +39,8 @@
"angular": "^1.8.3",
"angular-route": "^1.8.3",
"angular-sanitize": "^1.8.3",
"angular-ui-grid": "^4.12.7",
"moment": "^2.30.1",
"ng-file-upload": "^12.2.13",
"ng-notify": "^0.7.1",
"webtorrent": "^1.9.7"
}
}
+1
View File
@@ -70,6 +70,7 @@ describe("torrent/ui/styleHelpers", () => {
beaconDynamicFallbackClasses.clipboard,
"torrent-clipboard-textarea",
);
assert.equal(beaconDynamicFallbackClasses.toast, "torrent-toast-motion");
});
it("applies dynamic styles and fallback classes", () => {
+51
View File
@@ -0,0 +1,51 @@
import { strict as assert } from "node:assert";
import { afterEach, beforeEach, describe, it } from "node:test";
import { JSDOM } from "jsdom";
import { createToastManager } from "../../torrent/ui/toastService.js";
let dom;
describe("torrent/ui/toastService", () => {
beforeEach(() => {
dom = new JSDOM("<!doctype html><html><head></head><body></body></html>", {
pretendToBeVisual: true,
});
});
afterEach(() => {
if (dom) {
dom.window.close();
dom = null;
}
});
it("renders a toast with Tailwind token classes and removes it on dismiss", async () => {
const documentRef = dom.window.document;
const toastManager = createToastManager(documentRef);
const handle = toastManager.success("Magnet copied", { sticky: true });
const container = documentRef.getElementById("beacon-toast-container");
assert.ok(container, "toast container should be created");
assert.equal(container.classList.contains("flex"), true);
const wrapper = container.firstElementChild;
assert.ok(wrapper, "toast wrapper should exist");
assert.equal(wrapper.classList.contains("torrent-toast-motion"), true);
const toast = wrapper.querySelector("div[role='status']");
assert.ok(toast, "toast element should be present");
assert.equal(toast.textContent.includes("Magnet copied"), true);
assert.equal(toast.classList.contains("torrent-toast"), true);
assert.equal(toast.classList.contains("torrent-toast--success"), true);
const closeButton = toast.querySelector("button[aria-label='Dismiss notification']");
assert.ok(closeButton, "close button should be rendered");
handle.dismiss();
await new Promise((resolve) => setTimeout(resolve, 250));
assert.equal(container.childElementCount, 0);
});
});
+49 -74
View File
@@ -1,5 +1,7 @@
/* global WebTorrent, angular, moment */
import { applyBeaconDynamicStyles } from "./ui/styleHelpers.js";
import { registerBeaconToast } from "./ui/toastService.js";
import { registerTorrentTable } from "./ui/torrentTable.js";
const VERSION = "1.1";
@@ -22,14 +24,10 @@ function dbg(msg) {
const client = new WebTorrent({ tracker: trackerOpts });
// Angular app definition.
const app = angular.module("BTorrent", [
"ngRoute",
"ui.grid",
"ui.grid.resizeColumns",
"ui.grid.selection",
"ngFileUpload",
"ngNotify",
]);
const app = angular.module("BTorrent", ["ngRoute", "ngFileUpload"]);
registerBeaconToast(app);
registerTorrentTable(app);
// Configure Angular routes.
app.config([
@@ -81,12 +79,12 @@ app.controller("BTorrentCtrl", [
"$rootScope",
"$http",
"$log",
"ngNotify",
function ($scope, $rootScope, $http, $log, ngNotify) {
"beaconToast",
function ($scope, $rootScope, $http, $log, beaconToast) {
dbg("Starting app.js version " + VERSION);
if (!WebTorrent.WEBRTC_SUPPORT) {
ngNotify.set("Please use a browser with WebRTC support.", "error");
beaconToast.error("Please use a browser with WebRTC support.", { sticky: true });
}
$rootScope.client = client;
@@ -96,7 +94,7 @@ app.controller("BTorrentCtrl", [
// Global error handler.
client.on("error", (err) => {
dbg("Torrent client error: " + err);
ngNotify.set(err.message || err, "error");
beaconToast.error(err.message || err);
$rootScope.processing = false;
});
@@ -108,7 +106,7 @@ app.controller("BTorrentCtrl", [
$rootScope.processing = false;
if (!isSeed) {
ngNotify.set(`Received ${torrent.name} metadata`);
beaconToast.info(`Received ${torrent.name} metadata`);
}
if (!$rootScope.selectedTorrent) {
$rootScope.selectedTorrent = torrent;
@@ -216,11 +214,11 @@ app.controller("BTorrentCtrl", [
navigator.clipboard
.writeText(magnetURI)
.then(() =>
ngNotify.set("Magnet URI copied to clipboard!", "success")
beaconToast.success("Magnet URI copied to clipboard!")
)
.catch((err) => {
console.error("Clipboard error:", err);
ngNotify.set("Failed to copy magnet URI", "error");
beaconToast.error("Failed to copy magnet URI");
});
} else {
try {
@@ -242,10 +240,10 @@ app.controller("BTorrentCtrl", [
textarea.select();
document.execCommand("copy");
document.body.removeChild(textarea);
ngNotify.set("Magnet URI copied (fallback)!", "success");
beaconToast.success("Magnet URI copied (fallback)!");
} catch (err) {
console.error("Clipboard fallback error:", err);
ngNotify.set("Failed to copy magnet URI", "error");
beaconToast.error("Failed to copy magnet URI");
}
}
};
@@ -268,13 +266,13 @@ app.controller("BTorrentCtrl", [
},
]);
// FullCtrl: sets up the ui-grid and magnet input for /full route.
// FullCtrl: handles the magnet input and torrent table for /full route.
app.controller("FullCtrl", [
"$scope",
"$rootScope",
"$location",
"ngNotify",
function ($scope, $rootScope, $location, ngNotify) {
"$interval",
function ($scope, $rootScope, $location, $interval) {
// Handle magnet input
$scope.addMagnet = function () {
$rootScope.addMagnet($scope.torrentInput);
@@ -286,64 +284,41 @@ app.controller("FullCtrl", [
$rootScope.addMagnet($location.hash());
}
// Define columns for ui-grid.
$scope.columns = [
{ field: "name", displayName: "Name", minWidth: 200 },
{
field: "progress",
displayName: "Progress",
cellFilter: "progress",
width: 100,
},
{
field: "downloadSpeed",
displayName: "↓ Speed",
cellFilter: "pbytes:1",
width: 100,
},
{
field: "uploadSpeed",
displayName: "↑ Speed",
cellFilter: "pbytes:1",
width: 100,
},
{ field: "numPeers", displayName: "Peers", width: 80 },
{
field: "ratio",
displayName: "Ratio",
cellFilter: "number:2",
width: 80,
},
];
const syncTorrents = () => {
const torrents = ($rootScope.client && $rootScope.client.torrents) || [];
$scope.torrentRows = torrents;
// Create gridOptions and update each second.
$scope.gridOptions = {
columnDefs: $scope.columns,
enableColumnResizing: true,
enableColumnMenus: false,
enableRowSelection: true,
enableRowHeaderSelection: false,
multiSelect: false,
data: [],
};
if ($rootScope.selectedTorrent) {
const stillPresent = torrents.some((torrent) => {
return (
torrent === $rootScope.selectedTorrent ||
(torrent?.magnetURI &&
torrent.magnetURI === $rootScope.selectedTorrent.magnetURI) ||
(torrent?.infoHash &&
torrent.infoHash === $rootScope.selectedTorrent.infoHash)
);
});
setInterval(() => {
$scope.gridOptions.data =
($rootScope.client && $rootScope.client.torrents) || [];
$scope.$applyAsync();
}, 1000);
// On row selection, set the selectedTorrent
$scope.gridOptions.onRegisterApi = function (gridApi) {
$scope.gridApi = gridApi;
gridApi.selection.on.rowSelectionChanged($scope, function (row) {
if (row.isSelected) {
$rootScope.selectedTorrent = row.entity;
} else {
$rootScope.selectedTorrent = null;
if (!stillPresent) {
$rootScope.selectedTorrent = torrents[0] || null;
}
});
} else if (torrents.length) {
$rootScope.selectedTorrent = torrents[0];
}
};
$scope.selectTorrent = function (torrent) {
$rootScope.selectedTorrent = torrent;
};
syncTorrents();
const poller = $interval(syncTorrents, 1000);
$scope.$on("$destroy", function () {
if (poller) {
$interval.cancel(poller);
}
});
},
]);
+84 -30
View File
@@ -1,30 +1,84 @@
(()=>{var gd=Object.create;var jc=Object.defineProperty;var md=Object.getOwnPropertyDescriptor;var vd=Object.getOwnPropertyNames;var bd=Object.getPrototypeOf,yd=Object.prototype.hasOwnProperty;var Bi=(we=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(we,{get:(Q,k)=>(typeof require!="undefined"?require:Q)[k]}):we)(function(we){if(typeof require!="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+we+'" is not supported')});var wi=(we,Q)=>()=>(Q||we((Q={exports:{}}).exports,Q),Q.exports);var wd=(we,Q,k,O)=>{if(Q&&typeof Q=="object"||typeof Q=="function")for(let I of vd(Q))!yd.call(we,I)&&I!==k&&jc(we,I,{get:()=>Q[I],enumerable:!(O=md(Q,I))||O.enumerable});return we};var ta=(we,Q,k)=>(k=we!=null?gd(bd(we)):{},wd(Q||!we||!we.__esModule?jc(k,"default",{value:we,enumerable:!0}):k,we));var zc=wi(()=>{(function(we){"use strict";var Q={objectMaxDepth:5,urlErrorParamsEnabled:!0};function k(n){if(Y(n))L(n.objectMaxDepth)&&(Q.objectMaxDepth=O(n.objectMaxDepth)?n.objectMaxDepth:NaN),L(n.urlErrorParamsEnabled)&&le(n.urlErrorParamsEnabled)&&(Q.urlErrorParamsEnabled=n.urlErrorParamsEnabled);else return Q}function O(n){return fe(n)&&n>0}function I(n,y){y=y||Error;var P="https://errors.angularjs.org/1.8.3/",H=P.replace(".","\\.")+"[\\s\\S]*",X=new RegExp(H,"g");return function(){var ue=arguments[0],ie=arguments[1],re="["+(n?n+":":"")+ue+"] ",ne=de(arguments,2).map(function(Ee){return Ye(Ee,Q.objectMaxDepth)}),me,be;if(re+=ie.replace(/\{\d+\}/g,function(Ee){var Ae=+Ee.slice(1,-1);return Ae<ne.length?ne[Ae].replace(X,""):Ee}),re+=`
`+P+(n?n+"/":"")+ue,Q.urlErrorParamsEnabled)for(be=0,me="?";be<ne.length;be++,me="&")re+=me+"p"+be+"="+encodeURIComponent(ne[be]);return new y(re)}}var D=/^\/(.+)\/([a-z]*)$/,T="validity",_=Object.prototype.hasOwnProperty,x=function(n){return ae(n)?n.toLowerCase():n},d=function(n){return ae(n)?n.toUpperCase():n},M,g,F,N=[].slice,J=[].splice,pe=[].push,m=Object.prototype.toString,U=Object.getPrototypeOf,A=I("ng"),p=we.angular||(we.angular={}),w,v=0;M=we.document.documentMode;function h(n){if(n==null||E(n))return!1;if(se(n)||ae(n)||g&&n instanceof g)return!0;var y="length"in Object(n)&&n.length;return fe(y)&&(y>=0&&y-1 in n||typeof n.item=="function")}function e(n,y,P){var H,X;if(n)if(K(n))for(H in n)H!=="prototype"&&H!=="length"&&H!=="name"&&n.hasOwnProperty(H)&&y.call(P,n[H],H,n);else if(se(n)||h(n)){var ue=typeof n!="object";for(H=0,X=n.length;H<X;H++)(ue||H in n)&&y.call(P,n[H],H,n)}else if(n.forEach&&n.forEach!==e)n.forEach(y,P,n);else if(ee(n))for(H in n)y.call(P,n[H],H,n);else if(typeof n.hasOwnProperty=="function")for(H in n)n.hasOwnProperty(H)&&y.call(P,n[H],H,n);else for(H in n)_.call(n,H)&&y.call(P,n[H],H,n);return n}function o(n,y,P){for(var H=Object.keys(n).sort(),X=0;X<H.length;X++)y.call(P,n[H[X]],H[X]);return H}function i(n){return function(y,P){n(P,y)}}function c(){return++v}function u(n,y){y?n.$$hashKey=y:delete n.$$hashKey}function s(n,y,P){for(var H=n.$$hashKey,X=0,ue=y.length;X<ue;++X){var ie=y[X];if(!(!Y(ie)&&!K(ie)))for(var re=Object.keys(ie),ne=0,me=re.length;ne<me;ne++){var be=re[ne],Ee=ie[be];P&&Y(Ee)?xe(Ee)?n[be]=new Date(Ee.valueOf()):z(Ee)?n[be]=new RegExp(Ee):Ee.nodeName?n[be]=Ee.cloneNode(!0):nt(Ee)?n[be]=Ee.clone():be!=="__proto__"&&(Y(n[be])||(n[be]=se(Ee)?[]:{}),s(n[be],[Ee],!0)):n[be]=Ee}}return u(n,H),n}function t(n){return s(n,N.call(arguments,1),!1)}function r(n){return s(n,N.call(arguments,1),!0)}function a(n){return parseInt(n,10)}var l=Number.isNaN||function(y){return y!==y};function f(n,y){return t(Object.create(n),y)}function b(){}b.$inject=[];function C(n){return n}C.$inject=[];function $(n){return function(){return n}}function W(n){return K(n.toString)&&n.toString!==m}function R(n){return typeof n=="undefined"}function L(n){return typeof n!="undefined"}function Y(n){return n!==null&&typeof n=="object"}function ee(n){return n!==null&&typeof n=="object"&&!U(n)}function ae(n){return typeof n=="string"}function fe(n){return typeof n=="number"}function xe(n){return m.call(n)==="[object Date]"}function se(n){return Array.isArray(n)||n instanceof Array}function B(n){var y=m.call(n);switch(y){case"[object Error]":return!0;case"[object Exception]":return!0;case"[object DOMException]":return!0;default:return n instanceof Error}}function K(n){return typeof n=="function"}function z(n){return m.call(n)==="[object RegExp]"}function E(n){return n&&n.window===n}function j(n){return n&&n.$evalAsync&&n.$watch}function Z(n){return m.call(n)==="[object File]"}function oe(n){return m.call(n)==="[object FormData]"}function q(n){return m.call(n)==="[object Blob]"}function le(n){return typeof n=="boolean"}function ge(n){return n&&K(n.then)}var Re=/^\[object (?:Uint8|Uint8Clamped|Uint16|Uint32|Int8|Int16|Int32|Float32|Float64)Array]$/;function ke(n){return n&&fe(n.length)&&Re.test(m.call(n))}function De(n){return m.call(n)==="[object ArrayBuffer]"}var $e=function(n){return ae(n)?n.trim():n},qe=function(n){return n.replace(/([-()[\]{}+?*.$^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")};function nt(n){return!!(n&&(n.nodeName||n.prop&&n.attr&&n.find))}function bt(n){var y={},P=n.split(","),H;for(H=0;H<P.length;H++)y[P[H]]=!0;return y}function ct(n){return x(n.nodeName||n[0]&&n[0].nodeName)}function Me(n,y){return Array.prototype.indexOf.call(n,y)!==-1}function Ge(n,y){var P=n.indexOf(y);return P>=0&&n.splice(P,1),P}function Ze(n,y,P){var H=[],X=[];if(P=O(P)?P:NaN,y){if(ke(y)||De(y))throw A("cpta","Can't copy! TypedArray destination cannot be mutated.");if(n===y)throw A("cpi","Can't copy! Source and destination are identical.");return se(y)?y.length=0:e(y,function(ne,me){me!=="$$hashKey"&&delete y[me]}),H.push(n),X.push(y),ue(n,y,P)}return ie(n,P);function ue(ne,me,be){if(be--,be<0)return"...";var Ee=me.$$hashKey,Ae;if(se(ne))for(var Fe=0,Oe=ne.length;Fe<Oe;Fe++)me.push(ie(ne[Fe],be));else if(ee(ne))for(Ae in ne)me[Ae]=ie(ne[Ae],be);else if(ne&&typeof ne.hasOwnProperty=="function")for(Ae in ne)ne.hasOwnProperty(Ae)&&(me[Ae]=ie(ne[Ae],be));else for(Ae in ne)_.call(ne,Ae)&&(me[Ae]=ie(ne[Ae],be));return u(me,Ee),me}function ie(ne,me){if(!Y(ne))return ne;var be=H.indexOf(ne);if(be!==-1)return X[be];if(E(ne)||j(ne))throw A("cpws","Can't copy! Making copies of Window or Scope instances is not supported.");var Ee=!1,Ae=re(ne);return Ae===void 0&&(Ae=se(ne)?[]:Object.create(U(ne)),Ee=!0),H.push(ne),X.push(Ae),Ee?ue(ne,Ae,me):Ae}function re(ne){switch(m.call(ne)){case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Float32Array]":case"[object Float64Array]":case"[o Line truncated
`+tt.stack),Br("modulerr",`Failed to instantiate module {0} due to:
{1}`,Ne,tt.stack||tt.message||tt)}}),Le}function je(Xe,Le){function Ie(rt,gt){if(Xe.hasOwnProperty(rt)){if(Xe[rt]===P)throw Br("cdep","Circular dependency found: {0}",rt+" <- "+X.join(" <- "));return Xe[rt]}else try{return X.unshift(rt),Xe[rt]=P,Xe[rt]=Le(rt,gt),Xe[rt]}catch(xt){throw Xe[rt]===P&&delete Xe[rt],xt}finally{X.shift()}}function Ne(rt,gt,xt){for(var Rt=[],_t=fi.$$annotate(rt,y,xt),Pt=0,Zt=_t.length;Pt<Zt;Pt++){var Gt=_t[Pt];if(typeof Gt!="string")throw Br("itkn","Incorrect injection token! Expected service name as string, got {0}",Gt);Rt.push(gt&&gt.hasOwnProperty(Gt)?gt[Gt]:Ie(Gt,xt))}return Rt}function Be(rt){if(M||typeof rt!="function")return!1;var gt=rt.$$ngIsClass;return le(gt)||(gt=rt.$$ngIsClass=/^class\b/.test(Ji(rt))),gt}function tt(rt,gt,xt,Rt){typeof xt=="string"&&(Rt=xt,xt=null);var _t=Ne(rt,xt,Rt);return se(rt)&&(rt=rt[rt.length-1]),Be(rt)?(_t.unshift(null),new(Function.prototype.bind.apply(rt,_t))):rt.apply(gt,_t)}function dt(rt,gt,xt){var Rt=se(rt)?rt[rt.length-1]:rt,_t=Ne(rt,gt,xt);return _t.unshift(null),new(Function.prototype.bind.apply(Rt,_t))}return{invoke:tt,instantiate:dt,get:Ie,annotate:fi.$$annotate,has:function(rt){return ie.hasOwnProperty(rt+H)||Xe.hasOwnProperty(rt)}}}}fi.$$annotate=ys;function ws(){var n=!0;this.disableAutoScrolling=function(){n=!1},this.$get=["$window","$location","$rootScope",function(y,P,H){var X=y.document;function ue(me){var be=null;return Array.prototype.some.call(me,function(Ee){if(ct(Ee)==="a")return be=Ee,!0}),be}function ie(){var me=ne.yOffset;if(K(me))me=me();else if(nt(me)){var be=me[0],Ee=y.getComputedStyle(be);Ee.position!=="fixed"?me=0:me=be.getBoundingClientRect().bottom}else fe(me)||(me=0);return me}function re(me){if(me){me.scrollIntoView();var be=ie();if(be){var Ee=me.getBoundingClientRect().top;y.scrollBy(0,Ee-be)}}else y.scrollTo(0,0)}function ne(me){me=ae(me)?me:fe(me)?me.toString():P.hash();var be;me?(be=X.getElementById(me))||(be=ue(X.getElementsByName(me)))?re(be):me==="top"&&re(null):re(null)}return n&&H.$watch(function(){return P.hash()},function(be,Ee){be===Ee&&be===""||us(function(){H.$evalAsync(ne)})}),ne}]}var ca=I("$animate"),_s=1,ua="ng-animate";function Ci(n,y){return!n&&!y?"":n?y?(se(n)&&(n=n.join(" ")),se(y)&&(y=y.join(" ")),n+" "+y):n:y}function da(n){for(var y=0;y<n.length;y++){var P=n[y];if(P.nodeType===_s)return P}}function Ss(n){ae(n)&&(n=n.split(" "));var y=Ht();return e(n,function(P){P.length&&(y[P]=!0)}),y}function Dr(n){return Y(n)?n:{}}var Es=function(){this.$get=b},Ro=function(){var n=new Ki,y=[];this.$get=["$$AnimateRunner","$rootScope",function(P,H){return{enabled:b,on:b,off:b,pin:b,push:function(re,ne,me,be){be&&be(),me=me||{},me.from&&re.css(me.from),me.to&&re.css(me.to),(me.addClass||me.removeClass)&&ie(re,me.addClass,me.removeClass);var Ee=new P;return Ee.complete(),Ee}};function X(re,ne,me){var be=!1;return ne&&(ne=ae(ne)?ne.split(" "):se(ne)?ne:[],e(ne,function(Ee){Ee&&(be=!0,re[Ee]=me)})),be}function ue(){e(y,function(re){var ne=n.get(re);if(ne){var me=Ss(re.attr("class")),be="",Ee="";e(ne,function(Ae,Fe){var Oe=!!me[Fe];Ae!==Oe&&(Ae?be+=(be.length?" ":"")+Fe:Ee+=(Ee.length?" ":"")+Fe)}),e(re,function(Ae){be&&Vi(Ae,be),Ee&&zi(Ae,Ee)}),n.delete(re)}}),y.length=0}function ie(re,ne,me){var be=n.get(re)||{},Ee=X(be,ne,!0),Ae=X(be,me,!1);(Ee||Ae)&&(n.set(re,be),y.push(re),y.length===1&&H.$$postDigest(ue))}}]},xs=["$provide",function(n){var y=this,P=null,H=null;this.$$registeredAnimations=Object.create(null),this.register=function(X,ue){if(X&&X.charAt(0)!==".")throw ca("notcsel","Expecting class selector starting with '.' got '{0}'.",X);var ie=X+"-animation";y.$$registeredAnimations[X.substr(1)]=ie,n.factory(ie,ue)},this.customFilter=function(X){return arguments.length===1&&(H=K(X)?X:null),H},this.classNameFilter=function(X){if(arguments.length===1&&(P=X instanceof RegExp?X:null,P)){var ue=new RegExp("[(\\s|\\/)]"+ua+"[(\\s|\\/)]");if(ue.test(P.toString()))throw P=null,ca("nongcls",'$animateProvider.classNameFilter(regex) prohibits accepting a regex value which matches/contains the "{0}" CSS class.',ua)}return P},this.$get=["$$animateQueue",function(X){function ue(ie,re,ne){if(ne){var me=da(ne);me&&!me.parentNode&&!me.previousElementSibling&&(ne=null)}ne?ne.after(ie):re.prepend(ie)}return{on:X.on,off:X.off,pin:X.pin,enabled:X.enabled,cancel:function(ie){ie.cancel&&ie.cancel()},enter:function(ie,re,ne,me){return re=re&&g(re),ne=ne&&g(ne),re=re||ne.parent(),ue(ie,re,ne),X.push(ie,"enter",Dr(me))},move:function(ie,re,ne,me){return re=re&&g(re),ne=ne&&g(ne),re=re||ne.parent(),ue(ie,re,ne),X.push(ie,"move",Dr(me))},leave:function(ie,re){return X.push(ie,"leave",Dr(re),function(){ie.remove()})},addClass:function(ie,re,ne){return ne=Dr(ne),ne.addClass=Ci(ne.addclass,re),X.push(ie,"addClass",ne)},removeClass:function(ie,re,ne){return ne=Dr(ne),ne.removeClass=Ci(ne.removeClass,re),X.push(ie,"removeClass",ne)},setClass:function(ie,re,ne,me){return me=Dr(me),me.addClass=Ci(me.addClass,re),me.removeClass=Ci(me.re Line truncated
`,st);tt.$apply(function(){for(var We=0,Qe=Zt.length;We<Qe;++We)try{Zt[We]()}catch(lt){Le(lt)}Zt=void 0})}finally{Pt++}}function dn(We,Qe){if(!We)return We;if(!ae(We))throw Gn("srcset",'Can\'t pass trusted values to `{0}`: "{1}"',Qe,We.toString());for(var lt="",pt=$e(We),Ct=/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/,kt=/\s/.test(pt)?Ct:/(,)/,$t=pt.split(kt),sn=Math.floor($t.length/2),Ft=0;Ft<sn;Ft++){var Ot=Ft*2;lt+=dt.getTrustedMediaUrl($e($t[Ot])),lt+=" "+$e($t[Ot+1])}var Nt=$e($t[Ft*2]).split(/\s/);return lt+=dt.getTrustedMediaUrl($e(Nt[0])),Nt.length===2&&(lt+=" "+$e(Nt[1])),lt}function Sn(We,Qe){if(Qe){var lt=Object.keys(Qe),pt,Ct,kt;for(pt=0,Ct=lt.length;pt<Ct;pt++)kt=lt[pt],this[kt]=Qe[kt]}else this.$attr={};this.$$element=We}Sn.prototype={$normalize:Or,$addClass:function(We){We&&We.length>0&&rt.addClass(this.$$element,We)},$removeClass:function(We){We&&We.length>0&&rt.removeClass(this.$$element,We)},$updateClass:function(We,Qe){var lt=ki(We,Qe);lt&&lt.length&&rt.addClass(this.$$element,lt);var pt=ki(Qe,We);pt&&pt.length&&rt.removeClass(this.$$element,pt)},$set:function(We,Qe,lt,pt){var Ct=this.$$element[0],kt=di(Ct,We),$t=xi(We),sn=We,Ft;kt?(this.$$element.prop(We,Qe),pt=kt):$t&&(this[$t]=Qe,sn=$t),this[We]=Qe,pt?this.$attr[We]=pt:(pt=this.$attr[We],pt||(this.$attr[We]=pt=on(We,"-"))),Ft=ct(this.$$element),Ft==="img"&&We==="srcset"&&(this[We]=Qe=dn(Qe,"$set('srcset', value)")),lt!==!1&&(Qe===null||R(Qe)?this.$$element.removeAttr(pt):gt.test(pt)?kt&&Qe===!1?this.$$element.removeAttr(pt):this.$$element.attr(pt,Qe):kn(this.$$element[0],pt,Qe));var Ot=this.$$observers;Ot&&e(Ot[sn],function(Nt){try{Nt(Qe)}catch(zt){Le(zt)}})},$observe:function(We,Qe){var lt=this,pt=lt.$$observers||(lt.$$observers=Ht()),Ct=pt[We]||(pt[We]=[]);return Ct.push(Qe),tt.$evalAsync(function(){!Ct.$$inter&&lt.hasOwnProperty(We)&&!R(lt[We])&&Qe(lt[We])}),function(){Ge(Ct,Qe)}}};function kn(We,Qe,lt){xt.innerHTML="<span "+Qe+">";var pt=xt.firstChild.attributes,Ct=pt[0];pt.removeNamedItem(Ct.name),Ct.value=lt,We.attributes.setNamedItem(Ct)}function Dn(We,Qe){try{We.addClass(Qe)}catch{}}var qn=Xe.startSymbol(),Un=Xe.endSymbol(),pr=qn==="{{"&&Un==="}}"?C:function(Qe){return Qe.replace(/\{\{/g,qn).replace(/}}/g,Un)},nr=/^ng(Attr|Prop|On)([A-Z].*)$/,ur=/^(.+)Start$/;return Vn.$$addBindingInfo=at?function(Qe,lt){var pt=Qe.data("$binding")||[];se(lt)?pt=pt.concat(lt):pt.push(lt),Qe.data("$binding",pt)}:b,Vn.$$addBindingClass=at?function(Qe){Dn(Qe,"ng-binding")}:b,Vn.$$addScopeInfo=at?function(Qe,lt,pt,Ct){var kt=pt?Ct?"$isolateScopeNoTemplate":"$isolateScope":"$scope";Qe.data(kt,lt)}:b,Vn.$$addScopeClass=at?function(Qe,lt){Dn(Qe,lt?"ng-isolate-scope":"ng-scope")}:b,Vn.$$createComment=function(We,Qe){var lt="";return at&&(lt=" "+(We||"")+": ",Qe&&(lt+=Qe+" ")),we.document.createComment(lt)},Vn;function Vn(We,Qe,lt,pt,Ct){We instanceof g||(We=g(We));var kt=Fi(We,Qe,We,lt,pt,Ct);Vn.$$addScopeClass(We);var $t=null;return function(Ft,Ot,Nt){if(!We)throw Gn("multilink","This element has already been linked.");an(Ft,"scope"),Ct&&Ct.needsNewScope&&(Ft=Ft.$parent.$new()),Nt=Nt||{};var zt=Nt.parentBoundTranscludeFn,Tt=Nt.transcludeControllers,Qt=Nt.futureParentElement;zt&&zt.$$boundTransclude&&(zt=zt.$$boundTransclude),$t||($t=$i(Qt));var yn;if($t!=="html"?yn=g(Kl($t,g("<div></div>").append(We).html())):Ot?yn=ui.clone.call(We):yn=We,Tt)for(var Ln in Tt)yn.data("$"+Ln+"Controller",Tt[Ln].instance);return Vn.$$addScopeInfo(yn,Ft),Ot&&Ot(yn,Ft),kt&&kt(Ft,yn,yn,zt),Ot||(We=kt=null),yn}}function $i(We){var Qe=We&&We[0];return Qe&&ct(Qe)!=="foreignobject"&&m.call(Qe).match(/SVG/)?"svg":"html"}function Fi(We,Qe,lt,pt,Ct,kt){for(var $t=[],sn=se(We)||We instanceof g,Ft,Ot,Nt,zt,Tt,Qt,yn,Ln=0;Ln<We.length;Ln++)Ft=new Sn,M===11&&Gl(We,Ln,sn),Ot=bi(We[Ln],[],Ft,Ln===0?pt:void 0,Ct),Nt=Ot.length?Ic(Ot,We[Ln],Ft,Qe,lt,null,[],[],kt):null,Nt&&Nt.scope&&Vn.$$addScopeClass(Ft.$$element),Tt=Nt&&Nt.terminal||!(zt=We[Ln].childNodes)||!zt.length?null:Fi(zt,Nt?(Nt.transcludeOnThisElement||!Nt.templateOnThisElement)&&Nt.transclude:Qe),(Nt||Tt)&&($t.push(Ln,Nt,Tt),Qt=!0,yn=yn||Nt),kt=null;return Qt?In:null;function In(wn,_n,Bt,Tn){var Rn,Kn,Jn,Yn,Mn,gr,ir,xr,ei;if(yn){var mo=_n.length;for(ei=new Array(mo),Mn=0;Mn<$t.length;Mn+=3)ir=$t[Mn],ei[ir]=_n[ir]}else ei=_n;for(Mn=0,gr=$t.length;Mn<gr;)Jn=ei[$t[Mn++]],Rn=$t[Mn++],Kn=$t[Mn++],Rn?(Rn.scope?(Yn=wn.$new(),Vn.$$addScopeInfo(g(Jn),Yn)):Yn=wn,Rn.transcludeOnThisElement?xr=Yr(wn,Rn.transclude,Tn):!Rn.templateOnThisElement&&Tn?xr=Tn:!Tn&&Qe?xr=Yr(wn,Qe):xr=null,Rn(Kn,Yn,Jn,Bt,xr)):Kn&&Kn(wn,Jn.childNodes,void 0,Tn)}}function Gl(We,Qe,lt){var pt=We[Qe],Ct=pt.parentNode,kt;if(pt.nodeType===nn)for(;kt=Ct?pt.nextSibling:We[Qe+1],!(!kt||kt.nodeType!==nn);)pt.nodeValue=pt.nodeValue+kt.nodeValue,kt.parentNode&&kt.parentNode.removeChild(kt),lt&&kt===We[Qe+1]&&We.splice(Qe+1,1)}function Yr(We,Qe,lt){function pt($t,sn,Ft,Ot,Nt){return $t||($t=We.$new(!1,Nt),$t.$$transcluded=!0),Qe($t,sn,{parentBoundTranscludeFn:lt,transcludeControllers:Ft Line truncated
`),function(X){P=X.indexOf(":"),H(x($e(X.substr(0,P))),$e(X.substr(P+1)))}):Y(n)&&e(n,function(X,ue){H(x(ue),$e(X))}),y}function Lr(n){var y;return function(P){if(y||(y=ya(n)),P){var H=y[x(P)];return H===void 0&&(H=null),H}return y}}function Zr(n,y,P,H){return K(H)?H(n,y,P):(e(H,function(X){n=X(n,y,P)}),n)}function no(n){return 200<=n&&n<300}function Bs(){var n=this.defaults={transformResponse:[to],transformRequest:[function(X){return Y(X)&&!Z(X)&&!q(X)&&!oe(X)?ze(X):X}],headers:{common:{Accept:"application/json, text/plain, */*"},post:ye(Lo),put:ye(Lo),patch:ye(Lo)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",paramSerializer:"$httpParamSerializer",jsonpCallbackParam:"callback"},y=!1;this.useApplyAsync=function(X){return L(X)?(y=!!X,this):y};var P=this.interceptors=[],H=this.xsrfTrustedOrigins=[];Object.defineProperty(this,"xsrfWhitelistedOrigins",{get:function(){return this.xsrfTrustedOrigins},set:function(X){this.xsrfTrustedOrigins=X}}),this.$get=["$browser","$httpBackend","$$cookieReader","$cacheFactory","$rootScope","$q","$injector","$sce",function(X,ue,ie,re,ne,me,be,Ee){var Ae=re("$http");n.paramSerializer=ae(n.paramSerializer)?be.get(n.paramSerializer):n.paramSerializer;var Fe=[];e(P,function(je){Fe.unshift(ae(je)?be.get(je):be.invoke(je))});var Oe=ja(H);function at(je){if(!Y(je))throw I("$http")("badreq","Http request configuration must be an object. Received: {0}",je);if(!ae(Ee.valueOf(je.url)))throw I("$http")("badreq","Http request configuration url must be a string or a $sce trusted object. Received: {0}",je.url);var Xe=t({method:"get",transformRequest:n.transformRequest,transformResponse:n.transformResponse,paramSerializer:n.paramSerializer,jsonpCallbackParam:n.jsonpCallbackParam},je);Xe.headers=rt(je),Xe.method=d(Xe.method),Xe.paramSerializer=ae(Xe.paramSerializer)?be.get(Xe.paramSerializer):Xe.paramSerializer,X.$$incOutstandingRequestCount("$http");var Le=[],Ie=[],Ne=me.resolve(Xe);return e(Fe,function(Rt){(Rt.request||Rt.requestError)&&Le.unshift(Rt.request,Rt.requestError),(Rt.response||Rt.responseError)&&Ie.push(Rt.response,Rt.responseError)}),Ne=Be(Ne,Le),Ne=Ne.then(gt),Ne=Be(Ne,Ie),Ne=Ne.finally(tt),Ne;function Be(Rt,_t){for(var Pt=0,Zt=_t.length;Pt<Zt;){var Gt=_t[Pt++],dn=_t[Pt++];Rt=Rt.then(Gt,dn)}return _t.length=0,Rt}function tt(){X.$$completeOutstandingRequest(b,"$http")}function dt(Rt,_t){var Pt,Zt={};return e(Rt,function(Gt,dn){K(Gt)?(Pt=Gt(_t),Pt!=null&&(Zt[dn]=Pt)):Zt[dn]=Gt}),Zt}function rt(Rt){var _t=n.headers,Pt=t({},Rt.headers),Zt,Gt,dn;_t=t({},_t.common,_t[x(Rt.method)]);e:for(Zt in _t){Gt=x(Zt);for(dn in Pt)if(x(dn)===Gt)continue e;Pt[Zt]=_t[Zt]}return dt(Pt,ye(Rt))}function gt(Rt){var _t=Rt.headers,Pt=Zr(Rt.data,Lr(_t),void 0,Rt.transformRequest);return R(Pt)&&e(_t,function(Zt,Gt){x(Gt)==="content-type"&&delete _t[Gt]}),R(Rt.withCredentials)&&!R(n.withCredentials)&&(Rt.withCredentials=n.withCredentials),ot(Rt,Pt).then(xt,xt)}function xt(Rt){var _t=t({},Rt);return _t.data=Zr(Rt.data,Rt.headers,Rt.status,Xe.transformResponse),no(Rt.status)?_t:me.reject(_t)}}return at.pendingRequests=[],vt("get","delete","head","jsonp"),st("post","put","patch"),at.defaults=n,at;function vt(je){e(arguments,function(Xe){at[Xe]=function(Le,Ie){return at(t({},Ie||{},{method:Xe,url:Le}))}})}function st(je){e(arguments,function(Xe){at[Xe]=function(Le,Ie,Ne){return at(t({},Ne||{},{method:Xe,url:Le,data:Ie}))}})}function ot(je,Xe){var Le=me.defer(),Ie=Le.promise,Ne,Be,tt=je.headers,dt=x(je.method)==="jsonp",rt=je.url;if(dt?rt=Ee.getTrustedResourceUrl(rt):ae(rt)||(rt=Ee.valueOf(rt)),rt=it(rt,je.paramSerializer(je.params)),dt&&(rt=ut(rt,je.jsonpCallbackParam)),at.pendingRequests.push(je),Ie.then(Zt,Zt),(je.cache||n.cache)&&je.cache!==!1&&(je.method==="GET"||je.method==="JSONP")&&(Ne=Y(je.cache)?je.cache:Y(n.cache)?n.cache:Ae),Ne&&(Be=Ne.get(rt),L(Be)?ge(Be)?Be.then(Pt,Pt):se(Be)?_t(Be[1],Be[0],ye(Be[2]),Be[3],Be[4]):_t(Be,200,{},"OK","complete"):Ne.put(rt,Ie)),R(Be)){var gt=Oe(je.url)?ie()[je.xsrfCookieName||n.xsrfCookieName]:void 0;gt&&(tt[je.xsrfHeaderName||n.xsrfHeaderName]=gt),ue(je.method,rt,Xe,Rt,tt,je.timeout,je.withCredentials,je.responseType,xt(je.eventHandlers),xt(je.uploadEventHandlers))}return Ie;function xt(Gt){if(Gt){var dn={};return e(Gt,function(Sn,kn){dn[kn]=function(Dn){y?ne.$applyAsync(qn):ne.$$phase?qn():ne.$apply(qn);function qn(){Sn(Dn)}}}),dn}}function Rt(Gt,dn,Sn,kn,Dn){Ne&&(no(Gt)?Ne.put(rt,[Gt,dn,ya(Sn),kn,Dn]):Ne.remove(rt));function qn(){_t(dn,Gt,Sn,kn,Dn)}y?ne.$applyAsync(qn):(qn(),ne.$$phase||ne.$apply())}function _t(Gt,dn,Sn,kn,Dn){dn=dn>=-1?dn:0,(no(dn)?Le.resolve:Le.reject)({data:Gt,status:dn,headers:Lr(Sn),config:je,statusText:kn,xhrStatus:Dn})}function Pt(Gt){_t(Gt.data,Gt.status,ye(Gt.headers()),Gt.statusText,Gt.xhrStatus)}function Zt(){var Gt=at.pendingRequests.indexOf(je);Gt!==-1&&at.pendingRequests.splice(Gt,1)}}function it(je,Xe){return Xe.length>0&&(je+=(je.indexOf("?")===-1?"?":"&")+Xe),je}function ut(je,Xe){var Le=je.split("?");if(Le.length>2 Line truncated
Strict Contextual Escaping disallows interpolations that concatenate multiple expressions when a trusted value is required. See http://docs.angularjs.org/api/ng.$sce`,n)},ri.interr=function(n,y){return ri("interr",`Can't interpolate: {0}
{1}`,n,y.toString())};function Sa(){var n="{{",y="}}";this.startSymbol=function(P){return P?(n=P,this):n},this.endSymbol=function(P){return P?(y=P,this):y},this.$get=["$parse","$exceptionHandler","$sce",function(P,H,X){var ue=n.length,ie=y.length,re=new RegExp(n.replace(/./g,me),"g"),ne=new RegExp(y.replace(/./g,me),"g");function me(Fe){return"\\\\\\"+Fe}function be(Fe){return Fe.replace(re,n).replace(ne,y)}function Ee(Fe,Oe,at,vt){var st=Fe.$watch(function(it){return st(),vt(it)},Oe,at);return st}function Ae(Fe,Oe,at,vt){var st=at===X.URL||at===X.MEDIA_URL;if(!Fe.length||Fe.indexOf(n)===-1){if(Oe)return;var ot=be(Fe);st&&(ot=X.getTrusted(at,ot));var it=$(ot);return it.exp=Fe,it.expressions=[],it.$$watchDelegate=Ee,it}vt=!!vt;for(var ut,je,Xe=0,Le=[],Ie,Ne=Fe.length,Be,tt=[],dt=[],rt;Xe<Ne;)if((ut=Fe.indexOf(n,Xe))!==-1&&(je=Fe.indexOf(y,ut+ue))!==-1)Xe!==ut&&tt.push(be(Fe.substring(Xe,ut))),Be=Fe.substring(ut+ue,je),Le.push(Be),Xe=je+ie,dt.push(tt.length),tt.push("");else{Xe!==Ne&&tt.push(be(Fe.substring(Xe)));break}rt=tt.length===1&&dt.length===1;var gt=st&&rt?void 0:Rt;if(Ie=Le.map(function(_t){return P(_t,gt)}),!Oe||Le.length){var xt=function(_t){for(var Pt=0,Zt=Le.length;Pt<Zt;Pt++){if(vt&&R(_t[Pt]))return;tt[dt[Pt]]=_t[Pt]}return st?X.getTrusted(at,rt?tt[0]:tt.join("")):(at&&tt.length>1&&ri.throwNoconcat(Fe),tt.join(""))};return t(function(Pt){var Zt=0,Gt=Le.length,dn=new Array(Gt);try{for(;Zt<Gt;Zt++)dn[Zt]=Ie[Zt](Pt);return xt(dn)}catch(Sn){H(ri.interr(Fe,Sn))}},{exp:Fe,expressions:Le,$$watchDelegate:function(_t,Pt){var Zt;return _t.$watchGroup(Ie,function(dn,Sn){var kn=xt(dn);Pt.call(this,kn,dn!==Sn?Zt:kn,_t),Zt=kn})}})}function Rt(_t){try{return _t=at&&!st?X.getTrusted(at,_t):X.valueOf(_t),vt&&!L(_t)?_t:hn(_t)}catch(Pt){H(ri.interr(Fe,Pt))}}}return Ae.startSymbol=function(){return n},Ae.endSymbol=function(){return y},Ae}]}var Us=I("$interval");function js(){this.$get=["$$intervalFactory","$window",function(n,y){var P={},H=function(ie,re,ne){var me=y.setInterval(ie,re);return P[me]=ne,me},X=function(ie){y.clearInterval(ie),delete P[ie]},ue=n(H,X);return ue.cancel=function(ie){if(!ie)return!1;if(!ie.hasOwnProperty("$$intervalId"))throw Us("badprom","`$interval.cancel()` called with a promise that was not generated by `$interval()`.");if(!P.hasOwnProperty(ie.$$intervalId))return!1;var re=ie.$$intervalId,ne=P[re];return oo(ne.promise),ne.reject("canceled"),X(re),!0},ue}]}function zs(){this.$get=["$browser","$q","$$q","$rootScope",function(n,y,P,H){return function(ue,ie){return function(ne,me,be,Ee){var Ae=arguments.length>4,Fe=Ae?de(arguments,4):[],Oe=0,at=L(Ee)&&!Ee,vt=(at?P:y).defer(),st=vt.promise;be=L(be)?be:0;function ot(){Ae?ne.apply(null,Fe):ne(Oe)}function it(){at?n.defer(ot):H.$evalAsync(ot),vt.notify(Oe++),be>0&&Oe>=be&&(vt.resolve(Oe),ie(st.$$intervalId)),at||H.$apply()}return st.$$intervalId=ue(it,me,vt,at),st}}}]}var Vs=function(){this.$get=function(){var n=p.callbacks,y={};function P(H){var X=function(ue){X.data=ue,X.called=!0};return X.id=H,X}return{createCallback:function(H){var X="_"+(n.$$counter++).toString(36),ue="angular.callbacks."+X,ie=P(X);return y[ue]=n[X]=ie,ue},wasCalled:function(H){return y[H].called},getResponse:function(H){return y[H].data},removeCallback:function(H){var X=y[H];delete n[X.id],delete y[H]}}}},Ws=/^([^?#]*)(\?([^#]*))?(#(.*))?$/,Gs={http:80,https:443,ftp:21},Ti=I("$location");function qs(n){for(var y=n.split("/"),P=y.length;P--;)y[P]=Wt(y[P].replace(/%2F/g,"/"));return y.join("/")}function Ys(n,y){for(var P=n.split("/"),H=P.length;H--;)P[H]=decodeURIComponent(P[H]),y&&(P[H]=P[H].replace(/\//g,"%2F"));return P.join("/")}function Ks(n,y,P){var H=St(y),X=P?"#"+Wt(P):"",ue=qs(n);return ue+(H?"?"+H:"")+X}function Ea(n,y){var P=Et(n);y.$$protocol=P.protocol,y.$$host=P.hostname,y.$$port=a(P.port)||Gs[P.protocol]||null}var Js=/^\s*[\\/]{2,}/;function xa(n,y,P){if(Js.test(n))throw Ti("badpath",'Invalid url "{0}".',n);var H=n.charAt(0)!=="/";H&&(n="/"+n);var X=Et(n),ue=H&&X.pathname.charAt(0)==="/"?X.pathname.substring(1):X.pathname;y.$$path=Ys(ue,P),y.$$search=vn(X.search),y.$$hash=decodeURIComponent(X.hash),y.$$path&&y.$$path.charAt(0)!=="/"&&(y.$$path="/"+y.$$path)}function $o(n,y){return n.slice(0,y.length)===y}function Mr(n,y){if($o(y,n))return y.substr(n.length)}function ii(n){var y=n.indexOf("#");return y===-1?n:n.substr(0,y)}function Xs(n){return n.substr(0,ii(n).lastIndexOf("/")+1)}function Zs(n){return n.substring(0,n.indexOf("/",n.indexOf("//")+2))}function Fo(n,y,P){this.$$html5=!0,P=P||"",Ea(n,this),this.$$parse=function(H){var X=Mr(y,H);if(!ae(X))throw Ti("ipthprfx",'Invalid url "{0}", missing path prefix "{1}".',H,y);xa(X,this,!0),this.$$path||(this.$$path="/"),this.$$compose()},this.$$normalizeUrl=function(H){return y+H.substr(1)},this.$$parseLinkUrl=function(H,X){if(X&&X[0]==="#")return this.hash(X.slice(1)),!0;var ue,ie,re;return L(ue=Mr(n,H))?(ie=ue,P&&L(ue=Mr(P,ue))?re=y+(Mr("/",ue)||ue):re=n+ie):L(ue=Mr(y,H))?re=y+ue:y===H+"/"&&(re=y),re&&this.$$Line truncated
`+ie.sourceURL+":"+ie.line)),ie}function ue(ie){var re=P.console||{},ne=re[ie]||re.log||b;return function(){var me=[];return e(arguments,function(be){me.push(X(be))}),Function.prototype.apply.call(ne,re,me)}}}]}var qr=I("$parse"),hi={}.constructor.prototype.valueOf;function Ii(n){return n+""}var Pi=Ht();e("+ - * / % === !== == != < > <= >= && || ! = |".split(" "),function(n){Pi[n]=!0});var pi={n:`
`,f:"\f",r:"\r",t:" ",v:"\v","'":"'",'"':'"'},Di=function(y){this.options=y};Di.prototype={constructor:Di,lex:function(n){for(this.text=n,this.index=0,this.tokens=[];this.index<this.text.length;){var y=this.text.charAt(this.index);if(y==='"'||y==="'")this.readString(y);else if(this.isNumber(y)||y==="."&&this.isNumber(this.peek()))this.readNumber();else if(this.isIdentifierStart(this.peekMultichar()))this.readIdent();else if(this.is(y,"(){}[].,;:?"))this.tokens.push({index:this.index,text:y}),this.index++;else if(this.isWhitespace(y))this.index++;else{var P=y+this.peek(),H=P+this.peek(2),X=Pi[y],ue=Pi[P],ie=Pi[H];if(X||ue||ie){var re=ie?H:ue?P:y;this.tokens.push({index:this.index,text:re,operator:!0}),this.index+=re.length}else this.throwError("Unexpected next character ",this.index,this.index+1)}}return this.tokens},is:function(n,y){return y.indexOf(n)!==-1},peek:function(n){var y=n||1;return this.index+y<this.text.length?this.text.charAt(this.index+y):!1},isNumber:function(n){return"0"<=n&&n<="9"&&typeof n=="string"},isWhitespace:function(n){return n===" "||n==="\r"||n===" "||n===`
`||n==="\v"||n==="\xA0"},isIdentifierStart:function(n){return this.options.isIdentifierStart?this.options.isIdentifierStart(n,this.codePointAt(n)):this.isValidIdentifierStart(n)},isValidIdentifierStart:function(n){return"a"<=n&&n<="z"||"A"<=n&&n<="Z"||n==="_"||n==="$"},isIdentifierContinue:function(n){return this.options.isIdentifierContinue?this.options.isIdentifierContinue(n,this.codePointAt(n)):this.isValidIdentifierContinue(n)},isValidIdentifierContinue:function(n,y){return this.isValidIdentifierStart(n,y)||this.isNumber(n)},codePointAt:function(n){return n.length===1?n.charCodeAt(0):(n.charCodeAt(0)<<10)+n.charCodeAt(1)-56613888},peekMultichar:function(){var n=this.text.charAt(this.index),y=this.peek();if(!y)return n;var P=n.charCodeAt(0),H=y.charCodeAt(0);return P>=55296&&P<=56319&&H>=56320&&H<=57343?n+y:n},isExpOperator:function(n){return n==="-"||n==="+"||this.isNumber(n)},throwError:function(n,y,P){P=P||this.index;var H=L(y)?"s "+y+"-"+this.index+" ["+this.text.substring(y,P)+"]":" "+P;throw qr("lexerr","Lexer Error: {0} at column{1} in expression [{2}].",n,H,this.text)},readNumber:function(){for(var n="",y=this.index;this.index<this.text.length;){var P=x(this.text.charAt(this.index));if(P==="."||this.isNumber(P))n+=P;else{var H=this.peek();if(P==="e"&&this.isExpOperator(H))n+=P;else if(this.isExpOperator(P)&&H&&this.isNumber(H)&&n.charAt(n.length-1)==="e")n+=P;else if(this.isExpOperator(P)&&(!H||!this.isNumber(H))&&n.charAt(n.length-1)==="e")this.throwError("Invalid exponent");else break}this.index++}this.tokens.push({index:y,text:n,constant:!0,value:Number(n)})},readIdent:function(){var n=this.index;for(this.index+=this.peekMultichar().length;this.index<this.text.length;){var y=this.peekMultichar();if(!this.isIdentifierContinue(y))break;this.index+=y.length}this.tokens.push({index:n,text:this.text.slice(n,this.index),identifier:!0})},readString:function(n){var y=this.index;this.index++;for(var P="",H=n,X=!1;this.index<this.text.length;){var ue=this.text.charAt(this.index);if(H+=ue,X){if(ue==="u"){var ie=this.text.substring(this.index+1,this.index+5);ie.match(/[\da-f]{4}/i)||this.throwError("Invalid unicode escape [\\u"+ie+"]"),this.index+=4,P+=String.fromCharCode(parseInt(ie,16))}else{var re=pi[ue];P=P+(re||ue)}X=!1}else if(ue==="\\")X=!0;else if(ue===n){this.index++,this.tokens.push({index:y,text:H,constant:!0,value:P});return}else P+=ue;this.index++}this.throwError("Unterminated quote",y)}};var At=function(y,P){this.lexer=y,this.options=P};At.Program="Program",At.ExpressionStatement="ExpressionStatement",At.AssignmentExpression="AssignmentExpression",At.ConditionalExpression="ConditionalExpression",At.LogicalExpression="LogicalExpression",At.BinaryExpression="BinaryExpression",At.UnaryExpression="UnaryExpression",At.CallExpression="CallExpression",At.MemberExpression="MemberExpression",At.Identifier="Identifier",At.Literal="Literal",At.ArrayExpression="ArrayExpression",At.Property="Property",At.ObjectExpression="ObjectExpression",At.ThisExpression="ThisExpression",At.LocalsExpression="LocalsExpression",At.NGValueParameter="NGValueParameter",At.prototype={ast:function(n){this.text=n,this.tokens=this.lexer.lex(n);var y=this.program();return this.tokens.length!==0&&this.throwError("is an unexpected token",this.tokens[0]),y},program:function(){for(var n=[];;)if(this.tokens.length>0&&!this.peek("}",")",";","]")&&n.push(this.expressionStatement()),!this.expect(";"))return{type:At.Program,body:n}},expressionStatement:function(){return{type:At.ExpressionStatement,expression:this.filterChain()}},filterChain:function(){for(var n=this.expression();this.expect("|");)n=this.filter(n);return n},expression:function(){return this.assignment()},assignment:function(){var n=this.ternary();if(this.expect("=")){if(!Da(n))throw qr("lval","Trying to assign a value to a non l-value");n={type:At.AssignmentExpression,left:n,right:this.assignment(),operator:"="}}return n},ternary:function(){var n=this.logicalOR(),y,P;return this.expect("?")&&(y=this.expression(),this.consume(":"))?(P=this.expression(),{type:At.ConditionalExpression,test:n,alternate:y,consequent:P}):n},logicalOR:function(){for(var n=this.logicalAND();this.expect("||");)n={type:At.LogicalExpression,operator:"||",left:n,right:this.logicalAND()};return n},logicalAND:function(){for(var n=this.equality();this.expect("&&");)n={type:At.LogicalExpression,operator:"&&",left:n,right:this.equality()};return n},equality:function(){for(var n=this.relational(),y;y=this.expect("==","!=","===","!==");)n={type:At.BinaryExpression,operator:y.text,left:n,right:this.relational()};return n},relational:function(){for(var n=this.additive(),y;y=this.expect("<",">","<=",">=");)n={type:At.BinaryExpression,operator:y.text,left:n,right:this.additive()};return n},additive:function(){for(var n=this.multiplicative(),y;y=this.expect("+","-");)n={type:At.BinaryExpression,operator:y.text,left:n,right:this.multiplicative()};return n},multiplicative:function(){for(var n=this.unary(),y;y=th Line truncated
`+this.filterPrefix()+"var fn="+this.generateFunction("fn","s,l,a,i")+P+this.watchFns()+"return fn;",re=new Function("$filter","getStringValue","ifDefined","plus",ie)(this.$filter,Ii,el,Ra);return this.state=this.stage=void 0,re},USE:"use",STRICT:"strict",watchFns:function(){var n=[],y=this.state.inputs,P=this;return e(y,function(H){n.push("var "+H.name+"="+P.generateFunction(H.name,"s")),H.isPure&&n.push(H.name,".isPure="+JSON.stringify(H.isPure)+";")}),y.length&&n.push("fn.inputs=["+y.map(function(H){return H.name}).join(",")+"];"),n.join("")},generateFunction:function(n,y){return"function("+y+"){"+this.varsPrefix(n)+this.body(n)+"};"},filterPrefix:function(){var n=[],y=this;return e(this.state.filters,function(P,H){n.push(P+"=$filter("+y.escape(H)+")")}),n.length?"var "+n.join(",")+";":""},varsPrefix:function(n){return this.state[n].vars.length?"var "+this.state[n].vars.join(",")+";":""},body:function(n){return this.state[n].body.join("")},recurse:function(n,y,P,H,X,ue){var ie,re,ne=this,me,be,Ee;if(H=H||b,!ue&&L(n.watchId)){y=y||this.nextId(),this.if_("i",this.lazyAssign(y,this.computedMember("i",n.watchId)),this.lazyRecurse(n,y,P,H,X,!0));return}switch(n.type){case At.Program:e(n.body,function(Ae,Fe){ne.recurse(Ae.expression,void 0,void 0,function(Oe){re=Oe}),Fe!==n.body.length-1?ne.current().body.push(re,";"):ne.return_(re)});break;case At.Literal:be=this.escape(n.value),this.assign(y,be),H(y||be);break;case At.UnaryExpression:this.recurse(n.argument,void 0,void 0,function(Ae){re=Ae}),be=n.operator+"("+this.ifDefined(re,0)+")",this.assign(y,be),H(be);break;case At.BinaryExpression:this.recurse(n.left,void 0,void 0,function(Ae){ie=Ae}),this.recurse(n.right,void 0,void 0,function(Ae){re=Ae}),n.operator==="+"?be=this.plus(ie,re):n.operator==="-"?be=this.ifDefined(ie,0)+n.operator+this.ifDefined(re,0):be="("+ie+")"+n.operator+"("+re+")",this.assign(y,be),H(be);break;case At.LogicalExpression:y=y||this.nextId(),ne.recurse(n.left,y),ne.if_(n.operator==="&&"?y:ne.not(y),ne.lazyRecurse(n.right,y)),H(y);break;case At.ConditionalExpression:y=y||this.nextId(),ne.recurse(n.test,y),ne.if_(y,ne.lazyRecurse(n.alternate,y),ne.lazyRecurse(n.consequent,y)),H(y);break;case At.Identifier:y=y||this.nextId(),P&&(P.context=ne.stage==="inputs"?"s":this.assign(this.nextId(),this.getHasOwnProperty("l",n.name)+"?l:s"),P.computed=!1,P.name=n.name),ne.if_(ne.stage==="inputs"||ne.not(ne.getHasOwnProperty("l",n.name)),function(){ne.if_(ne.stage==="inputs"||"s",function(){X&&X!==1&&ne.if_(ne.isNull(ne.nonComputedMember("s",n.name)),ne.lazyAssign(ne.nonComputedMember("s",n.name),"{}")),ne.assign(y,ne.nonComputedMember("s",n.name))})},y&&ne.lazyAssign(y,ne.nonComputedMember("l",n.name))),H(y);break;case At.MemberExpression:ie=P&&(P.context=this.nextId())||this.nextId(),y=y||this.nextId(),ne.recurse(n.object,ie,void 0,function(){ne.if_(ne.notNull(ie),function(){n.computed?(re=ne.nextId(),ne.recurse(n.property,re),ne.getStringValue(re),X&&X!==1&&ne.if_(ne.not(ne.computedMember(ie,re)),ne.lazyAssign(ne.computedMember(ie,re),"{}")),be=ne.computedMember(ie,re),ne.assign(y,be),P&&(P.computed=!0,P.name=re)):(X&&X!==1&&ne.if_(ne.isNull(ne.nonComputedMember(ie,n.property.name)),ne.lazyAssign(ne.nonComputedMember(ie,n.property.name),"{}")),be=ne.nonComputedMember(ie,n.property.name),ne.assign(y,be),P&&(P.computed=!1,P.name=n.property.name))},function(){ne.assign(y,"undefined")}),H(y)},!!X);break;case At.CallExpression:y=y||this.nextId(),n.filter?(re=ne.filter(n.callee.name),me=[],e(n.arguments,function(Ae){var Fe=ne.nextId();ne.recurse(Ae,Fe),me.push(Fe)}),be=re+"("+me.join(",")+")",ne.assign(y,be),H(y)):(re=ne.nextId(),ie={},me=[],ne.recurse(n.callee,re,ie,function(){ne.if_(ne.notNull(re),function(){e(n.arguments,function(Ae){ne.recurse(Ae,n.constant?void 0:ne.nextId(),void 0,function(Fe){me.push(Fe)})}),ie.name?be=ne.member(ie.context,ie.name,ie.computed)+"("+me.join(",")+")":be=re+"("+me.join(",")+")",ne.assign(y,be)},function(){ne.assign(y,"undefined")}),H(y)}));break;case At.AssignmentExpression:re=this.nextId(),ie={},this.recurse(n.left,void 0,ie,function(){ne.if_(ne.notNull(ie.context),function(){ne.recurse(n.right,re),be=ne.member(ie.context,ie.name,ie.computed)+n.operator+re,ne.assign(y,be),H(y||be)})},1);break;case At.ArrayExpression:me=[],e(n.elements,function(Ae){ne.recurse(Ae,n.constant?void 0:ne.nextId(),void 0,function(Fe){me.push(Fe)})}),be="["+me.join(",")+"]",this.assign(y,be),H(y||be);break;case At.ObjectExpression:me=[],Ee=!1,e(n.properties,function(Ae){Ae.computed&&(Ee=!0)}),Ee?(y=y||this.nextId(),this.assign(y,"{}"),e(n.properties,function(Ae){Ae.computed?(ie=ne.nextId(),ne.recurse(Ae.key,ie)):ie=Ae.key.type===At.Identifier?Ae.key.name:""+Ae.key.value,re=ne.nextId(),ne.recurse(Ae.value,re),ne.assign(ne.member(y,ie,Ae.computed),re)})):(e(n.properties,function(Ae){ne.recurse(Ae.value,n.constant?void 0:ne.nextId(),void 0,function(Fe){me.push(ne.escape(Ae.key.type===At.Identifier?Ae.key.name:""+Ae.key.value)+":"+Fe)})}),be="{ Line truncated
Watchers fired in the last 5 iterations: {1}`,n,Pt)}while(rt||Ae.length);for(st();at<Fe.length;)try{Fe[at++]()}catch(Sn){ue(Sn)}Fe.length=at=0,re.$$checkUrlChange()},$suspend:function(){this.$$suspended=!0},$isSuspended:function(){return this.$$suspended},$resume:function(){this.$$suspended=!1},$destroy:function(){if(!this.$$destroyed){var Le=this.$parent;this.$broadcast("$destroy"),this.$$destroyed=!0,this===Ee&&re.$$applicationDestroyed(),ot(this,-this.$$watchersCount);for(var Ie in this.$$listenerCount)it(this,this.$$listenerCount[Ie],Ie);Le&&Le.$$childHead===this&&(Le.$$childHead=this.$$nextSibling),Le&&Le.$$childTail===this&&(Le.$$childTail=this.$$prevSibling),this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling),this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling),this.$destroy=this.$digest=this.$apply=this.$evalAsync=this.$applyAsync=b,this.$on=this.$watch=this.$watchGroup=function(){return b},this.$$listeners={},this.$$nextSibling=null,me(this)}},$eval:function(Le,Ie){return ie(Le)(this,Ie)},$evalAsync:function(Le,Ie){!Ee.$$phase&&!Ae.length&&re.defer(function(){Ae.length&&Ee.$digest()},null,"$evalAsync"),Ae.push({scope:this,fn:ie(Le),locals:Ie})},$$postDigest:function(Le){Fe.push(Le)},$apply:function(Le){try{vt("$apply");try{return this.$eval(Le)}finally{st()}}catch(Ie){ue(Ie)}finally{try{Ee.$digest()}catch(Ie){throw ue(Ie),Ie}}},$applyAsync:function(Le){var Ie=this;Le&&Oe.push(Ne),Le=ie(Le),Xe();function Ne(){Ie.$eval(Le)}},$on:function(Le,Ie){var Ne=this.$$listeners[Le];Ne||(this.$$listeners[Le]=Ne=[]),Ne.push(Ie);var Be=this;do Be.$$listenerCount[Le]||(Be.$$listenerCount[Le]=0),Be.$$listenerCount[Le]++;while(Be=Be.$parent);var tt=this;return function(){var dt=Ne.indexOf(Ie);dt!==-1&&(delete Ne[dt],it(tt,1,Le))}},$emit:function(Le,Ie){var Ne=[],Be,tt=this,dt=!1,rt={name:Le,targetScope:tt,stopPropagation:function(){dt=!0},preventDefault:function(){rt.defaultPrevented=!0},defaultPrevented:!1},gt=te([rt],arguments,1),xt,Rt;do{for(Be=tt.$$listeners[Le]||Ne,rt.currentScope=tt,xt=0,Rt=Be.length;xt<Rt;xt++){if(!Be[xt]){Be.splice(xt,1),xt--,Rt--;continue}try{Be[xt].apply(null,gt)}catch(_t){ue(_t)}}if(dt)break;tt=tt.$parent}while(tt);return rt.currentScope=null,rt},$broadcast:function(Le,Ie){var Ne=this,Be=Ne,tt=Ne,dt={name:Le,targetScope:Ne,preventDefault:function(){dt.defaultPrevented=!0},defaultPrevented:!1};if(!Ne.$$listenerCount[Le])return dt;for(var rt=te([dt],arguments,1),gt,xt,Rt;Be=tt;){for(dt.currentScope=Be,gt=Be.$$listeners[Le]||[],xt=0,Rt=gt.length;xt<Rt;xt++){if(!gt[xt]){gt.splice(xt,1),xt--,Rt--;continue}try{gt[xt].apply(null,rt)}catch(_t){ue(_t)}}if(!(tt=Be.$$listenerCount[Le]&&Be.$$childHead||Be!==Ne&&Be.$$nextSibling))for(;Be!==Ne&&!(tt=Be.$$nextSibling);)Be=Be.$parent}return dt.currentScope=null,dt}};var Ee=new be,Ae=Ee.$$asyncQueue=[],Fe=Ee.$$postDigestQueue=[],Oe=Ee.$$applyAsyncQueue=[],at=0;return Ee;function vt(Le){if(Ee.$$phase)throw y("inprog","{0} already in progress",Ee.$$phase);Ee.$$phase=Le}function st(){Ee.$$phase=null}function ot(Le,Ie){do Le.$$watchersCount+=Ie;while(Le=Le.$parent)}function it(Le,Ie,Ne){do Le.$$listenerCount[Ne]-=Ie,Le.$$listenerCount[Ne]===0&&delete Le.$$listenerCount[Ne];while(Le=Le.$parent)}function ut(){}function je(){for(;Oe.length;)try{Oe.shift()()}catch(Le){ue(Le)}H=null}function Xe(){H===null&&(H=re.defer(function(){Ee.$apply(je)},null,"$applyAsync"))}}]}function ul(){var n=/^\s*(https?|s?ftp|mailto|tel|file):/,y=/^\s*((https?|ftp|file|blob):|data:image\/)/;this.aHrefSanitizationTrustedUrlList=function(P){return L(P)?(n=P,this):n},this.imgSrcSanitizationTrustedUrlList=function(P){return L(P)?(y=P,this):y},this.$get=function(){return function(H,X){var ue=X?y:n,ie=Et(H&&H.trim()).href;return ie!==""&&!ie.match(ue)?"unsafe:"+ie:H}}}var Hr=I("$sce"),Bn={HTML:"html",CSS:"css",MEDIA_URL:"mediaUrl",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},dl=/_([a-z])/g;function Uo(n){return n.replace(dl,yr)}function fl(n){if(n==="self")return n;if(ae(n)){if(n.indexOf("***")>-1)throw Hr("iwcard","Illegal sequence *** in string matcher. String: {0}",n);return n=qe(n).replace(/\\\*\\\*/g,".*").replace(/\\\*/g,"[^:/.?&;]*"),new RegExp("^"+n+"$")}else{if(z(n))return new RegExp("^"+n.source+"$");throw Hr("imatcher",'Matchers may only be "self", string patterns or RegExp objects')}}function Na(n){var y=[];return L(n)&&e(n,function(P){y.push(fl(P))}),y}function hl(){this.SCE_CONTEXTS=Bn;var n=["self"],y=[];this.trustedResourceUrlList=function(P){return arguments.length&&(n=Na(P)),n},Object.defineProperty(this,"resourceUrlWhitelist",{get:function(){return this.trustedResourceUrlList},set:function(P){this.trustedResourceUrlList=P}}),this.bannedResourceUrlList=function(P){return arguments.length&&(y=Na(P)),y},Object.defineProperty(this,"resourceUrlBlacklist",{get:function(){return this.bannedResourceUrlList},set:function(P){this.bannedResourceUrlList=P}}),this.$get=["$injector","$$sanitizeUri",function(P,H){var X=function(Oe){throw Hr( Line truncated
`+new Error().stack),he=!1}return V.apply(this,arguments)},V)}var i={};function c(S,V){Q.deprecationHandler!=null&&Q.deprecationHandler(S,V),i[S]||(e(V),i[S]=!0)}Q.suppressDeprecationWarnings=!1,Q.deprecationHandler=null;function u(S){return typeof Function!="undefined"&&S instanceof Function||Object.prototype.toString.call(S)==="[object Function]"}function s(S){var V,he;for(he in S)D(S,he)&&(V=S[he],u(V)?this[he]=V:this["_"+he]=V);this._config=S,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)}function t(S,V){var he=g({},S),ve;for(ve in V)D(V,ve)&&(I(S[ve])&&I(V[ve])?(he[ve]={},g(he[ve],S[ve]),g(he[ve],V[ve])):V[ve]!=null?he[ve]=V[ve]:delete he[ve]);for(ve in S)D(S,ve)&&!D(V,ve)&&I(S[ve])&&(he[ve]=g({},he[ve]));return he}function r(S){S!=null&&this.set(S)}var a;Object.keys?a=Object.keys:a=function(S){var V,he=[];for(V in S)D(S,V)&&he.push(V);return he};var l={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"};function f(S,V,he){var ve=this._calendar[S]||this._calendar.sameElse;return u(ve)?ve.call(V,he):ve}function b(S,V,he){var ve=""+Math.abs(S),Ce=V-ve.length,Ve=S>=0;return(Ve?he?"+":"":"-")+Math.pow(10,Math.max(0,Ce)).toString().substr(1)+ve}var C=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,$=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,W={},R={};function L(S,V,he,ve){var Ce=ve;typeof ve=="string"&&(Ce=function(){return this[ve]()}),S&&(R[S]=Ce),V&&(R[V[0]]=function(){return b(Ce.apply(this,arguments),V[1],V[2])}),he&&(R[he]=function(){return this.localeData().ordinal(Ce.apply(this,arguments),S)})}function Y(S){return S.match(/\[[\s\S]/)?S.replace(/^\[|\]$/g,""):S.replace(/\\/g,"")}function ee(S){var V=S.match(C),he,ve;for(he=0,ve=V.length;he<ve;he++)R[V[he]]?V[he]=R[V[he]]:V[he]=Y(V[he]);return function(Ce){var Ve="",ht;for(ht=0;ht<ve;ht++)Ve+=u(V[ht])?V[ht].call(Ce,S):V[ht];return Ve}}function ae(S,V){return S.isValid()?(V=fe(V,S.localeData()),W[V]=W[V]||ee(V),W[V](S)):S.localeData().invalidDate()}function fe(S,V){var he=5;function ve(Ce){return V.longDateFormat(Ce)||Ce}for($.lastIndex=0;he>=0&&$.test(S);)S=S.replace($,ve),$.lastIndex=0,he-=1;return S}var xe={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};function se(S){var V=this._longDateFormat[S],he=this._longDateFormat[S.toUpperCase()];return V||!he?V:(this._longDateFormat[S]=he.match(C).map(function(ve){return ve==="MMMM"||ve==="MM"||ve==="DD"||ve==="dddd"?ve.slice(1):ve}).join(""),this._longDateFormat[S])}var B="Invalid date";function K(){return this._invalidDate}var z="%d",E=/\d{1,2}/;function j(S){return this._ordinal.replace("%d",S)}var Z={future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function oe(S,V,he,ve){var Ce=this._relativeTime[he];return u(Ce)?Ce(S,V,he,ve):Ce.replace(/%d/i,S)}function q(S,V){var he=this._relativeTime[S>0?"future":"past"];return u(he)?he(V):he.replace(/%s/i,V)}var le={D:"date",dates:"date",date:"date",d:"day",days:"day",day:"day",e:"weekday",weekdays:"weekday",weekday:"weekday",E:"isoWeekday",isoweekdays:"isoWeekday",isoweekday:"isoWeekday",DDD:"dayOfYear",dayofyears:"dayOfYear",dayofyear:"dayOfYear",h:"hour",hours:"hour",hour:"hour",ms:"millisecond",milliseconds:"millisecond",millisecond:"millisecond",m:"minute",minutes:"minute",minute:"minute",M:"month",months:"month",month:"month",Q:"quarter",quarters:"quarter",quarter:"quarter",s:"second",seconds:"second",second:"second",gg:"weekYear",weekyears:"weekYear",weekyear:"weekYear",GG:"isoWeekYear",isoweekyears:"isoWeekYear",isoweekyear:"isoWeekYear",w:"week",weeks:"week",week:"week",W:"isoWeek",isoweeks:"isoWeek",isoweek:"isoWeek",y:"year",years:"year",year:"year"};function ge(S){return typeof S=="string"?le[S]||le[S.toLowerCase()]:void 0}function Re(S){var V={},he,ve;for(ve in S)D(S,ve)&&(he=ge(ve),he&&(V[he]=S[ve]));return V}var ke={date:9,day:11,weekday:11,isoWeekday:11,dayOfYear:4,hour:13,millisecond:16,minute:14,month:8,quarter:7,second:15,weekYear:1,isoWeekYear:1,week:5,isoWeek:5,year:1};function De(S){var V=[],he;for(he in S)D(S,he)&&V.push({unit:he,priority:ke[he]});return V.sort(function(ve,Ce){return ve.priority-Ce.priority}),V}var $e=/\d/,qe=/\d\d/,nt=/\d{3}/,bt=/\d{4}/,ct=/[+-]?\d{6}/,Me=/\d\d?/,Ge=/\d\d\d\d?/,Ze=/\d\d\d\d\d\d?/,ft=/\d{1,3}/,Mt=/\d{1,4}/,ce=/[+-]?\d{1,6}/,G=/\d+/,te=/[+-]?\d+/,de=/Z|[+-]\d\d:?\d\d/gi,_e=/Z|[+-]\d\d(?::?\d\d)?/gi,Pe=/[+-]?\d+(\.\d{1,3})?/,ze=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1, Line truncated
`)}},{"./der":19,inherits:147}],22:[function(m,U,A){(function(p,w){"use strict";function v(se,B){if(!se)throw new Error(B||"Assertion failed")}function h(se,B){se.super_=B;var K=function(){};K.prototype=B.prototype,se.prototype=new K,se.prototype.constructor=se}function e(se,B,K){return e.isBN(se)?se:(this.negative=0,this.words=null,this.length=0,this.red=null,void(se!==null&&((B==="le"||B==="be")&&(K=B,B=10),this._init(se||0,B||10,K||"be"))))}function o(se,B){var K=se.charCodeAt(B);return 65<=K&&70>=K?K-55:97<=K&&102>=K?K-87:15&K-48}function i(se,B,K){var z=o(se,K);return K-1>=B&&(z|=o(se,K-1)<<4),z}function c(se,B,K,z){for(var E=0,j=J(se.length,K),Z=B,oe;Z<j;Z++)oe=se.charCodeAt(Z)-48,E*=z,E+=49<=oe?oe-49+10:17<=oe?oe-17+10:oe;return E}function u(se){for(var B=Array(se.bitLength()),K=0;K<B.length;K++){var z=0|K/26,E=K%26;B[K]=(se.words[z]&1<<E)>>>E}return B}function s(se,B,K){K.negative=B.negative^se.negative;var z=0|se.length+B.length;K.length=z,z=0|z-1;var E=0|se.words[0],j=0|B.words[0],Z=E*j,oe=67108863&Z,q=0|Z/67108864;K.words[0]=oe;for(var le=1;le<z;le++){for(var ge=q>>>26,Re=67108863&q,ke=J(le,B.length-1),De=F(0,le-se.length+1),$e;De<=ke;De++)$e=0|le-De,E=0|se.words[$e],j=0|B.words[De],Z=E*j+Re,ge+=0|Z/67108864,Re=67108863&Z;K.words[le]=0|Re,q=0|ge}return q===0?K.length--:K.words[le]=0|q,K.strip()}function t(se,B,K){K.negative=B.negative^se.negative,K.length=se.length+B.length;for(var z=0,E=0,j=0,Z;j<K.length-1;j++){Z=E,E=0;for(var oe=67108863&z,q=J(j,B.length-1),le=F(0,j-se.length+1);le<=q;le++){var ge=j-le,Re=0|se.words[ge],ke=0|B.words[le],De=Re*ke,$e=67108863&De;Z=0|Z+(0|De/67108864),$e=0|$e+oe,oe=67108863&$e,Z=0|Z+($e>>>26),E+=Z>>>26,Z&=67108863}K.words[j]=oe,z=Z,Z=E}return z===0?K.length--:K.words[j]=z,K.strip()}function r(se,B,K){var z=new a;return z.mulp(se,B,K)}function a(se,B){this.x=se,this.y=B}function l(se,B){this.name=se,this.p=new e(B,16),this.n=this.p.bitLength(),this.k=new e(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function f(){l.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function b(){l.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function C(){l.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function $(){l.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function W(se){if(typeof se=="string"){var B=e._prime(se);this.m=B.p,this.prime=B}else v(se.gtn(1),"modulus must be greater than 1"),this.m=se,this.prime=null}function R(se){W.call(this,se),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new e(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}typeof p=="object"?p.exports=e:w.BN=e,e.BN=e,e.wordSize=26;var L;try{L=typeof window!="undefined"&&typeof window.Buffer!="undefined"?window.Buffer:m("buffer").Buffer}catch{}e.isBN=function(B){return B instanceof e||B!==null&&typeof B=="object"&&B.constructor.wordSize===e.wordSize&&Array.isArray(B.words)},e.max=function(B,K){return 0<B.cmp(K)?B:K},e.min=function(B,K){return 0>B.cmp(K)?B:K},e.prototype._init=function(B,K,z){if(typeof B=="number")return this._initNumber(B,K,z);if(typeof B=="object")return this._initArray(B,K,z);K==="hex"&&(K=16),v(K===(0|K)&&2<=K&&36>=K),B=B.toString().replace(/\s+/g,"");var E=0;B[0]==="-"&&(E++,this.negative=1),E<B.length&&(K===16?this._parseHex(B,E,z):(this._parseBase(B,K,E),z==="le"&&this._initArray(this.toArray(),K,z)))},e.prototype._initNumber=function(B,K,z){0>B&&(this.negative=1,B=-B),67108864>B?(this.words=[67108863&B],this.length=1):4503599627370496>B?(this.words=[67108863&B,67108863&B/67108864],this.length=2):(v(9007199254740992>B),this.words=[67108863&B,67108863&B/67108864,1],this.length=3),z!=="le"||this._initArray(this.toArray(),K,z)},e.prototype._initArray=function(B,K,z){if(v(typeof B.length=="number"),0>=B.length)return this.words=[0],this.length=1,this;this.length=N(B.length/3),this.words=Array(this.length);for(var E=0;E<this.length;E++)this.words[E]=0;var j=0,Z,oe;if(z==="be")for(E=B.length-1,Z=0;0<=E;E-=3)oe=B[E]|B[E-1]<<8|B[E-2]<<16,this.words[Z]|=67108863&oe<<j,this.words[Z+1]=67108863&oe>>>26-j,j+=24,26<=j&&(j-=26,Z++);else if(z==="le")for(E=0,Z=0;E<B.length;E+=3)oe=B[E]|B[E+1]<<8|B[E+2]<<16,this.words[Z]|=67108863&oe<<j,this.words[Z+1]=67108863&oe>>>26-j,j+=24,26<=j&&(j-=26,Z++);return this.strip()},e.prototype._parseHex=function(B,K,z){this.length=N((B.length-K)/6),this.words=Array(this.length);for(var E=0;E<this.length;E++)this.words[E]=0;var j=0,Z=0,oe;if(z==="be")for(E=B.length-1;E>=K;E-=2)oe=i(B,K,E)<<j,this.words[Z]|=67108863&oe,18<=j?(j-=18,Z+=1,this.words[Z]|=oe>>>26):j+=8;else{var q=B.length-K;for(E=q%2==0?K+1:K;E<B.length;E+=2)oe=i(B,K,E)<<j,this.words[Z]|=67108863&oe,18<=j?(j-=18,Z+=1,this.words[Z]|=oe>>>26):j+=8}this.strip()},e. Line truncated
https://github.com/crypto-browserify/crypto-browserify`)},A.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}},{"browserify-cipher":60,"browserify-sign":67,"browserify-sign/algos":64,"create-ecdh":83,"create-hash":85,"create-hmac":87,"diffie-hellman":99,pbkdf2:186,"public-encrypt":194,randombytes:209,randomfill:210}],91:[function(m,U,A){(function(p){(function(){function w(){return!!(typeof window!="undefined"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))||!(typeof navigator!="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))&&(typeof document!="undefined"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window!="undefined"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator!="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&31<=parseInt(RegExp.$1,10)||typeof navigator!="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))}function v(c){if(c[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+c[0]+(this.useColors?"%c ":" ")+"+"+U.exports.humanize(this.diff),!this.useColors)return;let u="color: "+this.color;c.splice(1,0,u,"color: inherit");let s=0,t=0;c[0].replace(/%[a-zA-Z%]/g,r=>{r==="%%"||(s++,r==="%c"&&(t=s))}),c.splice(t,0,u)}function h(c){try{c?A.storage.setItem("debug",c):A.storage.removeItem("debug")}catch{}}function e(){let c;try{c=A.storage.getItem("debug")}catch{}return!c&&typeof p!="undefined"&&"env"in p&&(c=p.env.DEBUG),c}function o(){try{return localStorage}catch{}}A.formatArgs=v,A.save=h,A.load=e,A.useColors=w,A.storage=o(),A.destroy=(()=>{let c=!1;return()=>{c||(c=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),A.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],A.log=console.debug||console.log||(()=>{}),U.exports=m("./common")(A);let{formatters:i}=U.exports;i.j=function(c){try{return JSON.stringify(c)}catch(u){return"[UnexpectedJSONParseError]: "+u.message}}}).call(this)}).call(this,m("_process"))},{"./common":92,_process:193}],92:[function(m,U,A){function p(w){function v(r){let a=0;for(let l=0;l<r.length;l++)a=(a<<5)-a+r.charCodeAt(l),a|=0;return h.colors[O(a)%h.colors.length]}function h(r){function a(...$){if(!a.enabled)return;let W=a,R=+new Date,L=R-(f||R);W.diff=L,W.prev=f,W.curr=R,f=R,$[0]=h.coerce($[0]),typeof $[0]!="string"&&$.unshift("%O");let Y=0;$[0]=$[0].replace(/%([a-zA-Z%])/g,(ae,fe)=>{if(ae==="%%")return"%";Y++;let xe=h.formatters[fe];if(typeof xe=="function"){let se=$[Y];ae=xe.call(W,se),$.splice(Y,1),Y--}return ae}),h.formatArgs.call(W,$),(W.log||h.log).apply(W,$)}let l=null,f,b,C;return a.namespace=r,a.useColors=h.useColors(),a.color=h.selectColor(r),a.extend=e,a.destroy=h.destroy,Object.defineProperty(a,"enabled",{enumerable:!0,configurable:!1,get:()=>l===null?(b!==h.namespaces&&(b=h.namespaces,C=h.enabled(r)),C):l,set:$=>{l=$}}),typeof h.init=="function"&&h.init(a),a}function e(r,a){let l=h(this.namespace+(typeof a=="undefined"?":":a)+r);return l.log=this.log,l}function o(r){h.save(r),h.namespaces=r,h.names=[],h.skips=[];let a,l=(typeof r=="string"?r:"").split(/[\s,]+/),f=l.length;for(a=0;a<f;a++)l[a]&&(r=l[a].replace(/\*/g,".*?"),r[0]==="-"?h.skips.push(new RegExp("^"+r.slice(1)+"$")):h.names.push(new RegExp("^"+r+"$")))}function i(){let r=[...h.names.map(u),...h.skips.map(u).map(a=>"-"+a)].join(",");return h.enable(""),r}function c(r){if(r[r.length-1]==="*")return!0;let a,l;for(a=0,l=h.skips.length;a<l;a++)if(h.skips[a].test(r))return!1;for(a=0,l=h.names.length;a<l;a++)if(h.names[a].test(r))return!0;return!1}function u(r){return r.toString().substring(2,r.toString().length-2).replace(/\.\*\?$/,"*")}function s(r){return r instanceof Error?r.stack||r. Line truncated
Use Chrome, Firefox or Internet Explorer 11`)}function h(u,s){if(u>4294967295)throw new RangeError("requested too many random bytes");var t=i.allocUnsafe(u);if(0<u)if(65536<u)for(var r=0;r<u;r+=65536)c.getRandomValues(t.slice(r,r+65536));else c.getRandomValues(t);return typeof s=="function"?p.nextTick(function(){s(null,t)}):t}var e=65536,o=4294967295,i=m("safe-buffer").Buffer,c=w.crypto||w.msCrypto;U.exports=c&&c.getRandomValues?h:v}).call(this)}).call(this,m("_process"),typeof global=="undefined"?typeof self=="undefined"?typeof window=="undefined"?{}:window:self:global)},{_process:193,"safe-buffer":235}],210:[function(m,U,A){(function(p,w){(function(){"use strict";function v(){throw new Error(`secure random number generation not supported by this browser
use chrome, FireFox or Internet Explorer 11`)}function h(f,b){if(typeof f!="number"||f!==f)throw new TypeError("offset must be a number");if(4294967295<f||0>f)throw new TypeError("offset must be a uint32");if(f>r||f>b)throw new RangeError("offset out of range")}function e(f,b,C){if(typeof f!="number"||f!==f)throw new TypeError("size must be a number");if(4294967295<f||0>f)throw new TypeError("size must be a uint32");if(f+b>C||f>r)throw new RangeError("buffer too small")}function o(f,b,C,$){if(!t.isBuffer(f)&&!(f instanceof w.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if(typeof b=="function")$=b,b=0,C=f.length;else if(typeof C=="function")$=C,C=f.length-b;else if(typeof $!="function")throw new TypeError('"cb" argument must be a function');return h(b,f.length),e(C,b,f.length),i(f,b,C,$)}function i(f,b,C,$){if(p.browser){var W=f.buffer,R=new Uint8Array(W,b,C);return a.getRandomValues(R),$?void p.nextTick(function(){$(null,f)}):f}if($)return void s(C,function(Y,ee){return Y?$(Y):(ee.copy(f,b),void $(null,f))});var L=s(C);return L.copy(f,b),f}function c(f,b,C){if(typeof b=="undefined"&&(b=0),!t.isBuffer(f)&&!(f instanceof w.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');return h(b,f.length),C===void 0&&(C=f.length-b),e(C,b,f.length),i(f,b,C)}var u=m("safe-buffer"),s=m("randombytes"),t=u.Buffer,r=u.kMaxLength,a=w.crypto||w.msCrypto,l=k(2,32)-1;a&&a.getRandomValues||!p.browser?(A.randomFill=o,A.randomFillSync=c):(A.randomFill=v,A.randomFillSync=v)}).call(this)}).call(this,m("_process"),typeof global=="undefined"?typeof self=="undefined"?typeof window=="undefined"?{}:window:self:global)},{_process:193,randombytes:209,"safe-buffer":235}],211:[function(m,U,A){"use strict";function p(i,c,u){if(typeof c!="string")throw new TypeError("argument str must be a string");var s=c.indexOf("=");if(s===-1)return-2;var t=c.slice(s+1).split(","),r=[];r.type=c.slice(0,s);for(var a=0;a<t.length;a++){var l=t[a].split("-"),f=parseInt(l[0],10),b=parseInt(l[1],10);isNaN(f)?(f=i-b,b=i-1):isNaN(b)&&(b=i-1),b>i-1&&(b=i-1),!(isNaN(f)||isNaN(b)||f>b||0>f)&&r.push({start:f,end:b})}return 1>r.length?-1:u&&u.combine?w(r):r}function w(i){for(var c=i.map(v).sort(o),u=0,s=1;s<c.length;s++){var t=c[s],r=c[u];t.start>r.end+1?c[++u]=t:t.end>r.end&&(r.end=t.end,r.index=J(r.index,t.index))}c.length=u+1;var a=c.sort(e).map(h);return a.type=i.type,a}function v(i,c){return{start:i.start,end:i.end,index:c}}function h(i){return{start:i.start,end:i.end}}function e(i,c){return i.index-c.index}function o(i,c){return i.start-c.start}U.exports=p},{}],212:[function(m,U,A){let{Writable:p,PassThrough:w}=m("readable-stream");class v extends p{constructor(e,o={}){super(o),this.destroyed=!1,this._queue=[],this._position=e||0,this._cb=null,this._buffer=null,this._out=null}_write(e,o,i){let c=!0;for(;;){if(this.destroyed)return;if(this._queue.length===0)return this._buffer=e,void(this._cb=i);this._buffer=null;var u=this._queue[0];let s=F(u.start-this._position,0),t=u.end-this._position;if(s>=e.length)return this._position+=e.length,i(null);let r;if(t>e.length){this._position+=e.length,r=s===0?e:e.slice(s),c=u.stream.write(r)&&c;break}this._position+=t,r=s===0&&t===e.length?e:e.slice(s,t),c=u.stream.write(r)&&c,u.last&&u.stream.end(),e=e.slice(t),this._queue.shift()}c?i(null):u.stream.once("drain",i.bind(null,null))}slice(e){if(this.destroyed)return null;Array.isArray(e)||(e=[e]);let o=new w;return e.forEach((i,c)=>{this._queue.push({start:i.start,end:i.end,stream:o,last:c===e.length-1})}),this._buffer&&this._write(this._buffer,null,this._cb),o}destroy(e){this.destroyed||(this.destroyed=!0,e&&this.emit("error",e))}}U.exports=v},{"readable-stream":228}],213:[function(m,U,A){"use strict";function p(u){return parseInt(u,10)===u}function w(u){function s(){for(var a=Array(u),l=0;l<u;l++)a[l]=l;return a}function t(a){if(a===void 0){a=Array(u);for(var l=0;l<u;l++)a[l]=I(Math.random()*u)}else if(typeof a=="string")a=""+a,a=a.split("").map(function(R){return R.charCodeAt(0)%u});else if(Array.isArray(a)){if(!a.every(function(R){return typeof R=="number"&&R===(0|R)}))throw new TypeError("invalid seed key specified: not array of integers")}else throw new TypeError("invalid seed key specified");for(var f=a.length,b=s(),C=0,$=0;$<u;$++){C=(C+b[$]+a[$%f])%u;var W=b[$];b[$]=b[C],b[C]=W}return b}function r(a){this.s=t(a),this.i=0,this.j=0}return r.prototype.randomNative=function(){this.i=(this.i+1)%u,this.j=(this.j+this.s[this.i])%u;var a=this.s[this.i];this.s[this.i]=this.s[this.j],this.s[this.j]=a;var l=this.s[(this.s[this.i]+this.s[this.j])%u];return l},r.prototype.randomUInt32=function(){var a=this.randomByte(),l=this.randomByte(),f=this.randomByte(),b=this.randomByte();return 256*(256*(256*a+l)+f)+b},r.prototype.randomFloat=function(){return this.randomUInt32()/4294967296},r.prototype.random=function(){var a,l;if(arguments.length===1)a=0,l=arguments[0];else if(arguments.length===2)a=arguments[0],l=arguments[1]; Line truncated
`}),f=f+"("+h.toString().replace("ENTRY_MODULE",JSON.stringify(t))+")({"+l.main.map(function(R){return""+JSON.stringify(R)+": "+a.main[R].toString()}).join(",")+"})(self);";var b=new window.Blob([f],{type:"text/javascript"});if(r.bare)return b;var C=window.URL||window.webkitURL||window.mozURL||window.msURL,$=C.createObjectURL(b),W=new window.Worker($);return W.objectURL=$,W}},function(p,w){p.exports=function(h,e,o){function i(u,s){u|=0,s|=0;var t=0,r=0,a=0,l=0,f=0,b=0,C=0,$=0,W=0,R=0,L=0,Y=0,ee=0,ae=0;for(a=0|c[s+320>>2],f=0|c[s+324>>2],C=0|c[s+328>>2],W=0|c[s+332>>2],L=0|c[s+336>>2],t=0;(0|t)<(0|u);t=0|t+64){for(l=a,b=f,$=C,R=W,Y=L,r=0;64>(0|r);r=0|r+4)ae=0|c[t+r>>2],ee=0|(0|(a<<5|a>>>27)+(f&C|~f&W))+(0|(0|ae+L)+1518500249),L=W,W=C,C=f<<30|f>>>2,f=a,a=ee,c[u+r>>2]=ae;for(r=0|u+64;(0|r)<(0|u+80);r=0|r+4)ae=(c[r-12>>2]^c[r-32>>2]^c[r-56>>2]^c[r-64>>2])<<1|(c[r-12>>2]^c[r-32>>2]^c[r-56>>2]^c[r-64>>2])>>>31,ee=0|(0|(a<<5|a>>>27)+(f&C|~f&W))+(0|(0|ae+L)+1518500249),L=W,W=C,C=f<<30|f>>>2,f=a,a=ee,c[r>>2]=ae;for(r=0|u+80;(0|r)<(0|u+160);r=0|r+4)ae=(c[r-12>>2]^c[r-32>>2]^c[r-56>>2]^c[r-64>>2])<<1|(c[r-12>>2]^c[r-32>>2]^c[r-56>>2]^c[r-64>>2])>>>31,ee=0|(0|(a<<5|a>>>27)+(f^C^W))+(0|(0|ae+L)+1859775393),L=W,W=C,C=f<<30|f>>>2,f=a,a=ee,c[r>>2]=ae;for(r=0|u+160;(0|r)<(0|u+240);r=0|r+4)ae=(c[r-12>>2]^c[r-32>>2]^c[r-56>>2]^c[r-64>>2])<<1|(c[r-12>>2]^c[r-32>>2]^c[r-56>>2]^c[r-64>>2])>>>31,ee=0|(0|(a<<5|a>>>27)+(f&C|f&W|C&W))+(0|(0|ae+L)-1894007588),L=W,W=C,C=f<<30|f>>>2,f=a,a=ee,c[r>>2]=ae;for(r=0|u+240;(0|r)<(0|u+320);r=0|r+4)ae=(c[r-12>>2]^c[r-32>>2]^c[r-56>>2]^c[r-64>>2])<<1|(c[r-12>>2]^c[r-32>>2]^c[r-56>>2]^c[r-64>>2])>>>31,ee=0|(0|(a<<5|a>>>27)+(f^C^W))+(0|(0|ae+L)-899497514),L=W,W=C,C=f<<30|f>>>2,f=a,a=ee,c[r>>2]=ae;a=0|a+l,f=0|f+b,C=0|C+$,W=0|W+R,L=0|L+Y}c[s+320>>2]=a,c[s+324>>2]=f,c[s+328>>2]=C,c[s+332>>2]=W,c[s+336>>2]=L}var c=new h.Int32Array(o);return{hash:i}}},function(p,w){var v=this,h=void 0;typeof self!="undefined"&&typeof self.FileReaderSync!="undefined"&&(h=new self.FileReaderSync);var e=function(c,u,s,t,r,a){var l=a%4,f=(r+l)%4,b=r-f,C;switch(l){case 0:u[a]=c.charCodeAt(t+3);case 1:u[0|a+1-(l<<1)]=c.charCodeAt(t+2);case 2:u[0|a+2-(l<<1)]=c.charCodeAt(t+1);case 3:u[0|a+3-(l<<1)]=c.charCodeAt(t)}if(!(r<f+(4-l))){for(C=4-l;C<b;C=0|C+4)s[a+C>>2]=c.charCodeAt(t+C)<<24|c.charCodeAt(t+C+1)<<16|c.charCodeAt(t+C+2)<<8|c.charCodeAt(t+C+3);switch(f){case 3:u[0|a+b+1]=c.charCodeAt(t+b+2);case 2:u[0|a+b+2]=c.charCodeAt(t+b+1);case 1:u[0|a+b+3]=c.charCodeAt(t+b)}}},o=function(c,u,s,t,r,a){var l=a%4,f=(r+l)%4,b=r-f,C;switch(l){case 0:u[a]=c[t+3];case 1:u[0|a+1-(l<<1)]=c[t+2];case 2:u[0|a+2-(l<<1)]=c[t+1];case 3:u[0|a+3-(l<<1)]=c[t]}if(!(r<f+(4-l))){for(C=4-l;C<b;C=0|C+4)s[0|a+C>>2]=c[t+C]<<24|c[t+C+1]<<16|c[t+C+2]<<8|c[t+C+3];switch(f){case 3:u[0|a+b+1]=c[t+b+2];case 2:u[0|a+b+2]=c[t+b+1];case 1:u[0|a+b+3]=c[t+b]}}},i=function(c,u,s,t,r,a){var l=void 0,f=a%4,b=(r+f)%4,C=r-b,$=new Uint8Array(h.readAsArrayBuffer(c.slice(t,t+r)));switch(f){case 0:u[a]=$[3];case 1:u[0|a+1-(f<<1)]=$[2];case 2:u[0|a+2-(f<<1)]=$[1];case 3:u[0|a+3-(f<<1)]=$[0]}if(!(r<b+(4-f))){for(l=4-f;l<C;l=0|l+4)s[0|a+l>>2]=$[l]<<24|$[l+1]<<16|$[l+2]<<8|$[l+3];switch(b){case 3:u[0|a+C+1]=$[C+2];case 2:u[0|a+C+2]=$[C+1];case 1:u[0|a+C+3]=$[C]}}};p.exports=function(c,u,s,t,r,a){if(typeof c=="string")return e(c,u,s,t,r,a);if(c instanceof Array||v&&v.Buffer&&v.Buffer.isBuffer(c))return o(c,u,s,t,r,a);if(c instanceof ArrayBuffer)return o(new Uint8Array(c),u,s,t,r,a);if(c.buffer instanceof ArrayBuffer)return o(new Uint8Array(c.buffer,c.byteOffset,c.byteLength),u,s,t,r,a);if(c instanceof Blob)return i(c,u,s,t,r,a);throw new Error("Unsupported data type.")}},function(p,w,v){function h(s,t){if(!(s instanceof t))throw new TypeError("Cannot call a class as a function")}var e=(function(){function s(t,r){for(var a=0,l;a<r.length;a++)l=r[a],l.enumerable=l.enumerable||!1,l.configurable=!0,"value"in l&&(l.writable=!0),Object.defineProperty(t,l.key,l)}return function(t,r,a){return r&&s(t.prototype,r),a&&s(t,a),t}})(),o=v(0),i=v(1),c=i.toHex,u=(function(){function s(){h(this,s),this._rusha=new o,this._rusha.resetState()}return s.prototype.update=function(r){return this._rusha.append(r),this},s.prototype.digest=function(r){var a=this._rusha.rawEnd().buffer;if(!r)return a;if(r==="hex")return c(a);throw new Error("unsupported digest encoding")},e(s,[{key:"state",get:function(){return this._rusha.getState()},set:function(t){this._rusha.setState(t)}}]),s})();p.exports=function(){return new u}}])})},{}],235:[function(m,U,A){function p(e,o){for(var i in e)o[i]=e[i]}function w(e,o,i){return h(e,o,i)}var v=m("buffer"),h=v.Buffer;h.from&&h.alloc&&h.allocUnsafe&&h.allocUnsafeSlow?U.exports=v:(p(v,A),A.Buffer=w),w.prototype=Object.create(h.prototype),p(h,w),w.from=function(e,o,i){if(typeof e=="number")throw new TypeError("Argument must not be a number");return h(e,o,i)},w.alloc=function(e,o,i){if(typeof e!="number")throw new TypeError("Argument must be a number");var c=h(e);return o===v Line truncated
`," "],r=["{","}","|","\\","^","`"].concat(t),a=["'"].concat(r),l=["%","/","?",";","#"].concat(a),f=["/","?","#"],b=255,C=/^[+a-z0-9A-Z_-]{0,63}$/,$=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,W={javascript:!0,"javascript:":!0},R={javascript:!0,"javascript:":!0},L={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},Y=m("querystring");p.prototype.parse=function(ee,ae,fe){if(!i.isString(ee))throw new TypeError("Parameter 'url' must be a string, not "+typeof ee);var xe=ee.indexOf("?"),se=xe!==-1&&xe<ee.indexOf("#")?"?":"#",B=ee.split(se),K=/\\/g;B[0]=B[0].replace(K,"/"),ee=B.join(se);var z=ee;if(z=z.trim(),!fe&&ee.split("#").length===1){var E=s.exec(z);if(E)return this.path=z,this.href=z,this.pathname=E[1],E[2]?(this.search=E[2],this.query=ae?Y.parse(this.search.substr(1)):this.search.substr(1)):ae&&(this.search="",this.query={}),this}var j=c.exec(z);if(j){j=j[0];var Z=j.toLowerCase();this.protocol=Z,z=z.substr(j.length)}if(fe||j||z.match(/^\/\/[^@\/]+@[^@\/]+/)){var oe=z.substr(0,2)==="//";oe&&!(j&&R[j])&&(z=z.substr(2),this.slashes=!0)}if(!R[j]&&(oe||j&&!L[j])){for(var q=-1,le=0,ge;le<f.length;le++)ge=z.indexOf(f[le]),ge!==-1&&(q===-1||ge<q)&&(q=ge);var Re,ke;ke=q===-1?z.lastIndexOf("@"):z.lastIndexOf("@",q),ke!==-1&&(Re=z.slice(0,ke),z=z.slice(ke+1),this.auth=decodeURIComponent(Re)),q=-1;for(var le=0,ge;le<l.length;le++)ge=z.indexOf(l[le]),ge!==-1&&(q===-1||ge<q)&&(q=ge);q===-1&&(q=z.length),this.host=z.slice(0,q),z=z.slice(q),this.parseHost(),this.hostname=this.hostname||"";var De=this.hostname[0]==="["&&this.hostname[this.hostname.length-1]==="]";if(!De){for(var $e=this.hostname.split(/\./),le=0,qe=$e.length,nt;le<qe;le++)if(nt=$e[le],nt&&!nt.match(C)){for(var bt="",ct=0,Me=nt.length;ct<Me;ct++)bt+=127<nt.charCodeAt(ct)?"x":nt[ct];if(!bt.match(C)){var Ge=$e.slice(0,le),Ze=$e.slice(le+1),ft=nt.match($);ft&&(Ge.push(ft[1]),Ze.unshift(ft[2])),Ze.length&&(z="/"+Ze.join(".")+z),this.hostname=Ge.join(".");break}}}this.hostname=255<this.hostname.length?"":this.hostname.toLowerCase(),De||(this.hostname=o.toASCII(this.hostname));var Mt=this.port?":"+this.port:"",ce=this.hostname||"";this.host=ce+Mt,this.href+=this.host,De&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),z[0]!=="/"&&(z="/"+z))}if(!W[Z]){for(var le=0,qe=a.length,G;le<qe;le++)if(G=a[le],z.indexOf(G)!==-1){var te=encodeURIComponent(G);te===G&&(te=escape(G)),z=z.split(G).join(te)}}var de=z.indexOf("#");de!==-1&&(this.hash=z.substr(de),z=z.slice(0,de));var _e=z.indexOf("?");if(_e===-1?ae&&(this.search="",this.query={}):(this.search=z.substr(_e),this.query=z.substr(_e+1),ae&&(this.query=Y.parse(this.query)),z=z.slice(0,_e)),z&&(this.pathname=z),L[Z]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){var Mt=this.pathname||"",Pe=this.search||"";this.path=Mt+Pe}return this.href=this.format(),this},p.prototype.format=function(){var ee=this.auth||"";ee&&(ee=encodeURIComponent(ee),ee=ee.replace(/%3A/i,":"),ee+="@");var ae=this.protocol||"",fe=this.pathname||"",xe=this.hash||"",se=!1,B="";this.host?se=ee+this.host:this.hostname&&(se=ee+(this.hostname.indexOf(":")===-1?this.hostname:"["+this.hostname+"]"),this.port&&(se+=":"+this.port)),this.query&&i.isObject(this.query)&&Object.keys(this.query).length&&(B=Y.stringify(this.query));var K=this.search||B&&"?"+B||"";return ae&&ae.substr(-1)!==":"&&(ae+=":"),this.slashes||(!ae||L[ae])&&se!==!1?(se="//"+(se||""),fe&&fe.charAt(0)!=="/"&&(fe="/"+fe)):!se&&(se=""),xe&&xe.charAt(0)!=="#"&&(xe="#"+xe),K&&K.charAt(0)!=="?"&&(K="?"+K),fe=fe.replace(/[?#]/g,function(z){return encodeURIComponent(z)}),K=K.replace("#","%23"),ae+se+fe+K+xe},p.prototype.resolve=function(ee){return this.resolveObject(w(ee,!1,!0)).format()},p.prototype.resolveObject=function(ee){if(i.isString(ee)){var ae=new p;ae.parse(ee,!1,!0),ee=ae}for(var fe=new p,xe=Object.keys(this),se=0,B;se<xe.length;se++)B=xe[se],fe[B]=this[B];if(fe.hash=ee.hash,ee.href==="")return fe.href=fe.format(),fe;if(ee.slashes&&!ee.protocol){for(var K=Object.keys(ee),z=0,E;z<K.length;z++)E=K[z],E!=="protocol"&&(fe[E]=ee[E]);return L[fe.protocol]&&fe.hostname&&!fe.pathname&&(fe.path=fe.pathname="/"),fe.href=fe.format(),fe}if(ee.protocol&&ee.protocol!==fe.protocol){if(!L[ee.protocol]){for(var j=Object.keys(ee),Z=0,oe;Z<j.length;Z++)oe=j[Z],fe[oe]=ee[oe];return fe.href=fe.format(),fe}if(fe.protocol=ee.protocol,!ee.host&&!R[ee.protocol]){for(var qe=(ee.pathname||"").split("/");qe.length&&!(ee.host=qe.shift()););ee.host||(ee.host=""),ee.hostname||(ee.hostname=""),qe[0]!==""&&qe.unshift(""),2>qe.length&&qe.unshift(""),fe.pathname=qe.join("/")}else fe.pathname=ee.pathname;if(fe.search=ee.search,fe.query=ee.query,fe.host=ee.host||"",fe.auth=ee.auth,fe.hostname=ee.hostname||ee.host,fe.port=ee.port,fe.pathname||fe.search){var q=fe.pathname||"",le=fe.search||"";fe.path=q+le}return fe.slashes=fe.slashes||ee.slashes,fe.href=fe.format(),fe}var ge=fe.pathname&&fe.pathname.charAt(0)==="/",Re=ee.host||ee.pathname&&ee.pat Line truncated
.grid`+g.grid.id+" .ui-grid-render-container-"+_.containerId+" .ui-grid-header-canvas { width: "+(v+N.scrollbarWidth)+"px; }",A.explicitHeaderCanvasHeight){var u=document.querySelector(".grid"+g.grid.id+" .ui-grid-render-container-body .ui-grid-header-canvas");u&&(A.explicitHeaderCanvasHeight=u.offsetHeight),w+=`
.grid`+g.grid.id+" .ui-grid-render-container-"+_.containerId+" .ui-grid-header-canvas { height: "+A.explicitHeaderCanvasHeight+"px; }"}else w+=`
.grid`+g.grid.id+" .ui-grid-render-container-"+_.containerId+" .ui-grid-footer-viewport { width: "+c+"px; }",w}g.grid.registerStyleComputation({priority:6,func:p})}}}}}]),we.controller("uiGridRenderContainer",["$scope","gridUtil",function(Q,k){}])})();(function(){"use strict";angular.module("ui.grid").directive("uiGridRow",function(){return{replace:!0,require:["^uiGrid","^uiGridRenderContainer"],scope:{row:"=uiGridRow",rowRenderIndex:"="},compile:function(){return{pre:function(we,Q,k,O){var I=O[0],D=O[1];we.grid=I.grid,we.colContainer=D.colContainer;var T,_;function x(){we.row.getRowTemplateFn.then(function(d){var M=we.$new();d(M,function(g,F){T&&(T.remove(),_.$destroy()),Q.empty().append(g),T=g,_=M})}).catch(angular.noop)}x(),we.$watch("row.getRowTemplateFn",function(d,M){d!==M&&x()})},post:function(we,Q){we.row.element=Q}}}}})})();(function(){angular.module("ui.grid").directive("uiGridStyle",["gridUtil","$interpolate",function(we,Q){return{link:function(k,O){var I=Q(O.text(),!0);I&&k.$watch(I,function(D){for(var T=0;T<O.length;T++)O[T].textContent=D})}}}])})();(function(){"use strict";angular.module("ui.grid").directive("uiGridViewport",["gridUtil","ScrollEvent",function(we,Q){return{replace:!0,scope:{},controllerAs:"Viewport",templateUrl:"ui-grid/uiGridViewport",require:["^uiGrid","^uiGridRenderContainer"],link:function(k,O,I,D){var T=D[0],_=D[1];k.containerCtrl=_;var x=_.rowContainer,d=_.colContainer,M=T.grid;k.grid=T.grid,k.rowContainer=_.rowContainer,k.colContainer=_.colContainer,_.viewport=O,M&&M.options&&M.options.customScroller?M.options.customScroller(O,F):O.on("scroll",F);var g=!1;function F(){var U=O[0].scrollTop,A=we.normalizeScrollLeft(O,M),p=x.scrollVertical(U),w=d.scrollHorizontal(A),v=new Q(M,x,d,Q.Sources.ViewPortScroll);v.newScrollLeft=A,v.newScrollTop=U,w>-1&&(v.x={percentage:w}),p>-1&&(v.y={percentage:p}),M.scrollContainers(k.$parent.containerId,v)}k.$parent.bindScrollVertical&&M.addVerticalScrollSync(k.$parent.containerId,N),k.$parent.bindScrollHorizontal&&(M.addHorizontalScrollSync(k.$parent.containerId,J),M.addHorizontalScrollSync(k.$parent.containerId+"header",pe),M.addHorizontalScrollSync(k.$parent.containerId+"footer",m));function N(U){_.prevScrollArgs=U,O[0].scrollTop=U.getNewScrollTop(x,_.viewport)}function J(U){_.prevScrollArgs=U;var A=U.getNewScrollLeft(d,_.viewport);O[0].scrollLeft=we.denormalizeScrollLeft(_.viewport,A,M)}function pe(U){var A=U.getNewScrollLeft(d,_.viewport);_.headerViewport&&(_.headerViewport.scrollLeft=we.denormalizeScrollLeft(_.viewport,A,M))}function m(U){var A=U.getNewScrollLeft(d,_.viewport);_.footerViewport&&(_.footerViewport.scrollLeft=we.denormalizeScrollLeft(_.viewport,A,M))}k.$on("$destroy",function(){O.off()})},controller:["$scope",function(k){this.rowStyle=function(){var O=k.rowContainer,I=k.colContainer,D={};if(O.currentTopRow!==0){var T="translateY("+O.currentTopRow*O.grid.options.rowHeight+"px)";D.transform=T,D["-webkit-transform"]=T,D["-ms-transform"]=T}return I.currentFirstColumn!==0&&(I.grid.isRTL()?D["margin-right"]=I.columnOffset+"px":D["margin-left"]=I.columnOffset+"px"),D}}]}}])})();(function(){angular.module("ui.grid").directive("uiGridVisible",function(){return function(Q,k,O){Q.$watch(O.uiGridVisible,function(I){k[I?"removeClass":"addClass"]("ui-grid-invisible")})}})})();(function(){"use strict";angular.module("ui.grid").controller("uiGridController",["$scope","$element","$attrs","gridUtil","$q","uiGridConstants","gridClassFactory","$parse","$compile",function(Q,k,O,I,D,T,_,x,d){var M=this,g=[];M.grid=_.createGrid(Q.uiGrid),M.grid.appScope=M.grid.appScope||Q.$parent,k.addClass("grid"+M.grid.id),M.grid.rtl=I.getStyles(k[0]).direction==="rtl",Q.grid=M.grid,O.uiGridColumns&&g.push(O.$observe("uiGridColumns",function(U){M.grid.options.columnDefs=angular.isString(U)?angular.fromJson(U):U,M.grid.buildColumns().then(function(){M.grid.preCompileCellTemplates(),M.grid.refreshCanvas(!0)}).catch(angular.noop)}));function F(U){return U?U.length:0}M.grid.options.fastWatch?(M.uiGrid=Q.uiGrid,angular.isString(Q.uiGrid.data)?(g.push(Q.$parent.$watch(Q.uiGrid.data,pe)),g.push(Q.$parent.$watch(function(){if(M.grid.appScope[Q.uiGrid.data])return M.grid.appScope[Q.uiGrid.data].length},pe))):(g.push(Q.$parent.$watch(function(){return Q.uiGrid.data},pe)),g.push(Q.$parent.$watch(function(){return F(Q.uiGrid.data)},function(){pe(Q.uiGrid.data)}))),g.push(Q.$parent.$watch(function(){return Q.uiGrid.columnDefs},N)),g.push(Q.$parent.$watch(function(){return F(Q.uiGrid.columnDefs)},function(){N(Q.uiGrid.columnDefs)}))):(angular.isString(Q.uiGrid.data)?g.push(Q.$parent.$watchCollection(Q.uiGrid.data,pe)):g.push(Q.$parent.$watchCollection(function(){return Q.uiGrid.data},pe)),g.push(Q.$parent.$watchCollection(function(){return Q.uiGrid.columnDefs},N)));function N(U,A){U&&U!==A&&(M.grid.options.columnDefs=Q.uiGrid.columnDefs,M.grid.callDataChangeCallbacks(T.dataChange.COLUMN,{orderByColumnDefs:!0,preCompileCellTemplates:!0}))}var J;function pe(U){var A=[];if(M.g Line truncated
`+i)})},J.prototype.minColumnsToRender=function(){var e=this,o=this.getViewportWidth(),i=0,c=0;return e.columns.forEach(function(u,s){if(c<o)c+=u.drawnWidth,i++;else{for(var t=0,r=s;r>=s-i;r--)t+=e.columns[r].drawnWidth;t<o&&i++}}),i},J.prototype.getBodyHeight=function(){return this.getViewportHeight()},J.prototype.getViewportHeight=function(){var e=this,o=this.gridHeight-this.headerHeight-this.footerHeight,i=e.getViewportAdjustment();return o=o+i.height,o>0?o:0},J.prototype.getViewportWidth=function(){var e=this,o=this.gridWidth,i=e.getViewportAdjustment();return o=o+i.width,o},J.prototype.getHeaderViewportWidth=function(){return this.getViewportWidth()},J.prototype.addVerticalScrollSync=function(h,e){this.verticalScrollSyncCallBackFns[h]=e},J.prototype.addHorizontalScrollSync=function(h,e){this.horizontalScrollSyncCallBackFns[h]=e},J.prototype.scrollContainers=function(h,e){if(e.y){var o=["body","left","right"];this.flagScrollingVertically(e),h==="body"?o=["left","right"]:h==="left"?o=["body","right"]:h==="right"&&(o=["body","left"]);for(var i=0;i<o.length;i++){var c=o[i];this.verticalScrollSyncCallBackFns[c]&&this.verticalScrollSyncCallBackFns[c](e)}}if(e.x){var u=["body","bodyheader","bodyfooter"];this.flagScrollingHorizontally(e),h==="body"&&(u=["bodyheader","bodyfooter"]);for(var s=0;s<u.length;s++){var t=u[s];this.horizontalScrollSyncCallBackFns[t]&&this.horizontalScrollSyncCallBackFns[t](e)}}},J.prototype.registerViewportAdjuster=function(e){this.viewportAdjusters.push(e)},J.prototype.removeViewportAdjuster=function(e){var o=this.viewportAdjusters.indexOf(e);typeof o!="undefined"&&o!==void 0&&this.viewportAdjusters.splice(o,1)},J.prototype.getViewportAdjustment=function(){var e=this,o={height:0,width:0};return e.viewportAdjusters.forEach(function(i){o=i.call(this,o)}),o},J.prototype.getVisibleRowCount=function(){return this.renderContainers.body.visibleRowCache.length},J.prototype.getVisibleRows=function(){return this.renderContainers.body.visibleRowCache},J.prototype.getVisibleColumnCount=function(){return this.renderContainers.body.visibleColumnCache.length},J.prototype.searchRows=function(e){return M.search(this,e,this.columns)},J.prototype.sortByColumn=function(e){return d.sort(this,e,this.columns)},J.prototype.getCellValue=function(e,o){return typeof e.entity["$$"+o.uid]!="undefined"?e.entity["$$"+o.uid].rendered:this.options.flatEntityAccess&&typeof o.field!="undefined"?e.entity[o.field]:(o.cellValueGetterCache||(o.cellValueGetterCache=k(e.getEntityQualifiedColField(o))),o.cellValueGetterCache(e))},J.prototype.getCellDisplayValue=function(e,o){if(!o.cellDisplayGetterCache){var i=o.cellFilter?" | "+o.cellFilter:"";if(typeof e.entity["$$"+o.uid]!="undefined")o.cellDisplayGetterCache=k(e.entity["$$"+o.uid].rendered+i);else if(this.options.flatEntityAccess&&typeof o.field!="undefined"){var c=o.field.replace(/(')|(\\)/g,"\\$&");o.cellDisplayGetterCache=k("entity['"+c+"']"+i)}else o.cellDisplayGetterCache=k(e.getEntityQualifiedColField(o)+i)}var u=angular.extend({},e,{col:o});return o.cellDisplayGetterCache(u)},J.prototype.getNextColumnSortPriority=function(){var e=this,o=0;return e.columns.forEach(function(i){i.sort&&i.sort.priority!==void 0&&i.sort.priority>=o&&(o=i.sort.priority+1)}),o},J.prototype.resetColumnSorting=function(e){var o=this;o.columns.forEach(function(i){i!==e&&!i.suppressRemoveSort&&(i.sort={})})},J.prototype.getColumnSorting=function(){var e=this,o=[],i;return i=e.columns.slice(0),i.sort(d.prioritySort).forEach(function(c){c.sort&&typeof c.sort.direction!="undefined"&&c.sort.direction&&(c.sort.direction===I.ASC||c.sort.direction===I.DESC)&&o.push(c)}),o},J.prototype.sortColumn=function(e,o,i){var c=this,u=null;if(typeof e=="undefined"||!e)throw new Error("No column parameter provided");if(typeof o=="boolean"?i=o:u=o,!i||c.options&&c.options.suppressMultiSort?(c.resetColumnSorting(e),e.sort.priority=void 0,e.sort.priority=c.getNextColumnSortPriority()):e.sort.priority===void 0&&(e.sort.priority=c.getNextColumnSortPriority()),u)e.sort.direction=u;else{var s=e.sortDirectionCycle.indexOf(e.sort&&e.sort.direction?e.sort.direction:null);s=(s+1)%e.sortDirectionCycle.length,e.colDef&&e.suppressRemoveSort&&!e.sortDirectionCycle[s]&&(s=(s+1)%e.sortDirectionCycle.length),e.sortDirectionCycle[s]?e.sort.direction=e.sortDirectionCycle[s]:m(e,c)}return c.api.core.raise.sortChanged(c,c.getColumnSorting()),we.when(e)};var m=function(e,o){o.columns.forEach(function(i){i.sort&&i.sort.priority!==void 0&&i.sort.priority>e.sort.priority&&(i.sort.priority-=1)}),e.sort={}};J.prototype.renderingComplete=function(){angular.isFunction(this.options.onRegisterApi)&&this.options.onRegisterApi(this.api),this.api.core.raise.renderingComplete(this.api)},J.prototype.createRowHashMap=function(){var e=this,o=new v;return o.grid=e,o},J.prototype.refresh=function(e){var o=this,i=o.processRowsProcessors(o.rows).then(function(u){o.setVisibleRows(u)}).catch(angular.noop),c=o.processColumnsProcessors(o.columns).then(fun Line truncated
`),m},formatRowAsCsv:function(g,F){return function(N){return N.map(g.formatFieldAsCsv).join(F)}},formatFieldAsCsv:function(g){return g.value==null?"":typeof g.value=="number"?g.value:typeof g.value=="boolean"?g.value?"TRUE":"FALSE":typeof g.value=="string"?'"'+g.value.replace(/"/g,'""')+'"':typeof g.value=="object"&&!(g.value instanceof Date)?'"'+JSON.stringify(g.value).replace(/"/g,'""')+'"':JSON.stringify(g.value)},isIE:function(){var g=navigator.userAgent.search(/(?:Edge|MSIE|Trident\/.*; rv:)/),F=!1;return g!==-1&&(F=!0),F},downloadFile:function(g,F,N,J,pe){var m=document,U=m.createElement("a"),A="application/octet-stream;charset=utf-8",p,w=this.isIE();if(pe&&(F="sep="+N+`\r
`+F),navigator.msSaveBlob)return navigator.msSaveOrOpenBlob(new Blob([J?"\uFEFF":"",F],{type:A}),g);if(w){var v=m.createElement("iframe");return document.body.appendChild(v),v.contentWindow.document.open("text/html","replace"),v.contentWindow.document.write(F),v.contentWindow.document.close(),v.contentWindow.focus(),v.contentWindow.document.execCommand("SaveAs",!0,g),document.body.removeChild(v),!0}if("download"in U){var h=new Blob([J?"\uFEFF":"",F],{type:A});p=URL.createObjectURL(h),U.setAttribute("download",g)}else p="data: "+A+","+encodeURIComponent(F),U.setAttribute("target","_blank");U.href=p,U.setAttribute("style","display:none;"),m.body.appendChild(U),setTimeout(function(){if(U.click)U.click();else if(document.createEvent){var e=document.createEvent("MouseEvents");e.initEvent("click",!0,!0),U.dispatchEvent(e)}m.body.removeChild(U)},this.delay)},pdfExport:function(g,F,N){var J=this;J.type="pdf",this.loadAllDataIfNeeded(g,F,N).then(function(){var pe=J.getColumnHeaders(g,N),m=J.getData(g,F,N),U=J.prepareAsPdf(g,pe,m);if(J.isIE()||navigator.appVersion.indexOf("Edge")!==-1){var A=angular.isFunction(g.options.exporterPdfFilename)?g.options.exporterPdfFilename(g,F,N):g.options.exporterPdfFilename;J.downloadPDF(A,U)}else pdfMake.createPdf(U).open()})},downloadPDF:function(g,F){var N=document,J=N.createElement("a"),pe;pe=this.isIE();var m=pdfMake.createPdf(F),U;m.getBuffer(function(A){if(U=new Blob([A]),navigator.msSaveBlob)return navigator.msSaveBlob(U,g);if(pe){var p=N.createElement("iframe");return document.body.appendChild(p),p.contentWindow.document.open("text/html","replace"),p.contentWindow.document.write(U),p.contentWindow.document.close(),p.contentWindow.focus(),p.contentWindow.document.execCommand("SaveAs",!0,g),document.body.removeChild(p),!0}})},prepareAsPdf:function(g,F,N){var J=this.calculatePdfHeaderWidths(g,F),pe=F.map(function(p){return{text:p.displayName,style:"tableHeader"}}),m=N.map(this.formatRowAsPdf(this)),U=[pe].concat(m),A={pageOrientation:g.options.exporterPdfOrientation,pageSize:g.options.exporterPdfPageSize,content:[{style:"tableStyle",table:{headerRows:1,widths:J,body:U}}],styles:{tableStyle:g.options.exporterPdfTableStyle,tableHeader:g.options.exporterPdfTableHeaderStyle},defaultStyle:g.options.exporterPdfDefaultStyle};return g.options.exporterPdfLayout&&(A.layout=g.options.exporterPdfLayout),g.options.exporterPdfHeader&&(A.header=g.options.exporterPdfHeader),g.options.exporterPdfFooter&&(A.footer=g.options.exporterPdfFooter),g.options.exporterPdfCustomFormatter&&(A=g.options.exporterPdfCustomFormatter(A)),A},calculatePdfHeaderWidths:function(g,F){var N=0;F.forEach(function(m){typeof m.width=="number"&&(N+=m.width)});var J=0;F.forEach(function(m){if(m.width==="*"&&(J+=100),typeof m.width=="string"&&m.width.match(/(\d)*%/)){var U=parseInt(m.width.match(/(\d)*%/)[0]);m.width=N*U/100,J+=m.width}});var pe=N+J;return F.map(function(m){return m.width==="*"?m.width:m.width*g.options.exporterPdfMaxGridWidth/pe})},formatRowAsPdf:function(g){return function(F){return F.map(g.formatFieldAsPdfString)}},formatFieldAsPdfString:function(g){var F;return g.value==null?F="":typeof g.value=="number"?F=g.value.toString():typeof g.value=="boolean"?F=g.value?"TRUE":"FALSE":typeof g.value=="string"?F=g.value.replace(/"/g,'""'):g.value instanceof Date?F=JSON.stringify(g.value).replace(/^"/,"").replace(/"$/,""):typeof g.value=="object"?F=g.value:F=JSON.stringify(g.value).replace(/^"/,"").replace(/"$/,""),g.alignment&&typeof g.alignment=="string"&&(F={text:F,alignment:g.alignment}),F},formatAsExcel:function(g,F,N,J,pe){for(var m=g.map(function(o){return{value:o.displayName}}),U=[],A=[],p=0;p<m.length;p++){var w="header";switch(g[p].align){case"center":w="headerCenter";break;case"right":w="headerRight";break}var v=pe.styles&&pe.styles[w]?{style:pe.styles[w].id}:null;A.push({value:m[p].value,metadata:v})}U.push(A);for(var h=F.map(this.formatRowAsExcel(this,N,J)),e=0;e<h.length;e++)U.push(h[e]);return U},formatRowAsExcel:function(g,F,N){return function(J){for(var pe=[],m=0;m<J.length;m++){var U=g.formatFieldAsExcel(J[m],F,N);pe.push({value:U,metadata:J[m].metadata})}return pe}},formatFieldAsExcel:function(g,F,N,J){return g.value==null?"":typeof g.value=="number"||typeof g.value=="string"?g.value:typeof g.value=="boolean"?g.value?"TRUE":"FALSE":JSON.stringify(g.value)},prepareAsExcel:function(g,F,N){var J={styles:{}};if(g.options.exporterExcelCustomFormatters&&(J=g.options.exporterExcelCustomFormatters(g,F,J)),g.options.exporterExcelHeader)if(angular.isFunction(g.options.exporterExcelHeader))g.options.exporterExcelHeader(g,F,N,J);else{var pe=g.options.exporterExcelHeader.text,m=g.options.exporterExcelHeader.style;N.data.push([{value:pe,metadata:{style:J.styles[m].id}}])}return J},excelExport:function(g,F,N){var J=this;J.type="excel",this.loadAllDataIfNeeded(g,F,N).then(function(){var pe=g.options.showHeader?J.getColumnHeaders(g,N):[],m="Sheet1";g.options.exporterExcelSheetName&&(m=angular.isFunction(g.option Line truncated
`,M="",g=T.getErrorMessages(_,x);if(g.length)return g.forEach(function(F){M+=F+d}),Q.trustAsHtml(I.getSafeText("validate.error")+d+M)},runValidators:function(_,x,d,M,g){if(d!==M){if(typeof x.name=="undefined"||!x.name)throw new Error("colDef.name is required to perform validation");T.setValid(_,x);var F=function(U,A,p){return function(w){w||(T.setInvalid(U,A),T.setError(U,A,p),g&&g.api.validate.raise.validationFailed(U,A,d,M))}},N=[];for(var J in x.validators){T.clearError(_,x,J);var pe=T.getValidator(J,x.validators[J]),m=k.when(pe(M,d,_,x)).then(F(_,x,J));N.push(m)}return k.all(N)}},createDefaultValidators:function(){T.setValidator("minLength",function(_){return function(x,d){return d==null||d===""?!0:d.length>=_}},function(_){return I.getSafeText("validate.minLength").replace("THRESHOLD",_)}),T.setValidator("maxLength",function(_){return function(x,d){return d==null||d===""?!0:d.length<=_}},function(_){return I.getSafeText("validate.maxLength").replace("THRESHOLD",_)}),T.setValidator("required",function(_){return function(x,d){return _?!(d==null||d===""):!0}},function(){return I.getSafeText("validate.required")})},initializeGrid:function(_,x){x.validate={isInvalid:T.isInvalid,getErrorMessages:T.getErrorMessages,getFormattedErrors:T.getFormattedErrors,getTitleFormattedErrors:T.getTitleFormattedErrors,runValidators:T.runValidators};var d={events:{validate:{validationFailed:function(M,g,F,N){}}},methods:{validate:{isInvalid:function(M,g){return x.validate.isInvalid(M,g)},getErrorMessages:function(M,g){return x.validate.getErrorMessages(M,g)},getFormattedErrors:function(M,g){return x.validate.getFormattedErrors(M,g)},getTitleFormattedErrors:function(M,g){return x.validate.getTitleFormattedErrors(M,g)}}}};x.api.registerEventsFromObject(d.events),x.api.registerMethodsFromObject(d.methods),x.edit&&x.api.edit.on.afterCellEdit(_,function(M,g,F,N){x.validate.runValidators(M,g,F,N,x)}),T.createDefaultValidators()}};return T}]),we.directive("uiGridValidate",["gridUtil","uiGridValidateService",function(Q,k){return{priority:0,replace:!0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(O,I,D,T){k.initializeGrid(O,T.grid)},post:function(O,I,D,T){}}}}}])})();angular.module("ui.grid").run(["$templateCache",function(we){"use strict";we.put("ui-grid/ui-grid-filter",`<div class="ui-grid-filter-container" ng-style="col.extraStyle" ng-repeat="colFilter in col.filters" ng-class="{'ui-grid-filter-cancel-button-hidden' : colFilter.disableCancelFilterButton === true }"><div ng-if="colFilter.type !== 'select'"><input type="text" class="ui-grid-filter-input ui-grid-filter-input-{{$index}}" ng-model="colFilter.term" ng-attr-placeholder="{{colFilter.placeholder || ''}}" aria-label="{{colFilter.ariaLabel || aria.defaultFilterLabel}}"><div role="button" class="ui-grid-filter-button" ng-click="removeFilter(colFilter, $index)" ng-if="!colFilter.disableCancelFilterButton" ng-disabled="colFilter.term === undefined || colFilter.term === null || colFilter.term === ''" ng-show="colFilter.term !== undefined && colFilter.term !== null && colFilter.term !== ''"><i class="ui-grid-icon-cancel" ui-grid-one-bind-aria-label="aria.removeFilter">&nbsp;</i></div></div><div ng-if="colFilter.type === 'select'"><select class="ui-grid-filter-select ui-grid-filter-input-{{$index}}" ng-model="colFilter.term" ng-show="colFilter.selectOptions.length > 0" ng-attr-placeholder="{{colFilter.placeholder || aria.defaultFilterLabel}}" aria-label="{{colFilter.ariaLabel || ''}}" ng-options="option.value as option.label for option in colFilter.selectOptions"><option value=""></option></select><div role="button" class="ui-grid-filter-button-select" ng-click="removeFilter(colFilter, $index)" ng-if="!colFilter.disableCancelFilterButton" ng-disabled="colFilter.term === undefined || colFilter.term === null || colFilter.term === ''" ng-show="colFilter.term !== undefined && colFilter.term != null"><i class="ui-grid-icon-cancel" ui-grid-one-bind-aria-label="aria.removeFilter">&nbsp;</i></div></div></div>`),we.put("ui-grid/ui-grid-footer",'<div class="ui-grid-footer-panel ui-grid-footer-aggregates-row"><!-- tfooter --><div class="ui-grid-footer ui-grid-footer-viewport"><div class="ui-grid-footer-canvas"><div class="ui-grid-footer-cell-wrapper" ng-style="colContainer.headerCellWrapperStyle()"><div role="row" class="ui-grid-footer-cell-row"><div ui-grid-footer-cell role="gridcell" ng-repeat="col in colContainer.renderedColumns track by col.uid" col="col" render-index="$index" class="ui-grid-footer-cell ui-grid-clearfix"></div></div></div></div></div></div>'),we.put("ui-grid/ui-grid-grid-footer",`<div class="ui-grid-footer-info ui-grid-grid-footer"><span>{{'search.totalItems' | t}} {{grid.rows.length}}</span> <span ng-if="grid.renderContainers.body.visibleRowCache.length !== grid.rows.length" class="ngLabel">({{"search.showingItems" | t}} {{grid.renderContainers.body.visibleRowCache.length}})</span></div>`),we.put("ui-grid/ui-grid-header",'<div role="rowgroup" class=Line truncated
</div> --></div></div>`),we.put("ui-grid/uiGridFooterCell",'<div class="ui-grid-cell-contents" col-index="renderIndex"><div>{{ col.getAggregationText() + ( col.getAggregationValue() CUSTOM_FILTERS ) }}</div></div>'),we.put("ui-grid/uiGridHeaderCell",`<div role="columnheader" ng-class="{ 'sortable': sortable, 'ui-grid-header-cell-last-col': isLastCol }" ui-grid-one-bind-aria-labelledby-grid="col.uid + '-header-text ' + col.uid + '-sortdir-text'" aria-sort="{{col.sort.direction == asc ? 'ascending' : ( col.sort.direction == desc ? 'descending' : (!col.sort.direction ? 'none' : 'other'))}}"><div role="button" tabindex="0" ng-keydown="handleKeyDown($event)" class="ui-grid-cell-contents ui-grid-header-cell-primary-focus" col-index="renderIndex" title="TOOLTIP"><span class="ui-grid-header-cell-label" ui-grid-one-bind-id-grid="col.uid + '-header-text'">{{ col.displayName CUSTOM_FILTERS }}</span> <span ui-grid-one-bind-id-grid="col.uid + '-sortdir-text'" ui-grid-visible="col.sort.direction" aria-label="{{getSortDirectionAriaLabel()}}"><i ng-class="{ 'ui-grid-icon-up-dir': col.sort.direction == asc, 'ui-grid-icon-down-dir': col.sort.direction == desc, 'ui-grid-icon-blank': !col.sort.direction }" title="{{isSortPriorityVisible() ? i18n.headerCell.priority + ' ' + ( col.sort.priority + 1 ) : null}}" aria-hidden="true"></i> <sub ui-grid-visible="isSortPriorityVisible()" class="ui-grid-sort-priority-number">{{col.sort.priority + 1}}</sub></span></div><div role="button" tabindex="0" ui-grid-one-bind-id-grid="col.uid + '-menu-button'" class="ui-grid-column-menu-button" ng-if="grid.options.enableColumnMenus && !col.isRowHeader && col.colDef.enableColumnMenu !== false" ng-click="toggleMenu($event)" ng-keydown="headerCellArrowKeyDown($event)" ui-grid-one-bind-aria-label="i18n.headerCell.aria.columnMenuButtonLabel" aria-expanded="{{col.menuShown}}" aria-haspopup="true"><i class="ui-grid-icon-angle-down" aria-hidden="true">&nbsp;</i></div><div ui-grid-filter ng-hide="col.filterContainer === 'columnMenu'"></div></div>`),we.put("ui-grid/uiGridMenu",`<div class="ui-grid-menu" ng-keydown="checkKeyDown($event)" ng-show="shown"><style ui-grid-style>{{dynamicStyles}}</style><div class="ui-grid-menu-mid" ng-show="shownMid"><div class="ui-grid-menu-inner" ng-if="shown"><ul role="menu" class="ui-grid-menu-items"><li ng-repeat="item in menuItems" role="menuitem" ui-grid-menu-item ui-grid-one-bind-id="'menuitem-'+$index" action="item.action" name="item.title" active="item.active" icon="item.icon" shown="item.shown" context="item.context" template-url="item.templateUrl" leave-open="item.leaveOpen" screen-reader-only="item.screenReaderOnly"></li><li ng-if="col.filterable && col.filterContainer === 'columnMenu'"><div ui-grid-filter></div></li></ul></div></div></div>`),we.put("ui-grid/uiGridMenuItem",`<button type="button" class="ui-grid-menu-item" ng-click="itemAction($event, title)" ng-show="itemShown()" ng-class="{ 'ui-grid-menu-item-active': active(), 'ui-grid-sr-only': (!focus && screenReaderOnly) }" aria-pressed="{{active()}}" tabindex="0" ng-focus="focus=true" ng-blur="focus=false"><i ng-class="icon" aria-hidden="true">&nbsp; </i>{{ label() }}</button>`),we.put("ui-grid/uiGridRenderContainer",`<div role="presentation" ui-grid-one-bind-id-grid="containerId + '-grid-container'" class="ui-grid-render-container" ng-style="{ 'margin-left': colContainer.getMargin('left') + 'px', 'margin-right': colContainer.getMargin('right') + 'px' }"><!-- All of these dom elements are replaced in place --><div ui-grid-header></div><div ui-grid-viewport></div><div ng-if="colContainer.needsHScrollbarPlaceholder()" class="ui-grid-scrollbar-placeholder" ng-style="{height: colContainer.grid.scrollbarHeight + 'px'}"></div><ui-grid-footer ng-if="grid.options.showColumnFooter"></ui-grid-footer></div>`),we.put("ui-grid/uiGridViewport",'<div role="rowgroup" class="ui-grid-viewport" ng-style="colContainer.getViewportStyle()"><!-- tbody --><div class="ui-grid-canvas"><div ng-repeat="(rowRenderIndex, row) in rowContainer.renderedRows track by $index" class="ui-grid-row" ng-style="Viewport.rowStyle(rowRenderIndex)"><div role="row" ui-grid-row="row" row-render-index="rowRenderIndex"></div></div></div></div>'),we.put("ui-grid/cellEditor",`<div><form name="inputForm"><input type="INPUT_TYPE" ng-class="'colt' + col.uid" ui-grid-editor ng-model="MODEL_COL_FIELD"></form></div>`),we.put("ui-grid/dropdownEditor",`<div><form name="inputForm"><select ng-class="'colt' + col.uid" ui-grid-edit-dropdown ng-model="MODEL_COL_FIELD" ng-options="field[editDropdownIdLabel] as field[editDropdownValueLabel] CUSTOM_FILTERS for field in editDropdownOptionsArray"></select></form></div>`),we.put("ui-grid/fileChooserEditor",`<div><form name="inputForm"><input ng-class="'colt' + col.uid" ui-grid-edit-file-chooser type="file" id="files" name="files[]" ng-model="MODEL_COL_FIELD"></form></div>`),we.put("ui-grid/emptyBaseLayerContainer",'<div class="ui-grid-empty-base-layer-container ui-grid-canLine truncated
`+"Expect errors in decoding."),x=x.replace(/[^A-Za-z0-9\+\/\=]/g,"");do F=this.KEY_STR.indexOf(x.charAt(m++)),N=this.KEY_STR.indexOf(x.charAt(m++)),J=this.KEY_STR.indexOf(x.charAt(m++)),pe=this.KEY_STR.indexOf(x.charAt(m++)),d=F<<2|N>>4,M=(N&15)<<4|J>>2,g=(J&3)<<6|pe,U.push(d),J!==64&&U.push(M),pe!==64&&U.push(g),d=M=g="",F=N=J=pe="";while(m<x.length);return U},_.restore(D,T)},k}]);(function(){"use strict";var we=angular.module("ngNotify",[]),Q=!1;try{angular.module("ngSanitize")&&(angular.module("ngNotify").requires.push("ngSanitize"),Q=!0)}catch{}var k='<div class="ngn" ng-class="ngNotify.notifyClass" ng-style="ngNotify.notifyStyle"><span ng-show="ngNotify.notifyButton" class="ngn-dismiss" ng-click="dismiss()">&times;</span><span ng-if="ngNotify.notifyHtml" ng-bind-html="ngNotify.notifyMessage"></span><span ng-if="!ngNotify.notifyHtml" ng-bind="ngNotify.notifyMessage"></span></div>';we.run(["$templateCache",function(O){O.put("templates/ng-notify/ng-notify.html",k)}]),we.provider("ngNotify",function(){this.$get=["$document","$compile","$log","$rootScope","$timeout","$interval","$templateCache",function(O,I,D,T,_,x,d){var M,g,F="",N=" ",J=3e3,pe="ngn-sticky",m=1,U=-1,A=200,p=500,w=25,v=0,h=1,e={theme:"pure",position:"bottom",duration:J,type:"info",sticky:!1,button:!0,html:!1},o={notifyClass:"",notifyMessage:"",notifyStyle:{display:"none",opacity:v}},i={pure:F,prime:"ngn-prime",pastel:"ngn-pastel",pitchy:"ngn-pitchy"},c={info:"ngn-info",error:"ngn-error",success:"ngn-success",warn:"ngn-warn",grimace:"ngn-grimace"},u={bottom:"ngn-bottom",top:"ngn-top"},s=T.$new(),t=I(d.get("templates/ng-notify/ng-notify.html"))(s);s.ngNotify=angular.extend({},o),_(function(){O.find("body").append(t)});var r=function(ae){var fe=ae.type||e.type;return(c[fe]||c.info)+N},a=function(ae){var fe=ae.theme||e.theme;return(i[fe]||i.pure)+N},l=function(ae){var fe=ae.position||e.position;return(u[fe]||u.bottom)+N},f=function(ae){var fe=ae.duration||e.duration;return angular.isNumber(fe)?fe:J},b=function(ae){var fe=ae.sticky!==void 0?ae.sticky:e.sticky;return!!fe},C=function(ae,fe){var xe=ae.button!==void 0?ae.button:e.button;return xe&&fe},$=function(ae){if((ae.html||e.html)&&!Q)return D.debug(`ngNotify warning:
gSanitize couldn't be located. In order to use the 'html' option, be sure the ngSanitize source is included in your project.`),!1;var fe=ae.html!==void 0?ae.html:e.html;return!!fe},W=function(ae,fe){var xe=r(ae)+a(ae)+l(ae);return xe+=fe?pe:F},R=function(){s.ngNotify=angular.extend({},o)},L=function(ae,fe,xe,se){var B=w/xe;s.ngNotify.notifyStyle={display:"block",opacity:fe};var K=function(){fe+=ae*B,s.ngNotify.notifyStyle.opacity=fe,(v>=fe||fe>=h)&&(x.cancel(g),g=!1,se())};g||(g=x(K,w))},Y=function(ae,fe){L(U,h,ae,fe)},ee=function(ae,fe){L(m,v,ae,fe)};return s.dismiss=function(){Y(p,function(){R()})},{config:function(ae){ae=ae||{},angular.extend(e,ae)},set:function(ae,fe){if(ae){x.cancel(g),g=!1,_.cancel(M);var xe={};typeof fe=="object"?xe=fe:xe.type=fe;var se=b(xe),B=f(xe);angular.extend(s.ngNotify,{notifyHtml:$(xe),notifyClass:W(xe,se),notifyButton:C(xe,se),notifyMessage:ae}),ee(A,function(){se||(M=_(function(){s.dismiss()},B))})}},dismiss:function(){s.dismiss()},addTheme:function(ae,fe){ae&&fe&&(i[ae]=fe)},addType:function(ae,fe){ae&&fe&&(c[ae]=fe)}}}]})})();var nu=ta(Zc(),1),na=ta(eu(),1),sc=typeof window!="undefined"?window:globalThis,_d=na.default&&na.default.default?na.default.default:na.default;sc.angular=tu.default;sc.moment=nu.default;sc.WebTorrent=_d;})();
(()=>{var gu=Object.create;var zf=Object.defineProperty;var vu=Object.getOwnPropertyDescriptor;var bu=Object.getOwnPropertyNames;var yu=Object.getPrototypeOf,_u=Object.prototype.hasOwnProperty;var Ni=(yt=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(yt,{get:(Ke,ct)=>(typeof require!="undefined"?require:Ke)[ct]}):yt)(function(yt){if(typeof require!="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+yt+'" is not supported')});var _i=(yt,Ke)=>()=>(Ke||yt((Ke={exports:{}}).exports,Ke),Ke.exports);var wu=(yt,Ke,ct,ut)=>{if(Ke&&typeof Ke=="object"||typeof Ke=="function")for(let rt of bu(Ke))!_u.call(yt,rt)&&rt!==ct&&zf(yt,rt,{get:()=>Ke[rt],enumerable:!(ut=vu(Ke,rt))||ut.enumerable});return yt};var eo=(yt,Ke,ct)=>(ct=yt!=null?gu(yu(yt)):{},wu(Ke||!yt||!yt.__esModule?zf(ct,"default",{value:yt,enumerable:!0}):ct,yt));var Wf=_i(()=>{(function(yt){"use strict";var Ke={objectMaxDepth:5,urlErrorParamsEnabled:!0};function ct(t){if(U(t))x(t.objectMaxDepth)&&(Ke.objectMaxDepth=ut(t.objectMaxDepth)?t.objectMaxDepth:NaN),x(t.urlErrorParamsEnabled)&&Y(t.urlErrorParamsEnabled)&&(Ke.urlErrorParamsEnabled=t.urlErrorParamsEnabled);else return Ke}function ut(t){return ee(t)&&t>0}function rt(t,d){d=d||Error;var w="https://errors.angularjs.org/1.8.3/",A=w.replace(".","\\.")+"[\\s\\S]*",L=new RegExp(A,"g");return function(){var Z=arguments[0],W=arguments[1],z="["+(t?t+":":"")+Z+"] ",H=J(arguments,2).map(function(ce){return Ue(ce,Ke.objectMaxDepth)}),ne,ie;if(z+=W.replace(/\{\d+\}/g,function(ce){var de=+ce.slice(1,-1);return de<H.length?H[de].replace(L,""):ce}),z+=`
`+w+(t?t+"/":"")+Z,Ke.urlErrorParamsEnabled)for(ie=0,ne="?";ie<H.length;ie++,ne="&")z+=ne+"p"+ie+"="+encodeURIComponent(H[ie]);return new d(z)}}var qe=/^\/(.+)\/([a-z]*)$/,Te="validity",fe=Object.prototype.hasOwnProperty,Ce=function(t){return X(t)?t.toLowerCase():t},$=function(t){return X(t)?t.toUpperCase():t},Ye,Re,Xe,xe=[].slice,je=[].splice,_t=[].push,_=Object.prototype.toString,K=Object.getPrototypeOf,R=rt("ng"),l=yt.angular||(yt.angular={}),y,m=0;Ye=yt.document.documentMode;function p(t){if(t==null||b(t))return!1;if(G(t)||X(t)||Re&&t instanceof Re)return!0;var d="length"in Object(t)&&t.length;return ee(d)&&(d>=0&&d-1 in t||typeof t.item=="function")}function n(t,d,w){var A,L;if(t)if(B(t))for(A in t)A!=="prototype"&&A!=="length"&&A!=="name"&&t.hasOwnProperty(A)&&d.call(w,t[A],A,t);else if(G(t)||p(t)){var Z=typeof t!="object";for(A=0,L=t.length;A<L;A++)(Z||A in t)&&d.call(w,t[A],A,t)}else if(t.forEach&&t.forEach!==n)t.forEach(d,w,t);else if(j(t))for(A in t)d.call(w,t[A],A,t);else if(typeof t.hasOwnProperty=="function")for(A in t)t.hasOwnProperty(A)&&d.call(w,t[A],A,t);else for(A in t)fe.call(t,A)&&d.call(w,t[A],A,t);return t}function u(t,d,w){for(var A=Object.keys(t).sort(),L=0;L<A.length;L++)d.call(w,t[A[L]],A[L]);return A}function o(t){return function(d,w){t(w,d)}}function a(){return++m}function f(t,d){d?t.$$hashKey=d:delete t.$$hashKey}function s(t,d,w){for(var A=t.$$hashKey,L=0,Z=d.length;L<Z;++L){var W=d[L];if(!(!U(W)&&!B(W)))for(var z=Object.keys(W),H=0,ne=z.length;H<ne;H++){var ie=z[H],ce=W[ie];w&&U(ce)?ue(ce)?t[ie]=new Date(ce.valueOf()):I(ce)?t[ie]=new RegExp(ce):ce.nodeName?t[ie]=ce.cloneNode(!0):Ze(ce)?t[ie]=ce.clone():ie!=="__proto__"&&(U(t[ie])||(t[ie]=G(ce)?[]:{}),s(t[ie],[ce],!0)):t[ie]=ce}}return f(t,A),t}function e(t){return s(t,xe.call(arguments,1),!1)}function r(t){return s(t,xe.call(arguments,1),!0)}function i(t){return parseInt(t,10)}var c=Number.isNaN||function(d){return d!==d};function h(t,d){return e(Object.create(t),d)}function g(){}g.$inject=[];function S(t){return t}S.$inject=[];function k(t){return function(){return t}}function M(t){return B(t.toString)&&t.toString!==_}function E(t){return typeof t=="undefined"}function x(t){return typeof t!="undefined"}function U(t){return t!==null&&typeof t=="object"}function j(t){return t!==null&&typeof t=="object"&&!K(t)}function X(t){return typeof t=="string"}function ee(t){return typeof t=="number"}function ue(t){return _.call(t)==="[object Date]"}function G(t){return Array.isArray(t)||t instanceof Array}function T(t){var d=_.call(t);switch(d){case"[object Error]":return!0;case"[object Exception]":return!0;case"[object DOMException]":return!0;default:return t instanceof Error}}function B(t){return typeof t=="function"}function I(t){return _.call(t)==="[object RegExp]"}function b(t){return t&&t.window===t}function C(t){return t&&t.$evalAsync&&t.$watch}function N(t){return _.call(t)==="[object File]"}function V(t){return _.call(t)==="[object FormData]"}function D(t){return _.call(t)==="[object Blob]"}function Y(t){return typeof t=="boolean"}function te(t){return t&&B(t.then)}var pe=/^\[object (?:Uint8|Uint8Clamped|Uint16|Uint32|Int8|Int16|Int32|Float32|Float64)Array]$/;function le(t){return t&&ee(t.length)&&pe.test(_.call(t))}function be(t){return _.call(t)==="[object ArrayBuffer]"}var we=function(t){return X(t)?t.trim():t},Be=function(t){return t.replace(/([-()[\]{}+?*.$^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")};function Ze(t){return!!(t&&(t.nodeName||t.prop&&t.attr&&t.find))}function gt(t){var d={},w=t.split(","),A;for(A=0;A<w.length;A++)d[w[A]]=!0;return d}function st(t){return Ce(t.nodeName||t[0]&&t[0].nodeName)}function _e(t,d){return Array.prototype.indexOf.call(t,d)!==-1}function Le(t,d){var w=t.indexOf(d);return w>=0&&t.splice(w,1),w}function ze(t,d,w){var A=[],L=[];if(w=ut(w)?w:NaN,d){if(le(d)||be(d))throw R("cpta","Can't copy! TypedArray destination cannot be mutated.");if(t===d)throw R("cpi","Can't copy! Source and destination are identical.");return G(d)?d.length=0:n(d,function(H,ne){ne!=="$$hashKey"&&delete d[ne]}),A.push(t),L.push(d),Z(t,d,w)}return W(t,w);function Z(H,ne,ie){if(ie--,ie<0)return"...";var ce=ne.$$hashKey,de;if(G(H))for(var Ee=0,Se=H.length;Ee<Se;Ee++)ne.push(W(H[Ee],ie));else if(j(H))for(de in H)ne[de]=W(H[de],ie);else if(H&&typeof H.hasOwnProperty=="function")for(de in H)H.hasOwnProperty(de)&&(ne[de]=W(H[de],ie));else for(de in H)fe.call(H,de)&&(ne[de]=W(H[de],ie));return f(ne,ce),ne}function W(H,ne){if(!U(H))return H;var ie=A.indexOf(H);if(ie!==-1)return L[ie];if(b(H)||C(H))throw R("cpws","Can't copy! Making copies of Window or Scope instances is not supported.");var ce=!1,de=z(H);return de===void 0&&(de=G(H)?[]:Object.create(K(H)),ce=!0),A.push(H),L.push(de),ce?Z(H,de,ne):de}function z(H){switch(_.call(H)){case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Float32Array]":case"[object Float64Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[ Line truncated
`+Ge.stack),Nr("modulerr",`Failed to instantiate module {0} due to:
{1}`,$e,Ge.stack||Ge.message||Ge)}}),ye}function Oe(He,ye){function ge(Je,lt){if(He.hasOwnProperty(Je)){if(He[Je]===w)throw Nr("cdep","Circular dependency found: {0}",Je+" <- "+L.join(" <- "));return He[Je]}else try{return L.unshift(Je),He[Je]=w,He[Je]=ye(Je,lt),He[Je]}catch(xt){throw He[Je]===w&&delete He[Je],xt}finally{L.shift()}}function $e(Je,lt,xt){for(var Tt=[],wt=di.$$annotate(Je,d,xt),It=0,Jt=wt.length;It<Jt;It++){var Yt=wt[It];if(typeof Yt!="string")throw Nr("itkn","Incorrect injection token! Expected service name as string, got {0}",Yt);Tt.push(lt&&lt.hasOwnProperty(Yt)?lt[Yt]:ge(Yt,xt))}return Tt}function ke(Je){if(Ye||typeof Je!="function")return!1;var lt=Je.$$ngIsClass;return Y(lt)||(lt=Je.$$ngIsClass=/^class\b/.test(Xi(Je))),lt}function Ge(Je,lt,xt,Tt){typeof xt=="string"&&(Tt=xt,xt=null);var wt=$e(Je,xt,Tt);return G(Je)&&(Je=Je[Je.length-1]),ke(Je)?(wt.unshift(null),new(Function.prototype.bind.apply(Je,wt))):Je.apply(lt,wt)}function at(Je,lt,xt){var Tt=G(Je)?Je[Je.length-1]:Je,wt=$e(Je,lt,xt);return wt.unshift(null),new(Function.prototype.bind.apply(Tt,wt))}return{invoke:Ge,instantiate:at,get:ge,annotate:di.$$annotate,has:function(Je){return W.hasOwnProperty(Je+A)||He.hasOwnProperty(Je)}}}}di.$$annotate=ya;function _a(){var t=!0;this.disableAutoScrolling=function(){t=!1},this.$get=["$window","$location","$rootScope",function(d,w,A){var L=d.document;function Z(ne){var ie=null;return Array.prototype.some.call(ne,function(ce){if(st(ce)==="a")return ie=ce,!0}),ie}function W(){var ne=H.yOffset;if(B(ne))ne=ne();else if(Ze(ne)){var ie=ne[0],ce=d.getComputedStyle(ie);ce.position!=="fixed"?ne=0:ne=ie.getBoundingClientRect().bottom}else ee(ne)||(ne=0);return ne}function z(ne){if(ne){ne.scrollIntoView();var ie=W();if(ie){var ce=ne.getBoundingClientRect().top;d.scrollBy(0,ce-ie)}}else d.scrollTo(0,0)}function H(ne){ne=X(ne)?ne:ee(ne)?ne.toString():w.hash();var ie;ne?(ie=L.getElementById(ne))||(ie=Z(L.getElementsByName(ne)))?z(ie):ne==="top"&&z(null):z(null)}return t&&A.$watch(function(){return w.hash()},function(ie,ce){ie===ce&&ie===""||ha(function(){A.$evalAsync(H)})}),H}]}var co=rt("$animate"),wa=1,fo="ng-animate";function $i(t,d){return!t&&!d?"":t?d?(G(t)&&(t=t.join(" ")),G(d)&&(d=d.join(" ")),t+" "+d):t:d}function ho(t){for(var d=0;d<t.length;d++){var w=t[d];if(w.nodeType===wa)return w}}function Ea(t){X(t)&&(t=t.split(" "));var d=Ft();return n(t,function(w){w.length&&(d[w]=!0)}),d}function Or(t){return U(t)?t:{}}var Sa=function(){this.$get=g},As=function(){var t=new Ki,d=[];this.$get=["$$AnimateRunner","$rootScope",function(w,A){return{enabled:g,on:g,off:g,pin:g,push:function(z,H,ne,ie){ie&&ie(),ne=ne||{},ne.from&&z.css(ne.from),ne.to&&z.css(ne.to),(ne.addClass||ne.removeClass)&&W(z,ne.addClass,ne.removeClass);var ce=new w;return ce.complete(),ce}};function L(z,H,ne){var ie=!1;return H&&(H=X(H)?H.split(" "):G(H)?H:[],n(H,function(ce){ce&&(ie=!0,z[ce]=ne)})),ie}function Z(){n(d,function(z){var H=t.get(z);if(H){var ne=Ea(z.attr("class")),ie="",ce="";n(H,function(de,Ee){var Se=!!ne[Ee];de!==Se&&(de?ie+=(ie.length?" ":"")+Ee:ce+=(ce.length?" ":"")+Ee)}),n(z,function(de){ie&&Wi(de,ie),ce&&zi(de,ce)}),t.delete(z)}}),d.length=0}function W(z,H,ne){var ie=t.get(z)||{},ce=L(ie,H,!0),de=L(ie,ne,!1);(ce||de)&&(t.set(z,ie),d.push(z),d.length===1&&A.$$postDigest(Z))}}]},xa=["$provide",function(t){var d=this,w=null,A=null;this.$$registeredAnimations=Object.create(null),this.register=function(L,Z){if(L&&L.charAt(0)!==".")throw co("notcsel","Expecting class selector starting with '.' got '{0}'.",L);var W=L+"-animation";d.$$registeredAnimations[L.substr(1)]=W,t.factory(W,Z)},this.customFilter=function(L){return arguments.length===1&&(A=B(L)?L:null),A},this.classNameFilter=function(L){if(arguments.length===1&&(w=L instanceof RegExp?L:null,w)){var Z=new RegExp("[(\\s|\\/)]"+fo+"[(\\s|\\/)]");if(Z.test(w.toString()))throw w=null,co("nongcls",'$animateProvider.classNameFilter(regex) prohibits accepting a regex value which matches/contains the "{0}" CSS class.',fo)}return w},this.$get=["$$animateQueue",function(L){function Z(W,z,H){if(H){var ne=ho(H);ne&&!ne.parentNode&&!ne.previousElementSibling&&(H=null)}H?H.after(W):z.prepend(W)}return{on:L.on,off:L.off,pin:L.pin,enabled:L.enabled,cancel:function(W){W.cancel&&W.cancel()},enter:function(W,z,H,ne){return z=z&&Re(z),H=H&&Re(H),z=z||H.parent(),Z(W,z,H),L.push(W,"enter",Or(ne))},move:function(W,z,H,ne){return z=z&&Re(z),H=H&&Re(H),z=z||H.parent(),Z(W,z,H),L.push(W,"move",Or(ne))},leave:function(W,z){return L.push(W,"leave",Or(z),function(){W.remove()})},addClass:function(W,z,H){return H=Or(H),H.addClass=$i(H.addclass,z),L.push(W,"addClass",H)},removeClass:function(W,z,H){return H=Or(H),H.removeClass=$i(H.removeClass,z),L.push(W,"removeClass",H)},setClass:function(W,z,H,ne){return ne=Or(ne),ne.addClass=$i(ne.addClass,z),ne.removeClass=$i(ne.removeClass,H),L.push(W,"setClass",ne)},animate:function(W,z,H,ne,ie){return ie=Or(ie),ie.from=ie.from?e(ie.from,z):z,ie.to=ie.to?e(ie.t Line truncated
`,nt);Ge.$apply(function(){for(var Me=0,We=Jt.length;Me<We;++Me)try{Jt[Me]()}catch(it){ye(it)}Jt=void 0})}finally{It++}}function un(Me,We){if(!Me)return Me;if(!X(Me))throw Yn("srcset",'Can\'t pass trusted values to `{0}`: "{1}"',We,Me.toString());for(var it="",dt=we(Me),$t=/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/,At=/\s/.test(dt)?$t:/(,)/,Mt=dt.split(At),an=Math.floor(Mt.length/2),Lt=0;Lt<an;Lt++){var Bt=Lt*2;it+=at.getTrustedMediaUrl(we(Mt[Bt])),it+=" "+we(Mt[Bt+1])}var Ut=we(Mt[Lt*2]).split(/\s/);return it+=at.getTrustedMediaUrl(we(Ut[0])),Ut.length===2&&(it+=" "+we(Ut[1])),it}function En(Me,We){if(We){var it=Object.keys(We),dt,$t,At;for(dt=0,$t=it.length;dt<$t;dt++)At=it[dt],this[At]=We[At]}else this.$attr={};this.$$element=Me}En.prototype={$normalize:Br,$addClass:function(Me){Me&&Me.length>0&&Je.addClass(this.$$element,Me)},$removeClass:function(Me){Me&&Me.length>0&&Je.removeClass(this.$$element,Me)},$updateClass:function(Me,We){var it=Ai(Me,We);it&&it.length&&Je.addClass(this.$$element,it);var dt=Ai(We,Me);dt&&dt.length&&Je.removeClass(this.$$element,dt)},$set:function(Me,We,it,dt){var $t=this.$$element[0],At=ui($t,Me),Mt=xi(Me),an=Me,Lt;At?(this.$$element.prop(Me,We),dt=At):Mt&&(this[Mt]=We,an=Mt),this[Me]=We,dt?this.$attr[Me]=dt:(dt=this.$attr[Me],dt||(this.$attr[Me]=dt=sn(Me,"-"))),Lt=st(this.$$element),Lt==="img"&&Me==="srcset"&&(this[Me]=We=un(We,"$set('srcset', value)")),it!==!1&&(We===null||E(We)?this.$$element.removeAttr(dt):lt.test(dt)?At&&We===!1?this.$$element.removeAttr(dt):this.$$element.attr(dt,We):An(this.$$element[0],dt,We));var Bt=this.$$observers;Bt&&n(Bt[an],function(Ut){try{Ut(We)}catch(zt){ye(zt)}})},$observe:function(Me,We){var it=this,dt=it.$$observers||(it.$$observers=Ft()),$t=dt[Me]||(dt[Me]=[]);return $t.push(We),Ge.$evalAsync(function(){!$t.$$inter&&it.hasOwnProperty(Me)&&!E(it[Me])&&We(it[Me])}),function(){Le($t,We)}}};function An(Me,We,it){xt.innerHTML="<span "+We+">";var dt=xt.firstChild.attributes,$t=dt[0];dt.removeNamedItem($t.name),$t.value=it,Me.attributes.setNamedItem($t)}function On(Me,We){try{Me.addClass(We)}catch{}}var Gn=He.startSymbol(),jn=He.endSymbol(),pr=Gn==="{{"&&jn==="}}"?S:function(We){return We.replace(/\{\{/g,Gn).replace(/}}/g,jn)},nr=/^ng(Attr|Prop|On)([A-Z].*)$/,hr=/^(.+)Start$/;return Wn.$$addBindingInfo=tt?function(We,it){var dt=We.data("$binding")||[];G(it)?dt=dt.concat(it):dt.push(it),We.data("$binding",dt)}:g,Wn.$$addBindingClass=tt?function(We){On(We,"ng-binding")}:g,Wn.$$addScopeInfo=tt?function(We,it,dt,$t){var At=dt?$t?"$isolateScopeNoTemplate":"$isolateScope":"$scope";We.data(At,it)}:g,Wn.$$addScopeClass=tt?function(We,it){On(We,it?"ng-isolate-scope":"ng-scope")}:g,Wn.$$createComment=function(Me,We){var it="";return tt&&(it=" "+(Me||"")+": ",We&&(it+=We+" ")),yt.document.createComment(it)},Wn;function Wn(Me,We,it,dt,$t){Me instanceof Re||(Me=Re(Me));var At=Li(Me,We,Me,it,dt,$t);Wn.$$addScopeClass(Me);var Mt=null;return function(Lt,Bt,Ut){if(!Me)throw Yn("multilink","This element has already been linked.");on(Lt,"scope"),$t&&$t.needsNewScope&&(Lt=Lt.$parent.$new()),Ut=Ut||{};var zt=Ut.parentBoundTranscludeFn,Ct=Ut.transcludeControllers,Qt=Ut.futureParentElement;zt&&zt.$$boundTransclude&&(zt=zt.$$boundTransclude),Mt||(Mt=Mi(Qt));var yn;if(Mt!=="html"?yn=Re(Kc(Mt,Re("<div></div>").append(Me).html())):Bt?yn=hi.clone.call(Me):yn=Me,Ct)for(var Pn in Ct)yn.data("$"+Pn+"Controller",Ct[Pn].instance);return Wn.$$addScopeInfo(yn,Lt),Bt&&Bt(yn,Lt),At&&At(Lt,yn,yn,zt),Bt||(Me=At=null),yn}}function Mi(Me){var We=Me&&Me[0];return We&&st(We)!=="foreignobject"&&_.call(We).match(/SVG/)?"svg":"html"}function Li(Me,We,it,dt,$t,At){for(var Mt=[],an=G(Me)||Me instanceof Re,Lt,Bt,Ut,zt,Ct,Qt,yn,Pn=0;Pn<Me.length;Pn++)Lt=new En,Ye===11&&Yc(Me,Pn,an),Bt=bi(Me[Pn],[],Lt,Pn===0?dt:void 0,$t),Ut=Bt.length?If(Bt,Me[Pn],Lt,We,it,null,[],[],At):null,Ut&&Ut.scope&&Wn.$$addScopeClass(Lt.$$element),Ct=Ut&&Ut.terminal||!(zt=Me[Pn].childNodes)||!zt.length?null:Li(zt,Ut?(Ut.transcludeOnThisElement||!Ut.templateOnThisElement)&&Ut.transclude:We),(Ut||Ct)&&(Mt.push(Pn,Ut,Ct),Qt=!0,yn=yn||Ut),At=null;return Qt?Rn:null;function Rn(_n,wn,Nt,Cn){var Tn,Kn,Xn,qn,Dn,mr,ir,xr,ei;if(yn){var ms=wn.length;for(ei=new Array(ms),Dn=0;Dn<Mt.length;Dn+=3)ir=Mt[Dn],ei[ir]=wn[ir]}else ei=wn;for(Dn=0,mr=Mt.length;Dn<mr;)Xn=ei[Mt[Dn++]],Tn=Mt[Dn++],Kn=Mt[Dn++],Tn?(Tn.scope?(qn=_n.$new(),Wn.$$addScopeInfo(Re(Xn),qn)):qn=_n,Tn.transcludeOnThisElement?xr=qr(_n,Tn.transclude,Cn):!Tn.templateOnThisElement&&Cn?xr=Cn:!Cn&&We?xr=qr(_n,We):xr=null,Tn(Kn,qn,Xn,Nt,xr)):Kn&&Kn(_n,Xn.childNodes,void 0,Cn)}}function Yc(Me,We,it){var dt=Me[We],$t=dt.parentNode,At;if(dt.nodeType===nn)for(;At=$t?dt.nextSibling:Me[We+1],!(!At||At.nodeType!==nn);)dt.nodeValue=dt.nodeValue+At.nodeValue,At.parentNode&&At.parentNode.removeChild(At),it&&At===Me[We+1]&&Me.splice(We+1,1)}function qr(Me,We,it){function dt(Mt,an,Lt,Bt,Ut){return Mt||(Mt=Me.$new(!1,Ut),Mt.$$transcluded=!0),We(Mt,an,{parentBoundTranscludeFn:it,transcludeController Line truncated
`),function(L){w=L.indexOf(":"),A(Ce(we(L.substr(0,w))),we(L.substr(w+1)))}):U(t)&&n(t,function(L,Z){A(Ce(Z),we(L))}),d}function Pr(t){var d;return function(w){if(d||(d=yo(t)),w){var A=d[Ce(w)];return A===void 0&&(A=null),A}return d}}function Jr(t,d,w,A){return B(A)?A(t,d,w):(n(A,function(L){t=L(t,d,w)}),t)}function ns(t){return 200<=t&&t<300}function Na(){var t=this.defaults={transformResponse:[ts],transformRequest:[function(L){return U(L)&&!N(L)&&!D(L)&&!V(L)?Pe(L):L}],headers:{common:{Accept:"application/json, text/plain, */*"},post:se(Os),put:se(Os),patch:se(Os)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",paramSerializer:"$httpParamSerializer",jsonpCallbackParam:"callback"},d=!1;this.useApplyAsync=function(L){return x(L)?(d=!!L,this):d};var w=this.interceptors=[],A=this.xsrfTrustedOrigins=[];Object.defineProperty(this,"xsrfWhitelistedOrigins",{get:function(){return this.xsrfTrustedOrigins},set:function(L){this.xsrfTrustedOrigins=L}}),this.$get=["$browser","$httpBackend","$$cookieReader","$cacheFactory","$rootScope","$q","$injector","$sce",function(L,Z,W,z,H,ne,ie,ce){var de=z("$http");t.paramSerializer=X(t.paramSerializer)?ie.get(t.paramSerializer):t.paramSerializer;var Ee=[];n(w,function(Oe){Ee.unshift(X(Oe)?ie.get(Oe):ie.invoke(Oe))});var Se=Ho(A);function tt(Oe){if(!U(Oe))throw rt("$http")("badreq","Http request configuration must be an object. Received: {0}",Oe);if(!X(ce.valueOf(Oe.url)))throw rt("$http")("badreq","Http request configuration url must be a string or a $sce trusted object. Received: {0}",Oe.url);var He=e({method:"get",transformRequest:t.transformRequest,transformResponse:t.transformResponse,paramSerializer:t.paramSerializer,jsonpCallbackParam:t.jsonpCallbackParam},Oe);He.headers=Je(Oe),He.method=$(He.method),He.paramSerializer=X(He.paramSerializer)?ie.get(He.paramSerializer):He.paramSerializer,L.$$incOutstandingRequestCount("$http");var ye=[],ge=[],$e=ne.resolve(He);return n(Ee,function(Tt){(Tt.request||Tt.requestError)&&ye.unshift(Tt.request,Tt.requestError),(Tt.response||Tt.responseError)&&ge.push(Tt.response,Tt.responseError)}),$e=ke($e,ye),$e=$e.then(lt),$e=ke($e,ge),$e=$e.finally(Ge),$e;function ke(Tt,wt){for(var It=0,Jt=wt.length;It<Jt;){var Yt=wt[It++],un=wt[It++];Tt=Tt.then(Yt,un)}return wt.length=0,Tt}function Ge(){L.$$completeOutstandingRequest(g,"$http")}function at(Tt,wt){var It,Jt={};return n(Tt,function(Yt,un){B(Yt)?(It=Yt(wt),It!=null&&(Jt[un]=It)):Jt[un]=Yt}),Jt}function Je(Tt){var wt=t.headers,It=e({},Tt.headers),Jt,Yt,un;wt=e({},wt.common,wt[Ce(Tt.method)]);e:for(Jt in wt){Yt=Ce(Jt);for(un in It)if(Ce(un)===Yt)continue e;It[Jt]=wt[Jt]}return at(It,se(Tt))}function lt(Tt){var wt=Tt.headers,It=Jr(Tt.data,Pr(wt),void 0,Tt.transformRequest);return E(It)&&n(wt,function(Jt,Yt){Ce(Yt)==="content-type"&&delete wt[Yt]}),E(Tt.withCredentials)&&!E(t.withCredentials)&&(Tt.withCredentials=t.withCredentials),et(Tt,It).then(xt,xt)}function xt(Tt){var wt=e({},Tt);return wt.data=Jr(Tt.data,Tt.headers,Tt.status,He.transformResponse),ns(Tt.status)?wt:ne.reject(wt)}}return tt.pendingRequests=[],mt("get","delete","head","jsonp"),nt("post","put","patch"),tt.defaults=t,tt;function mt(Oe){n(arguments,function(He){tt[He]=function(ye,ge){return tt(e({},ge||{},{method:He,url:ye}))}})}function nt(Oe){n(arguments,function(He){tt[He]=function(ye,ge,$e){return tt(e({},$e||{},{method:He,url:ye,data:ge}))}})}function et(Oe,He){var ye=ne.defer(),ge=ye.promise,$e,ke,Ge=Oe.headers,at=Ce(Oe.method)==="jsonp",Je=Oe.url;if(at?Je=ce.getTrustedResourceUrl(Je):X(Je)||(Je=ce.valueOf(Je)),Je=Qe(Je,Oe.paramSerializer(Oe.params)),at&&(Je=ot(Je,Oe.jsonpCallbackParam)),tt.pendingRequests.push(Oe),ge.then(Jt,Jt),(Oe.cache||t.cache)&&Oe.cache!==!1&&(Oe.method==="GET"||Oe.method==="JSONP")&&($e=U(Oe.cache)?Oe.cache:U(t.cache)?t.cache:de),$e&&(ke=$e.get(Je),x(ke)?te(ke)?ke.then(It,It):G(ke)?wt(ke[1],ke[0],se(ke[2]),ke[3],ke[4]):wt(ke,200,{},"OK","complete"):$e.put(Je,ge)),E(ke)){var lt=Se(Oe.url)?W()[Oe.xsrfCookieName||t.xsrfCookieName]:void 0;lt&&(Ge[Oe.xsrfHeaderName||t.xsrfHeaderName]=lt),Z(Oe.method,Je,He,Tt,Ge,Oe.timeout,Oe.withCredentials,Oe.responseType,xt(Oe.eventHandlers),xt(Oe.uploadEventHandlers))}return ge;function xt(Yt){if(Yt){var un={};return n(Yt,function(En,An){un[An]=function(On){d?H.$applyAsync(Gn):H.$$phase?Gn():H.$apply(Gn);function Gn(){En(On)}}}),un}}function Tt(Yt,un,En,An,On){$e&&(ns(Yt)?$e.put(Je,[Yt,un,yo(En),An,On]):$e.remove(Je));function Gn(){wt(un,Yt,En,An,On)}d?H.$applyAsync(Gn):(Gn(),H.$$phase||H.$apply())}function wt(Yt,un,En,An,On){un=un>=-1?un:0,(ns(un)?ye.resolve:ye.reject)({data:Yt,status:un,headers:Pr(En),config:Oe,statusText:An,xhrStatus:On})}function It(Yt){wt(Yt.data,Yt.status,se(Yt.headers()),Yt.statusText,Yt.xhrStatus)}function Jt(){var Yt=tt.pendingRequests.indexOf(Oe);Yt!==-1&&tt.pendingRequests.splice(Yt,1)}}function Qe(Oe,He){return He.length>0&&(Oe+=(Oe.indexOf("?")===-1?"?":"&")+He),Oe}function ot(Oe,He){var ye=Oe.split("?");if(ye.length>2)throw es("b Line truncated
Strict Contextual Escaping disallows interpolations that concatenate multiple expressions when a trusted value is required. See http://docs.angularjs.org/api/ng.$sce`,t)},ri.interr=function(t,d){return ri("interr",`Can't interpolate: {0}
{1}`,t,d.toString())};function Eo(){var t="{{",d="}}";this.startSymbol=function(w){return w?(t=w,this):t},this.endSymbol=function(w){return w?(d=w,this):d},this.$get=["$parse","$exceptionHandler","$sce",function(w,A,L){var Z=t.length,W=d.length,z=new RegExp(t.replace(/./g,ne),"g"),H=new RegExp(d.replace(/./g,ne),"g");function ne(Ee){return"\\\\\\"+Ee}function ie(Ee){return Ee.replace(z,t).replace(H,d)}function ce(Ee,Se,tt,mt){var nt=Ee.$watch(function(Qe){return nt(),mt(Qe)},Se,tt);return nt}function de(Ee,Se,tt,mt){var nt=tt===L.URL||tt===L.MEDIA_URL;if(!Ee.length||Ee.indexOf(t)===-1){if(Se)return;var et=ie(Ee);nt&&(et=L.getTrusted(tt,et));var Qe=k(et);return Qe.exp=Ee,Qe.expressions=[],Qe.$$watchDelegate=ce,Qe}mt=!!mt;for(var ot,Oe,He=0,ye=[],ge,$e=Ee.length,ke,Ge=[],at=[],Je;He<$e;)if((ot=Ee.indexOf(t,He))!==-1&&(Oe=Ee.indexOf(d,ot+Z))!==-1)He!==ot&&Ge.push(ie(Ee.substring(He,ot))),ke=Ee.substring(ot+Z,Oe),ye.push(ke),He=Oe+W,at.push(Ge.length),Ge.push("");else{He!==$e&&Ge.push(ie(Ee.substring(He)));break}Je=Ge.length===1&&at.length===1;var lt=nt&&Je?void 0:Tt;if(ge=ye.map(function(wt){return w(wt,lt)}),!Se||ye.length){var xt=function(wt){for(var It=0,Jt=ye.length;It<Jt;It++){if(mt&&E(wt[It]))return;Ge[at[It]]=wt[It]}return nt?L.getTrusted(tt,Je?Ge[0]:Ge.join("")):(tt&&Ge.length>1&&ri.throwNoconcat(Ee),Ge.join(""))};return e(function(It){var Jt=0,Yt=ye.length,un=new Array(Yt);try{for(;Jt<Yt;Jt++)un[Jt]=ge[Jt](It);return xt(un)}catch(En){A(ri.interr(Ee,En))}},{exp:Ee,expressions:ye,$$watchDelegate:function(wt,It){var Jt;return wt.$watchGroup(ge,function(un,En){var An=xt(un);It.call(this,An,un!==En?Jt:An,wt),Jt=An})}})}function Tt(wt){try{return wt=tt&&!nt?L.getTrusted(tt,wt):L.valueOf(wt),mt&&!x(wt)?wt:ln(wt)}catch(It){A(ri.interr(Ee,It))}}}return de.startSymbol=function(){return t},de.endSymbol=function(){return d},de}]}var ja=rt("$interval");function Ha(){this.$get=["$$intervalFactory","$window",function(t,d){var w={},A=function(W,z,H){var ne=d.setInterval(W,z);return w[ne]=H,ne},L=function(W){d.clearInterval(W),delete w[W]},Z=t(A,L);return Z.cancel=function(W){if(!W)return!1;if(!W.hasOwnProperty("$$intervalId"))throw ja("badprom","`$interval.cancel()` called with a promise that was not generated by `$interval()`.");if(!w.hasOwnProperty(W.$$intervalId))return!1;var z=W.$$intervalId,H=w[z];return ss(H.promise),H.reject("canceled"),L(z),!0},Z}]}function za(){this.$get=["$browser","$q","$$q","$rootScope",function(t,d,w,A){return function(Z,W){return function(H,ne,ie,ce){var de=arguments.length>4,Ee=de?J(arguments,4):[],Se=0,tt=x(ce)&&!ce,mt=(tt?w:d).defer(),nt=mt.promise;ie=x(ie)?ie:0;function et(){de?H.apply(null,Ee):H(Se)}function Qe(){tt?t.defer(et):A.$evalAsync(et),mt.notify(Se++),ie>0&&Se>=ie&&(mt.resolve(Se),W(nt.$$intervalId)),tt||A.$apply()}return nt.$$intervalId=Z(Qe,ne,mt,tt),nt}}}]}var Wa=function(){this.$get=function(){var t=l.callbacks,d={};function w(A){var L=function(Z){L.data=Z,L.called=!0};return L.id=A,L}return{createCallback:function(A){var L="_"+(t.$$counter++).toString(36),Z="angular.callbacks."+L,W=w(L);return d[Z]=t[L]=W,Z},wasCalled:function(A){return d[A].called},getResponse:function(A){return d[A].data},removeCallback:function(A){var L=d[A];delete t[L.id],delete d[A]}}}},Va=/^([^?#]*)(\?([^#]*))?(#(.*))?$/,Ya={http:80,https:443,ftp:21},Ci=rt("$location");function Ga(t){for(var d=t.split("/"),w=d.length;w--;)d[w]=Vt(d[w].replace(/%2F/g,"/"));return d.join("/")}function qa(t,d){for(var w=t.split("/"),A=w.length;A--;)w[A]=decodeURIComponent(w[A]),d&&(w[A]=w[A].replace(/\//g,"%2F"));return w.join("/")}function Ka(t,d,w){var A=Et(d),L=w?"#"+Vt(w):"",Z=Ga(t);return Z+(A?"?"+A:"")+L}function So(t,d){var w=St(t);d.$$protocol=w.protocol,d.$$host=w.hostname,d.$$port=i(w.port)||Ya[w.protocol]||null}var Xa=/^\s*[\\/]{2,}/;function xo(t,d,w){if(Xa.test(t))throw Ci("badpath",'Invalid url "{0}".',t);var A=t.charAt(0)!=="/";A&&(t="/"+t);var L=St(t),Z=A&&L.pathname.charAt(0)==="/"?L.pathname.substring(1):L.pathname;d.$$path=qa(Z,w),d.$$search=vn(L.search),d.$$hash=decodeURIComponent(L.hash),d.$$path&&d.$$path.charAt(0)!=="/"&&(d.$$path="/"+d.$$path)}function Ds(t,d){return t.slice(0,d.length)===d}function Dr(t,d){if(Ds(d,t))return d.substr(t.length)}function ii(t){var d=t.indexOf("#");return d===-1?t:t.substr(0,d)}function Za(t){return t.substr(0,ii(t).lastIndexOf("/")+1)}function Ja(t){return t.substring(0,t.indexOf("/",t.indexOf("//")+2))}function Ms(t,d,w){this.$$html5=!0,w=w||"",So(t,this),this.$$parse=function(A){var L=Dr(d,A);if(!X(L))throw Ci("ipthprfx",'Invalid url "{0}", missing path prefix "{1}".',A,d);xo(L,this,!0),this.$$path||(this.$$path="/"),this.$$compose()},this.$$normalizeUrl=function(A){return d+A.substr(1)},this.$$parseLinkUrl=function(A,L){if(L&&L[0]==="#")return this.hash(L.slice(1)),!0;var Z,W,z;return x(Z=Dr(t,A))?(W=Z,w&&x(Z=Dr(w,Z))?z=d+(Dr("/",Z)||Z):z=t+W):x(Z=Dr(d,A))?z=d+Z:d===A+"/"&&(z=d),z&&this.$$parse(z),!!z}}function Ls(t,d,w){So(t,this),this.$$parse=function(A) Line truncated
`+W.stack:W.stack:W.sourceURL&&(W=W.message+`
`+W.sourceURL+":"+W.line)),W}function Z(W){var z=w.console||{},H=z[W]||z.log||g;return function(){var ne=[];return n(arguments,function(ie){ne.push(L(ie))}),Function.prototype.apply.call(H,z,ne)}}}]}var Gr=rt("$parse"),li={}.constructor.prototype.valueOf;function Ri(t){return t+""}var Ii=Ft();n("+ - * / % === !== == != < > <= >= && || ! = |".split(" "),function(t){Ii[t]=!0});var pi={n:`
`,f:"\f",r:"\r",t:" ",v:"\v","'":"'",'"':'"'},Oi=function(d){this.options=d};Oi.prototype={constructor:Oi,lex:function(t){for(this.text=t,this.index=0,this.tokens=[];this.index<this.text.length;){var d=this.text.charAt(this.index);if(d==='"'||d==="'")this.readString(d);else if(this.isNumber(d)||d==="."&&this.isNumber(this.peek()))this.readNumber();else if(this.isIdentifierStart(this.peekMultichar()))this.readIdent();else if(this.is(d,"(){}[].,;:?"))this.tokens.push({index:this.index,text:d}),this.index++;else if(this.isWhitespace(d))this.index++;else{var w=d+this.peek(),A=w+this.peek(2),L=Ii[d],Z=Ii[w],W=Ii[A];if(L||Z||W){var z=W?A:Z?w:d;this.tokens.push({index:this.index,text:z,operator:!0}),this.index+=z.length}else this.throwError("Unexpected next character ",this.index,this.index+1)}}return this.tokens},is:function(t,d){return d.indexOf(t)!==-1},peek:function(t){var d=t||1;return this.index+d<this.text.length?this.text.charAt(this.index+d):!1},isNumber:function(t){return"0"<=t&&t<="9"&&typeof t=="string"},isWhitespace:function(t){return t===" "||t==="\r"||t===" "||t===`
`||t==="\v"||t==="\xA0"},isIdentifierStart:function(t){return this.options.isIdentifierStart?this.options.isIdentifierStart(t,this.codePointAt(t)):this.isValidIdentifierStart(t)},isValidIdentifierStart:function(t){return"a"<=t&&t<="z"||"A"<=t&&t<="Z"||t==="_"||t==="$"},isIdentifierContinue:function(t){return this.options.isIdentifierContinue?this.options.isIdentifierContinue(t,this.codePointAt(t)):this.isValidIdentifierContinue(t)},isValidIdentifierContinue:function(t,d){return this.isValidIdentifierStart(t,d)||this.isNumber(t)},codePointAt:function(t){return t.length===1?t.charCodeAt(0):(t.charCodeAt(0)<<10)+t.charCodeAt(1)-56613888},peekMultichar:function(){var t=this.text.charAt(this.index),d=this.peek();if(!d)return t;var w=t.charCodeAt(0),A=d.charCodeAt(0);return w>=55296&&w<=56319&&A>=56320&&A<=57343?t+d:t},isExpOperator:function(t){return t==="-"||t==="+"||this.isNumber(t)},throwError:function(t,d,w){w=w||this.index;var A=x(d)?"s "+d+"-"+this.index+" ["+this.text.substring(d,w)+"]":" "+w;throw Gr("lexerr","Lexer Error: {0} at column{1} in expression [{2}].",t,A,this.text)},readNumber:function(){for(var t="",d=this.index;this.index<this.text.length;){var w=Ce(this.text.charAt(this.index));if(w==="."||this.isNumber(w))t+=w;else{var A=this.peek();if(w==="e"&&this.isExpOperator(A))t+=w;else if(this.isExpOperator(w)&&A&&this.isNumber(A)&&t.charAt(t.length-1)==="e")t+=w;else if(this.isExpOperator(w)&&(!A||!this.isNumber(A))&&t.charAt(t.length-1)==="e")this.throwError("Invalid exponent");else break}this.index++}this.tokens.push({index:d,text:t,constant:!0,value:Number(t)})},readIdent:function(){var t=this.index;for(this.index+=this.peekMultichar().length;this.index<this.text.length;){var d=this.peekMultichar();if(!this.isIdentifierContinue(d))break;this.index+=d.length}this.tokens.push({index:t,text:this.text.slice(t,this.index),identifier:!0})},readString:function(t){var d=this.index;this.index++;for(var w="",A=t,L=!1;this.index<this.text.length;){var Z=this.text.charAt(this.index);if(A+=Z,L){if(Z==="u"){var W=this.text.substring(this.index+1,this.index+5);W.match(/[\da-f]{4}/i)||this.throwError("Invalid unicode escape [\\u"+W+"]"),this.index+=4,w+=String.fromCharCode(parseInt(W,16))}else{var z=pi[Z];w=w+(z||Z)}L=!1}else if(Z==="\\")L=!0;else if(Z===t){this.index++,this.tokens.push({index:d,text:A,constant:!0,value:w});return}else w+=Z;this.index++}this.throwError("Unterminated quote",d)}};var kt=function(d,w){this.lexer=d,this.options=w};kt.Program="Program",kt.ExpressionStatement="ExpressionStatement",kt.AssignmentExpression="AssignmentExpression",kt.ConditionalExpression="ConditionalExpression",kt.LogicalExpression="LogicalExpression",kt.BinaryExpression="BinaryExpression",kt.UnaryExpression="UnaryExpression",kt.CallExpression="CallExpression",kt.MemberExpression="MemberExpression",kt.Identifier="Identifier",kt.Literal="Literal",kt.ArrayExpression="ArrayExpression",kt.Property="Property",kt.ObjectExpression="ObjectExpression",kt.ThisExpression="ThisExpression",kt.LocalsExpression="LocalsExpression",kt.NGValueParameter="NGValueParameter",kt.prototype={ast:function(t){this.text=t,this.tokens=this.lexer.lex(t);var d=this.program();return this.tokens.length!==0&&this.throwError("is an unexpected token",this.tokens[0]),d},program:function(){for(var t=[];;)if(this.tokens.length>0&&!this.peek("}",")",";","]")&&t.push(this.expressionStatement()),!this.expect(";"))return{type:kt.Program,body:t}},expressionStatement:function(){return{type:kt.ExpressionStatement,expression:this.filterChain()}},filterChain:function(){for(var t=this.expression();this.expect("|");)t=this.filter(t);return t},expression:function(){return this.assignment()},assignment:function(){var t=this.ternary();if(this.expect("=")){if(!Oo(t))throw Gr("lval","Trying to assign a value to a non l-value");t={type:kt.AssignmentExpression,left:t,right:this.assignment(),operator:"="}}return t},ternary:function(){var t=this.logicalOR(),d,w;return this.expect("?")&&(d=this.expression(),this.consume(":"))?(w=this.expression(),{type:kt.ConditionalExpression,test:t,alternate:d,consequent:w}):t},logicalOR:function(){for(var t=this.logicalAND();this.expect("||");)t={type:kt.LogicalExpression,operator:"||",left:t,right:this.logicalAND()};return t},logicalAND:function(){for(var t=this.equality();this.expect("&&");)t={type:kt.LogicalExpression,operator:"&&",left:t,right:this.equality()};return t},equality:function(){for(var t=this.relational(),d;d=this.expect("==","!=","===","!==");)t={type:kt.BinaryExpression,operator:d.text,left:t,right:this.relational()};return t},relational:function(){for(var t=this.additive(),d;d=this.expect("<",">","<=",">=");)t={type:kt.BinaryExpression,operator:d.text,left:t,right:this.additive()};return t},additive:function(){for(var t=this.multiplicative(),d;d=this.expect("+","-");)t={type:kt.BinaryExpression,operator:d.text,left:t,right:this.multiplicative()};return t},multiplicative:function(){for(var t=this.unary(),d;d=this.expect("*" Line truncated
`+this.filterPrefix()+"var fn="+this.generateFunction("fn","s,l,a,i")+w+this.watchFns()+"return fn;",z=new Function("$filter","getStringValue","ifDefined","plus",W)(this.$filter,Ri,ec,To);return this.state=this.stage=void 0,z},USE:"use",STRICT:"strict",watchFns:function(){var t=[],d=this.state.inputs,w=this;return n(d,function(A){t.push("var "+A.name+"="+w.generateFunction(A.name,"s")),A.isPure&&t.push(A.name,".isPure="+JSON.stringify(A.isPure)+";")}),d.length&&t.push("fn.inputs=["+d.map(function(A){return A.name}).join(",")+"];"),t.join("")},generateFunction:function(t,d){return"function("+d+"){"+this.varsPrefix(t)+this.body(t)+"};"},filterPrefix:function(){var t=[],d=this;return n(this.state.filters,function(w,A){t.push(w+"=$filter("+d.escape(A)+")")}),t.length?"var "+t.join(",")+";":""},varsPrefix:function(t){return this.state[t].vars.length?"var "+this.state[t].vars.join(",")+";":""},body:function(t){return this.state[t].body.join("")},recurse:function(t,d,w,A,L,Z){var W,z,H=this,ne,ie,ce;if(A=A||g,!Z&&x(t.watchId)){d=d||this.nextId(),this.if_("i",this.lazyAssign(d,this.computedMember("i",t.watchId)),this.lazyRecurse(t,d,w,A,L,!0));return}switch(t.type){case kt.Program:n(t.body,function(de,Ee){H.recurse(de.expression,void 0,void 0,function(Se){z=Se}),Ee!==t.body.length-1?H.current().body.push(z,";"):H.return_(z)});break;case kt.Literal:ie=this.escape(t.value),this.assign(d,ie),A(d||ie);break;case kt.UnaryExpression:this.recurse(t.argument,void 0,void 0,function(de){z=de}),ie=t.operator+"("+this.ifDefined(z,0)+")",this.assign(d,ie),A(ie);break;case kt.BinaryExpression:this.recurse(t.left,void 0,void 0,function(de){W=de}),this.recurse(t.right,void 0,void 0,function(de){z=de}),t.operator==="+"?ie=this.plus(W,z):t.operator==="-"?ie=this.ifDefined(W,0)+t.operator+this.ifDefined(z,0):ie="("+W+")"+t.operator+"("+z+")",this.assign(d,ie),A(ie);break;case kt.LogicalExpression:d=d||this.nextId(),H.recurse(t.left,d),H.if_(t.operator==="&&"?d:H.not(d),H.lazyRecurse(t.right,d)),A(d);break;case kt.ConditionalExpression:d=d||this.nextId(),H.recurse(t.test,d),H.if_(d,H.lazyRecurse(t.alternate,d),H.lazyRecurse(t.consequent,d)),A(d);break;case kt.Identifier:d=d||this.nextId(),w&&(w.context=H.stage==="inputs"?"s":this.assign(this.nextId(),this.getHasOwnProperty("l",t.name)+"?l:s"),w.computed=!1,w.name=t.name),H.if_(H.stage==="inputs"||H.not(H.getHasOwnProperty("l",t.name)),function(){H.if_(H.stage==="inputs"||"s",function(){L&&L!==1&&H.if_(H.isNull(H.nonComputedMember("s",t.name)),H.lazyAssign(H.nonComputedMember("s",t.name),"{}")),H.assign(d,H.nonComputedMember("s",t.name))})},d&&H.lazyAssign(d,H.nonComputedMember("l",t.name))),A(d);break;case kt.MemberExpression:W=w&&(w.context=this.nextId())||this.nextId(),d=d||this.nextId(),H.recurse(t.object,W,void 0,function(){H.if_(H.notNull(W),function(){t.computed?(z=H.nextId(),H.recurse(t.property,z),H.getStringValue(z),L&&L!==1&&H.if_(H.not(H.computedMember(W,z)),H.lazyAssign(H.computedMember(W,z),"{}")),ie=H.computedMember(W,z),H.assign(d,ie),w&&(w.computed=!0,w.name=z)):(L&&L!==1&&H.if_(H.isNull(H.nonComputedMember(W,t.property.name)),H.lazyAssign(H.nonComputedMember(W,t.property.name),"{}")),ie=H.nonComputedMember(W,t.property.name),H.assign(d,ie),w&&(w.computed=!1,w.name=t.property.name))},function(){H.assign(d,"undefined")}),A(d)},!!L);break;case kt.CallExpression:d=d||this.nextId(),t.filter?(z=H.filter(t.callee.name),ne=[],n(t.arguments,function(de){var Ee=H.nextId();H.recurse(de,Ee),ne.push(Ee)}),ie=z+"("+ne.join(",")+")",H.assign(d,ie),A(d)):(z=H.nextId(),W={},ne=[],H.recurse(t.callee,z,W,function(){H.if_(H.notNull(z),function(){n(t.arguments,function(de){H.recurse(de,t.constant?void 0:H.nextId(),void 0,function(Ee){ne.push(Ee)})}),W.name?ie=H.member(W.context,W.name,W.computed)+"("+ne.join(",")+")":ie=z+"("+ne.join(",")+")",H.assign(d,ie)},function(){H.assign(d,"undefined")}),A(d)}));break;case kt.AssignmentExpression:z=this.nextId(),W={},this.recurse(t.left,void 0,W,function(){H.if_(H.notNull(W.context),function(){H.recurse(t.right,z),ie=H.member(W.context,W.name,W.computed)+t.operator+z,H.assign(d,ie),A(d||ie)})},1);break;case kt.ArrayExpression:ne=[],n(t.elements,function(de){H.recurse(de,t.constant?void 0:H.nextId(),void 0,function(Ee){ne.push(Ee)})}),ie="["+ne.join(",")+"]",this.assign(d,ie),A(d||ie);break;case kt.ObjectExpression:ne=[],ce=!1,n(t.properties,function(de){de.computed&&(ce=!0)}),ce?(d=d||this.nextId(),this.assign(d,"{}"),n(t.properties,function(de){de.computed?(W=H.nextId(),H.recurse(de.key,W)):W=de.key.type===kt.Identifier?de.key.name:""+de.key.value,z=H.nextId(),H.recurse(de.value,z),H.assign(H.member(d,W,de.computed),z)})):(n(t.properties,function(de){H.recurse(de.value,t.constant?void 0:H.nextId(),void 0,function(Ee){ne.push(H.escape(de.key.type===kt.Identifier?de.key.name:""+de.key.value)+":"+Ee)})}),ie="{"+ne.join(",")+"}",this.assign(d,ie)),A(d||ie);break;case kt.ThisExpression:this.assign(d,"s"),A(d||"s");break;case kt.LocalsExpression:this.a Line truncated
Watchers fired in the last 5 iterations: {1}`,t,It)}while(Je||de.length);for(nt();tt<Ee.length;)try{Ee[tt++]()}catch(En){Z(En)}Ee.length=tt=0,z.$$checkUrlChange()},$suspend:function(){this.$$suspended=!0},$isSuspended:function(){return this.$$suspended},$resume:function(){this.$$suspended=!1},$destroy:function(){if(!this.$$destroyed){var ye=this.$parent;this.$broadcast("$destroy"),this.$$destroyed=!0,this===ce&&z.$$applicationDestroyed(),et(this,-this.$$watchersCount);for(var ge in this.$$listenerCount)Qe(this,this.$$listenerCount[ge],ge);ye&&ye.$$childHead===this&&(ye.$$childHead=this.$$nextSibling),ye&&ye.$$childTail===this&&(ye.$$childTail=this.$$prevSibling),this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling),this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling),this.$destroy=this.$digest=this.$apply=this.$evalAsync=this.$applyAsync=g,this.$on=this.$watch=this.$watchGroup=function(){return g},this.$$listeners={},this.$$nextSibling=null,ne(this)}},$eval:function(ye,ge){return W(ye)(this,ge)},$evalAsync:function(ye,ge){!ce.$$phase&&!de.length&&z.defer(function(){de.length&&ce.$digest()},null,"$evalAsync"),de.push({scope:this,fn:W(ye),locals:ge})},$$postDigest:function(ye){Ee.push(ye)},$apply:function(ye){try{mt("$apply");try{return this.$eval(ye)}finally{nt()}}catch(ge){Z(ge)}finally{try{ce.$digest()}catch(ge){throw Z(ge),ge}}},$applyAsync:function(ye){var ge=this;ye&&Se.push($e),ye=W(ye),He();function $e(){ge.$eval(ye)}},$on:function(ye,ge){var $e=this.$$listeners[ye];$e||(this.$$listeners[ye]=$e=[]),$e.push(ge);var ke=this;do ke.$$listenerCount[ye]||(ke.$$listenerCount[ye]=0),ke.$$listenerCount[ye]++;while(ke=ke.$parent);var Ge=this;return function(){var at=$e.indexOf(ge);at!==-1&&(delete $e[at],Qe(Ge,1,ye))}},$emit:function(ye,ge){var $e=[],ke,Ge=this,at=!1,Je={name:ye,targetScope:Ge,stopPropagation:function(){at=!0},preventDefault:function(){Je.defaultPrevented=!0},defaultPrevented:!1},lt=F([Je],arguments,1),xt,Tt;do{for(ke=Ge.$$listeners[ye]||$e,Je.currentScope=Ge,xt=0,Tt=ke.length;xt<Tt;xt++){if(!ke[xt]){ke.splice(xt,1),xt--,Tt--;continue}try{ke[xt].apply(null,lt)}catch(wt){Z(wt)}}if(at)break;Ge=Ge.$parent}while(Ge);return Je.currentScope=null,Je},$broadcast:function(ye,ge){var $e=this,ke=$e,Ge=$e,at={name:ye,targetScope:$e,preventDefault:function(){at.defaultPrevented=!0},defaultPrevented:!1};if(!$e.$$listenerCount[ye])return at;for(var Je=F([at],arguments,1),lt,xt,Tt;ke=Ge;){for(at.currentScope=ke,lt=ke.$$listeners[ye]||[],xt=0,Tt=lt.length;xt<Tt;xt++){if(!lt[xt]){lt.splice(xt,1),xt--,Tt--;continue}try{lt[xt].apply(null,Je)}catch(wt){Z(wt)}}if(!(Ge=ke.$$listenerCount[ye]&&ke.$$childHead||ke!==$e&&ke.$$nextSibling))for(;ke!==$e&&!(Ge=ke.$$nextSibling);)ke=ke.$parent}return at.currentScope=null,at}};var ce=new ie,de=ce.$$asyncQueue=[],Ee=ce.$$postDigestQueue=[],Se=ce.$$applyAsyncQueue=[],tt=0;return ce;function mt(ye){if(ce.$$phase)throw d("inprog","{0} already in progress",ce.$$phase);ce.$$phase=ye}function nt(){ce.$$phase=null}function et(ye,ge){do ye.$$watchersCount+=ge;while(ye=ye.$parent)}function Qe(ye,ge,$e){do ye.$$listenerCount[$e]-=ge,ye.$$listenerCount[$e]===0&&delete ye.$$listenerCount[$e];while(ye=ye.$parent)}function ot(){}function Oe(){for(;Se.length;)try{Se.shift()()}catch(ye){Z(ye)}A=null}function He(){A===null&&(A=z.defer(function(){ce.$apply(Oe)},null,"$applyAsync"))}}]}function hc(){var t=/^\s*(https?|s?ftp|mailto|tel|file):/,d=/^\s*((https?|ftp|file|blob):|data:image\/)/;this.aHrefSanitizationTrustedUrlList=function(w){return x(w)?(t=w,this):t},this.imgSrcSanitizationTrustedUrlList=function(w){return x(w)?(d=w,this):d},this.$get=function(){return function(A,L){var Z=L?d:t,W=St(A&&A.trim()).href;return W!==""&&!W.match(Z)?"unsafe:"+W:A}}}var Fr=rt("$sce"),Nn={HTML:"html",CSS:"css",MEDIA_URL:"mediaUrl",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},uc=/_([a-z])/g;function Fs(t){return t.replace(uc,yr)}function dc(t){if(t==="self")return t;if(X(t)){if(t.indexOf("***")>-1)throw Fr("iwcard","Illegal sequence *** in string matcher. String: {0}",t);return t=Be(t).replace(/\\\*\\\*/g,".*").replace(/\\\*/g,"[^:/.?&;]*"),new RegExp("^"+t+"$")}else{if(I(t))return new RegExp("^"+t.source+"$");throw Fr("imatcher",'Matchers may only be "self", string patterns or RegExp objects')}}function Uo(t){var d=[];return x(t)&&n(t,function(w){d.push(dc(w))}),d}function lc(){this.SCE_CONTEXTS=Nn;var t=["self"],d=[];this.trustedResourceUrlList=function(w){return arguments.length&&(t=Uo(w)),t},Object.defineProperty(this,"resourceUrlWhitelist",{get:function(){return this.trustedResourceUrlList},set:function(w){this.trustedResourceUrlList=w}}),this.bannedResourceUrlList=function(w){return arguments.length&&(d=Uo(w)),d},Object.defineProperty(this,"resourceUrlBlacklist",{get:function(){return this.bannedResourceUrlList},set:function(w){this.bannedResourceUrlList=w}}),this.$get=["$injector","$$sanitizeUri",function(w,A){var L=function(Se){throw Fr("unsafe","Attempting Line truncated
[`+De+"] ";for(ht in arguments[0])qe(arguments[0],ht)&&(he+=ht+": "+arguments[0][ht]+", ");he=he.slice(0,-2)}else he=arguments[De];re.push(he)}n(v+`
Arguments: `+Array.prototype.slice.call(re).join("")+`
`+new Error().stack),Q=!1}return O.apply(this,arguments)},O)}var o={};function a(v,O){Ke.deprecationHandler!=null&&Ke.deprecationHandler(v,O),o[v]||(n(O),o[v]=!0)}Ke.suppressDeprecationWarnings=!1,Ke.deprecationHandler=null;function f(v){return typeof Function!="undefined"&&v instanceof Function||Object.prototype.toString.call(v)==="[object Function]"}function s(v){var O,Q;for(Q in v)qe(v,Q)&&(O=v[Q],f(O)?this[Q]=O:this["_"+Q]=O);this._config=v,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)}function e(v,O){var Q=Re({},v),re;for(re in O)qe(O,re)&&(rt(v[re])&&rt(O[re])?(Q[re]={},Re(Q[re],v[re]),Re(Q[re],O[re])):O[re]!=null?Q[re]=O[re]:delete Q[re]);for(re in v)qe(v,re)&&!qe(O,re)&&rt(v[re])&&(Q[re]=Re({},Q[re]));return Q}function r(v){v!=null&&this.set(v)}var i;Object.keys?i=Object.keys:i=function(v){var O,Q=[];for(O in v)qe(v,O)&&Q.push(O);return Q};var c={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"};function h(v,O,Q){var re=this._calendar[v]||this._calendar.sameElse;return f(re)?re.call(O,Q):re}function g(v,O,Q){var re=""+Math.abs(v),he=O-re.length,De=v>=0;return(De?Q?"+":"":"-")+Math.pow(10,Math.max(0,he)).toString().substr(1)+re}var S=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,k=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,M={},E={};function x(v,O,Q,re){var he=re;typeof re=="string"&&(he=function(){return this[re]()}),v&&(E[v]=he),O&&(E[O[0]]=function(){return g(he.apply(this,arguments),O[1],O[2])}),Q&&(E[Q]=function(){return this.localeData().ordinal(he.apply(this,arguments),v)})}function U(v){return v.match(/\[[\s\S]/)?v.replace(/^\[|\]$/g,""):v.replace(/\\/g,"")}function j(v){var O=v.match(S),Q,re;for(Q=0,re=O.length;Q<re;Q++)E[O[Q]]?O[Q]=E[O[Q]]:O[Q]=U(O[Q]);return function(he){var De="",ht;for(ht=0;ht<re;ht++)De+=f(O[ht])?O[ht].call(he,v):O[ht];return De}}function X(v,O){return v.isValid()?(O=ee(O,v.localeData()),M[O]=M[O]||j(O),M[O](v)):v.localeData().invalidDate()}function ee(v,O){var Q=5;function re(he){return O.longDateFormat(he)||he}for(k.lastIndex=0;Q>=0&&k.test(v);)v=v.replace(k,re),k.lastIndex=0,Q-=1;return v}var ue={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};function G(v){var O=this._longDateFormat[v],Q=this._longDateFormat[v.toUpperCase()];return O||!Q?O:(this._longDateFormat[v]=Q.match(S).map(function(re){return re==="MMMM"||re==="MM"||re==="DD"||re==="dddd"?re.slice(1):re}).join(""),this._longDateFormat[v])}var T="Invalid date";function B(){return this._invalidDate}var I="%d",b=/\d{1,2}/;function C(v){return this._ordinal.replace("%d",v)}var N={future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function V(v,O,Q,re){var he=this._relativeTime[Q];return f(he)?he(v,O,Q,re):he.replace(/%d/i,v)}function D(v,O){var Q=this._relativeTime[v>0?"future":"past"];return f(Q)?Q(O):Q.replace(/%s/i,O)}var Y={D:"date",dates:"date",date:"date",d:"day",days:"day",day:"day",e:"weekday",weekdays:"weekday",weekday:"weekday",E:"isoWeekday",isoweekdays:"isoWeekday",isoweekday:"isoWeekday",DDD:"dayOfYear",dayofyears:"dayOfYear",dayofyear:"dayOfYear",h:"hour",hours:"hour",hour:"hour",ms:"millisecond",milliseconds:"millisecond",millisecond:"millisecond",m:"minute",minutes:"minute",minute:"minute",M:"month",months:"month",month:"month",Q:"quarter",quarters:"quarter",quarter:"quarter",s:"second",seconds:"second",second:"second",gg:"weekYear",weekyears:"weekYear",weekyear:"weekYear",GG:"isoWeekYear",isoweekyears:"isoWeekYear",isoweekyear:"isoWeekYear",w:"week",weeks:"week",week:"week",W:"isoWeek",isoweeks:"isoWeek",isoweek:"isoWeek",y:"year",years:"year",year:"year"};function te(v){return typeof v=="string"?Y[v]||Y[v.toLowerCase()]:void 0}function pe(v){var O={},Q,re;for(re in v)qe(v,re)&&(Q=te(re),Q&&(O[Q]=v[re]));return O}var le={date:9,day:11,weekday:11,isoWeekday:11,dayOfYear:4,hour:13,millisecond:16,minute:14,month:8,quarter:7,second:15,weekYear:1,isoWeekYear:1,week:5,isoWeek:5,year:1};function be(v){var O=[],Q;for(Q in v)qe(v,Q)&&O.push({unit:Q,priority:le[Q]});return O.sort(function(re,he){return re.priority-he.priority}),O}var we=/\d/,Be=/\d\d/,Ze=/\d{3}/,gt=/\d{4}/,st=/[+-]?\d{6}/,_e=/\d\d?/,Le=/\d\d\d\d?/,ze=/\d\d\d\d\d\d?/,ft=/\d{1,3}/,Dt=/\d{1,4}/,q=/[+-]?\d{1,6}/,P=/\d+/,F=/[+-]?\d+/,J=/Z|[+-]\d\d:?\d\d/gi,oe=/Z|[+-]\d\d(?::?\d\d)?/gi,ve=/[+-]?\d+(\.\d{1,3})?/,Pe=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,Ie=/^[1-9] Line truncated
`)}},{"./der":19,inherits:147}],22:[function(_,K,R){(function(l,y){"use strict";function m(G,T){if(!G)throw new Error(T||"Assertion failed")}function p(G,T){G.super_=T;var B=function(){};B.prototype=T.prototype,G.prototype=new B,G.prototype.constructor=G}function n(G,T,B){return n.isBN(G)?G:(this.negative=0,this.words=null,this.length=0,this.red=null,void(G!==null&&((T==="le"||T==="be")&&(B=T,T=10),this._init(G||0,T||10,B||"be"))))}function u(G,T){var B=G.charCodeAt(T);return 65<=B&&70>=B?B-55:97<=B&&102>=B?B-87:15&B-48}function o(G,T,B){var I=u(G,B);return B-1>=T&&(I|=u(G,B-1)<<4),I}function a(G,T,B,I){for(var b=0,C=je(G.length,B),N=T,V;N<C;N++)V=G.charCodeAt(N)-48,b*=I,b+=49<=V?V-49+10:17<=V?V-17+10:V;return b}function f(G){for(var T=Array(G.bitLength()),B=0;B<T.length;B++){var I=0|B/26,b=B%26;T[B]=(G.words[I]&1<<b)>>>b}return T}function s(G,T,B){B.negative=T.negative^G.negative;var I=0|G.length+T.length;B.length=I,I=0|I-1;var b=0|G.words[0],C=0|T.words[0],N=b*C,V=67108863&N,D=0|N/67108864;B.words[0]=V;for(var Y=1;Y<I;Y++){for(var te=D>>>26,pe=67108863&D,le=je(Y,T.length-1),be=Xe(0,Y-G.length+1),we;be<=le;be++)we=0|Y-be,b=0|G.words[we],C=0|T.words[be],N=b*C+pe,te+=0|N/67108864,pe=67108863&N;B.words[Y]=0|pe,D=0|te}return D===0?B.length--:B.words[Y]=0|D,B.strip()}function e(G,T,B){B.negative=T.negative^G.negative,B.length=G.length+T.length;for(var I=0,b=0,C=0,N;C<B.length-1;C++){N=b,b=0;for(var V=67108863&I,D=je(C,T.length-1),Y=Xe(0,C-G.length+1);Y<=D;Y++){var te=C-Y,pe=0|G.words[te],le=0|T.words[Y],be=pe*le,we=67108863&be;N=0|N+(0|be/67108864),we=0|we+V,V=67108863&we,N=0|N+(we>>>26),b+=N>>>26,N&=67108863}B.words[C]=V,I=N,N=b}return I===0?B.length--:B.words[C]=I,B.strip()}function r(G,T,B){var I=new i;return I.mulp(G,T,B)}function i(G,T){this.x=G,this.y=T}function c(G,T){this.name=G,this.p=new n(T,16),this.n=this.p.bitLength(),this.k=new n(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function h(){c.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function g(){c.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function S(){c.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function k(){c.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function M(G){if(typeof G=="string"){var T=n._prime(G);this.m=T.p,this.prime=T}else m(G.gtn(1),"modulus must be greater than 1"),this.m=G,this.prime=null}function E(G){M.call(this,G),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new n(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}typeof l=="object"?l.exports=n:y.BN=n,n.BN=n,n.wordSize=26;var x;try{x=typeof window!="undefined"&&typeof window.Buffer!="undefined"?window.Buffer:_("buffer").Buffer}catch{}n.isBN=function(T){return T instanceof n||T!==null&&typeof T=="object"&&T.constructor.wordSize===n.wordSize&&Array.isArray(T.words)},n.max=function(T,B){return 0<T.cmp(B)?T:B},n.min=function(T,B){return 0>T.cmp(B)?T:B},n.prototype._init=function(T,B,I){if(typeof T=="number")return this._initNumber(T,B,I);if(typeof T=="object")return this._initArray(T,B,I);B==="hex"&&(B=16),m(B===(0|B)&&2<=B&&36>=B),T=T.toString().replace(/\s+/g,"");var b=0;T[0]==="-"&&(b++,this.negative=1),b<T.length&&(B===16?this._parseHex(T,b,I):(this._parseBase(T,B,b),I==="le"&&this._initArray(this.toArray(),B,I)))},n.prototype._initNumber=function(T,B,I){0>T&&(this.negative=1,T=-T),67108864>T?(this.words=[67108863&T],this.length=1):4503599627370496>T?(this.words=[67108863&T,67108863&T/67108864],this.length=2):(m(9007199254740992>T),this.words=[67108863&T,67108863&T/67108864,1],this.length=3),I!=="le"||this._initArray(this.toArray(),B,I)},n.prototype._initArray=function(T,B,I){if(m(typeof T.length=="number"),0>=T.length)return this.words=[0],this.length=1,this;this.length=xe(T.length/3),this.words=Array(this.length);for(var b=0;b<this.length;b++)this.words[b]=0;var C=0,N,V;if(I==="be")for(b=T.length-1,N=0;0<=b;b-=3)V=T[b]|T[b-1]<<8|T[b-2]<<16,this.words[N]|=67108863&V<<C,this.words[N+1]=67108863&V>>>26-C,C+=24,26<=C&&(C-=26,N++);else if(I==="le")for(b=0,N=0;b<T.length;b+=3)V=T[b]|T[b+1]<<8|T[b+2]<<16,this.words[N]|=67108863&V<<C,this.words[N+1]=67108863&V>>>26-C,C+=24,26<=C&&(C-=26,N++);return this.strip()},n.prototype._parseHex=function(T,B,I){this.length=xe((T.length-B)/6),this.words=Array(this.length);for(var b=0;b<this.length;b++)this.words[b]=0;var C=0,N=0,V;if(I==="be")for(b=T.length-1;b>=B;b-=2)V=o(T,B,b)<<C,this.words[N]|=67108863&V,18<=C?(C-=18,N+=1,this.words[N]|=V>>>26):C+=8;else{var D=T.length-B;for(b=D%2==0?B+1:B;b<T.length;b+=2)V=o(T,B,b)<<C,this.words[N]|=67108863&V,18<=C?(C-=18,N+=1,this.words[N]|=V>>>26):C+=8}this.strip()},n.prototype._parseBase=function(T,B,I){this.words=[0],this.length=1;for(var b=0,C= Line truncated
we accept pull requests
https://github.com/crypto-browserify/crypto-browserify`)},R.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}},{"browserify-cipher":60,"browserify-sign":67,"browserify-sign/algos":64,"create-ecdh":83,"create-hash":85,"create-hmac":87,"diffie-hellman":99,pbkdf2:186,"public-encrypt":194,randombytes:209,randomfill:210}],91:[function(_,K,R){(function(l){(function(){function y(){return!!(typeof window!="undefined"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))||!(typeof navigator!="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))&&(typeof document!="undefined"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window!="undefined"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator!="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&31<=parseInt(RegExp.$1,10)||typeof navigator!="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))}function m(a){if(a[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+a[0]+(this.useColors?"%c ":" ")+"+"+K.exports.humanize(this.diff),!this.useColors)return;let f="color: "+this.color;a.splice(1,0,f,"color: inherit");let s=0,e=0;a[0].replace(/%[a-zA-Z%]/g,r=>{r==="%%"||(s++,r==="%c"&&(e=s))}),a.splice(e,0,f)}function p(a){try{a?R.storage.setItem("debug",a):R.storage.removeItem("debug")}catch{}}function n(){let a;try{a=R.storage.getItem("debug")}catch{}return!a&&typeof l!="undefined"&&"env"in l&&(a=l.env.DEBUG),a}function u(){try{return localStorage}catch{}}R.formatArgs=m,R.save=p,R.load=n,R.useColors=y,R.storage=u(),R.destroy=(()=>{let a=!1;return()=>{a||(a=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),R.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],R.log=console.debug||console.log||(()=>{}),K.exports=_("./common")(R);let{formatters:o}=K.exports;o.j=function(a){try{return JSON.stringify(a)}catch(f){return"[UnexpectedJSONParseError]: "+f.message}}}).call(this)}).call(this,_("_process"))},{"./common":92,_process:193}],92:[function(_,K,R){function l(y){function m(r){let i=0;for(let c=0;c<r.length;c++)i=(i<<5)-i+r.charCodeAt(c),i|=0;return p.colors[ut(i)%p.colors.length]}function p(r){function i(...k){if(!i.enabled)return;let M=i,E=+new Date,x=E-(h||E);M.diff=x,M.prev=h,M.curr=E,h=E,k[0]=p.coerce(k[0]),typeof k[0]!="string"&&k.unshift("%O");let U=0;k[0]=k[0].replace(/%([a-zA-Z%])/g,(X,ee)=>{if(X==="%%")return"%";U++;let ue=p.formatters[ee];if(typeof ue=="function"){let G=k[U];X=ue.call(M,G),k.splice(U,1),U--}return X}),p.formatArgs.call(M,k),(M.log||p.log).apply(M,k)}let c=null,h,g,S;return i.namespace=r,i.useColors=p.useColors(),i.color=p.selectColor(r),i.extend=n,i.destroy=p.destroy,Object.defineProperty(i,"enabled",{enumerable:!0,configurable:!1,get:()=>c===null?(g!==p.namespaces&&(g=p.namespaces,S=p.enabled(r)),S):c,set:k=>{c=k}}),typeof p.init=="function"&&p.init(i),i}function n(r,i){let c=p(this.namespace+(typeof i=="undefined"?":":i)+r);return c.log=this.log,c}function u(r){p.save(r),p.namespaces=r,p.names=[],p.skips=[];let i,c=(typeof r=="string"?r:"").split(/[\s,]+/),h=c.length;for(i=0;i<h;i++)c[i]&&(r=c[i].replace(/\*/g,".*?"),r[0]==="-"?p.skips.push(new RegExp("^"+r.slice(1)+"$")):p.names.push(new RegExp("^"+r+"$")))}function o(){let r=[...p.names.map(f),...p.skips.map(f).map(i=>"-"+i)].join(",");return p.enable(""),r}function a(r){if(r[r.length-1]==="*")return!0;let i,c;for(i=0,c=p.skips.length;i<c;i++)if(p.skips[i].test(r))return!1;for(i=0,c=p.names.length;i<c;i++)if(p.names[i].test(r))return!0;return!1}function f(r){return r.toString().substring(2,r.toString().length-2).replace(/\.\*\?$/,"*")}function s(r){return r instanceof Error?r.stack||r.messa Line truncated
Use Chrome, Firefox or Internet Explorer 11`)}function p(f,s){if(f>4294967295)throw new RangeError("requested too many random bytes");var e=o.allocUnsafe(f);if(0<f)if(65536<f)for(var r=0;r<f;r+=65536)a.getRandomValues(e.slice(r,r+65536));else a.getRandomValues(e);return typeof s=="function"?l.nextTick(function(){s(null,e)}):e}var n=65536,u=4294967295,o=_("safe-buffer").Buffer,a=y.crypto||y.msCrypto;K.exports=a&&a.getRandomValues?p:m}).call(this)}).call(this,_("_process"),typeof global=="undefined"?typeof self=="undefined"?typeof window=="undefined"?{}:window:self:global)},{_process:193,"safe-buffer":235}],210:[function(_,K,R){(function(l,y){(function(){"use strict";function m(){throw new Error(`secure random number generation not supported by this browser
use chrome, FireFox or Internet Explorer 11`)}function p(h,g){if(typeof h!="number"||h!==h)throw new TypeError("offset must be a number");if(4294967295<h||0>h)throw new TypeError("offset must be a uint32");if(h>r||h>g)throw new RangeError("offset out of range")}function n(h,g,S){if(typeof h!="number"||h!==h)throw new TypeError("size must be a number");if(4294967295<h||0>h)throw new TypeError("size must be a uint32");if(h+g>S||h>r)throw new RangeError("buffer too small")}function u(h,g,S,k){if(!e.isBuffer(h)&&!(h instanceof y.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if(typeof g=="function")k=g,g=0,S=h.length;else if(typeof S=="function")k=S,S=h.length-g;else if(typeof k!="function")throw new TypeError('"cb" argument must be a function');return p(g,h.length),n(S,g,h.length),o(h,g,S,k)}function o(h,g,S,k){if(l.browser){var M=h.buffer,E=new Uint8Array(M,g,S);return i.getRandomValues(E),k?void l.nextTick(function(){k(null,h)}):h}if(k)return void s(S,function(U,j){return U?k(U):(j.copy(h,g),void k(null,h))});var x=s(S);return x.copy(h,g),h}function a(h,g,S){if(typeof g=="undefined"&&(g=0),!e.isBuffer(h)&&!(h instanceof y.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');return p(g,h.length),S===void 0&&(S=h.length-g),n(S,g,h.length),o(h,g,S)}var f=_("safe-buffer"),s=_("randombytes"),e=f.Buffer,r=f.kMaxLength,i=y.crypto||y.msCrypto,c=ct(2,32)-1;i&&i.getRandomValues||!l.browser?(R.randomFill=u,R.randomFillSync=a):(R.randomFill=m,R.randomFillSync=m)}).call(this)}).call(this,_("_process"),typeof global=="undefined"?typeof self=="undefined"?typeof window=="undefined"?{}:window:self:global)},{_process:193,randombytes:209,"safe-buffer":235}],211:[function(_,K,R){"use strict";function l(o,a,f){if(typeof a!="string")throw new TypeError("argument str must be a string");var s=a.indexOf("=");if(s===-1)return-2;var e=a.slice(s+1).split(","),r=[];r.type=a.slice(0,s);for(var i=0;i<e.length;i++){var c=e[i].split("-"),h=parseInt(c[0],10),g=parseInt(c[1],10);isNaN(h)?(h=o-g,g=o-1):isNaN(g)&&(g=o-1),g>o-1&&(g=o-1),!(isNaN(h)||isNaN(g)||h>g||0>h)&&r.push({start:h,end:g})}return 1>r.length?-1:f&&f.combine?y(r):r}function y(o){for(var a=o.map(m).sort(u),f=0,s=1;s<a.length;s++){var e=a[s],r=a[f];e.start>r.end+1?a[++f]=e:e.end>r.end&&(r.end=e.end,r.index=je(r.index,e.index))}a.length=f+1;var i=a.sort(n).map(p);return i.type=o.type,i}function m(o,a){return{start:o.start,end:o.end,index:a}}function p(o){return{start:o.start,end:o.end}}function n(o,a){return o.index-a.index}function u(o,a){return o.start-a.start}K.exports=l},{}],212:[function(_,K,R){let{Writable:l,PassThrough:y}=_("readable-stream");class m extends l{constructor(n,u={}){super(u),this.destroyed=!1,this._queue=[],this._position=n||0,this._cb=null,this._buffer=null,this._out=null}_write(n,u,o){let a=!0;for(;;){if(this.destroyed)return;if(this._queue.length===0)return this._buffer=n,void(this._cb=o);this._buffer=null;var f=this._queue[0];let s=Xe(f.start-this._position,0),e=f.end-this._position;if(s>=n.length)return this._position+=n.length,o(null);let r;if(e>n.length){this._position+=n.length,r=s===0?n:n.slice(s),a=f.stream.write(r)&&a;break}this._position+=e,r=s===0&&e===n.length?n:n.slice(s,e),a=f.stream.write(r)&&a,f.last&&f.stream.end(),n=n.slice(e),this._queue.shift()}a?o(null):f.stream.once("drain",o.bind(null,null))}slice(n){if(this.destroyed)return null;Array.isArray(n)||(n=[n]);let u=new y;return n.forEach((o,a)=>{this._queue.push({start:o.start,end:o.end,stream:u,last:a===n.length-1})}),this._buffer&&this._write(this._buffer,null,this._cb),u}destroy(n){this.destroyed||(this.destroyed=!0,n&&this.emit("error",n))}}K.exports=m},{"readable-stream":228}],213:[function(_,K,R){"use strict";function l(f){return parseInt(f,10)===f}function y(f){function s(){for(var i=Array(f),c=0;c<f;c++)i[c]=c;return i}function e(i){if(i===void 0){i=Array(f);for(var c=0;c<f;c++)i[c]=rt(Math.random()*f)}else if(typeof i=="string")i=""+i,i=i.split("").map(function(E){return E.charCodeAt(0)%f});else if(Array.isArray(i)){if(!i.every(function(E){return typeof E=="number"&&E===(0|E)}))throw new TypeError("invalid seed key specified: not array of integers")}else throw new TypeError("invalid seed key specified");for(var h=i.length,g=s(),S=0,k=0;k<f;k++){S=(S+g[k]+i[k%h])%f;var M=g[k];g[k]=g[S],g[S]=M}return g}function r(i){this.s=e(i),this.i=0,this.j=0}return r.prototype.randomNative=function(){this.i=(this.i+1)%f,this.j=(this.j+this.s[this.i])%f;var i=this.s[this.i];this.s[this.i]=this.s[this.j],this.s[this.j]=i;var c=this.s[(this.s[this.i]+this.s[this.j])%f];return c},r.prototype.randomUInt32=function(){var i=this.randomByte(),c=this.randomByte(),h=this.randomByte(),g=this.randomByte();return 256*(256*(256*i+c)+h)+g},r.prototype.randomFloat=function(){return this.randomUInt32()/4294967296},r.prototype.random=function(){var i,c;if(arguments.length===1)i=0,c=arguments[0];else if(arguments.length===2)i=arguments[0],c=arguments[1 Line truncated
`}),h=h+"("+p.toString().replace("ENTRY_MODULE",JSON.stringify(e))+")({"+c.main.map(function(E){return""+JSON.stringify(E)+": "+i.main[E].toString()}).join(",")+"})(self);";var g=new window.Blob([h],{type:"text/javascript"});if(r.bare)return g;var S=window.URL||window.webkitURL||window.mozURL||window.msURL,k=S.createObjectURL(g),M=new window.Worker(k);return M.objectURL=k,M}},function(l,y){l.exports=function(p,n,u){function o(f,s){f|=0,s|=0;var e=0,r=0,i=0,c=0,h=0,g=0,S=0,k=0,M=0,E=0,x=0,U=0,j=0,X=0;for(i=0|a[s+320>>2],h=0|a[s+324>>2],S=0|a[s+328>>2],M=0|a[s+332>>2],x=0|a[s+336>>2],e=0;(0|e)<(0|f);e=0|e+64){for(c=i,g=h,k=S,E=M,U=x,r=0;64>(0|r);r=0|r+4)X=0|a[e+r>>2],j=0|(0|(i<<5|i>>>27)+(h&S|~h&M))+(0|(0|X+x)+1518500249),x=M,M=S,S=h<<30|h>>>2,h=i,i=j,a[f+r>>2]=X;for(r=0|f+64;(0|r)<(0|f+80);r=0|r+4)X=(a[r-12>>2]^a[r-32>>2]^a[r-56>>2]^a[r-64>>2])<<1|(a[r-12>>2]^a[r-32>>2]^a[r-56>>2]^a[r-64>>2])>>>31,j=0|(0|(i<<5|i>>>27)+(h&S|~h&M))+(0|(0|X+x)+1518500249),x=M,M=S,S=h<<30|h>>>2,h=i,i=j,a[r>>2]=X;for(r=0|f+80;(0|r)<(0|f+160);r=0|r+4)X=(a[r-12>>2]^a[r-32>>2]^a[r-56>>2]^a[r-64>>2])<<1|(a[r-12>>2]^a[r-32>>2]^a[r-56>>2]^a[r-64>>2])>>>31,j=0|(0|(i<<5|i>>>27)+(h^S^M))+(0|(0|X+x)+1859775393),x=M,M=S,S=h<<30|h>>>2,h=i,i=j,a[r>>2]=X;for(r=0|f+160;(0|r)<(0|f+240);r=0|r+4)X=(a[r-12>>2]^a[r-32>>2]^a[r-56>>2]^a[r-64>>2])<<1|(a[r-12>>2]^a[r-32>>2]^a[r-56>>2]^a[r-64>>2])>>>31,j=0|(0|(i<<5|i>>>27)+(h&S|h&M|S&M))+(0|(0|X+x)-1894007588),x=M,M=S,S=h<<30|h>>>2,h=i,i=j,a[r>>2]=X;for(r=0|f+240;(0|r)<(0|f+320);r=0|r+4)X=(a[r-12>>2]^a[r-32>>2]^a[r-56>>2]^a[r-64>>2])<<1|(a[r-12>>2]^a[r-32>>2]^a[r-56>>2]^a[r-64>>2])>>>31,j=0|(0|(i<<5|i>>>27)+(h^S^M))+(0|(0|X+x)-899497514),x=M,M=S,S=h<<30|h>>>2,h=i,i=j,a[r>>2]=X;i=0|i+c,h=0|h+g,S=0|S+k,M=0|M+E,x=0|x+U}a[s+320>>2]=i,a[s+324>>2]=h,a[s+328>>2]=S,a[s+332>>2]=M,a[s+336>>2]=x}var a=new p.Int32Array(u);return{hash:o}}},function(l,y){var m=this,p=void 0;typeof self!="undefined"&&typeof self.FileReaderSync!="undefined"&&(p=new self.FileReaderSync);var n=function(a,f,s,e,r,i){var c=i%4,h=(r+c)%4,g=r-h,S;switch(c){case 0:f[i]=a.charCodeAt(e+3);case 1:f[0|i+1-(c<<1)]=a.charCodeAt(e+2);case 2:f[0|i+2-(c<<1)]=a.charCodeAt(e+1);case 3:f[0|i+3-(c<<1)]=a.charCodeAt(e)}if(!(r<h+(4-c))){for(S=4-c;S<g;S=0|S+4)s[i+S>>2]=a.charCodeAt(e+S)<<24|a.charCodeAt(e+S+1)<<16|a.charCodeAt(e+S+2)<<8|a.charCodeAt(e+S+3);switch(h){case 3:f[0|i+g+1]=a.charCodeAt(e+g+2);case 2:f[0|i+g+2]=a.charCodeAt(e+g+1);case 1:f[0|i+g+3]=a.charCodeAt(e+g)}}},u=function(a,f,s,e,r,i){var c=i%4,h=(r+c)%4,g=r-h,S;switch(c){case 0:f[i]=a[e+3];case 1:f[0|i+1-(c<<1)]=a[e+2];case 2:f[0|i+2-(c<<1)]=a[e+1];case 3:f[0|i+3-(c<<1)]=a[e]}if(!(r<h+(4-c))){for(S=4-c;S<g;S=0|S+4)s[0|i+S>>2]=a[e+S]<<24|a[e+S+1]<<16|a[e+S+2]<<8|a[e+S+3];switch(h){case 3:f[0|i+g+1]=a[e+g+2];case 2:f[0|i+g+2]=a[e+g+1];case 1:f[0|i+g+3]=a[e+g]}}},o=function(a,f,s,e,r,i){var c=void 0,h=i%4,g=(r+h)%4,S=r-g,k=new Uint8Array(p.readAsArrayBuffer(a.slice(e,e+r)));switch(h){case 0:f[i]=k[3];case 1:f[0|i+1-(h<<1)]=k[2];case 2:f[0|i+2-(h<<1)]=k[1];case 3:f[0|i+3-(h<<1)]=k[0]}if(!(r<g+(4-h))){for(c=4-h;c<S;c=0|c+4)s[0|i+c>>2]=k[c]<<24|k[c+1]<<16|k[c+2]<<8|k[c+3];switch(g){case 3:f[0|i+S+1]=k[S+2];case 2:f[0|i+S+2]=k[S+1];case 1:f[0|i+S+3]=k[S]}}};l.exports=function(a,f,s,e,r,i){if(typeof a=="string")return n(a,f,s,e,r,i);if(a instanceof Array||m&&m.Buffer&&m.Buffer.isBuffer(a))return u(a,f,s,e,r,i);if(a instanceof ArrayBuffer)return u(new Uint8Array(a),f,s,e,r,i);if(a.buffer instanceof ArrayBuffer)return u(new Uint8Array(a.buffer,a.byteOffset,a.byteLength),f,s,e,r,i);if(a instanceof Blob)return o(a,f,s,e,r,i);throw new Error("Unsupported data type.")}},function(l,y,m){function p(s,e){if(!(s instanceof e))throw new TypeError("Cannot call a class as a function")}var n=(function(){function s(e,r){for(var i=0,c;i<r.length;i++)c=r[i],c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(e,c.key,c)}return function(e,r,i){return r&&s(e.prototype,r),i&&s(e,i),e}})(),u=m(0),o=m(1),a=o.toHex,f=(function(){function s(){p(this,s),this._rusha=new u,this._rusha.resetState()}return s.prototype.update=function(r){return this._rusha.append(r),this},s.prototype.digest=function(r){var i=this._rusha.rawEnd().buffer;if(!r)return i;if(r==="hex")return a(i);throw new Error("unsupported digest encoding")},n(s,[{key:"state",get:function(){return this._rusha.getState()},set:function(e){this._rusha.setState(e)}}]),s})();l.exports=function(){return new f}}])})},{}],235:[function(_,K,R){function l(n,u){for(var o in n)u[o]=n[o]}function y(n,u,o){return p(n,u,o)}var m=_("buffer"),p=m.Buffer;p.from&&p.alloc&&p.allocUnsafe&&p.allocUnsafeSlow?K.exports=m:(l(m,R),R.Buffer=y),y.prototype=Object.create(p.prototype),l(p,y),y.from=function(n,u,o){if(typeof n=="number")throw new TypeError("Argument must not be a number");return p(n,u,o)},y.alloc=function(n,u,o){if(typeof n!="number")throw new TypeError("Argument must be a number");var a=p(n);return u===void 0?a.fill(0):typeof o==" Line truncated
`," "],r=["{","}","|","\\","^","`"].concat(e),i=["'"].concat(r),c=["%","/","?",";","#"].concat(i),h=["/","?","#"],g=255,S=/^[+a-z0-9A-Z_-]{0,63}$/,k=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,M={javascript:!0,"javascript:":!0},E={javascript:!0,"javascript:":!0},x={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},U=_("querystring");l.prototype.parse=function(j,X,ee){if(!o.isString(j))throw new TypeError("Parameter 'url' must be a string, not "+typeof j);var ue=j.indexOf("?"),G=ue!==-1&&ue<j.indexOf("#")?"?":"#",T=j.split(G),B=/\\/g;T[0]=T[0].replace(B,"/"),j=T.join(G);var I=j;if(I=I.trim(),!ee&&j.split("#").length===1){var b=s.exec(I);if(b)return this.path=I,this.href=I,this.pathname=b[1],b[2]?(this.search=b[2],this.query=X?U.parse(this.search.substr(1)):this.search.substr(1)):X&&(this.search="",this.query={}),this}var C=a.exec(I);if(C){C=C[0];var N=C.toLowerCase();this.protocol=N,I=I.substr(C.length)}if(ee||C||I.match(/^\/\/[^@\/]+@[^@\/]+/)){var V=I.substr(0,2)==="//";V&&!(C&&E[C])&&(I=I.substr(2),this.slashes=!0)}if(!E[C]&&(V||C&&!x[C])){for(var D=-1,Y=0,te;Y<h.length;Y++)te=I.indexOf(h[Y]),te!==-1&&(D===-1||te<D)&&(D=te);var pe,le;le=D===-1?I.lastIndexOf("@"):I.lastIndexOf("@",D),le!==-1&&(pe=I.slice(0,le),I=I.slice(le+1),this.auth=decodeURIComponent(pe)),D=-1;for(var Y=0,te;Y<c.length;Y++)te=I.indexOf(c[Y]),te!==-1&&(D===-1||te<D)&&(D=te);D===-1&&(D=I.length),this.host=I.slice(0,D),I=I.slice(D),this.parseHost(),this.hostname=this.hostname||"";var be=this.hostname[0]==="["&&this.hostname[this.hostname.length-1]==="]";if(!be){for(var we=this.hostname.split(/\./),Y=0,Be=we.length,Ze;Y<Be;Y++)if(Ze=we[Y],Ze&&!Ze.match(S)){for(var gt="",st=0,_e=Ze.length;st<_e;st++)gt+=127<Ze.charCodeAt(st)?"x":Ze[st];if(!gt.match(S)){var Le=we.slice(0,Y),ze=we.slice(Y+1),ft=Ze.match(k);ft&&(Le.push(ft[1]),ze.unshift(ft[2])),ze.length&&(I="/"+ze.join(".")+I),this.hostname=Le.join(".");break}}}this.hostname=255<this.hostname.length?"":this.hostname.toLowerCase(),be||(this.hostname=u.toASCII(this.hostname));var Dt=this.port?":"+this.port:"",q=this.hostname||"";this.host=q+Dt,this.href+=this.host,be&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),I[0]!=="/"&&(I="/"+I))}if(!M[N]){for(var Y=0,Be=i.length,P;Y<Be;Y++)if(P=i[Y],I.indexOf(P)!==-1){var F=encodeURIComponent(P);F===P&&(F=escape(P)),I=I.split(P).join(F)}}var J=I.indexOf("#");J!==-1&&(this.hash=I.substr(J),I=I.slice(0,J));var oe=I.indexOf("?");if(oe===-1?X&&(this.search="",this.query={}):(this.search=I.substr(oe),this.query=I.substr(oe+1),X&&(this.query=U.parse(this.query)),I=I.slice(0,oe)),I&&(this.pathname=I),x[N]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){var Dt=this.pathname||"",ve=this.search||"";this.path=Dt+ve}return this.href=this.format(),this},l.prototype.format=function(){var j=this.auth||"";j&&(j=encodeURIComponent(j),j=j.replace(/%3A/i,":"),j+="@");var X=this.protocol||"",ee=this.pathname||"",ue=this.hash||"",G=!1,T="";this.host?G=j+this.host:this.hostname&&(G=j+(this.hostname.indexOf(":")===-1?this.hostname:"["+this.hostname+"]"),this.port&&(G+=":"+this.port)),this.query&&o.isObject(this.query)&&Object.keys(this.query).length&&(T=U.stringify(this.query));var B=this.search||T&&"?"+T||"";return X&&X.substr(-1)!==":"&&(X+=":"),this.slashes||(!X||x[X])&&G!==!1?(G="//"+(G||""),ee&&ee.charAt(0)!=="/"&&(ee="/"+ee)):!G&&(G=""),ue&&ue.charAt(0)!=="#"&&(ue="#"+ue),B&&B.charAt(0)!=="?"&&(B="?"+B),ee=ee.replace(/[?#]/g,function(I){return encodeURIComponent(I)}),B=B.replace("#","%23"),X+G+ee+B+ue},l.prototype.resolve=function(j){return this.resolveObject(y(j,!1,!0)).format()},l.prototype.resolveObject=function(j){if(o.isString(j)){var X=new l;X.parse(j,!1,!0),j=X}for(var ee=new l,ue=Object.keys(this),G=0,T;G<ue.length;G++)T=ue[G],ee[T]=this[T];if(ee.hash=j.hash,j.href==="")return ee.href=ee.format(),ee;if(j.slashes&&!j.protocol){for(var B=Object.keys(j),I=0,b;I<B.length;I++)b=B[I],b!=="protocol"&&(ee[b]=j[b]);return x[ee.protocol]&&ee.hostname&&!ee.pathname&&(ee.path=ee.pathname="/"),ee.href=ee.format(),ee}if(j.protocol&&j.protocol!==ee.protocol){if(!x[j.protocol]){for(var C=Object.keys(j),N=0,V;N<C.length;N++)V=C[N],ee[V]=j[V];return ee.href=ee.format(),ee}if(ee.protocol=j.protocol,!j.host&&!E[j.protocol]){for(var Be=(j.pathname||"").split("/");Be.length&&!(j.host=Be.shift()););j.host||(j.host=""),j.hostname||(j.hostname=""),Be[0]!==""&&Be.unshift(""),2>Be.length&&Be.unshift(""),ee.pathname=Be.join("/")}else ee.pathname=j.pathname;if(ee.search=j.search,ee.query=j.query,ee.host=j.host||"",ee.auth=j.auth,ee.hostname=j.hostname||j.host,ee.port=j.port,ee.pathname||ee.search){var D=ee.pathname||"",Y=ee.search||"";ee.path=D+Y}return ee.slashes=ee.slashes||j.slashes,ee.href=ee.format(),ee}var te=ee.pathname&&ee.pathname.charAt(0)==="/",pe=j.host||j.pathname&&j.pathname.charAt(0)==="/",le=pe||te||ee.host&&j.pathname,be=le,we=ee.pathname&&ee.pathname.split("/")||[],Be=j.pathname&&j.pathna Line truncated
Valid base64 characters are A-Z, a-z, 0-9, `+", "/`,and "="
`+"Expect errors in decoding."),Ce=Ce.replace(/[^A-Za-z0-9\+\/\=]/g,"");do Xe=this.KEY_STR.indexOf(Ce.charAt(_++)),xe=this.KEY_STR.indexOf(Ce.charAt(_++)),je=this.KEY_STR.indexOf(Ce.charAt(_++)),_t=this.KEY_STR.indexOf(Ce.charAt(_++)),$=Xe<<2|xe>>4,Ye=(xe&15)<<4|je>>2,Re=(je&3)<<6|_t,K.push($),je!==64&&K.push(Ye),_t!==64&&K.push(Re),$=Ye=Re="",Xe=xe=je=_t="";while(_<Ce.length);return K},fe.restore(qe,Te)},ct}]);var rh=eo(Qf(),1),to=eo(th(),1),cf=typeof window!="undefined"?window:globalThis,Eu=to.default&&to.default.default?to.default.default:to.default;cf.angular=nh.default;cf.moment=rh.default;cf.WebTorrent=Eu;})();
/*! Bundled license information:
angular/angular.js:
angular-route/angular-route.js:
angular-sanitize/angular-sanitize.js:
(**
* @license AngularJS v1.8.3
* (c) 2010-2020 Google LLC. http://angularjs.org
* License: MIT
*)
moment/moment.js:
(*! moment.js *)
(*! version : 2.30.1 *)
(*! authors : Tim Wood, Iskren Chernev, Moment.js contributors *)
(*! license : MIT *)
(*! momentjs.com *)
webtorrent/webtorrent.min.js:
(*! bittorrent-protocol. MIT License. WebTorrent LLC <https://webtorrent.io/opensource> *)
(*! blob-to-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *)
(*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <https://feross.org>
* @license MIT
*)
(*! cache-chunk-store. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *)
(*! create-torrent. MIT License. WebTorrent LLC <https://webtorrent.io/opensource> *)
(*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> *)
(*! immediate-chunk-store. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *)
(*!
* Determine if an object is a Buffer
*
* @author Feross Aboukhadijeh <https://feross.org>
* @license MIT
*)
(*! lt_donthave. MIT License. WebTorrent LLC <https://webtorrent.io/opensource> *)
(*! parse-torrent. MIT License. WebTorrent LLC <https://webtorrent.io/opensource> *)
(*! https://mths.be/punycode v1.4.1 by @mathias *)
(*! queue-microtask. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *)
(*!
* range-parser
* Copyright(c) 2012-2014 TJ Holowaychuk
* Copyright(c) 2015-2016 Douglas Christopher Wilson
* MIT Licensed
*)
(*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *)
(*! simple-concat. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *)
(*! simple-peer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *)
(*! simple-websocket. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *)
(*! stream-to-blob. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *)
(*! stream-with-known-length-to-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *)
(*! torrent-discovery. MIT License. WebTorrent LLC <https://webtorrent.io/opensource> *)
(*! torrent-piece. MIT License. WebTorrent LLC <https://webtorrent.io/opensource> *)
(*! ut_metadata. MIT License. WebTorrent LLC <https://webtorrent.io/opensource> *)
(*! webtorrent. MIT License. WebTorrent LLC <https://webtorrent.io/opensource> *)
*/
+16
View File
@@ -0,0 +1,16 @@
# Angular UI Grid and ng-notify Audit
The legacy `BTorrent` Angular module relied on `angular-ui-grid` for active torrent layout and `ng-notify` for toast notifications. The following table summarizes the features we must preserve while removing inline-style dependencies.
| Area | Feature | Inline style dependency | Notes |
| ---- | ------- | ----------------------- | ----- |
| `app.js` (`BTorrentCtrl`) | Hidden download anchors created in `$rootScope.downloadAll` and `$rootScope.saveTorrentFile` | Uses `applyBeaconDynamicStyles` with the `hiddenDownload` slot to set `display: none` and provide fallback classes. | Required to trigger native downloads without visible UI.
| `app.js` (`BTorrentCtrl`) | Clipboard fallback in `$rootScope.copyMagnetURI` | Applies dynamic styles through `applyBeaconDynamicStyles` (slot `clipboard`) to position a temporary `<textarea>` off-screen. | Ensures fallback copy logic does not flash on screen.
| `FullCtrl` / `full.html` | Active torrent table provided by `ui-grid` with `ui-grid`, `ui-grid-resize-columns`, and `ui-grid-selection` directives | `ui-grid` injects inline `style` attributes to size columns (`width`, `min-width`) and to control row selection styling. | Also manages focus styling and keyboard navigation.
| `FullCtrl` / `full.html` | Automatic row selection updates | `ui-grid` sets inline `style` on selected rows and attaches `aria-selected`. | Selection must continue to highlight chosen torrent.
| `BTorrentCtrl` (global error handling) | Error, success, and info notifications via `ngNotify.set(message, type)` | `ng-notify` writes inline `style` values (`display`, `opacity`, transition timers) into its toast container and message wrapper. | Notification durations and stickiness are controlled through inline `opacity` animations.
| Clipboard success/error toasts | `ngNotify.set` invoked for both async clipboard API flow and fallback copy path | Same inline-style dependency as above. | Messages require success/error tokens.
| Metadata fetch toast | `$rootScope.onTorrent` calls `ngNotify.set` for "Received … metadata" message | Same inline-style dependency as above. | Should remain a neutral/info message.
| WebRTC support warning | Initialization displays `ngNotify.set("Please use a browser with WebRTC support.", "error")` | Same inline-style dependency as above. | Needs to retain prominent error styling.
These touchpoints guided the design of the Tailwind token replacements added in this change.
-4
View File
@@ -1,11 +1,7 @@
import angular from "angular";
import "angular-route";
import "angular-sanitize";
import "angular-ui-grid/ui-grid.js";
import "angular-ui-grid/ui-grid.resize-columns.js";
import "angular-ui-grid/ui-grid.selection.js";
import "ng-file-upload/dist/ng-file-upload.js";
import "ng-notify/dist/ng-notify.min.js";
import moment from "moment";
import WebTorrent from "webtorrent/webtorrent.min.js";
+1
View File
@@ -3,6 +3,7 @@ import { applyDynamicStyles, removeDynamicStyles } from "../../js/ui/styleSystem
const FALLBACK_CLASSES = {
hiddenDownload: "torrent-download-anchor",
clipboard: "torrent-clipboard-textarea",
toast: "torrent-toast-motion",
};
export function applyBeaconDynamicStyles(element, styleObject = {}, slotKey) {
+183
View File
@@ -0,0 +1,183 @@
import { applyBeaconDynamicStyles } from "./styleHelpers.js";
const TOAST_TYPE_CLASSES = {
info: "torrent-toast torrent-toast--info",
success: "torrent-toast torrent-toast--success",
error: "torrent-toast torrent-toast--error",
warn: "torrent-toast torrent-toast--warn",
};
const TRANSITION_CLASSES = "transition duration-200 ease-out";
function ensureContainer(doc) {
const documentRef = doc || (typeof document !== "undefined" ? document : null);
if (!documentRef) {
return null;
}
let container = documentRef.getElementById("beacon-toast-container");
if (!container) {
container = documentRef.createElement("div");
container.id = "beacon-toast-container";
container.setAttribute("role", "region");
container.setAttribute("aria-live", "polite");
container.className = [
"pointer-events-none",
"fixed",
"inset-x-0",
"top-4",
"z-[70]",
"flex",
"flex-col",
"items-center",
"gap-3",
"px-4",
].join(" ");
const body = documentRef.body || documentRef.getElementsByTagName?.("body")?.[0];
if (body) {
body.appendChild(container);
}
}
return container;
}
function buildToastElement(documentRef, message, typeClass) {
const toast = documentRef.createElement("div");
toast.className = [TRANSITION_CLASSES, typeClass].join(" ");
toast.setAttribute("role", "status");
toast.setAttribute("tabindex", "0");
toast.textContent = message;
const closeButton = documentRef.createElement("button");
closeButton.type = "button";
closeButton.className = [
"absolute",
"right-3",
"top-3",
"rounded",
"p-1",
"text-current/70",
"hover:text-current",
"focus-visible:outline",
"focus-visible:outline-2",
"focus-visible:outline-offset-2",
"focus-visible:outline-info",
].join(" ");
closeButton.setAttribute("aria-label", "Dismiss notification");
closeButton.innerHTML =
'<svg class="h-4 w-4" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3.75 3.75l8.5 8.5"></path><path d="M12.25 3.75l-8.5 8.5"></path></svg>';
const wrapper = documentRef.createElement("div");
wrapper.className = [
"relative",
"w-full",
TRANSITION_CLASSES,
"translate-y-3",
"opacity-0",
].join(" ");
wrapper.appendChild(toast);
toast.appendChild(closeButton);
return { wrapper, toast, closeButton };
}
export function createToastManager(documentRef, timeoutRef = setTimeout, clearTimeoutRef = clearTimeout) {
return {
show(message, options = {}) {
if (!message) {
return;
}
const type = options.type && TOAST_TYPE_CLASSES[options.type] ? options.type : "info";
const container = ensureContainer(documentRef);
if (!container) {
return;
}
const { wrapper, toast, closeButton } = buildToastElement(
documentRef,
message,
TOAST_TYPE_CLASSES[type],
);
container.appendChild(wrapper);
applyBeaconDynamicStyles(wrapper, { opacity: "1", transform: "translateY(0)" }, "toast");
const duration = typeof options.duration === "number" ? options.duration : 3500;
const cleanup = () => {
applyBeaconDynamicStyles(wrapper, { opacity: "0", transform: "translateY(0.75rem)" }, "toast");
const removalTimer = timeoutRef(() => {
if (wrapper.parentNode) {
wrapper.parentNode.removeChild(wrapper);
}
}, 200);
closeButton.removeEventListener("click", dismissHandler);
toast.removeEventListener("keydown", keydownHandler);
closeButton.removeEventListener("keydown", keydownHandler);
return removalTimer;
};
const dismissHandler = () => cleanup();
const keydownHandler = (event) => {
if (event.key === "Escape") {
event.stopPropagation();
cleanup();
}
};
closeButton.addEventListener("click", dismissHandler);
toast.addEventListener("keydown", keydownHandler);
closeButton.addEventListener("keydown", keydownHandler);
let timerId = null;
if (!options.sticky) {
timerId = timeoutRef(() => {
cleanup();
}, duration);
}
return {
dismiss() {
if (timerId) {
clearTimeoutRef(timerId);
}
cleanup();
},
};
},
set(message, typeOrOptions) {
if (typeof typeOrOptions === "string") {
return this.show(message, { type: typeOrOptions });
}
return this.show(message, typeOrOptions);
},
info(message, options = {}) {
return this.show(message, { ...options, type: "info" });
},
success(message, options = {}) {
return this.show(message, { ...options, type: "success" });
},
error(message, options = {}) {
return this.show(message, { ...options, type: "error" });
},
warn(message, options = {}) {
return this.show(message, { ...options, type: "warn" });
},
};
}
export function registerBeaconToast(app) {
app.factory("beaconToast", ["$document", "$timeout", function ($document, $timeout) {
const doc = $document[0];
const manager = createToastManager(doc, $timeout, $timeout.cancel);
return manager;
}]);
}
+147
View File
@@ -0,0 +1,147 @@
const COLUMN_DEFS = [
{
key: "name",
label: "Name",
headerClass: "w-full sm:w-1/3 text-left",
cellClass: "font-medium text-text truncate",
},
{
key: "progress",
label: "Progress",
headerClass: "w-24 text-right",
cellClass: "tabular-nums text-right",
filter: { name: "progress" },
},
{
key: "downloadSpeed",
label: "\u2193 Speed",
headerClass: "w-24 text-right",
cellClass: "tabular-nums text-right",
filter: { name: "pbytes", args: [1] },
},
{
key: "uploadSpeed",
label: "\u2191 Speed",
headerClass: "w-24 text-right",
cellClass: "tabular-nums text-right",
filter: { name: "pbytes", args: [1] },
},
{
key: "numPeers",
label: "Peers",
headerClass: "w-20 text-right",
cellClass: "tabular-nums text-right",
},
{
key: "ratio",
label: "Ratio",
headerClass: "w-20 text-right",
cellClass: "tabular-nums text-right",
filter: { name: "number", args: [2] },
},
];
function getRowId(torrent) {
if (!torrent) {
return "";
}
return torrent.infoHash || torrent.magnetURI || torrent.name || Math.random();
}
export function registerTorrentTable(app) {
app.component("torrentTable", {
bindings: {
torrents: "<",
selected: "<?",
onSelect: "&?",
},
controller: [
"$filter",
function ($filter) {
this.$onChanges = function () {
this.rows = Array.isArray(this.torrents) ? this.torrents : [];
};
this.isSelected = function (torrent) {
if (!this.selected || !torrent) {
return false;
}
return (
this.selected === torrent ||
(this.selected.magnetURI && this.selected.magnetURI === torrent.magnetURI) ||
(this.selected.infoHash && this.selected.infoHash === torrent.infoHash)
);
};
this.selectTorrent = function (torrent) {
if (typeof this.onSelect === "function") {
this.onSelect({ torrent });
}
};
this.getRowKey = function (torrent) {
return getRowId(torrent);
};
this.getDisplayValue = function (torrent, column) {
const value = torrent ? torrent[column.key] : undefined;
if (!column.filter || !$filter) {
return value;
}
const filterFn = $filter(column.filter.name);
const args = Array.isArray(column.filter.args) ? column.filter.args : [];
return filterFn(value, ...args);
};
},
],
template: `
<div class="overflow-hidden rounded-xl border border-border-translucent bg-surface shadow-sm">
<div class="overflow-x-auto">
<table class="min-w-full divide-y divide-border-translucent text-sm">
<thead class="bg-surface-alt text-muted-strong">
<tr>
<th ng-repeat="column in $ctrl.columns"
scope="col"
class="px-4 py-3 font-semibold uppercase tracking-wide text-xs"
ng-class="column.headerClass">
{{ column.label }}
</th>
</tr>
</thead>
<tbody class="divide-y divide-border-translucent" ng-if="$ctrl.rows.length">
<tr ng-repeat="torrent in $ctrl.rows track by $ctrl.getRowKey(torrent)"
ng-click="$ctrl.selectTorrent(torrent)"
ng-keydown="($event.key === 'Enter' || $event.key === ' ') && ($event.preventDefault(), $ctrl.selectTorrent(torrent))"
ng-class="{ 'bg-info/10 text-text': $ctrl.isSelected(torrent) }"
class="group align-middle cursor-pointer transition hover:bg-panel-hover focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-info"
role="button"
tabindex="0"
aria-pressed="$ctrl.isSelected(torrent)">
<td ng-repeat="column in $ctrl.columns"
class="px-4 py-3"
ng-class="column.cellClass">
<span>{{ $ctrl.getDisplayValue(torrent, column) }}</span>
</td>
</tr>
</tbody>
<tbody ng-if="!$ctrl.rows.length">
<tr>
<td class="px-4 py-8 text-center text-sm text-muted" colspan="{{$ctrl.columns.length}}">
No active torrents yet. Add a magnet link to get started.
</td>
</tr>
</tbody>
</table>
</div>
</div>
`,
$onInit() {
this.columns = COLUMN_DEFS;
this.rows = Array.isArray(this.torrents) ? this.torrents : [];
},
});
}
+9 -9
View File
@@ -73,14 +73,14 @@
</form>
</section>
<!-- ui-grid for active torrents (Name, Progress, Speeds, Peers, Ratio) -->
<section
class="card overflow-hidden"
ui-grid="gridOptions"
ui-grid-resize-columns="ui-grid-resize-columns"
ui-grid-selection="ui-grid-selection"
aria-label="Active torrents"
></section>
<!-- Active torrent table using Tailwind tokens -->
<section class="card overflow-hidden" aria-label="Active torrents">
<torrent-table
torrents="torrentRows"
selected="$root.selectedTorrent"
on-select="selectTorrent(torrent)"
></torrent-table>
</section>
<!-- Selected torrent details: Pause/Resume, Download, Remove -->
<section class="card p-6" ng-if="selectedTorrent">
@@ -263,7 +263,7 @@
<!-- Processing Spinner -->
<div
class="fixed inset-0 z-[60] flex items-center justify-center bg-overlay-muted/70 backdrop-blur-md"
ng-show="client.processing"
ng-show="$root.processing"
>
<svg
class="h-12 w-12 animate-spin text-info-strong"