@anov/3d 0.0.289 → 0.0.290

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 (99) hide show
  1. package/dist/anov3d.js +43 -40
  2. package/dist/anov3d.js.map +1 -1
  3. package/dist/applicationApi.js +118 -94
  4. package/dist/applicationApi.js.map +1 -1
  5. package/dist/hooksManager.js +10 -10
  6. package/dist/hooksManager.js.map +1 -1
  7. package/dist/index.js +1 -1
  8. package/dist/index.js.map +1 -1
  9. package/dist/messageStatus.js +3 -3
  10. package/dist/messageStatus.js.map +1 -1
  11. package/dist/module/animation/index.js +113 -61
  12. package/dist/module/animation/index.js.map +1 -1
  13. package/dist/module/animation/motion/index.js +91 -58
  14. package/dist/module/animation/motion/index.js.map +1 -1
  15. package/dist/module/animation/strategy.js +21 -7
  16. package/dist/module/animation/strategy.js.map +1 -1
  17. package/dist/module/camera/index.js +278 -216
  18. package/dist/module/camera/index.js.map +1 -1
  19. package/dist/module/develop/index.js +35 -27
  20. package/dist/module/develop/index.js.map +1 -1
  21. package/dist/module/entity/area/index.js +87 -29
  22. package/dist/module/entity/area/index.js.map +1 -1
  23. package/dist/module/entity/bar/index.js +24 -5
  24. package/dist/module/entity/bar/index.js.map +1 -1
  25. package/dist/module/entity/bar/style/bar_01.js +52 -13
  26. package/dist/module/entity/bar/style/bar_01.js.map +1 -1
  27. package/dist/module/entity/bar/style/index.js +21 -7
  28. package/dist/module/entity/bar/style/index.js.map +1 -1
  29. package/dist/module/entity/baseEntity.js +66 -43
  30. package/dist/module/entity/baseEntity.js.map +1 -1
  31. package/dist/module/entity/batch/index.js +168 -77
  32. package/dist/module/entity/batch/index.js.map +1 -1
  33. package/dist/module/entity/dispose.js +16 -14
  34. package/dist/module/entity/dispose.js.map +1 -1
  35. package/dist/module/entity/flyline/index.js +90 -34
  36. package/dist/module/entity/flyline/index.js.map +1 -1
  37. package/dist/module/entity/group/index.js +75 -59
  38. package/dist/module/entity/group/index.js.map +1 -1
  39. package/dist/module/entity/heatmap/index.js +79 -62
  40. package/dist/module/entity/heatmap/index.js.map +1 -1
  41. package/dist/module/entity/hybridList.js +67 -49
  42. package/dist/module/entity/hybridList.js.map +1 -1
  43. package/dist/module/entity/index.js +644 -442
  44. package/dist/module/entity/index.js.map +1 -1
  45. package/dist/module/entity/infoPanel/index.js +76 -23
  46. package/dist/module/entity/infoPanel/index.js.map +1 -1
  47. package/dist/module/entity/light/pointLight/index.js +84 -48
  48. package/dist/module/entity/light/pointLight/index.js.map +1 -1
  49. package/dist/module/entity/mark/index.js +101 -51
  50. package/dist/module/entity/mark/index.js.map +1 -1
  51. package/dist/module/entity/model/index.js +151 -108
  52. package/dist/module/entity/model/index.js.map +1 -1
  53. package/dist/module/entity/model/load/loadFbx.js +8 -8
  54. package/dist/module/entity/model/load/loadFbx.js.map +1 -1
  55. package/dist/module/entity/model/load/loadGlb.js +11 -13
  56. package/dist/module/entity/model/load/loadGlb.js.map +1 -1
  57. package/dist/module/entity/model/load.js +57 -19
  58. package/dist/module/entity/model/load.js.map +1 -1
  59. package/dist/module/entity/poi/index.js +90 -34
  60. package/dist/module/entity/poi/index.js.map +1 -1
  61. package/dist/module/entity/shape/index.js +136 -67
  62. package/dist/module/entity/shape/index.js.map +1 -1
  63. package/dist/module/entity/spline/index.js +75 -22
  64. package/dist/module/entity/spline/index.js.map +1 -1
  65. package/dist/module/entity/strategy.js +274 -92
  66. package/dist/module/entity/strategy.js.map +1 -1
  67. package/dist/module/entity/traffic/realismTraffic/index.js +88 -59
  68. package/dist/module/entity/traffic/realismTraffic/index.js.map +1 -1
  69. package/dist/module/entity/traffic/streamerTraffic/index.js +81 -50
  70. package/dist/module/entity/traffic/streamerTraffic/index.js.map +1 -1
  71. package/dist/module/entity/utils.js +13 -11
  72. package/dist/module/entity/utils.js.map +1 -1
  73. package/dist/module/entity/videoPanel/index.js +76 -23
  74. package/dist/module/entity/videoPanel/index.js.map +1 -1
  75. package/dist/module/environment/index.js +73 -54
  76. package/dist/module/environment/index.js.map +1 -1
  77. package/dist/module/environment/season/index.js +184 -342
  78. package/dist/module/environment/season/index.js.map +1 -1
  79. package/dist/module/eventBus/entityEvents.js +1 -1
  80. package/dist/module/eventBus/entityEvents.js.map +1 -1
  81. package/dist/module/eventBus/index.js +93 -79
  82. package/dist/module/eventBus/index.js.map +1 -1
  83. package/dist/module/material/index.js +334 -279
  84. package/dist/module/material/index.js.map +1 -1
  85. package/dist/module/scene/fileParse.js +369 -276
  86. package/dist/module/scene/fileParse.js.map +1 -1
  87. package/dist/module/scene/index.js +161 -106
  88. package/dist/module/scene/index.js.map +1 -1
  89. package/dist/module/tool/index.js +33 -26
  90. package/dist/module/tool/index.js.map +1 -1
  91. package/dist/sdkEntry.js +23 -2
  92. package/dist/sdkEntry.js.map +1 -1
  93. package/dist/utils/abstract.js +15 -12
  94. package/dist/utils/abstract.js.map +1 -1
  95. package/dist/utils/index.js +24 -23
  96. package/dist/utils/index.js.map +1 -1
  97. package/dist/utils/messageFn.js +18 -17
  98. package/dist/utils/messageFn.js.map +1 -1
  99. package/package.json +3 -3
