diff --git a/config/sync/core.base_field_override.node.digital_form.promote.yml b/config/sync/core.base_field_override.node.digital_form.promote.yml
new file mode 100644
index 0000000000..761d74473c
--- /dev/null
+++ b/config/sync/core.base_field_override.node.digital_form.promote.yml
@@ -0,0 +1,22 @@
+uuid: ac87a752-cc60-4bde-bd33-18098f65e851
+langcode: en
+status: true
+dependencies:
+ config:
+ - node.type.digital_form
+id: node.digital_form.promote
+field_name: promote
+entity_type: node
+bundle: digital_form
+label: 'Promoted to front page'
+description: ''
+required: false
+translatable: true
+default_value:
+ -
+ value: 0
+default_value_callback: ''
+settings:
+ on_label: 'On'
+ off_label: 'Off'
+field_type: boolean
diff --git a/config/sync/core.base_field_override.node.digital_form.title.yml b/config/sync/core.base_field_override.node.digital_form.title.yml
new file mode 100644
index 0000000000..49e546e2e1
--- /dev/null
+++ b/config/sync/core.base_field_override.node.digital_form.title.yml
@@ -0,0 +1,18 @@
+uuid: 2449594d-1ce2-4f60-aab4-1da1b27f5864
+langcode: en
+status: true
+dependencies:
+ config:
+ - node.type.digital_form
+id: node.digital_form.title
+field_name: title
+entity_type: node
+bundle: digital_form
+label: 'Form Name'
+description: ''
+required: true
+translatable: true
+default_value: { }
+default_value_callback: ''
+settings: { }
+field_type: string
diff --git a/config/sync/core.entity_form_display.node.digital_form.default.yml b/config/sync/core.entity_form_display.node.digital_form.default.yml
new file mode 100644
index 0000000000..c4f6558f42
--- /dev/null
+++ b/config/sync/core.entity_form_display.node.digital_form.default.yml
@@ -0,0 +1,132 @@
+uuid: 18ba1fa4-f0d9-45f4-9547-0c55f1868ba2
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.field.node.digital_form.field_administration
+ - field.field.node.digital_form.field_chapters
+ - field.field.node.digital_form.field_last_saved_by_an_editor
+ - field.field.node.digital_form.field_meta_tags
+ - field.field.node.digital_form.field_omb_number
+ - field.field.node.digital_form.field_va_form_number
+ - node.type.digital_form
+ - workflows.workflow.editorial
+ module:
+ - change_labels
+ - content_moderation
+ - field_group
+ - limited_field_widgets
+ - no_table_drag
+ - paragraphs_browser
+ - paragraphs_features
+ - path
+third_party_settings:
+ field_group:
+ group_editorial_workflow:
+ children:
+ - moderation_state
+ - revision_log
+ label: 'Editorial Workflow'
+ region: content
+ parent_name: ''
+ weight: 6
+ format_type: fieldset
+ format_settings:
+ classes: ''
+ show_empty_fields: false
+ id: ''
+ description: ''
+ required_fields: true
+ description_display: after
+id: node.digital_form.default
+targetEntityType: node
+bundle: digital_form
+mode: default
+content:
+ field_chapters:
+ type: paragraphs_browser
+ weight: 5
+ region: content
+ settings:
+ title: Step
+ title_plural: Steps
+ edit_mode: open
+ closed_mode: summary
+ autocollapse: none
+ closed_mode_threshold: '0'
+ add_mode: paragraphs_browser
+ form_display_mode: default
+ default_paragraph_type: _none
+ features:
+ duplicate: duplicate
+ collapse_edit_all: collapse_edit_all
+ add_above: 0
+ convert: 0
+ paragraphs_browser: digital_forms
+ modal_width: 80%
+ modal_height: auto
+ third_party_settings:
+ paragraphs_features:
+ add_in_between: false
+ add_in_between_link_count: 3
+ delete_confirmation: false
+ show_drag_and_drop: true
+ show_collapse_all: true
+ limited_field_widgets:
+ limit_values: '0'
+ change_labels:
+ add_another: ''
+ no_table_drag:
+ no_table_drag: false
+ field_last_saved_by_an_editor:
+ type: datetime_timestamp
+ weight: 2
+ region: content
+ settings: { }
+ third_party_settings: { }
+ field_omb_number:
+ type: string_textfield
+ weight: 4
+ region: content
+ settings:
+ size: 9
+ placeholder: XXXX-XXXX
+ third_party_settings: { }
+ field_va_form_number:
+ type: string_textfield
+ weight: 1
+ region: content
+ settings:
+ size: 60
+ placeholder: ''
+ third_party_settings: { }
+ moderation_state:
+ type: moderation_state_default
+ weight: 12
+ region: content
+ settings: { }
+ third_party_settings: { }
+ path:
+ type: path
+ weight: 3
+ region: content
+ settings: { }
+ third_party_settings: { }
+ title:
+ type: string_textfield
+ weight: 0
+ region: content
+ settings:
+ size: 60
+ placeholder: ''
+ third_party_settings: { }
+hidden:
+ created: true
+ field_administration: true
+ field_meta_tags: true
+ langcode: true
+ promote: true
+ status: true
+ sticky: true
+ uid: true
+ url_redirects: true
diff --git a/config/sync/core.entity_form_display.paragraph.digital_form_name_and_date_of_bi.default.yml b/config/sync/core.entity_form_display.paragraph.digital_form_name_and_date_of_bi.default.yml
new file mode 100644
index 0000000000..0e6ef595b9
--- /dev/null
+++ b/config/sync/core.entity_form_display.paragraph.digital_form_name_and_date_of_bi.default.yml
@@ -0,0 +1,40 @@
+uuid: 7a85e837-9879-4f7f-9e0b-ebad0066e521
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.field.paragraph.digital_form_name_and_date_of_bi.field_include_date_of_birth
+ - field.field.paragraph.digital_form_name_and_date_of_bi.field_title
+ - paragraphs.paragraphs_type.digital_form_name_and_date_of_bi
+ module:
+ - textfield_counter
+id: paragraph.digital_form_name_and_date_of_bi.default
+targetEntityType: paragraph
+bundle: digital_form_name_and_date_of_bi
+mode: default
+content:
+ field_include_date_of_birth:
+ type: boolean_checkbox
+ weight: 1
+ region: content
+ settings:
+ display_label: true
+ third_party_settings: { }
+ field_title:
+ type: string_textfield_with_counter
+ weight: 0
+ region: content
+ settings:
+ size: 60
+ placeholder: ''
+ use_field_maxlength: false
+ maxlength: 0
+ counter_position: after
+ js_prevent_submit: true
+ count_only_mode: false
+ count_html_characters: true
+ textcount_status_message: 'Maxlength: @maxlength
Used: @current_length
Remaining: @remaining_count'
+ third_party_settings: { }
+hidden:
+ created: true
+ status: true
diff --git a/config/sync/core.entity_view_display.node.digital_form.default.yml b/config/sync/core.entity_view_display.node.digital_form.default.yml
new file mode 100644
index 0000000000..e94f3f02b4
--- /dev/null
+++ b/config/sync/core.entity_view_display.node.digital_form.default.yml
@@ -0,0 +1,54 @@
+uuid: 73414b44-8d43-4231-9695-b8092f02e821
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.field.node.digital_form.field_administration
+ - field.field.node.digital_form.field_chapters
+ - field.field.node.digital_form.field_last_saved_by_an_editor
+ - field.field.node.digital_form.field_meta_tags
+ - field.field.node.digital_form.field_omb_number
+ - field.field.node.digital_form.field_va_form_number
+ - node.type.digital_form
+ module:
+ - entity_reference_revisions
+ - user
+id: node.digital_form.default
+targetEntityType: node
+bundle: digital_form
+mode: default
+content:
+ field_chapters:
+ type: entity_reference_revisions_entity_view
+ label: above
+ settings:
+ view_mode: default
+ link: ''
+ third_party_settings: { }
+ weight: 2
+ region: content
+ field_omb_number:
+ type: string
+ label: above
+ settings:
+ link_to_entity: false
+ third_party_settings: { }
+ weight: 1
+ region: content
+ field_va_form_number:
+ type: string
+ label: above
+ settings:
+ link_to_entity: false
+ third_party_settings: { }
+ weight: 0
+ region: content
+hidden:
+ breadcrumbs: true
+ content_moderation_control: true
+ field_administration: true
+ field_last_saved_by_an_editor: true
+ field_meta_tags: true
+ langcode: true
+ links: true
+ search_api_excerpt: true
diff --git a/config/sync/core.entity_view_display.node.digital_form.external_content.yml b/config/sync/core.entity_view_display.node.digital_form.external_content.yml
new file mode 100644
index 0000000000..fd586c5932
--- /dev/null
+++ b/config/sync/core.entity_view_display.node.digital_form.external_content.yml
@@ -0,0 +1,59 @@
+uuid: bae3d4cd-0dd9-4a17-972b-ff3ef6bf7ba5
+langcode: en
+status: true
+dependencies:
+ config:
+ - core.entity_view_mode.node.external_content
+ - field.field.node.digital_form.field_administration
+ - field.field.node.digital_form.field_chapters
+ - field.field.node.digital_form.field_last_saved_by_an_editor
+ - field.field.node.digital_form.field_meta_tags
+ - field.field.node.digital_form.field_omb_number
+ - field.field.node.digital_form.field_va_form_number
+ - node.type.digital_form
+ module:
+ - link
+ - user
+id: node.digital_form.external_content
+targetEntityType: node
+bundle: digital_form
+mode: external_content
+content:
+ breadcrumbs:
+ type: link
+ label: hidden
+ settings:
+ trim_length: 80
+ url_only: false
+ url_plain: false
+ rel: ''
+ target: ''
+ third_party_settings: { }
+ weight: -5
+ region: content
+ content_moderation_control:
+ settings: { }
+ third_party_settings: { }
+ weight: -20
+ region: content
+ field_va_form_number:
+ type: string
+ label: above
+ settings:
+ link_to_entity: false
+ third_party_settings: { }
+ weight: 1
+ region: content
+ links:
+ settings: { }
+ third_party_settings: { }
+ weight: 100
+ region: content
+hidden:
+ field_administration: true
+ field_chapters: true
+ field_last_saved_by_an_editor: true
+ field_meta_tags: true
+ field_omb_number: true
+ langcode: true
+ search_api_excerpt: true
diff --git a/config/sync/core.entity_view_display.node.digital_form.teaser.yml b/config/sync/core.entity_view_display.node.digital_form.teaser.yml
new file mode 100644
index 0000000000..0788c646f4
--- /dev/null
+++ b/config/sync/core.entity_view_display.node.digital_form.teaser.yml
@@ -0,0 +1,52 @@
+uuid: acbd9ba8-c64b-4b82-a7dd-11f8fe57a9ff
+langcode: en
+status: true
+dependencies:
+ config:
+ - core.entity_view_mode.node.teaser
+ - field.field.node.digital_form.field_administration
+ - field.field.node.digital_form.field_chapters
+ - field.field.node.digital_form.field_last_saved_by_an_editor
+ - field.field.node.digital_form.field_meta_tags
+ - field.field.node.digital_form.field_omb_number
+ - field.field.node.digital_form.field_va_form_number
+ - node.type.digital_form
+ module:
+ - link
+ - user
+id: node.digital_form.teaser
+targetEntityType: node
+bundle: digital_form
+mode: teaser
+content:
+ breadcrumbs:
+ type: link
+ label: hidden
+ settings:
+ trim_length: 80
+ url_only: false
+ url_plain: false
+ rel: ''
+ target: ''
+ third_party_settings: { }
+ weight: -5
+ region: content
+ content_moderation_control:
+ settings: { }
+ third_party_settings: { }
+ weight: -20
+ region: content
+ links:
+ settings: { }
+ third_party_settings: { }
+ weight: 100
+ region: content
+hidden:
+ field_administration: true
+ field_chapters: true
+ field_last_saved_by_an_editor: true
+ field_meta_tags: true
+ field_omb_number: true
+ field_va_form_number: true
+ langcode: true
+ search_api_excerpt: true
diff --git a/config/sync/core.entity_view_display.paragraph.digital_form_name_and_date_of_bi.default.yml b/config/sync/core.entity_view_display.paragraph.digital_form_name_and_date_of_bi.default.yml
new file mode 100644
index 0000000000..2ab04745a8
--- /dev/null
+++ b/config/sync/core.entity_view_display.paragraph.digital_form_name_and_date_of_bi.default.yml
@@ -0,0 +1,33 @@
+uuid: 6ace573b-80bd-4b83-af01-3de996a1423c
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.field.paragraph.digital_form_name_and_date_of_bi.field_include_date_of_birth
+ - field.field.paragraph.digital_form_name_and_date_of_bi.field_title
+ - paragraphs.paragraphs_type.digital_form_name_and_date_of_bi
+id: paragraph.digital_form_name_and_date_of_bi.default
+targetEntityType: paragraph
+bundle: digital_form_name_and_date_of_bi
+mode: default
+content:
+ field_include_date_of_birth:
+ type: boolean
+ label: above
+ settings:
+ format: default
+ format_custom_false: ''
+ format_custom_true: ''
+ third_party_settings: { }
+ weight: 1
+ region: content
+ field_title:
+ type: string
+ label: hidden
+ settings:
+ link_to_entity: false
+ third_party_settings: { }
+ weight: 0
+ region: content
+hidden:
+ search_api_excerpt: true
diff --git a/config/sync/core.entity_view_display.paragraph.digital_form_name_and_date_of_bi.user_guides.yml b/config/sync/core.entity_view_display.paragraph.digital_form_name_and_date_of_bi.user_guides.yml
new file mode 100644
index 0000000000..46b3f8ecae
--- /dev/null
+++ b/config/sync/core.entity_view_display.paragraph.digital_form_name_and_date_of_bi.user_guides.yml
@@ -0,0 +1,25 @@
+uuid: d6ba2e46-9d71-4886-8f0f-f9f644273720
+langcode: en
+status: true
+dependencies:
+ config:
+ - core.entity_view_mode.paragraph.user_guides
+ - field.field.paragraph.digital_form_name_and_date_of_bi.field_include_date_of_birth
+ - field.field.paragraph.digital_form_name_and_date_of_bi.field_title
+ - paragraphs.paragraphs_type.digital_form_name_and_date_of_bi
+id: paragraph.digital_form_name_and_date_of_bi.user_guides
+targetEntityType: paragraph
+bundle: digital_form_name_and_date_of_bi
+mode: user_guides
+content:
+ field_title:
+ type: string
+ label: hidden
+ settings:
+ link_to_entity: false
+ third_party_settings: { }
+ weight: 0
+ region: content
+hidden:
+ field_include_date_of_birth: true
+ search_api_excerpt: true
diff --git a/config/sync/field.field.node.digital_form.field_administration.yml b/config/sync/field.field.node.digital_form.field_administration.yml
new file mode 100644
index 0000000000..bf6a122430
--- /dev/null
+++ b/config/sync/field.field.node.digital_form.field_administration.yml
@@ -0,0 +1,43 @@
+uuid: d49d4508-3a4d-4b12-a8d9-51b44eb854ca
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.node.field_administration
+ - node.type.digital_form
+ - taxonomy.vocabulary.administration
+ content:
+ - 'taxonomy_term:administration:867e4dcf-2f99-401a-977a-adb441d53350'
+ module:
+ - entity_reference_validators
+ - tmgmt_content
+third_party_settings:
+ entity_reference_validators:
+ circular_reference: false
+ circular_reference_deep: false
+ duplicate_reference: false
+ tmgmt_content:
+ excluded: false
+id: node.digital_form.field_administration
+field_name: field_administration
+entity_type: node
+bundle: digital_form
+label: Section
+description: ''
+required: true
+translatable: false
+default_value:
+ -
+ target_uuid: 867e4dcf-2f99-401a-977a-adb441d53350
+default_value_callback: ''
+settings:
+ handler: 'default:taxonomy_term'
+ handler_settings:
+ target_bundles:
+ administration: administration
+ sort:
+ field: name
+ direction: asc
+ auto_create: false
+ auto_create_bundle: ''
+field_type: entity_reference
diff --git a/config/sync/field.field.node.digital_form.field_chapters.yml b/config/sync/field.field.node.digital_form.field_chapters.yml
new file mode 100644
index 0000000000..337ee74e17
--- /dev/null
+++ b/config/sync/field.field.node.digital_form.field_chapters.yml
@@ -0,0 +1,170 @@
+uuid: 333163fe-7e54-44b6-b5af-5cff8c8742ec
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.node.field_chapters
+ - node.type.digital_form
+ - paragraphs.paragraphs_type.digital_form_name_and_date_of_bi
+ module:
+ - entity_reference_revisions
+ - tmgmt_content
+third_party_settings:
+ tmgmt_content:
+ excluded: false
+id: node.digital_form.field_chapters
+field_name: field_chapters
+entity_type: node
+bundle: digital_form
+label: Steps
+description: ''
+required: true
+translatable: false
+default_value: { }
+default_value_callback: ''
+settings:
+ handler: 'default:paragraph'
+ handler_settings:
+ target_bundles:
+ digital_form_name_and_date_of_bi: digital_form_name_and_date_of_bi
+ negate: 0
+ target_bundles_drag_drop:
+ address:
+ weight: -95
+ enabled: false
+ alert:
+ weight: -94
+ enabled: false
+ alert_single:
+ weight: -93
+ enabled: false
+ audience_topics:
+ weight: -92
+ enabled: false
+ basic_accordion:
+ weight: -91
+ enabled: false
+ button:
+ weight: -90
+ enabled: false
+ centralized_content_descriptor:
+ weight: -89
+ enabled: false
+ checklist:
+ weight: -88
+ enabled: false
+ checklist_item:
+ weight: -87
+ enabled: false
+ collapsible_panel:
+ weight: -86
+ enabled: false
+ collapsible_panel_item:
+ weight: -85
+ enabled: false
+ contact_information:
+ weight: -84
+ enabled: false
+ digital_form_name_and_date_of_bi:
+ weight: -82
+ enabled: true
+ downloadable_file:
+ weight: -81
+ enabled: false
+ email_contact:
+ weight: -80
+ enabled: false
+ embedded_video:
+ weight: -79
+ enabled: false
+ expandable_text:
+ weight: -78
+ enabled: false
+ featured_content:
+ weight: -77
+ enabled: false
+ health_care_local_facility_servi:
+ weight: -76
+ enabled: false
+ link_teaser:
+ weight: -75
+ enabled: false
+ link_teaser_with_image:
+ weight: -74
+ enabled: false
+ list_of_link_teasers:
+ weight: -71
+ enabled: false
+ list_of_links:
+ weight: -72
+ enabled: false
+ lists_of_links:
+ weight: -73
+ enabled: false
+ magichead_group:
+ weight: -70
+ enabled: false
+ media:
+ weight: -69
+ enabled: false
+ media_list_images:
+ weight: -68
+ enabled: false
+ media_list_videos:
+ weight: -67
+ enabled: false
+ non_reusable_alert:
+ weight: -66
+ enabled: false
+ number_callout:
+ weight: -65
+ enabled: false
+ phone_number:
+ weight: -64
+ enabled: false
+ process:
+ weight: -63
+ enabled: false
+ q_a:
+ weight: -62
+ enabled: false
+ q_a_group:
+ weight: -61
+ enabled: false
+ q_a_section:
+ weight: -60
+ enabled: false
+ react_widget:
+ weight: -59
+ enabled: false
+ rich_text_char_limit_1000:
+ weight: -58
+ enabled: false
+ service_location:
+ weight: -57
+ enabled: false
+ service_location_address:
+ weight: -56
+ enabled: false
+ situation_update:
+ weight: -55
+ enabled: false
+ spanish_translation_summary:
+ weight: -54
+ enabled: false
+ staff_profile:
+ weight: -53
+ enabled: false
+ step:
+ weight: -52
+ enabled: false
+ step_by_step:
+ weight: -51
+ enabled: false
+ table:
+ weight: -50
+ enabled: false
+ wysiwyg:
+ weight: -49
+ enabled: false
+field_type: entity_reference_revisions
diff --git a/config/sync/field.field.node.digital_form.field_last_saved_by_an_editor.yml b/config/sync/field.field.node.digital_form.field_last_saved_by_an_editor.yml
new file mode 100644
index 0000000000..f9c9cdde26
--- /dev/null
+++ b/config/sync/field.field.node.digital_form.field_last_saved_by_an_editor.yml
@@ -0,0 +1,26 @@
+uuid: e173d8c9-2458-49d9-8406-7654da2c8882
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.node.field_last_saved_by_an_editor
+ - node.type.digital_form
+ module:
+ - tmgmt_content
+third_party_settings:
+ tmgmt_content:
+ excluded: false
+id: node.digital_form.field_last_saved_by_an_editor
+field_name: field_last_saved_by_an_editor
+entity_type: node
+bundle: digital_form
+label: 'Last Saved by an Editor'
+description: 'This is the last time an editor interacted with this content. This field is populated automatically when you click Save.'
+required: false
+translatable: false
+default_value:
+ -
+ value: 1721337765
+default_value_callback: ''
+settings: { }
+field_type: timestamp
diff --git a/config/sync/field.field.node.digital_form.field_meta_tags.yml b/config/sync/field.field.node.digital_form.field_meta_tags.yml
new file mode 100644
index 0000000000..cf4e584858
--- /dev/null
+++ b/config/sync/field.field.node.digital_form.field_meta_tags.yml
@@ -0,0 +1,25 @@
+uuid: 065acdc6-1465-452e-8a8e-53c6ff7e37ca
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.node.field_meta_tags
+ - node.type.digital_form
+ module:
+ - metatag
+ - tmgmt_content
+third_party_settings:
+ tmgmt_content:
+ excluded: false
+id: node.digital_form.field_meta_tags
+field_name: field_meta_tags
+entity_type: node
+bundle: digital_form
+label: 'Meta tags'
+description: ''
+required: false
+translatable: false
+default_value: { }
+default_value_callback: ''
+settings: { }
+field_type: metatag
diff --git a/config/sync/field.field.node.digital_form.field_omb_number.yml b/config/sync/field.field.node.digital_form.field_omb_number.yml
new file mode 100644
index 0000000000..a15aa6e557
--- /dev/null
+++ b/config/sync/field.field.node.digital_form.field_omb_number.yml
@@ -0,0 +1,24 @@
+uuid: a74fa585-127b-49f9-9533-de900988e8b1
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.node.field_omb_number
+ - node.type.digital_form
+ module:
+ - tmgmt_content
+third_party_settings:
+ tmgmt_content:
+ excluded: false
+id: node.digital_form.field_omb_number
+field_name: field_omb_number
+entity_type: node
+bundle: digital_form
+label: 'OMB Number'
+description: 'Format: XXXX-XXXX'
+required: false
+translatable: false
+default_value: { }
+default_value_callback: ''
+settings: { }
+field_type: string
diff --git a/config/sync/field.field.node.digital_form.field_va_form_number.yml b/config/sync/field.field.node.digital_form.field_va_form_number.yml
new file mode 100644
index 0000000000..aef7e36562
--- /dev/null
+++ b/config/sync/field.field.node.digital_form.field_va_form_number.yml
@@ -0,0 +1,24 @@
+uuid: fe73b81a-1e77-4f4b-83de-adad0de61a6d
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.node.field_va_form_number
+ - node.type.digital_form
+ module:
+ - tmgmt_content
+third_party_settings:
+ tmgmt_content:
+ excluded: false
+id: node.digital_form.field_va_form_number
+field_name: field_va_form_number
+entity_type: node
+bundle: digital_form
+label: 'Form number'
+description: ''
+required: true
+translatable: false
+default_value: { }
+default_value_callback: ''
+settings: { }
+field_type: string
diff --git a/config/sync/field.field.paragraph.digital_form_name_and_date_of_bi.field_include_date_of_birth.yml b/config/sync/field.field.paragraph.digital_form_name_and_date_of_bi.field_include_date_of_birth.yml
new file mode 100644
index 0000000000..9ef7328d3b
--- /dev/null
+++ b/config/sync/field.field.paragraph.digital_form_name_and_date_of_bi.field_include_date_of_birth.yml
@@ -0,0 +1,28 @@
+uuid: 69f76794-509f-4325-bf51-1591dbb95b54
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.paragraph.field_include_date_of_birth
+ - paragraphs.paragraphs_type.digital_form_name_and_date_of_bi
+ module:
+ - tmgmt_content
+third_party_settings:
+ tmgmt_content:
+ excluded: false
+id: paragraph.digital_form_name_and_date_of_bi.field_include_date_of_birth
+field_name: field_include_date_of_birth
+entity_type: paragraph
+bundle: digital_form_name_and_date_of_bi
+label: 'Include date of birth?'
+description: ''
+required: false
+translatable: false
+default_value:
+ -
+ value: 1
+default_value_callback: ''
+settings:
+ on_label: 'Yes'
+ off_label: 'No'
+field_type: boolean
diff --git a/config/sync/field.field.paragraph.digital_form_name_and_date_of_bi.field_title.yml b/config/sync/field.field.paragraph.digital_form_name_and_date_of_bi.field_title.yml
new file mode 100644
index 0000000000..112e78f264
--- /dev/null
+++ b/config/sync/field.field.paragraph.digital_form_name_and_date_of_bi.field_title.yml
@@ -0,0 +1,26 @@
+uuid: d2538ca0-918e-4e49-8d45-96bde9aca1b7
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.paragraph.field_title
+ - paragraphs.paragraphs_type.digital_form_name_and_date_of_bi
+ module:
+ - tmgmt_content
+third_party_settings:
+ tmgmt_content:
+ excluded: false
+id: paragraph.digital_form_name_and_date_of_bi.field_title
+field_name: field_title
+entity_type: paragraph
+bundle: digital_form_name_and_date_of_bi
+label: Title
+description: ''
+required: true
+translatable: false
+default_value:
+ -
+ value: 'Name and Date of Birth'
+default_value_callback: ''
+settings: { }
+field_type: string
diff --git a/config/sync/field.storage.node.field_chapters.yml b/config/sync/field.storage.node.field_chapters.yml
new file mode 100644
index 0000000000..58027ea5ec
--- /dev/null
+++ b/config/sync/field.storage.node.field_chapters.yml
@@ -0,0 +1,21 @@
+uuid: 2ddc6fd6-3ed5-49a4-b7e3-29573744ef2b
+langcode: en
+status: true
+dependencies:
+ module:
+ - entity_reference_revisions
+ - node
+ - paragraphs
+id: node.field_chapters
+field_name: field_chapters
+entity_type: node
+type: entity_reference_revisions
+settings:
+ target_type: paragraph
+module: entity_reference_revisions
+locked: false
+cardinality: -1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/config/sync/field.storage.node.field_omb_number.yml b/config/sync/field.storage.node.field_omb_number.yml
new file mode 100644
index 0000000000..ec0823677a
--- /dev/null
+++ b/config/sync/field.storage.node.field_omb_number.yml
@@ -0,0 +1,21 @@
+uuid: d58c3f28-790b-431a-aca4-bc19375656b5
+langcode: en
+status: true
+dependencies:
+ module:
+ - node
+id: node.field_omb_number
+field_name: field_omb_number
+entity_type: node
+type: string
+settings:
+ max_length: 9
+ case_sensitive: false
+ is_ascii: false
+module: core
+locked: false
+cardinality: 1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/config/sync/field.storage.paragraph.field_include_date_of_birth.yml b/config/sync/field.storage.paragraph.field_include_date_of_birth.yml
new file mode 100644
index 0000000000..e6db63bd83
--- /dev/null
+++ b/config/sync/field.storage.paragraph.field_include_date_of_birth.yml
@@ -0,0 +1,18 @@
+uuid: 377d46ea-d362-47c9-9f6e-436e21b4d638
+langcode: en
+status: true
+dependencies:
+ module:
+ - paragraphs
+id: paragraph.field_include_date_of_birth
+field_name: field_include_date_of_birth
+entity_type: paragraph
+type: boolean
+settings: { }
+module: core
+locked: false
+cardinality: 1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/config/sync/language.content_settings.node.digital_form.yml b/config/sync/language.content_settings.node.digital_form.yml
new file mode 100644
index 0000000000..371b1ba68c
--- /dev/null
+++ b/config/sync/language.content_settings.node.digital_form.yml
@@ -0,0 +1,11 @@
+uuid: 86037389-4200-4677-ab95-7bdbe1df3d2b
+langcode: en
+status: true
+dependencies:
+ config:
+ - node.type.digital_form
+id: node.digital_form
+target_entity_type_id: node
+target_bundle: digital_form
+default_langcode: site_default
+language_alterable: false
diff --git a/config/sync/node.type.digital_form.yml b/config/sync/node.type.digital_form.yml
new file mode 100644
index 0000000000..8851740176
--- /dev/null
+++ b/config/sync/node.type.digital_form.yml
@@ -0,0 +1,30 @@
+uuid: 6f1de8af-5d0a-4775-9ca1-95a35c6ae032
+langcode: en
+status: true
+dependencies:
+ module:
+ - menu_force
+ - menu_ui
+ - node_revision_delete
+ - node_title_help_text
+third_party_settings:
+ menu_ui:
+ available_menus:
+ - main
+ parent: 'main:'
+ node_title_help_text:
+ title_help: ''
+ menu_force:
+ menu_force: false
+ menu_force_parent: false
+ node_revision_delete:
+ minimum_revisions_to_keep: 50
+ minimum_age_to_delete: 0
+ when_to_delete: 0
+name: 'Digital Form'
+type: digital_form
+description: 'Configuration for an online form presented to Veterans.'
+help: ''
+new_revision: true
+preview_mode: 0
+display_submitted: false
diff --git a/config/sync/paragraphs.paragraphs_type.digital_form_name_and_date_of_bi.yml b/config/sync/paragraphs.paragraphs_type.digital_form_name_and_date_of_bi.yml
new file mode 100644
index 0000000000..a9085a9a11
--- /dev/null
+++ b/config/sync/paragraphs.paragraphs_type.digital_form_name_and_date_of_bi.yml
@@ -0,0 +1,17 @@
+uuid: b13f4f29-83bc-456a-9c13-59e2d5f42294
+langcode: en
+status: true
+dependencies:
+ content:
+ - 'file:file:bf614684-8419-43da-b028-d179b527e015'
+ module:
+ - paragraphs_browser
+third_party_settings:
+ paragraphs_browser:
+ image_path: themes/custom/vagovclaro/images/screenshots/name-and-dob.png
+id: digital_form_name_and_date_of_bi
+label: 'Name and Date of Birth'
+icon_uuid: bf614684-8419-43da-b028-d179b527e015
+icon_default: 'data:image/png;base64,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'
+description: "Follow this pattern whenever you need to ask for a person's name and (optionally) date of birth for an application."
+behavior_plugins: { }
diff --git a/config/sync/paragraphs_browser.paragraphs_browser_type.digital_forms.yml b/config/sync/paragraphs_browser.paragraphs_browser_type.digital_forms.yml
new file mode 100644
index 0000000000..746c7fdd5a
--- /dev/null
+++ b/config/sync/paragraphs_browser.paragraphs_browser_type.digital_forms.yml
@@ -0,0 +1,13 @@
+uuid: 1c8bc453-7d6c-4b2a-ac2a-148fb47e5522
+langcode: en
+status: true
+dependencies: { }
+id: digital_forms
+label: 'Digital Forms'
+groups:
+ patterns:
+ label: Patterns
+ id: patterns
+ weight: '0'
+map:
+ digital_form_name_and_date_of_bi: patterns
diff --git a/config/sync/prometheus_exporter.settings.yml b/config/sync/prometheus_exporter.settings.yml
index 0bf274533d..b81670bf1e 100644
--- a/config/sync/prometheus_exporter.settings.yml
+++ b/config/sync/prometheus_exporter.settings.yml
@@ -14,6 +14,7 @@ collectors:
campaign_landing_page: campaign_landing_page
centralized_content: centralized_content
checklist: checklist
+ digital_form: digital_form
documentation_page: documentation_page
event: event
event_listing: event_listing
diff --git a/config/sync/workflows.workflow.editorial.yml b/config/sync/workflows.workflow.editorial.yml
index 8f2215978c..ec9dacdbd8 100644
--- a/config/sync/workflows.workflow.editorial.yml
+++ b/config/sync/workflows.workflow.editorial.yml
@@ -13,6 +13,7 @@ dependencies:
- node.type.campaign_landing_page
- node.type.centralized_content
- node.type.checklist
+ - node.type.digital_form
- node.type.documentation_page
- node.type.event
- node.type.event_listing
@@ -146,6 +147,7 @@ type_settings:
- campaign_landing_page
- centralized_content
- checklist
+ - digital_form
- documentation_page
- event
- event_listing
diff --git a/docroot/modules/custom/va_gov_content_types/src/Entity/DigitalForm.php b/docroot/modules/custom/va_gov_content_types/src/Entity/DigitalForm.php
new file mode 100644
index 0000000000..ded9b62280
--- /dev/null
+++ b/docroot/modules/custom/va_gov_content_types/src/Entity/DigitalForm.php
@@ -0,0 +1,10 @@
+ DigitalForm::class,
'health_care_local_facility' => HealthCareLocalFacility::class,
'event' => Event::class,
];
diff --git a/docroot/themes/custom/vagovclaro/images/screenshots/name-and-dob.png b/docroot/themes/custom/vagovclaro/images/screenshots/name-and-dob.png
new file mode 100644
index 0000000000..a482dbcc41
Binary files /dev/null and b/docroot/themes/custom/vagovclaro/images/screenshots/name-and-dob.png differ
diff --git a/scripts/content/digital-forms.php b/scripts/content/digital-forms.php
new file mode 100644
index 0000000000..cc22b4f1ed
--- /dev/null
+++ b/scripts/content/digital-forms.php
@@ -0,0 +1,68 @@
+ 'digital_form',
+ 'title' => 'Script Generated Digital Form',
+ 'field_va_form_number' => '123456789',
+ 'field_omb_number' => '1234-5678',
+ 'moderation_state' => 'published',
+ ]);
+ $digital_form->field_chapters->appendItem(create_step());
+ $digital_form
+ ->field_chapters
+ ->appendItem(create_step('Step without Date of Birth', FALSE));
+ save_node_revision($digital_form, 'Created by the content script', TRUE);
+}
+
+/**
+ * Creates a Digital Form Step.
+ *
+ * For now, this only creates the Name and Date of Birth step.
+ * That will change as more patterns are added.
+ *
+ * @param string $title
+ * The step title.
+ * @param bool $includeDob
+ * Should the step include the date of birth field?
+ *
+ * @return \Drupal\paragraphs\Entity\Paragraph
+ * The created Step.
+ */
+function create_step(
+ string $title = 'Script Generated Step',
+ bool $includeDob = TRUE,
+): Paragraph {
+ return Paragraph::create([
+ 'type' => 'digital_form_name_and_date_of_bi',
+ 'field_title' => $title,
+ 'field_include_date_of_birth' => $includeDob,
+ ]);
+}
diff --git a/scripts/content/script-library.php b/scripts/content/script-library.php
index e7d55cca42..a19bedfd1f 100644
--- a/scripts/content/script-library.php
+++ b/scripts/content/script-library.php
@@ -19,7 +19,7 @@
use Drupal\user\UserStorageInterface;
use Psr\Log\LogLevel;
-const CMS_MIGRATOR_ID = 1317;
+const CMS_MIGRATOR_ID = 1317; // phpcs:ignore
/**
* Log a message to stdout.
@@ -46,6 +46,19 @@ function entity_type_manager(): EntityTypeManagerInterface {
return $entity_type_manager;
}
+/**
+ * Exit if script is run in an environment other than local or tugboat.
+ *
+ * @param string $env
+ * The CMS environment.
+ */
+function exit_if_not_local_or_tugboat(string $env) {
+ if ($env !== 'local' && $env !== 'tugboat') {
+ echo "This script can only be run on local or Tugboat environments.\n";
+ exit();
+ }
+}
+
/**
* Get the node storage.
*
diff --git a/scripts/content/vacms-17969/VACMS-17969-vba-test-data-processor.php b/scripts/content/vacms-17969/VACMS-17969-vba-test-data-processor.php
index 6e57b04f8a..e4393eb5cc 100644
--- a/scripts/content/vacms-17969/VACMS-17969-vba-test-data-processor.php
+++ b/scripts/content/vacms-17969/VACMS-17969-vba-test-data-processor.php
@@ -20,10 +20,7 @@
*/
function run() {
$env = getenv('CMS_ENVIRONMENT_TYPE') ?: 'ci';
- if ($env !== 'local' && $env !== 'tugboat') {
- echo "This script can only be run on local or Tugboat environments.\n";
- exit();
- }
+ exit_if_not_local_or_tugboat($env);
process_csv_file(__DIR__ . '/VACMS-17969-vba-test-data-source-services.csv',
'create_vba_facility_service_node');
process_csv_file(__DIR__ . '/VACMS-17969-vba-test-data-source-facilities.csv',
diff --git a/tests/phpunit/va_gov_content_types/functional/Entity/DigitalFormTest.php b/tests/phpunit/va_gov_content_types/functional/Entity/DigitalFormTest.php
new file mode 100644
index 0000000000..c4c3b4f7c5
--- /dev/null
+++ b/tests/phpunit/va_gov_content_types/functional/Entity/DigitalFormTest.php
@@ -0,0 +1,40 @@
+ '12345',
+ 'field_omb_number' => '1234-5678',
+ 'title' => 'Test Digital Form',
+ 'type' => 'digital_form',
+ ];
+
+ $node = $this->createNode($digital_form_attrs);
+ $this->assertEquals(DigitalForm::class, get_class($node));
+ $this->assertEquals($node->getTitle(), $digital_form_attrs['title']);
+ $this->assertEquals(
+ $node->get('field_va_form_number')->getString(),
+ $digital_form_attrs['field_va_form_number']
+ );
+ $this->assertEquals(
+ $node->get('field_omb_number')->getString(),
+ $digital_form_attrs['field_omb_number']
+ );
+ }
+
+}