UNPKG

lacona-osx

Version:

Lacona Extensions for OSX, tied into the global-context hosted API

61 lines (47 loc) 1.62 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.Pane = exports.PaneSource = undefined; var _lodash = require('lodash'); var _lodash2 = _interopRequireDefault(_lodash); var _laconaPhrases = require('lacona-phrases'); var _elliptical = require('elliptical'); var _laconaApi = require('lacona-api'); var _map = require('rxjs/operator/map'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } class PaneObject { constructor({ path, name }) { this.path = path; this.name = name; this.type = 'preference pane'; this.limitId = 'preference-pane'; } open() { (0, _laconaApi.openFile)({ path: this.path }); } } /** @jsx createElement */ const PaneSource = exports.PaneSource = { fetch() { var _context; return (_context = (0, _laconaApi.watchPreferencePanes)(), _map.map).call(_context, data => { return _lodash2.default.map(data, item => new PaneObject(item)); }); } }; const Pane = exports.Pane = { extends: [_laconaPhrases.PreferencePane], describe({ observe }) { const data = observe((0, _elliptical.createElement)(PaneSource, null)); const panes = _lodash2.default.chain(data).filter().filter('name').filter('path').map(pane => ({ text: pane.name, value: pane, annotation: { type: 'icon', value: pane.path } })).value(); return (0, _elliptical.createElement)( 'placeholder', { argument: 'preference pane' }, (0, _elliptical.createElement)('list', { strategy: 'fuzzy', items: panes, limit: 10, score: 1 }) ); } };