Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
166 commits
Select commit Hold shift + click to select a range
34bf334
New tokens: panel
Jun 16, 2026
1bcbfed
New tokens: page
Jun 18, 2026
32f6d19
New tokens: page
Jun 18, 2026
904c32e
Page top/bottom padding - temporary fix - DON'T FORGET TO DISCUSS
Jun 18, 2026
20e11d3
Layout: page - COMPACT MODE - TO DISCUSS
Jun 18, 2026
934ddd8
Fixed page header bottom space
Jun 18, 2026
6601be7
Layout: panel - COMPACT MODE
Jun 18, 2026
30ed489
Layout: panel - paneldynamic
Jun 18, 2026
dfe7da6
Layout: panel - fixed errors position in page
Jun 18, 2026
ae297bc
Layout: panel - fixed vertical spacings
Jun 18, 2026
f921039
Layout: panel - "panel-as-page" mode
Jun 18, 2026
c0bd94c
Layout: panel - try to fix scr tests in ci
Jun 19, 2026
00d1292
Merge branch 'V3' into tsv2013/issue11421
tsv2013 Jun 19, 2026
f13b7b5
Layout: panel - get rid of extra bottom padding in paneldynamic panel…
Jun 19, 2026
5b35587
Layout: panel - fixed extra footer spacings in dynamic panels
Jun 19, 2026
093e5b1
Layout: panel - Removed extra paddings
Jun 19, 2026
ffb9c62
Layout: panels: fixed nested collapsed element title horizontal paddings
Jun 19, 2026
186ef43
Layout: panel - Fixed dynamic panel footer vertical paddings
Jun 19, 2026
43c0ddf
New tokens: panel - TO DISCUSS - PanelDynamic inner panel footer
Jun 19, 2026
368b892
Layout: panel - fixed paneldynamic row divided
Jun 22, 2026
ccca9fb
Layout: page - Try to fix page rows gap in compact mode
Jun 22, 2026
8e43682
Reverted page row gap in compact mode
Jun 22, 2026
b006ee9
New tokens: panel - Fixed nested table panel paddings
Jun 22, 2026
adb1e31
Layout: panel - try to remove redundant negative margins
Jun 22, 2026
ccf515a
Layout: panel - reverted nested element in table paddings hack
Jun 22, 2026
1ce233d
Layout: panel - REVERT - try to remove redundant negative margins
Jun 22, 2026
9253e90
Layout: panel - panel footer spacings
Jun 22, 2026
7280ed7
New tokens: panel - Added styles for mobile mode
Jun 22, 2026
a284083
Layout: panel - fix comment area spacings for paneldynamic only
Jun 22, 2026
da63185
Layout: paneldynamic header responsivity fix
Jun 22, 2026
2cf80ed
Update pr.yml
tsv2013 Jun 23, 2026
5b233b0
Update pr.yml
tsv2013 Jun 23, 2026
c51ae33
Layout: paneldynamic - apply header paddings horizontal paddings for …
tsv2013 Jun 23, 2026
66a265b
Fixed question title paddings in mobile mode
Jun 23, 2026
d7307fb
Merge branch 'V3' into tsv2013/issue11421
tsv2013 Jun 23, 2026
3ad02b1
Fixed mobile page paddings
Jun 23, 2026
dc4a242
Fixed new css variables for page spacings
Jun 23, 2026
0527982
Fixed page paddings - TO REVIEW LATER
Jun 24, 2026
4a39f5d
Layout: question header spacings
Jun 24, 2026
4198090
Layout: page - fixed page horizontal paddings
Jun 24, 2026
8e67fec
New tokens: panel - temporary rollback page header paddings
Jun 24, 2026
78e5260
Layout: page fixed page title typography
Jun 24, 2026
ee5358b
Layout: page - Fixed page description typography
Jun 24, 2026
7f85a7e
Layout: question - Try to fix tests changing selector
Jun 24, 2026
26428ca
New tokens: panel - Fixed error box negative margins
Jun 24, 2026
7955025
Layout: question - Fixed left and bottom title location paddings
Jun 24, 2026
a150098
Layout: question - Fixed error boxes
Jun 24, 2026
7218bc7
Layout: panel - Fixed footer top padding on preview
Jun 24, 2026
9e775d3
Merge branch 'V3' into tsv2013/issue11421
tsv2013 Jun 24, 2026
1439d04
New tokens: question - Rolled back selectors in scr tests
Jun 25, 2026
a5a05f6
New tokens: panel - WARNING - Question markup changed
Jun 29, 2026
6ef6007
Merge branch 'V3' into tsv2013/issue11421
tsv2013 Jun 29, 2026
fb7142e
Fixed build after merge
Jun 29, 2026
de49292
New tokens: question layout - fixed compact mode
Jun 30, 2026
749f93e
Removed question paddings for elements without frame
Jun 30, 2026
ce6445d
Fixed question header row gap and added temporary fix for error botto…
Jun 30, 2026
a1cadcc
Fixed boolean question top padding
Jun 30, 2026
f46ece9
Fixed table w/o header top paddings
Jun 30, 2026
a790430
Rollback
Jun 30, 2026
b37ce57
Rollback
Jun 30, 2026
8a35b5e
Rollback
Jun 30, 2026
9abbeb2
Try to fix boolean top padding
Jun 30, 2026
15c4428
Layout fixes
Jun 30, 2026
a2a585d
Layout fixes
Jun 30, 2026
1a8ad2c
Merge branch 'tsv2013/issue11421' of https://github.com/surveyjs/surv…
Jun 30, 2026
a27d0bb
Fixed paneldynamic footer buttons right edge position
Jun 30, 2026
c71943b
Fixed line below panel dynamic header
Jun 30, 2026
c9390cb
Fixes of question layout
Jun 30, 2026
29102d9
Rollback
Jun 30, 2026
921d1d3
Merge branch 'V3' into tsv2013/issue11421
Jun 30, 2026
95e8b1c
Fixed "panel as page" mode
Jun 30, 2026
a719bab
Fixed panel header
Jul 1, 2026
d4bb360
Fixed question layout: collapsed, error/header bottom
Jul 1, 2026
8108270
Fixed question content top padding
Jul 1, 2026
b95ae83
Fixed error padding for question title location "left"
Jul 1, 2026
4e15154
Fixed paneldynamic header
Jul 1, 2026
7f5203b
Fixed paneldynamic tab header extra hr
Jul 1, 2026
ed8fa78
Fixed question header row gap
Jul 1, 2026
4168e21
Reverted
Jul 1, 2026
adeb90e
Try to fix paneldynamic header top padding
Jul 1, 2026
795a539
Reanimated panel collapsed header and fixed paneldynamic header top p…
Jul 1, 2026
5b15435
New tokens: question layout - error paddings
Jul 1, 2026
8985401
Fixed question error bottom gap
Jul 1, 2026
59507d3
Returned header padding
Jul 1, 2026
585c9a6
Fixed page error box top padding
Jul 1, 2026
214e125
Temporary fix for matrixdynamic top action padding in mobile mode
Jul 1, 2026
3125485
Temporary fix error top padding
Jul 1, 2026
2ab96a7
Fixed matrix scrolling
Jul 2, 2026
f345e9b
Added style
Jul 2, 2026
745337c
Fixed unnecessary sticky position
Jul 2, 2026
472f295
Fixed question paddings in single input mode
Jul 2, 2026
47cc377
Try to fix extra 1px diff in paneldynamic
Jul 2, 2026
6a6c4a3
Updated unit test
Jul 2, 2026
be71d67
Fixed u-test
Jul 2, 2026
d7528e8
Merge branch 'V3' into tsv2013/issue11421
Jul 2, 2026
6d3f65c
Paneldynamic layout fix
Jul 2, 2026
29e6209
Ho header table top padding fix
Jul 2, 2026
a86fc7b
Fixed no title table top padding
Jul 2, 2026
02240ef
Fix panel as page row gap in compact mode
Jul 2, 2026
4ae5afa
Fixed question title teft error top space
Jul 2, 2026
141deda
Fixed empty paneldynamic layout
Jul 2, 2026
97dd319
Fixed error box spacing for title location left
Jul 2, 2026
a78a434
Fixed complex element empty layout
Jul 2, 2026
b9b0c05
Try to fix readonly panel dynamic mode
Jul 2, 2026
3984d23
One more x100 error spacing case
Jul 2, 2026
b7ece41
Try fix matrix many columns
Jul 2, 2026
87fd548
Fixed complex element title left layout
Jul 3, 2026
df5599e
Try to fix specific nested matrix layout
Jul 3, 2026
4172d64
Try to fix table "no header" top padding
Jul 3, 2026
677792f
Returned mobile no header zero top padding
Jul 3, 2026
91e78cd
Try to fix matrixes
Jul 3, 2026
7eb9568
Last cell right padding fix
Jul 3, 2026
84b3fb4
Revert "Last cell right padding fix"
Jul 3, 2026
c23b991
Revert "Try to fix matrixes"
Jul 3, 2026
6dabbbd
Added additional conditions to removeExtraElements for improved marku…
MarchTokenda Jul 3, 2026
abfb3ee
Hide hr if necessary
Jul 3, 2026
91b6621
Fixed paneldynamic tabs header line
Jul 3, 2026
f990d3b
Try to fix large matrixes
Jul 3, 2026
35ed7d3
Try to fix large matrixes header
Jul 3, 2026
9832608
Try to move scroller-x to question content
Jul 6, 2026
2421252
Revert "Try to move scroller-x to question content"
Jul 6, 2026
56496df
Revert "Try to fix large matrixes header"
Jul 6, 2026
7a274d1
Revert "Try to fix large matrixes"
Jul 6, 2026
2342edb
Try to fix nested tables overflow
Jul 6, 2026
f78896f
Fixed page error top padding
Jul 6, 2026
ff4a9f1
Updated etalons
Jul 6, 2026
7fd7491
Fixed question with indent
Jul 6, 2026
55011f9
Fixed composite question paddings
Jul 6, 2026
a2bac3a
Fixed composite question paddings
Jul 6, 2026
c721c68
Fixed no-header table top padding
Jul 6, 2026
c8ed4cc
Revert "Fixed no-header table top padding"
Jul 6, 2026
e26b21f
Fixed screenshot test
Jul 6, 2026
366f34a
Try to fix table question spacings
Jul 6, 2026
9567590
Fixed nested table paddings and changed 2 etalons
Jul 6, 2026
4739c73
Fixed paneldynamic footer paddings in mobile mode
Jul 6, 2026
b7ed5d4
Updated etalons
Jul 6, 2026
270440c
Try to fix hovered collapsed nested header style
Jul 6, 2026
4aa777c
Merge branch 'V3' into tsv2013/issue11421
Jul 6, 2026
51fe19a
New tokens: pick changes from react to other frameworks
Jul 6, 2026
3f99f41
Updated markup snapshots
Jul 7, 2026
cc9d192
Temporary skipped one screenshot test to implement correct design in …
Jul 7, 2026
e7d954b
Updated etalon for specific angular markup test
Jul 7, 2026
69c4032
Try to fix e2e test according rendering changes
Jul 7, 2026
9227469
Trigger CI run with corresponding creator PR
Jul 7, 2026
6f9def8
Removed commented in this PR CSS
Jul 7, 2026
551defa
Try to get rid of CSS unused in current markup
Jul 7, 2026
0f7a3fa
Merge branch 'V3' into tsv2013/issue11421
tsv2013 Jul 7, 2026
b09f5ed
Updated markup snapshots
Jul 7, 2026
e7e72d1
Make use question spacing variables
Jul 7, 2026
6d07306
New tokens: panel - temporary fix for padding in creator
Jul 8, 2026
74d8db6
New tokens: page - try to apply new design tokens
Jul 8, 2026
985c438
Try to fix screenshot tests
Jul 8, 2026
5016b4d
New tokens: global spacings renaming
Jul 9, 2026
e8ee8e0
Get page error box screenshot
Jul 9, 2026
94988ed
New tokens - page
Jul 9, 2026
8b37293
Documented discussion result
Jul 9, 2026
ee41d22
New tokens: question
Jul 9, 2026
e5f9e70
New tokens: panel
Jul 9, 2026
8a472e0
Merge branch 'V3' into tsv2013/issue11421
Jul 9, 2026
777bd35
New tokens: panel - nested panel
Jul 10, 2026
fd45e19
Added TODO remark about nested panels specific variables
Jul 10, 2026
a6dde24
New tokens - use all tokens in paneldynamic
Jul 10, 2026
f12976e
Merge branch 'V3' into tsv2013/issue11421
Jul 10, 2026
e8530cf
Fix template for composite question in angular
dk981234 Jul 11, 2026
c845316
Fix paneldynamic template in Angular
dk981234 Jul 11, 2026
a2414e3
Try to fix matrix scr tests
dk981234 Jul 11, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion e2e/questions/panel.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,9 @@ frameworks.forEach((framework) => {
const getTitle3 = page.locator(".sd-element__title").filter({ hasText: "question3" });
const getTitle4 = page.locator(".sd-element__title").filter({ hasText: "question4" });

// TODO: Check whether this test actual for new rendering
const getPanelsCountByMargin = await page.evaluate(
() => (window as any).survey.rootElement.getRootNode().querySelectorAll('div[style*="padding-left: 20px"]').length
() => (window as any).survey.rootElement.getRootNode().querySelectorAll('div[style*="padding-inline-start"][style*="20px"]').length
);

await expect(getTitle1).toBeVisible({ timeout: 1000 });
Expand Down
22 changes: 13 additions & 9 deletions packages/survey-angular-ui/src/page.component.html
Original file line number Diff line number Diff line change
@@ -1,16 +1,20 @@
<ng-template #template>
<ng-container *ngIf="!!this.survey && !!this.model && this.model.isVisible && !!this.model.survey">
<div [class]="model.cssRoot" #pageContainer>
<sv-ng-element-title [element]="model"></sv-ng-element-title>
<div *ngIf="model._showDescription" [class]="model.cssClasses.page?.description">
<sv-ng-string [model]="model.locDescription"></sv-ng-string>
<div *ngIf="model.hasTitle || model._showDescription" [class]="model.cssHeader">
<sv-ng-element-title [element]="model"></sv-ng-element-title>
<div *ngIf="model._showDescription" [class]="model.cssClasses.page?.description">
<sv-ng-string [model]="model.locDescription"></sv-ng-string>
</div>
</div>
<div [class]="model.cssContent">
<div *ngIf="model.hasVisibleErrors" [element]="model" sv-ng-errors></div>
<ng-container *ngFor="let row of model.visibleRows">
<ng-template [component]="{ name: $any(model.survey).getRowWrapperComponentName(row), data: { componentData: $any(model.survey).getRowWrapperComponentData(row) } }">
<sv-ng-row [row]="row"></sv-ng-row>
</ng-template>
</ng-container>
</div>
<div *ngIf="model.hasVisibleErrors" [element]="model" sv-ng-errors></div>
<ng-container *ngFor="let row of model.visibleRows">
<ng-template [component]="{ name: $any(model.survey).getRowWrapperComponentName(row), data: { componentData: $any(model.survey).getRowWrapperComponentData(row) } }">
<sv-ng-row [row]="row"></sv-ng-row>
</ng-template>
</ng-container>
</div>
</ng-container>
</ng-template>
4 changes: 2 additions & 2 deletions packages/survey-angular-ui/src/panel.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@
<div *ngIf="model.showErrorsAbovePanel && model.hasVisibleErrors" [element]="model" sv-ng-errors></div>
<div *ngIf="model.hasDescription || model.hasTitle" [element]="model" sv-ng-element-header></div>
<div *ngIf="!model.showErrorsAbovePanel && model.hasVisibleErrors" [element]="model" sv-ng-errors></div>
<div *ngIf="model.renderedIsExpanded" [style.paddingLeft]="model.innerPaddingLeft" [class]="model.cssClasses.panel.content"
<div *ngIf="model.renderedIsExpanded" [style]="panelContentStyle" [class]="model.cssClasses.panel.content"
[attr.id]="model.contentId" [attr.role]="model.ariaRole" [attr.aria-labelledby]="model.ariaLabelledBy"[attr.aria-label]="model.ariaLabel">
<ng-container *ngFor="let row of model.visibleRows; trackBy: trackRowBy">
<ng-template [component]="{ name: $any(model.survey).getRowWrapperComponentName(row), data: { componentData: $any(model.survey).getRowWrapperComponentData(row) } }">
<sv-ng-row [row]="row"></sv-ng-row>
</ng-template>
</ng-container>
<sv-ng-action-bar [model]="model.getFooterToolbar()"></sv-ng-action-bar>
</div>
<sv-ng-action-bar *ngIf="model.renderedIsExpanded && model.getFooterToolbar().hasActions" [model]="model.getFooterToolbar()"></sv-ng-action-bar>
</div>
</ng-template>
7 changes: 7 additions & 0 deletions packages/survey-angular-ui/src/panel.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import { AngularComponentFactory } from "./component-factory";
export class PanelComponent extends BaseAngular<PanelModel> implements AfterViewInit {
@Input() model!: PanelModel;
@ViewChild("panelContainer", { static: false, read: ElementRef }) panelContainerRef!: ElementRef<HTMLDivElement>;
private readonly panelPaddingHorizontal = "var(--sd-base-padding, var(--sjs2-spacing-x500))";
protected getModel(): PanelModel {
return this.model;
}
Expand All @@ -23,5 +24,11 @@ export class PanelComponent extends BaseAngular<PanelModel> implements AfterView
public get canRender() {
return this.model && this.model.survey && this.model.getIsContentVisible();
}
public get panelContentStyle(): Record<string, string> {
const hasInnerPadding = !!this.model?.innerPaddingLeft;
return hasInnerPadding ? {
"padding-inline-start": `calc(${this.panelPaddingHorizontal} + ${this.model.innerPaddingLeft})`,
} : {};
}
}
AngularComponentFactory.Instance.registerComponent("panel", PanelComponent);
55 changes: 30 additions & 25 deletions packages/survey-angular-ui/src/question.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,32 +9,37 @@
[model]="model.singleInputActions"
[css]="model.cssClasses"
></sv-breadcrumbs>
<div *ngIf="model.showErrorsAboveQuestion && model.hasVisibleErrors" [element]="model" sv-ng-errors></div>
<div [element]="model" *ngIf="model.hasTitleOnLeftTop" sv-ng-element-header></div>
<sv-single-input-summary
*ngIf="!!model.singleInputSummary"
[model]="model.singleInputSummary"
[css]="model.cssClasses"
></sv-single-input-summary>
<sv-ng-element
*ngIf="!model.singleInputSummary && !!singleQuestion"
[model]="singleQuestion"
></sv-ng-element>
<ng-template
*ngIf="!model.singleInputSummary && !singleQuestion"
[component]="{ name: getQuestionContentWrapperComponentName(), data: getQuestionContentWrapperComponentData() }">
<div [class]="model.cssContent" role="presentation" [visible]="model.renderedIsExpanded" [attr.aria-hidden]="model.contentAriaHidden" [attr.data-sv-drop-target-matrix-row]="model.dragDropMatrixAttribute" [attr.data-sv-drop-target-matrix]="model.dragDropMatrixAttribute">
<div [class]="model.getQuestionContainerCss()">
<div *ngIf="model.showErrorsAboveQuestion && model.hasVisibleErrors" [element]="model" sv-ng-errors></div>
<div [class]="model.getHeaderAndContentContainerCss()">
<div [element]="model" *ngIf="model.hasTitleOnLeftTop" sv-ng-element-header></div>
<hr *ngIf="model.hasTitleOnLeftTop && model.isComplexQuestion" />
<sv-single-input-summary
*ngIf="!!model.singleInputSummary"
[model]="model.singleInputSummary"
[css]="model.cssClasses"
></sv-single-input-summary>
<sv-ng-element
*ngIf="!model.singleInputSummary && !!singleQuestion"
[model]="singleQuestion"
></sv-ng-element>
<ng-template
[component]="{ name: getComponentName(), data: { model: model }, default: 'skeleton-question' }"></ng-template>
<div *ngIf="model.hasComment" [class]="model.getCommentAreaCss(false)">
<div [model]="model.locCommentText" sv-ng-string></div>
<sv-ng-comment [question]="model"></sv-ng-comment>
</div>
<div *ngIf="model.hasDescriptionUnderInput" [class]="model.cssDescription" [attr.id]="model.ariaDescriptionId"
[model]="model.locDescription" sv-ng-string></div>
*ngIf="!model.singleInputSummary && !singleQuestion"
[component]="{ name: getQuestionContentWrapperComponentName(), data: getQuestionContentWrapperComponentData() }">
<div [class]="model.cssContent" role="presentation" [visible]="model.renderedIsExpanded" [attr.aria-hidden]="model.contentAriaHidden" [attr.data-sv-drop-target-matrix-row]="model.dragDropMatrixAttribute" [attr.data-sv-drop-target-matrix]="model.dragDropMatrixAttribute">
<ng-template
[component]="{ name: getComponentName(), data: { model: model }, default: 'skeleton-question' }"></ng-template>
<div *ngIf="model.hasComment" [class]="model.getCommentAreaCss(false)">
<div [model]="model.locCommentText" sv-ng-string></div>
<sv-ng-comment [question]="model"></sv-ng-comment>
</div>
<div *ngIf="model.hasDescriptionUnderInput" [class]="model.cssDescription" [attr.id]="model.ariaDescriptionId"
[model]="model.locDescription" sv-ng-string></div>
</div>
</ng-template>
<div [element]="model" *ngIf="model.hasTitleOnBottom" sv-ng-element-header></div>
</div>
</ng-template>
<div [element]="model" *ngIf="model.hasTitleOnBottom" sv-ng-element-header></div>
<div *ngIf="model.showErrorsBelowQuestion && model.hasVisibleErrors" [element]="model" sv-ng-errors></div>
<div *ngIf="model.showErrorsBelowQuestion && model.hasVisibleErrors" [element]="model" sv-ng-errors></div>
</div>
</div>
</ng-template>
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ import { PanelModel, QuestionCompositeModel } from "survey-core";

@Component({
selector: "sv-ng-composite-question",
template: "<sv-ng-panel [model]='contentPanel'></sv-ng-panel>"
template: "<ng-template #template><sv-ng-panel [model]='contentPanel'></sv-ng-panel></ng-template>",
styles: [":host { display: none } "]
})
export class CompositeQuestionComponent extends QuestionAngular<QuestionCompositeModel> {
get contentPanel(): PanelModel {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,30 +1,33 @@
<div [class]="model.cssClasses.root" #contentElement>
<div *ngIf="model.hasTabbedMenu" [class]="model.getTabsContainerCss()">
<sv-action-bar [model]="model.tabbedMenu"></sv-action-bar>
</div>
<sv-ng-placeholder-paneldynamic [question]="model"></sv-ng-placeholder-paneldynamic>
<div [class]="model.cssClasses.progress" *ngIf="model.isProgressTopShowing && model.isRangeShowing">
<div [class]="model.cssClasses.progressBar" [style]="{ width: model.progress }"
role="progressbar" [attr.aria-label]="model.progressBarAriaLabel"
></div>
</div>
<div [class]="model.cssClasses.panelsContainer">
<ng-container *ngFor="let panel of model.renderedPanels; index as index; trackBy: trackPanelBy">
<div [class]="model.getPanelWrapperCss(panel)">
<ng-template
[component]="{ name: getPanelComponentName(panel), data: getPanelComponentData(panel) }"></ng-template>
<ng-container *ngIf="model.canRenderRemovePanelOnRight(panel)">
<ng-template #template>
<div [class]="model.cssClasses.root" #contentElement>
<div *ngIf="model.hasTabbedMenu" [class]="model.getTabsContainerCss()">
<sv-action-bar [model]="model.tabbedMenu"></sv-action-bar>
</div>
<sv-ng-placeholder-paneldynamic [question]="model"></sv-ng-placeholder-paneldynamic>
<div [class]="model.cssClasses.progress" *ngIf="model.isProgressTopShowing && model.isRangeShowing">
<div [class]="model.cssClasses.progressBar" [style]="{ width: model.progress }"
role="progressbar" [attr.aria-label]="model.progressBarAriaLabel"
></div>
</div>
<div [class]="model.cssClasses.panelsContainer">
<ng-container *ngFor="let panel of model.renderedPanels; index as index; trackBy: trackPanelBy">
<div [class]="model.getPanelWrapperCss(panel)">
<ng-template
[component]="{ name: 'sv-action', data: { model: model.getRemovePanelAction(panel)}}"></ng-template>
</ng-container>
</div>
<hr [class]="model.cssClasses.separator" *ngIf="model.showSeparator(index)" />
</ng-container>
[component]="{ name: getPanelComponentName(panel), data: getPanelComponentData(panel) }"></ng-template>
<ng-container *ngIf="model.canRenderRemovePanelOnRight(panel)">
<ng-template
[component]="{ name: 'sv-action', data: { model: model.getRemovePanelAction(panel)}}"></ng-template>
</ng-container>
</div>
<hr [class]="model.cssClasses.separator" *ngIf="model.showSeparator(index)" />
</ng-container>
</div>
<ng-container [ngTemplateOutlet]="progress" *ngIf="model.showNavigation"></ng-container>
</div>
<ng-container [ngTemplateOutlet]="progress" *ngIf="model.showNavigation"></ng-container>
</div>
</ng-template>

<ng-template #progress>
<div [class]="model.cssClasses.footer" *ngIf="!!model.cssClasses.footer">
<div [class]="model.cssClasses.footer" *ngIf="(model.isRangeShowing && model.isProgressBottomShowing) || model.showFooterToolbar">
<hr [class]="model.cssClasses.separator" />
<div [class]="model.cssClasses.progress" *ngIf="model.isRangeShowing && model.isProgressBottomShowing">
<div [class]="model.cssClasses.progressBar" [style]="{ width: model.progress }"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ import { AngularComponentFactory } from "../component-factory";

@Component({
selector: "sv-ng-paneldynamic-question",
templateUrl: "./paneldynamic.component.html"
templateUrl: "./paneldynamic.component.html",
styleUrls: ["../hide-host.scss"]
})
export class PanelDynamicQuestionComponent extends QuestionAngular<QuestionPanelDynamicModel | any> implements OnInit {
public trackPanelBy(_: number, panel: PanelModel) {
Expand Down
Loading
Loading