Skip to content

Commit 7084c96

Browse files
authored
fix: fix source maps (#181)
Template files with DOS line endings are breaking the source map. Convert DOS line endings to Unix line endings when generating renderers. This way, .hbs files with DOS line endings (no eslint) will not break the source maps as the generated renderer will have the correct line ending. The change is also correcting the line endings of existing .hbs templates.
1 parent f4028b3 commit 7084c96

15 files changed

+371
-368
lines changed

packages/main/lib/hbs2ui5/index.js

+4-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,10 @@ const writeRenderers = (outputDir, controlName, fileContent) => {
6363
try {
6464
const compiledFilePath = `${outputDir}${path.sep}${controlName}Renderer.lit.js`;
6565

66-
fs.writeFileSync(compiledFilePath, fileContent);
66+
// strip DOS line endings because the break the source maps
67+
let fileContentUnix = fileContent.replace(/\r\n/g, "\n");
68+
fileContentUnix = fileContentUnix.replace(/\r/g, "\n");
69+
fs.writeFileSync(compiledFilePath, fileContentUnix);
6770

6871
} catch (e) {
6972
console.log(e);

packages/main/src/Button.hbs

+26-26
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,26 @@
1-
<button {{> controlData}}
2-
type="button"
3-
class="{{classes.main}}"
4-
style="{{styles.main}}"
5-
disabled="{{ctr.disabled}}"
6-
aria-disabled="{{ariaDisabled}}"
7-
title="{{ctr.tooltip}}"
8-
tabindex="{{tabindex}}"
9-
data-sap-focus-ref
10-
{{> ariaPressed}}
11-
>
12-
{{#if ctr._iconSettings}}
13-
<ui5-icon
14-
class="{{classes.icon}}"
15-
src="{{ctr._iconSettings.src}}"
16-
></ui5-icon>
17-
{{/if}}
18-
19-
{{#if ctr._nodeText}}
20-
<span id="{{ctr._id}}-content" dir="{{dir}}" class="{{classes.text}}">
21-
<bdi>{{ctr._nodeText}}</bdi>
22-
</span>
23-
{{/if}}
24-
</button>
25-
26-
{{#*inline "ariaPressed"}}{{/inline}}
1+
<button {{> controlData}}
2+
type="button"
3+
class="{{classes.main}}"
4+
style="{{styles.main}}"
5+
disabled="{{ctr.disabled}}"
6+
aria-disabled="{{ariaDisabled}}"
7+
title="{{ctr.tooltip}}"
8+
tabindex="{{tabindex}}"
9+
data-sap-focus-ref
10+
{{> ariaPressed}}
11+
>
12+
{{#if ctr._iconSettings}}
13+
<ui5-icon
14+
class="{{classes.icon}}"
15+
src="{{ctr._iconSettings.src}}"
16+
></ui5-icon>
17+
{{/if}}
18+
19+
{{#if ctr._nodeText}}
20+
<span id="{{ctr._id}}-content" dir="{{dir}}" class="{{classes.text}}">
21+
<bdi>{{ctr._nodeText}}</bdi>
22+
</span>
23+
{{/if}}
24+
</button>
25+
26+
{{#*inline "ariaPressed"}}{{/inline}}

packages/main/src/Calendar.hbs

+45-45
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,46 @@
1-
<div {{> controlData}} class="{{classes.main}}" style="{{styles.main}}">
2-
3-
<ui5-calendar-header
4-
id="{{ctr._id}}-head"
5-
month-text="{{ctr._header.monthText}}"
6-
year-text="{{ctr._header.yearText}}"
7-
.primaryCalendarType="{{ctr._oMonth.primaryCalendarType}}"
8-
@pressPrevious="{{ctr._header.onPressPrevious}}"
9-
@pressNext="{{ctr._header.onPressNext}}"
10-
@btn1Press="{{ctr._header.onBtn1Press}}"
11-
@btn2Press="{{ctr._header.onBtn2Press}}"
12-
></ui5-calendar-header>
13-
14-
<div id="{{ctr._id}}-content" class="sapUiCalContent">
15-
<ui5-daypicker
16-
id="{{ctr._id}}-daypicker"
17-
class="{{classes.dayPicker}}"
18-
format-pattern="{{ctr._oMonth.formatPattern}}"
19-
.selectedDates="{{ctr._oMonth.selectedDates}}"
20-
._hidden="{{ctr._oMonth._hidden}}"
21-
.primaryCalendarType="{{ctr._oMonth.primaryCalendarType}}"
22-
timestamp="{{ctr._oMonth.timestamp}}"
23-
@selectionChange="{{ctr._oMonth.onSelectedDatesChange}}"
24-
@navigate="{{ctr._oMonth.onNavigate}}"
25-
></ui5-daypicker>
26-
27-
<ui5-month-picker
28-
id="{{ctr._id}}-MP"
29-
class="{{classes.monthPicker}}"
30-
._hidden="{{ctr._monthPicker._hidden}}"
31-
.primaryCalendarType="{{ctr._oMonth.primaryCalendarType}}"
32-
timestamp="{{ctr._monthPicker.timestamp}}"
33-
@selectedMonthChange="{{ctr._monthPicker.onSelectedMonthChange}}"
34-
></ui5-month-picker>
35-
36-
<ui5-yearpicker
37-
id="{{ctr._id}}-YP"
38-
class="{{classes.yearPicker}}"
39-
._hidden="{{ctr._yearPicker._hidden}}"
40-
.primaryCalendarType="{{ctr._oMonth.primaryCalendarType}}"
41-
timestamp="{{ctr._yearPicker.timestamp}}"
42-
._selectedYear="{{ctr._yearPicker._selectedYear}}"
43-
@selectedYearChange="{{ctr._yearPicker.onSelectedYearChange}}"
44-
></ui5-yearpicker>
45-
</div>
1+
<div {{> controlData}} class="{{classes.main}}" style="{{styles.main}}">
2+
3+
<ui5-calendar-header
4+
id="{{ctr._id}}-head"
5+
month-text="{{ctr._header.monthText}}"
6+
year-text="{{ctr._header.yearText}}"
7+
.primaryCalendarType="{{ctr._oMonth.primaryCalendarType}}"
8+
@pressPrevious="{{ctr._header.onPressPrevious}}"
9+
@pressNext="{{ctr._header.onPressNext}}"
10+
@btn1Press="{{ctr._header.onBtn1Press}}"
11+
@btn2Press="{{ctr._header.onBtn2Press}}"
12+
></ui5-calendar-header>
13+
14+
<div id="{{ctr._id}}-content" class="sapUiCalContent">
15+
<ui5-daypicker
16+
id="{{ctr._id}}-daypicker"
17+
class="{{classes.dayPicker}}"
18+
format-pattern="{{ctr._oMonth.formatPattern}}"
19+
.selectedDates="{{ctr._oMonth.selectedDates}}"
20+
._hidden="{{ctr._oMonth._hidden}}"
21+
.primaryCalendarType="{{ctr._oMonth.primaryCalendarType}}"
22+
timestamp="{{ctr._oMonth.timestamp}}"
23+
@selectionChange="{{ctr._oMonth.onSelectedDatesChange}}"
24+
@navigate="{{ctr._oMonth.onNavigate}}"
25+
></ui5-daypicker>
26+
27+
<ui5-month-picker
28+
id="{{ctr._id}}-MP"
29+
class="{{classes.monthPicker}}"
30+
._hidden="{{ctr._monthPicker._hidden}}"
31+
.primaryCalendarType="{{ctr._oMonth.primaryCalendarType}}"
32+
timestamp="{{ctr._monthPicker.timestamp}}"
33+
@selectedMonthChange="{{ctr._monthPicker.onSelectedMonthChange}}"
34+
></ui5-month-picker>
35+
36+
<ui5-yearpicker
37+
id="{{ctr._id}}-YP"
38+
class="{{classes.yearPicker}}"
39+
._hidden="{{ctr._yearPicker._hidden}}"
40+
.primaryCalendarType="{{ctr._oMonth.primaryCalendarType}}"
41+
timestamp="{{ctr._yearPicker.timestamp}}"
42+
._selectedYear="{{ctr._yearPicker._selectedYear}}"
43+
@selectedYearChange="{{ctr._yearPicker.onSelectedYearChange}}"
44+
></ui5-yearpicker>
45+
</div>
4646
</div>

packages/main/src/CalendarHeader.hbs

+38-38
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,39 @@
1-
<div {{> controlData}}
2-
class="{{classes.main}}">
3-
4-
<ui5-icon id="{{ctr._id}}-btnPrev"
5-
class="{{classes.buttons}}"
6-
src="{{ctr._btnPrev.icon}}"
7-
data-sap-cal-head-button="Prev">
8-
</ui5-icon>
9-
10-
<div class="sapWCCalHeadMidButtonContainer">
11-
<div
12-
id="{{ctr._id}}-btn1"
13-
class="{{classes.middleButtons}}"
14-
type="{{ctr._btn1.type}}"
15-
tabindex="0"
16-
data-sap-show-picker="Month"
17-
>
18-
{{ctr._btn1.text}}
19-
</div>
20-
21-
<div
22-
id="{{ctr._id}}-btn2"
23-
class="{{classes.middleButtons}}"
24-
type="{{ctr._btn2.type}}"
25-
tabindex="0"
26-
data-sap-show-picker="Year"
27-
>
28-
{{ctr._btn2.text}}
29-
</div>
30-
</div>
31-
32-
<ui5-icon
33-
id="{{ctr._id}}-btnNext"
34-
class="{{classes.buttons}}"
35-
src="{{ctr._btnNext.icon}}"
36-
data-sap-cal-head-button="Next">
37-
</ui5-icon>
38-
1+
<div {{> controlData}}
2+
class="{{classes.main}}">
3+
4+
<ui5-icon id="{{ctr._id}}-btnPrev"
5+
class="{{classes.buttons}}"
6+
src="{{ctr._btnPrev.icon}}"
7+
data-sap-cal-head-button="Prev">
8+
</ui5-icon>
9+
10+
<div class="sapWCCalHeadMidButtonContainer">
11+
<div
12+
id="{{ctr._id}}-btn1"
13+
class="{{classes.middleButtons}}"
14+
type="{{ctr._btn1.type}}"
15+
tabindex="0"
16+
data-sap-show-picker="Month"
17+
>
18+
{{ctr._btn1.text}}
19+
</div>
20+
21+
<div
22+
id="{{ctr._id}}-btn2"
23+
class="{{classes.middleButtons}}"
24+
type="{{ctr._btn2.type}}"
25+
tabindex="0"
26+
data-sap-show-picker="Year"
27+
>
28+
{{ctr._btn2.text}}
29+
</div>
30+
</div>
31+
32+
<ui5-icon
33+
id="{{ctr._id}}-btnNext"
34+
class="{{classes.buttons}}"
35+
src="{{ctr._btnNext.icon}}"
36+
data-sap-cal-head-button="Next">
37+
</ui5-icon>
38+
3939
</div>

packages/main/src/CheckBox.hbs

+17-17
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
1-
<div {{> controlData}}
2-
class="{{classes.main}}"
3-
style="{{styles.main}}"
4-
role="checkbox"
5-
aria-checked="{{ctr.checked}}"
6-
aria-readonly="{{ariaReadonly}}"
7-
tabindex="{{tabIndex}}">
8-
<div id="{{ctr._id}}-CbBg" class="{{classes.inner}}">
9-
<input id="{{ctr._id}}-CB" type='checkbox' ?checked="{{ctr.checked}}" ?readonly="{{ctr.readOnly}}" data-sap-no-tab-ref/>
10-
</div>
11-
12-
{{#if ctr._label.text}}
13-
<ui5-label
14-
class="sapWCLabelInCheckBox"
15-
?wrap="{{ctr._label.wrap}}"
16-
>{{ctr._label.text}}</ui5-label>
17-
{{/if}}
1+
<div {{> controlData}}
2+
class="{{classes.main}}"
3+
style="{{styles.main}}"
4+
role="checkbox"
5+
aria-checked="{{ctr.checked}}"
6+
aria-readonly="{{ariaReadonly}}"
7+
tabindex="{{tabIndex}}">
8+
<div id="{{ctr._id}}-CbBg" class="{{classes.inner}}">
9+
<input id="{{ctr._id}}-CB" type='checkbox' ?checked="{{ctr.checked}}" ?readonly="{{ctr.readOnly}}" data-sap-no-tab-ref/>
10+
</div>
11+
12+
{{#if ctr._label.text}}
13+
<ui5-label
14+
class="sapWCLabelInCheckBox"
15+
?wrap="{{ctr._label.wrap}}"
16+
>{{ctr._label.text}}</ui5-label>
17+
{{/if}}
1818
</div>

packages/main/src/DatePicker.hbs

+50-50
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,51 @@
1-
<div {{> controlData}}
2-
class="{{classes.main}}"
3-
style="{{styles.main}}"
4-
>
5-
<!-- INPUT -->
6-
<ui5-input
7-
id="{{ctr._id}}-inner"
8-
placeholder="{{ctr._input.placeholder}}"
9-
type="{{ctr._input.type}}"
10-
value="{{ctr.value}}"
11-
?disabled="{{ctr.disabled}}"
12-
?readonly="{{ctr.readonly}}"
13-
value-state="{{ctr.valueState}}"
14-
@change="{{ctr._input.onChange}}"
15-
@input="{{ctr._input.onLiveChange}}"
16-
data-sap-focus-ref
17-
>
18-
{{#if showIcon}}
19-
<ui5-icon
20-
data-ui5-slot="icon"
21-
src="{{ctr._input.icon.src}}"
22-
class="{{classes.icon}}"
23-
tabindex="-1"
24-
></ui5-icon>
25-
{{/if}}
26-
</ui5-input>
27-
28-
<!-- POPOVER -->
29-
<ui5-popover
30-
id="{{ctr._id}}-popover"
31-
allow-target-overlap="{{ctr._popover.allowTargetOverlap}}"
32-
placement-type="{{ctr._popover.placementType}}"
33-
hide-header="{{ctr._popover.hideHeader}}"
34-
hide-arrow="{{ctr._popover.hideArrow}}"
35-
horizontal-align="{{ctr._popover.horizontalAlign}}"
36-
stay-open-on-scroll="{{ctr._popover.stayOpenOnScroll}}"
37-
.customClasses="{{ctr._popover._customClasses}}"
38-
@afterClose="{{ctr._popover.afterClose}}"
39-
@afterOpen="{{ctr._popover.afterOpen}}"
40-
>
41-
<ui5-calendar
42-
id="{{ctr._id}}-calendar"
43-
data-ui5-slot="content"
44-
primary-calendar-type="{{ctr._calendar.primaryCalendarType}}"
45-
format-pattern="{{ctr._calendar.formatPattern}}"
46-
timestamp="{{ctr._calendar.timestamp}}"
47-
.selectedDates="{{ctr._calendar.selectedDates}}"
48-
@selectedDatesChange="{{ctr._calendar.onSelectedDatesChange}}"
49-
></ui5-calendar>
50-
</ui5-popover>
1+
<div {{> controlData}}
2+
class="{{classes.main}}"
3+
style="{{styles.main}}"
4+
>
5+
<!-- INPUT -->
6+
<ui5-input
7+
id="{{ctr._id}}-inner"
8+
placeholder="{{ctr._input.placeholder}}"
9+
type="{{ctr._input.type}}"
10+
value="{{ctr.value}}"
11+
?disabled="{{ctr.disabled}}"
12+
?readonly="{{ctr.readonly}}"
13+
value-state="{{ctr.valueState}}"
14+
@change="{{ctr._input.onChange}}"
15+
@input="{{ctr._input.onLiveChange}}"
16+
data-sap-focus-ref
17+
>
18+
{{#if showIcon}}
19+
<ui5-icon
20+
data-ui5-slot="icon"
21+
src="{{ctr._input.icon.src}}"
22+
class="{{classes.icon}}"
23+
tabindex="-1"
24+
></ui5-icon>
25+
{{/if}}
26+
</ui5-input>
27+
28+
<!-- POPOVER -->
29+
<ui5-popover
30+
id="{{ctr._id}}-popover"
31+
allow-target-overlap="{{ctr._popover.allowTargetOverlap}}"
32+
placement-type="{{ctr._popover.placementType}}"
33+
hide-header="{{ctr._popover.hideHeader}}"
34+
hide-arrow="{{ctr._popover.hideArrow}}"
35+
horizontal-align="{{ctr._popover.horizontalAlign}}"
36+
stay-open-on-scroll="{{ctr._popover.stayOpenOnScroll}}"
37+
.customClasses="{{ctr._popover._customClasses}}"
38+
@afterClose="{{ctr._popover.afterClose}}"
39+
@afterOpen="{{ctr._popover.afterOpen}}"
40+
>
41+
<ui5-calendar
42+
id="{{ctr._id}}-calendar"
43+
data-ui5-slot="content"
44+
primary-calendar-type="{{ctr._calendar.primaryCalendarType}}"
45+
format-pattern="{{ctr._calendar.formatPattern}}"
46+
timestamp="{{ctr._calendar.timestamp}}"
47+
.selectedDates="{{ctr._calendar.selectedDates}}"
48+
@selectedDatesChange="{{ctr._calendar.onSelectedDatesChange}}"
49+
></ui5-calendar>
50+
</ui5-popover>
5151
</div>

packages/main/src/Icon.hbs

+8-8
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
<span {{> controlData}}
2-
class="{{classes.main}}"
3-
style="{{styles.main}}"
4-
tabindex="-1"
5-
data-sap-ui-icon-content="{{iconContent}}"
6-
aria-expanded="{{ariaExpanded}}"
7-
aria-labelledby="{{ariaLabelledBy}}"
8-
dir="{{dir}}"
1+
<span {{> controlData}}
2+
class="{{classes.main}}"
3+
style="{{styles.main}}"
4+
tabindex="-1"
5+
data-sap-ui-icon-content="{{iconContent}}"
6+
aria-expanded="{{ariaExpanded}}"
7+
aria-labelledby="{{ariaLabelledBy}}"
8+
dir="{{dir}}"
99
></span>

0 commit comments

Comments
 (0)