@forsakringskassan/devindex-menu 2.1.10 → 2.2.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/README.md CHANGED
@@ -28,8 +28,32 @@ require("@forsakringskassan/devindex-menu")([
28
28
 
29
29
  When execOnChange is set to a value, the global function with this name will be called on onChange of the dropdown list.
30
30
 
31
+ ### With options
32
+
33
+ The menu can have an options object as an optional second parameter.
34
+
35
+ ```js
36
+ require("@forsakringskassan/devindex-menu")(
37
+ [
38
+ {
39
+ key: "example",
40
+ title: "Example",
41
+ options: [
42
+ { title: "Default mock", value: "default" },
43
+ { title: "Special mock", value: "special" },
44
+ ],
45
+ },
46
+ ],
47
+ {
48
+ position: "right",
49
+ },
50
+ );
51
+ ```
52
+
31
53
  ## API
32
54
 
55
+ Menu content
56
+
33
57
  ```js
34
58
  [
35
59
  {
@@ -45,6 +69,16 @@ When execOnChange is set to a value, the global function with this name will be
45
69
  ]
46
70
  ```
47
71
 
72
+ Options
73
+
74
+ ```js
75
+ [
76
+ {
77
+ position: "left" | "right" (optional, default: "left"), // Controls if the menu is placed on the left or the right side of the page.
78
+ },
79
+ ]
80
+ ```
81
+
48
82
  ## Use mocks directly
49
83
 
50
84
  It's also possible to use mocks for `@forsakringskassan/apimock-express` directly.
package/dist/cjs/menu.js CHANGED
@@ -1237,6 +1237,19 @@ var style_default = `.secret-menu {
1237
1237
  color: #efefef;
1238
1238
  position: fixed;
1239
1239
  }
1240
+ .secret-menu.secret-menu--right {
1241
+ left: auto;
1242
+ right: 0;
1243
+ }
1244
+ .secret-menu.secret-menu--right .toggle {
1245
+ left: auto;
1246
+ right: 0px;
1247
+ top: 40px;
1248
+ border-top-right-radius: 0px;
1249
+ border-bottom-right-radius: 0px;
1250
+ border-top-left-radius: 5px;
1251
+ border-bottom-left-radius: 5px;
1252
+ }
1240
1253
  .secret-menu .toggle {
1241
1254
  border: 0;
1242
1255
  position: fixed;
@@ -1269,6 +1282,10 @@ var style_default = `.secret-menu {
1269
1282
  width: 300px;
1270
1283
  overflow: auto;
1271
1284
  }
1285
+ .secret-menu.open.secret-menu--right .toggle {
1286
+ left: auto;
1287
+ right: 300px;
1288
+ }
1272
1289
  .secret-menu.open .toggle {
1273
1290
  left: 300px;
1274
1291
  }
@@ -1396,7 +1413,11 @@ function entryFromMock(mock) {
1396
1413
  var defaultSetting = {
1397
1414
  type: "select"
1398
1415
  };
1399
- var menu_default = (userSettingsAndMocks) => {
1416
+ var defaultOptions = {
1417
+ position: "left"
1418
+ };
1419
+ var menu_default = (userSettingsAndMocks, menuOptions) => {
1420
+ const options = { ...defaultOptions, ...menuOptions };
1400
1421
  document.head.insertAdjacentHTML("beforeend", `<style>${style_default}</style>`);
1401
1422
  document.body.insertAdjacentHTML(
1402
1423
  "beforeend",
@@ -1415,7 +1436,7 @@ var menu_default = (userSettingsAndMocks) => {
1415
1436
  document.body.insertAdjacentHTML(
1416
1437
  "beforeend",
1417
1438
  `
1418
- <div class="secret-menu" aria-hidden="true">
1439
+ <div class="secret-menu${options.position === "right" ? " secret-menu--right" : ""}" aria-hidden="true">
1419
1440
  <button type="button" class="toggle" tabindex="-1" onclick="toggleMenu()">
1420
1441
  <span></span>
1421
1442
  <span></span>
package/dist/esm/menu.js CHANGED
@@ -1212,6 +1212,19 @@ var style_default = `.secret-menu {
1212
1212
  color: #efefef;
1213
1213
  position: fixed;
1214
1214
  }
1215
+ .secret-menu.secret-menu--right {
1216
+ left: auto;
1217
+ right: 0;
1218
+ }
1219
+ .secret-menu.secret-menu--right .toggle {
1220
+ left: auto;
1221
+ right: 0px;
1222
+ top: 40px;
1223
+ border-top-right-radius: 0px;
1224
+ border-bottom-right-radius: 0px;
1225
+ border-top-left-radius: 5px;
1226
+ border-bottom-left-radius: 5px;
1227
+ }
1215
1228
  .secret-menu .toggle {
1216
1229
  border: 0;
1217
1230
  position: fixed;
@@ -1244,6 +1257,10 @@ var style_default = `.secret-menu {
1244
1257
  width: 300px;
1245
1258
  overflow: auto;
1246
1259
  }
1260
+ .secret-menu.open.secret-menu--right .toggle {
1261
+ left: auto;
1262
+ right: 300px;
1263
+ }
1247
1264
  .secret-menu.open .toggle {
1248
1265
  left: 300px;
1249
1266
  }
@@ -1371,7 +1388,11 @@ function entryFromMock(mock) {
1371
1388
  var defaultSetting = {
1372
1389
  type: "select"
1373
1390
  };
1374
- var menu_default = (userSettingsAndMocks) => {
1391
+ var defaultOptions = {
1392
+ position: "left"
1393
+ };
1394
+ var menu_default = (userSettingsAndMocks, menuOptions) => {
1395
+ const options = { ...defaultOptions, ...menuOptions };
1375
1396
  document.head.insertAdjacentHTML("beforeend", `<style>${style_default}</style>`);
1376
1397
  document.body.insertAdjacentHTML(
1377
1398
  "beforeend",
@@ -1390,7 +1411,7 @@ var menu_default = (userSettingsAndMocks) => {
1390
1411
  document.body.insertAdjacentHTML(
1391
1412
  "beforeend",
1392
1413
  `
1393
- <div class="secret-menu" aria-hidden="true">
1414
+ <div class="secret-menu${options.position === "right" ? " secret-menu--right" : ""}" aria-hidden="true">
1394
1415
  <button type="button" class="toggle" tabindex="-1" onclick="toggleMenu()">
1395
1416
  <span></span>
1396
1417
  <span></span>
@@ -41,11 +41,14 @@ export interface ScenarioSetting {
41
41
  cookies: Record<string, string | undefined>;
42
42
  }
43
43
  export type Settings = SelectSettings | LinkSettings | TextSettings | ScenarioSetting;
44
+ export interface MenuOptions {
45
+ position?: "left" | "right";
46
+ }
44
47
  export declare const ONE_MONTH_IN_SECONDS = 2592000;
45
48
  /**
46
49
  * @param userSettingsAndMocks - An array of user settings and/or mocks to generate the menu from.
47
50
  */
48
- declare const _default: (userSettingsAndMocks: Array<Settings | Mock>) => void;
51
+ declare const _default: (userSettingsAndMocks: Array<Settings | Mock>, menuOptions?: MenuOptions) => void;
49
52
 
50
53
  export {
51
54
  _default as default,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forsakringskassan/devindex-menu",
3
- "version": "2.1.10",
3
+ "version": "2.2.0",
4
4
  "description": "Menu for local development",
5
5
  "keywords": [
6
6
  "development",
@@ -36,13 +36,13 @@
36
36
  "prebuild": "tsc",
37
37
  "build": "node ./scripts/generate.mjs",
38
38
  "postbuild": "npm run types:main && npm run types:pageobject",
39
- "types:main": "dts-bundle-generator -o dist/types/menu.d.ts temp/types/menu.d.ts",
40
- "types:pageobject": "dts-bundle-generator -o dist/types/pageobjects.d.ts temp/types/pageobjects.d.ts",
41
39
  "eslint": "eslint --cache .",
42
40
  "prettier:check": "prettier --check .",
43
41
  "prettier:write": "prettier --write .",
42
+ "start": "node ./scripts/serve.mjs",
44
43
  "test": "npm run prettier:check && npm run eslint",
45
- "start": "node ./scripts/serve.mjs"
44
+ "types:main": "dts-bundle-generator -o dist/types/menu.d.ts temp/types/menu.d.ts",
45
+ "types:pageobject": "dts-bundle-generator -o dist/types/pageobjects.d.ts temp/types/pageobjects.d.ts"
46
46
  },
47
47
  "commitlint": {
48
48
  "extends": "@forsakringskassan/commitlint-config/no-jira"
@@ -51,34 +51,34 @@
51
51
  "release": {
52
52
  "extends": "@forsakringskassan/semantic-release-config"
53
53
  },
54
+ "dependencies": {
55
+ "@fkui/logic": "6.43.0"
56
+ },
54
57
  "devDependencies": {
55
58
  "@babel/core": "7.29.0",
56
59
  "@babel/preset-env": "7.29.2",
57
- "@fkui/tsconfig": "6.42.0",
58
- "@forsakringskassan/apimock-express": "2.15.0",
59
- "@forsakringskassan/commitlint-config": "3.3.10",
60
- "@forsakringskassan/eslint-config": "14.1.2",
61
- "@forsakringskassan/eslint-config-cli": "14.1.0",
62
- "@forsakringskassan/eslint-config-cypress": "14.1.3",
63
- "@forsakringskassan/eslint-config-jest": "14.1.0",
64
- "@forsakringskassan/eslint-config-typescript": "14.1.0",
65
- "@forsakringskassan/eslint-config-typescript-typeinfo": "14.1.0",
66
- "@forsakringskassan/prettier-config": "3.3.6",
60
+ "@fkui/tsconfig": "6.43.0",
61
+ "@forsakringskassan/apimock-express": "2.15.1",
62
+ "@forsakringskassan/commitlint-config": "3.3.11",
63
+ "@forsakringskassan/eslint-config": "14.1.14",
64
+ "@forsakringskassan/eslint-config-cli": "14.1.11",
65
+ "@forsakringskassan/eslint-config-cypress": "14.1.12",
66
+ "@forsakringskassan/eslint-config-jest": "14.1.9",
67
+ "@forsakringskassan/eslint-config-typescript": "14.1.10",
68
+ "@forsakringskassan/eslint-config-typescript-typeinfo": "14.1.10",
69
+ "@forsakringskassan/prettier-config": "3.3.9",
67
70
  "@tsconfig/node22": "22.0.5",
68
71
  "@types/node": "22.19.17",
69
- "cypress": "15.13.0",
72
+ "cypress": "15.14.0",
70
73
  "cypress-html-validate": "8.1.0",
71
74
  "dts-bundle-generator": "9.5.1",
72
75
  "esbuild": "0.28.0",
73
76
  "esbuild-sass-plugin": "3.7.0",
74
- "npm-pkg-lint": "4.6.4",
77
+ "npm-pkg-lint": "4.6.5",
75
78
  "sass": "1.99.0",
76
79
  "typescript": "5.9.3"
77
80
  },
78
81
  "engines": {
79
82
  "node": ">= 22.0.0"
80
- },
81
- "dependencies": {
82
- "@fkui/logic": "6.42.0"
83
83
  }
84
84
  }