/* PDFNameTree - represents a name tree object */ import PDFObject from './object'; class PDFNameTree { constructor() { this._items = {}; } add(key, val) { return (this._items[key] = val); } get(key) { return this._items[key]; } toString() { // Needs to be sorted by key const sortedKeys = Object.keys(this._items).sort((a, b) => a.localeCompare(b) ); const out = ['<<']; if (sortedKeys.length > 1) { const first = sortedKeys[0], last = sortedKeys[sortedKeys.length - 1]; out.push( ` /Limits ${PDFObject.convert([new String(first), new String(last)])}` ); } out.push(' /Names ['); for (let key of sortedKeys) { out.push( ` ${PDFObject.convert(new String(key))} ${PDFObject.convert( this._items[key] )}` ); } out.push(']'); out.push('>>'); return out.join('\n'); } } export default PDFNameTree;