{"version":3,"file":"static/js/346980e954171741d9f4.bundle.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/herbal-cms-detail-content/actions/get-cms-detail-content.action.ts?f93f","webpack://Msdyn365.Commerce.Online/./src/modules/herbal-cms-list-content-my-library/actions/get-cms-list-my-library.action.ts?19e5","webpack://Msdyn365.Commerce.Online/./src/modules/herbal-cms-list-content-news/actions/get-cms-list-content-news.action.ts?fd76","webpack://Msdyn365.Commerce.Online/./src/modules/herbal-cms-list-content-video/actions/get-cms-list-content-video.action.ts?1102","webpack://Msdyn365.Commerce.Online/./src/modules/herbal-cms-list-content/actions/get-cms-list-content.action.ts?9bec","webpack://Msdyn365.Commerce.Online/./src/modules/herbal-cms-news-recent-article/actions/get-cms-news-recent-article.action.ts?bdf2","webpack://Msdyn365.Commerce.Online/./src/modules/herbal-cms-news-tags/actions/get-cms-news-detail-list-tags.action.ts?57d6","webpack://Msdyn365.Commerce.Online/./src/modules/herbal-cms-news-top-article/actions/get-cms-news-top-article.action.ts?d47a","webpack://Msdyn365.Commerce.Online/./src/modules/herbal-dashboard-latest-news/actions/get-cms-news-recent-article.action.ts?986f","webpack://Msdyn365.Commerce.Online/./src/modules/herbal-dashboard-my-library/actions/get-cms-list-my-library-dashboard.action.ts?3476","webpack://Msdyn365.Commerce.Online/./src/modules/herbal-product-specification/actions/get-cms-product-attribute.action.ts?5a49","webpack://Msdyn365.Commerce.Online/./lib/__local__/module-registration.js?8a42","webpack://Msdyn365.Commerce.Online/external var \"React\"?0d3b","webpack://Msdyn365.Commerce.Online/external var \"ReactDOM\"?853b","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.string.split.js?e6e1"],"sourcesContent":["/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\n/**\r\n * GetCmsDetailContent Input Action\r\n */\r\nexport class GetCmsDetailContentInput implements Msdyn365.IActionInput {\r\n // TODO: Construct the input needed to run the action\r\n constructor() {}\r\n\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 = () => `TODO`;\r\n public getCacheObjectType = () => 'TODO';\r\n public dataCacheType = (): Msdyn365.CacheType => 'request';\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 IGetCmsDetailContentData {\r\n id: string;\r\n type: string;\r\n title: string;\r\n content: string;\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 GetCmsDetailContentInput();\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 action(input: GetCmsDetailContentInput, ctx: Msdyn365.IActionContext): Promise {\r\n let pageID: string = '';\r\n let customerAccountNumber: string = '';\r\n if (ctx && ctx.requestContext && ctx.requestContext.query && ctx.requestContext.query.p) {\r\n pageID = ctx.requestContext.query.p;\r\n }\r\n if (ctx && ctx.requestContext && ctx.requestContext.user && ctx.requestContext.user.customerAccountNumber) {\r\n customerAccountNumber = ctx.requestContext.user.customerAccountNumber;\r\n }\r\n if (pageID !== '' || customerAccountNumber !== '') {\r\n if (customerAccountNumber === '') {\r\n customerAccountNumber = 'abcd';\r\n }\r\n // const frontApiEndpoint = 'http://herbal-cms.localhost:8001';\r\n const frontApiEndpoint = ctx.requestContext.app.config.cmsAPIEndpoint && ctx.requestContext.app.config.cmsAPIEndpoint;\r\n const requestUrl = `${frontApiEndpoint}/api/detail/node--${pageID}/${customerAccountNumber}/en`;\r\n // const requestUrl = `${frontApiEndpoint}/api/detail/node--${pageID}/en`;\r\n\r\n const result = await Msdyn365.sendRequest(requestUrl, 'get')\r\n .then(response => {\r\n return response.data;\r\n })\r\n .catch(error => {\r\n ctx.trace('[GetCmsDetailContentInput] Failed to get cms detail.');\r\n throw error;\r\n });\r\n return result;\r\n }\r\n\r\n return null;\r\n}\r\n\r\nexport default Msdyn365.createObservableDataAction({\r\n action: >action,\r\n // TODO: Give your data action a unique id\r\n id: 'GetCmsDetailContent',\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});\r\n","/*!\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 Msdyn365 from '@msdyn365-commerce/core';\r\nimport { AttributeValue } from '@msdyn365-commerce/retail-proxy';\r\n\r\n/**\r\n * GetCmsListContent Input Action\r\n */\r\nexport class GetCmsListMyLibraryInput implements Msdyn365.IActionInput {\r\n // TODO: Construct the input needed to run the action\r\n constructor() {}\r\n\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 = () => `CMS_LIST_MY_LIBRARY`;\r\n public getCacheObjectType = () => 'CMS_LIST_MY_LIBRARY';\r\n public dataCacheType = (): Msdyn365.CacheType => 'none';\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 IGetCmsListMyLibraryData {\r\n totalItem: any;\r\n dataLibrary: AttributeValue[];\r\n mess: string | null;\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 GetCmsListMyLibraryInput();\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 action(input: GetCmsListMyLibraryInput, ctx: Msdyn365.IActionContext): Promise {\r\n let pageID: string | null = '';\r\n let searchParam: string = '';\r\n let userId: string | undefined = ctx.requestContext.user.customerAccountNumber;\r\n if (ctx && ctx.requestContext && ctx.requestContext.url) {\r\n if (ctx.requestContext.url.requestUrl) {\r\n pageID = ctx.requestContext.url.requestUrl.searchParams.get('filter');\r\n searchParam = ctx.requestContext.url.requestUrl.search;\r\n }\r\n }\r\n if (userId === undefined || userId === '') {\r\n userId = '1';\r\n }\r\n if (pageID !== '') {\r\n const frontApiEndpoint = ctx.requestContext.app.config.cmsAPIEndpoint && ctx.requestContext.app.config.cmsAPIEndpoint;\r\n const requestUrl = `${frontApiEndpoint}/api/list/library/tab/${userId}/en${searchParam}`;\r\n const result = await Msdyn365.sendRequest(requestUrl, 'get')\r\n .then(response => {\r\n return response.data;\r\n })\r\n .catch(error => {\r\n ctx.trace('[GetCmsListMyLibrary] Failed to get list my libary.');\r\n throw error;\r\n });\r\n return result;\r\n }\r\n\r\n return null;\r\n}\r\n\r\nexport default Msdyn365.createObservableDataAction({\r\n action: >action,\r\n // TODO: Give your data action a unique id\r\n id: 'GetCmsListMyLibrary',\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});\r\n","/*!\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 Msdyn365 from '@msdyn365-commerce/core';\r\nimport { AttributeValue } from '@msdyn365-commerce/retail-proxy';\r\n\r\n/**\r\n * GetCmsListContentNews Input Action\r\n */\r\nexport class GetCmsListContentNewsInput implements Msdyn365.IActionInput {\r\n // TODO: Construct the input needed to run the action\r\n constructor() {}\r\n\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 = () => `CMS_LIST_CONTENT_NEWS`;\r\n public getCacheObjectType = () => 'CMS_LIST_CONTENT_NEWS';\r\n public dataCacheType = (): Msdyn365.CacheType => 'none';\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 IGetCmsListContentNewsData {\r\n totalItem: any;\r\n dataCms: AttributeValue[];\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 GetCmsListContentNewsInput();\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 action(input: GetCmsListContentNewsInput, ctx: Msdyn365.IActionContext): Promise {\r\n let pageID: string = '';\r\n let pathName: string = '';\r\n let searchParam: string = '';\r\n if (ctx && ctx.requestContext && ctx.requestContext.url && ctx.requestContext.url.requestUrl) {\r\n pathName = ctx.requestContext.url.requestUrl.pathname;\r\n const pieces = pathName.split(/[\\s\\/]+/);\r\n pageID = pieces[pieces.length - 1];\r\n searchParam = ctx.requestContext.url.requestUrl.search;\r\n }\r\n if (pageID !== '') {\r\n const frontApiEndpoint = ctx.requestContext.app.config.cmsAPIEndpoint && ctx.requestContext.app.config.cmsAPIEndpoint;\r\n const requestUrl = `${frontApiEndpoint}/api/list/node--${pageID}/en${searchParam}`;\r\n\r\n const result = await Msdyn365.sendRequest(requestUrl, 'get')\r\n .then(response => {\r\n return response.data;\r\n })\r\n .catch(error => {\r\n ctx.trace('[GetCmsListNewsContent] Failed to get list data news.');\r\n throw error;\r\n });\r\n return result;\r\n }\r\n\r\n return null;\r\n}\r\n\r\nexport default Msdyn365.createObservableDataAction({\r\n action: >action,\r\n // TODO: Give your data action a unique id\r\n id: 'GetCmsListNewsContent',\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});\r\n","/*!\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 Msdyn365 from '@msdyn365-commerce/core';\r\nimport { AttributeValue } from '@msdyn365-commerce/retail-proxy';\r\n\r\n/**\r\n * GetCmsListContentVideo Input Action\r\n */\r\nexport class GetCmsListContentVideoInput implements Msdyn365.IActionInput {\r\n // TODO: Construct the input needed to run the action\r\n constructor() {}\r\n\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 = () => `CMS_LIST_CONTENT_VIDEO`;\r\n public getCacheObjectType = () => 'CMS_LIST_CONTENT_VIDEO';\r\n public dataCacheType = (): Msdyn365.CacheType => 'none';\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 IGetCmsListContentVideoData {\r\n totalItem: any;\r\n dataCms: AttributeValue[];\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 GetCmsListContentVideoInput();\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 action(input: GetCmsListContentVideoInput, ctx: Msdyn365.IActionContext): Promise {\r\n let pageID: string = '';\r\n let pathName: string = '';\r\n let searchParam: string = '';\r\n if (ctx && ctx.requestContext && ctx.requestContext.url && ctx.requestContext.url.requestUrl) {\r\n pathName = ctx.requestContext.url.requestUrl.pathname;\r\n const pieces = pathName.split(/[\\s\\/]+/);\r\n pageID = pieces[pieces.length - 1];\r\n searchParam = ctx.requestContext.url.requestUrl.search;\r\n }\r\n if (pageID !== '') {\r\n const frontApiEndpoint = ctx.requestContext.app.config.cmsAPIEndpoint && ctx.requestContext.app.config.cmsAPIEndpoint;\r\n const requestUrl = `${frontApiEndpoint}/api/list/node--${pageID}/en${searchParam}`;\r\n\r\n const result = await Msdyn365.sendRequest(requestUrl, 'get')\r\n .then(response => {\r\n return response.data;\r\n })\r\n .catch(error => {\r\n ctx.trace('[GetCmsListContentVideo] Failed to get list video.');\r\n throw error;\r\n });\r\n return result;\r\n }\r\n\r\n return null;\r\n}\r\n\r\nexport default Msdyn365.createObservableDataAction({\r\n action: >action,\r\n // TODO: Give your data action a unique id\r\n id: 'GetCmsListContentVideo',\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});\r\n","/*!\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 Msdyn365 from '@msdyn365-commerce/core';\r\nimport { AttributeValue } from '@msdyn365-commerce/retail-proxy';\r\nimport { ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\n\r\n/**\r\n * GetCmsListContent Input Action\r\n */\r\nexport class GetCmsListContentInput implements Msdyn365.IActionInput {\r\n // TODO: Construct the input needed to run the action\r\n constructor() {}\r\n\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 = () => `CMS_LIST_CONTENT`;\r\n public getCacheObjectType = () => 'CMS_LIST_CONTENT';\r\n public dataCacheType = (): Msdyn365.CacheType => 'none';\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 IGetCmsListContentData {\r\n totalItem: any;\r\n dataCms: AttributeValue[];\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 GetCmsListContentInput();\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 action(input: GetCmsListContentInput, ctx: Msdyn365.IActionContext): Promise {\r\n let pageID: string = '';\r\n let pathName: string = '';\r\n let searchParam: string = '';\r\n const userID: string | undefined = ctx.requestContext.user.customerAccountNumber;\r\n if (ctx && ctx.requestContext && ctx.requestContext.url && ctx.requestContext.url.requestUrl) {\r\n pathName = ctx.requestContext.url.requestUrl.pathname;\r\n const pieces = pathName.split(/[\\s\\/]+/);\r\n pageID = pieces[pieces.length - 1];\r\n searchParam = ctx.requestContext.url.requestUrl.searchParams.toString();\r\n if (ObjectExtensions.isNullOrUndefined(searchParam) || searchParam === '') {\r\n searchParam = `?user-id=${userID}`;\r\n } else {\r\n searchParam = `?${searchParam}&user-id=${userID}`;\r\n }\r\n }\r\n if (pageID !== '') {\r\n const frontApiEndpoint = ctx.requestContext.app.config.cmsAPIEndpoint && ctx.requestContext.app.config.cmsAPIEndpoint;\r\n const requestUrl = `${frontApiEndpoint}/api/list/node--${pageID}/en${searchParam}`;\r\n\r\n const result = await Msdyn365.sendRequest(requestUrl, 'get')\r\n .then(response => {\r\n return response.data;\r\n })\r\n .catch(error => {\r\n ctx.trace('[GetCmsListContent] Failed to get list cms.');\r\n throw error;\r\n });\r\n return result;\r\n }\r\n\r\n return null;\r\n}\r\n\r\nexport default Msdyn365.createObservableDataAction({\r\n action: >action,\r\n // TODO: Give your data action a unique id\r\n id: 'GetCmsListContent',\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});\r\n","/*!\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 Msdyn365 from '@msdyn365-commerce/core';\r\nimport { AttributeValue } from '@msdyn365-commerce/retail-proxy';\r\n\r\n/**\r\n * GetCmsListContent Input Action\r\n */\r\nexport class GetNewsDetailListRecentArticleInput implements Msdyn365.IActionInput {\r\n // TODO: Construct the input needed to run the action\r\n constructor() {}\r\n\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 = () => `CMS_NEWS_RECENT_ARTICLE`;\r\n public getCacheObjectType = () => 'CMS_NEWS_RECENT_ARTICLE';\r\n public dataCacheType = (): Msdyn365.CacheType => 'none';\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 IGetNewsDetailListRecentArticleData {\r\n dataRecentArticle: AttributeValue[];\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 GetNewsDetailListRecentArticleInput();\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 action(\r\n input: GetNewsDetailListRecentArticleInput,\r\n ctx: Msdyn365.IActionContext\r\n): Promise {\r\n const frontApiEndpoint = ctx.requestContext.app.config.cmsAPIEndpoint && ctx.requestContext.app.config.cmsAPIEndpoint;\r\n const requestUrl = `${frontApiEndpoint}/api/list/news-detail/recent-article`;\r\n const result = await Msdyn365.sendRequest(requestUrl, 'get')\r\n .then(response => {\r\n return response.data;\r\n })\r\n .catch(error => {\r\n ctx.trace('[GetCmsNewsDetailListRecentArticle] Failed to get list news recent article.');\r\n throw error;\r\n });\r\n return result;\r\n}\r\n\r\nexport default Msdyn365.createObservableDataAction({\r\n action: >action,\r\n // TODO: Give your data action a unique id\r\n id: 'GetCmsNewsDetailListRecentArticle',\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});\r\n","/*!\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 Msdyn365 from '@msdyn365-commerce/core';\r\nimport { AttributeValue } from '@msdyn365-commerce/retail-proxy';\r\n\r\n/**\r\n * GetCmsListContent Input Action\r\n */\r\nexport class GetNewsDetailListTagsInput implements Msdyn365.IActionInput {\r\n // TODO: Construct the input needed to run the action\r\n constructor() {}\r\n\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 = () => `CMS_NEWS_TAGS`;\r\n public getCacheObjectType = () => 'CMS_NEWS_TAGS';\r\n public dataCacheType = (): Msdyn365.CacheType => 'none';\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 IGetNewsDetailListTagsData {\r\n dataTags: AttributeValue[];\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 GetNewsDetailListTagsInput();\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 action(input: GetNewsDetailListTagsInput, ctx: Msdyn365.IActionContext): Promise {\r\n const frontApiEndpoint = ctx.requestContext.app.config.cmsAPIEndpoint && ctx.requestContext.app.config.cmsAPIEndpoint;\r\n const requestUrl = `${frontApiEndpoint}/api/list/news-detail/tags`;\r\n const result = await Msdyn365.sendRequest(requestUrl, 'get')\r\n .then(response => {\r\n return response.data;\r\n })\r\n .catch(error => {\r\n ctx.trace('[GetCmsNewsDetailListTags] Failed to get list tags.');\r\n throw error;\r\n });\r\n return result;\r\n}\r\n\r\nexport default Msdyn365.createObservableDataAction({\r\n action: >action,\r\n // TODO: Give your data action a unique id\r\n id: 'GetCmsNewsDetailListTags',\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});\r\n","/*!\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 Msdyn365 from '@msdyn365-commerce/core';\r\nimport { AttributeValue } from '@msdyn365-commerce/retail-proxy';\r\n\r\n/**\r\n * GetCmsListContent Input Action\r\n */\r\nexport class GetNewsDetailListTopArticleInput implements Msdyn365.IActionInput {\r\n // TODO: Construct the input needed to run the action\r\n constructor() {}\r\n\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 = () => `CMS_NEWS_TOP_ARTICLE`;\r\n public getCacheObjectType = () => 'CMS_NEWS_TOP_ARTICLE';\r\n public dataCacheType = (): Msdyn365.CacheType => 'none';\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 IGetNewsDetailListTopArticleData {\r\n dataTopArticle: AttributeValue[];\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 GetNewsDetailListTopArticleInput();\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 action(\r\n input: GetNewsDetailListTopArticleInput,\r\n ctx: Msdyn365.IActionContext\r\n): Promise {\r\n const frontApiEndpoint = ctx.requestContext.app.config.cmsAPIEndpoint && ctx.requestContext.app.config.cmsAPIEndpoint;\r\n const requestUrl = `${frontApiEndpoint}/api/list/news-detail/top-article`;\r\n const result = await Msdyn365.sendRequest(requestUrl, 'get')\r\n .then(response => {\r\n return response.data;\r\n })\r\n .catch(error => {\r\n ctx.trace('[GetCmsNewsDetailListTopArticle] Failed to get list news top article.');\r\n throw error;\r\n });\r\n return result;\r\n}\r\n\r\nexport default Msdyn365.createObservableDataAction({\r\n action: >action,\r\n // TODO: Give your data action a unique id\r\n id: 'GetCmsNewsDetailListTopArticle',\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});\r\n","/*!\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\n/* eslint-disable no-duplicate-imports */\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { AttributeValue } from '@msdyn365-commerce/retail-proxy';\r\n\r\n/**\r\n * GetCmsListContent Input Action\r\n */\r\nexport class GetNewsDetailListRecentArticleInput implements Msdyn365.IActionInput {\r\n // TODO: Construct the input needed to run the action\r\n constructor() {}\r\n\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 = () => `CMS_DASHBOARD_RECENT_ARTICLE`;\r\n public getCacheObjectType = () => 'CMS_DASHBOARD_RECENT_ARTICLE';\r\n public dataCacheType = (): Msdyn365.CacheType => 'none';\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 IGetNewsDetailListRecentArticleData {\r\n dataRecentArticle: AttributeValue[];\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 GetNewsDetailListRecentArticleInput();\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 action(\r\n input: GetNewsDetailListRecentArticleInput,\r\n ctx: Msdyn365.IActionContext\r\n): Promise {\r\n // const frontApiEndpoint = 'http://herbal-cms.localhost:8001';\r\n const frontApiEndpoint = ctx.requestContext.app.config.cmsAPIEndpoint && ctx.requestContext.app.config.cmsAPIEndpoint;\r\n const requestUrl = `${frontApiEndpoint}/api/list/news-detail/recent-article`;\r\n const result = await Msdyn365.sendRequest(requestUrl, 'get')\r\n .then(response => {\r\n return response.data;\r\n })\r\n .catch(error => {\r\n ctx.trace('[GetCmsNewsDetailListRecentArticle] Failed to get list news recent article.');\r\n throw error;\r\n });\r\n return result;\r\n}\r\n\r\nexport default Msdyn365.createObservableDataAction({\r\n action: >action,\r\n // TODO: Give your data action a unique id\r\n id: 'GetCmsNewsDetailListRecentArticle',\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});\r\n","/*!\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 Msdyn365 from '@msdyn365-commerce/core';\r\nimport { AttributeValue } from '@msdyn365-commerce/retail-proxy';\r\n\r\n/**\r\n * GetCmsListLibraryDashboard Input Action\r\n */\r\nexport class GetCmsListMyLibraryDashboardInput implements Msdyn365.IActionInput {\r\n // TODO: Construct the input needed to run the action\r\n constructor() {}\r\n\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 = () => `CMS_LIST_MY_LIBRARY_DASHBOARD`;\r\n public getCacheObjectType = () => 'CMS_LIST_MY_LIBRARY_DASHBOARD';\r\n public dataCacheType = (): Msdyn365.CacheType => 'none';\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 IGetCmsListMyLibraryDashboardData {\r\n totalItem: any;\r\n dataLibrary: AttributeValue[];\r\n mess: string | null;\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 GetCmsListMyLibraryDashboardInput();\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 action(\r\n input: GetCmsListMyLibraryDashboardInput,\r\n ctx: Msdyn365.IActionContext\r\n): Promise {\r\n let searchParam: string = '';\r\n let userId: string | undefined = ctx.requestContext.user.customerAccountNumber;\r\n if (ctx && ctx.requestContext && ctx.requestContext.url) {\r\n if (ctx.requestContext.url.requestUrl) {\r\n searchParam = ctx.requestContext.url.requestUrl.search;\r\n }\r\n }\r\n if (userId === undefined) {\r\n userId = '1';\r\n }\r\n const frontApiEndpoint = ctx.requestContext.app.config.cmsAPIEndpoint && ctx.requestContext.app.config.cmsAPIEndpoint;\r\n const requestUrl = `${frontApiEndpoint}/api/list/library/dashboard/${userId}/en${searchParam}`;\r\n const result = await Msdyn365.sendRequest(requestUrl, 'get')\r\n .then(response => {\r\n return response.data;\r\n })\r\n .catch(error => {\r\n ctx.trace('[GetCmsListMyLibraryDashboard] Failed to get list my libary on dashboard.');\r\n throw error;\r\n });\r\n return result;\r\n}\r\n\r\nexport default Msdyn365.createObservableDataAction({\r\n action: >(action),\r\n // TODO: Give your data action a unique id\r\n id: 'GetCmsListMyLibraryDashboard',\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});\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { getSelectedProductIdFromActionInput, getSelectedVariant, SelectedVariantInput } from '@msdyn365-commerce-modules/retail-actions';\r\n/**\r\n * GetCmsProductAttributeContent Input Action\r\n */\r\nexport class GetCmsProductAttributeContentInput implements Msdyn365.IActionInput {\r\n public productId: number;\r\n\r\n public channelId: number;\r\n\r\n public constructor(productId: number | string, channelId: number) {\r\n this.productId = typeof productId === 'string' ? +productId : productId;\r\n this.channelId = channelId;\r\n }\r\n\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 = () => `CMS_Prod_Attr`;\r\n public getCacheObjectType = () => 'CMS_Prod_Attr';\r\n public dataCacheType = (): Msdyn365.CacheType => 'request';\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 IGetCmsProductAttributeContentData {\r\n id: string;\r\n type: string;\r\n title: string;\r\n prod_attr_top: string;\r\n prod_attr_main: string;\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 const productId = getSelectedProductIdFromActionInput(args);\r\n\r\n if (productId) {\r\n return new GetCmsProductAttributeContentInput(+productId, +args.requestContext.apiSettings.channelId);\r\n }\r\n throw new Error('Unable to create createInput, no productId found on module config or query');\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 action(\r\n input: GetCmsProductAttributeContentInput,\r\n ctx: Msdyn365.IActionContext\r\n): Promise {\r\n const selectedVariantInput = new SelectedVariantInput(input.productId, input.channelId);\r\n try {\r\n const productResult = await getSelectedVariant(selectedVariantInput, ctx);\r\n if (productResult && productResult?.ItemId !== undefined) {\r\n // const frontApiEndpoint = 'http://herbal-cms.localhost:8001';\r\n const frontApiEndpoint = ctx.requestContext.app.config.cmsAPIEndpoint && ctx.requestContext.app.config.cmsAPIEndpoint;\r\n const requestUrl = `${frontApiEndpoint}/api/get-product-attribute/${productResult?.ItemId}/en`;\r\n\r\n const result = await Msdyn365.sendRequest(requestUrl, 'get')\r\n .then(response => {\r\n return response.data;\r\n })\r\n .catch(error => {\r\n ctx.trace('[GetCmsProductAttributeContentInput] Failed to get cms detail.');\r\n throw error;\r\n });\r\n return result;\r\n }\r\n\r\n return undefined;\r\n } catch (error) {\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument -- cann't assign type to the error variable.\r\n ctx.telemetry.exception(error);\r\n ctx.telemetry.debug('[getCMSProductAttribute]Error executing action');\r\n return undefined;\r\n }\r\n}\r\n\r\nexport default Msdyn365.createObservableDataAction({\r\n action: >action,\r\n // TODO: Give your data action a unique id\r\n id: 'GetCmsProductAttributeContent',\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});\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 { \n const actionPath = 'modules/herbal-cms-detail-content/actions/get-cms-detail-content.action';\n binding.dataActions[actionPath] = require('partner/modules/herbal-cms-detail-content/actions/get-cms-detail-content.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'modules/herbal-cms-list-content-my-library/actions/get-cms-list-my-library.action';\n binding.dataActions[actionPath] = require('partner/modules/herbal-cms-list-content-my-library/actions/get-cms-list-my-library.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'modules/herbal-cms-list-content-news/actions/get-cms-list-content-news.action';\n binding.dataActions[actionPath] = require('partner/modules/herbal-cms-list-content-news/actions/get-cms-list-content-news.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'modules/herbal-cms-list-content-video/actions/get-cms-list-content-video.action';\n binding.dataActions[actionPath] = require('partner/modules/herbal-cms-list-content-video/actions/get-cms-list-content-video.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'modules/herbal-cms-list-content/actions/get-cms-list-content.action';\n binding.dataActions[actionPath] = require('partner/modules/herbal-cms-list-content/actions/get-cms-list-content.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'modules/herbal-cms-news-recent-article/actions/get-cms-news-recent-article.action';\n binding.dataActions[actionPath] = require('partner/modules/herbal-cms-news-recent-article/actions/get-cms-news-recent-article.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'modules/herbal-cms-news-tags/actions/get-cms-news-detail-list-tags.action';\n binding.dataActions[actionPath] = require('partner/modules/herbal-cms-news-tags/actions/get-cms-news-detail-list-tags.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'modules/herbal-cms-news-top-article/actions/get-cms-news-top-article.action';\n binding.dataActions[actionPath] = require('partner/modules/herbal-cms-news-top-article/actions/get-cms-news-top-article.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'modules/herbal-dashboard-latest-news/actions/get-cms-news-recent-article.action';\n binding.dataActions[actionPath] = require('partner/modules/herbal-dashboard-latest-news/actions/get-cms-news-recent-article.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'modules/herbal-dashboard-my-library/actions/get-cms-list-my-library-dashboard.action';\n binding.dataActions[actionPath] = require('partner/modules/herbal-dashboard-my-library/actions/get-cms-list-my-library-dashboard.action');\n registerActionId(actionPath);\n }\n\n { \n const actionPath = 'modules/herbal-product-specification/actions/get-cms-product-attribute.action';\n binding.dataActions[actionPath] = require('partner/modules/herbal-product-specification/actions/get-cms-product-attribute.action');\n registerActionId(actionPath);\n }\n\n \n window.__bindings__ = window.__bindings__ || {};\n window.__bindings__.modules = {\n ...window.__bindings__.modules || {},\n ...binding.modules\n };\n \n window.__bindings__.packageDataActions = {};\n window.__bindings__.packageDataActions['__local__'] = {\n ...binding.dataActions\n };","module.exports = React;","module.exports = ReactDOM;","'use strict';\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\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 requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar MAX_UINT32 = 0xFFFFFFFF;\nvar min = Math.min;\nvar push = uncurryThis([].push);\nvar stringSlice = uncurryThis(''.slice);\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nvar BUGGY = 'abbc'.split(/(b)*/)[1] === 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length !== 4 ||\n 'ab'.split(/(?:ab)*/).length !== 2 ||\n '.'.split(/(.?)(.?)/).length !== 4 ||\n // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length;\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit = '0'.split(undefined, 0).length ? function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit);\n } : nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = isNullOrUndefined(separator) ? undefined : getMethod(separator, SPLIT);\n return splitter\n ? call(splitter, separator, O, limit)\n : call(internalSplit, toString(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (string, limit) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (!BUGGY) {\n var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n }\n\n var C = speciesConstructor(rx, RegExp);\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return regExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = regExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n push(A, stringSlice(S, p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n push(A, z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n push(A, stringSlice(S, p));\n return A;\n }\n ];\n}, BUGGY || !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n"],"names":["GetCmsDetailContentInput","constructor","getCacheKey","getCacheObjectType","dataCacheType","Msdyn365","action","async","input","ctx","pageID","customerAccountNumber","requestContext","query","p","user","requestUrl","app","config","cmsAPIEndpoint","then","response","data","catch","error","trace","id","args","GetCmsListMyLibraryInput","searchParam","userId","url","searchParams","get","search","undefined","GetCmsListContentNewsInput","pathName","pathname","pieces","split","length","GetCmsListContentVideoInput","GetCmsListContentInput","userID","toString","ObjectExtensions","isNullOrUndefined","GetNewsDetailListRecentArticleInput","GetNewsDetailListTagsInput","GetNewsDetailListTopArticleInput","GetCmsListMyLibraryDashboardInput","GetCmsProductAttributeContentInput","productId","channelId","this","selectedVariantInput","SelectedVariantInput","productResult","getSelectedVariant","ItemId","telemetry","exception","debug","getSelectedProductIdFromActionInput","apiSettings","Error","binding","modules","dataActions","registerActionId","actionPath","default","prototype","Object","keys","forEach","exportName","Action","require","window","__bindings__","_objectSpread","packageDataActions","module","exports","React","ReactDOM","call","uncurryThis","fixRegExpWellKnownSymbolLogic","anObject","requireObjectCoercible","speciesConstructor","advanceStringIndex","toLength","getMethod","regExpExec","stickyHelpers","fails","UNSUPPORTED_Y","min","Math","push","stringSlice","slice","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","re","originalExec","exec","apply","arguments","result","BUGGY","SPLIT","nativeSplit","maybeCallNative","internalSplit","separator","limit","O","splitter","string","rx","S","res","done","value","C","RegExp","unicodeMatching","unicode","flags","ignoreCase","multiline","source","lim","q","A","lastIndex","e","z","i"],"sourceRoot":""}