@defra/forms-model 3.0.501 → 3.0.503

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/module/__stubs__/pages.js +14 -1
  2. package/dist/module/__stubs__/pages.js.map +1 -1
  3. package/dist/module/form/form-editor/__stubs__/preview.js +7 -1
  4. package/dist/module/form/form-editor/__stubs__/preview.js.map +1 -1
  5. package/dist/module/form/form-editor/macros/types.js.map +1 -1
  6. package/dist/module/form/form-editor/preview/controller/guidance-page-controller.js +58 -0
  7. package/dist/module/form/form-editor/preview/controller/guidance-page-controller.js.map +1 -0
  8. package/dist/module/form/form-editor/preview/controller/page-controller-base.js +363 -0
  9. package/dist/module/form/form-editor/preview/controller/page-controller-base.js.map +1 -0
  10. package/dist/module/form/form-editor/preview/controller/page-controller.js +62 -186
  11. package/dist/module/form/form-editor/preview/controller/page-controller.js.map +1 -1
  12. package/dist/module/form/form-editor/preview/index.js +2 -0
  13. package/dist/module/form/form-editor/preview/index.js.map +1 -1
  14. package/dist/module/form/form-editor/preview/types.js.map +1 -1
  15. package/dist/module/pages/helpers.js +2 -1
  16. package/dist/module/pages/helpers.js.map +1 -1
  17. package/dist/types/__stubs__/pages.d.ts +14 -0
  18. package/dist/types/__stubs__/pages.d.ts.map +1 -1
  19. package/dist/types/form/form-editor/__stubs__/preview.d.ts +5 -1
  20. package/dist/types/form/form-editor/__stubs__/preview.d.ts.map +1 -1
  21. package/dist/types/form/form-editor/macros/types.d.ts +8 -0
  22. package/dist/types/form/form-editor/macros/types.d.ts.map +1 -1
  23. package/dist/types/form/form-editor/preview/controller/guidance-page-controller.d.ts +10 -0
  24. package/dist/types/form/form-editor/preview/controller/guidance-page-controller.d.ts.map +1 -0
  25. package/dist/types/form/form-editor/preview/controller/page-controller-base.d.ts +198 -0
  26. package/dist/types/form/form-editor/preview/controller/page-controller-base.d.ts.map +1 -0
  27. package/dist/types/form/form-editor/preview/controller/page-controller.d.ts +9 -114
  28. package/dist/types/form/form-editor/preview/controller/page-controller.d.ts.map +1 -1
  29. package/dist/types/form/form-editor/preview/index.d.ts +2 -0
  30. package/dist/types/form/form-editor/preview/types.d.ts +5 -1
  31. package/dist/types/form/form-editor/preview/types.d.ts.map +1 -1
  32. package/dist/types/pages/helpers.d.ts.map +1 -1
  33. package/package.json +1 -1
  34. package/src/__stubs__/pages.ts +20 -1
  35. package/src/form/form-editor/__stubs__/preview.js +13 -1
  36. package/src/form/form-editor/macros/types.ts +8 -0
  37. package/src/form/form-editor/preview/controller/guidance-page-controller.js +64 -0
  38. package/src/form/form-editor/preview/controller/page-controller-base.js +388 -0
  39. package/src/form/form-editor/preview/controller/page-controller.js +67 -201
  40. package/src/form/form-editor/preview/index.js +2 -0
  41. package/src/form/form-editor/preview/types.ts +6 -1
  42. package/src/pages/helpers.ts +2 -1
