ember-sortable 5.1.1 → 5.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.
Files changed (65) hide show
  1. package/README.md +20 -12
  2. package/{addon-main.js → addon-main.cjs} +2 -0
  3. package/declarations/modifiers/sortable-group.d.ts +326 -0
  4. package/declarations/modifiers/sortable-group.d.ts.map +1 -0
  5. package/declarations/modifiers/sortable-handle.d.ts +24 -0
  6. package/declarations/modifiers/sortable-handle.d.ts.map +1 -0
  7. package/declarations/modifiers/sortable-item.d.ts +346 -0
  8. package/declarations/modifiers/sortable-item.d.ts.map +1 -0
  9. package/declarations/services/ember-sortable-internal-state.d.ts +58 -0
  10. package/declarations/services/ember-sortable-internal-state.d.ts.map +1 -0
  11. package/declarations/system/scroll-container.d.ts +18 -0
  12. package/declarations/system/scroll-container.d.ts.map +1 -0
  13. package/declarations/system/scroll-parent.d.ts +2 -0
  14. package/declarations/system/scroll-parent.d.ts.map +1 -0
  15. package/declarations/template-registry.d.ts +9 -0
  16. package/declarations/template-registry.d.ts.map +1 -0
  17. package/declarations/test-support/helpers/drag.d.ts +37 -0
  18. package/declarations/test-support/helpers/drag.d.ts.map +1 -0
  19. package/declarations/test-support/helpers/reorder.d.ts +25 -0
  20. package/declarations/test-support/helpers/reorder.d.ts.map +1 -0
  21. package/declarations/test-support/index.d.ts +5 -0
  22. package/declarations/test-support/index.d.ts.map +1 -0
  23. package/declarations/test-support/utils/keyboard.d.ts +17 -0
  24. package/declarations/test-support/utils/keyboard.d.ts.map +1 -0
  25. package/declarations/test-support/utils/offset.d.ts +11 -0
  26. package/declarations/test-support/utils/offset.d.ts.map +1 -0
  27. package/declarations/utils/constant.d.ts +11 -0
  28. package/declarations/utils/constant.d.ts.map +1 -0
  29. package/declarations/utils/coordinate.d.ts +17 -0
  30. package/declarations/utils/coordinate.d.ts.map +1 -0
  31. package/declarations/utils/css-calculation.d.ts +13 -0
  32. package/declarations/utils/css-calculation.d.ts.map +1 -0
  33. package/declarations/utils/defaults.d.ts +23 -0
  34. package/declarations/utils/defaults.d.ts.map +1 -0
  35. package/declarations/utils/keyboard.d.ts +17 -0
  36. package/declarations/utils/keyboard.d.ts.map +1 -0
  37. package/dist/{_rollupPluginBabelHelpers-543b1c36.js → _rollupPluginBabelHelpers-a7bede49.js} +2 -2
  38. package/dist/_rollupPluginBabelHelpers-a7bede49.js.map +1 -0
  39. package/dist/modifiers/sortable-group.js +63 -30
  40. package/dist/modifiers/sortable-group.js.map +1 -1
  41. package/dist/modifiers/sortable-handle.js +4 -4
  42. package/dist/modifiers/sortable-handle.js.map +1 -1
  43. package/dist/modifiers/sortable-item.js +187 -80
  44. package/dist/modifiers/sortable-item.js.map +1 -1
  45. package/dist/services/ember-sortable-internal-state.js +11 -5
  46. package/dist/services/ember-sortable-internal-state.js.map +1 -1
  47. package/dist/test-support/helpers/drag.js +4 -1
  48. package/dist/test-support/helpers/drag.js.map +1 -1
  49. package/dist/test-support/helpers/reorder.js +12 -2
  50. package/dist/test-support/helpers/reorder.js.map +1 -1
  51. package/dist/test-support/utils/keyboard.js.map +1 -1
  52. package/dist/test-support/utils/offset.js.map +1 -1
  53. package/dist/utils/constant.js.map +1 -1
  54. package/dist/utils/coordinate.js +4 -4
  55. package/dist/utils/coordinate.js.map +1 -1
  56. package/dist/utils/css-calculation.js +4 -4
  57. package/dist/utils/css-calculation.js.map +1 -1
  58. package/dist/utils/defaults.js.map +1 -1
  59. package/dist/utils/keyboard.js.map +1 -1
  60. package/package.json +92 -27
  61. package/dist/_rollupPluginBabelHelpers-543b1c36.js.map +0 -1
  62. package/dist/system/scroll-container.js +0 -54
  63. package/dist/system/scroll-container.js.map +0 -1
  64. package/dist/system/scroll-parent.js +0 -35
  65. package/dist/system/scroll-parent.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"keyboard.js","sources":["../../src/utils/keyboard.js"],"sourcesContent":["const ENTER_KEY = 'Enter';\nconst ESCAPE_KEY = 'Escape';\nconst SPACE_KEY = 'Space';\nconst ARROW_KEYS = {\n LEFT: 'ArrowLeft',\n UP: 'ArrowUp',\n RIGHT: 'ArrowRight',\n DOWN: 'ArrowDown',\n};\nexport const ENTER_KEY_CODE = 13;\nexport const ESCAPE_KEY_CODE = 27;\nexport const SPACE_KEY_CODE = 32;\nexport const ARROW_KEY_CODES = {\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n};\n\nfunction createKeyTest(key, keyCode) {\n return function isKey(event) {\n return event.key === key || event.keyCode === keyCode;\n };\n}\n\nexport const isEnterKey = createKeyTest(ENTER_KEY, ENTER_KEY_CODE);\nexport const isEscapeKey = createKeyTest(ESCAPE_KEY, ESCAPE_KEY_CODE);\nexport const isSpaceKey = createKeyTest(SPACE_KEY, SPACE_KEY_CODE);\nexport const isLeftArrowKey = createKeyTest(ARROW_KEYS.LEFT, ARROW_KEY_CODES.LEFT);\nexport const isUpArrowKey = createKeyTest(ARROW_KEYS.UP, ARROW_KEY_CODES.UP);\nexport const isRightArrowKey = createKeyTest(ARROW_KEYS.RIGHT, ARROW_KEY_CODES.RIGHT);\nexport const isDownArrowKey = createKeyTest(ARROW_KEYS.DOWN, ARROW_KEY_CODES.DOWN);\n"],"names":["ENTER_KEY","ESCAPE_KEY","SPACE_KEY","ARROW_KEYS","LEFT","UP","RIGHT","DOWN","ENTER_KEY_CODE","ESCAPE_KEY_CODE","SPACE_KEY_CODE","ARROW_KEY_CODES","createKeyTest","key","keyCode","isKey","event","isEnterKey","isEscapeKey","isSpaceKey","isLeftArrowKey","isUpArrowKey","isRightArrowKey","isDownArrowKey"],"mappings":"AAAA,MAAMA,SAAS,GAAG,OAAO,CAAA;AACzB,MAAMC,UAAU,GAAG,QAAQ,CAAA;AAC3B,MAAMC,SAAS,GAAG,OAAO,CAAA;AACzB,MAAMC,UAAU,GAAG;AACjBC,EAAAA,IAAI,EAAE,WAAW;AACjBC,EAAAA,EAAE,EAAE,SAAS;AACbC,EAAAA,KAAK,EAAE,YAAY;AACnBC,EAAAA,IAAI,EAAE,WAAA;AACR,CAAC,CAAA;AACM,MAAMC,cAAc,GAAG,GAAE;AACzB,MAAMC,eAAe,GAAG,GAAE;AAC1B,MAAMC,cAAc,GAAG,GAAE;AACzB,MAAMC,eAAe,GAAG;AAC7BP,EAAAA,IAAI,EAAE,EAAE;AACRC,EAAAA,EAAE,EAAE,EAAE;AACNC,EAAAA,KAAK,EAAE,EAAE;AACTC,EAAAA,IAAI,EAAE,EAAA;AACR,EAAC;AAED,SAASK,aAAaA,CAACC,GAAG,EAAEC,OAAO,EAAE;AACnC,EAAA,OAAO,SAASC,KAAKA,CAACC,KAAK,EAAE;IAC3B,OAAOA,KAAK,CAACH,GAAG,KAAKA,GAAG,IAAIG,KAAK,CAACF,OAAO,KAAKA,OAAO,CAAA;GACtD,CAAA;AACH,CAAA;AAEO,MAAMG,UAAU,GAAGL,aAAa,CAACZ,SAAS,EAAEQ,cAAc,EAAC;AAC3D,MAAMU,WAAW,GAAGN,aAAa,CAACX,UAAU,EAAEQ,eAAe,EAAC;AAC9D,MAAMU,UAAU,GAAGP,aAAa,CAACV,SAAS,EAAEQ,cAAc,EAAC;AACrDU,MAAAA,cAAc,GAAGR,aAAa,CAACT,UAAU,CAACC,IAAI,EAAEO,eAAe,CAACP,IAAI,EAAC;AACrEiB,MAAAA,YAAY,GAAGT,aAAa,CAACT,UAAU,CAACE,EAAE,EAAEM,eAAe,CAACN,EAAE,EAAC;AAC/DiB,MAAAA,eAAe,GAAGV,aAAa,CAACT,UAAU,CAACG,KAAK,EAAEK,eAAe,CAACL,KAAK,EAAC;AACxEiB,MAAAA,cAAc,GAAGX,aAAa,CAACT,UAAU,CAACI,IAAI,EAAEI,eAAe,CAACJ,IAAI;;;;"}
