{"version":3,"file":"static/js/ebba0c68727e023c4e5c.bundle.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/actions/BuyBoxSelectedQuantity/ecomm-buybox-selected-quantity.ts?a3aa","webpack://Msdyn365.Commerce.Online/./src/actions/get-categories.ts?0ce6","webpack://Msdyn365.Commerce.Online/./src/modules/ecomm-product-details-form/utilities/getFormJSON.ts?db0b","webpack://Msdyn365.Commerce.Online/./src/modules/ecomm-product-details-form/ecomm-product-details-form.tsx?c143","webpack://Msdyn365.Commerce.Online/./src/modules/ecomm-product-details-form/component/ecomm-form-get-service-objects.tsx?3ec9","webpack://Msdyn365.Commerce.Online/./src/modules/ecomm-product-details-form/component/popup.tsx?5290","webpack://Msdyn365.Commerce.Online/./src/modules/ecomm-product-details-form/ecomm-product-details-form.view.tsx?fa98","webpack://Msdyn365.Commerce.Online/./lib/ecomm-product-details-form/module-registration.js?2d67","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.string.match.js?a69e","webpack://Msdyn365.Commerce.Online/external var \"React\"?0d3b","webpack://Msdyn365.Commerce.Online/external var \"ReactDOM\"?853b"],"sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\n/**\r\n * GetActivecategorymenustate Input Action\r\n */\r\nexport class GetSelectedQuantityValuesInput implements Msdyn365.IActionInput {\r\n // TODO: Determine if the results of this get action should cache the results and if so provide\r\n // a cache object type and an appropriate cache key\r\n public getCacheKey = () => `SelectedProductQuamtity`;\r\n public getCacheObjectType = () => 'SelectedProductQuamtity';\r\n public dataCacheType = (): Msdyn365.CacheType => 'application';\r\n}\r\n\r\n// TODO: Create a data model here or import one to capture the response of the action\r\nexport interface IGetSelectedQuantityStateData {\r\n selectedQuantity: number;\r\n}\r\n\r\n/**\r\n * TODO: Use this function to create the input required to make the action call\r\n */\r\nconst createInput = (args: Msdyn365.ICreateActionContext): Msdyn365.IActionInput => {\r\n return new GetSelectedQuantityValuesInput();\r\n};\r\n\r\n/**\r\n * TODO: Use this function to call your action and process the results as needed\r\n */\r\nasync function getSelectedQuantityValuesStateAction(input: GetSelectedQuantityValuesInput, ctx: Msdyn365.IActionContext):Promise {\r\n // const apiSettings = Msdyn365.msdyn365Commerce.apiSettings;\r\n\r\n // TODO: Uncomment the below line to get the value from a service\r\n // const response = await Msdyn365.sendRequest('/get/example/id/1', 'get');\r\n return { selectedQuantity: 1 };\r\n}\r\n\r\nexport default Msdyn365.createObservableDataAction({\r\n action: >getSelectedQuantityValuesStateAction,\r\n // TODO: Give your data action a unique id\r\n id: 'GetSelectedQuantityValuesStateActionState',\r\n input: createInput\r\n // TODO: Uncomment the below line if this is a meant to be a batched data action\r\n // isBatched: true\r\n});","import { createObservableDataAction, IAction, ICreateActionContext } from '@msdyn365-commerce/core';\r\nimport { Category, retailAction } from '@msdyn365-commerce/retail-proxy';\r\nimport { createGetCategoriesInput } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CategoriesDataActions.g';\r\n\r\n/**\r\n * Get Org Unit Configuration Data Action\r\n */\r\nexport default createObservableDataAction({\r\n action: >retailAction,\r\n input: (context: ICreateActionContext) => {\r\n return createGetCategoriesInput({ Paging: { Top: 0 } }, context.requestContext.apiSettings.channelId);\r\n }\r\n});\r\n","import { Attributes, IFormStructure } from '../ecomm-product-details-form.data';\r\n\r\nexport default (attributes: Attributes): IFormStructure => {\r\n switch (attributes.formName) {\r\n case '3-Category + Names':\r\n return {\r\n formName: 'threeCategoryNamesForm',\r\n fields: [\r\n {\r\n field_name: 'category',\r\n field_type: 'radio',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_number2: attributes.companyNames,\r\n field_number3: attributes.deceasedNames,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case '3-Category + Names + Consecration':\r\n return {\r\n formName: 'threeCategoryNamesConsecrationForm',\r\n fields: [\r\n {\r\n field_name: 'category',\r\n field_type: 'radio',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_number2: attributes.companyNames,\r\n field_number3: attributes.deceasedNames,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Amount + Category (Family or Deceased) + Names':\r\n return {\r\n formName: 'amountDeceasedNameForm',\r\n fields: [\r\n {\r\n field_name: 'amount',\r\n field_type: 'radio',\r\n field_options: attributes.amounts,\r\n field_placeholder: '',\r\n required: 'true',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'category',\r\n field_type: 'radio',\r\n field_placeholder: '',\r\n required: 'true',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_number3: attributes.deceasedNames,\r\n field_placeholder: '',\r\n required: 'true',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_label: 'Subtotal',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Category (Family or Deceased) + Names':\r\n return {\r\n formName: 'deceasedCategoryNamesForm',\r\n fields: [\r\n {\r\n field_name: 'category',\r\n field_type: 'radio',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_number2: attributes.deceasedNames,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Category + Names + Address + Contact no':\r\n return {\r\n formName: 'categoryNamesAddressForm',\r\n fields: [\r\n {\r\n field_name: 'category',\r\n field_type: 'radio',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_number2: attributes.companyNames,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'building',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'unit',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'postal',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'phone',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Category + Names + Collection or Donation':\r\n return {\r\n formName: 'categoryNamesCollectionForm',\r\n fields: [\r\n {\r\n field_name: 'category',\r\n field_type: 'radio',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_number2: attributes.companyNames,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'option',\r\n field_type: 'radio',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Category + Names':\r\n return {\r\n formName: 'categoryNamesForm',\r\n fields: [\r\n {\r\n field_name: 'category',\r\n field_type: 'radio',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_number2: attributes.companyNames,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Donation':\r\n return {\r\n formName: 'donationForm',\r\n fields: [\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'amount',\r\n field_type: 'radio',\r\n field_options: attributes.amounts,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_label: 'Subtotal',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Courses':\r\n return {\r\n formName: 'coursesForm',\r\n fields: [\r\n {\r\n field_name: 'event',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'attendeeName',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_label: 'Subtotal',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Event dates + Category + Names':\r\n return {\r\n formName: 'eventCategoryNamesForm',\r\n fields: [\r\n {\r\n field_name: 'event',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'category',\r\n field_type: 'radio',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_number2: attributes.companyNames,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Event dates + Names':\r\n return {\r\n formName: 'ceremonyForm',\r\n fields: [\r\n {\r\n field_name: 'event',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Event date + Name of Deceased + Dedicated by':\r\n return {\r\n formName: 'eventDeceasedDedicatedByForm',\r\n fields: [\r\n {\r\n field_name: 'event',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'deceasedName',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n field_number: attributes.deceasedNames,\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'dedicatedName',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Event dates + Names + NRIC + Contact Number + Address':\r\n return {\r\n formName: 'eventTaxDeductionForm',\r\n fields: [\r\n {\r\n field_name: 'event',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'tax',\r\n field_type: 'checkbox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'nric',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'phone',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'building',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'unit',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'postal',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'country',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n }; \r\n\r\n case 'Name + Birth date + School name + In-person/Online':\r\n return {\r\n formName: 'nameBirthdaySchoolForm',\r\n fields: [\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'birthdate',\r\n field_type: 'date',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'school',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'option',\r\n field_type: 'radio',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Name + Birth date + Time of birth':\r\n return {\r\n formName: 'nameBirthDatetimeForm',\r\n fields: [\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_placeholder: '',\r\n required: 'true',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'birthdate',\r\n field_type: 'date',\r\n field_placeholder: '',\r\n required: 'true',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'birthtime',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Name of Deceased + Dedicated by':\r\n return {\r\n formName: 'deceasedDedicatedByForm',\r\n fields: [\r\n {\r\n field_name: 'deceasedName',\r\n field_type: 'textBox',\r\n field_number: attributes.deceasedNames,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'dedicatedName',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Names Only':\r\n return {\r\n formName: 'namesOnlyForm',\r\n fields: [\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Names + Remarks':\r\n return {\r\n formName: 'namesRemarksForm',\r\n fields: [\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'remark',\r\n field_type: 'textArea',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Names + Address + Contact no':\r\n return {\r\n formName: 'namesAddressContactnoForm',\r\n fields: [\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'building',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'unit',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'postal',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'country',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'phone',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'remark',\r\n field_type: 'textArea',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'No. of years + Category + Names':\r\n return {\r\n formName: 'noOfYearsCategoryNamesForm',\r\n fields: [\r\n {\r\n field_name: 'noOfYears',\r\n field_type: 'radio',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'nameChange',\r\n field_type: 'radio',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'period',\r\n field_type: 'label',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'category',\r\n field_type: 'radio',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_number2: attributes.companyNames,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Services Business':\r\n return {\r\n formName: 'servicesBusinessForm',\r\n fields: [\r\n {\r\n field_name: 'period',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'building',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'unit',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'postal',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'country',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Services Deceased':\r\n return {\r\n formName: 'servicesDeceasedForm',\r\n fields: [\r\n {\r\n field_name: 'period',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'dedicatedby',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'birthdate',\r\n field_type: 'date',\r\n field_placeholder: '',\r\n required: 'true',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'birthtime',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'building',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'unit',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'postal',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'country',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Services Education':\r\n return {\r\n formName: 'servicesEducationForm',\r\n fields: [\r\n {\r\n field_name: 'period',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'birthdate',\r\n field_type: 'date',\r\n field_placeholder: '',\r\n required: 'true',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'birthtime',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'building',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'unit',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'postal',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'country',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Services General':\r\n return {\r\n formName: 'servicesGeneralForm',\r\n fields: [\r\n {\r\n field_name: 'period',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_number2: attributes.companyNames,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'birthdate',\r\n field_type: 'date',\r\n field_placeholder: '',\r\n required: 'true',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'birthtime',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'building',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'unit',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'postal',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'country',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Services Health \\u2013 Surgery':\r\n return {\r\n formName: 'servicesHealthSurgeryForm',\r\n fields: [\r\n {\r\n field_name: 'period',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_number2: attributes.companyNames,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'birthdate',\r\n field_type: 'date',\r\n field_placeholder: '',\r\n required: 'true',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'birthtime',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'building',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'unit',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'postal',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'country',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Services Infant Spirit':\r\n return {\r\n formName: 'servicesInfantSpiritForm',\r\n fields: [\r\n {\r\n field_name: 'period',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_number2: attributes.companyNames,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'birthdate',\r\n field_type: 'date',\r\n field_placeholder: '',\r\n required: 'true',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'birthtime',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'building',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'unit',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'postal',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'country',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Services Marriage':\r\n return {\r\n formName: 'servicesMarriageForm',\r\n fields: [\r\n {\r\n field_name: 'period',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_number2: attributes.companyNames,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'birthdate',\r\n field_type: 'date',\r\n field_placeholder: '',\r\n required: 'true',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'birthtime',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'building',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'unit',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'postal',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'country',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Events Chinese Name':\r\n return {\r\n formName: 'eventsChineseNameForm',\r\n fields: [\r\n {\r\n field_name: 'event',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'attendeeName',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'chineseName',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'phone',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_label: 'Subtotal',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Events Next of Kin Name':\r\n return {\r\n formName: 'eventsNextOfKinNameForm',\r\n fields: [\r\n {\r\n field_name: 'event',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'phone',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'nameNextOfKin',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'phoneNextOfKin',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_label: 'Subtotal',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n \r\n case 'Events Passport Upload':\r\n return {\r\n formName: 'eventsPassportUpload',\r\n fields: [\r\n {\r\n field_name: 'event',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'attendeeName',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'phone',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'birthdate',\r\n field_type: 'date',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'nameNextOfKin',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'phoneNextOfKin',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'passportNumber',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'passportExpiryDate',\r\n field_type: 'date',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'passportIssueDate',\r\n field_type: 'date',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'passportUpload',\r\n field_type: 'file_upload',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_label: 'Subtotal',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n case 'Events Passport Upload with Insurance':\r\n return {\r\n formName: 'eventsPassportUploadWithInsurance',\r\n fields: [\r\n {\r\n field_name: 'event',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'attendeeName',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'phone',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'birthdate',\r\n field_type: 'date',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'nameNextOfKin',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'phoneNextOfKin',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'passportNumber',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'passportExpiryDate',\r\n field_type: 'date',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'passportIssueDate',\r\n field_type: 'date',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'passportUpload',\r\n field_type: 'file_upload',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_label: 'Subtotal',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n case 'Name + Dedication Date':\r\n return {\r\n formName: 'nameDedicationStartDateForm',\r\n fields: [\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_number2: attributes.companyNames,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'startdate',\r\n field_type: 'date',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n \r\n \r\n default:\r\n return {\r\n formName: 'offeringForm',\r\n fields: [\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'message',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'remark',\r\n field_type: 'textArea',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n }\r\n}","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\n\r\nimport { CartLine, SimpleProduct, AsyncResult, ProductSearchResult, ProductPrice, ProductWarehouseInventoryAvailability, AttributeValue, SalesOrder } from '@msdyn365-commerce/retail-proxy';\r\n\r\nimport { getOrderHistoryAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CustomersDataActions.g';\r\nimport { getAttributeValuesAsync, getByIdAsync, getEstimatedAvailabilityAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\r\n\r\nimport { getTelemetryObject, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport { GetSelectedQuantityValuesInput, IGetSelectedQuantityStateData } from '../../actions/BuyBoxSelectedQuantity/ecomm-buybox-selected-quantity';\r\nimport { getByCustomerBTGPTransactionAsync, getAllBTGPCartLineAsync, checkAvailableSerialAsync, getEventAvailabilityAsync, getProductEventsByIdAsync, } from '../../actions/DataActionExtension.g';\r\n\r\nimport { v4 as uuidv4 } from 'uuid';\r\n\r\nimport { getProductServiceObjects } from './component/ecomm-form-get-service-objects';\r\n\r\nimport resource from './resources/resource.json';\r\n\r\nimport { InventoryLvls } from '../../components/enums';\r\n\r\nimport getFormJSON from './utilities/getFormJSON';\r\n\r\nimport { IEcommProductDetailsFormData, Attributes, IField, IFormStructure, IdState,IEvent, IEventDetails } from './ecomm-product-details-form.data';\r\nimport { IEcommProductDetailsFormProps } from './ecomm-product-details-form.props.autogenerated';\r\n\r\n\r\nconst moment = require('moment');\r\n\r\nexport interface IEcommProductDetailsFormViewProps extends IEcommProductDetailsFormProps {\r\n telemetryContent: ITelemetryContent;\r\n productsList: ProductSearchResult[];\r\n simpleProducts: SimpleProduct[];\r\n productsIds: number[];\r\n productPriceList: ProductPrice[];\r\n attributesList: AttributeValue[];\r\n productAvailabilities: ProductWarehouseInventoryAvailability[];\r\n formScheme: IField[];\r\n formsHeaders: string[];\r\n formName: string;\r\n selectedProduct: AsyncResult;\r\n subProduct: SimpleProduct;\r\n hasSerial: boolean;\r\n itemUnavailable: boolean;\r\n eventAvailable: boolean;\r\n rowsData: IdState[];\r\n matchingCartItems: [];\r\n addRow(noOfRows: number): void;\r\n replaceRow(noOfRows: number, idx: number[]): void;\r\n removeRow(idx: number): void;\r\n removeMultipleRows(ix: number): void;\r\n retrieveRow(input: any[]): void;\r\n isCustomPrice: boolean;\r\n isEditMode: boolean;\r\n eventProduct: boolean;\r\n eventId: string;\r\n coursesEventRecords: IEvent[];\r\n eventMinCapacityThreshold: number;\r\n eventDetails: IEventDetails[];\r\n allowMultipleRegistrations: boolean;\r\n showRemarksField: boolean;\r\n insuranceAmount: string;\r\n insuranceFeeLabel: string;\r\n makeChineseNameMandatory: boolean;\r\n}\r\n\r\n/**\r\n *\r\n * EcommProductDetailsForm component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass EcommProductDetailsForm extends React.PureComponent> {\r\n public tableHeaderArray: string[] = [];\r\n\r\n private telemetryContent: ITelemetryContent;\r\n private localeCode = this.props.context.request.locale.split('-')[0];\r\n\r\n constructor(props: IEcommProductDetailsFormProps) {\r\n super(props);\r\n\r\n this.state = {\r\n selectedProduct: {}, addRow: {}, replaceRow:{}, removeRow: {}, removeMultipleRows: {}, retrieveRow: {},\r\n headerArrayState: [], formStructState: [], formName: '', rowsData: [{ id: uuidv4() }],\r\n productResult: [], simpleProductResult: [], productsIds: [], productPriceArr: [],\r\n attributesList: [], productsAvailability: {}, matchingCartItems: [], \r\n hasSerial: false, itemUnavailable: false, isEditMode: false,\r\n eventProduct: true, eventAvailable:false,coursesEventRecords:[], eventMinCapacityThreshold: 0,\r\n eventDetails:[], allowMultipleRegistrations: true, showRemarksField: true, insuranceAmount:'0', insuranceFeeLabel: '',\r\n makeChineseNameMandatory: true\r\n };\r\n\r\n this.telemetryContent = getTelemetryObject(props.context.request.telemetryPageName!, props.friendlyName, props.telemetry);\r\n }\r\n\r\n private delay(ms: number) {\r\n return new Promise(resolve => setTimeout(resolve, ms));\r\n }\r\n\r\n public async componentDidMount(): Promise {\r\n const { data: { categories, cart, product, selectedQuantity } } = this.props;\r\n\r\n let formStructure: IFormStructure;\r\n\r\n if (!categories.result) {\r\n await this.delay(300);\r\n }\r\n\r\n let categoryId = categories.result!.filter(category => category.ParentCategory == 0)[0].RecordId;\r\n\r\n let resultObj = await getProductServiceObjects(this.props, categoryId)\r\n .catch(error => {\r\n console.log('[product-list] error', error);\r\n if (this.state['productResult']?.length > 0 || this.state['simpleProductResult']?.length > 0 || this.state['productsIds']?.length > 0 || this.state['productPriceArr']?.length > 0 || this.state['attributesList']?.length > 0) {\r\n this.setState({ productResult: [], simpleProductResult: [], productsAvailability: {}, productsIds: [], productPriceArr: [], attributesList: [] });\r\n }\r\n });\r\n\r\n let productList: ProductSearchResult[] = [];\r\n let simpleProductList: SimpleProduct[] | undefined = [];\r\n let productsIds: number[] | undefined = [];\r\n let productPriceList: ProductPrice[] | undefined = [];\r\n let productsAvailability: ProductWarehouseInventoryAvailability[] | undefined = [];\r\n let attributeList: AttributeValue[] | undefined = [];\r\n\r\n if (resultObj && resultObj.selectedProducts) {\r\n productList = resultObj.selectedProducts;\r\n simpleProductList = resultObj.productsSimpleDetails;\r\n productPriceList = resultObj.activePrices;\r\n productsIds = resultObj.productIds;\r\n productsAvailability = resultObj.productsAvailability;\r\n attributeList = resultObj.attributesList;\r\n }\r\n\r\n if (JSON.stringify(productList) !== JSON.stringify(this.state['productResult'])) {\r\n this.setState({\r\n simpleProductResult: simpleProductList,\r\n productsAvailability: productsAvailability, productsIds: productsIds, productPriceArr: productPriceList, attributesList: attributeList, productResult: productList\r\n });\r\n }\r\n\r\n let matchingItemsLength = 1;\r\n\r\n let itemArray = [];\r\n let eventProduct = true;\r\n\r\n const parameters = window.location.search;\r\n const cartlineId = new URLSearchParams(parameters).get('cartlineId');\r\n\r\n // Unable to pass populated array of either cart items/ past transactions to view file.\r\n // This portion of the code is replicated in view to ensure that formItem array is not empty.\r\n // This portion of the code in controller is meant for buildFormStructure.\r\n // Check state matchingCartItems array again.\r\n if (cartlineId && cart.result) {\r\n const cartLines: CartLine[] = cart.result.cart.CartLines!;\r\n const found = cartLines.find(cartline => cartline.LineId === cartlineId);\r\n\r\n let cartLineData: any[] = [];\r\n\r\n let getAllCartLineResult = await getAllBTGPCartLineAsync({ callerContext: this.props.context.actionContext }, (await cart).cart.Id);\r\n\r\n if (getAllCartLineResult.length > 0) {\r\n getAllCartLineResult.map((record) => { cartLineData.push(JSON.parse(record)); });\r\n }\r\n\r\n let cartLineIndex = cartLineData.findIndex((cl => cl['CartLineID'] === cartlineId));\r\n\r\n if (found && cartLineIndex >= 0) {\r\n let childCartLines = cartLineData.filter((cl => cl['ParentCartLineID'] === cartlineId));\r\n\r\n let eventNames = cartLineData[`${cartLineIndex}`]['EventName'];\r\n let eventIds = cartLineData[`${cartLineIndex}`]['EventID'];\r\n let quantity = found.Quantity ? found.Quantity : 1;\r\n let subProductQuantity = 0;\r\n\r\n childCartLines.map((child) => {\r\n quantity++;\r\n eventNames += ';' + child['EventName'];\r\n eventIds += ';' + child['EventID'];\r\n\r\n if (child['ProductID'] !== String(found.ProductId)) {\r\n let subProductfound = cartLines.find(cartline => cartline.LineId === child['CartLineID']);\r\n if (subProductfound) {\r\n subProductQuantity = subProductfound.Quantity!;\r\n }\r\n }\r\n });\r\n\r\n itemArray.push({\r\n \"comment\": found.Comment ? found.Comment : '',\r\n \"quantity\": quantity,\r\n \"names\": [\r\n cartLineData[`${cartLineIndex}`]['Name_1'], cartLineData[`${cartLineIndex}`]['Name_2'], cartLineData[`${cartLineIndex}`]['Name_3'], cartLineData[`${cartLineIndex}`]['Name_4'], cartLineData[`${cartLineIndex}`]['Name_5'], cartLineData[`${cartLineIndex}`]['Name_6'], cartLineData[`${cartLineIndex}`]['Name_7'], cartLineData[`${cartLineIndex}`]['Name_8'], cartLineData[`${cartLineIndex}`]['Name_9'], cartLineData[`${cartLineIndex}`]['Name_10'], cartLineData[`${cartLineIndex}`]['Name_11'], cartLineData[`${cartLineIndex}`]['Name_12'], cartLineData[`${cartLineIndex}`]['Name_13'], cartLineData[`${cartLineIndex}`]['Name_14'], cartLineData[`${cartLineIndex}`]['Name_15'], cartLineData[`${cartLineIndex}`]['Name_16'], cartLineData[`${cartLineIndex}`]['Name_17'], cartLineData[`${cartLineIndex}`]['Name_18'], cartLineData[`${cartLineIndex}`]['Name_19'], cartLineData[`${cartLineIndex}`]['Name_20']\r\n ],\r\n \"category\": cartLineData[`${cartLineIndex}`]['Category'],\r\n \"eventID\": eventIds,\r\n \"eventName\": eventNames,\r\n \"remarks\": cartLineData[`${cartLineIndex}`]['Remarks'],\r\n \"message\": cartLineData[`${cartLineIndex}`]['Message'],\r\n \"dedicatedBy\": cartLineData[`${cartLineIndex}`]['DedicatedBy'],\r\n \"buildingName\": cartLineData[`${cartLineIndex}`]['BuildingName'],\r\n \"unitNumber\": cartLineData[`${cartLineIndex}`]['UnitNumber'],\r\n \"postalCode\": cartLineData[`${cartLineIndex}`]['PostalCode'],\r\n \"birthDate\": cartLineData[`${cartLineIndex}`]['BirthDate'],\r\n \"phoneNumber\": cartLineData[`${cartLineIndex}`]['PhoneNumber'],\r\n \"schoolName\": cartLineData[`${cartLineIndex}`]['SchoolName'],\r\n \"donationOption\": cartLineData[`${cartLineIndex}`]['DonationOption'],\r\n \"blessingOption\": cartLineData[`${cartLineIndex}`]['BlessingOption'],\r\n \"birthTime\": cartLineData[`${cartLineIndex}`]['BirthTime'],\r\n \"lightOption\": cartLineData[`${cartLineIndex}`]['LightOption'],\r\n \"validFrom\": cartLineData[`${cartLineIndex}`]['ValidFrom'],\r\n \"validTo\": cartLineData[`${cartLineIndex}`]['ValidTo'],\r\n \"dedicationPeriod\": cartLineData[`${cartLineIndex}`]['DedicationPeriod'],\r\n 'startDate': cartLineData[`${cartLineIndex}`]['StartDate'],\r\n 'gender': cartLineData[`${cartLineIndex}`]['Gender'],\r\n \"country\": cartLineData[`${cartLineIndex}`]['Country'],\r\n \"companyName\": cartLineData[`${cartLineIndex}`]['CompanyName'],\r\n \"deceasedRelationship\": cartLineData[`${cartLineIndex}`]['DeceasedRelationship'],\r\n \"surgeryDate\": cartLineData[`${cartLineIndex}`]['SurgeryDate'],\r\n \"deathDate\": cartLineData[`${cartLineIndex}`]['DeathDate'],\r\n \"deathTime\": cartLineData[`${cartLineIndex}`]['DeathTime'],\r\n \"nameChange\": cartLineData[`${cartLineIndex}`]['NameChange'],\r\n \"oldName_1\": cartLineData[`${cartLineIndex}`]['OldName_1'],\r\n \"oldName_2\": cartLineData[`${cartLineIndex}`]['OldName_2'],\r\n \"birthDate_2\": cartLineData[`${cartLineIndex}`]['BirthDate_2'],\r\n \"birthTime_2\": cartLineData[`${cartLineIndex}`]['BirthTime_2'],\r\n \"isCustomPrice\": found.IsPriceKeyedIn ? found.IsPriceKeyedIn : false,\r\n \"customPriceAmount\": found.Price ? found.Price : 0,\r\n \"cartLineId\": found.LineId,\r\n \"subProductQuantity\": subProductQuantity,\r\n \"chineseName\": cartLineData[`${cartLineIndex}`]['ChineseName'],\r\n \"contactNumber\": cartLineData[`${cartLineIndex}`]['ContactNumber'],\r\n \"nameNextKin\": cartLineData[`${cartLineIndex}`]['NameNextKin'],\r\n \"contactNumberNextKin\": cartLineData[`${cartLineIndex}`]['ContactNumberNextKin'],\r\n \"passportNumber\": cartLineData[`${cartLineIndex}`][\"PassportNumber\"],\r\n \"passportExpiryDate\": cartLineData[`${cartLineIndex}`][\"PassportExpiryDate\"],\r\n \"passportIssuedDate\": cartLineData[`${cartLineIndex}`][\"PassportIssuedDate\"],\r\n \"consent\": cartLineData[`${cartLineIndex}`][\"Consent\"],\r\n \"isInsuranceIncluded\": cartLineData[`${cartLineIndex}`][\"IsInsuranceIncluded\"]\r\n });\r\n\r\n this.setState({ isEditMode: true });\r\n } else {\r\n this.setState({ isEditMode: false });\r\n }\r\n } else if (parameters === '') {\r\n // Retrieve form inputs if user is logged in.\r\n const { context, context: { request: { user } } } = this.props;\r\n\r\n if (user.customerAccountNumber) {\r\n let itemInCart = false;\r\n\r\n if (cart.result && product.result) {\r\n const cartLines: CartLine[] = cart.result.cart.CartLines!;\r\n const foundInCart = cartLines.find(cartline => cartline.ProductId === product.result!.RecordId);\r\n\r\n if (foundInCart) {\r\n itemInCart = true;\r\n }\r\n }\r\n\r\n if (!itemInCart) {\r\n let lastOrderCE: any;\r\n let lastOrderCommerce: any;\r\n let records: string[] = [];\r\n\r\n // Retrieves all extension table records of this product.\r\n if (product.result) {\r\n records = await getByCustomerBTGPTransactionAsync({ callerContext: context.actionContext }, user.customerAccountNumber, user.emailAddress!, product.result.RecordId.toString(), this.props.config.isUat);\r\n\r\n if (records.length > 0) {\r\n // Filters for records from CE.\r\n const recordsCE = records.filter(record => {\r\n const input = JSON.parse(record);\r\n\r\n return input['FromCE'] === true;\r\n });\r\n\r\n // Gets the most recent order from CE of this product.\r\n lastOrderCE = recordsCE && recordsCE.length > 0 ? JSON.parse(recordsCE[0]) : undefined;\r\n }\r\n }\r\n\r\n const orders = await getOrderHistoryAsync({ callerContext: context.actionContext }, user.customerAccountNumber);\r\n\r\n if (orders && orders.length > 0) {\r\n // Finds the most recent order from Commerce that contains this product.\r\n lastOrderCommerce = orders.find((order: SalesOrder) => {\r\n const found = records.find(record => {\r\n const inputs = JSON.parse(record);\r\n\r\n return inputs['SalesOrderID'] === order.Id && inputs['FromCE'] === false ? order.Id : '';\r\n });\r\n\r\n return found && found !== '' ? order : undefined;\r\n });\r\n }\r\n\r\n let mostRecentOrderID = '';\r\n\r\n if (lastOrderCE && lastOrderCommerce) {\r\n mostRecentOrderID = moment(lastOrderCE['DateOfTrasaction']).isBefore(moment(lastOrderCommerce.CreatedDateTime)) ? lastOrderCommerce.Id : lastOrderCE['SalesOrderID'];\r\n } else if (lastOrderCE === undefined && lastOrderCommerce) {\r\n mostRecentOrderID = lastOrderCommerce.Id;\r\n } else if (lastOrderCE && lastOrderCommerce === undefined) {\r\n mostRecentOrderID = lastOrderCE['SalesOrderID'];\r\n }\r\n\r\n if (mostRecentOrderID !== '') {\r\n const batch = records.filter(record => {\r\n const inputs = JSON.parse(record);\r\n\r\n return inputs['SalesOrderID'] === mostRecentOrderID;\r\n });\r\n\r\n for (let i = 0; i < batch.length; ++i) {\r\n const item = JSON.parse(batch[`${i}`]);\r\n\r\n itemArray.push({\r\n \"comment\": '',\r\n \"quantity\": item['Quantity'] ? item['Quantity'] : 1,\r\n \"names\": [\r\n item['Name_1'], item['Name_2'], item['Name_3'], item['Name_4'], item['Name_5'], item['Name_6'], item['Name_7'], item['Name_8'], item['Name_9'], item['Name_10'], item['Name_11'], item['Name_12'], item['Name_13'], item['Name_14'], item['Name_15'], item['Name_16'], item['Name_17'], item['Name_18'], item['Name_19'], item['Name_20']\r\n ],\r\n \"category\": item['Category'],\r\n \"eventID\": '',\r\n \"eventName\": '',\r\n \"remarks\": item['Remarks'],\r\n \"message\": item['Message'],\r\n \"dedicatedBy\": item['DedicatedBy'],\r\n \"buildingName\": item['BuildingName'],\r\n \"unitNumber\": item['UnitNumber'],\r\n \"postalCode\": item['PostalCode'],\r\n \"birthDate\": item['BirthDate'],\r\n \"phoneNumber\": item['PhoneNumber'],\r\n \"schoolName\": item['SchoolName'],\r\n \"donationOption\": item['DonationOption'],\r\n \"blessingOption\": item['BlessingOption'],\r\n \"birthTime\": item['BirthTime'],\r\n \"lightOption\": item['LightOption'],\r\n \"validFrom\": item['ValidFrom'],\r\n \"validTo\": item['ValidTo'],\r\n \"dedicationPeriod\": item['DedicationPeriod'],\r\n 'startDate': item['StartDate'],\r\n 'gender': item['Gender'],\r\n \"country\": item['Country'],\r\n \"companyName\": item['CompanyName'],\r\n \"deceasedRelationship\": item['DeceasedRelationship'],\r\n \"surgeryDate\": item['SurgeryDate'],\r\n \"deathDate\": item['DeathDate'],\r\n \"deathTime\": item['DeathTime'],\r\n \"nameChange\": item['NameChange'],\r\n \"oldName_1\": item['OldName_1'],\r\n \"oldName_2\": item['OldName_2'],\r\n \"birthDate_2\": item['BirthDate_2'],\r\n \"birthTime_2\": item['BirthTime_2'],\r\n \"isCustomPrice\": false,\r\n \"customPriceAmount\": 0,\r\n \"cartLineId\": '',\r\n \"chineseName\": item[\"ChineseName\"],\r\n \"nameNextKin\": item[\"NameNextKin\"],\r\n \"contactNumber\": item[\"ContactNumber\"],\r\n \"contactNumberNextKin\": item[\"ContactNumberNextKin\"],\r\n \"passportNumber\": item[\"PassportNumber\"],\r\n \"passportExpiryDate\": item[\"PassportExpiryDate\"],\r\n \"passportIssuedDate\": item[\"PassportIssuedDate\"],\r\n \"consent\": item[\"Consent\"],\r\n \"isInsuranceIncluded\": item[\"IsInsuranceIncluded\"]\r\n });\r\n }\r\n\r\n matchingItemsLength = itemArray.length;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (product && product.result) {\r\n let resultObj = await this.getProductAttributes(product.result);\r\n\r\n formStructure = getFormJSON(resultObj);\r\n\r\n const formRows = formStructure.formName === 'noOfYearsCategoryNamesForm' ? 1 : matchingItemsLength;\r\n\r\n this.setState({eventMinCapacityThreshold: resultObj.eventMinCapacityThreshold,allowMultipleRegistrations:resultObj.allowMultipleRegistrations, showRemarksField: resultObj.showRemarksField, insuranceAmount: resultObj.insuranceAmount, insuranceFeeLabel: resultObj.insuranceFeeLabel, makeChineseNameMandatory: resultObj.makeChineseNameMandatory});\r\n \r\n this.buildFormStructure(formStructure, selectedQuantity, formRows);\r\n\r\n if(resultObj.courseProduct || (resultObj.eventProduct && resultObj.hasCapacityCheck))\r\n {\r\n this._checkEventAvailability();\r\n }\r\n\r\n if (resultObj.hasSerial) {\r\n this._checkAvailableSerial();\r\n }\r\n\r\n if (!resultObj.hasSerial) {\r\n this._checkAvailableStock();\r\n }\r\n\r\n if (resultObj.subProductRecordId != 0) {\r\n this.getSubProduct(resultObj.subProductRecordId);\r\n }\r\n\r\n eventProduct = resultObj.eventProduct;\r\n } else {\r\n formStructure = getFormJSON({ formName: 'Offering', amounts: [], noOfNames: 1, companyNames: 1, deceasedNames: 1, subProductRecordId: 0, hasSerial: false, eventProduct: false, courseProduct:false, hasCapacityCheck:false, eventMinCapacityThreshold:0, allowMultipleRegistrations: true,showRemarksField: true, insuranceAmount: '0', insuranceFeeLabel: '', makeChineseNameMandatory: true});\r\n\r\n const formRows = formStructure.formName === 'noOfYearsCategoryNamesForm' ? 1 : matchingItemsLength;\r\n\r\n this.buildFormStructure(formStructure, selectedQuantity, formRows);\r\n }\r\n\r\n this.setState({ matchingCartItems: itemArray, eventProduct: eventProduct });\r\n }\r\n\r\n private async getSubProduct(subProductRecordId: number) {\r\n const data = await getByIdAsync({ callerContext: this.props.context.actionContext }, subProductRecordId, this.props.context.actionContext.requestContext.apiSettings.channelId);\r\n\r\n this.setState({ subProduct: data });\r\n }\r\n\r\n // private async getEventProducts(ecommId: number) {\r\n // let startDate = new Date();\r\n // startDate.setHours(0, 0, 0, 0);\r\n\r\n // const data = await getProductEventsByIdAsync({ callerContext: this.props.context.actionContext }, this.props.config.isUat, startDate.toISOString(), ecommId.toString());\r\n\r\n // const events: any = [];\r\n\r\n // data.map(event => {\r\n // const eventJson = JSON.parse(event);\r\n\r\n // var eventObj: IEvent = {\r\n // id: eventJson['EventId'],\r\n // name: eventJson['Name'],\r\n // startDateTime: eventJson['StartDateTime'],\r\n // endDateTime: eventJson['EndDateTime'],\r\n // startLunarDate: eventJson['StartLunarDate'],\r\n // endLunarDate: eventJson['EndLunarDate']\r\n // }\r\n\r\n // events.push(eventObj);\r\n // });\r\n\r\n // this.setState({ productEvents: events });\r\n\r\n // this._checkRegistrationPeriod(events);\r\n // }\r\n\r\n public render(): JSX.Element | null {\r\n const { data: { product } } = this.props;\r\n\r\n let customPriceCheck: boolean = false\r\n\r\n if (product.result?.BasePrice == 0 || this.state['insuranceAmount'] !== \"0\") {\r\n customPriceCheck = true;\r\n }\r\n\r\n const ProductDetailsViewProps = {\r\n ...this.props,\r\n hasInitOnce: this.state['hasInitOnce'],\r\n setHasInitOnce: this.state['setHasInitOnce'],\r\n formScheme: this.state['formStructState'],\r\n formsHeaders: this.state['headerArrayState'],\r\n formName: this.state['formName'],\r\n hasSerial: this.state['hasSerial'],\r\n itemUnavailable: this.state['itemUnavailable'],\r\n eventAvailable: this.state['eventAvailable'],\r\n selectedProduct: product,\r\n rowsData: this.state['rowsData'],\r\n addRow: this.state['addRow'],\r\n replaceRow: this.state['replaceRow'],\r\n removeRow: this.state['removeRow'],\r\n removeMultipleRows: this.state['removeMultipleRows'],\r\n retrieveRow: this.state['retrieveRow'],\r\n telemetryContent: this.telemetryContent,\r\n productsList: this.state['productResult'],\r\n simpleProducts: this.state['simpleProductResult'],\r\n subProduct: this.state['subProduct'],\r\n productsIds: this.state['productsIds'],\r\n productPriceList: this.state['productPriceArr'],\r\n productAvailabilities: this.state['productsAvailability'],\r\n matchingCartItems: this.state['matchingCartItems'],\r\n isCustomPrice: customPriceCheck,\r\n isEditMode: this.state['isEditMode'],\r\n eventProduct: this.state['eventProduct'],\r\n coursesEventRecords: this.state['coursesEventRecords'],\r\n eventMinCapacityThreshold: this.state['eventMinCapacityThreshold'],\r\n eventDetails: this.state['eventDetails'],\r\n allowMultipleRegistrations: this.state['allowMultipleRegistrations'],\r\n showRemarksField: this.state['showRemarksField'],\r\n insuranceAmount: this.state['insuranceAmount'],\r\n insuranceFeeLabel: this.state['insuranceFeeLabel'],\r\n makeChineseNameMandatory: this.state['makeChineseNameMandatory']\r\n \r\n };\r\n\r\n return this.props.renderView(ProductDetailsViewProps);\r\n }\r\n\r\n // private _checkRegistrationPeriod(productEvents: any[]) {\r\n // if (productEvents.length == 0) {\r\n // this.setState({ registrationClosed: true });\r\n // } else {\r\n // let latestEvent = productEvents[productEvents.length - 1];\r\n // let eventStartDate = moment(latestEvent['startDateTime']);\r\n // let currentTime = moment();\r\n\r\n // if (currentTime.diff(eventStartDate, 'd') > 0) {\r\n // this.setState({ registrationClosed: true });\r\n // }\r\n // }\r\n // }\r\n\r\n private async _checkAvailableStock() {\r\n let haveStock = true;\r\n let productId = (await this.props.data.product).RecordId;\r\n\r\n const availability = await getEstimatedAvailabilityAsync({ callerContext: this.props.context.actionContext }, { ProductIds: [productId], DefaultWarehouseOnly: true }).\r\n catch(error => console.log('[_checkAvailableStock] getEstimatedAvailabilityAsync error: ', error));\r\n\r\n if (availability && availability.ProductWarehouseInventoryAvailabilities) {\r\n const warehouse = availability.ProductWarehouseInventoryAvailabilities;\r\n\r\n if (warehouse.length > 0) {\r\n const found = warehouse.find(stock => stock.ProductId === productId);\r\n\r\n if (found && (found.PhysicalAvailableInventoryLevelCode && found.PhysicalAvailableInventoryLevelCode !== InventoryLvls.AVAIL)) {\r\n haveStock = false;\r\n\r\n this.setState({ itemUnavailable: true });\r\n }\r\n }\r\n }\r\n\r\n return haveStock;\r\n }\r\n\r\n private async _checkAvailableSerial() {\r\n let haveSerial = true;\r\n\r\n let checkAvailableSerialResult = await checkAvailableSerialAsync({ callerContext: this.props.context.actionContext }, this.props.config.isUat, this.props.data.product.result?.RecordId.toString()!);\r\n\r\n if (checkAvailableSerialResult && typeof checkAvailableSerialResult === 'object' && checkAvailableSerialResult['value'] == false) {\r\n haveSerial = false;\r\n\r\n this.setState({ itemUnavailable: true });\r\n }\r\n\r\n return haveSerial;\r\n }\r\n\r\n private async _getEventsForProduct(ecommId: number) {\r\n let startDate = new Date();\r\n startDate.setHours(0, 0, 0, 0);\r\n let eventRecords:IEvent[] =[];\r\n let eventDetails: IEventDetails[]=[];\r\n\r\n\r\n const data = await getProductEventsByIdAsync(\r\n { callerContext: this.props.context.actionContext },\r\n this.props.config.isUat,\r\n startDate.toISOString(),\r\n ecommId.toString()\r\n );\r\n\r\n //let event = data[0];\r\n\r\n // const eventJson = JSON.parse(event);\r\n\r\n await Promise.all(data.map(async(event) => {\r\n const eventJson = JSON.parse(event);\r\n\r\n let checkEventAvailableResult = await getEventAvailabilityAsync({ callerContext: this.props.context.actionContext }, this.props.config.isUat, eventJson[\"EventId\"])\r\n\r\n if (checkEventAvailableResult && checkEventAvailableResult[0] !== '') {\r\n const eventAvailabiltyDetails = JSON.parse(checkEventAvailableResult[0]);\r\n \r\n if(eventAvailabiltyDetails.isEventAvailable == true)\r\n {\r\n const remainingSlots = eventAvailabiltyDetails.maxEventCapacity - eventAvailabiltyDetails.registrationCount;\r\n const hideAddMoreButton = remainingSlots > this.state['eventMinCapacityThreshold'] ? false: true;\r\n const remainingEcommSlots = remainingSlots > this.state['eventMinCapacityThreshold'] ? remainingSlots: 0;\r\n \r\n const eventObj: IEvent = {\r\n id: eventJson[\"EventId\"],\r\n name: eventJson[\"Name\"],\r\n startDateTime: eventJson[\"StartDateTime\"],\r\n endDateTime: eventJson[\"EndDateTime\"],\r\n startLunarDate: eventJson[\"StartLunarDate\"],\r\n endLunarDate: eventJson[\"EndLunarDate\"],\r\n };\r\n\r\n const eventDetailsObj:IEventDetails = {\r\n id: eventJson[\"EventId\"],\r\n name: eventJson[\"Name\"],\r\n startDateTime: eventJson[\"StartDateTime\"],\r\n endDateTime: eventJson[\"EndDateTime\"],\r\n startLunarDate: eventJson[\"StartLunarDate\"],\r\n endLunarDate: eventJson[\"EndLunarDate\"],\r\n hideAddMoreButton: hideAddMoreButton,\r\n eventAvailableSlot: remainingEcommSlots\r\n }\r\n \r\n eventRecords.push(eventObj);\r\n eventDetails.push(eventDetailsObj);\r\n\r\n }\r\n }\r\n \r\n }));\r\n\r\n this.setState({ coursesEventRecords: eventRecords, eventDetails: eventDetails });\r\n\r\n return eventRecords;\r\n \r\n }\r\n\r\n private async _checkEventAvailability()\r\n {\r\n let eventAvailable = false; \r\n let eventIdResult = await this._getEventsForProduct(this.props.data.product.result?.RecordId!);\r\n \r\n\r\n if (eventIdResult.length>0) {\r\n eventAvailable = true;\r\n\r\n this.setState({ eventAvailable: eventAvailable });\r\n }\r\n\r\n return eventAvailable;\r\n }\r\n\r\n private buildFormStructure(formStructure: IFormStructure, selectedQuantity: AsyncResult, matchingItemsLength: number) {\r\n const { context } = this.props;\r\n\r\n this.tableHeaderArray = [];\r\n\r\n formStructure.fields?.map((element: any) => {\r\n this.tableHeaderArray.push(element.field_label);\r\n });\r\n\r\n const addRowAction = (noOfRows: number) => {\r\n context.actionContext.update(new GetSelectedQuantityValuesInput(), { selectedQuantity: this.state['rowsData'].length + noOfRows });\r\n\r\n let rowsDataArray = this.state['rowsData'].slice();\r\n for (let i = 0; i < noOfRows; i++) {\r\n rowsDataArray.push({ id: uuidv4() });\r\n }\r\n this.setState({ rowsData: rowsDataArray });\r\n \r\n };\r\n this.setState({ addRow: addRowAction });\r\n\r\n const replaceRowAction = (noOfRows: number, idx: number[]) => {\r\n context.actionContext.update(new GetSelectedQuantityValuesInput(), { selectedQuantity: this.state['rowsData'].length + noOfRows });\r\n\r\n let rowsDataArray = this.state['rowsData'].slice();\r\n for (let i = 0; i < noOfRows; i++) {\r\n rowsDataArray.push({ id: uuidv4() });\r\n }\r\n this.setState({ rowsData: rowsDataArray }, ()=>removeMultipleRowsAction(idx));\r\n \r\n };\r\n this.setState({ replaceRow: replaceRowAction });\r\n \r\n\r\n const removeRowAction = (index: number) => {\r\n\r\n if (this.state['rowsData'].length > 1) {\r\n context.actionContext.update(new GetSelectedQuantityValuesInput(), { selectedQuantity: this.state['rowsData'].length - 1 });\r\n\r\n this.setState({ rowsData: [...this.state['rowsData'].slice(0, index), ...this.state['rowsData'].slice(index + 1)] });\r\n }\r\n else {\r\n this.setState({ isEditMode: false });\r\n }\r\n };\r\n\r\n this.setState({ removeRow: removeRowAction });\r\n\r\n const removeMultipleRowsAction = (index: number[]) => {\r\n\r\n if (this.state['rowsData'].length > 1) {\r\n context.actionContext.update(new GetSelectedQuantityValuesInput(), { selectedQuantity: this.state['rowsData'].length - 1 });\r\n\r\n const stateData = [...this.state['rowsData']];\r\n for(let i=0; i< index.length; i++){\r\n stateData.splice(index[`${i}`], 1);\r\n }\r\n\r\n this.setState({ rowsData: [...stateData ]});\r\n }\r\n else {\r\n this.setState({ isEditMode: false });\r\n }\r\n };\r\n\r\n this.setState({ removeMultipleRows: removeMultipleRowsAction });\r\n\r\n const retrieveRowsAction = (input: any[]) => {\r\n if (input.length !== 0) {\r\n const ids = [];\r\n\r\n for (let i = 0; i < input.length; ++i) {\r\n ids.push({ id: input[`${i}`].DraftID });\r\n }\r\n\r\n context.actionContext.update(new GetSelectedQuantityValuesInput(), { selectedQuantity: ids.length });\r\n\r\n this.setState({ rowsData: ids });\r\n }\r\n }\r\n\r\n this.setState({ retrieveRow: retrieveRowsAction });\r\n\r\n if (this.tableHeaderArray.length > 0 && this.state['headerArrayState'].length !== this.tableHeaderArray.length) {\r\n this.setState({ headerArrayState: this.tableHeaderArray });\r\n }\r\n\r\n if (formStructure && formStructure.fields && formStructure.fields.length > 0 && formStructure.fields.length !== this.state['formStructState'].length) {\r\n this.setState({ formStructState: formStructure.fields });\r\n }\r\n\r\n if (formStructure && formStructure.formName && formStructure.formName !== this.state['formName']) {\r\n this.setState({ formName: formStructure.formName });\r\n }\r\n\r\n if (formStructure && formStructure.hasSerial && formStructure.hasSerial != this.state['hasSerial']) {\r\n this.setState({ hasSerial: formStructure.hasSerial });\r\n }\r\n\r\n if (!this.state['isEditMode'] && selectedQuantity.result && matchingItemsLength > 0 && matchingItemsLength !== this.state['rowsData'].length) {\r\n if (matchingItemsLength > this.state['rowsData'].length) {\r\n const difference = matchingItemsLength - this.state['rowsData'].length;\r\n\r\n for (let i = 0; i < difference; i++) {\r\n this.setState({ rowsData: [...this.state['rowsData'], { id: uuidv4() }] });\r\n }\r\n\r\n context.actionContext.update(new GetSelectedQuantityValuesInput(), { selectedQuantity: selectedQuantity.result.selectedQuantity });\r\n }\r\n\r\n if (matchingItemsLength < this.state['rowsData'].length) {\r\n const difference = this.state['rowsData'].length - matchingItemsLength;\r\n\r\n let index = this.state['rowsData'].length - 1;\r\n\r\n for (let j = 0; j < difference; j++) {\r\n this.setState({ rowsData: [...this.state['rowsData'].slice(0, index), ...this.state['rowsData'].slice(index + 1)] });\r\n }\r\n\r\n context.actionContext.update(new GetSelectedQuantityValuesInput(), { selectedQuantity: selectedQuantity.result.selectedQuantity });\r\n }\r\n }\r\n }\r\n\r\n private async getProductAttributes(product: SimpleProduct): Promise {\r\n const { context } = this.props;\r\n\r\n const attributesList = await getAttributeValuesAsync({ callerContext: context.actionContext }, product.RecordId, context.request.apiSettings.channelId, context.request.apiSettings.catalogId);\r\n\r\n let formName = '';\r\n let amountArray: string[] = [];\r\n let names: number = 1;\r\n let companyNames: number = 1;\r\n let deceasedNames: number = 1;\r\n let subProductRecordId: number = 0;\r\n let hasSerial: boolean = false;\r\n let eventProduct: boolean = true;\r\n let courseProduct: boolean = false;\r\n let hasCapacityCheck: boolean = false;\r\n let eventMinCapacityThreshold: number = 0;\r\n let allowMultipleEventRegistrations: boolean = true;\r\n let showRemarksField:boolean = true;\r\n let insuranceAmount: string = '0';\r\n let insuranceFeeLabel: string = '';\r\n let makeChineseNameMandatory: boolean = true;\r\n\r\n\r\n for (let i = 0; i < attributesList.length; i++) {\r\n if (attributesList[`${i}`].Name?.includes('Form')) {\r\n formName = attributesList[`${i}`].TextValue ? attributesList[`${i}`].TextValue! : 'Offering';\r\n } else if (attributesList[`${i}`].Name?.includes('Donation Amount')) {\r\n let amount = attributesList[`${i}`].TextValue ? attributesList[`${i}`].TextValue! : '2,5,10,50';\r\n\r\n amountArray = amount.split(',')\r\n amountArray.push(resource.otherLabel[this.localeCode]);\r\n } else if (attributesList[`${i}`].Name?.includes('No Of Names')) {\r\n names = attributesList[`${i}`].IntegerValue ? attributesList[`${i}`].IntegerValue! : 1;\r\n } else if (attributesList[`${i}`].Name?.includes('Company Names')) {\r\n companyNames = attributesList[`${i}`].IntegerValue ? attributesList[`${i}`].IntegerValue! : 1;\r\n } else if (attributesList[`${i}`].Name?.includes('Deceased Names')) {\r\n deceasedNames = attributesList[`${i}`].IntegerValue ? attributesList[`${i}`].IntegerValue! : 1;\r\n } else if (attributesList[`${i}`].Name?.includes('Sub Product Record ID')) {\r\n subProductRecordId = attributesList[`${i}`].TextValue ? +attributesList[`${i}`].TextValue! : 0;\r\n } else if (attributesList[`${i}`].Name?.includes('Has Serial')) {\r\n hasSerial = attributesList[`${i}`].BooleanValue ? attributesList[`${i}`].BooleanValue! : false;\r\n } else if (attributesList[`${i}`].Name?.includes('EventProduct')) {\r\n eventProduct = attributesList[`${i}`].BooleanValue ? attributesList[`${i}`].BooleanValue! : false;\r\n }else if(attributesList[`${i}`].Name?.includes('CourseProduct')){\r\n courseProduct = attributesList[`${i}`].BooleanValue ? attributesList[`${i}`].BooleanValue! : false;\r\n }else if(attributesList[`${i}`].Name?.includes('HasCapacityCheck')){\r\n hasCapacityCheck = attributesList[`${i}`].BooleanValue ? attributesList[`${i}`].BooleanValue! : false;\r\n }else if(attributesList[`${i}`].Name?.includes('EventMinCapacityThreshold')){\r\n eventMinCapacityThreshold = attributesList[`${i}`].IntegerValue ? attributesList[`${i}`].IntegerValue! : 0;\r\n }\r\n else if(attributesList[`${i}`].Name?.includes('AllowMultipleEventRegistrations')){\r\n allowMultipleEventRegistrations = attributesList[`${i}`].BooleanValue ? attributesList[`${i}`].BooleanValue! : false;\r\n }\r\n else if(attributesList[`${i}`].Name?.includes('ShowRemarksField')){\r\n showRemarksField = attributesList[`${i}`].BooleanValue ? attributesList[`${i}`].BooleanValue! : false;\r\n }\r\n else if(attributesList[`${i}`].Name?.includes('InsuranceAmount')){\r\n insuranceAmount = attributesList[`${i}`].TextValue ? attributesList[`${i}`].TextValue! : '0';\r\n }\r\n else if(attributesList[`${i}`].Name?.includes('InsuranceFeeLabel')){\r\n insuranceFeeLabel = attributesList[`${i}`].TextValue ? attributesList[`${i}`].TextValue! : '0';\r\n }\r\n else if(attributesList[`${i}`].Name?.includes('MakeChineseNameMandatory')){\r\n makeChineseNameMandatory = attributesList[`${i}`].BooleanValue ? attributesList[`${i}`].BooleanValue! : false;\r\n }\r\n\r\n }\r\n\r\n return {\r\n formName: formName,\r\n amounts: amountArray,\r\n noOfNames: names,\r\n companyNames: companyNames,\r\n deceasedNames: deceasedNames,\r\n subProductRecordId: subProductRecordId,\r\n hasSerial: hasSerial,\r\n eventProduct: eventProduct,\r\n courseProduct: courseProduct,\r\n hasCapacityCheck: hasCapacityCheck,\r\n eventMinCapacityThreshold: eventMinCapacityThreshold,\r\n allowMultipleRegistrations: allowMultipleEventRegistrations,\r\n showRemarksField: showRemarksField,\r\n insuranceAmount: insuranceAmount,\r\n insuranceFeeLabel: insuranceFeeLabel,\r\n makeChineseNameMandatory: makeChineseNameMandatory\r\n };\r\n }\r\n}\r\n\r\nexport default EcommProductDetailsForm;","import { ProductSearchResult, SimpleProduct, ProductPrice, ProductWarehouseInventoryInformation, AttributeValue } from '@msdyn365-commerce/retail-proxy';\r\nimport { getAttributeValuesAsync, getByIdsAsync, searchByCategoryAsync, getActivePricesAsync, getEstimatedAvailabilityAsync, } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\r\nimport { IEcommProductCartDataSet } from './components-interfaces-definition';\r\nimport { IEcommProductDetailsFormData } from '../ecomm-product-details-form.data';\r\nimport { IEcommProductDetailsFormProps } from '../ecomm-product-details-form.props.autogenerated';\r\n\r\nexport async function getProductServiceObjects(props: IEcommProductDetailsFormProps, categoryId: number):Promise {\r\n const { context } = props;\r\n const projectDomain = { ChannelId: + context.actionContext.requestContext.apiSettings.channelId, CatalogId: +context.actionContext.requestContext.apiSettings.catalogId };\r\n \r\n let productObject: SimpleProduct = await props.data.product;\r\n let productSearchResult: ProductSearchResult[];\r\n let productSearchResultFiltered: ProductSearchResult[];\r\n let productsAvailabilityResults: ProductWarehouseInventoryInformation = {};\r\n let attributesList: AttributeValue[]=[];\r\n let simpleProductsResults: SimpleProduct[] = [];\r\n let activePricesResult: ProductPrice[] = [];\r\n let productIds: number[] = [];\r\n let resultObject: IEcommProductCartDataSet = {};\r\n \r\n productSearchResult= await searchByCategoryAsync({ callerContext: context.actionContext }, context.request.apiSettings.channelId, context.request.apiSettings.catalogId, categoryId);\r\n productIds.push(productObject.RecordId);\r\n productSearchResultFiltered= productSearchResult.filter(elem=> { return elem.RecordId===productObject.RecordId; });\r\n\r\n\r\n if (productSearchResultFiltered) {\r\n simpleProductsResults= await getByIdsAsync({ callerContext: context.actionContext }, context.request.apiSettings.channelId,productIds);\r\n activePricesResult= await getActivePricesAsync({ callerContext: context.actionContext, queryResultSettings: {} }, projectDomain,productIds, new Date(), null, [], true);\r\n productsAvailabilityResults= await getEstimatedAvailabilityAsync({ callerContext: context.actionContext }, { ProductIds: productIds, DefaultWarehouseOnly: true });\r\n attributesList= await getAttributeValuesAsync({callerContext: context.actionContext }, productIds[0],context.request.apiSettings.channelId,context.request.apiSettings.catalogId);\r\n }\r\n\r\n resultObject= {\r\n productIds: productIds,\r\n attributesList: attributesList,\r\n selectedProducts: productSearchResultFiltered,\r\n productsSimpleDetails: simpleProductsResults,\r\n activePrices: activePricesResult,\r\n productsAvailability: (productsAvailabilityResults&&productsAvailabilityResults.ProductWarehouseInventoryAvailabilities?productsAvailabilityResults.ProductWarehouseInventoryAvailabilities:undefined)\r\n };\r\n\r\n return resultObject;\r\n}","import * as React from 'react';\r\n\r\nimport resource from '../resources/resource.json';\r\n\r\nimport Modal from 'react-bootstrap/Modal';\r\n\r\ninterface IEcommPopupProps\r\n{\r\n showPopup: boolean;\r\n callback: any;\r\n callbackProceed: any;\r\n locale: string;\r\n renewableLamps: any[];\r\n callbackChecked: any;\r\n}\r\n\r\n/**\r\n *\r\n * Event component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class Popup extends React.PureComponent {\r\n private formLabels = resource.noOfYearsCategoryNamesForm[this.props.locale];\r\n\r\n public render(): JSX.Element | null {\r\n return (\r\n \r\n \r\n {this._titleText()}\r\n \r\n\r\n \r\n {this._renderMessage()}\r\n {this.props.renewableLamps.length > 0 && this._renderLampsHeader()}\r\n {this.props.renewableLamps.length > 0 && this._renderLamps()}\r\n \r\n\r\n \r\n {this._goButtonText()}\r\n {this._renderCancelButton()}\r\n \r\n \r\n );\r\n }\r\n\r\n private _callbackRedirect = () => {\r\n this.props.callbackProceed();\r\n }\r\n\r\n private _callbackHide = () => {\r\n event?.preventDefault();\r\n this.props.callback();\r\n }\r\n\r\n private _titleText(): string {\r\n return this.formLabels.renewDialogTitle;\r\n }\r\n\r\n private _cancelButtonText(): string {\r\n return this.formLabels.renewDialogValidCancelTitle;\r\n }\r\n\r\n private _goButtonText(): string {\r\n if (this.props.renewableLamps.length > 0) {\r\n for (let i = 0; i < this.props.renewableLamps.length; i++) {\r\n if (this.props.renewableLamps[`${i}`]['isChecked'] === false) {\r\n return this.formLabels.renewDialogProceedTitle;\r\n }\r\n }\r\n\r\n return this.formLabels.renewDialogOkayTitle;\r\n } else {\r\n return this.formLabels.renewDialogOkayTitle;\r\n }\r\n }\r\n\r\n private _renderMessage(): JSX.Element | null {\r\n if (this.props.renewableLamps.length > 0) {\r\n for (let i = 0; i < this.props.renewableLamps.length; i++) {\r\n if (this.props.renewableLamps[`${i}`]['isChecked'] === false) {\r\n return (\r\n
\r\n

