UNPKG

funda-ui

Version:

React components using pure Bootstrap 5+ which does not contain any external style and script libraries.

585 lines (583 loc) 18.3 kB
/* ====================================================== <!-- Table (Synthetic) --> /* ====================================================== */ .syntable__wrapper { --syntable-alternant-bg: #f0f0f0; --syntable-dark-bg: #212529; --syntable-row-active-bg: #f0f8ff; --syntable-scrollbar-color: rgba(0, 0, 0, 0.2); --syntable-scrollbar-track: rgba(0, 0, 0, 0); --syntable-scrollbar-h: 3px; --syntable-scrollbar-w: 10px; --syntable-padding-x: 1rem; --syntable-padding-y: 0.5rem; --syntable-cell-focus-shadow: inset 0px 0px 2px 0px rgba(13, 110, 253, 2.25); /*------ allow sort ------*/ /*------ allow drag and drop ------*/ } .syntable__wrapper.table-responsive { overflow-x: auto; overflow-y: hidden; } .syntable__wrapper.table-responsive::-webkit-scrollbar { height: var(--syntable-scrollbar-h); } .syntable__wrapper.table-responsive::-webkit-scrollbar-thumb { background: var(--syntable-scrollbar-color); } .syntable__wrapper.table-responsive::-webkit-scrollbar-track { background: var(--syntable-scrollbar-track); } .syntable__wrapper table td, .syntable__wrapper table th { position: relative; /* focus */ } .syntable__wrapper table td:focus, .syntable__wrapper table th:focus { outline: none; } .syntable__wrapper table td.cell-focus, .syntable__wrapper table th.cell-focus { box-shadow: var(--syntable-cell-focus-shadow); } .syntable__wrapper table tr { transition: 0.1s ease-in-out; } .syntable__wrapper table tr.active { background-color: var(--syntable-row-active-bg); } .syntable__wrapper table.table-colgroup tbody tr td:first-child, .syntable__wrapper table.table-colgroup tbody tr th:first-child { color: #fff; } .syntable__wrapper table.table-colgroup col:nth-child(odd) { background-color: var(--syntable-alternant-bg); } .syntable__wrapper table.table-colgroup col:first-child { background-color: var(--syntable-dark-bg); } .syntable__wrapper table.cell-autowidth { display: block; /* Key 1 */ width: max-content; /* Do not use "max-width", It affects the horizontal scroll length of sticky, and if you exceed it, it will be invalid */ } .syntable__wrapper .syntable__caption.syntable__caption--top { caption-side: top; } .syntable__wrapper .syntable__caption.syntable__caption--bottom { caption-side: bottom; } .syntable__wrapper .sort-trigger { cursor: pointer; } .syntable__wrapper .sort-trigger svg { transition: 0.1s ease-in-out; opacity: 0.3; } .syntable__wrapper .sort-trigger:hover svg { transform: scale(1.2); opacity: 0.7; } .syntable__wrapper.allow-sort { /* Transition animation */ } .syntable__wrapper.allow-sort .sort-trigger { cursor: pointer; } .syntable__wrapper.allow-sort .sort-trigger svg { transition: 0.1s ease-in-out; opacity: 0.3; } .syntable__wrapper.allow-sort .sort-trigger:hover svg { transform: scale(1.2); opacity: 0.7; } .syntable__wrapper.allow-sort .newsort { animation: table-newsort 0.5s linear 1 forwards; opacity: 0; } .syntable__wrapper.allow-sort .newsort:nth-child(2) { animation-delay: 50ms; } .syntable__wrapper.allow-sort .newsort:nth-child(3) { animation-delay: 100ms; } .syntable__wrapper.allow-sort .newsort:nth-child(4) { animation-delay: 150ms; } .syntable__wrapper.allow-sort .newsort:nth-child(5) { animation-delay: 200ms; } .syntable__wrapper.allow-sort .newsort:nth-child(6) { animation-delay: 250ms; } .syntable__wrapper.allow-sort .newsort:nth-child(7) { animation-delay: 300ms; } .syntable__wrapper.allow-sort .newsort:nth-child(8) { animation-delay: 350ms; } .syntable__wrapper.allow-sort .newsort:nth-child(9) { animation-delay: 400ms; } .syntable__wrapper.allow-sort .newsort:nth-child(10) { animation-delay: 450ms; } .syntable__wrapper.allow-sort .newsort:nth-child(11) { animation-delay: 500ms; } .syntable__wrapper.allow-sort .newsort:nth-child(12) { animation-delay: 550ms; } .syntable__wrapper.allow-sort .newsort:nth-child(13) { animation-delay: 600ms; } .syntable__wrapper.allow-sort .newsort:nth-child(14) { animation-delay: 650ms; } .syntable__wrapper.allow-sort .newsort:nth-child(15) { animation-delay: 700ms; } .syntable__wrapper.allow-sort .newsort:nth-child(16) { animation-delay: 750ms; } .syntable__wrapper.allow-sort .newsort:nth-child(17) { animation-delay: 800ms; } .syntable__wrapper.allow-sort .newsort:nth-child(18) { animation-delay: 850ms; } .syntable__wrapper.allow-sort .newsort:nth-child(19) { animation-delay: 900ms; } .syntable__wrapper.allow-sort .newsort:nth-child(20) { animation-delay: 950ms; } .syntable__wrapper.allow-sort .newsort:nth-child(21) { animation-delay: 1000ms; } .syntable__wrapper.allow-sort .newsort:nth-child(22) { animation-delay: 1050ms; } .syntable__wrapper.allow-sort .newsort:nth-child(23) { animation-delay: 1100ms; } .syntable__wrapper.allow-sort .newsort:nth-child(24) { animation-delay: 1150ms; } .syntable__wrapper.allow-sort .newsort:nth-child(25) { animation-delay: 1200ms; } .syntable__wrapper.allow-sort .newsort:nth-child(26) { animation-delay: 1250ms; } .syntable__wrapper.allow-sort .newsort:nth-child(27) { animation-delay: 1300ms; } .syntable__wrapper.allow-sort .newsort:nth-child(28) { animation-delay: 1350ms; } .syntable__wrapper.allow-sort .newsort:nth-child(29) { animation-delay: 1400ms; } .syntable__wrapper.allow-sort .newsort:nth-child(30) { animation-delay: 1450ms; } .syntable__wrapper.allow-sort .newsort:nth-child(31) { animation-delay: 1500ms; } .syntable__wrapper.allow-sort .newsort:nth-child(32) { animation-delay: 1550ms; } .syntable__wrapper.allow-sort .newsort:nth-child(33) { animation-delay: 1600ms; } .syntable__wrapper.allow-sort .newsort:nth-child(34) { animation-delay: 1650ms; } .syntable__wrapper.allow-sort .newsort:nth-child(35) { animation-delay: 1700ms; } .syntable__wrapper.allow-sort .newsort:nth-child(36) { animation-delay: 1750ms; } .syntable__wrapper.allow-sort .newsort:nth-child(37) { animation-delay: 1800ms; } .syntable__wrapper.allow-sort .newsort:nth-child(38) { animation-delay: 1850ms; } .syntable__wrapper.allow-sort .newsort:nth-child(39) { animation-delay: 1900ms; } .syntable__wrapper.allow-sort .newsort:nth-child(40) { animation-delay: 1950ms; } .syntable__wrapper.allow-sort .newsort:nth-child(41) { animation-delay: 2000ms; } .syntable__wrapper.allow-sort .newsort:nth-child(42) { animation-delay: 2050ms; } .syntable__wrapper.allow-sort .newsort:nth-child(43) { animation-delay: 2100ms; } .syntable__wrapper.allow-sort .newsort:nth-child(44) { animation-delay: 2150ms; } .syntable__wrapper.allow-sort .newsort:nth-child(45) { animation-delay: 2200ms; } .syntable__wrapper.allow-sort .newsort:nth-child(46) { animation-delay: 2250ms; } .syntable__wrapper.allow-sort .newsort:nth-child(47) { animation-delay: 2300ms; } .syntable__wrapper.allow-sort .newsort:nth-child(48) { animation-delay: 2350ms; } .syntable__wrapper.allow-sort .newsort:nth-child(49) { animation-delay: 2400ms; } .syntable__wrapper.allow-sort .newsort:nth-child(50) { animation-delay: 2450ms; } .syntable__wrapper.allow-sort .newsort:nth-child(51) { animation-delay: 2500ms; } .syntable__wrapper.allow-sort .newsort:nth-child(52) { animation-delay: 2550ms; } .syntable__wrapper.allow-sort .newsort:nth-child(53) { animation-delay: 2600ms; } .syntable__wrapper.allow-sort .newsort:nth-child(54) { animation-delay: 2650ms; } .syntable__wrapper.allow-sort .newsort:nth-child(55) { animation-delay: 2700ms; } .syntable__wrapper.allow-sort .newsort:nth-child(56) { animation-delay: 2750ms; } .syntable__wrapper.allow-sort .newsort:nth-child(57) { animation-delay: 2800ms; } .syntable__wrapper.allow-sort .newsort:nth-child(58) { animation-delay: 2850ms; } .syntable__wrapper.allow-sort .newsort:nth-child(59) { animation-delay: 2900ms; } .syntable__wrapper.allow-sort .newsort:nth-child(60) { animation-delay: 2950ms; } .syntable__wrapper.allow-sort .newsort:nth-child(61) { animation-delay: 3000ms; } .syntable__wrapper.allow-sort .newsort:nth-child(62) { animation-delay: 3050ms; } .syntable__wrapper.allow-sort .newsort:nth-child(63) { animation-delay: 3100ms; } .syntable__wrapper.allow-sort .newsort:nth-child(64) { animation-delay: 3150ms; } .syntable__wrapper.allow-sort .newsort:nth-child(65) { animation-delay: 3200ms; } .syntable__wrapper.allow-sort .newsort:nth-child(66) { animation-delay: 3250ms; } .syntable__wrapper.allow-sort .newsort:nth-child(67) { animation-delay: 3300ms; } .syntable__wrapper.allow-sort .newsort:nth-child(68) { animation-delay: 3350ms; } .syntable__wrapper.allow-sort .newsort:nth-child(69) { animation-delay: 3400ms; } .syntable__wrapper.allow-sort .newsort:nth-child(70) { animation-delay: 3450ms; } .syntable__wrapper.allow-sort .newsort:nth-child(71) { animation-delay: 3500ms; } .syntable__wrapper.allow-sort .newsort:nth-child(72) { animation-delay: 3550ms; } .syntable__wrapper.allow-sort .newsort:nth-child(73) { animation-delay: 3600ms; } .syntable__wrapper.allow-sort .newsort:nth-child(74) { animation-delay: 3650ms; } .syntable__wrapper.allow-sort .newsort:nth-child(75) { animation-delay: 3700ms; } .syntable__wrapper.allow-sort .newsort:nth-child(76) { animation-delay: 3750ms; } .syntable__wrapper.allow-sort .newsort:nth-child(77) { animation-delay: 3800ms; } .syntable__wrapper.allow-sort .newsort:nth-child(78) { animation-delay: 3850ms; } .syntable__wrapper.allow-sort .newsort:nth-child(79) { animation-delay: 3900ms; } .syntable__wrapper.allow-sort .newsort:nth-child(80) { animation-delay: 3950ms; } .syntable__wrapper.allow-sort .newsort:nth-child(81) { animation-delay: 4000ms; } .syntable__wrapper.allow-sort .newsort:nth-child(82) { animation-delay: 4050ms; } .syntable__wrapper.allow-sort .newsort:nth-child(83) { animation-delay: 4100ms; } .syntable__wrapper.allow-sort .newsort:nth-child(84) { animation-delay: 4150ms; } .syntable__wrapper.allow-sort .newsort:nth-child(85) { animation-delay: 4200ms; } .syntable__wrapper.allow-sort .newsort:nth-child(86) { animation-delay: 4250ms; } .syntable__wrapper.allow-sort .newsort:nth-child(87) { animation-delay: 4300ms; } .syntable__wrapper.allow-sort .newsort:nth-child(88) { animation-delay: 4350ms; } .syntable__wrapper.allow-sort .newsort:nth-child(89) { animation-delay: 4400ms; } .syntable__wrapper.allow-sort .newsort:nth-child(90) { animation-delay: 4450ms; } .syntable__wrapper.allow-sort .newsort:nth-child(91) { animation-delay: 4500ms; } .syntable__wrapper.allow-sort .newsort:nth-child(92) { animation-delay: 4550ms; } .syntable__wrapper.allow-sort .newsort:nth-child(93) { animation-delay: 4600ms; } .syntable__wrapper.allow-sort .newsort:nth-child(94) { animation-delay: 4650ms; } .syntable__wrapper.allow-sort .newsort:nth-child(95) { animation-delay: 4700ms; } .syntable__wrapper.allow-sort .newsort:nth-child(96) { animation-delay: 4750ms; } .syntable__wrapper.allow-sort .newsort:nth-child(97) { animation-delay: 4800ms; } .syntable__wrapper.allow-sort .newsort:nth-child(98) { animation-delay: 4850ms; } .syntable__wrapper.allow-sort .newsort:nth-child(99) { animation-delay: 4900ms; } .syntable__wrapper.allow-sort .newsort:nth-child(100) { animation-delay: 4950ms; } @keyframes table-newsort { 0% { opacity: 0; transform: translateX(10px); } 100% { opacity: 1; transform: translateX(0); } } .syntable__wrapper.allow-dragdrop { /* Specify a drag trigger point */ /* placeholder */ /* trigger */ } .syntable__wrapper.allow-dragdrop .drag-trigger { cursor: move; opacity: 0.5; } .syntable__wrapper.allow-dragdrop tbody .row-obj-clonelast { height: 0 !important; } .syntable__wrapper.allow-dragdrop tbody .row-obj-clonelast td { border: none; box-shadow: none; } .syntable__wrapper.allow-dragdrop tbody td, .syntable__wrapper.allow-dragdrop tbody th { pointer-events: none; user-select: auto; } .syntable__wrapper.allow-dragdrop tbody.drag-trigger-mousedown td, .syntable__wrapper.allow-dragdrop tbody.drag-trigger-mousedown th { pointer-events: auto; } .syntable__wrapper.allow-dragdrop .row-placeholder { border: 2px dotted #b5ba91; background-color: #e4e9c3; } .syntable__wrapper.allow-dragdrop .drag-trigger { display: inline-block; pointer-events: auto; } .syntable__wrapper.allow-dragdrop .drag-trigger ~ span:not(.checkbox-trigger) { display: inline-block; padding-left: calc(var(--syntable-padding-x) * 1.5); } .syntable__wrapper.allow-dragdrop.has-checkbox .drag-trigger ~ span:not(.checkbox-trigger) { padding-left: calc(var(--syntable-padding-x) * 3); } .syntable__wrapper.allow-dragdrop.has-checkbox tbody .checkbox-trigger { padding-left: calc(var(--syntable-padding-x) * 1.5); } @media all and (max-width: 768px) { .syntable__wrapper { --syntable-border-color: #dee2e6; --syntable-per-shadow: 0 2px 4px 0 rgba(0,0,0,.1); /*------ Enhanced Responsive ------*/ /*------ Enhanced Responsive with Scroll Bars ------*/ } .syntable__wrapper.table-enhanced-responsive table thead { display: none; } .syntable__wrapper.table-enhanced-responsive table tbody tr { box-shadow: var(--syntable-per-shadow); margin-bottom: 1rem; display: block; } .syntable__wrapper.table-enhanced-responsive table tbody td, .syntable__wrapper.table-enhanced-responsive table tbody th { display: block; } .syntable__wrapper.table-enhanced-responsive table tbody td::before, .syntable__wrapper.table-enhanced-responsive table tbody th::before { content: attr(data-table-text); display: block; float: left; width: 40%; font-weight: bold; border-right: 1px solid var(--syntable-border-color); margin-right: 0.5rem; } .syntable__wrapper.table-enhanced-responsive table tbody td::after, .syntable__wrapper.table-enhanced-responsive table tbody th::after { content: ""; display: block; clear: both; } .syntable__wrapper.table-enhanced-responsive table.cell-autowidth { display: table; /* Key 1 */ width: 100%; } .syntable__wrapper.table-enhanced-responsive-scrolled table { display: block; width: 100%; border-bottom: 0 !important; border-left: 0 !important; border-right: 0 !important; overflow: auto; } .syntable__wrapper.table-enhanced-responsive-scrolled table::-webkit-scrollbar { height: var(--syntable-scrollbar-h); width: var(--syntable-scrollbar-w); } .syntable__wrapper.table-enhanced-responsive-scrolled table::-webkit-scrollbar-thumb { background: var(--syntable-scrollbar-color); } .syntable__wrapper.table-enhanced-responsive-scrolled table::-webkit-scrollbar-track { background: var(--syntable-scrollbar-track); } .syntable__wrapper.table-enhanced-responsive-scrolled table thead { display: block; float: left; width: 100px; border-bottom: 1px solid var(--syntable-border-color); } .syntable__wrapper.table-enhanced-responsive-scrolled table thead th { display: block; /* required */ min-width: auto !important; width: auto !important; } .syntable__wrapper.table-enhanced-responsive-scrolled table thead th:not(:last-child) { border-bottom: 0; } .syntable__wrapper.table-enhanced-responsive-scrolled table tbody { width: calc(100% - 100px); display: block; float: left; overflow-x: scroll; border-bottom: 1px solid var(--syntable-border-color); border-right: 1px solid var(--syntable-border-color); } .syntable__wrapper.table-enhanced-responsive-scrolled table tbody::-webkit-scrollbar { height: var(--syntable-scrollbar-h); } .syntable__wrapper.table-enhanced-responsive-scrolled table tbody::-webkit-scrollbar-thumb { background: var(--syntable-scrollbar-color); } .syntable__wrapper.table-enhanced-responsive-scrolled table tbody::-webkit-scrollbar-track { background: var(--syntable-scrollbar-track); } .syntable__wrapper.table-enhanced-responsive-scrolled table thead tr, .syntable__wrapper.table-enhanced-responsive-scrolled table tbody tr { display: block; border-color: var(--syntable-border-color); } .syntable__wrapper.table-enhanced-responsive-scrolled table th, .syntable__wrapper.table-enhanced-responsive-scrolled table tbody td, .syntable__wrapper.table-enhanced-responsive-scrolled table tbody th { box-sizing: border-box; overflow-x: hidden; overflow-y: auto; } .syntable__wrapper.table-enhanced-responsive-scrolled table th::-webkit-scrollbar, .syntable__wrapper.table-enhanced-responsive-scrolled table tbody td::-webkit-scrollbar, .syntable__wrapper.table-enhanced-responsive-scrolled table tbody th::-webkit-scrollbar { width: var(--syntable-scrollbar-w); } .syntable__wrapper.table-enhanced-responsive-scrolled table th::-webkit-scrollbar-thumb, .syntable__wrapper.table-enhanced-responsive-scrolled table tbody td::-webkit-scrollbar-thumb, .syntable__wrapper.table-enhanced-responsive-scrolled table tbody th::-webkit-scrollbar-thumb { background: var(--syntable-scrollbar-color); } .syntable__wrapper.table-enhanced-responsive-scrolled table th::-webkit-scrollbar-track, .syntable__wrapper.table-enhanced-responsive-scrolled table tbody td::-webkit-scrollbar-track, .syntable__wrapper.table-enhanced-responsive-scrolled table tbody th::-webkit-scrollbar-track { background: var(--syntable-scrollbar-track); } .syntable__wrapper.table-enhanced-responsive-scrolled table th:first-child, .syntable__wrapper.table-enhanced-responsive-scrolled table tbody td:first-child, .syntable__wrapper.table-enhanced-responsive-scrolled table tbody th:first-child { border-top: 0; } .syntable__wrapper.table-enhanced-responsive-scrolled table th:not(:last-child), .syntable__wrapper.table-enhanced-responsive-scrolled table tbody td:not(:last-child), .syntable__wrapper.table-enhanced-responsive-scrolled table tbody th:not(:last-child) { border-bottom: 0; border-right: 0; } .syntable__wrapper.table-enhanced-responsive-scrolled table tbody tr { display: table-cell; } .syntable__wrapper.table-enhanced-responsive-scrolled table tbody td, .syntable__wrapper.table-enhanced-responsive-scrolled table tbody th { display: block; } }