UNPKG

@siemens/ngx-datatable

Version:

ngx-datatable is an Angular table grid component for presenting large and complex data.

390 lines (380 loc) 13.1 kB
/* This stylesheet uses scss valiables for most of the colors / background-colors of the table to enable the customization of the displayed table without cloning the stylesheet into the own application. To modify table colors, add the following lines to the scss file of your application (this example modifies the color of the selected row - selectionType = single, multi or multiClick): $ngx-datatable-selected-active-background: yellow; $ngx-datatable-selected-active-background-hover: rgba(yellow, 0.2); @import '~@siemens/ngx-datatable/index.css'; @import '~@siemens/ngx-datatable/themes/material.scss'; @import '~@siemens/ngx-datatable/assets/icons.css'; That's all. */ .ghost-cell-container { background: #fff; } .ghost-cell-strip { background: #d9d8d9; background-image: linear-gradient(to right, #d9d8d9 0%, #d9d8d9 10%, #fff, transparent); border-radius: 0; animation-duration: 10s; } .ngx-datatable .row-disabled { color: #83888E; } .ngx-datatable .row-disabled .datatable-body-cell-label { color: #83888E; } .ngx-datatable .datatable-row-wrapper .datatable-body-row.row-disabled:hover { background-color: inherit; transition: none; } .ngx-datatable .datatable-row-wrapper .datatable-body-row.row-disabled:hover .datatable-row-group { background-color: inherit; transition: none; } .ngx-datatable.material { background: #fff; box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12); /** * Shared Styles */ /** * Global Row Styles */ /** * Header Styles */ /** * Body Styles */ /** * Footer Styles */ } .ngx-datatable.material.striped .datatable-row-odd { background: #eee; } .ngx-datatable.material.single-selection .datatable-body-row.active, .ngx-datatable.material.single-selection .datatable-body-row.active .datatable-row-group, .ngx-datatable.material.multi-selection .datatable-body-row.active, .ngx-datatable.material.multi-selection .datatable-body-row.active .datatable-row-group, .ngx-datatable.material.multi-click-selection .datatable-body-row.active, .ngx-datatable.material.multi-click-selection .datatable-body-row.active .datatable-row-group { background-color: #304ffe; color: #fff; } .ngx-datatable.material.single-selection .datatable-body-row.active:hover, .ngx-datatable.material.single-selection .datatable-body-row.active:hover .datatable-row-group, .ngx-datatable.material.multi-selection .datatable-body-row.active:hover, .ngx-datatable.material.multi-selection .datatable-body-row.active:hover .datatable-row-group, .ngx-datatable.material.multi-click-selection .datatable-body-row.active:hover, .ngx-datatable.material.multi-click-selection .datatable-body-row.active:hover .datatable-row-group { background-color: #193ae4; color: #fff; } .ngx-datatable.material.single-selection .datatable-body-row.active:focus, .ngx-datatable.material.single-selection .datatable-body-row.active:focus .datatable-row-group, .ngx-datatable.material.multi-selection .datatable-body-row.active:focus, .ngx-datatable.material.multi-selection .datatable-body-row.active:focus .datatable-row-group, .ngx-datatable.material.multi-click-selection .datatable-body-row.active:focus, .ngx-datatable.material.multi-click-selection .datatable-body-row.active:focus .datatable-row-group { background-color: #2041ef; color: #fff; } .ngx-datatable.material:not(.cell-selection) .datatable-body-row:hover, .ngx-datatable.material:not(.cell-selection) .datatable-body-row:hover .datatable-row-group { background-color: #eee; transition-property: background; transition-duration: 0.3s; transition-timing-function: linear; } .ngx-datatable.material:not(.cell-selection) .datatable-body-row:focus, .ngx-datatable.material:not(.cell-selection) .datatable-body-row:focus .datatable-row-group { background-color: #ddd; } .ngx-datatable.material.cell-selection .datatable-body-cell:hover:not(.row-disabled), .ngx-datatable.material.cell-selection .datatable-body-cell:hover:not(.row-disabled) .datatable-row-group { background-color: #eee; transition-property: background; transition-duration: 0.3s; transition-timing-function: linear; } .ngx-datatable.material.cell-selection .datatable-body-cell:focus:not(.row-disabled), .ngx-datatable.material.cell-selection .datatable-body-cell:focus:not(.row-disabled) .datatable-row-group { background-color: #ddd; } .ngx-datatable.material.cell-selection .datatable-body-cell.active:not(.row-disabled), .ngx-datatable.material.cell-selection .datatable-body-cell.active:not(.row-disabled) .datatable-row-group { background-color: #304ffe; color: #fff; } .ngx-datatable.material.cell-selection .datatable-body-cell.active:hover:not(.row-disabled), .ngx-datatable.material.cell-selection .datatable-body-cell.active:hover:not(.row-disabled) .datatable-row-group { background-color: #193ae4; color: #fff; } .ngx-datatable.material.cell-selection .datatable-body-cell.active:focus:not(.row-disabled), .ngx-datatable.material.cell-selection .datatable-body-cell.active:focus:not(.row-disabled) .datatable-row-group { background-color: #2041ef; color: #fff; } .ngx-datatable.material .empty-row { height: 50px; text-align: left; padding: 0.5rem 1.2rem; vertical-align: top; border-top: 0; } .ngx-datatable.material .loading-row { text-align: left; padding: 0.5rem 1.2rem; vertical-align: top; border-top: 0; } .ngx-datatable.material .datatable-header .datatable-row-left, .ngx-datatable.material .datatable-body .datatable-row-left { background-color: #fff; background-position: 100% 0; background-repeat: repeat-y; background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABCAYAAAD5PA/NAAAAFklEQVQIHWPSkNeSBmJhTQVtbiDNCgASagIIuJX8OgAAAABJRU5ErkJggg==); } .ngx-datatable.material .datatable-header .datatable-row-right, .ngx-datatable.material .datatable-body .datatable-row-right { background-position: 0 0; background-color: #fff; background-repeat: repeat-y; background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABCAYAAAD5PA/NAAAAFklEQVQI12PQkNdi1VTQ5gbSwkAsDQARLAIGtOSFUAAAAABJRU5ErkJggg==); } .ngx-datatable.material .datatable-header { border-bottom: 1px solid rgba(0, 0, 0, 0.12); } .ngx-datatable.material .datatable-header .datatable-header-cell { flex-shrink: 0; text-align: left; padding: 0.9rem 1.2rem; font-weight: 400; background-color: #fff; color: rgba(0, 0, 0, 0.54); vertical-align: bottom; font-size: 12px; font-weight: 500; } .ngx-datatable.material .datatable-header .datatable-header-cell .datatable-header-cell-wrapper { position: relative; } .ngx-datatable.material .datatable-header .datatable-header-cell.longpress .draggable::after { transition: transform 400ms ease, opacity 400ms ease; opacity: 0.5; transform: scale(1); } .ngx-datatable.material .datatable-header .datatable-header-cell .draggable::after { content: " "; position: absolute; top: 50%; left: 50%; margin: -30px 0 0 -30px; height: 60px; width: 60px; background: #eee; border-radius: 100%; opacity: 1; filter: none; transform: scale(0); z-index: 9999; pointer-events: none; } .ngx-datatable.material .datatable-header .datatable-header-cell.dragging .resize-handle { border-right: none; } .ngx-datatable.material .datatable-header .resize-handle { border-right: solid 1px #eee; } .ngx-datatable.material .datatable-body { position: relative; } .ngx-datatable.material .datatable-body .datatable-row-detail { background: #f5f5f5; padding: 10px; } .ngx-datatable.material .datatable-body .datatable-group-header { background: #f5f5f5; border-bottom: solid 1px #d9d8d9; border-top: solid 1px #d9d8d9; } .ngx-datatable.material .datatable-body .datatable-group-header .datatable-group-cell { padding-inline-start: 1.2rem; display: flex; } .ngx-datatable.material .datatable-body datatable-row-def { background-color: #fff; } .ngx-datatable.material .datatable-body .datatable-body-row { border-bottom: 1px solid #d9d8d9; } .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell { flex-shrink: 0; text-align: left; padding: 0.9rem 1.2rem; vertical-align: top; border-top: 0; color: rgba(0, 0, 0, 0.87); transition: width 0.3s ease; font-size: 14px; font-weight: 400; } .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-group-cell { text-align: left; padding: 0.9rem 1.2rem; vertical-align: top; border-top: 0; color: rgba(0, 0, 0, 0.87); transition: width 0.3s ease; font-size: 14px; font-weight: 400; } .ngx-datatable.material .datatable-body .progress-linear { display: block; position: sticky; width: 100%; height: 0; z-index: 999; padding: 0; margin: 0; top: 0; } .ngx-datatable.material .datatable-body .progress-linear .container { display: block; position: relative; overflow: hidden; width: 100%; height: 5px; -webkit-transform: translate(0, 0) scale(1, 1); transform: translate(0, 0) scale(1, 1); background-color: rgb(170, 209, 249); } .ngx-datatable.material .datatable-body .progress-linear .container .bar { transition: all 0.2s linear; -webkit-animation: query 0.8s infinite cubic-bezier(0.39, 0.575, 0.565, 1); animation: query 0.8s infinite cubic-bezier(0.39, 0.575, 0.565, 1); transition: -webkit-transform 0.2s linear; transition: transform 0.2s linear; background-color: rgb(16, 108, 200); position: absolute; left: 0; top: 0; bottom: 0; width: 100%; height: 5px; } .ngx-datatable.material .datatable-body .custom-loading-indicator-wrapper { position: sticky; top: 0; height: 0; z-index: 999; } .ngx-datatable.material .datatable-body .custom-loading-indicator-wrapper .custom-loading-content { width: 100%; background-color: #fff; } .ngx-datatable.material .datatable-footer { border-top: 1px solid rgba(0, 0, 0, 0.12); font-size: 12px; font-weight: 400; color: rgba(0, 0, 0, 0.54); } .ngx-datatable.material .datatable-footer .page-count { line-height: 50px; height: 50px; padding: 0 1.2rem; } .ngx-datatable.material .datatable-footer .datatable-pager { margin: 0 10px; } .ngx-datatable.material .datatable-footer .datatable-pager li { vertical-align: middle; } .ngx-datatable.material .datatable-footer .datatable-pager li.disabled a { color: rgba(0, 0, 0, 0.26) !important; background-color: transparent !important; } .ngx-datatable.material .datatable-footer .datatable-pager li.active a { background-color: rgba(158, 158, 158, 0.2); font-weight: bold; } .ngx-datatable.material .datatable-footer .datatable-pager a { height: 22px; min-width: 24px; line-height: 22px; padding: 0 6px; border-radius: 3px; margin: 6px 3px; text-align: center; vertical-align: top; color: rgba(0, 0, 0, 0.54); text-decoration: none; vertical-align: bottom; } .ngx-datatable.material .datatable-footer .datatable-pager a:hover { color: rgba(0, 0, 0, 0.75); background-color: rgba(158, 158, 158, 0.2); } .ngx-datatable.material .datatable-footer .datatable-pager .datatable-icon-left, .ngx-datatable.material .datatable-footer .datatable-pager .datatable-icon-skip, .ngx-datatable.material .datatable-footer .datatable-pager .datatable-icon-right, .ngx-datatable.material .datatable-footer .datatable-pager .datatable-icon-prev { font-size: 20px; line-height: 20px; padding: 0 3px; } .ngx-datatable.material .datatable-summary-row .datatable-body-row { background-color: #ddd; } .ngx-datatable.material .datatable-summary-row .datatable-body-row:hover { background-color: #ddd; } .ngx-datatable.material .datatable-summary-row .datatable-body-row .datatable-body-cell { font-weight: bold; } /** * Checkboxes **/ .datatable-checkbox { position: relative; margin: 0; cursor: pointer; vertical-align: middle; display: inline-block; box-sizing: border-box; padding: 0; } .datatable-checkbox input[type=checkbox] { position: relative; margin: 0 1rem 0 0; cursor: pointer; outline: none; } .datatable-checkbox input[type=checkbox]:before { -webkit-transition: all 0.3s ease-in-out; -moz-transition: all 0.3s ease-in-out; transition: all 0.3s ease-in-out; content: ""; position: absolute; left: 0; z-index: 1; width: 1rem; height: 1rem; border: 2px solid #f2f2f2; } .datatable-checkbox input[type=checkbox]:checked:before { -webkit-transform: rotate(-45deg); -moz-transform: rotate(-45deg); -ms-transform: rotate(-45deg); transform: rotate(-45deg); height: 0.5rem; border-color: #009688; border-top-style: none; border-right-style: none; } .datatable-checkbox input[type=checkbox]:after { content: ""; position: absolute; top: 0; left: 0; width: 1rem; height: 1rem; background: #fff; cursor: pointer; } /** * Progress bar animations */ @keyframes query { 0% { opacity: 1; transform: translateX(35%) scale(0.3, 1); } 100% { opacity: 0; transform: translateX(-50%) scale(0, 1); } }