vue-spear-tip 0.1.1 → 0.1.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.
@@ -1,25 +1,25 @@
1
- name: Publish Package
2
- on:
3
- push:
4
- branches: [ main ]
5
- release:
6
- types: [published]
7
-
8
- permissions:
9
- contents: read
10
-
11
- jobs:
12
- publish:
13
- runs-on: ubuntu-latest
14
- steps:
15
- - uses: actions/checkout@v5
16
- - uses: actions/setup-node@v4
17
- with:
18
- node-version: '22'
19
- registry-url: 'https://registry.npmjs.org'
20
- token: ${{ secrets.NPM_TOKEN }}
21
- - run: npm install -g npm@latest
22
- - run: echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > ~/.npmrc
23
- - run: npm publish
24
- env:
1
+ name: Publish Package
2
+ on:
3
+ push:
4
+ branches: [ main ]
5
+ release:
6
+ types: [published]
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ jobs:
12
+ publish:
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - uses: actions/checkout@v5
16
+ - uses: actions/setup-node@v4
17
+ with:
18
+ node-version: '22'
19
+ registry-url: 'https://registry.npmjs.org'
20
+ token: ${{ secrets.NPM_TOKEN }}
21
+ - run: npm install -g npm@latest
22
+ - run: echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > ~/.npmrc
23
+ - run: npm publish
24
+ env:
25
25
  NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
