bfg-common 1.0.0 → 1.0.2

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.
@@ -56,7 +56,7 @@ const localization = computed<UI_I_Localization>(() => useLocal())
56
56
  </script>
57
57
 
58
58
  <style lang="scss" scoped>
59
- @import 'nuxt-3-uikit/assets/scss/common/mixins.scss';
59
+ @import 'bfg-common/assets/scss/common/mixins.scss';
60
60
  $bar-graph-width: 256px;
61
61
  .meters-block {
62
62
  &__flex {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "bfg-common",
3
3
  "private": false,
4
- "version": "1.0.0",
4
+ "version": "1.0.2",
5
5
  "scripts": {
6
6
  "build": "nuxt build",
7
7
  "dev": "nuxt dev --port=3002",
@@ -1,199 +1,217 @@
1
- export default defineNuxtPlugin(() => {
2
- const recursion = function () {
3
- const self: any = {}
4
-
5
- self.find = function (
6
- arr: any[],
7
- value: any,
8
- valueProp: string,
9
- itemsProp: string
10
- ) {
11
- let result = null
12
- if (!arr) {
13
- return result
14
- }
15
-
16
- for (let i = 0; i < arr.length; i++) {
17
- const item = arr[i]
18
- if (item[valueProp] === value) {
19
- result = item
20
- break
21
- }
22
- if (item[itemsProp].length) {
23
- result = self.find(item.nodes, value, valueProp, itemsProp)
24
- if (result) {
25
- break
26
- }
27
- }
28
- }
29
- return result
30
- }
31
-
32
- self.findAndShow = function (
33
- arr: any[],
34
- values: any[],
35
- valueProps: string[],
36
- itemsProp: string
37
- ): boolean {
38
- if (!arr) return false
39
- let res = false
40
-
41
- for (let i = 0; i < arr.length; i++) {
42
- const item: any = arr[i]
43
-
44
- const isFind = values.every(
45
- (value, index) => value === item[valueProps[index]]
46
- )
47
- if (isFind) {
48
- item.nodesShow = !item.nodesShow
49
- res = true
50
- break
51
- }
52
-
53
- if (item[itemsProp]?.length) {
54
- self.findAndShow(item.nodes, values, valueProps, itemsProp)
55
- }
56
- }
57
- return res
58
- }
59
-
60
- self.findAndRemove = function (
61
- arr: any[],
62
- values: any[],
63
- valueProps: string[],
64
- itemsProp: string
65
- ): boolean {
66
- if (!arr) return false
67
- let res = false
68
-
69
- for (let i = 0; i < arr.length; i++) {
70
- const item: any = arr[i]
71
-
72
- const isFind = values.every(
73
- (value, index) => value === item[valueProps[index]]
74
- )
75
- if (isFind) {
76
- arr.splice(i, 1)
77
- res = true
78
- break
79
- }
80
-
81
- if (item[itemsProp]?.length) {
82
- self.findAndRemove(item[itemsProp], values, valueProps, itemsProp)
83
- }
84
- }
85
- return res
86
- }
87
- self.findAndMove = function (
88
- arr: any[],
89
- values: any[],
90
- valueProps: string[],
91
- itemsProp: string,
92
- moveArr: any,
93
- findIndex: string
94
- ) {
95
- let result = null
96
- if (!arr) return result
97
-
98
- for (let i = 0; i < arr.length; i++) {
99
- const item: any = arr[i]
100
-
101
- const isFind = values.every(
102
- (value, index) => value === item[valueProps[index]]
103
- )
104
-
105
- if (isFind) {
106
- // Remove from the original position
107
- const moveItem = arr.splice(i, 1)[0]
108
- const index = moveArr[itemsProp].findLastIndex(
109
- (x) => x.type === findIndex
110
- )
111
- moveArr[itemsProp].splice(index + 1, 0, moveItem)
112
-
113
- result = moveItem
114
- break
115
- }
116
-
117
- if (item[itemsProp]?.length) {
118
- result = self.findAndMove(
119
- item[itemsProp],
120
- values,
121
- valueProps,
122
- itemsProp,
123
- moveArr,
124
- findIndex
125
- )
126
- if (result) break
127
- }
128
- }
129
- return result
130
- }
131
-
132
- self.findAndActivate = function (
133
- arr: any[],
134
- values: any[],
135
- valueProps: string[],
136
- itemsProp: string
137
- ): boolean {
138
- if (!arr) return false
139
- let res = false
140
-
141
- for (let i = 0; i < arr.length; i++) {
142
- const item = arr[i]
143
- const isActive = values.every(
144
- (value, index) => value === item[valueProps[index]]
145
- )
146
- item.isActive = isActive
147
- if (isActive) {
148
- res = true
149
- }
150
-
151
- if (item[itemsProp]?.length) {
152
- const isFindInChild = self.findAndActivate(
153
- item.nodes,
154
- values,
155
- valueProps,
156
- itemsProp
157
- )
158
- if (!res) res = isFindInChild
159
- }
160
- }
161
- return res
162
- }
163
-
164
- self.filtrationTreeByExpectedTypeRecursion = (
165
- node: any,
166
- expectedType: string | string[]
167
- ): any[] | null | any => {
168
- if (!node.nodes.length) return { ...node }
169
-
170
- const result = []
171
-
172
- for (let i = 0; i < node.nodes.length; i++) {
173
- const item = { ...node.nodes[i] }
174
-
175
- // Проверка, является ли тип ожидаемым типом или массивом ожидаемых типов
176
- if (
177
- (typeof expectedType === 'string' && item.type === expectedType) ||
178
- (Array.isArray(expectedType) && expectedType.includes(item.type))
179
- ) {
180
- result.push(
181
- self.filtrationTreeByExpectedTypeRecursion(item, expectedType)
182
- )
183
- } else {
184
- item.nodes = []
185
- }
186
- }
187
- node.nodes = result
188
- return { ...node }
189
- }
190
-
191
- return self
192
- }.call({})
193
-
194
- return {
195
- provide: {
196
- recursion,
197
- },
198
- }
199
- })
1
+ export default defineNuxtPlugin(() => {
2
+ const recursion = function () {
3
+ const self: any = {}
4
+
5
+ self.find = function (
6
+ arr: any[],
7
+ value: any,
8
+ valueProp: string,
9
+ itemsProp: string
10
+ ) {
11
+ let result = null
12
+ if (!arr) {
13
+ return result
14
+ }
15
+
16
+ for (let i = 0; i < arr.length; i++) {
17
+ const item = arr[i]
18
+ if (item[valueProp] === value) {
19
+ result = item
20
+ break
21
+ }
22
+ if (item[itemsProp].length) {
23
+ result = self.find(item.nodes, value, valueProp, itemsProp)
24
+ if (result) {
25
+ break
26
+ }
27
+ }
28
+ }
29
+ return result
30
+ }
31
+
32
+ self.findAndShow = function (
33
+ arr: any[],
34
+ values: any[],
35
+ valueProps: string[],
36
+ itemsProp: string
37
+ ): boolean {
38
+ if (!arr) return false
39
+ let res = false
40
+
41
+ for (let i = 0; i < arr.length; i++) {
42
+ const item: any = arr[i]
43
+
44
+ const isFind = values.every(
45
+ (value, index) => value === item[valueProps[index]]
46
+ )
47
+ if (isFind) {
48
+ item.nodesShow = !item.nodesShow
49
+ res = true
50
+ break
51
+ }
52
+
53
+ if (item[itemsProp]?.length) {
54
+ self.findAndShow(item.nodes, values, valueProps, itemsProp)
55
+ }
56
+ }
57
+ return res
58
+ }
59
+
60
+ self.findAndRemove = function (
61
+ arr: any[],
62
+ values: any[],
63
+ valueProps: string[],
64
+ itemsProp: string
65
+ ): boolean {
66
+ if (!arr) return false
67
+ let res = false
68
+
69
+ for (let i = 0; i < arr.length; i++) {
70
+ const item: any = arr[i]
71
+
72
+ const isFind = values.every(
73
+ (value, index) => value === item[valueProps[index]]
74
+ )
75
+ if (isFind) {
76
+ arr.splice(i, 1)
77
+ res = true
78
+ break
79
+ }
80
+
81
+ if (item[itemsProp]?.length) {
82
+ self.findAndRemove(item[itemsProp], values, valueProps, itemsProp)
83
+ }
84
+ }
85
+ return res
86
+ }
87
+ self.findAndMove = function (
88
+ arr: any[],
89
+ values: any[],
90
+ valueProps: string[],
91
+ itemsProp: string,
92
+ moveArr: any,
93
+ findIndex: string
94
+ ) {
95
+ let result = null
96
+ if (!arr) return result
97
+
98
+ for (let i = 0; i < arr.length; i++) {
99
+ const item: any = arr[i]
100
+
101
+ const isFind = values.every(
102
+ (value, index) => value === item[valueProps[index]]
103
+ )
104
+
105
+ if (isFind) {
106
+ // Remove from the original position
107
+ const moveItem = arr.splice(i, 1)[0]
108
+ const index = moveArr[itemsProp].findLastIndex(
109
+ (x) => x.type === findIndex
110
+ )
111
+ moveArr[itemsProp].splice(index + 1, 0, moveItem)
112
+
113
+ result = moveItem
114
+ break
115
+ }
116
+
117
+ if (item[itemsProp]?.length) {
118
+ result = self.findAndMove(
119
+ item[itemsProp],
120
+ values,
121
+ valueProps,
122
+ itemsProp,
123
+ moveArr,
124
+ findIndex
125
+ )
126
+ if (result) break
127
+ }
128
+ }
129
+ return result
130
+ }
131
+
132
+ self.findAndActivate = function (
133
+ arr: any[],
134
+ values: any[],
135
+ valueProps: string[],
136
+ itemsProp: string
137
+ ): boolean {
138
+ if (!arr) return false
139
+ let res = false
140
+
141
+ for (let i = 0; i < arr.length; i++) {
142
+ const item = arr[i]
143
+ const isActive = values.every(
144
+ (value, index) => value === item[valueProps[index]]
145
+ )
146
+ item.isActive = isActive
147
+ if (isActive) {
148
+ res = true
149
+ }
150
+
151
+ if (item[itemsProp]?.length) {
152
+ const isFindInChild = self.findAndActivate(
153
+ item.nodes,
154
+ values,
155
+ valueProps,
156
+ itemsProp
157
+ )
158
+ if (!res) res = isFindInChild
159
+ }
160
+ }
161
+ return res
162
+ }
163
+
164
+ // TODO изменить nodes и сделать динамичной
165
+ self.filtrationTreeByExpectedTypeRecursion = (
166
+ node: any,
167
+ expectedType: string | string[]
168
+ ): any[] | null | any => {
169
+ if (!node.nodes.length) return { ...node }
170
+
171
+ const result = []
172
+
173
+ for (let i = 0; i < node.nodes.length; i++) {
174
+ const item = { ...node.nodes[i] }
175
+
176
+ // Проверка, является ли тип ожидаемым типом или массивом ожидаемых типов
177
+ if (
178
+ (typeof expectedType === 'string' && item.type === expectedType) ||
179
+ (Array.isArray(expectedType) && expectedType.includes(item.type))
180
+ ) {
181
+ result.push(
182
+ self.filtrationTreeByExpectedTypeRecursion(item, expectedType)
183
+ )
184
+ } else {
185
+ item.nodes = []
186
+ }
187
+ }
188
+ node.nodes = result
189
+ return { ...node }
190
+ }
191
+
192
+ self.createAbsolutePathRecursion = (
193
+ node: any,
194
+ parentProp: string,
195
+ valueProp: string
196
+ ): string => {
197
+ if (!node) return ''
198
+
199
+ return (
200
+ node[valueProp] +
201
+ self.createAbsolutePathRecursion(
202
+ node[parentProp],
203
+ parentProp,
204
+ valueProp
205
+ )
206
+ )
207
+ }
208
+
209
+ return self
210
+ }.call({})
211
+
212
+ return {
213
+ provide: {
214
+ recursion,
215
+ },
216
+ }
217
+ })