poi-plugin-item-improvement2 0.0.1

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 (38) hide show
  1. package/.eslintrc.js +42 -0
  2. package/.idea/inspectionProfiles/Project_Default.xml +6 -0
  3. package/.idea/inspectionProfiles/profiles_settings.xml +6 -0
  4. package/.idea/misc.xml +4 -0
  5. package/.idea/modules.xml +8 -0
  6. package/.idea/plugin-item-improvement.iml +8 -0
  7. package/.idea/vcs.xml +6 -0
  8. package/README.md +7 -0
  9. package/assets/arsenal.nedb +704 -0
  10. package/assets/items.nedb +756 -0
  11. package/assets/main.css +192 -0
  12. package/assets/useitem.svg +107 -0
  13. package/i18n/en-US.json +4 -0
  14. package/i18n/ja-JP.json +54 -0
  15. package/i18n/zh-CN.json +53 -0
  16. package/i18n/zh-TW.json +53 -0
  17. package/index.es +12 -0
  18. package/index.js +21 -0
  19. package/package.json +56 -0
  20. package/poi-plugin-item-improvement2-0.0.1.tgz +0 -0
  21. package/views/detail-row.js +186 -0
  22. package/views/divider.js +17 -0
  23. package/views/item-info-area.js +157 -0
  24. package/views/item-info-row.js +93 -0
  25. package/views/item-wrapper.js +126 -0
  26. package/views/mat-row.js +153 -0
  27. package/views/selectors.js +127 -0
  28. package/views/starcraft/add-new-equip-view.js +110 -0
  29. package/views/starcraft/control-panel.js +104 -0
  30. package/views/starcraft/equip-category-view.js +115 -0
  31. package/views/starcraft/equip-list-view.js +100 -0
  32. package/views/starcraft/equip-view.js +142 -0
  33. package/views/starcraft/equiptype.js +109 -0
  34. package/views/starcraft/plan-modify-control.js +201 -0
  35. package/views/starcraft/plan-view.js +108 -0
  36. package/views/starcraft/starcraft-area.js +222 -0
  37. package/views/starcraft/utils.js +51 -0
  38. package/views/useitem-icon.js +69 -0