1
+ {"version":3,"file":"keyboard.js","sources":["../../src/utils/keyboard.ts"],"sourcesContent":["const ENTER_KEY = 'Enter';\nconst ESCAPE_KEY = 'Escape';\nconst SPACE_KEY = 'Space';\nconst ARROW_KEYS = {\n LEFT: 'ArrowLeft',\n UP: 'ArrowUp',\n RIGHT: 'ArrowRight',\n DOWN: 'ArrowDown',\n};\nexport const ENTER_KEY_CODE = 13;\nexport const ESCAPE_KEY_CODE = 27;\nexport const SPACE_KEY_CODE = 32;\nexport const ARROW_KEY_CODES = {\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n};\n\nfunction createKeyTest(key: string, keyCode: number): (event: KeyboardEvent) => boolean {\n return function isKey(event: KeyboardEvent): boolean {\n return event.key === key || event.keyCode === keyCode;\n };\n}\n\nexport const isEnterKey = createKeyTest(ENTER_KEY, ENTER_KEY_CODE);\nexport const isEscapeKey = createKeyTest(ESCAPE_KEY, ESCAPE_KEY_CODE);\nexport const isSpaceKey = createKeyTest(SPACE_KEY, SPACE_KEY_CODE);\nexport const isLeftArrowKey = createKeyTest(ARROW_KEYS.LEFT, ARROW_KEY_CODES.LEFT);\nexport const isUpArrowKey = createKeyTest(ARROW_KEYS.UP, ARROW_KEY_CODES.UP);\nexport const isRightArrowKey = createKeyTest(ARROW_KEYS.RIGHT, ARROW_KEY_CODES.RIGHT);\nexport const isDownArrowKey = createKeyTest(ARROW_KEYS.DOWN, ARROW_KEY_CODES.DOWN);\n"],"names":["ENTER_KEY","ESCAPE_KEY","SPACE_KEY","ARROW_KEYS","LEFT","UP","RIGHT","DOWN","ENTER_KEY_CODE","ESCAPE_KEY_CODE","SPACE_KEY_CODE","ARROW_KEY_CODES","createKeyTest","key","keyCode","isKey","event","isEnterKey","isEscapeKey","isSpaceKey","isLeftArrowKey","isUpArrowKey","isRightArrowKey","isDownArrowKey"],"mappings":"AAAA,MAAMA,SAAS,GAAG,OAAO,CAAA;AACzB,MAAMC,UAAU,GAAG,QAAQ,CAAA;AAC3B,MAAMC,SAAS,GAAG,OAAO,CAAA;AACzB,MAAMC,UAAU,GAAG;AACjBC,EAAAA,IAAI,EAAE,WAAW;AACjBC,EAAAA,EAAE,EAAE,SAAS;AACbC,EAAAA,KAAK,EAAE,YAAY;AACnBC,EAAAA,IAAI,EAAE,WAAA;AACR,CAAC,CAAA;AACM,MAAMC,cAAc,GAAG,GAAE;AACzB,MAAMC,eAAe,GAAG,GAAE;AAC1B,MAAMC,cAAc,GAAG,GAAE;AACzB,MAAMC,eAAe,GAAG;AAC7BP,EAAAA,IAAI,EAAE,EAAE;AACRC,EAAAA,EAAE,EAAE,EAAE;AACNC,EAAAA,KAAK,EAAE,EAAE;AACTC,EAAAA,IAAI,EAAE,EAAA;AACR,EAAC;AAED,SAASK,aAAaA,CAACC,GAAW,EAAEC,OAAe,EAAqC;AACtF,EAAA,OAAO,SAASC,KAAKA,CAACC,KAAoB,EAAW;IACnD,OAAOA,KAAK,CAACH,GAAG,KAAKA,GAAG,IAAIG,KAAK,CAACF,OAAO,KAAKA,OAAO,CAAA;GACtD,CAAA;AACH,CAAA;AAEO,MAAMG,UAAU,GAAGL,aAAa,CAACZ,SAAS,EAAEQ,cAAc,EAAC;AAC3D,MAAMU,WAAW,GAAGN,aAAa,CAACX,UAAU,EAAEQ,eAAe,EAAC;AAC9D,MAAMU,UAAU,GAAGP,aAAa,CAACV,SAAS,EAAEQ,cAAc,EAAC;AACrDU,MAAAA,cAAc,GAAGR,aAAa,CAACT,UAAU,CAACC,IAAI,EAAEO,eAAe,CAACP,IAAI,EAAC;AACrEiB,MAAAA,YAAY,GAAGT,aAAa,CAACT,UAAU,CAACE,EAAE,EAAEM,eAAe,CAACN,EAAE,EAAC;AAC/DiB,MAAAA,eAAe,GAAGV,aAAa,CAACT,UAAU,CAACG,KAAK,EAAEK,eAAe,CAACL,KAAK,EAAC;AACxEiB,MAAAA,cAAc,GAAGX,aAAa,CAACT,UAAU,CAACI,IAAI,EAAEI,eAAe,CAACJ,IAAI;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ember-sortable",
3
- "version": "5.1.1",
3
+ "version": "5.2.0",
4
4
  "description": "Sortable UI primitives for Ember.",
5
5
  "keywords": [
6
6
  "ember-addon",
@@ -14,15 +14,30 @@
14
14
  "test": "tests"
15
15
  },
16
16
  "exports": {
17
- ".": "./dist/index.js",
17
+ ".": {
18
+ "types": "./declarations/index.d.ts",
19
+ "default": "./dist/index.js"
20
+ },
21
+ "./*": {
22
+ "types": "./declarations/*.d.ts",
23
+ "default": "./dist/*.js"
24
+ },
18
25
  "./_app_/*": "./dist/_app_/*.js",
19
26
  "./modifiers/*": "./dist/modifiers/*.js",
20
27
  "./services/*": "./dist/services/*.js",
21
28
  "./test-support": "./dist/test-support/index.js",
22
- "./addon-main.js": "./addon-main.js"
29
+ "./addon-main.js": "./addon-main.cjs"
30
+ },
31
+ "typesVersions": {
32
+ "*": {
33
+ "*": [
34
+ "declarations/*"
35
+ ]
36
+ }
23
37
  },
24
38
  "files": [
25
- "addon-main.js",
39
+ "addon-main.cjs",
40
+ "declarations",
26
41
  "dist"
27
42
  ],
28
43
  "peerDependencies": {
@@ -32,25 +47,67 @@
32
47
  "ember-source": "^3.28.0 || >= 4.0.0"
33
48
  },
34
49
  "dependencies": {
35
- "@embroider/addon-shim": "^1.8.4"
50
+ "@embroider/addon-shim": "^1.8.9",
51
+ "@embroider/macros": "^1.16.6",
52
+ "@glimmer/env": "^0.1.7",
53
+ "rsvp": "^4.8.5"
36
54
  },
37
55
  "devDependencies": {
38
- "@babel/core": "^7.20.12",
39
- "@babel/plugin-proposal-class-properties": "^7.18.6",
40
- "@babel/plugin-proposal-decorators": "^7.20.7",
41
- "@embroider/addon-dev": "^3.0.0",
42
- "@rollup/plugin-babel": "^6.0.3",
56
+ "@babel/core": "^7.25.2",
43
57
  "@babel/eslint-parser": "^7.11.0",
44
- "eslint": "^7.32.0",
45
- "eslint-config-prettier": "^8.4.0",
46
- "eslint-plugin-ember": "^10.5.9",
47
- "eslint-plugin-n": "^14.0.0",
48
- "eslint-plugin-prettier": "^4.0.0",
49
- "eslint-plugin-qunit": "^7.2.0",
50
- "npm-run-all2": "^5.0.0",
51
- "prettier": "^2.5.1",
52
- "rollup": "^3.10.0",
53
- "rollup-plugin-copy": "^3.4.0"
58
+ "@babel/plugin-proposal-class-properties": "^7.18.6",
59
+ "@babel/plugin-proposal-decorators": "^7.24.7",
60
+ "@babel/plugin-transform-typescript": "^7.25.2",
61
+ "@ember/test-helpers": "^4.0.4",
62
+ "@ember/test-waiters": "^3.1.0",
63
+ "@embroider/addon-dev": "^5.0.0",
64
+ "@glimmer/component": "^1.1.2",
65
+ "@glint/core": "^1.4.0",
66
+ "@glint/environment-ember-loose": "^1.4.0",
67
+ "@glint/environment-ember-template-imports": "^1.4.0",
68
+ "@glint/template": "^1.4.0",
69
+ "@rollup/plugin-babel": "^6.0.4",
70
+ "@tsconfig/ember": "^3.0.8",
71
+ "@types/ember": "^4.0.11",
72
+ "@types/ember__application": "^4.0.11",
73
+ "@types/ember__array": "^4.0.10",
74
+ "@types/ember__component": "^4.0.22",
75
+ "@types/ember__controller": "^4.0.12",
76
+ "@types/ember__debug": "^4.0.8",
77
+ "@types/ember__engine": "^4.0.11",
78
+ "@types/ember__error": "^4.0.6",
79
+ "@types/ember__helper": "^4.0.8",
80
+ "@types/ember__modifier": "^4.0.9",
81
+ "@types/ember__object": "^4.0.12",
82
+ "@types/ember__owner": "^4.0.9",
83
+ "@types/ember__polyfills": "^4.0.6",
84
+ "@types/ember__routing": "^4.0.22",
85
+ "@types/ember__runloop": "^4.0.10",
86
+ "@types/ember__service": "^4.0.9",
87
+ "@types/ember__string": "^3.16.3",
88
+ "@types/ember__template": "^4.0.7",
89
+ "@types/ember__test": "^4.0.6",
90
+ "@types/ember__utils": "^4.0.7",
91
+ "@types/ember__destroyable": "^4.0.5",
92
+ "@types/rsvp": "^4.0.9",
93
+ "@typescript-eslint/eslint-plugin": "^8.3.0",
94
+ "@typescript-eslint/parser": "^8.3.0",
95
+ "babel-plugin-ember-template-compilation": "^2.2.5",
96
+ "concurrently": "^9.0.1",
97
+ "ember-modifier": "^4.2.0",
98
+ "ember-template-lint": "^6.0.0",
99
+ "eslint": "^8.57.0",
100
+ "eslint-config-prettier": "^9.1.0",
101
+ "eslint-plugin-ember": "^12.2.0",
102
+ "eslint-plugin-import": "^2.30.0",
103
+ "eslint-plugin-n": "^17.10.3",
104
+ "eslint-plugin-prettier": "^5.2.1",
105
+ "eslint-plugin-qunit": "^8.1.2",
106
+ "prettier": "^3.3.3",
107
+ "rollup": "^3.29.5",
108
+ "rollup-plugin-copy": "^3.5.0",
109
+ "typescript": "^5.6.2",
110
+ "webpack": "^5.94.0"
54
111
  },
55
112
  "engines": {
56
113
  "node": "14.* || >= 16"
@@ -62,10 +119,10 @@
62
119
  "edition": "octane"
63
120
  },
64
121
  "ember-addon": {
65
- "main": "addon-main.js",
66
- "type": "addon",
67
122
  "version": 2,
68
- "demoURL": "https://adopted-ember-addons.github.io/ember-sortable/demo/",
123
+ "type": "addon",
124
+ "main": "addon-main.cjs",
125
+ "demoURL": "https://ember-sortable.netlify.app/",
69
126
  "app-js": {
70
127
  "./modifiers/sortable-group.js": "./dist/_app_/modifiers/sortable-group.js",
71
128
  "./modifiers/sortable-handle.js": "./dist/_app_/modifiers/sortable-handle.js",
@@ -77,11 +134,19 @@
77
134
  "extends": "../package.json"
78
135
  },
79
136
  "scripts": {
80
- "build": "rollup --config",
81
- "lint": "npm-run-all --aggregate-output --continue-on-error --parallel \"lint:!(fix)\"",
137
+ "build": "concurrently 'pnpm:build:*'",
138
+ "build:js": "rollup --config",
139
+ "build:types": "glint --declaration",
140
+ "lint": "concurrently 'pnpm:lint:*(!fix)' --names 'lint:'",
141
+ "lint:fix": "concurrently 'pnpm:lint:*:fix' --names 'fix:'",
142
+ "lint:hbs": "ember-template-lint . --no-error-on-unmatched-pattern",
143
+ "lint:hbs:fix": "ember-template-lint . --fix --no-error-on-unmatched-pattern",
82
144
  "lint:js": "eslint . --cache",
83
145
  "lint:js:fix": "eslint . --fix",
84
- "start": "rollup --config --watch",
85
- "test": "echo 'Addon does not have tests, run tests in test-app'"
146
+ "lint:types": "glint",
147
+ "start": "concurrently 'pnpm:start:*'",
148
+ "start:js": "rollup --config --watch --no-watch.clearScreen",
149
+ "start:types": "glint --declaration --watch",
150
+ "test": "echo 'A v2 addon does not have tests, run tests in test-app'"
86
151
  }
87
152
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"_rollupPluginBabelHelpers-543b1c36.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,54 +0,0 @@
1
- class ScrollContainer {
2
- constructor(element) {
3
- this.isWindow = element === document;
4
- this.element = this.isWindow ? document.documentElement : element;
5
- if (this.isWindow) {
6
- this.top = 0;
7
- this.left = 0;
8
- this.width = document.documentElement.clientWidth;
9
- this.height = document.documentElement.clientHeight;
10
- } else {
11
- // Absolute position in document
12
- let {
13
- top,
14
- left
15
- } = this.element.getBoundingClientRect();
16
- this.top = top;
17
- this.left = left;
18
- // Viewport size of the container element
19
- this.width = parseFloat(getComputedStyle(this.element).width);
20
- this.height = parseFloat(getComputedStyle(this.element).height);
21
- }
22
- // Total size of the container element (including scrollable part)
23
- this.scrollWidth = this.element.scrollWidth;
24
- this.scrollHeight = this.element.scrollHeight;
25
- // Max scroll pos
26
- this.maxScrollTop = this.scrollHeight - this.height;
27
- this.maxScrollLeft = this.scrollWidth - this.width;
28
- }
29
- get bottom() {
30
- return this.top + this.height;
31
- }
32
- get right() {
33
- return this.left + this.width;
34
- }
35
- scrollTop(value) {
36
- if (value) {
37
- value = Math.max(0, Math.min(this.maxScrollTop, value));
38
- this.element.scrollTop = value;
39
- return value;
40
- }
41
- return this.element.scrollTop;
42
- }
43
- scrollLeft(value) {
44
- if (value) {
45
- value = Math.max(0, Math.min(this.maxScrollLeft, value));
46
- this.element.scrollLeft = value;
47
- return value;
48
- }
49
- return this.element.scrollLeft;
50
- }
51
- }
52
-
53
- export { ScrollContainer as default };
54
- //# sourceMappingURL=scroll-container.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scroll-container.js","sources":["../../src/system/scroll-container.js"],"sourcesContent":["export default class ScrollContainer {\n constructor(element) {\n this.isWindow = element === document;\n this.element = this.isWindow ? document.documentElement : element;\n\n if (this.isWindow) {\n this.top = 0;\n this.left = 0;\n this.width = document.documentElement.clientWidth;\n this.height = document.documentElement.clientHeight;\n } else {\n // Absolute position in document\n let { top, left } = this.element.getBoundingClientRect();\n this.top = top;\n this.left = left;\n // Viewport size of the container element\n this.width = parseFloat(getComputedStyle(this.element).width);\n this.height = parseFloat(getComputedStyle(this.element).height);\n }\n // Total size of the container element (including scrollable part)\n this.scrollWidth = this.element.scrollWidth;\n this.scrollHeight = this.element.scrollHeight;\n // Max scroll pos\n this.maxScrollTop = this.scrollHeight - this.height;\n this.maxScrollLeft = this.scrollWidth - this.width;\n }\n\n get bottom() {\n return this.top + this.height;\n }\n\n get right() {\n return this.left + this.width;\n }\n\n scrollTop(value) {\n if (value) {\n value = Math.max(0, Math.min(this.maxScrollTop, value));\n this.element.scrollTop = value;\n return value;\n }\n return this.element.scrollTop;\n }\n\n scrollLeft(value) {\n if (value) {\n value = Math.max(0, Math.min(this.maxScrollLeft, value));\n this.element.scrollLeft = value;\n return value;\n }\n return this.element.scrollLeft;\n }\n}\n"],"names":["ScrollContainer","constructor","element","isWindow","document","documentElement","top","left","width","clientWidth","height","clientHeight","getBoundingClientRect","parseFloat","getComputedStyle","scrollWidth","scrollHeight","maxScrollTop","maxScrollLeft","bottom","right","scrollTop","value","Math","max","min","scrollLeft"],"mappings":"AAAe,MAAMA,eAAe,CAAC;EACnCC,WAAWA,CAACC,OAAO,EAAE;AACnB,IAAA,IAAI,CAACC,QAAQ,GAAGD,OAAO,KAAKE,QAAQ,CAAA;IACpC,IAAI,CAACF,OAAO,GAAG,IAAI,CAACC,QAAQ,GAAGC,QAAQ,CAACC,eAAe,GAAGH,OAAO,CAAA;IAEjE,IAAI,IAAI,CAACC,QAAQ,EAAE;MACjB,IAAI,CAACG,GAAG,GAAG,CAAC,CAAA;MACZ,IAAI,CAACC,IAAI,GAAG,CAAC,CAAA;AACb,MAAA,IAAI,CAACC,KAAK,GAAGJ,QAAQ,CAACC,eAAe,CAACI,WAAW,CAAA;AACjD,MAAA,IAAI,CAACC,MAAM,GAAGN,QAAQ,CAACC,eAAe,CAACM,YAAY,CAAA;AACrD,KAAC,MAAM;AACL;MACA,IAAI;QAAEL,GAAG;AAAEC,QAAAA,IAAAA;AAAK,OAAC,GAAG,IAAI,CAACL,OAAO,CAACU,qBAAqB,EAAE,CAAA;MACxD,IAAI,CAACN,GAAG,GAAGA,GAAG,CAAA;MACd,IAAI,CAACC,IAAI,GAAGA,IAAI,CAAA;AAChB;AACA,MAAA,IAAI,CAACC,KAAK,GAAGK,UAAU,CAACC,gBAAgB,CAAC,IAAI,CAACZ,OAAO,CAAC,CAACM,KAAK,CAAC,CAAA;AAC7D,MAAA,IAAI,CAACE,MAAM,GAAGG,UAAU,CAACC,gBAAgB,CAAC,IAAI,CAACZ,OAAO,CAAC,CAACQ,MAAM,CAAC,CAAA;AACjE,KAAA;AACA;AACA,IAAA,IAAI,CAACK,WAAW,GAAG,IAAI,CAACb,OAAO,CAACa,WAAW,CAAA;AAC3C,IAAA,IAAI,CAACC,YAAY,GAAG,IAAI,CAACd,OAAO,CAACc,YAAY,CAAA;AAC7C;IACA,IAAI,CAACC,YAAY,GAAG,IAAI,CAACD,YAAY,GAAG,IAAI,CAACN,MAAM,CAAA;IACnD,IAAI,CAACQ,aAAa,GAAG,IAAI,CAACH,WAAW,GAAG,IAAI,CAACP,KAAK,CAAA;AACpD,GAAA;EAEA,IAAIW,MAAMA,GAAG;AACX,IAAA,OAAO,IAAI,CAACb,GAAG,GAAG,IAAI,CAACI,MAAM,CAAA;AAC/B,GAAA;EAEA,IAAIU,KAAKA,GAAG;AACV,IAAA,OAAO,IAAI,CAACb,IAAI,GAAG,IAAI,CAACC,KAAK,CAAA;AAC/B,GAAA;EAEAa,SAASA,CAACC,KAAK,EAAE;AACf,IAAA,IAAIA,KAAK,EAAE;AACTA,MAAAA,KAAK,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,GAAG,CAAC,IAAI,CAACR,YAAY,EAAEK,KAAK,CAAC,CAAC,CAAA;AACvD,MAAA,IAAI,CAACpB,OAAO,CAACmB,SAAS,GAAGC,KAAK,CAAA;AAC9B,MAAA,OAAOA,KAAK,CAAA;AACd,KAAA;AACA,IAAA,OAAO,IAAI,CAACpB,OAAO,CAACmB,SAAS,CAAA;AAC/B,GAAA;EAEAK,UAAUA,CAACJ,KAAK,EAAE;AAChB,IAAA,IAAIA,KAAK,EAAE;AACTA,MAAAA,KAAK,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,GAAG,CAAC,IAAI,CAACP,aAAa,EAAEI,KAAK,CAAC,CAAC,CAAA;AACxD,MAAA,IAAI,CAACpB,OAAO,CAACwB,UAAU,GAAGJ,KAAK,CAAA;AAC/B,MAAA,OAAOA,KAAK,CAAA;AACd,KAAA;AACA,IAAA,OAAO,IAAI,CAACpB,OAAO,CAACwB,UAAU,CAAA;AAChC,GAAA;AACF;;;;"}
@@ -1,35 +0,0 @@
1
- function getParentElements(element) {
2
- const parentsArray = [];
3
- if (!element) {
4
- return parentsArray;
5
- }
6
- let currentParent = element.parentElement;
7
- while (currentParent !== null) {
8
- parentsArray.push(currentParent);
9
- currentParent = currentParent.parentElement;
10
- }
11
- return parentsArray;
12
- }
13
- function scrollParent (element) {
14
- let position = getComputedStyle(element).position;
15
- let excludeStaticParent = position === 'absolute';
16
- let scrollParent = getParentElements(element).filter(function (parent) {
17
- let parentElemStyles = getComputedStyle(parent);
18
- if (excludeStaticParent && parentElemStyles.position === 'static') {
19
- return false;
20
- }
21
- let {
22
- overflow,
23
- overflowX,
24
- overflowY
25
- } = parentElemStyles;
26
- return /(auto|scroll)/.test(overflow + overflowX + overflowY);
27
- })[0];
28
- if (!scrollParent || scrollParent === document.body) {
29
- scrollParent = document;
30
- }
31
- return position === 'fixed' || scrollParent;
32
- }
33
-
34
- export { scrollParent as default };
35
- //# sourceMappingURL=scroll-parent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scroll-parent.js","sources":["../../src/system/scroll-parent.js"],"sourcesContent":["function getParentElements(element) {\n const parentsArray = [];\n\n if (!element) {\n return parentsArray;\n }\n\n let currentParent = element.parentElement;\n\n while (currentParent !== null) {\n parentsArray.push(currentParent);\n currentParent = currentParent.parentElement;\n }\n return parentsArray;\n}\n\nexport default function (element) {\n let position = getComputedStyle(element).position;\n let excludeStaticParent = position === 'absolute';\n let scrollParent = getParentElements(element).filter(function (parent) {\n let parentElemStyles = getComputedStyle(parent);\n if (excludeStaticParent && parentElemStyles.position === 'static') {\n return false;\n }\n let { overflow, overflowX, overflowY } = parentElemStyles;\n return /(auto|scroll)/.test(overflow + overflowX + overflowY);\n })[0];\n\n if (!scrollParent || scrollParent === document.body) {\n scrollParent = document;\n }\n return position === 'fixed' || scrollParent;\n}\n"],"names":["getParentElements","element","parentsArray","currentParent","parentElement","push","position","getComputedStyle","excludeStaticParent","scrollParent","filter","parent","parentElemStyles","overflow","overflowX","overflowY","test","document","body"],"mappings":"AAAA,SAASA,iBAAiBA,CAACC,OAAO,EAAE;EAClC,MAAMC,YAAY,GAAG,EAAE,CAAA;EAEvB,IAAI,CAACD,OAAO,EAAE;AACZ,IAAA,OAAOC,YAAY,CAAA;AACrB,GAAA;AAEA,EAAA,IAAIC,aAAa,GAAGF,OAAO,CAACG,aAAa,CAAA;EAEzC,OAAOD,aAAa,KAAK,IAAI,EAAE;AAC7BD,IAAAA,YAAY,CAACG,IAAI,CAACF,aAAa,CAAC,CAAA;IAChCA,aAAa,GAAGA,aAAa,CAACC,aAAa,CAAA;AAC7C,GAAA;AACA,EAAA,OAAOF,YAAY,CAAA;AACrB,CAAA;AAEe,qBAAA,EAAUD,OAAO,EAAE;AAChC,EAAA,IAAIK,QAAQ,GAAGC,gBAAgB,CAACN,OAAO,CAAC,CAACK,QAAQ,CAAA;AACjD,EAAA,IAAIE,mBAAmB,GAAGF,QAAQ,KAAK,UAAU,CAAA;EACjD,IAAIG,YAAY,GAAGT,iBAAiB,CAACC,OAAO,CAAC,CAACS,MAAM,CAAC,UAAUC,MAAM,EAAE;AACrE,IAAA,IAAIC,gBAAgB,GAAGL,gBAAgB,CAACI,MAAM,CAAC,CAAA;AAC/C,IAAA,IAAIH,mBAAmB,IAAII,gBAAgB,CAACN,QAAQ,KAAK,QAAQ,EAAE;AACjE,MAAA,OAAO,KAAK,CAAA;AACd,KAAA;IACA,IAAI;MAAEO,QAAQ;MAAEC,SAAS;AAAEC,MAAAA,SAAAA;AAAU,KAAC,GAAGH,gBAAgB,CAAA;IACzD,OAAO,eAAe,CAACI,IAAI,CAACH,QAAQ,GAAGC,SAAS,GAAGC,SAAS,CAAC,CAAA;GAC9D,CAAC,CAAC,CAAC,CAAC,CAAA;EAEL,IAAI,CAACN,YAAY,IAAIA,YAAY,KAAKQ,QAAQ,CAACC,IAAI,EAAE;AACnDT,IAAAA,YAAY,GAAGQ,QAAQ,CAAA;AACzB,GAAA;AACA,EAAA,OAAOX,QAAQ,KAAK,OAAO,IAAIG,YAAY,CAAA;AAC7C;;;;"}