Skip to content
This repository has been archived by the owner on Feb 28, 2023. It is now read-only.

MODUL-1149: Ameliorer slide transition #1088

Merged
merged 5 commits into from
Jul 31, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ exports[`MCharacterCount should render correctly 1`] = `<div class="m-character-

exports[`MCharacterCount should render correctly when maxLength prop is set 1`] = `
<div class="m-character-count">
<div aria-hidden="true" name="m--is" class="m-character-count__wrap"><span>20</span>/40</div>
<div aria-hidden="true" name="m--is" css="true" class="m-character-count__wrap"><span>20</span>/40</div>
</div>
`;

Expand Down
2 changes: 1 addition & 1 deletion src/components/character-count/character-count.html
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<div class="m-character-count">
<m-accordion-transition :transition="transition">
<m-accordion-transition :disabled="!transition">
<div v-if="hasCounter"
class="m-character-count__wrap"
aria-hidden="true"><span>{{ valueLength }}</span>/{{ maxLength }}</div>
Expand Down
2 changes: 1 addition & 1 deletion src/components/menu/menu-item/menu-item.html
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
ref="plus"
v-if="group"></m-plus>
</span>
<m-accordion-transition :transition="isAnimReady"
<m-accordion-transition :disabled="!isAnimReady"
ref="transition">
<ul :id="ariaControls"
class="m-menu-item__group"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`Storyshots components|m-accordion-transition Accordion example 1`] = `
<div>
<div>
<button
class="m-button m--is-skin-primary"
type="button"
>
<!---->
<!---->
<span
class="m-button__text"
>
Close accordion
<!---->
</span>
<!---->
<!---->
</button>
<button
class="m-button m-u--margin-left m--is-skin-secondary"
type="button"
>
<!---->
<!---->
<span
class="m-button__text"
>
Disabled transition
<!---->
</span>
<!---->
<!---->
</button>
</div>
<div>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. A laudantium odio ipsum, quae quos cum dolor, omnis perferendis, veritatis deleniti iusto consectetur? Impedit tempora quam ab laborum maiores sapiente earum?
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. A laudantium odio ipsum, quae quos cum dolor, omnis perferendis, veritatis deleniti iusto consectetur? Impedit tempora quam ab laborum maiores sapiente earum?
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. A laudantium odio ipsum, quae quos cum dolor, omnis perferendis, veritatis deleniti iusto consectetur? Impedit tempora quam ab laborum maiores sapiente earum?
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. A laudantium odio ipsum, quae quos cum dolor, omnis perferendis, veritatis deleniti iusto consectetur? Impedit tempora quam ab laborum maiores sapiente earum?
</p>
</div>
</div>
`;
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
<transition name="m--is"
:css="!disabled"
@before-enter="beforeEnter"
@enter="enter"
@after-enter="afterEnter"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
import { storiesOf } from '@storybook/vue';
import Vue from 'vue';
import { componentsHierarchyRootSeparator } from '../../../../conf/storybook/utils';
import { MButtonSkin } from '../../button/button';
import { ACCORDION_TRANSITION_NAME } from '../../component-names';
import AccordionTransitionPlugin from './accordion-transition';

Vue.use(AccordionTransitionPlugin);

storiesOf(`${componentsHierarchyRootSeparator}${ACCORDION_TRANSITION_NAME}`, module)
.add('Accordion example', () => ({
data: () => ({
open: true,
disabledTransition: false,
buttonSkin: MButtonSkin.Secondary
}),
methods: {
toggleOpen(): void {
let _this: any = this as any;
_this.open = !_this.open;
},
toggleDisabledTransition(): void {
let _this: any = this as any;
_this.disabledTransition = !_this.disabledTransition;
}
},
template: `
<div>
<div>
<m-button @click="toggleOpen()">
{{open ? 'Close' : 'Open'}} accordion
</m-button>
<m-button class="m-u--margin-left"
:skin="buttonSkin"
@click="toggleDisabledTransition()">
{{disabledTransition ? 'Enabled' : 'Disabled'}} transition
</m-button>
</div>
<m-accordion-transition :disabled="disabledTransition">
<div v-if="open">
<p v-for="index in 4"
:key="index">Lorem ipsum dolor sit amet, consectetur adipisicing elit. A laudantium odio ipsum, quae quos cum dolor, omnis perferendis, veritatis deleniti iusto consectetur? Impedit tempora quam ab laborum maiores sapiente earum?</p>
</div>
</m-accordion-transition>
</div>`
}));
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,14 @@ export class MAccordionTransition extends ModulVue {
public heightDelta: number;

@Prop({ default: true })
public transition: boolean;
public disabled: boolean;

public setClassHasTransition(el: HTMLElement): void {
if (!el.classList.contains(ACCORDION_TRANSITION_NAME)) {
el.classList.add(ACCORDION_TRANSITION_NAME);
}

if (this.transition) {
if (!this.disabled) {
el.classList.add(CLASS_HAS_TRANSITION);
} else if (el.classList.contains(CLASS_HAS_TRANSITION)) {
el.classList.remove(CLASS_HAS_TRANSITION);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`Storyshots components|m-slide-transition Tabs example 1`] = `
<div>
<m-navbar
selected="1"
skin="tab-light"
>
<m-navbar-item
value="1"
>
Tab 1
</m-navbar-item>
<m-navbar-item
value="2"
>
Tab 2
</m-navbar-item>
<m-navbar-item
value="3"
>
Tab 3
</m-navbar-item>
<m-navbar-item
value="4"
>
Tab 4
</m-navbar-item>
<m-navbar-item
value="5"
>
Tab 5
</m-navbar-item>
<m-navbar-item
value="6"
>
Tab 6
</m-navbar-item>
<m-navbar-item
value="7"
>
Tab 7
</m-navbar-item>
</m-navbar>
<div
class="m-slide-transition m--is-left-to-right-transition"
>
<div
class="m-u--margin-top"
>
<h3
class="m-u--no-margin"
>
Tab 1
</h3>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. A laudantium odio ipsum, quae quos cum dolor, omnis perferendis, veritatis deleniti iusto consectetur? Impedit tempora quam ab laborum maiores sapiente earum?
</p>
</div>
</div>
<div
class="m-u--margin-top--m"
>
<button
class="m-button m--is-skin-primary"
type="button"
>
<!---->
<!---->
<span
class="m-button__text"
>
Add tab
<!---->
</span>
<!---->
<!---->
</button>
<button
class="m-button m-u--margin-left m--is-skin-secondary"
type="button"
>
<!---->
<!---->
<span
class="m-button__text"
>
Delete tab
<!---->
</span>
<!---->
<!---->
</button>
<button
class="m-button m-u--margin-left m--is-skin-secondary"
type="button"
>
<!---->
<!---->
<span
class="m-button__text"
>
Disabled transition
<!---->
</span>
<!---->
<!---->
</button>
</div>
</div>
`;
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<div class="m-slide-transition"
:class="{'m--is-left-to-right-transition': isLeftToRight}">
<transition :name="transitionName"
:css="!disabled"
@enter="transitionEnter"
@after-enter="transitionAfterEnter"
@before-leave="transitionBeforeLeave"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,23 @@ <h2 class="m-u--no-margin">Slide transition</h2>
:direction="direction">
<div v-if="model === 1"
key="1">
<h3>Étape 1</h3>
<h3 class="m-u--no-margin">Étape 1</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. A laudantium odio ipsum, quae quos cum dolor, omnis perferendis, veritatis deleniti iusto consectetur? Impedit tempora quam ab laborum maiores sapiente earum?</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. A laudantium odio ipsum, quae quos cum dolor, omnis perferendis, veritatis deleniti iusto consectetur? Impedit tempora quam ab laborum maiores sapiente earum?</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. A laudantium odio ipsum, quae quos cum dolor, omnis perferendis, veritatis deleniti iusto consectetur? Impedit tempora quam ab laborum maiores sapiente earum?</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. A laudantium odio ipsum, quae quos cum dolor, omnis perferendis, veritatis deleniti iusto consectetur? Impedit tempora quam ab laborum maiores sapiente earum?</p>
</div>
<div v-if="model === 2"
key="2">
<h3 style="color: red;">Étape 2</h3>
<h3 class="m-u--no-margin"
style="color: red;">Étape 2</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. A laudantium odio ipsum, quae quos cum dolor, omnis perferendis, veritatis deleniti iusto consectetur? Impedit tempora quam ab laborum maiores sapiente earum?</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. A laudantium odio ipsum, quae quos cum dolor, omnis perferendis, veritatis deleniti iusto consectetur? Impedit tempora quam ab laborum maiores sapiente earum?</p>
</div>
<div v-if="model === 3"
key="3">
<h3 style="color: blue;">Étape 3</h3>
<h3 class="m-u--no-margin"
style="color: blue;">Étape 3</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. A laudantium odio ipsum, quae quos cum dolor, omnis perferendis, veritatis deleniti iusto consectetur? Impedit tempora quam ab laborum maiores sapiente earum?</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. A laudantium odio ipsum, quae quos cum dolor, omnis perferendis, veritatis deleniti iusto consectetur? Impedit tempora quam ab laborum maiores sapiente earum?</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. A laudantium odio ipsum, quae quos cum dolor, omnis perferendis, veritatis deleniti iusto consectetur? Impedit tempora quam ab laborum maiores sapiente earum?</p>
Expand Down
22 changes: 12 additions & 10 deletions src/components/transitions/slide-transition/slide-transition.scss
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,18 @@
position: relative;
transition: height $m-transition-duration--l ease;

&.m--is-left-to-right-transition > {
.m--is-enter {
transform: translate3d(-110%, 0, 0);
}

.m--is-leave-to {
transform: translate3d(110%, 0, 0);
}
}
}

.m-slide-transition > {
.m--is-enter-active,
.m--is-leave-active {
cursor: not-allowed;
Expand All @@ -27,14 +39,4 @@
transition: transform $m-transition-duration--l ease, opacity $m-transition-duration--l ease;
position: absolute;
}

&.m--is-left-to-right-transition {
.m--is-enter {
transform: translate3d(-110%, 0, 0);
}

.m--is-leave-to {
transform: translate3d(110%, 0, 0);
}
}
}
Loading