@telia-ace/knowledge-widget-types-grid 1.0.13 → 1.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.txt +5 -5
- package/README.md +4 -4
- package/{lib-esm → dist}/data/data-client.d.ts +91 -91
- package/{lib → dist}/data/index.d.ts +3 -3
- package/{lib-esm → dist}/data/legacy-conversion.d.ts +75 -75
- package/{lib-esm → dist}/index.d.ts +3 -3
- package/dist/index.js +686 -0
- package/dist/index.js.map +1 -0
- package/dist/index2.js +6 -0
- package/dist/index2.js.map +1 -0
- package/{lib-esm → dist}/widget/extended-widget.d.ts +5 -5
- package/{lib → dist}/widget/index.d.ts +1 -1
- package/{lib-esm → dist}/widget/services.d.ts +3 -3
- package/package.json +14 -15
- package/lib/data/data-client.d.ts +0 -91
- package/lib/data/data-client.js +0 -504
- package/lib/data/index.js +0 -24
- package/lib/data/legacy-conversion.d.ts +0 -75
- package/lib/data/legacy-conversion.js +0 -308
- package/lib/index.d.ts +0 -3
- package/lib/index.js +0 -25
- package/lib/widget/extended-widget.d.ts +0 -5
- package/lib/widget/extended-widget.js +0 -32
- package/lib/widget/index.js +0 -8
- package/lib/widget/services.d.ts +0 -3
- package/lib/widget/services.js +0 -40
- package/lib-esm/data/data-client.js +0 -500
- package/lib-esm/data/index.d.ts +0 -3
- package/lib-esm/data/index.js +0 -3
- package/lib-esm/data/legacy-conversion.js +0 -304
- package/lib-esm/index.js +0 -3
- package/lib-esm/widget/extended-widget.js +0 -30
- package/lib-esm/widget/index.d.ts +0 -1
- package/lib-esm/widget/index.js +0 -1
- package/lib-esm/widget/services.js +0 -12
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/data/legacy-conversion.ts","../src/data/data-client.ts","../src/widget/services.ts","../src/widget/extended-widget.ts"],"sourcesContent":["import {\n CategoryApiResponse,\n ContactApiResponse,\n ContactCategoriesApiResponse,\n ContactMethodApiResponse,\n GuideApiResponse,\n GuideCategoriesApiResponse,\n GuideMatchApiResponse,\n GuideViewApiResponse,\n NoticeApiResponse,\n NoticeListApiResponse,\n TagListApiResponse,\n ValidationApiResult,\n} from '@telia-ace/knowledge-serviceclient';\nimport { ContactMethodType as ContactMethod } from '@telia-ace/knowledge-widget-adapters';\nimport {\n Category,\n DialogItem,\n DialogItemType,\n Guide,\n Notification,\n NotificationList,\n Symbol,\n Tag,\n} from '@telia-ace/knowledge-widget-core';\nimport { FormBuilder } from '@telia-ace/widget-forms';\nimport { DataError, ServiceClientQueryType } from './data-client';\n\nexport type MatchResult = {\n guides: Guide[];\n matches: number;\n topNotifications: Notification[];\n middleNotifications: Notification[];\n bottomNotifications: Notification[];\n notificationLists: NotificationList[];\n tags: Tag[];\n byCategory: { id: string; guides: Guide[]; matches: number }[];\n};\n\nexport type TagsResult = Tag[];\n\nexport type CategoriesResult = {\n categories: Category[];\n matches: number;\n};\n\nexport type NotificationResults = Pick<\n MatchResult,\n 'topNotifications' | 'middleNotifications' | 'bottomNotifications' | 'notificationLists'\n>;\n\nexport type GuideResult = {\n guide: {\n id: string;\n title: string;\n body: string;\n modified: string;\n modifiedBy: string | null;\n publishedBy: string | null;\n published: string;\n connection: string;\n categories: number[];\n hasHandover: boolean;\n allowFeedback: boolean;\n seoMetaDescription: string | null;\n seoAllowIndex: boolean | null;\n perspective: string | null;\n perspectives: { [key: string]: string };\n translations?: { [key: string]: string };\n };\n related: Guide[];\n dialog: DialogItem[];\n contactMethods: ContactMethod[];\n tags: Tag[];\n error?: DataError;\n};\n\nexport type ContactsResult = {\n categories: Category[];\n contactMethods: ContactMethod[];\n topNotifications: Notification[];\n middleNotifications: Notification[];\n bottomNotifications: Notification[];\n notificationLists: NotificationList[];\n};\n\nexport type SubmissionResult = {\n contactMethod?: ContactMethod;\n valid: boolean;\n};\n\nconst convertLegacySymbol = (symbol?: { Type: string; Content: string }): Symbol | undefined => {\n if (symbol) {\n const { Type, Content } = symbol;\n if (Type && Content) {\n return { type: Type, content: Content };\n }\n }\n};\n\nconst mapLegacyCategoriesRecursively = (categories: CategoryApiResponse[]): Category[] => {\n return categories.map((c) => {\n const category: Category = {\n id: c.Id.toString(),\n title: c.Name,\n symbol: convertLegacySymbol(c.DefaultIcon),\n activeSymbol: c.ActiveIcon && convertLegacySymbol(c.ActiveIcon),\n description: c.Description || (c.Attributes && c.Attributes.description) || '',\n matches: c.GuidesCount,\n };\n if (c.Children && c.Children.length) {\n category.items = mapLegacyCategoriesRecursively(c.Children);\n }\n return category;\n });\n};\n\nconst mapNotices = (source: NoticeApiResponse[], type: string): Notification[] => {\n return source\n .filter(({ Type }) => Type === type)\n .map(({ Id, Title, Body }) => ({\n id: Id.toString(),\n title: Title,\n body: Body,\n }));\n};\n\nconst mapNotificationLists = (source: NoticeListApiResponse[]): NotificationList[] => {\n return source.map(({ Id, Title, DefaultIcon, ListNotices, Notices }) => ({\n id: Id.toString(),\n title: Title,\n symbol: convertLegacySymbol(DefaultIcon),\n defaultHeaderOptions: {\n visible: !!ListNotices.length,\n },\n notifications: (ListNotices || [])\n .concat(Notices || [])\n .map(({ Id, Title, Body, Type, Modified }) => ({\n id: Id.toString(),\n title: Title,\n body: Body,\n modified: Modified,\n expandable: Type === 'listNotice',\n })),\n }));\n};\n\nconst mapContactMethodSettings = (\n {\n Id,\n Title,\n DefaultIcon,\n Exits: [Exit],\n ExitType,\n ConfirmationText,\n ExpandFormAutomatically,\n Form,\n Description,\n }: ContactApiResponse,\n Validation?: ValidationApiResult\n): ContactMethod => {\n const { Adapter } = Exit || { Adapter: {} };\n const { ClientName = '', Settings = {}, CustomClientName = '' } = Adapter;\n\n const settings: ContactMethod = {\n id: Id.toString(),\n title: Title,\n description: Description,\n symbol: convertLegacySymbol(DefaultIcon),\n clientName: ClientName === 'custom.adapter' ? CustomClientName : ClientName,\n expanded: true,\n inline: true,\n body: {},\n };\n\n if (ClientName.indexOf('phone') > -1 || ClientName.indexOf('freetext') > -1) {\n const { displayTextBeforeClick, textBeforeClick } = Settings;\n if (displayTextBeforeClick === 'true') {\n settings.expanded = false;\n settings.title = textBeforeClick;\n }\n\n if (ClientName.indexOf('phone.text') > -1) {\n settings.body.phoneNumber = Settings.phoneNumber;\n } else {\n settings.body.freetext = Settings.freetext;\n }\n }\n\n if (\n ClientName.indexOf('chat.popup') > -1 ||\n ClientName.indexOf('link') > -1 ||\n (ClientName === 'custom.adapter' && ExitType === 'custom')\n ) {\n settings.body = Settings;\n settings.body.confirmationFallback = ConfirmationText;\n }\n\n if (ClientName.indexOf('ace') > -1) {\n settings.body = Settings;\n }\n\n if (Form && Form.HasValueComponents) {\n if (Validation) {\n settings.body.form = FormBuilder.fromLegacyForm(Id.toString(), Form, Validation).get();\n } else {\n settings.body.form = FormBuilder.fromLegacyForm(Id.toString(), Form).get();\n }\n if (!ExpandFormAutomatically) {\n settings.expanded = settings.inline = false;\n }\n }\n\n return settings;\n};\n\ntype Modify<T, R> = Omit<T, keyof R> & R;\ntype ExtendedGuideMatchApiResponse = Modify<\n GuideMatchApiResponse,\n {\n ByCategory: { Id: string; Matches: GuideApiResponse[]; TotalMatches: number }[];\n }\n>;\n\nconst mapTags = (tags: TagListApiResponse[] = []): Tag[] => {\n return tags.map(({ Id, Title, TotalMatches, Symbol, DefaultIcon, ActiveIcon }) => ({\n id: Id.toString(),\n title: Title,\n matches: TotalMatches,\n symbol: convertLegacySymbol(DefaultIcon || Symbol),\n defaultIcon: convertLegacySymbol(DefaultIcon),\n activeIcon: convertLegacySymbol(ActiveIcon),\n }));\n};\n\nconst mapGuides = (guides: GuideApiResponse[]) => {\n return guides.map(({ Id, Title, Tags, FirstPublishedDate, Modified }) => ({\n id: Id.toString(),\n title: Title,\n tags: mapTags(Tags),\n published: FirstPublishedDate,\n modified: Modified,\n }));\n};\n\nexport const formatLegacyData = (type: ServiceClientQueryType, data: any) => {\n switch (type) {\n case ServiceClientQueryType.MatchByCategory:\n case ServiceClientQueryType.Match: {\n const result: MatchResult = {\n guides: [],\n matches: 0,\n topNotifications: [],\n middleNotifications: [],\n bottomNotifications: [],\n notificationLists: [],\n tags: [],\n byCategory: [],\n };\n const {\n Matches,\n TotalMatches,\n Notices,\n NoticeLists,\n Tags,\n ByCategory,\n }: ExtendedGuideMatchApiResponse = data;\n\n result.guides = mapGuides(Matches);\n\n result.matches = TotalMatches;\n\n result.byCategory = (ByCategory || []).map(({ Id, Matches, TotalMatches }) => ({\n id: Id,\n guides: mapGuides(Matches),\n matches: TotalMatches,\n }));\n\n result.tags = mapTags(Tags);\n\n result.notificationLists = mapNotificationLists(NoticeLists || []);\n\n result.topNotifications = mapNotices(Notices || [], 'noticeRowTop');\n\n result.middleNotifications = mapNotices(Notices || [], 'noticeRowMiddle');\n\n result.bottomNotifications = mapNotices(Notices || [], 'footerNotice');\n\n return result;\n }\n case ServiceClientQueryType.Categories: {\n const { Children, GuidesCountTotal }: GuideCategoriesApiResponse = data;\n\n const result: CategoriesResult = {\n categories: mapLegacyCategoriesRecursively(Children || []),\n matches: GuidesCountTotal,\n };\n\n return result;\n }\n case ServiceClientQueryType.Guide: {\n const {\n Id,\n Title,\n Body,\n Related,\n Options,\n ConnectionId,\n ContactMethods,\n EnableFeedback,\n HandoverExists,\n FirstPublishedDate,\n Modified,\n ModifiedByDisplayName,\n FirstPublishedByDisplayName,\n Categories,\n Tags,\n SeoMetaDescription,\n SeoAllowIndex,\n Perspectives,\n PerspectiveKey,\n Translations,\n }: GuideViewApiResponse = data;\n\n /* \n PerspectiveKey is always null when on the \"top level\" of a dialog tree\n OR when navigating down a dialog tree in the \"Default answer version\"\n Note: The \"Default answer version\" is not the same as a given guides\n default answer version. The \"Default answer version\" is always the answer\n version in Perspectives with the key \"Default\".\n */\n const perspective =\n PerspectiveKey ||\n Object.values(Perspectives).find((connection) => connection === ConnectionId) ||\n Perspectives['Default'] ||\n null;\n\n const result: GuideResult = {\n guide: {\n id: Id.toString(),\n title: Title,\n body: Body,\n modified: Modified,\n published: FirstPublishedDate,\n modifiedBy: ModifiedByDisplayName,\n publishedBy: FirstPublishedByDisplayName,\n connection: ConnectionId,\n categories: Categories,\n hasHandover: HandoverExists,\n allowFeedback: EnableFeedback,\n seoMetaDescription: SeoMetaDescription,\n seoAllowIndex: SeoAllowIndex,\n perspectives: Perspectives,\n perspective,\n translations: Object.keys(Translations || {}).reduce<{\n [key: string]: string;\n }>((acc, key) => {\n acc[key] = Translations[key].toString();\n return acc;\n }, {}),\n },\n related: mapGuides(Related || []),\n dialog: [],\n contactMethods: (ContactMethods || []).map((cm) => mapContactMethodSettings(cm)),\n tags: mapTags(Tags),\n };\n\n (Options || []).forEach(({ CanAccess, Description, ConnectionId, Properties }) => {\n if (!CanAccess) {\n return;\n }\n\n const item: DialogItem = {\n id: Id.toString(),\n title: Description,\n connection: ConnectionId,\n type: DialogItemType.default,\n parent: {\n id: Id.toString(),\n title: Title,\n tags: mapTags(Tags),\n },\n };\n\n if (Properties.Type === 'Guide' || Properties.Type === 'Link') {\n Properties.Id && (item.id = Properties.Id.toString());\n Properties.Uri && (item.href = Properties.Uri);\n Properties.Target && (item.target = Properties.Target);\n switch (Properties.Type) {\n case 'Guide':\n item.type = DialogItemType.guide;\n break;\n case 'Link':\n item.type = DialogItemType.link;\n break;\n }\n }\n\n result.dialog.push(item);\n });\n\n return result;\n }\n case ServiceClientQueryType.Contacts: {\n const { Children, Matches, Notices, NoticeLists }: ContactCategoriesApiResponse = data;\n\n const result: ContactsResult = {\n contactMethods: (Matches || []).map((cm) => mapContactMethodSettings(cm)),\n categories: mapLegacyCategoriesRecursively(Children || []),\n topNotifications: mapNotices(Notices || [], 'noticeRowTop'),\n middleNotifications: mapNotices(Notices || [], 'noticeRowMiddle'),\n bottomNotifications: mapNotices(Notices || [], 'footerNotice'),\n notificationLists: mapNotificationLists(NoticeLists || []),\n };\n\n return result;\n }\n case ServiceClientQueryType.ContactMethod: {\n const { ContactMethod }: ContactMethodApiResponse = data;\n\n return mapContactMethodSettings(ContactMethod || {});\n }\n case ServiceClientQueryType.Tags:\n case ServiceClientQueryType.TagsOnGuides: {\n return mapTags(data || []);\n }\n case ServiceClientQueryType.Notifications: {\n const { Notices, NoticeLists } = data;\n\n return {\n topNotifications: mapNotices(Notices || [], 'noticeRowTop'),\n middleNotifications: mapNotices(Notices || [], 'noticeRowMiddle'),\n bottomNotifications: mapNotices(Notices || [], 'footerNotice'),\n notificationLists: mapNotificationLists(NoticeLists || []),\n };\n }\n default:\n return {};\n }\n};\n","import { ServiceClient } from '@telia-ace/knowledge-serviceclient';\nimport { WidgetRenderState } from '@telia-ace/knowledge-widget-core';\nimport {\n deepClone,\n removeNullAndUndefinedValues,\n shallowCompare,\n} from '@telia-ace/widget-utilities';\nimport { Container, EventManager, Widget } from '@webprovisions/platform';\nimport { formatLegacyData } from './legacy-conversion';\n\nexport type Subscriber = (...args: any[]) => void;\n\nexport enum DataType {\n Guide = 'guide',\n Guides = 'guides',\n GuidesByCategory = 'guides-by-category',\n RowNotifications = 'row-notices',\n NotificationLists = 'notification-lists',\n GuideCategories = 'guide-categories',\n ContactMethodCategories = 'contact-method-categories',\n ContactMethod = 'contact-method',\n ContactMethods = 'contact-methods',\n Tags = 'tags',\n TagsOnGuides = 'tagsonguides',\n}\n\nexport type DataError = {\n status: number;\n message: string;\n};\n\nexport enum ServiceClientQueryType {\n Match = 'match',\n Categories = 'categories',\n Guide = 'guide',\n Contacts = 'contacts',\n ContactMethod = 'contact-method',\n MatchByCategory = 'match-by-category',\n Tags = 'tags',\n TagsOnGuides = 'tagsonguides',\n Notifications = 'notifications',\n}\n\nexport enum FeedbackType {\n Positive = 'Positive',\n Negative = 'Negative',\n}\n\nexport type QueryParameters = {\n guideId?: string | number;\n categories?: string | number | string[] | number[];\n tagId?: string | number;\n connection?: string;\n\n contactMethodCategoryId?: string | number;\n contactMethodId?: string | number;\n\n searchPhrase?: string | number;\n take?: string | number;\n [key: string]: any;\n\n expandCategories?: 'none' | 'children' | 'descendants';\n sorting?: SortingType;\n guideIds?: string[];\n};\n\nexport enum SortingType {\n POPULARITY_DESCENDING = 'popularity-descending',\n ALPHABETIC_ASCENDING = 'alphabetic-ascending',\n ALPHABETIC_DESCENDING = 'alphabetic-descending',\n MODIFIED_ASCENDING = 'modified-ascending',\n MODIFIED_DESCENDING = 'modified-descending',\n PUBLISHED_ASCENDING = 'published-ascending',\n PUBLISHED_DESCENDING = 'published-descending',\n}\n\nexport type Query = {\n params: QueryParameters;\n resolved: boolean;\n loading: boolean;\n error?: DataError;\n data: any;\n resolvers: {\n resolve: (data: any) => void;\n reject: (data: any) => void;\n }[];\n};\n\nexport const determineServiceClientQueryType = (type: DataType): ServiceClientQueryType => {\n switch (type) {\n case DataType.Guides:\n return ServiceClientQueryType.Match;\n case DataType.GuidesByCategory:\n return ServiceClientQueryType.MatchByCategory;\n case DataType.Guide:\n return ServiceClientQueryType.Guide;\n case DataType.GuideCategories:\n return ServiceClientQueryType.Categories;\n case DataType.ContactMethodCategories:\n case DataType.ContactMethods:\n return ServiceClientQueryType.Contacts;\n case DataType.ContactMethod:\n return ServiceClientQueryType.ContactMethod;\n case DataType.Tags:\n return ServiceClientQueryType.Tags;\n case DataType.TagsOnGuides:\n return ServiceClientQueryType.TagsOnGuides;\n case DataType.NotificationLists:\n case DataType.RowNotifications:\n return ServiceClientQueryType.Notifications;\n default:\n throw 'error';\n }\n};\n\nconst widgetIsHidden = async (container: Container) => {\n const { invoke } = container.get('$widget');\n const renderState = await invoke('renderState');\n return renderState === WidgetRenderState.hidden;\n};\n\nexport default class DataClient {\n private queries: Map<ServiceClientQueryType, Query[]> = new Map();\n private lastTake: number = 0;\n public events: EventManager;\n constructor(private container: Container, private matchingClient: ServiceClient) {\n this.events = (<Widget>container.get('$widget')).events;\n\n this.events.subscribe('widget:settings-updated', () => (this.queries = new Map()));\n\n this.events.subscribe('widget:render-state-changed', (event, { next, previous }) => {\n if (previous === WidgetRenderState.hidden && next === WidgetRenderState.open) {\n this.fetchAllUnresolvedQueries();\n }\n });\n }\n\n static getInstance(container: Container): Promise<DataClient> {\n return container.getAsync('dataClient');\n }\n\n private getUnresolvedQueries = () => {\n let unresolvedCount = 0;\n this.queries.forEach((queries, type) => {\n const hasUnresolved = queries.some((query: Query) => !query.resolved);\n if (hasUnresolved) {\n unresolvedCount = +1;\n }\n });\n return unresolvedCount;\n };\n\n public fetch(type: DataType, params: QueryParameters): Promise<any> {\n return new Promise((resolve, reject) => {\n if (params.take) {\n this.lastTake = +(params.take || 0);\n }\n\n removeNullAndUndefinedValues(params);\n const serviceClientQueryType = determineServiceClientQueryType(type);\n const queries = this.queries.get(serviceClientQueryType) || [];\n const query = queries.find((q) => shallowCompare(q.params, params));\n\n if (query) {\n const index = queries.indexOf(query);\n if (query.resolved) {\n this.events.dispatch('data-client:fetched', {\n params,\n type: serviceClientQueryType,\n response: query.data,\n unresolvedQueries: this.getUnresolvedQueries(),\n });\n this.track(query.data, serviceClientQueryType, query.error);\n if (query.data && query.error) {\n reject({ error: query.error });\n } else {\n resolve(query.data);\n }\n } else {\n query.resolvers.push({ resolve, reject });\n }\n queries.splice(index, 1);\n queries.push(query);\n this.queries.set(serviceClientQueryType, queries);\n if (!query.loading && !query.resolved) {\n return this.runQuery(serviceClientQueryType, params);\n }\n } else {\n queries.push({\n params,\n resolved: false,\n loading: true,\n data: {},\n resolvers: [{ resolve, reject }],\n });\n this.queries.set(serviceClientQueryType, queries);\n\n return this.runQuery(serviceClientQueryType, params);\n }\n }).then((res) => deepClone(res));\n }\n\n // query the cached data\n public read(\n type: DataType,\n options: {\n select?: (data: any) => any; // either return all data by the DataType, or use an selector\n }\n ) {\n const { select } = options;\n const serviceClientQueryType = determineServiceClientQueryType(type);\n const queries = this.queries.get(serviceClientQueryType) || [];\n\n const result = queries.reduce<any[]>((acc, query) => {\n if (typeof select === 'function') {\n const match = select(query.data);\n if (match) {\n acc.push(match);\n }\n } else {\n acc.push(query.data);\n }\n return acc;\n }, []);\n return result;\n }\n\n public feedback(id: string, connection: string, feedback: FeedbackType): Promise<any> {\n return this.matchingClient.giveFeedback(id, connection, feedback);\n }\n\n private setLoadingStatus(\n type: ServiceClientQueryType,\n params: QueryParameters,\n loading: boolean\n ) {\n const queries = this.queries.get(type) || [];\n const query = queries.find((q) => shallowCompare(q.params, params));\n\n if (query) {\n query.loading = loading;\n }\n this.queries.set(type, queries);\n }\n\n private async runQuery(type: ServiceClientQueryType, params: QueryParameters) {\n const {\n searchPhrase = '',\n categories = '0',\n contactMethodCategoryId = '0',\n contactMethodId = '0',\n tagId = undefined,\n take = 5,\n connection = '',\n guideId,\n expandCategories = 'descendants',\n currentCategory,\n sorting = SortingType.POPULARITY_DESCENDING,\n guideIds = [],\n } = params;\n\n const trimmedPhrase = searchPhrase.toString().trim();\n if (await widgetIsHidden(this.container)) {\n return Promise.resolve();\n }\n\n switch (type) {\n case ServiceClientQueryType.Match: {\n const formatSortingValues = (sorting: string) => {\n const [type, direction] = sorting.split('-');\n const sortKeysMap = new Map([\n ['popularity', 'popularity'],\n ['alphabetic', 'title'],\n ['modified', 'lastModified'],\n ['published', 'firstPublished'],\n ]);\n\n return {\n type: sortKeysMap.get(type),\n direction: direction,\n };\n };\n\n if (guideIds.length) {\n return this.matchingClient\n .customRequest('guides', 'POST', {\n configuration: { ids: guideIds, take: +take },\n })\n .then((matches) => matches && this.handleResponse(matches, type, params));\n }\n\n return this.matchingClient\n .match(trimmedPhrase, {\n categories:\n categories === '0'\n ? []\n : Array.isArray(categories)\n ? categories\n : [+categories],\n take: +take,\n tags: tagId,\n sorting: formatSortingValues(sorting),\n ids: guideIds,\n })\n .then((matches) => matches && this.handleResponse(matches, type, params));\n }\n case ServiceClientQueryType.MatchByCategory: {\n return this.matchingClient\n .match(trimmedPhrase, {\n groupByCategory: true,\n categories:\n categories === '0'\n ? []\n : Array.isArray(categories)\n ? categories\n : [+categories],\n take: +take,\n tags: tagId,\n })\n .then((matches) => matches && this.handleResponse(matches, type, params));\n }\n case ServiceClientQueryType.Guide: {\n return this.matchingClient\n .getGuide(guideId, { connectionId: connection })\n .then((guide) => {\n if (guide) {\n this.handleResponse(guide, type, params);\n }\n })\n .catch((e) => {\n const error = {\n message: 'Something went wrong.',\n status: e.status || 400,\n };\n if (error.status === 404) {\n error.message = 'The guide could not be found.';\n }\n this.handleResponse({}, type, params, error);\n });\n }\n case ServiceClientQueryType.Categories: {\n return this.matchingClient\n .getCategories({ phrase: trimmedPhrase, expand: expandCategories, tags: tagId })\n .then(\n (categories) => categories && this.handleResponse(categories, type, params)\n );\n }\n case ServiceClientQueryType.Contacts: {\n if (guideId) {\n return this.matchingClient\n .contactMethods(+guideId, { phrase: trimmedPhrase })\n .then((result) => result && this.handleResponse(result, type, params));\n }\n return this.matchingClient\n .contacts(+contactMethodCategoryId, { phrase: trimmedPhrase })\n .then((result) => result && this.handleResponse(result, type, params));\n }\n case ServiceClientQueryType.ContactMethod: {\n return this.matchingClient\n .getContactMethod(+contactMethodId, { guideId, currentCategory })\n .then((result) => result && this.handleResponse(result, type, params));\n }\n case ServiceClientQueryType.Tags: {\n return this.matchingClient\n .customRequest('tags', 'GET', {\n configuration: {\n take: 999999,\n phrase: trimmedPhrase,\n categories:\n categories === '0'\n ? []\n : Array.isArray(categories)\n ? categories\n : [+categories],\n },\n })\n .then((result) => result && this.handleResponse(result, type, params));\n }\n case ServiceClientQueryType.TagsOnGuides: {\n return this.matchingClient\n .customRequest('tagsonguides', 'GET', {\n configuration: {\n take: 999999,\n phrase: trimmedPhrase,\n categories:\n categories === '0'\n ? []\n : Array.isArray(categories)\n ? categories\n : [+categories],\n tags: tagId,\n },\n })\n .then((result) => result && this.handleResponse(result, type, params));\n }\n case ServiceClientQueryType.Notifications: {\n return this.matchingClient\n .customRequest('notices', 'GET', {\n configuration: {\n phrase: trimmedPhrase,\n categories:\n categories === '0'\n ? []\n : Array.isArray(categories)\n ? categories\n : [+categories],\n },\n })\n .then((result) => result && this.handleResponse(result, type, params));\n }\n }\n }\n\n handleResponse(\n data: any = {},\n type: ServiceClientQueryType,\n params: QueryParameters,\n error?: DataError\n ) {\n const queries = this.queries.get(type) || [];\n const existing = queries.find((q) => shallowCompare(q.params, params));\n if (existing) {\n const formatted = error ? error : formatLegacyData(type, data);\n this.track(formatted, type, error);\n existing.resolvers.forEach((r) => {\n if (error) {\n r.reject({ error: formatted });\n } else {\n r.resolve(formatted);\n }\n });\n\n const index = queries.indexOf(existing);\n if (index > -1) {\n queries.splice(index, 1);\n }\n queries.push({ ...existing, error, resolvers: [], data: formatted, resolved: true });\n this.setLoadingStatus(type, params, false);\n this.queries.set(type, queries);\n if (!error) {\n this.events.dispatch('data-client:fetched', {\n type,\n params,\n response: formatted,\n unresolvedQueries: this.getUnresolvedQueries(),\n });\n }\n }\n }\n\n private fetchAllUnresolvedQueries() {\n for (const [queryType, queries] of this.queries) {\n queries\n .filter((query: Query) => !query.resolved)\n .forEach((query) => {\n this.runQuery(queryType, query.params);\n });\n }\n }\n\n private track(data: any = {}, type: ServiceClientQueryType, error?: DataError) {\n const widget = this.container.get('$widget');\n if (widget && !error) {\n widget.events.dispatch('tracking:service-client-response', {\n type,\n data,\n });\n } else if (widget) {\n widget.events.dispatch('tracking:service-client-error', {\n type,\n error,\n });\n }\n }\n\n static create(container: Container): Promise<DataClient> {\n return container\n .getAsync('matchingClient')\n .then((matchingClient) => new DataClient(container, matchingClient));\n }\n}\n","import { Container } from '@webprovisions/platform';\n\nexport const createContactMethodPlatform = (container: Container) => {\n return import('@telia-ace/knowledge-widget-adapters').then(({ ContactMethodPlatform }) => {\n return ContactMethodPlatform.create(container);\n });\n};\n\nexport const createDataClient = (container: Container) => {\n return import('../data').then(({ DataClient }) => {\n return DataClient.create(container);\n });\n};\n","import { Widget } from '@telia-ace/widget-types-grid';\nimport { Container } from '@webprovisions/platform';\nimport { createContactMethodPlatform, createDataClient } from './services';\n\nexport default class ExtendedWidget extends Widget {\n constructor(container: Container) {\n super(container);\n\n this.container.registerAsync('contactMethods', () =>\n createContactMethodPlatform(this.container)\n );\n this.container.registerAsync('dataClient', () => createDataClient(this.container));\n }\n}\n"],"names":[],"mappings":"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"}
|
package/dist/index2.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { DataClient, DataType, FeedbackType, ServiceClientQueryType, SortingType, determineServiceClientQueryType, formatLegacyData } from "./index.js";
|
|
2
|
+
import "@telia-ace/widget-types-grid";
|
|
3
|
+
import "@telia-ace/knowledge-widget-core";
|
|
4
|
+
import "@telia-ace/widget-utilities";
|
|
5
|
+
import "@telia-ace/widget-forms";
|
|
6
|
+
//# sourceMappingURL=index2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index2.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Widget } from '@telia-ace/widget-types-grid';
|
|
2
|
-
import { Container } from '@webprovisions/platform';
|
|
3
|
-
export default class ExtendedWidget extends Widget {
|
|
4
|
-
constructor(container: Container);
|
|
5
|
-
}
|
|
1
|
+
import { Widget } from '@telia-ace/widget-types-grid';
|
|
2
|
+
import { Container } from '@webprovisions/platform';
|
|
3
|
+
export default class ExtendedWidget extends Widget {
|
|
4
|
+
constructor(container: Container);
|
|
5
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { default as GridWidget } from './extended-widget';
|
|
1
|
+
export { default as GridWidget } from './extended-widget';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { Container } from '@webprovisions/platform';
|
|
2
|
-
export declare const createContactMethodPlatform: (container: Container) => Promise<import("@telia-ace/knowledge-widget-adapters/
|
|
3
|
-
export declare const createDataClient: (container: Container) => Promise<import("../data").DataClient>;
|
|
1
|
+
import { Container } from '@webprovisions/platform';
|
|
2
|
+
export declare const createContactMethodPlatform: (container: Container) => Promise<import("@telia-ace/knowledge-widget-adapters/dist/contact-methods/platform").default>;
|
|
3
|
+
export declare const createDataClient: (container: Container) => Promise<import("../data").DataClient>;
|
package/package.json
CHANGED
|
@@ -1,37 +1,36 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@telia-ace/knowledge-widget-types-grid",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.16",
|
|
4
4
|
"description": "Extended type definition for Grid widget.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
6
6
|
"author": "Telia Company AB",
|
|
7
7
|
"keywords": [
|
|
8
8
|
"telia"
|
|
9
9
|
],
|
|
10
|
-
"
|
|
11
|
-
"
|
|
10
|
+
"module": "dist/index.js",
|
|
11
|
+
"types": "dist/index.d.ts",
|
|
12
12
|
"files": [
|
|
13
13
|
"LICENSE.txt",
|
|
14
14
|
"README.md",
|
|
15
|
-
"
|
|
16
|
-
"lib-esm/"
|
|
15
|
+
"dist/"
|
|
17
16
|
],
|
|
18
17
|
"publishConfig": {
|
|
19
18
|
"access": "public"
|
|
20
19
|
},
|
|
21
20
|
"scripts": {
|
|
22
|
-
"clean": "
|
|
23
|
-
"
|
|
21
|
+
"clean": "rimraf ./dist",
|
|
22
|
+
"precompile": "tsc -emitDeclarationOnly",
|
|
23
|
+
"compile": "vite build"
|
|
24
24
|
},
|
|
25
25
|
"sideEffects": false,
|
|
26
|
-
"typings": "lib/index.d.ts",
|
|
27
26
|
"dependencies": {
|
|
28
|
-
"@telia-ace/knowledge-serviceclient": "^1.0.
|
|
29
|
-
"@telia-ace/knowledge-widget-adapters": "^1.0.
|
|
30
|
-
"@telia-ace/knowledge-widget-core": "^1.0.
|
|
31
|
-
"@telia-ace/widget-forms": "^1.0.
|
|
32
|
-
"@telia-ace/widget-types-grid": "^1.0.
|
|
33
|
-
"@telia-ace/widget-utilities": "^1.0.
|
|
27
|
+
"@telia-ace/knowledge-serviceclient": "^1.0.4",
|
|
28
|
+
"@telia-ace/knowledge-widget-adapters": "^1.0.16",
|
|
29
|
+
"@telia-ace/knowledge-widget-core": "^1.0.9",
|
|
30
|
+
"@telia-ace/widget-forms": "^1.0.11",
|
|
31
|
+
"@telia-ace/widget-types-grid": "^1.0.11",
|
|
32
|
+
"@telia-ace/widget-utilities": "^1.0.2",
|
|
34
33
|
"@webprovisions/platform": "^1.1.2"
|
|
35
34
|
},
|
|
36
|
-
"gitHead": "
|
|
35
|
+
"gitHead": "a8bf8e5c1ca56a4749cd8ec47f756b13431394b4"
|
|
37
36
|
}
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import { ServiceClient } from '@telia-ace/knowledge-serviceclient';
|
|
2
|
-
import { Container, EventManager } from '@webprovisions/platform';
|
|
3
|
-
export declare type Subscriber = (...args: any[]) => void;
|
|
4
|
-
export declare enum DataType {
|
|
5
|
-
Guide = "guide",
|
|
6
|
-
Guides = "guides",
|
|
7
|
-
GuidesByCategory = "guides-by-category",
|
|
8
|
-
RowNotifications = "row-notices",
|
|
9
|
-
NotificationLists = "notification-lists",
|
|
10
|
-
GuideCategories = "guide-categories",
|
|
11
|
-
ContactMethodCategories = "contact-method-categories",
|
|
12
|
-
ContactMethod = "contact-method",
|
|
13
|
-
ContactMethods = "contact-methods",
|
|
14
|
-
Tags = "tags",
|
|
15
|
-
TagsOnGuides = "tagsonguides"
|
|
16
|
-
}
|
|
17
|
-
export declare type DataError = {
|
|
18
|
-
status: number;
|
|
19
|
-
message: string;
|
|
20
|
-
};
|
|
21
|
-
export declare enum ServiceClientQueryType {
|
|
22
|
-
Match = "match",
|
|
23
|
-
Categories = "categories",
|
|
24
|
-
Guide = "guide",
|
|
25
|
-
Contacts = "contacts",
|
|
26
|
-
ContactMethod = "contact-method",
|
|
27
|
-
MatchByCategory = "match-by-category",
|
|
28
|
-
Tags = "tags",
|
|
29
|
-
TagsOnGuides = "tagsonguides",
|
|
30
|
-
Notifications = "notifications"
|
|
31
|
-
}
|
|
32
|
-
export declare enum FeedbackType {
|
|
33
|
-
Positive = "Positive",
|
|
34
|
-
Negative = "Negative"
|
|
35
|
-
}
|
|
36
|
-
export declare type QueryParameters = {
|
|
37
|
-
guideId?: string | number;
|
|
38
|
-
categories?: string | number | string[] | number[];
|
|
39
|
-
tagId?: string | number;
|
|
40
|
-
connection?: string;
|
|
41
|
-
contactMethodCategoryId?: string | number;
|
|
42
|
-
contactMethodId?: string | number;
|
|
43
|
-
searchPhrase?: string | number;
|
|
44
|
-
take?: string | number;
|
|
45
|
-
[key: string]: any;
|
|
46
|
-
expandCategories?: 'none' | 'children' | 'descendants';
|
|
47
|
-
sorting?: SortingType;
|
|
48
|
-
guideIds?: string[];
|
|
49
|
-
};
|
|
50
|
-
export declare enum SortingType {
|
|
51
|
-
POPULARITY_DESCENDING = "popularity-descending",
|
|
52
|
-
ALPHABETIC_ASCENDING = "alphabetic-ascending",
|
|
53
|
-
ALPHABETIC_DESCENDING = "alphabetic-descending",
|
|
54
|
-
MODIFIED_ASCENDING = "modified-ascending",
|
|
55
|
-
MODIFIED_DESCENDING = "modified-descending",
|
|
56
|
-
PUBLISHED_ASCENDING = "published-ascending",
|
|
57
|
-
PUBLISHED_DESCENDING = "published-descending"
|
|
58
|
-
}
|
|
59
|
-
export declare type Query = {
|
|
60
|
-
params: QueryParameters;
|
|
61
|
-
resolved: boolean;
|
|
62
|
-
loading: boolean;
|
|
63
|
-
error?: DataError;
|
|
64
|
-
data: any;
|
|
65
|
-
resolvers: {
|
|
66
|
-
resolve: (data: any) => void;
|
|
67
|
-
reject: (data: any) => void;
|
|
68
|
-
}[];
|
|
69
|
-
};
|
|
70
|
-
export declare const determineServiceClientQueryType: (type: DataType) => ServiceClientQueryType;
|
|
71
|
-
export default class DataClient {
|
|
72
|
-
private container;
|
|
73
|
-
private matchingClient;
|
|
74
|
-
private queries;
|
|
75
|
-
private lastTake;
|
|
76
|
-
events: EventManager;
|
|
77
|
-
constructor(container: Container, matchingClient: ServiceClient);
|
|
78
|
-
static getInstance(container: Container): Promise<DataClient>;
|
|
79
|
-
private getUnresolvedQueries;
|
|
80
|
-
fetch(type: DataType, params: QueryParameters): Promise<any>;
|
|
81
|
-
read(type: DataType, options: {
|
|
82
|
-
select?: (data: any) => any;
|
|
83
|
-
}): any[];
|
|
84
|
-
feedback(id: string, connection: string, feedback: FeedbackType): Promise<any>;
|
|
85
|
-
private setLoadingStatus;
|
|
86
|
-
private runQuery;
|
|
87
|
-
handleResponse(data: any, type: ServiceClientQueryType, params: QueryParameters, error?: DataError): void;
|
|
88
|
-
private fetchAllUnresolvedQueries;
|
|
89
|
-
private track;
|
|
90
|
-
static create(container: Container): Promise<DataClient>;
|
|
91
|
-
}
|