Ignore:
Timestamp:
2021-09-23T16:52:55+12:00 (3 years ago)
Author:
cstephen
Message:

Hoist active word

File:
1 edited

Legend:

Unmodified
Added
Removed
  • main/trunk/model-interfaces-dev/atea/korero-maori-asr/src/components/WordTimingSelector.vue

    r35455 r35456  
    44
    55    <div class="words-container" ref="wordsContainer">
    6         <input type="range" class="slider-continuous" ref="slider" />
    7 
    8         <div class="surround-word" v-for="word in mySurroundingWords" :key="word.id" :style="{ left: word.left, width: word.length }">
     6        <div class="word" v-for="word in mySurroundingWords" :key="word.id" :style="{ left: word.left, width: word.length }"
     7            :class="[ shouldHoist(word) ? 'hoisted' : 'surround-word' ]">
    98            <span>{{ word.word }}</span>
    109        </div>
     
    1918    display: flex;
    2019    align-items: center;
     20    justify-content: center;
    2121    gap: 1em;
     22    height: 3em;
    2223}
    2324
    2425.words-container {
    25     flex-grow: 0.5;
     26    flex-grow: 0.6;
    2627    position: relative;
    27     height: 2.5em;
     28    height: 1.5em;
    2829}
    2930
    30 .surround-word {
     31.word {
    3132    position: absolute;
    3233    text-align: center;
     
    3940    background-color: rgba(var(--bg-color-raw), 0.3);
    4041    border: 1px solid rgba(var(--bg-color-raw), 0.6);
     42}
     43
     44.surround-word {
     45    top: 50%;
     46}
     47
     48.hoisted {
     49    top: -50%;
     50    background-color: var(--highlighted-word-bg);
    4151}
    4252</style>
     
    6272        surroundingWords: Array,
    6373        word: { word: String, startTime: Number, endTime: Number },
    64         wordIndex: Number,
    6574        upperBound: Number
    6675    },
     
    9099    watch: {
    91100        surroundingWords() {
    92             this.scaleWords();
     101            this.getMySurroundingWords();
    93102        }
    94103    },
    95104    methods: {
    96         scaleWords() {
     105        getMySurroundingWords() {
    97106            if (!this.isMounted) {
    98107                return;
     
    105114
    106115            const audioLength = this.surroundingWords[this.surroundingWords.length - 1].endTime - this.surroundingWords[0].startTime;
    107             const sliderLengthPx = this.$refs.slider.offsetWidth;
     116            const sliderLengthPx = this.$refs.wordsContainer.offsetWidth;
    108117
    109118            const scalingFactor = sliderLengthPx / audioLength;
     
    118127            }
    119128
     129            // myWords.splice(this.surroundingWords.indexOf(this.word), 1);
    120130            this.mySurroundingWords = myWords;
     131        },
     132        shouldHoist(word) {
     133            return word.startTime === this.word.startTime;
    121134        }
    122135    },
    123136    mounted() {
    124137        this.isMounted = true;
    125         this.scaleWords();
     138        this.getMySurroundingWords();
    126139    }
    127140}
Note: See TracChangeset for help on using the changeset viewer.