{this.formLabels.renewMessageText}

\r\n
\r\n );\r\n }\r\n }\r\n\r\n return (\r\n
\r\n

{this.formLabels.renewSelectedAllMessageText}

\r\n
\r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderLampsHeader(): JSX.Element | null {\r\n return (\r\n
\r\n
\r\n

{this.formLabels.renewDialogSerialNoTitle}

\r\n

{this.formLabels.renewDialogNameTitle}

\r\n

{this.formLabels.renewDialogValidTillTitle}

\r\n
\r\n
\r\n );\r\n }\r\n\r\n private _renderLamps(): JSX.Element | null {\r\n return (\r\n
\r\n {this._renderLampOption()}\r\n
\r\n );\r\n }\r\n\r\n private _renderLampOption(): JSX.Element[] | null {\r\n return this.props.renewableLamps.map((lamp) => {\r\n const serialNumber = lamp['serialNumber'];\r\n const serialId = lamp['serialId'];\r\n const name_1 = lamp['name_1'];\r\n const name_2 = lamp['name_2'];\r\n const validTo = lamp['validTo'];\r\n let isChecked = lamp['isChecked'];\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n })\r\n }\r\n\r\n private _renderCancelButton(): JSX.Element | null {\r\n if (this.props.renewableLamps.length > 0) {\r\n for (let i = 0; i < this.props.renewableLamps.length; i++) {\r\n if (this.props.renewableLamps[`${i}`]['isChecked'] === false) {\r\n return (\r\n {this._cancelButtonText()}\r\n );\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n \r\n return (\r\n {this._cancelButtonText()}\r\n );\r\n }\r\n}\r\n\r\nexport default Popup;","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from \"react\";\r\n\r\nimport { ToastContainer, toast } from \"react-toastify\";\r\n\r\nimport { getUrlSync } from \"@msdyn365-commerce/core\";\r\n\r\nimport {\r\n CartLine,\r\n SalesOrder,\r\n SimpleProduct,\r\n} from \"@msdyn365-commerce/retail-proxy\";\r\nimport { getOrderHistoryAsync } from \"@msdyn365-commerce/retail-proxy/dist/DataActions/CustomersDataActions.g\";\r\nimport { getAttributeValuesAsync } from \"@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g\";\r\n\r\nimport {\r\n getContactDetailsAsync,\r\n getProductEventsByIdAsync,\r\n createOrUpdateBTGPDraftAsync,\r\n getAllBTGPCartLineAsync,\r\n getByCustomerBTGPTransactionAsync,\r\n getAllBTGPDraftAsync,\r\n getRenewableSerialsAsync,\r\n checkAvailableSerialAsync,\r\n} from \"../../actions/DataActionExtension.g\";\r\nimport { FormDetails } from \"../../actions/ecomm-interfaces\";\r\nimport { generateErrorLog } from \"../../actions/helper-functions\";\r\n\r\nimport { isMobile } from \"../../components/breakpoints\";\r\n\r\nimport { v4 as uuidv4 } from \"uuid\";\r\n\r\nimport { Popup } from \"./component/popup\";\r\n\r\nimport resource from \"./resources/resource.json\";\r\n\r\nimport { ProductDetailsAddtoCartButton } from \"./component/ecomm-form-add-to-cart.component\";\r\n\r\nimport AmountDeceasedNameForm from \"./formsComponents/amountDeceasedNameForm.component\";\r\nimport CategoryNamesForm from \"./formsComponents/categoryNamesForm.component\";\r\nimport CategoryNamesAddressForm from \"./formsComponents/categoryNamesAddressForm.component\";\r\nimport CategoryNamesCollectionForm from \"./formsComponents/categoryNamesCollectionForm.component\";\r\nimport CeremonyForm from \"./formsComponents/ceremonyForm.component\";\r\nimport DeceasedCategoryNamesForm from \"./formsComponents/deceasedCategoryNamesForm.component\";\r\nimport DeceasedDedicatedByForm from \"./formsComponents/deceasedDedicatedByForm.component\";\r\nimport DonationForm from \"./formsComponents/donationForm.component\";\r\nimport CoursesForm from \"./formsComponents/coursesForm.component\";\r\nimport EventChineseNameForm from \"./formsComponents/eventsChineseNameForm.component\";\r\nimport EventNextOfKinNameForm from \"./formsComponents/eventsNextOfKinNameForm.component\";\r\nimport EventCategoryNamesForm from \"./formsComponents/eventCategoryNamesForm.component\";\r\nimport EventDeceasedDedicatedByForm from \"./formsComponents/eventDeceasedDedicatedByForm.component\";\r\nimport EventTaxDeductionForm from \"./formsComponents/eventTaxDeductionForm.component\";\r\nimport NameBirthDatetimeForm from \"./formsComponents/nameBirthDatetimeForm.component\";\r\nimport NameBirthdaySchoolForm from \"./formsComponents/nameBirthdaySchoolForm.component\";\r\nimport NamesOnlyForm from \"./formsComponents/namesOnlyForm.component\";\r\nimport NamesRemarksForm from \"./formsComponents/namesRemarksForm.component\";\r\nimport NamesAddressContactnoForm from \"./formsComponents/namesAddressContactnoForm.component\";\r\nimport NoOfYearsCategoryNamesForm from \"./formsComponents/noOfYearsCategoryNamesForm.component\";\r\nimport OfferingForm from \"./formsComponents/offeringForm.component\";\r\nimport ServicesBusinessForm from \"./formsComponents/servicesBusinessForm.component\";\r\nimport ServicesDeceasedForm from \"./formsComponents/servicesDeceasedForm.component\";\r\nimport ServicesEducationForm from \"./formsComponents/servicesEducationForm.component\";\r\nimport ServicesGeneralForm from \"./formsComponents/servicesGeneralForm.component\";\r\nimport ServicesHealthSurgeryForm from \"./formsComponents/servicesHealthSurgeryForm.component\";\r\nimport ServicesInfantSpiritForm from \"./formsComponents/servicesInfantSpiritForm.component\";\r\nimport ServicesMarriageForm from \"./formsComponents/servicesMarriageForm.component\";\r\nimport ThreeCategoryNamesForm from \"./formsComponents/threeCategoryNamesForm.component\";\r\nimport ThreeCategoryNamesConsecrationForm from \"./formsComponents/threeCategoryNamesConsecrationForm.component\";\r\n\r\nimport { Attributes, IEvent } from \"./ecomm-product-details-form.data\";\r\nimport { IEcommProductDetailsFormViewProps } from \"./ecomm-product-details-form\";\r\nimport EventPassportUploadForm from \"./formsComponents/eventsPassportUploadForm.component\";\r\nimport EventPassportUploadInsuranceForm from \"./formsComponents/eventPassportUploadInsuranceForm.component\";\r\nimport NamesDedicationStartDateForm from \"./formsComponents/nameDedicationStartDate.component\";\r\n\r\nconst moment = require(\"moment\");\r\n\r\nexport class EcommProductDetailsFormView extends React.PureComponent<\r\n IEcommProductDetailsFormViewProps\r\n> {\r\n public state: any = {\r\n customerTotalPrice: 0,\r\n customerPrices: [0],\r\n customerEvents: [\"\"],\r\n customerEventIDs: [\"\"],\r\n categories: [\"\"],\r\n customerNames: [\"\"],\r\n customerRemarks: [\"\"],\r\n customerMessages: [\"\"],\r\n customerSerialIDs: [\"\"],\r\n customerSerialNumbers: [\"\"],\r\n customerSerialNames: [\"\"],\r\n dedicatedBy: [\"\"],\r\n collectionOptions: [\"\"],\r\n buildingNames: [\"\"],\r\n unitNumbers: [\"\"],\r\n postalCodes: [\"\"],\r\n phoneNumbers: [\"\"],\r\n chineseNames: [\"\"],\r\n birthDates: [\"\"],\r\n birthTimes: [\"\"],\r\n schoolNames: [\"\"],\r\n blessingOptions: [\"\"],\r\n lightOptions: [\"\"],\r\n validFroms: [\"\"],\r\n validTos: [\"\"],\r\n quantities: [1],\r\n subProductQuantity: [0],\r\n dedicationPeriods: [\"\"],\r\n countries: [\"\"],\r\n companyNames: [\"\"],\r\n deceasedRelationships: [\"\"],\r\n surgeryDates: [\"\"],\r\n deathDates: [\"\"],\r\n deathTimes: [\"\"],\r\n oldNames: [\"\"],\r\n nameChanges: [\"\"],\r\n hasTaxDeductions: [false],\r\n nrics: [\"\"],\r\n startDates: [\"\"],\r\n genders: [\"\"],\r\n formsValidated: false,\r\n eventsSelected: false,\r\n namesEntered: false,\r\n chineseNamesEntered: false,\r\n phoneNumbersEntered: false,\r\n passportNumberEntered: false,\r\n relationshipsEntered: false,\r\n companiesEntered: false,\r\n schoolsEntered: false,\r\n pricesEntered: false,\r\n addressEntered: false,\r\n dateEntered: false,\r\n passportExpiryDateEntered: false,\r\n passportIssueDateEntered: false,\r\n fileUploaded: false,\r\n formItems: [],\r\n drafts: [],\r\n userData: undefined,\r\n renewableLamps: [],\r\n productEvents: [],\r\n showPopup: false,\r\n addRenewLamp: false,\r\n hasMounted: false,\r\n width: 0,\r\n registrationClosed: false,\r\n itemUnavailable: false,\r\n isEventProduct: false,\r\n eventAvailable: false,\r\n nextKinNames: [\"\"],\r\n contactNumbers:[\"\"],\r\n contactNumbersNextKins:[\"\"],\r\n passportNumbers:[\"\"],\r\n passportExpiryDates:[\"\"],\r\n passportIssuedDates:[\"\"],\r\n consents: [0],\r\n isInsuranceIncluded: [false],\r\n isInsuranceIncludedNum: [0]\r\n\r\n };\r\n\r\n private localeCode = this.props.context.request.locale.split(\"-\")[0];\r\n private eventDateLimit = 100;\r\n private eventRecords: IEvent[] = [];\r\n\r\n public async componentDidMount() {\r\n if (!this.state.hasMounted) {\r\n window.addEventListener(\"resize\", this._updateDimensions);\r\n\r\n this._getDrafts();\r\n\r\n // TODO: MOVE TO CONTROLLER\r\n await this._getRenewableLamps();\r\n\r\n const {\r\n config,\r\n data: { cart, product },\r\n context: {\r\n request: { user },\r\n },\r\n } = this.props;\r\n\r\n const formItemsArray = [];\r\n\r\n const parameters = window.location.search;\r\n const cartlineId = new URLSearchParams(parameters).get(\"cartlineId\");\r\n\r\n let eventProductAttr = false;\r\n\r\n // TODO: MOVE TO CONTROLLER\r\n if (product && product.result) {\r\n const resultObj = await this.getProductAttributes(product.result);\r\n\r\n if (resultObj.eventProduct || resultObj.courseProduct ) {\r\n eventProductAttr = resultObj.eventProduct;\r\n\r\n await this._getEventsForProduct(product.result!.RecordId);\r\n }\r\n }\r\n\r\n // If: navigated to defaultpdp page from cart page to edit a cartline item.\r\n // Else: display past transactions made by logged in user.\r\n if (cartlineId && cart.result) {\r\n const cartLines: CartLine[] = cart.result.cart.CartLines!;\r\n\r\n const found = cartLines.find(\r\n (cartline) => cartline.LineId === cartlineId\r\n );\r\n\r\n const cartLineData: any[] = [];\r\n\r\n const getAllCartLineResult = await getAllBTGPCartLineAsync(\r\n { callerContext: this.props.context.actionContext },\r\n (await cart).cart.Id\r\n );\r\n\r\n if (getAllCartLineResult.length > 0) {\r\n getAllCartLineResult.forEach((record) =>\r\n cartLineData.push(JSON.parse(record))\r\n );\r\n }\r\n\r\n const cartLineIndex = cartLineData.findIndex(\r\n (cl) => cl[\"CartLineID\"] === cartlineId\r\n );\r\n\r\n if (found && cartLineIndex >= 0) {\r\n let childCartLines = cartLineData\r\n .filter((cl) => cl[\"ParentCartLineID\"] === cartlineId)\r\n .sort((a, b) =>\r\n a[\"EventName\"] > b[\"EventName\"]\r\n ? 1\r\n : b[\"EventName\"] > a[\"EventName\"]\r\n ? -1\r\n : 0\r\n );\r\n\r\n let eventNames = cartLineData[`${cartLineIndex}`][\"EventName\"];\r\n let eventIds = cartLineData[`${cartLineIndex}`][\"EventID\"];\r\n let quantity = found.Quantity ? found.Quantity : 1;\r\n let subProductQuantity = 0;\r\n\r\n childCartLines.map((child) => {\r\n quantity++;\r\n eventNames += \";\" + child[\"EventName\"];\r\n eventIds += \";\" + child[\"EventID\"];\r\n\r\n if (child[\"ProductID\"] !== String(found.ProductId)) {\r\n let subProductfound = cartLines.find(\r\n (cartline) => cartline.LineId === child[\"CartLineID\"]\r\n );\r\n\r\n if (subProductfound) {\r\n subProductQuantity = subProductfound.Quantity!;\r\n }\r\n }\r\n });\r\n\r\n formItemsArray.push({\r\n comment: found.Comment ? found.Comment : \"\",\r\n quantity: quantity,\r\n names: [\r\n cartLineData[`${cartLineIndex}`][\"Name_1\"],\r\n cartLineData[`${cartLineIndex}`][\"Name_2\"],\r\n cartLineData[`${cartLineIndex}`][\"Name_3\"],\r\n cartLineData[`${cartLineIndex}`][\"Name_4\"],\r\n cartLineData[`${cartLineIndex}`][\"Name_5\"],\r\n cartLineData[`${cartLineIndex}`][\"Name_6\"],\r\n cartLineData[`${cartLineIndex}`][\"Name_7\"],\r\n cartLineData[`${cartLineIndex}`][\"Name_8\"],\r\n cartLineData[`${cartLineIndex}`][\"Name_9\"],\r\n cartLineData[`${cartLineIndex}`][\"Name_10\"],\r\n cartLineData[`${cartLineIndex}`][\"Name_11\"],\r\n cartLineData[`${cartLineIndex}`][\"Name_12\"],\r\n cartLineData[`${cartLineIndex}`][\"Name_13\"],\r\n cartLineData[`${cartLineIndex}`][\"Name_14\"],\r\n cartLineData[`${cartLineIndex}`][\"Name_15\"],\r\n cartLineData[`${cartLineIndex}`][\"Name_16\"],\r\n cartLineData[`${cartLineIndex}`][\"Name_17\"],\r\n cartLineData[`${cartLineIndex}`][\"Name_18\"],\r\n cartLineData[`${cartLineIndex}`][\"Name_19\"],\r\n cartLineData[`${cartLineIndex}`][\"Name_20\"],\r\n ],\r\n category: cartLineData[`${cartLineIndex}`][\"Category\"],\r\n eventID: eventIds,\r\n eventName: eventNames,\r\n remarks: cartLineData[`${cartLineIndex}`][\"Remarks\"],\r\n message: cartLineData[`${cartLineIndex}`][\"Message\"],\r\n dedicatedBy: cartLineData[`${cartLineIndex}`][\"DedicatedBy\"],\r\n hasTaxDeduction:\r\n cartLineData[`${cartLineIndex}`][\"HasTaxDeduction\"],\r\n nric: cartLineData[`${cartLineIndex}`][\"Nric\"],\r\n buildingName: cartLineData[`${cartLineIndex}`][\"BuildingName\"],\r\n unitNumber: cartLineData[`${cartLineIndex}`][\"UnitNumber\"],\r\n postalCode: cartLineData[`${cartLineIndex}`][\"PostalCode\"],\r\n birthDate: cartLineData[`${cartLineIndex}`][\"BirthDate\"],\r\n phoneNumber: cartLineData[`${cartLineIndex}`][\"PhoneNumber\"],\r\n schoolName: cartLineData[`${cartLineIndex}`][\"SchoolName\"],\r\n donationOption: cartLineData[`${cartLineIndex}`][\"DonationOption\"],\r\n blessingOption: cartLineData[`${cartLineIndex}`][\"BlessingOption\"],\r\n birthTime: cartLineData[`${cartLineIndex}`][\"BirthTime\"],\r\n lightOption: cartLineData[`${cartLineIndex}`][\"LightOption\"],\r\n validFrom: cartLineData[`${cartLineIndex}`][\"ValidFrom\"],\r\n validTo: cartLineData[`${cartLineIndex}`][\"ValidTo\"],\r\n dedicationPeriod:\r\n cartLineData[`${cartLineIndex}`][\"DedicationPeriod\"],\r\n startDate: cartLineData[`${cartLineIndex}`][\"StartDate\"],\r\n gender: cartLineData[`${cartLineIndex}`][\"Gender\"],\r\n country: cartLineData[`${cartLineIndex}`][\"Country\"],\r\n companyName: cartLineData[`${cartLineIndex}`][\"CompanyName\"],\r\n deceasedRelationship:\r\n cartLineData[`${cartLineIndex}`][\"DeceasedRelationship\"],\r\n surgeryDate: cartLineData[`${cartLineIndex}`][\"SurgeryDate\"],\r\n deathDate: cartLineData[`${cartLineIndex}`][\"DeathDate\"],\r\n deathTime: cartLineData[`${cartLineIndex}`][\"DeathTime\"],\r\n nameChange: cartLineData[`${cartLineIndex}`][\"NameChange\"],\r\n oldName_1: cartLineData[`${cartLineIndex}`][\"OldName_1\"],\r\n oldName_2: cartLineData[`${cartLineIndex}`][\"OldName_2\"],\r\n birthDate_2: cartLineData[`${cartLineIndex}`][\"BirthDate_2\"],\r\n birthTime_2: cartLineData[`${cartLineIndex}`][\"BirthTime_2\"],\r\n chineseName: cartLineData[`${cartLineIndex}`][\"ChineseName\"],\r\n contactNumber: cartLineData[`${cartLineIndex}`][\"ContactNumber\"],\r\n nameNextKin: cartLineData[`${cartLineIndex}`][\"NameNextKin\"],\r\n contactNumberNextKin: cartLineData[`${cartLineIndex}`][\"ContactNumberNextKin\"],\r\n passportNumber: cartLineData[`${cartLineIndex}`][\"PassportNumber\"],\r\n passportExpiryDate: cartLineData[`${cartLineIndex}`][\"PassportExpiryDate\"],\r\n passportIssuedDate: cartLineData[`${cartLineIndex}`][\"PassportIssuedDate\"],\r\n consent: cartLineData[`${cartLineIndex}`][\"Consent\"],\r\n isInsuranceIncluded: cartLineData[`${cartLineIndex}`][\"IsInsuranceIncluded\"],\r\n isCustomPrice: found.IsPriceKeyedIn ? found.IsPriceKeyedIn : false,\r\n customPriceAmount: found.Price ? found.Price : 0,\r\n cartLineId: found.LineId,\r\n subProductQuantity: subProductQuantity,\r\n isPastTransaction: false,\r\n });\r\n\r\n this.setState({ isEditMode: true });\r\n } else {\r\n this.setState({ isEditMode: false });\r\n }\r\n } else if (parameters === \"\") {\r\n // Retrieve form inputs if user is logged in.\r\n const {\r\n context,\r\n context: {\r\n request: { user },\r\n },\r\n } = this.props;\r\n\r\n if (user.customerAccountNumber) {\r\n let itemInCart = false;\r\n\r\n if (cart.result && product.result) {\r\n const cartLines: CartLine[] = cart.result.cart.CartLines!;\r\n const foundInCart = cartLines.find(\r\n (cartline) => cartline.ProductId === product.result!.RecordId\r\n );\r\n\r\n if (foundInCart) {\r\n itemInCart = true;\r\n }\r\n }\r\n\r\n if (!itemInCart) {\r\n let lastOrderCE: any;\r\n let lastOrderCommerce: any;\r\n let records: string[] = [];\r\n\r\n // Retrieves all extension table records of this product.\r\n if (product.result) {\r\n records = await getByCustomerBTGPTransactionAsync(\r\n { callerContext: context.actionContext },\r\n user.customerAccountNumber,\r\n user.emailAddress!,\r\n product.result.RecordId.toString(),\r\n this.props.config.isUat\r\n );\r\n\r\n if (records.length > 0) {\r\n // Filters for records from CE.\r\n const recordsCE = records.filter((record) => {\r\n const input = JSON.parse(record);\r\n\r\n return input[\"FromCE\"] === true;\r\n });\r\n\r\n // Gets the most recent order from CE of this product.\r\n lastOrderCE =\r\n recordsCE && recordsCE.length > 0\r\n ? JSON.parse(recordsCE[0])\r\n : undefined;\r\n }\r\n }\r\n\r\n const orders = await getOrderHistoryAsync(\r\n { callerContext: context.actionContext },\r\n user.customerAccountNumber\r\n );\r\n\r\n // Finds the most recent order from Commerce that contains this product.\r\n if (orders && orders.length > 0) {\r\n lastOrderCommerce = orders.find((order: SalesOrder) => {\r\n const found = records.find((record) => {\r\n const inputs = JSON.parse(record);\r\n\r\n return inputs[\"SalesOrderID\"] === order.Id &&\r\n inputs[\"FromCE\"] === false\r\n ? order.Id\r\n : \"\";\r\n });\r\n\r\n return found && found !== \"\" ? order : undefined;\r\n });\r\n }\r\n\r\n let mostRecentOrderID = \"\";\r\n\r\n if (lastOrderCE && lastOrderCommerce) {\r\n mostRecentOrderID = moment(\r\n lastOrderCE[\"DateOfTrasaction\"]\r\n ).isBefore(moment(lastOrderCommerce.CreatedDateTime))\r\n ? lastOrderCommerce.Id\r\n : lastOrderCE[\"SalesOrderID\"];\r\n } else if (lastOrderCE === undefined && lastOrderCommerce) {\r\n mostRecentOrderID = lastOrderCommerce.Id;\r\n } else if (lastOrderCE && lastOrderCommerce === undefined) {\r\n mostRecentOrderID = lastOrderCE[\"SalesOrderID\"];\r\n }\r\n\r\n if (mostRecentOrderID !== \"\") {\r\n const batch = records.filter((record) => {\r\n const inputs = JSON.parse(record);\r\n\r\n return inputs[\"SalesOrderID\"] === mostRecentOrderID;\r\n });\r\n\r\n // const items: any[] = [];\r\n\r\n // batch.forEach(item => items.push(JSON.parse(item)));\r\n\r\n // items.sort((a, b) => {\r\n // const x = a.Name_1 as string;\r\n // const y = b.Name_1 as string;\r\n\r\n // return (x > y) ? 1 : ((x < y) ? -1 : 0);\r\n // });\r\n\r\n for (let i = 0; i < batch.length; ++i) {\r\n const item = JSON.parse(batch[`${i}`]);\r\n\r\n // const eventName = this.eventRecords.length > 0 && this.eventRecords[0] !== undefined ? this.eventRecords[0].name : '';\r\n // const eventId = this.eventRecords.length > 0 && this.eventRecords[0] !== undefined ? this.eventRecords[0].id : '';\r\n const eventName = \"\";\r\n const eventId = \"\";\r\n\r\n // const selections = items.filter(record => {\r\n // if (item['EventID'] !== record['EventID'] && item['Name_1'] === record['Name_1']) {\r\n // return record;\r\n // }\r\n // });\r\n\r\n // for (let j = 0; j < selections.length; ++j) {\r\n // eventName += ';' + selections[`${j}`]['EventName'];\r\n // eventId += ';' + selections[`${j}`]['EventID'];\r\n // }\r\n\r\n // i += selections.length;\r\n\r\n formItemsArray.push({\r\n comment: \"\",\r\n quantity: item[\"Quantity\"] ? item[\"Quantity\"] : 1,\r\n names: [\r\n item[\"Name_1\"],\r\n item[\"Name_2\"],\r\n item[\"Name_3\"],\r\n item[\"Name_4\"],\r\n item[\"Name_5\"],\r\n item[\"Name_6\"],\r\n item[\"Name_7\"],\r\n item[\"Name_8\"],\r\n item[\"Name_9\"],\r\n item[\"Name_10\"],\r\n item[\"Name_11\"],\r\n item[\"Name_12\"],\r\n item[\"Name_13\"],\r\n item[\"Name_14\"],\r\n item[\"Name_15\"],\r\n item[\"Name_16\"],\r\n item[\"Name_17\"],\r\n item[\"Name_18\"],\r\n item[\"Name_19\"],\r\n item[\"Name_20\"],\r\n ],\r\n category: item[\"Category\"],\r\n eventID: eventId,\r\n eventName: eventName,\r\n remarks: item[\"Remarks\"],\r\n message: item[\"Message\"],\r\n dedicatedBy: item[\"DedicatedBy\"],\r\n hasTaxDeduction: item[\"HasTaxDeduction\"],\r\n nric: item[\"Nric\"],\r\n buildingName: item[\"BuildingName\"],\r\n unitNumber: item[\"UnitNumber\"],\r\n postalCode: item[\"PostalCode\"],\r\n birthDate: item[\"BirthDate\"],\r\n phoneNumber: item[\"PhoneNumber\"],\r\n schoolName: item[\"SchoolName\"],\r\n donationOption: item[\"DonationOption\"],\r\n blessingOption: item[\"BlessingOption\"],\r\n birthTime: item[\"BirthTime\"],\r\n lightOption: item[\"LightOption\"],\r\n validFrom: item[\"ValidFrom\"],\r\n validTo: item[\"ValidTo\"],\r\n dedicationPeriod: item[\"DedicationPeriod\"],\r\n gender: item[\"Gender\"],\r\n country: item[\"Country\"],\r\n companyName: item[\"CompanyName\"],\r\n deceasedRelationship: item[\"DeceasedRelationship\"],\r\n surgeryDate: item[\"SurgeryDate\"],\r\n deathDate: item[\"DeathDate\"],\r\n deathTime: item[\"DeathTime\"],\r\n nameChange: item[\"NameChange\"],\r\n oldName_1: item[\"OldName_1\"],\r\n oldName_2: item[\"OldName_2\"],\r\n birthDate_2: item[\"BirthDate_2\"],\r\n birthTime_2: item[\"BirthTime_2\"],\r\n chineseName: item[\"ChineseName\"],\r\n contactNumber: item[\"ContactNumber\"],\r\n nameNextKin: item[\"NameNextKin\"],\r\n contactNumberNextKin: item[\"ContactNumberNextKin\"],\r\n passportNumber: item[\"PassportNumber\"],\r\n passportExpiryDate: item[\"PassportExpiryDate\"],\r\n passportIssuedDate: item[\"PassportIssuedDate\"],\r\n consent: item[\"Consent\"],\r\n isInsuranceIncluded: item[\"IsInsuranceIncluded\"],\r\n isCustomPrice: false,\r\n customPriceAmount: 0,\r\n cartLineId: \"\",\r\n isPastTransaction: true,\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n // TODO: MOVE TO CONTROLLER\r\n const data = user.isAuthenticated\r\n ? await getContactDetailsAsync(\r\n { callerContext: this.props.context.actionContext },\r\n user.emailAddress ? user.emailAddress : \"\",\r\n config.isUat\r\n )\r\n : [\"\"];\r\n\r\n // TODO: MOVE TO CONTROLLER\r\n const parseUserData =\r\n data && data[0] && data[0] !== \"\" ? JSON.parse(data[0]) : undefined;\r\n\r\n this.setState({\r\n formItems: formItemsArray,\r\n userData: parseUserData,\r\n hasMounted: true,\r\n width: window.innerWidth,\r\n isEventProduct: eventProductAttr,\r\n });\r\n }\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n if (!this.state.hasMounted) {\r\n return null;\r\n }\r\n\r\n const {\r\n resources,\r\n config,\r\n context,\r\n productsList,\r\n telemetryContent,\r\n productPriceList,\r\n simpleProducts,\r\n productAvailabilities,\r\n data: { cart /*, product */ },\r\n } = this.props;\r\n\r\n let Total: number = 0;\r\n\r\n const addRow = (noOfRows: number): void => {\r\n this.props.addRow(noOfRows);\r\n };\r\n\r\n const replaceRow = (noOfRows: number, idx: number[]): void => {\r\n this.props.replaceRow(noOfRows, idx);\r\n };\r\n\r\n const deleteRow = (idx: number): void => {\r\n this.props.removeRow(idx);\r\n };\r\n\r\n const itemAddedToCart = (): void => {\r\n _navigateToCart();\r\n };\r\n\r\n const _navigateToCart = () => {\r\n const cartAliasUrl =\r\n getUrlSync(\"cart\", this.props.context.actionContext) || \"\";\r\n\r\n if (cartAliasUrl) {\r\n window.location.assign(cartAliasUrl);\r\n }\r\n };\r\n\r\n if (\r\n this.props.rowsData.length &&\r\n this.props.selectedProduct.result &&\r\n this.props.selectedProduct.result.Price\r\n ) {\r\n let quantitiesArray = this.state.quantities;\r\n let subProductQuantityArray = this.state.subProductQuantity;\r\n\r\n for (let i = 0; i < this.props.rowsData.length; i++) {\r\n Total +=\r\n this.props.selectedProduct.result.Price *\r\n (typeof quantitiesArray[`${i}`] !== \"undefined\"\r\n ? quantitiesArray[`${i}`]\r\n : 1) +\r\n (this.props.subProduct\r\n ? this.props.subProduct.Price *\r\n (typeof subProductQuantityArray[`${i}`] !== \"undefined\"\r\n ? subProductQuantityArray[`${i}`]\r\n : 0)\r\n : 0);\r\n }\r\n }\r\n\r\n let enableButton = false;\r\n\r\n switch (this.props.formName) {\r\n case \"amountDeceasedNameForm\":\r\n enableButton = this.state.namesEntered;\r\n break;\r\n\r\n case \"categoryNamesAddressForm\":\r\n enableButton = this.state.namesEntered && this.state.addressEntered;\r\n break;\r\n\r\n case \"categoryNamesCollectionForm\":\r\n enableButton = this.state.namesEntered;\r\n break;\r\n\r\n case \"categoryNamesForm\":\r\n enableButton = this.state.namesEntered;\r\n break;\r\n\r\n case \"ceremonyForm\":\r\n enableButton = this.state.namesEntered && this.state.eventsSelected;\r\n break;\r\n\r\n case \"deceasedCategoryNamesForm\":\r\n enableButton = this.state.namesEntered;\r\n break;\r\n\r\n case \"deceasedDedicatedByForm\":\r\n enableButton = this.state.namesEntered;\r\n break;\r\n\r\n case \"donationForm\":\r\n enableButton = this.state.namesEntered && this.state.pricesEntered;\r\n break;\r\n\r\n case \"coursesForm\":\r\n enableButton = this.state.namesEntered && this.state.eventsSelected;\r\n break; \r\n\r\n case \"eventsChineseNameForm\":\r\n enableButton = this.props.makeChineseNameMandatory ? this.state.namesEntered && this.state.eventsSelected && this.state.phoneNumbersEntered && this.state.chineseNamesEntered:this.state.namesEntered && this.state.eventsSelected && this.state.phoneNumbersEntered;\r\n break; \r\n\r\n case \"eventsPassportUpload\":\r\n enableButton = this.state.namesEntered && this.state.eventsSelected && this.state.phoneNumbersEntered && this.state.passportNumberEntered && this.state.dateEntered && this.state.passportExpiryDateEntered && this.state.passportIssueDateEntered && this.state.fileUploaded;\r\n break; \r\n case \"eventsPassportUploadWithInsurance\":\r\n enableButton = this.state.namesEntered && this.state.eventsSelected && this.state.phoneNumbersEntered && this.state.passportNumberEntered && this.state.dateEntered && this.state.passportExpiryDateEntered && this.state.passportIssueDateEntered && this.state.fileUploaded;\r\n break; \r\n\r\n case \"eventsNextOfKinNameForm\":\r\n enableButton = this.state.namesEntered && this.state.eventsSelected && this.state.phoneNumbersEntered;\r\n break; \r\n\r\n case \"eventCategoryNamesForm\":\r\n enableButton = this.state.namesEntered && this.state.eventsSelected;\r\n break;\r\n\r\n case \"eventDeceasedDedicatedByForm\":\r\n enableButton = this.state.namesEntered && this.state.eventsSelected;\r\n break;\r\n\r\n case \"eventTaxDeductionForm\":\r\n enableButton = this.state.formsValidated;\r\n break;\r\n\r\n case \"nameBirthDatetimeForm\":\r\n enableButton = this.state.namesEntered;\r\n break;\r\n\r\n case \"nameBirthdaySchoolForm\":\r\n enableButton =\r\n this.state.namesEntered &&\r\n this.state.schoolsEntered &&\r\n this.state.dateEntered;\r\n break;\r\n\r\n case \"namesOnlyForm\":\r\n enableButton = this.state.namesEntered;\r\n break;\r\n\r\n case \"namesRemarksForm\":\r\n enableButton = this.state.namesEntered;\r\n break;\r\n\r\n case \"namesAddressContactnoForm\":\r\n enableButton = this.state.namesEntered && this.state.phoneNumbersEntered;\r\n break;\r\n\r\n case \"noOfYearsCategoryNamesForm\":\r\n enableButton = this.state.namesEntered;\r\n break;\r\n\r\n case \"offeringForm\":\r\n enableButton = this.state.namesEntered;\r\n break;\r\n\r\n case \"servicesBusinessForm\":\r\n enableButton =\r\n this.state.namesEntered &&\r\n this.state.companiesEntered &&\r\n this.state.addressEntered;\r\n break;\r\n\r\n case \"servicesDeceasedForm\":\r\n enableButton =\r\n this.state.namesEntered &&\r\n this.state.relationshipsEntered &&\r\n this.state.dateEntered &&\r\n this.state.addressEntered;\r\n break;\r\n\r\n case \"servicesEducationForm\":\r\n enableButton =\r\n this.state.namesEntered &&\r\n this.state.schoolsEntered &&\r\n this.state.dateEntered &&\r\n this.state.addressEntered;\r\n break;\r\n\r\n case \"servicesGeneralForm\":\r\n enableButton =\r\n this.state.namesEntered &&\r\n this.state.dateEntered &&\r\n this.state.addressEntered;\r\n break;\r\n \r\n case \"nameDedicationStartDateForm\":\r\n enableButton =\r\n this.state.namesEntered &&\r\n this.state.dateEntered \r\n break;\r\n\r\n case \"servicesHealthSurgeryForm\":\r\n enableButton =\r\n this.state.namesEntered &&\r\n this.state.dateEntered &&\r\n this.state.addressEntered;\r\n break;\r\n\r\n case \"servicesInfantSpiritForm\":\r\n enableButton =\r\n this.state.namesEntered &&\r\n this.state.dateEntered &&\r\n this.state.addressEntered;\r\n break;\r\n\r\n case \"servicesMarriageForm\":\r\n enableButton =\r\n this.state.namesEntered &&\r\n this.state.dateEntered &&\r\n this.state.addressEntered;\r\n break;\r\n\r\n case \"threeCategoryNamesForm\":\r\n enableButton = this.state.namesEntered;\r\n break;\r\n\r\n case \"threeCategoryNamesConsecrationForm\":\r\n enableButton = this.state.namesEntered;\r\n break;\r\n }\r\n\r\n const showSubDetails =\r\n (!this.props.itemUnavailable && !this.state.registrationClosed && this.props.formName !=\"coursesForm\" && this.props.formName != \"eventsChineseNameForm\" && this.props.formName != \"eventsNextOfKinNameForm\" && this.props.formName !='eventsPassportUpload' && this.props.formName!= \"eventsPassportUploadWithInsurance\")\r\n ? true\r\n : this.state.renewableLamps.length > 0 &&\r\n this.props.itemUnavailable &&\r\n this.state.addRenewLamp\r\n ? true\r\n : (this.props.formName == \"coursesForm\" || this.props.formName == \"eventsChineseNameForm\" || this.props.formName == \"eventsNextOfKinNameForm\" || this.props.formName == \"eventsPassportUpload\" || this.props.formName == \"eventsPassportUploadWithInsurance\") && this.props.eventAvailable? true: false;\r\n\r\n const showNoOfYearsCategoryNamesForm =\r\n this.state.renewableLamps.length > 0 &&\r\n this.props.itemUnavailable &&\r\n this.state.addRenewLamp\r\n ? true\r\n : !this.props.itemUnavailable && !this.state.registrationClosed\r\n ? true\r\n : false;\r\n\r\n const showItemUnavailableNotice = (this.props.itemUnavailable &&\r\n !this.state.addRenewLamp &&\r\n !this.state.registrationClosed) \r\n ? true\r\n : this.state.addRenewLamp && this.state.registrationClosed\r\n ? true\r\n : false;\r\n\r\n const showCartAmount = !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && this.props.formName !=\"coursesForm\" && this.props.formName !=\"eventsChineseNameForm\" && this.props.formName !=\"eventsNextOfKinNameForm\" && this.props.formName != \"eventsPassportUpload\" && this.props.formName !=\"eventsPassportUploadWithInsurance\" ? true: (this.props.itemUnavailable &&\r\n this.state.renewableLamps.length > 0 &&\r\n !this.state.registrationClosed &&\r\n this.state.addRenewLamp)? true: (this.props.formName ==\"coursesForm\" || this.props.formName==\"eventsChineseNameForm\" || this.props.formName==\"eventsNextOfKinNameForm\" || this.props.formName == \"eventsPassportUpload\" || this.props.formName == \"eventsPassportUploadWithInsurance\") && this.props.eventAvailable?true: false;\r\n\r\n return (\r\n
\r\n
\r\n {!(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed &&\r\n this._renderTop()}\r\n\r\n {(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n this.state.renewableLamps.length > 0 &&\r\n this._renderRenewableLamp()}\r\n\r\n {showItemUnavailableNotice && this._renderItemUnavailableNotice()}\r\n\r\n\r\n {this.state.registrationClosed &&\r\n this._renderRegistrationClosedNotice()}\r\n\r\n {showSubDetails && this._renderSub()}\r\n
\r\n\r\n {this.props.formName === \"amountDeceasedNameForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"categoryNamesAddressForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"categoryNamesCollectionForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"categoryNamesForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"ceremonyForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"deceasedCategoryNamesForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"deceasedDedicatedByForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"donationForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"coursesForm\" &&\r\n this.props.eventAvailable &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && this.state.userData &&(\r\n \r\n )}\r\n {this.props.formName === \"coursesForm\" && !this.state.userData && this.props.eventAvailable &&\r\n (\r\n this._renderCoursesItemUnavailableNotice()\r\n )}\r\n {this.props.formName === \"coursesForm\" && \r\n !this.props.eventAvailable && \r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed &&\r\n (\r\n this._renderItemUnavailableNotice()\r\n )}\r\n\r\n {this.props.formName === \"eventsChineseNameForm\" &&\r\n this.props.eventAvailable &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && this.state.userData &&(\r\n \r\n )}\r\n {this.props.formName === \"eventsChineseNameForm\" && !this.state.userData && this.props.eventAvailable &&\r\n (\r\n this._renderCoursesItemUnavailableNotice()\r\n )}\r\n {this.props.formName === \"eventsChineseNameForm\" && \r\n !this.props.eventAvailable && \r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed &&\r\n (\r\n this._renderItemUnavailableNotice()\r\n )}\r\n\r\n {this.props.formName === \"eventsNextOfKinNameForm\" &&\r\n this.props.eventAvailable &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && this.state.userData &&(\r\n \r\n )}\r\n\r\n {this.props.formName === \"eventsNextOfKinNameForm\" && !this.state.userData && this.props.eventAvailable &&\r\n (\r\n this._renderCoursesItemUnavailableNotice()\r\n )}\r\n {this.props.formName === \"eventsNextOfKinNameForm\" && \r\n !this.props.eventAvailable && \r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed &&\r\n (\r\n this._renderItemUnavailableNotice()\r\n )}\r\n\r\n {this.props.formName === \"eventsPassportUpload\" &&\r\n this.props.eventAvailable &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && this.state.userData &&(\r\n \r\n )}\r\n {this.props.formName === \"eventsPassportUpload\" && !this.state.userData && this.props.eventAvailable &&\r\n (\r\n this._renderCoursesItemUnavailableNotice()\r\n )}\r\n {this.props.formName === \"eventsPassportUpload\" && \r\n !this.props.eventAvailable && \r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed &&\r\n (\r\n this._renderItemUnavailableNotice()\r\n )}\r\n\r\n {this.props.formName === \"eventsPassportUploadWithInsurance\" &&\r\n this.props.eventAvailable &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && this.state.userData &&(\r\n \r\n )}\r\n {this.props.formName === \"eventsPassportUploadWithInsurance\" && !this.state.userData && this.props.eventAvailable &&\r\n (\r\n this._renderCoursesItemUnavailableNotice()\r\n )}\r\n {this.props.formName === \"eventsPassportUploadWithInsurance\" && \r\n !this.props.eventAvailable && \r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed &&\r\n (\r\n this._renderItemUnavailableNotice()\r\n )}\r\n\r\n {this.props.formName === \"eventCategoryNamesForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"eventDeceasedDedicatedByForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"eventTaxDeductionForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"nameBirthDatetimeForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"nameBirthdaySchoolForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"namesOnlyForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n\r\n {this.props.formName === \"namesRemarksForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n\r\n {this.props.formName === \"namesAddressContactnoForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n\r\n {/* SERIAL NAME */}\r\n {this.props.formName === \"noOfYearsCategoryNamesForm\" &&\r\n showNoOfYearsCategoryNamesForm && (\r\n \r\n )}\r\n {this.props.formName === \"offeringForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"servicesBusinessForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"servicesDeceasedForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"servicesEducationForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"servicesGeneralForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"nameDedicationStartDateForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"servicesHealthSurgeryForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"servicesInfantSpiritForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"servicesMarriageForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"threeCategoryNamesForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"threeCategoryNamesConsecrationForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {showCartAmount && (\r\n
\r\n
\r\n

\r\n {resource.totalTitle[this.localeCode]} : $\r\n {Total !== 0 && !this.state.isInsuranceIncluded.includes(true) ? Total : this.state.customerTotalPrice}\r\n

\r\n {productsList && productsList.length > 0 && (\r\n \r\n )}\r\n
\r\n
\r\n )}\r\n\r\n \r\n
\r\n );\r\n }\r\n\r\n public componentWillUnmount() {\r\n window.removeEventListener(\"resize\", this._updateDimensions);\r\n }\r\n\r\n private _renderTop(): JSX.Element | null {\r\n const {\r\n config,\r\n context: {\r\n request: { user },\r\n },\r\n formName,\r\n } = this.props;\r\n\r\n const saveDraft = this.state.namesEntered\r\n ? \"save-draft\"\r\n : \"save-draft disabled\";\r\n const retrieveDraft =\r\n this.state.drafts.length !== 0\r\n ? \"retrieve-draft\"\r\n : \"retrieve-draft disabled\";\r\n const renewLamp =\r\n this.state.renewableLamps.length !== 0 && this.props.isEditMode != true\r\n ? \"renew-lamp\"\r\n : \"renew-lamp disabled\";\r\n\r\n const showPrompt =\r\n formName === \"ceremonyForm\" ||\r\n formName === \"eventCategoryNamesForm\" ||\r\n formName === \"eventDeceasedDedicatedByForm\"\r\n ? true\r\n : false;\r\n\r\n return (\r\n
\r\n \r\n {resource.headerText[this.localeCode]}\r\n

\r\n
\r\n {user.isAuthenticated ? (\r\n
\r\n \r\n {resource.saveDraft[this.localeCode]}\r\n \r\n |\r\n \r\n {resource.retrieveDraft[this.localeCode]}\r\n \r\n {this.props.formName === \"noOfYearsCategoryNamesForm\" && (\r\n \r\n {\r\n resource.noOfYearsCategoryNamesForm[this.localeCode]\r\n .renewLampTitle\r\n }\r\n \r\n )}\r\n {showPrompt && (\r\n
\r\n {resource.saveDraftEventDatePrompt[this.localeCode]}\r\n
\r\n )}\r\n
\r\n ) : (\r\n

\r\n {resource.accountCheckText[this.localeCode]}{\" \"}\r\n \r\n {resource.signInTitle[this.localeCode]}\r\n \r\n

\r\n )}\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n private _renderRenewableLamp(): JSX.Element | null {\r\n const {\r\n config,\r\n context: {\r\n request: { user },\r\n },\r\n formName,\r\n } = this.props;\r\n\r\n const renewLamp =\r\n this.state.renewableLamps.length !== 0 && this.props.isEditMode != true\r\n ? \"renew-lamp\"\r\n : \"renew-lamp disabled\";\r\n\r\n const showPrompt =\r\n formName === \"ceremonyForm\" ||\r\n formName === \"eventCategoryNamesForm\" ||\r\n formName === \"eventDeceasedDedicatedByForm\"\r\n ? true\r\n : false;\r\n\r\n return (\r\n
\r\n \r\n {resource.headerText[this.localeCode]}\r\n

\r\n
\r\n {user.isAuthenticated ? (\r\n
\r\n {this.props.formName === \"noOfYearsCategoryNamesForm\" && (\r\n \r\n {\r\n resource.noOfYearsCategoryNamesForm[this.localeCode]\r\n .renewLampTitle\r\n }\r\n \r\n )}\r\n {showPrompt && (\r\n
\r\n {resource.saveDraftEventDatePrompt[this.localeCode]}\r\n
\r\n )}\r\n
\r\n ) : (\r\n

\r\n {resource.accountCheckText[this.localeCode]}{\" \"}\r\n \r\n {resource.signInTitle[this.localeCode]}\r\n \r\n

\r\n )}\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n private _renderSub(): JSX.Element | null {\r\n return (\r\n
\r\n

\r\n {resource.detailsTitle[this.localeCode]}\r\n

\r\n {isMobile(this.state.width) ? null : (\r\n

\r\n {resource.subTotalTitle[this.localeCode]}\r\n

\r\n )}\r\n
\r\n
\r\n );\r\n }\r\n\r\n private _renderItemUnavailableNotice(): JSX.Element | null {\r\n return (\r\n
\r\n

\r\n {\r\n resource.itemUnavailableNotice[this.localeCode][\r\n this.props.config.organisation!\r\n ].itemUnavailableHeader\r\n }\r\n

\r\n

\r\n {\r\n resource.itemUnavailableNotice[this.localeCode][\r\n this.props.config.organisation!\r\n ].messageLine1\r\n }\r\n

\r\n
\r\n

\r\n {\r\n resource.itemUnavailableNotice[this.localeCode][\r\n this.props.config.organisation!\r\n ].messageLine2\r\n }\r\n

\r\n

\r\n {\r\n resource.itemUnavailableNotice[this.localeCode][\r\n this.props.config.organisation!\r\n ].messageLine2Point1\r\n }\r\n

\r\n

\r\n {\r\n resource.itemUnavailableNotice[this.localeCode][\r\n this.props.config.organisation!\r\n ].messageLine2Point2\r\n }\r\n

\r\n

\r\n {\r\n resource.itemUnavailableNotice[this.localeCode][\r\n this.props.config.organisation!\r\n ].messageLine2Point3\r\n }\r\n

\r\n
\r\n );\r\n }\r\n\r\n private _renderCoursesItemUnavailableNotice(): JSX.Element | null {\r\n return (\r\n
\r\n

\r\n {\r\n resource.coursesUnavailableNotice[this.localeCode][\r\n this.props.config.organisation!\r\n ].itemUnavailableHeader\r\n }\r\n

\r\n

\r\n {\r\n resource.coursesUnavailableNotice[this.localeCode][\r\n this.props.config.organisation!\r\n ].messageLine1\r\n }\r\n

\r\n
\r\n

\r\n {\r\n resource.coursesUnavailableNotice[this.localeCode][\r\n this.props.config.organisation!\r\n ].messageLine2\r\n }\r\n

\r\n

\r\n {\r\n resource.coursesUnavailableNotice[this.localeCode][\r\n this.props.config.organisation!\r\n ].messageLine2Point1\r\n }\r\n

\r\n

\r\n {\r\n resource.coursesUnavailableNotice[this.localeCode][\r\n this.props.config.organisation!\r\n ].messageLine2Point2\r\n }\r\n

\r\n

\r\n {\r\n resource.coursesUnavailableNotice[this.localeCode][\r\n this.props.config.organisation!\r\n ].messageLine2Point3\r\n }\r\n

\r\n
\r\n );\r\n }\r\n\r\n private _renderRegistrationClosedNotice(): JSX.Element | null {\r\n return (\r\n
\r\n

\r\n {\r\n resource.registrationClosedNotice[this.localeCode][\r\n this.props.config.organisation!\r\n ].registrationClosedHeader\r\n }\r\n

\r\n

\r\n {\r\n resource.registrationClosedNotice[this.localeCode][\r\n this.props.config.organisation!\r\n ].messageLine1\r\n }\r\n

\r\n
\r\n

\r\n {\r\n resource.registrationClosedNotice[this.localeCode][\r\n this.props.config.organisation!\r\n ].messageLine2\r\n }\r\n

\r\n

\r\n {\r\n resource.registrationClosedNotice[this.localeCode][\r\n this.props.config.organisation!\r\n ].messageLine2Point1\r\n }\r\n

\r\n

\r\n {\r\n resource.registrationClosedNotice[this.localeCode][\r\n this.props.config.organisation!\r\n ].messageLine2Point2\r\n }\r\n

\r\n

\r\n {\r\n resource.registrationClosedNotice[this.localeCode][\r\n this.props.config.organisation!\r\n ].messageLine2Point3\r\n }\r\n

\r\n
\r\n );\r\n }\r\n\r\n private _handleOnClickPrice = (value: number[]) => {\r\n this.setState({\r\n customerPrices: value,\r\n customerTotalPrice: value.reduce((a, b) => this.fpFix(a + b), 0),\r\n });\r\n };\r\n\r\n private _handleEventInput = (value: string[]) => {\r\n this.setState({ customerEvents: value });\r\n };\r\n\r\n private _handleEventIDInput = (value: string[]) => {\r\n this.setState({ customerEventIDs: value });\r\n };\r\n\r\n private _handleCategoryInput = (value: string[]) => {\r\n this.setState({ categories: value });\r\n };\r\n\r\n private _handleDedicationPeriodInput = (value: string[]) => {\r\n this.setState({ dedicationPeriods: value });\r\n };\r\n\r\n private _handleStartDateInput = (value: string[]) => {\r\n this.setState({ startDates: value });\r\n };\r\n\r\n private _handleGenderInput = (value: string[]) => {\r\n this.setState({ genders: value });\r\n };\r\n\r\n private _handleNameInput = (value: string[]) => {\r\n this.setState({ customerNames: value });\r\n };\r\n\r\n private _handleDedicatedByInput = (value: string[]) => {\r\n this.setState({ dedicatedBy: value });\r\n };\r\n\r\n private _handleSubProductQuantityInput = (value: number[]) => {\r\n this.setState({ subProductQuantity: value });\r\n };\r\n\r\n private _handleMessageInput = (value: string[]) => {\r\n this.setState({ customerMessages: value });\r\n };\r\n\r\n private _handleRemarkInput = (value: string[]) => {\r\n this.setState({ customerRemarks: value });\r\n };\r\n\r\n private _handleCollectionOptionInput = (value: string[]) => {\r\n this.setState({ collectionOptions: value });\r\n };\r\n\r\n private _handleTaxDeductionInput = (value: boolean[]) => {\r\n this.setState({ hasTaxDeductions: value });\r\n };\r\n\r\n private _handleNRICInput = (value: string[]) => {\r\n this.setState({ nrics: value });\r\n };\r\n\r\n private _handleBuildingNameInput = (value: string[]) => {\r\n this.setState({ buildingNames: value });\r\n };\r\n\r\n private _handleUnitNumberInput = (value: string[]) => {\r\n this.setState({ unitNumbers: value });\r\n };\r\n\r\n private _handlePostalCodeInput = (value: string[]) => {\r\n this.setState({ postalCodes: value });\r\n };\r\n\r\n private _handlePhoneNumberInput = (value: string[]) => {\r\n this.setState({ phoneNumbers: value });\r\n };\r\n\r\n private _handleChineseNameInput = (value: string[]) => {\r\n this.setState({ chineseNames: value });\r\n };\r\n\r\n private _handleNextOfKinNameInput = (value: string[]) => {\r\n this.setState({ nextKinNames: value });\r\n };\r\n\r\n private _handlePassportNumberInput = (value: string[]) => {\r\n this.setState({ passportNumbers: value });\r\n };\r\n\r\n private _handlePassportExpiryDateInput = (value: string[]) => {\r\n this.setState({ passportExpiryDates: value });\r\n };\r\n\r\n private _handlePassportIssuedDateInput = (value: string[]) => {\r\n this.setState({ passportIssuedDates: value });\r\n };\r\n\r\n private _handleConsentsInput = (value: string[]) => {\r\n this.setState({ consents: value });\r\n };\r\n\r\n private _handleIsInsuranceIncludedInput = (value: boolean[]) => {\r\n this.setState({ isInsuranceIncluded: value });\r\n };\r\n\r\n private _handleIsInsuranceIncludedNumInput = (value: number[]) => {\r\n this.setState({ isInsuranceIncludedNum: value });\r\n };\r\n\r\n private _handleNextOfKinPhoneNumberInput = (value: string[]) => {\r\n this.setState({ contactNumbersNextKins: value });\r\n };\r\n\r\n private _handleSurgeryDateInput = (value: string[]) => {\r\n this.setState({ surgeryDates: value });\r\n };\r\n\r\n private _handleBirthDateInput = (value: string[]) => {\r\n this.setState({ birthDates: value });\r\n };\r\n\r\n private _handleBirthTimeInput = (value: string[]) => {\r\n this.setState({ birthTimes: value });\r\n };\r\n\r\n private _handleSchoolNameInput = (value: string[]) => {\r\n this.setState({ schoolNames: value });\r\n };\r\n\r\n private _handleBlessingOptionInput = (value: string[]) => {\r\n this.setState({ blessingOptions: value });\r\n };\r\n\r\n private _handleLightOptionInput = (value: string[]) => {\r\n this.setState({ lightOptions: value });\r\n };\r\n\r\n private _handleQuantitiesInput = (value: number[]) => {\r\n this.setState({ quantities: value });\r\n };\r\n\r\n private _handleValidFromInput = (value: string[]) => {\r\n this.setState({ validFroms: value });\r\n };\r\n\r\n private _handleValidToInput = (value: string[]) => {\r\n this.setState({ validTos: value });\r\n };\r\n\r\n private _handleCountryInput = (value: string[]) => {\r\n this.setState({ countries: value });\r\n };\r\n\r\n private _handleCompanyNameInput = (value: string[]) => {\r\n this.setState({ companyNames: value });\r\n };\r\n\r\n private _handleDeceasedRelationshipInput = (value: string[]) => {\r\n this.setState({ deceasedRelationships: value });\r\n };\r\n\r\n private _handleDeathDateInput = (value: string[]) => {\r\n this.setState({ deathDates: value });\r\n };\r\n\r\n private _handleDeathTimeInput = (value: string[]) => {\r\n this.setState({ deathTimes: value });\r\n };\r\n\r\n private _handleOldNameInput = (value: string[]) => {\r\n this.setState({ oldNames: value });\r\n };\r\n\r\n private _handleNameChangeInput = (value: string[]) => {\r\n this.setState({ nameChanges: value });\r\n };\r\n\r\n private _handleSerialIdInput = (value: string[]) => {\r\n this.setState({ customerSerialIDs: value });\r\n };\r\n\r\n private _handleSerialNumberInput = (value: string[]) => {\r\n this.setState({ customerSerialNumbers: value });\r\n };\r\n\r\n private _handleSerialNamesInput = (value: string[]) => {\r\n this.setState({ customerSerialNames: value });\r\n };\r\n\r\n private _handleFormsValidation = (value: boolean) => {\r\n this.setState({ formsValidated: value });\r\n };\r\n\r\n private _handleEventsSelected = (value: boolean) => {\r\n this.setState({ eventsSelected: value });\r\n };\r\n\r\n private _handleNamesEntered = (value: boolean) => {\r\n this.setState({ namesEntered: value });\r\n };\r\n \r\n private _handleChineseNamesEntered = (value: boolean) => {\r\n this.setState({ chineseNamesEntered: value });\r\n };\r\n\r\n private _handlePhoneNumbersEntered = (value: boolean) => {\r\n this.setState({ phoneNumbersEntered: value });\r\n };\r\n\r\n private _handlePassportNumberEntered = (value: boolean) => {\r\n this.setState({ passportNumberEntered: value });\r\n };\r\n\r\n private _handleRelationshipsEntered = (value: boolean) => {\r\n this.setState({ relationshipsEntered: value });\r\n };\r\n\r\n private _handleCompaniesEntered = (value: boolean) => {\r\n this.setState({ companiesEntered: value });\r\n };\r\n\r\n private _handleSchoolsEntered = (value: boolean) => {\r\n this.setState({ schoolsEntered: value });\r\n };\r\n\r\n private _handlePricesEntered = (value: boolean) => {\r\n this.setState({ pricesEntered: value });\r\n };\r\n\r\n private _handleAddressEntered = (value: boolean) => {\r\n this.setState({ addressEntered: value });\r\n };\r\n\r\n private _handleDateEntered = (value: boolean) => {\r\n this.setState({ dateEntered: value });\r\n };\r\n\r\n private _handlePassportExpiryDateEntered = (value: boolean) => {\r\n this.setState({ passportExpiryDateEntered: value });\r\n };\r\n\r\n private _handlePassportIssueDateEntered = (value: boolean) => {\r\n this.setState({ passportIssueDateEntered: value });\r\n };\r\n\r\n private _handleFileUploaded = (value: boolean) => {\r\n this.setState({ fileUploaded: value });\r\n };\r\n\r\n private _handleRenewableLampChecked = (value: any[]) => {\r\n this.setState({ renewableLamps: value });\r\n };\r\n\r\n private _handleRenewableLampRemove = (value: string) => {\r\n let lamps: any[] = this.state.renewableLamps.slice();\r\n\r\n let removeLampIndex = lamps.findIndex((lamp) => lamp[\"serialId\"] === value);\r\n\r\n if (removeLampIndex >= 0) {\r\n lamps[`${removeLampIndex}`][\"isChecked\"] = false;\r\n lamps[`${removeLampIndex}`][\"isAdded\"] = false;\r\n\r\n this.setState({ renewableLamps: lamps });\r\n }\r\n };\r\n\r\n private _updateDimensions = () => {\r\n this.setState({ width: window.innerWidth });\r\n };\r\n\r\n private fpFix(value: number) {\r\n return Math.round(value * 100) / 100;\r\n }\r\n\r\n private _saveDraft = () => {\r\n if (this.props.eventProduct) {\r\n this._checkRegistrationPeriod();\r\n }\r\n\r\n this._checkAvailableSerial();\r\n\r\n if (this.state.namesEntered && !this.state[\"registrationClosed\"] && !this.state[\"itemUnavailable\"]) {\r\n const {\r\n context,\r\n data: { accountInformation, product },\r\n rowsData,\r\n } = this.props;\r\n\r\n const customer = accountInformation?.result;\r\n const nullDate = new Date(1900, 1, 1, 0, 0, 0).toISOString();\r\n\r\n if (this._checkUnderEventDatesLimit()) {\r\n for (let i = 0; i < rowsData.length; ++i) {\r\n const eventNames = this.state.customerEvents[`${i}`]\r\n ? this.state.customerEvents[`${i}`]\r\n : \"\";\r\n const eventIDs = this.state.customerEventIDs[`${i}`]\r\n ? this.state.customerEventIDs[`${i}`]\r\n : \"\";\r\n\r\n const eventNamesArray = eventNames.split(\";\");\r\n const eventIDsArray = eventIDs.split(\";\");\r\n\r\n const serialId = this.state.customerSerialIDs[`${i}`]\r\n ? this.state.customerSerialIDs[`${i}`]\r\n : \"\";\r\n const serialNumber = this.state.customerSerialNumbers[`${i}`]\r\n ? this.state.customerSerialNumbers[`${i}`]\r\n : \"\";\r\n const serialName = this.state.customerSerialNames[`${i}`]\r\n ? this.state.customerSerialNames[`${i}`]\r\n : \"\";\r\n\r\n const names = this.state.customerNames[`${i}`].split(\";\");\r\n\r\n const remarks = this.state.customerRemarks[`${i}`]\r\n ? this.state.customerRemarks[`${i}`]\r\n : \"\";\r\n const messages = this.state.customerMessages[`${i}`]\r\n ? this.state.customerMessages[`${i}`]\r\n : \"\";\r\n\r\n const category = this.state.categories[`${i}`]\r\n ? this.state.categories[`${i}`]\r\n : \"\";\r\n\r\n const dedicatedBy = this.state.dedicatedBy[`${i}`]\r\n ? this.state.dedicatedBy[`${i}`]\r\n : \"\";\r\n\r\n const hasTaxDeduction = this.state.hasTaxDeductions[`${i}`]\r\n ? this.state.hasTaxDeductions[`${i}`]\r\n : false;\r\n const nric = this.state.nrics[`${i}`] ? this.state.nrics[`${i}`] : \"\";\r\n\r\n const buildingName = this.state.buildingNames[`${i}`]\r\n ? this.state.buildingNames[`${i}`]\r\n : \"\";\r\n const unitNumber = this.state.unitNumbers[`${i}`]\r\n ? this.state.unitNumbers[`${i}`]\r\n : \"\";\r\n const postalCode = this.state.postalCodes[`${i}`]\r\n ? this.state.postalCodes[`${i}`]\r\n : \"\";\r\n const phoneNumber = this.state.phoneNumbers[`${i}`]\r\n ? this.state.phoneNumbers[`${i}`]\r\n : \"\";\r\n const chineseName = this.state.chineseNames[`${i}`]\r\n ? this.state.chineseNames[`${i}`]\r\n :\"\";\r\n const nameNextKin = this.state.nextKinNames[`${i}`]\r\n ? this.state.nextKinNames[`${i}`]\r\n :\"\";\r\n const contactNumber = this.state.contactNumbers[`${i}`]\r\n ? this.state.contactNumbers[`${i}`]\r\n :\"\";\r\n const contactNumberNextKin = this.state.contactNumbersNextKins[`${i}`]\r\n ? this.state.contactNumbersNextKins[`${i}`]\r\n :\"\";\r\n const passportNumber = this.state.passportNumbers[`${i}`]\r\n ? this.state.passportNumbers[`${i}`]\r\n :\"\";\r\n const passportExpiryDate = this.state.passportExpiryDates[`${i}`] &&\r\n this.state.passportExpiryDates[`${i}`] !== \"\"\r\n ? this.state.passportExpiryDates[`${i}`]\r\n :nullDate;\r\n const passportIssuedDate = this.state.passportIssuedDates[`${i}`] &&\r\n this.state.passportIssuedDates[`${i}`] !== \"\"\r\n ? this.state.passportIssuedDates[`${i}`]\r\n :nullDate;\r\n const consent = this.state.consents[`${i}`]\r\n ? this.state.consents[`${i}`]\r\n :0;\r\n const isInsuranceIncluded = this.state.isInsuranceIncludedNum[`${i}`]\r\n ? this.state.isInsuranceIncludedNum[`${i}`]\r\n :0;\r\n const country = this.state.countries[`${i}`]\r\n ? this.state.countries[`${i}`]\r\n : \"\";\r\n\r\n const birthDates = this.state.birthDates[`${i}`]\r\n ? this.state.birthDates[`${i}`].split(\";\")\r\n : [];\r\n const birthTimes = this.state.birthTimes[`${i}`]\r\n ? this.state.birthTimes[`${i}`].split(\";\")\r\n : [];\r\n\r\n const schoolName = this.state.schoolNames[`${i}`]\r\n ? this.state.schoolNames[`${i}`]\r\n : \"\";\r\n\r\n const collectionOption = this.state.collectionOptions[`${i}`]\r\n ? this.state.collectionOptions[`${i}`]\r\n : \"\";\r\n const blessingOption = this.state.blessingOptions[`${i}`]\r\n ? this.state.blessingOptions[`${i}`]\r\n : \"\";\r\n const lightOption = this.state.lightOptions[`${i}`]\r\n ? this.state.lightOptions[`${i}`]\r\n : \"\";\r\n\r\n const validFrom =\r\n this.state.validFroms[`${i}`] &&\r\n this.state.validFroms[`${i}`] !== \"\"\r\n ? this.state.validFroms[`${i}`]\r\n : nullDate;\r\n const validTo =\r\n this.state.validTos[`${i}`] && this.state.validTos[`${i}`] !== \"\"\r\n ? this.state.validTos[`${i}`]\r\n : nullDate;\r\n\r\n const surgeryDate =\r\n this.state.surgeryDates[`${i}`] &&\r\n this.state.surgeryDates[`${i}`] !== \"\"\r\n ? this.state.surgeryDates[`${i}`]\r\n : nullDate;\r\n\r\n const dedicationPeriod = this.state.dedicationPeriods[`${i}`]\r\n ? this.state.dedicationPeriods[`${i}`]\r\n : \"\";\r\n const startDate = this.state.startDates[`${i}`]\r\n ? this.state.startDates[`${i}`]\r\n : nullDate;\r\n\r\n const companyName = this.state.companyNames[`${i}`]\r\n ? this.state.companyNames[`${i}`]\r\n : \"\";\r\n\r\n const deceasedRelationship = this.state.deceasedRelationships[`${i}`]\r\n ? this.state.deceasedRelationships[`${i}`]\r\n : \"\";\r\n const deathDate =\r\n this.state.deathDates[`${i}`] &&\r\n this.state.deathDates[`${i}`] !== \"\"\r\n ? this.state.deathDates[`${i}`]\r\n : nullDate;\r\n const deathTime = this.state.deathTimes[`${i}`]\r\n ? this.state.deathTimes[`${i}`]\r\n : \"\";\r\n\r\n const quantity = 1;\r\n\r\n const nameChange = this.state.nameChanges[`${i}`]\r\n ? this.state.nameChanges[`${i}`]\r\n : \"\";\r\n const oldNames = this.state.oldNames[`${i}`]\r\n ? this.state.oldNames[`${i}`].split(\";\")\r\n : [];\r\n\r\n const gender = this.state.genders[`${i}`]\r\n ? this.state.genders[`${i}`]\r\n : \"\";\r\n\r\n for (let j = 0; j < eventNamesArray.length; ++j) {\r\n createOrUpdateBTGPDraftAsync(\r\n { callerContext: context.actionContext },\r\n uuidv4(),\r\n customer?.AccountNumber!,\r\n product.result?.RecordId.toString()!,\r\n eventIDsArray[`${j}`],\r\n eventNamesArray[`${j}`],\r\n serialId,\r\n serialNumber,\r\n serialName,\r\n names[0] ? names[0] : \"\",\r\n names[1] ? names[1] : \"\",\r\n names[2] ? names[2] : \"\",\r\n names[3] ? names[3] : \"\",\r\n names[4] ? names[4] : \"\",\r\n names[5] ? names[5] : \"\",\r\n names[6] ? names[6] : \"\",\r\n names[7] ? names[7] : \"\",\r\n names[8] ? names[8] : \"\",\r\n names[9] ? names[9] : \"\",\r\n names[10] ? names[10] : \"\",\r\n names[11] ? names[11] : \"\",\r\n names[12] ? names[12] : \"\",\r\n names[13] ? names[13] : \"\",\r\n names[14] ? names[14] : \"\",\r\n names[15] ? names[15] : \"\",\r\n names[16] ? names[16] : \"\",\r\n names[17] ? names[17] : \"\",\r\n names[18] ? names[18] : \"\",\r\n names[19] ? names[19] : \"\",\r\n remarks,\r\n messages,\r\n category,\r\n dedicatedBy,\r\n hasTaxDeduction,\r\n nric,\r\n buildingName,\r\n unitNumber,\r\n postalCode,\r\n birthDates[0] ? birthDates[0] : nullDate,\r\n phoneNumber,\r\n schoolName,\r\n collectionOption,\r\n blessingOption,\r\n \"1\",\r\n new Date().toISOString(),\r\n birthTimes[0] ? birthTimes[0] : \"\",\r\n lightOption,\r\n validFrom,\r\n validTo,\r\n rowsData[`${i}`].id,\r\n dedicationPeriod,\r\n country,\r\n companyName,\r\n deceasedRelationship,\r\n surgeryDate,\r\n deathDate,\r\n deathTime,\r\n quantity,\r\n nameChange,\r\n oldNames[0] ? oldNames[0] : \"\",\r\n oldNames[1] ? oldNames[1] : \"\",\r\n birthDates[1] ? birthDates[1] : \"\",\r\n birthTimes[1] ? birthTimes[1] : \"\",\r\n startDate,\r\n gender,\r\n chineseName,\r\n contactNumber,\r\n nameNextKin,\r\n contactNumberNextKin,\r\n passportNumber,\r\n passportExpiryDate,\r\n passportIssuedDate,\r\n consent,\r\n isInsuranceIncluded\r\n )\r\n .then((result) => {\r\n if (result) {\r\n if (j === eventNamesArray.length - 1) {\r\n this._getDrafts();\r\n\r\n toast.success(\r\n resource.saveDraftSuccessMsg[this.localeCode]\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n const extra = \"Customer: \" + customer?.AccountNumber!;\r\n\r\n const item: FormDetails = {\r\n CartLineID: \"\",\r\n CartID: \"\",\r\n CartLineComment: \"\",\r\n ParentCartLineID: rowsData[`${i}`].id,\r\n ProductID: product.result?.RecordId.toString()!,\r\n EventID: eventIDsArray[`${j}`],\r\n EventName: eventNamesArray[`${j}`],\r\n SerialID: serialId,\r\n SerialNumber: serialNumber,\r\n SerialName: serialName,\r\n Name_1: names[0] ? names[0] : \"\",\r\n Name_2: names[1] ? names[1] : \"\",\r\n Name_3: names[2] ? names[2] : \"\",\r\n Name_4: names[3] ? names[3] : \"\",\r\n Name_5: names[4] ? names[4] : \"\",\r\n Name_6: names[5] ? names[5] : \"\",\r\n Name_7: names[6] ? names[6] : \"\",\r\n Name_8: names[7] ? names[7] : \"\",\r\n Name_9: names[8] ? names[8] : \"\",\r\n Name_10: names[9] ? names[9] : \"\",\r\n Name_11: names[10] ? names[10] : \"\",\r\n Name_12: names[11] ? names[11] : \"\",\r\n Name_13: names[12] ? names[12] : \"\",\r\n Name_14: names[13] ? names[13] : \"\",\r\n Name_15: names[14] ? names[14] : \"\",\r\n Name_16: names[15] ? names[15] : \"\",\r\n Name_17: names[16] ? names[16] : \"\",\r\n Name_18: names[17] ? names[17] : \"\",\r\n Name_19: names[18] ? names[18] : \"\",\r\n Name_20: names[19] ? names[19] : \"\",\r\n Remarks: remarks,\r\n Message: messages,\r\n Category: category,\r\n DedicatedBy: dedicatedBy,\r\n HasTaxDeduction: hasTaxDeduction,\r\n Nric: nric,\r\n BuildingName: buildingName,\r\n UnitNumber: unitNumber,\r\n PostalCode: postalCode,\r\n PhoneNumber: phoneNumber,\r\n ChineseName: chineseName,\r\n Country: country,\r\n SchoolName: schoolName,\r\n CompanyName: companyName,\r\n DonationOption: collectionOption,\r\n BlessingOption: blessingOption,\r\n LightOption: lightOption,\r\n ValidFrom: validFrom,\r\n ValidTo: validTo,\r\n DedicationPeriod: dedicationPeriod,\r\n StartDate: startDate,\r\n Gender: gender,\r\n SurgeryDate: surgeryDate,\r\n BirthDate: birthDates[0] ? birthDates[0] : nullDate,\r\n BirthTime: birthTimes[0] ? birthTimes[0] : \"\",\r\n BirthDate_2: birthDates[1] ? birthDates[1] : \"\",\r\n BirthTime_2: birthTimes[1] ? birthTimes[1] : \"\",\r\n DeathDate: deathDate,\r\n DeathTime: deathTime,\r\n DeceasedRelationship: deceasedRelationship,\r\n NameChange: nameChange,\r\n OldName_1: oldNames[0] ? oldNames[0] : \"\",\r\n OldName_2: oldNames[1] ? oldNames[1] : \"\",\r\n NameNextKin: nameNextKin,\r\n ContactNumber: contactNumber,\r\n ContactNumberNextKin: contactNumberNextKin,\r\n PassportNumber: passportNumber,\r\n PassportExpiryDate: passportExpiryDate,\r\n PassportIssuedDate: passportIssuedDate ,\r\n Consent: consent,\r\n IsInsuranceIncluded: isInsuranceIncluded\r\n };\r\n\r\n generateErrorLog(\r\n context,\r\n \"ERROR ecomm-product-detaials-form _saveDraft\",\r\n extra + \" | Error: \" + error,\r\n item\r\n );\r\n\r\n toast.error(resource.saveDraftErrorMsg[this.localeCode]);\r\n });\r\n }\r\n }\r\n } else {\r\n toast.warning(resource.saveDraftOverLimitMsg[this.localeCode]);\r\n }\r\n }\r\n };\r\n\r\n private _retrieveDraft = () => {\r\n if (this.props.eventProduct) {\r\n this._checkRegistrationPeriod();\r\n }\r\n\r\n this._checkAvailableSerial();\r\n\r\n if (!this.state[\"registrationClosed\"] && !this.state[\"itemUnavailable\"]) {\r\n this._populateFormDisplay();\r\n\r\n this.props.retrieveRow(this.state.drafts);\r\n\r\n toast.success(resource.retrieveDraft[this.localeCode]);\r\n }\r\n };\r\n\r\n private _getDrafts() {\r\n const {\r\n context,\r\n data: { accountInformation, product },\r\n } = this.props;\r\n\r\n const customer = accountInformation?.result;\r\n\r\n if (customer?.AccountNumber) {\r\n getAllBTGPDraftAsync(\r\n { callerContext: context.actionContext },\r\n customer?.AccountNumber,\r\n product.result?.RecordId.toString()!\r\n ).then((result) => {\r\n if (result.length !== 0) {\r\n const latest = new Date(JSON.parse(result[0]).ModifiedDateTime);\r\n\r\n const batch = result.filter((item) => {\r\n const draft = JSON.parse(item);\r\n const date = new Date(draft.ModifiedDateTime);\r\n\r\n if (\r\n date.getUTCDate() === latest.getUTCDate() &&\r\n date.getUTCMonth() === latest.getUTCMonth() &&\r\n date.getFullYear() === latest.getUTCFullYear() &&\r\n date.getUTCMinutes() === latest.getUTCMinutes() &&\r\n date.getUTCHours() === latest.getUTCHours() &&\r\n draft.IsValid === \"1\"\r\n ) {\r\n return draft;\r\n }\r\n });\r\n\r\n const items: any[] = [];\r\n\r\n batch.forEach((item) => items.push(JSON.parse(item)));\r\n\r\n items.sort((a, b) => {\r\n const x = a.ParentDraftID as string;\r\n const y = b.ParentDraftID as string;\r\n\r\n return x > y ? 1 : x < y ? -1 : 0;\r\n });\r\n\r\n const inputs = [];\r\n\r\n for (let i = 0; i < items.length; ++i) {\r\n const input = items[`${i}`];\r\n\r\n const names = [\r\n input.Name_1,\r\n input.Name_2,\r\n input.Name_3,\r\n input.Name_4,\r\n input.Name_5,\r\n input.Name_6,\r\n input.Name_7,\r\n input.Name_8,\r\n input.Name_9,\r\n input.Name_10,\r\n input.Name_11,\r\n input.Name_12,\r\n input.Name_13,\r\n input.Name_14,\r\n input.Name_15,\r\n input.Name_16,\r\n input.Name_17,\r\n input.Name_18,\r\n input.Name_19,\r\n input.Name_20,\r\n ];\r\n\r\n const category =\r\n input.Category !== \"\"\r\n ? input.Category\r\n : resource.categoryFamilyLabel[this.localeCode];\r\n const donationOption =\r\n input.DonationOption !== \"\"\r\n ? input.DonationOption\r\n : resource.optionCollectionLabel[this.localeCode];\r\n const blessingOption =\r\n input.BlessingOption !== \"\"\r\n ? input.BlessingOption\r\n : resource.optionInPersonLabel[this.localeCode];\r\n\r\n let eventNames = input.EventName;\r\n let eventIds = input.EventID;\r\n\r\n const selections = items.filter((record) => {\r\n if (\r\n input.DraftID !== record.DraftID &&\r\n input.ParentDraftID === record.ParentDraftID\r\n ) {\r\n return record;\r\n }\r\n });\r\n\r\n for (let j = 0; j < selections.length; ++j) {\r\n eventNames += \";\" + selections[`${j}`].EventName;\r\n eventIds += \";\" + selections[`${j}`].EventID;\r\n }\r\n\r\n i += selections.length;\r\n\r\n const item = {\r\n DraftID: input.DraftID,\r\n CustomerID: input.CustomerID,\r\n ProductID: input.ProductID,\r\n EventID: eventIds,\r\n EventName: eventNames,\r\n SerialID: input.SerialID,\r\n SerialNumber: input.SerialNumber,\r\n SerialName: input.SerialName,\r\n Names: names,\r\n Remarks: input.Remarks,\r\n Message: input.Message,\r\n Category: category,\r\n DedicatedBy: input.DedicatedBy,\r\n HasTaxDeduction: input.HasTaxDeduction,\r\n Nric: input.Nric,\r\n BuildingName: input.BuildingName,\r\n UnitNumber: input.UnitNumber,\r\n PostalCode: input.PostalCode,\r\n Country: input.Country,\r\n BirthDate: input.BirthDate,\r\n BirthDate_2: input.BirthDate_2,\r\n BirthTime_2: input.BirthTime_2,\r\n PhoneNumber: input.PhoneNumber,\r\n SchoolName: input.SchoolName,\r\n DedicationPeriod: input.DedicationPeriod,\r\n DonationOption: donationOption,\r\n BlessingOption: blessingOption,\r\n IsValid: input.IsValid,\r\n CreatedDateTime: input.CreatedDateTime,\r\n ModifiedDateTime: input.ModifiedDateTime,\r\n BirthTime: input.BirthTime,\r\n LightOption: input.LightOption,\r\n ValidFrom: input.ValidFrom,\r\n ValidTo: input.ValidTo,\r\n ParentDraftID: input.ParentDraftID,\r\n CompanyName: input.CompanyName,\r\n DeceasedRelationship: input.DeceasedRelationship,\r\n SurgeryDate: input.SurgeryDate,\r\n DeathDate: input.DeathDate,\r\n DeathTime: input.DeathTime,\r\n NameChange: input.NameChange,\r\n OldName_1: input.OldName_1,\r\n OldName_2: input.OldName_2,\r\n Quantity: input.Quantity,\r\n ChineseName: input.ChineseName,\r\n ContactNumber: input.ContactNumber,\r\n NameNextKin: input.NameNextKin,\r\n ContactNumberNextKin: input.ContactNumberNextKin,\r\n PassportNumber: input.PassportNumber,\r\n PassportExpiryDate: input.PassportExpiryDate,\r\n PassportIssuedDate: input.PassportIssuedDate,\r\n Consent: input.Consent,\r\n IsInsuranceIncluded: input.IsInsuranceIncluded\r\n };\r\n\r\n inputs.push(item);\r\n }\r\n\r\n this.setState({ drafts: inputs });\r\n }\r\n });\r\n }\r\n }\r\n\r\n private _populateFormDisplay() {\r\n const inputs = [];\r\n\r\n for (let i = 0; i < this.state.drafts.length; ++i) {\r\n const item = {\r\n quantity: this.state.drafts[`${i}`].Quantity,\r\n names: this.state.drafts[`${i}`].Names,\r\n category: this.state.drafts[`${i}`].Category,\r\n eventID: this.state.drafts[`${i}`].EventID,\r\n eventName: this.state.drafts[`${i}`].EventName,\r\n remarks: this.state.drafts[`${i}`].Remarks,\r\n message: this.state.drafts[`${i}`].Message,\r\n dedicatedBy: this.state.drafts[`${i}`].DedicatedBy,\r\n hasTaxDeduction: this.state.drafts[`${i}`].HasTaxDeduction,\r\n nric: this.state.drafts[`${i}`].Nric,\r\n buildingName: this.state.drafts[`${i}`].BuildingName,\r\n unitNumber: this.state.drafts[`${i}`].UnitNumber,\r\n postalCode: this.state.drafts[`${i}`].PostalCode,\r\n birthDate: this.state.drafts[`${i}`].BirthDate,\r\n phoneNumber: this.state.drafts[`${i}`].PhoneNumber,\r\n schoolName: this.state.drafts[`${i}`].SchoolName,\r\n donationOption: this.state.drafts[`${i}`].DonationOption,\r\n blessingOption: this.state.drafts[`${i}`].BlessingOption,\r\n birthTime: this.state.drafts[`${i}`].BirthTime,\r\n lightOption: this.state.drafts[`${i}`].LightOption,\r\n validFrom: this.state.drafts[`${i}`].ValidFrom,\r\n validTo: this.state.drafts[`${i}`].ValidTo,\r\n dedicationPeriod: this.state.drafts[`${i}`].DedicationPeriod,\r\n country: this.state.drafts[`${i}`].Country,\r\n companyName: this.state.drafts[`${i}`].CompanyName,\r\n deceasedRelationship: this.state.drafts[`${i}`].DeceasedRelationship,\r\n surgeryDate: this.state.drafts[`${i}`].SurgeryDate,\r\n deathDate: this.state.drafts[`${i}`].DeathDate,\r\n deathTime: this.state.drafts[`${i}`].DeathTime,\r\n nameChange: this.state.drafts[`${i}`].NameChange,\r\n oldName_1: this.state.drafts[`${i}`].OldName_1,\r\n oldName_2: this.state.drafts[`${i}`].OldName_2,\r\n birthDate_2: this.state.drafts[`${i}`].BirthDate_2,\r\n birthTime_2: this.state.drafts[`${i}`].BirthTime_2,\r\n chineseName: this.state.drafts[`${i}`].ChineseName,\r\n contactNumber: this.state.drafts[`${i}`].ContactNumber,\r\n nameNextKin: this.state.drafts[`${i}`].NameNextKin,\r\n contactNumberNextKin: this.state.drafts[`${i}`].ContactNumberNextKin,\r\n passportNumber: this.state.drafts[`${i}`].PassportNumber,\r\n passportExpiryDate: this.state.drafts[`${i}`].PassportExpiryDate,\r\n passportIssuedDate: this.state.drafts[`${i}`].PassportIssuedDate,\r\n consent: this.state.drafts[`${i}`].Consent, \r\n isInsuranceIncluded: this.state.drafts[`${i}`].IsInsuranceIncluded,\r\n isPastTransaction: false,\r\n };\r\n\r\n inputs.push(item);\r\n }\r\n\r\n this.setState({ formItems: inputs });\r\n }\r\n\r\n private async _getRenewableLamps() {\r\n const {\r\n context,\r\n data: { accountInformation, product, cart },\r\n } = this.props;\r\n\r\n const customer = accountInformation?.result;\r\n\r\n if (customer?.Email) {\r\n let cartLineData: any[] = [];\r\n\r\n let getAllCartLineResult = await getAllBTGPCartLineAsync(\r\n { callerContext: this.props.context.actionContext },\r\n (await cart).cart.Id\r\n );\r\n\r\n if (getAllCartLineResult.length > 0) {\r\n getAllCartLineResult.map((record) => {\r\n cartLineData.push(JSON.parse(record));\r\n });\r\n }\r\n\r\n const getRenewableSerialResult = await getRenewableSerialsAsync(\r\n { callerContext: context.actionContext },\r\n this.props.config.isUat,\r\n product.result?.RecordId.toString()!,\r\n customer?.Email!\r\n );\r\n\r\n if (getRenewableSerialResult.length !== 0) {\r\n const inputs = [];\r\n\r\n for (let i = 0; i < getRenewableSerialResult.length; ++i) {\r\n const input = JSON.parse(getRenewableSerialResult[`${i}`]);\r\n\r\n let cartLine = cartLineData.find(\r\n (cl) => cl[\"SerialID\"] === input.gmb_serialnumberid\r\n );\r\n\r\n const item = {\r\n name_1: input.gmb_displayname1,\r\n name_2: input.gmb_displayname2,\r\n category: input.gmb_category,\r\n validTo: input.gmb_lightvalidto,\r\n serialNumber: input.gmb_serialnumber,\r\n serialId: input.gmb_serialnumberid,\r\n serialName: input.gmb_name,\r\n isChecked: cartLine ? true : false,\r\n isAdded: cartLine ? true : false,\r\n };\r\n\r\n inputs.push(item);\r\n }\r\n\r\n this.setState({ renewableLamps: inputs });\r\n }\r\n }\r\n }\r\n\r\n private async getProductAttributes(\r\n product: SimpleProduct\r\n ): Promise {\r\n const { context } = this.props;\r\n\r\n const attributesList = await getAttributeValuesAsync(\r\n { callerContext: context.actionContext },\r\n product.RecordId,\r\n context.request.apiSettings.channelId,\r\n context.request.apiSettings.catalogId\r\n );\r\n\r\n let formName = \"\";\r\n let amountArray: string[] = [];\r\n let names: number = 1;\r\n let companyNames: number = 1;\r\n let deceasedNames: number = 1;\r\n let subProductRecordId: number = 0;\r\n let hasSerial: boolean = false;\r\n let eventProduct: boolean = true;\r\n let courseProduct:boolean = false;\r\n let hasCapacityCheck:boolean = false;\r\n let eventMinCapacityThreshold: number = 0;\r\n let allowMultipleEventRegistrations: boolean = true;\r\n let showRemarksField:boolean = true;\r\n let insuranceAmount: string = \"0\";\r\n let insuranceFeeLabel: string = \"\";\r\n let makeChineseNameMandatory: boolean = true;\r\n\r\n\r\n for (let i = 0; i < attributesList.length; i++) {\r\n if (attributesList[`${i}`].Name?.includes(\"Form\")) {\r\n formName = attributesList[`${i}`].TextValue\r\n ? attributesList[`${i}`].TextValue!\r\n : \"Offering\";\r\n } else if (attributesList[`${i}`].Name?.includes(\"Amount\")) {\r\n let amount = attributesList[`${i}`].TextValue\r\n ? attributesList[`${i}`].TextValue!\r\n : \"2,5,10,50\";\r\n\r\n amountArray = amount.split(\",\");\r\n amountArray.push(resource.otherLabel[this.localeCode]);\r\n } else if (attributesList[`${i}`].Name?.includes(\"No Of Names\")) {\r\n names = attributesList[`${i}`].IntegerValue\r\n ? attributesList[`${i}`].IntegerValue!\r\n : 1;\r\n } else if (attributesList[`${i}`].Name?.includes(\"Company Names\")) {\r\n companyNames = attributesList[`${i}`].IntegerValue\r\n ? attributesList[`${i}`].IntegerValue!\r\n : 1;\r\n } else if (attributesList[`${i}`].Name?.includes(\"Deceased Names\")) {\r\n deceasedNames = attributesList[`${i}`].IntegerValue\r\n ? attributesList[`${i}`].IntegerValue!\r\n : 1;\r\n } else if (\r\n attributesList[`${i}`].Name?.includes(\"Sub Product Record ID\")\r\n ) {\r\n subProductRecordId = attributesList[`${i}`].TextValue\r\n ? +attributesList[`${i}`].TextValue!\r\n : 0;\r\n } else if (attributesList[`${i}`].Name?.includes(\"Has Serial\")) {\r\n hasSerial = attributesList[`${i}`].BooleanValue\r\n ? attributesList[`${i}`].BooleanValue!\r\n : false;\r\n } else if (attributesList[`${i}`].Name?.includes(\"EventProduct\")) {\r\n eventProduct = attributesList[`${i}`].BooleanValue\r\n ? attributesList[`${i}`].BooleanValue!\r\n : false;\r\n }\r\n else if (attributesList[`${i}`].Name?.includes(\"CourseProduct\")) {\r\n courseProduct = attributesList[`${i}`].BooleanValue\r\n ? attributesList[`${i}`].BooleanValue!\r\n : false;\r\n }else if (attributesList[`${i}`].Name?.includes(\"HasCapacityCheck\")) {\r\n courseProduct = attributesList[`${i}`].BooleanValue\r\n ? attributesList[`${i}`].BooleanValue!\r\n : false;\r\n }else if(attributesList[`${i}`].Name?.includes('EventMinCapacityThreshold')){\r\n eventMinCapacityThreshold = attributesList[`${i}`].IntegerValue ? attributesList[`${i}`].IntegerValue! : 0;\r\n }else if(attributesList[`${i}`].Name?.includes('AllowMultipleEventRegistrations')){\r\n allowMultipleEventRegistrations = attributesList[`${i}`].BooleanValue ? attributesList[`${i}`].BooleanValue! : false;\r\n }\r\n else if(attributesList[`${i}`].Name?.includes('ShowRemarksField')){\r\n showRemarksField = attributesList[`${i}`].BooleanValue ? attributesList[`${i}`].BooleanValue! : false;\r\n }\r\n else if(attributesList[`${i}`].Name?.includes('InsuranceAmount')){\r\n insuranceAmount = attributesList[`${i}`].TextValue ? attributesList[`${i}`].TextValue! : '0';\r\n }\r\n else if(attributesList[`${i}`].Name?.includes('InsuranceFeeLabel')){\r\n insuranceFeeLabel = attributesList[`${i}`].TextValue ? attributesList[`${i}`].TextValue! : '';\r\n }\r\n else if(attributesList[`${i}`].Name?.includes('MakeChineseNameMandatory')){\r\n makeChineseNameMandatory = attributesList[`${i}`].BooleanValue ? attributesList[`${i}`].BooleanValue! : false;\r\n }\r\n\r\n }\r\n\r\n return {\r\n formName: formName,\r\n amounts: amountArray,\r\n noOfNames: names,\r\n companyNames: companyNames,\r\n deceasedNames: deceasedNames,\r\n subProductRecordId: subProductRecordId,\r\n hasSerial: hasSerial,\r\n eventProduct: eventProduct,\r\n courseProduct: courseProduct,\r\n hasCapacityCheck: hasCapacityCheck,\r\n eventMinCapacityThreshold: eventMinCapacityThreshold,\r\n allowMultipleRegistrations: allowMultipleEventRegistrations,\r\n showRemarksField: showRemarksField,\r\n insuranceAmount: insuranceAmount,\r\n insuranceFeeLabel: insuranceFeeLabel,\r\n makeChineseNameMandatory: makeChineseNameMandatory\r\n };\r\n }\r\n\r\n private async _getEventsForProduct(ecommId: number) {\r\n let startDate = new Date();\r\n startDate.setHours(0, 0, 0, 0);\r\n\r\n const data = await getProductEventsByIdAsync(\r\n { callerContext: this.props.context.actionContext },\r\n this.props.config.isUat,\r\n startDate.toISOString(),\r\n ecommId.toString()\r\n );\r\n\r\n data.map((event) => {\r\n const eventJson = JSON.parse(event);\r\n\r\n const eventObj: IEvent = {\r\n id: eventJson[\"EventId\"],\r\n name: eventJson[\"Name\"],\r\n startDateTime: eventJson[\"StartDateTime\"],\r\n endDateTime: eventJson[\"EndDateTime\"],\r\n startLunarDate: eventJson[\"StartLunarDate\"],\r\n endLunarDate: eventJson[\"EndLunarDate\"],\r\n };\r\n\r\n this.eventRecords.push(eventObj);\r\n });\r\n\r\n this._checkRegistrationPeriod();\r\n }\r\n\r\n private _checkRegistrationPeriod() {\r\n let availableRegistration = true;\r\n\r\n if (\r\n this.props.formName === \"categoryNamesAddressForm\" ||\r\n this.props.formName === \"categoryNamesCollectionForm\" ||\r\n this.props.formName === \"categoryNamesForm\" ||\r\n this.props.formName === \"ceremonyForm\" ||\r\n this.props.formName === \"eventDeceasedDedicatedByForm\" ||\r\n this.props.formName === \"namesOnlyForm\" ||\r\n this.props.formName === \"namesRemarksForm\" ||\r\n this.props.formName === \"namesAddressContactnoForm\" ||\r\n this.props.formName === \"eventsNextOfKinNameForm\" ||\r\n this.props.formName === \"deceasedDedicatedByForm\" ||\r\n this.props.formName === \"eventCategoryNamesForm\" ||\r\n this.props.formName === \"nameBirthdaySchoolForm\"\r\n ) {\r\n if (this.eventRecords.length == 0) {\r\n this.setState({ registrationClosed: true });\r\n } else {\r\n let latestEvent = this.eventRecords[this.eventRecords.length - 1];\r\n let eventStartDate = moment(latestEvent[\"startDateTime\"]);\r\n let currentTime = moment();\r\n\r\n if (currentTime.diff(eventStartDate, \"d\") > 0) {\r\n availableRegistration = false;\r\n\r\n this.setState({ registrationClosed: true });\r\n }\r\n }\r\n }\r\n\r\n return availableRegistration;\r\n }\r\n\r\n private async _checkAvailableSerial() {\r\n let haveSerial = true;\r\n\r\n if (this.props.hasSerial) {\r\n let checkAvailableSerialResult = await checkAvailableSerialAsync(\r\n { callerContext: this.props.context.actionContext },\r\n this.props.config.isUat,\r\n this.props.data.product.result?.RecordId.toString()!\r\n );\r\n\r\n if (\r\n checkAvailableSerialResult &&\r\n typeof checkAvailableSerialResult === \"object\" &&\r\n checkAvailableSerialResult[\"value\"] == false\r\n ) {\r\n haveSerial = false;\r\n\r\n // If user is logged in and user has a serial name, item is considered available.\r\n\r\n this.setState({ itemUnavailable: true });\r\n }\r\n }\r\n\r\n return haveSerial;\r\n }\r\n\r\n private _checkUnderEventDatesLimit(): boolean {\r\n let count = 0;\r\n\r\n for (let i = 0; i < this.state.quantities.length; ++i) {\r\n count += this.state.quantities[`${i}`];\r\n\r\n if (count > this.eventDateLimit) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n private _handleOnClickPopup = () => {\r\n event?.preventDefault();\r\n this.setState({ showPopup: true, addRenewLamp: false });\r\n };\r\n\r\n private _handleClosePopup = () => {\r\n event?.preventDefault();\r\n this.setState({ showPopup: false, addRenewLamp: false });\r\n };\r\n\r\n private _handleProceedPopup = () => {\r\n event?.preventDefault();\r\n this.setState({ showPopup: false, addRenewLamp: true });\r\n };\r\n}\r\n\r\nexport default EcommProductDetailsFormView;\r\n","const binding = { modules: {}, dataActions: {} };\n\n const registerActionId = (actionPath) => {\n if (binding.dataActions[actionPath] &&\n binding.dataActions[actionPath].default &&\n binding.dataActions[actionPath].default.prototype &&\n binding.dataActions[actionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[actionPath].default.prototype.id] = binding.dataActions[actionPath];\n } else {\n Object.keys(binding.dataActions[actionPath] || {}).forEach(exportName => {\n if (binding.dataActions[actionPath][exportName] &&\n binding.dataActions[actionPath][exportName].prototype &&\n binding.dataActions[actionPath][exportName].prototype.Action) {\n binding.dataActions[binding.dataActions[actionPath][exportName].prototype.id] = binding.dataActions[actionPath][exportName];\n }\n })\n }\n };\n\n const registerSanitizedActionPath = (sanitizedActionPath, dataAction) => {\n if (process.env.NODE_ENV === 'development') {\n if (!dataAction.default) {\n throw new Error('Data action path does not have a default export');\n }\n if (!(dataAction.default.prototype.id && binding.dataActions[dataAction.default.prototype.id]) || !binding.dataActions[sanitizedActionPath]) {\n binding.dataActions[sanitizedActionPath] = dataAction;\n }\n } else {\n binding.dataActions[sanitizedActionPath] = dataAction;\n if (!binding.dataActions[sanitizedActionPath].default) {\n throw new Error('Data action path ' + sanitizedActionPath + ' does not have a default export');\n }\n binding.dataActions[sanitizedActionPath].default.prototype.RegistrationId = sanitizedActionPath;\n if (binding.dataActions[sanitizedActionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[sanitizedActionPath].default.prototype.id] = sanitizedActionPath;\n }\n }\n };\n \n\n (binding.modules['ecomm-product-details-form'] = {\n c: () => require('partner/modules/ecomm-product-details-form/ecomm-product-details-form.tsx'),\n $type: 'contentModule',\n da: [{name:'accountInformation', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer', runOn: 0},{name:'cart', path:'@msdyn365-commerce/global-state/dist/lib/data-actions/cart-state-data-action', runOn: 0},{name:'categories', path:'actions/get-categories', runOn: 0},{name:'product', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-selected-variant', runOn: 0},{name:'productAvailableQuantity', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-product-availabilities-for-selected-variant', runOn: 0},{name:'selectedQuantity', path:'actions/BuyBoxSelectedQuantity/ecomm-buybox-selected-quantity', runOn: 0}],\n \n iNM: false,\n ns: '__local__',\n n: 'ecomm-product-details-form',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/modules/ecomm-product-details-form'\n });\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-product-availabilities-for-selected-variant';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-product-availabilities-for-selected-variant');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-selected-variant';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-selected-variant');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce/global-state/dist/lib/data-actions/cart-state-data-action';\n let dataAction = require('@msdyn365-commerce/global-state/dist/lib/data-actions/cart-state-data-action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = 'actions/BuyBoxSelectedQuantity/ecomm-buybox-selected-quantity';\n let dataAction = require('partner/actions/BuyBoxSelectedQuantity/ecomm-buybox-selected-quantity');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = 'actions/get-categories';\n let dataAction = require('partner/actions/get-categories');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n \n window.__bindings__ = window.__bindings__ || {};\n window.__bindings__.modules = {\n ...window.__bindings__.modules || {},\n ...binding.modules\n };\n \n window.__bindings__.dataActions = {\n ...window.__bindings__.dataActions || {},\n ...binding.dataActions\n };\n export const viewDictionary = {};\n viewDictionary['__local__|__local__|modules|ecomm-product-details-form|ecomm-product-details-form'] = {\n c: () => require('partner/modules/ecomm-product-details-form/ecomm-product-details-form.view.tsx'),\n cn: '__local__-__local__-ecomm-product-details-form'\n };\nwindow.__bindings__ = window.__bindings__ || {};\nwindow.__bindings__.viewDictionary = {\n ...window.__bindings__.viewDictionary || {},\n ...viewDictionary\n };","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar getMethod = require('../internals/get-method');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, MATCH);\n return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeMatch, rx, S);\n\n if (res.done) return res.value;\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = toString(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","module.exports = React;","module.exports = ReactDOM;"],"names":["GetSelectedQuantityValuesInput","constructor","getCacheKey","getCacheObjectType","dataCacheType","Msdyn365","action","async","input","ctx","selectedQuantity","id","args","createObservableDataAction","retailAction","context","createGetCategoriesInput","Paging","Top","requestContext","apiSettings","channelId","attributes","formName","fields","field_name","field_type","field_placeholder","required","validation","field_number","noOfNames","field_number2","companyNames","field_number3","deceasedNames","field_label","hasSerial","field_options","amounts","moment","require","EcommProductDetailsForm","React","props","super","tableHeaderArray","localeCode","this","request","locale","split","state","selectedProduct","addRow","replaceRow","removeRow","removeMultipleRows","retrieveRow","headerArrayState","formStructState","rowsData","uuidv4","productResult","simpleProductResult","productsIds","productPriceArr","attributesList","productsAvailability","matchingCartItems","itemUnavailable","isEditMode","eventProduct","eventAvailable","coursesEventRecords","eventMinCapacityThreshold","eventDetails","allowMultipleRegistrations","showRemarksField","insuranceAmount","insuranceFeeLabel","makeChineseNameMandatory","telemetryContent","getTelemetryObject","telemetryPageName","friendlyName","telemetry","delay","ms","Promise","resolve","setTimeout","data","categories","cart","product","formStructure","result","categoryId","filter","category","ParentCategory","RecordId","resultObj","projectDomain","ChannelId","actionContext","CatalogId","catalogId","productSearchResult","productSearchResultFiltered","productObject","productsAvailabilityResults","simpleProductsResults","activePricesResult","productIds","resultObject","searchByCategoryAsync","callerContext","push","elem","getByIdsAsync","getActivePricesAsync","queryResultSettings","Date","getEstimatedAvailabilityAsync","ProductIds","DefaultWarehouseOnly","getAttributeValuesAsync","selectedProducts","productsSimpleDetails","activePrices","ProductWarehouseInventoryAvailabilities","undefined","getProductServiceObjects","catch","error","_this$state$productRe","_this$state$simplePro","_this$state$productsI","_this$state$productPr","_this$state$attribute","console","log","length","setState","productList","simpleProductList","productPriceList","attributeList","JSON","stringify","matchingItemsLength","itemArray","parameters","window","location","search","cartlineId","URLSearchParams","get","cartLines","CartLines","found","find","cartline","LineId","cartLineData","getAllCartLineResult","getAllBTGPCartLineAsync","Id","map","record","parse","cartLineIndex","findIndex","cl","childCartLines","eventNames","eventIds","quantity","Quantity","subProductQuantity","child","String","ProductId","subProductfound","Comment","IsPriceKeyedIn","Price","user","customerAccountNumber","itemInCart","lastOrderCE","lastOrderCommerce","records","getByCustomerBTGPTransactionAsync","emailAddress","toString","config","isUat","recordsCE","orders","getOrderHistoryAsync","order","inputs","mostRecentOrderID","isBefore","CreatedDateTime","batch","i","item","getProductAttributes","getFormJSON","formRows","buildFormStructure","courseProduct","hasCapacityCheck","_checkEventAvailability","_checkAvailableSerial","_checkAvailableStock","subProductRecordId","getSubProduct","getByIdAsync","subProduct","render","_product$result","customPriceCheck","BasePrice","ProductDetailsViewProps","_objectSpread","hasInitOnce","setHasInitOnce","formScheme","formsHeaders","productsList","simpleProducts","productAvailabilities","isCustomPrice","renderView","haveStock","productId","availability","warehouse","stock","PhysicalAvailableInventoryLevelCode","InventoryLvls","_this$props$data$prod","haveSerial","checkAvailableSerialResult","checkAvailableSerialAsync","ecommId","startDate","setHours","eventRecords","getProductEventsByIdAsync","toISOString","all","eventJson","event","checkEventAvailableResult","getEventAvailabilityAsync","eventAvailabiltyDetails","isEventAvailable","remainingSlots","maxEventCapacity","registrationCount","hideAddMoreButton","remainingEcommSlots","eventObj","name","startDateTime","endDateTime","startLunarDate","endLunarDate","eventDetailsObj","eventAvailableSlot","_this$props$data$prod2","_getEventsForProduct","_formStructure$fields","element","noOfRows","update","rowsDataArray","slice","replaceRowAction","idx","removeMultipleRowsAction","index","stateData","splice","ids","DraftID","difference","j","amountArray","names","allowMultipleEventRegistrations","_attributesList$Name","_attributesList$Name2","_attributesList$Name3","_attributesList$Name4","_attributesList$Name5","_attributesList$Name6","_attributesList$Name7","_attributesList$Name8","_attributesList$Name9","_attributesList$Name10","_attributesList$Name11","_attributesList$Name12","_attributesList$Name13","_attributesList$Name14","_attributesList$Name15","_attributesList$Name16","Name","includes","TextValue","resource","IntegerValue","BooleanValue","Popup","formLabels","_callbackRedirect","callbackProceed","_callbackHide","_event","preventDefault","callback","Modal","show","showPopup","onHide","centered","translate","closeButton","className","_titleText","_renderMessage","renewableLamps","_renderLampsHeader","_renderLamps","href","onClick","style","width","_goButtonText","_renderCancelButton","renewDialogTitle","_cancelButtonText","renewDialogValidCancelTitle","renewDialogProceedTitle","renewDialogOkayTitle","renewMessageText","renewSelectedAllMessageText","renewDialogSerialNoTitle","renewDialogNameTitle","renewDialogValidTillTitle","_renderLampOption","lamp","serialNumber","serialId","name_1","name_2","validTo","isChecked","type","value","onChange","e","checkedLampIndex","target","updatedSelection","checked","callbackChecked","disabled","EcommProductDetailsFormView","customerTotalPrice","customerPrices","customerEvents","customerEventIDs","customerNames","customerRemarks","customerMessages","customerSerialIDs","customerSerialNumbers","customerSerialNames","dedicatedBy","collectionOptions","buildingNames","unitNumbers","postalCodes","phoneNumbers","chineseNames","birthDates","birthTimes","schoolNames","blessingOptions","lightOptions","validFroms","validTos","quantities","dedicationPeriods","countries","deceasedRelationships","surgeryDates","deathDates","deathTimes","oldNames","nameChanges","hasTaxDeductions","nrics","startDates","genders","formsValidated","eventsSelected","namesEntered","chineseNamesEntered","phoneNumbersEntered","passportNumberEntered","relationshipsEntered","companiesEntered","schoolsEntered","pricesEntered","addressEntered","dateEntered","passportExpiryDateEntered","passportIssueDateEntered","fileUploaded","formItems","drafts","userData","productEvents","addRenewLamp","hasMounted","registrationClosed","isEventProduct","nextKinNames","contactNumbers","contactNumbersNextKins","passportNumbers","passportExpiryDates","passportIssuedDates","consents","isInsuranceIncluded","isInsuranceIncludedNum","eventDateLimit","_handleOnClickPrice","reduce","a","b","fpFix","_handleEventInput","_handleEventIDInput","_handleCategoryInput","_handleDedicationPeriodInput","_handleStartDateInput","_handleGenderInput","_handleNameInput","_handleDedicatedByInput","_handleSubProductQuantityInput","_handleMessageInput","_handleRemarkInput","_handleCollectionOptionInput","_handleTaxDeductionInput","_handleNRICInput","_handleBuildingNameInput","_handleUnitNumberInput","_handlePostalCodeInput","_handlePhoneNumberInput","_handleChineseNameInput","_handleNextOfKinNameInput","_handlePassportNumberInput","_handlePassportExpiryDateInput","_handlePassportIssuedDateInput","_handleConsentsInput","_handleIsInsuranceIncludedInput","_handleIsInsuranceIncludedNumInput","_handleNextOfKinPhoneNumberInput","_handleSurgeryDateInput","_handleBirthDateInput","_handleBirthTimeInput","_handleSchoolNameInput","_handleBlessingOptionInput","_handleLightOptionInput","_handleQuantitiesInput","_handleValidFromInput","_handleValidToInput","_handleCountryInput","_handleCompanyNameInput","_handleDeceasedRelationshipInput","_handleDeathDateInput","_handleDeathTimeInput","_handleOldNameInput","_handleNameChangeInput","_handleSerialIdInput","_handleSerialNumberInput","_handleSerialNamesInput","_handleFormsValidation","_handleEventsSelected","_handleNamesEntered","_handleChineseNamesEntered","_handlePhoneNumbersEntered","_handlePassportNumberEntered","_handleRelationshipsEntered","_handleCompaniesEntered","_handleSchoolsEntered","_handlePricesEntered","_handleAddressEntered","_handleDateEntered","_handlePassportExpiryDateEntered","_handlePassportIssueDateEntered","_handleFileUploaded","_handleRenewableLampChecked","_handleRenewableLampRemove","lamps","removeLampIndex","_updateDimensions","innerWidth","_saveDraft","_checkRegistrationPeriod","accountInformation","customer","nullDate","_checkUnderEventDatesLimit","eventIDs","eventNamesArray","eventIDsArray","serialName","remarks","messages","hasTaxDeduction","nric","buildingName","unitNumber","postalCode","phoneNumber","chineseName","nameNextKin","contactNumber","contactNumberNextKin","passportNumber","passportExpiryDate","passportIssuedDate","consent","country","schoolName","collectionOption","blessingOption","lightOption","validFrom","surgeryDate","dedicationPeriod","companyName","deceasedRelationship","deathDate","deathTime","nameChange","gender","createOrUpdateBTGPDraftAsync","AccountNumber","then","_getDrafts","toast","_product$result2","extra","CartLineID","CartID","CartLineComment","ParentCartLineID","ProductID","EventID","EventName","SerialID","SerialNumber","SerialName","Name_1","Name_2","Name_3","Name_4","Name_5","Name_6","Name_7","Name_8","Name_9","Name_10","Name_11","Name_12","Name_13","Name_14","Name_15","Name_16","Name_17","Name_18","Name_19","Name_20","Remarks","Message","Category","DedicatedBy","HasTaxDeduction","Nric","BuildingName","UnitNumber","PostalCode","PhoneNumber","ChineseName","Country","SchoolName","CompanyName","DonationOption","BlessingOption","LightOption","ValidFrom","ValidTo","DedicationPeriod","StartDate","Gender","SurgeryDate","BirthDate","BirthTime","BirthDate_2","BirthTime_2","DeathDate","DeathTime","DeceasedRelationship","NameChange","OldName_1","OldName_2","NameNextKin","ContactNumber","ContactNumberNextKin","PassportNumber","PassportExpiryDate","PassportIssuedDate","Consent","IsInsuranceIncluded","generateErrorLog","_retrieveDraft","_populateFormDisplay","_handleOnClickPopup","_handleClosePopup","_event2","_handleProceedPopup","_event3","addEventListener","_getRenewableLamps","formItemsArray","eventProductAttr","forEach","sort","comment","eventID","eventName","message","birthDate","donationOption","birthTime","oldName_1","oldName_2","birthDate_2","birthTime_2","customPriceAmount","cartLineId","isPastTransaction","eventId","isAuthenticated","getContactDetailsAsync","parseUserData","resources","Total","deleteRow","_navigateToCart","cartAliasUrl","getUrlSync","assign","quantitiesArray","subProductQuantityArray","enableButton","showSubDetails","showNoOfYearsCategoryNamesForm","showItemUnavailableNotice","showCartAmount","_renderTop","_renderRenewableLamp","_renderItemUnavailableNotice","_renderRegistrationClosedNotice","_renderSub","AmountDeceasedNameForm","callbackPrice","callbackName","callbackCategory","callbackDedicatedBy","callbackNamesEntered","callbackPricesEntered","isMobile","CategoryNamesAddressForm","callbackEvent","callbackEventID","callbackBuilding","callbackUnitNumber","callbackPostalCode","callbackPhoneNumber","callbackAddressEntered","userInfo","CategoryNamesCollectionForm","callbackCollection","CategoryNamesForm","CeremonyForm","callbackMultiplier","callbackEventsSelected","DeceasedCategoryNamesForm","DeceasedDedicatedByForm","DonationForm","CoursesForm","_renderCoursesItemUnavailableNotice","EventChineseNameForm","callbackChineseName","callbackChineseNamesEntered","callbackPhoneNumbersEntered","makeChinesNameMandatory","EventNextOfKinNameForm","callbackNextOfKinName","callbackNextOfKinPhoneNumber","callbackInsuranceIncluded","callbackInsuranceIncludedNum","EventPassportUploadForm","callbackBirthDate","callbackPassportNumber","callbackPassportExpiryDate","callbackPassportIssuedDate","callbackConsent","callbackDateEntered","callbackPassportExpiryDateEntered","callbackPassportIssueDateEntered","callbackFileUploaded","callbackPassportNumberEntered","callbackRemarks","organisation","azureContainerName","isFileUploaded","EventPassportUploadInsuranceForm","EventCategoryNamesForm","EventDeceasedDedicatedByForm","EventTaxDeductionForm","callbackHasTaxDeduction","callbackNRIC","callbackCountry","callbackEnableSaveDraft","callbackFormsValidation","NameBirthDatetimeForm","callbackBirthTime","NameBirthdaySchoolForm","callbackSchoolName","callbackBlessingOption","callbackSchoolsEntered","NamesOnlyForm","NamesRemarksForm","NamesAddressContactnoForm","NoOfYearsCategoryNamesForm","removeLamp","callbackNoOfYear","callbackLightOption","callbackValidFrom","callbackValidTo","callbackOldName","callbackNameChange","callbackSerialNumber","callbackSerialId","callbackSerialNames","OfferingForm","callbackMessage","ServicesBusinessForm","callbackDedicationPeriod","callbackCompanyName","callbackCompaniesEntered","ServicesDeceasedForm","callbackStartDate","callbackRelationship","callbackRelationshipsEntered","callbackDeathDate","callbackDeathTime","ServicesEducationForm","ServicesGeneralForm","callbackGender","NamesDedicationStartDateForm","ServicesHealthSurgeryForm","callbackSurgeryDate","ServicesInfantSpiritForm","callbackBlessingType","ServicesMarriageForm","ThreeCategoryNamesForm","ThreeCategoryNamesConsecrationForm","callbackSubProductQuantity","ProductDetailsAddtoCartButton","key","isCustomPriceSelected","keyInPriceAmount","isPriceKeyedIn","cartAdded","itemAddedToCart","events","serialIds","serialNumbers","serialNames","subProductQuantities","nameNextKins","contactNumbersNextKin","ToastContainer","autoClose","componentWillUnmount","removeEventListener","saveDraft","retrieveDraft","renewLamp","showPrompt","formAnchorTag","renewLampTitle","signInUrl","itemUnavailableHeader","messageLine1","messageLine2","messageLine2Point1","messageLine2Point2","messageLine2Point3","registrationClosedHeader","Math","round","_product$result3","getAllBTGPDraftAsync","latest","ModifiedDateTime","draft","date","getUTCDate","getUTCMonth","getFullYear","getUTCFullYear","getUTCMinutes","getUTCHours","IsValid","items","x","ParentDraftID","y","selections","CustomerID","Names","Email","_product$result4","getRenewableSerialResult","getRenewableSerialsAsync","cartLine","gmb_serialnumberid","gmb_displayname1","gmb_displayname2","gmb_category","gmb_lightvalidto","gmb_serialnumber","gmb_name","isAdded","availableRegistration","latestEvent","eventStartDate","diff","count","binding","modules","dataActions","registerSanitizedActionPath","sanitizedActionPath","dataAction","default","Error","prototype","RegistrationId","c","$type","da","path","runOn","iNM","ns","n","p","pdp","md","__bindings__","viewDictionary","cn","call","fixRegExpWellKnownSymbolLogic","anObject","isNullOrUndefined","toLength","requireObjectCoercible","getMethod","advanceStringIndex","regExpExec","MATCH","nativeMatch","maybeCallNative","regexp","O","matcher","RegExp","string","rx","S","res","done","global","fullUnicode","unicode","lastIndex","A","matchStr","module","exports","ReactDOM"],"sourceRoot":""}