@defra/forms-model 3.0.321 → 3.0.322
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.
- package/dist/module/pages/controller-types.js +1 -1
- package/dist/module/pages/controller-types.js.map +1 -1
- package/dist/module/pages/helpers.js +1 -1
- package/dist/module/pages/helpers.js.map +1 -1
- package/dist/types/pages/controller-types.d.ts +1 -1
- package/dist/types/pages/controller-types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/pages/controller-types.ts +1 -3
- package/src/pages/helpers.ts +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"controller-types.js","names":["ControllerType","ControllerTypes","name","Start","path","Home","Page","FileUpload","Summary","Status","ControllerNames","map"
|
1
|
+
{"version":3,"file":"controller-types.js","names":["ControllerType","ControllerTypes","name","Start","path","Home","Page","FileUpload","Summary","Status","ControllerNames","map"],"sources":["../../../src/pages/controller-types.ts"],"sourcesContent":["import { ControllerType } from '~/src/pages/enums.js'\n\nexport const ControllerTypes = [\n {\n name: ControllerType.Start,\n path: './pages/start.js'\n },\n {\n name: ControllerType.Home,\n path: './pages/home.js'\n },\n {\n name: ControllerType.Page,\n path: './pages/page.js'\n },\n {\n name: ControllerType.FileUpload,\n path: './pages/file-upload.js'\n },\n {\n name: ControllerType.Summary,\n path: './pages/summary.js'\n },\n {\n name: ControllerType.Status,\n path: './pages/status.js'\n }\n]\n\nexport const ControllerNames = ControllerTypes.map(({ name }) => name)\n"],"mappings":"AAAA,SAASA,cAAc;AAEvB,OAAO,MAAMC,eAAe,GAAG,CAC7B;EACEC,IAAI,EAAEF,cAAc,CAACG,KAAK;EAC1BC,IAAI,EAAE;AACR,CAAC,EACD;EACEF,IAAI,EAAEF,cAAc,CAACK,IAAI;EACzBD,IAAI,EAAE;AACR,CAAC,EACD;EACEF,IAAI,EAAEF,cAAc,CAACM,IAAI;EACzBF,IAAI,EAAE;AACR,CAAC,EACD;EACEF,IAAI,EAAEF,cAAc,CAACO,UAAU;EAC/BH,IAAI,EAAE;AACR,CAAC,EACD;EACEF,IAAI,EAAEF,cAAc,CAACQ,OAAO;EAC5BJ,IAAI,EAAE;AACR,CAAC,EACD;EACEF,IAAI,EAAEF,cAAc,CAACS,MAAM;EAC3BL,IAAI,EAAE;AACR,CAAC,CACF;AAED,OAAO,MAAMM,eAAe,GAAGT,eAAe,CAACU,GAAG,CAAC,CAAC;EAAET;AAAK,CAAC,KAAKA,IAAI,CAAC","ignoreList":[]}
|
@@ -46,7 +46,7 @@ export function hasNext(page) {
|
|
46
46
|
* Check for known page controller names
|
47
47
|
*/
|
48
48
|
export function isControllerName(nameOrPath) {
|
49
|
-
return !!nameOrPath && ControllerNames.includes(nameOrPath);
|
49
|
+
return !!nameOrPath && ControllerNames.map(String).includes(nameOrPath);
|
50
50
|
}
|
51
51
|
|
52
52
|
/**
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"helpers.js","names":["ControllerNames","ControllerTypes","ControllerType","PageTypes","getPageDefaults","page","controller","controllerNameFromPath","Page","defaults","find","pageType","Error","structuredClone","hasComponents","isLinkablePage","Array","isArray","components","hasFormComponents","hasSection","section","hasNext","isControllerName","nameOrPath","includes","Start","FileUpload","isQuestionPage","options","path","name"],"sources":["../../../src/pages/helpers.ts"],"sourcesContent":["import { type ComponentDef } from '~/src/components/types.js'\nimport {\n type Link,\n type Page,\n type PageFileUpload,\n type PageQuestion,\n type PageStart,\n type RequiredField\n} from '~/src/form/form-definition/types.js'\nimport {\n ControllerNames,\n ControllerTypes\n} from '~/src/pages/controller-types.js'\nimport { ControllerType } from '~/src/pages/enums.js'\nimport { PageTypes } from '~/src/pages/page-types.js'\n\n/**\n * Return component defaults by type\n */\nexport function getPageDefaults<PageType extends Page>(\n page: Pick<PageType, 'controller'>\n) {\n const controller = controllerNameFromPath(\n page.controller ?? ControllerType.Page\n )\n\n const defaults = PageTypes.find(\n (pageType) => pageType.controller === controller\n )\n\n if (!defaults) {\n throw new Error(`Defaults not found for page type '${page.controller}'`)\n }\n\n return structuredClone(defaults) as PageType\n}\n\n/**\n * Check page has components\n */\nexport function hasComponents(\n page?: Partial<Page>\n): page is Extract<Page, { components: ComponentDef[] }> {\n return isLinkablePage(page) && Array.isArray(page.components)\n}\n\n/**\n * Check page has form components\n */\nexport function hasFormComponents(\n page?: Partial<Page>\n): page is Extract<Page, { components: ComponentDef[] }> {\n return isLinkablePage(page) && Array.isArray(page.components)\n}\n\n/**\n * Check page has sections\n */\nexport function hasSection(\n page: Partial<Page>\n): page is\n | RequiredField<PageStart, 'section'>\n | RequiredField<PageQuestion, 'section'>\n | RequiredField<PageFileUpload, 'section'> {\n return isLinkablePage(page) && typeof page.section === 'string'\n}\n\n/**\n * Check page has next link\n */\nexport function hasNext(page?: Partial<Page>) {\n return isLinkablePage(page)\n}\n\n/**\n * Check for known page controller names\n */\nexport function isControllerName(\n nameOrPath?: ControllerType | string\n): nameOrPath is ControllerType {\n return !!nameOrPath && ControllerNames.includes(nameOrPath)\n}\n\n/**\n * Check page is linkable\n */\nexport function isLinkablePage(\n page?: Partial<Page>\n): page is Extract<Page, { next: Link[] }> {\n if (!page || !('next' in page)) {\n return false\n }\n\n const controller = controllerNameFromPath(page.controller)\n\n return (\n !controller ||\n controller === ControllerType.Start ||\n controller === ControllerType.Page ||\n controller === ControllerType.FileUpload\n )\n}\n\n/**\n * Check page supports questions\n */\nexport function isQuestionPage(page?: Partial<Page>): page is PageQuestion {\n const controller = controllerNameFromPath(page?.controller)\n\n return (\n !controller ||\n controller === ControllerType.Page ||\n controller === ControllerType.FileUpload\n )\n}\n\n/**\n * Check and optionally replace legacy path with controller name\n * @param {string} [nameOrPath] - Controller name or legacy controller path\n */\nexport function controllerNameFromPath(nameOrPath?: ControllerType | string) {\n if (isControllerName(nameOrPath)) {\n return nameOrPath\n }\n\n const options = ControllerTypes.find(({ path }) => path === nameOrPath)\n return options?.name\n}\n"],"mappings":"AASA,SACEA,eAAe,EACfC,eAAe;AAEjB,SAASC,cAAc;AACvB,SAASC,SAAS;;AAElB;AACA;AACA;AACA,OAAO,SAASC,eAAeA,CAC7BC,IAAkC,EAClC;EACA,MAAMC,UAAU,GAAGC,sBAAsB,CACvCF,IAAI,CAACC,UAAU,IAAIJ,cAAc,CAACM,IACpC,CAAC;EAED,MAAMC,QAAQ,GAAGN,SAAS,CAACO,IAAI,CAC5BC,QAAQ,IAAKA,QAAQ,CAACL,UAAU,KAAKA,UACxC,CAAC;EAED,IAAI,CAACG,QAAQ,EAAE;IACb,MAAM,IAAIG,KAAK,CAAC,qCAAqCP,IAAI,CAACC,UAAU,GAAG,CAAC;EAC1E;EAEA,OAAOO,eAAe,CAACJ,QAAQ,CAAC;AAClC;;AAEA;AACA;AACA;AACA,OAAO,SAASK,aAAaA,CAC3BT,IAAoB,EACmC;EACvD,OAAOU,cAAc,CAACV,IAAI,CAAC,IAAIW,KAAK,CAACC,OAAO,CAACZ,IAAI,CAACa,UAAU,CAAC;AAC/D;;AAEA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAC/Bd,IAAoB,EACmC;EACvD,OAAOU,cAAc,CAACV,IAAI,CAAC,IAAIW,KAAK,CAACC,OAAO,CAACZ,IAAI,CAACa,UAAU,CAAC;AAC/D;;AAEA;AACA;AACA;AACA,OAAO,SAASE,UAAUA,CACxBf,IAAmB,EAIwB;EAC3C,OAAOU,cAAc,CAACV,IAAI,CAAC,IAAI,OAAOA,IAAI,CAACgB,OAAO,KAAK,QAAQ;AACjE;;AAEA;AACA;AACA;AACA,OAAO,SAASC,OAAOA,CAACjB,IAAoB,EAAE;EAC5C,OAAOU,cAAc,CAACV,IAAI,CAAC;AAC7B;;AAEA;AACA;AACA;AACA,OAAO,SAASkB,gBAAgBA,CAC9BC,UAAoC,EACN;EAC9B,OAAO,CAAC,CAACA,UAAU,IAAIxB,eAAe,CAACyB,QAAQ,
|
1
|
+
{"version":3,"file":"helpers.js","names":["ControllerNames","ControllerTypes","ControllerType","PageTypes","getPageDefaults","page","controller","controllerNameFromPath","Page","defaults","find","pageType","Error","structuredClone","hasComponents","isLinkablePage","Array","isArray","components","hasFormComponents","hasSection","section","hasNext","isControllerName","nameOrPath","map","String","includes","Start","FileUpload","isQuestionPage","options","path","name"],"sources":["../../../src/pages/helpers.ts"],"sourcesContent":["import { type ComponentDef } from '~/src/components/types.js'\nimport {\n type Link,\n type Page,\n type PageFileUpload,\n type PageQuestion,\n type PageStart,\n type RequiredField\n} from '~/src/form/form-definition/types.js'\nimport {\n ControllerNames,\n ControllerTypes\n} from '~/src/pages/controller-types.js'\nimport { ControllerType } from '~/src/pages/enums.js'\nimport { PageTypes } from '~/src/pages/page-types.js'\n\n/**\n * Return component defaults by type\n */\nexport function getPageDefaults<PageType extends Page>(\n page: Pick<PageType, 'controller'>\n) {\n const controller = controllerNameFromPath(\n page.controller ?? ControllerType.Page\n )\n\n const defaults = PageTypes.find(\n (pageType) => pageType.controller === controller\n )\n\n if (!defaults) {\n throw new Error(`Defaults not found for page type '${page.controller}'`)\n }\n\n return structuredClone(defaults) as PageType\n}\n\n/**\n * Check page has components\n */\nexport function hasComponents(\n page?: Partial<Page>\n): page is Extract<Page, { components: ComponentDef[] }> {\n return isLinkablePage(page) && Array.isArray(page.components)\n}\n\n/**\n * Check page has form components\n */\nexport function hasFormComponents(\n page?: Partial<Page>\n): page is Extract<Page, { components: ComponentDef[] }> {\n return isLinkablePage(page) && Array.isArray(page.components)\n}\n\n/**\n * Check page has sections\n */\nexport function hasSection(\n page: Partial<Page>\n): page is\n | RequiredField<PageStart, 'section'>\n | RequiredField<PageQuestion, 'section'>\n | RequiredField<PageFileUpload, 'section'> {\n return isLinkablePage(page) && typeof page.section === 'string'\n}\n\n/**\n * Check page has next link\n */\nexport function hasNext(page?: Partial<Page>) {\n return isLinkablePage(page)\n}\n\n/**\n * Check for known page controller names\n */\nexport function isControllerName(\n nameOrPath?: ControllerType | string\n): nameOrPath is ControllerType {\n return !!nameOrPath && ControllerNames.map(String).includes(nameOrPath)\n}\n\n/**\n * Check page is linkable\n */\nexport function isLinkablePage(\n page?: Partial<Page>\n): page is Extract<Page, { next: Link[] }> {\n if (!page || !('next' in page)) {\n return false\n }\n\n const controller = controllerNameFromPath(page.controller)\n\n return (\n !controller ||\n controller === ControllerType.Start ||\n controller === ControllerType.Page ||\n controller === ControllerType.FileUpload\n )\n}\n\n/**\n * Check page supports questions\n */\nexport function isQuestionPage(page?: Partial<Page>): page is PageQuestion {\n const controller = controllerNameFromPath(page?.controller)\n\n return (\n !controller ||\n controller === ControllerType.Page ||\n controller === ControllerType.FileUpload\n )\n}\n\n/**\n * Check and optionally replace legacy path with controller name\n * @param {string} [nameOrPath] - Controller name or legacy controller path\n */\nexport function controllerNameFromPath(nameOrPath?: ControllerType | string) {\n if (isControllerName(nameOrPath)) {\n return nameOrPath\n }\n\n const options = ControllerTypes.find(({ path }) => path === nameOrPath)\n return options?.name\n}\n"],"mappings":"AASA,SACEA,eAAe,EACfC,eAAe;AAEjB,SAASC,cAAc;AACvB,SAASC,SAAS;;AAElB;AACA;AACA;AACA,OAAO,SAASC,eAAeA,CAC7BC,IAAkC,EAClC;EACA,MAAMC,UAAU,GAAGC,sBAAsB,CACvCF,IAAI,CAACC,UAAU,IAAIJ,cAAc,CAACM,IACpC,CAAC;EAED,MAAMC,QAAQ,GAAGN,SAAS,CAACO,IAAI,CAC5BC,QAAQ,IAAKA,QAAQ,CAACL,UAAU,KAAKA,UACxC,CAAC;EAED,IAAI,CAACG,QAAQ,EAAE;IACb,MAAM,IAAIG,KAAK,CAAC,qCAAqCP,IAAI,CAACC,UAAU,GAAG,CAAC;EAC1E;EAEA,OAAOO,eAAe,CAACJ,QAAQ,CAAC;AAClC;;AAEA;AACA;AACA;AACA,OAAO,SAASK,aAAaA,CAC3BT,IAAoB,EACmC;EACvD,OAAOU,cAAc,CAACV,IAAI,CAAC,IAAIW,KAAK,CAACC,OAAO,CAACZ,IAAI,CAACa,UAAU,CAAC;AAC/D;;AAEA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAC/Bd,IAAoB,EACmC;EACvD,OAAOU,cAAc,CAACV,IAAI,CAAC,IAAIW,KAAK,CAACC,OAAO,CAACZ,IAAI,CAACa,UAAU,CAAC;AAC/D;;AAEA;AACA;AACA;AACA,OAAO,SAASE,UAAUA,CACxBf,IAAmB,EAIwB;EAC3C,OAAOU,cAAc,CAACV,IAAI,CAAC,IAAI,OAAOA,IAAI,CAACgB,OAAO,KAAK,QAAQ;AACjE;;AAEA;AACA;AACA;AACA,OAAO,SAASC,OAAOA,CAACjB,IAAoB,EAAE;EAC5C,OAAOU,cAAc,CAACV,IAAI,CAAC;AAC7B;;AAEA;AACA;AACA;AACA,OAAO,SAASkB,gBAAgBA,CAC9BC,UAAoC,EACN;EAC9B,OAAO,CAAC,CAACA,UAAU,IAAIxB,eAAe,CAACyB,GAAG,CAACC,MAAM,CAAC,CAACC,QAAQ,CAACH,UAAU,CAAC;AACzE;;AAEA;AACA;AACA;AACA,OAAO,SAAST,cAAcA,CAC5BV,IAAoB,EACqB;EACzC,IAAI,CAACA,IAAI,IAAI,EAAE,MAAM,IAAIA,IAAI,CAAC,EAAE;IAC9B,OAAO,KAAK;EACd;EAEA,MAAMC,UAAU,GAAGC,sBAAsB,CAACF,IAAI,CAACC,UAAU,CAAC;EAE1D,OACE,CAACA,UAAU,IACXA,UAAU,KAAKJ,cAAc,CAAC0B,KAAK,IACnCtB,UAAU,KAAKJ,cAAc,CAACM,IAAI,IAClCF,UAAU,KAAKJ,cAAc,CAAC2B,UAAU;AAE5C;;AAEA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAACzB,IAAoB,EAAwB;EACzE,MAAMC,UAAU,GAAGC,sBAAsB,CAACF,IAAI,EAAEC,UAAU,CAAC;EAE3D,OACE,CAACA,UAAU,IACXA,UAAU,KAAKJ,cAAc,CAACM,IAAI,IAClCF,UAAU,KAAKJ,cAAc,CAAC2B,UAAU;AAE5C;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAAStB,sBAAsBA,CAACiB,UAAoC,EAAE;EAC3E,IAAID,gBAAgB,CAACC,UAAU,CAAC,EAAE;IAChC,OAAOA,UAAU;EACnB;EAEA,MAAMO,OAAO,GAAG9B,eAAe,CAACS,IAAI,CAAC,CAAC;IAAEsB;EAAK,CAAC,KAAKA,IAAI,KAAKR,UAAU,CAAC;EACvE,OAAOO,OAAO,EAAEE,IAAI;AACtB","ignoreList":[]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"controller-types.d.ts","sourceRoot":"","sources":["../../../src/pages/controller-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,eAAO,MAAM,eAAe;;;GAyB3B,CAAA;AAED,eAAO,MAAM,eAAe,
|
1
|
+
{"version":3,"file":"controller-types.d.ts","sourceRoot":"","sources":["../../../src/pages/controller-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,eAAO,MAAM,eAAe;;;GAyB3B,CAAA;AAED,eAAO,MAAM,eAAe,kBAA0C,CAAA"}
|
package/package.json
CHANGED
package/src/pages/helpers.ts
CHANGED
@@ -78,7 +78,7 @@ export function hasNext(page?: Partial<Page>) {
|
|
78
78
|
export function isControllerName(
|
79
79
|
nameOrPath?: ControllerType | string
|
80
80
|
): nameOrPath is ControllerType {
|
81
|
-
return !!nameOrPath && ControllerNames.includes(nameOrPath)
|
81
|
+
return !!nameOrPath && ControllerNames.map(String).includes(nameOrPath)
|
82
82
|
}
|
83
83
|
|
84
84
|
/**
|