UNPKG

ember-cli-materialize

Version:

An ember-cli addon for using Materialize (CSS Framework based on Material Design) in Ember applications.

39 lines (34 loc) 1.21 kB
import { keys as emberKeys } from '@ember/polyfills'; import { set, getWithDefault } from '@ember/object'; import { oneWay } from '@ember/object/computed'; import Service from '@ember/service'; import { classify } from '@ember/string'; // jscs:disable disallowDirectPropertyAccess const keys = Object.keys || emberKeys; // jscs:enable disallowDirectPropertyAccess export default Service.extend({ // Footer modalIsFooterFixed: oneWay('defaultModalIsFooterFixed'), // Button buttonIconPosition: oneWay('defaultButtonIconPosition'), // Loader loaderSize: oneWay('defaultLoaderSize'), loaderMode: oneWay('defaultLoaderMode'), // Modal modalContainerId: oneWay('defaultModalContainerId'), // Animation (Dropdown Button) dropdownInDuration: oneWay('defaultDropdownInDuration'), dropdownOutDuration: oneWay('defaultDropdownOutDuration'), init() { this._super(...arguments); this._setDefaults(); }, _setDefaults() { const defaults = getWithDefault(this, 'materializeDefaults', {}); keys(defaults).map(key => { const classifiedKey = classify(key); const defaultKey = `default${classifiedKey}`; return set(this, defaultKey, defaults[key]); }); } });