@arbetsformedlingen/yrkesvaljaren 2.0.12 → 2.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.
Files changed (98) hide show
  1. package/README.md +38 -21
  2. package/dist/cjs/{af-validation-message-Cy89nVEv.js → af-validation-message-BdR9X_qh.js} +1 -1
  3. package/dist/cjs/core-selector.cjs.entry.js +342 -23
  4. package/dist/cjs/digi-service-job-selector.cjs.entry.js +352 -61
  5. package/dist/cjs/{index-hZgOvC17.js → index-DMQDFAL7.js} +0 -22
  6. package/dist/cjs/index.cjs.js +4 -7
  7. package/dist/cjs/loader.cjs.js +2 -2
  8. package/dist/{esm/fuse-BPnhMTul.js → cjs/types-DdzCbiye.js} +965 -1
  9. package/dist/cjs/yrkesvaljaren.cjs.js +2 -2
  10. package/dist/collection/collection-manifest.json +0 -1
  11. package/dist/collection/components/core-selector/core-selector.css +26 -1
  12. package/dist/collection/components/core-selector/core-selector.js +309 -14
  13. package/dist/collection/components/design-compat/af-icon.js +8 -7
  14. package/dist/collection/components/job-selector/job-selector-controller.js +13 -3
  15. package/dist/collection/components/job-selector/job-selector.css +154 -1
  16. package/dist/collection/components/job-selector/job-selector.js +199 -10
  17. package/dist/components/core-selector2.js +1 -1
  18. package/dist/components/digi-service-job-selector.js +1 -1
  19. package/dist/components/index.js +1 -1
  20. package/dist/components/types.js +1 -1
  21. package/dist/esm/{af-validation-message-BgoGzzBf.js → af-validation-message-DMoOu-0k.js} +1 -1
  22. package/dist/esm/core-selector.entry.js +342 -23
  23. package/dist/esm/digi-service-job-selector.entry.js +310 -19
  24. package/dist/esm/{index-HNd02eQb.js → index-vJ-tamti.js} +1 -22
  25. package/dist/esm/index.js +2 -4
  26. package/dist/esm/loader.js +3 -3
  27. package/dist/{cjs/fuse-BTLNKxuL.js → esm/types-DVos4HHS.js} +948 -2
  28. package/dist/esm/yrkesvaljaren.js +3 -3
  29. package/dist/types/components/core-selector/core-selector.d.ts +68 -0
  30. package/dist/types/components/job-selector/job-selector-controller.d.ts +5 -0
  31. package/dist/types/components/job-selector/job-selector.d.ts +21 -3
  32. package/dist/types/components/job-selector/types.d.ts +12 -0
  33. package/dist/types/components.d.ts +20 -99
  34. package/dist/types/index.d.ts +1 -1
  35. package/dist/vendor/taxonomy-core/af-data-layer.d.ts +16 -0
  36. package/dist/vendor/taxonomy-core/af-data-layer.js +24 -0
  37. package/dist/vendor/taxonomy-core/index.d.ts +1 -1
  38. package/dist/vendor/taxonomy-core/index.js +1 -1
  39. package/dist/vendor/taxonomy-core/pii-sanitizer.d.ts +25 -0
  40. package/dist/vendor/taxonomy-core/pii-sanitizer.js +137 -0
  41. package/dist/vendor/taxonomy-core/selector-navigation.d.ts +9 -1
  42. package/dist/vendor/taxonomy-core/selector-navigation.js +28 -1
  43. package/dist/vendor/taxonomy-core/selector-types.d.ts +12 -0
  44. package/dist/yrkesvaljaren/index.esm.js +1 -1
  45. package/dist/yrkesvaljaren/p-4f5b36c5.entry.js +1 -0
  46. package/dist/yrkesvaljaren/{p-BUviBbwX.js → p-DHK95AvZ.js} +1 -1
  47. package/dist/yrkesvaljaren/p-DVos4HHS.js +1 -0
  48. package/dist/yrkesvaljaren/p-ff349084.entry.js +1 -0
  49. package/dist/yrkesvaljaren/p-vJ-tamti.js +3 -0
  50. package/dist/yrkesvaljaren/yrkesvaljaren.esm.js +1 -1
  51. package/package.json +10 -10
  52. package/dist/cjs/geo-valjaren.cjs.entry.js +0 -14910
  53. package/dist/cjs/job-selector-demo.cjs.entry.js +0 -690
  54. package/dist/cjs/neobrutal-search.cjs.entry.js +0 -171
  55. package/dist/cjs/search.engine-D4cpbVzd.js +0 -504
  56. package/dist/cjs/taxonomy-registry-Dzt0SPzT.js +0 -454
  57. package/dist/cjs/types-CtHBl6Ra.js +0 -14
  58. package/dist/collection/components/geovaljaren/geovaljaren.css +0 -21
  59. package/dist/collection/components/geovaljaren/geovaljaren.js +0 -304
  60. package/dist/collection/components/geovaljaren/logic/adapter.utils.js +0 -20
  61. package/dist/collection/components/geovaljaren/logic/data.utils.js +0 -12
  62. package/dist/collection/components/geovaljaren/logic/history-service.js +0 -25
  63. package/dist/collection/components/geovaljaren/logic/search.engine.js +0 -28
  64. package/dist/collection/verkstad/verkstad.js +0 -408
  65. package/dist/components/fuse.js +0 -1
  66. package/dist/components/geo-valjaren.d.ts +0 -11
  67. package/dist/components/geo-valjaren.js +0 -1
  68. package/dist/components/job-selector-demo.d.ts +0 -11
  69. package/dist/components/job-selector-demo.js +0 -1
  70. package/dist/components/job-selector.js +0 -1
  71. package/dist/components/neobrutal-search.d.ts +0 -11
  72. package/dist/components/neobrutal-search.js +0 -1
  73. package/dist/components/search.engine.js +0 -1
  74. package/dist/esm/geo-valjaren.entry.js +0 -14908
  75. package/dist/esm/job-selector-demo.entry.js +0 -688
  76. package/dist/esm/neobrutal-search.entry.js +0 -169
  77. package/dist/esm/search.engine-BaWUTc3r.js +0 -493
  78. package/dist/esm/taxonomy-registry-C-pSh51L.js +0 -449
  79. package/dist/esm/types-DHUftoZJ.js +0 -12
  80. package/dist/types/components/geovaljaren/geovaljaren.d.ts +0 -24
  81. package/dist/types/components/geovaljaren/logic/adapter.utils.d.ts +0 -7
  82. package/dist/types/components/geovaljaren/logic/data.utils.d.ts +0 -7
  83. package/dist/types/components/geovaljaren/logic/history-service.d.ts +0 -6
  84. package/dist/types/components/geovaljaren/logic/search.engine.d.ts +0 -7
  85. package/dist/types/components/job-selector-demo/job-selector-demo.d.ts +0 -65
  86. package/dist/types/components/neobrutal-search/neobrutal-search.d.ts +0 -18
  87. package/dist/types/verkstad/verkstad.d.ts +0 -1
  88. package/dist/types/vitest-globals.d.ts +0 -1
  89. package/dist/yrkesvaljaren/p-5c3a5308.entry.js +0 -1
  90. package/dist/yrkesvaljaren/p-9ecd5177.entry.js +0 -1
  91. package/dist/yrkesvaljaren/p-BPnhMTul.js +0 -1
  92. package/dist/yrkesvaljaren/p-C-pSh51L.js +0 -1
  93. package/dist/yrkesvaljaren/p-CjMoDiZD.js +0 -1
  94. package/dist/yrkesvaljaren/p-DHUftoZJ.js +0 -1
  95. package/dist/yrkesvaljaren/p-HNd02eQb.js +0 -3
  96. package/dist/yrkesvaljaren/p-b6130085.entry.js +0 -1
  97. package/dist/yrkesvaljaren/p-dbbea724.entry.js +0 -1
  98. package/dist/yrkesvaljaren/p-df3fa43b.entry.js +0 -1