package/README.md CHANGED
@@ -1,13 +1,13 @@
1
- # Vue TypeScript Class Components
2
- ## (reactive OOP frontend programming)
3
-
4
- Vue 3 simple class components with @Watch, @Computed, @Prop decorators.
5
- And UI KIT on them.
6
-
7
- #### Install
8
- ```
9
- npm install vue-spear-tip
10
- ```
11
-
12
- Use with vite + html/pug + typescript classes + sass/scss
13
-
1
+ # Vue TypeScript Class Components
2
+ ## (reactive OOP frontend programming)
3
+
4
+ Vue 3 simple class components with @Watch, @Computed, @Prop decorators.
5
+ And UI KIT on them.
6
+
7
+ #### Install
8
+ ```
9
+ npm install vue-spear-tip
10
+ ```
11
+
12
+ Use with vite + html/pug + typescript classes + sass/scss
13
+
package/index.cjs CHANGED
@@ -1,5 +1,5 @@
1
-
2
-
3
- export default {
4
-
1
+
2
+
3
+ export default {
4
+
5
5
  }
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
-
2
-
3
- export default {
4
-
1
+
2
+
3
+ export default {
4
+
5
5
  }
package/package.json CHANGED
@@ -1,17 +1,17 @@
1
- {
2
- "name": "vue-spear-tip",
3
- "version": "0.1.1",
4
- "type": "module",
5
- "main": "./index.cjs",
6
- "module": "./index.js",
7
- "exports": {
8
- ".": {
9
- "import": "./index.js",
10
- "require": "./index.cjs",
11
- "types": {
12
- "require": "./index.d.cts",
13
- "default": "./index.d.ts"
14
- }
15
- }
16
- }
1
+ {
2
+ "name": "vue-spear-tip",
3
+ "version": "0.1.2",
4
+ "type": "module",
5
+ "main": "./index.cjs",
6
+ "module": "./index.js",
7
+ "exports": {
8
+ ".": {
9
+ "import": "./index.js",
10
+ "require": "./index.cjs",
11
+ "types": {
12
+ "require": "./index.d.cts",
13
+ "default": "./index.d.ts"
14
+ }
15
+ }
16
+ }
17
17
  }
@@ -1,7 +1,7 @@
1
- import IVueClass from './IVueClass'
2
-
3
- export default interface IBaseVueComponent extends IVueClass {
4
- readonly $root: {
5
- [key:string]:any
6
- }
7
- }
1
+ import IVueClass from './IVueClass'
2
+
3
+ export default interface IBaseVueComponent extends IVueClass {
4
+ readonly $root: {
5
+ [key:string]:any
6
+ }
7
+ }
@@ -1,226 +1,226 @@
1
- import {VNode} from '@vue/runtime-core'
2
-
3
- /**
4
- * Наследуемый интерфейс компонента vue
5
- * @interface IVueClass
6
- * @typedef {Function} mounted Mount
7
- */
8
- export default interface IVueClass {
9
- readonly mixins: Array<any>
10
- readonly components: {[key:string|symbol|number]:any}
11
- readonly emits: Array<string>
12
- readonly emitsParent: Array<string>
13
- readonly inject: Array<string>
14
- readonly injectParent: Array<string>
15
- readonly provide: {[key:string]:any}
16
- readonly provideParent: {[key:string]:(...args: any) => any}
17
-
18
- /**
19
- * Название компонента. Определяется автоматически по названию класса если наследовать от View.
20
- */
21
- readonly name: string
22
-
23
- /**
24
- * Экземпляр класса. Учтите, что контекст this не будет содержать vue элементов.
25
- */
26
- readonly instance?: this
27
-
28
- /**
29
- * Содержит привязки атрибутов и события в родительском компоненте,
30
- * которые не были распознаны (и исключены) как
31
- * [входные параметры](https://v3.ru.vuejs.org/ru/api/options-data.html#props)
32
- * компонента или пользовательские события.
33
- * Если компонент не объявляет входные параметры или
34
- * [пользовательские события](https://v3.ru.vuejs.org/ru/api/options-data.html#emits),
35
- * тут будут все привязки из родительского компонента,
36
- * которые можно передать через v-bind="$attrs" внутреннему компоненту —
37
- * удобно при создании компонентов высшего порядка (HOC, High Order Components).
38
- *
39
- * **См. также**
40
- *
41
- * [$attrs](https://v3.ru.vuejs.org/ru/api/instance-properties.html#attrs)
42
- *
43
- * [Передача обычных атрибутов](https://v3.ru.vuejs.org/ru/guide/component-attrs.html)
44
- *
45
- * [Options API / Разное — inheritAttrs](https://v3.ru.vuejs.org/ru/api/options-misc.html#inheritattrs)
46
- */
47
- readonly $attrs: Object
48
-
49
- /**
50
- * Объект с данными, за которыми осуществляет наблюдение экземпляр компонента.
51
- * Экземпляр компонента проксирует доступ к свойствам объекта данных.
52
- *
53
- * **См. также**
54
- *
55
- * [$data](https://v3.ru.vuejs.org/ru/api/instance-properties.html#data)
56
- *
57
- * [Options API / Локальное состояние — data](https://v3.ru.vuejs.org/ru/api/options-data.html#data)
58
- */
59
- readonly $data: Object
60
-
61
- /**
62
- * Корневой элемент DOM, которым управляет экземпляр компонента.
63
- *
64
- * Для компонентов использующих [фрагменты](https://v3.ru.vuejs.org/ru/guide/migration/fragments.html),
65
- * `$el` будет узлом DOM, с помощью которого Vue будет отслеживать место компонента в DOM.
66
- * Рекомендуется использовать ссылки на элементы шаблона для доступа к элементам DOM напрямую,
67
- * а не полагаться на `$el`
68
- *
69
- * **См. также**
70
- *
71
- * [$el](https://v3.ru.vuejs.org/ru/api/instance-properties.html#el)
72
- */
73
- readonly $el: HTMLElement
74
-
75
- /**
76
- * Опции инициализации, используемые для текущего экземпляра компонента.
77
- * Полезно, если потребуется добавить пользовательские свойства в опции:
78
- *
79
- * **См. также**
80
- *
81
- * [$options](https://v3.ru.vuejs.org/ru/api/instance-properties.html#options)
82
- */
83
- readonly $options: {
84
- __scopeId: string
85
- __file: string
86
- }
87
-
88
- /**
89
- * Родительский экземпляр, если таковой имеется
90
- *
91
- * **См. также**
92
- *
93
- * [$parent](https://v3.ru.vuejs.org/ru/api/instance-properties.html#parent)
94
- */
95
- readonly $parent: IVueClass|null
96
-
97
- /**
98
- * Объект, содержащий текущие входные параметры, которые получил компонент.
99
- * Экземпляр компонента проксирует доступ к свойствам объекта входных параметров.
100
- *
101
- * **См. также**
102
- *
103
- * [$props](https://v3.ru.vuejs.org/ru/api/instance-properties.html#props)
104
- */
105
- readonly $props: {[key:string]:any}
106
-
107
- /**
108
- * Объект из DOM-элементов и экземпляров компонентов, зарегистрированных с помощью
109
- * [атрибутов ref](https://v3.ru.vuejs.org/ru/guide/component-template-refs.html).
110
- *
111
- * **См. также**
112
- *
113
- * [Ссылки на элементы шаблона](https://v3.ru.vuejs.org/ru/guide/component-template-refs.html)
114
- * [Специальные атрибуты — ref](https://v3.ru.vuejs.org/ru/api/special-attributes.html#ref)
115
- */
116
- readonly $refs: {
117
- [key:string]:HTMLElement|HTMLInputElement|undefined|
118
- HTMLElement[]|HTMLInputElement[]
119
- }
120
-
121
- /**
122
- * Экземпляр корневого компонента текущего дерева компонентов.
123
- * Если у текущего экземпляра нет родителя, то значением будет он сам.
124
- */
125
- readonly $root: {
126
- // [key:string]:any
127
- readonly APP?: any
128
- }|this|any
129
-
130
- /**
131
- * Используется для программного доступа к содержимому, распределяемому с помощью слотов.
132
- * Каждый именованный слот имеет соответствующее свойство
133
- * (например, содержимое v-slot:foo будет доступно через this.$slots.foo()).
134
- */
135
- readonly $slots: {
136
- default: () => VNode[]
137
- } & {
138
- [key: string]: (() => VNode[]) | undefined
139
- }
140
-
141
- /**
142
- * Генерирует событие на текущем экземпляре.
143
- * Любые дополнительные аргументы будут переданы в callback функции прослушивания события.
144
- * @param {String} eventName Название события
145
- * @param {*} args Аргументы передаваемые в него
146
- */
147
- $emit(eventName: string, ...args: any[]): void
148
-
149
- /**
150
- * Откладывает вызов коллбэка до следующего цикла обновления DOM.
151
- * @param {Function} callback
152
- */
153
- $forceUpdate(callback?: Function): void
154
-
155
- /**
156
- * Отслеживание изменений реактивного свойства или функции вычисляемого свойства.
157
- * @param {String} source
158
- * @param {Function} callback
159
- * @param {VueWatchOptions} options
160
- */
161
- $watch(source?: string | Function, callback?: Function | object, options?: VueWatchOptions): void
162
-
163
- /**
164
- * Откладывает вызов коллбэка до следующего цикла обновления DOM.
165
- * @param {Function} callback
166
- */
167
- $nextTick(callback?: Function): void
168
-
169
- /** Параметры vue компонента */
170
- readonly $: {
171
- [key: string]: any,
172
- uid: number,
173
- app: {
174
- [key: string]: any,
175
- appContext: {
176
- [key: string]: any,
177
- version: string
178
- }
179
- },
180
- vnode: {
181
- [key: string]: any,
182
- scopeId: string,
183
- }
184
- }
185
-
186
-
187
- // Хуки жизненного цикла
188
- beforeCreate(): void
189
- created(): void
190
- beforeMount(): void
191
- mounted(): void
192
- beforeUpdate(): void
193
- updated(): void
194
- beforeUnmount(): void
195
- unmounted(): void
196
-
197
- // Родительские хуки
198
- beforeCreateParent(): void
199
- createdParent(): void
200
- beforeMountParent(): void
201
- mountedParent(): void
202
- beforeUpdateParent(): void
203
- updatedParent(): void
204
- beforeUnmountParent(): void
205
- unmountedParent(): void
206
-
207
- /**
208
- * Рекурсивный пропуск шагов
209
- * @param {Function} callback
210
- * @param {Number} steps Количество шагов (тиков, смен сцен), которые нужно пропустить
211
- */
212
- nextTick(callback: () => void, steps?: number): void
213
-
214
- /**
215
- * Проверка наличия внешнего обработчика события
216
- * @param name
217
- */
218
- hasExternalHandlerEvent(name: string): boolean
219
- }
220
-
221
- export interface VueWatchOptions {
222
- deep?: boolean,
223
- immediate?: boolean,
224
- once?: boolean,
225
- flush?: string,
226
- }
1
+ import {VNode} from '@vue/runtime-core'
2
+
3
+ /**
4
+ * Наследуемый интерфейс компонента vue
5
+ * @interface IVueClass
6
+ * @typedef {Function} mounted Mount
7
+ */
8
+ export default interface IVueClass {
9
+ readonly mixins: Array<any>
10
+ readonly components: {[key:string|symbol|number]:any}
11
+ readonly emits: Array<string>
12
+ readonly emitsParent: Array<string>
13
+ readonly inject: Array<string>
14
+ readonly injectParent: Array<string>
15
+ readonly provide: {[key:string]:any}
16
+ readonly provideParent: {[key:string]:(...args: any) => any}
17
+
18
+ /**
19
+ * Название компонента. Определяется автоматически по названию класса если наследовать от View.
20
+ */
21
+ readonly name: string
22
+
23
+ /**
24
+ * Экземпляр класса. Учтите, что контекст this не будет содержать vue элементов.
25
+ */
26
+ readonly instance?: this
27
+
28
+ /**
29
+ * Содержит привязки атрибутов и события в родительском компоненте,
30
+ * которые не были распознаны (и исключены) как
31
+ * [входные параметры](https://v3.ru.vuejs.org/ru/api/options-data.html#props)
32
+ * компонента или пользовательские события.
33
+ * Если компонент не объявляет входные параметры или
34
+ * [пользовательские события](https://v3.ru.vuejs.org/ru/api/options-data.html#emits),
35
+ * тут будут все привязки из родительского компонента,
36
+ * которые можно передать через v-bind="$attrs" внутреннему компоненту —
37
+ * удобно при создании компонентов высшего порядка (HOC, High Order Components).
38
+ *
39
+ * **См. также**
40
+ *
41
+ * [$attrs](https://v3.ru.vuejs.org/ru/api/instance-properties.html#attrs)
42
+ *
43
+ * [Передача обычных атрибутов](https://v3.ru.vuejs.org/ru/guide/component-attrs.html)
44
+ *
45
+ * [Options API / Разное — inheritAttrs](https://v3.ru.vuejs.org/ru/api/options-misc.html#inheritattrs)
46
+ */
47
+ readonly $attrs: Object
48
+
49
+ /**
50
+ * Объект с данными, за которыми осуществляет наблюдение экземпляр компонента.
51
+ * Экземпляр компонента проксирует доступ к свойствам объекта данных.
52
+ *
53
+ * **См. также**
54
+ *
55
+ * [$data](https://v3.ru.vuejs.org/ru/api/instance-properties.html#data)
56
+ *
57
+ * [Options API / Локальное состояние — data](https://v3.ru.vuejs.org/ru/api/options-data.html#data)
58
+ */
59
+ readonly $data: Object
60
+
61
+ /**
62
+ * Корневой элемент DOM, которым управляет экземпляр компонента.
63
+ *
64
+ * Для компонентов использующих [фрагменты](https://v3.ru.vuejs.org/ru/guide/migration/fragments.html),
65
+ * `$el` будет узлом DOM, с помощью которого Vue будет отслеживать место компонента в DOM.
66
+ * Рекомендуется использовать ссылки на элементы шаблона для доступа к элементам DOM напрямую,
67
+ * а не полагаться на `$el`
68
+ *
69
+ * **См. также**
70
+ *
71
+ * [$el](https://v3.ru.vuejs.org/ru/api/instance-properties.html#el)
72
+ */
73
+ readonly $el: HTMLElement
74
+
75
+ /**
76
+ * Опции инициализации, используемые для текущего экземпляра компонента.
77
+ * Полезно, если потребуется добавить пользовательские свойства в опции:
78
+ *
79
+ * **См. также**
80
+ *
81
+ * [$options](https://v3.ru.vuejs.org/ru/api/instance-properties.html#options)
82
+ */
83
+ readonly $options: {
84
+ __scopeId: string
85
+ __file: string
86
+ }
87
+
88
+ /**
89
+ * Родительский экземпляр, если таковой имеется
90
+ *
91
+ * **См. также**
92
+ *
93
+ * [$parent](https://v3.ru.vuejs.org/ru/api/instance-properties.html#parent)
94
+ */
95
+ readonly $parent: IVueClass|null
96
+
97
+ /**
98
+ * Объект, содержащий текущие входные параметры, которые получил компонент.
99
+ * Экземпляр компонента проксирует доступ к свойствам объекта входных параметров.
100
+ *
101
+ * **См. также**
102
+ *
103
+ * [$props](https://v3.ru.vuejs.org/ru/api/instance-properties.html#props)
104
+ */
105
+ readonly $props: {[key:string]:any}
106
+
107
+ /**
108
+ * Объект из DOM-элементов и экземпляров компонентов, зарегистрированных с помощью
109
+ * [атрибутов ref](https://v3.ru.vuejs.org/ru/guide/component-template-refs.html).
110
+ *
111
+ * **См. также**
112
+ *
113
+ * [Ссылки на элементы шаблона](https://v3.ru.vuejs.org/ru/guide/component-template-refs.html)
114
+ * [Специальные атрибуты — ref](https://v3.ru.vuejs.org/ru/api/special-attributes.html#ref)
115
+ */
116
+ readonly $refs: {
117
+ [key:string]:HTMLElement|HTMLInputElement|undefined|
118
+ HTMLElement[]|HTMLInputElement[]
119
+ }
120
+
121
+ /**
122
+ * Экземпляр корневого компонента текущего дерева компонентов.
123
+ * Если у текущего экземпляра нет родителя, то значением будет он сам.
124
+ */
125
+ readonly $root: {
126
+ // [key:string]:any
127
+ readonly APP?: any
128
+ }|this|any
129
+
130
+ /**
131
+ * Используется для программного доступа к содержимому, распределяемому с помощью слотов.
132
+ * Каждый именованный слот имеет соответствующее свойство
133
+ * (например, содержимое v-slot:foo будет доступно через this.$slots.foo()).
134
+ */
135
+ readonly $slots: {
136
+ default: () => VNode[]
137
+ } & {
138
+ [key: string]: (() => VNode[]) | undefined
139
+ }
140
+
141
+ /**
142
+ * Генерирует событие на текущем экземпляре.
143
+ * Любые дополнительные аргументы будут переданы в callback функции прослушивания события.
144
+ * @param {String} eventName Название события
145
+ * @param {*} args Аргументы передаваемые в него
146
+ */
147
+ $emit(eventName: string, ...args: any[]): void
148
+
149
+ /**
150
+ * Откладывает вызов коллбэка до следующего цикла обновления DOM.
151
+ * @param {Function} callback
152
+ */
153
+ $forceUpdate(callback?: Function): void
154
+
155
+ /**
156
+ * Отслеживание изменений реактивного свойства или функции вычисляемого свойства.
157
+ * @param {String} source
158
+ * @param {Function} callback
159
+ * @param {VueWatchOptions} options
160
+ */
161
+ $watch(source?: string | Function, callback?: Function | object, options?: VueWatchOptions): void
162
+
163
+ /**
164
+ * Откладывает вызов коллбэка до следующего цикла обновления DOM.
165
+ * @param {Function} callback
166
+ */
167
+ $nextTick(callback?: Function): void
168
+
169
+ /** Параметры vue компонента */
170
+ readonly $: {
171
+ [key: string]: any,
172
+ uid: number,
173
+ app: {
174
+ [key: string]: any,
175
+ appContext: {
176
+ [key: string]: any,
177
+ version: string
178
+ }
179
+ },
180
+ vnode: {
181
+ [key: string]: any,
182
+ scopeId: string,
183
+ }
184
+ }
185
+
186
+
187
+ // Хуки жизненного цикла
188
+ beforeCreate(): void
189
+ created(): void
190
+ beforeMount(): void
191
+ mounted(): void
192
+ beforeUpdate(): void
193
+ updated(): void
194
+ beforeUnmount(): void
195
+ unmounted(): void
196
+
197
+ // Родительские хуки
198
+ beforeCreateParent(): void
199
+ createdParent(): void
200
+ beforeMountParent(): void
201
+ mountedParent(): void
202
+ beforeUpdateParent(): void
203
+ updatedParent(): void
204
+ beforeUnmountParent(): void
205
+ unmountedParent(): void
206
+
207
+ /**
208
+ * Рекурсивный пропуск шагов
209
+ * @param {Function} callback
210
+ * @param {Number} steps Количество шагов (тиков, смен сцен), которые нужно пропустить
211
+ */
212
+ nextTick(callback: () => void, steps?: number): void
213
+
214
+ /**
215
+ * Проверка наличия внешнего обработчика события
216
+ * @param name
217
+ */
218
+ hasExternalHandlerEvent(name: string): boolean
219
+ }
220
+
221
+ export interface VueWatchOptions {
222
+ deep?: boolean,
223
+ immediate?: boolean,
224
+ once?: boolean,
225
+ flush?: string,
226
+ }
@@ -1,22 +1,22 @@
1
- <script lang="ts">
2
- import IBaseVueComponent from '../Interfaces/IBaseVueComponent'
3
- import VueClass from '../Vue/VueClass'
4
-
5
- /**
6
- * Базовый компонент.
7
- * В дальнейшем планируется в него внедрять полезные методы и реактивные свойства (размеры окна, тип и т.д.).
8
- * От него можно наследовать любой компонент.
9
- */
10
- export default abstract class BaseComponent extends VueClass implements IBaseVueComponent {
11
- emitsParent = ['update:modelValue']
12
- declare readonly $root: {
13
- [key: string]: any
14
- }
15
- constructor() {
16
- super()
17
- }
18
- mountedParent() {
19
-
20
- }
21
- }
22
- </script>
1
+ <script lang="ts">
2
+ import IBaseVueComponent from '../Interfaces/IBaseVueComponent'
3
+ import VueClass from '../Vue/VueClass'
4
+
5
+ /**
6
+ * Базовый компонент.
7
+ * В дальнейшем планируется в него внедрять полезные методы и реактивные свойства (размеры окна, тип и т.д.).
8
+ * От него можно наследовать любой компонент.
9
+ */
10
+ export default abstract class BaseComponent extends VueClass implements IBaseVueComponent {
11
+ emitsParent = ['update:modelValue']
12
+ declare readonly $root: {
13
+ [key: string]: any
14
+ }
15
+ constructor() {
16
+ super()
17
+ }
18
+ mountedParent() {
19
+
20
+ }
21
+ }
22
+ </script>