1.0.0
This commit is contained in:
@@ -0,0 +1,457 @@
|
||||
/* _content/Blazor.Bootstrap/Components/Callout/Callout.razor.rz.scp.css */
|
||||
.bb-callout[b-5p9xdwo7e3] {
|
||||
--bs-link-color-rgb: var(--bb-callout-link);
|
||||
--bs-code-color: var(--bb-callout-code-color);
|
||||
padding: 1.25rem;
|
||||
margin-top: 1.25rem;
|
||||
margin-bottom: 1.25rem;
|
||||
color: var(--bb-callout-color, inherit);
|
||||
background-color: var(--bb-callout-bg, var(--bs-gray-100));
|
||||
border-left: 0.25rem solid var(--bb-callout-border, var(--bs-gray-300))
|
||||
}
|
||||
|
||||
.bb-callout h4[b-5p9xdwo7e3] {
|
||||
margin-bottom: .25rem;
|
||||
}
|
||||
|
||||
.bb-callout > :last-child[b-5p9xdwo7e3] {
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
|
||||
.bb-callout + .bb-callout[b-5p9xdwo7e3] {
|
||||
margin-top: -.25rem;
|
||||
}
|
||||
|
||||
.bb-callout .highlight[b-5p9xdwo7e3] {
|
||||
background-color: rgba(0,0,0,0.05)
|
||||
}
|
||||
|
||||
.bb-callout-info[b-5p9xdwo7e3] {
|
||||
--bb-callout-color: var(--bs-info-text-emphasis);
|
||||
--bb-callout-bg: var(--bs-info-bg-subtle);
|
||||
--bb-callout-border: var(--bs-info-border-subtle)
|
||||
}
|
||||
|
||||
.bb-callout-warning[b-5p9xdwo7e3] {
|
||||
--bb-callout-color: var(--bs-warning-text-emphasis);
|
||||
--bb-callout-bg: var(--bs-warning-bg-subtle);
|
||||
--bb-callout-border: var(--bs-warning-border-subtle)
|
||||
}
|
||||
|
||||
.bb-callout-danger[b-5p9xdwo7e3] {
|
||||
--bb-callout-color: var(--bs-danger-text-emphasis);
|
||||
--bb-callout-bg: var(--bs-danger-bg-subtle);
|
||||
--bb-callout-border: var(--bs-danger-border-subtle)
|
||||
}
|
||||
|
||||
.bb-callout-success[b-5p9xdwo7e3] {
|
||||
--bb-callout-color: var(--bs-success-text-emphasis);
|
||||
--bb-callout-bg: var(--bs-success-bg-subtle);
|
||||
--bb-callout-border: var(--bs-success-border-subtle)
|
||||
}
|
||||
/* _content/Blazor.Bootstrap/Components/Form/AutoComplete/AutoComplete.razor.rz.scp.css */
|
||||
.autocomplete[b-zkhsnlgtvk] {
|
||||
}
|
||||
|
||||
.autocomplete > .input-group > input[b-zkhsnlgtvk] {
|
||||
border-top-right-radius: 0.25rem !important;
|
||||
border-bottom-right-radius: 0.25rem !important;
|
||||
padding-right: 2.75rem !important;
|
||||
}
|
||||
|
||||
.autocomplete-list[b-zkhsnlgtvk] {
|
||||
max-height: 200px;
|
||||
overflow-y: auto;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.autocomplete-item:focus[b-zkhsnlgtvk], .autocomplete-item:hover[b-zkhsnlgtvk] {
|
||||
color: #1e2125;
|
||||
background-color: #e9ecef;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
|
||||
.dropdown-item:focus[b-zkhsnlgtvk], .dropdown-item:hover[b-zkhsnlgtvk] {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.dropdown-item-highlight[b-zkhsnlgtvk] {
|
||||
color: #1e2125;
|
||||
background-color: #e9ecef;
|
||||
cursor: pointer;
|
||||
}
|
||||
/* _content/Blazor.Bootstrap/Components/Ribbon/RibbonGroup.razor.rz.scp.css */
|
||||
/* _content/Blazor.Bootstrap/Components/Ribbon/RibbonItem.razor.rz.scp.css */
|
||||
.bb-ribbon-item[b-euvmgchcvy] {
|
||||
cursor: pointer;
|
||||
/*width: 64px;*/
|
||||
}
|
||||
|
||||
.bb-ribbon-item:hover[b-euvmgchcvy] {
|
||||
background-color: rgba(var(--bs-secondary-rgb), 0.10) !important;
|
||||
}
|
||||
|
||||
.bb-ribbon-item.active[b-euvmgchcvy] {
|
||||
}
|
||||
/* _content/Blazor.Bootstrap/Components/Ribbon/RibbonItemGroup.razor.rz.scp.css */
|
||||
/* _content/Blazor.Bootstrap/Components/Sidebar2/Sidebar2.razor.rz.scp.css */
|
||||
.bb-sidebar2[b-hjh7gjrlxu] {
|
||||
background-color: var(--bb-sidebar2-background-color);
|
||||
border-right: 1px solid var(--bb-sidebar2-content-border-color);
|
||||
}
|
||||
|
||||
.bb-sidebar2.collapsed[b-hjh7gjrlxu] {
|
||||
width: var(--bb-sidebar2-collapsed-width);
|
||||
}
|
||||
|
||||
.bb-sidebar2.collapsed .expanded-only[b-hjh7gjrlxu] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@media (min-width: 641px) {
|
||||
.bb-sidebar2[b-hjh7gjrlxu] {
|
||||
width: var(--bb-sidebar2-width);
|
||||
position: sticky;
|
||||
top: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.bb-sidebar2-top-row[b-hjh7gjrlxu] {
|
||||
height: 3.5rem;
|
||||
background-color: var(--bb-sidebar2-top-row-background-color);
|
||||
border-bottom: 1px solid var(--bb-sidebar2-top-row-border-color);
|
||||
border-right: 1px solid var(--bb-sidebar2-top-row-border-color);
|
||||
}
|
||||
|
||||
.navbar-toggler[b-hjh7gjrlxu] {
|
||||
background-color: var(--bb-sidebar2-navbar-toggler-background-color);
|
||||
color: rgb(var(--bb-sidebar2-nav-item-text-active-color-rgb));
|
||||
padding: inherit !important;
|
||||
padding-right: 0.25rem !important;
|
||||
padding-left: 0.25rem !important;
|
||||
line-height: inherit !important;
|
||||
font-size: inherit !important;
|
||||
}
|
||||
|
||||
.navbar-toggler-icon[b-hjh7gjrlxu] {
|
||||
background-image: inherit !important;
|
||||
color: var(--bb-sidebar2-navbar-toggler-icon-color) !important;
|
||||
}
|
||||
|
||||
.navbar-toggler:focus[b-hjh7gjrlxu] {
|
||||
box-shadow: none !important;
|
||||
}
|
||||
|
||||
.navbar-brand[b-hjh7gjrlxu] {
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
|
||||
.navbar-brand-icon[b-hjh7gjrlxu] {
|
||||
color: var(--bb-sidebar2-brand-icon-color);
|
||||
}
|
||||
|
||||
.navbar-brand-image[b-hjh7gjrlxu] {
|
||||
height: var(--bb-sidebar2-brand-image-height);
|
||||
}
|
||||
|
||||
.navbar-brand-image img[b-hjh7gjrlxu] {
|
||||
width: var(--bb-sidebar2-brand-image-width);
|
||||
height: var(--bb-sidebar2-brand-image-height);
|
||||
vertical-align: initial !important;
|
||||
}
|
||||
|
||||
.navbar-brand-text[b-hjh7gjrlxu] {
|
||||
color: var(--bb-sidebar2-title-text-color);
|
||||
font-weight: 600 !important;
|
||||
}
|
||||
|
||||
.navbar-brand-badge[b-hjh7gjrlxu] {
|
||||
color: var(--bb-sidebar2-title-badge-text-color);
|
||||
background-color: var(--bb-sidebar2-title-badge-background-color);
|
||||
}
|
||||
|
||||
@media (min-width: 641px) {
|
||||
.navbar-toggler[b-hjh7gjrlxu] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.collapse[b-hjh7gjrlxu] {
|
||||
/* Never collapse the sidebar for wide screens */
|
||||
display: block;
|
||||
}
|
||||
|
||||
.nav-scrollable[b-hjh7gjrlxu] {
|
||||
/* Allow sidebar to scroll for tall menus */
|
||||
height: calc(100vh - 3.5rem);
|
||||
overflow-y: auto;
|
||||
}
|
||||
}
|
||||
/* _content/Blazor.Bootstrap/Components/Sidebar2/Sidebar2Item.razor.rz.scp.css */
|
||||
.bb-sidebar2.collapsed .expanded-only[b-3gpeuglz5y] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.bb-sidebar2.collapsed .bi.expanded-only[b-3gpeuglz5y] {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.bb-sidebar2 .nav-link-icon[b-3gpeuglz5y] {
|
||||
padding-bottom: 0.5rem;
|
||||
padding-top: 0.5rem;
|
||||
}
|
||||
|
||||
.bb-sidebar2 nav .nav-item[b-3gpeuglz5y] a {
|
||||
color: var(--bb-sidebar2-nav-item-text-color);
|
||||
align-items: center;
|
||||
padding: 0.5rem 1rem;
|
||||
}
|
||||
|
||||
.bb-sidebar2 nav .nav-item[b-3gpeuglz5y] a:hover {
|
||||
background-color: var(--bb-sidebar2-nav-item-background-hover-color);
|
||||
color: var(--bb-sidebar2-nav-item-text-hover-color);
|
||||
}
|
||||
|
||||
.bb-sidebar2 nav .nav-item[b-3gpeuglz5y] a.active {
|
||||
background-color: var(--bb-sidebar2-nav-item-background-hover-color);
|
||||
color: var(--bb-sidebar2-nav-item-text-active-color);
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
/* MDN REFERENCE: https://developer.mozilla.org/en-US/docs/Web/CSS/:has#browser_compatibility */
|
||||
.bb-sidebar2 nav .nav-item.nav-item-group:has(.nav-link.active)[b-3gpeuglz5y] {
|
||||
background-color: var(--bb-sidebar2-nav-item-group-background-color);
|
||||
}
|
||||
|
||||
.bb-sidebar2 nav .nav-item.nav-item-group:has(.nav-item-group.active)[b-3gpeuglz5y] {
|
||||
background-color: var(--bb-sidebar2-nav-item-group-background-color);
|
||||
}
|
||||
|
||||
.bb-sidebar2 nav .nav-item.nav-item-group.active[b-3gpeuglz5y] {
|
||||
background-color: var(--bb-sidebar2-nav-item-group-background-color);
|
||||
}
|
||||
/* _content/Blazor.Bootstrap/Components/Sidebar2/Sidebar2ItemGroup.razor.rz.scp.css */
|
||||
/* _content/Blazor.Bootstrap/Components/Sidebar/Sidebar.razor.rz.scp.css */
|
||||
.bb-sidebar[b-h9l5f7lx3r] {
|
||||
background-color: var(--bb-sidebar-background-color);
|
||||
}
|
||||
|
||||
.bb-sidebar.collapsed[b-h9l5f7lx3r] {
|
||||
width: var(--bb-sidebar-collapsed-width);
|
||||
}
|
||||
|
||||
.bb-sidebar.collapsed .expanded-only[b-h9l5f7lx3r] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@media (min-width: 641px) {
|
||||
.bb-sidebar[b-h9l5f7lx3r] {
|
||||
width: var(--bb-sidebar-width);
|
||||
position: sticky;
|
||||
top: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.navbar-toggler[b-h9l5f7lx3r] {
|
||||
background-color: var(--bb-sidebar-navbar-toggler-background-color);
|
||||
color: rgb(var(--bb-sidebar-nav-item-text-active-color-rgb));
|
||||
padding: inherit !important;
|
||||
padding-right: 0.25rem !important;
|
||||
padding-left: 0.25rem !important;
|
||||
line-height: inherit !important;
|
||||
font-size: inherit !important;
|
||||
}
|
||||
|
||||
.navbar-toggler-icon[b-h9l5f7lx3r] {
|
||||
background-image: inherit !important;
|
||||
color: var(--bb-sidebar-navbar-toggler-icon-color) !important;
|
||||
}
|
||||
|
||||
.navbar-toggler:focus[b-h9l5f7lx3r] {
|
||||
box-shadow: none !important;
|
||||
}
|
||||
|
||||
.bb-sidebar-top-row[b-h9l5f7lx3r] {
|
||||
height: 3.5rem;
|
||||
background-color: var(--bb-sidebar-top-row-background-color);
|
||||
border-bottom: 1px solid var(--bb-sidebar-top-row-border-color);
|
||||
border-right: 1px solid var(--bb-sidebar-top-row-border-color);
|
||||
}
|
||||
|
||||
.bb-sidebar-content[b-h9l5f7lx3r] {
|
||||
border-right: 1px solid var(--bb-sidebar-content-border-color);
|
||||
}
|
||||
|
||||
.navbar-brand[b-h9l5f7lx3r] {
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
|
||||
.navbar-brand-icon[b-h9l5f7lx3r] {
|
||||
color: var(--bb-sidebar-brand-icon-color);
|
||||
}
|
||||
|
||||
.navbar-brand-image[b-h9l5f7lx3r] {
|
||||
height: var(--bb-sidebar-brand-image-height);
|
||||
}
|
||||
|
||||
.navbar-brand-image img[b-h9l5f7lx3r] {
|
||||
width: var(--bb-sidebar-brand-image-width);
|
||||
height: var(--bb-sidebar-brand-image-height);
|
||||
vertical-align: initial !important;
|
||||
}
|
||||
|
||||
.navbar-brand-text[b-h9l5f7lx3r] {
|
||||
color: var(--bb-sidebar-title-text-color);
|
||||
font-weight: 600 !important;
|
||||
}
|
||||
|
||||
.navbar-brand-badge[b-h9l5f7lx3r] {
|
||||
color: var(--bb-sidebar-title-badge-text-color);
|
||||
background-color: var(--bb-sidebar-title-badge-background-color);
|
||||
}
|
||||
|
||||
@media (min-width: 641px) {
|
||||
.navbar-toggler[b-h9l5f7lx3r] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.collapse[b-h9l5f7lx3r] {
|
||||
/* Never collapse the sidebar for wide screens */
|
||||
display: block;
|
||||
}
|
||||
|
||||
.nav-scrollable[b-h9l5f7lx3r] {
|
||||
/* Allow sidebar to scroll for tall menus */
|
||||
height: calc(100vh - 3.5rem);
|
||||
overflow-y: auto;
|
||||
}
|
||||
}
|
||||
/* _content/Blazor.Bootstrap/Components/Sidebar/SidebarItem.razor.rz.scp.css */
|
||||
.bb-sidebar.collapsed .expanded-only[b-jbgvk8pcne] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.bb-sidebar.collapsed .bi.expanded-only[b-jbgvk8pcne] {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.bb-sidebar .nav-link-icon[b-jbgvk8pcne] {
|
||||
padding-bottom: 0.5rem;
|
||||
padding-top: 0.5rem;
|
||||
}
|
||||
|
||||
.bb-sidebar nav .nav-item[b-jbgvk8pcne] a {
|
||||
color: var(--bb-sidebar-nav-item-text-color);
|
||||
align-items: center;
|
||||
padding: 0.5rem 1rem;
|
||||
}
|
||||
|
||||
.bb-sidebar nav .nav-item[b-jbgvk8pcne] a:hover {
|
||||
background-color: var(--bb-sidebar-nav-item-background-hover-color);
|
||||
color: var(--bb-sidebar-nav-item-text-hover-color);
|
||||
}
|
||||
|
||||
.bb-sidebar nav .nav-item[b-jbgvk8pcne] a.active {
|
||||
background-color: var(--bb-sidebar-nav-item-background-hover-color);
|
||||
color: var(--bb-sidebar-nav-item-text-active-color);
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
/* MDN REFERENCE: https://developer.mozilla.org/en-US/docs/Web/CSS/:has#browser_compatibility */
|
||||
.bb-sidebar nav .nav-item.nav-item-group:has(.nav-link.active)[b-jbgvk8pcne] {
|
||||
background-color: var(--bb-sidebar-nav-item-group-background-color);
|
||||
}
|
||||
/* _content/Blazor.Bootstrap/Components/Sidebar/SidebarItemGroup.razor.rz.scp.css */
|
||||
/* _content/Blazor.Bootstrap/Components/SortableList/SortableList.razor.rz.scp.css */
|
||||
[b-jo00jd6nmv] .bb-sortable-list-handle {
|
||||
cursor: grab !important;
|
||||
}
|
||||
/* _content/Blazor.Bootstrap/Components/Spinner/Spinner.razor.rz.scp.css */
|
||||
/* scss-docs-start spinner-dots-keyframes */
|
||||
@keyframes spinner-dots-b-pp5swe6s25 {
|
||||
0% {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
50%, 100% {
|
||||
opacity: .3;
|
||||
}
|
||||
}
|
||||
|
||||
/* scss-docs-end spinner-dots-keyframes */
|
||||
.spinner-dots[b-pp5swe6s25] {
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.spinner-dots > circle:first-of-type[b-pp5swe6s25],
|
||||
.spinner-dots > circle:last-of-type[b-pp5swe6s25],
|
||||
.spinner-dots > circle:nth-of-type(2)[b-pp5swe6s25] {
|
||||
fill: currentcolor;
|
||||
animation: spinner-dots-b-pp5swe6s25 .75s infinite ease-in-out alternate;
|
||||
}
|
||||
|
||||
.spinner-dots > circle:nth-of-type(2)[b-pp5swe6s25] {
|
||||
animation-delay: .25s;
|
||||
}
|
||||
|
||||
.spinner-dots > circle:last-of-type[b-pp5swe6s25] {
|
||||
animation-delay: .5s;
|
||||
}
|
||||
|
||||
/* Size: START */
|
||||
|
||||
/* default */
|
||||
.spinner-border-sm[b-pp5swe6s25] {
|
||||
--bs-spinner-width: 1rem;
|
||||
--bs-spinner-height: 1rem;
|
||||
--bs-spinner-border-width: 0.25em;
|
||||
--bs-spinner-vertical-align: -0.125em;
|
||||
}
|
||||
/* custom CSS classes */
|
||||
.spinner-border-md[b-pp5swe6s25] {
|
||||
--bs-spinner-width: 2rem;
|
||||
--bs-spinner-height: 2rem;
|
||||
--bs-spinner-border-width: 0.25em;
|
||||
--bs-spinner-vertical-align: -0.125em;
|
||||
}
|
||||
.spinner-border-lg[b-pp5swe6s25] {
|
||||
--bs-spinner-width: 3rem;
|
||||
--bs-spinner-height: 3rem;
|
||||
--bs-spinner-border-width: 0.25em;
|
||||
--bs-spinner-vertical-align: -0.125em;
|
||||
}
|
||||
.spinner-border-xl[b-pp5swe6s25] {
|
||||
--bs-spinner-width: 4rem;
|
||||
--bs-spinner-height: 4rem;
|
||||
--bs-spinner-border-width: 0.25em;
|
||||
--bs-spinner-vertical-align: -0.125em;
|
||||
}
|
||||
|
||||
/* default */
|
||||
.spinner-grow-sm[b-pp5swe6s25] {
|
||||
--bs-spinner-width: 1rem;
|
||||
--bs-spinner-height: 1rem;
|
||||
--bs-spinner-border-width: 0.25em;
|
||||
--bs-spinner-vertical-align: -0.125em;
|
||||
}
|
||||
/* custom CSS classes */
|
||||
.spinner-grow-md[b-pp5swe6s25] {
|
||||
--bs-spinner-width: 2rem;
|
||||
--bs-spinner-height: 2rem;
|
||||
--bs-spinner-border-width: 0.25em;
|
||||
--bs-spinner-vertical-align: -0.125em;
|
||||
}
|
||||
.spinner-grow-lg[b-pp5swe6s25] {
|
||||
--bs-spinner-width: 3rem;
|
||||
--bs-spinner-height: 3rem;
|
||||
--bs-spinner-border-width: 0.25em;
|
||||
--bs-spinner-vertical-align: -0.125em;
|
||||
}
|
||||
.spinner-grow-xl[b-pp5swe6s25] {
|
||||
--bs-spinner-width: 4rem;
|
||||
--bs-spinner-height: 4rem;
|
||||
--bs-spinner-border-width: 0.25em;
|
||||
--bs-spinner-vertical-align: -0.125em;
|
||||
}
|
||||
|
||||
/* Size: END */
|
||||
550
bin/wwwroot/_content/Blazor.Bootstrap/blazor.bootstrap.css
Normal file
550
bin/wwwroot/_content/Blazor.Bootstrap/blazor.bootstrap.css
Normal file
@@ -0,0 +1,550 @@
|
||||
:root {
|
||||
/* preload */
|
||||
--bb-preload-modal-z-index: 2055;
|
||||
--bb-preload-modal-backdrop-z-index: 2050;
|
||||
/* confirm dialog */
|
||||
--bb-confirm-dialog-z-index: 2045;
|
||||
--bb-confirm-dialog-backdrop-z-index: 2040;
|
||||
/* offcanvas */
|
||||
--bb-offcanvas-close-icon-font-size: 2rem;
|
||||
--bb-offcanvas-footer-padding-y: 1rem;
|
||||
--bb-offcanvas-footer-padding-x: 1rem;
|
||||
--bb-offcanvas-horizontal-width-sm: 300px;
|
||||
--bb-offcanvas-horizontal-width-lg: 800px;
|
||||
/* sidebar */
|
||||
--bb-violet: #712cf9;
|
||||
--bb-sidebar-width: 270px;
|
||||
--bb-sidebar-collapsed-width: 50px;
|
||||
--bb-sidebar-background-color: rgba(255, 255, 255, 1);
|
||||
--bb-sidebar-top-row-background-color: var(--bb-violet);
|
||||
--bb-sidebar-top-row-border-color: var(--bb-violet);
|
||||
--bb-sidebar-title-text-color: rgb(255,255,255);
|
||||
--bb-sidebar-brand-icon-color: rgb(255,255,255);
|
||||
--bb-sidebar-brand-image-width: 24px;
|
||||
--bb-sidebar-brand-image-height: 24px;
|
||||
--bb-sidebar-title-badge-text-color: var(--bb-violet);
|
||||
--bb-sidebar-title-badge-background-color: rgb(255,255,255);
|
||||
--bb-sidebar-navbar-toggler-icon-color: var(--bb-violet);
|
||||
--bb-sidebar-navbar-toggler-background-color: rgb(255,255,255);
|
||||
--bb-sidebar-content-border-color: rgb(214,213,213);
|
||||
--bb-sidebar-nav-item-text-color: rgba(0,0,0,0.9);
|
||||
--bb-sidebar-nav-item-text-active-color-rgb: 112.520718,44.062154,249.437846;
|
||||
--bb-sidebar-nav-item-text-hover-color: rgba(var(--bb-sidebar-nav-item-text-active-color-rgb),0.9);
|
||||
--bb-sidebar-nav-item-text-active-color: rgba(var(--bb-sidebar-nav-item-text-active-color-rgb),0.9);
|
||||
--bb-sidebar-nav-item-background-hover-color: rgba(var(--bb-sidebar-nav-item-text-active-color-rgb),0.08);
|
||||
--bb-sidebar-nav-item-group-background-color: rgba(var(--bb-sidebar-nav-item-text-active-color-rgb),0.08);
|
||||
/* custom tooltip */
|
||||
--bb-tooltip-primary: var(--bs-primary);
|
||||
--bb-tooltip-secondary: var(--bs-secondary);
|
||||
--bb-tooltip-success: var(--bs-success);
|
||||
--bb-tooltip-danger: var(--bs-danger);
|
||||
--bb-tooltip-warning: var(--bs-warning);
|
||||
--bb-tooltip-info: var(--bs-info);
|
||||
--bb-tooltip-light: var(--bs-light);
|
||||
--bb-tooltip-dark: var(--bs-dark);
|
||||
--bb-tooltip-color-white: var(--bs-white);
|
||||
--bb-tooltip-color-dark: var(--bs-black);
|
||||
/* border */
|
||||
--bs-border-radius-xs: 0.125rem;
|
||||
--bs-border-radius-md: 0.375rem;
|
||||
/* table */
|
||||
--bb-table-sticky-background-color: #fff;
|
||||
--bb-table-freeze-column-background-color: #efefef;
|
||||
/* callout */
|
||||
--bb-callout-link: 10, 88, 202;
|
||||
--bb-callout-code-color: #ab296a;
|
||||
/* sidebar2 */
|
||||
--bb-sidebar2-width: 270px;
|
||||
--bb-sidebar2-collapsed-width: 50px;
|
||||
--bb-sidebar2-background-color: rgba(255, 255, 255, 1);
|
||||
--bb-sidebar2-top-row-background-color: var(--bb-violet);
|
||||
--bb-sidebar2-top-row-border-color: var(--bb-violet);
|
||||
--bb-sidebar2-title-text-color: rgb(255,255,255);
|
||||
--bb-sidebar2-brand-icon-color: rgb(255,255,255);
|
||||
--bb-sidebar2-brand-image-width: 24px;
|
||||
--bb-sidebar2-brand-image-height: 24px;
|
||||
--bb-sidebar2-title-badge-text-color: var(--bb-violet);
|
||||
--bb-sidebar2-title-badge-background-color: rgb(255,255,255);
|
||||
--bb-sidebar2-navbar-toggler-icon-color: var(--bb-violet);
|
||||
--bb-sidebar2-navbar-toggler-background-color: rgb(255,255,255);
|
||||
--bb-sidebar2-content-border-color: rgb(214,213,213);
|
||||
--bb-sidebar2-nav-item-text-color: rgba(0,0,0,0.9);
|
||||
--bb-sidebar2-nav-item-text-active-color-rgb: 112.520718,44.062154,249.437846;
|
||||
--bb-sidebar2-nav-item-text-hover-color: rgba(var(--bb-sidebar2-nav-item-text-active-color-rgb),0.9);
|
||||
--bb-sidebar2-nav-item-text-active-color: rgba(var(--bb-sidebar2-nav-item-text-active-color-rgb),0.9);
|
||||
--bb-sidebar2-nav-item-background-hover-color: rgba(var(--bb-sidebar2-nav-item-text-active-color-rgb),0.08);
|
||||
--bb-sidebar2-nav-item-group-background-color: rgba(var(--bb-sidebar2-nav-item-text-active-color-rgb),0.08);
|
||||
}
|
||||
|
||||
/* preload */
|
||||
.modal-page-loading {
|
||||
z-index: var(--bb-preload-modal-z-index) !important;
|
||||
}
|
||||
|
||||
.modal-backdrop-page-loading {
|
||||
z-index: var(--bb-preload-modal-backdrop-z-index) !important;
|
||||
}
|
||||
|
||||
.modal-content-page-loading {
|
||||
background-color: inherit !important;
|
||||
border: inherit !important;
|
||||
}
|
||||
|
||||
/* confirm dialog */
|
||||
.modal-confirmation {
|
||||
z-index: var(--bb-confirm-dialog-z-index) !important;
|
||||
}
|
||||
|
||||
.modal-backdrop-confirmation {
|
||||
z-index: var(--bb-confirm-dialog-backdrop-z-index) !important;
|
||||
}
|
||||
|
||||
/* offcanvas */
|
||||
.offcanvas-footer {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: var(--bb-offcanvas-footer-padding-y) var(--bb-offcanvas-footer-padding-x);
|
||||
}
|
||||
|
||||
.offcanvas-start.bb-offcanvas-sm,
|
||||
.offcanvas-end.bb-offcanvas-sm {
|
||||
width: var(--bb-offcanvas-horizontal-width-sm);
|
||||
}
|
||||
|
||||
.offcanvas-start.bb-offcanvas-lg,
|
||||
.offcanvas-end.bb-offcanvas-lg {
|
||||
width: var(--bb-offcanvas-horizontal-width-lg);
|
||||
}
|
||||
|
||||
/* grid - filters */
|
||||
table button.dropdown-toggle.bb-grid-filter::after {
|
||||
content: none !important;
|
||||
}
|
||||
|
||||
.filter-symbol {
|
||||
width: 2.25rem;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.bb-grid-pagination-text {
|
||||
padding: .375rem;
|
||||
}
|
||||
|
||||
/* grid - fixed header */
|
||||
.bb-table {
|
||||
/* NOTE: intentionally overriding the behavior */
|
||||
--bs-table-color: inherit !important;
|
||||
--bs-table-bg: inherit !important;
|
||||
}
|
||||
|
||||
.bb-table-sticky {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
margin-bottom: 0rem;
|
||||
}
|
||||
|
||||
.bb-table-sticky > thead > tr {
|
||||
border-top-width: 0 !important;
|
||||
border-bottom-width: 0 !important;
|
||||
}
|
||||
|
||||
.bb-table-sticky > thead > tr > th {
|
||||
background-color: var(--bb-table-sticky-background-color);
|
||||
top: 0px;
|
||||
position: sticky;
|
||||
border-style: solid;
|
||||
border-color: var(--bs-table-border-color);
|
||||
box-shadow: inset 0 1px 0 var(--bs-table-border-color), inset 0 -1px 0 var(--bs-table-border-color);
|
||||
}
|
||||
|
||||
.bb-table-sticky > thead > tr:nth-child(2) > th {
|
||||
box-shadow: inset 0 0 0 var(--bs-table-border-color), inset 0 -1px 0 var(--bs-table-border-color);
|
||||
}
|
||||
|
||||
/* below CSS is applicable, if filters are enabled. */
|
||||
.bb-table-sticky > thead > tr:nth-child(2) > th {
|
||||
top: 40px;
|
||||
}
|
||||
|
||||
.bb-table-sticky > tbody > tr:nth-child(1) {
|
||||
border-top-width: 0 !important;
|
||||
}
|
||||
|
||||
.bb-table-sticky > thead > tr > th > div > ul.dropdown-menu.show {
|
||||
top: 6px !important;
|
||||
}
|
||||
|
||||
/* freeze columns */
|
||||
table > thead > tr > th.freeze-column {
|
||||
position: sticky;
|
||||
background-color: var(--bb-table-freeze-column-background-color);
|
||||
z-index: 5;
|
||||
border-left-width: 0px !important;
|
||||
border-right-width: 0px !important;
|
||||
}
|
||||
|
||||
table > thead > tr:nth-child(2) > th.freeze-column {
|
||||
position: sticky;
|
||||
background-color: var(--bb-table-freeze-column-background-color);
|
||||
z-index: 5;
|
||||
}
|
||||
|
||||
/* freeze column left */
|
||||
/* th: row-1 */
|
||||
table > thead > tr > th:not(.freeze-column-right):first-child.freeze-column {
|
||||
box-shadow: inset 1px 0 0 var(--bs-table-border-color), inset 0 1px 0 var(--bs-table-border-color), inset 0 -1px 0 var(--bs-table-border-color);
|
||||
}
|
||||
|
||||
table > thead > tr > th:not(.freeze-column-right).freeze-column {
|
||||
box-shadow: inset 1px 0 0 var(--bs-table-border-color), inset -1px 0 0 var(--bs-table-border-color), inset 0 1px 0 var(--bs-table-border-color), inset 0 -1px 0 var(--bs-table-border-color);
|
||||
}
|
||||
|
||||
table > thead > tr > th:not(.freeze-column-right):last-child.freeze-column {
|
||||
box-shadow: inset 1px 0 0 var(--bs-table-border-color), inset 0 -1px 0 var(--bs-table-border-color), inset -1px 0 0 var(--bs-table-border-color);
|
||||
}
|
||||
|
||||
/* th: row-2 */
|
||||
table > thead > tr:nth-child(2) > th:not(.freeze-column-right):first-child.freeze-column {
|
||||
box-shadow: inset 1px 0 0 var(--bs-table-border-color), inset 0 0 0 var(--bs-table-border-color), inset 0 -1px 0 var(--bs-table-border-color);
|
||||
}
|
||||
|
||||
table > thead > tr:nth-child(2) > th:not(.freeze-column-right).freeze-column {
|
||||
box-shadow: inset 1px 0 0 var(--bs-table-border-color), inset -1px 0 0 var(--bs-table-border-color), inset 0 0 0 var(--bs-table-border-color), inset 0 -1px 0 var(--bs-table-border-color);
|
||||
}
|
||||
|
||||
table > thead > tr:nth-child(2) > th:not(.freeze-column-right):last-child.freeze-column {
|
||||
box-shadow: inset 1px 0 0 var(--bs-table-border-color), inset 0 0 0 var(--bs-table-border-color), inset -1px 0 0 var(--bs-table-border-color);
|
||||
}
|
||||
|
||||
table > tbody > tr > td.freeze-column {
|
||||
position: sticky;
|
||||
background-color: var(--bb-table-freeze-column-background-color);
|
||||
z-index: 4;
|
||||
border-left-width: 0px !important;
|
||||
border-right-width: 0px !important;
|
||||
}
|
||||
|
||||
table > tbody > tr > td:not(.freeze-column-right):first-child.freeze-column {
|
||||
box-shadow: inset 1px 0 0 var(--bs-table-border-color), inset 0 0 0 var(--bs-table-border-color), inset 0 0 0 var(--bs-table-border-color);
|
||||
}
|
||||
|
||||
table > tbody > tr > td:not(.freeze-column-right).freeze-column {
|
||||
box-shadow: inset 1px 0 0 var(--bs-table-border-color), inset 0 0 0 var(--bs-table-border-color), inset -1px 0 0 var(--bs-table-border-color);
|
||||
}
|
||||
|
||||
table > tbody > tr > td:not(.freeze-column-right):last-child.freeze-column {
|
||||
box-shadow: inset 0 0 0 var(--bs-table-border-color), inset 0 0 0 var(--bs-table-border-color), inset 0 0 0 var(--bs-table-border-color);
|
||||
}
|
||||
|
||||
/* freeze column right */
|
||||
table > thead > tr > th:is(.freeze-column-right) {
|
||||
box-shadow: inset 1px 0 0 var(--bs-table-border-color), inset 0 1px 0 var(--bs-table-border-color), inset 0 -1px 0 var(--bs-table-border-color);
|
||||
}
|
||||
|
||||
table > thead > tr:nth-child(2) > th:is(.freeze-column-right) {
|
||||
box-shadow: inset 1px 0 0 var(--bs-table-border-color), inset 0 0 0 var(--bs-table-border-color), inset 0 -1px 0 var(--bs-table-border-color);
|
||||
}
|
||||
|
||||
table > tbody > tr > td:is(.freeze-column-right) {
|
||||
box-shadow: inset 1px 0 0 var(--bs-table-border-color);
|
||||
}
|
||||
|
||||
/* below CSS is applicable, if scrollLeft > 0 */
|
||||
/* thead: first-row -> first th */
|
||||
table > thead > tr > th:not(.freeze-column-right):first-child.freeze-column-active {
|
||||
box-shadow: inset 1px 0 0 var(--bs-table-border-color), inset 0 1px 0 var(--bs-table-border-color), inset 0 -1px 0 var(--bs-table-border-color);
|
||||
}
|
||||
/* thead: second-row -> first th */
|
||||
table > thead > tr:nth-child(2) > th:not(.freeze-column-right):first-child.freeze-column-active {
|
||||
box-shadow: inset 1px 0 0 var(--bs-table-border-color), inset 0 0 0 var(--bs-table-border-color), inset 0 -1px 0 var(--bs-table-border-color);
|
||||
}
|
||||
/* thead: first-row -> all th's */
|
||||
table > thead > tr > th:not(.freeze-column-right).freeze-column-active {
|
||||
box-shadow: inset 1px 0 0 var(--bs-table-border-color), inset -1px 0 0 var(--bs-table-border-color), inset 0 1px 0 var(--bs-table-border-color), inset 0 -1px 0 var(--bs-table-border-color);
|
||||
}
|
||||
/* thead: second-row -> all th's */
|
||||
table > thead > tr:nth-child(2) > th:not(.freeze-column-right).freeze-column-active {
|
||||
box-shadow: inset 1px 0 0 var(--bs-table-border-color), inset -1px 0 0 var(--bs-table-border-color), inset 0 0 0 var(--bs-table-border-color), inset 0 -1px 0 var(--bs-table-border-color);
|
||||
}
|
||||
/* thead: first-row -> all th's, right freeze columns only */
|
||||
table > thead > tr > th:is(.freeze-column-right).freeze-column-active {
|
||||
box-shadow: inset 1px 0 0 var(--bs-table-border-color), inset 0 1px 0 var(--bs-table-border-color), inset 0 -1px 0 var(--bs-table-border-color);
|
||||
}
|
||||
/* thead: second-row -> all th's, right freeze columns only */
|
||||
table > thead > tr:nth-child(2) > th:is(.freeze-column-right).freeze-column-active {
|
||||
box-shadow: inset 1px 0 0 var(--bs-table-border-color), inset 0 0 0 var(--bs-table-border-color), inset 0 -1px 0 var(--bs-table-border-color);
|
||||
}
|
||||
|
||||
/* tbody: every row -> first td, except right freeze columns */
|
||||
table > tbody > tr > td:not(.freeze-column-right):first-child.freeze-column-active {
|
||||
box-shadow: inset 1px 0 0 var(--bs-table-border-color);
|
||||
}
|
||||
/* tbody: every row -> all td's, except right freeze columns */
|
||||
table > tbody > tr > td:not(.freeze-column-right).freeze-column-active {
|
||||
box-shadow: inset 1px 0 0 var(--bs-table-border-color), inset -1px 0 0 var(--bs-table-border-color);
|
||||
}
|
||||
|
||||
/* tbody: every row -> all td's, right freeze columns only */
|
||||
table > tbody > tr > td:is(.freeze-column-right).freeze-column-active {
|
||||
box-shadow: inset 1px 0 0 var(--bs-table-border-color);
|
||||
}
|
||||
|
||||
/* scrollbar */
|
||||
.v-scroll-auto {
|
||||
overflow-y: auto !important;
|
||||
}
|
||||
|
||||
.scroll-hidden {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.bb-scrollbar {
|
||||
scrollbar-color: rgba(0,0,0,.2) transparent;
|
||||
scrollbar-color: rgba(0, 0, 0, .2) transparent;
|
||||
scrollbar-width: thin
|
||||
}
|
||||
|
||||
.bb-scrollbar.scroll-auto-hide {
|
||||
scrollbar-color: transparent transparent
|
||||
}
|
||||
|
||||
.bb-scrollbar.scroll-auto-hide:hover {
|
||||
scrollbar-color: rgba(0,0,0,.2) transparent;
|
||||
scrollbar-color: rgba(0, 0, 0, .2) transparent
|
||||
}
|
||||
|
||||
.bb-scrollbar::-webkit-scrollbar {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
}
|
||||
|
||||
.bb-scrollbar::-webkit-scrollbar-thumb {
|
||||
border: 6px solid transparent;
|
||||
background: rgba(0,0,0,.2);
|
||||
background: rgba(0, 0, 0, .2);
|
||||
border-radius: 10px;
|
||||
background-clip: padding-box
|
||||
}
|
||||
|
||||
.bb-scrollbar::-webkit-scrollbar-corner {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.bb-scrollbar::-webkit-scrollbar-thumb:vertical {
|
||||
min-height: 30px
|
||||
}
|
||||
|
||||
.bb-scrollbar::-webkit-scrollbar-thumb:horizontal {
|
||||
min-width: 30px
|
||||
}
|
||||
|
||||
.bb-scrollbar.scroll-auto-hide::-webkit-scrollbar-thumb {
|
||||
background: transparent;
|
||||
background-clip: padding-box
|
||||
}
|
||||
|
||||
.bb-scrollbar.scroll-auto-hide:hover::-webkit-scrollbar-thumb {
|
||||
background: rgba(0,0,0,.2);
|
||||
background: rgba(0, 0, 0, .2);
|
||||
background-clip: padding-box
|
||||
}
|
||||
|
||||
.bb-scrollbar::-webkit-scrollbar-thumb {
|
||||
border: 6px solid transparent;
|
||||
background: rgba(0,0,0,.2);
|
||||
background: rgba(0, 0, 0, .2);
|
||||
border-radius: 10px;
|
||||
background-clip: padding-box;
|
||||
}
|
||||
|
||||
.bb-scrollbar::-webkit-scrollbar-thumb:hover {
|
||||
background: rgba(0,0,0,.3);
|
||||
background: rgba(0, 0, 0, .3);
|
||||
background-clip: padding-box;
|
||||
border: 4px solid transparent
|
||||
}
|
||||
|
||||
.bb-scrollbar-hidden {
|
||||
-ms-overflow-style: none;
|
||||
scrollbar-width: none
|
||||
}
|
||||
|
||||
.bb-scrollbar-hidden::-webkit-scrollbar {
|
||||
width: 0
|
||||
}
|
||||
|
||||
/* layout */
|
||||
@media (min-width: 641px) {
|
||||
.bb-page {
|
||||
flex-direction: row !important;
|
||||
}
|
||||
|
||||
.bb-top-row {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.top-row, article {
|
||||
padding-left: 2rem !important;
|
||||
padding-right: 1.5rem !important;
|
||||
}
|
||||
}
|
||||
|
||||
.bb-page {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
main {
|
||||
flex: 1;
|
||||
overflow-x: hidden;
|
||||
height: 100vh;
|
||||
}
|
||||
|
||||
.main {
|
||||
flex: 1;
|
||||
overflow-x: hidden;
|
||||
height: 100vh;
|
||||
}
|
||||
|
||||
.bb-top-row {
|
||||
background-color: #f7f7f7;
|
||||
border-bottom: 1px solid #d6d5d5;
|
||||
justify-content: flex-end;
|
||||
height: 3.5rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
/* tooltip */
|
||||
.bb-tooltip-primary {
|
||||
--bs-tooltip-bg: var(--bb-tooltip-primary);
|
||||
--bs-tooltip-color: var(--bb-tooltip-color-white);
|
||||
}
|
||||
|
||||
.bb-tooltip-secondary {
|
||||
--bs-tooltip-bg: var(--bb-tooltip-secondary);
|
||||
--bs-tooltip-color: var(--bb-tooltip-color-white);
|
||||
}
|
||||
|
||||
.bb-tooltip-success {
|
||||
--bs-tooltip-bg: var(--bb-tooltip-success);
|
||||
--bs-tooltip-color: var(--bb-tooltip-color-white);
|
||||
}
|
||||
|
||||
.bb-tooltip-danger {
|
||||
--bs-tooltip-bg: var(--bb-tooltip-danger);
|
||||
--bs-tooltip-color: var(--bb-tooltip-color-white);
|
||||
}
|
||||
|
||||
.bb-tooltip-warning {
|
||||
--bs-tooltip-bg: var(--bb-tooltip-warning);
|
||||
--bs-tooltip-color: var(--bb-tooltip-color-dark);
|
||||
}
|
||||
|
||||
.bb-tooltip-info {
|
||||
--bs-tooltip-bg: var(--bb-tooltip-info);
|
||||
--bs-tooltip-color: var(--bb-tooltip-color-dark);
|
||||
}
|
||||
|
||||
.bb-tooltip-light {
|
||||
--bs-tooltip-bg: var(--bb-tooltip-light);
|
||||
--bs-tooltip-color: var(--bb-tooltip-color-dark);
|
||||
}
|
||||
|
||||
.bb-tooltip-dark {
|
||||
--bs-tooltip-bg: var(--bb-tooltip-dark);
|
||||
--bs-tooltip-color: var(--bb-tooltip-color-white);
|
||||
}
|
||||
|
||||
/* button */
|
||||
.btn-xs {
|
||||
--bs-btn-padding-y: 0.125rem;
|
||||
--bs-btn-padding-x: 0.25rem;
|
||||
--bs-btn-font-size: 0.75rem;
|
||||
--bs-btn-border-radius: var(--bs-border-radius-sm);
|
||||
}
|
||||
|
||||
.btn-sm {
|
||||
--bs-btn-padding-y: 0.25rem;
|
||||
--bs-btn-padding-x: 0.5rem;
|
||||
--bs-btn-font-size: 0.875rem;
|
||||
--bs-btn-border-radius: var(--bs-border-radius-sm);
|
||||
}
|
||||
|
||||
.btn-md {
|
||||
--bs-btn-padding-y: 0.375rem;
|
||||
--bs-btn-padding-x: 0.75rem;
|
||||
--bs-btn-font-size: 1rem;
|
||||
--bs-btn-border-radius: var(--bs-border-radius-md);
|
||||
}
|
||||
|
||||
.btn-lg {
|
||||
--bs-btn-padding-y: 0.5rem;
|
||||
--bs-btn-padding-x: 1rem;
|
||||
--bs-btn-font-size: 1.25rem;
|
||||
--bs-btn-border-radius: var(--bs-border-radius-lg);
|
||||
}
|
||||
|
||||
.btn-xl {
|
||||
--bs-btn-padding-y: 0.625rem;
|
||||
--bs-btn-padding-x: 1.25rem;
|
||||
--bs-btn-font-size: 1.5rem;
|
||||
--bs-btn-border-radius: var(--bs-border-radius-lg);
|
||||
}
|
||||
|
||||
/* button > spinner */
|
||||
.spinner-border-xs {
|
||||
--bs-spinner-width: 0.5rem;
|
||||
--bs-spinner-height: 0.5rem;
|
||||
--bs-spinner-border-width: 0.125em;
|
||||
--bs-spinner-vertical-align: 0;
|
||||
}
|
||||
|
||||
.spinner-border-sm {
|
||||
--bs-spinner-width: 0.75rem;
|
||||
--bs-spinner-height: 0.75rem;
|
||||
--bs-spinner-border-width: 0.15em;
|
||||
--bs-spinner-vertical-align: 0;
|
||||
}
|
||||
|
||||
.spinner-border-md {
|
||||
--bs-spinner-width: 1rem;
|
||||
--bs-spinner-height: 1rem;
|
||||
--bs-spinner-border-width: 0.175em;
|
||||
--bs-spinner-vertical-align: -0.125em;
|
||||
}
|
||||
|
||||
.spinner-border-lg {
|
||||
--bs-spinner-width: 1.25rem;
|
||||
--bs-spinner-height: 1.25rem;
|
||||
--bs-spinner-border-width: 0.2em;
|
||||
--bs-spinner-vertical-align: -0.125em;
|
||||
}
|
||||
|
||||
.spinner-border-xl {
|
||||
--bs-spinner-width: 1.5rem;
|
||||
--bs-spinner-height: 1.5rem;
|
||||
--bs-spinner-border-width: 0.225em;
|
||||
--bs-spinner-vertical-align: -0.125em;
|
||||
}
|
||||
|
||||
/* range */
|
||||
.bb-form-range-input {
|
||||
appearance: auto !important;
|
||||
}
|
||||
|
||||
.bb-range-data-list {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
writing-mode: vertical-lr;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/* pdf viewer */
|
||||
.pdf-viewer-dropdown-toggle::after {
|
||||
content: inherit !important;
|
||||
}
|
||||
1336
bin/wwwroot/_content/Blazor.Bootstrap/blazor.bootstrap.js
Normal file
1336
bin/wwwroot/_content/Blazor.Bootstrap/blazor.bootstrap.js
Normal file
File diff suppressed because it is too large
Load Diff
267
bin/wwwroot/_content/Blazor.Bootstrap/blazor.bootstrap.pdf.js
Normal file
267
bin/wwwroot/_content/Blazor.Bootstrap/blazor.bootstrap.pdf.js
Normal file
@@ -0,0 +1,267 @@
|
||||
import * as pdfJS from './pdfjs-4.0.379.min.mjs';
|
||||
import * as pdfWorker from './pdfjs-4.0.379.worker.min.mjs';
|
||||
|
||||
if (pdfJS != null && pdfWorker != null) {
|
||||
pdfJS.GlobalWorkerOptions.workerSrc = pdfWorker;
|
||||
}
|
||||
|
||||
function getCanvas(item) {
|
||||
if (isDomSupported() && typeof item === 'string') {
|
||||
item = document.getElementById(item);
|
||||
} else if (item && item.length) {
|
||||
// support for array based queries
|
||||
item = item[0];
|
||||
}
|
||||
|
||||
if (item && item.canvas !== undefined && item.canvas) {
|
||||
// support for any object associated to a canvas (including a context2d)
|
||||
item = item.canvas;
|
||||
}
|
||||
|
||||
return item;
|
||||
}
|
||||
|
||||
const getPdf = (key) => {
|
||||
const canvas = getCanvas(key);
|
||||
return Object.values(pdfInstances).filter((c) => c.canvas === canvas).pop();
|
||||
};
|
||||
|
||||
const pdfInstances = {};
|
||||
|
||||
class Pdf {
|
||||
static instances = pdfInstances;
|
||||
static getPdf = getPdf;
|
||||
|
||||
constructor(item) {
|
||||
const canvas = getCanvas(item);
|
||||
//const existingPdf = getPdf(canvas);
|
||||
|
||||
this.id = canvas.id;
|
||||
this.canvas = canvas;
|
||||
this.ctx = canvas.getContext('2d');
|
||||
this.pdfDoc = null;
|
||||
this.pageNum = 1;
|
||||
this.pagesCount = 0;
|
||||
this.pageRendering = false;
|
||||
this.pageNumPending = null;
|
||||
this.scale = 1;
|
||||
this.rotation = 0;
|
||||
|
||||
pdfInstances[this.id] = this;
|
||||
}
|
||||
}
|
||||
|
||||
export function firstPage(dotNetHelper, elementId) {
|
||||
const pdf = getPdf(elementId);
|
||||
|
||||
if (pdf == null || pdf.pageNum === 1)
|
||||
return;
|
||||
|
||||
if (pdf.pageNum > 1)
|
||||
pdf.pageNum = 1;
|
||||
|
||||
queueRenderPage(pdf, pdf.pageNum);
|
||||
|
||||
setPdfViewerMetaData(dotNetHelper, pdf);
|
||||
}
|
||||
|
||||
export function gotoPage(dotNetHelper, elementId, gotoPageNum) {
|
||||
const pdf = getPdf(elementId);
|
||||
|
||||
if (pdf == null || gotoPageNum < 1 || gotoPageNum > pdf.pagesCount)
|
||||
return;
|
||||
|
||||
pdf.pageNum = gotoPageNum;
|
||||
|
||||
queueRenderPage(pdf, pdf.pageNum);
|
||||
|
||||
setPdfViewerMetaData(dotNetHelper, pdf);
|
||||
}
|
||||
|
||||
export function lastPage(dotNetHelper, elementId) {
|
||||
const pdf = getPdf(elementId);
|
||||
|
||||
if (pdf == null || (pdf.pageNum === 1 && pdf.pageNum === pdf.pagesCount))
|
||||
return;
|
||||
|
||||
if (pdf.pageNum < pdf.pagesCount)
|
||||
pdf.pageNum = pdf.pagesCount;
|
||||
|
||||
queueRenderPage(pdf, pdf.pageNum);
|
||||
|
||||
setPdfViewerMetaData(dotNetHelper, pdf);
|
||||
}
|
||||
|
||||
export function nextPage(dotNetHelper, elementId) {
|
||||
const pdf = getPdf(elementId);
|
||||
|
||||
if (pdf == null || pdf.pageNum === pdf.pagesCount)
|
||||
return;
|
||||
|
||||
if (pdf.pageNum < pdf.pagesCount)
|
||||
pdf.pageNum += 1;
|
||||
|
||||
queueRenderPage(pdf, pdf.pageNum);
|
||||
|
||||
setPdfViewerMetaData(dotNetHelper, pdf);
|
||||
}
|
||||
|
||||
export function previousPage(dotNetHelper, elementId) {
|
||||
const pdf = getPdf(elementId);
|
||||
|
||||
if (pdf == null || pdf.pageNum === 0 || pdf.pageNum === 1)
|
||||
return;
|
||||
|
||||
if (pdf.pageNum > 0)
|
||||
pdf.pageNum -= 1;
|
||||
|
||||
queueRenderPage(pdf, pdf.pageNum);
|
||||
|
||||
setPdfViewerMetaData(dotNetHelper, pdf);
|
||||
}
|
||||
|
||||
export async function print(dotNetHelper, elementId, url) {
|
||||
const pdfDoc = await pdfJS.getDocument(url).promise;
|
||||
const pageRange = [1, 2, 3, 4]; // TODO: update this
|
||||
|
||||
const iframeEl = document.createElement('iframe');
|
||||
iframeEl.style = 'display:none';
|
||||
document.body.appendChild(iframeEl);
|
||||
|
||||
for (const pageNumber of pageRange) {
|
||||
const page = await pdfDoc.getPage(pageNumber);
|
||||
|
||||
const viewport = page.getViewport({ scale: 1.5 });
|
||||
const canvas = document.createElement("canvas");
|
||||
canvas.height = viewport.height;
|
||||
canvas.width = viewport.width;
|
||||
|
||||
//canvas.style.height = `${viewport.height * 2}px`;
|
||||
//canvas.style.width = `${viewport.width * 2}px`;
|
||||
|
||||
const ctx = canvas.getContext('2d');
|
||||
|
||||
const renderContext = {
|
||||
//intent: 'print',
|
||||
canvasContext: ctx,
|
||||
viewport: viewport
|
||||
};
|
||||
await page.render(renderContext).promise;
|
||||
|
||||
const iframeDoc = iframeEl.contentWindow.document;
|
||||
iframeDoc.body.appendChild(canvas);
|
||||
}
|
||||
|
||||
setTimeout(() => {
|
||||
iframeEl.contentWindow.print();
|
||||
iframeEl.remove();
|
||||
},
|
||||
1000);
|
||||
}
|
||||
|
||||
export function rotate(dotNetHelper, elementId, rotation) {
|
||||
const pdf = getPdf(elementId);
|
||||
|
||||
if (pdf == null || Number.isNaN(rotation) || rotation % 90 !== 0)
|
||||
return;
|
||||
|
||||
pdf.rotation = rotation;
|
||||
|
||||
queueRenderPage(pdf, pdf.pageNum);
|
||||
}
|
||||
|
||||
export function zoomInOut(dotNetHelper, elementId, scale) {
|
||||
const pdf = getPdf(elementId);
|
||||
|
||||
if (pdf == null)
|
||||
return;
|
||||
|
||||
if (!Number.isNaN(scale))
|
||||
pdf.scale = scale;
|
||||
|
||||
queueRenderPage(pdf, pdf.pageNum);
|
||||
}
|
||||
|
||||
// resize
|
||||
// print
|
||||
// download
|
||||
// zoomreset
|
||||
|
||||
/*
|
||||
firstPageButton.disabled = this.pageNumber <= 1;
|
||||
lastPageButton.disabled = this.pageNumber >= this.pagesCount;
|
||||
pageRotateCwButton.disabled = this.pagesCount === 0;
|
||||
pageRotateCcwButton.disabled = this.pagesCount === 0;
|
||||
*/
|
||||
|
||||
export function initialize(dotNetHelper, elementId, scale, rotation, url) {
|
||||
const pdf = new Pdf(elementId);
|
||||
pdf.scale = scale;
|
||||
pdf.rotation = rotation;
|
||||
|
||||
pdfJS.getDocument(url).promise.then(function (doc) {
|
||||
pdf.pdfDoc = doc;
|
||||
pdf.pagesCount = doc.numPages;
|
||||
renderPage(pdf, pdf.pageNum);
|
||||
dotNetHelper.invokeMethodAsync('DocumentLoaded', { pagesCount: pdf.pagesCount, pageNumber: pdf.pageNum });
|
||||
});
|
||||
}
|
||||
|
||||
function isDomSupported() {
|
||||
return typeof window !== 'undefined' && typeof document !== 'undefined';
|
||||
}
|
||||
|
||||
/**
|
||||
* If another page rendering in progress, waits until the rendering is
|
||||
* finished. Otherwise, executes rendering immediately.
|
||||
*/
|
||||
function queueRenderPage(pdf, num) {
|
||||
if (pdf.pageRendering) {
|
||||
pdf.pageNumPending = num;
|
||||
} else {
|
||||
renderPage(pdf, num);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get page info from document, resize canvas accordingly, and render page.
|
||||
* @param num Page number.
|
||||
*/
|
||||
function renderPage(pdf, num) {
|
||||
pdf.pageRendering = true;
|
||||
|
||||
// Using promise to fetch the page
|
||||
pdf.pdfDoc.getPage(num).then((page) => {
|
||||
const viewport = page.getViewport({ scale: pdf.scale, rotation: pdf.rotation });
|
||||
pdf.canvas.height = viewport.height;
|
||||
pdf.canvas.width = viewport.width;
|
||||
|
||||
// Render PDF page into canvas context
|
||||
const renderContext = {
|
||||
canvasContext: pdf.ctx,
|
||||
viewport: viewport
|
||||
};
|
||||
|
||||
const renderTask = page.render(renderContext);
|
||||
|
||||
// Wait for rendering to finish
|
||||
renderTask.promise.then(() => {
|
||||
pdf.pageRendering = false;
|
||||
if (pdf.pageNumPending !== null) {
|
||||
// New page rendering is pending
|
||||
renderPage(pdf, pdf.pageNumPending);
|
||||
pdf.pageNumPending = null;
|
||||
}
|
||||
})
|
||||
.catch((error) => {
|
||||
// TODO: track exception
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function setPdfViewerMetaData(dotNetHelper, pdf) {
|
||||
if (dotNetHelper == null)
|
||||
return;
|
||||
|
||||
dotNetHelper.invokeMethodAsync('SetPdfViewerMetaData', { pagesCount: pdf.pagesCount, pageNumber: pdf.pageNum });
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
export function initialize(elementId, elementName, handle, group, allowSorting, pull, put, filter, dotNetHelper) {
|
||||
let listGroupEl = document.getElementById(elementId);
|
||||
if (listGroupEl == null)
|
||||
return;
|
||||
|
||||
if (Sortable) {
|
||||
const sortable = Sortable.create(listGroupEl, {
|
||||
animation: 150,
|
||||
filter: '.bb-sortable-list-item-disabled',
|
||||
group: {
|
||||
name: group,
|
||||
pull: pull,
|
||||
put: put
|
||||
},
|
||||
handle: handle, // handle's class
|
||||
onAdd: (event) => {
|
||||
event.item.remove();
|
||||
dotNetHelper.invokeMethodAsync('OnAddJS', event.oldDraggableIndex, event.newDraggableIndex);
|
||||
},
|
||||
onRemove: (event) => {
|
||||
if (event.pullMode === 'clone') {
|
||||
event.clone.remove();
|
||||
}
|
||||
|
||||
event.item.remove();
|
||||
event.from.insertBefore(event.item, event.from.childNodes[event.oldIndex]);
|
||||
|
||||
let fromElName = '';
|
||||
let toElName = '';
|
||||
|
||||
let fromEl = document.getElementById(event.from.id);
|
||||
if (fromEl)
|
||||
fromElName = fromEl.getAttribute('name');
|
||||
|
||||
let toEl = document.getElementById(event.to.id);
|
||||
if (toEl)
|
||||
toElName = toEl.getAttribute('name');
|
||||
|
||||
dotNetHelper.invokeMethodAsync('OnRemoveJS', event.oldDraggableIndex, event.newDraggableIndex, fromElName, toElName);
|
||||
},
|
||||
onUpdate: (event) => {
|
||||
event.item.remove();
|
||||
event.to.insertBefore(event.item, event.to.childNodes[event.oldIndex]);
|
||||
dotNetHelper.invokeMethodAsync('OnUpdateJS', event.oldDraggableIndex, event.newDraggableIndex);
|
||||
},
|
||||
sort: allowSorting
|
||||
});
|
||||
}
|
||||
}
|
||||
BIN
bin/wwwroot/_content/Blazor.Bootstrap/icon/128X128.png
Normal file
BIN
bin/wwwroot/_content/Blazor.Bootstrap/icon/128X128.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.9 KiB |
21
bin/wwwroot/_content/Blazor.Bootstrap/pdfjs-4.0.379.min.mjs
Normal file
21
bin/wwwroot/_content/Blazor.Bootstrap/pdfjs-4.0.379.min.mjs
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user