@glimmer/runtime
Version:
Minimal runtime needed to render Glimmer templates
16 lines (14 loc) • 2.25 kB
JavaScript
import { createComputeRef, valueForRef } from '@glimmer/reference';
import { normalizeStringValue } from '../dom/normalize';
export default function createClassListRef(list) {
return createComputeRef(() => {
let ret = [];
for (let i = 0; i < list.length; i++) {
let ref = list[i];
let value = normalizeStringValue(typeof ref === 'string' ? ref : valueForRef(list[i]));
if (value) ret.push(value);
}
return ret.length === 0 ? null : ret.join(' ');
});
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL3JlZmVyZW5jZXMvY2xhc3MtbGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxTQUFvQixnQkFBcEIsRUFBc0MsV0FBdEMsUUFBeUQsb0JBQXpEO0FBRUEsU0FBUyxvQkFBVCxRQUFxQyxrQkFBckM7QUFFQSxlQUFjLFNBQVUsa0JBQVYsQ0FBNkIsSUFBN0IsRUFBOEM7QUFDMUQsU0FBTyxnQkFBZ0IsQ0FBQyxNQUFLO0FBQzNCLFFBQUksR0FBRyxHQUFhLEVBQXBCOztBQUVBLFNBQUssSUFBSSxDQUFDLEdBQUcsQ0FBYixFQUFnQixDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQXpCLEVBQWlDLENBQUMsRUFBbEMsRUFBc0M7QUFDcEMsVUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUQsQ0FBZDtBQUNBLFVBQUksS0FBSyxHQUFHLG9CQUFvQixDQUFDLE9BQU8sR0FBUCxLQUFlLFFBQWYsR0FBMEIsR0FBMUIsR0FBZ0MsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFELENBQUwsQ0FBNUMsQ0FBaEM7QUFDQSxVQUFJLEtBQUosRUFBVyxHQUFHLENBQUMsSUFBSixDQUFTLEtBQVQ7QUFDWjs7QUFFRCxXQUFPLEdBQUcsQ0FBQyxNQUFKLEtBQWUsQ0FBZixHQUFtQixJQUFuQixHQUEwQixHQUFHLENBQUMsSUFBSixDQUFTLEdBQVQsQ0FBakM7QUFDRCxHQVZzQixDQUF2QjtBQVdEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVmZXJlbmNlLCBjcmVhdGVDb21wdXRlUmVmLCB2YWx1ZUZvclJlZiB9IGZyb20gJ0BnbGltbWVyL3JlZmVyZW5jZSc7XG5cbmltcG9ydCB7IG5vcm1hbGl6ZVN0cmluZ1ZhbHVlIH0gZnJvbSAnLi4vZG9tL25vcm1hbGl6ZSc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUNsYXNzTGlzdFJlZihsaXN0OiBSZWZlcmVuY2VbXSkge1xuICByZXR1cm4gY3JlYXRlQ29tcHV0ZVJlZigoKSA9PiB7XG4gICAgbGV0IHJldDogc3RyaW5nW10gPSBbXTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xuICAgICAgbGV0IHJlZiA9IGxpc3RbaV07XG4gICAgICBsZXQgdmFsdWUgPSBub3JtYWxpemVTdHJpbmdWYWx1ZSh0eXBlb2YgcmVmID09PSAnc3RyaW5nJyA/IHJlZiA6IHZhbHVlRm9yUmVmKGxpc3RbaV0pKTtcbiAgICAgIGlmICh2YWx1ZSkgcmV0LnB1c2godmFsdWUpO1xuICAgIH1cblxuICAgIHJldHVybiByZXQubGVuZ3RoID09PSAwID8gbnVsbCA6IHJldC5qb2luKCcgJyk7XG4gIH0pO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==