package/README.md CHANGED
@@ -7,7 +7,7 @@ En robust och intelligent sökkomponent för svenska yrken, designad för hög p
7
7
 
8
8
  ### Beskrivning
9
9
 
10
- * **Enkelt hitta rätt yrke för användaren** <br>Sökalgoritmen prioriterar exakta träffar, prefix, flerdelade direktträffar och innehåller-träffar. Om inga direktträffar finns kan upp till tre fuzzy-träffar visas. Viktdata används som sekundär sortering.
10
+ * **Enkelt hitta rätt yrke för användaren** <br>Sökalgoritmen prioriterar exakta träffar, prefix, flerdelade direktträffar och innehåller-träffar. Om inga direktträffar finns kan fuzzy-träffar visas: upp till fem när en av dem tydligt matchar roten i sökordet, annars upp till tre. Viktdata används som sekundär sortering.
11
11
  * **Hög prestanda:** <br>Sökningen sker lokalt i webbläsaren mot inläst yrkesdata. Komponenten gör inga sökanrop till Taxonomy API.
12
12
  * **Flexibel datahantering:** <br>Versionerat npm-datapaket (rekommenderas), automatiskt uppdaterad data eller en egen URL.
13
13
 
@@ -147,20 +147,21 @@ Yrkesväljaren är uppbyggd med designsystemets tokens, typografi, färger, foku
147
147
 