@@ -1,11 +1,15 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
1
2
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2
3
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
5
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
6
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
3
7
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
4
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
5
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
8
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
9
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
6
10
  import { HeatMap } from '@anov/3d-ability';
7
11
  import { Euler, MathUtils, Vector3, use } from '@anov/3d-core';
8
- const defaultOption = {
12
+ var defaultOption = {
9
13
  name: '',
10
14
  visible: true,
11
15
  position: [0, 0, 0],
@@ -13,66 +17,79 @@ const defaultOption = {
13
17
  scale: [1, 1, 1],
14
18
  radius: 10
15
19
  };
16
- class HeatmapManage {
17
- constructor() {
20
+ var HeatmapManage = /*#__PURE__*/function () {
21
+ function HeatmapManage() {
22
+ _classCallCheck(this, HeatmapManage);
18
23
  _defineProperty(this, "_heatmap", void 0);
19
24
  }
20
- setOption(option, target) {
21
- const {
22
- name,
23
- visible,
24
- position,
25
- rotation,
26
- scale
27
- } = _objectSpread(_objectSpread({}, defaultOption), option);
28
- target.name = name;
29
- target.visible = visible;
30
- target.position.copy(new Vector3().fromArray(position));
31
- target.rotation.copy(new Euler(MathUtils.degToRad(rotation[0]), MathUtils.degToRad(rotation[1]), MathUtils.degToRad(rotation[2])));
32
- target.scale.copy(new Vector3().fromArray(scale));
33
- target.userData.option = _objectSpread(_objectSpread({}, defaultOption), option);
34
- }
35
- handleMappingGradien(colorGradient) {
36
- const result = {};
37
- colorGradient.forEach((color, index) => {
38
- const position = index === colorGradient.length - 1 ? 1.0 : Number(((index + 1) / colorGradient.length).toFixed(2));
39
- result[position] = color;
40
- });
41
- return result;
42
- }
43
- create(json) {
44
- const {
45
- effectUri,
46
- radius,
47
- colorGradient = ['#0000FF', '#00FF00', '#FFFF00', '#FF0000'],
48
- range = []
49
- } = _objectSpread(_objectSpread({}, defaultOption), json);
50
- this._heatmap = new HeatMap({
51
- height: 1,
52
- isPixel: effectUri === 'dot',
53
- radius,
54
- colorMap: this.handleMappingGradien(colorGradient),
55
- range: {
56
- min: range[0],
57
- max: range[1]
58
- }
59
- });
60
- this._heatmap.setData(json.points.map(item => ({
61
- x: item.position[0],
62
- y: 0,
63
- z: item.position[1],
64
- value: item.value,
65
- radius: item.radius
66
- })));
67
- this.setOption(json, this._heatmap);
68
- use.useScene().scene.add(this._heatmap);
69
- return this._heatmap;
70
- }
71
- update(target, option) {
72
- const lastOption = target.userData.option;
73
- if (this._heatmap) this._heatmap.removeFromParent();
74
- return this.create(_objectSpread(_objectSpread({}, lastOption), option));
75
- }
76
- }
25
+ _createClass(HeatmapManage, [{
26
+ key: "setOption",
27
+ value: function setOption(option, target) {
28
+ var _defaultOption$option = _objectSpread(_objectSpread({}, defaultOption), option),
29
+ name = _defaultOption$option.name,
30
+ visible = _defaultOption$option.visible,
31
+ position = _defaultOption$option.position,
32
+ rotation = _defaultOption$option.rotation,
33
+ scale = _defaultOption$option.scale;
34
+ target.name = name;
35
+ target.visible = visible;
36
+ target.position.copy(new Vector3().fromArray(position));
37
+ target.rotation.copy(new Euler(MathUtils.degToRad(rotation[0]), MathUtils.degToRad(rotation[1]), MathUtils.degToRad(rotation[2])));
38
+ target.scale.copy(new Vector3().fromArray(scale));
39
+ target.userData.option = _objectSpread(_objectSpread({}, defaultOption), option);
40
+ }
41
+ }, {
42
+ key: "handleMappingGradien",
43
+ value: function handleMappingGradien(colorGradient) {
44
+ var result = {};
45
+ colorGradient.forEach(function (color, index) {
46
+ var position = index === colorGradient.length - 1 ? 1.0 : Number(((index + 1) / colorGradient.length).toFixed(2));
47
+ result[position] = color;
48
+ });
49
+ return result;
50
+ }
51
+ }, {
52
+ key: "create",
53
+ value: function create(json) {
54
+ var _defaultOption$json = _objectSpread(_objectSpread({}, defaultOption), json),
55
+ effectUri = _defaultOption$json.effectUri,
56
+ radius = _defaultOption$json.radius,
57
+ _defaultOption$json$c = _defaultOption$json.colorGradient,
58
+ colorGradient = _defaultOption$json$c === void 0 ? ['#0000FF', '#00FF00', '#FFFF00', '#FF0000'] : _defaultOption$json$c,
59
+ _defaultOption$json$r = _defaultOption$json.range,
60
+ range = _defaultOption$json$r === void 0 ? [] : _defaultOption$json$r;
61
+ this._heatmap = new HeatMap({
62
+ height: 1,
63
+ isPixel: effectUri === 'dot',
64
+ radius: radius,
65
+ colorMap: this.handleMappingGradien(colorGradient),
66
+ range: {
67
+ min: range[0],
68
+ max: range[1]
69
+ }
70
+ });
71
+ this._heatmap.setData(json.points.map(function (item) {
72
+ return {
73
+ x: item.position[0],
74
+ y: 0,
75
+ z: item.position[1],
76
+ value: item.value,
77
+ radius: item.radius
78
+ };
79
+ }));
80
+ this.setOption(json, this._heatmap);
81
+ use.useScene().scene.add(this._heatmap);
82
+ return this._heatmap;
83
+ }
84
+ }, {
85
+ key: "update",
86
+ value: function update(target, option) {
87
+ var lastOption = target.userData.option;
88
+ if (this._heatmap) this._heatmap.removeFromParent();
89
+ return this.create(_objectSpread(_objectSpread({}, lastOption), option));
90
+ }
91
+ }]);
92
+ return HeatmapManage;
93
+ }();
77
94
  export default HeatmapManage;
78
95
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["HeatMap","Euler","MathUtils","Vector3","use","defaultOption","name","visible","position","rotation","scale","radius","HeatmapManage","constructor","_defineProperty","setOption","option","target","_objectSpread","copy","fromArray","degToRad","userData","handleMappingGradien","colorGradient","result","forEach","color","index","length","Number","toFixed","create","json","effectUri","range","_heatmap","height","isPixel","colorMap","min","max","setData","points","map","item","x","y","z","value","useScene","scene","add","update","lastOption","removeFromParent"],"sources":["../../../../src/module/entity/heatmap/index.ts"],"sourcesContent":["import { HeatMap } from '@anov/3d-ability'\nimport type { Object3D } from '@anov/3d-core'\nimport { Euler, MathUtils, Vector3, use } from '@anov/3d-core'\n\ntype PointsTypeItem = {\n position: number[]\n value: number\n radius?: number\n}\n\ntype PartialHeatmapOption = Partial<{\n name: string\n visible: boolean\n position: number[]\n rotation: number[]\n scale: number[]\n range: number[]\n colorGradient: number[]\n effectUri: string\n radius?: number\n}> & {\n points: PointsTypeItem[]\n}\n\nconst defaultOption = {\n name: '',\n visible: true,\n position: [0, 0, 0],\n rotation: [0, 0, 0],\n scale: [1, 1, 1],\n radius: 10,\n}\n\nclass HeatmapManage {\n private _heatmap: HeatMap\n\n private setOption(option: PartialHeatmapOption, target: HeatMap) {\n const { name, visible, position, rotation, scale } = { ...defaultOption, ...option }\n\n target.name = name\n target.visible = visible\n target.position.copy(new Vector3().fromArray(position))\n target.rotation.copy(new Euler(MathUtils.degToRad(rotation[0]), MathUtils.degToRad(rotation[1]), MathUtils.degToRad(rotation[2])))\n target.scale.copy(new Vector3().fromArray(scale))\n\n target.userData.option = { ...defaultOption, ...option }\n }\n\n private handleMappingGradien(colorGradient: string[] | number[]) {\n const result = {}\n\n colorGradient.forEach((color, index) => {\n const position = index === colorGradient.length - 1\n ? 1.0\n : Number(((index + 1) / colorGradient.length).toFixed(2))\n\n result[position] = color\n })\n\n return result\n }\n\n public create(json: PartialHeatmapOption) {\n const { effectUri, radius, colorGradient = ['#0000FF', '#00FF00', '#FFFF00', '#FF0000'], range = [] } = { ...defaultOption, ...json }\n\n this._heatmap = new HeatMap({\n height: 1,\n isPixel: effectUri === 'dot',\n radius,\n colorMap: this.handleMappingGradien(colorGradient),\n range: {\n min: range[0],\n max: range[1],\n },\n })\n\n this._heatmap.setData(\n json.points.map(item => ({\n x: item.position[0],\n y: 0,\n z: item.position[1],\n value: item.value,\n radius: item.radius,\n })),\n )\n\n this.setOption(json, this._heatmap)\n use.useScene().scene.add(this._heatmap)\n\n return this._heatmap\n }\n\n public update(target: Object3D, option: PartialHeatmapOption) {\n const lastOption = target.userData.option\n\n if (this._heatmap)\n this._heatmap.removeFromParent()\n\n return this.create({ ...lastOption, ...option })\n }\n}\nexport default HeatmapManage"],"mappings":"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"}
1
+ {"version":3,"names":["HeatMap","Euler","MathUtils","Vector3","use","defaultOption","name","visible","position","rotation","scale","radius","HeatmapManage","_classCallCheck","_defineProperty","_createClass","key","value","setOption","option","target","_defaultOption$option","_objectSpread","copy","fromArray","degToRad","userData","handleMappingGradien","colorGradient","result","forEach","color","index","length","Number","toFixed","create","json","_defaultOption$json","effectUri","_defaultOption$json$c","_defaultOption$json$r","range","_heatmap","height","isPixel","colorMap","min","max","setData","points","map","item","x","y","z","useScene","scene","add","update","lastOption","removeFromParent"],"sources":["../../../../src/module/entity/heatmap/index.ts"],"sourcesContent":["import { HeatMap } from '@anov/3d-ability'\nimport type { Object3D } from '@anov/3d-core'\nimport { Euler, MathUtils, Vector3, use } from '@anov/3d-core'\n\ntype PointsTypeItem = {\n position: number[]\n value: number\n radius?: number\n}\n\ntype PartialHeatmapOption = Partial<{\n name: string\n visible: boolean\n position: number[]\n rotation: number[]\n scale: number[]\n range: number[]\n colorGradient: number[]\n effectUri: string\n radius?: number\n}> & {\n points: PointsTypeItem[]\n}\n\nconst defaultOption = {\n name: '',\n visible: true,\n position: [0, 0, 0],\n rotation: [0, 0, 0],\n scale: [1, 1, 1],\n radius: 10,\n}\n\nclass HeatmapManage {\n private _heatmap: HeatMap\n\n private setOption(option: PartialHeatmapOption, target: HeatMap) {\n const { name, visible, position, rotation, scale } = { ...defaultOption, ...option }\n\n target.name = name\n target.visible = visible\n target.position.copy(new Vector3().fromArray(position))\n target.rotation.copy(new Euler(MathUtils.degToRad(rotation[0]), MathUtils.degToRad(rotation[1]), MathUtils.degToRad(rotation[2])))\n target.scale.copy(new Vector3().fromArray(scale))\n\n target.userData.option = { ...defaultOption, ...option }\n }\n\n private handleMappingGradien(colorGradient: string[] | number[]) {\n const result = {}\n\n colorGradient.forEach((color, index) => {\n const position = index === colorGradient.length - 1\n ? 1.0\n : Number(((index + 1) / colorGradient.length).toFixed(2))\n\n result[position] = color\n })\n\n return result\n }\n\n public create(json: PartialHeatmapOption) {\n const { effectUri, radius, colorGradient = ['#0000FF', '#00FF00', '#FFFF00', '#FF0000'], range = [] } = { ...defaultOption, ...json }\n\n this._heatmap = new HeatMap({\n height: 1,\n isPixel: effectUri === 'dot',\n radius,\n colorMap: this.handleMappingGradien(colorGradient),\n range: {\n min: range[0],\n max: range[1],\n },\n })\n\n this._heatmap.setData(\n json.points.map(item => ({\n x: item.position[0],\n y: 0,\n z: item.position[1],\n value: item.value,\n radius: item.radius,\n })),\n )\n\n this.setOption(json, this._heatmap)\n use.useScene().scene.add(this._heatmap)\n\n return this._heatmap\n }\n\n public update(target: Object3D, option: PartialHeatmapOption) {\n const lastOption = target.userData.option\n\n if (this._heatmap)\n this._heatmap.removeFromParent()\n\n return this.create({ ...lastOption, ...option })\n }\n}\nexport default HeatmapManage"],"mappings":"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"}
@@ -1,20 +1,24 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
3
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
4
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
1
5
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
3
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
4
- class ListNode {
5
- constructor(value, key) {
6
- _defineProperty(this, "value", void 0);
7
- _defineProperty(this, "key", void 0);
8
- _defineProperty(this, "next", void 0);
9
- _defineProperty(this, "prev", void 0);
10
- this.value = value;
11
- this.key = key;
12
- this.next = null;
13
- this.prev = null;
14
- }
15
- }
16
- class HybridList {
17
- constructor() {
6
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
7
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
8
+ var ListNode = /*#__PURE__*/_createClass(function ListNode(value, key) {
9
+ _classCallCheck(this, ListNode);
10
+ _defineProperty(this, "value", void 0);
11
+ _defineProperty(this, "key", void 0);
12
+ _defineProperty(this, "next", void 0);
13
+ _defineProperty(this, "prev", void 0);
14
+ this.value = value;
15
+ this.key = key;
16
+ this.next = null;
17
+ this.prev = null;
18
+ });
19
+ var HybridList = /*#__PURE__*/function () {
20
+ function HybridList() {
21
+ _classCallCheck(this, HybridList);
18
22
  _defineProperty(this, "map", void 0);
19
23
  _defineProperty(this, "head", void 0);
20
24
  _defineProperty(this, "tail", void 0);
@@ -22,39 +26,53 @@ class HybridList {
22
26
  this.head = null;
23
27
  this.tail = null;
24
28
  }
25
- get(key) {
26
- const node = this.map.get(key);
27
- return node ? node.value : null;
28
- }
29
- update(key, value) {
30
- const node = this.map.get(key);
31
- if (node) node.value = value;
32
- }
33
- has(key) {
34
- return this.map.has(key);
35
- }
36
- add(key, value) {
37
- if (this.map.has(key)) throw new Error(`${key} already exists`);
38
- const newNode = new ListNode(value, key);
39
- this.map.set(key, newNode);
40
- if (this.tail) {
41
- this.tail.next = newNode;
42
- newNode.prev = this.tail;
43
- this.tail = newNode;
44
- } else {
45
- this.head = this.tail = newNode;
29
+ _createClass(HybridList, [{
30
+ key: "get",
31
+ value: function get(key) {
32
+ var node = this.map.get(key);
33
+ return node ? node.value : null;
46
34
  }
47
- }
48
- delete(key) {
49
- const node = this.map.get(key);
50
- if (!node) return;
51
- if (node.prev) node.prev.next = node.next;else this.head = node.next;
52
- if (node.next) node.next.prev = node.prev;else this.tail = node.prev;
53
- this.map.delete(key);
54
- }
55
- clear() {
56
- this.map.clear();
57
- }
58
- }
35
+ }, {
36
+ key: "update",
37
+ value: function update(key, value) {
38
+ var node = this.map.get(key);
39
+ if (node) node.value = value;
40
+ }
41
+ }, {
42
+ key: "has",
43
+ value: function has(key) {
44
+ return this.map.has(key);
45
+ }
46
+ }, {
47
+ key: "add",
48
+ value: function add(key, value) {
49
+ if (this.map.has(key)) throw new Error("".concat(key, " already exists"));
50
+ var newNode = new ListNode(value, key);
51
+ this.map.set(key, newNode);
52
+ if (this.tail) {
53
+ this.tail.next = newNode;
54
+ newNode.prev = this.tail;
55
+ this.tail = newNode;
56
+ } else {
57
+ this.head = this.tail = newNode;
58
+ }
59
+ }
60
+ }, {
61
+ key: "delete",
62
+ value: function _delete(key) {
63
+ var node = this.map.get(key);
64
+ if (!node) return;
65
+ if (node.prev) node.prev.next = node.next;else this.head = node.next;
66
+ if (node.next) node.next.prev = node.prev;else this.tail = node.prev;
67
+ this.map.delete(key);
68
+ }
69
+ }, {
70
+ key: "clear",
71
+ value: function clear() {
72
+ this.map.clear();
73
+ }
74
+ }]);
75
+ return HybridList;
76
+ }();
59
77
  export default HybridList;
60
78
  //# sourceMappingURL=hybridList.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ListNode","constructor","value","key","_defineProperty","next","prev","HybridList","map","Map","head","tail","get","node","update","has","add","Error","newNode","set","delete","clear"],"sources":["../../../src/module/entity/hybridList.ts"],"sourcesContent":["class ListNode<T> {\n value: T\n key: string | number\n next: ListNode<T> | null\n prev: ListNode<T> | null\n\n constructor(value: T, key: string | number) {\n this.value = value\n this.key = key\n this.next = null\n this.prev = null\n }\n}\n\nclass HybridList<T> {\n public map: Map<string | number, ListNode<T>>\n private head: ListNode<T> | null\n private tail: ListNode<T> | null\n\n constructor() {\n this.map = new Map<string | number, ListNode<T>>()\n this.head = null\n this.tail = null\n }\n\n get(key: string | number): T | null {\n const node = this.map.get(key)\n return node ? node.value : null\n }\n\n update(key: string | number, value: T): void {\n const node = this.map.get(key)\n if (node)\n node.value = value\n }\n\n has(key: string | number) {\n return this.map.has(key)\n }\n\n add(key: string | number, value: T): void {\n if (this.map.has(key))\n throw new Error(`${key} already exists`)\n\n const newNode = new ListNode(value, key)\n this.map.set(key, newNode)\n\n if (this.tail) {\n this.tail.next = newNode\n newNode.prev = this.tail\n this.tail = newNode\n }\n else {\n this.head = this.tail = newNode\n }\n }\n\n delete(key: string | number): void {\n const node = this.map.get(key)\n\n if (!node)\n return\n\n if (node.prev)\n node.prev.next = node.next\n else\n this.head = node.next\n\n if (node.next)\n node.next.prev = node.prev\n else\n this.tail = node.prev\n\n this.map.delete(key)\n }\n\n clear() {\n this.map.clear()\n }\n}\n\nexport default HybridList\n"],"mappings":";;;AAAA,MAAMA,QAAQ,CAAI;EAMhBC,WAAWA,CAACC,KAAQ,EAAEC,GAAoB,EAAE;IAAAC,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAC1C,IAAI,CAACF,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACC,GAAG,GAAGA,GAAG;IACd,IAAI,CAACE,IAAI,GAAG,IAAI;IAChB,IAAI,CAACC,IAAI,GAAG,IAAI;EAClB;AACF;AAEA,MAAMC,UAAU,CAAI;EAKlBN,WAAWA,CAAA,EAAG;IAAAG,eAAA;IAAAA,eAAA;IAAAA,eAAA;IACZ,IAAI,CAACI,GAAG,GAAG,IAAIC,GAAG,CAA+B,CAAC;IAClD,IAAI,CAACC,IAAI,GAAG,IAAI;IAChB,IAAI,CAACC,IAAI,GAAG,IAAI;EAClB;EAEAC,GAAGA,CAACT,GAAoB,EAAY;IAClC,MAAMU,IAAI,GAAG,IAAI,CAACL,GAAG,CAACI,GAAG,CAACT,GAAG,CAAC;IAC9B,OAAOU,IAAI,GAAGA,IAAI,CAACX,KAAK,GAAG,IAAI;EACjC;EAEAY,MAAMA,CAACX,GAAoB,EAAED,KAAQ,EAAQ;IAC3C,MAAMW,IAAI,GAAG,IAAI,CAACL,GAAG,CAACI,GAAG,CAACT,GAAG,CAAC;IAC9B,IAAIU,IAAI,EACNA,IAAI,CAACX,KAAK,GAAGA,KAAK;EACtB;EAEAa,GAAGA,CAACZ,GAAoB,EAAE;IACxB,OAAO,IAAI,CAACK,GAAG,CAACO,GAAG,CAACZ,GAAG,CAAC;EAC1B;EAEAa,GAAGA,CAACb,GAAoB,EAAED,KAAQ,EAAQ;IACxC,IAAI,IAAI,CAACM,GAAG,CAACO,GAAG,CAACZ,GAAG,CAAC,EACnB,MAAM,IAAIc,KAAK,CAAE,GAAEd,GAAI,iBAAgB,CAAC;IAE1C,MAAMe,OAAO,GAAG,IAAIlB,QAAQ,CAACE,KAAK,EAAEC,GAAG,CAAC;IACxC,IAAI,CAACK,GAAG,CAACW,GAAG,CAAChB,GAAG,EAAEe,OAAO,CAAC;IAE1B,IAAI,IAAI,CAACP,IAAI,EAAE;MACb,IAAI,CAACA,IAAI,CAACN,IAAI,GAAGa,OAAO;MACxBA,OAAO,CAACZ,IAAI,GAAG,IAAI,CAACK,IAAI;MACxB,IAAI,CAACA,IAAI,GAAGO,OAAO;IACrB,CAAC,MACI;MACH,IAAI,CAACR,IAAI,GAAG,IAAI,CAACC,IAAI,GAAGO,OAAO;IACjC;EACF;EAEAE,MAAMA,CAACjB,GAAoB,EAAQ;IACjC,MAAMU,IAAI,GAAG,IAAI,CAACL,GAAG,CAACI,GAAG,CAACT,GAAG,CAAC;IAE9B,IAAI,CAACU,IAAI,EACP;IAEF,IAAIA,IAAI,CAACP,IAAI,EACXO,IAAI,CAACP,IAAI,CAACD,IAAI,GAAGQ,IAAI,CAACR,IAAI,MAE1B,IAAI,CAACK,IAAI,GAAGG,IAAI,CAACR,IAAI;IAEvB,IAAIQ,IAAI,CAACR,IAAI,EACXQ,IAAI,CAACR,IAAI,CAACC,IAAI,GAAGO,IAAI,CAACP,IAAI,MAE1B,IAAI,CAACK,IAAI,GAAGE,IAAI,CAACP,IAAI;IAEvB,IAAI,CAACE,GAAG,CAACY,MAAM,CAACjB,GAAG,CAAC;EACtB;EAEAkB,KAAKA,CAAA,EAAG;IACN,IAAI,CAACb,GAAG,CAACa,KAAK,CAAC,CAAC;EAClB;AACF;AAEA,eAAed,UAAU"}
1
+ {"version":3,"names":["ListNode","_createClass","value","key","_classCallCheck","_defineProperty","next","prev","HybridList","map","Map","head","tail","get","node","update","has","add","Error","concat","newNode","set","_delete","delete","clear"],"sources":["../../../src/module/entity/hybridList.ts"],"sourcesContent":["class ListNode<T> {\n value: T\n key: string | number\n next: ListNode<T> | null\n prev: ListNode<T> | null\n\n constructor(value: T, key: string | number) {\n this.value = value\n this.key = key\n this.next = null\n this.prev = null\n }\n}\n\nclass HybridList<T> {\n public map: Map<string | number, ListNode<T>>\n private head: ListNode<T> | null\n private tail: ListNode<T> | null\n\n constructor() {\n this.map = new Map<string | number, ListNode<T>>()\n this.head = null\n this.tail = null\n }\n\n get(key: string | number): T | null {\n const node = this.map.get(key)\n return node ? node.value : null\n }\n\n update(key: string | number, value: T): void {\n const node = this.map.get(key)\n if (node)\n node.value = value\n }\n\n has(key: string | number) {\n return this.map.has(key)\n }\n\n add(key: string | number, value: T): void {\n if (this.map.has(key))\n throw new Error(`${key} already exists`)\n\n const newNode = new ListNode(value, key)\n this.map.set(key, newNode)\n\n if (this.tail) {\n this.tail.next = newNode\n newNode.prev = this.tail\n this.tail = newNode\n }\n else {\n this.head = this.tail = newNode\n }\n }\n\n delete(key: string | number): void {\n const node = this.map.get(key)\n\n if (!node)\n return\n\n if (node.prev)\n node.prev.next = node.next\n else\n this.head = node.next\n\n if (node.next)\n node.next.prev = node.prev\n else\n this.tail = node.prev\n\n this.map.delete(key)\n }\n\n clear() {\n this.map.clear()\n }\n}\n\nexport default HybridList\n"],"mappings":";;;;;;;IAAMA,QAAQ,gBAAAC,YAAA,CAMZ,SAAAD,SAAYE,KAAQ,EAAEC,GAAoB,EAAE;EAAAC,eAAA,OAAAJ,QAAA;EAAAK,eAAA;EAAAA,eAAA;EAAAA,eAAA;EAAAA,eAAA;EAC1C,IAAI,CAACH,KAAK,GAAGA,KAAK;EAClB,IAAI,CAACC,GAAG,GAAGA,GAAG;EACd,IAAI,CAACG,IAAI,GAAG,IAAI;EAChB,IAAI,CAACC,IAAI,GAAG,IAAI;AAClB,CAAC;AAAA,IAGGC,UAAU;EAKd,SAAAA,WAAA,EAAc;IAAAJ,eAAA,OAAAI,UAAA;IAAAH,eAAA;IAAAA,eAAA;IAAAA,eAAA;IACZ,IAAI,CAACI,GAAG,GAAG,IAAIC,GAAG,CAA+B,CAAC;IAClD,IAAI,CAACC,IAAI,GAAG,IAAI;IAChB,IAAI,CAACC,IAAI,GAAG,IAAI;EAClB;EAACX,YAAA,CAAAO,UAAA;IAAAL,GAAA;IAAAD,KAAA,EAED,SAAAW,IAAIV,GAAoB,EAAY;MAClC,IAAMW,IAAI,GAAG,IAAI,CAACL,GAAG,CAACI,GAAG,CAACV,GAAG,CAAC;MAC9B,OAAOW,IAAI,GAAGA,IAAI,CAACZ,KAAK,GAAG,IAAI;IACjC;EAAC;IAAAC,GAAA;IAAAD,KAAA,EAED,SAAAa,OAAOZ,GAAoB,EAAED,KAAQ,EAAQ;MAC3C,IAAMY,IAAI,GAAG,IAAI,CAACL,GAAG,CAACI,GAAG,CAACV,GAAG,CAAC;MAC9B,IAAIW,IAAI,EACNA,IAAI,CAACZ,KAAK,GAAGA,KAAK;IACtB;EAAC;IAAAC,GAAA;IAAAD,KAAA,EAED,SAAAc,IAAIb,GAAoB,EAAE;MACxB,OAAO,IAAI,CAACM,GAAG,CAACO,GAAG,CAACb,GAAG,CAAC;IAC1B;EAAC;IAAAA,GAAA;IAAAD,KAAA,EAED,SAAAe,IAAId,GAAoB,EAAED,KAAQ,EAAQ;MACxC,IAAI,IAAI,CAACO,GAAG,CAACO,GAAG,CAACb,GAAG,CAAC,EACnB,MAAM,IAAIe,KAAK,IAAAC,MAAA,CAAIhB,GAAG,oBAAiB,CAAC;MAE1C,IAAMiB,OAAO,GAAG,IAAIpB,QAAQ,CAACE,KAAK,EAAEC,GAAG,CAAC;MACxC,IAAI,CAACM,GAAG,CAACY,GAAG,CAAClB,GAAG,EAAEiB,OAAO,CAAC;MAE1B,IAAI,IAAI,CAACR,IAAI,EAAE;QACb,IAAI,CAACA,IAAI,CAACN,IAAI,GAAGc,OAAO;QACxBA,OAAO,CAACb,IAAI,GAAG,IAAI,CAACK,IAAI;QACxB,IAAI,CAACA,IAAI,GAAGQ,OAAO;MACrB,CAAC,MACI;QACH,IAAI,CAACT,IAAI,GAAG,IAAI,CAACC,IAAI,GAAGQ,OAAO;MACjC;IACF;EAAC;IAAAjB,GAAA;IAAAD,KAAA,EAED,SAAAoB,QAAOnB,GAAoB,EAAQ;MACjC,IAAMW,IAAI,GAAG,IAAI,CAACL,GAAG,CAACI,GAAG,CAACV,GAAG,CAAC;MAE9B,IAAI,CAACW,IAAI,EACP;MAEF,IAAIA,IAAI,CAACP,IAAI,EACXO,IAAI,CAACP,IAAI,CAACD,IAAI,GAAGQ,IAAI,CAACR,IAAI,MAE1B,IAAI,CAACK,IAAI,GAAGG,IAAI,CAACR,IAAI;MAEvB,IAAIQ,IAAI,CAACR,IAAI,EACXQ,IAAI,CAACR,IAAI,CAACC,IAAI,GAAGO,IAAI,CAACP,IAAI,MAE1B,IAAI,CAACK,IAAI,GAAGE,IAAI,CAACP,IAAI;MAEvB,IAAI,CAACE,GAAG,CAACc,MAAM,CAACpB,GAAG,CAAC;IACtB;EAAC;IAAAA,GAAA;IAAAD,KAAA,EAED,SAAAsB,MAAA,EAAQ;MACN,IAAI,CAACf,GAAG,CAACe,KAAK,CAAC,CAAC;IAClB;EAAC;EAAA,OAAAhB,UAAA;AAAA;AAGH,eAAeA,UAAU"}