ember-source
Version:
A JavaScript framework for creating ambitious web applications
30 lines (27 loc) • 1.57 kB
JavaScript
import { I as InternalComponentCapabilities } from './flags-B9qxc-pB.js';
const FROM_CAPABILITIES = new WeakSet() ;
function buildCapabilities(capabilities) {
{
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- @fixme
FROM_CAPABILITIES.add(capabilities);
Object.freeze(capabilities);
}
return capabilities;
}
const EMPTY = InternalComponentCapabilities.Empty;
/**
* Converts a ComponentCapabilities object into a 32-bit integer representation.
*/
function capabilityFlagsFrom(capabilities) {
return EMPTY | capability(capabilities, 'dynamicLayout') | capability(capabilities, 'dynamicTag') | capability(capabilities, 'prepareArgs') | capability(capabilities, 'createArgs') | capability(capabilities, 'attributeHook') | capability(capabilities, 'elementHook') | capability(capabilities, 'dynamicScope') | capability(capabilities, 'createCaller') | capability(capabilities, 'updateHook') | capability(capabilities, 'createInstance') | capability(capabilities, 'wrapped') | capability(capabilities, 'willDestroy') | capability(capabilities, 'hasSubOwner');
}
function capability(capabilities, capability) {
return capabilities[capability] ? InternalComponentCapabilities[capability] : EMPTY;
}
function managerHasCapability(_manager, capabilities, capability) {
return !!(capabilities & capability);
}
function hasCapability(capabilities, capability) {
return !!(capabilities & capability);
}
export { FROM_CAPABILITIES as F, buildCapabilities as b, capabilityFlagsFrom as c, hasCapability as h, managerHasCapability as m };