148
148
  ### Attribut
149
149
 
150
- | Attribut | Beskrivning | Typ | Standardvärde |
151
- |:---|:---|:---|:---|
152
- | `af-label` | Etikettext som visas ovanför sökfältet. | `string` | `'Välj yrke'` |
153
- | `disabled` | Om satt till `true`, kan väljaren inte användas med mus eller tangentbord. | `boolean` | `false` |
154
- | `af-label-description`| En valfri beskrivningstext som visas under etiketten. | `string` | `undefined` |
155
- | `af-placeholder` | Hjälptext som visas inuti sökfältet. Denna är ett bra stöd för de med kognitiv funktionsvariation - vi rekommenderar att behålla denna text (den är osynlig för skärmläsare). | `string` | `'T.ex. målare, florist, kock'` |
156
- | `af-error-message` | Ett anpassat felmeddelande som visas vid valideringsfel. | `string` | `undefined` |
157
- | `af-enable-multiple` | Om satt till `true`, tillåts val av flera yrken. | `boolean` | `false` |
158
- | `af-history` | Sparar användarval lokalt i webbläsarens Local Storage och visar historiken på samma domän. | `boolean` | `true` |
159
- | `af-required` | Om satt till `true`, måste användaren göra ett val för att fältet ska vara giltigt (obligatoriskt fält). | `boolean` | `false` |
160
- | `af-manual-input` | Om satt till `true` kan användaren ange ett yrke som fritext när det inte finns i listan. Om satt till `false` måste ett fördefinierat yrke väljas. | `boolean` | `false` |
161
- | `af-size` | Storleken på inputfältet. Möjliga värden: `'small'`, `'medium'`, `'large'`. | `string` | `'medium'` |
162
- | `af-popular` | Om satt till `true` visas sektionen "Populära sökningar" när historiken är tom. | `boolean` | `true` |
163
- | `af-taxonomy-url` | Fullständig, explicit URL till en egenhostad datafil. Utelämna attributet för att använda senaste data automatiskt. | `string` | `undefined` |
150
+ | Attribut | Property | Beskrivning | Typ | Förvalt |
151
+ | --- | --- | --- | --- | --- |
152
+ | `af-label` | `label` | Etikettext som visas ovanför sökfältet. | `string` | `'Välj yrke'` |
153
+ | `disabled` | `disabled` | Om satt till `true`, kan väljaren inte användas med mus eller tangentbord. | `boolean` | `false` |
154
+ | `af-label-description` | `labelDescription` | En valfri beskrivningstext som visas under etiketten. | `string` | `undefined` |
155
+ | `af-placeholder` | `placeholder` | Hjälptext som visas inuti sökfältet. Denna är ett bra stöd för de med kognitiv funktionsvariation - vi rekommenderar att behålla denna text (den är osynlig för skärmläsare). | `string` | `'T.ex. målare, florist, kock'` |
156
+ | `af-error-message` | `errorMessage` | Ett anpassat felmeddelande som visas vid valideringsfel. | `string` | `undefined` |
157
+ | `af-enable-multiple` | `enableMultiple` | Om satt till `true`, tillåts val av flera yrken. | `boolean` | `false` |
158
+ | `af-history` | `history` | Sparar användarval lokalt i webbläsarens Local Storage och visar historiken på samma domän. | `boolean` | `true` |
159
+ | `af-required` | `required` | Om satt till `true`, måste användaren göra ett val för att fältet ska vara giltigt (obligatoriskt fält). | `boolean` | `false` |
160
+ | `af-manual-input` | `manualInput` | Om satt till `true` kan användaren ange ett yrke som fritext när det inte finns i listan. | `boolean` | `false` |
161
+ | `af-feedback` | `feedback` | Om satt till `true` kan användaren föreslå ett saknat yrke med en frivillig motivering. Förslaget skickas till Arbetsförmedlingen, se [Förslag och Piwik PRO](#förslag-och-piwik-pro). | `boolean` | `false` |
162
+ | `af-size` | `size` | Storleken på inputfältet. Möjliga värden: `'small'`, `'medium'`, `'large'`. | `string` | `'medium'` |
163
+ | `af-popular` | `popular` | Om satt till `true` visas sektionen "Populära sökningar" när historiken är tom. | `boolean` | `true` |
164
+ | `af-taxonomy-url` | `taxonomyUrl` | Fullständig, explicit URL till en egenhostad datafil. Utelämna attributet för att använda senaste data automatiskt. | `string` | `undefined` |
164
165
 
165
166
  ### Riktlinjer och rekommendationer
166
167
 
@@ -171,11 +172,11 @@ Tre centrala inställningar styr användarupplevelsen och datakvaliteten i Yrkes
171
172
  * **När det rekommenderas:** I formulär och flöden där ett yrkesval är ett obligatoriskt steg i ett ärende (t.ex. inskrivning och aktivitetsrapportering).
172
173
  * **När det bör undvikas:** I öppna sök- eller filtreringsvyer där användaren ska kunna söka brett, filtrera på andra parametrar (t.ex. enbart ort/geografi) eller frivilligt specificera yrke.
173
174
 
174
- #### Tillåt fritext (`af-manual-input`)
175
- * **Hur man kan resonera:** Avgör om användaren strikt måste välja ett strukturerat yrkesbegrepp ur Arbetsförmedlingens taxonomi (vilket garanterar Concept ID och SSYK-kod), eller om användaren även tillåts mata in egna fritextvärden som inte finns i taxonomin. Vid fritext visas valet *"Använd '{inmatning}'"* i listan som användaren aktivt väljer eller bekräftar med Enter.
176
- * **När det rekommenderas:**
177
- * **Strikt taxonomi (`af-manual-input="false"` – standard & rekommenderas):** När yrkesdatan ska användas för automatisk matchning, statistiska analyser, maskininlärning eller integration mot backend-system som förutsätter Concept ID. Detta säkerställer hög datakvalitet.
178
- * **Fritext tillåten (`af-manual-input="true"`):** I öppna fritextprofiler, fritextenkäter eller intresseanmälningar där det är viktigare att fånga upp vad användaren själv kallar sin roll än att få ett taxonomi-ID, eller där man inte vill blockera användare med ovanliga, nischade eller internationella titlar.
175
+ #### Förslag på saknade yrken (`af-feedback`) och fritext (`af-manual-input`)
176
+ * **Hur man kan resonera:**
177
+ * **Förslag till Arbetsförmedlingen (`af-feedback="true"`, av som standard):** Komponenten ger användaren möjlighet att föreslå saknade yrken med en frivillig motivering. Förslaget skickas som eventet `afOnSubmitJobSuggestion`. Det når Arbetsförmedlingen bara när Arbetsförmedlingens Piwik PRO-skript finns på sidan. Du behöver ingen egen backend för detta. Vi rekommenderar att du slår på `af-feedback`, eftersom förslagen hjälper Arbetsförmedlingens taxonomiredaktion att fånga upp nya och saknade yrken.
178
+ * **Strikt taxonomi (`af-manual-input="false"` – standard & rekommenderas):** När yrkesdatan ska användas för automatisk matchning, statistiska analyser eller integration mot backend-system som förutsätter Concept ID. Om `af-feedback="true"` kan användaren skicka in sitt förslag men måste därefter välja ett befintligt yrke ur listan.
179
+ * **Fritext tillåten (`af-manual-input="true"`):** I öppna fritextprofiler, fritextenkäter eller intresseanmälningar där det är viktigare att fånga upp vad användaren själv kallar sin roll än att få ett taxonomi-ID.
179
180
 
180
181
  #### Tillåt historik (`af-history`)
181
182
  * **Hur man kan resonera:** Sparar gjorda val i webbläsarens localStorage per domän och enhet, och visar dem som "Tidigare val" när användaren fokuserar Yrkesväljaren. Det betyder att historiken kommer att visas på alla tjänster med yrkesväljare på arbetsformedlingen.se (så länge personen använder samma enhet, t.ex. sin mobil).
@@ -192,8 +193,12 @@ Välj ett av följande sätt:
192
193
 
193
194
  En angiven `af-taxonomy-url` är den valda datakällan. Om URL:en inte kan laddas
194
195
  går komponenten till felläge och skickar `afJobDataLoadFailed`.
195
- <br>
196
196
 
197
+ Från `1.1.0` (`@taxonomy/yrkesvaljaren-data-vNN`) respektive `NN.1.0` (`@arbetsformedlingen/yrkesvaljaren-data`)
198
+ har varje post i datapaketets `taxonomyData` både `ssyk_level_4_id` (SSYK nivå 4 som concept-id) och
199
+ `ssyk_code_2012` (den fyrsiffriga SSYK 2012-koden). Hela posttypen finns i paketets `index.d.ts`.
200
+ Fälten är till för värdappar som läser datat direkt. Av de två fälten finns bara `ssyk_code_2012` i komponentens output.
201
+ <br>
197
202
  ### Events
198
203
 
199
204
  | Händelse | Beskrivning |
@@ -201,6 +206,18 @@ går komponenten till felläge och skickar `afJobDataLoadFailed`.
201
206
  | `afJobSelected` | Skickas ut när användaren ändrar valet. `event.detail` innehåller `JobSelectionItem[]` som kan skickas tillbaka till `setSelection()`. |
202
207
  | `afJobDataLoadFailed` | Skickas när laddningen av yrkesdata misslyckas. |
203
208
  | `afJobValidationChange` | Skickas när komponenten kör validering efter att fältet har berörts. `event.detail` innehåller `{ isValid: boolean, errorType: 'required'|'invalidInput'|null }`. |
209
+ | `afOnSubmitJobSuggestion` | Skickas när användaren skickar in ett förslag på saknat yrke till Arbetsförmedlingen. `event.detail` innehåller `{ selectedJobs: JobSelectionItem[], suggestionJob: string, suggestionMotivation: string }`. |
210
+
211
+ ### Förslag och Piwik PRO
212
+
213
+ Förslag skickas automatiskt till Arbetsförmedlingens Piwik PRO när sidan har AF:s
214
+ Piwik PRO-skript. Containern lyssnar på `afOnSubmitJobSuggestion` och registrerar förslaget som
215
+ "AS - Designsystem - Yrkesväljaren - Inskickat förslag". Integratören behöver inte göra något,
216
+ och sidor utan skriptet påverkas inte.
217
+
218
+ Förslag och motivering kontrolleras mot vanliga personuppgifter, till exempel personnummer,
219
+ e-post, telefonnummer, adresser, kontonummer och webbadresser. Vid träff skickas ingenting och
220
+ användaren får rätta texten. Kontrollen minskar risken men garanterar inte att texten är anonym.
204
221
 
205
222
  ### Metoder
206
223
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-hZgOvC17.js');
3
+ var index = require('./index-DMQDFAL7.js');
4
4
 
5
5
  const AfValidationMessage = (props, children) => {
6
6
  const extraClass = props.class || '';