From 5d523f0285bd8687120429c1bccfa073cf259f8b Mon Sep 17 00:00:00 2001 From: David Featherston Date: Fri, 24 Jan 2025 08:39:57 +1100 Subject: [PATCH 01/11] feat(@dpc-sdp/ripple-tide-search): allow elastic response source to be customised --- .../search-listing/result-items.feature | 28 ++++++++++++ .../result-items/request-source-exclude.json | 40 +++++++++++++++++ .../result-items/request-source-include.json | 43 +++++++++++++++++++ .../step_definitions/content-types/listing.ts | 32 ++++++++++++++ .../composables/useTideSearch.ts | 31 ++++++++++++- packages/ripple-tide-search/types.ts | 7 +++ 6 files changed, 179 insertions(+), 2 deletions(-) create mode 100644 examples/nuxt-app/test/fixtures/search-listing/result-items/request-source-exclude.json create mode 100644 examples/nuxt-app/test/fixtures/search-listing/result-items/request-source-include.json diff --git a/examples/nuxt-app/test/features/search-listing/result-items.feature b/examples/nuxt-app/test/features/search-listing/result-items.feature index 69f91e0454..c60d1290ff 100644 --- a/examples/nuxt-app/test/features/search-listing/result-items.feature +++ b/examples/nuxt-app/test/features/search-listing/result-items.feature @@ -17,3 +17,31 @@ Feature: Result items | Accessibility guidelines | tide-search-result-card | | Small business grant | tide-grant-search-result | | GovHack 2022 is coming | tide-search-result | + + @mockserver + Example: Result contents from elasticsearch can be customised to exclude fields + Given I load the page fixture with "/search-listing/result-items/page" + And the search listing config has the following excludes added to source + | key | + | nid | + | field_node_site | + Then the page endpoint for path "/search-results" returns the loaded fixture + And the search network request is stubbed with fixture "/search-listing/result-items/response" and status 200 + + When I visit the page "/search-results" + Then the search listing page should have 4 results + And the search network request should be called with the "/search-listing/result-items/request-source-exclude" fixture + + @mockserver + Example: Result contents from elasticsearch can be customised to include fields + Given I load the page fixture with "/search-listing/result-items/page" + And the search listing config has the following includes added to source + | key | + | title | + | field_summary | + Then the page endpoint for path "/search-results" returns the loaded fixture + And the search network request is stubbed with fixture "/search-listing/result-items/response" and status 200 + + When I visit the page "/search-results" + Then the search listing page should have 4 results + And the search network request should be called with the "/search-listing/result-items/request-source-include" fixture diff --git a/examples/nuxt-app/test/fixtures/search-listing/result-items/request-source-exclude.json b/examples/nuxt-app/test/fixtures/search-listing/result-items/request-source-exclude.json new file mode 100644 index 0000000000..2dde0c2607 --- /dev/null +++ b/examples/nuxt-app/test/fixtures/search-listing/result-items/request-source-exclude.json @@ -0,0 +1,40 @@ +{ + "query": { + "bool": { + "must": [ + { + "match_all": {} + } + ], + "filter": [ + { + "terms": { + "type": [ + "news", + "grant", + "event", + "landing_page" + ] + } + }, + { + "terms": { + "field_node_site": [ + 8888 + ] + } + } + ] + } + }, + "size": 20, + "from": 0, + "sort": [ + { + "title.keyword": "asc" + } + ], + "_source": { + "exclude": ["nid", "field_node_site"] + } +} diff --git a/examples/nuxt-app/test/fixtures/search-listing/result-items/request-source-include.json b/examples/nuxt-app/test/fixtures/search-listing/result-items/request-source-include.json new file mode 100644 index 0000000000..fb0a3f512a --- /dev/null +++ b/examples/nuxt-app/test/fixtures/search-listing/result-items/request-source-include.json @@ -0,0 +1,43 @@ +{ + "query": { + "bool": { + "must": [ + { + "match_all": {} + } + ], + "filter": [ + { + "terms": { + "type": [ + "news", + "grant", + "event", + "landing_page" + ] + } + }, + { + "terms": { + "field_node_site": [ + 8888 + ] + } + } + ] + } + }, + "size": 20, + "from": 0, + "sort": [ + { + "title.keyword": "asc" + } + ], + "_source": { + "include": [ + "title", + "field_summary" + ] + } +} diff --git a/packages/ripple-test-utils/step_definitions/content-types/listing.ts b/packages/ripple-test-utils/step_definitions/content-types/listing.ts index 3457e2112c..627b246506 100644 --- a/packages/ripple-test-utils/step_definitions/content-types/listing.ts +++ b/packages/ripple-test-utils/step_definitions/content-types/listing.ts @@ -592,3 +592,35 @@ Then( }) } ) + +Then( + 'the search listing config has the following excludes added to source', + (dataTable: DataTable) => { + const table = dataTable.hashes() + const excludes = table.map((row) => row.key) + + cy.get('@pageFixture').then((response) => { + set( + response, + `config.searchListingConfig.responseSource.exclude`, + excludes + ) + }) + } +) + +Then( + 'the search listing config has the following includes added to source', + (dataTable: DataTable) => { + const table = dataTable.hashes() + const includes = table.map((row) => row.key) + + cy.get('@pageFixture').then((response) => { + set( + response, + `config.searchListingConfig.responseSource.include`, + includes + ) + }) + } +) diff --git a/packages/ripple-tide-search/composables/useTideSearch.ts b/packages/ripple-tide-search/composables/useTideSearch.ts index 2b9c70583e..39564c14ab 100644 --- a/packages/ripple-tide-search/composables/useTideSearch.ts +++ b/packages/ripple-tide-search/composables/useTideSearch.ts @@ -274,6 +274,19 @@ export default ({ ] } + const getSourceOptions = () => { + let source: { include?: string[]; exclude?: string[] } = {} + + if (searchListingConfig?.responseSource?.include) { + source.include = searchListingConfig?.responseSource?.include + } + if (searchListingConfig?.responseSource?.exclude) { + source.exclude = searchListingConfig?.responseSource?.exclude + } + + return Object.keys(source).length ? source : false + } + const getUserFilters = (forAggregations = false) => { const filterValues: Record = { ...filterForm.value, @@ -510,13 +523,20 @@ export default ({ const getQueryDSL = async () => { const locationFilters = await getLocationFilterClause('listing') const query = getQueryClause([...getUserFilterClause(), ...locationFilters]) + const source = getSourceOptions() - return { + let queryDSL = { query, size: pageSize.value, from: pagingStart.value, sort: getSortClause() } + + if (source) { + queryDSL._source = source + } + + return queryDSL } const getQueryDSLForDynamicAggregations = async () => { @@ -553,14 +573,21 @@ export default ({ const getQueryDSLForMaps = async () => { const locationFilters = await getLocationFilterClause('map') const query = getQueryClause([...getUserFilterClause(), ...locationFilters]) + const source = getSourceOptions() - return { + let queryDSL = { query, // ES queries have a 10k result limit, maps struggle drawing more than this anyway. If you need more you will need to implement a loading strategy see : https://openlayers.org/en/latest/apidoc/module-ol_loadingstrategy.html size: 10000, from: 0, sort: getSortClause() } + + if (source) { + queryDSL._source = source + } + + return queryDSL } const getSearchResults = async (isFirstRun: boolean) => { diff --git a/packages/ripple-tide-search/types.ts b/packages/ripple-tide-search/types.ts index 04025174f6..16b069d7f8 100644 --- a/packages/ripple-tide-search/types.ts +++ b/packages/ripple-tide-search/types.ts @@ -296,6 +296,13 @@ export type TideSearchListingConfig = { * @description show filters in the sidebar? */ filtersInSidebar?: boolean + /** + * @description modify the elasticsearch response source + */ + responseSource?: { + include?: string[] + exclude?: string[] + } } /** * @description Tabs to display, key needs to be one of TideSearchListingTabKey From 7edf6fadb49e7fe254dc6303b1bc2b402116c7c0 Mon Sep 17 00:00:00 2001 From: Jeffrey Dowdle Date: Thu, 30 Jan 2025 09:10:56 +1100 Subject: [PATCH 02/11] fix(@dpc-sdp/ripple-ui-forms): improve memory usage of forms --- packages/ripple-ui-forms/src/inputs/checkbox.ts | 4 ++-- packages/ripple-ui-forms/src/inputs/checkboxGroup.ts | 4 ++-- packages/ripple-ui-forms/src/inputs/date.ts | 4 ++-- packages/ripple-ui-forms/src/inputs/datePicker.ts | 4 ++-- packages/ripple-ui-forms/src/inputs/dateRange.ts | 4 ++-- packages/ripple-ui-forms/src/inputs/dropdown.ts | 4 ++-- packages/ripple-ui-forms/src/inputs/email.ts | 4 ++-- packages/ripple-ui-forms/src/inputs/hidden.ts | 4 ++-- packages/ripple-ui-forms/src/inputs/input-utils.ts | 12 ++++++------ packages/ripple-ui-forms/src/inputs/number.ts | 4 ++-- packages/ripple-ui-forms/src/inputs/optionButtons.ts | 4 ++-- packages/ripple-ui-forms/src/inputs/radioGroup.ts | 4 ++-- packages/ripple-ui-forms/src/inputs/tel.ts | 4 ++-- packages/ripple-ui-forms/src/inputs/text.ts | 4 ++-- packages/ripple-ui-forms/src/inputs/textarea.ts | 4 ++-- packages/ripple-ui-forms/src/inputs/url.ts | 4 ++-- 16 files changed, 36 insertions(+), 36 deletions(-) diff --git a/packages/ripple-ui-forms/src/inputs/checkbox.ts b/packages/ripple-ui-forms/src/inputs/checkbox.ts index 750fce2879..026215aff7 100644 --- a/packages/ripple-ui-forms/src/inputs/checkbox.ts +++ b/packages/ripple-ui-forms/src/inputs/checkbox.ts @@ -9,7 +9,7 @@ export const checkbox: FormKitTypeDefinition = { /** * The actual schema of the input, or a function that returns the schema. */ - schema: createRplFormGroup({ + schema: createRplFormGroup(() => ({ $cmp: 'RplFormOption', props: { type: 'checkbox', @@ -30,7 +30,7 @@ export const checkbox: FormKitTypeDefinition = { variant: '$node.props.variant', pii: '$node.props.pii' } - }), + })), library: inputLibrary, /** * The type of node, can be a list, group, or input. diff --git a/packages/ripple-ui-forms/src/inputs/checkboxGroup.ts b/packages/ripple-ui-forms/src/inputs/checkboxGroup.ts index 2971a5e117..93eae52fa4 100644 --- a/packages/ripple-ui-forms/src/inputs/checkboxGroup.ts +++ b/packages/ripple-ui-forms/src/inputs/checkboxGroup.ts @@ -9,7 +9,7 @@ export const checkboxGroup: FormKitTypeDefinition = { /** * The actual schema of the input, or a function that returns the schema. */ - schema: createRplFormGroup({ + schema: createRplFormGroup(() => ({ $cmp: 'RplFormCheckboxGroup', props: { id: `$id`, @@ -24,7 +24,7 @@ export const checkboxGroup: FormKitTypeDefinition = { layout: '$node.props.layout', pii: '$node.props.pii' } - }), + })), library: inputLibrary, /** * The type of node, can be a list, group, or input. diff --git a/packages/ripple-ui-forms/src/inputs/date.ts b/packages/ripple-ui-forms/src/inputs/date.ts index a0edf8f8dd..0be5fd950d 100644 --- a/packages/ripple-ui-forms/src/inputs/date.ts +++ b/packages/ripple-ui-forms/src/inputs/date.ts @@ -9,7 +9,7 @@ export const date: FormKitTypeDefinition = { /** * The actual schema of the input, or a function that returns the schema. */ - schema: createRplFormGroup({ + schema: createRplFormGroup(() => ({ $cmp: 'RplFormDate', props: { id: `$id`, @@ -24,7 +24,7 @@ export const date: FormKitTypeDefinition = { pii: '$node.props.pii', 'aria-describedby': '$fns.getAriaDescribedBy()' } - }), + })), library: inputLibrary, /** * The type of node, can be a list, group, or input. diff --git a/packages/ripple-ui-forms/src/inputs/datePicker.ts b/packages/ripple-ui-forms/src/inputs/datePicker.ts index e7111fd670..c0218ce534 100644 --- a/packages/ripple-ui-forms/src/inputs/datePicker.ts +++ b/packages/ripple-ui-forms/src/inputs/datePicker.ts @@ -14,7 +14,7 @@ export const datePicker: FormKitTypeDefinition = { /** * The actual schema of the input, or a function that returns the schema. */ - schema: createRplFormInput({ + schema: createRplFormInput(() => ({ $cmp: 'RplFormInput', props: { ...defaultRplFormInputProps, @@ -23,7 +23,7 @@ export const datePicker: FormKitTypeDefinition = { type: 'date', variant: '$node.props.variant' } - }), + })), library: inputLibrary, /** * The type of node, can be a list, group, or input. diff --git a/packages/ripple-ui-forms/src/inputs/dateRange.ts b/packages/ripple-ui-forms/src/inputs/dateRange.ts index bebbe1d14e..8e670cc62e 100644 --- a/packages/ripple-ui-forms/src/inputs/dateRange.ts +++ b/packages/ripple-ui-forms/src/inputs/dateRange.ts @@ -9,7 +9,7 @@ export const dateRange: FormKitTypeDefinition = { /** * The actual schema of the input, or a function that returns the schema. */ - schema: createRplFormGroup({ + schema: createRplFormGroup(() => ({ $cmp: 'RplFormDateRange', props: { id: `$id`, @@ -30,7 +30,7 @@ export const dateRange: FormKitTypeDefinition = { pii: '$node.props.pii', 'aria-describedby': '$fns.getAriaDescribedBy()' } - }), + })), library: inputLibrary, /** * The type of node, can be a list, group, or input. diff --git a/packages/ripple-ui-forms/src/inputs/dropdown.ts b/packages/ripple-ui-forms/src/inputs/dropdown.ts index 92463b0844..c3956c1b87 100644 --- a/packages/ripple-ui-forms/src/inputs/dropdown.ts +++ b/packages/ripple-ui-forms/src/inputs/dropdown.ts @@ -9,7 +9,7 @@ export const dropdown: FormKitTypeDefinition = { /** * The actual schema of the input, or a function that returns the schema. */ - schema: createRplFormInput({ + schema: createRplFormInput(() => ({ $cmp: 'RplFormDropdown', props: { multiple: '$node.props.multiple', @@ -32,7 +32,7 @@ export const dropdown: FormKitTypeDefinition = { noResultsLabel: '$node.props.noResultsLabel', pii: '$node.props.pii' } - }), + })), library: inputLibrary, /** * The type of node, can be a list, group, or input. diff --git a/packages/ripple-ui-forms/src/inputs/email.ts b/packages/ripple-ui-forms/src/inputs/email.ts index 26b494e233..9c4e670c2b 100644 --- a/packages/ripple-ui-forms/src/inputs/email.ts +++ b/packages/ripple-ui-forms/src/inputs/email.ts @@ -16,14 +16,14 @@ export const email: FormKitTypeDefinition = { /** * The actual schema of the input, or a function that returns the schema. */ - schema: createRplFormInput({ + schema: createRplFormInput(() => ({ $cmp: 'RplFormInput', props: { ...defaultRplFormInputProps, ...minMaxRplFormProps, type: 'email' } - }), + })), library: inputLibrary, /** * The type of node, can be a list, group, or input. diff --git a/packages/ripple-ui-forms/src/inputs/hidden.ts b/packages/ripple-ui-forms/src/inputs/hidden.ts index 2930331165..755d8dca70 100644 --- a/packages/ripple-ui-forms/src/inputs/hidden.ts +++ b/packages/ripple-ui-forms/src/inputs/hidden.ts @@ -13,7 +13,7 @@ export const hidden: FormKitTypeDefinition = { /** * The actual schema of the input, or a function that returns the schema. */ - schema: createRplFormInputOnly({ + schema: createRplFormInputOnly(() => ({ $cmp: 'RplFormHidden', props: { id: '$id', @@ -22,7 +22,7 @@ export const hidden: FormKitTypeDefinition = { pii: '$node.props.pii', type: 'hidden' } - }), + })), library: inputLibrary, /** * The type of node can be a list, group, or input. diff --git a/packages/ripple-ui-forms/src/inputs/input-utils.ts b/packages/ripple-ui-forms/src/inputs/input-utils.ts index 661adbfd76..48766f0e9d 100644 --- a/packages/ripple-ui-forms/src/inputs/input-utils.ts +++ b/packages/ripple-ui-forms/src/inputs/input-utils.ts @@ -81,7 +81,7 @@ export const rplFeatures = [ * this to wrap fields like text inputs */ export const createRplFormInput = ( - cmp: FormKitSchemaComponent + cmpFn: () => FormKitSchemaComponent ): FormKitExtendableSchemaRoot => { return rplOuter( wrapper( @@ -98,7 +98,7 @@ export const createRplFormInput = ( inner( icon('prefix', 'label'), prefix(), - createSection('input', () => cmp)(), + createSection('input', cmpFn)(), suffix(), icon('suffix') ) @@ -112,7 +112,7 @@ export const createRplFormInput = ( * fieldset and legend instead of plain label (e.g. radios, checkboxes, date field) */ export const createRplFormGroup = ( - cmp: FormKitSchemaComponent + cmpFn: () => FormKitSchemaComponent ): FormKitExtendableSchemaRoot => { return rplOuter( fieldset( @@ -125,7 +125,7 @@ export const createRplFormGroup = ( fieldName: `$node.name` } }))(), - rplInputGrid(createSection('input', () => cmp)()) + rplInputGrid(createSection('input', cmpFn)()) ) ) as unknown as FormKitExtendableSchemaRoot } @@ -136,11 +136,11 @@ export const createRplFormGroup = ( * and just want the input itself, for example, when using a hidden input */ export const createRplFormInputOnly = ( - cmp: FormKitSchemaComponent + cmpFn: () => FormKitSchemaComponent ): FormKitExtendableSchemaRoot => { return createSection( 'input', - () => cmp + cmpFn )() as unknown as FormKitExtendableSchemaRoot } diff --git a/packages/ripple-ui-forms/src/inputs/number.ts b/packages/ripple-ui-forms/src/inputs/number.ts index 1ce2ccaac3..db745bd6e8 100644 --- a/packages/ripple-ui-forms/src/inputs/number.ts +++ b/packages/ripple-ui-forms/src/inputs/number.ts @@ -14,7 +14,7 @@ export const number: FormKitTypeDefinition = { /** * The actual schema of the input, or a function that returns the schema. */ - schema: createRplFormInput({ + schema: createRplFormInput(() => ({ $cmp: 'RplFormNumber', props: { ...defaultRplFormInputProps, @@ -25,7 +25,7 @@ export const number: FormKitTypeDefinition = { max: '$node.props.max', step: '$node.props.step' } - }), + })), library: inputLibrary, /** * The type of node, can be a list, group, or input. diff --git a/packages/ripple-ui-forms/src/inputs/optionButtons.ts b/packages/ripple-ui-forms/src/inputs/optionButtons.ts index 767669f985..949d278d8c 100644 --- a/packages/ripple-ui-forms/src/inputs/optionButtons.ts +++ b/packages/ripple-ui-forms/src/inputs/optionButtons.ts @@ -5,7 +5,7 @@ export const optionButtons: FormKitTypeDefinition = { /** * The actual schema of the input, or a function that returns the schema. */ - schema: createRplFormGroup({ + schema: createRplFormGroup(() => ({ $cmp: 'RplFormOptionButtons', props: { id: `$id`, @@ -19,7 +19,7 @@ export const optionButtons: FormKitTypeDefinition = { perfectSquares: '$node.props.perfectSquares', pii: '$node.props.pii' } - }), + })), library: inputLibrary, /** * The type of node, can be a list, group, or input. diff --git a/packages/ripple-ui-forms/src/inputs/radioGroup.ts b/packages/ripple-ui-forms/src/inputs/radioGroup.ts index f86880934d..840009e384 100644 --- a/packages/ripple-ui-forms/src/inputs/radioGroup.ts +++ b/packages/ripple-ui-forms/src/inputs/radioGroup.ts @@ -5,7 +5,7 @@ export const radioGroup: FormKitTypeDefinition = { /** * The actual schema of the input, or a function that returns the schema. */ - schema: createRplFormGroup({ + schema: createRplFormGroup(() => ({ $cmp: 'RplFormRadioGroup', props: { id: `$id`, @@ -19,7 +19,7 @@ export const radioGroup: FormKitTypeDefinition = { layout: '$node.props.layout', pii: '$node.props.pii' } - }), + })), library: inputLibrary, /** * The type of node, can be a list, group, or input. diff --git a/packages/ripple-ui-forms/src/inputs/tel.ts b/packages/ripple-ui-forms/src/inputs/tel.ts index 5f903032bf..c4c4c10497 100644 --- a/packages/ripple-ui-forms/src/inputs/tel.ts +++ b/packages/ripple-ui-forms/src/inputs/tel.ts @@ -16,14 +16,14 @@ export const tel: FormKitTypeDefinition = { /** * The actual schema of the input, or a function that returns the schema. */ - schema: createRplFormInput({ + schema: createRplFormInput(() => ({ $cmp: 'RplFormInput', props: { ...defaultRplFormInputProps, ...minMaxRplFormProps, type: 'tel' } - }), + })), library: inputLibrary, /** * The type of node, can be a list, group, or input. diff --git a/packages/ripple-ui-forms/src/inputs/text.ts b/packages/ripple-ui-forms/src/inputs/text.ts index d3cd2008dc..33fd944794 100644 --- a/packages/ripple-ui-forms/src/inputs/text.ts +++ b/packages/ripple-ui-forms/src/inputs/text.ts @@ -18,7 +18,7 @@ export const text: FormKitTypeDefinition = { /** * The actual schema of the input, or a function that returns the schema. */ - schema: createRplFormInput({ + schema: createRplFormInput(() => ({ $cmp: 'RplFormInput', props: { ...defaultRplFormInputProps, @@ -26,7 +26,7 @@ export const text: FormKitTypeDefinition = { ...minMaxRplFormProps, type: 'text' } - }), + })), library: inputLibrary, /** * The type of node, can be a list, group, or input. diff --git a/packages/ripple-ui-forms/src/inputs/textarea.ts b/packages/ripple-ui-forms/src/inputs/textarea.ts index e7d3fdecd4..8a05d6d590 100644 --- a/packages/ripple-ui-forms/src/inputs/textarea.ts +++ b/packages/ripple-ui-forms/src/inputs/textarea.ts @@ -17,7 +17,7 @@ export const textarea: FormKitTypeDefinition = { /** * The actual schema of the input, or a function that returns the schema. */ - schema: createRplFormInput({ + schema: createRplFormInput(() => ({ $cmp: 'RplFormTextarea', props: { handlers: '$handlers', @@ -38,7 +38,7 @@ export const textarea: FormKitTypeDefinition = { ...minMaxRplFormProps, ...counterRplFormProps } - }), + })), library: inputLibrary, /** * The type of node, can be a list, group, or input. diff --git a/packages/ripple-ui-forms/src/inputs/url.ts b/packages/ripple-ui-forms/src/inputs/url.ts index 551e6653bf..5ab4b48220 100644 --- a/packages/ripple-ui-forms/src/inputs/url.ts +++ b/packages/ripple-ui-forms/src/inputs/url.ts @@ -16,14 +16,14 @@ export const url: FormKitTypeDefinition = { /** * The actual schema of the input, or a function that returns the schema. */ - schema: createRplFormInput({ + schema: createRplFormInput(() => ({ $cmp: 'RplFormInput', props: { ...defaultRplFormInputProps, ...minMaxRplFormProps, type: 'url' } - }), + })), library: inputLibrary, /** * The type of node, can be a list, group, or input. From 91cbc09abf6a2ee8bf0644f82e883752a1bdbade Mon Sep 17 00:00:00 2001 From: Jeffrey Dowdle Date: Thu, 30 Jan 2025 12:08:24 +1100 Subject: [PATCH 03/11] fix(@dpc-sdp/ripple-ui-forms): fixed custom inputs not rendering --- .../components/global/TideLandingPage/WebForm.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/ripple-tide-landing-page/components/global/TideLandingPage/WebForm.vue b/packages/ripple-tide-landing-page/components/global/TideLandingPage/WebForm.vue index 54bac61b8b..f74fb8ce49 100644 --- a/packages/ripple-tide-landing-page/components/global/TideLandingPage/WebForm.vue +++ b/packages/ripple-tide-landing-page/components/global/TideLandingPage/WebForm.vue @@ -69,13 +69,13 @@ customInputs.library = (node: any) => { Object.values(customInputDefs).forEach((item: any) => { if (node.props.type === item.id) { const def: FormKitTypeDefinition = { - schema: createRplFormInput({ + schema: createRplFormInput(() => ({ $cmp: item.id, props: { ...defaultRplFormInputProps, type: item.type } - }), + })), library: { [item.id]: resolveComponent(item.id), ...inputLibrary From 1b3c5df570dc0833f72415804673e0b6e8cf81d4 Mon Sep 17 00:00:00 2001 From: David Featherston Date: Fri, 31 Jan 2025 08:48:06 +1100 Subject: [PATCH 04/11] fix(@dpc-sdp/ripple-ui-maps): remove unneeded key --- .../ripple-ui-maps/src/components/cluster/RplMapCluster.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ripple-ui-maps/src/components/cluster/RplMapCluster.vue b/packages/ripple-ui-maps/src/components/cluster/RplMapCluster.vue index 1794bf44f5..d2dbcd1597 100644 --- a/packages/ripple-ui-maps/src/components/cluster/RplMapCluster.vue +++ b/packages/ripple-ui-maps/src/components/cluster/RplMapCluster.vue @@ -1,5 +1,5 @@