@dso-toolkit/core 68.5.0 → 69.1.0
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/dist/cjs/annotation-list-renvooi-values-9836dd5d.js +13 -0
- package/dist/cjs/annotation-list-renvooi-values-9836dd5d.js.map +1 -0
- package/dist/cjs/dso-alert_6.cjs.entry.js +15 -2
- package/dist/cjs/dso-alert_6.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-annotation-activiteit.cjs.entry.js +2 -1
- package/dist/cjs/dso-annotation-activiteit.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-annotation-omgevingsnormwaarde.cjs.entry.js +2 -1
- package/dist/cjs/dso-annotation-omgevingsnormwaarde.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-autosuggest.cjs.entry.js +149 -20
- package/dist/cjs/dso-autosuggest.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-info_2.cjs.entry.js +1 -1
- package/dist/cjs/dso-label_3.cjs.entry.js +9 -6
- package/dist/cjs/dso-label_3.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-pagination.cjs.entry.js +39 -26
- package/dist/cjs/dso-pagination.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-responsive-element.cjs.entry.js +1 -1
- package/dist/cjs/dso-scrollable.cjs.entry.js +5 -2
- package/dist/cjs/dso-scrollable.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-skiplink.cjs.entry.js +1 -1
- package/dist/cjs/dso-survey-rating.cjs.entry.js +2 -2
- package/dist/cjs/dso-tabs.cjs.entry.js +1 -1
- package/dist/cjs/dso-toggletip.cjs.entry.js +1 -1
- package/dist/cjs/dso-toolkit.cjs.js +1 -1
- package/dist/cjs/dso-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/dso-tree-view.cjs.entry.js +1 -1
- package/dist/cjs/dso-viewer-grid.cjs.entry.js +2 -2
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/annotation/annotation-activiteit/annotation-activiteit.js +2 -1
- package/dist/collection/components/annotation/annotation-activiteit/annotation-activiteit.js.map +1 -1
- package/dist/collection/components/annotation/annotation-list-renvooi-values.js +5 -0
- package/dist/collection/components/annotation/annotation-list-renvooi-values.js.map +1 -0
- package/dist/collection/components/annotation/annotation-omgevingsnormwaarde/annotation-omgevingsnormwaarde.js +2 -1
- package/dist/collection/components/annotation/annotation-omgevingsnormwaarde/annotation-omgevingsnormwaarde.js.map +1 -1
- package/dist/collection/components/autosuggest/autosuggest.css +23 -11
- package/dist/collection/components/autosuggest/autosuggest.interfaces.js.map +1 -1
- package/dist/collection/components/autosuggest/autosuggest.js +158 -23
- package/dist/collection/components/autosuggest/autosuggest.js.map +1 -1
- package/dist/collection/components/ozon-content/nodes/abbr.node.js +11 -0
- package/dist/collection/components/ozon-content/nodes/abbr.node.js.map +1 -0
- package/dist/collection/components/ozon-content/ozon-content-mapper.js +2 -0
- package/dist/collection/components/ozon-content/ozon-content-mapper.js.map +1 -1
- package/dist/collection/components/ozon-content/ozon-content.css +4 -0
- package/dist/collection/components/pagination/pagination.js +39 -26
- package/dist/collection/components/pagination/pagination.js.map +1 -1
- package/dist/collection/components/renvooi/renvooi.js +8 -5
- package/dist/collection/components/renvooi/renvooi.js.map +1 -1
- package/dist/collection/components/responsive-element/responsive-element.js +1 -1
- package/dist/collection/components/scrollable/scrollable.js +5 -2
- package/dist/collection/components/scrollable/scrollable.js.map +1 -1
- package/dist/collection/components/selectable/selectable.js +1 -1
- package/dist/collection/components/skiplink/skiplink.js +1 -1
- package/dist/collection/components/slide-toggle/slide-toggle.js +1 -1
- package/dist/collection/components/survey-rating/survey-rating.js +2 -2
- package/dist/collection/components/table/table.js +1 -1
- package/dist/collection/components/tabs/tabs.js +1 -1
- package/dist/collection/components/toggletip/toggletip.js +1 -1
- package/dist/collection/components/tooltip/tooltip.js +1 -1
- package/dist/collection/components/tree-view/tree-view.js +1 -1
- package/dist/collection/components/viewer-grid/viewer-grid.js +2 -2
- package/dist/components/annotation-list-renvooi-values.js +11 -0
- package/dist/components/annotation-list-renvooi-values.js.map +1 -0
- package/dist/components/dso-annotation-activiteit.js +2 -1
- package/dist/components/dso-annotation-activiteit.js.map +1 -1
- package/dist/components/dso-annotation-omgevingsnormwaarde.js +2 -1
- package/dist/components/dso-annotation-omgevingsnormwaarde.js.map +1 -1
- package/dist/components/dso-autosuggest.js +150 -20
- package/dist/components/dso-autosuggest.js.map +1 -1
- package/dist/components/dso-pagination.js +39 -26
- package/dist/components/dso-pagination.js.map +1 -1
- package/dist/components/dso-skiplink.js +1 -1
- package/dist/components/dso-survey-rating.js +2 -2
- package/dist/components/dso-tabs.js +1 -1
- package/dist/components/dso-tree-view.js +1 -1
- package/dist/components/dso-viewer-grid.js +2 -2
- package/dist/components/ozon-content.js +14 -1
- package/dist/components/ozon-content.js.map +1 -1
- package/dist/components/renvooi.js +8 -5
- package/dist/components/renvooi.js.map +1 -1
- package/dist/components/responsive-element.js +1 -1
- package/dist/components/scrollable.js +5 -2
- package/dist/components/scrollable.js.map +1 -1
- package/dist/components/selectable.js +1 -1
- package/dist/components/slide-toggle.js +1 -1
- package/dist/components/table.js +1 -1
- package/dist/components/toggletip.js +1 -1
- package/dist/components/tooltip.js +1 -1
- package/dist/dso-toolkit/dso-toolkit.esm.js +1 -1
- package/dist/dso-toolkit/dso-toolkit.esm.js.map +1 -1
- package/dist/dso-toolkit/p-03e5e9e1.entry.js +2 -0
- package/dist/dso-toolkit/p-276777d7.entry.js +2 -0
- package/dist/dso-toolkit/p-276777d7.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-d3131297.entry.js → p-327cbc96.entry.js} +2 -2
- package/dist/dso-toolkit/{p-898ad366.entry.js → p-32f26545.entry.js} +2 -2
- package/dist/dso-toolkit/p-3efc1929.entry.js +2 -0
- package/dist/dso-toolkit/p-3efc1929.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-0dcef2bb.entry.js → p-4549dc10.entry.js} +2 -2
- package/dist/dso-toolkit/{p-11e367b3.entry.js → p-4b536d17.entry.js} +2 -2
- package/dist/dso-toolkit/p-7949fc70.entry.js +2 -0
- package/dist/dso-toolkit/p-7949fc70.entry.js.map +1 -0
- package/dist/dso-toolkit/p-b73839a2.js +2 -0
- package/dist/dso-toolkit/p-b73839a2.js.map +1 -0
- package/dist/dso-toolkit/{p-3033a7f3.entry.js → p-cc3366a5.entry.js} +2 -2
- package/dist/dso-toolkit/p-d343ecd3.entry.js +2 -0
- package/dist/dso-toolkit/p-d343ecd3.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-323455dc.entry.js → p-d51d44f7.entry.js} +2 -2
- package/dist/dso-toolkit/p-d51d44f7.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-e9d15fae.entry.js → p-e26460b5.entry.js} +2 -2
- package/dist/dso-toolkit/p-e26460b5.entry.js.map +1 -0
- package/dist/dso-toolkit/p-e2d3d553.entry.js +2 -0
- package/dist/dso-toolkit/{p-880d04c4.entry.js → p-e8064fba.entry.js} +2 -2
- package/dist/dso-toolkit/p-eeca54c6.entry.js +2 -0
- package/dist/dso-toolkit/p-eeca54c6.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-5cdbbba6.entry.js → p-fed0928b.entry.js} +2 -2
- package/dist/esm/annotation-list-renvooi-values-ed9c0ff3.js +11 -0
- package/dist/esm/annotation-list-renvooi-values-ed9c0ff3.js.map +1 -0
- package/dist/esm/dso-alert_6.entry.js +15 -2
- package/dist/esm/dso-alert_6.entry.js.map +1 -1
- package/dist/esm/dso-annotation-activiteit.entry.js +2 -1
- package/dist/esm/dso-annotation-activiteit.entry.js.map +1 -1
- package/dist/esm/dso-annotation-omgevingsnormwaarde.entry.js +2 -1
- package/dist/esm/dso-annotation-omgevingsnormwaarde.entry.js.map +1 -1
- package/dist/esm/dso-autosuggest.entry.js +149 -20
- package/dist/esm/dso-autosuggest.entry.js.map +1 -1
- package/dist/esm/dso-info_2.entry.js +1 -1
- package/dist/esm/dso-label_3.entry.js +9 -6
- package/dist/esm/dso-label_3.entry.js.map +1 -1
- package/dist/esm/dso-pagination.entry.js +39 -26
- package/dist/esm/dso-pagination.entry.js.map +1 -1
- package/dist/esm/dso-responsive-element.entry.js +1 -1
- package/dist/esm/dso-scrollable.entry.js +5 -2
- package/dist/esm/dso-scrollable.entry.js.map +1 -1
- package/dist/esm/dso-skiplink.entry.js +1 -1
- package/dist/esm/dso-survey-rating.entry.js +2 -2
- package/dist/esm/dso-tabs.entry.js +1 -1
- package/dist/esm/dso-toggletip.entry.js +1 -1
- package/dist/esm/dso-toolkit.js +1 -1
- package/dist/esm/dso-tooltip.entry.js +1 -1
- package/dist/esm/dso-tree-view.entry.js +1 -1
- package/dist/esm/dso-viewer-grid.entry.js +2 -2
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/annotation/annotation-list-renvooi-values.d.ts +7 -0
- package/dist/types/components/autosuggest/autosuggest.d.ts +18 -7
- package/dist/types/components/autosuggest/autosuggest.interfaces.d.ts +10 -0
- package/dist/types/components/ozon-content/nodes/abbr.node.d.ts +6 -0
- package/dist/types/components/pagination/pagination.d.ts +2 -0
- package/dist/types/components/renvooi/renvooi.d.ts +1 -0
- package/dist/types/components.d.ts +6 -6
- package/package.json +3 -3
- package/dist/dso-toolkit/p-135bf595.entry.js +0 -2
- package/dist/dso-toolkit/p-135bf595.entry.js.map +0 -1
- package/dist/dso-toolkit/p-2aaad2dd.entry.js +0 -2
- package/dist/dso-toolkit/p-323455dc.entry.js.map +0 -1
- package/dist/dso-toolkit/p-4b70b133.entry.js +0 -2
- package/dist/dso-toolkit/p-4b70b133.entry.js.map +0 -1
- package/dist/dso-toolkit/p-9331c2fc.entry.js +0 -2
- package/dist/dso-toolkit/p-d8c11809.entry.js +0 -2
- package/dist/dso-toolkit/p-d8c11809.entry.js.map +0 -1
- package/dist/dso-toolkit/p-da7f089a.entry.js +0 -2
- package/dist/dso-toolkit/p-da7f089a.entry.js.map +0 -1
- package/dist/dso-toolkit/p-e4f473e2.entry.js +0 -2
- package/dist/dso-toolkit/p-e4f473e2.entry.js.map +0 -1
- package/dist/dso-toolkit/p-e9d15fae.entry.js.map +0 -1
- /package/dist/dso-toolkit/{p-2aaad2dd.entry.js.map → p-03e5e9e1.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-d3131297.entry.js.map → p-327cbc96.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-898ad366.entry.js.map → p-32f26545.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-0dcef2bb.entry.js.map → p-4549dc10.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-11e367b3.entry.js.map → p-4b536d17.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-3033a7f3.entry.js.map → p-cc3366a5.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-9331c2fc.entry.js.map → p-e2d3d553.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-880d04c4.entry.js.map → p-e8064fba.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-5cdbbba6.entry.js.map → p-fed0928b.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autosuggest.js","sourceRoot":"","sources":["../../../../src/components/autosuggest/autosuggest.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, Fragment, h, Listen, Prop, State, VNode, Watch } from \"@stencil/core\";\r\n\r\nimport debounce from \"debounce\";\r\nimport escapeStringRegexp from \"escape-string-regexp\";\r\n\r\nimport { v4 } from \"uuid\";\r\n\r\nimport { i18n } from \"../../utils/i18n\";\r\n\r\nimport { AutosuggestMarkFunction, AutosuggestMarkItem, Suggestion } from \"./autosuggest.interfaces\";\r\nimport { translations } from \"./autosuggest.i18n\";\r\n\r\nconst maxSuggestionsViewable = 10;\r\nconst listboxPaddingBlock = 8;\r\nconst listboxBorderWidth = 1;\r\n\r\n@Component({\r\n tag: \"dso-autosuggest\",\r\n styleUrl: \"autosuggest.scss\",\r\n scoped: true,\r\n})\r\nexport class Autosuggest {\r\n /**\r\n * The suggestions for the value of the slotted input element. Optionally a\r\n * Suggestion can have a `type` and `item`.\r\n *\r\n * The `type` is used to style the suggestion. `item` can be use to reference\r\n * the original object that was used to create the suggestion.\r\n *\r\n * The value should be null when no suggestions have been fetched.\r\n */\r\n @Prop()\r\n readonly suggestions: Suggestion[] | null = null;\r\n\r\n /**\r\n * Shows progress indicator when fetching results.\r\n */\r\n @Prop()\r\n loading = false;\r\n\r\n /**\r\n * To override progress indicator's default loading label.\r\n */\r\n @Prop()\r\n loadingLabel?: string = \"Een moment geduld.\";\r\n\r\n /**\r\n * To delay progress indicator showing (in ms).\r\n */\r\n @Prop()\r\n loadingDelayed?: number;\r\n\r\n /**\r\n * To show text when no results are found.\r\n */\r\n @Prop()\r\n notFoundLabel?: string;\r\n\r\n /**\r\n * Whether the previous suggestions will be presented when the input gets focus again.\r\n */\r\n @Prop()\r\n suggestOnFocus = false;\r\n\r\n /**\r\n * A function provided by the consumer of the autosuggest component, that returns an array of `AutosuggestMarkItem`s\r\n */\r\n @Prop()\r\n mark?: AutosuggestMarkFunction;\r\n\r\n /**\r\n * Emitted when a suggestion is selected.\r\n * The `detail` property of the `CustomEvent` will contain the selected suggestion.\r\n */\r\n @Event()\r\n dsoSelect!: EventEmitter<Suggestion>;\r\n\r\n /**\r\n * This is emitted debounced for every change for the slotted input type=text element.\r\n */\r\n @Event()\r\n dsoChange!: EventEmitter<string>;\r\n\r\n /**\r\n * Emitted when enter is pressed.\r\n * The `detail` property of the `CustomEvent` will contain the input text.\r\n */\r\n @Event()\r\n dsoSearch!: EventEmitter<string>;\r\n\r\n @Element()\r\n host!: HTMLDsoAutosuggestElement;\r\n\r\n @State()\r\n showSuggestions = false;\r\n\r\n @State()\r\n selectedSuggestion: Suggestion | undefined;\r\n\r\n @State()\r\n notFound = false;\r\n\r\n @State()\r\n showLoading = false;\r\n\r\n @State()\r\n listItemBlockSize = 0;\r\n\r\n @State()\r\n listboxContainerMaxBlockSize = 0;\r\n\r\n @Watch(\"suggestions\")\r\n suggestionsWatcher() {\r\n this.resetSelectedSuggestion();\r\n\r\n if ((!this.showSuggestions || !this.notFound) && this.inputValue) {\r\n this.openSuggestions();\r\n } else if ((this.showSuggestions || this.notFound) && !this.inputValue) {\r\n this.closeSuggestions();\r\n }\r\n }\r\n\r\n private input?: HTMLInputElement;\r\n\r\n private listboxContainer: HTMLDsoScrollableElement | undefined;\r\n\r\n private listbox: HTMLUListElement | undefined;\r\n\r\n private listboxItems: HTMLLIElement[] = [];\r\n\r\n private listboxId: string = v4();\r\n\r\n private inputId: string = v4();\r\n\r\n private labelId: string = v4();\r\n\r\n private resizeObserver = new ResizeObserver(debounce(() => this.setListboxContainerMaxBlockSize(), 150));\r\n\r\n private debouncedEmitValue = debounce((value: string) => {\r\n this.dsoChange.emit(value);\r\n this.debouncedShowLoading();\r\n }, 200);\r\n\r\n private debouncedShowLoading = debounce(() => {\r\n if (this.inputValue) {\r\n this.showLoading = true;\r\n }\r\n }, this.loadingDelayed);\r\n\r\n private inputValue = \"\";\r\n\r\n private onInput = (event: Event) => {\r\n if (!(event.target instanceof HTMLInputElement)) {\r\n return;\r\n // throw new Error(\"event.target is not instanceof HTMLInputElement\"); #2293\r\n }\r\n\r\n this.showLoading = !this.loadingDelayed;\r\n this.inputValue = event.target.value;\r\n this.debouncedEmitValue(event.target.value.match(/(\\S+)/g) ? event.target.value : \"\");\r\n };\r\n\r\n private onFocusIn = () => {\r\n if (this.suggestOnFocus) {\r\n this.openSuggestions();\r\n }\r\n };\r\n\r\n @Listen(\"click\", { target: \"document\" })\r\n onDocumentClick(event: MouseEvent) {\r\n if (\r\n (this.showSuggestions || this.notFound) &&\r\n this.listbox &&\r\n event.target instanceof Node &&\r\n !this.listbox.contains(event.target) &&\r\n this.input !== event.target\r\n ) {\r\n this.closeSuggestions();\r\n }\r\n }\r\n\r\n private text = i18n(() => this.host, translations);\r\n\r\n componentDidRender() {\r\n this.setListboxContainerMaxBlockSize();\r\n }\r\n\r\n connectedCallback() {\r\n setTimeout(() => {\r\n const input = this.host.querySelector('input[type=\"text\"]');\r\n if (!(input instanceof HTMLInputElement)) {\r\n return;\r\n // throw new ReferenceError(\"Mandatory text input not found\"); #2293\r\n }\r\n\r\n this.input = input;\r\n if (input.id) {\r\n this.inputId = input.id;\r\n } else {\r\n input.id = this.inputId;\r\n }\r\n\r\n if (!this.input.labels || this.input.labels.length < 1) {\r\n return;\r\n // throw new ReferenceError(\"Mandatory label for text input not found\"); #2293\r\n }\r\n\r\n const label = this.input.labels[0];\r\n if (label?.id) {\r\n this.labelId = label.id;\r\n } else if (label) {\r\n label.id = this.labelId;\r\n }\r\n\r\n this.input.setAttribute(\"role\", \"combobox\");\r\n this.input.setAttribute(\"aria-haspopup\", \"listbox\");\r\n this.input.setAttribute(\"aria-expanded\", \"false\");\r\n this.input.setAttribute(\"autocomplete\", \"off\");\r\n this.input.setAttribute(\"aria-autocomplete\", \"list\");\r\n this.input.setAttribute(\"aria-activedescendant\", \"\");\r\n this.input.addEventListener(\"input\", this.onInput);\r\n this.input.addEventListener(\"keydown\", this.onKeyDown);\r\n this.input.addEventListener(\"focusin\", this.onFocusIn);\r\n\r\n window.addEventListener(\"resize\", this.onWindowResize);\r\n\r\n document.addEventListener(\"scrollend\", this.onScrollend);\r\n\r\n this.resizeObserver.observe(this.host);\r\n\r\n this.setListboxContainerMaxBlockSize();\r\n });\r\n }\r\n\r\n disconnectedCallback() {\r\n this.input?.removeEventListener(\"input\", this.onInput);\r\n this.input?.removeEventListener(\"keydown\", this.onKeyDown);\r\n this.input?.removeEventListener(\"focusin\", this.onFocusIn);\r\n\r\n window.removeEventListener(\"resize\", this.onWindowResize);\r\n\r\n document.removeEventListener(\"scrollend\", this.onScrollend);\r\n\r\n this.resizeObserver.disconnect();\r\n }\r\n\r\n private onWindowResize = debounce(() => this.setListboxContainerMaxBlockSize(), 150);\r\n\r\n private onScrollend = () => this.setListboxContainerMaxBlockSize();\r\n\r\n private setListboxContainerMaxBlockSize(): void {\r\n if (!this.listboxContainer || !this.showSuggestions) {\r\n return;\r\n }\r\n\r\n if (this.listboxItems[0] && this.showSuggestions) {\r\n this.listItemBlockSize = this.listboxItems[0].getBoundingClientRect().height;\r\n }\r\n\r\n const availableBlockSize = window.innerHeight - this.host.getBoundingClientRect().bottom;\r\n const listboxMaxBlockSize =\r\n this.listItemBlockSize * maxSuggestionsViewable + 2 * listboxPaddingBlock + 2 * listboxBorderWidth;\r\n\r\n if (availableBlockSize > this.listItemBlockSize) {\r\n if (availableBlockSize < listboxMaxBlockSize) {\r\n this.listboxContainerMaxBlockSize = availableBlockSize - 2 * listboxPaddingBlock;\r\n } else {\r\n this.listboxContainerMaxBlockSize = listboxMaxBlockSize;\r\n }\r\n }\r\n }\r\n\r\n private showInputValueNotFound(text?: string) {\r\n return this.processAutosuggestMarkItems(this.markTerms(this.input?.value.split(\" \").filter((t) => t) ?? [], text));\r\n }\r\n\r\n private handleMark(\r\n suggestion: Suggestion,\r\n text: string,\r\n type?: \"value\" | \"type\" | \"extra\",\r\n extraIndex?: number,\r\n ): (VNode | string)[] {\r\n if (this.mark && type) {\r\n return this.processAutosuggestMarkItems(this.mark(suggestion, text, type, extraIndex));\r\n }\r\n return this.processAutosuggestMarkItems(this.markTerms(this.input?.value.split(\" \").filter((t) => t) ?? [], text));\r\n }\r\n\r\n private markTerms(terms: string[], suggestionValue?: string): AutosuggestMarkItem[] {\r\n if (!suggestionValue || !terms || terms.length === 0 || terms[0] === undefined) {\r\n return [\"\"];\r\n }\r\n\r\n const termRegex = new RegExp(`(${escapeStringRegexp(terms[0])})`, \"gi\");\r\n\r\n return suggestionValue.split(termRegex).reduce((total: AutosuggestMarkItem[], valuePart: string) => {\r\n if (!valuePart) {\r\n total.push(valuePart);\r\n } else if (termRegex.test(valuePart)) {\r\n total.push({ mark: valuePart });\r\n } else if (terms.length === 1) {\r\n total.push(valuePart);\r\n } else {\r\n total.push(...this.markTerms(terms.slice(1), valuePart));\r\n }\r\n\r\n return total;\r\n }, []);\r\n }\r\n\r\n private processAutosuggestMarkItems(items: AutosuggestMarkItem[]): (VNode | string)[] {\r\n if (items.length === 0) {\r\n return [\"\"];\r\n }\r\n\r\n return items.map((item) => {\r\n if (typeof item === \"object\") {\r\n return <mark>{item.mark}</mark>;\r\n }\r\n return item;\r\n });\r\n }\r\n\r\n private selectSuggestion(suggestion: Suggestion) {\r\n this.selectedSuggestion = suggestion;\r\n\r\n this.setAriaActiveDescendant();\r\n }\r\n\r\n private selectFirstSuggestion() {\r\n if (!this.suggestions) {\r\n return;\r\n }\r\n\r\n this.selectedSuggestion = this.suggestions[0];\r\n\r\n this.setAriaActiveDescendant(true);\r\n }\r\n\r\n private selectLastSuggestion() {\r\n if (!this.suggestions) {\r\n return;\r\n }\r\n\r\n this.selectedSuggestion = this.suggestions[this.suggestions.length - 1];\r\n\r\n this.setAriaActiveDescendant(true);\r\n }\r\n\r\n private selectNextSuggestion() {\r\n if (!this.suggestions) {\r\n return;\r\n }\r\n\r\n const index = this.selectedSuggestion ? this.suggestions.indexOf(this.selectedSuggestion) : -1;\r\n\r\n this.selectedSuggestion = this.suggestions[index + 1] ?? this.suggestions[0];\r\n\r\n this.setAriaActiveDescendant(true);\r\n }\r\n\r\n private selectPreviousSuggestion() {\r\n if (!this.suggestions) {\r\n return;\r\n }\r\n\r\n const index = this.selectedSuggestion ? this.suggestions.indexOf(this.selectedSuggestion) : 0;\r\n\r\n this.selectedSuggestion = this.suggestions[index - 1] ?? this.suggestions[this.suggestions.length - 1];\r\n\r\n this.setAriaActiveDescendant(true);\r\n }\r\n\r\n private setAriaActiveDescendant(scroll = false): void {\r\n if (this.selectedSuggestion) {\r\n const id = this.listboxItemId(this.selectedSuggestion);\r\n this.input?.setAttribute(\"aria-activedescendant\", id);\r\n if (scroll) {\r\n document.getElementById(id)?.scrollIntoView({ block: \"nearest\" });\r\n }\r\n }\r\n }\r\n\r\n private resetSelectedSuggestion() {\r\n this.showLoading = !this.loadingDelayed;\r\n this.notFound = false;\r\n this.selectedSuggestion = undefined;\r\n this.input?.setAttribute(\"aria-activedescendant\", \"\");\r\n }\r\n\r\n private openSuggestions(selectSuggestion?: \"first\" | \"last\") {\r\n this.showSuggestions = (this.suggestions && this.suggestions.length > 0) ?? false;\r\n this.notFound = (this.suggestions && this.suggestions?.length === 0) ?? false;\r\n this.input?.setAttribute(\"aria-expanded\", (this.showSuggestions || this.notFound).toString());\r\n\r\n if (this.showSuggestions && selectSuggestion === \"first\") {\r\n this.selectFirstSuggestion();\r\n } else if (this.showSuggestions && selectSuggestion === \"last\") {\r\n this.selectLastSuggestion();\r\n }\r\n }\r\n\r\n private closeSuggestions() {\r\n this.showSuggestions = false;\r\n this.notFound = false;\r\n this.input?.setAttribute(\"aria-expanded\", \"false\");\r\n this.selectFirstSuggestion();\r\n }\r\n\r\n private pickSelectedValue() {\r\n if (this.selectedSuggestion && this.showSuggestions) {\r\n this.dsoSelect.emit(this.selectedSuggestion);\r\n } else {\r\n this.dsoSearch.emit(this.input?.value);\r\n }\r\n\r\n this.closeSuggestions();\r\n }\r\n\r\n private onKeyDown = (event: KeyboardEvent) => {\r\n if (event.defaultPrevented || this.loading) {\r\n return;\r\n }\r\n\r\n switch (event.key) {\r\n case \"ArrowDown\":\r\n if (!this.showSuggestions) {\r\n this.openSuggestions(\"first\");\r\n } else {\r\n this.selectNextSuggestion();\r\n }\r\n\r\n break;\r\n\r\n case \"ArrowUp\":\r\n if (!this.showSuggestions) {\r\n this.openSuggestions(\"last\");\r\n } else {\r\n this.selectPreviousSuggestion();\r\n }\r\n\r\n break;\r\n\r\n case \"Tab\":\r\n this.closeSuggestions();\r\n return;\r\n\r\n case \"Escape\":\r\n this.closeSuggestions();\r\n break;\r\n\r\n case \"Enter\":\r\n this.pickSelectedValue();\r\n break;\r\n\r\n default:\r\n return;\r\n }\r\n\r\n event.preventDefault();\r\n };\r\n\r\n private listboxItemId(suggestion: Suggestion): string {\r\n if (!this.suggestions) {\r\n return \"\";\r\n }\r\n return `${this.inputId}-${this.suggestions.indexOf(suggestion) + 1}`;\r\n }\r\n\r\n private getChunkedExtras(extras: string[]): string[][] {\r\n return extras.reduce((resultArray: string[][], extra, index) => {\r\n const chunkIndex = Math.floor(index / 2);\r\n\r\n if (!resultArray[chunkIndex]) {\r\n resultArray[chunkIndex] = [];\r\n }\r\n resultArray[chunkIndex]?.push(extra);\r\n return resultArray;\r\n }, []);\r\n }\r\n\r\n render() {\r\n this.listboxItems = [];\r\n\r\n const showListbox = this.showSuggestions || this.notFound;\r\n\r\n if (showListbox && this.input) {\r\n this.input.setAttribute(\"aria-controls\", this.listboxId);\r\n } else if (this.input) {\r\n this.input.removeAttribute(\"aria-controls\");\r\n }\r\n\r\n return (\r\n <>\r\n <slot />\r\n {this.loading && this.showLoading ? (\r\n <div class=\"autosuggest-progress-box\">\r\n <dso-progress-indicator label={this.loadingLabel}></dso-progress-indicator>\r\n </div>\r\n ) : (\r\n showListbox && (\r\n <dso-scrollable\r\n class=\"listbox-container\"\r\n ref={(element) => (this.listboxContainer = element)}\r\n style={{ \"--max-block-size\": `${this.listboxContainerMaxBlockSize}px` }}\r\n >\r\n <ul\r\n role=\"listbox\"\r\n aria-live=\"polite\"\r\n id={this.listboxId}\r\n aria-labelledby={this.labelId}\r\n ref={(element) => (this.listbox = element)}\r\n tabindex=\"0\"\r\n >\r\n {(this.showSuggestions &&\r\n this.suggestions &&\r\n this.suggestions.map((suggestion) => (\r\n <li\r\n role=\"option\"\r\n id={this.listboxItemId(suggestion)}\r\n key={suggestion.value}\r\n onMouseEnter={() => this.selectSuggestion(suggestion)}\r\n onMouseLeave={() => this.resetSelectedSuggestion()}\r\n onClick={() => this.pickSelectedValue()}\r\n aria-selected={(suggestion === this.selectedSuggestion).toString()}\r\n aria-label={suggestion.value}\r\n ref={(li) => li && this.listboxItems.push(li)}\r\n >\r\n <div class=\"suggestion-row\">\r\n <span class=\"value\">{this.handleMark(suggestion, suggestion.value, \"value\")}</span>\r\n {suggestion.type ? (\r\n <span class=\"type\">{this.handleMark(suggestion, suggestion.type, \"type\")}</span>\r\n ) : undefined}\r\n </div>\r\n {suggestion.extras &&\r\n this.getChunkedExtras(suggestion.extras).map((chunk, index) => (\r\n <div class=\"suggestion-row\">\r\n {chunk.map((c, i) => (\r\n <span class=\"extra\">{this.handleMark(suggestion, c, \"extra\", index * 2 + i)}</span>\r\n ))}\r\n </div>\r\n ))}\r\n </li>\r\n ))) ||\r\n (this.notFound && (\r\n <li>\r\n <span class=\"value\">\r\n {this.notFoundLabel ||\r\n this.showInputValueNotFound(this.text(\"notFound\", { inputValue: this.inputValue }))}\r\n </span>\r\n </li>\r\n ))}\r\n </ul>\r\n </dso-scrollable>\r\n )\r\n )}\r\n </>\r\n );\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"autosuggest.js","sourceRoot":"","sources":["../../../../src/components/autosuggest/autosuggest.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\r\n Component,\r\n Element,\r\n Event,\r\n EventEmitter,\r\n Fragment,\r\n FunctionalComponent,\r\n h,\r\n Listen,\r\n Prop,\r\n State,\r\n VNode,\r\n Watch,\r\n} from \"@stencil/core\";\r\n\r\nimport debounce from \"debounce\";\r\nimport escapeStringRegexp from \"escape-string-regexp\";\r\n\r\nimport { v4 } from \"uuid\";\r\n\r\nimport { i18n } from \"../../utils/i18n\";\r\n\r\nimport { AutosuggestMarkFunction, AutosuggestMarkItem, Suggestion, SuggestionGroup } from \"./autosuggest.interfaces\";\r\nimport { translations } from \"./autosuggest.i18n\";\r\n\r\ninterface MarkedSuggestion {\r\n value: (VNode | string)[];\r\n type?: (VNode | string)[];\r\n extras?: (VNode | string)[][][];\r\n}\r\n\r\nconst maxSuggestionsViewable = 10;\r\nconst listboxPaddingBlock = 8;\r\nconst listboxBorderWidth = 1;\r\n\r\nconst Option: FunctionalComponent<{\r\n id: string;\r\n mouseEnter: () => void;\r\n mouseLeave: () => void;\r\n click: () => void;\r\n selected: string;\r\n suggestion: Suggestion;\r\n markedSuggestion: MarkedSuggestion;\r\n ref: (element: HTMLDivElement | undefined) => void;\r\n}> = ({ id, mouseEnter, mouseLeave, click, selected, suggestion, ref, markedSuggestion }) => (\r\n <div\r\n class=\"option\"\r\n role=\"option\"\r\n id={id}\r\n onMouseEnter={mouseEnter}\r\n onMouseLeave={mouseLeave}\r\n onClick={click}\r\n aria-selected={selected}\r\n aria-label={suggestion.value}\r\n ref={ref}\r\n >\r\n <div class=\"suggestion-row\">\r\n <span class=\"value\">{markedSuggestion.value}</span>\r\n {markedSuggestion.type ? <span class=\"type\">{markedSuggestion.type}</span> : undefined}\r\n </div>\r\n {markedSuggestion.extras &&\r\n markedSuggestion.extras.map((markedChunk) => (\r\n <div class=\"suggestion-row\">\r\n {markedChunk.map((extra) => (\r\n <span class=\"extra\">{extra}</span>\r\n ))}\r\n </div>\r\n ))}\r\n </div>\r\n);\r\n\r\nfunction isGrouped(suggestions: Suggestion[] | SuggestionGroup[] | null): suggestions is SuggestionGroup[] {\r\n return (\r\n !!suggestions &&\r\n suggestions.length > 0 &&\r\n suggestions.every(\r\n (suggestion) =>\r\n suggestion !== undefined &&\r\n \"groupLabel\" in suggestion &&\r\n suggestion.groupLabel !== undefined &&\r\n \"suggestions\" in suggestion &&\r\n suggestion.suggestions.length > 0,\r\n )\r\n );\r\n}\r\n\r\nfunction isFlat(suggestions: Suggestion[] | SuggestionGroup[] | null): suggestions is Suggestion[] {\r\n return (\r\n !!suggestions &&\r\n suggestions.length > 0 &&\r\n suggestions.every(\r\n (suggestion) => suggestion !== undefined && \"value\" in suggestion && suggestion.value !== undefined,\r\n )\r\n );\r\n}\r\n\r\n@Component({\r\n tag: \"dso-autosuggest\",\r\n styleUrl: \"autosuggest.scss\",\r\n scoped: true,\r\n})\r\nexport class Autosuggest {\r\n /**\r\n * The suggestions for the value of the slotted input element.\r\n *\r\n * This can be an array of type Suggestion or an Array of type SuggestionGroup.\r\n *\r\n * A suggestionGroup must have a `groupLabel` and `suggestions`.\r\n *\r\n * A suggestion must have a `value` and can have a `type`, an `item` or `extras`.\r\n *\r\n * The `type` is used to style the suggestion. `item` can be use to reference the original object that was used to\r\n * create the suggestion. `extras` is an array of additional strings to further specify the suggestion.\r\n *\r\n * The value should be null when no suggestions have been fetched.\r\n */\r\n @Prop()\r\n readonly suggestions: Suggestion[] | SuggestionGroup[] | null = null;\r\n\r\n /**\r\n * Shows progress indicator when fetching results.\r\n */\r\n @Prop()\r\n loading = false;\r\n\r\n /**\r\n * To override progress indicator's default loading label.\r\n */\r\n @Prop()\r\n loadingLabel?: string = \"Een moment geduld.\";\r\n\r\n /**\r\n * To delay progress indicator showing (in ms).\r\n */\r\n @Prop()\r\n loadingDelayed?: number;\r\n\r\n /**\r\n * To show text when no results are found.\r\n */\r\n @Prop()\r\n notFoundLabel?: string;\r\n\r\n /**\r\n * Whether the previous suggestions will be presented when the input gets focus again.\r\n */\r\n @Prop()\r\n suggestOnFocus = false;\r\n\r\n /**\r\n * A function provided by the consumer of the autosuggest component, that returns an array of `AutosuggestMarkItem`s\r\n */\r\n @Prop()\r\n mark?: AutosuggestMarkFunction;\r\n\r\n /**\r\n * Emitted when a suggestion is selected.\r\n * The `detail` property of the `CustomEvent` will contain the selected suggestion.\r\n */\r\n @Event()\r\n dsoSelect!: EventEmitter<Suggestion>;\r\n\r\n /**\r\n * This is emitted debounced for every change for the slotted input type=text element.\r\n */\r\n @Event()\r\n dsoChange!: EventEmitter<string>;\r\n\r\n /**\r\n * Emitted when enter is pressed.\r\n * The `detail` property of the `CustomEvent` will contain the input text.\r\n */\r\n @Event()\r\n dsoSearch!: EventEmitter<string>;\r\n\r\n @Element()\r\n host!: HTMLDsoAutosuggestElement;\r\n\r\n @State()\r\n showSuggestions = false;\r\n\r\n @State()\r\n selectedSuggestion: Suggestion | undefined;\r\n\r\n @State()\r\n selectedSuggestionGroup: SuggestionGroup | undefined;\r\n\r\n @State()\r\n notFound = false;\r\n\r\n @State()\r\n showLoading = false;\r\n\r\n @State()\r\n listItemBlockSize = 0;\r\n\r\n @State()\r\n listboxContainerMaxBlockSize = 0;\r\n\r\n @Watch(\"suggestions\")\r\n suggestionsWatcher() {\r\n this.resetSelectedSuggestion();\r\n\r\n if ((!this.showSuggestions || !this.notFound) && this.inputValue) {\r\n this.openSuggestions();\r\n } else if ((this.showSuggestions || this.notFound) && !this.inputValue) {\r\n this.closeSuggestions();\r\n }\r\n }\r\n\r\n private input?: HTMLInputElement;\r\n\r\n private listboxContainer: HTMLDsoScrollableElement | undefined;\r\n\r\n private listbox: HTMLDivElement | undefined;\r\n\r\n private listboxItems: HTMLDivElement[] = [];\r\n\r\n private listboxId: string = v4();\r\n\r\n private inputId: string = v4();\r\n\r\n private labelId: string = v4();\r\n\r\n private resizeObserver = new ResizeObserver(debounce(() => this.setListboxContainerMaxBlockSize(), 150));\r\n\r\n private debouncedEmitValue = debounce((value: string) => {\r\n this.dsoChange.emit(value);\r\n this.debouncedShowLoading();\r\n }, 200);\r\n\r\n private debouncedShowLoading = debounce(() => {\r\n if (this.inputValue) {\r\n this.showLoading = true;\r\n }\r\n }, this.loadingDelayed);\r\n\r\n private inputValue = \"\";\r\n\r\n private onInput = (event: Event) => {\r\n if (!(event.target instanceof HTMLInputElement)) {\r\n return;\r\n // throw new Error(\"event.target is not instanceof HTMLInputElement\"); #2293\r\n }\r\n\r\n this.showLoading = !this.loadingDelayed;\r\n this.inputValue = event.target.value;\r\n this.debouncedEmitValue(event.target.value.match(/(\\S+)/g) ? event.target.value : \"\");\r\n };\r\n\r\n private onFocusIn = () => {\r\n if (this.suggestOnFocus) {\r\n this.openSuggestions();\r\n }\r\n };\r\n\r\n @Listen(\"click\", { target: \"document\" })\r\n onDocumentClick(event: MouseEvent) {\r\n if (\r\n (this.showSuggestions || this.notFound) &&\r\n this.listbox &&\r\n event.target instanceof Node &&\r\n !this.listbox.contains(event.target) &&\r\n this.input !== event.target\r\n ) {\r\n this.closeSuggestions();\r\n }\r\n }\r\n\r\n private text = i18n(() => this.host, translations);\r\n\r\n componentDidRender() {\r\n this.setListboxContainerMaxBlockSize();\r\n }\r\n\r\n connectedCallback() {\r\n setTimeout(() => {\r\n const input = this.host.querySelector('input[type=\"text\"]');\r\n if (!(input instanceof HTMLInputElement)) {\r\n return;\r\n // throw new ReferenceError(\"Mandatory text input not found\"); #2293\r\n }\r\n\r\n this.input = input;\r\n if (input.id) {\r\n this.inputId = input.id;\r\n } else {\r\n input.id = this.inputId;\r\n }\r\n\r\n if (!this.input.labels || this.input.labels.length < 1) {\r\n return;\r\n // throw new ReferenceError(\"Mandatory label for text input not found\"); #2293\r\n }\r\n\r\n const label = this.input.labels[0];\r\n if (label?.id) {\r\n this.labelId = label.id;\r\n } else if (label) {\r\n label.id = this.labelId;\r\n }\r\n\r\n this.input.setAttribute(\"role\", \"combobox\");\r\n this.input.setAttribute(\"aria-haspopup\", \"listbox\");\r\n this.input.setAttribute(\"aria-expanded\", \"false\");\r\n this.input.setAttribute(\"autocomplete\", \"off\");\r\n this.input.setAttribute(\"aria-autocomplete\", \"list\");\r\n this.input.setAttribute(\"aria-activedescendant\", \"\");\r\n this.input.addEventListener(\"input\", this.onInput);\r\n this.input.addEventListener(\"keydown\", this.onKeyDown);\r\n this.input.addEventListener(\"focusin\", this.onFocusIn);\r\n\r\n window.addEventListener(\"resize\", this.onWindowResize);\r\n\r\n document.addEventListener(\"scrollend\", this.onScrollend);\r\n\r\n this.resizeObserver.observe(this.host);\r\n\r\n this.setListboxContainerMaxBlockSize();\r\n });\r\n }\r\n\r\n disconnectedCallback() {\r\n this.input?.removeEventListener(\"input\", this.onInput);\r\n this.input?.removeEventListener(\"keydown\", this.onKeyDown);\r\n this.input?.removeEventListener(\"focusin\", this.onFocusIn);\r\n\r\n window.removeEventListener(\"resize\", this.onWindowResize);\r\n\r\n document.removeEventListener(\"scrollend\", this.onScrollend);\r\n\r\n this.resizeObserver.disconnect();\r\n }\r\n\r\n private onWindowResize = debounce(() => this.setListboxContainerMaxBlockSize(), 150);\r\n\r\n private onScrollend = () => this.setListboxContainerMaxBlockSize();\r\n\r\n private setListboxContainerMaxBlockSize(): void {\r\n if (!this.listboxContainer || !this.showSuggestions) {\r\n return;\r\n }\r\n\r\n if (this.listboxItems[0] && this.showSuggestions) {\r\n this.listItemBlockSize = this.listboxItems[0].getBoundingClientRect().height;\r\n }\r\n\r\n const availableBlockSize = window.innerHeight - this.host.getBoundingClientRect().bottom;\r\n const listboxMaxBlockSize =\r\n this.listItemBlockSize * maxSuggestionsViewable + 2 * listboxPaddingBlock + 2 * listboxBorderWidth;\r\n\r\n if (availableBlockSize > this.listItemBlockSize) {\r\n if (availableBlockSize < listboxMaxBlockSize) {\r\n this.listboxContainerMaxBlockSize = availableBlockSize - 2 * listboxPaddingBlock;\r\n } else {\r\n this.listboxContainerMaxBlockSize = listboxMaxBlockSize;\r\n }\r\n }\r\n }\r\n\r\n private showInputValueNotFound(text?: string) {\r\n return this.processAutosuggestMarkItems(this.markTerms(this.input?.value.split(\" \").filter((t) => t) ?? [], text));\r\n }\r\n\r\n private handleMark(\r\n suggestion: Suggestion,\r\n text: string,\r\n type?: \"value\" | \"type\" | \"extra\",\r\n extraIndex?: number,\r\n ): (VNode | string)[] {\r\n if (this.mark && type) {\r\n return this.processAutosuggestMarkItems(this.mark(suggestion, text, type, extraIndex));\r\n }\r\n return this.processAutosuggestMarkItems(this.markTerms(this.input?.value.split(\" \").filter((t) => t) ?? [], text));\r\n }\r\n\r\n private markTerms(terms: string[], suggestionValue?: string): AutosuggestMarkItem[] {\r\n if (!suggestionValue || !terms || terms.length === 0 || terms[0] === undefined) {\r\n return [\"\"];\r\n }\r\n\r\n const termRegex = new RegExp(`(${escapeStringRegexp(terms[0])})`, \"gi\");\r\n\r\n return suggestionValue.split(termRegex).reduce((total: AutosuggestMarkItem[], valuePart: string) => {\r\n if (!valuePart) {\r\n total.push(valuePart);\r\n } else if (termRegex.test(valuePart)) {\r\n total.push({ mark: valuePart });\r\n } else if (terms.length === 1) {\r\n total.push(valuePart);\r\n } else {\r\n total.push(...this.markTerms(terms.slice(1), valuePart));\r\n }\r\n\r\n return total;\r\n }, []);\r\n }\r\n\r\n private processAutosuggestMarkItems(items: AutosuggestMarkItem[]): (VNode | string)[] {\r\n if (items.length === 0) {\r\n return [\"\"];\r\n }\r\n\r\n return items.map((item) => {\r\n if (typeof item === \"object\") {\r\n return <mark>{item.mark}</mark>;\r\n }\r\n return item;\r\n });\r\n }\r\n\r\n private selectSuggestion(suggestion: Suggestion, group?: SuggestionGroup) {\r\n this.selectedSuggestion = suggestion;\r\n this.selectedSuggestionGroup = group;\r\n\r\n this.setAriaActiveDescendant();\r\n }\r\n\r\n private selectFirstSuggestion() {\r\n if (!this.suggestions) {\r\n return;\r\n }\r\n\r\n if (isGrouped(this.suggestions) && this.selectedSuggestionGroup) {\r\n this.selectedSuggestion = this.selectedSuggestionGroup.suggestions[0];\r\n } else {\r\n if (isFlat(this.suggestions)) {\r\n this.selectedSuggestion = this.suggestions[0];\r\n }\r\n }\r\n\r\n this.setAriaActiveDescendant(true);\r\n }\r\n\r\n private selectLastSuggestion() {\r\n if (!this.suggestions) {\r\n return;\r\n }\r\n\r\n if (isGrouped(this.suggestions) && this.selectedSuggestionGroup) {\r\n this.selectedSuggestion =\r\n this.selectedSuggestionGroup.suggestions[this.selectedSuggestionGroup.suggestions.length - 1];\r\n } else {\r\n if (isFlat(this.suggestions)) {\r\n this.selectedSuggestion = this.suggestions[this.suggestions.length - 1];\r\n }\r\n }\r\n this.setAriaActiveDescendant(true);\r\n }\r\n\r\n private selectNextSuggestion() {\r\n if (!this.suggestions) {\r\n return;\r\n }\r\n\r\n if (isGrouped(this.suggestions)) {\r\n this.selectNextGroupedSuggestion();\r\n } else {\r\n const index = this.selectedSuggestion ? this.suggestions.indexOf(this.selectedSuggestion) : -1;\r\n\r\n this.selectedSuggestion = this.suggestions[index + 1] ?? this.suggestions[0];\r\n }\r\n\r\n this.setAriaActiveDescendant(true);\r\n }\r\n\r\n private selectNextGroupedSuggestion() {\r\n if (!this.suggestions) {\r\n return;\r\n }\r\n\r\n if (this.selectedSuggestionGroup) {\r\n const indexInGroup = this.selectedSuggestion\r\n ? this.selectedSuggestionGroup.suggestions.indexOf(this.selectedSuggestion)\r\n : -1;\r\n\r\n if (indexInGroup === this.selectedSuggestionGroup.suggestions.length - 1) {\r\n // Move to first suggestion in next or first group\r\n const groupIndex = this.suggestionGroups.indexOf(this.selectedSuggestionGroup);\r\n this.selectedSuggestionGroup = this.suggestionGroups[groupIndex + 1] ?? this.suggestionGroups[0];\r\n this.selectedSuggestion = this.selectedSuggestionGroup!.suggestions[0];\r\n } else {\r\n // Within this group\r\n this.selectedSuggestion = this.selectedSuggestionGroup.suggestions[indexInGroup + 1];\r\n }\r\n } else {\r\n this.selectedSuggestionGroup = this.suggestionGroups[0];\r\n this.selectedSuggestion = this.selectedSuggestionGroup!.suggestions[0];\r\n }\r\n }\r\n\r\n private selectPreviousSuggestion() {\r\n if (!this.suggestions) {\r\n return;\r\n }\r\n\r\n if (isGrouped(this.suggestions)) {\r\n this.selectPreviousGroupedSuggestion();\r\n } else {\r\n const index = this.selectedSuggestion ? this.suggestions.indexOf(this.selectedSuggestion) : 0;\r\n\r\n this.selectedSuggestion = this.suggestions[index - 1] ?? this.suggestions[this.suggestions.length - 1];\r\n }\r\n\r\n this.setAriaActiveDescendant(true);\r\n }\r\n\r\n private selectPreviousGroupedSuggestion() {\r\n if (!this.suggestions) {\r\n return;\r\n }\r\n\r\n if (this.selectedSuggestionGroup) {\r\n const indexInGroup = this.selectedSuggestion\r\n ? this.selectedSuggestionGroup.suggestions.indexOf(this.selectedSuggestion)\r\n : -1;\r\n\r\n if (indexInGroup === 0) {\r\n // Move to last suggestion in previous or last group\r\n const groupIndex = this.suggestionGroups.indexOf(this.selectedSuggestionGroup);\r\n\r\n this.selectedSuggestionGroup =\r\n this.suggestionGroups[groupIndex - 1] ?? this.suggestionGroups[this.suggestions.length - 1];\r\n this.selectedSuggestion =\r\n this.selectedSuggestionGroup!.suggestions[this.selectedSuggestionGroup!.suggestions.length - 1];\r\n } else {\r\n // Within this group\r\n this.selectedSuggestion = this.selectedSuggestionGroup.suggestions[indexInGroup - 1];\r\n }\r\n } else {\r\n this.selectedSuggestionGroup = this.suggestionGroups[this.suggestions.length - 1];\r\n this.selectedSuggestion =\r\n this.selectedSuggestionGroup!.suggestions[this.selectedSuggestionGroup!.suggestions.length - 1];\r\n }\r\n }\r\n\r\n private get suggestionGroups(): SuggestionGroup[] {\r\n return isGrouped(this.suggestions) ? this.suggestions : [];\r\n }\r\n\r\n private setAriaActiveDescendant(scroll = false): void {\r\n if (this.selectedSuggestion) {\r\n const id = this.selectedSuggestionGroup\r\n ? this.listboxGroupedItemId(this.selectedSuggestionGroup, this.selectedSuggestion)\r\n : this.listboxItemId(this.selectedSuggestion);\r\n this.input?.setAttribute(\"aria-activedescendant\", id);\r\n if (scroll) {\r\n document.getElementById(id)?.scrollIntoView({ block: \"nearest\" });\r\n }\r\n }\r\n }\r\n\r\n private resetSelectedSuggestion() {\r\n this.showLoading = !this.loadingDelayed;\r\n this.notFound = false;\r\n this.selectedSuggestion = undefined;\r\n this.selectedSuggestionGroup = undefined;\r\n this.input?.setAttribute(\"aria-activedescendant\", \"\");\r\n }\r\n\r\n private openSuggestions(selectSuggestion?: \"first\" | \"last\") {\r\n this.showSuggestions = (this.suggestions && this.suggestions.length > 0) ?? false;\r\n this.notFound = (this.suggestions && this.suggestions?.length === 0) ?? false;\r\n this.input?.setAttribute(\"aria-expanded\", (this.showSuggestions || this.notFound).toString());\r\n\r\n if (this.showSuggestions && selectSuggestion === \"first\") {\r\n this.selectFirstSuggestion();\r\n } else if (this.showSuggestions && selectSuggestion === \"last\") {\r\n this.selectLastSuggestion();\r\n }\r\n }\r\n\r\n private closeSuggestions() {\r\n this.showSuggestions = false;\r\n this.notFound = false;\r\n this.input?.setAttribute(\"aria-expanded\", \"false\");\r\n this.selectFirstSuggestion();\r\n }\r\n\r\n private pickSelectedValue() {\r\n if (this.selectedSuggestion && this.showSuggestions) {\r\n this.dsoSelect.emit(this.selectedSuggestion);\r\n } else {\r\n this.dsoSearch.emit(this.input?.value);\r\n }\r\n\r\n this.closeSuggestions();\r\n }\r\n\r\n private onKeyDown = (event: KeyboardEvent) => {\r\n if (event.defaultPrevented || this.loading) {\r\n return;\r\n }\r\n\r\n switch (event.key) {\r\n case \"ArrowDown\":\r\n if (!this.showSuggestions) {\r\n this.openSuggestions(\"first\");\r\n } else {\r\n this.selectNextSuggestion();\r\n }\r\n\r\n break;\r\n\r\n case \"ArrowUp\":\r\n if (!this.showSuggestions) {\r\n this.openSuggestions(\"last\");\r\n } else {\r\n this.selectPreviousSuggestion();\r\n }\r\n\r\n break;\r\n\r\n case \"Tab\":\r\n this.closeSuggestions();\r\n return;\r\n\r\n case \"Escape\":\r\n this.closeSuggestions();\r\n break;\r\n\r\n case \"Enter\":\r\n this.pickSelectedValue();\r\n break;\r\n\r\n default:\r\n return;\r\n }\r\n\r\n event.preventDefault();\r\n };\r\n\r\n private listboxItemId(suggestion: Suggestion): string {\r\n if (!this.suggestions) {\r\n return \"\";\r\n }\r\n return `${this.inputId}-${isFlat(this.suggestions) && this.suggestions.indexOf(suggestion) + 1}`;\r\n }\r\n\r\n private listboxGroupedItemId(suggestionGroup: SuggestionGroup, suggestion: Suggestion): string {\r\n if (!this.suggestions) {\r\n return \"\";\r\n }\r\n\r\n return `${this.inputId}-${this.suggestionGroups.indexOf(suggestionGroup) + 1}-${suggestionGroup.suggestions.indexOf(suggestion) + 1}`;\r\n }\r\n\r\n private getMarkedChunkedExtras(extras: string[], suggestion: Suggestion): (string | VNode)[][][] {\r\n const chunkedExtras = extras.reduce((resultArray: string[][], extra, index) => {\r\n const chunkIndex = Math.floor(index / 2);\r\n\r\n if (!resultArray[chunkIndex]) {\r\n resultArray[chunkIndex] = [];\r\n }\r\n resultArray[chunkIndex]?.push(extra);\r\n return resultArray;\r\n }, []);\r\n\r\n return chunkedExtras.map((chunk, index) =>\r\n chunk.map((c, i) => this.handleMark(suggestion, c, \"extra\", index * 2 + i)),\r\n );\r\n }\r\n\r\n private getMarkedSuggestions(suggestion: Suggestion): MarkedSuggestion {\r\n return {\r\n value: this.handleMark(suggestion, suggestion.value, \"value\"),\r\n type: suggestion.type ? this.handleMark(suggestion, suggestion.type, \"type\") : undefined,\r\n extras: suggestion.extras ? this.getMarkedChunkedExtras(suggestion.extras, suggestion) : undefined,\r\n };\r\n }\r\n\r\n render() {\r\n this.listboxItems = [];\r\n\r\n const showListbox = this.showSuggestions || this.notFound;\r\n\r\n const grouped = isGrouped(this.suggestions);\r\n const flat = isFlat(this.suggestions);\r\n\r\n if (showListbox && this.input) {\r\n this.input.setAttribute(\"aria-controls\", this.listboxId);\r\n } else if (this.input) {\r\n this.input.removeAttribute(\"aria-controls\");\r\n }\r\n\r\n return (\r\n <>\r\n <slot />\r\n {this.loading && this.showLoading ? (\r\n <div class=\"autosuggest-progress-box\">\r\n <dso-progress-indicator label={this.loadingLabel}></dso-progress-indicator>\r\n </div>\r\n ) : (\r\n showListbox && (\r\n <dso-scrollable\r\n class=\"listbox-container\"\r\n ref={(element) => (this.listboxContainer = element)}\r\n style={{ \"--max-block-size\": `${this.listboxContainerMaxBlockSize}px` }}\r\n >\r\n <div\r\n class=\"listbox\"\r\n role=\"listbox\"\r\n aria-live=\"polite\"\r\n id={this.listboxId}\r\n aria-labelledby={this.labelId}\r\n ref={(element) => (this.listbox = element)}\r\n tabindex=\"0\"\r\n >\r\n {(flat &&\r\n this.showSuggestions &&\r\n this.suggestions &&\r\n this.suggestions.map((suggestion) => (\r\n <Option\r\n id={this.listboxItemId(suggestion)}\r\n mouseEnter={() => this.selectSuggestion(suggestion)}\r\n mouseLeave={() => this.resetSelectedSuggestion()}\r\n click={() => this.pickSelectedValue()}\r\n selected={(suggestion === this.selectedSuggestion).toString()}\r\n suggestion={suggestion}\r\n ref={(element) => element && this.listboxItems.push(element)}\r\n markedSuggestion={this.getMarkedSuggestions(suggestion)}\r\n />\r\n ))) ||\r\n (grouped &&\r\n this.showSuggestions &&\r\n this.suggestions &&\r\n this.suggestions.map((suggestionGroup) => {\r\n const groupLabelId = v4();\r\n return (\r\n <div role=\"group\" class=\"group\" aria-labelledby={groupLabelId}>\r\n <div class=\"group-label\" role=\"presentation\" id={groupLabelId}>\r\n {suggestionGroup.groupLabel}\r\n </div>\r\n {suggestionGroup.suggestions.map((suggestion) => (\r\n <Option\r\n id={this.listboxGroupedItemId(suggestionGroup, suggestion)}\r\n mouseEnter={() => this.selectSuggestion(suggestion, suggestionGroup)}\r\n mouseLeave={() => this.resetSelectedSuggestion()}\r\n click={() => this.pickSelectedValue()}\r\n selected={(suggestion === this.selectedSuggestion).toString()}\r\n suggestion={suggestion}\r\n ref={(element) => element && this.listboxItems.push(element)}\r\n markedSuggestion={this.getMarkedSuggestions(suggestion)}\r\n />\r\n ))}\r\n </div>\r\n );\r\n })) ||\r\n (this.notFound && (\r\n <div class=\"option\">\r\n <span class=\"value\">\r\n {this.notFoundLabel ||\r\n this.showInputValueNotFound(this.text(\"notFound\", { inputValue: this.inputValue }))}\r\n </span>\r\n </div>\r\n ))}\r\n </div>\r\n </dso-scrollable>\r\n )\r\n )}\r\n </>\r\n );\r\n }\r\n}\r\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { h } from "@stencil/core";
|
|
2
|
+
export class OzonContentAbbrNode {
|
|
3
|
+
constructor() {
|
|
4
|
+
this.name = "abbr";
|
|
5
|
+
}
|
|
6
|
+
render(node, { mapNodeToJsx }) {
|
|
7
|
+
const title = node.getAttribute("title");
|
|
8
|
+
return (h("span", { class: "od-abbr" }, h("abbr", null, mapNodeToJsx(node.childNodes)), title && ` (${title})`));
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=abbr.node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abbr.node.js","sourceRoot":"","sources":["../../../../../src/components/ozon-content/nodes/abbr.node.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAKlC,MAAM,OAAO,mBAAmB;IAAhC;QACE,SAAI,GAAG,MAAM,CAAC;IAYhB,CAAC;IAVC,MAAM,CAAC,IAAa,EAAE,EAAE,YAAY,EAA0B;QAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAEzC,OAAO,CACL,YAAM,KAAK,EAAC,SAAS;YACnB,gBAAO,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAQ;YAC3C,KAAK,IAAI,KAAK,KAAK,GAAG,CAClB,CACR,CAAC;IACJ,CAAC;CACF","sourcesContent":["import { h } from \"@stencil/core\";\r\n\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\n\r\nexport class OzonContentAbbrNode implements OzonContentNode {\r\n name = \"abbr\";\r\n\r\n render(node: Element, { mapNodeToJsx }: OzonContentNodeContext) {\r\n const title = node.getAttribute(\"title\");\r\n\r\n return (\r\n <span class=\"od-abbr\">\r\n <abbr>{mapNodeToJsx(node.childNodes)}</abbr>\r\n {title && ` (${title})`}\r\n </span>\r\n );\r\n }\r\n}\r\n"]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Fragment, h } from "@stencil/core";
|
|
2
2
|
import { getNodeName } from "./get-node-name.function";
|
|
3
|
+
import { OzonContentAbbrNode } from "./nodes/abbr.node";
|
|
3
4
|
import { OzonContentAlNode } from "./nodes/al.node";
|
|
4
5
|
import { OzonContentBronNode } from "./nodes/bron.node";
|
|
5
6
|
import { OzonContentDocumentNode } from "./nodes/document.node";
|
|
@@ -21,6 +22,7 @@ import { OzonContentVerwijderdeTekstNode } from "./nodes/verwijderde-tekst.node"
|
|
|
21
22
|
export class Mapper {
|
|
22
23
|
constructor() {
|
|
23
24
|
this.mappers = [
|
|
25
|
+
new OzonContentAbbrNode(),
|
|
24
26
|
new OzonContentTextNode(),
|
|
25
27
|
new OzonContentDocumentNode(),
|
|
26
28
|
new OzonContentInhoudNode(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ozon-content-mapper.js","sourceRoot":"","sources":["../../../../src/components/ozon-content/ozon-content-mapper.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Fragment, h, JSX } from \"@stencil/core\";\r\n\r\nimport { getNodeName } from \"./get-node-name.function\";\r\nimport { OzonContentAlNode } from \"./nodes/al.node\";\r\nimport { OzonContentBronNode } from \"./nodes/bron.node\";\r\nimport { OzonContentDocumentNode } from \"./nodes/document.node\";\r\nimport { OzonContentExtRefNode } from \"./nodes/ext-ref.node\";\r\nimport { OzonContentFallbackNode } from \"./nodes/fallback.node\";\r\nimport { OzonContentFiguurNode } from \"./nodes/figuur.node\";\r\nimport { OzonContentInhoudNode } from \"./nodes/inhoud.node\";\r\nimport { OzonContentInlineTekstAfbeeldingNode } from \"./nodes/inline-tekst-afbeelding.node\";\r\nimport { OzonContentInlineNodes } from \"./nodes/inline.nodes\";\r\nimport { OzonContentIntIoRefNode } from \"./nodes/int-io-ref.node\";\r\nimport { OzonContentIntRefNode } from \"./nodes/int-ref.node\";\r\nimport { OzonContentLijstNode } from \"./nodes/lijst.node\";\r\nimport { OzonContentNieuweTekstNode } from \"./nodes/nieuwe-tekst.node\";\r\nimport { OzonContentNootNode } from \"./nodes/noot.node\";\r\nimport { OzonContentKopNode } from \"./nodes/kop.node\";\r\nimport { OzonContentTableNode } from \"./nodes/table.node\";\r\nimport { OzonContentTextNode } from \"./nodes/text.node\";\r\nimport { OzonContentVerwijderdeTekstNode } from \"./nodes/verwijderde-tekst.node\";\r\nimport { OzonContentContext } from \"./ozon-content-context.interface\";\r\nimport { OzonContentNode } from \"./ozon-content-node.interface\";\r\nimport { OzonContentInputType } from \"./ozon-content.interfaces\";\r\n\r\nexport class Mapper {\r\n private mappers: OzonContentNode[] = [\r\n new OzonContentTextNode(),\r\n new OzonContentDocumentNode(),\r\n new OzonContentInhoudNode(),\r\n new OzonContentKopNode(),\r\n new OzonContentIntRefNode(),\r\n new OzonContentExtRefNode(),\r\n new OzonContentAlNode(),\r\n new OzonContentInlineNodes(),\r\n new OzonContentInlineTekstAfbeeldingNode(),\r\n new OzonContentNootNode(),\r\n new OzonContentTableNode(),\r\n new OzonContentIntIoRefNode(),\r\n new OzonContentFiguurNode(),\r\n new OzonContentLijstNode(),\r\n new OzonContentBronNode(),\r\n new OzonContentNieuweTekstNode(),\r\n new OzonContentVerwijderdeTekstNode(),\r\n ];\r\n\r\n private skip = this.mappers.reduce<string[]>((t, m) => {\r\n if (m.handles) {\r\n t.push(...m.handles);\r\n }\r\n\r\n return t;\r\n }, []);\r\n\r\n private fallbackNode = new OzonContentFallbackNode();\r\n\r\n private domParser?: DOMParser;\r\n\r\n private findMapper(name: string): OzonContentNode | undefined {\r\n if (this.skip.includes(name)) {\r\n return undefined;\r\n }\r\n\r\n return (\r\n this.mappers.find((m) => {\r\n if (Array.isArray(m.name)) {\r\n return m.name.includes(name);\r\n }\r\n\r\n return m.name === name;\r\n }) ?? this.fallbackNode\r\n );\r\n }\r\n\r\n mapNodeToJsx(node: Node | Node[] | NodeList, context: OzonContentContext, path: Node[]): JSX.Element {\r\n if (node instanceof NodeList) {\r\n return (\r\n <Fragment>\r\n {Array.from(node).map((n, index) => {\r\n return (\r\n <>\r\n {context.addSpaceBeforeNode && index > 0 && \" \"}\r\n {this.mapNodeToJsx(n, context, path)}\r\n </>\r\n );\r\n })}\r\n </Fragment>\r\n );\r\n }\r\n\r\n if (Array.isArray(node)) {\r\n return (\r\n <Fragment>\r\n {node.map((n, index) => {\r\n return (\r\n <>\r\n {context.addSpaceBeforeNode && index > 0 && \" \"}\r\n {this.mapNodeToJsx(n, context, path)}\r\n </>\r\n );\r\n })}\r\n </Fragment>\r\n );\r\n }\r\n\r\n const nodeName = getNodeName(node);\r\n const mapper = this.findMapper(nodeName);\r\n if (!mapper) {\r\n return <Fragment />;\r\n }\r\n\r\n const identity = mapper.identify?.(node);\r\n\r\n const state = identity ? context.state[identity] : undefined;\r\n const setState = identity ? (s: unknown) => context.setState({ ...context.state, [identity]: s }) : undefined;\r\n\r\n return mapper.render(node, {\r\n inline: context.inline,\r\n mark: context.mark,\r\n mapNodeToJsx: (n) => this.mapNodeToJsx(n, context, [...path, node]),\r\n emitAnchorClick: context.emitAnchorClick,\r\n setState,\r\n emitMarkItemHighlight: context.emitMarkItemHighlight,\r\n state,\r\n path,\r\n });\r\n }\r\n\r\n transform(input: OzonContentInputType | undefined, context: OzonContentContext): JSX.Element {\r\n if (!input) {\r\n return <Fragment />;\r\n }\r\n\r\n const document = this.inputToXmlDocument(input);\r\n if (document.querySelector(\"parsererror\")) {\r\n console.error({\r\n message: \"[DSO Toolkit: Ozon Content Mapper] Unable to parse XML\",\r\n context,\r\n input,\r\n document,\r\n });\r\n\r\n return <Fragment />;\r\n }\r\n\r\n return this.mapNodeToJsx(document.getRootNode(), context, []);\r\n }\r\n\r\n private inputToXmlDocument(input: OzonContentInputType): XMLDocument {\r\n if (input instanceof XMLDocument) {\r\n return input;\r\n }\r\n\r\n if (typeof input === \"string\") {\r\n this.domParser ??= new DOMParser();\r\n\r\n return this.domParser.parseFromString(input, \"text/xml\");\r\n }\r\n\r\n return document.implementation.createDocument(null, null);\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"ozon-content-mapper.js","sourceRoot":"","sources":["../../../../src/components/ozon-content/ozon-content-mapper.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Fragment, h, JSX } from \"@stencil/core\";\r\n\r\nimport { getNodeName } from \"./get-node-name.function\";\r\nimport { OzonContentAbbrNode } from \"./nodes/abbr.node\";\r\nimport { OzonContentAlNode } from \"./nodes/al.node\";\r\nimport { OzonContentBronNode } from \"./nodes/bron.node\";\r\nimport { OzonContentDocumentNode } from \"./nodes/document.node\";\r\nimport { OzonContentExtRefNode } from \"./nodes/ext-ref.node\";\r\nimport { OzonContentFallbackNode } from \"./nodes/fallback.node\";\r\nimport { OzonContentFiguurNode } from \"./nodes/figuur.node\";\r\nimport { OzonContentInhoudNode } from \"./nodes/inhoud.node\";\r\nimport { OzonContentInlineTekstAfbeeldingNode } from \"./nodes/inline-tekst-afbeelding.node\";\r\nimport { OzonContentInlineNodes } from \"./nodes/inline.nodes\";\r\nimport { OzonContentIntIoRefNode } from \"./nodes/int-io-ref.node\";\r\nimport { OzonContentIntRefNode } from \"./nodes/int-ref.node\";\r\nimport { OzonContentLijstNode } from \"./nodes/lijst.node\";\r\nimport { OzonContentNieuweTekstNode } from \"./nodes/nieuwe-tekst.node\";\r\nimport { OzonContentNootNode } from \"./nodes/noot.node\";\r\nimport { OzonContentKopNode } from \"./nodes/kop.node\";\r\nimport { OzonContentTableNode } from \"./nodes/table.node\";\r\nimport { OzonContentTextNode } from \"./nodes/text.node\";\r\nimport { OzonContentVerwijderdeTekstNode } from \"./nodes/verwijderde-tekst.node\";\r\nimport { OzonContentContext } from \"./ozon-content-context.interface\";\r\nimport { OzonContentNode } from \"./ozon-content-node.interface\";\r\nimport { OzonContentInputType } from \"./ozon-content.interfaces\";\r\n\r\nexport class Mapper {\r\n private mappers: OzonContentNode[] = [\r\n new OzonContentAbbrNode(),\r\n new OzonContentTextNode(),\r\n new OzonContentDocumentNode(),\r\n new OzonContentInhoudNode(),\r\n new OzonContentKopNode(),\r\n new OzonContentIntRefNode(),\r\n new OzonContentExtRefNode(),\r\n new OzonContentAlNode(),\r\n new OzonContentInlineNodes(),\r\n new OzonContentInlineTekstAfbeeldingNode(),\r\n new OzonContentNootNode(),\r\n new OzonContentTableNode(),\r\n new OzonContentIntIoRefNode(),\r\n new OzonContentFiguurNode(),\r\n new OzonContentLijstNode(),\r\n new OzonContentBronNode(),\r\n new OzonContentNieuweTekstNode(),\r\n new OzonContentVerwijderdeTekstNode(),\r\n ];\r\n\r\n private skip = this.mappers.reduce<string[]>((t, m) => {\r\n if (m.handles) {\r\n t.push(...m.handles);\r\n }\r\n\r\n return t;\r\n }, []);\r\n\r\n private fallbackNode = new OzonContentFallbackNode();\r\n\r\n private domParser?: DOMParser;\r\n\r\n private findMapper(name: string): OzonContentNode | undefined {\r\n if (this.skip.includes(name)) {\r\n return undefined;\r\n }\r\n\r\n return (\r\n this.mappers.find((m) => {\r\n if (Array.isArray(m.name)) {\r\n return m.name.includes(name);\r\n }\r\n\r\n return m.name === name;\r\n }) ?? this.fallbackNode\r\n );\r\n }\r\n\r\n mapNodeToJsx(node: Node | Node[] | NodeList, context: OzonContentContext, path: Node[]): JSX.Element {\r\n if (node instanceof NodeList) {\r\n return (\r\n <Fragment>\r\n {Array.from(node).map((n, index) => {\r\n return (\r\n <>\r\n {context.addSpaceBeforeNode && index > 0 && \" \"}\r\n {this.mapNodeToJsx(n, context, path)}\r\n </>\r\n );\r\n })}\r\n </Fragment>\r\n );\r\n }\r\n\r\n if (Array.isArray(node)) {\r\n return (\r\n <Fragment>\r\n {node.map((n, index) => {\r\n return (\r\n <>\r\n {context.addSpaceBeforeNode && index > 0 && \" \"}\r\n {this.mapNodeToJsx(n, context, path)}\r\n </>\r\n );\r\n })}\r\n </Fragment>\r\n );\r\n }\r\n\r\n const nodeName = getNodeName(node);\r\n const mapper = this.findMapper(nodeName);\r\n if (!mapper) {\r\n return <Fragment />;\r\n }\r\n\r\n const identity = mapper.identify?.(node);\r\n\r\n const state = identity ? context.state[identity] : undefined;\r\n const setState = identity ? (s: unknown) => context.setState({ ...context.state, [identity]: s }) : undefined;\r\n\r\n return mapper.render(node, {\r\n inline: context.inline,\r\n mark: context.mark,\r\n mapNodeToJsx: (n) => this.mapNodeToJsx(n, context, [...path, node]),\r\n emitAnchorClick: context.emitAnchorClick,\r\n setState,\r\n emitMarkItemHighlight: context.emitMarkItemHighlight,\r\n state,\r\n path,\r\n });\r\n }\r\n\r\n transform(input: OzonContentInputType | undefined, context: OzonContentContext): JSX.Element {\r\n if (!input) {\r\n return <Fragment />;\r\n }\r\n\r\n const document = this.inputToXmlDocument(input);\r\n if (document.querySelector(\"parsererror\")) {\r\n console.error({\r\n message: \"[DSO Toolkit: Ozon Content Mapper] Unable to parse XML\",\r\n context,\r\n input,\r\n document,\r\n });\r\n\r\n return <Fragment />;\r\n }\r\n\r\n return this.mapNodeToJsx(document.getRootNode(), context, []);\r\n }\r\n\r\n private inputToXmlDocument(input: OzonContentInputType): XMLDocument {\r\n if (input instanceof XMLDocument) {\r\n return input;\r\n }\r\n\r\n if (typeof input === \"string\") {\r\n this.domParser ??= new DOMParser();\r\n\r\n return this.domParser.parseFromString(input, \"text/xml\");\r\n }\r\n\r\n return document.implementation.createDocument(null, null);\r\n }\r\n}\r\n"]}
|
|
@@ -30,8 +30,8 @@ export class Pagination {
|
|
|
30
30
|
(_a = this.responsiveElement) === null || _a === void 0 ? void 0 : _a.getSize().then((size) => (this.availablePositions = this.getAvailablePositions(this.sizePositionsMap[size])));
|
|
31
31
|
}
|
|
32
32
|
render() {
|
|
33
|
-
var _a
|
|
34
|
-
if (!this.totalPages) {
|
|
33
|
+
var _a;
|
|
34
|
+
if (!this.totalPages && !this.currentPage) {
|
|
35
35
|
return null;
|
|
36
36
|
}
|
|
37
37
|
if (this.availablePositions === undefined) {
|
|
@@ -40,12 +40,7 @@ export class Pagination {
|
|
|
40
40
|
const availablePositions = this.availablePositions;
|
|
41
41
|
const currentPage = (_a = this.currentPage) !== null && _a !== void 0 ? _a : 0;
|
|
42
42
|
const pages = this.getPages(currentPage, this.availablePositions, this.totalPages);
|
|
43
|
-
return (h("dso-responsive-element", { ref: (element) => (this.responsiveElement = element) }, h("nav", { class: "pagination", "aria-label": "Paginering" }, h("ul", null, h("li", { class: currentPage <= 1 || currentPage
|
|
44
|
-
var _a;
|
|
45
|
-
return currentPage &&
|
|
46
|
-
this.totalPages &&
|
|
47
|
-
this.clickHandler(e, (_a = pages[pages.indexOf(currentPage) + 1]) !== null && _a !== void 0 ? _a : this.totalPages);
|
|
48
|
-
} }, h("dso-icon", { icon: "chevron-right" })))))));
|
|
43
|
+
return (h("dso-responsive-element", { ref: (element) => (this.responsiveElement = element) }, h("nav", { class: "pagination", "aria-label": "Paginering" }, h("ul", null, h("li", { class: currentPage <= 1 || !currentPage ? "dso-page-hidden" : undefined }, h("a", { href: this.formatHref(currentPage - 1), "aria-label": "Vorige", onClick: (e) => currentPage && this.clickHandler(e, currentPage - 1) }, h("dso-icon", { icon: "chevron-left" }))), pages.map((page) => (h(Fragment, null, this.showEllipsisBeforeLast(pages, page, availablePositions) && (h("li", null, h("span", null, "..."))), h("li", { key: page, class: currentPage === page ? "active" : undefined }, currentPage === page ? (h("span", { "aria-current": "page" }, page)) : (h("a", { href: this.formatHref(page), onClick: (e) => this.clickHandler(e, page) }, page)), page === this.totalPages ? h("span", { class: "sr-only" }, " (laatste pagina)") : null), this.showEllipsisAfterFirst(pages, page, availablePositions) && (h("li", null, h("span", null, "..."))), this.showEllipsisLastWithoutTotal(pages, page, this.totalPages) && (h("li", null, h("span", null, "...")))))), h("li", { class: (this.totalPages && currentPage >= this.totalPages) || !currentPage ? "dso-page-hidden" : undefined }, h("a", { href: this.formatHref(currentPage + 1), "aria-label": "Volgende", onClick: (e) => currentPage && this.clickHandler(e, currentPage + 1) }, h("dso-icon", { icon: "chevron-right" })))))));
|
|
49
44
|
}
|
|
50
45
|
getAvailablePositions(sizePositions) {
|
|
51
46
|
if (sizePositions % 2 === 0) {
|
|
@@ -59,17 +54,20 @@ export class Pagination {
|
|
|
59
54
|
return sizePositions;
|
|
60
55
|
}
|
|
61
56
|
getPages(currentPage, availablePositions, totalPages) {
|
|
62
|
-
if (totalPages
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
57
|
+
if (totalPages) {
|
|
58
|
+
if (totalPages + 2 <= availablePositions) {
|
|
59
|
+
// + 2 voor de vorige en volgende knop
|
|
60
|
+
return Array.from({ length: totalPages }, (_value, i) => i + 1);
|
|
61
|
+
}
|
|
62
|
+
if (availablePositions === 3) {
|
|
63
|
+
return [currentPage];
|
|
64
|
+
}
|
|
65
|
+
if (availablePositions === 5) {
|
|
66
|
+
return [1, currentPage, totalPages];
|
|
67
|
+
}
|
|
68
|
+
return [1, ...this.getPageRange(currentPage, availablePositions, totalPages), totalPages];
|
|
71
69
|
}
|
|
72
|
-
return
|
|
70
|
+
return this.getPageRangeWithoutTotalPages(currentPage, availablePositions);
|
|
73
71
|
}
|
|
74
72
|
getPageRange(currentPage, availablePositions, totalPages) {
|
|
75
73
|
const range = [];
|
|
@@ -110,20 +108,35 @@ export class Pagination {
|
|
|
110
108
|
if (!totalPages) {
|
|
111
109
|
throw new Error("No totalPages");
|
|
112
110
|
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
111
|
+
const isFirstPage = pages.indexOf(page) === 0;
|
|
112
|
+
const hasManyPages = totalPages > availablePositions - (this.totalPages ? 2 : 6);
|
|
113
|
+
const isPageTwoMissing = !pages.includes(2);
|
|
114
|
+
const hasEnoughPositions = availablePositions >= 7;
|
|
115
|
+
return isFirstPage && hasManyPages && isPageTwoMissing && hasEnoughPositions;
|
|
117
116
|
}
|
|
118
117
|
showEllipsisBeforeLast(pages, page, availablePositions) {
|
|
119
118
|
const totalPages = pages[pages.length - 1];
|
|
120
119
|
if (!totalPages) {
|
|
121
120
|
throw new Error("No totalPages");
|
|
122
121
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
122
|
+
const isLastPage = pages.indexOf(page) === pages.length - 1;
|
|
123
|
+
const hasManyPages = totalPages > availablePositions - (this.totalPages ? 2 : 6);
|
|
124
|
+
const isSecondLastPageMissing = !pages.includes(totalPages - 1);
|
|
125
|
+
const hasEnoughPositions = availablePositions >= 7;
|
|
126
|
+
return isLastPage && hasManyPages && isSecondLastPageMissing && hasEnoughPositions;
|
|
127
|
+
}
|
|
128
|
+
showEllipsisLastWithoutTotal(pages, page, totalPages) {
|
|
129
|
+
return totalPages ? false : pages.at(-1) === page;
|
|
130
|
+
}
|
|
131
|
+
getPageRangeWithoutTotalPages(currentPage, availablePositions) {
|
|
132
|
+
const positionRange = availablePositions >= 9 ? 2 : 0;
|
|
133
|
+
const start = Math.max(1, currentPage - positionRange);
|
|
134
|
+
// Creates an array of numbers from `start` to `currentPage + 1`
|
|
135
|
+
const result = Array.from({ length: currentPage - start + 2 }, (_, i) => start + i);
|
|
136
|
+
// Adds 1 to the start of the result array if `start` is >= 2
|
|
137
|
+
if (start >= 2)
|
|
138
|
+
result.unshift(1);
|
|
139
|
+
return result;
|
|
127
140
|
}
|
|
128
141
|
static get is() { return "dso-pagination"; }
|
|
129
142
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../../../src/components/pagination/pagination.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\r\n h,\r\n Component,\r\n ComponentInterface,\r\n Element,\r\n Event,\r\n EventEmitter,\r\n Fragment,\r\n Listen,\r\n Prop,\r\n State,\r\n} from \"@stencil/core\";\r\nimport { isModifiedEvent } from \"../../utils/is-modified-event\";\r\n\r\nimport { ResponsiveElementSize } from \"../responsive-element/responsive-element.interfaces\";\r\nimport { PaginationSelectPageEvent } from \"./pagination.interfaces\";\r\n\r\n@Component({\r\n tag: \"dso-pagination\",\r\n styleUrl: \"pagination.scss\",\r\n shadow: true,\r\n})\r\nexport class Pagination implements ComponentInterface {\r\n private sizePositionsMap: Record<ResponsiveElementSize, number> = {\r\n small: 7,\r\n medium: 9,\r\n large: 11,\r\n };\r\n\r\n private responsiveElement?: HTMLDsoResponsiveElementElement;\r\n\r\n @Element()\r\n host!: HTMLDsoPaginationElement;\r\n\r\n @State()\r\n availablePositions?: number;\r\n /**\r\n * Total pages\r\n */\r\n @Prop()\r\n totalPages?: number;\r\n\r\n /**\r\n * Current page\r\n */\r\n @Prop()\r\n currentPage?: number;\r\n\r\n /**\r\n * This function is called to format the href\r\n */\r\n @Prop()\r\n formatHref: (page: number) => string = (page) => \"#\" + page;\r\n\r\n /**\r\n * Emitted on page select\r\n */\r\n @Event()\r\n dsoSelectPage!: EventEmitter<PaginationSelectPageEvent>;\r\n\r\n /**\r\n * Listens to the dsoSizeChange event on Responsive Element\r\n */\r\n @Listen(\"dsoSizeChange\")\r\n sizeChangeHandler(event: CustomEvent<ResponsiveElementSize>) {\r\n this.availablePositions = this.getAvailablePositions(this.sizePositionsMap[event.detail]);\r\n }\r\n\r\n private clickHandler(e: MouseEvent, page: number) {\r\n this.dsoSelectPage.emit({\r\n originalEvent: e,\r\n page,\r\n isModifiedEvent: isModifiedEvent(e),\r\n });\r\n }\r\n\r\n componentDidLoad(): void {\r\n this.responsiveElement\r\n ?.getSize()\r\n .then(\r\n (size: ResponsiveElementSize) =>\r\n (this.availablePositions = this.getAvailablePositions(this.sizePositionsMap[size])),\r\n );\r\n }\r\n\r\n render() {\r\n if (!this.totalPages) {\r\n return null;\r\n }\r\n\r\n if (this.availablePositions === undefined) {\r\n return <dso-responsive-element ref={(element) => (this.responsiveElement = element)}></dso-responsive-element>;\r\n }\r\n\r\n const availablePositions = this.availablePositions;\r\n\r\n const currentPage = this.currentPage ?? 0;\r\n\r\n const pages: number[] = this.getPages(currentPage, this.availablePositions, this.totalPages);\r\n\r\n return (\r\n <dso-responsive-element ref={(element) => (this.responsiveElement = element)}>\r\n <nav class=\"pagination\" aria-label=\"Paginering\">\r\n <ul>\r\n <li class={currentPage <= 1 || currentPage > this.totalPages ? \"dso-page-hidden\" : undefined}>\r\n <a\r\n href={this.formatHref(pages[pages.indexOf(currentPage) - 1] ?? 1)}\r\n aria-label=\"Vorige\"\r\n onClick={(e) => currentPage && this.clickHandler(e, pages[pages.indexOf(currentPage) - 1] ?? 1)}\r\n >\r\n <dso-icon icon=\"chevron-left\"></dso-icon>\r\n </a>\r\n </li>\r\n {pages.map((page) => (\r\n <>\r\n {this.showEllipsisBeforeLast(pages, page, availablePositions) && (\r\n <li>\r\n <span>...</span>\r\n </li>\r\n )}\r\n\r\n <li key={page} class={currentPage === page ? \"active\" : undefined}>\r\n {currentPage === page ? (\r\n <span aria-current=\"page\">{page}</span>\r\n ) : (\r\n <a href={this.formatHref(page)} onClick={(e) => this.clickHandler(e, page)}>\r\n {page}\r\n </a>\r\n )}\r\n {page === this.totalPages ? <span class=\"sr-only\"> (laatste pagina)</span> : null}\r\n </li>\r\n\r\n {this.showEllipsisAfterFirst(pages, page, availablePositions) && (\r\n <li>\r\n <span>...</span>\r\n </li>\r\n )}\r\n </>\r\n ))}\r\n <li class={currentPage < 1 || currentPage >= this.totalPages ? \"dso-page-hidden\" : undefined}>\r\n <a\r\n href={this.formatHref(pages[pages.indexOf(currentPage) + 1] ?? this.totalPages)}\r\n aria-label=\"Volgende\"\r\n onClick={(e) =>\r\n currentPage &&\r\n this.totalPages &&\r\n this.clickHandler(e, pages[pages.indexOf(currentPage) + 1] ?? this.totalPages)\r\n }\r\n >\r\n <dso-icon icon=\"chevron-right\"></dso-icon>\r\n </a>\r\n </li>\r\n </ul>\r\n </nav>\r\n </dso-responsive-element>\r\n );\r\n }\r\n\r\n private getAvailablePositions(sizePositions: number) {\r\n if (sizePositions % 2 === 0) {\r\n // Even aantal posities zorgt voor een scheve pagination\r\n return sizePositions - 1;\r\n }\r\n if (sizePositions <= 3) {\r\n // Voor het kunnen tonen van de vorige knop, volgende knop en 1 pagina zijn minimaal 3 posities nodig.\r\n return 3;\r\n }\r\n\r\n return sizePositions;\r\n }\r\n\r\n private getPages(currentPage: number, availablePositions: number, totalPages: number): number[] {\r\n if (totalPages + 2 <= availablePositions) {\r\n // + 2 voor de vorige en volgende knop\r\n return Array.from({ length: totalPages }, (_value, i) => i + 1);\r\n }\r\n\r\n if (availablePositions === 3) {\r\n return [currentPage];\r\n }\r\n\r\n if (availablePositions === 5) {\r\n return [1, currentPage, totalPages];\r\n }\r\n\r\n return [1, ...this.getPageRange(currentPage, availablePositions, totalPages), totalPages];\r\n }\r\n\r\n private getPageRange(currentPage: number, availablePositions: number, totalPages: number): number[] {\r\n const range: number[] = [];\r\n\r\n const positionRange = Math.floor(availablePositions / 2);\r\n\r\n if (currentPage <= positionRange) {\r\n for (let i = 2; i <= availablePositions - 4; i++) {\r\n range.push(i);\r\n }\r\n }\r\n\r\n if (currentPage >= positionRange && currentPage <= totalPages - positionRange) {\r\n if (positionRange === 1) {\r\n if (currentPage > totalPages - 2) {\r\n range.push(totalPages - 2);\r\n }\r\n\r\n range.push(currentPage);\r\n\r\n if (currentPage < 3) {\r\n range.push(3);\r\n }\r\n }\r\n\r\n if (positionRange > 1) {\r\n const pagesBeforeOrAfter = positionRange - 3;\r\n\r\n for (\r\n let i = Math.min(currentPage - pagesBeforeOrAfter, totalPages - positionRange);\r\n i <= Math.max(currentPage + pagesBeforeOrAfter, positionRange);\r\n i++\r\n ) {\r\n if (i > 2 && i < totalPages - 1) {\r\n range.push(i);\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (currentPage > totalPages - positionRange) {\r\n for (let i = totalPages - (availablePositions - 5); i <= totalPages - 1; i++) {\r\n range.push(i);\r\n }\r\n }\r\n\r\n return range.filter((v, i, a) => a.indexOf(v) === i);\r\n }\r\n\r\n private showEllipsisAfterFirst(pages: number[], page: number, availablePositions: number): boolean {\r\n const totalPages = pages[pages.length - 1];\r\n if (!totalPages) {\r\n throw new Error(\"No totalPages\");\r\n }\r\n\r\n return (\r\n pages.indexOf(page) === 0 &&\r\n totalPages > availablePositions - 2 &&\r\n !pages.some((p) => p === 2) &&\r\n availablePositions >= 7\r\n );\r\n }\r\n\r\n private showEllipsisBeforeLast(pages: number[], page: number, availablePositions: number): boolean {\r\n const totalPages = pages[pages.length - 1];\r\n if (!totalPages) {\r\n throw new Error(\"No totalPages\");\r\n }\r\n\r\n return (\r\n pages.indexOf(page) === pages.length - 1 &&\r\n totalPages > availablePositions - 2 &&\r\n !pages.some((p) => p === totalPages - 1) &&\r\n availablePositions >= 7\r\n );\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../../../src/components/pagination/pagination.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\r\n h,\r\n Component,\r\n ComponentInterface,\r\n Element,\r\n Event,\r\n EventEmitter,\r\n Fragment,\r\n Listen,\r\n Prop,\r\n State,\r\n} from \"@stencil/core\";\r\nimport { isModifiedEvent } from \"../../utils/is-modified-event\";\r\n\r\nimport { ResponsiveElementSize } from \"../responsive-element/responsive-element.interfaces\";\r\nimport { PaginationSelectPageEvent } from \"./pagination.interfaces\";\r\n\r\n@Component({\r\n tag: \"dso-pagination\",\r\n styleUrl: \"pagination.scss\",\r\n shadow: true,\r\n})\r\nexport class Pagination implements ComponentInterface {\r\n private sizePositionsMap: Record<ResponsiveElementSize, number> = {\r\n small: 7,\r\n medium: 9,\r\n large: 11,\r\n };\r\n\r\n private responsiveElement?: HTMLDsoResponsiveElementElement;\r\n\r\n @Element()\r\n host!: HTMLDsoPaginationElement;\r\n\r\n @State()\r\n availablePositions?: number;\r\n /**\r\n * Total pages\r\n */\r\n @Prop()\r\n totalPages?: number;\r\n\r\n /**\r\n * Current page\r\n */\r\n @Prop()\r\n currentPage?: number;\r\n\r\n /**\r\n * This function is called to format the href\r\n */\r\n @Prop()\r\n formatHref: (page: number) => string = (page) => \"#\" + page;\r\n\r\n /**\r\n * Emitted on page select\r\n */\r\n @Event()\r\n dsoSelectPage!: EventEmitter<PaginationSelectPageEvent>;\r\n\r\n /**\r\n * Listens to the dsoSizeChange event on Responsive Element\r\n */\r\n @Listen(\"dsoSizeChange\")\r\n sizeChangeHandler(event: CustomEvent<ResponsiveElementSize>) {\r\n this.availablePositions = this.getAvailablePositions(this.sizePositionsMap[event.detail]);\r\n }\r\n\r\n private clickHandler(e: MouseEvent, page: number) {\r\n this.dsoSelectPage.emit({\r\n originalEvent: e,\r\n page,\r\n isModifiedEvent: isModifiedEvent(e),\r\n });\r\n }\r\n\r\n componentDidLoad(): void {\r\n this.responsiveElement\r\n ?.getSize()\r\n .then(\r\n (size: ResponsiveElementSize) =>\r\n (this.availablePositions = this.getAvailablePositions(this.sizePositionsMap[size])),\r\n );\r\n }\r\n\r\n render() {\r\n if (!this.totalPages && !this.currentPage) {\r\n return null;\r\n }\r\n\r\n if (this.availablePositions === undefined) {\r\n return <dso-responsive-element ref={(element) => (this.responsiveElement = element)}></dso-responsive-element>;\r\n }\r\n\r\n const availablePositions = this.availablePositions;\r\n\r\n const currentPage = this.currentPage ?? 0;\r\n\r\n const pages: number[] = this.getPages(currentPage, this.availablePositions, this.totalPages);\r\n\r\n return (\r\n <dso-responsive-element ref={(element) => (this.responsiveElement = element)}>\r\n <nav class=\"pagination\" aria-label=\"Paginering\">\r\n <ul>\r\n <li class={currentPage <= 1 || !currentPage ? \"dso-page-hidden\" : undefined}>\r\n <a\r\n href={this.formatHref(currentPage - 1)}\r\n aria-label=\"Vorige\"\r\n onClick={(e) => currentPage && this.clickHandler(e, currentPage - 1)}\r\n >\r\n <dso-icon icon=\"chevron-left\"></dso-icon>\r\n </a>\r\n </li>\r\n {pages.map((page) => (\r\n <Fragment>\r\n {this.showEllipsisBeforeLast(pages, page, availablePositions) && (\r\n <li>\r\n <span>...</span>\r\n </li>\r\n )}\r\n\r\n <li key={page} class={currentPage === page ? \"active\" : undefined}>\r\n {currentPage === page ? (\r\n <span aria-current=\"page\">{page}</span>\r\n ) : (\r\n <a href={this.formatHref(page)} onClick={(e) => this.clickHandler(e, page)}>\r\n {page}\r\n </a>\r\n )}\r\n {page === this.totalPages ? <span class=\"sr-only\"> (laatste pagina)</span> : null}\r\n </li>\r\n\r\n {this.showEllipsisAfterFirst(pages, page, availablePositions) && (\r\n <li>\r\n <span>...</span>\r\n </li>\r\n )}\r\n\r\n {this.showEllipsisLastWithoutTotal(pages, page, this.totalPages) && (\r\n <li>\r\n <span>...</span>\r\n </li>\r\n )}\r\n </Fragment>\r\n ))}\r\n <li\r\n class={\r\n (this.totalPages && currentPage >= this.totalPages) || !currentPage ? \"dso-page-hidden\" : undefined\r\n }\r\n >\r\n <a\r\n href={this.formatHref(currentPage + 1)}\r\n aria-label=\"Volgende\"\r\n onClick={(e) => currentPage && this.clickHandler(e, currentPage + 1)}\r\n >\r\n <dso-icon icon=\"chevron-right\"></dso-icon>\r\n </a>\r\n </li>\r\n </ul>\r\n </nav>\r\n </dso-responsive-element>\r\n );\r\n }\r\n\r\n private getAvailablePositions(sizePositions: number) {\r\n if (sizePositions % 2 === 0) {\r\n // Even aantal posities zorgt voor een scheve pagination\r\n return sizePositions - 1;\r\n }\r\n if (sizePositions <= 3) {\r\n // Voor het kunnen tonen van de vorige knop, volgende knop en 1 pagina zijn minimaal 3 posities nodig.\r\n return 3;\r\n }\r\n\r\n return sizePositions;\r\n }\r\n\r\n private getPages(currentPage: number, availablePositions: number, totalPages?: number): number[] {\r\n if (totalPages) {\r\n if (totalPages + 2 <= availablePositions) {\r\n // + 2 voor de vorige en volgende knop\r\n return Array.from({ length: totalPages }, (_value, i) => i + 1);\r\n }\r\n\r\n if (availablePositions === 3) {\r\n return [currentPage];\r\n }\r\n\r\n if (availablePositions === 5) {\r\n return [1, currentPage, totalPages];\r\n }\r\n\r\n return [1, ...this.getPageRange(currentPage, availablePositions, totalPages), totalPages];\r\n }\r\n return this.getPageRangeWithoutTotalPages(currentPage, availablePositions);\r\n }\r\n\r\n private getPageRange(currentPage: number, availablePositions: number, totalPages: number): number[] {\r\n const range: number[] = [];\r\n\r\n const positionRange = Math.floor(availablePositions / 2);\r\n\r\n if (currentPage <= positionRange) {\r\n for (let i = 2; i <= availablePositions - 4; i++) {\r\n range.push(i);\r\n }\r\n }\r\n\r\n if (currentPage >= positionRange && currentPage <= totalPages - positionRange) {\r\n if (positionRange === 1) {\r\n if (currentPage > totalPages - 2) {\r\n range.push(totalPages - 2);\r\n }\r\n\r\n range.push(currentPage);\r\n\r\n if (currentPage < 3) {\r\n range.push(3);\r\n }\r\n }\r\n\r\n if (positionRange > 1) {\r\n const pagesBeforeOrAfter = positionRange - 3;\r\n\r\n for (\r\n let i = Math.min(currentPage - pagesBeforeOrAfter, totalPages - positionRange);\r\n i <= Math.max(currentPage + pagesBeforeOrAfter, positionRange);\r\n i++\r\n ) {\r\n if (i > 2 && i < totalPages - 1) {\r\n range.push(i);\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (currentPage > totalPages - positionRange) {\r\n for (let i = totalPages - (availablePositions - 5); i <= totalPages - 1; i++) {\r\n range.push(i);\r\n }\r\n }\r\n\r\n return range.filter((v, i, a) => a.indexOf(v) === i);\r\n }\r\n\r\n private showEllipsisAfterFirst(pages: number[], page: number, availablePositions: number): boolean {\r\n const totalPages = pages[pages.length - 1];\r\n\r\n if (!totalPages) {\r\n throw new Error(\"No totalPages\");\r\n }\r\n\r\n const isFirstPage = pages.indexOf(page) === 0;\r\n const hasManyPages = totalPages > availablePositions - (this.totalPages ? 2 : 6);\r\n const isPageTwoMissing = !pages.includes(2);\r\n const hasEnoughPositions = availablePositions >= 7;\r\n\r\n return isFirstPage && hasManyPages && isPageTwoMissing && hasEnoughPositions;\r\n }\r\n\r\n private showEllipsisBeforeLast(pages: number[], page: number, availablePositions: number): boolean {\r\n const totalPages = pages[pages.length - 1];\r\n\r\n if (!totalPages) {\r\n throw new Error(\"No totalPages\");\r\n }\r\n\r\n const isLastPage = pages.indexOf(page) === pages.length - 1;\r\n const hasManyPages = totalPages > availablePositions - (this.totalPages ? 2 : 6);\r\n const isSecondLastPageMissing = !pages.includes(totalPages - 1);\r\n const hasEnoughPositions = availablePositions >= 7;\r\n\r\n return isLastPage && hasManyPages && isSecondLastPageMissing && hasEnoughPositions;\r\n }\r\n\r\n private showEllipsisLastWithoutTotal(pages: number[], page: number, totalPages?: number) {\r\n return totalPages ? false : pages.at(-1) === page;\r\n }\r\n\r\n private getPageRangeWithoutTotalPages(currentPage: number, availablePositions: number): number[] {\r\n const positionRange = availablePositions >= 9 ? 2 : 0;\r\n const start = Math.max(1, currentPage - positionRange);\r\n\r\n // Creates an array of numbers from `start` to `currentPage + 1`\r\n const result = Array.from({ length: currentPage - start + 2 }, (_, i) => start + i);\r\n\r\n // Adds 1 to the start of the result array if `start` is >= 2\r\n if (start >= 2) result.unshift(1);\r\n\r\n return result;\r\n }\r\n}\r\n"]}
|
|
@@ -4,23 +4,26 @@ const RenvooiRender = ({ value }) => {
|
|
|
4
4
|
// This element is used for --_dso-renvooi-text-decoration
|
|
5
5
|
return h("span", { class: "text" }, value);
|
|
6
6
|
}
|
|
7
|
-
if (Array.isArray(value)) {
|
|
8
|
-
return (h(Fragment, null, value.map((v, i, { length }) => (h(Fragment, null, h(RenvooiRender, { value: v }), i < length - 1 ? ", " : "")))));
|
|
9
|
-
}
|
|
10
7
|
if ("toegevoegd" in value) {
|
|
11
8
|
return h("ins", null, value.toegevoegd);
|
|
12
9
|
}
|
|
13
10
|
if ("verwijderd" in value) {
|
|
14
11
|
return h("del", null, value.verwijderd);
|
|
15
12
|
}
|
|
16
|
-
return (h(Fragment, null, h("del", null, value.was),
|
|
13
|
+
return (h(Fragment, null, h("del", null, value.was), h("ins", null, value.wordt)));
|
|
17
14
|
};
|
|
18
15
|
/**
|
|
19
16
|
* Met dit component kan een `RenvooiValue` worden gepresenteerd.
|
|
20
17
|
*/
|
|
21
18
|
export class Renvooi {
|
|
19
|
+
get values() {
|
|
20
|
+
if (!this.value) {
|
|
21
|
+
return [];
|
|
22
|
+
}
|
|
23
|
+
return Array.isArray(this.value) ? this.value : [this.value];
|
|
24
|
+
}
|
|
22
25
|
render() {
|
|
23
|
-
return h(
|
|
26
|
+
return (h(Fragment, null, this.values.map((v) => (h(RenvooiRender, { value: v })))));
|
|
24
27
|
}
|
|
25
28
|
static get is() { return "dso-renvooi"; }
|
|
26
29
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renvooi.js","sourceRoot":"","sources":["../../../../src/components/renvooi/renvooi.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAsB,QAAQ,EAAuB,IAAI,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAQtG,MAAM,aAAa,GAA4C,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IAC3E,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;QACxC,0DAA0D;QAC1D,OAAO,YAAM,KAAK,EAAC,MAAM,IAAE,KAAK,CAAQ,CAAC;IAC3C,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"renvooi.js","sourceRoot":"","sources":["../../../../src/components/renvooi/renvooi.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAsB,QAAQ,EAAuB,IAAI,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAQtG,MAAM,aAAa,GAA4C,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IAC3E,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;QACxC,0DAA0D;QAC1D,OAAO,YAAM,KAAK,EAAC,MAAM,IAAE,KAAK,CAAQ,CAAC;IAC3C,CAAC;IAED,IAAI,YAAY,IAAI,KAAK,EAAE,CAAC;QAC1B,OAAO,eAAM,KAAK,CAAC,UAAU,CAAO,CAAC;IACvC,CAAC;IAED,IAAI,YAAY,IAAI,KAAK,EAAE,CAAC;QAC1B,OAAO,eAAM,KAAK,CAAC,UAAU,CAAO,CAAC;IACvC,CAAC;IAED,OAAO,CACL;QACE,eAAM,KAAK,CAAC,GAAG,CAAO;QACtB,eAAM,KAAK,CAAC,KAAK,CAAO,CACvB,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF;;GAEG;AAMH,MAAM,OAAO,OAAO;IAOlB,IAAI,MAAM;QACR,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM;QACJ,OAAO,CACL,kBACG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACtB,EAAC,aAAa,IAAC,KAAK,EAAE,CAAC,GAAI,CAC5B,CAAC,CACD,CACJ,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, ComponentInterface, Fragment, FunctionalComponent, Prop, h } from \"@stencil/core\";\r\n\r\nimport { RenvooiValue } from \"./renvooi.interfaces\";\r\n\r\ninterface RenvooiRenderProps {\r\n value: RenvooiValue;\r\n}\r\n\r\nconst RenvooiRender: FunctionalComponent<RenvooiRenderProps> = ({ value }) => {\r\n if (typeof value === \"string\" || !value) {\r\n // This element is used for --_dso-renvooi-text-decoration\r\n return <span class=\"text\">{value}</span>;\r\n }\r\n\r\n if (\"toegevoegd\" in value) {\r\n return <ins>{value.toegevoegd}</ins>;\r\n }\r\n\r\n if (\"verwijderd\" in value) {\r\n return <del>{value.verwijderd}</del>;\r\n }\r\n\r\n return (\r\n <>\r\n <del>{value.was}</del>\r\n <ins>{value.wordt}</ins>\r\n </>\r\n );\r\n};\r\n\r\n/**\r\n * Met dit component kan een `RenvooiValue` worden gepresenteerd.\r\n */\r\n@Component({\r\n tag: \"dso-renvooi\",\r\n styleUrl: \"renvooi.scss\",\r\n shadow: true,\r\n})\r\nexport class Renvooi implements ComponentInterface {\r\n /**\r\n * The renvooi value to render.\r\n */\r\n @Prop()\r\n value?: RenvooiValue | RenvooiValue[];\r\n\r\n get values(): RenvooiValue[] {\r\n if (!this.value) {\r\n return [];\r\n }\r\n\r\n return Array.isArray(this.value) ? this.value : [this.value];\r\n }\r\n\r\n render() {\r\n return (\r\n <>\r\n {this.values.map((v) => (\r\n <RenvooiRender value={v} />\r\n ))}\r\n </>\r\n );\r\n }\r\n}\r\n"]}
|
|
@@ -40,7 +40,7 @@ export class ResponsiveElement {
|
|
|
40
40
|
this.observer.unobserve(this.host);
|
|
41
41
|
}
|
|
42
42
|
render() {
|
|
43
|
-
return (h(Host, { key: '
|
|
43
|
+
return (h(Host, { key: '7df8a0107dec10534a1ee68c12b0718675ca37d0', small: this.sizeAlias === "small", medium: this.sizeAlias === "medium", large: this.sizeAlias === "large" }, h("slot", { key: '376cdb5c8b4b349877b7289b9bb5b0ae597620b6' })));
|
|
44
44
|
}
|
|
45
45
|
static get is() { return "dso-responsive-element"; }
|
|
46
46
|
static get encapsulation() { return "shadow"; }
|
|
@@ -31,6 +31,9 @@ export class Scrollable {
|
|
|
31
31
|
* @internal
|
|
32
32
|
*/
|
|
33
33
|
async _setScrollState() {
|
|
34
|
+
if (!this.host.isConnected) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
34
37
|
const scrollPosition = this.getScrollPosition();
|
|
35
38
|
if (this.scrollPosition !== scrollPosition) {
|
|
36
39
|
this.scrollPosition = scrollPosition;
|
|
@@ -81,9 +84,9 @@ export class Scrollable {
|
|
|
81
84
|
this.slottedElements.forEach((element) => resizeObserver.unobserve(element));
|
|
82
85
|
}
|
|
83
86
|
render() {
|
|
84
|
-
return (h("div", { key: '
|
|
87
|
+
return (h("div", { key: '70329cb775aa7b06be2e6fcb1e28670f735c2467', ref: (el) => (this.shadowContainerDiv = el), class: "dso-shadow-container" }, h("div", { key: 'ff50504d84fad62027ea67742b64ddae2be63f47', ref: (el) => (this.scrollContainerDiv = el), class: clsx("dso-scroll-container", {
|
|
85
88
|
[`dso-scroll-${this.scrollPosition}`]: this.scrollPosition !== "noScroll",
|
|
86
|
-
}), onScroll: () => this._setScrollState() }, h("slot", { key: '
|
|
89
|
+
}), onScroll: () => this._setScrollState() }, h("slot", { key: 'ab03fe8a94df6fd40037376a054c474d75197944' }))));
|
|
87
90
|
}
|
|
88
91
|
static get is() { return "dso-scrollable"; }
|
|
89
92
|
static get encapsulation() { return "shadow"; }
|