@opentech0/dom-animations 1.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.
@@ -0,0 +1,39 @@
1
+ ---
2
+ name: "🐞 Rapport de bug"
3
+ about: Créez un rapport de bug
4
+ title: ''
5
+ labels: ['bug', 'status:Unconfirmed']
6
+ assignees: 'Androlax2'
7
+
8
+ ---
9
+
10
+ <!--- Fournir un résumé général du problÚme dans le titre ci-dessus -->
11
+
12
+ ## Description
13
+ <!--- Fournissez une introduction plus dĂ©taillĂ©e au problĂšme lui-mĂȘme, et pourquoi vous considĂ©rez qu'il s'agit d'un bug -->
14
+
15
+ ## Comportement attendu
16
+ <!--- Dites-nous ce qu'il devrait se passer -->
17
+
18
+ ## Comportement réel
19
+ <!--- Dites-nous ce qu'il se passe Ă  la place -->
20
+
21
+ ## Correction possible
22
+ <!--- Non obligatoire, mais suggérez un correctif ou une raison pour le bug -->
23
+
24
+ ## Étapes à reproduire
25
+ <!--- Fournissez un lien vers un exemple vivant, ou un ensemble non ambigu d'étapes pour reproduire ce bug. Inclure le code à reproduire, le cas échéant -->
26
+ 1.
27
+ 2.
28
+ 3.
29
+ 4.
30
+
31
+ ## Contexte
32
+ <!--- Comment ce bug vous a-t-il affecté ? Qu'essayiez-vous d'accomplir ? -->
33
+
34
+ ## Votre environnement
35
+ <!--- Incluez autant de détails pertinents sur l'environnement dans lequel vous avez rencontré le bug -->
36
+ * Version utilisée :
37
+ * Nom et version de l'environnement (par exemple, Chrome 39, node.js 5.4) :
38
+ * SystĂšme d'exploitation et version (bureau ou mobile) :
39
+ * Lien vers votre projet :
@@ -0,0 +1,30 @@
1
+ ---
2
+ name: "📚 Documentation"
3
+ about: Suggérer des modifications pour la documentation.
4
+ title: ''
5
+ labels: 'documentation'
6
+ assignees: 'Androlax2'
7
+
8
+ ---
9
+
10
+ <!--
11
+ Résumez le changement de documentation que vous suggérez dans le titre du problÚme.
12
+ -->
13
+
14
+ ### Section pertinente de la documentation.
15
+
16
+ <!--
17
+ Copiez le lien de la section ici.
18
+ -->
19
+
20
+ ### Détails
21
+
22
+ <!--
23
+ Fournissez une description claire et concise de ce que vous voulez qu'il se passe.
24
+ -->
25
+
26
+ (Écrivez votre rĂ©ponse ici.)
27
+
28
+ <!--
29
+ Si vous suggérez un changement trÚs spécifique à la documentation, n'hésitez pas à soumettre directement une pull request.
30
+ -->
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: "🚀 Demande de fonctionnalitĂ©"
3
+ about: Suggérer une idée pour améliorer le produit.
4
+ title: ''
5
+ labels: 'enhancement'
6
+ assignees: 'Androlax2'
7
+
8
+ ---
9
+
10
+ <!--- Fournir un résumé général du problÚme dans le titre ci-dessus -->
11
+
12
+ ## Description détaillée
13
+ <!--- Fournissez une description détaillée du changement ou de l'ajout que vous proposez -->
14
+
15
+ ## Contexte
16
+ <!--- Pourquoi ce changement est-il important pour vous ? Comment l'utiliseriez-vous ? -->
17
+ <!--- Comment peut-il bénéficier aux autres utilisateurs ? -->
18
+
19
+ ## Mise en Ɠuvre possible
20
+ <!--- Non obligatoire, mais suggĂ©rez une idĂ©e pour mettre en Ɠuvre l'ajout ou le changement -->
@@ -0,0 +1,34 @@
1
+ <!--- Fournissez un résumé général de vos changements dans le titre ci-dessus -->
2
+
3
+ ## Description
4
+ <!--- Décrivez vos changements en détail -->
5
+
6
+ ## Motivation et contexte
7
+ <!--- Pourquoi ce changement est-il nécessaire ? Quel problÚme résout-il ? -->
8
+ <!--- Si elle corrige un problÚme ouvert, veuillez établir un lien vers ce problÚme ici. -->
9
+
10
+ ## Comment cela a-t-il été testé ?
11
+ <!--- Veuillez décrire en détail comment vous avez testé vos modifications. -->
12
+ <!--- Incluez les détails de votre environnement de test, et les tests que vous avez exécutés pour -->
13
+ <!--- voir comment votre changement affecte d'autres zones du code, etc. -->
14
+
15
+ ## Captures d'écran (le cas échéant) :
16
+
17
+ ## Types de changements
18
+ <!--- Quels types de changements votre code introduit-il ? Mettez un `x` dans toutes les cases qui s'appliquent : -->
19
+ - [ ] Correction de bug (changement non cassant qui corrige un problĂšme).
20
+ - [ ] Nouvelle fonctionnalité (changement non cassant qui ajoute une fonctionnalité)
21
+ - [ ] Breaking change (correction ou fonctionnalité qui entraßnerait un changement des fonctionnalités existante)
22
+
23
+ ## Liste de contrĂŽle :
24
+ <!--- Passez en revue tous les points suivants, et mettez un `x` dans toutes les cases qui s'appliquent. -->
25
+ <!--- Si vous n'ĂȘtes pas sĂ»r de l'un de ces points, n'hĂ©sitez pas Ă  demander. Nous sommes lĂ  pour vous aider ! -->
26
+ - [ ] Mon code suit le style de code de ce projet.
27
+ - [ ] Mon changement nécessite une modification de la documentation.
28
+ - [ ] J'ai mis à jour la documentation en conséquence.
29
+ - [ ] J'ai linter mon code
30
+ - [ ] composer lint
31
+ - [ ] yarn eslint
32
+ - [ ] yarn stylelint
33
+ - [ ] J'ai ajoutĂ© des tests pour couvrir mes changements. <!--- Dans le cas oĂč le projet contient des tests --->
34
+ - [ ] Tous les tests nouveaux et existants sont passĂ©s. <!--- Dans le cas oĂč le projet contient des tests --->
@@ -0,0 +1,22 @@
1
+ name: Create a Release
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+
8
+ jobs:
9
+ build:
10
+ name: Release
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - name: Checkout
14
+ uses: actions/checkout@v2
15
+ with:
16
+ fetch-depth: 0
17
+ - name: Release
18
+ uses: justincy/github-action-npm-release@2.0.2
19
+ id: release
20
+ - name: Print release output
21
+ if: ${{ steps.release.outputs.released == 'true' }}
22
+ run: echo Release ID ${{ steps.release.outputs.release_id }}
@@ -0,0 +1,24 @@
1
+ name: Publish the package to NPM
2
+
3
+ on:
4
+ release:
5
+ types: [created]
6
+ workflow_run:
7
+ workflows: ["Create a Release"]
8
+ types:
9
+ - completed
10
+
11
+ jobs:
12
+ build:
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - uses: actions/checkout@v2
16
+ # Setup .npmrc file to publish to npm
17
+ - uses: actions/setup-node@v2
18
+ with:
19
+ node-version: "12.x"
20
+ registry-url: "https://registry.npmjs.org"
21
+ - run: npm install
22
+ - run: npm publish --access public
23
+ env:
24
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
@@ -0,0 +1,145 @@
1
+ /**
2
+ * DOM Animations
3
+ */
4
+ export default class DOMAnimations {
5
+
6
+ /**
7
+ * SlideUp
8
+ *
9
+ * @param {HTMLElement} element
10
+ * @param {Number} duration
11
+ * @returns {Promise<boolean>}
12
+ */
13
+ static slideUp(element, duration = 500) {
14
+ return new Promise(resolve => {
15
+ element.style.height = element.getAttribute('data-height') + 'px';
16
+ element.style.transitionDuration = duration + 'ms';
17
+ element.offsetHeight;
18
+ element.style.height = '0px';
19
+ element.style.paddingTop = '0px';
20
+ element.style.paddingBottom = '0px';
21
+ element.style.marginTop = '0px';
22
+ element.style.marginBottom = '0px';
23
+
24
+ setTimeout(() => {
25
+ element.removeAttribute('style');
26
+ resolve(false);
27
+ }, duration);
28
+ });
29
+ }
30
+
31
+ /**
32
+ * SlideDown
33
+ *
34
+ * @param {HTMLElement} element
35
+ * @param {Number} duration
36
+ * @returns {Promise<boolean>}
37
+ */
38
+ static slideDown(element, duration = 500) {
39
+ return new Promise(resolve => {
40
+ const displayBefore = window.getComputedStyle(element).display;
41
+
42
+ if (displayBefore !== 'none') return;
43
+
44
+ element.style.display = 'block';
45
+ const height = element.offsetHeight;
46
+ element.style.overflow = 'hidden';
47
+ element.style.height = '0px';
48
+ element.style.paddingTop = '0px';
49
+ element.style.paddingBottom = '0px';
50
+ element.style.marginTop = '0px';
51
+ element.style.marginBottom = '0px';
52
+ element.offsetHeight;
53
+ element.style.boxSizing = 'border-box';
54
+ element.style.transitionProperty = 'height, margin, padding';
55
+ element.style.transitionDuration = duration + 'ms';
56
+ element.style.height = height + 'px';
57
+ element.style.removeProperty('padding-top');
58
+ element.style.removeProperty('padding-bottom');
59
+ element.style.removeProperty('margin-top');
60
+ element.style.removeProperty('margin-bottom');
61
+
62
+ setTimeout(() => {
63
+ element.setAttribute('data-height', height);
64
+ element.style.height = 'auto';
65
+ resolve(true);
66
+ }, duration);
67
+ });
68
+ }
69
+
70
+ /**
71
+ * SlideToggle
72
+ *
73
+ * @param {HTMLElement} element
74
+ * @param {Number} duration
75
+ * @returns {Promise<boolean>}
76
+ */
77
+ static slideToggle(element, duration = 500) {
78
+ if (window.getComputedStyle(element).display === 'none') {
79
+ return this.slideDown(element, duration);
80
+ } else {
81
+ return this.slideUp(element, duration);
82
+ }
83
+ }
84
+
85
+ /**
86
+ * Fade in an element
87
+ *
88
+ * @param element
89
+ * @param display
90
+ */
91
+ static fadeIn(element, display) {
92
+ element.style.opacity = 0;
93
+ element.style.display = display || 'block';
94
+
95
+ (
96
+ function fade() {
97
+ let val = parseFloat(element.style.opacity);
98
+ if (!(
99
+ (
100
+ val += .1
101
+ ) > 1
102
+ )) {
103
+ element.style.opacity = val;
104
+ requestAnimationFrame(fade);
105
+ }
106
+ }
107
+ )();
108
+ }
109
+
110
+ /**
111
+ * Fade out an element
112
+ *
113
+ * @param element
114
+ */
115
+ static fadeOut(element) {
116
+ element.style.opacity = 1;
117
+
118
+ (
119
+ function fade() {
120
+ //@formatter:off
121
+ if ((element.style.opacity -= .1) < 0) {
122
+ element.style.display = 'none';
123
+ } else {
124
+ requestAnimationFrame(fade);
125
+ }
126
+ //@formatter:on
127
+ }
128
+ )();
129
+ }
130
+
131
+ /**
132
+ * Fade toggle
133
+ *
134
+ * @param element
135
+ * @param display
136
+ */
137
+ static fadeToggle(element, display) {
138
+ if (window.getComputedStyle(element).display === 'none') {
139
+ return this.fadeIn(element, display);
140
+ } else {
141
+ return this.fadeOut(element);
142
+ }
143
+ }
144
+
145
+ }
package/README.md ADDED
@@ -0,0 +1,7 @@
1
+ DOMAnimations
2
+
3
+ Javascript class to manage DOM Animations.
4
+
5
+ ```bash
6
+ yarn add @opentech0/dom-animations
7
+ ```"# DOMAnimations"
package/package.json ADDED
@@ -0,0 +1,18 @@
1
+ {
2
+ "name": "@opentech0/dom-animations",
3
+ "version": "1.0.1",
4
+ "scripts": {
5
+ "test": "echo \"Error: no test specified\" && exit 1"
6
+ },
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/opentech0/DOMAnimations.git"
10
+ },
11
+ "author": "",
12
+ "license": "ISC",
13
+ "bugs": {
14
+ "url": "https://github.com/opentech0/DOMAnimations/issues"
15
+ },
16
+ "homepage": "https://github.com/opentech0/DOMAnimations#readme",
17
+ "description": ""
18
+ }