@@ -0,0 +1,198 @@
1
+ /**
2
+ * @implements {PageOverviewElements}
3
+ */
4
+ export class PagePreviewElements implements PageOverviewElements {
5
+ /**
6
+ * @param {Page|undefined} page
7
+ */
8
+ constructor(page: Page | undefined);
9
+ /**
10
+ * @type {Page | { title: string }}
11
+ * @private
12
+ */
13
+ private _page;
14
+ get heading(): string;
15
+ get guidance(): string;
16
+ get addHeading(): boolean;
17
+ get repeatQuestion(): string | undefined;
18
+ get hasRepeater(): boolean;
19
+ }
20
+ /**
21
+ * @abstract
22
+ * @implements {PagePreviewPanelMacro}
23
+ */
24
+ export class PreviewPageControllerBase implements PagePreviewPanelMacro {
25
+ static PATH: string;
26
+ /**
27
+ * @type {typeof HighlightClass}
28
+ */
29
+ static HighlightClass: typeof HighlightClass;
30
+ /**
31
+ * Creates a dummy component for when guidance is highlighted
32
+ * but no guidance text exists
33
+ * @returns {Markdown}
34
+ */
35
+ static createGuidanceComponent(highlight?: boolean): Markdown;
36
+ /**
37
+ * @param {PagePreviewBaseElements} elements
38
+ * @param {PageRenderer} renderer
39
+ */
40
+ constructor(elements: PagePreviewBaseElements, renderer: PageRenderer);
41
+ /**
42
+ * @type {string}
43
+ * @protected
44
+ */
45
+ protected _pageTemplate: string;
46
+ /**
47
+ * @protected
48
+ * @type {Question[]}
49
+ */
50
+ protected _components: Question[];
51
+ /**
52
+ * @type {boolean}
53
+ * @protected
54
+ */
55
+ protected _showTitle: boolean;
56
+ /**
57
+ * @protected
58
+ * @type {string}
59
+ */
60
+ protected _title: string;
61
+ /**
62
+ * @type { undefined | HighlightClass }
63
+ * @protected
64
+ */
65
+ protected _highlighted: undefined | HighlightClass;
66
+ /**
67
+ * @type {string}
68
+ * @protected
69
+ */
70
+ protected _guidanceText: string;
71
+ /**
72
+ * @type { string }
73
+ * @protected
74
+ */
75
+ protected _sectionTitle: string;
76
+ /**
77
+ * @type {Markdown}
78
+ * @protected
79
+ */
80
+ protected _emptyGuidance: Markdown;
81
+ /**
82
+ * @type {Markdown}
83
+ * @protected
84
+ */
85
+ protected _guidanceComponent: Markdown;
86
+ /**
87
+ * @protected
88
+ * @type {boolean}
89
+ */
90
+ protected _isRepeater: boolean;
91
+ /**
92
+ * @returns {Markdown[]}
93
+ * @protected
94
+ */
95
+ protected _getGuidanceComponents(): Markdown[];
96
+ /**
97
+ * @returns {Markdown[]}
98
+ * @protected
99
+ */
100
+ protected get _guidanceComponents(): Markdown[];
101
+ /**
102
+ * @returns {PagePreviewComponent[]}
103
+ */
104
+ get components(): PagePreviewComponent[];
105
+ /**
106
+ * @returns {string}
107
+ * @protected
108
+ */
109
+ protected _getGuidanceText(): string;
110
+ set guidanceText(text: string);
111
+ /**
112
+ * @returns {string}
113
+ */
114
+ get guidanceText(): string;
115
+ get guidance(): {
116
+ text: string;
117
+ classes: string;
118
+ };
119
+ /**
120
+ * @param {boolean} showTitle
121
+ */
122
+ set showTitle(showTitle: boolean);
123
+ get showTitle(): boolean;
124
+ /**
125
+ * @returns {{ text: string, classes: string }}
126
+ */
127
+ get pageTitle(): {
128
+ text: string;
129
+ classes: string;
130
+ };
131
+ setRepeater(): void;
132
+ unsetRepeater(): void;
133
+ get isRepeater(): boolean;
134
+ render(): void;
135
+ /**
136
+ * @returns {string}
137
+ * @protected
138
+ */
139
+ protected _getTitle(): string;
140
+ /**
141
+ * @param {string} value
142
+ */
143
+ set title(value: string);
144
+ /**
145
+ * @returns {string}
146
+ */
147
+ get title(): string;
148
+ highlightTitle(): void;
149
+ /**
150
+ * @returns {{classes: string, text: string} | undefined}
151
+ */
152
+ get sectionTitle(): {
153
+ classes: string;
154
+ text: string;
155
+ } | undefined;
156
+ /**
157
+ * @returns {string|undefined}
158
+ * @protected
159
+ */
160
+ protected _getSectionTitleText(): string | undefined;
161
+ /**
162
+ * @param {string | undefined} val
163
+ */
164
+ set sectionTitleText(val: string | undefined);
165
+ get sectionTitleText(): string | undefined;
166
+ highlightGuidance(): void;
167
+ /**
168
+ * @param {HighlightClass} highlightSection
169
+ */
170
+ setHighLighted(highlightSection: HighlightClass): void;
171
+ clearHighlight(): void;
172
+ /**
173
+ * @param {string} field
174
+ * @protected
175
+ * @returns {string}
176
+ */
177
+ protected _isHighlighted(field: string): string;
178
+ #private;
179
+ }
180
+ import type { PageOverviewElements } from '../../../../form/form-editor/preview/types.js';
181
+ import type { Page } from '../../../../form/form-definition/types.js';
182
+ import type { PagePreviewPanelMacro } from '../../../../form/form-editor/macros/types.js';
183
+ import type { Question } from '../../../../form/form-editor/preview/question.js';
184
+ /**
185
+ * Enum for Highlight classes
186
+ */
187
+ type HighlightClass = string;
188
+ declare namespace HighlightClass {
189
+ let TITLE: string;
190
+ let GUIDANCE: string;
191
+ let REPEATER: string;
192
+ }
193
+ import { Markdown } from '../../../../form/form-editor/preview/markdown.js';
194
+ import type { PagePreviewComponent } from '../../../../form/form-editor/macros/types.js';
195
+ import type { PagePreviewBaseElements } from '../../../../form/form-editor/preview/types.js';
196
+ import type { PageRenderer } from '../../../../form/form-editor/preview/types.js';
197
+ export {};
198
+ //# sourceMappingURL=page-controller-base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-controller-base.d.ts","sourceRoot":"","sources":["../../../../../../src/form/form-editor/preview/controller/page-controller-base.js"],"names":[],"mappings":"AA6BA;;GAEG;AACH;IASE;;OAEG;IACH,kBAFW,IAAI,GAAC,SAAS,EAMxB;IAfD;;;OAGG;IACH,cAEC;IAWD,sBAEC;IAED,uBAUC;IAED,0BAEC;IAED,yCAKC;IAED,2BAEC;CACF;AAED;;;GAGG;AACH;IACE,oBAAoC;IAmEpC;;OAEG;IACH,uBAFU,OAAO,cAAc,CAEO;IA4KtC;;;;OAIG;IACH,qDAFa,QAAQ,CAgBpB;IA5MD;;;OAGG;IACH,sBAHW,uBAAuB,YACvB,YAAY,EAMtB;IAhED;;;OAGG;IACH,yBAHU,MAAM,CAGsD;IACtE;;;OAGG;IACH,uBAFU,QAAQ,EAAE,CAEJ;IAChB;;;OAGG;IACH,sBAHU,OAAO,CAGA;IACjB;;;OAGG;IACH,kBAFU,MAAM,CAEL;IAMX;;;OAGG;IACH,wBAHW,SAAS,GAAG,cAAc,CAGb;IACxB;;;OAGG;IACH,yBAHU,MAAM,CAGE;IAClB;;;OAGG;IACH,yBAHW,MAAM,CAGC;IAClB;;;OAGG;IACH,0BAHU,QAAQ,CAGkD;IACpE;;;OAGG;IACH,8BAHU,QAAQ,CAGsD;IACxE;;;OAGG;IACH,uBAFU,OAAO,CAEE;IAiBnB;;;OAGG;IACH,oCAHa,QAAQ,EAAE,CAWtB;IAED;;;OAGG;IACH,qCAHa,QAAQ,EAAE,CAKtB;IAED;;OAEG;IACH,kBAFa,oBAAoB,EAAE,CAclC;IAED;;;OAGG;IACH,8BAHa,MAAM,CAKlB;IAED,uBAOa,MAAM,EAHlB;IAED;;OAEG;IACH,oBAFa,MAAM,CAIlB;IAED;;;MAKC;IAED;;OAEG;IACH,yBAFW,OAAO,EAKjB;IAED,iBAPW,OAAO,CASjB;IAED;;OAEG;IACH,iBAFa;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAO7C;IAED,oBAGC;IAED,sBAGC;IAED,0BAEC;IAED,eAEC;IAED;;;OAGG;IACH,uBAHa,MAAM,CAQlB;IASD;;OAEG;IACH,iBAFW,MAAM,EAKhB;IAbD;;OAEG;IACH,aAFa,MAAM,CAIlB;IAUD,uBAEC;IAED;;OAEG;IACH,oBAFa;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,GAAG,SAAS,CAUvD;IAED;;;OAGG;IACH,kCAHa,MAAM,GAAC,SAAS,CAK5B;IAED;;OAEG;IACH,0BAFW,MAAM,GAAG,SAAS,EAK5B;IAED,wBAPW,MAAM,GAAG,SAAS,CAS5B;IAuBD,0BAGC;IAED;;OAEG;IACH,iCAFW,cAAc,QAKxB;IAED,uBAKC;IAED;;;;OAIG;IACH,gCAJW,MAAM,GAEJ,MAAM,CAIlB;;CACF;0CAGoH,yCAAyC;0BAGrH,qCAAqC;2CAEd,wCAAwC;8BAJ3E,4CAA4C;;;;sBAzW/D,MAAM;;;;;;yBAlBS,4CAA4C;0CA+XL,wCAAwC;6CALa,yCAAyC;kCAAzC,yCAAyC"}
@@ -1,31 +1,4 @@
1
- /**
2
- * @implements {PageOverviewElements}
3
- */
4
- export class PagePreviewElements implements PageOverviewElements {
5
- /**
6
- * @param {Page} page
7
- */
8
- constructor(page: Page);
9
- /**
10
- * @type {Page}
11
- * @private
12
- */
13
- private _page;
14
- get heading(): string;
15
- get guidance(): string;
16
- get addHeading(): boolean;
17
- }
18
- /**
19
- * @implements {PagePreviewPanelMacro}
20
- */
21
- export class PreviewPageController implements PagePreviewPanelMacro {
22
- static PATH: string;
23
- /**
24
- * Creates a dummy component for when guidance is highlighted
25
- * but no guidance text exists
26
- * @returns {Markdown}
27
- */
28
- static createGuidanceComponent(): Markdown;
1
+ export class PreviewPageController extends PreviewPageControllerBase {
29
2
  /**
30
3
  * Helper method to return the guidance or a new one
31
4
  * @param { Markdown | Question | undefined } guidanceComponent
@@ -40,51 +13,6 @@ export class PreviewPageController implements PagePreviewPanelMacro {
40
13
  * @param {PageRenderer} renderer
41
14
  */
42
15
  constructor(components: ComponentDef[], elements: PageOverviewElements, definition: FormDefinition, renderer: PageRenderer);
43
- /**
44
- * @type {string}
45
- * @protected
46
- */
47
- protected _pageTemplate: string;
48
- /**
49
- * @protected
50
- * @type {Question[]}
51
- */
52
- protected _components: Question[];
53
- /**
54
- * @type { undefined | 'title' | 'guidance'}
55
- * @protected
56
- */
57
- protected _highlighted: undefined | "title" | "guidance";
58
- /**
59
- * @type {string}
60
- * @private
61
- */
62
- private _guidanceText;
63
- /**
64
- * @type {Markdown}
65
- * @private
66
- */
67
- private _emptyGuidance;
68
- /**
69
- *
70
- * @type {Markdown}
71
- * @protected
72
- */
73
- protected _guidanceComponent: Markdown;
74
- /**
75
- * @type {boolean}
76
- * @private
77
- */
78
- private _showTitle;
79
- /**
80
- * @returns {Markdown[]}
81
- * @private
82
- */
83
- private get _guidanceComponents();
84
- /**
85
- * @returns {PagePreviewComponent[]}
86
- */
87
- get components(): PagePreviewComponent[];
88
16
  /**
89
17
  * @returns {boolean}
90
18
  */
@@ -94,56 +22,23 @@ export class PreviewPageController implements PagePreviewPanelMacro {
94
22
  * @returns {QuestionBaseModel}
95
23
  */
96
24
  _overrideComponentHeading(component: PreviewComponent): QuestionBaseModel;
97
- set guidanceText(text: string);
98
- get guidanceText(): string;
99
- /**
100
- *
101
- * @param {boolean} showTitle
102
- */
103
- set showTitle(showTitle: boolean);
104
- get showTitle(): boolean;
105
- get guidance(): {
106
- text: string;
107
- classes: string;
108
- };
109
- /**
110
- * @returns {{ text: string, classes: string }}
111
- */
112
- get pageTitle(): {
113
- text: string;
114
- classes: string;
115
- };
116
- render(): void;
117
25
  /**
118
26
  * @returns {boolean}
119
27
  */
120
28
  get titleAndFirstTitleSame(): boolean;
121
- /**
122
- * @param {string} value
123
- */
124
- set title(value: string);
125
- /**
126
- * @returns {string}
127
- */
128
- get title(): string;
129
- highlightTitle(): void;
130
- highlightGuidance(): void;
131
- /**
132
- * @param {'title'|'guidance'} highlightSection
133
- */
134
- setHighLighted(highlightSection: "title" | "guidance"): void;
135
- clearHighlight(): void;
29
+ get repeaterText(): string | undefined;
30
+ get repeaterButton(): {
31
+ classes: string;
32
+ text: string;
33
+ } | undefined;
34
+ get repeaterButtonText(): string | undefined;
136
35
  #private;
137
36
  }
138
- import type { PageOverviewElements } from '../../../../form/form-editor/preview/types.js';
139
- import type { Page } from '../../../../form/form-definition/types.js';
140
- import type { PagePreviewPanelMacro } from '../../../../form/form-editor/macros/types.js';
141
- import type { Question } from '../../../../form/form-editor/preview/question.js';
142
- import { Markdown } from '../../../../form/form-editor/preview/markdown.js';
143
- import type { PagePreviewComponent } from '../../../../form/form-editor/macros/types.js';
37
+ import { PreviewPageControllerBase } from '../../../../form/form-editor/preview/controller/page-controller-base.js';
144
38
  import type { PreviewComponent } from '../../../../form/form-editor/preview/preview.js';
145
39
  import type { QuestionBaseModel } from '../../../../form/form-editor/preview/types.js';
146
40
  import type { ComponentDef } from '../../../../components/types.js';
41
+ import type { PageOverviewElements } from '../../../../form/form-editor/preview/types.js';
147
42
  import type { FormDefinition } from '../../../../form/form-definition/types.js';
148
43
  import type { PageRenderer } from '../../../../form/form-editor/preview/types.js';
149
44
  //# sourceMappingURL=page-controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"page-controller.d.ts","sourceRoot":"","sources":["../../../../../../src/form/form-editor/preview/controller/page-controller.js"],"names":[],"mappings":"AAmBA;;GAEG;AACH;IAOE;;OAEG;IACH,kBAFW,IAAI,EAId;IAXD;;;OAGG;IACH,cAAK;IASL,sBAEC;IAED,uBAUC;IAED,0BAEC;CACF;AAED;;GAEG;AACH;IACE,oBAAoC;IA2PpC;;;;OAIG;IACH,kCAFa,QAAQ,CAepB;IAED;;;;;OAKG;IACH,4CAKC;IA5OD;;;;;OAKG;IACH,wBALW,YAAY,EAAE,YACd,oBAAoB,cACpB,cAAc,YACd,YAAY,EAkBtB;IAnED;;;OAGG;IACH,yBAHU,MAAM,CAGkD;IAClE;;;OAGG;IACH,uBAFU,QAAQ,EAAE,CAEJ;IAUhB;;;OAGG;IACH,wBAHW,SAAS,GAAG,OAAO,GAAG,UAAU,CAGnB;IACxB;;;OAGG;IACH,sBAAkB;IAClB;;;OAGG;IACH,uBAAgE;IAChE;;;;OAIG;IACH,8BAHU,QAAQ,CAGA;IAClB;;;OAGG;IACH,mBAAiB;IAoCjB;;;OAGG;IACH,kCAQC;IAED;;OAEG;IACH,kBAFa,oBAAoB,EAAE,CAclC;IAED;;OAEG;IACH,sBAFa,OAAO,CAgBnB;IAED;;;OAGG;IACH,qCAHW,gBAAgB,GACd,iBAAiB,CAgC7B;IAED,+BAIC;IAED,2BAKC;IAED;;;OAGG;IACH,yBAFW,OAAO,EAKjB;IAED,iBAPW,OAAO,CASjB;IAED;;;MAKC;IAED;;OAEG;IACH,iBAFa;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAO7C;IAED,eAEC;IAED;;OAEG;IACH,8BAFa,OAAO,CASnB;IAeD;;OAEG;IACH,iBAFW,MAAM,EAKhB;IAnBD;;OAEG;IACH,aAFa,MAAM,CAUlB;IAUD,uBAEC;IAmCD,0BAGC;IAED;;OAEG;IACH,iCAFW,OAAO,GAAC,UAAU,QAK5B;IAED,uBAKC;;CACF;0CAG2F,yCAAyC;0BAG5F,qCAAqC;2CAEd,wCAAwC;8BAJ3E,4CAA4C;yBA5WhD,4CAA4C;0CAgXL,wCAAwC;sCAHnE,2CAA2C;uCAFY,yCAAyC;kCAIjF,2BAA2B;oCADtC,qCAAqC;kCAHc,yCAAyC"}
1
+ {"version":3,"file":"page-controller.d.ts","sourceRoot":"","sources":["../../../../../../src/form/form-editor/preview/controller/page-controller.js"],"names":[],"mappings":"AAiBA;IAyME;;;;;OAKG;IACH,4CAKC;IA5MD;;;;;OAKG;IACH,wBALW,YAAY,EAAE,YACd,oBAAoB,cACpB,cAAc,YACd,YAAY,EAiBtB;IAmCD;;OAEG;IACH,sBAFa,OAAO,CAgBnB;IAED;;;OAGG;IACH,qCAHW,gBAAgB,GACd,iBAAiB,CAgC7B;IAED;;OAEG;IACH,8BAFa,OAAO,CASnB;IAwBD,uCAQC;IAaD;;;kBAUC;IAED,6CAaC;;CAcF;0CAtOyC,mEAAmE;sCA2OxE,2CAA2C;uCAFY,yCAAyC;kCAIjF,2BAA2B;0CAJa,yCAAyC;oCAG5F,qCAAqC;kCAHc,yCAAyC"}
@@ -21,4 +21,6 @@ export * from "../../../form/form-editor/preview/long-answer.js";
21
21
  export * from "../../../form/form-editor/preview/uk-address.js";
22
22
  export * from "../../../form/form-editor/preview/yes-no.js";
23
23
  export * from "../../../form/form-editor/preview/controller/page-controller.js";
24
+ export * from "../../../form/form-editor/preview/controller/guidance-page-controller.js";
25
+ export * from "../../../form/form-editor/preview/controller/page-controller-base.js";
24
26
  //# sourceMappingURL=index.d.ts.map
@@ -69,10 +69,14 @@ export type Renderer = QuestionRenderer | PageRenderer;
69
69
  export interface ListElements extends QuestionElements {
70
70
  afterInputsHTML: string;
71
71
  }
72
- export interface PageOverviewElements {
72
+ export interface PagePreviewBaseElements {
73
73
  heading: string;
74
74
  guidance: string;
75
+ }
76
+ export interface PageOverviewElements extends PagePreviewBaseElements {
75
77
  addHeading: boolean;
78
+ repeatQuestion: string | undefined;
79
+ hasRepeater: boolean;
76
80
  }
77
81
  export type PreviewQuestion = DateInputQuestion | EmailAddressQuestion | ListSortableQuestion | LongAnswerQuestion | PhoneNumberQuestion | Question | RadioSortableQuestion | SelectSortableQuestion | ShortAnswerQuestion | UkAddressQuestion | AutocompleteQuestion;
78
82
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/form/form-editor/preview/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACvB,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,gDAAgD,CAAA;AAC1F,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,8CAA8C,CAAA;AACrF,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,iDAAiD,CAAA;AAC3F,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,iDAAiD,CAAA;AAC3F,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,+CAA+C,CAAA;AACvF,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,gDAAgD,CAAA;AACzF,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,4CAA4C,CAAA;AAC1E,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,kDAAkD,CAAA;AAC7F,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,mDAAmD,CAAA;AAC/F,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,gDAAgD,CAAA;AACzF,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,8CAA8C,CAAA;AACrF,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAC/E,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,WAAW,EAAE,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACpC;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,gBAAgB,CAAA;CACzB;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,gBAAgB,GAAG,IAAI;IACvB,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC,EAAE,KAAK,KAAK,IAAI;IAC5C,MAAM,mBAAmB;CAC1B,CAAA;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAA;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAAA;CAC1C;AAED,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;CAC9B;AAED,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC5D,mBAAmB,EAAE,MAAM,CAAA;CAC5B;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,gBAAgB,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,GAAG,IAAI,CAAA;CACrE;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,iBAAiB,CAAA;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,qBAAqB,CAAA;CAC9B;AAED,MAAM,MAAM,aAAa,GAAG,qBAAqB,GAAG,iBAAiB,CAAA;AAErE,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,gBAAgB,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,GAAG,MAAM,CAAA;CAC1E;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,gBAAgB,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,GAAG,IAAI,CAAA;CAC7E;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,qBAAqB,GAAG,IAAI,CAAA;CACvE;AAED,MAAM,MAAM,QAAQ,GAAG,gBAAgB,GAAG,YAAY,CAAA;AAEtD,MAAM,WAAW,YAAa,SAAQ,gBAAgB;IACpD,eAAe,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,MAAM,eAAe,GACvB,iBAAiB,GACjB,oBAAoB,GACpB,oBAAoB,GACpB,kBAAkB,GAClB,mBAAmB,GACnB,QAAQ,GACR,qBAAqB,GACrB,sBAAsB,GACtB,mBAAmB,GACnB,iBAAiB,GACjB,oBAAoB,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/form/form-editor/preview/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/pages/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EACL,KAAK,IAAI,EACT,KAAK,IAAI,EACT,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,UAAU,EAChB,MAAM,qCAAqC,CAAA;AAM5C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAGrD;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,SAAS,IAAI,EACnD,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,GAaC,QAAQ,CAC7C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GACnB,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE;IAAE,UAAU,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC,CAEvD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GACnB,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE;IAAE,UAAU,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC,CAIvD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GACnB,IAAI,IAAI,YAAY,GAAG,cAAc,CAGvC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,UAAU,CAEpE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,CAAC,EAAE,cAAc,GAAG,MAAM,GACnC,UAAU,IAAI,cAAc,CAE9B;AAED;;GAEG;AACH,wBAAgB,OAAO,CACrB,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GACnB,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,IAAI,EAAE,CAAA;CAAE,CAAC,CAezC;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,CAAC,EAAE,cAAc,GAAG,MAAM,8BAO1E;AAUD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAQxD;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,OAAO,CAcvE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,UAYtC"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/pages/helpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EACL,KAAK,IAAI,EACT,KAAK,IAAI,EACT,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,UAAU,EAChB,MAAM,qCAAqC,CAAA;AAK5C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAGrD;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,SAAS,IAAI,EACnD,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,GAaC,QAAQ,CAC7C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GACnB,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE;IAAE,UAAU,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC,CAEvD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GACnB,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE;IAAE,UAAU,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC,CAIvD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GACnB,IAAI,IAAI,YAAY,GAAG,cAAc,CAGvC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,UAAU,CAEpE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,CAAC,EAAE,cAAc,GAAG,MAAM,GACnC,UAAU,IAAI,cAAc,CAE9B;AAED;;GAEG;AACH,wBAAgB,OAAO,CACrB,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GACnB,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,IAAI,EAAE,CAAA;CAAE,CAAC,CAezC;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,CAAC,EAAE,cAAc,GAAG,MAAM,8BAO1E;AAUD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAQxD;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,OAAO,CAcvE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,UAYtC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@defra/forms-model",
3
- "version": "3.0.501",
3
+ "version": "3.0.503",
4
4
  "description": "A hapi plugin providing the model for Defra forms",
5
5
  "homepage": "https://github.com/DEFRA/forms-designer/tree/main/model#readme",
6
6
  "types": "dist/types/index.d.ts",
@@ -1,4 +1,7 @@
1
- import { buildFileUploadComponent } from '~/src/__stubs__/components.js'
1
+ import {
2
+ buildFileUploadComponent,
3
+ buildMarkdownComponent
4
+ } from '~/src/__stubs__/components.js'
2
5
  import { ComponentType } from '~/src/components/enums.js'
3
6
  import {
4
7
  type PageFileUpload,
@@ -26,6 +29,22 @@ export function buildQuestionPage(
26
29
  }
27
30
  }
28
31
 
32
+ export const GUIDANCE_PAGE_CONTENT = 'Lorem ipsum dolar sit amet'
33
+ export function buildGuidancePage(partialPage: Partial<PageQuestion>) {
34
+ return {
35
+ id: 'a3fc003b-d380-43e8-9b87-9ca48ac8447f',
36
+ title: 'Guidance page',
37
+ path: '/guidance-page',
38
+ next: [],
39
+ components: [
40
+ buildMarkdownComponent({
41
+ content: 'Lorem ipsum dolar sit amet'
42
+ })
43
+ ],
44
+ ...partialPage
45
+ }
46
+ }
47
+
29
48
  /**
30
49
  * Stub builder for a Summary page
31
50
  * @param {Partial<PageSummary>} [partialSummaryPage]
@@ -159,16 +159,28 @@ export class PagePreviewElements {
159
159
  guidance
160
160
  heading
161
161
  addHeading
162
+ repeatQuestion
163
+ hasRepeater
162
164
 
163
165
  /**
164
166
  * @param {string} heading
165
167
  * @param {string} guidance
166
168
  * @param {boolean} [addHeading]
169
+ * @param {string} repeatQuestion
170
+ * @param {boolean} hasRepeater
167
171
  */
168
- constructor(heading, guidance = '', addHeading = undefined) {
172
+ constructor(
173
+ heading,
174
+ guidance = '',
175
+ addHeading = undefined,
176
+ repeatQuestion = '',
177
+ hasRepeater = false
178
+ ) {
169
179
  this.heading = heading
170
180
  this.guidance = guidance
171
181
  this.addHeading = addHeading ?? heading.length > 0
182
+ this.repeatQuestion = repeatQuestion
183
+ this.hasRepeater = hasRepeater
172
184
  }
173
185
  }
174
186
 
@@ -73,4 +73,12 @@ export interface PagePreviewPanelMacro {
73
73
  classes: string
74
74
  }
75
75
  readonly components: PagePreviewComponent[]
76
+ readonly sectionTitle?: {
77
+ text: string
78
+ classes: string
79
+ }
80
+ readonly repeaterButton?: {
81
+ text: string
82
+ classes: string
83
+ }
76
84
  }
@@ -0,0 +1,64 @@
1
+ import { PreviewPageControllerBase } from '~/src/form/form-editor/preview/controller/page-controller-base.js'
2
+
3
+ const FALLBACK_GUIDANCE_TEXT = 'Guidance text'
4
+
5
+ export class GuidancePageController extends PreviewPageControllerBase {
6
+ /**
7
+ * @type {Markdown}
8
+ * @protected
9
+ */
10
+ _unhighlightedEmptyGuidance =
11
+ PreviewPageControllerBase.createGuidanceComponent(false)
12
+
13
+ /**
14
+ * @type {Markdown}
15
+ * @protected
16
+ */
17
+ _guidanceComponent = PreviewPageControllerBase.createGuidanceComponent(false)
18
+
19
+ /**
20
+ * @param {PagePreviewBaseElements} elements
21
+ * @param {PageRenderer} renderer
22
+ */
23
+ constructor(elements, renderer) {
24
+ super(elements, renderer)
25
+ if (elements.guidance.length) {
26
+ this._guidanceComponent.content = elements.guidance
27
+ }
28
+ }
29
+
30
+ /**
31
+ * @returns {Markdown[]}
32
+ * @protected
33
+ */
34
+ _getGuidanceComponents() {
35
+ if (this._guidanceText.length) {
36
+ return [this._guidanceComponent]
37
+ }
38
+
39
+ if (
40
+ this._isHighlighted(PreviewPageControllerBase.HighlightClass.GUIDANCE)
41
+ ) {
42
+ return [this._emptyGuidance]
43
+ }
44
+
45
+ return [this._unhighlightedEmptyGuidance]
46
+ }
47
+
48
+ /**
49
+ * @returns {string}
50
+ * @protected
51
+ */
52
+ _getGuidanceText() {
53
+ const guidanceText = super._getGuidanceText()
54
+ if (!guidanceText.length) {
55
+ return FALLBACK_GUIDANCE_TEXT
56
+ }
57
+ return super._getGuidanceText()
58
+ }
59
+ }
60
+
61
+ /**
62
+ * @import { Markdown } from '~/src/form/form-editor/preview/markdown.js'
63
+ * @import { PageRenderer, PagePreviewBaseElements } from '~/src/form/form-editor/preview/types.js'
64
+ */