@kit-data-manager/pid-component
Version:
The PID-Component is a web component that can be used to evaluate and display FAIR Digital Objects, PIDs, ORCiDs, and possibly other identifiers in a user-friendly way. It is easily extensible to support other identifier types.
75 lines (74 loc) • 2.45 kB
JavaScript
/*!
*
* Copyright 2024-2026 Karlsruhe Institute of Technology.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
export function shouldShowFooter(hasActions, hasPagination) {
return hasActions || hasPagination;
}
export function getPreviewClasses(isTopLevel, isEmphasized, isTemporarilyEmphasized, isDarkMode, isExpanded, lineHeight) {
if (!isTopLevel)
return '';
const baseClasses = [
'group',
'rounded-md',
'border',
'py-0',
'shadow-sm',
'inline-flex',
'cursor-pointer',
'list-none',
'flex-nowrap',
'items-center',
'overflow-hidden',
'font-mono',
'font-bold',
'text-clip',
];
if (isEmphasized || isTemporarilyEmphasized) {
baseClasses.push(isDarkMode ? 'border-gray-600 bg-gray-800' : 'border-gray-300 bg-white');
}
else {
if (isDarkMode) {
baseClasses.push('bg-gray-800/60');
}
}
if (!isExpanded) {
baseClasses.push(`h-[${lineHeight || 24}px]`);
baseClasses.push(`leading-[${lineHeight || 24}px]`);
}
return baseClasses.join(' ');
}
export function getPreviewTextClasses(isExpanded, isTopLevel) {
if (!isTopLevel)
return '';
const base = 'inline-block font-mono font-medium select-all';
if (isExpanded) {
return `${base} text-xs max-w-[60vw] overflow-x-auto whitespace-nowrap`;
}
return `${base} text-sm max-w-full truncate`;
}
export function getHostElementClasses(_isExpanded) {
return 'relative font-sans';
}
export function getItemRangeText(start, end, total) {
return `Showing ${start}-${end} of ${total}`;
}
export function calculateItemRange(currentPage, itemsPerPage, totalItems) {
const start = currentPage * itemsPerPage;
const end = Math.min(start + itemsPerPage, totalItems);
return { start, end };
}
//# sourceMappingURL=pidComponentUtils.js.map