forked from cibernox/ember-power-select
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
46 lines (38 loc) · 1.47 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
'use strict';
module.exports = {
name: require('./package').name,
included() {
let app = this._findHost();
if (app.__emberPowerSelectIncludedInvoked) {
this._super.included.apply(this, arguments);
return;
}
app.__emberPowerSelectIncludedInvoked = true;
let options = typeof app.options === 'object' ? app.options : {};
let addonConfig = options['ember-power-select'] || {};
// Since ember-power-select styles already `@import` styles of ember-basic-dropdown,
// this flag tells to ember-basic-dropdown to skip importing its styles provided
// we're using a theme (or the default styles)
if (addonConfig.theme !== false) {
app.__skipEmberBasicDropdownStyles = true;
}
this._super.included.apply(this, arguments);
const addons = app.project?.addonPackages || app.registry?.availablePlugins;
const hasSass = !!addons['ember-cli-sass'];
const hasLess = !!addons['ember-cli-less'];
// Don't include the precompiled css file if the user uses a supported CSS preprocessor
if (!hasSass && !hasLess) {
if (addonConfig.theme) {
app.import(`vendor/ember-power-select-${addonConfig.theme}.css`);
} else if (addonConfig.theme !== false) {
app.import('vendor/ember-power-select.css');
}
}
},
contentFor(type, config) {
let emberBasicDropdown = this.addons.find(
(a) => a.name === 'ember-basic-dropdown'
);
return emberBasicDropdown.contentFor(type, config);
},
};