@@ -0,0 +1,222 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.StarcraftArea = void 0;
5
+
6
+ var _domToImage = _interopRequireDefault(require("dom-to-image"));
7
+
8
+ var _lodash = _interopRequireDefault(require("lodash"));
9
+
10
+ var _electron = require("electron");
11
+
12
+ var _react = _interopRequireWildcard(require("react"));
13
+
14
+ var _propTypes = _interopRequireDefault(require("prop-types"));
15
+
16
+ var _reactRedux = require("react-redux");
17
+
18
+ var _createStore = require("views/create-store");
19
+
20
+ var _equiptype = require("./equiptype");
21
+
22
+ var _equipCategoryView = require("./equip-category-view");
23
+
24
+ var _controlPanel = require("./control-panel");
25
+
26
+ var _divider = require("../divider");
27
+
28
+ var _utils = require("./utils");
29
+
30
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
31
+
32
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33
+
34
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
35
+
36
+ const {
37
+ $
38
+ } = window;
39
+ window.store = _createStore.store;
40
+ $('#fontawesome-css').setAttribute('href', require.resolve('font-awesome/css/font-awesome.css'));
41
+
42
+ class Main extends _react.Component {
43
+ static prepareAutoCollapse(props) {
44
+ const equipTypeCollapsed = {};
45
+ const {
46
+ equipTypes,
47
+ equipTypeInfo,
48
+ plans
49
+ } = props;
50
+ Object.keys(equipTypes).map(k => {
51
+ const et = equipTypes[k];
52
+ const ci = equipTypeInfo.catInfo[et.api_id];
53
+ equipTypeCollapsed[k] = !ci.group.some(mstId => plans[mstId]);
54
+ });
55
+ return {
56
+ equipTypeCollapsed
57
+ };
58
+ }
59
+
60
+ constructor(props) {
61
+ super();
62
+ Object.defineProperty(this, "handleToggle", {
63
+ configurable: true,
64
+ enumerable: true,
65
+ writable: true,
66
+ value: k => () => {
67
+ this.setState(prevState => {
68
+ const newState = _extends({}, prevState);
69
+
70
+ newState.equipTypeCollapsed = _extends({}, prevState.equipTypeCollapsed);
71
+ newState.equipTypeCollapsed[k] = !prevState.equipTypeCollapsed[k];
72
+ return newState;
73
+ });
74
+ }
75
+ });
76
+ Object.defineProperty(this, "handleControlAction", {
77
+ configurable: true,
78
+ enumerable: true,
79
+ writable: true,
80
+ value: action => {
81
+ const {
82
+ equipTypes
83
+ } = this.props;
84
+
85
+ if (action === 'Auto') {
86
+ this.setState(Main.prepareAutoCollapse(this.props));
87
+ return;
88
+ }
89
+
90
+ if (action === 'ExpandAll' || action === 'CollapseAll') {
91
+ const collapsed = action === 'CollapseAll';
92
+ const equipTypeCollapsed = {};
93
+ Object.keys(equipTypes).map(k => {
94
+ equipTypeCollapsed[k] = collapsed;
95
+ });
96
+ this.setState({
97
+ equipTypeCollapsed
98
+ });
99
+ return;
100
+ }
101
+
102
+ console.error(`undefined action: ${action}`);
103
+ }
104
+ });
105
+ Object.defineProperty(this, "handleToggleViewMode", {
106
+ configurable: true,
107
+ enumerable: true,
108
+ writable: true,
109
+ value: () => {
110
+ this.setState({
111
+ viewMode: !this.state.viewMode
112
+ });
113
+ }
114
+ });
115
+ Object.defineProperty(this, "updateRef", {
116
+ configurable: true,
117
+ enumerable: true,
118
+ writable: true,
119
+ value: newRef => {
120
+ this.viewRef = newRef;
121
+ }
122
+ });
123
+ Object.defineProperty(this, "handleRefToImage", {
124
+ configurable: true,
125
+ enumerable: true,
126
+ writable: true,
127
+ value: () => {
128
+ if (this.viewRef) {
129
+ _domToImage.default.toPng(this.viewRef).then(dataUrl => {
130
+ _electron.remote.getCurrentWebContents().downloadURL(dataUrl);
131
+ });
132
+ }
133
+ }
134
+ });
135
+ this.state = _extends({}, Main.prepareAutoCollapse(props), {
136
+ viewMode: false
137
+ });
138
+ this.viewRef = null;
139
+ }
140
+
141
+ render() {
142
+ const {
143
+ equipTypes,
144
+ equipTypeInfo,
145
+ plans,
146
+ $equips
147
+ } = this.props;
148
+ const {
149
+ equipTypeCollapsed,
150
+ viewMode
151
+ } = this.state;
152
+ return _react.default.createElement("div", {
153
+ id: "starcraft-root",
154
+ style: {
155
+ margin: '5px 10px 5px 5px'
156
+ }
157
+ }, _react.default.createElement(_controlPanel.ControlPanel, {
158
+ viewMode: viewMode,
159
+ onToggleViewMode: this.handleToggleViewMode,
160
+ onControlAction: this.handleControlAction,
161
+ onExportAsImage: this.handleRefToImage
162
+ }), _react.default.createElement(_divider.Divider, null), _react.default.createElement("div", {
163
+ ref: this.updateRef
164
+ }, Object.keys(equipTypes).map(k => {
165
+ const et = equipTypes[k];
166
+ const ci = equipTypeInfo.catInfo[et.api_id];
167
+ return _react.default.createElement(_equipCategoryView.EquipCategoryView, {
168
+ viewMode: viewMode,
169
+ key: et.api_id,
170
+ collapsed: equipTypeCollapsed[k],
171
+ onToggle: this.handleToggle(k),
172
+ equipType: et,
173
+ catInfo: ci,
174
+ plans: plans,
175
+ $equips: $equips
176
+ });
177
+ })));
178
+ }
179
+
180
+ }
181
+
182
+ Object.defineProperty(Main, "propTypes", {
183
+ configurable: true,
184
+ enumerable: true,
185
+ writable: true,
186
+ value: {
187
+ $equips: _propTypes.default.object.isRequired,
188
+ equipTypes: _propTypes.default.object.isRequired,
189
+ plans: _propTypes.default.object.isRequired,
190
+ equipTypeInfo: _propTypes.default.shape({
191
+ catInfo: _propTypes.default.object.isRequired,
192
+ iconInfo: _propTypes.default.object.isRequired
193
+ }).isRequired
194
+ }
195
+ });
196
+ const StarcraftArea = (0, _reactRedux.connect)(state => {
197
+ const equipTypeInfo = (0, _equiptype.prepareEquipTypeInfo)(state.const.$equips);
198
+ const equipTypesRaw = state.const.$equipTypes;
199
+ const {
200
+ $equips
201
+ } = state.const; // plans[<equipment master id>] = undefined or object
202
+ // plans[...][0 .. 10] = number of planned count
203
+ // connected plans:
204
+
205
+ const plans = _lodash.default.get(state, `config.${_utils.keyPlans}`, {}); // filter equipTypes to remove empty categories
206
+ // before any UI rendering happens
207
+
208
+
209
+ const equipTypes = {};
210
+ Object.keys(equipTypesRaw).map(k => {
211
+ const et = equipTypesRaw[k];
212
+ const ci = equipTypeInfo.catInfo[et.api_id];
213
+ if (ci && ci.group.length > 0) equipTypes[k] = et;
214
+ });
215
+ return {
216
+ equipTypeInfo,
217
+ equipTypes,
218
+ plans,
219
+ $equips
220
+ };
221
+ })(Main);
222
+ exports.StarcraftArea = StarcraftArea;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.isEquipMasterEqual = exports.starText = exports.modifyPlans = exports.keyPlans = exports.PLUGIN_KEY = void 0;
5
+
6
+ var _lodash = _interopRequireDefault(require("lodash"));
7
+
8
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+
10
+ const PLUGIN_KEY = 'plugin.poi-plugin-starcraft';
11
+ exports.PLUGIN_KEY = PLUGIN_KEY;
12
+ const keyPlans = `${PLUGIN_KEY}.plans`;
13
+ exports.keyPlans = keyPlans;
14
+ const {
15
+ config
16
+ } = window;
17
+ const {
18
+ __
19
+ } = window.i18n['poi-plugin-item-improvement'];
20
+
21
+ const modifyPlans = modify => {
22
+ const oldPlans = config.get(keyPlans, {});
23
+ config.set(keyPlans, modify(oldPlans));
24
+ };
25
+
26
+ exports.modifyPlans = modifyPlans;
27
+
28
+ const starText = star => star === 0 ? __('Owned') : star === 10 ? '★+max' : `★+${star}`;
29
+
30
+ exports.starText = starText;
31
+
32
+ const simplifyEquips = $equips => {
33
+ const ret = {};
34
+ Object.keys($equips).map(k => {
35
+ const {
36
+ api_type,
37
+ api_name,
38
+ api_id
39
+ } = $equips[k];
40
+ ret[k] = {
41
+ api_type,
42
+ api_name,
43
+ api_id
44
+ };
45
+ });
46
+ return ret;
47
+ };
48
+
49
+ const isEquipMasterEqual = (a, b) => _lodash.default.isEqual(simplifyEquips(a), simplifyEquips(b));
50
+
51
+ exports.isEquipMasterEqual = isEquipMasterEqual;
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.UseitemIcon = void 0;
5
+
6
+ var _classnames = _interopRequireDefault(require("classnames"));
7
+
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+
10
+ var _react = _interopRequireWildcard(require("react"));
11
+
12
+ var _path = require("path");
13
+
14
+ var _reactRedux = require("react-redux");
15
+
16
+ var _selectors = require("views/utils/selectors");
17
+
18
+ var _lodash = _interopRequireDefault(require("lodash"));
19
+
20
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
21
+
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
+
24
+ const src = (0, _path.resolve)(__dirname, '../assets/useitem.svg');
25
+
26
+ class StaticUseitemIcon extends _react.Component {
27
+ constructor(...args) {
28
+ var _temp;
29
+
30
+ return _temp = super(...args), Object.defineProperty(this, "shouldComponentUpdate", {
31
+ configurable: true,
32
+ enumerable: true,
33
+ writable: true,
34
+ value: nextProps => !_lodash.default.isEqual(nextProps, this.props)
35
+ }), _temp;
36
+ }
37
+
38
+ render() {
39
+ const {
40
+ useitemId,
41
+ className,
42
+ useSVGIcon
43
+ } = this.props;
44
+ const classNames = (0, _classnames.default)(useSVGIcon ? 'svg' : 'png', className);
45
+ return _react.default.createElement("img", {
46
+ src: src,
47
+ alt: `useitem #${useitemId}`,
48
+ className: classNames
49
+ });
50
+ }
51
+
52
+ }
53
+
54
+ Object.defineProperty(StaticUseitemIcon, "propTypes", {
55
+ configurable: true,
56
+ enumerable: true,
57
+ writable: true,
58
+ value: {
59
+ useitemId: _propTypes.default.number.isRequired,
60
+ className: _propTypes.default.string.isRequired,
61
+ useSVGIcon: _propTypes.default.bool.isRequired // all fields are primitives
62
+ // so shallow / deep comparisons are hardly making any difference
63
+
64
+ }
65
+ });
66
+ const UseitemIcon = (0, _reactRedux.connect)(state => ({
67
+ useSVGIcon: _lodash.default.get((0, _selectors.configSelector)(state), 'poi.useSVGIcon')
68
+ }))(StaticUseitemIcon);
69
+ exports.UseitemIcon = UseitemIcon;