UNPKG

ember-material-icons

Version:

Google Material icons for your ember-cli app

56 lines 4.45 kB
import { EMPTY_CACHE } from '../utils'; import { dict } from '@glimmer/util'; import Meta from '../meta'; import { PropertyReference } from './descriptors'; import { VOLATILE_TAG } from '@glimmer/reference'; export default class PathReference { constructor(parent, property) { this.cache = EMPTY_CACHE; this.inner = null; this.chains = null; this.lastParentValue = EMPTY_CACHE; this._guid = null; this.tag = VOLATILE_TAG; this.parent = parent; this.property = property; } value() { let { lastParentValue, property, inner } = this; let parentValue = this._parentValue(); if (parentValue === null || parentValue === undefined) { return (this.cache = undefined); } if (lastParentValue === parentValue) { inner = this.inner; } else { let ReferenceType = typeof parentValue === 'object' ? Meta.for(parentValue).referenceTypeFor(property) : PropertyReference; inner = this.inner = new ReferenceType(parentValue, property, this); } // if (typeof parentValue === 'object') { // Meta.for(parentValue).addReference(property, this); // } return (this.cache = inner.value()); } get(prop) { let chains = this._getChains(); if (prop in chains) return chains[prop]; return (chains[prop] = new PathReference(this, prop)); } label() { return '[reference Direct]'; } _getChains() { if (this.chains) return this.chains; return (this.chains = dict()); } _parentValue() { let parent = this.parent.value(); this.lastParentValue = parent; return parent; } } export { PathReference }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9yZWZlcmVuY2VzL3BhdGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JDLE9BQU8sSUFBSSxNQUFNLFNBQVMsQ0FBQztBQUMzQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBMkQsTUFBTSxvQkFBb0IsQ0FBQztBQUczRyxNQUFNLENBQUMsT0FBTztJQVVaLFlBQVksTUFBeUIsRUFBRSxRQUFnQjtRQVA3QyxVQUFLLEdBQVEsV0FBVyxDQUFDO1FBQzNCLFVBQUssR0FBaUIsSUFBSSxDQUFDO1FBQzNCLFdBQU0sR0FBNkIsSUFBSSxDQUFDO1FBQ3hDLG9CQUFlLEdBQVEsV0FBVyxDQUFDO1FBQ3BDLFVBQUssR0FBRyxJQUFJLENBQUM7UUFDYixRQUFHLEdBQWdCLFlBQVksQ0FBQztRQUdyQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUMzQixDQUFDO0lBRUQsS0FBSztRQUNILElBQUksRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQztRQUNoRCxJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFdEMsRUFBRSxDQUFDLENBQUMsV0FBVyxLQUFLLElBQUksSUFBSSxXQUFXLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQztZQUN0RCxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQyxDQUFDO1FBQ2xDLENBQUM7UUFFRCxFQUFFLENBQUMsQ0FBQyxlQUFlLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztZQUNwQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNyQixDQUFDO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDTixJQUFJLGFBQWEsR0FBRyxPQUFPLFdBQVcsS0FBSyxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsR0FBRyxpQkFBaUIsQ0FBQztZQUMzSCxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLGFBQWEsQ0FBQyxXQUFXLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3RFLENBQUM7UUFFRCx5Q0FBeUM7UUFDekMsd0RBQXdEO1FBQ3hELElBQUk7UUFFSixNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxHQUFHLENBQUMsSUFBWTtRQUNkLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMvQixFQUFFLENBQUMsQ0FBUyxJQUFJLElBQUksTUFBTSxDQUFDO1lBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoRCxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxhQUFhLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELEtBQUs7UUFDSCxNQUFNLENBQUMsb0JBQW9CLENBQUM7SUFDOUIsQ0FBQztJQUVPLFVBQVU7UUFDaEIsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3BDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxFQUFzQixDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVPLFlBQVk7UUFDbEIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQztRQUM5QixNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRjtBQUVELE9BQU8sRUFBRSxhQUFhLEVBQUUsQ0FBQyJ9