Skip to content

Commit 53b803e

Browse files
authored
Merge pull request ember-bootstrap#2274 from ember-bootstrap/gjs-codemod
updated components to GJS/GTS using @embroider/template-tag-codemod
2 parents 6e7dbe6 + 1e06d83 commit 53b803e

131 files changed

Lines changed: 2148 additions & 1949 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.git-blame-ignore-revs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
fcbc290b83607dd8dba9fffb9ed28e5243a5f8da

ember-bootstrap/.eslintrc.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,10 @@ module.exports = {
6363
'plugin:ember/recommended',
6464
'plugin:ember/recommended-gts',
6565
],
66+
rules: {
67+
'ember/no-runloop': 'warn',
68+
'ember/no-at-ember-render-modifiers': 'warn',
69+
},
6670
},
6771
{
6872
files: ['**/*.gjs'],
@@ -73,6 +77,10 @@ module.exports = {
7377
'plugin:ember/recommended',
7478
'plugin:ember/recommended-gjs',
7579
],
80+
rules: {
81+
'ember/no-runloop': 'warn',
82+
'ember/no-at-ember-render-modifiers': 'warn',
83+
},
7684
},
7785
// node files
7886
{

ember-bootstrap/addon/components/bs-alert.ts renamed to ember-bootstrap/addon/components/bs-alert.gts

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,13 @@ import { tracked } from '@glimmer/tracking';
44
import { later } from '@ember/runloop';
55
import usesTransition from 'ember-bootstrap/utils/decorators/uses-transition';
66
import arg from 'ember-bootstrap/utils/decorators/arg';
7+
import bsTypeClass from 'ember-bootstrap/helpers/bs-type-class';
8+
import didUpdate from '@ember/render-modifiers/modifiers/did-update';
9+
import { on } from '@ember/modifier';
10+
import element_ from 'ember-element-helper/helpers/element';
11+
import bsDefault from 'ember-bootstrap/helpers/bs-default';
12+
import { macroCondition } from '@embroider/macros';
13+
declare function macroGetOwnConfig(path: string): boolean;
714

815
interface BsAlertSignature {
916
Args: {
@@ -252,4 +259,50 @@ export default class Alert extends Component<BsAlertSignature> {
252259
updateVisibility() {
253260
this._visible = this.args.visible;
254261
}
262+
263+
<template>
264+
<div
265+
class='{{unless this.hidden "alert"}}
266+
{{if this.fade "fade"}}
267+
{{if this.dismissible "alert-dismissible"}}
268+
{{bsTypeClass "alert" @type}}
269+
{{if this.showAlert "show"}}'
270+
...attributes
271+
{{didUpdate this.showOrHide this._visible}}
272+
{{didUpdate this.updateVisibility @visible}}
273+
>
274+
{{#unless this.hidden}}
275+
{{#if this.dismissible}}
276+
<button
277+
type='button'
278+
class={{if
279+
(macroCondition (macroGetOwnConfig 'isBS4'))
280+
'close'
281+
'btn-close'
282+
}}
283+
aria-label='Close'
284+
{{on 'click' this.dismiss}}
285+
>
286+
{{#if (macroCondition (macroGetOwnConfig 'isBS4'))}}<span
287+
aria-hidden='true'
288+
>&times;</span>{{/if}}
289+
</button>
290+
{{/if}}
291+
292+
{{#if (has-block 'header')}}
293+
{{#let (element_ (bsDefault @headerTag 'h4')) as |Tag|}}
294+
<Tag class='alert-heading'>
295+
{{yield to='header'}}
296+
</Tag>
297+
{{/let}}
298+
{{/if}}
299+
300+
{{#if (has-block 'body')}}
301+
{{yield to='body'}}
302+
{{else}}
303+
{{yield}}
304+
{{/if}}
305+
{{/unless}}
306+
</div>
307+
</template>
255308
}

ember-bootstrap/addon/components/bs-alert.hbs

Lines changed: 0 additions & 28 deletions
This file was deleted.

ember-bootstrap/addon/components/bs-button-group.js renamed to ember-bootstrap/addon/components/bs-button-group.gjs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
import { action } from '@ember/object';
22
import Component from '@glimmer/component';
33
import { A, isArray } from '@ember/array';
4+
import bsSizeClass from 'ember-bootstrap/helpers/bs-size-class';
5+
import { hash } from '@ember/helper';
6+
import bsDefault from 'ember-bootstrap/helpers/bs-default';
7+
import BsButtonGroupButton from 'ember-bootstrap/components/bs-button-group/button';
48

59
/**
610
Bootstrap-style button group, that visually groups buttons, and optionally adds radio/checkbox like behaviour.
@@ -161,4 +165,25 @@ export default class ButtonGroup extends Component {
161165

162166
this.args.onChange(newValue);
163167
}
168+
169+
<template>
170+
{{! @glint-nocheck }}
171+
<div
172+
class='{{if @vertical "btn-group-vertical" "btn-group"}}
173+
{{bsSizeClass "btn-group" @size}}'
174+
role='group'
175+
...attributes
176+
>
177+
{{yield
178+
(hash
179+
button=(component
180+
(bsDefault @buttonComponent (component BsButtonGroupButton))
181+
buttonGroupType=@type
182+
groupValue=@value
183+
onClick=this.buttonPressed
184+
)
185+
)
186+
}}
187+
</div>
188+
</template>
164189
}

ember-bootstrap/addon/components/bs-button-group.hbs

Lines changed: 0 additions & 8 deletions
This file was deleted.
Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
import { isArray } from '@ember/array';
2+
import Button from 'ember-bootstrap/components/bs-button';
3+
import { guidFor } from '@ember/object/internals';
4+
import { getOwnConfig, macroCondition } from '@embroider/macros';
5+
import { on } from '@ember/modifier';
6+
import didUpdate from '@ember/render-modifiers/modifiers/did-update';
7+
import bsSizeClass from 'ember-bootstrap/helpers/bs-size-class';
8+
import bsTypeClass from 'ember-bootstrap/helpers/bs-type-class';
9+
import { hash } from '@ember/helper';
10+
11+
/**
12+
Internal component for button-group buttons
13+
14+
@class ButtonGroupButton
15+
@namespace Components
16+
@extends Components.Button
17+
@private
18+
*/
19+
export default class ButtonGroupButton extends Button {
20+
formId = guidFor(this);
21+
22+
/**
23+
* @property groupValue
24+
* @private
25+
*/
26+
27+
/**
28+
* @property buttonGroupType
29+
* @type string
30+
* @private
31+
*/
32+
33+
/**
34+
* @property active
35+
* @type boolean
36+
* @readonly
37+
* @private
38+
*/
39+
get active() {
40+
let { value, groupValue } = this.args;
41+
if (this.args.buttonGroupType === 'radio') {
42+
return value === groupValue;
43+
} else {
44+
if (isArray(groupValue)) {
45+
return groupValue.indexOf(value) !== -1;
46+
}
47+
}
48+
return false;
49+
}
50+
51+
get isBS5ToggleButton() {
52+
if (macroCondition(getOwnConfig().isBS4)) {
53+
return false;
54+
}
55+
56+
return (
57+
this.args.buttonGroupType === 'radio' ||
58+
this.args.buttonGroupType === 'checkbox'
59+
);
60+
}
61+
62+
<template>
63+
{{! @glint-nocheck }}
64+
{{#if this.isBS5ToggleButton}}
65+
<input
66+
type={{@buttonGroupType}}
67+
class='btn-check'
68+
id={{this.formId}}
69+
autocomplete='off'
70+
checked={{this.active}}
71+
...attributes
72+
{{on 'click' this.handleClick}}
73+
{{didUpdate this.resetState @reset}}
74+
/>
75+
<label
76+
class='btn
77+
{{bsSizeClass "btn" @size}}
78+
{{bsTypeClass "btn" @type default='secondary' outline=@outline}}'
79+
for={{this.formId}}
80+
>
81+
{{#if this.icon}}
82+
<i class={{this.icon}}></i>
83+
{{/if}}
84+
{{this.text}}
85+
{{yield
86+
(hash
87+
isFulfilled=this.isFulfilled
88+
isPending=this.isPending
89+
isRejected=this.isRejected
90+
isSettled=this.isSettled
91+
)
92+
}}
93+
</label>
94+
{{else}}
95+
<button
96+
disabled={{this.__disabled}}
97+
type='button'
98+
class='btn
99+
{{if this.active "active"}}
100+
{{if this.block "btn-block"}}
101+
{{bsSizeClass "btn" @size}}
102+
{{bsTypeClass "btn" @type default='secondary' outline=@outline}}'
103+
...attributes
104+
{{on 'click' this.handleClick}}
105+
{{didUpdate this.resetState @reset}}
106+
>
107+
{{#if this.icon}}
108+
<i class={{this.icon}}></i>
109+
{{/if}}
110+
{{this.text}}
111+
{{yield
112+
(hash
113+
isFulfilled=this.isFulfilled
114+
isPending=this.isPending
115+
isRejected=this.isRejected
116+
isSettled=this.isSettled
117+
)
118+
}}
119+
</button>
120+
{{/if}}
121+
</template>
122+
}

ember-bootstrap/addon/components/bs-button-group/button.hbs

Lines changed: 0 additions & 52 deletions
This file was deleted.

ember-bootstrap/addon/components/bs-button-group/button.js

Lines changed: 0 additions & 56 deletions
This file was deleted.

0 commit comments

Comments
 (0)